summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2009-12-27 11:30:35 +0000
committerRobert Jonsson <spamatica@gmail.com>2009-12-27 11:30:35 +0000
commitb703eab295330e6f81564fbb39a10a1a2fdd2f54 (patch)
treee46b5c9a6bc22fd661c15d1d2123f5bf631cef80 /muse_qt4_evolution
parent5d5fa0fdf913907edbc3d2d29a7548f0cb658c94 (diff)
moved old qt4 branch
Diffstat (limited to 'muse_qt4_evolution')
-rw-r--r--muse_qt4_evolution/CMakeLists.txt335
-rw-r--r--muse_qt4_evolution/COPYING280
-rw-r--r--muse_qt4_evolution/ChangeLog2760
-rw-r--r--muse_qt4_evolution/Doxyfile.in1271
-rw-r--r--muse_qt4_evolution/NEWS12
-rw-r--r--muse_qt4_evolution/README117
-rw-r--r--muse_qt4_evolution/Reference59
-rw-r--r--muse_qt4_evolution/al/CMakeLists.txt32
-rw-r--r--muse_qt4_evolution/al/al.cpp29
-rw-r--r--muse_qt4_evolution/al/al.h34
-rw-r--r--muse_qt4_evolution/al/dsp.cpp120
-rw-r--r--muse_qt4_evolution/al/dsp.h83
-rw-r--r--muse_qt4_evolution/al/dspSSE.cpp531
-rw-r--r--muse_qt4_evolution/al/dspXMM.cpp115
-rw-r--r--muse_qt4_evolution/al/marker.cpp86
-rw-r--r--muse_qt4_evolution/al/marker.h67
-rw-r--r--muse_qt4_evolution/al/pos.cpp616
-rw-r--r--muse_qt4_evolution/al/pos.h129
-rw-r--r--muse_qt4_evolution/al/sig.cpp407
-rw-r--r--muse_qt4_evolution/al/sig.h103
-rw-r--r--muse_qt4_evolution/al/tempo.cpp393
-rw-r--r--muse_qt4_evolution/al/tempo.h101
-rw-r--r--muse_qt4_evolution/al/xml.cpp362
-rw-r--r--muse_qt4_evolution/al/xml.h69
-rw-r--r--muse_qt4_evolution/all.h123
-rw-r--r--muse_qt4_evolution/awl/CMakeLists.txt112
-rw-r--r--muse_qt4_evolution/awl/aslider.cpp241
-rw-r--r--muse_qt4_evolution/awl/aslider.h135
-rw-r--r--muse_qt4_evolution/awl/awl.cpp27
-rw-r--r--muse_qt4_evolution/awl/awl.h30
-rw-r--r--muse_qt4_evolution/awl/awlplugin.cpp127
-rw-r--r--muse_qt4_evolution/awl/awlplugin.h273
-rw-r--r--muse_qt4_evolution/awl/checkbox.cpp36
-rw-r--r--muse_qt4_evolution/awl/checkbox.h55
-rw-r--r--muse_qt4_evolution/awl/clock.xpm24
-rw-r--r--muse_qt4_evolution/awl/combobox.cpp36
-rw-r--r--muse_qt4_evolution/awl/combobox.h55
-rw-r--r--muse_qt4_evolution/awl/drawbar.cpp130
-rw-r--r--muse_qt4_evolution/awl/drawbar.h54
-rw-r--r--muse_qt4_evolution/awl/fastlog.h39
-rw-r--r--muse_qt4_evolution/awl/floatentry.cpp317
-rw-r--r--muse_qt4_evolution/awl/floatentry.h112
-rw-r--r--muse_qt4_evolution/awl/knob.cpp281
-rw-r--r--muse_qt4_evolution/awl/knob.h85
-rw-r--r--muse_qt4_evolution/awl/ltest.cpp14
-rw-r--r--muse_qt4_evolution/awl/metronom.xpm24
-rw-r--r--muse_qt4_evolution/awl/midimeter.cpp137
-rw-r--r--muse_qt4_evolution/awl/midimeter.h56
-rw-r--r--muse_qt4_evolution/awl/midimslider.cpp143
-rw-r--r--muse_qt4_evolution/awl/midimslider.h56
-rw-r--r--muse_qt4_evolution/awl/midipanentry.cpp47
-rw-r--r--muse_qt4_evolution/awl/midipanentry.h48
-rw-r--r--muse_qt4_evolution/awl/midipanknob.cpp37
-rw-r--r--muse_qt4_evolution/awl/midipanknob.h55
-rw-r--r--muse_qt4_evolution/awl/midivolentry.cpp50
-rw-r--r--muse_qt4_evolution/awl/midivolentry.h47
-rw-r--r--muse_qt4_evolution/awl/mslider.cpp273
-rw-r--r--muse_qt4_evolution/awl/mslider.h68
-rw-r--r--muse_qt4_evolution/awl/panentry.cpp35
-rw-r--r--muse_qt4_evolution/awl/panentry.h40
-rw-r--r--muse_qt4_evolution/awl/panknob.cpp38
-rw-r--r--muse_qt4_evolution/awl/panknob.h46
-rw-r--r--muse_qt4_evolution/awl/pitchedit.cpp89
-rw-r--r--muse_qt4_evolution/awl/pitchedit.h50
-rw-r--r--muse_qt4_evolution/awl/pitchlabel.cpp106
-rw-r--r--muse_qt4_evolution/awl/pitchlabel.h51
-rw-r--r--muse_qt4_evolution/awl/posedit.cpp441
-rw-r--r--muse_qt4_evolution/awl/posedit.h72
-rw-r--r--muse_qt4_evolution/awl/poslabel.cpp100
-rw-r--r--muse_qt4_evolution/awl/poslabel.h56
-rw-r--r--muse_qt4_evolution/awl/sigedit.cpp224
-rw-r--r--muse_qt4_evolution/awl/sigedit.h66
-rw-r--r--muse_qt4_evolution/awl/slider.cpp251
-rw-r--r--muse_qt4_evolution/awl/slider.h81
-rw-r--r--muse_qt4_evolution/awl/tcanvas.cpp1871
-rw-r--r--muse_qt4_evolution/awl/tcanvas.h293
-rw-r--r--muse_qt4_evolution/awl/tempoedit.cpp88
-rw-r--r--muse_qt4_evolution/awl/tempoedit.h55
-rw-r--r--muse_qt4_evolution/awl/tempolabel.cpp72
-rw-r--r--muse_qt4_evolution/awl/tempolabel.h48
-rw-r--r--muse_qt4_evolution/awl/utils.cpp48
-rw-r--r--muse_qt4_evolution/awl/utils.h29
-rw-r--r--muse_qt4_evolution/awl/volentry.cpp37
-rw-r--r--muse_qt4_evolution/awl/volentry.h41
-rw-r--r--muse_qt4_evolution/awl/volknob.cpp39
-rw-r--r--muse_qt4_evolution/awl/volknob.h46
-rw-r--r--muse_qt4_evolution/awl/volslider.cpp85
-rw-r--r--muse_qt4_evolution/awl/volslider.h57
-rw-r--r--muse_qt4_evolution/cmake/TargetDoc.cmake125
-rw-r--r--muse_qt4_evolution/cmake/UsePkgConfig1.cmake45
-rw-r--r--muse_qt4_evolution/config.h.in29
-rw-r--r--muse_qt4_evolution/doc/README.de69
-rw-r--r--muse_qt4_evolution/doc/README.instruments108
-rw-r--r--muse_qt4_evolution/doc/README.ladspaguis63
-rw-r--r--muse_qt4_evolution/doc/README.realtime19
-rw-r--r--muse_qt4_evolution/doc/README.shortcuts159
-rw-r--r--muse_qt4_evolution/doc/README.softsynth86
-rw-r--r--muse_qt4_evolution/doc/README.translate57
-rw-r--r--muse_qt4_evolution/doc/dimpl.odtbin0 -> 37053 bytes
-rw-r--r--muse_qt4_evolution/doc/manual-de.odtbin0 -> 50551 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/main0.pngbin0 -> 34023 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/main1.pngbin0 -> 69465 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/main2.pngbin0 -> 39892 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/mixer1.pngbin0 -> 23134 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/pianoroll1.pngbin0 -> 35895 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/pianoroll2.pngbin0 -> 37144 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/select_project.pngbin0 -> 40300 bytes
-rw-r--r--muse_qt4_evolution/doc/pics/select_template.pngbin0 -> 31420 bytes
-rw-r--r--muse_qt4_evolution/grepmidi/CMakeLists.txt24
-rw-r--r--muse_qt4_evolution/grepmidi/grepmidi.cpp348
-rw-r--r--muse_qt4_evolution/midiplugins/CMakeLists.txt36
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt50
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp250
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/drumglue.h86
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp68
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h41
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui91
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp153
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h41
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui102
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp45
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h31
-rw-r--r--muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui292
-rw-r--r--muse_qt4_evolution/midiplugins/dump/CMakeLists.txt40
-rw-r--r--muse_qt4_evolution/midiplugins/dump/dump.cpp48
-rw-r--r--muse_qt4_evolution/midiplugins/dump/dump.h28
-rw-r--r--muse_qt4_evolution/midiplugins/filter/CMakeLists.txt49
-rw-r--r--muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp56
-rw-r--r--muse_qt4_evolution/midiplugins/filter/ctrlcombo.h24
-rw-r--r--muse_qt4_evolution/midiplugins/filter/filter.cpp167
-rw-r--r--muse_qt4_evolution/midiplugins/filter/filter.h51
-rw-r--r--muse_qt4_evolution/midiplugins/filter/filtergui.cpp187
-rw-r--r--muse_qt4_evolution/midiplugins/filter/filtergui.h57
-rw-r--r--muse_qt4_evolution/midiplugins/filter/filtergui.ui269
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt26
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h64
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp81
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h97
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp21
-rw-r--r--muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h87
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt46
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/metronom.cpp167
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/metronom.h53
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp75
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/metronomgui.h36
-rw-r--r--muse_qt4_evolution/midiplugins/metronom/metronomgui.ui150
-rw-r--r--muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt45
-rw-r--r--muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp209
-rw-r--r--muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h69
-rw-r--r--muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp263
-rw-r--r--muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h65
-rw-r--r--muse_qt4_evolution/midiplugins/transform/CMakeLists.txt45
-rw-r--r--muse_qt4_evolution/midiplugins/transform/transform.cpp904
-rw-r--r--muse_qt4_evolution/midiplugins/transform/transform.h126
-rw-r--r--muse_qt4_evolution/midiplugins/transform/transform.ui616
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt47
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/trigg.cpp131
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/trigg.h49
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/trigggui.cpp56
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/trigggui.h48
-rw-r--r--muse_qt4_evolution/midiplugins/trigg/trigggui.ui109
-rw-r--r--muse_qt4_evolution/muse.pro240
-rw-r--r--muse_qt4_evolution/muse/CMakeLists.txt226
-rw-r--r--muse_qt4_evolution/muse/aboutbox.ui612
-rw-r--r--muse_qt4_evolution/muse/arranger.cpp1382
-rw-r--r--muse_qt4_evolution/muse/arranger.h175
-rw-r--r--muse_qt4_evolution/muse/astrip.cpp791
-rw-r--r--muse_qt4_evolution/muse/astrip.h101
-rw-r--r--muse_qt4_evolution/muse/audio.cpp655
-rw-r--r--muse_qt4_evolution/muse/audio.h306
-rw-r--r--muse_qt4_evolution/muse/audiodev.h57
-rw-r--r--muse_qt4_evolution/muse/audiogroup.cpp47
-rw-r--r--muse_qt4_evolution/muse/audiogroup.h46
-rw-r--r--muse_qt4_evolution/muse/audioinput.cpp131
-rw-r--r--muse_qt4_evolution/muse/audioinput.h53
-rw-r--r--muse_qt4_evolution/muse/audiooutput.cpp191
-rw-r--r--muse_qt4_evolution/muse/audiooutput.h55
-rw-r--r--muse_qt4_evolution/muse/audioprefetch.cpp199
-rw-r--r--muse_qt4_evolution/muse/audioprefetch.h54
-rw-r--r--muse_qt4_evolution/muse/audiotrack.cpp582
-rw-r--r--muse_qt4_evolution/muse/audiotrack.h105
-rw-r--r--muse_qt4_evolution/muse/audiowriteback.cpp101
-rw-r--r--muse_qt4_evolution/muse/audiowriteback.h44
-rw-r--r--muse_qt4_evolution/muse/auxplugin.cpp190
-rw-r--r--muse_qt4_evolution/muse/auxplugin.h84
-rw-r--r--muse_qt4_evolution/muse/canvas.cpp1187
-rw-r--r--muse_qt4_evolution/muse/canvas.h124
-rw-r--r--muse_qt4_evolution/muse/cliplist/cliplist.cpp251
-rw-r--r--muse_qt4_evolution/muse/cliplist/cliplist.h47
-rw-r--r--muse_qt4_evolution/muse/cobject.cpp55
-rw-r--r--muse_qt4_evolution/muse/cobject.h46
-rw-r--r--muse_qt4_evolution/muse/conf.cpp694
-rw-r--r--muse_qt4_evolution/muse/conf.h46
-rw-r--r--muse_qt4_evolution/muse/configmidifile.ui153
-rw-r--r--muse_qt4_evolution/muse/configtrack.cpp265
-rw-r--r--muse_qt4_evolution/muse/configtrack.h61
-rw-r--r--muse_qt4_evolution/muse/configtrack.ui299
-rw-r--r--muse_qt4_evolution/muse/ctrl.cpp450
-rw-r--r--muse_qt4_evolution/muse/ctrl.h236
-rw-r--r--muse_qt4_evolution/muse/ctrl/CMakeLists.txt46
-rw-r--r--muse_qt4_evolution/muse/ctrl/configmidictrl.cpp202
-rw-r--r--muse_qt4_evolution/muse/ctrl/configmidictrl.h51
-rw-r--r--muse_qt4_evolution/muse/ctrl/configmidictrl.ui204
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrldialog.cpp191
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrldialog.h49
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrldialog.ui126
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrledit.cpp184
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrledit.h76
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrleditor.cpp492
-rw-r--r--muse_qt4_evolution/muse/ctrl/ctrleditor.h76
-rw-r--r--muse_qt4_evolution/muse/ctrl/definemidictrl.cpp110
-rw-r--r--muse_qt4_evolution/muse/ctrl/definemidictrl.h51
-rw-r--r--muse_qt4_evolution/muse/ctrl/definemidictrl.ui285
-rw-r--r--muse_qt4_evolution/muse/debug.h44
-rw-r--r--muse_qt4_evolution/muse/default_click.h1213
-rw-r--r--muse_qt4_evolution/muse/device.h56
-rw-r--r--muse_qt4_evolution/muse/driver.h64
-rw-r--r--muse_qt4_evolution/muse/dssihost.cpp891
-rw-r--r--muse_qt4_evolution/muse/dssihost.h121
-rw-r--r--muse_qt4_evolution/muse/dummyaudio.cpp294
-rw-r--r--muse_qt4_evolution/muse/editor.cpp38
-rw-r--r--muse_qt4_evolution/muse/editor.h44
-rw-r--r--muse_qt4_evolution/muse/esettings.cpp773
-rw-r--r--muse_qt4_evolution/muse/esettings.h361
-rw-r--r--muse_qt4_evolution/muse/evdata.h85
-rw-r--r--muse_qt4_evolution/muse/event.cpp222
-rw-r--r--muse_qt4_evolution/muse/event.h139
-rw-r--r--muse_qt4_evolution/muse/eventbase.h100
-rw-r--r--muse_qt4_evolution/muse/eventlist.cpp93
-rw-r--r--muse_qt4_evolution/muse/exportmidi.cpp376
-rw-r--r--muse_qt4_evolution/muse/exportmidi.h41
-rw-r--r--muse_qt4_evolution/muse/exportmididialog.ui176
-rw-r--r--muse_qt4_evolution/muse/extmidieditor.cpp422
-rw-r--r--muse_qt4_evolution/muse/extmidieditor.h120
-rw-r--r--muse_qt4_evolution/muse/fastlog.h38
-rw-r--r--muse_qt4_evolution/muse/fifo.cpp183
-rw-r--r--muse_qt4_evolution/muse/fifo.h105
-rw-r--r--muse_qt4_evolution/muse/gconfig.cpp121
-rw-r--r--muse_qt4_evolution/muse/gconfig.h133
-rw-r--r--muse_qt4_evolution/muse/globaldefs.h37
-rw-r--r--muse_qt4_evolution/muse/globals.cpp133
-rw-r--r--muse_qt4_evolution/muse/globals.h86
-rw-r--r--muse_qt4_evolution/muse/gui.h54
-rw-r--r--muse_qt4_evolution/muse/help.cpp101
-rw-r--r--muse_qt4_evolution/muse/help.h36
-rw-r--r--muse_qt4_evolution/muse/helper.cpp47
-rw-r--r--muse_qt4_evolution/muse/helper.h27
-rw-r--r--muse_qt4_evolution/muse/icons.cpp341
-rw-r--r--muse_qt4_evolution/muse/icons.h134
-rw-r--r--muse_qt4_evolution/muse/importmidi.cpp589
-rw-r--r--muse_qt4_evolution/muse/importmidi.h46
-rw-r--r--muse_qt4_evolution/muse/importmidi.ui200
-rw-r--r--muse_qt4_evolution/muse/instruments/CMakeLists.txt41
-rw-r--r--muse_qt4_evolution/muse/instruments/editinstrument.cpp844
-rw-r--r--muse_qt4_evolution/muse/instruments/editinstrument.h70
-rw-r--r--muse_qt4_evolution/muse/instruments/editinstrument.ui998
-rw-r--r--muse_qt4_evolution/muse/instruments/midictrledit.cpp418
-rw-r--r--muse_qt4_evolution/muse/instruments/midictrledit.h58
-rw-r--r--muse_qt4_evolution/muse/instruments/minstrument.cpp631
-rw-r--r--muse_qt4_evolution/muse/instruments/minstrument.h160
-rw-r--r--muse_qt4_evolution/muse/jack.cpp886
-rw-r--r--muse_qt4_evolution/muse/jackaudio.h90
-rw-r--r--muse_qt4_evolution/muse/ladspa.h599
-rw-r--r--muse_qt4_evolution/muse/ladspaplugin.cpp235
-rw-r--r--muse_qt4_evolution/muse/ladspaplugin.h127
-rw-r--r--muse_qt4_evolution/muse/liste/CMakeLists.txt48
-rw-r--r--muse_qt4_evolution/muse/liste/ctrllistedit.cpp569
-rw-r--r--muse_qt4_evolution/muse/liste/ctrllistedit.h96
-rw-r--r--muse_qt4_evolution/muse/liste/ctrllistedit.ui334
-rw-r--r--muse_qt4_evolution/muse/liste/ieventdialog.cpp428
-rw-r--r--muse_qt4_evolution/muse/liste/ieventdialog.h117
-rw-r--r--muse_qt4_evolution/muse/liste/listedit.cpp298
-rw-r--r--muse_qt4_evolution/muse/liste/listedit.h98
-rw-r--r--muse_qt4_evolution/muse/liste/partlistedit.cpp434
-rw-r--r--muse_qt4_evolution/muse/liste/partlistedit.h79
-rw-r--r--muse_qt4_evolution/muse/liste/partlistedit.ui166
-rw-r--r--muse_qt4_evolution/muse/liste/tracklistedit.cpp65
-rw-r--r--muse_qt4_evolution/muse/liste/tracklistedit.h50
-rw-r--r--muse_qt4_evolution/muse/liste/tracklistedit.ui146
-rw-r--r--muse_qt4_evolution/muse/marker/CMakeLists.txt45
-rw-r--r--muse_qt4_evolution/muse/marker/markerview.cpp413
-rw-r--r--muse_qt4_evolution/muse/marker/markerview.h98
-rw-r--r--muse_qt4_evolution/muse/master/CMakeLists.txt37
-rw-r--r--muse_qt4_evolution/muse/master/master.cpp233
-rw-r--r--muse_qt4_evolution/muse/master/master.h63
-rw-r--r--muse_qt4_evolution/muse/master/masteredit.cpp302
-rw-r--r--muse_qt4_evolution/muse/master/masteredit.h107
-rw-r--r--muse_qt4_evolution/muse/midi.cpp633
-rw-r--r--muse_qt4_evolution/muse/midi.h68
-rw-r--r--muse_qt4_evolution/muse/midictrl.cpp372
-rw-r--r--muse_qt4_evolution/muse/midictrl.h168
-rw-r--r--muse_qt4_evolution/muse/midiedit/CMakeLists.txt71
-rw-r--r--muse_qt4_evolution/muse/midiedit/citem.cpp82
-rw-r--r--muse_qt4_evolution/muse/midiedit/citem.h70
-rw-r--r--muse_qt4_evolution/muse/midiedit/cmd.h32
-rw-r--r--muse_qt4_evolution/muse/midiedit/dcanvas.cpp723
-rw-r--r--muse_qt4_evolution/muse/midiedit/dcanvas.h77
-rw-r--r--muse_qt4_evolution/muse/midiedit/drumedit.cpp450
-rw-r--r--muse_qt4_evolution/muse/midiedit/drumedit.h93
-rw-r--r--muse_qt4_evolution/muse/midiedit/drummap.cpp219
-rw-r--r--muse_qt4_evolution/muse/midiedit/drummap.h81
-rw-r--r--muse_qt4_evolution/muse/midiedit/ecanvas.cpp1549
-rw-r--r--muse_qt4_evolution/muse/midiedit/ecanvas.h173
-rw-r--r--muse_qt4_evolution/muse/midiedit/gatetime.cpp105
-rw-r--r--muse_qt4_evolution/muse/midiedit/gatetime.h62
-rw-r--r--muse_qt4_evolution/muse/midiedit/gatetime.ui85
-rw-r--r--muse_qt4_evolution/muse/midiedit/midicmd.cpp135
-rw-r--r--muse_qt4_evolution/muse/midiedit/midicmd.h81
-rw-r--r--muse_qt4_evolution/muse/midiedit/midicmd.ui76
-rw-r--r--muse_qt4_evolution/muse/midiedit/midieditor.cpp444
-rw-r--r--muse_qt4_evolution/muse/midiedit/midieditor.h147
-rw-r--r--muse_qt4_evolution/muse/midiedit/miditracker.cpp234
-rw-r--r--muse_qt4_evolution/muse/midiedit/miditracker.h76
-rw-r--r--muse_qt4_evolution/muse/midiedit/pianoroll.cpp526
-rw-r--r--muse_qt4_evolution/muse/midiedit/pianoroll.h126
-rw-r--r--muse_qt4_evolution/muse/midiedit/prcanvas.cpp773
-rw-r--r--muse_qt4_evolution/muse/midiedit/prcanvas.h75
-rw-r--r--muse_qt4_evolution/muse/midiedit/quantconfig.cpp68
-rw-r--r--muse_qt4_evolution/muse/midiedit/quantconfig.h42
-rw-r--r--muse_qt4_evolution/muse/midiedit/quantconfig.ui151
-rw-r--r--muse_qt4_evolution/muse/midiedit/trackpattern.cpp627
-rw-r--r--muse_qt4_evolution/muse/midiedit/trackpattern.h261
-rw-r--r--muse_qt4_evolution/muse/midiedit/velocity.cpp108
-rw-r--r--muse_qt4_evolution/muse/midiedit/velocity.h62
-rw-r--r--muse_qt4_evolution/muse/midiedit/velocity.ui86
-rw-r--r--muse_qt4_evolution/muse/midievent.cpp129
-rw-r--r--muse_qt4_evolution/muse/midievent.h100
-rw-r--r--muse_qt4_evolution/muse/midieventbase.cpp159
-rw-r--r--muse_qt4_evolution/muse/midieventbase.h76
-rw-r--r--muse_qt4_evolution/muse/midififo.cpp103
-rw-r--r--muse_qt4_evolution/muse/midififo.h92
-rw-r--r--muse_qt4_evolution/muse/midifile.cpp673
-rw-r--r--muse_qt4_evolution/muse/midifile.h121
-rw-r--r--muse_qt4_evolution/muse/midiinport.cpp241
-rw-r--r--muse_qt4_evolution/muse/midiinport.h67
-rw-r--r--muse_qt4_evolution/muse/midiout.cpp398
-rw-r--r--muse_qt4_evolution/muse/midiout.h67
-rw-r--r--muse_qt4_evolution/muse/midioutport.cpp262
-rw-r--r--muse_qt4_evolution/muse/midioutport.h70
-rw-r--r--muse_qt4_evolution/muse/midiplugin.cpp625
-rw-r--r--muse_qt4_evolution/muse/midiplugin.h168
-rw-r--r--muse_qt4_evolution/muse/midiportinfo.ui92
-rw-r--r--muse_qt4_evolution/muse/midirack.cpp208
-rw-r--r--muse_qt4_evolution/muse/midirack.h48
-rw-r--r--muse_qt4_evolution/muse/midirc.cpp180
-rw-r--r--muse_qt4_evolution/muse/midirc.h65
-rw-r--r--muse_qt4_evolution/muse/midisynti.cpp225
-rw-r--r--muse_qt4_evolution/muse/midisynti.h62
-rw-r--r--muse_qt4_evolution/muse/miditrack.cpp716
-rw-r--r--muse_qt4_evolution/muse/miditrack.h127
-rw-r--r--muse_qt4_evolution/muse/miditrackbase.cpp136
-rw-r--r--muse_qt4_evolution/muse/miditrackbase.h53
-rw-r--r--muse_qt4_evolution/muse/miditrackinfo.ui292
-rw-r--r--muse_qt4_evolution/muse/miditransform.cpp1534
-rw-r--r--muse_qt4_evolution/muse/miditransform.h113
-rw-r--r--muse_qt4_evolution/muse/mixer.cpp397
-rw-r--r--muse_qt4_evolution/muse/mixer.h95
-rw-r--r--muse_qt4_evolution/muse/mstrip.cpp1211
-rw-r--r--muse_qt4_evolution/muse/mstrip.h191
-rw-r--r--muse_qt4_evolution/muse/mtc.cpp131
-rw-r--r--muse_qt4_evolution/muse/mtc.h68
-rw-r--r--muse_qt4_evolution/muse/muse.cpp3029
-rw-r--r--muse_qt4_evolution/muse/muse.h318
-rw-r--r--muse_qt4_evolution/muse/muse.qrc85
-rw-r--r--muse_qt4_evolution/muse/part.cpp361
-rw-r--r--muse_qt4_evolution/muse/part.h151
-rw-r--r--muse_qt4_evolution/muse/partdrag.cpp199
-rw-r--r--muse_qt4_evolution/muse/partdrag.h69
-rw-r--r--muse_qt4_evolution/muse/pipeline.cpp221
-rw-r--r--muse_qt4_evolution/muse/pipeline.h59
-rw-r--r--muse_qt4_evolution/muse/plugin.cpp466
-rw-r--r--muse_qt4_evolution/muse/plugin.h218
-rw-r--r--muse_qt4_evolution/muse/plugingui.cpp770
-rw-r--r--muse_qt4_evolution/muse/plugingui.h122
-rw-r--r--muse_qt4_evolution/muse/port.h76
-rw-r--r--muse_qt4_evolution/muse/preferences.cpp932
-rw-r--r--muse_qt4_evolution/muse/preferences.h79
-rw-r--r--muse_qt4_evolution/muse/preferences.ui2400
-rw-r--r--muse_qt4_evolution/muse/projectdialog.cpp471
-rw-r--r--muse_qt4_evolution/muse/projectdialog.h73
-rw-r--r--muse_qt4_evolution/muse/projectdialog.ui269
-rw-r--r--muse_qt4_evolution/muse/projectpropsdialog.cpp64
-rw-r--r--muse_qt4_evolution/muse/projectpropsdialog.h46
-rw-r--r--muse_qt4_evolution/muse/projectpropsdialog.ui188
-rw-r--r--muse_qt4_evolution/muse/rack.cpp445
-rw-r--r--muse_qt4_evolution/muse/rack.h66
-rw-r--r--muse_qt4_evolution/muse/revision.cpp27
-rw-r--r--muse_qt4_evolution/muse/revision.h1
-rw-r--r--muse_qt4_evolution/muse/route.cpp417
-rw-r--r--muse_qt4_evolution/muse/route.h108
-rw-r--r--muse_qt4_evolution/muse/routedialog.cpp196
-rw-r--r--muse_qt4_evolution/muse/routedialog.h53
-rw-r--r--muse_qt4_evolution/muse/routedialog.ui170
-rw-r--r--muse_qt4_evolution/muse/selectfilter.h51
-rw-r--r--muse_qt4_evolution/muse/seqmsg.cpp621
-rw-r--r--muse_qt4_evolution/muse/shortcuts.cpp1169
-rw-r--r--muse_qt4_evolution/muse/shortcuts.h135
-rw-r--r--muse_qt4_evolution/muse/song.cpp1552
-rw-r--r--muse_qt4_evolution/muse/song.h416
-rw-r--r--muse_qt4_evolution/muse/songfile.cpp489
-rw-r--r--muse_qt4_evolution/muse/songpart.cpp371
-rw-r--r--muse_qt4_evolution/muse/songtrack.cpp715
-rw-r--r--muse_qt4_evolution/muse/strip.cpp123
-rw-r--r--muse_qt4_evolution/muse/strip.h75
-rw-r--r--muse_qt4_evolution/muse/style.qss66
-rw-r--r--muse_qt4_evolution/muse/sync.cpp499
-rw-r--r--muse_qt4_evolution/muse/sync.h37
-rw-r--r--muse_qt4_evolution/muse/synth.cpp588
-rw-r--r--muse_qt4_evolution/muse/synth.h227
-rw-r--r--muse_qt4_evolution/muse/templatedialog.cpp259
-rw-r--r--muse_qt4_evolution/muse/templatedialog.h51
-rw-r--r--muse_qt4_evolution/muse/templatedialog.ui188
-rw-r--r--muse_qt4_evolution/muse/thread.cpp354
-rw-r--r--muse_qt4_evolution/muse/thread.h109
-rw-r--r--muse_qt4_evolution/muse/ticksynth.cpp181
-rw-r--r--muse_qt4_evolution/muse/ticksynth.h29
-rw-r--r--muse_qt4_evolution/muse/tllineedit.cpp70
-rw-r--r--muse_qt4_evolution/muse/tllineedit.h48
-rw-r--r--muse_qt4_evolution/muse/tlswidget.cpp355
-rw-r--r--muse_qt4_evolution/muse/tlswidget.h83
-rw-r--r--muse_qt4_evolution/muse/tlwidget.cpp641
-rw-r--r--muse_qt4_evolution/muse/tlwidget.h105
-rw-r--r--muse_qt4_evolution/muse/tlwlayout.cpp144
-rw-r--r--muse_qt4_evolution/muse/tlwlayout.h51
-rw-r--r--muse_qt4_evolution/muse/track.cpp1062
-rw-r--r--muse_qt4_evolution/muse/track.h345
-rw-r--r--muse_qt4_evolution/muse/trackdrag.cpp61
-rw-r--r--muse_qt4_evolution/muse/trackdrag.h42
-rw-r--r--muse_qt4_evolution/muse/trackinfo.cpp553
-rw-r--r--muse_qt4_evolution/muse/trackinfo.h203
-rw-r--r--muse_qt4_evolution/muse/transport.cpp411
-rw-r--r--muse_qt4_evolution/muse/transport.h74
-rw-r--r--muse_qt4_evolution/muse/transport.ui856
-rw-r--r--muse_qt4_evolution/muse/transpose.cpp92
-rw-r--r--muse_qt4_evolution/muse/transpose.h40
-rw-r--r--muse_qt4_evolution/muse/transpose.ui193
-rw-r--r--muse_qt4_evolution/muse/trelement.h63
-rw-r--r--muse_qt4_evolution/muse/undo.cpp614
-rw-r--r--muse_qt4_evolution/muse/undo.h103
-rw-r--r--muse_qt4_evolution/muse/value.cpp73
-rw-r--r--muse_qt4_evolution/muse/vst.cpp1063
-rw-r--r--muse_qt4_evolution/muse/vst.h172
-rw-r--r--muse_qt4_evolution/muse/wave.cpp1087
-rw-r--r--muse_qt4_evolution/muse/wave.h162
-rw-r--r--muse_qt4_evolution/muse/waveedit/CMakeLists.txt34
-rw-r--r--muse_qt4_evolution/muse/waveedit/waveedit.cpp289
-rw-r--r--muse_qt4_evolution/muse/waveedit/waveedit.h88
-rw-r--r--muse_qt4_evolution/muse/waveedit/waveview.cpp1124
-rw-r--r--muse_qt4_evolution/muse/waveedit/waveview.h127
-rw-r--r--muse_qt4_evolution/muse/waveevent.cpp137
-rw-r--r--muse_qt4_evolution/muse/waveevent.h61
-rw-r--r--muse_qt4_evolution/muse/wavetrack.cpp427
-rw-r--r--muse_qt4_evolution/muse/wavetrack.h84
-rw-r--r--muse_qt4_evolution/muse/widgets/CMakeLists.txt88
-rw-r--r--muse_qt4_evolution/muse/widgets/action.h42
-rw-r--r--muse_qt4_evolution/muse/widgets/bigtime.cpp267
-rw-r--r--muse_qt4_evolution/muse/widgets/bigtime.h64
-rw-r--r--muse_qt4_evolution/muse/widgets/cliplisteditorbase.h138
-rw-r--r--muse_qt4_evolution/muse/widgets/cliplisteditorbase.ui146
-rw-r--r--muse_qt4_evolution/muse/widgets/comboQuant.cpp69
-rw-r--r--muse_qt4_evolution/muse/widgets/comboQuant.h43
-rw-r--r--muse_qt4_evolution/muse/widgets/combobox.cpp81
-rw-r--r--muse_qt4_evolution/muse/widgets/combobox.h57
-rw-r--r--muse_qt4_evolution/muse/widgets/comment.cpp91
-rw-r--r--muse_qt4_evolution/muse/widgets/comment.h69
-rw-r--r--muse_qt4_evolution/muse/widgets/comment.ui97
-rw-r--r--muse_qt4_evolution/muse/widgets/ctrlcombo.cpp68
-rw-r--r--muse_qt4_evolution/muse/widgets/ctrlcombo.h32
-rw-r--r--muse_qt4_evolution/muse/widgets/dentry.cpp208
-rw-r--r--muse_qt4_evolution/muse/widgets/dentry.h79
-rw-r--r--muse_qt4_evolution/muse/widgets/doublelabel.cpp144
-rw-r--r--muse_qt4_evolution/muse/widgets/doublelabel.h68
-rw-r--r--muse_qt4_evolution/muse/widgets/editmetadialogbase.cpp110
-rw-r--r--muse_qt4_evolution/muse/widgets/editmetadialogbase.ui137
-rw-r--r--muse_qt4_evolution/muse/widgets/fdialogbuttons.ui167
-rw-r--r--muse_qt4_evolution/muse/widgets/filedialog.cpp193
-rw-r--r--muse_qt4_evolution/muse/widgets/filedialog.h65
-rw-r--r--muse_qt4_evolution/muse/widgets/floatlabel.cpp144
-rw-r--r--muse_qt4_evolution/muse/widgets/floatlabel.h68
-rw-r--r--muse_qt4_evolution/muse/widgets/fontsel.cpp138
-rw-r--r--muse_qt4_evolution/muse/widgets/fontsel.h57
-rw-r--r--muse_qt4_evolution/muse/widgets/greendotbutton.h38
-rw-r--r--muse_qt4_evolution/muse/widgets/intlabel.h56
-rw-r--r--muse_qt4_evolution/muse/widgets/menutitle.cpp50
-rw-r--r--muse_qt4_evolution/muse/widgets/menutitle.h41
-rw-r--r--muse_qt4_evolution/muse/widgets/midisync.cpp128
-rw-r--r--muse_qt4_evolution/muse/widgets/midisync.h49
-rw-r--r--muse_qt4_evolution/muse/widgets/midisync.ui711
-rw-r--r--muse_qt4_evolution/muse/widgets/mittransposebase.h111
-rw-r--r--muse_qt4_evolution/muse/widgets/mittransposebase.ui112
-rw-r--r--muse_qt4_evolution/muse/widgets/mixdowndialog.cpp133
-rw-r--r--muse_qt4_evolution/muse/widgets/mixdowndialog.h48
-rw-r--r--muse_qt4_evolution/muse/widgets/mixdowndialog.ui212
-rw-r--r--muse_qt4_evolution/muse/widgets/noteinfo.cpp207
-rw-r--r--muse_qt4_evolution/muse/widgets/noteinfo.h68
-rw-r--r--muse_qt4_evolution/muse/widgets/outportcombo.cpp52
-rw-r--r--muse_qt4_evolution/muse/widgets/outportcombo.h39
-rw-r--r--muse_qt4_evolution/muse/widgets/quantcombo.cpp80
-rw-r--r--muse_qt4_evolution/muse/widgets/quantcombo.h46
-rw-r--r--muse_qt4_evolution/muse/widgets/rastercombo.cpp82
-rw-r--r--muse_qt4_evolution/muse/widgets/rastercombo.h46
-rw-r--r--muse_qt4_evolution/muse/widgets/recordbutton.h38
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutcapturedialog.cpp97
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutcapturedialog.h52
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutcapturedialog.ui162
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutconfig.cpp167
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutconfig.h50
-rw-r--r--muse_qt4_evolution/muse/widgets/shortcutconfig.ui180
-rw-r--r--muse_qt4_evolution/muse/widgets/siglabel.cpp165
-rw-r--r--muse_qt4_evolution/muse/widgets/siglabel.h50
-rw-r--r--muse_qt4_evolution/muse/widgets/simplebutton.cpp65
-rw-r--r--muse_qt4_evolution/muse/widgets/simplebutton.h41
-rw-r--r--muse_qt4_evolution/muse/widgets/splitter.cpp107
-rw-r--r--muse_qt4_evolution/muse/widgets/splitter.h62
-rw-r--r--muse_qt4_evolution/muse/widgets/synthwizardbase.h58
-rw-r--r--muse_qt4_evolution/muse/widgets/tb1.cpp180
-rw-r--r--muse_qt4_evolution/muse/widgets/tb1.h71
-rw-r--r--muse_qt4_evolution/muse/widgets/tools.cpp100
-rw-r--r--muse_qt4_evolution/muse/widgets/tools.h58
-rw-r--r--muse_qt4_evolution/muse/widgets/transformbase.ui993
-rw-r--r--muse_qt4_evolution/muse/widgets/utils.cpp451
-rw-r--r--muse_qt4_evolution/muse/widgets/utils.h58
-rw-r--r--muse_qt4_evolution/muse/widgets/wtrackinfobase.ui166
-rw-r--r--muse_qt4_evolution/muse/xpm/activeoff.svg120
-rw-r--r--muse_qt4_evolution/muse/xpm/activeon.svg120
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_addmiditrack.xpm26
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_audiogroup.xpm35
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_audioinput.xpm33
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_audiooutput.xpm44
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_auxsend.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_drumtrack.xpm41
-rw-r--r--muse_qt4_evolution/muse/xpm/addtrack_wavetrack.xpm36
-rw-r--r--muse_qt4_evolution/muse/xpm/audio_bounce_to_file.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/audio_bounce_to_track.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/audio_restartaudio.xpm69
-rw-r--r--muse_qt4_evolution/muse/xpm/back.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/bold.xpm16
-rw-r--r--muse_qt4_evolution/muse/xpm/buttondown.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/cafter.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/cliplistS.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/cmark.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/config.xpm36
-rw-r--r--muse_qt4_evolution/muse/xpm/configure.xpm36
-rw-r--r--muse_qt4_evolution/muse/xpm/ctrl.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/cut.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/darkgreendot.svg117
-rw-r--r--muse_qt4_evolution/muse/xpm/delete.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/down.xpm15
-rw-r--r--muse_qt4_evolution/muse/xpm/draw.xpm25
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_drumms.xpm45
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_list.xpm31
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_mastertrack.xpm38
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_midi.xpm26
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_pianoroll.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_track_add.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/edit_track_del.xpm25
-rw-r--r--muse_qt4_evolution/muse/xpm/editcopy.xpm102
-rw-r--r--muse_qt4_evolution/muse/xpm/editcut.xpm33
-rw-r--r--muse_qt4_evolution/muse/xpm/editcutS.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/editmute.xpm33
-rw-r--r--muse_qt4_evolution/muse/xpm/editpaste.xpm210
-rw-r--r--muse_qt4_evolution/muse/xpm/fforward.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/filenew.pngbin0 -> 575 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/filenewS.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/fileopen.pngbin0 -> 887 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/filesave.pngbin0 -> 762 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/flag.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/flagS.xpm19
-rw-r--r--muse_qt4_evolution/muse/xpm/folder_new.pngbin0 -> 1278 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/forward.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/frewind.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/glue.xpm49
-rw-r--r--muse_qt4_evolution/muse/xpm/greendot.svg117
-rw-r--r--muse_qt4_evolution/muse/xpm/gv.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/home.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/initS.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/inputpluginS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/italic.xpm16
-rw-r--r--muse_qt4_evolution/muse/xpm/listS.xpm26
-rw-r--r--muse_qt4_evolution/muse/xpm/lmark.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/localoffS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/lock.xpm86
-rw-r--r--muse_qt4_evolution/muse/xpm/loop.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/master.xpm15
-rw-r--r--muse_qt4_evolution/muse/xpm/mastertrackS.xpm25
-rw-r--r--muse_qt4_evolution/muse/xpm/mastertrack_graphic.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/mastertrack_list.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/meta.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_edit_instrument.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_init_instr.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_local_off.xpm105
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_plugS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_reset_instr.xpm55
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_transform.xpm30
-rw-r--r--muse_qt4_evolution/muse/xpm/midi_transpose.xpm31
-rw-r--r--muse_qt4_evolution/muse/xpm/midiin.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/miditransformS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/miditransposeS.xpm25
-rw-r--r--muse_qt4_evolution/muse/xpm/minus.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/mixerS.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/mixeraudioS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/mono.svg70
-rw-r--r--muse_qt4_evolution/muse/xpm/muse_icon.xpm411
-rw-r--r--muse_qt4_evolution/muse/xpm/muse_icon_64x64.pngbin0 -> 7493 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/mutebutton_off.xpm165
-rw-r--r--muse_qt4_evolution/muse/xpm/mutebutton_on.xpm352
-rw-r--r--muse_qt4_evolution/muse/xpm/newmutebutton.xpm69
-rw-r--r--muse_qt4_evolution/muse/xpm/off.svg114
-rw-r--r--muse_qt4_evolution/muse/xpm/off.xpm25
-rw-r--r--muse_qt4_evolution/muse/xpm/on.svg114
-rw-r--r--muse_qt4_evolution/muse/xpm/pafter.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/panic.xpm50
-rw-r--r--muse_qt4_evolution/muse/xpm/pencil.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/piano.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/pitch.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/play.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/plus.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/pointer.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/punchin.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/punchout.xpm18
-rw-r--r--muse_qt4_evolution/muse/xpm/quant.xpm28
-rw-r--r--muse_qt4_evolution/muse/xpm/recordOff.svg117
-rw-r--r--muse_qt4_evolution/muse/xpm/recordOn.svg117
-rw-r--r--muse_qt4_evolution/muse/xpm/redo.xpm92
-rw-r--r--muse_qt4_evolution/muse/xpm/resetS.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/rmark.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/select.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/select_all.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/select_all_parts_on_track.xpm39
-rw-r--r--muse_qt4_evolution/muse/xpm/select_deselect_all.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/select_inside_loop.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/select_invert_selection.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/select_outside_loop.xpm21
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_appearance_settings.xpm66
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_configureshortcuts.xpm36
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_follow_song.xpm30
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_globalsettings.xpm89
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_metronome.xpm99
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_midifileexport.xpm30
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_midiport_softsynths.xpm29
-rw-r--r--muse_qt4_evolution/muse/xpm/settings_midisync.xpm53
-rw-r--r--muse_qt4_evolution/muse/xpm/solobutton.xpm39
-rw-r--r--muse_qt4_evolution/muse/xpm/solobutton_off.xpm146
-rw-r--r--muse_qt4_evolution/muse/xpm/solobutton_on.xpm300
-rw-r--r--muse_qt4_evolution/muse/xpm/speaker.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/splash.pngbin0 -> 45374 bytes
-rw-r--r--muse_qt4_evolution/muse/xpm/start.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/steprec.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/stereo.svg68
-rw-r--r--muse_qt4_evolution/muse/xpm/stick.xpm33
-rw-r--r--muse_qt4_evolution/muse/xpm/stop.xpm17
-rw-r--r--muse_qt4_evolution/muse/xpm/sysex.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/toc.xpm27
-rw-r--r--muse_qt4_evolution/muse/xpm/track_add.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/track_delete.xpm23
-rw-r--r--muse_qt4_evolution/muse/xpm/underlined.xpm16
-rw-r--r--muse_qt4_evolution/muse/xpm/undo.xpm93
-rw-r--r--muse_qt4_evolution/muse/xpm/up.xpm15
-rw-r--r--muse_qt4_evolution/muse/xpm/view_bigtime_window.xpm22
-rw-r--r--muse_qt4_evolution/muse/xpm/view_cliplist.xpm32
-rw-r--r--muse_qt4_evolution/muse/xpm/view_marker.xpm37
-rw-r--r--muse_qt4_evolution/muse/xpm/view_mixer.xpm26
-rw-r--r--muse_qt4_evolution/muse/xpm/view_transport_window.xpm24
-rw-r--r--muse_qt4_evolution/muse/xpm/wave.xpm33
-rw-r--r--muse_qt4_evolution/packaging/muse_icon.pngbin0 -> 7493 bytes
-rwxr-xr-xmuse_qt4_evolution/packaging/muse_mdk.spec274
-rw-r--r--muse_qt4_evolution/pch.txt68
-rw-r--r--muse_qt4_evolution/plugins/CMakeLists.txt22
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/CMakeLists.txt33
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/doublechorus.cpp173
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.cpp214
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.h72
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.cpp157
-rw-r--r--muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.h96
-rw-r--r--muse_qt4_evolution/plugins/freeverb/CMakeLists.txt33
-rw-r--r--muse_qt4_evolution/plugins/freeverb/allpass.h47
-rw-r--r--muse_qt4_evolution/plugins/freeverb/comb.h63
-rw-r--r--muse_qt4_evolution/plugins/freeverb/denormals.h38
-rw-r--r--muse_qt4_evolution/plugins/freeverb/freeverb.cpp166
-rw-r--r--muse_qt4_evolution/plugins/freeverb/readme.txt147
-rw-r--r--muse_qt4_evolution/plugins/freeverb/revmodel.cpp232
-rw-r--r--muse_qt4_evolution/plugins/freeverb/revmodel.h79
-rw-r--r--muse_qt4_evolution/plugins/freeverb/tuning.h60
-rw-r--r--muse_qt4_evolution/plugins/pandelay/CMakeLists.txt33
-rw-r--r--muse_qt4_evolution/plugins/pandelay/ladspapandelay.cpp100
-rw-r--r--muse_qt4_evolution/plugins/pandelay/ladspapandelay.h55
-rw-r--r--muse_qt4_evolution/plugins/pandelay/pandelay.cpp170
-rw-r--r--muse_qt4_evolution/plugins/pandelay/pandelaymodel.cpp154
-rw-r--r--muse_qt4_evolution/plugins/pandelay/pandelaymodel.h93
-rw-r--r--muse_qt4_evolution/share/CMakeLists.txt22
-rw-r--r--muse_qt4_evolution/share/instruments/Access_Virus.idf1045
-rw-r--r--muse_qt4_evolution/share/instruments/Alesis-Ion.idf731
-rw-r--r--muse_qt4_evolution/share/instruments/Alesis-QS-78R.idf700
-rw-r--r--muse_qt4_evolution/share/instruments/AlesisQS6.idf658
-rw-r--r--muse_qt4_evolution/share/instruments/CMakeLists.txt22
-rw-r--r--muse_qt4_evolution/share/instruments/Hammond_XB-1.idf88
-rw-r--r--muse_qt4_evolution/share/instruments/MC303.idf528
-rw-r--r--muse_qt4_evolution/share/instruments/MC505.idf560
-rw-r--r--muse_qt4_evolution/share/instruments/Quasimidi-Sirius.idf735
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-E28.idf320
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-JV-1010-All.idf1502
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-JV-1010-Catagory.idf1234
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-JV-1010-Country.idf297
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-JV-1010-Presets.idf971
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-JV-1010-Session.idf326
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-SCD70.idf1513
-rw-r--r--muse_qt4_evolution/share/instruments/Roland-XP30.idf1592
-rw-r--r--muse_qt4_evolution/share/instruments/Roland_FantomXR.idf1419
-rw-r--r--muse_qt4_evolution/share/instruments/Roland_SRX-02.idf66
-rw-r--r--muse_qt4_evolution/share/instruments/Roland_SRX-09.idf454
-rw-r--r--muse_qt4_evolution/share/instruments/Waldorf_Microwave-I.idf141
-rw-r--r--muse_qt4_evolution/share/instruments/Yamaha-P50m.idf75
-rw-r--r--muse_qt4_evolution/share/instruments/Yamaha-P80.idf71
-rw-r--r--muse_qt4_evolution/share/instruments/Yamaha-PSR275.idf585
-rw-r--r--muse_qt4_evolution/share/instruments/Yamaha-PSR530.idf759
-rw-r--r--muse_qt4_evolution/share/instruments/Yamaha-S90.idf4304
-rw-r--r--muse_qt4_evolution/share/instruments/ZynAdd-1_4.idf22
-rw-r--r--muse_qt4_evolution/share/instruments/emuproteus2000.idf1088
-rw-r--r--muse_qt4_evolution/share/instruments/gm.idf209
-rw-r--r--muse_qt4_evolution/share/instruments/gs.idf236
-rw-r--r--muse_qt4_evolution/share/instruments/ns5r.idf568
-rw-r--r--muse_qt4_evolution/share/instruments/xg.idf629
-rw-r--r--muse_qt4_evolution/share/locale/CMakeLists.txt21
-rw-r--r--muse_qt4_evolution/share/locale/muse_de.qmbin0 -> 64327 bytes
-rw-r--r--muse_qt4_evolution/share/locale/muse_de.ts5804
-rw-r--r--muse_qt4_evolution/share/locale/muse_es.qmbin0 -> 53833 bytes
-rw-r--r--muse_qt4_evolution/share/locale/muse_es.ts11154
-rw-r--r--muse_qt4_evolution/share/locale/muse_fr.qmbin0 -> 53135 bytes
-rw-r--r--muse_qt4_evolution/share/locale/muse_fr.ts9584
-rw-r--r--muse_qt4_evolution/share/locale/muse_ru.qmbin0 -> 50217 bytes
-rw-r--r--muse_qt4_evolution/share/locale/muse_ru.ts7823
-rw-r--r--muse_qt4_evolution/share/locale/muse_sv_SE.qmbin0 -> 59265 bytes
-rw-r--r--muse_qt4_evolution/share/locale/muse_sv_SE.ts12410
-rw-r--r--muse_qt4_evolution/share/plugins/1050.ui297
-rw-r--r--muse_qt4_evolution/share/plugins/1436.ui1090
-rw-r--r--muse_qt4_evolution/share/plugins/2142.ui525
-rw-r--r--muse_qt4_evolution/share/plugins/CMakeLists.txt22
-rw-r--r--muse_qt4_evolution/share/templates/CMakeLists.txt30
-rw-r--r--muse_qt4_evolution/share/templates/audio.med395
-rw-r--r--muse_qt4_evolution/share/templates/default.med132
-rw-r--r--muse_qt4_evolution/share/templates/empty.med10
-rw-r--r--muse_qt4_evolution/share/templates/midiGM.med409
-rw-r--r--muse_qt4_evolution/share/templates/monorecord.med430
-rw-r--r--muse_qt4_evolution/share/templates/ns5r.med266
-rw-r--r--muse_qt4_evolution/share/templates/synti.med353
-rw-r--r--muse_qt4_evolution/share/wallpapers/CMakeLists.txt22
-rw-r--r--muse_qt4_evolution/share/wallpapers/gray.gifbin0 -> 6699 bytes
-rw-r--r--muse_qt4_evolution/share/wallpapers/gray_rock.gifbin0 -> 23780 bytes
-rw-r--r--muse_qt4_evolution/share/wallpapers/gray_stucco.gifbin0 -> 20903 bytes
-rw-r--r--muse_qt4_evolution/share/wallpapers/paper1.jpgbin0 -> 1662 bytes
-rw-r--r--muse_qt4_evolution/share/wallpapers/paper2.jpgbin0 -> 1875 bytes
-rw-r--r--muse_qt4_evolution/share/wallpapers/stone1.gifbin0 -> 1252 bytes
-rw-r--r--muse_qt4_evolution/synti/CMakeLists.txt42
-rw-r--r--muse_qt4_evolution/synti/README14
-rw-r--r--muse_qt4_evolution/synti/deicsonze/ARCH_ALIN24945
-rw-r--r--muse_qt4_evolution/synti/deicsonze/CMakeLists.txt59
-rw-r--r--muse_qt4_evolution/synti/deicsonze/README57
-rw-r--r--muse_qt4_evolution/synti/deicsonze/SutulaBank.dei177644
-rw-r--r--muse_qt4_evolution/synti/deicsonze/TODO13
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonze.cpp4356
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonze.h603
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzefilter.cpp67
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzefilter.h59
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzegui.cpp4545
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzegui.h562
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzegui.ui10237
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.cpp499
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.h40
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzepreset.cpp1194
-rw-r--r--muse_qt4_evolution/synti/deicsonze/deicsonzepreset.h563
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/SHold.fig12
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/SHold.pngbin0 -> 394 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo1.fig31
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo1.pngbin0 -> 1010 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo2.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo2.pngbin0 -> 1840 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo3.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo3.pngbin0 -> 1841 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo4.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo4.pngbin0 -> 1952 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo5.fig34
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo5.pngbin0 -> 1542 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo6.fig37
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo6.pngbin0 -> 1672 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo7.fig35
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo7.pngbin0 -> 1623 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo8.fig34
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/algo8.pngbin0 -> 1631 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/sawUp.fig13
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/sawUp.pngbin0 -> 416 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/square.fig14
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/square.pngbin0 -> 354 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/triangl.fig13
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/triangl.pngbin0 -> 435 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave1.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave1.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave1.pngbin0 -> 569 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave2.fig31
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave2.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave2.pngbin0 -> 543 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave3.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave3.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave3.pngbin0 -> 539 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave4.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave4.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave4.pngbin0 -> 532 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave5.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave5.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave5.pngbin0 -> 576 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave6.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave6.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave6.pngbin0 -> 550 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave7.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave7.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave7.pngbin0 -> 596 bytes
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave8.fig29
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave8.gnuplot2
-rw-r--r--muse_qt4_evolution/synti/deicsonze/pics/wave8.pngbin0 -> 591 bytes
-rw-r--r--muse_qt4_evolution/synti/fluid/CMakeLists.txt50
-rw-r--r--muse_qt4_evolution/synti/fluid/fluid.cpp518
-rw-r--r--muse_qt4_evolution/synti/fluid/fluid.h80
-rw-r--r--muse_qt4_evolution/synti/fluid/fluidgui.cpp68
-rw-r--r--muse_qt4_evolution/synti/fluid/fluidgui.h31
-rw-r--r--muse_qt4_evolution/synti/fluid/fluidgui.ui115
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/CMakeLists.txt51
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/README.txt45
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/TODO13
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.cpp596
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.h136
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.ui641
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/fluidsynti.cpp1174
-rw-r--r--muse_qt4_evolution/synti/fluidsynth/fluidsynti.h141
-rw-r--r--muse_qt4_evolution/synti/libsynti/CMakeLists.txt39
-rw-r--r--muse_qt4_evolution/synti/libsynti/evdata.h66
-rw-r--r--muse_qt4_evolution/synti/libsynti/gui.cpp124
-rw-r--r--muse_qt4_evolution/synti/libsynti/gui.h72
-rw-r--r--muse_qt4_evolution/synti/libsynti/mess.cpp123
-rw-r--r--muse_qt4_evolution/synti/libsynti/mess.h105
-rw-r--r--muse_qt4_evolution/synti/libsynti/mess2.cpp128
-rw-r--r--muse_qt4_evolution/synti/libsynti/mess2.h57
-rw-r--r--muse_qt4_evolution/synti/libsynti/midievent.cpp21
-rw-r--r--muse_qt4_evolution/synti/libsynti/midievent.h55
-rw-r--r--muse_qt4_evolution/synti/libsynti/mono.cpp47
-rw-r--r--muse_qt4_evolution/synti/libsynti/mono.h47
-rw-r--r--muse_qt4_evolution/synti/libsynti/poly.cpp35
-rw-r--r--muse_qt4_evolution/synti/libsynti/poly.h39
-rw-r--r--muse_qt4_evolution/synti/mus/CMakeLists.txt28
-rw-r--r--muse_qt4_evolution/synti/mus/mus.cpp276
-rw-r--r--muse_qt4_evolution/synti/organ/CMakeLists.txt50
-rw-r--r--muse_qt4_evolution/synti/organ/organ.cpp621
-rw-r--r--muse_qt4_evolution/synti/organ/organ.h151
-rw-r--r--muse_qt4_evolution/synti/organ/organgui.cpp184
-rw-r--r--muse_qt4_evolution/synti/organ/organgui.h48
-rw-r--r--muse_qt4_evolution/synti/organ/organgui.ui791
-rw-r--r--muse_qt4_evolution/synti/organ/reverb.cpp163
-rw-r--r--muse_qt4_evolution/synti/organ/reverb.h204
-rw-r--r--muse_qt4_evolution/synti/organ/routing.cpp1343
-rw-r--r--muse_qt4_evolution/synti/s1/CMakeLists.txt34
-rw-r--r--muse_qt4_evolution/synti/s1/s1.cpp156
-rw-r--r--muse_qt4_evolution/synti/simpledrums/CMakeLists.txt52
-rw-r--r--muse_qt4_evolution/synti/simpledrums/COPYING3
-rw-r--r--muse_qt4_evolution/synti/simpledrums/README43
-rw-r--r--muse_qt4_evolution/synti/simpledrums/ReleaseNotes.txt18
-rw-r--r--muse_qt4_evolution/synti/simpledrums/common.h110
-rw-r--r--muse_qt4_evolution/synti/simpledrums/simpledrums.cpp1719
-rw-r--r--muse_qt4_evolution/synti/simpledrums/simpledrums.h173
-rw-r--r--muse_qt4_evolution/synti/simpledrums/simpledrumsgui.cpp881
-rw-r--r--muse_qt4_evolution/synti/simpledrums/simpledrumsgui.h206
-rw-r--r--muse_qt4_evolution/synti/simpledrums/simpledrumsguibase.ui23
-rw-r--r--muse_qt4_evolution/synti/simpledrums/ssplugin.cpp456
-rw-r--r--muse_qt4_evolution/synti/simpledrums/ssplugin.h171
-rw-r--r--muse_qt4_evolution/synti/simpledrums/sspluginchooserbase.ui106
-rw-r--r--muse_qt4_evolution/synti/simpledrums/ssplugingui.cpp530
-rw-r--r--muse_qt4_evolution/synti/simpledrums/ssplugingui.h198
-rw-r--r--muse_qt4_evolution/synti/vam/CMakeLists.txt50
-rw-r--r--muse_qt4_evolution/synti/vam/COPYING340
-rw-r--r--muse_qt4_evolution/synti/vam/ChangeLog16
-rw-r--r--muse_qt4_evolution/synti/vam/README42
-rw-r--r--muse_qt4_evolution/synti/vam/TODO3
-rw-r--r--muse_qt4_evolution/synti/vam/vam.cpp801
-rw-r--r--muse_qt4_evolution/synti/vam/vam.h37
-rw-r--r--muse_qt4_evolution/synti/vam/vamgui.cpp618
-rw-r--r--muse_qt4_evolution/synti/vam/vamgui.h77
-rw-r--r--muse_qt4_evolution/synti/vam/vamgui.ui1535
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/CMakeLists.txt100
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/COPYING347
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.C358
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.h72
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.C99
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.h59
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.C72
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.h51
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter_.h42
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.C163
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h67
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.C152
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.h67
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.C244
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.h77
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.C277
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.h73
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.C384
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.h73
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.C318
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.h72
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.C198
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.h58
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.C240
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.h71
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.C24
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.h61
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.C110
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.h50
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.C292
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.h87
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.C260
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.h70
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.C438
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.h127
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.C96
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.h42
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.C73
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.h42
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.C43
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.h40
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.C115
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.h48
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.C83
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.h34
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.C565
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.h100
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.C303
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.h67
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.C99
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.h43
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.C680
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.h167
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.C514
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.h111
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.C881
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.h176
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.C112
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.h45
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.C533
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.h175
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.C138
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.h52
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.C637
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.h282
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.C300
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.h179
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.C227
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.h86
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.C344
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.h100
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.C91
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.h64
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.C742
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.h169
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.C129
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.h58
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C181
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.h63
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.C238
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.h105
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.C85
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.h66
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.C389
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.h90
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.C165
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.h84
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.C984
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.h258
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.C165
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.h58
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.C145
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.h52
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.C1182
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.h176
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.C342
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.h106
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.C231
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.h68
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.C419
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.h98
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/ADnoteUI.fl1107
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/BankUI.fl352
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/CMakeLists.txt54
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/ConfigUI.fl443
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/EffUI.fl2310
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl851
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/FilterUI.fl624
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/LFOUI.fl176
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/MasterUI.fl1798
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/MicrotonalUI.fl270
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/OscilGenUI.fl1131
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/PADnoteUI.fl1086
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/PartUI.fl1086
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/PresetsUI.fl200
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl392
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/SUBnoteUI.fl449
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/SeqUI.fl73
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/VirKeyboard.fl400
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/WidgetPDial.fl131
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0001-Arpeggio1.xizbin0 -> 2199 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0002-Arpeggio2.xizbin0 -> 1984 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0003-Arpeggio3.xizbin0 -> 2015 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0004-Arpeggio4.xizbin0 -> 2300 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0005-Arpeggio5.xizbin0 -> 2125 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0006-Aporggio6.xizbin0 -> 2287 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0007-Arpeggio7.xizbin0 -> 3361 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0008-Arpeggio8.xizbin0 -> 2077 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0009-Arpeggio9.xizbin0 -> 2245 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0010-Arpeggio10.xizbin0 -> 2093 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0011-Arpeggio11.xizbin0 -> 2142 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0033-Sequence1.xizbin0 -> 1958 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0034-Sequence2.xizbin0 -> 2148 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0036-Echoed Synth.xizbin0 -> 2109 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0037-Echo FX.xizbin0 -> 1986 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0039-Soft Arpeggio1.xizbin0 -> 2135 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0040-Soft Arpeggio2.xizbin0 -> 2093 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0041-Soft Arpeggio3.xizbin0 -> 1987 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0042-Soft Arpeggio4.xizbin0 -> 2183 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0043-Soft Arpeggio5.xizbin0 -> 2131 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0065-Hyper Organ1.xizbin0 -> 2247 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0066-Hyper Arpeggio.xizbin0 -> 1976 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0068-Glass Arpeggio.xizbin0 -> 2165 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0001-Bass 1.xizbin0 -> 1758 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0002-Bass 2.xizbin0 -> 1843 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0003-Bass 3 _analog_.xizbin0 -> 3124 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0004-Bass 4.xizbin0 -> 1838 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0005-Bass 5.xizbin0 -> 1774 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0006-Analogue Bass.xizbin0 -> 1832 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0033-Wah Bass.xizbin0 -> 1824 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0035-FM Bass 1.xizbin0 -> 2001 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0036-FM Bass 2.xizbin0 -> 2031 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0001-FM Thrumpet.xizbin0 -> 2098 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0003-Synth Brazz 1.xizbin0 -> 1950 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0004-Synth Brazz 2.xizbin0 -> 2018 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0005-Synth Brass 3.xizbin0 -> 2158 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0006-Synth Brass 4.xizbin0 -> 2236 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0007-Synth Brass 5.xizbin0 -> 2337 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0008-Brass Pad.xizbin0 -> 1855 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0009-Wah Brass.xizbin0 -> 1904 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0010-Solo Synth1.xizbin0 -> 1777 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0011-Brazz 1.xizbin0 -> 2108 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0012-Brazz 2.xizbin0 -> 2400 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0033-Analog Brass 1.xizbin0 -> 1767 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0034-Analog Brass 2.xizbin0 -> 1810 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0035-Analog Brass 3.xizbin0 -> 2149 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0036-Analog Brass 4.xizbin0 -> 2128 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0065-Simple Brass.xizbin0 -> 1806 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0066-Fat Brass.xizbin0 -> 2114 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0001-AHH Choir 1.xizbin0 -> 3771 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0002-AHH Choir 2.xizbin0 -> 3823 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0003-EHH Choir 1.xizbin0 -> 3746 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0004-Voice OOH.xizbin0 -> 2134 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0005-Choir Pad1.xizbin0 -> 1738 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0006-Choir Pad2.xizbin0 -> 1744 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0007-Choir Pad3.xizbin0 -> 3571 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0008-Choir Pad4.xizbin0 -> 1725 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0009-Choir Pad5.xizbin0 -> 1072 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0010-Choir Pad6.xizbin0 -> 1723 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0033-Choir.xizbin0 -> 1008 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0034-Slow Morph_Choir.xizbin0 -> 1088 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0035-Wah Choir.xizbin0 -> 1159 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0036-Eooooo.xizbin0 -> 1893 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0037-Voiced Synth.xizbin0 -> 3428 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0039-Ohh Choir.xizbin0 -> 1716 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0065-Vocal Morph 1.xizbin0 -> 2763 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0066-Vocal Morph 2.xizbin0 -> 2692 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0067-Vocal Morph 3.xizbin0 -> 2774 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0068-Vocal Morph 4.xizbin0 -> 2792 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0069-Vocal Morph 5.xizbin0 -> 2869 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0070-Vocal Morph 6.xizbin0 -> 2668 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0071-Vocal Morph 7.xizbin0 -> 3102 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Drums/0001-Drums Kit1.xizbin0 -> 4765 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/.qped21
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0001-Layered1.xizbin0 -> 5615 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0002-Layered2.xizbin0 -> 3015 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0005-Organ and Saw.xizbin0 -> 2112 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0007-Organ Choir Pad1.xizbin0 -> 3642 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0008-Organ Choir Pad2.xizbin0 -> 2264 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0033-Rhodes Strings1.xizbin0 -> 2795 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0034-Rhodes Strings2.xizbin0 -> 3096 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0035-Rhodes Strings3.xizbin0 -> 4909 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0036-Rhodes Strings4.xizbin0 -> 2711 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0065-Dream of the Saw.xizbin0 -> 2348 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0001-Emptyness1.xizbin0 -> 1814 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0002-Emptyness2.xizbin0 -> 1830 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0003-Space Synth.xizbin0 -> 2146 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0004-Weird Pad.xizbin0 -> 1332 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0006-Space SynthBrass.xizbin0 -> 2326 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0008-Space Voice1.xizbin0 -> 3058 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0009-Space Voice2.xizbin0 -> 3199 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0010-Space Voice3.xizbin0 -> 2501 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0011-Space Choir1.xizbin0 -> 1839 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0012-Space Choir2.xizbin0 -> 1796 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0014-Glass Voices.xizbin0 -> 1268 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0015-Strange Voice.xizbin0 -> 1980 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0033-ImpossibleDream1.xizbin0 -> 2575 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0034-ImpossibleDream2.xizbin0 -> 3215 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0035-ImpossibleDream3.xizbin0 -> 2774 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0036-ImpossibleDream4.xizbin0 -> 2492 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0037-ImpossibleDream5.xizbin0 -> 2647 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0040-Delayed Echo.xizbin0 -> 2383 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0041-Fade Down Echo.xizbin0 -> 2400 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0042-Rhodes Space1.xizbin0 -> 2960 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0043-Rhodes Space2.xizbin0 -> 2973 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0065-Long SpaceChoir1.xizbin0 -> 3468 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0066-Long SpaceChoir2.xizbin0 -> 1881 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0001-Dist Guitar 1.xizbin0 -> 2183 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0002-Dist Guitar 2.xizbin0 -> 2373 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0003-Dist Guitar 3.xizbin0 -> 2387 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0004-Dist Guitar 4.xizbin0 -> 2415 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0005-Dist Guitar 5.xizbin0 -> 2521 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0033-Trash Guitar 1.xizbin0 -> 2407 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0034-Trash Guitar 2.xizbin0 -> 2458 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0035-Short.xizbin0 -> 2332 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0065-Clean Guitar1.xizbin0 -> 2009 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0001-Memories.xizbin0 -> 2329 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0002-Bells 1.xizbin0 -> 1778 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0003-Bells 2.xizbin0 -> 1797 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0004-Bells 3.xizbin0 -> 1777 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0006-SuperSaw 1.xizbin0 -> 2020 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0007-SuperSaw 2.xizbin0 -> 2094 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0008-SuperSaw 3.xizbin0 -> 2035 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0009-SuperSaw 4.xizbin0 -> 2152 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0010-SuperSaw 5.xizbin0 -> 1753 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0033-Trash Synth 1.xizbin0 -> 2104 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0034-Trash Synth 2.xizbin0 -> 2179 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0035-Trash Synth 3.xizbin0 -> 2175 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0001-Synth Effect.xizbin0 -> 2032 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0002-Ioioioioioi.xizbin0 -> 2179 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0003-Noise1.xizbin0 -> 1030 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0004-Noise2.xizbin0 -> 2896 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0006-Wind.xizbin0 -> 1030 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0033-Metal Sound 1.xizbin0 -> 1737 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0034-Metal Sound 2.xizbin0 -> 1763 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0035-Metal Sound 3.xizbin0 -> 1814 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0037-Metal Sound 4.xizbin0 -> 1743 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0038-Metal Sound 5.xizbin0 -> 1847 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0065-Short noise.xizbin0 -> 1800 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0001-Organ 1.xizbin0 -> 1948 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0002-Organ 2.xizbin0 -> 2050 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0003-Organ 3.xizbin0 -> 2145 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0004-Organ 4.xizbin0 -> 1935 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0005-Organ 5.xizbin0 -> 1941 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0006-Organ 6.xizbin0 -> 2053 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0007-Organ 7.xizbin0 -> 2078 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0008-Organ 8.xizbin0 -> 3466 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0009-Organ 9.xizbin0 -> 1932 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0010-Organ 10.xizbin0 -> 1926 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0011-Organ 11.xizbin0 -> 2060 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0033-Cathedral Organ1.xizbin0 -> 2029 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0034-Cathedral Organ2.xizbin0 -> 2116 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0035-Cathedral Organ3.xizbin0 -> 1991 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0037-Church Organ 1.xizbin0 -> 1748 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0038-Church Organ 2.xizbin0 -> 3212 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0039-Church Organ 3.xizbin0 -> 1979 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0041-Church Organ Soft.xizbin0 -> 1849 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0065-Nice Organ 1.xizbin0 -> 1839 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0066-Nice Organ 2.xizbin0 -> 1942 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0067-Sub_Organ.xizbin0 -> 988 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0068-Square Organ.xizbin0 -> 1898 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0069-Soft Organ 1.xizbin0 -> 1935 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0070-Soft Organ 2.xizbin0 -> 1932 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0071-Synth Organ.xizbin0 -> 2138 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0072-Fantasy Organ.xizbin0 -> 2372 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0097-Accordion Pad 1.xizbin0 -> 3337 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0098-Accordion Pad 2.xizbin0 -> 1991 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0099-Synth Accordion1.xizbin0 -> 1894 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0100-Synth Accordion2.xizbin0 -> 2075 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0101-Accordion 1.xizbin0 -> 2134 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0001-Sine Pad.xizbin0 -> 971 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0002-sin2x pad.xizbin0 -> 1742 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0003-Analog Pad 1.xizbin0 -> 1794 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0004-Analog Pad 2.xizbin0 -> 6572 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0005-Square Pad 1.xizbin0 -> 1876 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0006-Square Pad 2.xizbin0 -> 1943 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0008-Resonance Pad1.xizbin0 -> 1941 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0009-Resonance Pad2.xizbin0 -> 2207 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0033-Synth Pad 1.xizbin0 -> 1744 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0034-Synth Pad 2.xizbin0 -> 1757 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0035-Synth Pad 3.xizbin0 -> 1731 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0036-Synth Pad 4.xizbin0 -> 3172 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0065-Soft Pad.xizbin0 -> 1734 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0066-Flanged Pad 1.xizbin0 -> 1828 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0001-Plucked 1.xizbin0 -> 2017 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0002-Plucked 2.xizbin0 -> 2173 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0003-Plucked 3.xizbin0 -> 1839 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0004-Plucked 4.xizbin0 -> 3443 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0005-Plucked 5.xizbin0 -> 2147 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0006-Plucked 6.xizbin0 -> 3441 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0033-Plucked String1.xizbin0 -> 3539 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0034-Plucked String2.xizbin0 -> 3551 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0036-Plucked Wah.xizbin0 -> 2389 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0001-Flute 1.xizbin0 -> 1688 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0002-Flute 2.xizbin0 -> 2794 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0003-Flute 3.xizbin0 -> 2798 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0005-FM Reed.xizbin0 -> 1899 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0006-Clarinet.xizbin0 -> 3290 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0007-Breathy1.xizbin0 -> 3369 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0033-Reed 1.xizbin0 -> 3250 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0034-Reed 2.xizbin0 -> 3283 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0035-Reed 3.xizbin0 -> 3193 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0036-Reed 4.xizbin0 -> 3299 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0037-Reed 5.xizbin0 -> 3276 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0038-Reed 6.xizbin0 -> 3290 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0039-Reed 7.xizbin0 -> 1806 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0065-Fat Reed1.xizbin0 -> 1854 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0066-Fat Reed2.xizbin0 -> 3618 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0067-Fat Reed3 square.xizbin0 -> 3549 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0001-DX Rhodes 1.xizbin0 -> 2130 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0002-DX Rhodes 2.xizbin0 -> 2104 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0003-DX Rhodes 3.xizbin0 -> 2274 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0004-DX Rhodes 4.xizbin0 -> 2132 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0005-DX Rhodes 5.xizbin0 -> 2147 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0007-Dig Rhodes.xizbin0 -> 2337 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0008-Synth Rhodes1.xizbin0 -> 2157 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0009-Synth Rhodes2.xizbin0 -> 1991 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0010-Synth Rhodes3.xizbin0 -> 2410 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0012-Ice Rhodes1.xizbin0 -> 2128 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0013-Ice Rhodes2.xizbin0 -> 2129 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0014-Ice Rhodes3.xizbin0 -> 2160 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0033-FM Rhodes 1.xizbin0 -> 2212 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0034-FM Rhodes 2.xizbin0 -> 2111 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0035-FM Rhodes 3.xizbin0 -> 2139 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0036-FM Rhodes 4.xizbin0 -> 2473 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0037-FM Rhodes 5.xizbin0 -> 2164 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0038-FM Rhodes 6.xizbin0 -> 2082 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0041-Soft Rhodes.xizbin0 -> 2271 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0042-Hard Rhodes1.xizbin0 -> 2550 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0043-Hard Rhodes2.xizbin0 -> 2133 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0044-Echo Rhodes.xizbin0 -> 2406 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0045-A long time ago.xizbin0 -> 2313 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0065-Steel Rhodes.xizbin0 -> 2513 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0001-Strings and Reed1.xizbin0 -> 4170 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0002-Strings and Reed2.xizbin0 -> 4202 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0003-Strings and Flute.xizbin0 -> 3368 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0033-Choir and Reed.xizbin0 -> 5546 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0001-Saw Strings 1.xizbin0 -> 1931 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0002-Saw Strings 2.xizbin0 -> 2083 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0003-Saw Strings 3.xizbin0 -> 2030 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0004-Saw Strings 4.xizbin0 -> 2191 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0005-Saw Strings 5.xizbin0 -> 1983 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0006-Saw Strings 6.xizbin0 -> 2072 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0007-Saw Strings 7.xizbin0 -> 1981 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0008-Saw Strings 8.xizbin0 -> 2002 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0011-Strings Pad1.xizbin0 -> 1716 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0012-Strings Pad2.xizbin0 -> 1726 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0013-Strings Pad3.xizbin0 -> 1726 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0016-Sweep Pad 1.xizbin0 -> 1738 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0017-Sweep Pad 1 Fat.xizbin0 -> 1742 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0018-Sweep Pad 2.xizbin0 -> 1757 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0019-Sweep Pad 3Wah.xizbin0 -> 1712 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0020-Sweep Pad 4.xizbin0 -> 1723 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0033-Strings1.xizbin0 -> 2211 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0034-Dark Strings.xizbin0 -> 1977 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0035-Octave Pad.xizbin0 -> 2281 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0036-Fast Attack.xizbin0 -> 2258 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0038-Fat Saw.xizbin0 -> 2051 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0041-Saw 1.xizbin0 -> 1824 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0042-Saw 2.xizbin0 -> 1803 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0043-Saw 3.xizbin0 -> 1829 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0044-Saw Pad.xizbin0 -> 1758 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0045-Soft Saw Pad.xizbin0 -> 1889 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0046-Echoed Saw.xizbin0 -> 1962 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0047-Vibratto Saw1.xizbin0 -> 1864 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0048-Wah1.xizbin0 -> 2006 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0050-Synth Violin 1.xizbin0 -> 3207 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0051-Synth Violin 2 Fat.xizbin0 -> 3584 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0065-Simple Strings.xizbin0 -> 1825 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0066-Dual Strings.xizbin0 -> 2469 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0067-Dual StringsOct.xizbin0 -> 2505 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0001-Soft Synth 1.xizbin0 -> 2177 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0002-Soft Synth 2.xizbin0 -> 2121 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0004-Pulse Pad 1.xizbin0 -> 1928 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0005-Pulse Pad 2.xizbin0 -> 1949 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0007-Analog Filter 1.xizbin0 -> 1847 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0008-Analog Filter 2.xizbin0 -> 2028 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0033-Phased Pad 1.xizbin0 -> 1971 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0034-Phased Pad 2.xizbin0 -> 1959 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0035-Phased Pad 3.xizbin0 -> 2237 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0037-Resonance Synth.xizbin0 -> 1986 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0039-Multi-phase synth.xizbin0 -> 2093 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0065-Computer Lead.xizbin0 -> 1800 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0067-Detuned Harmonic.xizbin0 -> 1851 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0097-FM Synth.xizbin0 -> 2652 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0001-Soft Piano 1.xizbin0 -> 1105 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0002-Soft Piano 2.xizbin0 -> 1067 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0004-Fantasy Bell.xizbin0 -> 2137 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0005-Synth Piano1.xizbin0 -> 1867 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0006-Synth Piano2.xizbin0 -> 1935 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0007-Termollo1.xizbin0 -> 1891 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0008-Termollo2.xizbin0 -> 1993 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0009-Termollo3.xizbin0 -> 1872 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0011-Drop1.xizbin0 -> 1708 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0012-Drop2.xizbin0 -> 1862 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0033-Analog Piano 1.xizbin0 -> 1809 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0034-Analog Piano 2.xizbin0 -> 1981 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0035-Analog Piano 3.xizbin0 -> 1887 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0037-FM Synth1.xizbin0 -> 2208 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0039-BinaryPiano1.xizbin0 -> 1772 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xizbin0 -> 1788 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0065-Synth Piano 1.xizbin0 -> 1738 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0066-Synth Piano 2.xizbin0 -> 1772 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0067-Synth Piano 3.xizbin0 -> 1808 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0068-Synth Piano 3 fat.xizbin0 -> 1815 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0069-Synth Piano 3 det.xizbin0 -> 1810 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0070-Synth Piano 4.xizbin0 -> 1946 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0071-Synth Piano 5.xizbin0 -> 2962 bytes
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/globals.h212
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/main.cpp462
1314 files changed, 471408 insertions, 0 deletions
diff --git a/muse_qt4_evolution/CMakeLists.txt b/muse_qt4_evolution/CMakeLists.txt
new file mode 100644
index 00000000..2d0f8a98
--- /dev/null
+++ b/muse_qt4_evolution/CMakeLists.txt
@@ -0,0 +1,335 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2008 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+project(muse)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.4.1)
+if (COMMAND cmake_policy)
+ cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+# set libdir if not use -DCMAKE_INSTALL_LIBDIR
+if (NOT CMAKE_INSTALL_LIBDIR)
+ SET(CMAKE_INSTALL_LIBDIR "lib")
+endif (NOT CMAKE_INSTALL_LIBDIR)
+
+#set(CMAKE_BUILD_TYPE debug)
+#set(CMAKE_BUILD_TYPE release)
+
+# for debugging the make system uncomment next line:
+# set(CMAKE_VERBOSE_MAKEFILE ON)
+
+set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
+set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
+set(CMAKE_SKIP_RULE_DEPENDENCY TRUE)
+
+# The MusE version number.
+SET(MusE_VERSION_MAJOR 2)
+SET(MusE_VERSION_MINOR 0)
+SET(MusE_VERSION_PATCH 1)
+SET(MusE_VERSION "2.0.1")
+SET(MusE_VERSION_FULL "2.0.1")
+SET(MusE_INSTALL_NAME "muse-2.0")
+
+include ( ${PROJECT_SOURCE_DIR}/cmake/UsePkgConfig1.cmake )
+include ( ${PROJECT_SOURCE_DIR}/cmake/TargetDoc.cmake)
+
+option ( ENABLE_DSSI "enable Disposable Soft Synth Interface" ON)
+option ( ENABLE_VST "enable VST/win support" OFF)
+option ( ENABLE_FLUID "enable fluidsynth softsynth plugins" ON)
+option ( ENABLE_ZYNADDSUBFX "enable zyaddsubfx softsynth plugin" ON)
+
+##
+## Just print a notice if this is OS X
+##
+if (APPLE)
+ message("OS X found.")
+else (APPLE)
+ if (UNIX)
+ message("Unix (probably linux) found")
+ endif(UNIX)
+
+endif (APPLE)
+
+##
+## look for Qt4
+##
+
+set(QT_MIN_VERSION "4.3.0")
+set(QT_USE_QTXML TRUE)
+set(QT_USE_QTDESIGNER TRUE)
+set(QT_USE_QTNSPLUGIN TRUE)
+set(QT_USE_QTSVG TRUE)
+
+find_package(Qt4)
+
+if (NOT QT4_FOUND)
+ message(FATAL_ERROR "Fatal error: QT (version >= 4.3.0) required.\n"
+ "Cmake tries to detect QT4 by searching for 'qmake' in your PATH\n"
+ "If you have QT4 installed, make sure qmake is found in your PATH."
+ )
+endif (NOT QT4_FOUND)
+
+include(${QT_USE_FILE})
+
+##
+## find doxygen
+## TODO
+
+##
+## alsa >= 0.9.0
+##
+
+if (APPLE)
+ message("Disabling ALSA support due to OS X build.")
+else (APPLE)
+PKGCONFIG (alsa 0.9.0 ALSA_INCDIR ALSA_LIBDIR ALSA_LIB ALSA_CPP )
+if (NOT ALSA_INCDIR)
+ message(FATAL_ERROR "Fatal error: ALSA >= 1.0.0 required")
+else (NOT ALSA_INCDIR)
+ message("Alsa found.")
+endif (NOT ALSA_INCDIR)
+endif (APPLE)
+
+##
+## find packages for zyaddsubfx
+##
+## fftw3
+## mxml
+## fltk + fluid
+##
+## problems with FLTK/CMake:
+## - fltk is not found on kubuntu/ubuntu
+## - cmake version > 2.4 crashes
+## - there is an annoying (and wrong) usage message from cmake concerning FLTK
+##
+
+if (ENABLE_ZYNADDSUBFX)
+ # HACK:
+ set (FLTK_INCLUDE_DIR "/usr/include")
+ set(FLTK_FLUID_EXECUTABLE "/usr/bin/fluid")
+
+ include (FindFLTK)
+ if (NOT FLTK_FOUND)
+ message("fltk toolkit not found, zynaddsubfx not build")
+ set(ENABLE_ZYNADDSUBFX OFF)
+ else (NOT FLTK_FOUND)
+ message("fltk toolkit found")
+ endif (NOT FLTK_FOUND)
+
+ PKGCONFIG (mxml 2.0 MXML_INCDIR MXML_LIBDIR MXML_LIB MXML_CPP )
+ if (NOT MXML_INCDIR)
+ message("mxml >= 2.0 not found, zynaddsubfx not build")
+ set(ENABLE_ZYNADDSUBFX OFF)
+ else (NOT MXML_INCDIR)
+ message("mxml found.")
+ endif (NOT MXML_INCDIR)
+ #
+ # check for fftw3 library
+ #
+ PKGCONFIG (fftw3 3.1.2 FFTW_INCDIR FFTW_LIBDIR FFTW_LIB FFTW_CPP )
+ if (NOT FFTW_INCDIR)
+ message("fftw3 >= 3.1.2 not found, zynaddsubfx not build")
+ set(ENABLE_ZYNADDSUBFX OFF)
+ else (NOT FFTW_INCDIR)
+ message("fftw3 found.")
+ endif (NOT FFTW_INCDIR)
+endif (ENABLE_ZYNADDSUBFX)
+
+
+##
+## find sndfile >= 1.0.0
+##
+
+PKGCONFIG (sndfile 1.0.0 SNDFILE_INCDIR SNDFILE_LIBDIR SNDFILE_LIB SNDFILE_CPP )
+if (NOT SNDFILE_INCDIR)
+ message(FATAL_ERROR "Fatal error: libsndfile >= 1.0.0 required")
+else (NOT SNDFILE_INCDIR)
+ message("sndfile found.")
+endif (NOT SNDFILE_INCDIR)
+
+##
+## find libsamplerate >= 0.1.0
+##
+
+PKGCONFIG (samplerate 0.1.0 SAMPLERATE_INCDIR SAMPLERATE_LIBDIR SAMPLERATE_LIB SAMPLERATE_CPP )
+if (NOT SAMPLERATE_INCDIR)
+ message(FATAL_ERROR "Fatal error: libsamplerate >= 0.1.0 required")
+else (NOT SAMPLERATE_INCDIR)
+ message("samplerate found")
+endif (NOT SAMPLERATE_INCDIR)
+
+##
+## find jack >= 0.103.0
+##
+
+PKGCONFIG (jack 0.107.0 JACK_INCDIR JACK_LIBDIR JACK_LIB JACK_CPP )
+if (NOT JACK_INCDIR)
+ PKGCONFIG (jack 0.103.0 JACK_INCDIR JACK_LIBDIR JACK_LIB JACK_CPP )
+ if (NOT JACK_INCDIR)
+ message(FATAL_ERROR "Fatal error: JACK >= 0.103 required")
+ else (NOT JACK_INCDIR)
+ message("JACK 0.103 found")
+ set(JACK103 ON)
+ endif (NOT JACK_INCDIR)
+else (NOT JACK_INCDIR)
+ message("JACK 0.107 found")
+ set(JACK107 ON)
+endif (NOT JACK_INCDIR)
+
+##
+## check for dssi
+## dssi >= 0.9.0
+## liblo >= 0.23
+##
+
+if (ENABLE_DSSI)
+ PKGCONFIG (dssi 0.9.0 DSSI_INCDIR DSSI_LIBDIR DSSI_LIB DSSI_CPP )
+ if (NOT DSSI_INCDIR)
+ message("Error: dssi >= 0.9.0 not found, disabling feature")
+ set ( ENABLE_DSSI OFF )
+ else (NOT DSSI_INCDIR)
+ PKGCONFIG (liblo 0.23 LIBLO_INCDIR LIBLO_LIBDIR LIBLO_LIB LIBLO_CPP )
+ if (NOT LIBLO_INCDIR)
+ message("Error: liblo >= 0.23 not found, disabling DSSI")
+ set ( ENABLE_DSSI OFF )
+ else (NOT LIBLO_INCDIR)
+ message("liblo >= 0.23 found.")
+ set (DSSI_SUPPORT TRUE)
+ message("DSSI enabled")
+ endif (NOT LIBLO_INCDIR)
+ endif (NOT DSSI_INCDIR)
+else (ENABLE_DSSI)
+ message("DSSI disabled")
+endif (ENABLE_DSSI)
+
+if (ENABLE_VST)
+ message("VST support enabled")
+ set (VST_SUPPORT TRUE)
+else (ENABLE_VST)
+ message("VST support disabled")
+ set (VST_SUPPORT FALSE)
+endif (ENABLE_VST)
+
+##
+## TODO
+##
+## Optimizations
+##
+
+SET (USE_SSE false)
+
+##
+## check for fluidsynth
+##
+
+if ( ENABLE_FLUID )
+ PKGCONFIG (fluidsynth 1.0.0 FLUID_INCDIR FLUID_LIBDIR FLUID_LIB FLUID_CPP )
+ if (NOT FLUID_INCDIR)
+ message("Error: fluidsynth >= 0.9.0 not found, disabling feature")
+ set ( ENABLE_FLUID OFF )
+ else (NOT FLUID_INCDIR)
+ message("Fluidsynth found")
+ endif (NOT FLUID_INCDIR)
+endif ( ENABLE_FLUID )
+
+#
+# produce config.h file
+#
+configure_file (
+ ${PROJECT_SOURCE_DIR}/config.h.in
+ ${PROJECT_BINARY_DIR}/config.h
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all.h
+ COMMAND cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all-pic.h
+ COMMAND cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all-pic.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all-pic-debug.h
+ COMMAND cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all-pic-debug.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+include_directories(
+ .
+ ${PROJECT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/muse
+ ${PROJECT_SOURCE_DIR}/muse/widgets
+ ${PROJECT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}/muse
+ ${PROJECT_BINARY_DIR}/muse/widgets
+ ${PROJECT_BINARY_DIR}/muse/instruments
+ ${PROJECT_BINARY_DIR}/muse/ctrl
+
+ ${ALSA_INCDIR}
+ ${JACK_INCDIR}
+ ${SNDFILE_INCDIR}
+ ${SAMPLERATE_INCDIR}
+ ${LIBLO_INCDIR}
+ ${DSSI_INCDIR}
+ )
+
+# include (pch.txt)
+
+#
+# If the cmake version includes cpack, use it
+#
+IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+
+ IF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake")
+ SET(CMAKE_INSTALL_MFC_LIBRARIES 1)
+ INCLUDE(InstallRequiredSystemLibraries)
+ ENDIF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake")
+
+ SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MusE is a virtual audio studio environment")
+ SET(CPACK_PACKAGE_VENDOR "Werner Schweer and others")
+ SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
+ SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
+ SET(CPACK_PACKAGE_VERSION_MAJOR "${MusE_VERSION_MAJOR}")
+ SET(CPACK_PACKAGE_VERSION_MINOR "${MusE_VERSION_MINOR}")
+ SET(CPACK_PACKAGE_VERSION_PATCH "${MusE_VERSION_PATCH}")
+ SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
+ SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${MusE_INSTALL_NAME}")
+
+ SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
+
+ SET(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}-${CPACK_SYSTEM_NAME}")
+ SET(CPACK_STRIP_FILES "bin/muse;bin/grepmidi")
+ SET(CPACK_PACKAGE_EXECUTABLES "muse" "MusE" "grepmidi" "grepmidi")
+ INCLUDE(CPack)
+ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+
+set(CMAKE_CXX_FLAGS "-Wl,-rpath,${QT_LIBRARY_DIR} -Wall -Wextra -Winvalid-pch -fno-exceptions")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2 -fomit-frame-pointer -ffast-math -fstrength-reduce")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -DQT_DEBUG")
+
+subdirs(al awl grepmidi plugins midiplugins muse share synti)
+
diff --git a/muse_qt4_evolution/COPYING b/muse_qt4_evolution/COPYING
new file mode 100644
index 00000000..5a965fbc
--- /dev/null
+++ b/muse_qt4_evolution/COPYING
@@ -0,0 +1,280 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/muse_qt4_evolution/ChangeLog b/muse_qt4_evolution/ChangeLog
new file mode 100644
index 00000000..d02cd328
--- /dev/null
+++ b/muse_qt4_evolution/ChangeLog
@@ -0,0 +1,2760 @@
+5.7. (ws)
+ - fix midi metronome output routing
+29.6. (ws)
+ - fix sending proper note off's at stop
+27.6. (ws)
+ JACK cleanups and implementation of JACK midi input
+25.6. (ws)
+ As part of a major code cleanup i removed ALSA midi. This also removes the
+ need for a realtime timer (JACK midi and MusE are competing for it) and simplifies
+ a lot of other code.
+2.3. (ws)
+ - dssi plugins: fix count of LADSPA ports
+21.02. (fn)
+ - "Ported" simpledrums to Qt4 - it builds, runs, produces sound (and
+ compiler warnings); review is welcome. The GUI is rather large now.
+21.1. (ws)
+ - fix: recorded midi events were echoed to midi output even if the "monitor"
+ switch was "off"
+ - speedups for midi recording; recorded events are shown in "realtime"
+18.1. (ws)
+ - Remove font & style configuration. Fonts and other things are configured in
+ QT style sheets. The application style sheet is configurable. Default is
+ the build-in file "style.qss".
+17.1.2008 (ws)
+ - use QSettings to save/restore main window geometry
+ - do not change geometry of main window when changing project
+ - fix crash: loading another song, then Settings->Preferences
+ - added svn revision number to "About" box
+ - changed version number to 2.0.1, install to muse-2.0
+ - routing pulldown menu in mixer will stay if SHIFT is pressed while clicking;
+ this allows for fast selection of more than one routing targets
+30.12. (rj)
+ - added drum filter mux plugin. Useful when driving a sampled drumkit
+ with multi sampled drums. Especially if they also have multiple keys
+ for variations of each drum.
+20.10. (ng)
+ - I replaced double by float in Pos::msf method at file pos.cc
+ and that prevents the segfault that occurs when launching muse.
+ Although float precision should be fine that hack obviously hasn't
+ fixed the bug, just hide it!
+ - Initialize _timeType with AL::Tick in tcanvas.cc because it was used
+ uninitialized.
+9.10. (ws)
+ - extend cmake scripts to automatically distinguish between jackd 0.103.0
+ as distributed with (k)ubuntu and current jackd 0.107.0
+ - fixes for texexec
+ - do not automatically build documentation; new make targets "program_doc" and
+ "manual"
+22.9. (ws)
+ - fixed wavetrack playback
+17.9. (rj)
+ - changed to start/stop toggle without rewinding since this seems
+ like the popular choice (actually I have to agree)
+ - some keyboard navigation beginnings...nothing working yet
+ - added some debug messages
+17.6. (ws)
+ - organ synthesizer plugin update
+9.6. (ws)
+ - added new Drawbar() widget to awl lib
+ - install libawlplugin.so into qt designer plugin library
+29.5. (ws)
+ - update to current JACK (changes in midi interface)
+26.05 (ng)
+ - update CMakeLists.txt to check that Qt4 > 4.3.0 and jack > 0.103.0
+23.5. (ws)
+ - midi import fixes
+19.04 (ws)
+ - disable routing buttons in mixer strip when in off state
+ - fixed crash when removing track from mixer
+ - framework for importing muse0.9 projectfiles
+ - align buffer in dummy audio driver so that the sse routines
+ do not choke; same for AuxPluginF, Pipeline, Fifo
+18.04 (ws)
+ - simplify mixer strip geometry manager
+ - changed track list layout: track name now always uses one
+ textline; remove configure option for track name size
+ - fix ctrl dialog for plugin provided controller
+17.04 (ws)
+ - replace some heartBeat signal/slot connections with
+ direct calls for better performance
+16.04 (ws)
+ - added some sse routines to optimize mixing
+15.03 (ng)
+ - update IV miditracker
+06.03 (ws)
+ - did some optimizations to meter display; mixer still uses
+ a lot of cpu cycles
+04.03 (ng)
+ - update III miditracker
+02.02 (ng)
+ - updated partlistedit, direct editing of time & parameters on list edit
+01.02 (ng)
+ - changed PanDelay, time delay is calculated with BPM and beat ratio
+27.01
+ (ws)
+ - changed DSSI initialization making whysynth work
+ (ng)
+ - added operator== for EventBase, MidiEventBase and PosLen
+ - modified Event::operator== to match on the content instead of the pointer
+ - added insert note event and delete note and sysex event in List Editor
+23.01 (ng)
+ - added insert sysex event update I
+ - replaced bzip2 by Qt compression in deicsonze
+ - added sysex tramission for DSSI synth
+19.01 (ng)
+ - fixed bug to prevent muse from halting when trying to load a non-ladpsa plugin (by Willy Foobar)
+06.01 (ng)
+ - added panDelay plugin FX
+ - added panDelay in DeicsOnze
+
+***********************
+* Happy new year 2007 *
+***********************
+
+29.12 (ng)
+ - fixed sync LFO Deicsonze
+ - update II miditracker (not working yet)
+27.12 (ng)
+ - deleted getBankName and getPatchInfo of zynaddsubfx
+ - add gradient color for the tracks
+26.12 (ng)
+ - changed MessSynthIF::populatePatchPopup to make is work with banks
+ - added getPatchInfo of DeicsOnze
+15.12 (ws)
+ - make slider.maxValue configurable
+ - pixel tuning for graphical controller editor
+13.12 (ws)
+ - changed (again) midi/audio time synchronisation
+ - fix: record midi controller only in controller list
+ (ns) DeicsOnze 0.5.5
+ - added filter for low quality
+12.12 (ws)
+ - added possibility to define a new midicontroller
+ (ng)
+ - add save project as... (not sure it's complete yet?)
+ - take off the last redundent presets in deicsonze
+10.12 (ng)
+ - items in pianoroll play the right pitch (event.pitch + transpose)
+ - items in pianoroll are displayed correctly according to Y zoom
+ - selection in the pianoroll are dragged correctly
+ - fix RouteNode::write(Xml& xml, const char* label) xml.put --> xml.tagE
+ - fix eventCanvas::genCanvasPopup(), uncheck unselected action
+08.12 (ws)
+ - first version of midi instrument editor (*.idf files)
+ (ng) deicsonze
+ - fix LFO and Ctrl modulation
+07.12 (ws)
+ - xml lib cleanups
+06.12 (ng) deicsonze
+ - fix pitchbend
+ - fix some logarithm volume issues
+ - fix sustain pedal
+04.12 (ng)
+ - fix deicsonze FX plugin bugs
+ - add AbstractSlider::setMinLogValue(), AbstractSlider::setMaxLogValue()
+ - modify AbstractSlider::value() so that it returns min instead of 0
+ - and VolSlider::value() still returns 0 for min
+ - add reset Ctrl button in DeicsOnze
+29.11 (ws)
+ - shift+mouse wheel changes horizontal magnification while current
+ position stays at cursor position
+28.11 (ws)
+ - application spanning drag&drop of parts
+ - cut/copy/paste for parts
+24.11 (ws)
+ - added new make target: "doxy" to generate doxygen source
+ documentation
+21.11 (ws)
+ - fixed DSSI support
+21.11 (ng)
+ - add color gradient to meterslider
+ - update miditracker (not working yet)
+ - check mxml >= 2.0 for zynaddsubfx
+ - fix deicsonze FX plugin bug
+16.11 (ws)
+ - implemented controller editor part of new list editor
+12.11 (ws)
+ - the internationalization files (*.qm) are now part of the
+ MusE image via the qt resource system. Installing them is not
+ necessary anymore.
+10.11 (ws)
+ - implemented splitlayer midi plugin
+ - replaced meter in midi input strip by activity "leds" for all
+ midi channels
+8.11 (ws)
+ - removed the suboptimal "MidiChannel" concept. MidiChannels are
+ now merged with MidiTracks.
+5.11 (ws)
+ - simplified midi input routing
+ - added "Monitor" button to midi track mixer strip
+31.10 (ws)
+ - MESS:
+ - remove useless QWidget parameter in instantiate()
+ - getInitData() and getControllerInfo()
+ are no longer const;
+ - Added getBankName() to interface to allow for simple structuring
+ of patches.
+ - queue midi events which cannot be send to busy(locked) software
+ synthesizer
+ - zynaddsubfx: implement locking, showGui(), and getControllerInfo();
+ cache patch names
+29.10 (ws)
+ - fixed crash after some time of midi recording: made midi
+ input queue thread safe.
+27.10 (ws)
+ - added a MESS port of the Zynaddsubfx software synthesizer
+25.10 (ws)
+ - make default path for midi- and wave import configurable
+23.10 (ws)
+ - simple jack midi output now works
+20.10 (ws)
+ - add first support for jack midi
+ - jack autostart
+18.10 (ws)
+ - added routing for jack midi ports. Fixes for "mus".
+17.10 (ws)
+ - added new program "mus". Mus is a wrapper to operate MusE MESS
+ synthesizer standalone with JACK audio/midi interface. The
+ plan is to use them to test the upcoming jack midi implementation.
+15.10 (ng)
+ - DeicsOnze 0.5, add FX send
+ - fix installation path for freeverb
+ - fix ladspa checkbox parameter
+ - add LADSPA plugin doublechorus
+12.10 (ws)
+ - added post fader plugins for mixer
+ - removed special aux send track type. Aux send is now implemented as
+ a special build in audio plugin.
+ - many routing changes
+5.10 (ws)
+ - QT4.2 is now minimum required version
+ - changed font selector in "preferences" to QFontCombobox
+ - replace "lauchBrowser()" with "QDesktopServices::openUrl()"
+ - fix for drag&drop for audio plugins
+4.10 (rj)
+ - Select the right item when items are stacked on top of each other, for
+ pianoroll and arranger (rj)
+ - Print error message when name2route called in error (rj)
+4.10 (ws)
+ - misc fixes for graphical controller editor
+ - patch for x86_64-biarch systems from Detlef Reichelt
+1.10 (ws)
+ - changed locking of audio and midi sequencer thread (in my setup this
+ results in xrun free operation at 2.9 msec latency (kernel 2.6.18-rt5)
+26.9 (ng) DeicsOnze 0.4.5
+ - add four level of quality
+24.9 (ng) DeicsOnze 0.4.3
+ - add monophony
+ - finish to clean SutulaBank.dei
+23.9 (ng) DeicsOnze 0.4.2
+ - add pitch envelope (but does not sound yet like DeicsOnze's)
+ - keep cleaning SutulaBank.dei
+17.9 (ng) DeicsOnze 0.4.1
+ - add optimization -O3, execution twice faster, but compilation longer
+ - add portamento
+ - started to clean SutulaBank.dei
+5.9 (ws)
+ - midi import fixes
+ - change german documentation encoding to utf8
+ - dont assume system encoding is isoLatin1, first patches
+ (ubuntu and others use utf8)
+4.9
+ (ws)
+ - remove html documentation and replace with *pdf version
+ (ng)
+ * DeicsOnze 0.4
+ - 16 instances (one per channel)
+ - stereo
+ - font size config
+ - load pixmap background config
+ - lots of bugs corrected
+ * add wallpaper paper2.jpg
+ * add miditracker (not working yet)
+3.9 (rj)
+ * added red line to the left of track to identify selected track
+ * various fixes, adding controllers etc
+31.8 (ws)
+ * plugin racks can now hold an unlimited number of plugins
+29.8 (ws)
+ * fixed drawing of y-magnified pianoroll canvas
+28.8 (ws)
+ * added simple midi event dump plugin
+ * add midi plugin rack to midi port strips
+ * supply correct position information to midi plugins in midi input
+ strips
+ * fixed: playing synti from midi track
+22.8 (rj)
+ * playing with midi plugins, one new example plugin: trigg
+29.7 (ws)
+ * fixed drawing of waveform in wave track. Concurrent wave file
+ accesses from gui and rt task produced distortions ("crackling").
+25.7 (ng) DeicsOnze
+ * add panic button
+28.6. (ws)
+ * updated README
+ * small fixes to build system
+23.6. (ws)
+ * new project property dialog to edit the project comment
+22.6. (ws)
+ * fix: get reference count right when undo "split part"
+ * implement: rename part
+ * fix loading of cloned midi parts
+21.6. (ws)
+ * show controller name in controller canvas of midi editor
+ * fix save/restore of controller editors in midi editor
+ * fixed handling of midi channel selection flag
+19.6. (ws)
+ * fixed: mono plugins on stereo tracks work only on one channel
+ * fixed drawing of cutted wave part
+14.6. (ws)
+ * fix build of libawlplugin.so; works for "release" build
+12.6. (ws)
+ * drag&drop of wave files with automatic sample rate conversion if
+ necessary
+9.6. (ws)
+ * clicking on controller event in controller editor changed
+ controller value (fixed rounding error and start offset for drag)
+8.6.
+ * implemented deviceId for MidiPort
+3.6. (rj)
+ * fixed plugin drag&drop problem
+ * enabled tool shortcuts in arranger
+1.6. (ws)
+ * fix crash when loading new song (old song has midi channels, new
+ song has not)
+ * drag/drop of projects in project dialog
+ * added Roland JV-1010 instrument definitions from f.fabre
+29.5 (ws)
+ * the list of available software synthesizer in
+ edit->AddTrack->AddSoftSynth was always empty
+ * properly ignore close event in MusE::closeEvent() if the
+ user aborts operation
+25.5 (ws)
+ * remove automation buttons from midi track in arranger
+25.5 (rj)
+ * buckle up, bumpy road ahead
+ * partial support for MAC OS X
+ includes some build adjustments, more -fPIC and added
+ libraries, still builds on linux so I hope it's mostly ok.
+20.5 (ws)
+ * new controller select dialog
+ * build libsynti.a with -fPIC for athlon64 systems
+19.5 (ws)
+ * install libawlplugin.so to make LADSPA plugin guis work
+ * added project creation time and song len (in sec) to project file
+18.5 (ws)
+ * added "Muse templates" and "User templates" to template list
+ in template dialog
+15.5 (rj)
+ * Fixed hardcoded refs to qt in CMakeLists.txt
+11.5 (ws)
+ * implemented new project handling; first docs in doc/man/de
+3.5 (ws)
+ * moved build system to cmake
+ * moved repository to svn
+23.4 (ws)
+ * fix obscure "off by one" bug in arranger ruler bar numbering
+22.4 (ws)
+ * fixed software synthesizer regressions
+ * return zeroed buffer if audio input strip is "off"
+ * mixer strips in arranger: dont show vertical space used
+ for horizontal alignment in mixer view
+21.4 (ws)
+ * fix "aux send" audio strips
+ * fixed performance problem when redrawing canvas in play
+ mode (using QRegion instead of QRect results in 100% cpu load)
+20.4 (ws)
+ * remove StatusBar widget from musebase.ui
+24.3 (aw)
+ * velocity of a pressed key on the virtual keyboard depends on x
+12.1 (ws)
+ * dont allow movement of events in midi editors beyond left part
+ margin
+ * small fixes to midi editors: ctrl-click, ctrl+shift drag etc.
+ * restrict event moves in midi editors to positions >= 0 to avoid
+ crashes
+6.2 (ws)
+ * added man files
+5.2 (ws)
+ * new: "auto fill" parts
+3.2 (ws)
+ * fix mute instrument in drum editor
+ * fix eraser tool in midi editors
+ * left/right buttons in arranger didn't work
+ * fix Del shortcut in arranger
+ * fix: shift click in time ruler added two marker
+1.2 (ws)
+ * fix tempo entry in transport window
+ * add TempoEdit and TempoLabel to Qt designer widget lib
+ * misc fixes and updates to master editor
+ * corner widget for arranger
+ * various small painting fixes in controller editor
+ (aw) DeicsOnze
+ * add quick attack, release and modulation control
+ * add choose number of voices 1 to 64
+ * add choose input channel number
+ * add save, save as default and load configuration
+ * fix note off bug (but maybe not completly)
+ * add initial load set path in configTab
+ * replace ARCH_ALIN by SutulaBank.dei
+ * delete redundant presets (2000 presets -> 1457 presets)
+28.1 (ws)
+ * make tool selection in midi editors persistent
+ * add "draw tool" to arranger available tools
+ * add "draw tool" to drum editor available tools
+ * implement "draw tool" for controller editor
+27.1 (ws)
+ * implement "single pitch velocity controller" for drum editor
+ * misc gui updates for pianoroll and drum editor
+26.1 (ws)
+ * track "clone" function for wave tracks
+ * cut&past of event lists for drum editor and pianoroll editor
+ * add "delta mode" changes for drum editor
+ * fix selection mechanism in drum editor
+ * reclaim JACK time master; qjackctrl now shows bar/beat/tick and
+ tempo
+ * snap locator positioning to raster
+25.1 (ws)
+ * replace FILE with QFile
+ * Xml class is now based on QTextStream
+ * fix functions in drumedit
+ * fix shortcuts in pianoroll and drumedit
+24.1 (ws)
+ * lots of small usability fixes
+ * use Qt property system to organize save/restore of toplevel
+ properties
+23.1 (ws)
+ * extend Part with editor properties
+ * make initial values of editors configurable
+ * removed GraphMidiEditor and ExtMidiEditor, replaced with MidiEditor
+ * removed MidiPart and WavePart, replaced with Part
+ * midi editor: events can only be created inside of current part
+22.1 (ws)
+ * highlight area of current part in midi editors
+21.1 (ws)
+ * remove unconnected wave files on exit
+19.1 (ws)
+ * implement remove part with eraser tool in arranger
+ * implement local double buffering for TimeCanvas, which is
+ for unknown reason still faster than the Qt provided
+18.1 (ws)
+ * much faster drawing with Qt::WA_PaintOnScreen widget flag
+ * New implementation of audioprefetch fifo, hopefully more
+ robust. Old implementation could not deal well with
+ fifo underflows.
+17.1 (ws)
+ * make trackinfo and mixerstrip in arranger persistent
+ * fix display of cursor mark in ruler
+ * fix buffer management for audio input strips
+16.1 (ws)
+ * overhaul audio routing & processing; this hopefully fixes
+ several routing problems
+14.1 (ws)
+ * treat a midi recording as on undoable event
+ * compute the right realtime priorities for the midi thread
+ and the watchdog thread depending on JACK priority. Unfortunately
+ a lot of code had to be changed for this mainly because you can
+ get the JACK realtime priority only if the JACK client thread is
+ already running (e.g. on the first jack callback).
+ (rj)
+ * Added support for drag&drop of plugins in plugin-rack
+13.1 (ws)
+ * implement mute buttons for drum editor instruments
+ * small gui alignments in arranger
+ * fix rubber tool in pianoroll editor and drum editor
+ * fix: arranger scissor tool
+ (rj)
+ * handle jack disconnection
+ * minor timer changes
+12.1 (ws)
+ * fix filtering of MidiInput strips in Mixer
+ * a lot of small fixes and cleanups
+11.1 (ws)
+ * more code for miditrack track info
+ * implement mixer strip and track info as dockable widgets
+ * fix background image for arranger canvas
+10.1 (ws)
+ * grab focus when dragging in arranger ruler
+ * fix: attempt to draw part on empty arranger canvas
+ * implemented the Qt resource system; moved *.png files to
+ resource file (muse icon & splash screen)
+ * added two top level files:
+ - TODO
+ - Reference, should countain a list of implemented
+ features
+9.1 (ws)
+ * fix qt4 detection in m4/qt.m4
+8.1 (ws)
+ * fix midi recording: added missing timestamps for event types other
+ than note on/off
+ * install libawlplugin.so at $(pkglibdir)/designer; let MusE look at
+ that path; to use QT Designer to generate new ladspa guis,
+ libawlplugin.so and libawlplugin_debug.so must be copied manually to
+ $QTDIR/plugins/designer
+ * drumeditor: highlight current instrument
+ * fix crash in drumeditor when opening controller panel
+ * treat double click on drumeditor instrument name as mouse click
+ (rj)
+ * Added plugin gui 1436, and changed plugin gui for 1050 and 2142
+ * Added ability for gui-factory to iterate child objects for
+ frames
+7.1 (ws)
+ * several fixes for drum editor
+ * when clicking on instrument name in drumeditor, play note similar
+ to pianoroll editor
+ * implement mouse wheel for tracklist in arranger and in TimeCanvas
+6.1 (ws)
+ * compile awl lib with -fPIC. This allows linking with dll's (as the
+ deicsonze synth plugin) on 64 bit systems
+ (rj)
+ * fix for automation-data in song, now stored without using locale
+4.1 (ws)
+ * more robust handling of audioprefetch for seeking while play
+4.1 (aw)
+ * Qt4 port for DeicsOnze load presets
+ * add brightness controler in DeicsOnze
+3.1 (rj)
+ * fixed search box in plugin dialog
+2.1 (ws)
+ * fix recording of note off events when part does not start at zero
+31.12 (ws)
+ * fixes for audio prefetch thread
+30.12 (ws)
+ * automatic peak reset in mixer meter display; new config parameter
+ "peak hold time"
+ (aw)
+ * DeicsOnze Qt4 port completed
+29.12 (ws)
+ * fix save/restore of track mute flag
+ * more drawing properties for Awl::Knob
+ * more widgets for libawlplugin.so: PanKnob, MidiPanKnob
+ * fix Awl::Knob drawing
+ (aw)
+ * DeicsOnze Qt4 popup menu port
+27.12 (aw)
+ * Qt4 port for DeicsOnze in progress
+26.12 (ws)
+ * add debug version libawlplugin_debug.so
+ * return of the libawlplugin.so for qt designer
+21.12 (ws)
+ * pianpercu.deioroll: fixes for event editing
+20.12 (ws)
+ * make dssi compilable again
+ * draw tick marks in meter slider
+19.12 (ws)
+ * implement smooth nonlinear xmag for time canvas
+ * software synthesizer are playable again with pianoroll keyboard
+ * fix drawing of pianoroll events, when time axis is frames instead of
+ ticks
+ * fix drawing of clock ruler
+ * fix drawing of pianoroll event when using pencil tool
+ * remove obsolete givertcap and suid install options
+18.12 (ws)
+ * fix reading sysex for eventList, this enables synti state restore
+ * changed recordFlag semantic for wave tracks: if recordFlag is on,
+ the channel meter shows the input signal
+ * allow record toggle only when in stop state
+17.12 (ws)
+ * align recorded parts to arranger snap values
+ * fix wave display in arranger parts
+ * reorganized and simplified audio record flag handling, fixing some
+ audio recording bugs
+ * audio fifo: changed write fifo handling
+ * added "atomic" counter for x86_64 architecture; removing generic
+ mutex version which is not suitable for realtime operation
+16.12 (ws)
+ * added new thread "audiowriteback" which is exclusive responsible for
+ writing all recorded audio data
+ * make all syntis compilable & loadable
+15.12 (ws)
+ * fixed bug in audio write fifo handling: sometimes audio blocks were
+ not written to disk
+12.12 (ws)
+ * removed obsolete "Toplevel" class
+10.12 (ws)
+ * port master track (tempo track) editor to qt4
+7.12 (ws)
+ * fix "config midi file export"
+ * port "configure shortcut dialog" to qt4
+ * arranger canvas background color and pixmap are configurable again
+6.12 (ws)
+ * fix start help browser
+ * fix "about" box
+ * fix song loading: midi channel track sometimes appears twice
+ in arranger track list
+5.12 (ws)
+ * midi sync: interpret mmc messages in slave mode
+ * move undo/redo processing to midi sequencer context to prevent
+ seg fault on "redo delete midi input"
+ * fix undo/redo delete track
+ * fix for dragging tracks in arranger track list
+ * fix for midi input: out routing
+ * second attempt to fix seg fault when removing midi input track
+4.12 (ws)
+ * continue playing a track if record button for track is switched on
+ * do not reset track record buttons on stop
+ * fix seg fault when removing midi input track
+2.12 (ws)
+ * start the watchdog thread with realTimePriority+1 to be more
+ set_rtlimit friendly
+ * changed default realTimePriority to 70
+ * fix: controller subtracks for midi channel got lost on song load
+29.11 (ws)
+ * make midi channel controller editable in midi track context
+ * port arranger part colors
+ * fix configuration of tracklist colors
+28.11 (ws)
+ * proper align top labels in mixer strip
+ * with the help of trolltech, setting the label background does
+ work again
+ * more fiddling with geometry management in arranger mixer view
+25.11 (ws)
+ * ia64 fix for fastlog.h
+ * misc changes to make valgrind happy
+ * some ia64 compilation fixes
+24.11 (ws)
+ * found out how to create menu titles in qt4, added to mixer routing
+ menus
+23.11 (ws)
+ * unify creating controller list in ctrl/ctrleditor.c
+ * enable tempo and timesig editing in transport
+ * new class TimeSignature in AL
+21.11 (ws)
+ * ported "fluid" synth to qt4
+ * cosmetic changes in arranger track list
+ * small fixes in drawing slider handle
+20.11 (ws)
+ * fix: dont create two audio parts per recording
+18.11 (ws)
+ * remember only path of last imported wave file in lastWavePath
+ * fixes for audio routing to jack
+17.11 (ws)
+ * port midi input filter to qt4
+ * extended info in midi channel info: show midi port values
+ * added template for missing midisynth trackinfo
+ * implement midi master volume (port volume)
+ * more easy slider dragging: you dont have to hit the slider knob
+ * when creating a new midi track, show also midi channel of default
+ route
+ * when creating a new midi track, add default routes to all midi
+ inputs
+ * in function "copy track": dont add default route to new midi track
+16.11 (ws)
+ * reanimate midi metronom plugin
+ * if imported midifile is type GM/GS or XG, this overrides the
+ configured preferred instrument
+ * fix for arranger tracklist layout manager
+ * fix buildsystem for non debug build
+ * make routing more robust; dont crash if configured route does
+ not exist
+15.11 (ws)
+ * fix Route()== operator
+ * fix: insert new tracks at right position
+ * new Function "copy track" in arranger tracklist context menu
+ * new config values for global settings to set preferences
+ for midi input and output. This preferences should allow to play
+ midi files without editing:
+ - create midi input strip when loading a midi file
+ - connect all input devices to created midi input strip
+ - connect all midi tracks to created input strip
+ - default midi input port
+ - default midi output port
+14.11 (ws)
+ * arranger file list: switch back to normal state after drag & drop
+ operation
+ * fix crash when removing selected track in arranger
+ * added (non working) code for posix timer (exploring the
+ hi resolution timer patch). It looks that the timer code interferes
+ with QT-timers.
+12.11 (ws)
+ * fix: sequencer running far too fast before first seek
+ * fix crash on song load: properly stop sequencer before loading
+ * controller view: show "current value line" (shown when automation
+ mode READ is off) even if there are no controller events
+ * fix: remove controller events with right button mouse click
+ * new: update wave parts while recording
+11.11 (ws)
+ * removed obsolete cmdAddRecordedEvents()
+ * make controller track height in arranger persistent
+10.11 (ws)
+ * Yamaha-S90.idf fix
+ * misc fixes to controller editing
+ * optimize event drawing in pianoroll editor
+ * first build muse/ctrl then muse/arranger
+ * pianoroll editor: while dragging an event, repaint of all following
+ events was missing
+9.11 (ws)
+ * controller painting is now done in new class CtrlEditor
+ * ported midiplugin "metronom" to qt4
+8.11 (ml)
+ * fixed drawing of events in pianoroll - not all fishes in the pond yet however
+8.11 (ws)
+ * start to merge controller handling in arranger and midieditor
+ * removed more widgets from TLWidget and TLSWidget simplifying the
+ widget tree;
+7.11 (ws)
+ * removed obsolete files cswidget.h cswidget.cpp
+ * removed SFrame() class from arranger (sframe.cpp, sframe.h)
+6.11 (ws)
+ * when reading arranger splitter sizes from *.med file, assure that
+ splitter size for mixer strip and info panel are not zero to avoid
+ weird geometry manager behaviour
+ * fix midi input filter
+ * fix midi plugin dialog
+ * fix a typo in part drag
+5.11 (ws)
+ * fix: make sure to send all note offs at loop end
+ * fix on/off switch in track list
+ * fix initial state of mute buttons in mixer
+ * make controller number in arranger subtrack persistent
+ * fixed handling of patch groups in populatePatchPopup()
+ * fix problem with instrument patch name in TrackInfo
+ * make Splitter sizes in Arranger persistent
+ * do not send *.idf configured instrument initialization for every
+ channel, send only once for every midi port
+ * make midi channel controller available to midi track
+ * fix controller selection in arranger
+ * added "auto repeat" to forward and rewind buttons
+ * fix: update track list widget geometry after config change
+ * fix: "follow" function can also move canvas backwarts
+ * fix: also move slider when "follow" function decides to move canvas
+ * ConfigTrackList: connect OK and Cancel buttons
+4.11 (ws)
+ * stage2 of qt4 port effort: all qt3 compatibility flags/libs are now
+ removed; a lot of functionality is commented out and will be
+ activated again in further updates
+3.11 (ws)
+ * fix "bounce to track" (record button in audio out mixer strip)
+ * fix BigTime display
+2.11 (ws)
+ * new: drag wave files to arranger canvas (into wave tracks)
+ * fix moving parts between tracks
+ * fix right mouse click context menu in arranger track list
+ * start track drag in arranger track list after QApplication::startDragDistance()
+ mouse move or QApplication::startDragTime() is elapsed
+ * added hack to get arbitrary background colors for QLabel widgets
+ * fix: disable ymag in arranger
+ * make follow mode actions checkable
+ * save followMode enum in global configuration file
+ * implemented follow mode in TimeCanvas()
+ * moved followMode flag from Song() to TimeCanvas()
+ * dont create MidiChannel tracks during song load
+ * replaced configtrackbase.ui3 by configtrackbase.ui
+1.11 (ws)
+ * fix display of active key in pianoroll keyboard
+ * adjust song len at end of recording
+ * fixed geometry management of arranger track list
+ * fixed reading of midi parts in songfile
+ * fixed transport states handling
+ * fixed midi recording: save note velicity and controller position
+31.10 (ws)
+ * new: update midi parts and events while recording
+
+12.10 (ws)
+ * many changes all over the code:
+ - eleminated old View->Canvas classes and replaced with
+ TimeCanvas
+ - TimeCanvas now has a button to switch between "metronom view"
+ (measure/beat/tick) and "clock view" (min/sec)
+ - update arranger and drum editor for metronom/clock view
+24.09 (ws)
+ * fixes for pianoroll editor and drum editor
+23.09 (ws)
+ * rename all *.ui files to *.ui3 to prepare for porting to native
+ qt4
+ * some arranger fixes (PartCanvas/TimeCanvas)
+22.9 (ws)
+ * new widget hierarchy for arranger
+ * the big port to qt4 (chunk 1)
+12.9
+ * moved muse.pro to top directory (ws)
+21.9
+ * added continuous update of _nextPlayEvent in order to not delete
+ events that should be played in future process-calls (ml)
+18.9
+ * plugin gui now updated in automation read mode (ml)
+7.8
+ * ported waveeditor fixes from 0.7 to head (ml)
+6.8.
+ * fixed midioutput process erase event bug, added midiport output routing (ml)
+29.7.
+ * Fixed autoconf bug, unable to build without fluidsynth.h (rj)
+ * Added raise() for several configuration dialogs that only open
+ one instance. (rj)
+17.7. (ws)
+ * implemented direct routing from midi input port to synti
+ * implemented input routing button for synti mixer strip
+ * when creating software synti add default route from
+ first midi port output to synti midi input
+ * remove all routes when deleting software synthesizer
+16.7. (ws)
+ * fixed bug in midi pipeline (loosing midi events)
+ * fixed routing to software synthesizer
+ * implemented meter display for MidiChannel and MidiPort
+ * fix MidiInPort initialization
+ * audio routing fix
+ * make functions in MempiHost virtual, so they can be acessed by midi
+ plugin with MempiHost class pointer
+ * remove awl dependency pitch2string() from midi plugin "transform"
+ * fixed initial _offset in CanvasWidget
+14.7
+ * Updated DeicsOnze to version 0.3 (aw)
+ - added change color config
+ - fixed bug load bank and prog number conflict
+ - added amplitude and pitch envelope graph
+ - fixed wrong oscWave in algo7-8 noticed by Dave Beanie
+ - fixed bug delete
+ - fixed bug selection when more than 20 presets
+ - added pics in the combo boxes for algorithm, OSC and LFO wave
+ - added save & load in the MusE project
+13.7
+ * Added patches from Daniel Kobras to correct error in listeditor and
+ erros in old html docs. (rj)
+ * Added uppercase filters to midi import (rj)
+12.7
+ * Added quick search to LADSPA plugin dialog (rj)
+04.7.
+ * Added Idf files by Steve D for Roland FantomXR, SRX-02 and SRX-09 (rj)
+
+21.06.
+ - do not link plugins against libaw and libawl (ws)
+14.6.
+ - increase EVENT_FIFO_SIZE from 32 to 128
+ - default to not show midi tracks in mixer
+ - implement missing "showMidiSyntiPorts" tag when reading *.med files
+ - after loading a midi file (*.mid), dont overwrite with *.med xml file
+ when pressing "save", instead call "save as"
+ - implement midi metronom as "midi synthesizer" plugin
+ - midi synthesizer plugin interface
+26.5.
+ * *.idf files now allow definition of drum maps for patches
+ overriding the default GM drum map (ws)
+24.5.
+ * added Roland E-28 idf file from Jonathan Woithe (rj)
+23.5.
+ * converted "midi input transform" into midi plugin (ws)
+16.5.
+ * handle identical alsa midi port names (ws)
+ * Updated ladspa-gui for newer version of tap-reverb (rj)
+12.5.
+ * new midi plugin infrastructure ("MEMPI") (ws)
+6.5
+ * added a second configurable mixer (ws)
+4.5
+ * removed non functional LADCCA support (ws)
+3.5
+ * removed settings->midiPorts dialog (ws)
+ * more updates to midi routing (ws)
+1.5
+ * simpledrums: fixed issue with clearing of sampledata, I hope (ml)
+30.4
+ * fluidsynth: bankno is saved to project, switched to hbank from lbank (ml)
+29.4
+ * major update: (ws)
+ * new midi routing code
+ * new track types for midi input and output
+ * Added Yamaha-PSR275 instrument file by Petr Mazanec (rj)
+27.4
+ * fixed patch-info issue in Fluidsynth (bug 1191214) (ml)
+26.4
+ * added framework for design&implementation manual (ws)
+25.4
+ * update mixer, when midi channel changes (ws)
+18.4
+ * removed file ltmain.sh; this file is now created by "libtoolize"
+ command in autogen.sh (ws)
+17.4
+ * Re-added handling of different ports than normal when using drumtracks (ml)
+16.4
+ * Fixed bug 1152441, filename can now have several dots (ml)
+ * Fixed bug 1183980: fluidsynth pitch controller wasn't given to MusE from the synth (ml)
+28.3
+ * Temporary fix for raster in the arranger, would be better to have unified handling for raster-values (ml)
+ * Fixed internationalization for shortcuts + misc shortcut work (ml)
+ * Added fix from 0.7-branch for midi import problem w overflow (ml)
+27.3
+ * Bugfix for mapping of drumtrack record data (ml)
+ * Fixed softsynth crackle bug, removed things that appears to be unused in MessSynthIF::getData (ml)
+26.3
+ * More controller-pane fixes + fixes for the editor settings (ml)
+25.3
+ * Some updates on the controller-pane (when used in the pianoroll) (ml)
+12.3
+ * Midi clock slave-sync improvements added from 0.7-branch (ml)
+27.2
+ * fix midi recording regression (wrong timestamp()) (ws)
+ * add hack to fst to enable newer wine libraries (ws)
+26.2
+ * Added Roland-SCD70.idf from Emiliano Grilli (rj)
+12.2
+ * DeicsOnze : numerous and names following the internal changes
+ * DeicsOnze : communication deicsonze<->deicsonzegui with midi events
+ * DeicsOnze : Communication with MusE for automation
+09.2
+ * fixed bug with sending start play w/ midi-clock (rj)
+26.1
+ * new cmd line option "-m MIDI only mode"; renamed options:
+ "-i trace midi input", "-o trace midi output" (ws)
+21.1
+ * DSSI synth plugin framework (ws)
+20.1
+ * fixed LADSPA default value calculation for ranges dependend
+ on LADSPA_HINT_SAMPLERATE (ws)
+19.1
+ * added automation for plugins (ws)
+18.1
+ * fixed track renaming in arranger (ws)
+ * some L&F changes in arranger window (ws)
+ * fixes in midi controller handling (ws)
+17.1
+ * DeicsOnze : category, subcategory, preset organized following
+ hbank, lbank, prog (aw)
+ * DeicsOnze : add popup menu to new, delete, load and save (aw)
+ * DeicsOnze : add load method for preset and subcategory (aw)
+14.1
+ * enable/disable controller objects in ChannelInfo and Mixer
+ according to automation status (ws)
+ * change name of config file to contain release version; this
+ allows for different MusE versions installed parallel (ws)
+ * added OK/Cancel to Midi Input Filter dialog (ws)
+ * remove DRUM track type. Drum tracks are now ordinary midi tracks
+ with toggle "useDrumTrack" switched on (ws)
+ * new "Monitor" button which resembles old "midiTrough" functionality.
+ Midi Input to a track is echoed to the track output device, if
+ "Monitor" is switched on. This is independent of the track record
+ status.
+ * patch from Erwin Scheuch-Heilig to allow for libtool >= 1.4 (ws)
+13.1
+ * removed defunct clip list editor (ws)
+ * removed redundant master list editor (ws)
+ * removed obsolet key.c key.h (ws)
+ * new libray al as base lib for awl (ws)
+ * renamed awl include files (ws)
+12.1
+ * added hex/dec switch to list editor (ws)
+ * added named SysEx strings to midi instrument definition file (idf)
+ for use with list editor (ws)
+ * removed midi "song type" (ws)
+11.1
+ * added updated muse.pro and muse_ru.ts from Alexandre Prokoudine (ws)
+10.1
+ * ZynAdd instrument def file added (ml)
+7.1
+ * add icons for selection operations in pianoroll editor (ws)
+ * update song len after manipulating part in arranger (ws)
+ * initialize horizontal magnification in arranger for new song (ws)
+ * use snap value when drawing new part in arranger (ws)
+ * more code for list editor (ws)
+5.1
+ * Changes to the list editor (ws)
+2.1
+ * Drumeditor static default init settings added for width, height, quant + raster (ml)
+ * Missing kbd shortcut initialization for undo+redo added to listedit (ml)
+ * Pianoroll static default init settings added for width, height, quant + raster (ml)
+ * Mastertrack listeditor updates ported from REL07 (ml)
+25.12
+ * shortcuts in arranger on their way back (ml)
+23.12.
+ * fixed: controller panes in pianoroll editor are not resizable
+ after MusE restart anymore (ws)
+22.12.
+ * unify controller editing in arranger and pianoroll window (ws)
+18.12.
+ * changed backup logic: 1. write temp file
+ 2. rename name to backup name 3. rename temp file to name
+ Step 2 i only performed once per session/songfile.
+ * changed install path for from $prefix/share/muse/ to
+ $prefix/share/muse-0.8/ and from $prefix/lib/muse to
+ $prefix/lib/muse-0.8 to allow for parallel installation
+ of old and new MusE versions
+17.12.
+ * added slider for vertical magnification to arranger track list (ws)
+ * added "off" button to arranger track list (ws)
+15.12.
+ * fixed bug #1085738: synth name problems (ws)
+14.12.
+ * horizontal position in arranger is now persistent (ws)
+ * Disable of fluidsynth works (rj)
+ * Added test for libsamplerate (rj)
+ * Reenabled --enable-suid-install (rj)
+ * Added alsa timer (not enabled yet) (rj)
+12.12.
+ * sync again audio prefetch when changing loop markers (ws)
+9.12
+ * Now autogen.sh requires libtool = 1.4, 1.5 does not generate
+ softsynths correctly (rj)
+4.12
+ * Added another IDF from Christoph Eckert for Alesis QSR,QS7 and QS8 (rj)
+1.12
+ * fix import of type 0 midi files (ws)
+ * horizontal magnification in arranger is now persistent (ws)
+30.11
+ * fix midi controller handling (ws)
+ * Added IDF files from Christoph Eckert for Access Virus,
+ Hammond XB and Waldorf Microwave (rj)
+24.11
+ * deicsonze, updates from a-lin
+ * simpledrums, ladspa support and fx-handling added, channel on/off added - no gui
+ for loading effects yet though... (ml)
+18.11
+ * simpledrums, updates & fixes (ml)
+14.11
+ * simpledrums - init data and reinitialization of synth state
+ added (ml)
+09.11
+ * simpledrums resampling of samples added w libsamplerate (ml)
+08.11
+ * Added simpledrums synth (ml)
+01.11
+ * Added Alin Weiller's DeicsOnze synthesizer (ws)
+26.10
+ * loading soundfonts manually adds them to first available
+ channel (ml)
+ * added new shortcuts for proll + drumedit: ctrl+left/rightarrow
+ moves selected events along the timeline by rasterval (ml)
+25.10
+ * changed shortcut texts to use static const array values
+ to make it possible to translate them with Qt linguist (ml)
+ * readded saving of settings on open editors (ml)
+23.10
+ * updates and fixes on settings (ml)
+21.10
+ * added the new CVS splash screen! *muha*
+11.10
+ * changed awl lib for using c++ namespace (ws)
+ * misc updates for automation (ws)
+27.9
+ * new dialog to add/remove midi controller for
+ automation (ws)
+25.9
+ * added metronome volume to "Metronome Config" (ws)
+18.9
+ * Added Alesis-Ion.idf from Sebastian Gutsfeld (rj)
+ * unified midi & audio controller (ws)
+15.9
+ * applied patch from Sebastian Gutsfeld to enable midi NRPN14 and
+ RPN14 type controller (ws)
+ * simplified xml write interface (removed "level") (ws)
+14.9 (ws)
+ * replaced xml reader by Qt dom functions
+ * complete redesign of arranger
+07.09
+ * added Quasimidi-Sirius.idf from Nicolas Jouanne
+ * added icon adapted by Emiliano Grilli ;-)
+31.08
+ * double click on empty effect slot popups "New Plugin" dialog (ws)
+ * updated README.ladspaguis
+ * fixed instrument patch name update in channel info (ws)
+ * added "F" button to configure "follow song" for every pianoroll
+ editor (ws)
+30.08
+ * remove input routing button from synthesizer mixer strip (ws)
+ * add configure options to show only certain track types in
+ mixer (ws)
+ * add "Add Soft Synth" to "CreateTrack" menu in arranger, mixer
+ and tracklist popup (ws)
+ * fixed "prefetch(): invalid write position" bug (ws)
+28.08 (ws)
+ * set caption of main window when importing midi
+ * add midi file types to "load file" file dialog
+ * default for configure ladcca is now "no"
+ * default for configure suid install is now "no"
+ * use awl lib for customized plugin guis (Freeverb 1050.ui and
+ Tap Reverberator 2142.ui)
+ * create designer plugin for awl library
+ * extend awl lib for use with customized plugin guis: new
+ widgets AwlCheckBox and AwlComboBox
+25.08
+ * fixes for ladspa plugin logarithmic sliders (ws)
+ * midi track info is now synchronous with mixer; patch names
+ are working again (ws)
+ * calling jack process() once before starting jack prevents
+ zombification on startup (warming up caches?) (ws)
+24.08
+ * config settings saved for open editors reimplemented (ml)
+ * automatically assign a free midi port to every new
+ created software synthesizer (ws)
+ * midi port configuration can now be reached by right clicking
+ in port column of arranger tracklist (ws)
+ * toggling soft synthesizer gui in arranger tracklist moved to the
+ track name context menu (right click) (ws)
+ * fixed crash on undo "delete vsti track" (ws)
+23.08
+ * doubleclick on volume slider sets value to "off" (ws)
+ * implement toggle behaviour for marker list (ws)
+ * fix crash in list editor - create new controller (ws)
+ * fix crash when vsti synti has more outputs than mixer strip has
+ channels (ws)
+ * increase required JACK version to 0.98.0 (ws)
+21.08
+ * native GUIs for VST plugins (ws)
+20.08
+ * VST plugins (ws)
+19.08
+ * new infrastructure for VST plugins (ws)
+16.08
+ * fix midi import: tick values of tempo/signature
+ and marker events are now properly converted to internal
+ resolution (ws)
+ * fix record flag in midi mixer (ws)
+ * fix awl setEnabled(); disable some more widgets in audio
+ strip in "off" state (ws)
+ * fixed solo & mute for midi in mixer (ws)
+ * fixed midi activity display in mixer (ws)
+ * new awl widgets: AwlMeterSlider(), AwlMidiMeterSlider() (ws)
+ * in automation mode "AutoOff" recorded midi controller volume, pan,
+ reverb send, chorus send and aux send are not send to midi
+ output. (ws)
+14.08
+ * fixes to midi mixer (ws)
+ * fixed project path in file dialogs when MusE has just been started (rj)
+13.08
+ * new configuration flag "useJackFreewheel" Settings->globalSettings
+ (ws)
+ * fix bounce operation (ws)
+12.08
+ * fix stereo/mono switching in audio mixer (ws)
+ * fixed "prefetch: NO BUFFER" warning during recording (ws)
+ * midi mixer + awl library fixes (ws)
+09.08
+ * Added automatic rec-enabling of selected tracks in a hopefully
+ intelligent way (rj)
+02.08
+ * stored editorsettings now saved (ml)
+31.07
+ * more updates on midieditor settings (ml)
+30.07
+ * added default route to output track (ws)
+28.07
+ * optimized mixer gui handling (ws)
+ * added new audio widget library awl, new look for mixer (ws)
+ * fixed core on creating new aux track; bug caused by introduction
+ of new audio metronome (ws)
+27.07
+ * first step against new handling of settings for midieditors w respect to parts (ml)
+21.07
+ * new feature: audio metronome (ws)
+ * reorganized Synth & SynthI classes (ws)
+20.07
+ * updated muse/muse.pro and share/locale files (ws)
+ * Added missing include to vst.cpp (rj)
+18.07
+ ========================================
+ * 0.7.0 tagged ! (rj)
+ ========================================
+ * output fifo warning only if cmd line "-D" switch is set (ws)
+17.07
+ * fixed separate handling of recorded events vs played events (ml)
+15.07.
+ * do not start the disk helper thread in realtime mode (ws)
+ * check for JACK thread really running in SCHED_FIFO mode, if not
+ (as on my system with kernel 2.6.7 and nptl) try to set it. (ws)
+ * removed some exit() and abort() calls to react somewhat more gracefully to
+ to internal errors (ws)
+14.07.
+ * fixed -V (no vst instruments) option (ws)
+ * do not save midi controller information in ~/.MusE file (ws)
+ * another try to fix midi loop handling: Loop len now should be
+ sample accurat. The loop is shifted left at most one audio
+ cycle to meet the requirement of loop end matching audio cycle
+ end. When JACK transport is in "JackTransportStarting" mode,
+ MusE internally continues rolling, so there are no repeated
+ cycles anymore (ws)
+ * Added message boxes when alsa and jack fails to initialize (rj)
+ * Disabled solobuttons in mixer (rj)
+13.07.
+ * added new icons for the mixer solo/mute (js)
+ * added refresh for the solo/mute icons (rj)
+ * added icons for drum-/listeditor in the arranger on rightclick (js)
+12.07.
+ * fixed typo in loop handling (ws)
+ * added patch from Daniel Schmidt to be able to configure
+ MusE without X being available (rj)
+ * Removed geometry data etc from templates (rj)
+11.07.
+ * disabled midi mtc sync as its not implemented; disabled
+ midi sync slave modes as they are currently not working (ws)
+ * enabled sending midi clock (ws)
+28.06.
+ * splitted removeTrack()/insertTrack() into three phases: pre realtime
+ actions - realtime actions - post realtime actions; this allows
+ to move memory allocations out of realtime task (ws)
+ * changed undo/redo of tracks: synti instances are now really deleted on
+ delete track (ws)
+ * jack connection changes with qjackctrl are now recognized by MusE (ws)
+27.06.
+ * applied patch from John Check to add a panic button to pianoroll
+ editor (ws)
+28.06.
+ ========================================
+ * 0.7.0pre4 tagged - one more (rj)
+ ========================================
+26.06.
+ * Some packaging additions, icon, spec files.
+ (only mdk at the moment) (rj)
+25.06.
+ * fixed midi timing bug (ws)
+19.06.
+ * don't catch SIGCHLD, this interferes with vstInit() (ws)
+ * "givertcap" was not found when not in current directory (ws)
+ * impl. "all notes off" for organ synti (ws)
+18.06.
+ * disabled buttons for not implemented functions (ws)
+ * added muse/wave/solo button in the trackinfo ;-) (js)
+15.06.
+ * enabled some midi sync code (ws)
+14.09.
+ * dialogs for change of drummap when converting miditrack to drumtrack
+ or changing port. redirection of keyevents from tlist to canvas (ml)
+13.09.
+ * save/restore parameter for VST synthesizer (ws)
+ * automatic trackchange in tracklist when selecting parts in arranger (ml)
+ * added modify velocity to drumeditor + bugfix for modify velocity (ml)
+ * save/restore parameter for VST synthesizer (ws)
+12.09.
+ * fixed backup command when filename contains spaces (ws)
+ * fixed midi step recording (ws)
+ * fixed bug in arranger: pressing enter after renaming part started
+ editor (ws)
+09.06.
+ * added support for VST/windows software synthesizer (ws)
+ * delayed loading for software synthesizer: syntis are loaded, when
+ they are instantiated the first time (ws)
+08.06.
+ * fixed --enable-rtcap configuration option (ws)
+07.06.
+ * increased "dimension" in memory.h to make MusE work on 64 bit
+ architectures as requested from Simone Piunno (ws)
+ * added aux send for syntis (ws)
+ * added info box which explains why when MusE gets kicked by Jack (rj)
+06.06
+ * added instrument definition for roland MC-505 from Wim VW (ws)
+05.06
+ * Added backup creating save patch from Levi D.Burton (rj)
+01.06
+ * transpose + grid patch added (alin weiller)
+ * fixed moving events in drum editor (ws)
+ * added new config option: disable splash screen (ws)
+31.05
+ * fixed crash in pianoroll when using shortcuts for selecting
+ quant values when quant was set to 1 (no quant) (ws)
+ * fixed a crash when moving an event to tick positions < 0 (ws)
+ * fixed: selecting a note in pianoroll editor and changing a value
+ with note-info toolbar crashed MusE (ws)
+ * bugfix arranger: fix for selecting part -> ignore global accelerators (ml)
+ * bugfix for arranger selection of part above/below when using keyboard (ml)
+ * added pianoroll velocity variation patch (alin weiller)
+30.05
+ * hopefully a fix for drum in & outmap-issues in midi.cpp (ml)
+25.05.
+ * shortcuts for "arrowing around" in arranger added (ml)
+ * 0.7.0pre3 tagged - the last!!! I hope (rj)
+24.05.
+ * fixed a crash on new -> load template (ws)
+ * FluidSynth: added support for drumpatches (equiv to midichan 10 patches) (ml)
+23.05.
+ * exit if rtc open() fails (ws)
+ * changed default start behaviour to open default.med template (rj)
+18.05.
+ * added many new/redone icons (js)
+ * changed aboutbox.ui for qt 3.2 compatibility
+ * changed app.cpp (added the icons)
+17.07.
+ * added stereo/mono icons to mixer (ws)
+ * added a first version of an icon for muse and adapted aboutbox to the same.
+ (graphics by Joachim Schiele) (rj)
+ * Improved handling of browser for help system (rj)
+16.07.
+ * Added FluidSynth fix for ignoring preset selection of soundfonts that don't exist (ml)
+ * fix midi import of pitch bend events (ws)
+ * fix pitch bend handling (ws)
+ * enlarge PitchLabel width so that 14 bit controller values can be
+ displayed without clipping (ws)
+15.07.
+ * removed some debug messages (ws)
+12.07.
+ * show one more measure in pianoroll and drum editor (ws)
+ * renamed controller name "Hold1" to "Sustain" in *idf files (ws)
+11.07.
+ * New try at fixing help browser on all systems (rj)
+10.07.
+ * updated muse.pro and translation sources (share/locacle/*.ts) (ws)
+ * list editor: implemented input mode for program change messages (ws)
+09.07.
+ * fixed "edit - delete track" hangs MusE - bug (ws)
+07.07.
+ * fixed routing for stereo LADSPA plugins used in mono strips (ws)
+ * midi import: first resolve note on/of then transform ticks to internal
+ resolution (ws)
+06.06.
+ * set global automation default to "true", set midi track automation to
+ "read" (ws)
+ * enable auxSend chorusSend and reverbSend in midi mixer strip if
+ corresponding controllers are added (ws)
+ * init automationType for midi tracks (ws)
+ * fixed gm.idf instrument definition file (ws)
+ * implemented "Add New Controller" in list editor / edit controller (ws)
+ * save current midi controller values in *.med file (ws)
+05.05.
+ * updated roland-XP30.idf instrument definition (Sverre H. Huseby)
+04.05.
+ * 0.7.0pre2 tagged (rj)
+03.05.
+ * fixed a cut/glue bug probably introduced at 24.04 (ws)
+ * fixed compilation of musewidgetsplugin.so (ws)
+ * changed splash screen handling, used QTimer instead of background thread (ws)
+02.05.
+ * Added first version of splash screen (rj)
+01.05.
+ * Updated LADCCA support to (almost) usable condition (rj)
+30.04.
+ * Added zoom scaling in drum editor, same as piano roll (rj)
+29.04.
+ * Disabled Random Rhythm Generator (rj)
+ * Took a stab at fixing up shortcuts (rj)
+ * Fixed crash bug when clicking Channel Info and there was no info (rj)
+28.04.
+ * Added single key shortcuts for edit tools (rj)
+ * added shortcut for Marker editor (rj)
+ * and fixed some shortcut inconsistencies (rj)
+27.04.
+ * update marker list on tempo change (ws)
+ * allow adding markers from the ruler with shift-click (rj)
+26.04.
+ * added missing header file(s) (ws)
+25.04.
+ * fixed aux processing: stereo -> mono aux (ws)
+ * metronom now sends proper note off events (ws)
+24.04.
+ * deactivated clip list editor. (ws)
+ * after loading of template, treat current project as "untitled" (ws)
+ * removed data structure "Clip". All information are now in WaveEvent;
+ this simplifies the structure a lot and makes reference counting more
+ reliable. Unfortunatly this also means a new incompatible *.med file
+ version. (ws)
+ * changed reference counting of Event class; simplified and more reliable (ws)
+21.04.
+ * fixed some synchronisation issues between mixer and trackinfo window (ws)
+ * fix update of mixer after removal of aux strip (ws)
+20.04.
+ * Added shortcuts to bug reporting tool, homepage,
+ and updated AboutBox (rj)
+19.04.
+ * fixed QT version check in m4/qt.m4 (ws)
+18.04.
+ * add samplerate initialization to fluidsynth (ws)
+ * compilation fix: added missing include in fluid.cpp (ws)
+17.04.
+ * File->New crashed when current project had selected audio track (ws)
+
+15.04.
+ * 0.7.0pre1 * tagged for prerelease (rj)
+ * arranger: fast repeated pastes now works more reliable (no more stacked
+ parts) (ws)
+ * Thread(): crashed, when poll() returned more than one ready file descriptor
+ and the corresponding callback routine manipulates the list
+ of file descriptors. This happened timing dependend and only in real time
+ mode. (ws)
+ * fixed Fifo() get() (ws)
+ * small extension in soft synth interface (Mess()): added return values
+ for processEvent()
+14.4.
+ * fixed pan range for midi mixer strips
+ * renaming soft synth instances + save/restore should now work
+ * fixed fluid "gui"
+ * changed CTRL_VAL_UNKNONW as it conflicts with valid
+ values for CTRL_PROGRAM (ws)
+13.4.
+ * dont crash on missing LADSPA plugin (ws)
+ * set metronome precount default to "false". Precount is not
+ implemented. (ws)
+ * fixed crash when toggling stereo or pre buttons in mixer (ws)
+ * synchronize channel number in mixer/arranger-tracklist (ws)
+ * changed all float printf("%f") to equivalent qt-string
+ routines; dont localize decimal point so that the
+ strings can be properly parsed; this should fix some
+ save/restore problems in localized MusE versions (ws)
+12.4
+ - arranger/portinfo: fix update of instrument names (ws)
+ - fluid synth: enable drumsets (ws)
+ - fixed crash on inserting meta/ctrl/aftertouch in list
+ editor (ws)
+ - fixed crash in arranger when moving mouse+Alt after
+ removing a track (ws)
+11.4 - fixed initialization of Pan after load of new song (ws)
+ - fixed graphical master track editor (ws)
+ - fixed Qt-Version check (ws)
+ - small qt3.2 compatibility changes (string->toInt() conversion) (ws)
+10.4 - made plugin selector remember the previous selection type (rj)
+4.4 - drag & drop import of wave files (rj)
+ - drag & drop import of mid files (rj)
+3.4 - reactivated vam synthesizer
+ - fixed initialization bug in s1 synthesizer demo code (ws)
+ - added another vertical line in drum editor
+2.4 - integrated new icons (ws)
+ - increased required QT-Version to 3.2 in configure.ac (ws)
+1.4 - added vertikal line in track list as suggested by Joachim Schiele
+ - fixed synchronisation issue between mixer and tracklist (changing midi channel can
+ add/remove mixer strip) (ws)
+ - Changed pan range to -1 +1 (rj)
+ - added new icons from Joachim Schiele (not integrated) (ws)
+ - Support for showing only selected plugins in plugin dialog (rj)
+31.3 - Added various compile fixes needed by debian (rj)
+29.3 - Updated mc303 instrument file from Conrad Berh�ster (rj)
+25.3 - bugfix for pos increase/decrease shortcut (ml)
+24.3 - bugfix for mtscale redraw area when window is scrolled left
+ - bugfix for arranger shortcuts (ml)
+23.3 - added position seek to drumeditor + arranger.
+ - increase/decrease pitch of selected notes in drumeditor with ctrl+up/down
+ - added quantize shortcut keys (1-8) in drumeditor (ml)
+21.3 - added shortcut for pitch increase and decrease of sel notes, in pianoroll (Ctrl+Up/Down)
+ - moved shortcut handling for pianoroll + drumeditor to EventCanvas
+ - leftmost note selected when opening proll/drumeditor (ml)
+16.3 - added shortcut for iterative quantize in p-roll. added shortcuts for
+ selection of notes in p-roll and drumeditor: left/right arrows moves
+ selection, holding down shift adds to current selection (ml)
+ - bugfix, moved blocking of signals on startup to exclude loading of project since
+ a bunch of widgets didn't get updated (ml)
+12.3 - bugfix for menu initialization of "add track"-menu shortcuts (ml)
+ - added some regular 7-bit controllers to Fluidsynth (ml)
+6.3 - Fluidsynti chorus operational again, controlled by NRPNs and
+ automatic gui-update here too. (ml)
+ - Fluidsynti reverb restored. Reverb is now controlled by NRPNs.
+ Automatic updates of gui when controller-changes occur. Unloading
+ of soundfonts restored. (ml)
+4.3 - Fluidsynti playback restored. Gain restored. (ml)
+3.3 - Fluidsynti major rewrite, not fully functioning though (ml)
+ - fixed crash on reload song with open mixer
+ - fixed crash on saving *.med: dont save aux values for channels
+ which have no aux send (like aux strips)
+ - remove empty record wav files on MusE exit
+ - fixed crash on undo controller editing (ws)
+28.2 - more icons from Joachim Schiele (ws)
+ - fixed crash with mouse wheel events in arranger track list
+ - fixed some routing related crashes
+25.2 - show mixer strip in trackinfo window for audio tracks (ws)
+24.2 - compatibility patch to read midi tracks from old 1.0 *.med
+ files (ws)
+ - implemented quick input routing from jack (ws)
+ - added some new icons form Joachim Schiele (ws)
+23.2 - implemented quick output routing to jack; some routing
+ fixes (ws)
+22.2 - added instrument map for yamaha PSR 530 keyboard from
+ Lalit Chhabra (ml)
+ - misc compilation fixes from Joost Yervante (ws)
+21.2 - added drum map for Yamaha DX200 from Joost Yervante Damad (ws)
+ - "quick routing" buttons in mixer (ws)
+17.2 - install musewidgetsplugin.so in PREFIX/lib/muse/qtplugins/designer
+ and add this path to qt library path in application (ws)
+16.2 - trackinfo geometry management changes (ws)
+14.2 - added volume controller to organ, so that the organ
+ synthesizer volume can be controlled in the mixer midi strip (ws)
+13.2
+ - optimized "organ" software synthesizer: precomputed frequency
+ tables, integer envelope generator based on bresenham algorithm;
+ added "velocity" switch; (ws)
+ - changed VAM synthesizer for new interface (ws)
+
+12.2 - controller movements in software synthesizer gui's are now
+ send as midi events to MusE and can be recorded/replayed/edited
+ (currently only working for "organ" synti) (ws)
+ - changed software synth interface (again) (ws)
+
+11.2 - expanded trackInfo by default (rj)
+ - added some graphics to trackInfo :) (rj)
+ - changed "White" to "Default" (still white though) (rj)
+ - fixed trackInfo updating for tracks without their own trackInfo (rj)
+ - added lousy fix to update trackInfo when a track is deleted.
+ it's lousy because it's updating the trackInfo even though the
+ removed track wasn't highlighted, can place you in a tight spot
+ at times. I added it anyway because it removes a crash problem.
+ a better fix would be preferable. (rj)
+ - fixed mouse wheel functionality on knobs and sliders in mixer. (rj)
+
+8.2 - propagate track name changes to mixer (ws)
+ - enforce unique track name when user renames tracks (ws)
+ - implement one to many audio routing (ws)
+ - fixed bug in route dialog refresh after inserting new strip (ws)
+ - fixed aux send volume (ws)
+
+4.2 - added missing activate() to LADSPA plugin initialisation.
+ This fixes crashes with some plugins (plugins who use activate()
+ to allocate memory) (ws)
+ -fixed user definable LADSPA guis using QT-designer; added another
+ example *.ui file for "Toms'Audio Plugins" TAP-Reverberator (ws)
+1.2
+ - logarithmic values were initially wrong for spin boxes in
+ LADSPA guis (ws)
+ - On-the-fly-change of shortcuts in Listeditor, Drumeditor. Added selection
+ shortcuts to Drumeditor (ML)
+ - Added on-the-fly-change for shortcuts in pianoroll (connected to
+ configChanged-signal) (ML)
+
+30.1 save geometry of LADSPA plugin guis;
+ fixed missing mixer refresh after adding an auxSend strip (ws)
+29.1 mixer strip automation types OFF, READ, WRITE and TOUCH
+ implemented; automated controller so far: volume, pan (ws)
+27.1 more code for automation;
+ better reference counting for audio Clip; Clips with zero
+ reference are not saved in *.med file anymore (ws)
+26.1 - removed obsolete driver/midirawin* (ws)
+25.1 - removed obsolete raw midi devices & serial midi; all devices
+ are now handled by ALSA (ws)
+24.1 - changed "Configure" to "Settings"; changed "Display" to "View"
+ for better standard compliance (ws)
+23.1 - enabled controller editing in midi list editor (ws)
+19.1 - added new dir/lib libsynti to collect common code
+ for all software synthesizer (ws)
+18.1 - ported VAM software synthesizer to new MESS interface
+ (not complete) (ws)
+ - events send from synth gui are not echoed back anymore
+17.1 - drumedit: changed "keyFilter" to "drumInstrument"; use
+ it to handle drum instrument specific NRPN controllers (as defined
+ in XG standard (ws)
+ - move drum instrument select status from drumMap to drum editor.
+ This allows for independent selections in different drum
+ editors. (ws)
+ - extend midi controller definitions in *.idf files for
+ drum instrument specific NRPN controllers (controller number
+ contains pitch value) (ws)
+
+16.1 - Added small fix to editctrlbase.ui to make it compile (RJ)
+ - Updated various revision info in README (RJ)
+
+15.1 - Corrected appearance of buttons in Metronome window (FN)
+
+9.1
+ - "record" button in midi ChannelInfo; pressing this button
+ inserts changes in hbank/lbank/program/pan/volume as
+ controller events into song
+ - pianoroll editor: new "multi select mode": If more than one
+ event is selected, the event info spinboxes are set to zero.
+ Entered Values are interpreted as offsets and added to all
+ selected events.
+ - some fixes and performance enhancements to "MidiTransformator" (ws)
+ - fixed saving of drum tracks (ws)
+8.1
+ - changed arranger shortcuts + shortcut-configurator to use configChanged; all arranger menu shortcuts
+ redefinable on-the-fly. most menu options configurable (ML)
+ - now possible to toggle mixer window (ML)
+ - changed Ctrl+A in arranger to be used for select all instead of "Save As" for the sake of uniformity (ML)
+5.1
+ - new config (Config->GlobalSettings) option:
+ - start with empty song
+ - start with last song
+ - start with configured init song
+2.1
+ - smf type 0 export (ws)
+31.12
+ - midi export; fixes to midi controller handling (ws)
+30.12
+ - added dynamic shortcuts for all menu options in the arranger (will hopefully
+ work fine when config is loaded before menus are built) (ML)
+ - added check and prevention of conflicting shortcut sequences inside
+ respective categories, global shortcuts and misc "reserved"
+ shortcuts (ML)
+ - capture dialog grabs/releases keyboard (ML)
+26.12
+ - faster update of mixer (ws)
+22.12
+ - added dummy audio driver; this permits running MusE
+ without suid root and without RT priority when started
+ with "-d" option; this is for debugging & to get
+ normal core dumps (ws)
+20.12
+ - Reverb + chorus grayout-problem in fluidsynthgui removed. Some QT-designer files changed to 3.2 (ML)
+ - More shortcut updates: Added a dialog for capturing shortcuts (ML)
+18.12 (ws)
+ - "declicked" s1 demo synthesizer
+ - make organ controller values persistent
+ - fixed integer overflow in organ synti controller values
+17.12 (ws)
+ - new: mouse wheel events for track list values
+ - track colors in tracklist configurable in "appearance settings"
+ - more configuration options in "appearance settings"
+ part colors are now configurable
+ - ~/.MusE now contains only configuration data; this
+ settings are not replicated in *.med files any more
+10.12
+ - more shortcut stuff in the dummy shortcut config window (ML)
+ - new "load song" option: load all/load song data only (omit config data) (ws)
+ - new "File" function: load template; this function initializes current
+ song with another song (template)
+ - new option while importing a midi file: replace/add to project
+9.12
+ - More shurtcut stuff + dummy config dialog (ML)
+2.12
+ - Bugfixes in pianoroll for insert at current location and seek before
+ beginning of song (ML)
+ - fixed crash on "New" or loading new project
+(ws) - "bounce to track" now works "faster than realtime" with JACK
+ freewheel mode (JACK 0.91.0 cvs required)
+ - mixer automation for gain & pan; some basic functions
+ - preparation for adding imported midifile to current project
+1.12
+ - More shortcut preparations (ML)
+27.11
+ - Added mouse wheel handling for knobs and sliders
+ shift modifier available for extreme slow motion. (RJ)
+25.11
+ - drummapping for recorded events (not heard on record playback echo yet) (ML)
+ - misc updates& fixes for track handling (ws)
+ - removed activity column in tracklist; will be replaced by
+ mixer meter display (ws)
+ - midi record flag can be set again, enabling midi recording
+24.11
+ - Added first steps for uniform handling of shortcuts (ML)
+23.11
+ - some mixer updates(ws)
+22.11
+ - fixed software synth handling; looping is only possible
+ on segment boundaries (ws)
+20.11
+ - Bugfix for drummaps and keyfilter in drumeditor (ML)
+ - apply drum map when importing midi (ws)
+ - retain track ordering across save/load (ws)
+ - wave files in the project directory are stored with
+ relative path, all others now with absolute path (ws)
+16.11
+ - Map outputted drumnotes according to drumMap index (Mathias Lundgren)
+
+14.11. (ws)
+ - JACK transport interface implemented
+ - finally removed ALSA driver; JACK now required;
+ - default to RT-mode on start (-R option is removed); -d (debug)
+ starts without RT
+
+12.11. (ws):
+ - removed midi mixer; first code to integrate midi mixer
+ into audio mixer; mixer moved to pulldown menu "Display"
+ - mixer strips are handled like tracks in arranger (prepare
+ for automation)
+ - track type cannot changed anymore in arranger track list;
+ also removed double click creation of tracks which makes
+ no sense anymore
+ - integrated "atomic" patches from Daniel Kobras
+09.11. - audio routing fixes; mono/stereo switching for input/output
+ strips should now work; audio recording to tracks (ws)
+08.11. - aux send audio mixer strips (ws)
+ - Arrowing up and down update in arranger (Mathias Lundgren)
+07.11. - Fluidsynth compile problem w. Debian/qt/stl/gcc fixed (Mathias Lundgren)
+ - "Double undo"-bug fixed in Pianoroll (Mathias Lundgren)
+04.11. - many changes to audio mixer and audio routing; implement
+ framework for new audio features (ws)
+31.10.
+ - museProject set correctly when loading song on startup (RJ)
+ - save dialog added when adding first wave track (RJ)
+ - load/save of wave files handled with relative paths (to project) (RJ)
+ - Updated swedish translation (Robert Jonsson)
+ - Merged softsynth and midiconfig dialogs as in old tree(Robert Jonsson)
+ - Some museProject issues(Robert Jonsson)
+ - updated new midi controller implementation (ws)
+
+29.10. (ws)
+ - update soft synthesizer organ/fluid/fluidsynth; extent MESS
+ interface
+ - update from 0.6.2 (Mathias Lundgren):
+ - Various drumeditor-related updates including: Horizontal splitter
+ offset stored. Fixed length command added (Alt+L). Bugfix for selection
+ of events inside/outside locators. Initialization of drummap doesn't overwrite
+ entries loaded from project file.
+ - Alt+P sets locators to selected notes in PianoRoll and DrumEditor
+ - CTRL+Leftclick on an item in the Arranger, PianoRoll or DrumEditor selects all
+ parts/notes on the same track/same pitch
+ - Pressing Enter in the Arranger now opens the appropriate editor for the
+ part (Mathias Lundgren)
+ - The midithread now maps keys on a drumtrack according to the drummap.
+ - Cursor up/down (Mathias Lundgren)
+ - currently selected drum (Mathias Lundgren)
+ - fixed compilation error in givertcap.c (andrew)
+ - removed iiwu soft synth temporarily from compilation until
+ ported to new "mess" interface
+ - added missing file ltmain.sh
+ - create new cvs at sourceforge.net
+-------------
+ - removed obsolete score editor
+ - changed midi controller handling
+ - new process structure
+ - redesign of "mess" software synthesizer; removed alsa
+ - new midifile import/export
+ - fork from cvs; new file structure
+0.6.2(omuse):
+ - added first version of (incomplete) french translation from
+ - removed stk based soft synthesizer + share/rawwaves
+ - removed sound font
+ - fixed bug in midi recording when recording starts with a note off;
+ also the recorded part len was miscomputed when the recording ends with
+ a pressed key (missing note off event)
+ - added new allocator for SEventList and MPEventList (memory.cpp, memory.h)
+ to make sure the midi RT-thread does not call malloc/new/free/delete
+ - added misc build patches from Daniel Kobras
+ - make selection of alsa audio device an command line argument
+ (-A xxx default: hw:0)
+ - fixed "edit->select->allInLoop"
+ - fixed track height after renaming track
+0.6.1:
+ - fixed "Cakewalk Style" display in arranger
+ - added russian translation from Alexandre Prokoudinek
+ - arranger: tracks are now independent vertical resizable
+ - arranger: implement part rename from popup menu
+ - arranger: show part name in parts in addition to events
+ - audio mixer: interpret min slider position as "off"
+ - audio mixer: added value entry for pan (Robert Jonsson)
+ - audio: some routing fixes
+ - audio mixer: enable data entry for slider label
+ - ladspa plugin gui: replaced value label with data entry
+ to allow numerical entry of parameter values
+ - pianoroll: added undo/redo to edit menu + accel. keys
+ - ctrl editor: implemented changing (painting) of pitch
+ events
+ - added macros for big endian machines in midi.h
+ - added spain translation (Albert Gonzales)
+0.6.0:
+ - added swedish translations (Robert Jonsson)
+ - fixed editing of pitch events in list editor
+ - fixed crash in score editor
+ - check tempo entry values; dont allow invalid values which could
+ crash MusE
+ - fixed not functioning "Abort" button in MidiTransform dialog
+ - fixed Ctrl-editing in drum editor
+ - fixed "Group" audio routing
+ - fixed editing of pitch values in parts not beginning at tick zero
+ - fixed "unexpected EOF" after dragging of events in midieditor
+ - fixed cut&paste in midieditor
+ - implemented deleting multiple selected parts in arranger with Del key
+ - fixed audio pan pots in mono->stereo conversion
+ - changed iiwu to fluidsynth (thanks to Helio Chissini de Castro)
+ - new popupmenu: click with right button in empty tracklist
+ - LADSPA plugin guis are generated at runtime from qt-designer *.ui
+ (xml-)files; testfile is "freeverb.ui" for freeverb plugin;
+ - added "Slider"+"DoubleLabel" to musewidgetsplugin to make widgets
+ available in QT-Designer
+ - renamed poseditplugin.so to musewidgetsplugin.so
+ - fixed midi ctrl editor
+ - sparate sync device into txSyncDevice and rxSyncDevice. RxSyncDevice
+ can be configured to "all".
+ - use <asm/atomic.h> macros for atomically inc/dec count in lockfree
+ Fifo implementation
+0.6.0pre8:
+ - prepared for internationalization:
+ - created muse.pro
+ - removed all implicit type conversions char* -> QString
+ - added several missing translations tr()
+ - Part text is now colored depending on background (FN)
+ - fixed "bounce to file" fifo handling
+ - disable transport buttons in slave mode
+ - calculate correct size for new part after midi recording
+ - fixed crash when reloading song while audio mixer is open
+ - implemented "bypass" function for LADSPA plugin gui's
+ - changed obsolete qt header file names
+ - implemented external midi instrument definition files (*.idf)
+ (examples are in */share/muse/instruments)
+ - implemented moving plugins up/down in effect rack
+ - fixed: renaming wave track switched track to mono
+ - implemented LADSPA "LOGARYTHMIC" and "INT" hints
+ - disable record button for tracks with no input routed to
+ - implemented LADSPA "TOGGLED" port as QCheckBox in plugin gui
+ - changed algorithm for zeroing denormalized floats in freeverb
+ plugin; now it works again for gcc3.x and optimization flags
+ turned on
+0.6.0pre7:
+ - prevent creation of empty wave files when switching the
+ record button in audio mixer on/off; wave files are only
+ preserved when you actually record something into it
+ - made plugin guis persistent
+ - fixed scissor operation on wave parts
+ - added missing code for "bounce to file"
+ - fixed "bounce to track"
+ - removed/changed obsolete qt code
+ - update for current iiwu cvs
+ - fixed initialisation bug in wave editor
+ - dont link iiwu libs static
+ - (bh) added ladcca support
+ - fixed midifile export
+ - arranger, pianoroll editor, drum editor: tool popup menu
+ with right mouse button click
+ - update iiwu to current cvs version
+ - implement trackinfo patch names for iiwu
+ - fixed "appearance settings"
+ - added keyboard shortcut "Del" to delete events in pianoroll
+ and drum editor
+ - "Asterisk" key in keypad now toggles record mode
+0.6.0pre6:
+ - fixed len of new created event in pianoroll editor
+ - extend font selection in "apearance settings"
+ - Added shortcuts for "Select All", "Unselect All" and "Invert
+ Selection" in PianoRoll editor (FN)
+ - Fixed Event coloring and shortcut ("e") key (FN)
+0.6.0pre5:
+ - fixed midi seek & tempo map
+ - implemented global tempo change
+0.6.0pre4:
+ - fixed tempo handling
+ - pianoroll editor/drum editor: fixed changing of note position
+ - transport: some geometry/font changes; time signature can now
+ be changed by mouse wheel
+ - fixed glue/scissor tool
+ - catch sigchld signal again so we know when a softsynth gui exits
+
+0.6.0pre3
+ - fixed drawing of drum parts in drum editor
+ - on reading *.med files reject events which dont't fit into part (more robust
+ handling of defective med files)
+ - remove also synth gui when removing synth
+ - implemented some of Frank Neumann's usability suggestions:
+ - a "Copy Part" sets the current location marker after the marked part
+ - "Del" removes part if a part is selected instead of whole track
+ - new Keyboard Accelerator "C" toggles metronome click
+ - removed channel info for selected notes in pianoroll editor and
+ drum editor
+ - navigate between parts with left/right buttons in arranger window
+ - implemented changing note position for selected note in "note info" toolbar
+ - fixed: changing "loop" flag in transport window does not change "loop" flag in
+ other windows
+ - call pcm_wait() in alsa driver with sane values
+ - fixed: after load song seq did not run with rtc
+ - filenames for audio recording to tracks are now generated
+ automatically; every recording goes into separate file
+ - (bh) updated build system to use automake 1.7
+ - fixe Midi->DefineController "Cancel"
+ - new function: Midi->DefineController load+replace and load+merge
+ - fixed MFile write: close() was missing; this fixes a.o. saving of
+ midi controller sets
+ - make organ synth aware of project directory for saving presets
+ - fixed load/restore presets for LADSPA plugins
+ - changed organ default values for envelope generator
+ - more fixes for alsa driver (less xrun errors)
+ - lokal allokator for soft syth midi events implemented
+ - enable sample rates != 44100 for iiwu (JACK has 48000 default)
+ - cleanup soft synth instantiation: call alsaScanMidiPorts only one time
+ - small audio buffer handling optimizations
+ - some thread cleanups
+ - fixed audio mixer geometry handling
+ - another fix for RT thread handling in iiwu
+ - fixed recording of pitch events (not tested)
+ - load iiwu sound fonts in a background helper thread to
+ avoid being thrown out by JACK
+ - fixed RT thread handling; now muse+iiwu+jack works
+ - honour LADSPA default hints for controller ports
+ - removed some restrictions for LADSPA plugins
+ - fixed tempo entry in transport window
+ - added high priority watchdog process to avoid system freezes
+ - updated "iiwu" synth to use peter hanappes libiiwusynth
+ iiwu now remembers last used sound font
+ - fixed cut&paste for midi parts
+ - fixed cut function for midi parts
+0.6.0pre2:
+ - audio mixer: reset meter on mute
+ - changed input routing to allow monitoring while recording
+ - removed superfluous second init() call for soft syntis
+ - fixes for mono/stereo conversion
+ - ensure all wave files are properly closed on exit
+ - fixed segfault on second cliplist open
+ - fixed wave part split function
+ - fixed ALSA/JACK configuration bug
+ - event time positions are again stored as absolute time positions
+ to enhance compatibility with older "*.med" files
+ - changed panic button: instead of sending lots of note off
+ events only "all sound off" controller events are send for all
+ ports/channels
+ - fixed error on importing midi files when there are more
+ than one track assigned to a midi channel
+ - found another memory corruption bug in sysex handling
+ - fixed precount in metronome
+ - space key again stops play/record
+ - fixed stop/play in transport window
+ - prohibit change of mono/stereo for input strip
+ - convert mono/stereo on the fly for wave parts
+ - fixed crash when pressing play in empty song
+ - audio loop fixed
+ - _midiThruFlag not always initialized
+
+0.6.0pre1:
+ - attached midi mixer again
+ - fixed metronome: loop mode, measure/beat configurable
+ - moved part colorisation into part popup menu
+ - added global midi pitch shifter in addition to track pitch shift; this
+ allows for simple pitch transforming the whole song. Drum tracks are not
+ pitch shifted.
+ - fixed fatal error in soft synth handling resulting in sporadic
+ core dumps
+ - removed sf directory (sound file stuff) and replaced
+ it with the real thing: libsndfile 1.0.0
+ - removed bogus kde stuff: kde.h onlyqt.h desk.h
+ - JACK Audio support
+ - AUDIO & ALSA now required
+ - fixed memory corruption with sysex events
+ - simplified organ soft synth parameter handling
+ - removed illegal controller message optimizations
+ - implementation of "panic" button
+ - first instantiated synti did'nt show up in port list
+ - size of resized drum and pianoroll editor windows are now remembered
+ - fixed crash when configuring null audio device
+ - removing soft synth instance did not stop midi thread; alsa client
+ was not removed
+ - (bh) lots of buid system changes and general cleanups
+ - (bh) removed the use of the UICBASES make variable; .ui files can
+ now be added straight into _SOURCES make variables with the new
+ SUFFIXES support in automake 1.6
+ - (bh) upped minimum automake version to 1.6
+ - (bh) removed the use of the MOCBASES make variable; header files that
+ need to be run through moc are now detected automatically
+ - (bh) new iiwusynth softsynth
+ - (bh) removed support for oss and alsa 0.5
+ - clone parts implemented (also called "alias parts" or "ghost parts")
+ (dragging part with Alt-Key pressed in opposit to Shift Key which
+ produces a normal copy);
+ needed many internal changes; hope not to much is broken
+ - mastertrack: new spin widget for changing midi signature
+ - fixed midi thread initialization after loading new file
+ - stopped sequencer before loading new file; this should fix occational
+ core dumps on New/Load/ImportMidi
+ - some cleanups with file load/save operations
+ - Config->MidiPorts->otherRaw (device name pulldown): enabled OpenFile
+ Button for DevicePath field: At least current Qt can now handle devices.
+ - implemented:
+ - structure pulldown menu:
+ - global split
+ - global cut (mastertrack cut not implem.)
+ - global insert (without m.t.)
+ - implemented part mute
+ - added pitch transposition to pianoroll widget keyboard (Tim Westbrock)
+ - Save(As) behavior patch from Tim Westbrock
+0.5.3:
+ - updated stk library to version 4.0; adapted stk synthesizer
+ - added SECURITY advice from J�n Nettingsmeier
+ - several compilation & portability fixes from Takashi Iwai
+ - fixed keyboard entry in pianoroll editor
+ - midi now runs synchronous with audio
+ - midi record time stamps now again synchronous to play position
+ - fixed trackinfo geometry (hopefully)
+ - pianoroll: fixed endless loop if record was pressed
+ without any mididevices configured (reported by Ola Andersson)
+ - default to english help if help for $LANG not available
+ (Ola Andersson)
+ - detect misconfigured ALSA system (Ola Andersson)
+ - updated demo app "rasen.med" to current xml format
+0.5.2:
+ - fixed: rtc clock resolution settings in Config->GlobalSettings
+ - fixed: crash on second start of Edit->Marker
+ - more consequent implementation of -a (no audio) command
+ line parameter: no softsynth and LADSPA plugin loading;
+ disable audio menu
+ - fixed sending spurious midi controller settings on startup
+ when track info is active
+ - first code for "random rhythm generator" port from JAZZ++
+ - fixed start offset of midi recording
+ - pianoroll editor: fixed selection update
+ - appearance setting "font size" now persistent
+ - does not crash anymore if no ALSA system found. (ALSA is still
+ needed to compile MusE)
+ - fixed: multiple recordings: clear events form first recording
+ in record buffer
+ - fixed: crash when removing last track with open
+ trackinfo
+ - (bh) added beginnings of alsa midi patchbay
+ - changed suid handling: now MusE runs with normal user uid
+ and switches only to root uid for some special operations
+ - fixed mixdown file output
+ - fixed lock on startup when wave file was missing
+ - arranger: open tracktype pulldown with left mouse click
+ (was opened on right click)
+ - arranger: don't scale pixmap symbols
+ - added share/rawwaves to cvs repository (needed by stk synthi)
+ - changed software synthesizer interface "mess": moved more
+ common synth functionality to "mess.c"; changed synti's to new
+ interface
+ - removed obsolete "short name" in controller type dialog
+ - CtrlCanvas: always draw location marker on top of grid
+ - fixed: TrackInfo: velocity
+ - fixed: alsa midi: "pitch change" interpreted as "channel aftertouch"
+ - fixed some midi controller bugs
+ - implemented new parameter save/restore interface for soft
+ synthesizer (applied to "organ")
+ - (ws) fixed lost controller events on midi import
+ - (ws) fixed crash when removing soft synth in use
+ - (ws) appearanceSettings: changing font size now works better
+ - (Bob) files now include "config.h" instead of relying on -DALSA,
+ -DALSACVS, -DINSTDIR and -DAUDIO
+ - (Bob) Added 'delete preset' button to vam's gui and made it
+ remember what preset file it loaded
+ - Mess: added new class MessMono() which implements some
+ monophone synthesizer features. This is used in the
+ simple demo synthi s1
+ - if you try to exit MusE and abort this process, MusE was
+ left in an unusable state
+ - loop end was not calculated correct; event at loop end
+ was played
+ - muse now again stops at end of song in play mode
+0.5.1:
+ - fixed crash: SaveConfig after Config->SoftSynth->AddSoftSynth
+ - changed default audioSegmentSize from 256 to 512
+ - eliminated message: "input type 66 not handled"
+ - SoftSynth gui was startet with uid root
+ - save project: warn if file open fails
+ - removed trace message "unrecognized event 42" (Sensing Midi Event
+ from external keyboard). Anyway MusE does not handle midi sensing
+ events.
+ - changed geometry for trackInfo panel
+ - more code for 14 bit controller events
+ - install "rawwaves" for stk synti into right place preventing
+ crash on start
+ - fixed another crash when load soft synth configuration
+ - fixed Midi Position Label (was -1 beat/measure off)
+ - fixed problem with lost note off events
+ - generate "note on" events with velocity zero instead of
+ "note off" events
+0.5.0:
+ - pianoroll editor: caption is changed when current part
+ changes
+ - new software synthesizer adapted from:
+ STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
+ Version 3.2
+ By Perry R. Cook, 1995-2000
+ and Gary P. Scavone, 1997-2000.
+ http://www-ccrma.stanford.edu/software/stk/
+ - added presets to "Organ" software synthesizer
+ - changed midi routing for software synthesizer:
+ - controller changes from gui can be recorded
+ - new midi thread implementation
+ - speaker button in pianoroll editor implemented:
+ if on events are played if clicked
+ - new Menu: Midi->InputPlugins
+ - demo plugin "Transpose"
+ - moved Config->MidiRemote to Midi->InputPlugins
+ - moved Config->MidiInputFilter to Midi->InputPlugins
+ - moved Config->MidiInputTransform to Midi->InputPlugins
+ - as usual some bug fixes of old and new bugs
+ - master editor: fixed: locator bars sometimes invisible
+ - master editor: new tempo spin box to change tempo at current
+ position
+0.4.16:
+ - new software synthesizer adapted:
+ "Organ - Additive Organ Synthesizer Voice" from David A. Bartold
+ - new simple demo Synthesizer S1
+ - remove the hardcoded qt path "/usr/qt3" (0.4.15)
+ - fixed many bugs
+ - new: implemented line draw tool in controller editor
+0.4.15:
+ - qt3.0 now required
+ - many gui/widget changes
+ - fixed segfault when pasting wave parts
+ - changed (again) default magnification in wave-view
+ - implemented prefetch thread for playing audio files
+ - fixed: iiwu did not play with ALSA 0.6
+ - fixed: handle audio underruns for ALSA 0.6
+0.4.14:
+ - some makefile and compilation changes
+ - audio play: noise between audioparts during playback
+ - dont stop at end of song when "loop" is active
+ - default magnification in wave-view set to 1
+ - fixed a audio route initialization bug
+ - new metronome configuration: precount configuration added
+0.4.13:
+ - avoid "disconnect error" on startup
+ - wave view: y magnification now persistent
+ - small gui enhancements to reduce flicker
+ - make install: now creates gui dir
+ - implemented 8 bit wave input format
+ - fixed another source of audio crashes
+0.4.12:
+ - audio play: mixing buffer was only partly cleared resulting
+ in random noise
+ - fixed: core after removing soft synth instance
+ - set default master volume to 1
+ - fixed some audio routing bugs
+ - drumedit: added missing display update after drum map loading
+ - drumedit: fixed: when loading external drum map, velocity values
+ got zero
+ - drumedit: fixed: core some time after loading external drum map
+0.4.11:
+ - iiwu: in GM-mode dontt allow drum channel program changes;
+ also ignore bank select messages
+ - set GM-Mode resets synth
+ - some changes in drum channel handling
+ - substantial changes in audio implementation
+ - reimplemented audio configuration
+ - miditransform: val2 transforms fixed
+0.4.10:
+ - iiwu: implemented sustain, ctrl:expression
+ - iiwu: changed sync audio/midi; this fixes some timing issues
+ - iiwu: fixed: core when loading new sound font while playing
+ - split RT thread into separate midi & audio thread
+ - fixed some bugs: crash on midi recording
+ - some new functions in pianoroll editor
+ - added/integrated Tommi Ilmonens "givertcap"
+ - iiwu: some fixes for ALSA 0.9beta
+ - arranger: voice name popup in channel info works again
+0.4.9:
+ - fixed some memory leaks
+ - before loading a new song all synthesizer instances are
+ now removed
+ - reorganized installation:
+ - there is a toplevel installation directory
+ (default /usr/muse); the environment variable MUSE
+ points to this directory
+ - architecture dependent files go into
+ $(MUSE)/lib, architecture independent files
+ into $(MUSE)/share
+ - MidiSync: MC ticks are now also send in stop mode
+ (if configured)
+ - after "Start" is send, sequencer starts on next
+ midi clock tick
+ - iiwu: fixed core dump on save if no soundfont loaded
+ - iiwu: high resolution buffer size independent midi event
+ processing
+0.4.8:
+ - faster display updates
+ - some changes for better compatibility with different
+ environments (compiler, lib)
+ - fixes for ALSA 0.5.11
+ - fixed core dump while removing soft synth instance
+ - fixed some bugs with iiwu+gui
+ - fixed: TransportWindow: tempochanges while masterflag is off
+ - fixed: all tempochanges are now saved in songfile
+0.4.7:
+ - ALSA 0.5.11 compiles again
+ - MESSS gui interface, first try:
+ -every midi instrument can have an associated
+ GUI (currently only impl. for MESSS soft synths).
+ The GUI is startet as a separate process connected
+ to the midi instrument. The gui sends midi commands
+ (sysex) to stdout. This midi data stream is connected
+ to the midi instrument port.
+ - test implem. can load sound fonts into iiwu synthi
+ - fixed a bug in loading big sound fonts
+ - waveedit: waveform display works again
+ - some iiwu changes
+0.4.6:
+ - completed midi input architecture: every midi track has now
+ assigned input port+channel. Channel can be 1-16 or "all".
+ This allows for routing of different midi channels to
+ different tracks while recording.
+ - changed max number of midi ports from 8 to 16
+ - fixed serveral bugs iiwu software synthesizer
+ - fixed compilation problems with some ALSA versions
+ - fixed: changing track name changed record flag
+ - fixed: remove midi editor if associated track is removed
+ - fixed: initial state of solo button in arranger
+ - fixed: hard to reproduce core while deleting track
+ - new command line option to set real time priority
+ - max number of midi ports is now 16
+ - audio recording from master to file now works:
+ - configure Audio->MixdownFile (only wave/16bit)
+ - switch on record button in audio mixer master strip
+ - play
+ - fixed: graphic master editor: missing display refresh
+ after signature change
+ - changed midiThruFlag: removed from Config->MidiPorts;
+ "midi thru" now is associated with a track, if set all input
+ to that track is echoet to track port/channel
+
+0.4.5:
+ MESSS: (MusE Experimental Software Synthesizer interface Spec):
+ A software synthesizer is implemented as a dynamic
+ loadable library (*.so file) with two interfaces to the
+ outside world:
+
+ - a LADSPA interface for audio output
+ - a midi sequencer interface registered to ALSA
+
+ MusE searches all available synths and presents a list
+ in Config->SoftSynthesizer. To use a synthesizer you have
+ to create an instance. Several instances of an synt can be
+ created and used. Every instance creates
+
+ a) an alsa midi sequencer port (look at Config->MidiPorts)
+ b) a new strip in the audio mixer
+
+ As a demo i ported a stripped down version of the iiwu
+ software synthesizer (http://www.iiwu.org) to MusE.
+ Setup info is in README.softsynth
+
+0.4.4:
+ - fixed cakewalk style event display in arranger
+ - track comments are handled as 0xf text meta events in
+ midi files
+ - fixed: follow song in pianoroll/drumedit (daniel mack)
+ - fixed: refresh in list editor
+ - implemented 14 Bit controller in list editor
+ - new patch form Takashi Iwai enables MusE to compile
+ with ALSA 0.9.0beta5 and current cvs version
+
+0.4.3:
+ - new: Config->MidiInputTransform
+ - new: comments for tracks: click with right button on track
+ name in arrange window
+ - fixed: score editor sometimes eats up all memory on start;
+ machine was unusable for some minutes until muse crashes
+ - fixed some other smaller bugs
+ - patch from Takashi Iwai for latest (cvs-) ALSA
+ - fixed: score postscript generation (printer & preview output)
+
+0.4.2:
+ - added few missing display updates (bugs introduced
+ with 0.4.1 drawing optimizations)
+ - pianoroll editor:
+ - fixed: edit->DeleteEvents
+ - drum editor:
+ - implemented: edit->DeleteEvents
+ - use different cursor shapes while using
+ Glue- Cut- and Rubber tools
+0.4.1:
+ - some small Changes for compiling MusE with gcc 3.0
+ - track info values (transposition, velocity etc)
+ are now applied when exporting to midi file
+ - better geometry management for ctrl panel
+ - pianoroll editor / drum editor now allow for more than
+ one ctrl panel
+ - new: load/save midi controller sets
+ - automatic creation of midi controller sets on
+ midi import
+ - new: active(used) midi controllers for current
+ parts in editor window are now marked in controller list
+ - fixed: parts in open editors are not restored correctly
+ - many drawing optimizations; scrolling is now much
+ faster/smoother
+0.4.0:
+ - input configurable for every track
+ (you can record from more than one midi input device
+ to different tracks)
+ - you have to switch on the "record enable" flag for
+ every track you want to record to
+ - Note "h" is now called "b" unless you set
+ the environment variable "LANGUAGE" to "de"
+ - Changes from Daniel Mack:
+ - bigtime window now shows hour:minute:sec:frame
+ - configurable snap grid for arranger
+ - configurable font size
+ - again "tick underflow"
+
+0.3.20:
+ - "bigtime" widget from Daniel Mack
+ - fixed global accelerator keys f11/f12 (toggle transport &
+ bigtime window)
+ - fixed: score editor: try placing notes in the right margin of the
+ last row gave core dump
+ - score editor: different cursor shapes
+ - new try on missing midi sync ticks (producing "tick underflow"
+ trace messages)
+ - score editor: some small enhancements
+0.3.19:
+ - several small bugfixes from Daniel Mack
+ - fixed "make install"
+ - if you have trouble compiling ALSA audio:
+ change "AUDIO = yes" to "AUDIO = no" in make.inc
+ - some fixes/enhancements from Brian K:
+ - fixed: score editor: no more "EVENT not found" during subsequent
+ edits of a selected note
+ - scrubbing with rubber tool in score editor
+ - new part appearance option
+0.3.18:
+ - fixed: Export Midifile
+0.3.17:
+ - simple audio recording
+ - midi sync slave: received "start" did not reset pos to tick 0
+ - fixed several bugs in screen update and synchronisation between
+ different midi editors
+ - new: Configure->Appearance dialog from Daniel Mack
+0.3.16:
+ - "follow song" now works in both directions
+ - MidiTransformator: implemented missing "Copy" and "Extract" functions
+ - fixed: reset sustain at stop only for channels which really had sustain
+ set
+ - fixed several bugs in midi sync code; needs more testing
+ - received "set song position" from alsa midi driver now
+ handled in sync slave mode
+ - transport buttons are now disabled in "external midi
+ sync" mode
+ - fixed: do not send midi "start" "stop" "continue" etc. as sync slave
+ - fixed: several small bugs i cannot remember
+0.3.15:
+ - fixed: some typos in "MidiTransformator"
+ - fixed: core at end of midi recording from external
+ sequencer as sync slave
+ - replaced midi "continue" message with "start"
+ when running as midi sync master
+ known bug: midi clock output only if seq plays,
+ should be send always even if seq stops
+ not implemented: cannot change tempo as sync slave
+
+0.3.14:
+ - fixed: core: typo in "undo add track"
+ - fixed: core: "undo remove event"
+ - selection of events is now a global attribute: if you select
+ an event in an editor, the same event is selected in all
+ open editors
+ - new: Midi Transformator (look at edit->MidiTransform)
+ (not all operators and operations are implemented yet)
+0.3.13:
+ - fixed: TimeScale was wrong when using signature changes
+ - fixed: enforce left marker <= right marker
+ - new: mono wave tracks
+ - more usable LADSPA plugins to play with
+ - several small changes/bug fixes
+0.3.12:
+ - fixed: synchronisation of tempo/signature changes with sequencer rt-thread
+ - fixed: track parameter were added again and again in loop mode
+ - new: tempo/signature changes undo/redo
+ - new: midi "transpose" function from Daniel Mack
+ (Arranger: edit->midi->transpose)
+0.3.11:
+ - fixed: fixed serious bug in wave file handling
+ - simple audio play with ALSA 0.9.x
+ - fixed: editing events -> core (introduced in 0.3.10)
+0.3.10:
+ - fixed: core while deleting controller events
+ - new: extended configuration of raw (serial) midi interfaces
+ - fixed: some memory leaks
+ - changed for ALSA 0.9.0 beta2
+0.3.9:
+ - some smaller fixes
+ - fixed: core: missing MidiController() Initialization
+ - fixed: pressing another mouse button while "drawing" an event
+ in a canvas with left mouse button pressed gives core
+0.3.8:
+ - fixed: correct update of midi port table on song change
+ - CtrlEditor: controllers can(must) now be configured
+ - List Editor: corrected handling of meta/sysex strings
+ - changed: combined pitch high/low to single value ranging
+ from -8192 +8191; editable with controller editor
+ - ALSA 0.9.0beta1 works for midi; as far as i tested it, this
+ alsa version has no more problems with OSS raw midi emulation
+ - new: colored activity display in arranger (Daniel Mack)
+ - new: context sensitive extensions to "right mouse click
+ pulldown menues" for arranger parts (Daniel Mack)
+ - new: gui prototypes for extendend configuration of raw midi
+ devices and audio mixdown file selection
+ - fixed: quirks with OSS midi devices configuration
+0.3.7:
+ - start porting to ALSA 0.6.0 cvs version
+ - fixed: option -M produces midi output trace for alsa midi
+ - fixed: pianoroll and drum editor now accept input focus
+ and then honour some keyboard shortcuts
+ - fixed: score editor: core when inserting small rests
+ - new: "ruler" for pianoroll, drum editor and part editor
+ - fixed: midi recording: event len always 1 tick (bug introduced
+ in 0.3.6)
+ - midi port config: show only available raw midi devices
+ - fixed: tempomap/tempo save/restore
+ - fixed: initialize master button to saved value
+ - some smaller changes:
+ - midi recording: new parts begin at record start instead
+ of first event
+ - missing note offs are insertet virtually at record end
+ - recording takes place on selected track - selected part
+ and not on selected part if on different track
+0.3.6:
+ - fixed: markerList: click in list -> core
+ - fixed: stop at end of song only if not recording
+ - fixed: events of zero length crash the sequencer
+ - fixed: missing note off events for metronome
+ - fixed: gui: changing port/channel in trackinfo updates tracklist
+ - new: midi recording & loop
+0.3.5:
+ - fixed: midi recording with alsa was broken
+ - fixed: mastertrack: -> core
+ - fixed: rename track -> rename part -> core
+ - fixed: help browser: back function
+ - fixed: score: entered lyrics are saved again
+ - fixed: score->staffSettings: tracklist
+ - fixed: score->enterNotes wrong snap position
+0.3.4:
+ - fixed: some bugs & quirks
+ - new: implemented pianoroll->edit->deleteEvents
+
+0.3.3:
+ - new: MusE now stops at end of song if in PLAY mode
+ - fixed: core if muse was started without song name and
+ there was no ".musePrj" file in current directory
+ - new: on popular request: "RewindToStart" button
+ - fixed: changing devices while playing
+ - fixed: arranger: could not scroll to the end of song
+ - fixed: song lenght on midi import
+ - fixed: fatal error in handling "note off" events
+ - new: "sustain" is reset on stop
+
+0.3.2:
+ - fixed: part editing: endo delete, glue etc.
+ - fixed: option -m (trace midi input) works again
+ - fixed: midi input filter: could not toggle channel 1 button
+ - fixed: midi mixer
+ - fixed: midi recording into part: part length adjusted if events
+ recorded past end of part
+ - fixed: MusE initialisation failed if there is no ".musePrj"
+ file in current directory!
+
+0.3.1:
+ - step 2 of internal reorganization
+ - fixed: score: lyrics are now saved again
+ - fixed: some quirks with lost track markers
+ - new: Option -L locks sequencer memory
+ - fixed: recording from serial midi (raw oss & korg tohost)
+ - fixed: several smaller bugs & quirks
+
+0.3.0:
+ - fixed: pianoroll editor: entering new events -> core
+ - new: drum editor click on instrument name "plays"
+ instrument
+ - fixed: changing the channel of a track now changes also
+ the channel of all events in that track
+ - massive changes for audio/wave integration:
+ - start of audio mixer
+ - audio routing
+
+0.2.12:
+ - fixed: wave files/tracks/parts: calculation of tick<->time;
+ it should be possible again to import/play simple waves
+ - fixed: funny things happend when muting all audio tracks
+ - fixed: core if no active record track
+ - new: Rob Naccarato started with documentation; press
+ <F1> in MusE and have a look
+
+0.2.11:
+ - fixed: metronome
+ - fixed: initial state of "click" transport button
+ - fixed: midi thru:
+ if midi thru is switched on, all received events are
+ echoed to the port/channel associated to the currently
+ selected track, regardless of the input port/channel.
+ Track parameters as pitch shift, velocity compression etc.
+ are applied before echoing the event.
+ - _not_ fixed: alsa midi driver: strange sysex behaviour
+0.2.10:
+ - fixed: parameter change in midi trackinfo
+ - fixed: some errors in *.med file handling
+ - fixed: midi export
+ - fixed: midi events are now played according to priority:
+ - channel priority: 10,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16
+ - note off before note on
+0.2.9:
+ - fixed: typo in seq.c destroyed timing of 0.2.8
+ - fixed: importing audio files
+ - fixed: writing *med files
+ - fixed: wave form display in arranger
+ - fixed: core on click in arranger "no track area " with pencil tool
+0.2.8:
+ - fixed: oss midi devices now work agin
+ - reorganized midi event dispatcher
+ - fixed: pitchbend for midialsa (Xavier)
+0.2.7:
+ - midi driver reorganization in preparation
+ for better ALSA sequencer integration; soundcard synth
+ work again
+ - some fixes
+0.2.6:
+ DrumEditor overhaul:
+ - fixed: reading drum maps
+ - changed: exporting drum maps now writes the whole map
+ - fixed: device popup: ...invalid menu item
+ - new: instruments can now be moved
+ - fixed: changing A-Note/E-Note did not show effect
+ - changed: small x-offset in event canvas allows better placement of
+ events at pos 1.1.0
+ - new: instrument names can be edited (double click instrument name)
+ - new: some drum maps
+ - fixed: update() missing after selection change in canvas
+ - fixed: len of new inserted drum events was quant-value, should be
+ default len from drum map
+ Alsa Midi Driver:
+ - changed (soundcard synth does not work :-( )
+0.2.5:
+ - fixed: session management for list editor
+ - new: list editor: hex entry in meta event dialog
+ - fixed: Midi: "GS Reset" button aktually did a "GM Reset"
+ - fixed: Midi: "GS Reset" on Song Start was always combined with "GM Reset"
+ - fixed: Arranger: copy/paste produced core
+ - fixed: Arranger: removed some (not working) key accelerators
+ - new: Drag file from KDE fm and Drop on arranger partlist
+ - removed bogus midi archiv
+ - some major code reorganizations in preparation for audio integration
+ resulting in new errors and *.med file incompatibilities;
+ - fixed: "cannot delete busy part" even if part is not busy
+ - fixed: arranger/progname.c: bad instrument name table caused segfault
+ (Tim Mann)
+ - fixed: score/layout.c: could not enter A# (Gilles Fillipini)
+0.2.4:
+ - fixed: removed silly warning: Cannot find translation...
+ (translations are not (yet) enabled)
+ - fixed: trackMarker->destroy TrackMarker->create track -> core
+ - new: integration of track markers in arranger
+ - export/import SMF-Marker as Meta Type 6
+ - changed: src/makefiles new arranged
+ - fixed: score editor: too many rests
+ - fixed: core if you try to insert note outside of staves
+0.2.3:
+ - MidiSyncConfig: extSync synchronized with button in transport
+ window
+ - audio: try oss audio device /dev/dsp in addition to /dev/sound/dsp
+ - changed: column expand logic in arranger tracklist
+ - new: KDE2.2: define HAVE_KDE in make.inc to compile a
+ KDE version of MusE (experimental)
+ - new: realtime recording of Midi SysEx Events
+ - changed: better LADSPA plugin handling
+ - fixed: Pianoroll: Color Events: RGB parameter out of range
+ - changed: canvas: moving objects
+ - fixed: AudioMasterMixer produced core after second invocation
+ - new: track markers
+0.2.2:
+ - switched to QT2.2
+ - fixed: Transport: "Master" button initialization
+ - fixed: session management for partlist in midi editors;
+ (new *.med xml files are probably incompatible
+ - fixed: cut&paste now works for parts on drum tracks
+ - fixed: cannot delete busy Parts any more
+ - fixed: honour LADSPA_PATH environment variable
+ - fixed: TransportWindow stays on top and is manageable
+ (testet with KDE2 beta4)
+ - fixed: arranger: column order is now recorded in
+ .med file
+ - fixed: sometimes under obscure circumstances MusE crashed
+ while opening an midi editor
+ - fixed: several typos/errors in *.med file reading/writing
+ - new: list editor: insert midi events (incl. sysex & meta)
+ double click on list entry to open editor to modify
+ values
+ - new: MTC/MMC Slave:
+ Configured as slave you can synchronize MusE
+ from external devices using Midi Time Code.
+ Midi Clock Master:
+ Configured as master MusE can control external
+ sequencers
+ Hooks for MTC/MMC Master and MidiClock slave.
+ - fixed: score: ScoreConfig::setTracklist() missing "clear"
+ - new: score: odd rest values implemented
+0.2.1:
+ - new: Arranger: move (midi) parts between applications:
+ - cut/copy part(s) to global clipboard
+ - paste part(s) from global clipboard to arranger
+ - drag parts with middle mouse button (experimental)
+ - new: Pianoroll: move events between applications:
+ - cut/copy events to global clipboard
+ - paste events from global clipboard to arranger
+ - drag events with middle mouse button
+ - fixed: only write audio if there are audio tracks
+ - fixed: PianorollEditor: moving multiple selected events
+ (thanks to Chris Wakelin)
+ - fixed: commented out unused/missing "color.xpm"
+ - fixed: partlist changed to multimap<>
+0.2.0:
+ - fixed: another error in OSS midi driver which results in
+ "bad file descriptor" aborts
+ - fixed: MidiFilter - RecordFilter/ThruFilter
+ - new: Master Part of Audio Mixer:
+ - Audio Level Meter
+ - LADSPA Host with
+ - automatic generated user interface
+ - presets store/load
+ - new: LADSPA "Freeverb" plugin for audio master
+ - new: Drum Editor
+ - load/save drum maps
+ - drawing reorganized
+ - new: Pianoroll Editor Functions:
+ - configurable event colors (none/pitch/velocity)
+ - configurable function ranges (apply functions to
+ all/loop/marked events)
+ - selection functions (all/none/loop/invert)
+ - switch between different parts in editor ("ghost events")
+ - PencilTool: Control+LeftMouseButton prevents
+ accidental creation of events
+ - PointerTool: Control+LeftMouseButton restricts
+ to horizontal or vertical move
+0.1.10:
+ - new: MidiExport: some configurable Parameter for exported
+ Standard Midi File (SMF)
+ - new: configurable Midi Record/Thru Filter for midi
+ realtime recording
+ - fixed: time signature changes in score editor
+ - fixed: "midi bar scale" is updated on time signature
+ changes
+ - fixed: event sorting in "list mastertrack editor"
+0.1.9:
+ - fixed: tempo changes during play
+ - fixed: "follow event" in graphical mastertrack editor
+ - fixed: mastertrack list: dynamic content update if song changed
+ - fixed: OSS midi serial output was broken
+0.1.8:
+ - bug: scaling in graphical mastertrack editor
+ - bug: reduce value of MAX_TICK to prevent overflow in scaling
+ - bug: pianoroll editor: length quantization
+ - bug: midi import: timing broken; bug introduced in 0.1.6
+ - feature: editing of time signature in graphical mastertrack
+0.1.7:
+ - bug: typo for 't'-kb accelerator in pianoroll-editor
+ - bug: quant values < 1/64 are not supported-> assertion bug
+ for keyboard accelerator >=8 in pianoroll editor
+ - pianoroll: new feature: step recording - midi input:
+ - press "shift"+ midiKey to enter chords
+ (if you enter same note again, it's deleted)
+ - press "ctrl" + midiKey to continue last note
+ - pianoroll: new menu function: quantize pos+len
+ - quantize configuration dialog: added flag for default len quantization
+ "whats this" help text
+0.1.6:
+ - bug: exported midifiles had random "division" timing parameter
+ - bug: core dump on midi record start
+ - feature: keyboard accelerators in pianoroll editor:
+ '1'-'9' '.' and 't' set quant & snap values
+
+0.1.5:
+ - MusE now works again without RTC (Real Time Clock) Device
+ (but much reduced timing accuracy)
+ - new Debug Options -m -M: MidiDump for input and output
+ - global keyboard accelerators:
+ spacebar: while play/record: STOP
+ while stop: Goto left mark
+ while on left mark: Goto Pos 0
+ Enter: start play
+ Insert: Stop
+ "/": Cycle on/off
+ "*": Record on
+ - Midi Step Recording: implemented external midi keyboard as
+ recording source (new "midi input" toggle button in pianoroll editor)
+0.1.4:
+ Audio
+ ==============
+ - simple audio play (ALSA & OSS)
+ - stubs for cliplist Editor, audio recording
+ - AudioMixer master volume
+ - bug fixes for wave viewer
+
+ Synthesizer
+ ==============
+ - first part of framework for realtime software synthesizer
+ driver/synthis, s1/*;
+
+0.1.3:
+ Score Editor:
+ ==============
+ - print preview button (gv)
+ - postscript default resolution is 72dpi and not 75dpi
+ - configurable overall scale for printer output
+ - simple beams
+
+ Misc:
+ ==============
+ - bug: path handling for project file: project files are now
+ saved in the correct directory
+ - bug: canvas initial scaling
+ - bug: core if configured device didnt exists
+ - bug: ctrl editor produced values > 127
+ - feature: Arranger: Parts are now displayed with a horizontal offset
+ - feature: Arranger: added save/restore for some configuration values
+ - feature: Midi Recording: track parameter like Transposition are now
+ applied before loop through
+ - feature: "Thru" flag in Configure->MidiDevices now implemented
+ - feature: Midi Remote Control: control sequencer stop/play/record/rewind
+ with configurable note events
+ - bug: typo in score/layout.c:split() caused core
+
+0.1.2:
+ - Score:
+ - add lyrics entry
+ - changed note head for 4/4
+ - changed positioning of 2/4 and 4/4 notes
+ - ties can now span systems
+ - tie connected notes are selected as one note
+ - page settings, margins handling corrected
+ - configurable fonts for score editor page layout
+0.1.1:
+ - master: scale changed
+ - no more core when selecting the score editor without a selected
+ part to edit
+ - time signature scale in master track
+ - master track: function tempo edit
+ - new popup menu in arranger / part canvas
+ - makefile: "make depend" target
+ - new: alsa raw midi interface
+ - improved score editor:
+ - split system (piano left&right hand)
+ - multi stave systems
+ - symbols
+ - lasso selection
+ - dynamics symbol palette
+ - window position of all toplevel windows is now remembered
+ correctly
+ - bug fixes & code cleanups
+
+0.0.10:
+ - removed obsolete file.c file.h
+ - separated midi archive
+ - removed unused widgets/wtscale.*
+ - removed unused widgets/dial.*
+ - midis with Meta Event Type 6 produced core
+ - removed '\n' chars from windows caption
+ - new setBg(QColor) method for class View
+ - broken Ctrl-Editor fixed
+ - Pencil Cursor now shown for Pencil Tool in Ctrl-Editor
+ - Mute Indicator changed to red dot
+ - added CtrlEditor to DrumEditor
+ - process session info in xml songfile
+ - more work on mastertrack
+ - start ScoreEditor and moving the mouse on canvas (producing
+ mouseMoveEvents) before exposure of QLineEdit (time & pitch
+ in toolbar) produced core on QLineEdit->setText(xx)
+ - in continuous scroll mode position marker updated correctly
+0.0.9:
+ - xml like configuration and song file
+ - new midi mixer, shows only active midi channels
+ - bug: metronom configuration: channel&port numbers
+ - bug fixes
+0.0.8:
+ - new: quantize function
+ - new: wave tracks: new classes: WaveFile Clip;
+ load wave file; expand song file structure
+ first try on wave editor;
+ - logarithmic magnify
+ - rework of View & Canvas Classes, resulting in much
+ faster scrolling
+0.0.7:
+ - fatal error: use of uninitialized device
+0.0.6:
+ - more diagnostics in file functions
+ - new: can load and save *.gz and *.bz2 files
+ - new function: send local off to instruments
+ - bug fixes in pianoroll step recording
+ - bug fix: "follow song" save and restore
+ - bug fix: in importing midi files: calculating parts
+ - bug fix: metronome -> core
+ - new configuration options for parts
+
+0.0.5:
+ - new: midi activity display in tracklist
+ - new: patch selector in channel info; shows midi instrument
+ categories
+ - new: insert & delete Controller Values in Ctrl-Editor
+ - some minor bugs corrected
+ - nasty bug in Song::nextEvents(), which prevents simple
+ midi songs played correctly
+
+0.0.4:
+ - implemented: forward & rewind buttons
+ - implemented: drum edit: change values in info bar
+ - error: arranger->tracklist: resize failed if columns are swapped
+ - enhanced file selector for background image selection
+ - more WhatsThis and ToolTip Help
+ - Backport to QT202: Filedialog: Filterlists dont work
+ - Midi Config: changed signal click() to rightButtonClick()
+ - missing initialisation in song constructor
+ - new subdirectory for controller editor
+ - controller editor for some values
+0.0.3:
+ - new transport design
+ - redesign of TrackInfo and ChannelInfo
+ - some changes reg. fonts and geometry management
+ - misc toolbars changed to read qt toolbars
+0.0.2:
+ - changed color for cpos to red
+ - dont play metronome clicks with time < current
+ - doubleclick on arranger trackname: entrywidget now gets
+ input focus
+ - midi device configuration: reworked
+ - removed endless loop in Song::nextEvents()
+ - ported to qt-2.1.0-snapshot-20000113
+ - changed QPushButton to QToolButton
+ - some cosmetic changes in transport window
+
+0.0.1
+ - first release
+
diff --git a/muse_qt4_evolution/Doxyfile.in b/muse_qt4_evolution/Doxyfile.in
new file mode 100644
index 00000000..1f97c847
--- /dev/null
+++ b/muse_qt4_evolution/Doxyfile.in
@@ -0,0 +1,1271 @@
+# Doxyfile 1.4.5
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "@PROJECT_NAME@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = @PROJECT_VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = Doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = YES
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@
+
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH = @CMAKE_CURRENT_SOURCE_DIR@/
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 2
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+# BUILTIN_STL_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = YES
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is YES.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = @DOXY_WARN_FORMAT@
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE = Doc/doxy.log
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = @CMAKE_CURRENT_SOURCE_DIR@ \
+ @CMAKE_CURRENT_BINARY_DIR@
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS = *.cpp \
+ *.cc \
+ *.h \
+ *.hh \
+ *.hpp \
+ *.dox
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/Base/Common/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Base/Debug/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Base/Math/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Base/Image/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Base/Geometry/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/MathAlgo/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Geometry/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/CornerDetector/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Image/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/StateEstimator/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Matcher2D/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Utils/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Gui/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/FeatureDetector/Examples \
+ @CMAKE_CURRENT_SOURCE_DIR@/Doc \
+ @CMAKE_CURRENT_SOURCE_DIR@
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS = *.cpp \
+ *.cc \
+ *.h \
+ *.hh \
+ INSTALL DEPENDENCIES CHANGELOG LICENSE LGPL
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/Doc \
+ @CMAKE_CURRENT_SOURCE_DIR@/Tests/data \
+ @CMAKE_CURRENT_SOURCE_DIR@
+
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 2
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+HTML_HEADER =
+
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+#LATEX_CMD_NAME = latex
+LATEX_CMD_NAME = @LATEX_COMPILER@
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+#MAKEINDEX_CMD_NAME = makeindex
+MAKEINDEX_CMD_NAME = @MAKEINDEX_COMPILER@
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = YES
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE = Doc/html/@PROJECT_NAME@.TAGFILE
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = YES
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = @DOXYGEN_DOT_FOUND@
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+# UML_LOOK = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH = @DOXYGEN_DOT_EXECUTABLE_PATH@
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1280
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+# JW
+# DOT_MULTI_TARGETS = NO
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+# JW SEARCHENGINE = NO
+SEARCHENGINE = YES \ No newline at end of file
diff --git a/muse_qt4_evolution/NEWS b/muse_qt4_evolution/NEWS
new file mode 100644
index 00000000..e394dd72
--- /dev/null
+++ b/muse_qt4_evolution/NEWS
@@ -0,0 +1,12 @@
+MusE 2.0.1:
+ New features:
+ - new "project" paradigma
+ - "auto fill" parts
+ - DSSI support
+ - JACK midi support
+ - controller automation in arranger
+ - audio metronome
+ - support for VST plugins
+ - new midi routing code
+ - midi plugins
+ - parts and events are updated in realtime during recording
diff --git a/muse_qt4_evolution/README b/muse_qt4_evolution/README
new file mode 100644
index 00000000..26b1e7d4
--- /dev/null
+++ b/muse_qt4_evolution/README
@@ -0,0 +1,117 @@
+====================================================================
+ MusE --- Linux Music Editor
+====================================================================
+
+Welcome to MusE, the open source MIDI/Audio sequencer.
+
+MusE is distributed under the GNU General Public License (GPL).
+Please check out the file COPYING in this directory for more
+details.
+
+,-----------------------------------------------------------------.
+| NOTICE |
+|-----------------------------------------------------------------|
+| Some parts of MusE code are EXPERIMENTAL, and may well result |
+| in a CRASH, and who knows what other ill effects. |
+| RUN THIS SOFTWARE AT YOUR OWN RISK. |
+`-----------------------------------------------------------------'
+
+ =============================
+ Requirements
+ =============================
+
+ - CMake 2.4
+ http:/www.cmake.org/HTML/Download.html
+
+ - QT: Qt 4.2.0 or above
+ ftp://ftp.trolltech.com/qt/source
+ MusE does _not_ compile with older versions
+
+ - gcc 4.x.x
+
+ - libsndfile >= 1.0.1
+ http://www.zip.com.au/~erikd/libsndfile/
+
+ - libsamplerate
+
+ - JACK >= 0.103
+ http://jackit.sourceforge.net/download/
+
+ Optional:
+
+ - fluidsynth-1.0.3 (formerly known as iiwusynth) from
+ http://savannah.nongnu.org/download/fluid
+
+ - DSSI
+
+ - ConTeXt (for building documentation, by default the build
+ script tries to build documentation, can be
+ disabled by setting ENABLE_DOCUMENTATION to OFF)
+
+ =============================
+ Compiling:
+ =============================
+
+ - download source from http://lmuse.sourceforge.net/
+
+ - unpack source:
+ tar xvofz muse-xyz.tar.gz </code>
+
+ - to compile MusE, run the following commands:
+ mkdir muse # create build directory
+ cd muse # enter build directory
+ cmake ../muse-xyz # create make system
+ make # compile muse
+
+ - install MusE:
+ run "make install"
+
+ =============================
+ running MusE
+ =============================
+
+ MusE is a realtime program which requires special rights to
+ work poperly.
+ Recommended setup:
+
+ - check if you are running a sufficiently new linux kernel > 2.6.x
+
+ - create an "audio" group if it does not already exists
+ and put yourself into this group
+
+ - make sure you can acces the realtime clock (RTC)
+ chmod 660 /dev/rtc
+ chgrp audio /dev/rtc
+
+ - make sure MusE can set the rtc clock:
+ echo 8192 > /proc/sys/dev/rtc/max-user-freq
+ inspect with:
+ cat /proc/sys/dev/rtc/max-user-freq
+
+ - for MusE to gain RT priviledges load the "realtime-lsm"
+ modul; the modul should be configured to give all "audio"
+ group members realtime priviledges
+
+ - make sure the alsa sequencer modul is loaded:
+ /sbin/modprobe snd-seq
+ (same distros (ubuntu) do not load it by default :-( )
+
+ - start qjackctl
+ - start JACK with qjackctl
+
+ - start MusE
+
+ (JACK and all its clients (qjackctl & MusE) must run with the
+ same user id)
+
+
+ =============================
+ known bugs
+ =============================
+
+ - many
+
+====================================================================
+Let me know whether MusE works for you !!!
+Have a look at the webpage http://lmuse.sourceforge.net/ for details.
+
diff --git a/muse_qt4_evolution/Reference b/muse_qt4_evolution/Reference
new file mode 100644
index 00000000..9aed268d
--- /dev/null
+++ b/muse_qt4_evolution/Reference
@@ -0,0 +1,59 @@
+MusE Function Reference
+
+Ruler
+ - left button press:
+ set location marker
+ - mid button press:
+ set left location marker
+ - right button press:
+ set right location marker
+ - shift + left button click:
+ set marker
+ - shift + right button click:
+ remove left marker
+
+Slider
+ - you dont have to hit the slider button to start dragging
+ - mouse wheel moves slider
+
+VolumeSlider
+ - left button double click sets slider to zero (-inf)
+ - right button double click sets volume to 0dB
+
+Meter Bar
+ - peak marker reset after configurable time
+
+Transport
+ - forward button
+ - rewind button
+ - "rewind to zero" button
+ - play button
+ - stop button
+ - record button
+ - rewind button moves horizontal canvas slider to position zero in
+ all "follow" modes
+ - forward and rewind buttons have auto repeat functionality
+ - transport stops at end of song if not recording
+
+Midi Editors
+ - left mouse click on event selects event
+ - shift + left mouse click toggles selection of event
+ - ctrl + left mouse click selects all events of same pitch
+ - mouse drag: move selected events
+ - shift + mouse drag: copy event
+ - shift + ctrl + mouse drag: restrict drag in x or y direction whatever
+ motion comes first
+ - If one event is selected, the info line shows the event properties.
+ If more than one event is selected, the info line initially shows zero
+ values, If changed, the displayed value is added to all marked events.
+
+ Drum Editor
+
+ Pianoroll Editor
+
+Wave Editor
+ - not implemented
+
+List Editor
+ - not implemented
+
diff --git a/muse_qt4_evolution/al/CMakeLists.txt b/muse_qt4_evolution/al/CMakeLists.txt
new file mode 100644
index 00000000..ef819f5c
--- /dev/null
+++ b/muse_qt4_evolution/al/CMakeLists.txt
@@ -0,0 +1,32 @@
+#
+#
+#
+#
+
+include(${PROJECT_SOURCE_DIR}/pch.txt)
+
+set (al_src
+ al.cpp marker.cpp pos.cpp sig.cpp tempo.cpp xml.cpp
+ dsp.cpp
+ )
+
+if (USE_SSE)
+ set(al_src ${al_src} dspSSE.cpp dspXMM.cpp)
+endif (USE_SSE)
+
+add_library(al STATIC
+ ${al_src}
+ ${PROJECT_BINARY_DIR}/all.h.pch
+ )
+
+set_source_files_properties(
+ al.cpp marker.cpp pos.cpp sig.cpp tempo.cpp xml.cpp
+ dsp.cpp
+ dspXMM.cpp
+ PROPERTIES COMPILE_FLAGS "-fPIC -include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
+set_source_files_properties( dspSSE.cpp
+ PROPERTIES COMPILE_FLAGS "-x assembler"
+ )
+
diff --git a/muse_qt4_evolution/al/al.cpp b/muse_qt4_evolution/al/al.cpp
new file mode 100644
index 00000000..50a2299d
--- /dev/null
+++ b/muse_qt4_evolution/al/al.cpp
@@ -0,0 +1,29 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al.h"
+
+namespace AL {
+ int sampleRate = 44100;
+ int mtcType = 0;
+ int division = 384;
+ bool debugMsg = false;
+ };
+
diff --git a/muse_qt4_evolution/al/al.h b/muse_qt4_evolution/al/al.h
new file mode 100644
index 00000000..d88d7c0d
--- /dev/null
+++ b/muse_qt4_evolution/al/al.h
@@ -0,0 +1,34 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AL_H__
+#define __AL_H__
+
+namespace AL {
+
+ extern bool debugMsg;
+ extern int sampleRate;
+ extern int mtcType;
+ extern int division;
+
+ }
+
+#endif
+
diff --git a/muse_qt4_evolution/al/dsp.cpp b/muse_qt4_evolution/al/dsp.cpp
new file mode 100644
index 00000000..7fb41fe7
--- /dev/null
+++ b/muse_qt4_evolution/al/dsp.cpp
@@ -0,0 +1,120 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "dsp.h"
+#include "config.h"
+
+namespace AL {
+
+Dsp* dsp;
+
+#ifdef __i386__
+
+//---------------------------------------------------------
+// DspSSE86
+//---------------------------------------------------------
+
+extern "C" {
+extern float x86_sse_compute_peak(float*, unsigned, float);
+extern void x86_sse_apply_gain_to_buffer(float*, unsigned, float);
+extern void x86_sse_mix_buffers_with_gain(float*, float*, unsigned, float);
+extern void x86_sse_mix_buffers_no_gain(float*, float*, unsigned);
+ };
+
+class DspSSE86 : public Dsp {
+ public:
+ DspSSE86() {}
+ virtual ~DspSSE86() {}
+
+ virtual float peak(float* buf, unsigned n, float current) {
+ if ( ((intptr_t)buf % 16) != 0) {
+ fprintf(stderr, "peak(): buffer unaligned! (%p)\n", buf);
+ return Dsp::peak(buf, n, current);
+ }
+ return x86_sse_compute_peak(buf, n, current);
+ }
+
+ virtual void applyGainToBuffer(float* buf, unsigned n, float gain) {
+ if ( ((intptr_t)buf % 16) != 0) {
+ fprintf(stderr, "applyGainToBuffer(): buffer unaligned! (%p)\n", buf);
+ Dsp::applyGainToBuffer(buf, n, gain);
+ }
+ else
+ x86_sse_apply_gain_to_buffer(buf, n, gain);
+ }
+
+ virtual void mixWithGain(float* dst, float* src, unsigned n, float gain) {
+ if ( ((intptr_t)dst & 15) != 0)
+ fprintf(stderr, "mixWithGainain(): dst unaligned! (%p)\n", dst);
+ if (((intptr_t)dst & 15) != ((intptr_t)src & 15) ) {
+ fprintf(stderr, "mixWithGain(): dst & src don't have the same alignment!\n");
+ Dsp::mixWithGain(dst, src,n, gain);
+ }
+ else
+ x86_sse_mix_buffers_with_gain(dst, src, n, gain);
+ }
+ virtual void mix(float* dst, float* src, unsigned n) {
+ if ( ((intptr_t)dst & 15) != 0)
+ fprintf(stderr, "mix_buffers_no_gain(): dst unaligned! %p\n", dst);
+ if ( ((intptr_t)dst & 15) != ((intptr_t)src & 15) ) {
+ fprintf(stderr, "mix_buffers_no_gain(): dst & src don't have the same alignment!\n");
+ Dsp::mix(dst, src, n);
+ }
+ else
+ x86_sse_mix_buffers_no_gain(dst, src, n);
+ }
+ };
+#endif
+
+//---------------------------------------------------------
+// initDsp
+//---------------------------------------------------------
+
+void initDsp()
+ {
+#if defined(__i386__) && defined(USE_SSE)
+ unsigned long useSSE = 0;
+
+#ifdef __x86_64__
+ useSSE = 1 << 25; // we know the platform has SSE
+#else
+ asm (
+ "mov $1, %%eax\n"
+ "pushl %%ebx\n"
+ "cpuid\n"
+ "movl %%edx, %0\n"
+ "popl %%ebx\n"
+ : "=r" (useSSE)
+ :
+ : "%eax", "%ecx", "%edx", "memory");
+#endif
+ useSSE &= (1 << 25); // bit 25 = SSE support
+ if (useSSE) {
+ printf("Using SSE optimized routines\n");
+ dsp = new DspSSE86();
+ return;
+ }
+ // fall through to not hardware optimized routines
+#endif
+ dsp = new Dsp();
+ }
+
+}
+
diff --git a/muse_qt4_evolution/al/dsp.h b/muse_qt4_evolution/al/dsp.h
new file mode 100644
index 00000000..6c7123ac
--- /dev/null
+++ b/muse_qt4_evolution/al/dsp.h
@@ -0,0 +1,83 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DSP_H__
+#define __DSP_H__
+
+namespace AL {
+
+//---------------------------------------------------------
+// f_max
+//---------------------------------------------------------
+
+static inline float f_max(float x, float a)
+ {
+ x -= a;
+ x += fabsf(x);
+ x *= 0.5f;
+ x += a;
+ return x;
+ }
+
+//---------------------------------------------------------
+// Dsp
+// standard version of all dsp routines without any
+// hw acceleration
+//---------------------------------------------------------
+
+class Dsp {
+ public:
+ Dsp() {}
+ virtual ~Dsp() {}
+
+ virtual float peak(float* buf, unsigned n, float current) {
+ for (unsigned i = 0; i < n; ++i)
+ current = f_max(current, fabsf(buf[i]));
+ return current;
+ }
+ virtual void applyGainToBuffer(float* buf, unsigned n, float gain) {
+ for (unsigned i = 0; i < n; ++i)
+ buf[i] *= gain;
+ }
+ virtual void mixWithGain(float* dst, float* src, unsigned n, float gain) {
+ for (unsigned i = 0; i < n; ++i)
+ dst[i] += src[i] * gain;
+ }
+ virtual void mix(float* dst, float* src, unsigned n) {
+ for (unsigned i = 0; i < n; ++i)
+ dst[i] += src[i];
+ }
+ virtual void cpy(float* dst, float* src, unsigned n) {
+#if defined(ARCH_X86) || defined(ARCH_X86_64)
+ register unsinged long int dummy;
+ __asm__ __volatile__ "rep; movsl" :"=&D"(dst), "=&S"(src), "=&c"(dummy) :"0" (to), "1" (from),"2" (n) : "memory");
+#else
+ memcpy(dst, src, sizeof(float) * n);
+#endif
+ }
+ };
+
+extern void initDsp();
+extern Dsp* dsp;
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/al/dspSSE.cpp b/muse_qt4_evolution/al/dspSSE.cpp
new file mode 100644
index 00000000..0f3d84b9
--- /dev/null
+++ b/muse_qt4_evolution/al/dspSSE.cpp
@@ -0,0 +1,531 @@
+/*
+ Copyright (C) 2005 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Author: Sampo Savolainen
+
+ $Id: sse_functions.s 988 2006-10-17 20:40:39Z paul $
+*/
+
+
+#; void x86_sse_mix_buffers_with_gain (float *dst, float *src, long nframes, float gain);
+
+.globl x86_sse_mix_buffers_with_gain
+ .type x86_sse_mix_buffers_with_gain,@function
+
+x86_sse_mix_buffers_with_gain:
+#; 8(%ebp) = float *dst = %edi
+#; 12(%ebp) = float *src = %esi
+#; 16(%ebp) = long nframes = %ecx
+#; 20(%ebp) = float gain = st(0)
+
+ pushl %ebp
+ movl %esp, %ebp
+
+ #; save the registers
+#; pushl %eax
+ pushl %ebx
+#; pushl %ecx
+ pushl %edi
+ pushl %esi
+
+ #; if nframes == 0, go to end
+ movl 16(%ebp), %ecx #; nframes
+ cmp $0, %ecx
+ je .MBWG_END
+
+ #; Check for alignment
+
+ movl 8(%ebp), %edi #; dst
+ movl 12(%ebp), %esi #; src
+
+ movl %edi, %eax
+ andl $12, %eax #; mask alignemnt offset
+
+ movl %esi, %ebx
+ andl $12, %ebx #; mask alignment offset
+
+ cmp %eax, %ebx
+ jne .MBWG_NONALIGN #; if not aligned, calculate manually
+
+ #; if we are aligned
+ cmp $0, %ebx
+ jz .MBWG_SSE
+
+ #; Pre-loop, we need to run 1-3 frames "manually" without
+ #; SSE instructions
+
+ movss 20(%ebp), %xmm1 #; xmm1
+
+.MBWG_PRELOOP:
+
+ movss (%esi), %xmm0
+ mulss %xmm1, %xmm0
+ addss (%edi), %xmm0
+ movss %xmm0, (%edi)
+
+ addl $4, %edi #; dst++
+ addl $4, %esi #; src++
+ decl %ecx #; nframes--
+ jz .MBWG_END
+
+#; cmp $0, %ecx
+#; je .MBWG_END #; if we run out of frames, go to end
+
+ addl $4, %ebx
+
+ cmp $16, %ebx #; test if we've reached 16 byte alignment
+ jne .MBWG_PRELOOP
+
+
+.MBWG_SSE:
+
+ cmp $4, %ecx #; we know it's not zero, but if it's not >=4, then
+ jnge .MBWG_NONALIGN #; we jump straight to the "normal" code
+
+ #; copy gain to fill %xmm1
+ movss 20(%ebp), %xmm1
+ shufps $0x00, %xmm1, %xmm1
+
+
+.MBWG_SSELOOP:
+
+ movaps (%esi), %xmm0 #; source => xmm0
+ mulps %xmm1, %xmm0 #; apply gain to source
+ addps (%edi), %xmm0 #; mix with destination
+ movaps %xmm0, (%edi) #; copy result to destination
+
+ addl $16, %edi #; dst+=4
+ addl $16, %esi #; src+=4
+
+ subl $4, %ecx #; nframes-=4
+ cmp $4, %ecx
+ jge .MBWG_SSELOOP
+
+ cmp $0, %ecx
+ je .MBWG_END
+
+ #; if there are remaining frames, the nonalign code will do nicely
+ #; for the rest 1-3 frames.
+
+.MBWG_NONALIGN:
+ #; not aligned!
+
+ movss 20(%ebp), %xmm1 #; gain => xmm1
+
+.MBWG_NONALIGNLOOP:
+
+ movss (%esi), %xmm0
+ mulss %xmm1, %xmm0
+ addss (%edi), %xmm0
+ movss %xmm0, (%edi)
+
+ addl $4, %edi
+ addl $4, %esi
+
+ decl %ecx
+ jnz .MBWG_NONALIGNLOOP
+
+.MBWG_END:
+
+ popl %esi
+ popl %edi
+#; popl %ecx
+ popl %ebx
+#; popl %eax
+
+ #; return
+ leave
+ ret
+
+.size x86_sse_mix_buffers_with_gain, .-x86_sse_mix_buffers_with_gain
+
+
+
+
+#; void x86_sse_mix_buffers_no_gain (float *dst, float *src, long nframes);
+
+.globl x86_sse_mix_buffers_no_gain
+ .type x86_sse_mix_buffers_no_gain,@function
+
+x86_sse_mix_buffers_no_gain:
+#; 8(%ebp) = float *dst = %edi
+#; 12(%ebp) = float *src = %esi
+#; 16(%ebp) = long nframes = %ecx
+
+ pushl %ebp
+ movl %esp, %ebp
+
+ #; save the registers
+#; pushl %eax
+ pushl %ebx
+#; pushl %ecx
+ pushl %edi
+ pushl %esi
+
+ #; the real function
+
+ #; if nframes == 0, go to end
+ movl 16(%ebp), %ecx #; nframes
+ cmp $0, %ecx
+ je .MBNG_END
+
+ #; Check for alignment
+
+ movl 8(%ebp), %edi #; dst
+ movl 12(%ebp), %esi #; src
+
+ movl %edi, %eax
+ andl $12, %eax #; mask alignemnt offset
+
+ movl %esi, %ebx
+ andl $12, %ebx #; mask alignment offset
+
+ cmp %eax, %ebx
+ jne .MBNG_NONALIGN #; if not aligned, calculate manually
+
+ cmp $0, %ebx
+ je .MBNG_SSE
+
+ #; Pre-loop, we need to run 1-3 frames "manually" without
+ #; SSE instructions
+
+.MBNG_PRELOOP:
+
+ movss (%esi), %xmm0
+ addss (%edi), %xmm0
+ movss %xmm0, (%edi)
+
+ addl $4, %edi #; dst++
+ addl $4, %esi #; src++
+ decl %ecx #; nframes--
+ jz .MBNG_END
+ addl $4, %ebx
+
+ cmp $16, %ebx #; test if we've reached 16 byte alignment
+ jne .MBNG_PRELOOP
+
+.MBNG_SSE:
+
+ cmp $4, %ecx #; if there are frames left, but less than 4
+ jnge .MBNG_NONALIGN #; we can't run SSE
+
+.MBNG_SSELOOP:
+
+ movaps (%esi), %xmm0 #; source => xmm0
+ addps (%edi), %xmm0 #; mix with destination
+ movaps %xmm0, (%edi) #; copy result to destination
+
+ addl $16, %edi #; dst+=4
+ addl $16, %esi #; src+=4
+
+ subl $4, %ecx #; nframes-=4
+ cmp $4, %ecx
+ jge .MBNG_SSELOOP
+
+ cmp $0, %ecx
+ je .MBNG_END
+
+ #; if there are remaining frames, the nonalign code will do nicely
+ #; for the rest 1-3 frames.
+
+.MBNG_NONALIGN:
+ #; not aligned!
+
+ movss (%esi), %xmm0 #; src => xmm0
+ addss (%edi), %xmm0 #; xmm0 += dst
+ movss %xmm0, (%edi) #; xmm0 => dst
+
+ addl $4, %edi
+ addl $4, %esi
+
+ decl %ecx
+ jnz .MBNG_NONALIGN
+
+.MBNG_END:
+
+ popl %esi
+ popl %edi
+#; popl %ecx
+ popl %ebx
+#; popl %eax
+
+ #; return
+ leave
+ ret
+
+.size x86_sse_mix_buffers_no_gain, .-x86_sse_mix_buffers_no_gain
+
+
+
+
+#; void x86_sse_apply_gain_to_buffer (float *buf, long nframes, float gain);
+
+.globl x86_sse_apply_gain_to_buffer
+ .type x86_sse_apply_gain_to_buffer,@function
+
+x86_sse_apply_gain_to_buffer:
+#; 8(%ebp) = float *buf = %edi
+#; 12(%ebp) = long nframes = %ecx
+#; 16(%ebp) = float gain = st(0)
+
+ pushl %ebp
+ movl %esp, %ebp
+
+ #; save %edi
+ pushl %edi
+
+ #; the real function
+
+ #; if nframes == 0, go to end
+ movl 12(%ebp), %ecx #; nframes
+ cmp $0, %ecx
+ je .AG_END
+
+ #; create the gain buffer in %xmm1
+ movss 16(%ebp), %xmm1
+ shufps $0x00, %xmm1, %xmm1
+
+ #; Check for alignment
+
+ movl 8(%ebp), %edi #; buf
+ movl %edi, %edx #; buf => %edx
+ andl $12, %edx #; mask bits 1 & 2, result = 0, 4, 8 or 12
+ jz .AG_SSE #; if buffer IS aligned
+
+ #; PRE-LOOP
+ #; we iterate 1-3 times, doing normal x87 float comparison
+ #; so we reach a 16 byte aligned "buf" (=%edi) value
+
+.AGLP_START:
+
+ #; Load next value from the buffer
+ movss (%edi), %xmm0
+ mulss %xmm1, %xmm0
+ movss %xmm0, (%edi)
+
+ #; increment buffer, decrement counter
+ addl $4, %edi #; buf++;
+
+ decl %ecx #; nframes--
+ jz .AG_END #; if we run out of frames, we go to the end
+
+ addl $4, %edx #; one non-aligned byte less
+ cmp $16, %edx
+ jne .AGLP_START #; if more non-aligned frames exist, we do a do-over
+
+.AG_SSE:
+
+ #; We have reached the 16 byte aligned "buf" ("edi") value
+
+ #; Figure out how many loops we should do
+ movl %ecx, %eax #; copy remaining nframes to %eax for division
+ movl $0, %edx #; 0 the edx register
+
+
+ pushl %edi
+ movl $4, %edi
+ divl %edi #; %edx = remainder == 0
+ popl %edi
+
+ #; %eax = SSE iterations
+ cmp $0, %eax
+ je .AGPOST_START
+
+
+.AGLP_SSE:
+
+ movaps (%edi), %xmm0
+ mulps %xmm1, %xmm0
+ movaps %xmm0, (%edi)
+
+ addl $16, %edi
+#; subl $4, %ecx #; nframes-=4
+
+ decl %eax
+ jnz .AGLP_SSE
+
+ #; Next we need to post-process all remaining frames
+ #; the remaining frame count is in %ecx
+
+ #; if no remaining frames, jump to the end
+#; cmp $0, %ecx
+ andl $3, %ecx #; nframes % 4
+ je .AG_END
+
+.AGPOST_START:
+
+ movss (%edi), %xmm0
+ mulss %xmm1, %xmm0
+ movss %xmm0, (%edi)
+
+ #; increment buffer, decrement counter
+ addl $4, %edi #; buf++;
+
+ decl %ecx #; nframes--
+ jnz .AGPOST_START #; if we run out of frames, we go to the end
+
+.AG_END:
+
+
+ popl %edi
+
+ #; return
+ leave
+ ret
+
+.size x86_sse_apply_gain_to_buffer, .-x86_sse_apply_gain_to_buffer
+#; end proc
+
+
+
+#; float x86_sse_compute_peak(float *buf, long nframes, float current);
+
+.globl x86_sse_compute_peak
+ .type x86_sse_compute_peak,@function
+
+x86_sse_compute_peak:
+#; 8(%ebp) = float *buf = %edi
+#; 12(%ebp) = long nframes = %ecx
+#; 16(%ebp) = float current = st(0)
+
+ pushl %ebp
+ movl %esp, %ebp
+
+ #; save %edi
+ pushl %edi
+
+ #; the real function
+
+ #; Load "current" in xmm0
+ movss 16(%ebp), %xmm0
+
+ #; if nframes == 0, go to end
+ movl 12(%ebp), %ecx #; nframes
+ cmp $0, %ecx
+ je .CP_END
+
+ #; create the "abs" mask in %xmm2
+ pushl $2147483647
+ movss (%esp), %xmm2
+ addl $4, %esp
+ shufps $0x00, %xmm2, %xmm2
+
+ #; Check for alignment
+
+ movl 8(%ebp), %edi #; buf
+ movl %edi, %edx #; buf => %edx
+ andl $12, %edx #; mask bits 1 & 2, result = 0, 4, 8 or 12
+ jz .CP_SSE #; if buffer IS aligned
+
+ #; PRE-LOOP
+ #; we iterate 1-3 times, doing normal x87 float comparison
+ #; so we reach a 16 byte aligned "buf" (=%edi) value
+
+.LP_START:
+
+ #; Load next value from the buffer
+ movss (%edi), %xmm1
+ andps %xmm2, %xmm1
+ maxss %xmm1, %xmm0
+
+ #; increment buffer, decrement counter
+ addl $4, %edi #; buf++;
+
+ decl %ecx #; nframes--
+ jz .CP_END #; if we run out of frames, we go to the end
+
+ addl $4, %edx #; one non-aligned byte less
+ cmp $16, %edx
+ jne .LP_START #; if more non-aligned frames exist, we do a do-over
+
+.CP_SSE:
+
+ #; We have reached the 16 byte aligned "buf" ("edi") value
+
+ #; Figure out how many loops we should do
+ movl %ecx, %eax #; copy remaining nframes to %eax for division
+
+ shr $2,%eax #; unsigned divide by 4
+ jz .POST_START
+
+ #; %eax = SSE iterations
+
+ #; current maximum is at %xmm0, but we need to ..
+ shufps $0x00, %xmm0, %xmm0 #; shuffle "current" to all 4 FP's
+
+ #;prefetcht0 16(%edi)
+
+.LP_SSE:
+
+ movaps (%edi), %xmm1
+ andps %xmm2, %xmm1
+ maxps %xmm1, %xmm0
+
+ addl $16, %edi
+
+ decl %eax
+ jnz .LP_SSE
+
+ #; Calculate the maximum value contained in the 4 FP's in %xmm0
+ movaps %xmm0, %xmm1
+ shufps $0x4e, %xmm1, %xmm1 #; shuffle left & right pairs (1234 => 3412)
+ maxps %xmm1, %xmm0 #; maximums of the two pairs
+ movaps %xmm0, %xmm1
+ shufps $0xb1, %xmm1, %xmm1 #; shuffle the floats inside the two pairs (1234 => 2143)
+ maxps %xmm1, %xmm0
+
+ #; now every float in %xmm0 is the same value, current maximum value
+
+ #; Next we need to post-process all remaining frames
+ #; the remaining frame count is in %ecx
+
+ #; if no remaining frames, jump to the end
+
+ andl $3, %ecx #; nframes % 4
+ jz .CP_END
+
+.POST_START:
+
+ movss (%edi), %xmm1
+ andps %xmm2, %xmm1
+ maxss %xmm1, %xmm0
+
+ addl $4, %edi #; buf++;
+
+ decl %ecx #; nframes--;
+ jnz .POST_START
+
+.CP_END:
+
+ #; Load the value from xmm0 to the float stack for returning
+ movss %xmm0, 16(%ebp)
+ flds 16(%ebp)
+
+ popl %edi
+
+ #; return
+ leave
+ ret
+
+.size x86_sse_compute_peak, .-x86_sse_compute_peak
+#; end proc
+
+#ifdef __ELF__
+.section .note.GNU-stack,"",%progbits
+#endif
+
+
diff --git a/muse_qt4_evolution/al/dspXMM.cpp b/muse_qt4_evolution/al/dspXMM.cpp
new file mode 100644
index 00000000..1943fa7d
--- /dev/null
+++ b/muse_qt4_evolution/al/dspXMM.cpp
@@ -0,0 +1,115 @@
+/*
+ Copyright (C) 2007 Paul sDavis
+ Written by Sampo Savolainen
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <xmmintrin.h>
+
+void
+x86_sse_find_peaks(float *buf, unsigned nframes, float *min, float *max)
+{
+ __m128 current_max, current_min, work;
+
+ // Load max and min values into all four slots of the XMM registers
+ current_min = _mm_set1_ps(*min);
+ current_max = _mm_set1_ps(*max);
+
+ // Work input until "buf" reaches 16 byte alignment
+ while ( ((unsigned long)buf) % 16 != 0 && nframes > 0) {
+
+ // Load the next float into the work buffer
+ work = _mm_set1_ps(*buf);
+
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+
+ buf++;
+ nframes--;
+ }
+
+ // use 64 byte prefetch for quadruple quads
+ while (nframes >= 16) {
+ __builtin_prefetch(buf+64,0,0);
+
+ work = _mm_load_ps(buf);
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+ buf+=4;
+ work = _mm_load_ps(buf);
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+ buf+=4;
+ work = _mm_load_ps(buf);
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+ buf+=4;
+ work = _mm_load_ps(buf);
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+ buf+=4;
+ nframes-=16;
+ }
+
+ // work through aligned buffers
+ while (nframes >= 4) {
+
+ work = _mm_load_ps(buf);
+
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+
+ buf+=4;
+ nframes-=4;
+ }
+
+ // work through the rest < 4 samples
+ while ( nframes > 0) {
+
+ // Load the next float into the work buffer
+ work = _mm_set1_ps(*buf);
+
+ current_min = _mm_min_ps(current_min, work);
+ current_max = _mm_max_ps(current_max, work);
+
+ buf++;
+ nframes--;
+ }
+
+ // Find min & max value in current_max through shuffle tricks
+
+ work = current_min;
+ work = _mm_shuffle_ps(work, work, _MM_SHUFFLE(2, 3, 0, 1));
+ work = _mm_min_ps (work, current_min);
+ current_min = work;
+ work = _mm_shuffle_ps(work, work, _MM_SHUFFLE(1, 0, 3, 2));
+ work = _mm_min_ps (work, current_min);
+
+ _mm_store_ss(min, work);
+
+ work = current_max;
+ work = _mm_shuffle_ps(work, work, _MM_SHUFFLE(2, 3, 0, 1));
+ work = _mm_max_ps (work, current_max);
+ current_max = work;
+ work = _mm_shuffle_ps(work, work, _MM_SHUFFLE(1, 0, 3, 2));
+ work = _mm_max_ps (work, current_max);
+
+ _mm_store_ss(max, work);
+}
+
+
+
diff --git a/muse_qt4_evolution/al/marker.cpp b/muse_qt4_evolution/al/marker.cpp
new file mode 100644
index 00000000..5b4ef87c
--- /dev/null
+++ b/muse_qt4_evolution/al/marker.cpp
@@ -0,0 +1,86 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "marker.h"
+#include "xml.h"
+
+namespace AL {
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+Marker* MarkerList::add(const Marker& marker)
+ {
+ iMarker i = insert(std::pair<const int, Marker> (marker.tick(), Marker(marker)));
+ return &i->second;
+ }
+
+Marker* MarkerList::add(const QString& s, const Pos& pos)
+ {
+ Marker marker(pos);
+ marker.setName(s);
+ iMarker i = insert(std::pair<const int, Marker> (pos.tick(), marker));
+ return &i->second;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Marker::read(QDomNode node)
+ {
+ Pos::read(node);
+ QDomElement e = node.toElement();
+ _name = e.attribute("name");
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MarkerList::write(Xml& xml) const
+ {
+ for (ciMarker i = begin(); i != end(); ++i) {
+ const Marker& m = i->second;
+ if (m.type() == TICKS)
+ xml.tagE(QString("marker tick=\"%1\" name=\"%2\"").arg(m.tick()).arg(m.name()));
+ else
+ xml.tagE(QString("marker sample=\"%1\" name=\"%2\"").arg(m.frame()).arg(m.name()));
+ }
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void MarkerList::remove(Marker* m)
+ {
+ for (iMarker i = begin(); i != end(); ++i) {
+ Marker* mm = &i->second;
+ if (mm == m) {
+ erase(i);
+ return;
+ }
+ }
+ printf("MarkerList::remove(): marker not found\n");
+ }
+}
+
diff --git a/muse_qt4_evolution/al/marker.h b/muse_qt4_evolution/al/marker.h
new file mode 100644
index 00000000..7c77f72e
--- /dev/null
+++ b/muse_qt4_evolution/al/marker.h
@@ -0,0 +1,67 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MARKER_H__
+#define __MARKER_H__
+
+#include "pos.h"
+
+namespace AL {
+ class Xml;
+
+//---------------------------------------------------------
+// Marker
+//---------------------------------------------------------
+
+class Marker : public Pos {
+ QString _name;
+ bool _current;
+
+ public:
+ Marker() : _current(false) {}
+ Marker(const Pos& m) : Pos(m), _current(false) {}
+ Marker(const QString& s, bool cur = false)
+ : _name(s), _current(cur) {}
+ void read(QDomNode);
+ const QString name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ bool current() const { return _current; }
+ void setCurrent(bool f) { _current = f; }
+ };
+
+//---------------------------------------------------------
+// MarkerList
+//---------------------------------------------------------
+
+class MarkerList : public std::multimap<unsigned, Marker, std::less<unsigned> > {
+ public:
+ Marker* add(const Marker& m);
+ Marker* add(const QString& s, const Pos&);
+ void write(Xml&) const;
+ void remove(Marker*);
+ };
+
+typedef std::multimap<unsigned, Marker, std::less<unsigned> >::iterator iMarker;
+typedef std::multimap<unsigned, Marker, std::less<unsigned> >::const_iterator ciMarker;
+
+} // end namespace AL
+
+#endif
+
diff --git a/muse_qt4_evolution/al/pos.cpp b/muse_qt4_evolution/al/pos.cpp
new file mode 100644
index 00000000..f8418a00
--- /dev/null
+++ b/muse_qt4_evolution/al/pos.cpp
@@ -0,0 +1,616 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al.h"
+#include "pos.h"
+#include "xml.h"
+#include "tempo.h"
+#include "sig.h"
+
+namespace AL {
+
+//---------------------------------------------------------
+// Pos
+//---------------------------------------------------------
+
+Pos::Pos()
+ {
+ _type = TICKS;
+ _tick = 0;
+ _frame = 0;
+ sn = -1;
+ }
+
+Pos::Pos(unsigned t, TType timeType)
+ {
+ _type = timeType;
+ if (_type == TICKS)
+ _tick = t;
+ else
+ _frame = t;
+ sn = -1;
+ }
+
+Pos::Pos(const QString& s)
+ {
+ int m, b, t;
+ sscanf(s.toLatin1().data(), "%04d.%02d.%03d", &m, &b, &t);
+ _tick = sigmap.bar2tick(m, b, t);
+ _type = TICKS;
+ sn = -1;
+ }
+
+Pos::Pos(int measure, int beat, int tick)
+ {
+ _tick = sigmap.bar2tick(measure, beat, tick);
+ _type = TICKS;
+ sn = -1;
+ }
+
+Pos::Pos(int min, int sec, int frame, int subframe)
+ {
+ double time = min * 60.0 + sec;
+
+ double f = frame + subframe/100.0;
+ switch (AL::mtcType) {
+ case 0: // 24 frames sec
+ time += f * 1.0/24.0;
+ break;
+ case 1: // 25
+ time += f * 1.0/25.0;
+ break;
+ case 2: // 30 drop frame
+ time += f * 1.0/30.0;
+ break;
+ case 3: // 30 non drop frame
+ time += f * 1.0/30.0;
+ break;
+ }
+ _type = FRAMES;
+ _frame = lrint(time * AL::sampleRate);
+ sn = -1;
+ }
+
+//---------------------------------------------------------
+// setType
+//---------------------------------------------------------
+
+void Pos::setType(TType t)
+ {
+ if (t == _type)
+ return;
+
+ if (_type == TICKS) {
+ // convert from ticks to frames
+ _frame = tempomap.tick2frame(_tick, _frame, &sn);
+ }
+ else {
+ // convert from frames to ticks
+ _tick = tempomap.frame2tick(_frame, _tick, &sn);
+ }
+ _type = t;
+ }
+
+//---------------------------------------------------------
+// operator+=
+//---------------------------------------------------------
+
+Pos& Pos::operator+=(const Pos& a)
+ {
+ if (_type == FRAMES)
+ _frame += a.frame();
+ else
+ _tick += a.tick();
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+//---------------------------------------------------------
+// operator-=
+//---------------------------------------------------------
+
+Pos& Pos::operator-=(const Pos& a)
+ {
+ if (_type == FRAMES)
+ _frame -= a.frame();
+ else
+ _tick -= a.tick();
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+//---------------------------------------------------------
+// operator+=
+//---------------------------------------------------------
+
+Pos& Pos::operator+=(int a)
+ {
+ if (_type == FRAMES)
+ _frame += a;
+ else
+ _tick += a;
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+//---------------------------------------------------------
+// operator-=
+//---------------------------------------------------------
+
+Pos& Pos::operator-=(int a)
+ {
+ if (_type == FRAMES)
+ _frame -= a;
+ else
+ _tick -= a;
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+Pos operator+(const Pos& a, int b)
+ {
+ Pos c(a);
+ return c += b;
+ }
+
+Pos operator-(const Pos& a, int b)
+ {
+ Pos c(a);
+ return c -= b;
+ }
+
+Pos operator+(const Pos& a, const Pos& b)
+ {
+ Pos c(a);
+ return c += b;
+ }
+
+Pos operator-(const Pos& a, const Pos& b)
+ {
+ Pos c(a);
+ return c -= b;
+ }
+
+bool Pos::operator>=(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame >= s.frame();
+ else
+ return _tick >= s.tick();
+ }
+
+bool Pos::operator>(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame > s.frame();
+ else
+ return _tick > s.tick();
+ }
+
+bool Pos::operator<(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame < s.frame();
+ else
+ return _tick < s.tick();
+ }
+
+bool Pos::operator<=(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame <= s.frame();
+ else
+ return _tick <= s.tick();
+ }
+
+bool Pos::operator==(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame == s.frame();
+ else
+ return _tick == s.tick();
+ }
+
+bool Pos::operator!=(const Pos& s) const
+ {
+ if (_type == FRAMES)
+ return _frame != s.frame();
+ else
+ return _tick != s.tick();
+ }
+
+//---------------------------------------------------------
+// tick
+//---------------------------------------------------------
+
+unsigned Pos::tick() const
+ {
+ if (_type == FRAMES)
+ _tick = tempomap.frame2tick(_frame, _tick, &sn);
+ return _tick;
+ }
+
+//---------------------------------------------------------
+// frame
+//---------------------------------------------------------
+
+unsigned Pos::frame() const
+ {
+ if (_type == TICKS)
+ _frame = tempomap.tick2frame(_tick, _frame, &sn);
+ return _frame;
+ }
+
+//---------------------------------------------------------
+// setTick
+//---------------------------------------------------------
+
+void Pos::setTick(unsigned pos)
+ {
+ _tick = pos;
+ sn = -1;
+ if (_type == FRAMES)
+ _frame = tempomap.tick2frame(pos, &sn);
+ }
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void Pos::setFrame(unsigned pos)
+ {
+ _frame = pos;
+ sn = -1;
+ if (_type == TICKS)
+ _tick = tempomap.frame2tick(pos, &sn);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Pos::write(Xml& xml, const char* name) const
+ {
+ if (_type == TICKS)
+ xml.tagE(QString("%1 tick=\"%2\"").arg(name).arg(_tick));
+ else
+ xml.tagE(QString("%1 frame=\"%2\"").arg(name).arg(_frame));
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Pos::read(QDomNode node)
+ {
+ sn = -1;
+
+ QDomElement e = node.toElement();
+ QString s;
+ s = e.attribute("tick");
+ if (!s.isEmpty()) {
+ _tick = s.toInt();
+ _type = TICKS;
+ }
+ s = e.attribute("frame");
+ if (!s.isEmpty()) {
+ _frame = s.toInt();
+ _type = FRAMES;
+ }
+ }
+
+//---------------------------------------------------------
+// PosLen
+//---------------------------------------------------------
+
+PosLen::PosLen()
+ {
+ _lenTick = 0;
+ _lenFrame = 0;
+ sn = -1;
+ }
+
+PosLen::PosLen(const PosLen& p)
+ : Pos(p)
+ {
+ _lenTick = p._lenTick;
+ _lenFrame = p._lenFrame;
+ sn = -1;
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void PosLen::dump(int n) const
+ {
+ Pos::dump(n);
+ printf(" Len(");
+ switch(type()) {
+ case FRAMES:
+ printf("samples=%d)\n", _lenFrame);
+ break;
+ case TICKS:
+ printf("ticks=%d)\n", _lenTick);
+ break;
+ }
+ }
+
+void Pos::dump(int /*n*/) const
+ {
+ printf("Pos(%s, sn=%d, ", type() == FRAMES ? "Frames" : "Ticks", sn);
+ switch(type()) {
+ case FRAMES:
+ printf("samples=%d)", _frame);
+ break;
+ case TICKS:
+ printf("ticks=%d)", _tick);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void PosLen::write(Xml& xml, const char* name) const
+ {
+ if (type() == TICKS)
+ xml.tagE(QString("%1 tick=\"%2\" len=\"%3\"").arg(name).arg(tick()).arg(_lenTick));
+ else
+ xml.tagE(QString("%1 sample=\"%2\" len=\"%3\"").arg(name).arg(frame()).arg(_lenFrame));
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void PosLen::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString s;
+ s = e.attribute("tick");
+ if (!s.isEmpty()) {
+ setType(TICKS);
+ setTick(s.toInt());
+ }
+ s = e.attribute("sample");
+ if (!s.isEmpty()) {
+ setType(FRAMES);
+ setFrame(s.toInt());
+ }
+ s = e.attribute("len");
+ if (!s.isEmpty()) {
+ int n = s.toInt();
+ if (type() == TICKS)
+ setLenTick(n);
+ else
+ setLenFrame(n);
+ }
+ }
+
+//---------------------------------------------------------
+// setLenTick
+//---------------------------------------------------------
+
+void PosLen::setLenTick(unsigned len)
+ {
+ _lenTick = len;
+ sn = -1;
+ if (type() == FRAMES)
+ _lenFrame = tempomap.tick2frame(len, &sn);
+ else
+ _lenTick = len;
+ }
+
+//---------------------------------------------------------
+// setLenFrame
+//---------------------------------------------------------
+
+void PosLen::setLenFrame(unsigned len)
+ {
+ sn = -1;
+ if (type() == TICKS)
+ _lenTick = tempomap.frame2tick(len, &sn);
+ else
+ _lenFrame = len;
+ }
+
+//---------------------------------------------------------
+// lenTick
+//---------------------------------------------------------
+
+unsigned PosLen::lenTick() const
+ {
+ if (type() == FRAMES)
+ _lenTick = tempomap.frame2tick(_lenFrame, _lenTick, &sn);
+ return _lenTick;
+ }
+
+//---------------------------------------------------------
+// lenFrame
+//---------------------------------------------------------
+
+unsigned PosLen::lenFrame() const
+ {
+ if (type() == TICKS)
+ _lenFrame = tempomap.tick2frame(_lenTick, _lenFrame, &sn);
+ return _lenFrame;
+ }
+
+//---------------------------------------------------------
+// end
+//---------------------------------------------------------
+
+Pos PosLen::end() const
+ {
+ Pos pos(*this);
+ pos.invalidSn();
+ switch(type()) {
+ case FRAMES:
+ pos.setFrame(pos.frame() + _lenFrame);
+ break;
+ case TICKS:
+ pos.setTick(pos.tick() + _lenTick);
+ break;
+ }
+ return pos;
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void PosLen::setPos(const Pos& pos)
+ {
+ switch(pos.type()) {
+ case FRAMES:
+ setFrame(pos.frame());
+ break;
+ case TICKS:
+ setTick(pos.tick());
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// operator==
+//---------------------------------------------------------
+
+bool PosLen::operator==(const PosLen& pl) const {
+ if(type()==TICKS)
+ return (_lenTick==pl._lenTick && Pos::operator==((const Pos&)pl));
+ else
+ return (_lenFrame==pl._lenFrame && Pos::operator==((const Pos&)pl));
+}
+
+//---------------------------------------------------------
+// mbt
+//---------------------------------------------------------
+
+void Pos::mbt(int* bar, int* beat, int* tk) const
+ {
+ sigmap.tickValues(tick(), bar, beat, (unsigned*)tk);
+ }
+
+//---------------------------------------------------------
+// msf
+//---------------------------------------------------------
+
+void Pos::msf(int* min, int* sec, int* fr, int* subFrame) const
+ {
+#if 0
+ //double has been replaced by float because it prevents (mysteriously)
+ //from a segfault that occurs at the launching of muse
+ /*double*/ float time = double(frame()) / double(AL::sampleRate);
+ *min = int(time) / 60;
+ *sec = int(time) % 60;
+ //double has been replaced by float because it prevents (mysteriously)
+ //from a segfault that occurs at the launching of muse
+ /*double*/ float rest = time - (*min * 60 + *sec);
+ switch(AL::mtcType) {
+ case 0: // 24 frames sec
+ rest *= 24;
+ break;
+ case 1: // 25
+ rest *= 25;
+ break;
+ case 2: // 30 drop frame
+ rest *= 30;
+ break;
+ case 3: // 30 non drop frame
+ rest *= 30;
+ break;
+ }
+ *fr = int(rest);
+ *subFrame = int((rest- *fr)*100);
+#else
+ // for further testing:
+
+ double time = double(frame()) / double(AL::sampleRate);
+ *min = int(time) / 60;
+ *sec = int(time) % 60;
+ double rest = time - ((*min) * 60 + (*sec));
+ switch(AL::mtcType) {
+ case 0: // 24 frames sec
+ rest *= 24;
+ break;
+ case 1: // 25
+ rest *= 25;
+ break;
+ case 2: // 30 drop frame
+ rest *= 30;
+ break;
+ case 3: // 30 non drop frame
+ rest *= 30;
+ break;
+ }
+ *fr = lrint(rest);
+ *subFrame = lrint((rest - (*fr)) * 100.0);
+#endif
+ }
+
+//---------------------------------------------------------
+// timesig
+//---------------------------------------------------------
+
+TimeSignature Pos::timesig() const
+ {
+ return sigmap.timesig(tick());
+ }
+
+//---------------------------------------------------------
+// snap
+// raster = 1 no snap
+// raster = 0 snap to measure
+// all other raster values snap to raster tick
+//---------------------------------------------------------
+
+void Pos::snap(int raster)
+ {
+ setTick(sigmap.raster(tick(), raster));
+ }
+
+void Pos::upSnap(int raster)
+ {
+ setTick(sigmap.raster2(tick(), raster));
+ }
+
+void Pos::downSnap(int raster)
+ {
+ setTick(sigmap.raster1(tick(), raster));
+ }
+
+Pos Pos::snaped(int raster) const
+ {
+ return Pos(sigmap.raster(tick(), raster));
+ }
+
+Pos Pos::upSnaped(int raster) const
+ {
+ return Pos(sigmap.raster2(tick(), raster));
+ }
+
+Pos Pos::downSnaped(int raster) const
+ {
+ return Pos(sigmap.raster1(tick(), raster));
+ }
+}
+
diff --git a/muse_qt4_evolution/al/pos.h b/muse_qt4_evolution/al/pos.h
new file mode 100644
index 00000000..6226cfef
--- /dev/null
+++ b/muse_qt4_evolution/al/pos.h
@@ -0,0 +1,129 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __POS_H__
+#define __POS_H__
+
+#include "sig.h"
+
+namespace AL {
+
+class Xml;
+
+enum TType { TICKS, FRAMES };
+
+//---------------------------------------------------------
+// Pos
+// depending on type _tick or _frame is a cached
+// value. When the tempomap changes, all cached values
+// are invalid. Sn is used to check for tempomap
+// changes.
+//---------------------------------------------------------
+
+class Pos {
+ public:
+
+ private:
+ TType _type;
+ mutable int sn;
+ mutable unsigned _tick;
+ mutable unsigned _frame;
+
+ public:
+ Pos();
+ Pos(int measure, int beat, int tick);
+ Pos(int minute, int sec, int frame, int subframe);
+ Pos(unsigned, TType type = TICKS);
+ Pos(const QString&);
+ void dump(int n = 0) const;
+
+ unsigned time(TType t) const { return t == TICKS ? tick() : frame(); }
+ void mbt(int* measure, int* beat, int* tick) const;
+ void msf(int* minute, int* sec, int* frame, int* subframe) const;
+ TimeSignature timesig() const;
+ void snap(int);
+ void upSnap(int);
+ void downSnap(int);
+ Pos snaped(int) const;
+ Pos upSnaped(int) const;
+ Pos downSnaped(int) const;
+
+ void invalidSn() { sn = -1; }
+
+ TType type() const { return _type; }
+ void setType(TType t);
+
+ Pos& operator+=(const Pos& a);
+ Pos& operator+=(int a);
+ Pos& operator-=(const Pos& a);
+ Pos& operator-=(int a);
+
+ bool operator>=(const Pos& s) const;
+ bool operator>(const Pos& s) const;
+ bool operator<(const Pos& s) const;
+ bool operator<=(const Pos& s) const;
+ bool operator==(const Pos& s) const;
+ bool operator!=(const Pos& s) const;
+
+ friend Pos operator+(const Pos& a, const Pos& b);
+ friend Pos operator-(const Pos& a, const Pos& b);
+ friend Pos operator+(const Pos& a, int b);
+ friend Pos operator-(const Pos& a, int b);
+
+ unsigned tick() const;
+ unsigned frame() const;
+ void setTick(unsigned);
+ void setFrame(unsigned);
+
+ void write(Xml&, const char*) const;
+ void read(QDomNode);
+ bool isValid() const { return true; }
+ };
+
+//---------------------------------------------------------
+// PosLen
+//---------------------------------------------------------
+
+class PosLen : public Pos {
+ mutable unsigned _lenTick;
+ mutable unsigned _lenFrame;
+ mutable int sn;
+
+ public:
+ PosLen();
+ PosLen(const PosLen&);
+ void dump(int n = 0) const;
+
+ void write(Xml&, const char*) const;
+ void read(QDomNode);
+ void setLenTick(unsigned);
+ void setLenFrame(unsigned);
+ unsigned lenTick() const;
+ unsigned lenFrame() const;
+ Pos end() const;
+ unsigned endTick() const { return end().tick(); }
+ unsigned endFrame() const { return end().frame(); }
+ void setPos(const Pos&);
+
+ bool operator==(const PosLen& s) const;
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/al/sig.cpp b/muse_qt4_evolution/al/sig.cpp
new file mode 100644
index 00000000..d8672200
--- /dev/null
+++ b/muse_qt4_evolution/al/sig.cpp
@@ -0,0 +1,407 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al.h"
+#include "sig.h"
+#include "xml.h"
+
+namespace AL {
+
+SigList sigmap;
+
+//---------------------------------------------------------
+// SigList
+//---------------------------------------------------------
+
+SigList::SigList()
+ {
+ insert(std::pair<const unsigned, SigEvent*> (MAX_TICK, new SigEvent(TimeSignature(4, 4), 0)));
+ }
+
+//---------------------------------------------------------
+// add
+// signatures are only allowed at the beginning of
+// a bar
+//---------------------------------------------------------
+
+void SigList::add(unsigned tick, const TimeSignature& s)
+ {
+ if (s.z == 0 || s.n == 0) {
+ printf("illegal signature %d/%d\n", s.z, s.n);
+ }
+ tick = raster1(tick, 0);
+ iSigEvent e = upper_bound(tick);
+
+ if (tick == e->second->tick) {
+ e->second->sig = s;
+ }
+ else {
+ SigEvent* ne = e->second;
+ SigEvent* ev = new SigEvent(ne->sig, ne->tick);
+ ne->sig = s;
+ ne->tick = tick;
+ insert(std::pair<const unsigned, SigEvent*> (tick, ev));
+ }
+ normalize();
+ }
+
+//---------------------------------------------------------
+// del
+//---------------------------------------------------------
+
+void SigList::del(unsigned tick)
+ {
+// printf("SigList::del(%d)\n", tick);
+ iSigEvent e = find(tick);
+ if (e == end()) {
+ printf("SigList::del(%d): not found\n", tick);
+ return;
+ }
+ iSigEvent ne = e;
+ ++ne;
+ if (ne == end()) {
+ printf("SigList::del() HALLO\n");
+ return;
+ }
+ ne->second->sig = e->second->sig;
+ ne->second->tick = e->second->tick;
+ erase(e);
+ normalize();
+ }
+
+//---------------------------------------------------------
+// SigList::normalize
+//---------------------------------------------------------
+
+void SigList::normalize()
+ {
+ TimeSignature sig(0, 0);
+ unsigned tick = 0;
+ iSigEvent ee;
+
+ for (iSigEvent e = begin(); e != end();) {
+ if (sig.z == e->second->sig.z && sig.n == e->second->sig.n) {
+ e->second->tick = tick;
+ erase(ee);
+ }
+ sig = e->second->sig;
+ ee = e;
+ tick = e->second->tick;
+ ++e;
+ }
+
+ int bar = 0;
+ for (iSigEvent e = begin(); e != end();) {
+ e->second->bar = bar;
+ int delta = e->first - e->second->tick;
+ int ticksB = ticks_beat(e->second->sig.n);
+ int ticksM = ticksB * e->second->sig.z;
+ bar += delta / ticksM;
+ if (delta % ticksM) // Teil eines Taktes
+ ++bar;
+ ++e;
+ }
+ }
+
+//---------------------------------------------------------
+// SigList::dump
+//---------------------------------------------------------
+
+void SigList::dump() const
+ {
+ printf("\nSigList:\n");
+ for (ciSigEvent i = begin(); i != end(); ++i) {
+ printf("%6d %06d Bar %3d %02d/%d\n",
+ i->first, i->second->tick,
+ i->second->bar, i->second->sig.z, i->second->sig.n);
+ }
+ }
+
+void SigList::clear()
+ {
+ for (iSigEvent i = begin(); i != end(); ++i)
+ delete i->second;
+ SIGLIST::clear();
+ insert(std::pair<const unsigned, SigEvent*> (MAX_TICK, new SigEvent(TimeSignature(4, 4), 0)));
+ }
+
+//---------------------------------------------------------
+// ticksMeasure
+//---------------------------------------------------------
+
+int SigList::ticksMeasure(const TimeSignature& sig) const
+ {
+ return ticks_beat(sig.n) * sig.z;
+ }
+
+int SigList::ticksMeasure(unsigned tick) const
+ {
+ ciSigEvent i = upper_bound(tick);
+ if (i == end()) {
+ printf("ticksMeasure: not found %d\n", tick);
+ // abort();
+ return 0;
+ }
+ return ticksMeasure(i->second->sig);
+ }
+
+//---------------------------------------------------------
+// ticksBeat
+//---------------------------------------------------------
+
+int SigList::ticksBeat(unsigned tick) const
+ {
+ ciSigEvent i = upper_bound(tick);
+ return ticks_beat(i->second->sig.n);
+ }
+
+int SigList::ticks_beat(int n) const
+ {
+ int m = AL::division;
+ switch (n) {
+ case 1: m <<= 2; break; // 1536
+ case 2: m <<= 1; break; // 768
+ case 3: m += m >> 1; break; // 384+192
+ case 4: break; // 384
+ case 8: m >>= 1; break; // 192
+ case 16: m >>= 2; break; // 96
+ case 32: m >>= 3; break; // 48
+ case 64: m >>= 4; break; // 24
+ case 128: m >>= 5; break; // 12
+ default: break;
+ }
+ return m;
+ }
+
+//---------------------------------------------------------
+// timesig
+//---------------------------------------------------------
+
+TimeSignature SigList::timesig(unsigned tick) const
+ {
+ ciSigEvent i = upper_bound(tick);
+ if (i == end()) {
+ printf("timesig(%d): not found\n", tick);
+ // abort();
+ return TimeSignature(4,4);
+ }
+ return i->second->sig;
+ }
+
+//---------------------------------------------------------
+// tickValues
+//---------------------------------------------------------
+
+void SigList::tickValues(unsigned t, int* bar, int* beat, unsigned* tick) const
+ {
+ ciSigEvent e = upper_bound(t);
+ if (e == end()) {
+ fprintf(stderr, "tickValues(0x%x) not found(%zd)\n", t, size());
+//DEBUG
+// abort();
+ *bar = 0;
+ *beat = 0;
+ *tick = 0;
+ return;
+ }
+
+ int delta = t - e->second->tick;
+ int ticksB = ticks_beat(e->second->sig.n);
+ int ticksM = ticksB * e->second->sig.z;
+ *bar = e->second->bar + delta / ticksM;
+ int rest = delta % ticksM;
+ *beat = rest / ticksB;
+ *tick = rest % ticksB;
+ }
+
+//---------------------------------------------------------
+// bar2tick
+//---------------------------------------------------------
+
+unsigned SigList::bar2tick(int bar, int beat, unsigned tick) const
+ {
+ ciSigEvent e;
+
+ if (bar < 0)
+ bar = 0;
+ for (e = begin(); e != end();) {
+ ciSigEvent ee = e;
+ ++ee;
+ if (ee == end())
+ break;
+ if (bar < ee->second->bar)
+ break;
+ e = ee;
+ }
+ int ticksB = ticks_beat(e->second->sig.n);
+ int ticksM = ticksB * e->second->sig.z;
+ return e->second->tick + (bar-e->second->bar)*ticksM + ticksB*beat + tick;
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+
+unsigned SigList::raster(unsigned t, int raster) const
+ {
+ if (raster == 1)
+ return t;
+ ciSigEvent e = upper_bound(t);
+ if (e == end()) {
+ printf("SigList::raster(%x,)\n", t);
+ // abort();
+ return t;
+ }
+ int delta = t - e->second->tick;
+ int ticksM = ticks_beat(e->second->sig.n) * e->second->sig.z;
+ if (raster == 0)
+ raster = ticksM;
+ int rest = delta % ticksM;
+ int bb = (delta/ticksM)*ticksM;
+ return e->second->tick + bb + ((rest + raster/2)/raster)*raster;
+ }
+
+//---------------------------------------------------------
+// raster1
+// round down
+//---------------------------------------------------------
+
+unsigned SigList::raster1(unsigned t, int raster) const
+ {
+ if (raster == 1)
+ return t;
+ ciSigEvent e = upper_bound(t);
+
+ int delta = t - e->second->tick;
+ int ticksM = ticks_beat(e->second->sig.n) * e->second->sig.z;
+ if (raster == 0)
+ raster = ticksM;
+ int rest = delta % ticksM;
+ int bb = (delta/ticksM)*ticksM;
+ return e->second->tick + bb + (rest/raster)*raster;
+ }
+
+//---------------------------------------------------------
+// raster2
+// round up
+//---------------------------------------------------------
+
+unsigned SigList::raster2(unsigned t, int raster) const
+ {
+ if (raster == 1)
+ return t;
+ ciSigEvent e = upper_bound(t);
+
+ int delta = t - e->second->tick;
+ int ticksM = ticks_beat(e->second->sig.n) * e->second->sig.z;
+ if (raster == 0)
+ raster = ticksM;
+ int rest = delta % ticksM;
+ int bb = (delta/ticksM)*ticksM;
+ return e->second->tick + bb + ((rest+raster-1)/raster)*raster;
+ }
+
+//---------------------------------------------------------
+// rasterStep
+//---------------------------------------------------------
+
+int SigList::rasterStep(unsigned t, int raster) const
+ {
+ if (raster == 0) {
+ ciSigEvent e = upper_bound(t);
+ return ticks_beat(e->second->sig.n) * e->second->sig.z;
+ }
+ return raster;
+ }
+
+//---------------------------------------------------------
+// SigList::write
+//---------------------------------------------------------
+
+void SigList::write(Xml& xml) const
+ {
+ xml.stag("siglist");
+ for (ciSigEvent i = begin(); i != end(); ++i)
+ i->second->write(xml, i->first);
+ xml.etag("siglist");
+ }
+
+//---------------------------------------------------------
+// SigList::read
+//---------------------------------------------------------
+
+void SigList::read(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "sig") {
+ SigEvent* t = new SigEvent();
+ unsigned tick = t->read(node);
+ iSigEvent pos = find(tick);
+ if (pos != end())
+ erase(pos);
+ insert(std::pair<const unsigned, SigEvent*> (tick, t));
+ }
+ else
+ printf("MusE:SigList: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ normalize();
+ }
+
+//---------------------------------------------------------
+// SigEvent::write
+//---------------------------------------------------------
+
+void SigEvent::write(Xml& xml, int at) const
+ {
+ xml.stag(QString("sig at=\"%1\"").arg(at));
+ xml.tag("tick", tick);
+ xml.tag("nom", sig.z);
+ xml.tag("denom", sig.n);
+ xml.etag("sig");
+ }
+
+//---------------------------------------------------------
+// SigEvent::read
+//---------------------------------------------------------
+
+int SigEvent::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ int at = e.attribute("at", "0").toInt();
+ node = node.firstChild();
+
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "tick")
+ tick = e.text().toInt();
+ else if (e.tagName() == "nom")
+ sig.z = e.text().toInt();
+ else if (e.tagName() == "denom")
+ sig.n = e.text().toInt();
+ else
+ printf("MusE:SigEvent: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ return at;
+ }
+
+}
diff --git a/muse_qt4_evolution/al/sig.h b/muse_qt4_evolution/al/sig.h
new file mode 100644
index 00000000..d0c70410
--- /dev/null
+++ b/muse_qt4_evolution/al/sig.h
@@ -0,0 +1,103 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SIG_H__
+#define __SIG_H__
+
+namespace AL {
+
+#ifndef MAX_TICK
+#define MAX_TICK (0x7fffffff/100)
+#endif
+
+class Xml;
+
+//---------------------------------------------------------
+// TimeSignature
+//---------------------------------------------------------
+
+struct TimeSignature {
+ int z, n;
+ TimeSignature() { z = 4; n = 4; }
+ TimeSignature(int a, int b) { z = a; n = b; }
+ };
+
+//---------------------------------------------------------
+// Signature Event
+//---------------------------------------------------------
+
+struct SigEvent {
+ TimeSignature sig;
+ unsigned tick; // signature valid from this position
+ int bar; // precomputed
+
+ int read(QDomNode);
+ void write(Xml&, int) const;
+
+ SigEvent() { }
+ SigEvent(const TimeSignature& s, unsigned tk) {
+ sig = s;
+ tick = tk;
+ bar = 0;
+ }
+ };
+
+//---------------------------------------------------------
+// SigList
+//---------------------------------------------------------
+
+typedef std::map<unsigned, SigEvent*, std::less<unsigned> > SIGLIST;
+typedef SIGLIST::iterator iSigEvent;
+typedef SIGLIST::const_iterator ciSigEvent;
+typedef SIGLIST::reverse_iterator riSigEvent;
+typedef SIGLIST::const_reverse_iterator criSigEvent;
+
+class SigList : public SIGLIST {
+ int ticks_beat(int N) const;
+ void normalize();
+ int ticksMeasure(const TimeSignature&) const;
+
+ public:
+ SigList();
+ void clear();
+ void add(unsigned tick, const TimeSignature& s);
+ void del(unsigned tick);
+
+ void read(QDomNode);
+ void write(Xml&) const;
+ void dump() const;
+
+ TimeSignature timesig(unsigned tick) const;
+ void tickValues(unsigned t, int* bar, int* beat, unsigned* tick) const;
+ unsigned bar2tick(int bar, int beat, unsigned tick) const;
+
+ int ticksMeasure(unsigned tick) const;
+ int ticksBeat(unsigned tick) const;
+ unsigned raster(unsigned tick, int raster) const;
+ unsigned raster1(unsigned tick, int raster) const; // round down
+ unsigned raster2(unsigned tick, int raster) const; // round up
+ int rasterStep(unsigned tick, int raster) const;
+ };
+
+extern SigList sigmap;
+
+}
+
+#endif
diff --git a/muse_qt4_evolution/al/tempo.cpp b/muse_qt4_evolution/al/tempo.cpp
new file mode 100644
index 00000000..7d65c732
--- /dev/null
+++ b/muse_qt4_evolution/al/tempo.cpp
@@ -0,0 +1,393 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al.h"
+#include "tempo.h"
+#include "xml.h"
+
+namespace AL {
+
+TempoList tempomap;
+
+//---------------------------------------------------------
+// TempoList
+//---------------------------------------------------------
+
+TempoList::TempoList()
+ {
+ _tempo = 500000;
+ insert(std::pair<const unsigned, TEvent*> (MAX_TICK+1, new TEvent(_tempo, 0)));
+ _tempoSN = 1;
+ _globalTempo = 100;
+ useList = true;
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void TempoList::add(unsigned tick, int tempo)
+ {
+ if (tick > MAX_TICK)
+ tick = MAX_TICK;
+
+ iTEvent e = upper_bound(tick);
+
+ if (tick == e->second->tick)
+ e->second->tempo = tempo;
+ else {
+ TEvent* ne = e->second;
+ TEvent* ev = new TEvent(ne->tempo, ne->tick);
+ ne->tempo = tempo;
+ ne->tick = tick;
+ insert(std::pair<const unsigned, TEvent*> (tick, ev));
+ }
+ normalize();
+ }
+
+//---------------------------------------------------------
+// TempoList::normalize
+//---------------------------------------------------------
+
+void TempoList::normalize()
+ {
+ int frame = 0;
+ for (iTEvent e = begin(); e != end(); ++e) {
+ e->second->frame = frame;
+ unsigned dtick = e->first - e->second->tick;
+ double dtime = double(dtick) / (division * _globalTempo * 10000.0/e->second->tempo);
+ frame += lrint(dtime * sampleRate);
+ }
+ }
+
+//---------------------------------------------------------
+// TempoList::dump
+//---------------------------------------------------------
+
+void TempoList::dump() const
+ {
+ printf("\nTempoList:\n");
+ for (ciTEvent i = begin(); i != end(); ++i) {
+ printf("%6d %06d Tempo %6d Frame %d\n",
+ i->first, i->second->tick, i->second->tempo,
+ i->second->frame);
+ }
+ }
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void TempoList::clear()
+ {
+ for (iTEvent i = begin(); i != end(); ++i)
+ delete i->second;
+ TEMPOLIST::clear();
+ insert(std::pair<const unsigned, TEvent*> (MAX_TICK+1, new TEvent(500000, 0)));
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// tempo
+//---------------------------------------------------------
+
+int TempoList::tempo(unsigned tick) const
+ {
+ if (useList) {
+ ciTEvent i = upper_bound(tick);
+ if (i == end()) {
+ printf("no TEMPO at tick %d,0x%x\n", tick, tick);
+ return 1000;
+ }
+ return i->second->tempo;
+ }
+ else
+ return _tempo;
+ }
+
+//---------------------------------------------------------
+// del
+//---------------------------------------------------------
+
+void TempoList::del(unsigned tick)
+ {
+// printf("TempoList::del(%d)\n", tick);
+ iTEvent e = find(tick);
+ if (e == end()) {
+ printf("TempoList::del(%d): not found\n", tick);
+ return;
+ }
+ del(e);
+ ++_tempoSN;
+ }
+
+void TempoList::del(iTEvent e)
+ {
+ iTEvent ne = e;
+ ++ne;
+ if (ne == end()) {
+ printf("TempoList::del(): not found\n");
+ return;
+ }
+ ne->second->tempo = e->second->tempo;
+ ne->second->tick = e->second->tick;
+ erase(e);
+ normalize();
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// change
+//---------------------------------------------------------
+
+void TempoList::change(unsigned tick, int newTempo)
+ {
+ iTEvent e = find(tick);
+ e->second->tempo = newTempo;
+ normalize();
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// setTempo
+// called from transport window
+// & slave mode tempo changes
+//---------------------------------------------------------
+
+void TempoList::setTempo(unsigned tick, int newTempo)
+ {
+ if (useList)
+ add(tick, newTempo);
+ else
+ _tempo = newTempo;
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// setGlobalTempo
+//---------------------------------------------------------
+
+void TempoList::setGlobalTempo(int val)
+ {
+ _globalTempo = val;
+ ++_tempoSN;
+ normalize();
+ }
+
+//---------------------------------------------------------
+// addTempo
+//---------------------------------------------------------
+
+void TempoList::addTempo(unsigned t, int tempo)
+ {
+ add(t, tempo);
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// delTempo
+//---------------------------------------------------------
+
+void TempoList::delTempo(unsigned tick)
+ {
+ del(tick);
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// changeTempo
+//---------------------------------------------------------
+
+void TempoList::changeTempo(unsigned tick, int newTempo)
+ {
+ change(tick, newTempo);
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// setMasterFlag
+//---------------------------------------------------------
+
+bool TempoList::setMasterFlag(unsigned /*tick*/, bool val)
+ {
+ if (useList != val) {
+ useList = val;
+ ++_tempoSN;
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// tick2frame
+//---------------------------------------------------------
+
+unsigned TempoList::tick2frame(unsigned tick, unsigned frame, int* sn) const
+ {
+ return (*sn == _tempoSN) ? frame : tick2frame(tick, sn);
+ }
+
+//---------------------------------------------------------
+// tick2frame
+//---------------------------------------------------------
+
+unsigned TempoList::tick2frame(unsigned tick, int* sn) const
+ {
+ int f;
+ if (useList) {
+ ciTEvent i = upper_bound(tick);
+ if (i == end()) {
+ printf("tick2frame(%d,0x%x): not found\n", tick, tick);
+ abort(); // debug
+ return 0;
+ }
+ unsigned dtick = tick - i->second->tick;
+ double dtime = double(dtick) / (division * _globalTempo * 10000.0/ i->second->tempo);
+ unsigned dframe = lrint(dtime * sampleRate);
+ f = i->second->frame + dframe;
+ }
+ else {
+ double t = (double(tick) * double(_tempo)) / (double(division) * _globalTempo * 10000.0);
+ f = lrint(t * sampleRate);
+ }
+ if (sn)
+ *sn = _tempoSN;
+ return f;
+ }
+
+//---------------------------------------------------------
+// frame2tick
+// return cached value t if list did not change
+//---------------------------------------------------------
+
+unsigned TempoList::frame2tick(unsigned frame, unsigned t, int* sn) const
+ {
+ return (*sn == _tempoSN) ? t : frame2tick(frame, sn);
+ }
+
+//---------------------------------------------------------
+// frame2tick
+//---------------------------------------------------------
+
+unsigned TempoList::frame2tick(unsigned frame, int* sn) const
+ {
+ unsigned tick;
+ if (useList) {
+ ciTEvent e;
+ for (e = begin(); e != end();) {
+ ciTEvent ee = e;
+ ++ee;
+ if (ee == end())
+ break;
+ if (frame < ee->second->frame)
+ break;
+ e = ee;
+ }
+ unsigned te = e->second->tempo;
+ int dframe = frame - e->second->frame;
+ double dtime = double(dframe) / double(sampleRate);
+ tick = e->second->tick + lrint(dtime * _globalTempo * division * 10000.0 / te);
+ }
+ else
+ tick = lrint((double(frame)/double(sampleRate)) * _globalTempo * division * 10000.0 / double(_tempo));
+ if (sn)
+ *sn = _tempoSN;
+ return tick;
+ }
+
+//---------------------------------------------------------
+// TempoList::write
+//---------------------------------------------------------
+
+void TempoList::write(Xml& xml) const
+ {
+ xml.stag(QString("tempolist fix=\"%1\"").arg(_tempo));
+ if (_globalTempo != 100)
+ xml.tag("globalTempo", _globalTempo);
+ for (ciTEvent i = begin(); i != end(); ++i)
+ i->second->write(xml, i->first);
+ xml.etag("tempolist");
+ }
+
+//---------------------------------------------------------
+// TempoList::read
+//---------------------------------------------------------
+
+void TempoList::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ _tempo = e.attribute("fix","500000").toInt();
+
+ node = node.firstChild();
+ while (!node.isNull()) {
+ e = node.toElement();
+ if (e.tagName() == "tempo") {
+ TEvent* t = new TEvent();
+ unsigned tick = t->read(node);
+ iTEvent pos = find(tick);
+ if (pos != end())
+ erase(pos);
+ insert(std::pair<const int, TEvent*> (tick, t));
+ }
+ else if (e.tagName() == "globalTempo")
+ _globalTempo = e.text().toInt();
+ else
+ printf("MusE:Tempolist: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ normalize();
+ ++_tempoSN;
+ }
+
+//---------------------------------------------------------
+// TEvent::write
+//---------------------------------------------------------
+
+void TEvent::write(Xml& xml, int at) const
+ {
+ xml.stag(QString("tempo at=\"%1\"").arg(at));
+ xml.tag("tick", tick);
+ xml.tag("val", tempo);
+ xml.etag("tempo");
+ }
+
+//---------------------------------------------------------
+// TEvent::read
+//---------------------------------------------------------
+
+int TEvent::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ int at = e.attribute("at","0").toInt();
+
+ node = node.firstChild();
+ while (!node.isNull()) {
+ e = node.toElement();
+ if (e.tagName() == "tick")
+ tick = e.text().toInt();
+ else if (e.tagName() == "val")
+ tempo = e.text().toInt();
+ else
+ printf("MusE:TEvent: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ return at;
+ }
+}
diff --git a/muse_qt4_evolution/al/tempo.h b/muse_qt4_evolution/al/tempo.h
new file mode 100644
index 00000000..e2342003
--- /dev/null
+++ b/muse_qt4_evolution/al/tempo.h
@@ -0,0 +1,101 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TEMPO_H__
+#define __TEMPO_H__
+
+namespace AL {
+
+#ifndef MAX_TICK
+#define MAX_TICK (0x7fffffff/100)
+#endif
+
+class Xml;
+
+//---------------------------------------------------------
+// Tempo Event
+//---------------------------------------------------------
+
+struct TEvent {
+ int tempo;
+ unsigned tick; // new tempo at tick
+ unsigned frame; // precomputed time for tick in sec
+
+ int read(QDomNode);
+ void write(Xml&, int) const;
+
+ TEvent() { }
+ TEvent(unsigned t, unsigned tk) {
+ tempo = t;
+ tick = tk;
+ frame = 0;
+ }
+ };
+
+//---------------------------------------------------------
+// TempoList
+//---------------------------------------------------------
+
+typedef std::map<unsigned, TEvent*, std::less<unsigned> > TEMPOLIST;
+typedef TEMPOLIST::iterator iTEvent;
+typedef TEMPOLIST::const_iterator ciTEvent;
+typedef TEMPOLIST::reverse_iterator riTEvent;
+typedef TEMPOLIST::const_reverse_iterator criTEvent;
+
+class TempoList : public TEMPOLIST {
+ int _tempoSN; // serial no to track tempo changes
+ bool useList;
+ int _tempo; // tempo if not using tempo list
+ int _globalTempo; // %percent 50-200%
+
+ void normalize();
+ void add(unsigned tick, int tempo);
+ void change(unsigned tick, int newTempo);
+ void del(iTEvent);
+ void del(unsigned tick);
+
+ public:
+ TempoList();
+ void clear();
+
+ void read(QDomNode);
+ void write(Xml&) const;
+ void dump() const;
+
+ int tempo(unsigned tick) const;
+ unsigned tick2frame(unsigned tick, unsigned frame, int* sn) const;
+ unsigned tick2frame(unsigned tick, int* sn = 0) const;
+ unsigned frame2tick(unsigned frame, int* sn = 0) const;
+ unsigned frame2tick(unsigned frame, unsigned tick, int* sn) const;
+ int tempoSN() const { return _tempoSN; }
+ void setTempo(unsigned tick, int newTempo);
+ void addTempo(unsigned t, int tempo);
+ void delTempo(unsigned tick);
+ void changeTempo(unsigned tick, int newTempo);
+ bool setMasterFlag(unsigned tick, bool val);
+ int globalTempo() const { return _globalTempo; }
+ void setGlobalTempo(int val);
+ };
+
+extern TempoList tempomap;
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/al/xml.cpp b/muse_qt4_evolution/al/xml.cpp
new file mode 100644
index 00000000..7ae40b3e
--- /dev/null
+++ b/muse_qt4_evolution/al/xml.cpp
@@ -0,0 +1,362 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "xml.h"
+#include "al.h"
+
+namespace AL {
+
+//---------------------------------------------------------
+// Xml
+//---------------------------------------------------------
+
+Xml::Xml()
+ {
+ level = 0;
+ }
+
+Xml::Xml(QIODevice* device)
+ : QTextStream(device)
+ {
+ setCodec("utf8");
+ level = 0;
+ }
+
+//---------------------------------------------------------
+// putLevel
+//---------------------------------------------------------
+
+void Xml::putLevel()
+ {
+ for (int i = 0; i < level*2; ++i)
+ *this << ' ';
+ }
+
+//---------------------------------------------------------
+// header
+//---------------------------------------------------------
+
+void Xml::header()
+ {
+ *this << "<?xml version=\"1.0\" encoding=\"utf8\"?>" << endl;
+ }
+
+//---------------------------------------------------------
+// put
+//---------------------------------------------------------
+
+void Xml::put(const QString& s)
+ {
+ putLevel();
+ *this << xmlString(s) << endl;
+ }
+
+//---------------------------------------------------------
+// stag
+// <mops attribute="value">
+//---------------------------------------------------------
+
+void Xml::stag(const QString& s)
+ {
+ putLevel();
+ *this << '<' << s << '>' << endl;
+ ++level;
+ }
+
+//---------------------------------------------------------
+// etag
+//---------------------------------------------------------
+
+void Xml::etag(const char* s)
+ {
+ putLevel();
+ *this << "</" << s << '>' << endl;
+ --level;
+ }
+
+//---------------------------------------------------------
+// tagE
+// <mops attribute="value"/>
+//---------------------------------------------------------
+
+void Xml::tagE(const QString& s)
+ {
+ putLevel();
+ *this << '<' << s << "/>" << endl;
+ }
+
+void Xml::tag(const char* name, int val)
+ {
+ putLevel();
+ *this << '<' << name << '>' << val << "</" << name << '>' << endl;
+ }
+
+void Xml::tag(const char* name, unsigned val)
+ {
+ putLevel();
+ *this << '<' << name << '>' << val << "</" << name << '>' << endl;
+ }
+
+void Xml::tag(const char* name, float val)
+ {
+ putLevel();
+ *this << '<' << name << '>' << val << "</" << name << '>' << endl;
+ }
+
+void Xml::tag(const char* name, const double& val)
+ {
+ putLevel();
+ *this << '<' << name << '>' << val << "</" << name << '>' << endl;
+ }
+
+void Xml::tag(const char* name, const QString& val)
+ {
+ putLevel();
+ *this << "<" << name << ">" << xmlString(val) << "</" << name << '>' << endl;
+ }
+
+void Xml::tag(const char* name, const QColor& color)
+ {
+ putLevel();
+ *this << QString("<%1 r=\"%2\" g=\"%3\" b=\"%4\"/>")
+ .arg(name).arg(color.red()).arg(color.green()).arg(color.blue()) << endl;
+ }
+
+void Xml::tag(const char* name, const QWidget* g)
+ {
+ tag(name, QRect(g->pos(), g->size()));
+ }
+
+void Xml::tag(const char* name, const QRect& r)
+ {
+ putLevel();
+ *this << "<" << name;
+ *this << QString(" x=\"%1\" y=\"%2\" w=\"%3\" h=\"%4\"/>")
+ .arg(r.x()).arg(r.y()).arg(r.width()).arg(r.height()) << endl;
+ }
+
+//---------------------------------------------------------
+// xmlString
+//---------------------------------------------------------
+
+QString Xml::xmlString(const QString& ss)
+ {
+ QString s(ss);
+ s.replace('&', "&amp;");
+ s.replace('<', "&lt;");
+ s.replace('>', "&gt;");
+ s.replace('\'', "&apos;");
+ s.replace('"', "&quot;");
+ return s;
+ }
+
+//---------------------------------------------------------
+// readGeometry
+//---------------------------------------------------------
+
+QRect readGeometry(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ int x = e.attribute("x","0").toInt();
+ int y = e.attribute("y","0").toInt();
+ int w = e.attribute("w","50").toInt();
+ int h = e.attribute("h","50").toInt();
+ return QRect(x, y, w, h);
+ }
+
+//---------------------------------------------------------
+// writeProperties
+//---------------------------------------------------------
+
+void Xml::writeProperties(const QObject* o)
+ {
+ const QMetaObject* meta = o->metaObject();
+
+ //
+ // start from dummy "muse" property, assuming this is the
+ // first muse propertie in widget hierarchy
+ //
+ int from = meta->indexOfProperty("muse") + 1;
+ int n = meta->propertyCount();
+ for (int i = from; i < n; ++i) {
+ QMetaProperty p = meta->property(i);
+ if (!p.isScriptable())
+ continue;
+ const char* name = p.name();
+ QVariant v = p.read(o);
+ switch(v.type()) {
+ case QVariant::Bool:
+ case QVariant::Int:
+ tag(name, v.toInt());
+ break;
+ case QVariant::Double:
+ tag(name, v.toDouble());
+ break;
+ case QVariant::String:
+ tag(name, v.toString());
+ break;
+ case QVariant::Rect:
+ tag(name, v.toRect());
+ break;
+ case QVariant::Point:
+ {
+ QPoint p = v.toPoint();
+ putLevel();
+ *this << "<" << name << QString(" x=\"%1\" y=\"%2\" />")
+ .arg(p.x()).arg(p.y()) << endl;
+ }
+ break;
+
+ default:
+ printf("MusE:%s type %d not implemented\n",
+ meta->className(), v.type());
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readProperties
+//---------------------------------------------------------
+
+void readProperties(QObject* o, QDomNode node)
+ {
+ const QMetaObject* meta = o->metaObject();
+
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ int idx = meta->indexOfProperty(tag.toLatin1().data());
+ if (idx == -1) {
+ printf("MusE:%s: unknown tag %s\n",
+ meta->className(), tag.toLatin1().data());
+ return;
+ }
+ QMetaProperty p = meta->property(idx);
+ QVariant v;
+ switch(p.type()) {
+ case QVariant::Int:
+ case QVariant::Bool:
+ v.setValue(e.text().toInt());
+ break;
+ case QVariant::Double:
+ v.setValue(e.text().toDouble());
+ break;
+ case QVariant::String:
+ v.setValue(e.text());
+ break;
+ case QVariant::Rect:
+ v.setValue(AL::readGeometry(node));
+ break;
+ case QVariant::Point:
+ {
+ int x = e.attribute("x","0").toInt();
+ int y = e.attribute("y","0").toInt();
+ v.setValue(QPoint(x, y));
+ }
+ break;
+ default:
+ printf("MusE:%s type %d not implemented\n",
+ meta->className(), p.type());
+ return;
+ }
+ if (p.isWritable())
+ p.write(o, v);
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Xml::dump(int len, const unsigned char* p)
+ {
+ putLevel();
+ int col = 0;
+ setFieldWidth(5);
+ setNumberFlags(numberFlags() | QTextStream::ShowBase);
+ setIntegerBase(16);
+ for (int i = 0; i < len; ++i, ++col) {
+ if (col >= 16) {
+ setFieldWidth(0);
+ *this << endl;
+ col = 0;
+ putLevel();
+ setFieldWidth(5);
+ }
+ *this << (p[i] & 0xff);
+ }
+ if (col)
+ *this << endl << dec;
+ setFieldWidth(0);
+ setIntegerBase(10);
+ }
+
+//---------------------------------------------------------
+// domError
+//---------------------------------------------------------
+
+void domError(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s;
+ QDomNode dn(node);
+ while (!dn.parentNode().isNull()) {
+ dn = dn.parentNode();
+ const QDomElement e = dn.toElement();
+ const QString k(e.tagName());
+ if (!s.isEmpty())
+ s += ":";
+ s += k;
+ }
+ fprintf(stderr, "%s: Unknown Node <%s>, type %d\n",
+ s.toLatin1().data(), tag.toLatin1().data(), node.nodeType());
+ if (node.isText()) {
+ fprintf(stderr, " text node <%s>\n", node.toText().data().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// domNotImplemented
+//---------------------------------------------------------
+
+void domNotImplemented(QDomNode node)
+ {
+ if (!AL::debugMsg)
+ return;
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s;
+ QDomNode dn(node);
+ while (!dn.parentNode().isNull()) {
+ dn = dn.parentNode();
+ const QDomElement e = dn.toElement();
+ const QString k(e.tagName());
+ if (!s.isEmpty())
+ s += ":";
+ s += k;
+ }
+ fprintf(stderr, "%s: Node not implemented: <%s>, type %d\n",
+ s.toLatin1().data(), tag.toLatin1().data(), node.nodeType());
+ if (node.isText()) {
+ fprintf(stderr, " text node <%s>\n", node.toText().data().toLatin1().data());
+ }
+ }
+}
+
diff --git a/muse_qt4_evolution/al/xml.h b/muse_qt4_evolution/al/xml.h
new file mode 100644
index 00000000..340d8190
--- /dev/null
+++ b/muse_qt4_evolution/al/xml.h
@@ -0,0 +1,69 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __XML_H__
+#define __XML_H__
+
+namespace AL {
+
+//---------------------------------------------------------
+// Xml
+//---------------------------------------------------------
+
+class Xml : public QTextStream {
+ int level;
+
+ public:
+ Xml();
+ Xml(QIODevice*);
+
+ void header();
+ void putLevel();
+
+ void put(const QString&);
+
+ void stag(const QString&);
+ void etag(const char*);
+
+ void tagE(const QString&);
+
+ void tag(const char* name, int);
+ void tag(const char* name, unsigned);
+ void tag(const char* name, const double& val);
+ void tag(const char* name, float val);
+ void tag(const char* name, const QString& s);
+ void tag(const char* name, const QColor& color);
+ void tag(const char* name, const QWidget* g);
+ void tag(const char* name, const QRect& r);
+
+ void dump(int n, const unsigned char*);
+ void writeProperties(const QObject*);
+
+ static QString xmlString(const QString&);
+ };
+
+extern QRect readGeometry(QDomNode);
+extern void readProperties(QObject* o, QDomNode node);
+extern void domError(QDomNode node);
+extern void domNotImplemented(QDomNode node);
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/all.h b/muse_qt4_evolution/all.h
new file mode 100644
index 00000000..3ec26518
--- /dev/null
+++ b/muse_qt4_evolution/all.h
@@ -0,0 +1,123 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ALLQT_H__
+#define __ALLQT_H__
+
+#include <stdio.h>
+#ifndef __APPLE__
+#include <values.h>
+#endif
+#include <errno.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <assert.h>
+#include <poll.h>
+#include <cmath>
+#include <list>
+#include <vector>
+#include <map>
+
+#include <QtCore/qplugin.h>
+#include <QtCore/QUrl>
+#include <QtCore/QFile>
+#include <QtCore/QTextStream>
+#include <QtCore/QBuffer>
+#include <QtCore/QLocale>
+#include <QtCore/QTimer>
+#include <QtCore/QSocketNotifier>
+#include <QtCore/QSignalMapper>
+#include <QtCore/QTime>
+#include <QtCore/QMetaProperty>
+#include <QtCore/QEvent>
+#include <QtCore/QTranslator>
+#include <QtCore/qatomic.h>
+#include <QtCore/QTemporaryFile>
+#include <QtCore/QQueue>
+#include <QtCore/QSettings>
+
+#include <QtDesigner/QDesignerCustomWidgetInterface>
+#include <QtDesigner/QDesignerFormEditorInterface>
+#include <QtDesigner/QFormBuilder>
+
+#include <QtXml/QDomNode>
+
+#include <QtGui/QScrollBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QPushButton>
+#include <QtGui/QToolButton>
+#include <QtGui/QRadioButton>
+#include <QtGui/QScrollArea>
+#include <QtGui/QListWidgetItem>
+#include <QtGui/QTreeWidgetItem>
+#include <QtGui/QPainterPath>
+#include <QtGui/QStackedWidget>
+#include <QtGui/QShortcut>
+#include <QtGui/QTableView>
+#include <QtGui/QTextEdit>
+#include <QtGui/QFileDialog>
+#include <QtGui/QInputDialog>
+#include <QtGui/QGroupBox>
+#include <QtGui/QProgressDialog>
+#include <QtGui/QHeaderView>
+#include <QtGui/QStyle>
+#include <QtGui/QWindowsStyle>
+#include <QtCore/QProcess>
+#include <QtGui/QWhatsThis>
+#include <QtGui/QDial>
+#include <QtGui/QPaintEvent>
+#include <QtGui/QPen>
+#include <QtGui/QPainter>
+#include <QtGui/QLineEdit>
+#include <QtGui/QCheckBox>
+#include <QtGui/QComboBox>
+#include <QtGui/QApplication>
+#include <QtGui/QSpinBox>
+#include <QtGui/QLabel>
+#include <QtGui/QPixmap>
+#include <QtGui/QPrinter>
+#include <QtGui/QGridLayout>
+#include <QtGui/QMainWindow>
+#include <QtGui/QAction>
+#include <QtGui/QColor>
+#include <QtGui/QColorDialog>
+#include <QtGui/QCursor>
+#include <QtGui/QFont>
+#include <QtGui/QFontInfo>
+#include <QtGui/QFontMetrics>
+#include <QtGui/QIcon>
+#include <QtGui/QMessageBox>
+#include <QtGui/QMenu>
+#include <QtGui/QFontDialog>
+#include <QtGui/QKeyEvent>
+#include <QtGui/QSplitter>
+#include <QtGui/QMenuBar>
+#include <QtGui/QSizeGrip>
+#include <QtGui/QClipboard>
+#include <QtGui/QCloseEvent>
+#include <QtGui/QSplashScreen>
+#include <QtGui/QStyleFactory>
+#include <QtGui/QDockWidget>
+#include <QtGui/QDesktopServices>
+#include <QtGui/QItemDelegate>
+#include <QtSvg/QSvgRenderer>
+#endif
+
diff --git a/muse_qt4_evolution/awl/CMakeLists.txt b/muse_qt4_evolution/awl/CMakeLists.txt
new file mode 100644
index 00000000..0544c82d
--- /dev/null
+++ b/muse_qt4_evolution/awl/CMakeLists.txt
@@ -0,0 +1,112 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+include(${PROJECT_SOURCE_DIR}/pch.txt)
+
+MACRO(WRAP_CPP outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.cpp)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_CPP)
+
+MACRO(WRAP_H outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.h)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_H)
+
+set(mocs
+ aslider knob panknob slider volknob volslider floatentry
+ volentry panentry midivolentry midipanentry midipanknob
+ mslider midimslider midimeter combobox checkbox posedit
+ pitchedit poslabel pitchlabel tempolabel sigedit tcanvas
+ tempoedit drawbar
+ )
+
+WRAP_H(mocH ${mocs})
+WRAP_CPP(mocCPP ${mocs})
+
+QT4_WRAP_CPP (moc_headers ${mocH})
+
+set(awl_src
+ awl.cpp utils.cpp ${mocCPP} ${moc_headers}
+ )
+
+add_library (
+ awl
+ STATIC
+ ${awl_src}
+ ${PROJECT_BINARY_DIR}/all.h.pch
+ )
+
+set_target_properties( awl
+ PROPERTIES COMPILE_FLAGS "-fPIC -include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
+IF (APPLE)
+ message("Not yet able to build awlplugin under OS X.")
+ELSE (APPLE)
+
+ #
+ # build libawlplugin.so
+ #
+ QT4_WRAP_CPP (moc_awlplugin_headers
+ awlplugin.h
+ volknob.h knob.h aslider.h
+ slider.h volslider.h mslider.h
+ posedit.h poslabel.h
+ tempoedit.h tempolabel.h
+ combobox.h checkbox.h
+ panknob.h midipanknob.h
+ floatentry.h
+ drawbar.h
+ )
+
+ add_library ( awlplugin SHARED
+ awlplugin.cpp
+ volknob.cpp knob.cpp aslider.cpp
+ slider.cpp volslider.cpp mslider.cpp
+ posedit.cpp poslabel.cpp
+ tempoedit.cpp tempolabel.cpp
+ combobox.cpp checkbox.cpp
+ panknob.cpp midipanknob.cpp
+ floatentry.cpp
+ drawbar.cpp
+ ${moc_awlplugin_headers}
+ ${PROJECT_BINARY_DIR}/all-pic.h.pch
+ )
+
+ set_target_properties( awlplugin
+ PROPERTIES COMPILE_FLAGS
+ "-D_GNU_SOURCE -D_REENTRANT -DHAVE_CONFIG_H -DQT_PLUGIN -DQT_SHARED -DQT_NO_DEBUG -include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+ target_link_libraries( awlplugin
+ al pthread asound
+ )
+
+ install( TARGETS awlplugin DESTINATION ${QT_PLUGINS_DIR}/designer/ )
+
+ add_executable( ltest ltest.cpp )
+ target_link_libraries ( ltest
+ awlplugin
+ ${QT_LIBRARIES}
+ )
+
+ENDIF (APPLE)
diff --git a/muse_qt4_evolution/awl/aslider.cpp b/muse_qt4_evolution/awl/aslider.cpp
new file mode 100644
index 00000000..79a36b88
--- /dev/null
+++ b/muse_qt4_evolution/awl/aslider.cpp
@@ -0,0 +1,241 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "aslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// AbstractSlider
+//---------------------------------------------------------
+
+AbstractSlider::AbstractSlider(QWidget* parent)
+ : QWidget(parent), _scaleColor(Qt::black), _scaleValueColor(Qt::blue)
+ {
+ _id = 0;
+ _value = 0.5;
+ _minValue = 0.0;
+ _maxValue = 1.0;
+ _lineStep = 0.1;
+ _pageStep = 0.2;
+ _center = false;
+ _invert = false;
+ _scaleWidth = 4;
+ _log = false;
+ _integer = false;
+ }
+
+//---------------------------------------------------------
+// setEnabled
+//---------------------------------------------------------
+
+void AbstractSlider::setEnabled(bool val)
+ {
+ QWidget::setEnabled(val);
+ update();
+ }
+
+//---------------------------------------------------------
+// setCenter
+//! If the center flag is set, a notch is drawn to
+//! show the center position.
+//---------------------------------------------------------
+
+void AbstractSlider::setCenter(bool val)
+ {
+ if (val != _center) {
+ _center = val;
+ update();
+ }
+ }
+
+//!--------------------------------------------------------
+// setScaleWidth
+//---------------------------------------------------------
+
+void AbstractSlider::setScaleWidth(int val)
+ {
+ if (val != _scaleWidth) {
+ _scaleWidth = val;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setScaleColor
+//---------------------------------------------------------
+
+void AbstractSlider::setScaleColor(const QColor& c)
+ {
+ if (c != _scaleColor) {
+ _scaleColor = c;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setScaleValueColor
+//---------------------------------------------------------
+
+void AbstractSlider::setScaleValueColor(const QColor& c)
+ {
+ if (c != _scaleValueColor) {
+ _scaleValueColor = c;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void AbstractSlider::wheelEvent(QWheelEvent* ev)
+ {
+ double div = 120.0;
+ if (ev->modifiers() & Qt::ShiftModifier)
+ _value += (ev->delta() * pageStep()) / div;
+ else
+ _value += (ev->delta() * lineStep()) / div;
+ if (_value < _minValue)
+ _value = _minValue;
+ else if (_value > _maxValue)
+ _value = _maxValue;
+ valueChange();
+ update();
+ }
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+
+void AbstractSlider::keyPressEvent(QKeyEvent* ev)
+ {
+ double oval = _value;
+
+ switch (ev->key()) {
+ case Qt::Key_Home: _value = _minValue; break;
+ case Qt::Key_End: _value = _maxValue; break;
+ case Qt::Key_Up:
+ case Qt::Key_Left: _value += lineStep(); break;
+ case Qt::Key_Down:
+ case Qt::Key_Right: _value -= lineStep(); break;
+ case Qt::Key_PageDown: _value -= pageStep(); break;
+ case Qt::Key_PageUp: _value += pageStep(); break;
+ default:
+ break;
+ }
+ if (_value < _minValue)
+ _value = _minValue;
+ else if (_value > _maxValue)
+ _value = _maxValue;
+
+ if (oval != _value) {
+ if (_integer && (rint(oval) == rint(_value)))
+ return;
+ valueChange();
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void AbstractSlider::setValue(double val)
+ {
+ if (_log) {
+ if (val == 0.0f)
+ _value = _minValue;
+ else {
+ _value = fast_log10(val) * 20.0f;
+ if (_value < _minValue)
+ _value = _minValue;
+ }
+ }
+ else if (_integer)
+ _value = rint(val);
+ else
+ _value = val;
+ update();
+ }
+
+//---------------------------------------------------------
+// valueChange
+//---------------------------------------------------------
+
+void AbstractSlider::valueChange()
+ {
+ emit valueChanged(value(), _id);
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+double AbstractSlider::value() const
+ {
+ if (_log)
+ return pow(10.0, _value*0.05f);
+ if (_integer)
+ return rint(_value);
+ return _value;
+ }
+
+//---------------------------------------------------------
+// minLogValue
+//---------------------------------------------------------
+
+//double AbstractSlider::minValue() const {
+// return _log ? pow(10.0, _minValue*0.05f) : _minValue;
+//}
+
+//---------------------------------------------------------
+// setMinLogValue
+//---------------------------------------------------------
+
+void AbstractSlider::setMinLogValue(double val) {
+ if (_log) {
+ if (val == 0.0f) _minValue = -100;
+ else _minValue = fast_log10(val) * 20.0f;
+ }
+ else _minValue = val;
+}
+
+//---------------------------------------------------------
+// maxLogValue
+//---------------------------------------------------------
+
+//double AbstractSlider::maxValue() const {
+// return _log ? pow(10.0, _maxValue*0.05f) : _maxValue;
+//}
+
+//---------------------------------------------------------
+// setMaxLogValue
+//---------------------------------------------------------
+
+void AbstractSlider::setMaxLogValue(double val) {
+ if (_log) {
+ _maxValue = fast_log10(val) * 20.0f;
+ }
+ else _maxValue = val;
+}
+
+}
diff --git a/muse_qt4_evolution/awl/aslider.h b/muse_qt4_evolution/awl/aslider.h
new file mode 100644
index 00000000..32fc89f9
--- /dev/null
+++ b/muse_qt4_evolution/awl/aslider.h
@@ -0,0 +1,135 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLASLIDER_H__
+#define __AWLASLIDER_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// AbstractSlider
+//
+//! The AwlAbstractSlider class provides an double value
+//! within a range
+//
+//! The class is designed as a common super class for
+//! widgets like AwlKnob and AwlSlider
+//!
+//---------------------------------------------------------
+
+class AbstractSlider : public QWidget {
+
+ Q_OBJECT
+ Q_PROPERTY(double value READ value WRITE setValue)
+ Q_PROPERTY(bool center READ center WRITE setCenter)
+ Q_PROPERTY(bool invertedAppearance READ invertedAppearance WRITE setInvertedAppearance)
+
+ Q_PROPERTY(int scaleWidth READ scaleWidth WRITE setScaleWidth)
+ Q_PROPERTY(QColor scaleColor READ scaleColor WRITE setScaleColor)
+ Q_PROPERTY(QColor scaleValueColor READ scaleValueColor WRITE setScaleValueColor)
+
+ Q_PROPERTY(int id READ id WRITE setId)
+
+ Q_PROPERTY(double minValue READ minValue WRITE setMinValue)
+ Q_PROPERTY(double maxValue READ maxValue WRITE setMaxValue)
+ Q_PROPERTY(double lineStep READ lineStep WRITE setLineStep)
+ Q_PROPERTY(double pageStep READ pageStep WRITE setPageStep)
+ Q_PROPERTY(bool log READ log WRITE setLog)
+ Q_PROPERTY(bool integer READ integer WRITE setInteger)
+
+ protected:
+ int _id;
+ double _value;
+ double _minValue, _maxValue, _lineStep, _pageStep;
+ bool _center;
+ bool _invert;
+ int _scaleWidth; //! scale line width
+ QColor _scaleColor;
+ QColor _scaleValueColor;
+ bool _log;
+ bool _integer;
+
+ virtual void wheelEvent(QWheelEvent*);
+ virtual void keyPressEvent(QKeyEvent*);
+ virtual void valueChange();
+
+ signals:
+ void valueChanged(double, int);
+
+ public slots:
+ virtual void setValue(double v);
+
+ public:
+ AbstractSlider(QWidget* parent = 0);
+
+ virtual void setCenter(bool val);
+ virtual void setScaleWidth(int);
+ virtual void setScaleColor(const QColor&);
+ virtual void setScaleValueColor(const QColor&);
+
+ //! return the center flag
+ bool center() const { return _center; }
+
+ //! return the scale line width
+ int scaleWidth() const { return _scaleWidth; }
+
+ //! return current scale color
+ QColor scaleColor() const { return _scaleColor; }
+
+ //! return color of active scale part
+ QColor scaleValueColor() const { return _scaleValueColor; }
+
+ virtual void setInvertedAppearance(bool val) { _invert = val; }
+ bool invertedAppearance() const { return _invert; }
+
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+
+ virtual double value() const;
+
+ double minValue() const { return _minValue; }
+ void setMinValue(double v) { _minValue = v; }
+ void setMinLogValue(double v);
+ double maxValue() const {return _maxValue; }
+ void setMaxValue(double v) { _maxValue = v; }
+ void setMaxLogValue(double v);
+ void setRange(double a, double b) {
+ setMinValue(a);
+ setMaxValue(b);
+ }
+ void setLogRange(double a, double b) {
+ setMinLogValue(a);
+ setMaxLogValue(b);
+ }
+ bool log() const { return _log; }
+ void setLog(bool v) { _log = v; }
+ bool integer() const { return _integer; }
+ void setInteger(bool v) { _integer = v; }
+ double lineStep() const { return _lineStep; }
+ void setLineStep(double v) { _lineStep = v; }
+ double pageStep() const { return _pageStep; }
+ void setPageStep(double f) { _pageStep = f; }
+ void setEnabled(bool val);
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/awl.cpp b/muse_qt4_evolution/awl/awl.cpp
new file mode 100644
index 00000000..87aac3e7
--- /dev/null
+++ b/muse_qt4_evolution/awl/awl.cpp
@@ -0,0 +1,27 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "awl.h"
+
+namespace Awl {
+// int sampleRate = 44100;
+// int mtcType = 0;
+ };
+
diff --git a/muse_qt4_evolution/awl/awl.h b/muse_qt4_evolution/awl/awl.h
new file mode 100644
index 00000000..2019c4bd
--- /dev/null
+++ b/muse_qt4_evolution/awl/awl.h
@@ -0,0 +1,30 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWL_H__
+#define __AWL_H__
+
+namespace Awl {
+// extern int sampleRate;
+// extern int mtcType;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/awlplugin.cpp b/muse_qt4_evolution/awl/awlplugin.cpp
new file mode 100644
index 00000000..43435f5e
--- /dev/null
+++ b/muse_qt4_evolution/awl/awlplugin.cpp
@@ -0,0 +1,127 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "volknob.h"
+#include "volslider.h"
+#include "mslider.h"
+#include "awlplugin.h"
+#include "posedit.h"
+#include "poslabel.h"
+#include "tempoedit.h"
+#include "tempolabel.h"
+#include "checkbox.h"
+#include "combobox.h"
+#include "floatentry.h"
+#include "panknob.h"
+#include "midipanknob.h"
+#include "drawbar.h"
+
+#include <QtCore/QtPlugin>
+#include <QtDesigner/QDesignerCustomWidgetInterface>
+
+QWidget* KnobPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::Knob(parent);
+ }
+QWidget* VolKnobPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::VolKnob(parent);
+ }
+QWidget* SliderPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::Slider(parent);
+ }
+QWidget* VolSliderPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::VolSlider(parent);
+ }
+QWidget* MeterSliderPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::MeterSlider(parent);
+ }
+QWidget* PosEditPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::PosEdit(parent);
+ }
+QWidget* PosLabelPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::PosLabel(parent);
+ }
+QWidget* TempoEditPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::TempoEdit(parent);
+ }
+QWidget* TempoLabelPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::TempoLabel(parent);
+ }
+QWidget* CheckBoxPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::CheckBox(parent);
+ }
+QWidget* ComboBoxPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::ComboBox(parent);
+ }
+QWidget* FloatEntryPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::FloatEntry(parent);
+ }
+QWidget* PanKnobPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::PanKnob(parent);
+ }
+QWidget* MidiPanKnobPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::MidiPanKnob(parent);
+ }
+QWidget* DrawbarPlugin::createWidget(QWidget* parent)
+ {
+ return new Awl::Drawbar(parent);
+ }
+
+//---------------------------------------------------------
+// customWidgets
+//---------------------------------------------------------
+
+QList<QDesignerCustomWidgetInterface*> AwlPlugins::customWidgets() const
+ {
+ QList<QDesignerCustomWidgetInterface*> plugins;
+ plugins
+ << new VolKnobPlugin
+ << new PanKnobPlugin
+ << new MidiPanKnobPlugin
+ << new KnobPlugin
+ << new SliderPlugin
+ << new VolSliderPlugin
+ << new MeterSliderPlugin
+ << new PosEditPlugin
+ << new PosLabelPlugin
+ << new TempoEditPlugin
+ << new TempoLabelPlugin
+ << new CheckBoxPlugin
+ << new ComboBoxPlugin
+ << new FloatEntryPlugin
+ << new DrawbarPlugin;
+ return plugins;
+ }
+
+Q_EXPORT_PLUGIN(AwlPlugins)
+
diff --git a/muse_qt4_evolution/awl/awlplugin.h b/muse_qt4_evolution/awl/awlplugin.h
new file mode 100644
index 00000000..79b180fd
--- /dev/null
+++ b/muse_qt4_evolution/awl/awlplugin.h
@@ -0,0 +1,273 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPLUGIN_H__
+#define __AWLPLUGIN_H__
+
+#include <QtDesigner/QDesignerCustomWidgetInterface>
+
+//---------------------------------------------------------
+// AwlPlugin
+//---------------------------------------------------------
+
+class AwlPlugin : public QDesignerCustomWidgetInterface {
+ Q_INTERFACES(QDesignerCustomWidgetInterface)
+ bool m_initialized;
+
+ public:
+ AwlPlugin() : m_initialized(false) { }
+ bool isContainer() const { return false; }
+ bool isInitialized() const { return m_initialized; }
+ QIcon icon() const { return QIcon(); }
+ virtual QString codeTemplate() const { return QString(); }
+ QString whatsThis() const { return QString(); }
+ QString toolTip() const { return QString(); }
+ QString group() const { return "MusE Awl Widgets"; }
+ void initialize(QDesignerFormEditorInterface *) {
+ if (m_initialized)
+ return;
+ m_initialized = true;
+ }
+ };
+
+//---------------------------------------------------------
+// KnobPlugin
+//---------------------------------------------------------
+
+class KnobPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ KnobPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return QString("awl/knob.h"); }
+ QString name() const { return "Awl::Knob"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// VolKnobPlugin
+//---------------------------------------------------------
+
+class VolKnobPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ VolKnobPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/volknob.h"; }
+ QString name() const { return "Awl::VolKnob"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// SliderPlugin
+//---------------------------------------------------------
+
+class SliderPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ SliderPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/slider.h"; }
+ QString name() const { return "Awl::Slider"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// VolSliderPlugin
+//---------------------------------------------------------
+
+class VolSliderPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ VolSliderPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/volslider.h"; }
+ QString name() const { return "Awl::VolSlider"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// MeterSliderPlugin
+//---------------------------------------------------------
+
+class MeterSliderPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ MeterSliderPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/mslider.h"; }
+ QString name() const { return "Awl::MeterSlider"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// PosEditPlugin
+//---------------------------------------------------------
+
+class PosEditPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ PosEditPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/posedit.h"; }
+ QString name() const { return "Awl::PosEdit"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// PosLabelPlugin
+//---------------------------------------------------------
+
+class PosLabelPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ PosLabelPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/poslabel.h"; }
+ QString name() const { return "Awl::PosLabel"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// TempoEditPlugin
+//---------------------------------------------------------
+
+class TempoEditPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ TempoEditPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/tempoedit.h"; }
+ QString name() const { return "Awl::TempoEdit"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// TempoLabelPlugin
+//---------------------------------------------------------
+
+class TempoLabelPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ TempoLabelPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/tempolabel.h"; }
+ QString name() const { return "Awl::TempoLabel"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// CheckBoxPlugin
+//---------------------------------------------------------
+
+class CheckBoxPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ CheckBoxPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/checkbox.h"; }
+ QString name() const { return "Awl::CheckBox"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// ComboBoxPlugin
+//---------------------------------------------------------
+
+class ComboBoxPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ ComboBoxPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/combobox.h"; }
+ QString name() const { return "Awl::ComboBox"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// FloatEntryPlugin
+//---------------------------------------------------------
+
+class FloatEntryPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ FloatEntryPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/floatentry.h"; }
+ QString name() const { return "Awl::FloatEntry"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// PanKnobPlugin
+//---------------------------------------------------------
+
+class PanKnobPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ PanKnobPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/panknob.h"; }
+ QString name() const { return "Awl::PanKnob"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// MidiPanKnobPlugin
+//---------------------------------------------------------
+
+class MidiPanKnobPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ MidiPanKnobPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/midipanknob.h"; }
+ QString name() const { return "Awl::MidiPanKnob"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// DrawbarPlugin
+//---------------------------------------------------------
+
+class DrawbarPlugin : public QObject, public AwlPlugin {
+ Q_OBJECT
+
+ public:
+ DrawbarPlugin(QObject* parent = 0) : QObject(parent) {}
+ QString includeFile() const { return "awl/drawbar.h"; }
+ QString name() const { return "Awl::Drawbar"; }
+ QWidget* createWidget(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// AwlPlugins
+//---------------------------------------------------------
+
+class AwlPlugins : public QObject, public QDesignerCustomWidgetCollectionInterface {
+ Q_OBJECT
+ Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
+
+ public:
+ QList<QDesignerCustomWidgetInterface*> customWidgets() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/checkbox.cpp b/muse_qt4_evolution/awl/checkbox.cpp
new file mode 100644
index 00000000..6ef74386
--- /dev/null
+++ b/muse_qt4_evolution/awl/checkbox.cpp
@@ -0,0 +1,36 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "checkbox.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// CheckBox
+//---------------------------------------------------------
+
+CheckBox::CheckBox(QWidget* parent)
+ : QCheckBox(parent)
+ {
+ _id = 0;
+ connect(this, SIGNAL(toggled(bool)), SLOT(hasToggled(bool)));
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/checkbox.h b/muse_qt4_evolution/awl/checkbox.h
new file mode 100644
index 00000000..ac67fc57
--- /dev/null
+++ b/muse_qt4_evolution/awl/checkbox.h
@@ -0,0 +1,55 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLCHECKBOX_H__
+#define __AWLCHECKBOX_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// CheckBox
+//---------------------------------------------------------
+
+class CheckBox : public QCheckBox {
+ Q_OBJECT
+ Q_PROPERTY(int id READ id WRITE setId)
+
+ int _id;
+
+ private slots:
+ void hasToggled(bool val) {
+ emit valueChanged(double(val), _id);
+ }
+ signals:
+ void valueChanged(double, int);
+
+ public slots:
+ void setValue(double val) { setDown(val > 0.5f); }
+
+ public:
+ CheckBox(QWidget* parent);
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/clock.xpm b/muse_qt4_evolution/awl/clock.xpm
new file mode 100644
index 00000000..3bf15e01
--- /dev/null
+++ b/muse_qt4_evolution/awl/clock.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char *clock_xpm[]={
+"18 18 3 1",
+". c None",
+"# c #000000",
+"a c #0000c0",
+"...####a#####.....",
+"..####.aaa.###....",
+".####..aaa..###...",
+".###...aaa...###..",
+".#.....aaa....##..",
+"##.....aaa.....##.",
+"##.....aaa.....##.",
+"###....aaaaaaaaa#.",
+"###....aaaaaaaaa#.",
+"##.....aaaaaaaaa#.",
+"##............#.#.",
+".##...........##..",
+".##..........###..",
+"..##........####..",
+"...####...####....",
+"....#########.....",
+"......######......",
+".................."};
diff --git a/muse_qt4_evolution/awl/combobox.cpp b/muse_qt4_evolution/awl/combobox.cpp
new file mode 100644
index 00000000..58c82c54
--- /dev/null
+++ b/muse_qt4_evolution/awl/combobox.cpp
@@ -0,0 +1,36 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "combobox.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// ComboBox
+//---------------------------------------------------------
+
+ComboBox::ComboBox(QWidget* parent)
+ : QComboBox(parent)
+ {
+ _id = 0;
+ connect(this, SIGNAL(activated(int)), SLOT(activatedIntern(int)));
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/combobox.h b/muse_qt4_evolution/awl/combobox.h
new file mode 100644
index 00000000..d335d993
--- /dev/null
+++ b/muse_qt4_evolution/awl/combobox.h
@@ -0,0 +1,55 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLCOMBOBOX_H__
+#define __AWLCOMBOBOX_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// ComboBox
+//---------------------------------------------------------
+
+class ComboBox : public QComboBox {
+ Q_OBJECT
+ Q_PROPERTY(int id READ id WRITE setId)
+
+ int _id;
+
+ private slots:
+ void activatedIntern(int val) {
+ emit valueChanged(double(val), _id);
+ }
+
+ signals:
+ void valueChanged(double, int);
+
+ public slots:
+ void setValue(double val) { setCurrentIndex(int(val)); }
+
+ public:
+ ComboBox(QWidget* parent);
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/drawbar.cpp b/muse_qt4_evolution/awl/drawbar.cpp
new file mode 100644
index 00000000..18525ded
--- /dev/null
+++ b/muse_qt4_evolution/awl/drawbar.cpp
@@ -0,0 +1,130 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2007 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "drawbar.h"
+
+namespace Awl {
+
+#if 0
+ }
+#endif
+
+//---------------------------------------------------------
+// Drawbar
+//---------------------------------------------------------
+
+Drawbar::Drawbar(QWidget* parent)
+ : Slider(parent)
+ {
+ _sliderColor = Qt::darkGray;
+ setOrientation(Qt::Vertical);
+ setInvertedAppearance(true);
+ setRange(0.0, 8.0);
+ setLineStep(1.0);
+ setPageStep(1.0);
+ setInteger(true);
+ }
+
+Drawbar::~Drawbar()
+ {
+ }
+
+//---------------------------------------------------------
+// setSliderColor
+//---------------------------------------------------------
+
+void Drawbar::setSliderColor(const QColor& c)
+ {
+ if (c != _sliderColor) {
+ _sliderColor = c;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void Drawbar::paintEvent(QPaintEvent*)
+ {
+ int h = height();
+ int w = width();
+
+ int kh = w * 2; // knob height
+ int kw = w;
+ int pixel = h - kh;
+ int ppos = int(pixel * value() / 8.0);
+
+ QPainter p(this);
+
+ QColor sc(Qt::darkGray);
+ QColor svc(Qt::gray);
+
+ p.setBrush(svc);
+
+ //---------------------------------------------------
+ // draw scale
+ //---------------------------------------------------
+
+ int sx = (w + 9) / 10;
+ int sw = w - 2 * sx;
+ p.fillRect(sx, 0, sw, ppos, sc);
+ QPen pen(Qt::white);
+ int lw = 2;
+ pen.setWidth(lw);
+ p.setPen(pen);
+ int sx1 = sx + lw/2;
+ p.drawLine(sx1, 0, sx1, ppos);
+ int sx2 = sx + sw - lw/2;
+ p.drawLine(sx2, 0, sx2, ppos);
+
+ //---------------------------------------------------
+ // draw numbers
+ //---------------------------------------------------
+
+ p.save();
+ p.setClipRect(QRect(sx, 0, sw, ppos));
+ QFont f = p.font();
+ f.setPixelSize(8);
+
+ int ch = pixel / 8;
+ QString num("%1");
+ for (int i = 0; i < 8; ++i) {
+ p.drawText(0, i * pixel / 8 - (pixel - ppos), w, ch, Qt::AlignCenter, num.arg(8-i));
+ }
+ p.restore();
+
+ //---------------------------------------------------
+ // draw slider
+ //---------------------------------------------------
+
+ p.fillRect(0, ppos, kw, kh, _sliderColor);
+
+ pen.setWidth(1);
+ pen.setColor(Qt::black);
+ p.setPen(pen);
+
+ int y1 = ppos + kh / 5 * 2;
+ int y2 = ppos + kh / 5 * 3;
+ p.drawLine(0, y1, kw, y1);
+ p.drawLine(0, y2, kw, y2);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/drawbar.h b/muse_qt4_evolution/awl/drawbar.h
new file mode 100644
index 00000000..4794b784
--- /dev/null
+++ b/muse_qt4_evolution/awl/drawbar.h
@@ -0,0 +1,54 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2007 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLDRAWBAR_H__
+#define __AWLDRAWBAR_H__
+
+#include "slider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// Drawbar
+//---------------------------------------------------------
+
+class Drawbar : public Slider {
+ Q_OBJECT
+
+ Q_PROPERTY(QColor sliderColor READ sliderColor WRITE setSliderColor)
+
+ virtual void paintEvent(QPaintEvent*);
+
+ protected:
+ QColor _sliderColor;
+
+ public:
+ Drawbar(QWidget* parent = 0);
+ ~Drawbar();
+
+ //! return current slider color
+ QColor sliderColor() const { return _sliderColor; }
+ void setSliderColor(const QColor&);
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/fastlog.h b/muse_qt4_evolution/awl/fastlog.h
new file mode 100644
index 00000000..90a85342
--- /dev/null
+++ b/muse_qt4_evolution/awl/fastlog.h
@@ -0,0 +1,39 @@
+/* Copyright unknown. Code by Laurent de Soras <laurent@ohmforce.com>.
+ */
+
+#ifndef __FASTLOG_H__
+#define __FASTLOG_H__
+
+#include <math.h> /* for HUGE_VAL */
+
+static inline float fast_log2 (float val)
+ {
+ /* don't use reinterpret_cast<> because that prevents this
+ from being used by pure C code (for example, GnomeCanvasItems)
+ */
+ union {float f; int i;} t;
+ t.f = val;
+ int* const exp_ptr = &t.i;
+ int x = *exp_ptr;
+ const int log_2 = ((x >> 23) & 255) - 128;
+ x &= ~(255 << 23);
+ x += 127 << 23;
+ *exp_ptr = x;
+ val = ((-1.0f/3) * t.f + 2) * t.f - 2.0f/3;
+ return (val + log_2);
+ }
+
+static inline float fast_log (const float val)
+ {
+ return (fast_log2 (val) * 0.69314718f);
+ }
+
+static inline float fast_log10 (const float val)
+ {
+ return fast_log2(val) / 3.312500f;
+ }
+
+static inline float minus_infinity() { return -HUGE_VAL; }
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/floatentry.cpp b/muse_qt4_evolution/awl/floatentry.cpp
new file mode 100644
index 00000000..7831614f
--- /dev/null
+++ b/muse_qt4_evolution/awl/floatentry.cpp
@@ -0,0 +1,317 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "floatentry.h"
+#include "fastlog.h"
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+namespace Awl {
+
+//---------------------------------------------------------
+// FloatEntry
+//---------------------------------------------------------
+
+FloatEntry::FloatEntry(QWidget* parent)
+ : QLineEdit(parent)
+ {
+ _id = 0;
+ _minValue = 0.0;
+ _maxValue = 1.0;
+ _log = false;
+ evx = 1.0;
+ _precision = 3;
+ timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), SLOT(repeat()));
+ _value = 0.0f;
+ connect(this, SIGNAL(returnPressed()), SLOT(endEdit()));
+ setCursor(QCursor(Qt::ArrowCursor));
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool FloatEntry::setString(double v)
+ {
+ QString s;
+// if (v < _minValue || v > _maxValue) {
+ if (v < _minValue) {
+ if (!_specialText.isEmpty())
+ setText(_specialText);
+ return true;
+ }
+ s.setNum(v, 'f', _precision);
+ if (!_suffix.isEmpty()) {
+ // s += " ";
+ s += _suffix;
+ }
+ setText(s);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setSValue
+//---------------------------------------------------------
+
+void FloatEntry::setSValue(const QString& s)
+ {
+ bool ok;
+ double v = s.toFloat(&ok);
+ if (ok && (v != _value)) {
+ if (v < _minValue)
+ v = _minValue;
+ if (v > _maxValue)
+ v = _maxValue;
+ _value = v;
+ updateValue();
+ valueChange();
+ }
+ }
+
+//---------------------------------------------------------
+// valueChange
+//---------------------------------------------------------
+
+void FloatEntry::valueChange()
+ {
+ emit valueChanged(value(), _id);
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void FloatEntry::incValue(double)
+ {
+ if (_value + 1.0 < _maxValue) {
+ _value = _value + 1.0;
+ updateValue();
+ valueChange();
+ }
+ }
+
+//---------------------------------------------------------
+// decValue
+//---------------------------------------------------------
+
+void FloatEntry::decValue(double)
+ {
+ if (_value - 1.0 > _minValue) {
+ _value = _value - 1.0;
+ updateValue();
+ valueChange();
+ }
+ }
+
+//---------------------------------------------------------
+// setPrecision
+//---------------------------------------------------------
+
+void FloatEntry::setPrecision(int v)
+ {
+ _precision = v;
+ setString(_value);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize FloatEntry::sizeHint() const
+ {
+ QFontMetrics fm = fontMetrics();
+ int h = fm.height() + 4;
+ int n = _precision + 3;
+ int w = fm.width(QString("-0.")) + fm.width('0') * n + 6;
+ return QSize(w, h);
+ }
+
+//---------------------------------------------------------
+// endEdit
+//---------------------------------------------------------
+
+void FloatEntry::endEdit()
+ {
+ if (QLineEdit::isModified())
+ setSValue(text());
+ clearFocus();
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void FloatEntry::mousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ starty = event->y();
+ evx = double(event->x());
+ timecount = 0;
+ repeat();
+ timer->start(TIMER1);
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void FloatEntry::wheelEvent(QWheelEvent* event)
+ {
+ int delta = event->delta();
+
+ if (delta < 0)
+ decValue(-1.0);
+ else if (delta > 0)
+ incValue(1.0);
+ }
+
+//---------------------------------------------------------
+// repeat
+//---------------------------------------------------------
+
+void FloatEntry::repeat()
+ {
+ if (timecount == 1) {
+ ++timecount;
+ timer->stop();
+ timer->start(TIMER2);
+ return;
+ }
+ ++timecount;
+ if (timecount == TIMEC) {
+ timer->stop();
+ timer->start(TIMER3);
+ }
+ if (timecount == TIMEC2) {
+ timer->stop();
+ timer->start(TIMER4);
+ }
+
+ switch (button) {
+ case Qt::LeftButton:
+ return;
+ case Qt::MidButton:
+ decValue(evx);
+ break;
+ case Qt::RightButton:
+ incValue(evx);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void FloatEntry::mouseReleaseEvent(QMouseEvent*)
+ {
+ button = Qt::NoButton;
+ timer->stop();
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void FloatEntry::mouseMoveEvent(QMouseEvent*)
+ {
+ switch (button) {
+ case Qt::LeftButton:
+ break;
+ case Qt::MidButton:
+ break;
+ case Qt::RightButton:
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void FloatEntry::mouseDoubleClickEvent(QMouseEvent* event)
+ {
+ if (event->button() != Qt::LeftButton) {
+ mousePressEvent(event);
+ return;
+ }
+ setFocus();
+ QLineEdit::setFrame(true);
+ update();
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void FloatEntry::setValue(double val)
+ {
+ if (_log) {
+ if (val == 0.0f)
+ _value = _minValue;
+ else
+ _value = fast_log10(val) * 20.0f;
+ }
+ else
+ _value = val;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// updateValue
+//---------------------------------------------------------
+
+void FloatEntry::updateValue()
+ {
+ if (setString(_value)) {
+ // value is out of range:
+ if (_value > _maxValue)
+ _value = _maxValue;
+ else if (_value < _minValue)
+ _value = _minValue;
+ }
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+double FloatEntry::value() const
+ {
+ double rv;
+ if (_log)
+ rv = pow(10.0, _value * 0.05f);
+ else
+ rv = _value;
+ return rv;
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/floatentry.h b/muse_qt4_evolution/awl/floatentry.h
new file mode 100644
index 00000000..a90232a9
--- /dev/null
+++ b/muse_qt4_evolution/awl/floatentry.h
@@ -0,0 +1,112 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __FLOATLABEL_H__
+#define __FLOATLABEL_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// FloatEntry
+//---------------------------------------------------------
+
+class FloatEntry : public QLineEdit {
+ Q_OBJECT
+ Q_PROPERTY(int id READ id WRITE setId)
+
+ Q_PROPERTY(double minValue READ minValue WRITE setMinValue)
+ Q_PROPERTY(double maxValue READ maxValue WRITE setMaxValue)
+
+ Q_PROPERTY(QString specialText READ specialText WRITE setSpecialText)
+ Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
+ Q_PROPERTY(int precision READ precision WRITE setPrecision)
+ Q_PROPERTY(bool log READ log WRITE setLog)
+
+ int button;
+ int starty;
+ QTimer* timer;
+ double evx;
+ int timecount;
+ double _minValue, _maxValue;
+ QString _specialText; // text to show if value outside min,max
+ QString _suffix;
+ int _precision;
+ bool _log;
+
+ virtual void wheelEvent(QWheelEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void setSValue(const QString&);
+ virtual bool setString(double);
+ virtual void incValue(double);
+ virtual void decValue(double);
+
+ void updateValue();
+
+ protected:
+ int _id;
+ double _value;
+ virtual void valueChange();
+
+ private slots:
+ void repeat();
+
+ protected slots:
+ void endEdit();
+
+ public slots:
+ virtual void setValue(double);
+
+ signals:
+ void valueChanged(double, int);
+
+ public:
+ FloatEntry(QWidget*);
+ virtual QSize sizeHint() const;
+ virtual double value() const;
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ double minValue() const { return _minValue; }
+ double maxValue() const { return _maxValue; }
+ void setMinValue(double v) { _minValue = v; }
+ void setMaxValue(double v) { _maxValue = v; }
+ void setRange(double a, double b) {
+ _minValue = a;
+ _maxValue = b;
+ }
+ int precision() const { return _precision; }
+ void setPrecision(int val);
+ QString specialText() const { return _specialText; }
+ void setSpecialText(const QString& s) {
+ _specialText = s;
+ update();
+ }
+ QString suffix() const { return _suffix; }
+ void setSuffix(const QString& s) { _suffix = s; }
+ bool log() const { return _log; }
+ void setLog(bool v) { _log = v; }
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/knob.cpp b/muse_qt4_evolution/awl/knob.cpp
new file mode 100644
index 00000000..ccc3988e
--- /dev/null
+++ b/muse_qt4_evolution/awl/knob.cpp
@@ -0,0 +1,281 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "knob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// Knob
+/// this is the AwlKnob contructor
+//---------------------------------------------------------
+
+Knob::Knob(QWidget* parent)
+ : AbstractSlider(parent)
+ {
+ _scaleSize = 270;
+ _markSize = 6;
+ _border = 2;
+ points = 0;
+ }
+
+//---------------------------------------------------------
+// Knob
+//---------------------------------------------------------
+
+Knob::~Knob()
+ {
+ if (points)
+ delete points;
+ }
+
+//---------------------------------------------------------
+// setText
+//---------------------------------------------------------
+
+void Knob::setText(const QString& s)
+ {
+ if (s != _text) {
+ _text = s;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setScaleSize
+//! set the scale size in degrees
+//
+//! the scale size is the max moving angle measured
+//! in degrees
+//---------------------------------------------------------
+
+void Knob::setScaleSize(int val)
+ {
+ if (val != _scaleSize) {
+ _scaleSize = val;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setMarkSize
+//! set size of the center marker
+//---------------------------------------------------------
+
+void Knob::setMarkSize(int val)
+ {
+ if (val != _markSize) {
+ _markSize = val;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// setBorder
+//! set border size
+//---------------------------------------------------------
+
+void Knob::setBorder(int val)
+ {
+ if (val != _border) {
+ _border = val;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void Knob::mousePressEvent(QMouseEvent* ev)
+ {
+ startY = ev->y();
+ emit sliderPressed(_id);
+ if (_center) {
+ QRect r(points->boundingRect().toRect());
+ if (r.contains(ev->pos())) {
+ setValue(.0f);
+ valueChange();
+ update();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void Knob::mouseReleaseEvent(QMouseEvent*)
+ {
+ emit sliderReleased(_id);
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void Knob::mouseMoveEvent(QMouseEvent* ev)
+ {
+ int y = ev->y();
+ double delta = (maxValue() - minValue()) / 100.0f;
+ if (delta == 0)
+ delta = 1;
+ _value += (startY - y) * delta;
+ if (_value < minValue())
+ _value = _minValue;
+ else if (_value > maxValue())
+ _value = _maxValue;
+ startY = y;
+ valueChange();
+ update();
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void Knob::paintEvent(QPaintEvent* ev)
+ {
+ QRect rr(ev->rect());
+ QPainter p(this);
+ p.setRenderHint(QPainter::Antialiasing, true);
+
+ int markSize2 = _markSize/2;
+ int restR = 360 - _scaleSize;
+ int w = width() - _scaleWidth - 2 * _border;
+ int h = height() - _scaleWidth/2 - 2 * _border;
+
+ int xoffset, yoffset;
+ if (_center)
+ h -= _markSize;
+ if (w > h) {
+ yoffset = 0;
+ xoffset = (w - h) / 2;
+ w = h;
+ }
+ else {
+ xoffset = 0;
+ // yoffset = (h - w) / 2; // center
+ yoffset = h - w; // top align
+ h = w;
+ }
+
+ int x = xoffset + _scaleWidth / 2 + _border;
+ int y = yoffset + _scaleWidth / 2 + _border + (_center ? _markSize+_scaleWidth/2 : 0);
+ QRectF ar(x, y, w, h);
+
+ QColor sc(isEnabled() ? _scaleColor : Qt::gray);
+ QColor svc(isEnabled() ? _scaleValueColor : Qt::gray);
+
+ //-----------------------------------------
+ // draw arc
+ //-----------------------------------------
+
+ double dvalue = maxValue() - minValue();
+ if (_center) {
+ int size = _scaleSize * 8;
+ if (_value >= 0) {
+ int offset = (restR-180) * 8;
+ int r1 = int (size * _value / maxValue());
+ int r2 = size - r1;
+ p.setPen(QPen(sc, _scaleWidth));
+ if (r2 > 1)
+ p.drawArc(ar, offset, r2);
+ if (size > 1)
+ p.drawArc(ar, 90*16, size);
+ if (r1 > 1) {
+ p.setPen(QPen(svc, _scaleWidth));
+ p.drawArc(ar, offset+r2, r1);
+ }
+ }
+ else {
+ // int offset = (restR+180) * 8;
+ int r1 = int(size * _value / minValue());
+ int r2 = size - r1;
+
+ p.setPen(QPen(sc, _scaleWidth));
+ if (size > 1)
+ p.drawArc(ar, (restR-180)*8, size);
+ if (r2 > 1)
+ p.drawArc(ar, 90 * 16 + r1, r2);
+ if (r1 > 1) {
+ p.setPen(QPen(svc, _scaleWidth));
+ p.drawArc(ar, 90*16, r1);
+ }
+ }
+ }
+ else {
+ int offset = (180-restR) * 8;
+ int size = _scaleSize * 16;
+ int r1 = int(size * (_value - minValue()) / dvalue);
+ int r2 = size - r1;
+ if (r2 >= 1) {
+ p.setPen(QPen(sc, _scaleWidth));
+ p.drawArc(ar, -offset, r2);
+ }
+ if (r1 >= 1) {
+ p.setPen(QPen(svc, _scaleWidth));
+ p.drawArc(ar, r2-offset, r1);
+ }
+ }
+
+ //-----------------------------------------
+ // draw pointer
+ //-----------------------------------------
+
+ p.setPen(QPen(svc, _scaleWidth));
+ double r1 = double(_scaleSize) * (_value-minValue()) / dvalue + 90.0
+ + double(restR/2);
+ r1 = r1 / 180.0 * M_PI; // convert to radians
+ int rd = w/2;
+ int x1 = x + rd;
+ int y1 = y + rd;
+ int x2 = x1 + lrint(cos(r1) * double(rd));
+ int y2 = y1 + lrint(sin(r1) * double(rd));
+ p.drawLine(x1, y1, x2, y2);
+
+ //-----------------------------------------
+ // draw center mark
+ //-----------------------------------------
+
+ p.setPen(QPen(svc, 0));
+ p.setBrush(svc);
+ if (_center) {
+ if (points)
+ delete points;
+ qreal x = ar.width() / 2 + ar.x();
+ qreal y = ar.y() - _markSize - _scaleWidth/2;
+ points = new QPainterPath(QPointF(x - markSize2, y));
+ points->lineTo(x + markSize2, y);
+ points->lineTo(x, _markSize + y);
+ points->closeSubpath();
+ p.drawPath(*points);
+ }
+
+ //-----------------------------------------
+ // draw text
+ //-----------------------------------------
+
+ if (!_text.isEmpty()) {
+ p.drawText(rect(), Qt::AlignBottom | Qt::AlignHCenter, _text);
+ }
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/knob.h b/muse_qt4_evolution/awl/knob.h
new file mode 100644
index 00000000..b7be932b
--- /dev/null
+++ b/muse_qt4_evolution/awl/knob.h
@@ -0,0 +1,85 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLKNOB_H__
+#define __AWLKNOB_H__
+
+#include "aslider.h"
+// #include <QtDesigner/QDesignerExportWidget>
+
+namespace Awl {
+
+//---------------------------------------------------------
+// Knob
+//
+//! Base class of all dialer type input widgets.
+//
+//! xxxxxxxxx
+//!
+//---------------------------------------------------------
+
+class Q_DECL_EXPORT Knob : public AbstractSlider {
+ Q_OBJECT
+ Q_PROPERTY(int scaleSize READ scaleSize WRITE setScaleSize)
+ Q_PROPERTY(int markSize READ markSize WRITE setMarkSize)
+ Q_PROPERTY(int border READ border WRITE setBorder)
+ Q_PROPERTY(QString text READ text WRITE setText)
+
+ int _scaleSize; //! scale size in degrees
+ int _markSize;
+ int _border;
+ QPainterPath* points;
+
+ virtual void paintEvent(QPaintEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+
+ protected:
+ int startY;
+ QString _text;
+
+ signals:
+ void sliderPressed(int);
+ void sliderReleased(int);
+
+ public:
+ Knob(QWidget* parent = 0);
+ ~Knob();
+ virtual QSize sizeHint() const { return QSize(50, 50); }
+ virtual int heightForWidth(int w) { return w; }
+
+ //! return text decoration
+ QString text() const { return _text; }
+ void setText(const QString& s);
+
+ //! return scale size in degrees
+ int scaleSize() const { return _scaleSize; }
+ void setScaleSize(int val);
+ int markSize() const { return _markSize; }
+ void setMarkSize(int val);
+ int border() const { return _border; }
+ void setBorder(int val);
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/ltest.cpp b/muse_qt4_evolution/awl/ltest.cpp
new file mode 100644
index 00000000..55fe1749
--- /dev/null
+++ b/muse_qt4_evolution/awl/ltest.cpp
@@ -0,0 +1,14 @@
+#include <stdio.h>
+#include "awlplugin.h"
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int /*argc*/, char* /*argv*/[])
+ {
+ printf("Hello MusE\n");
+ new KnobPlugin;
+ return 0;
+ }
+
diff --git a/muse_qt4_evolution/awl/metronom.xpm b/muse_qt4_evolution/awl/metronom.xpm
new file mode 100644
index 00000000..d16a2fb5
--- /dev/null
+++ b/muse_qt4_evolution/awl/metronom.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char *metronom_xpm[]={
+"18 18 3 1",
+". c None",
+"# c #000000",
+"a c #0000ff",
+".........##.......",
+".........##.......",
+"........###....a..",
+".......###.#..aaa.",
+".......##..#.aaa..",
+"......###...#aa...",
+"......##....aaa...",
+".....##....aaa....",
+"....###...aaa#....",
+"....##....aa.#....",
+"...###...aa...#...",
+"..###...aaa...#...",
+"..##...aaa....#...",
+".###...aaa.....#..",
+".##....aa......#..",
+"###.....a.......#.",
+"##################",
+"##################"};
diff --git a/muse_qt4_evolution/awl/midimeter.cpp b/muse_qt4_evolution/awl/midimeter.cpp
new file mode 100644
index 00000000..312e5efe
--- /dev/null
+++ b/muse_qt4_evolution/awl/midimeter.cpp
@@ -0,0 +1,137 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "midimeter.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiMeter
+//---------------------------------------------------------
+
+MidiMeter::MidiMeter(QWidget* parent)
+ : Slider(parent)
+ {
+ setRange(0.0f, 127.0f);
+ setLineStep(2);
+ setPageStep(4);
+
+ setScaleWidth(7);
+ _meterWidth = _scaleWidth * 3;
+ meterval = 0.0f;
+ }
+
+//---------------------------------------------------------
+// setMeterVal
+// v - 0.0 < 1.0
+//---------------------------------------------------------
+
+void MidiMeter::setMeterVal(double v)
+ {
+ if (v < 0.001)
+ v = .0f;
+ if (meterval != v) {
+ meterval = v;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void MidiMeter::mouseDoubleClickEvent(QMouseEvent*)
+ {
+ _value = _minValue;
+ valueChange();
+ update();
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void MidiMeter::paintEvent(QPaintEvent* ev)
+ {
+ int pixel = height() - sliderSize().height();
+ double range = maxValue() - minValue();
+ int ppos = int(pixel * (_value - minValue()) / range);
+ if (_invert)
+ ppos = pixel - ppos;
+
+ QRect rr(ev->rect());
+ QPainter p(this);
+
+ QColor sc(isEnabled() ? _scaleColor : Qt::gray);
+ QColor svc(isEnabled() ? _scaleValueColor : Qt::gray);
+ p.setBrush(svc);
+
+ int h = height();
+ int kh = sliderSize().height();
+
+ //---------------------------------------------------
+ // draw meter
+ //---------------------------------------------------
+
+ int mw = _meterWidth;
+ int x = 0;
+
+ int y1 = kh / 2;
+ int y3 = h - y1;
+
+ int mh = h - kh;
+
+ p.setPen(Qt::white);
+ h = lrint(meterval * mh);
+ if (h < 0)
+ h = 0;
+ else if (h > mh)
+ h = mh;
+ p.fillRect(x, y3-h, mw, h, QBrush(0x00ff00)); // green
+ p.fillRect(x, y1, mw, mh-h, QBrush(0x007000)); // dark green
+ x += mw;
+
+#if 0
+ //---------------------------------------------------
+ // draw scale
+ //---------------------------------------------------
+
+ x += _scaleWidth/2;
+
+ p.setPen(QPen(sc, _scaleWidth));
+ p.drawLine(x, y1, x, y2);
+ p.setPen(QPen(svc, _scaleWidth));
+ p.drawLine(x, y2, x, y3);
+
+ //---------------------------------------------------
+ // draw slider
+ //---------------------------------------------------
+
+ x += _scaleWidth/2;
+ p.setPen(QPen(svc, 0));
+ points.setPoint(0, x, y2);
+ points.setPoint(1, x + kw, y2 - kh/2);
+ points.setPoint(2, x + kw, y2 + kh/2);
+ p.drawConvexPolygon(points);
+#endif
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/midimeter.h b/muse_qt4_evolution/awl/midimeter.h
new file mode 100644
index 00000000..2b0d3518
--- /dev/null
+++ b/muse_qt4_evolution/awl/midimeter.h
@@ -0,0 +1,56 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMIDIMETER_H__
+#define __AWLMIDIMETER_H__
+
+#include "slider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiMeter
+//---------------------------------------------------------
+
+class MidiMeter : public Slider
+ {
+ Q_PROPERTY(int meterWidth READ meterWidth WRITE setMeterWidth)
+ Q_OBJECT
+
+ double meterval;
+ int _meterWidth;
+
+ virtual void paintEvent(QPaintEvent*);
+
+ protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+
+ public slots:
+ void setMeterVal(double value);
+
+ public:
+ MidiMeter(QWidget* parent = 0);
+ int meterWidth() const { return _meterWidth; }
+ void setMeterWidth(int v) { _meterWidth = v; }
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/midimslider.cpp b/muse_qt4_evolution/awl/midimslider.cpp
new file mode 100644
index 00000000..92325d4a
--- /dev/null
+++ b/muse_qt4_evolution/awl/midimslider.cpp
@@ -0,0 +1,143 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "midimslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiMeterSlider
+//---------------------------------------------------------
+
+MidiMeterSlider::MidiMeterSlider(QWidget* parent)
+ : Slider(parent)
+ {
+ setRange(0.0f, 127.0f);
+ setLineStep(2);
+ setPageStep(4);
+
+ setScaleWidth(7);
+ _meterWidth = _scaleWidth * 3;
+ meterval = 0.0f;
+ }
+
+//---------------------------------------------------------
+// setMeterVal
+// v - 0.0 < 1.0
+//---------------------------------------------------------
+
+void MidiMeterSlider::setMeterVal(double v)
+ {
+ if (v < 0.001)
+ v = .0f;
+ if (meterval != v) {
+ meterval = v;
+ update();
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void MidiMeterSlider::mouseDoubleClickEvent(QMouseEvent*)
+ {
+ _value = _minValue;
+ valueChange();
+ update();
+ }
+
+//---------------------------------------------------------
+// drawScale
+//---------------------------------------------------------
+
+void MidiMeterSlider::paintEvent(QPaintEvent* ev)
+ {
+ int pixel = height() - sliderSize().height();
+ double range = maxValue() - minValue();
+ int ppos = int(pixel * (_value - minValue()) / range);
+ if (_invert)
+ ppos = pixel - ppos;
+
+ QRect rr(ev->rect());
+ QPainter p(this);
+
+ QColor sc(isEnabled() ? _scaleColor : Qt::gray);
+ QColor svc(isEnabled() ? _scaleValueColor : Qt::gray);
+ p.setBrush(svc);
+
+ int h = height();
+// int kw = sliderSize().width();
+ int kh = sliderSize().height();
+
+ //---------------------------------------------------
+ // draw meter
+ //---------------------------------------------------
+
+ int mw = _meterWidth;
+ int x = 0;
+
+ int y1 = kh / 2;
+ int y2 = h - (ppos + y1);
+ int y3 = h - y1;
+
+ int mh = h - kh;
+
+ p.setPen(Qt::white);
+ h = lrint(meterval * mh);
+ if (h < 0)
+ h = 0;
+ else if (h > mh)
+ h = mh;
+ //QColor qc;
+ //float v = 5.0/6.0 + 1.0/6.0 * meterval;
+ //qc.setHsvF(1.0/3.0, 1.0, (v<=1.0?v:1.0));
+ p.fillRect(x, y3-h, mw, h, QBrush(0x00ff00)); // green
+ //p.fillRect(x, y3-h, mw, h, QBrush(qc)); // green get a bit darker
+ p.fillRect(x, y1, mw, mh-h, QBrush(0x007000)); // dark green
+ x += mw;
+
+ //---------------------------------------------------
+ // draw scale
+ //---------------------------------------------------
+
+// x += _scaleWidth/2;
+
+// p.setPen(QPen(sc, _scaleWidth));
+// p.drawLine(x, y1, x, y2);
+// p.setPen(QPen(svc, _scaleWidth));
+// p.drawLine(x, y2, x, y3);
+
+ p.fillRect(x, y1, _scaleWidth, y2-y1, sc);
+ p.fillRect(x, y2, _scaleWidth, y3-y2, svc);
+
+ //---------------------------------------------------
+ // draw slider
+ //---------------------------------------------------
+
+ x += _scaleWidth/2;
+ p.setPen(QPen(svc, 0));
+ p.translate(QPointF(x, y2));
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.drawPath(*points);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/midimslider.h b/muse_qt4_evolution/awl/midimslider.h
new file mode 100644
index 00000000..a2a2bdaf
--- /dev/null
+++ b/muse_qt4_evolution/awl/midimslider.h
@@ -0,0 +1,56 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMIDIMSLIDER_H__
+#define __AWLMIDIMSLIDER_H__
+
+#include "slider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiMeterSlider
+//---------------------------------------------------------
+
+class MidiMeterSlider : public Slider
+ {
+ Q_PROPERTY(int meterWidth READ meterWidth WRITE setMeterWidth)
+ Q_OBJECT
+
+ double meterval;
+ int _meterWidth;
+
+ virtual void paintEvent(QPaintEvent*);
+
+ protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+
+ public slots:
+ void setMeterVal(double value);
+
+ public:
+ MidiMeterSlider(QWidget* parent = 0);
+ int meterWidth() const { return _meterWidth; }
+ void setMeterWidth(int v) { _meterWidth = v; }
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/midipanentry.cpp b/muse_qt4_evolution/awl/midipanentry.cpp
new file mode 100644
index 00000000..5e4e4f9a
--- /dev/null
+++ b/muse_qt4_evolution/awl/midipanentry.cpp
@@ -0,0 +1,47 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "midipanentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiPanEntry
+//---------------------------------------------------------
+
+MidiPanEntry::MidiPanEntry(QWidget* parent)
+ : FloatEntry(parent)
+ {
+ setRange(-64.0f, 63.0f);
+ setFrame(true);
+ setPrecision(0);
+ }
+
+//---------------------------------------------------------
+// valueChange
+//---------------------------------------------------------
+
+void MidiPanEntry::valueChange()
+ {
+ emit valueChanged(_value + 64.0f, _id);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/midipanentry.h b/muse_qt4_evolution/awl/midipanentry.h
new file mode 100644
index 00000000..25f7333a
--- /dev/null
+++ b/muse_qt4_evolution/awl/midipanentry.h
@@ -0,0 +1,48 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMIDIPANENTRY_H__
+#define __AWLMIDIPANENTRY_H__
+
+#include "floatentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiPanEntry
+//---------------------------------------------------------
+
+class MidiPanEntry : public FloatEntry {
+ Q_OBJECT
+
+ protected:
+ virtual void valueChange();
+
+ public slots:
+ virtual void setValue(double v) {
+ FloatEntry::setValue(v - 64.0f);
+ }
+ public:
+ MidiPanEntry(QWidget* parent);
+ virtual double value() const { return _value + 64.0f; }
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/midipanknob.cpp b/muse_qt4_evolution/awl/midipanknob.cpp
new file mode 100644
index 00000000..a2530119
--- /dev/null
+++ b/muse_qt4_evolution/awl/midipanknob.cpp
@@ -0,0 +1,37 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midipanknob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiPanKnob
+//---------------------------------------------------------
+
+MidiPanKnob::MidiPanKnob(QWidget* parent)
+ : Knob(parent)
+ {
+ setCenter(true);
+ setRange(-64.0f, 63.0f);
+ setLineStep(1.0f);
+ setPageStep(10.0f);
+ }
+}
diff --git a/muse_qt4_evolution/awl/midipanknob.h b/muse_qt4_evolution/awl/midipanknob.h
new file mode 100644
index 00000000..9b628e6b
--- /dev/null
+++ b/muse_qt4_evolution/awl/midipanknob.h
@@ -0,0 +1,55 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMIDIPANKNOB_H__
+#define __AWLMIDIPANKNOB_H__
+
+#include "knob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiPanKnob
+//! MidiPan Knob entry widget
+//
+//! This widget implements a centered floating point
+//! knob used to adjust the pan position in an audio
+//! mixer.
+//---------------------------------------------------------
+
+class MidiPanKnob : public Knob {
+ Q_OBJECT
+
+ virtual void valueChange() {
+ emit valueChanged(_value + 64.0f, _id);
+ }
+
+ public slots:
+ virtual void setValue(double v) {
+ AbstractSlider::setValue(v - 64.0f);
+ }
+ public:
+ MidiPanKnob(QWidget* parent = 0);
+ virtual double value() const { return _value + 64.0f; }
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/midivolentry.cpp b/muse_qt4_evolution/awl/midivolentry.cpp
new file mode 100644
index 00000000..0b74afcc
--- /dev/null
+++ b/muse_qt4_evolution/awl/midivolentry.cpp
@@ -0,0 +1,50 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "midivolentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiVolEntry
+//---------------------------------------------------------
+
+MidiVolEntry::MidiVolEntry(QWidget* parent)
+ : FloatEntry(parent)
+ {
+ _max = 127;
+ setRange(-98.0f, 0.0f);
+ setSpecialText(tr("off"));
+ setSuffix(tr("db"));
+ setFrame(true);
+ setPrecision(0);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void MidiVolEntry::setValue(double v)
+ {
+ FloatEntry::setValue(-fast_log10(double(_max*_max)/(v*v))*20.0f);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/midivolentry.h b/muse_qt4_evolution/awl/midivolentry.h
new file mode 100644
index 00000000..99155877
--- /dev/null
+++ b/muse_qt4_evolution/awl/midivolentry.h
@@ -0,0 +1,47 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMIDIVOLENTRY_H__
+#define __AWLMIDIVOLENTRY_H__
+
+#include "floatentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MidiVolEntry
+//---------------------------------------------------------
+
+class MidiVolEntry : public FloatEntry {
+ Q_OBJECT
+ Q_PROPERTY(int max READ max WRITE setMax)
+
+ int _max;
+
+ public:
+ virtual void setValue(double);
+ void setMax(int val) { _max = val; }
+ int max() const { return _max; }
+ MidiVolEntry(QWidget* parent);
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/mslider.cpp b/muse_qt4_evolution/awl/mslider.cpp
new file mode 100644
index 00000000..63c3ea4e
--- /dev/null
+++ b/muse_qt4_evolution/awl/mslider.cpp
@@ -0,0 +1,273 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+
+#include "mslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MeterSlider
+//---------------------------------------------------------
+
+MeterSlider::MeterSlider(QWidget* parent)
+ : VolSlider(parent)
+ {
+ setAttribute(Qt::WA_NoSystemBackground, true);
+// setAutoFillBackground(true);
+ _channel = 0;
+ yellowScale = -16; //-10;
+ redScale = 0;
+ _meterWidth = _scaleWidth * 3;
+ setChannel(1);
+ setMinimumHeight(50);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize MeterSlider::sizeHint() const
+ {
+ int w = _meterWidth + _scaleWidth + _scaleWidth + 30;
+ return orientation() == Qt::Vertical ? QSize(w, 200) : QSize(200, w);
+ }
+
+//---------------------------------------------------------
+// setChannel
+//---------------------------------------------------------
+
+void MeterSlider::setChannel(int n)
+ {
+ if (n > _channel) {
+ for (int i = _channel; i < n; ++i) {
+ meterval.push_back(0.0f);
+ meterPeak.push_back(0.0f);
+ }
+ }
+ _channel = n;
+ }
+
+//---------------------------------------------------------
+// setMeterVal
+//---------------------------------------------------------
+
+void MeterSlider::setMeterVal(int channel, double v, double peak)
+ {
+ bool mustRedraw = false;
+ if (meterval[channel] != v) {
+ meterval[channel] = v;
+ mustRedraw = true;
+ }
+ if (peak != meterPeak[channel]) {
+ meterPeak[channel] = peak;
+ mustRedraw = true;
+ }
+ if (mustRedraw) {
+ int kh = sliderSize().height();
+ int mh = height() - kh;
+ update(20, kh / 2, _meterWidth-1, mh);
+ }
+ }
+
+//---------------------------------------------------------
+// resetPeaks
+// reset peak and overflow indicator
+//---------------------------------------------------------
+
+void MeterSlider::resetPeaks()
+ {
+ for (int i = 0; i < _channel; ++i)
+ meterPeak[i] = meterval[i];
+ update();
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void MeterSlider::resizeEvent(QResizeEvent* /*ev*/)
+ {
+ int h = height();
+ int kh = sliderSize().height();
+ int mh = h - kh;
+ int mw = _meterWidth / _channel;
+
+ onPm = QPixmap(mw, mh);
+ offPm = QPixmap(mw, mh);
+
+ double range = maxValue() - minValue();
+ int h1 = mh - lrint((maxValue() - redScale) * mh / range);
+ int h2 = mh - lrint((maxValue() - yellowScale) * mh / range);
+
+ QColor yellowRed;
+ yellowRed.setHsv(QColor(Qt::yellow).hue()-8,
+ QColor(Qt::yellow).saturation(),
+ QColor(Qt::yellow).value());
+ QColor yellRedRed;
+ yellRedRed.setHsv(QColor(Qt::yellow).hue()-16,
+ QColor(Qt::yellow).saturation(),
+ QColor(Qt::yellow).value());
+
+ QLinearGradient linearGrad(QPointF(0, 0), QPointF(0, mh));
+ linearGrad.setColorAt(0, Qt::red);
+ linearGrad.setColorAt(1-(double)(h1-5)/(double)mh, yellRedRed);
+ linearGrad.setColorAt(1-(double)(h1-6)/(double)mh, yellowRed);
+ linearGrad.setColorAt(1-(double)h2/(double)mh, Qt::yellow);
+ linearGrad.setColorAt(1, Qt::green);
+
+ QColor darkYellowRed;
+ darkYellowRed.setHsv(QColor(Qt::darkYellow).hue()-8,
+ QColor(Qt::darkYellow).saturation(),
+ QColor(Qt::darkYellow).value());
+ QColor darkYellRedRed;
+ darkYellRedRed.setHsv(QColor(Qt::darkYellow).hue()-16,
+ QColor(Qt::darkYellow).saturation(),
+ QColor(Qt::darkYellow).value());
+ QLinearGradient linearDarkGrad(QPointF(0, 0), QPointF(0, mh));
+ linearDarkGrad.setColorAt(0, Qt::darkRed);
+ linearDarkGrad.setColorAt(1-(double)(h1-5)/(double)mh, darkYellRedRed);
+ linearDarkGrad.setColorAt(1-(double)(h1-6)/(double)mh, darkYellowRed);
+ linearDarkGrad.setColorAt(1-(double)h2/(double)mh, Qt::darkYellow);
+ linearDarkGrad.setColorAt(1, Qt::darkGreen);
+
+ QPainter p;
+ p.begin(&onPm);
+ p.fillRect(0, 0, mw, mh, linearGrad);
+ p.end();
+ p.begin(&offPm);
+ p.fillRect(0, 0, mw, mh, linearDarkGrad);
+ p.end();
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void MeterSlider::paintEvent(QPaintEvent* ev)
+ {
+ int pixel = height() - sliderSize().height();
+ double range = maxValue() - minValue();
+ int ppos = int(pixel * (_value - minValue()) / range);
+ if (_invert)
+ ppos = pixel - ppos;
+
+ QPainter p(this);
+ p.setRenderHint(QPainter::Antialiasing, false);
+
+ int h = height();
+ int kh = sliderSize().height();
+
+ //---------------------------------------------------
+ // draw meter
+ //---------------------------------------------------
+
+ int mw = _meterWidth / _channel;
+ int x = 20;
+ int y1 = kh / 2;
+ int y3 = h - y1;
+
+ int mh = h - kh;
+ p.setPen(QPen(Qt::white, 2));
+
+ for (int i = 0; i < _channel; ++i) {
+ int h = mh - (lrint(fast_log10(meterval[i]) * -20.0f * mh / range));
+ if (h < 0)
+ h = 0;
+ else if (h > mh)
+ h = mh;
+
+ p.drawPixmap(x, y1+mh-h, mw, h, onPm, 0, y1+mh-h, mw, h);
+ p.drawPixmap(x, y1, mw, mh-h, offPm, 0, y1, mw, mh-h);
+
+ //---------------------------------------------------
+ // draw peak line
+ //---------------------------------------------------
+
+ h = mh - (lrint(fast_log10(meterPeak[i]) * -20.0f * mh / range));
+ if (h > mh)
+ h = mh;
+ if (h > 0)
+ p.drawLine(x, y3-h, x+mw, y3-h);
+
+ x += mw;
+ }
+
+ // optimize common case:
+ if (ev->rect() == QRect(20, kh/2, _meterWidth-1, mh))
+ return;
+
+ QColor sc(isEnabled() ? _scaleColor : Qt::gray);
+ QColor svc(isEnabled() ? _scaleValueColor : Qt::gray);
+ p.setBrush(svc);
+
+ //---------------------------------------------------
+ // draw scale
+ //---------------------------------------------------
+
+ int y2 = h - (ppos + y1);
+ p.fillRect(x, y1, _scaleWidth, y2-y1, sc);
+ p.fillRect(x, y2, _scaleWidth, y3-y2, svc);
+
+ //---------------------------------------------------
+ // draw tick marks
+ //---------------------------------------------------
+
+ QFont f(p.font());
+ f.setPointSize(6);
+ p.setFont(f);
+ p.setPen(QPen(Qt::darkGray, 2));
+ QFontMetrics fm(f);
+ int xt = 20 - fm.width("00") - 5;
+
+ QString s;
+ for (int i = 10; i < 70; i += 10) {
+ h = y1 + lrint(i * mh / range);
+ s.setNum(i - 10);
+ p.drawText(xt, h - 3, s);
+ p.drawLine(15, h, 20, h);
+ }
+
+ //---------------------------------------------------
+ // draw slider
+ //---------------------------------------------------
+
+ x += _scaleWidth/2;
+ p.setPen(QPen(svc, 0));
+ p.translate(QPointF(x, y2));
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.drawPath(*points);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void MeterSlider::mousePressEvent(QMouseEvent* ev)
+ {
+ if (ev->pos().x() < _meterWidth) {
+ emit meterClicked();
+ return;
+ }
+ VolSlider::mousePressEvent(ev);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/mslider.h b/muse_qt4_evolution/awl/mslider.h
new file mode 100644
index 00000000..4ae888b1
--- /dev/null
+++ b/muse_qt4_evolution/awl/mslider.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLMSLIDER_H__
+#define __AWLMSLIDER_H__
+
+#include "volslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// MeterSlider
+// volume slider with meter display
+//---------------------------------------------------------
+
+class MeterSlider : public VolSlider
+ {
+ Q_PROPERTY(int meterWidth READ meterWidth WRITE setMeterWidth)
+ Q_PROPERTY(int channel READ channel WRITE setChannel)
+ Q_OBJECT
+
+ int _channel;
+ std::vector<double> meterval;
+ std::vector<double> meterPeak;
+ int yellowScale, redScale;
+ int _meterWidth;
+ QPixmap onPm, offPm; // cached pixmap values
+
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void paintEvent(QPaintEvent*);
+ virtual void resizeEvent(QResizeEvent*);
+
+ signals:
+ void meterClicked();
+
+ public slots:
+ void resetPeaks();
+ void setMeterVal(int channel, double value, double peak);
+
+ public:
+ MeterSlider(QWidget* parent = 0);
+ void setChannel(int n);
+ int channel() const { return _channel; }
+ int meterWidth() const { return _meterWidth; }
+ void setMeterWidth(int v) { _meterWidth = v; }
+ virtual QSize sizeHint() const;
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/panentry.cpp b/muse_qt4_evolution/awl/panentry.cpp
new file mode 100644
index 00000000..0cc098c2
--- /dev/null
+++ b/muse_qt4_evolution/awl/panentry.cpp
@@ -0,0 +1,35 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "panentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PanEntry
+//---------------------------------------------------------
+
+PanEntry::PanEntry(QWidget* parent)
+ : FloatEntry(parent)
+ {
+ setRange(-1.0, 1.0);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/panentry.h b/muse_qt4_evolution/awl/panentry.h
new file mode 100644
index 00000000..01689580
--- /dev/null
+++ b/muse_qt4_evolution/awl/panentry.h
@@ -0,0 +1,40 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPANENTRY_H__
+#define __AWLPANENTRY_H__
+
+#include "floatentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PanEntry
+//---------------------------------------------------------
+
+class PanEntry : public FloatEntry {
+ Q_OBJECT
+
+ public:
+ PanEntry(QWidget*);
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/panknob.cpp b/muse_qt4_evolution/awl/panknob.cpp
new file mode 100644
index 00000000..083aa2e0
--- /dev/null
+++ b/muse_qt4_evolution/awl/panknob.cpp
@@ -0,0 +1,38 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "panknob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PanKnob
+//---------------------------------------------------------
+
+PanKnob::PanKnob(QWidget* parent)
+ : Knob(parent)
+ {
+ setCenter(true);
+ setRange(-1.0f, 1.0f);
+ setLineStep(0.01f);
+ setPageStep(0.1f);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/panknob.h b/muse_qt4_evolution/awl/panknob.h
new file mode 100644
index 00000000..d8bf2d87
--- /dev/null
+++ b/muse_qt4_evolution/awl/panknob.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPANKNOB_H__
+#define __AWLPANKNOB_H__
+
+#include "knob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PanKnob
+//! Pan Knob entry widget
+//
+//! This widget implements a centered floating point
+//! knob used to adjust the pan position in an audio
+//! mixer.
+//---------------------------------------------------------
+
+class PanKnob : public Knob {
+ Q_OBJECT
+
+ public:
+ PanKnob(QWidget* parent = 0);
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/pitchedit.cpp b/muse_qt4_evolution/awl/pitchedit.cpp
new file mode 100644
index 00000000..18136074
--- /dev/null
+++ b/muse_qt4_evolution/awl/pitchedit.cpp
@@ -0,0 +1,89 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "pitchedit.h"
+#include "utils.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PitchEdit
+//---------------------------------------------------------
+
+PitchEdit::PitchEdit(QWidget* parent)
+ : QSpinBox(parent)
+ {
+ setRange(0, 127);
+ deltaMode = false;
+ }
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+
+void PitchEdit::keyPressEvent(QKeyEvent* ev)
+ {
+ if (ev->key() == Qt::Key_Return)
+ emit returnPressed();
+ else if (ev->key() == Qt::Key_Escape)
+ emit escapePressed();
+ }
+
+//---------------------------------------------------------
+// mapValueToText
+//---------------------------------------------------------
+
+QString PitchEdit::mapValueToText(int v)
+ {
+ if (deltaMode) {
+ QString s;
+ s.setNum(v);
+ return s;
+ }
+ else
+ return pitch2string(v);
+ }
+
+//---------------------------------------------------------
+// mapTextToValue
+//---------------------------------------------------------
+
+int PitchEdit::mapTextToValue(bool* ok)
+ {
+printf("AwlPitchEdit: mapTextToValue: not impl.\n");
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+
+//---------------------------------------------------------
+// setDeltaMode
+//---------------------------------------------------------
+
+void PitchEdit::setDeltaMode(bool val)
+ {
+ deltaMode = val;
+ if (deltaMode)
+ setRange(-127, 127);
+ else
+ setRange(0, 127);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/pitchedit.h b/muse_qt4_evolution/awl/pitchedit.h
new file mode 100644
index 00000000..dd0ba4c7
--- /dev/null
+++ b/muse_qt4_evolution/awl/pitchedit.h
@@ -0,0 +1,50 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPITCHEDIT_H__
+#define __AWLPITCHEDIT_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PitchEdit
+//---------------------------------------------------------
+
+class PitchEdit : public QSpinBox {
+ Q_OBJECT
+
+ bool deltaMode;
+
+ protected:
+ virtual QString mapValueToText(int v);
+ virtual int mapTextToValue(bool* ok);
+ virtual void keyPressEvent(QKeyEvent*);
+
+ signals:
+ void returnPressed();
+ void escapePressed();
+
+ public:
+ PitchEdit(QWidget* parent);
+ void setDeltaMode(bool);
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/pitchlabel.cpp b/muse_qt4_evolution/awl/pitchlabel.cpp
new file mode 100644
index 00000000..1d7149f6
--- /dev/null
+++ b/muse_qt4_evolution/awl/pitchlabel.cpp
@@ -0,0 +1,106 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "pitchedit.h"
+#include "pitchlabel.h"
+#include "utils.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PitchLabel
+//---------------------------------------------------------
+
+PitchLabel::PitchLabel()
+ {
+ _pitchMode = true;
+ _value = -1;
+ setFrameStyle(WinPanel | Sunken);
+ setLineWidth(2);
+ setMidLineWidth(3);
+ setValue(0);
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ setIndent(fw);
+ }
+
+//---------------------------------------------------------
+// setPitchMode
+//---------------------------------------------------------
+
+void PitchLabel::setPitchMode(bool val)
+ {
+ _pitchMode = val;
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize PitchLabel::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ int h = fm.height() + fw * 2;
+// int w = 2 + fm.width(QString("A#8")) + fw * 4;
+ int w = 2 + fm.width(QString("-9999")) + fw * 4; // must display 14Bit controller values
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void PitchLabel::setValue(int val)
+ {
+ if (val == _value)
+ return;
+ _value = val;
+ QString s;
+ if (_pitchMode)
+ s = pitch2string(_value);
+ else
+ s.sprintf("%d", _value);
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// setInt
+//---------------------------------------------------------
+
+void PitchLabel::setInt(int val)
+ {
+ if (_pitchMode)
+ setPitchMode(false);
+ setValue(val);
+ }
+
+//---------------------------------------------------------
+// setPitch
+//---------------------------------------------------------
+
+void PitchLabel::setPitch(int val)
+ {
+ if (!_pitchMode) {
+ setPitchMode(true);
+ }
+ setValue(val);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/pitchlabel.h b/muse_qt4_evolution/awl/pitchlabel.h
new file mode 100644
index 00000000..36a3cbfa
--- /dev/null
+++ b/muse_qt4_evolution/awl/pitchlabel.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPITCHLABEL_H__
+#define __AWLPITCHLABEL_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PitchLabel
+//---------------------------------------------------------
+
+class PitchLabel : public QLabel {
+ bool _pitchMode;
+ int _value;
+ Q_OBJECT
+
+ protected:
+ QSize sizeHint() const;
+
+ public slots:
+ void setValue(int);
+ void setInt(int);
+ void setPitch(int);
+
+ public:
+ PitchLabel();
+ int value() const { return _value; }
+ void setPitchMode(bool val);
+ bool pitchMode() const { return _pitchMode; }
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/posedit.cpp b/muse_qt4_evolution/awl/posedit.cpp
new file mode 100644
index 00000000..4f8b19b2
--- /dev/null
+++ b/muse_qt4_evolution/awl/posedit.cpp
@@ -0,0 +1,441 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "awl.h"
+#include "posedit.h"
+#include "al/sig.h"
+
+namespace Awl {
+
+ using AL::mtcType;
+ using AL::sigmap;
+
+//---------------------------------------------------------
+// PosEdit
+//---------------------------------------------------------
+
+PosEdit::PosEdit(QWidget* parent)
+ : QAbstractSpinBox(parent)
+ {
+ initialized = false;
+ setReadOnly(false);
+ setSmpte(false);
+ }
+
+void* PosEdit::operator new(size_t n)
+ {
+ void* p = new char[n];
+ memset(p, 0, n);
+ return p;
+ }
+
+PosEdit::~PosEdit()
+ {
+ }
+
+QSize PosEdit::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_SpinBoxFrameWidth);
+ int h = fm.height() + fw * 2;
+ int w = fw * 4 + 10; // HACK: 10 = spinbox up/down arrows
+ if (_smpte)
+ w += 2 + fm.width('9') * 9 + fm.width(':') * 3 + fw * 4;
+ else
+ w += 2 + fm.width('9') * 9 + fm.width('.') * 2 + fw * 4;
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// event
+// filter Tab and Backtab key events
+//---------------------------------------------------------
+
+bool PosEdit::event(QEvent* event)
+ {
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent* ke = static_cast<QKeyEvent*>(event);
+ int segment = curSegment();
+ if (ke->key() == Qt::Key_Backtab) {
+ if (_smpte) {
+ if (segment == 3) {
+ lineEdit()->setSelection(7, 2);
+ return true;
+ }
+ else if (segment == 2) {
+ lineEdit()->setSelection(4, 2);
+ return true;
+ }
+ else if (segment == 1) {
+ lineEdit()->setSelection(0, 3);
+ return true;
+ }
+ }
+ else {
+ if (segment == 2) {
+ lineEdit()->setSelection(5, 2);
+ return true;
+ }
+ if (segment == 1) {
+ lineEdit()->setSelection(0, 4);
+ return true;
+ }
+ }
+ }
+ if (ke->key() == Qt::Key_Tab) {
+ if (_smpte) {
+ if (segment == 0) {
+ lineEdit()->setSelection(4, 2);
+ return true;
+ }
+ else if (segment == 1) {
+ lineEdit()->setSelection(7, 2);
+ return true;
+ }
+ else if (segment == 2) {
+ lineEdit()->setSelection(10, 2);
+ return true;
+ }
+ }
+ else {
+ if (segment == 0) {
+ lineEdit()->setSelection(5, 2);
+ return true;
+ }
+ if (segment == 1) {
+ lineEdit()->setSelection(8, 3);
+ return true;
+ }
+ }
+ }
+ }
+ else if (event->type() == QEvent::FocusIn) {
+ QFocusEvent* fe = static_cast<QFocusEvent*>(event);
+ QAbstractSpinBox::focusInEvent(fe);
+ int segment = curSegment();
+ switch(segment) {
+ case 0: lineEdit()->setSelection(0,4); break;
+ case 1: lineEdit()->setSelection(5,2); break;
+ case 2: lineEdit()->setSelection(8,3); break;
+ }
+ return true;
+ }
+ return QAbstractSpinBox::event(event);
+ }
+
+//---------------------------------------------------------
+// setSmpte
+//---------------------------------------------------------
+
+void PosEdit::setSmpte(bool f)
+ {
+ _smpte = f;
+ if (_smpte)
+ lineEdit()->setInputMask("999:99:99:99");
+ else
+ lineEdit()->setInputMask("9999.99.999");
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void PosEdit::setValue(const Pos& time)
+ {
+ _pos = time;
+ updateValue();
+ }
+
+void PosEdit::setValue(const QString& s)
+ {
+ Pos time(s);
+ setValue(time);
+ }
+
+void PosEdit::setValue(int t)
+ {
+ Pos time(t);
+ setValue(time);
+ }
+
+//---------------------------------------------------------
+// updateValue
+//---------------------------------------------------------
+
+void PosEdit::updateValue()
+ {
+ char buffer[64];
+ if (_smpte) {
+ int minute, sec, frame, subframe;
+ _pos.msf(&minute, &sec, &frame, &subframe);
+ sprintf(buffer, "%03d:%02d:%02d:%02d", minute, sec, frame, subframe);
+ }
+ else {
+ int bar, beat;
+ int tick;
+ _pos.mbt(&bar, &beat, &tick);
+ sprintf(buffer, "%04d.%02d.%03d", bar+1, beat+1, tick);
+ }
+ lineEdit()->setText(buffer);
+ }
+
+//---------------------------------------------------------
+// stepEnables
+//---------------------------------------------------------
+
+QAbstractSpinBox::StepEnabled PosEdit::stepEnabled() const
+ {
+ int segment = curSegment();
+ QAbstractSpinBox::StepEnabled en = QAbstractSpinBox::StepUpEnabled | QAbstractSpinBox::StepDownEnabled;
+
+ if (_smpte) {
+ int minute, sec, frame, subframe;
+ _pos.msf(&minute, &sec, &frame, &subframe);
+ switch(segment) {
+ case 0:
+ if (minute == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ break;
+ case 1:
+ if (sec == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ else if (sec == 59)
+ en &= ~QAbstractSpinBox::StepUpEnabled;
+ break;
+ case 2:
+ if (frame == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ else if (frame == 23)
+ en &= ~QAbstractSpinBox::StepUpEnabled;
+ break;
+ case 3:
+ if (subframe == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ else if (subframe == 99)
+ en &= ~QAbstractSpinBox::StepUpEnabled;
+ break;
+ }
+ }
+ else {
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(_pos.tick(), &bar, &beat, &tick);
+ unsigned tb = AL::sigmap.ticksBeat(_pos.tick());
+ unsigned tm = AL::sigmap.ticksMeasure(_pos.tick());
+ int bm = tm / tb;
+
+ switch (segment) {
+ case 0:
+ if (bar == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ break;
+ case 1:
+ if (beat == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ else {
+ if (beat >= (bm-1))
+ en &= ~QAbstractSpinBox::StepUpEnabled;
+ }
+ break;
+ case 2:
+ if (tick == 0)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ else {
+ if (tick >= (tb-1))
+ en &= ~QAbstractSpinBox::StepUpEnabled;
+ }
+ break;
+ }
+ }
+ return en;
+ }
+
+//---------------------------------------------------------
+// fixup
+//---------------------------------------------------------
+
+void PosEdit::fixup(QString& input) const
+ {
+ printf("fixup <%s>\n", input.toLatin1().data());
+ }
+
+//---------------------------------------------------------
+// validate
+//---------------------------------------------------------
+
+QValidator::State PosEdit::validate(QString&,int&) const
+ {
+ // TODO
+// printf("validate\n");
+ return QValidator::Acceptable;
+ }
+
+//---------------------------------------------------------
+// curSegment
+//---------------------------------------------------------
+
+int PosEdit::curSegment() const
+ {
+ QLineEdit* le = lineEdit();
+ int pos = le->cursorPosition();
+ int segment = -1;
+
+ if (_smpte) {
+ if (pos >= 0 && pos <= 3)
+ segment = 0;
+ else if (pos >= 4 && pos <= 6)
+ segment = 1;
+ else if (pos >= 7 && pos <= 9)
+ segment = 2;
+ else if (pos >= 10)
+ segment = 3;
+ }
+ else {
+ if (pos >= 0 && pos <= 4)
+ segment = 0;
+ else if (pos >= 5 && pos <= 7)
+ segment = 1;
+ else if (pos >= 8)
+ segment = 2;
+ else
+ printf("curSegment = -1, pos %d\n", pos);
+ }
+ return segment;
+ }
+
+//---------------------------------------------------------
+// stepBy
+//---------------------------------------------------------
+
+void PosEdit::stepBy(int steps)
+ {
+ int segment = curSegment();
+ int selPos;
+ int selLen;
+
+ bool changed = false;
+
+ if (_smpte) {
+ int minute, sec, frame, subframe;
+ _pos.msf(&minute, &sec, &frame, &subframe);
+ switch(segment) {
+ case 0:
+ minute += steps;
+ if (minute < 0)
+ minute = 0;
+ selPos = 0;
+ selLen = 3;
+ break;
+ case 1:
+ sec += steps;
+ if (sec < 0)
+ sec = 0;
+ if (sec > 59)
+ sec = 59;
+ selPos = 4;
+ selLen = 2;
+ break;
+ case 2:
+ frame += steps;
+ if (frame < 0)
+ frame = 0;
+ if (frame > 24) //TD frame type?
+ frame = 24;
+ selPos = 7;
+ selLen = 2;
+ break;
+ case 3:
+ subframe += steps;
+ if (subframe < 0)
+ subframe = 0;
+ if (subframe > 99)
+ subframe = 99;
+ selPos = 10;
+ selLen = 2;
+ break;
+ default:
+ return;
+ }
+ Pos newPos(minute, sec, frame, subframe);
+ if (!(newPos == _pos)) {
+ changed = true;
+ _pos = newPos;
+ }
+ }
+ else {
+ int bar, beat, tick;
+ _pos.mbt(&bar, &beat, &tick);
+
+ int tb = AL::sigmap.ticksBeat(_pos.tick());
+ unsigned tm = AL::sigmap.ticksMeasure(_pos.tick());
+ int bm = tm / tb;
+
+ switch(segment) {
+ case 0:
+ bar += steps;
+ if (bar < 0)
+ bar = 0;
+ selPos = 0;
+ selLen = 4;
+ break;
+ case 1:
+ beat += steps;
+ if (beat < 0)
+ beat = 0;
+ else if (beat >= bm)
+ beat = bm - 1;
+ selPos = 5;
+ selLen = 2;
+ break;
+ case 2:
+ tick += steps;
+ if (tick < 0)
+ tick = 0;
+ else if (tick >= tb)
+ tick = tb -1;
+ selPos = 8;
+ selLen = 3;
+ break;
+ default:
+ return;
+ }
+ Pos newPos(bar, beat, tick);
+ if (!(newPos == _pos)) {
+ changed = true;
+ _pos = newPos;
+ }
+ }
+ if (changed) {
+ updateValue();
+ emit valueChanged(_pos);
+ }
+ lineEdit()->setSelection(selPos, selLen);
+ }
+
+ void PosEdit::paintEvent(QPaintEvent* event) {
+ if (!initialized)
+ updateValue();
+ initialized = true;
+ QAbstractSpinBox::paintEvent(event);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/posedit.h b/muse_qt4_evolution/awl/posedit.h
new file mode 100644
index 00000000..effa0537
--- /dev/null
+++ b/muse_qt4_evolution/awl/posedit.h
@@ -0,0 +1,72 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __POSEDIT_H__
+#define __POSEDIT_H__
+
+#include "al/pos.h"
+
+namespace Awl {
+
+ using AL::Pos;
+
+//---------------------------------------------------------
+// PosEdit
+//---------------------------------------------------------
+
+class PosEdit : public QAbstractSpinBox
+ {
+ Q_OBJECT
+ Q_PROPERTY(bool smpte READ smpte WRITE setSmpte)
+
+ bool _smpte;
+ Pos _pos;
+ bool initialized;
+
+ virtual void paintEvent(QPaintEvent* event);
+ virtual void stepBy(int steps);
+ virtual StepEnabled stepEnabled() const;
+ virtual void fixup(QString& input) const;
+ virtual QValidator::State validate(QString&, int&) const;
+ void updateValue();
+ int curSegment() const;
+ virtual bool event(QEvent*);
+
+ signals:
+ void valueChanged(const Pos&);
+
+ public slots:
+ void setValue(const Pos& time);
+ void setValue(int t);
+ void setValue(const QString& s);
+
+ public:
+ PosEdit(QWidget* parent = 0);
+ ~PosEdit();
+ QSize sizeHint() const;
+
+ Pos pos() const { return _pos; }
+ void setSmpte(bool);
+ bool smpte() const { return _smpte; }
+ void* operator new(size_t);
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/poslabel.cpp b/muse_qt4_evolution/awl/poslabel.cpp
new file mode 100644
index 00000000..638508fd
--- /dev/null
+++ b/muse_qt4_evolution/awl/poslabel.cpp
@@ -0,0 +1,100 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "poslabel.h"
+#include "al/pos.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PosLabel
+//---------------------------------------------------------
+
+PosLabel::PosLabel(QWidget* parent)
+ : QLabel(parent)
+ {
+ _smpte = false;
+ setFrameStyle(WinPanel | Sunken);
+ setLineWidth(2);
+ setMidLineWidth(3);
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ setIndent(fw);
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize PosLabel::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ int h = fm.height() + fw * 2;
+ int w;
+ if (_smpte)
+ w = 2 + fm.width('9') * 9 + fm.width(':') * 3 + fw * 4;
+ else
+ w = 2 + fm.width('9') * 9 + fm.width('.') * 2 + fw * 4;
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// updateValue
+//---------------------------------------------------------
+
+void PosLabel::updateValue()
+ {
+ QString s;
+ if (_smpte) {
+ int min, sec, frame, subframe;
+ pos.msf(&min, &sec, &frame, &subframe);
+ s.sprintf("%03d:%02d:%02d:%02d", min, sec, frame, subframe);
+ }
+ else {
+ int measure, beat, tick;
+ pos.mbt(&measure, &beat, &tick);
+ s.sprintf("%04d.%02d.%03u", measure+1, beat+1, tick);
+ }
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void PosLabel::setValue(const AL::Pos& val, bool enable)
+ {
+ setEnabled(enable);
+ pos = val;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setSmpte
+//---------------------------------------------------------
+
+void PosLabel::setSmpte(bool val)
+ {
+ _smpte = val;
+ updateValue();
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/poslabel.h b/muse_qt4_evolution/awl/poslabel.h
new file mode 100644
index 00000000..68139efe
--- /dev/null
+++ b/muse_qt4_evolution/awl/poslabel.h
@@ -0,0 +1,56 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLPOSLABEL_H__
+#define __AWLPOSLABEL_H__
+
+#include "al/pos.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// PosLabel
+//---------------------------------------------------------
+
+class PosLabel : public QLabel {
+ bool _smpte;
+ AL::Pos pos;
+ Q_OBJECT
+
+ void updateValue();
+
+ protected:
+ QSize sizeHint() const;
+
+ public slots:
+ void setValue(const AL::Pos&, bool);
+
+ public:
+ PosLabel(QWidget* parent = 0);
+ AL::Pos value() const { return pos; }
+
+ void setSmpte(bool);
+ bool smpte() const { return _smpte; }
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/sigedit.cpp b/muse_qt4_evolution/awl/sigedit.cpp
new file mode 100644
index 00000000..6493ad6c
--- /dev/null
+++ b/muse_qt4_evolution/awl/sigedit.cpp
@@ -0,0 +1,224 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "awl.h"
+#include "sigedit.h"
+#include "al/sig.h"
+
+namespace Awl {
+
+ using AL::sigmap;
+
+//---------------------------------------------------------
+// SigEdit
+//---------------------------------------------------------
+
+SigEdit::SigEdit(QWidget* parent)
+ : QAbstractSpinBox(parent)
+ {
+ initialized = false;
+ setReadOnly(false);
+ setMinimumWidth(100); //TD: sizeHint
+ lineEdit()->setInputMask("99/99");
+ }
+
+SigEdit::~SigEdit()
+ {
+ }
+
+//---------------------------------------------------------
+// event
+// filter Tab and Backtab key events
+//---------------------------------------------------------
+
+bool SigEdit::event(QEvent* event)
+ {
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent* ke = static_cast<QKeyEvent*>(event);
+ int segment = curSegment();
+ if (ke->key() == Qt::Key_Backtab) {
+ if (segment == 2) {
+ lineEdit()->setSelection(5, 2);
+ return true;
+ }
+ if (segment == 1) {
+ lineEdit()->setSelection(0, 4);
+ return true;
+ }
+ }
+ if (ke->key() == Qt::Key_Tab) {
+ if (segment == 0) {
+ lineEdit()->setSelection(5, 2);
+ return true;
+ }
+ if (segment == 1) {
+ lineEdit()->setSelection(8, 3);
+ return true;
+ }
+ }
+ }
+ else if (event->type() == QEvent::FocusIn) {
+ QFocusEvent* fe = static_cast<QFocusEvent*>(event);
+ QAbstractSpinBox::focusInEvent(fe);
+ int segment = curSegment();
+ switch(segment) {
+ case 0: lineEdit()->setSelection(0,4); break;
+ case 1: lineEdit()->setSelection(5,2); break;
+ case 2: lineEdit()->setSelection(8,3); break;
+ }
+ return true;
+ }
+ return QAbstractSpinBox::event(event);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void SigEdit::setValue(const AL::TimeSignature& s)
+ {
+ _sig = s;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// updateValue
+//---------------------------------------------------------
+
+void SigEdit::updateValue()
+ {
+ char buffer[64];
+ sprintf(buffer, "%d/%d", _sig.z, _sig.n);
+ lineEdit()->setText(buffer);
+ }
+
+//---------------------------------------------------------
+// stepEnables
+//---------------------------------------------------------
+
+QAbstractSpinBox::StepEnabled SigEdit::stepEnabled() const
+ {
+ int segment = curSegment();
+ QAbstractSpinBox::StepEnabled en = QAbstractSpinBox::StepUpEnabled | QAbstractSpinBox::StepDownEnabled;
+
+ switch (segment) {
+ case 0:
+ if (_sig.z == 1)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ break;
+ case 1:
+ if (_sig.n == 1)
+ en &= ~QAbstractSpinBox::StepDownEnabled;
+ break;
+ }
+ return en;
+ }
+
+//---------------------------------------------------------
+// fixup
+//---------------------------------------------------------
+
+void SigEdit::fixup(QString& input) const
+ {
+ printf("fixup <%s>\n", input.toLatin1().data());
+ }
+
+//---------------------------------------------------------
+// validate
+//---------------------------------------------------------
+
+QValidator::State SigEdit::validate(QString&,int&) const
+ {
+ // TODO
+ // printf("validate\n");
+ return QValidator::Acceptable;
+ }
+
+//---------------------------------------------------------
+// curSegment
+//---------------------------------------------------------
+
+int SigEdit::curSegment() const
+ {
+ QLineEdit* le = lineEdit();
+ int pos = le->cursorPosition();
+ int segment = -1;
+
+ if (pos >= 0 && pos <= 4)
+ segment = 0;
+ else if (pos >= 5 && pos <= 7)
+ segment = 1;
+ else if (pos >= 8)
+ segment = 2;
+ else
+ printf("curSegment = -1, pos %d\n", pos);
+ return segment;
+ }
+
+//---------------------------------------------------------
+// stepBy
+//---------------------------------------------------------
+
+void SigEdit::stepBy(int steps)
+ {
+ int segment = curSegment();
+ int selPos;
+ int selLen;
+
+ bool changed = false;
+ AL::TimeSignature osig(_sig);
+
+ switch(segment) {
+ case 0:
+ _sig.z += steps;
+ if (_sig.z < 1)
+ _sig.z = 1;
+ selPos = 0;
+ selLen = 2;
+ break;
+ case 1:
+ _sig.n += steps;
+ if (_sig.n < 1)
+ _sig.n = 1;
+ selPos = 3;
+ selLen = 2;
+ break;
+ default:
+ return;
+ }
+ if (osig.z != _sig.z || osig.n != _sig.n) {
+ changed = true;
+ }
+ if (changed) {
+ updateValue();
+ emit valueChanged(_sig);
+ }
+ lineEdit()->setSelection(selPos, selLen);
+ }
+
+ void SigEdit::paintEvent(QPaintEvent* event) {
+ if (!initialized)
+ updateValue();
+ initialized = true;
+ QAbstractSpinBox::paintEvent(event);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/sigedit.h b/muse_qt4_evolution/awl/sigedit.h
new file mode 100644
index 00000000..35e762ca
--- /dev/null
+++ b/muse_qt4_evolution/awl/sigedit.h
@@ -0,0 +1,66 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SIGEDIT_H__
+#define __SIGEDIT_H__
+
+#include "al/sig.h"
+
+namespace AL {
+ class TimeSignature;
+ };
+
+namespace Awl {
+
+//---------------------------------------------------------
+// SigEdit
+//---------------------------------------------------------
+
+class SigEdit : public QAbstractSpinBox
+ {
+ Q_OBJECT
+
+ AL::TimeSignature _sig;
+ bool initialized;
+
+ virtual void paintEvent(QPaintEvent* event);
+ virtual void stepBy(int steps);
+ virtual StepEnabled stepEnabled() const;
+ virtual void fixup(QString& input) const;
+ virtual QValidator::State validate(QString&, int&) const;
+ void updateValue();
+ int curSegment() const;
+ virtual bool event(QEvent*);
+
+ signals:
+ void valueChanged(const AL::TimeSignature&);
+
+ public slots:
+ void setValue(const AL::TimeSignature&);
+
+ public:
+ SigEdit(QWidget* parent = 0);
+ ~SigEdit();
+
+ AL::TimeSignature sig() const { return _sig; }
+ };
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/slider.cpp b/muse_qt4_evolution/awl/slider.cpp
new file mode 100644
index 00000000..7686e850
--- /dev/null
+++ b/muse_qt4_evolution/awl/slider.cpp
@@ -0,0 +1,251 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "slider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// Slider
+//---------------------------------------------------------
+
+Slider::Slider(QWidget* parent)
+ : AbstractSlider(parent), orient(Qt::Vertical), _sliderSize(14,14)
+ {
+ init();
+ }
+
+//---------------------------------------------------------
+// Slider
+//---------------------------------------------------------
+
+Slider::Slider(Qt::Orientation orientation, QWidget* parent)
+ : AbstractSlider(parent), orient(orientation), _sliderSize(14,14)
+ {
+ init();
+ }
+
+//---------------------------------------------------------
+// Slider
+//---------------------------------------------------------
+
+void Slider::init()
+ {
+ if (orient == Qt::Vertical)
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+ else
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ dragMode = false;
+ points = 0;
+ updateKnob();
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize Slider::sizeHint() const
+ {
+ int w = _sliderSize.width() + scaleWidth();
+ return orient == Qt::Vertical ? QSize(w, 200) : QSize(200, w);
+ }
+
+//---------------------------------------------------------
+// Slider
+//---------------------------------------------------------
+
+Slider::~Slider()
+ {
+ if (points)
+ delete points;
+ }
+
+//---------------------------------------------------------
+// setOrientation
+//---------------------------------------------------------
+
+void Slider::setOrientation(Qt::Orientation o)
+ {
+ orient = o;
+ updateKnob();
+ update();
+ }
+
+//---------------------------------------------------------
+// updateKnob
+//---------------------------------------------------------
+
+void Slider::updateKnob()
+ {
+ if (points)
+ delete points;
+ points = new QPainterPath;
+ int kh = _sliderSize.height();
+ int kw = _sliderSize.width();
+ points->moveTo(0.0, 0.0);
+ if (orient == Qt::Vertical) {
+ int kh = _sliderSize.height();
+ int kh2 = kh / 2;
+ points->lineTo(kw, -kh2);
+ points->lineTo(kw, kh2);
+ }
+ else {
+ int kw2 = kw/2;
+ points->lineTo(-kw2, kh);
+ points->lineTo(kw2, kh);
+ }
+ points->lineTo(0.0, 0.0);
+ }
+
+//---------------------------------------------------------
+// setInvertedAppearance
+//---------------------------------------------------------
+
+void Slider::setInvertedAppearance(bool val)
+ {
+ AbstractSlider::setInvertedAppearance(val);
+ update();
+ }
+
+//---------------------------------------------------------
+// setSliderSize
+//---------------------------------------------------------
+
+void Slider::setSliderSize(const QSize& s)
+ {
+ _sliderSize = s;
+ update();
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void Slider::mousePressEvent(QMouseEvent* ev)
+ {
+ startDrag = ev->pos();
+// if (points->boundingRect().toRect().contains(startDrag)) {
+ emit sliderPressed(_id);
+ dragMode = true;
+ int pixel = (orient == Qt::Vertical) ? height() - _sliderSize.height() : width() - _sliderSize.width();
+ dragppos = int(pixel * (_value - minValue()) / (maxValue() - minValue()));
+ if (_invert)
+ dragppos = pixel - dragppos;
+// }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void Slider::mouseReleaseEvent(QMouseEvent*)
+ {
+ if (dragMode) {
+ emit sliderReleased(_id);
+ dragMode = false;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void Slider::mouseMoveEvent(QMouseEvent* ev)
+ {
+ if (!dragMode)
+ return;
+ int delta = startDrag.y() - ev->y();
+
+// if (_invert)
+// delta = -delta;
+ if (orient == Qt::Horizontal)
+ delta = -delta;
+ int ppos = dragppos + delta;
+ if (ppos < 0)
+ ppos = 0;
+
+ int pixel = (orient == Qt::Vertical) ? height() - _sliderSize.height() : width() - _sliderSize.width();
+ if (ppos > pixel)
+ ppos = pixel;
+ int pos = _invert ? (pixel - ppos) : ppos;
+ _value = (pos * (maxValue() - minValue()) / pixel) + minValue() - 0.000001;
+ update();
+ valueChange();
+ }
+
+//---------------------------------------------------------
+// paint
+// r - phys coord system
+//---------------------------------------------------------
+
+void Slider::paintEvent(QPaintEvent* ev)
+ {
+ int h = height();
+ int w = width();
+ int kw = _sliderSize.width();
+ int kh = _sliderSize.height();
+ int pixel = (orient == Qt::Vertical) ? h - kh : w - kw;
+ double range = maxValue() - minValue();
+ int ppos = int(pixel * (_value - minValue()) / range);
+ if ((orient == Qt::Vertical && _invert) || (orient == Qt::Horizontal && !_invert))
+ ppos = pixel - ppos;
+
+ QRect rr(ev->rect());
+ QPainter p(this);
+
+ QColor sc(isEnabled() ? _scaleColor : Qt::gray);
+ QColor svc(isEnabled() ? _scaleValueColor : Qt::gray);
+ p.setBrush(svc);
+
+ int kh2 = kh/2;
+
+ //---------------------------------------------------
+ // draw scale
+ //---------------------------------------------------
+
+ if (orient == Qt::Vertical) {
+ int xm = (w - _scaleWidth - _sliderSize.height()) / 2;
+ int y1 = kh2;
+ int y2 = h - (ppos + y1);
+ int y3 = h - y1;
+ p.fillRect(xm, y1, _scaleWidth, y2-y1, _invert ? svc : sc);
+ p.fillRect(xm, y2, _scaleWidth, y3-y2, _invert ? sc : svc);
+ p.translate(QPointF(xm + _scaleWidth/2, y2));
+ }
+ else {
+ int ym = (h - _scaleWidth - _sliderSize.height()) / 2;
+ int x1 = kh2;
+ int x2 = w - (ppos + x1);
+ int x3 = w - x1;
+ p.fillRect(x1, ym, x2-x1, _scaleWidth, _invert ? sc : svc);
+ p.fillRect(x2, ym, x3-x2, _scaleWidth, _invert ? svc : sc);
+ p.translate(QPointF(x2, ym + _scaleWidth/2));
+ }
+
+ //---------------------------------------------------
+ // draw slider
+ //---------------------------------------------------
+
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.setPen(QPen(svc, 0));
+ p.drawPath(*points);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/slider.h b/muse_qt4_evolution/awl/slider.h
new file mode 100644
index 00000000..e8e38ba2
--- /dev/null
+++ b/muse_qt4_evolution/awl/slider.h
@@ -0,0 +1,81 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLSLIDER_H__
+#define __AWLSLIDER_H__
+
+#include "aslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// Slider
+//
+//! Base class of all slider type input widgets.
+//
+//! Inherits from AwlKnob
+//!
+//---------------------------------------------------------
+
+class Slider : public AbstractSlider {
+ Q_OBJECT
+
+ Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
+ Q_PROPERTY(QSize sliderSize READ sliderSize WRITE setSliderSize)
+
+ Qt::Orientation orient;
+ QSize _sliderSize;
+
+ QPoint startDrag;
+ bool dragMode;
+ int dragppos;
+
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void paintEvent(QPaintEvent*);
+ void init();
+ void updateKnob();
+
+ protected:
+ QPainterPath* points;
+ virtual void mousePressEvent(QMouseEvent*);
+
+ signals:
+ void sliderPressed(int);
+ void sliderReleased(int);
+
+ public:
+ Slider(QWidget* parent = 0);
+ Slider(Qt::Orientation orientation, QWidget* parent = 0);
+ ~Slider();
+
+ virtual void setOrientation(Qt::Orientation);
+ Qt::Orientation orientation() const { return orient; }
+
+ QSize sliderSize() const { return _sliderSize; }
+ void setSliderSize(const QSize& s);
+
+ virtual void setInvertedAppearance(bool val);
+ virtual QSize sizeHint() const;
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/tcanvas.cpp b/muse_qt4_evolution/awl/tcanvas.cpp
new file mode 100644
index 00000000..6ec4f68f
--- /dev/null
+++ b/muse_qt4_evolution/awl/tcanvas.cpp
@@ -0,0 +1,1871 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tcanvas.h"
+#include "al/al.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "../muse/gconfig.h"
+#include "../muse/icons.h"
+
+#include "metronom.xpm"
+#include "clock.xpm"
+
+#ifdef __APPLE__
+ inline double exp10(double a) { return pow(10.0, a); }
+#endif
+
+static QIcon* clockIcon;
+static QIcon* metronomIcon;
+
+FollowMode TimeCanvas::followMode = FOLLOW_JUMP;
+QPixmap* TimeCanvas::octave;
+QPixmap* TimeCanvas::mk1;
+QPixmap* TimeCanvas::mk2;
+QPixmap* TimeCanvas::mk3;
+QPixmap* TimeCanvas::mk4;
+
+enum DragType {
+ DRAG_RULER,
+ DRAG_CANVASA, DRAG_CANVAS_B,
+ DRAG_PANELA, DRAG_PANELB,
+ DRAG_OTHER
+ };
+
+//---------------------------------------------------------
+// TimeCanvas
+//---------------------------------------------------------
+
+TimeCanvas::TimeCanvas(TimeCanvasType t)
+ : QFrame()
+ {
+ setAttribute(Qt::WA_NoSystemBackground, true);
+
+ _yFit = false;
+ _tool = PointerTool;
+ type = t;
+ _timeType = AL::TICKS;
+ marker = 0;
+ showCursor = false;
+ ctrlHeight = 0;
+ curPitch = -1;
+ mouseInB = false;
+ dragType = DRAG_OTHER;
+ followPos = true;
+
+ // set default color
+ canvasBackgroundColor = QColor(0x71, 0x8d, 0xbe);
+
+ if (clockIcon == 0) {
+ clockIcon = new QIcon(QPixmap(clock_xpm));
+ metronomIcon = new QIcon(QPixmap(metronom_xpm));
+ }
+ button = Qt::NoButton;
+ grid = new QGridLayout;
+ grid->setMargin(0);
+ grid->setSpacing(1);
+ setLayout(grid);
+
+ _widget = new QWidget;
+ _widget->setAttribute(Qt::WA_NoSystemBackground);
+ _widget->setAttribute(Qt::WA_StaticContents);
+ _widget->installEventFilter(this);
+ _widget->setMouseTracking(true);
+ _widget->setAcceptDrops(true);
+
+ // allow to set slider position before slider range
+ // is known:
+
+ pos1.setTick(0);
+ pos2.setTick(INT_MAX);
+
+ hmag = new QSlider(Qt::Horizontal);
+ hmag->setRange(0, 100);
+ _xmagMin = 0.001;
+ _xmagMax = 0.3;
+ _xmag = 0.04;
+ hmag->setValue(xmag2s(_xmag));
+
+ vmag = 0;
+ if (type != TIME_CANVAS_DRUMEDIT) {
+ vmag = new QSlider(Qt::Vertical);
+ vmag->setRange(0, 100);
+ vmag->setPageStep(1);
+ }
+ _ymag = 1.0;
+
+ hbar = new QScrollBar(Qt::Horizontal);
+ hbar->setRange(0, INT_MAX);
+ vbar = new QScrollBar(Qt::Vertical);
+ timeTypeButton = new QToolButton;
+ timeTypeButton->setFixedSize(20, rulerHeight);
+ setTimeType1(AL::TICKS);
+ yRange = 0;
+
+ switch(type) {
+ case TIME_CANVAS_PIANOROLL:
+ _ymagMin = 0.5;
+ _ymagMax = 3.0;
+ vmag->setValue(lrint((_ymag-_ymagMin)*100.0/(_ymagMax-_ymagMin)));
+ initPianoroll();
+ break;
+ case TIME_CANVAS_DRUMEDIT:
+ _ymagMin = 1.0;
+ _ymagMax = 1.0;
+ yRange = drumHeight * 128;
+ break;
+ case TIME_CANVAS_WAVEEDIT:
+ _xmagMin = 0.001;
+ _xmagMax = 100.0;
+ _xmag = 0.04;
+ _ymagMin = 1.0;
+ _ymagMax = 10.0;
+ _ymag = 1.0;
+ break;
+ default:
+ _ymagMin = 1.0;
+ _ymagMax = 1.0;
+ break;
+ }
+ updateGeometry();
+ if (type == TIME_CANVAS_PIANOROLL || type == TIME_CANVAS_DRUMEDIT
+ || type == TIME_CANVAS_WAVEEDIT) {
+ addCtrlButton = new QPushButton(tr("Ctrl"), _widget);
+ addCtrlButton->setGeometry(1, 1, rPanelA.width()-4, rulerHeight-4);
+ addCtrlButton->setToolTip(tr("Add Controller View"));
+ connect(addCtrlButton, SIGNAL(clicked()), SLOT(addCtrlClicked()));
+ }
+
+ grid->addWidget(_widget, 0, 0, 3, 2);
+ grid->addWidget(hbar, 3, 0, Qt::AlignVCenter);
+ grid->addWidget(hmag, 3, 1, Qt::AlignVCenter);
+ grid->addWidget(timeTypeButton, 0, 2);
+ grid->addWidget(vbar, 1, 2, Qt::AlignHCenter);
+ if (vmag)
+ grid->addWidget(vmag, 2, 2, Qt::AlignHCenter);
+
+ grid->setColumnStretch(0, 100);
+ grid->setRowStretch(1, 100);
+
+ _raster = 0;
+ updateScrollBars();
+ connect(hbar, SIGNAL(valueChanged(int)), SLOT(moveX(int)));
+ connect(vbar, SIGNAL(valueChanged(int)), SLOT(moveY(int)));
+ connect(hmag, SIGNAL(valueChanged(int)), SLOT(scaleX(int)));
+ if (vmag)
+ connect(vmag, SIGNAL(valueChanged(int)), SLOT(scaleY(int)));
+ connect(timeTypeButton, SIGNAL(clicked()), SLOT(toggleTimeType()));
+ }
+
+//---------------------------------------------------------
+// resizeController
+//---------------------------------------------------------
+
+void TimeCanvas::resizeController(int h)
+ {
+ if (h == ctrlHeight)
+ return;
+ int updateH = h > ctrlHeight ? h : ctrlHeight;
+ ctrlHeight = h;
+ updateGeometry();
+ updateScrollBars();
+ widget()->update(0, widget()->height() - updateH, widget()->width(), updateH);
+ }
+
+//---------------------------------------------------------
+// eventFilter
+//---------------------------------------------------------
+
+bool TimeCanvas::eventFilter(QObject* obj, QEvent* event)
+ {
+ if (obj != _widget)
+ return QFrame::eventFilter(obj, event);
+
+ switch(event->type()) {
+ case QEvent::Paint:
+ {
+ QPainter p(_widget);
+ canvasPaintEvent(((QPaintEvent*)event)->rect(), p);
+ }
+ return true;
+
+ case QEvent::Resize:
+ updateGeometry();
+ updateScrollBars();
+ layout();
+ return false;
+
+ case QEvent::MouseButtonDblClick:
+ {
+ QMouseEvent* me = (QMouseEvent*)event;
+ QPoint p(me->pos());
+ button = me->button();
+ keyState = me->modifiers();
+ mouseDoubleClick(me);
+ }
+ return true;
+
+ case QEvent::MouseButtonPress:
+ {
+ QMouseEvent* me = (QMouseEvent*)event;
+ keyState = me->modifiers();
+ button = me->button();
+ QPoint p(me->pos());
+ int x = p.x() - rRuler.x();
+ bool shift = keyState & Qt::ShiftModifier;
+
+ if (rRuler.contains(p)) {
+ dragType = DRAG_RULER;
+ if (shift) {
+ AL::Pos pos(pix2pos(x));
+ if (button == Qt::LeftButton)
+ emit addMarker(pos);
+ else if (button == Qt::RightButton)
+ emit removeMarker(pos);
+ return true;
+ }
+ }
+ else {
+ dragType = DRAG_OTHER;
+ mousePress(me);
+ }
+ }
+ // go on with MouseMove
+
+ case QEvent::MouseMove:
+ {
+ QMouseEvent* me = (QMouseEvent*)event;
+ keyState = me->modifiers();
+ button = me->buttons();
+ QPoint p(me->pos());
+ AL::Pos pos(pix2pos(p.x()-rCanvasA.x()));
+
+ if (dragType == DRAG_OTHER) {
+ if (button == 0 && (rPanelB.contains(p) || rCanvasB.contains(p))) {
+ if (!mouseInB) {
+ mouseInB = true;
+ enterB();
+ }
+ }
+ else {
+ if (button == 0 && mouseInB) {
+ mouseInB = false;
+ leaveB();
+ }
+ }
+
+ if (showCursor && p.x() < rCanvasA.x()) {
+ showCursor = false;
+ widget()->update(rRuler);
+ emit cursorPos(cursor, showCursor);
+ }
+
+ if (p.x() >= rCanvasA.x() && (cursor != pos)) {
+ int x1 = pos2pix(cursor) + rCanvasA.x();
+ int x2 = pos2pix(pos) + rCanvasA.x();
+ QRect r1(x1-1, 0, 2, rRuler.height());
+ QRect r2(x2-1, 0, 2, rRuler.height());
+ widget()->update(rRuler & (r1 | r2));
+ cursor = pos;
+ showCursor = true;
+ emit cursorPos(cursor, showCursor);
+ }
+
+ if (rRuler.contains(p)) {
+ int b = me->buttons();
+ if (b == 0)
+ return true;
+ int i = 0;
+ if (b & Qt::MidButton)
+ i = 1;
+ else if (b & Qt::RightButton)
+ i = 2;
+ if (keyState & Qt::ShiftModifier)
+ emit addMarker(i);
+ emit posChanged(i, pos);
+ }
+ else {
+ mouseMove(p);
+ }
+ }
+ else if (dragType == DRAG_RULER) {
+ int b = me->buttons();
+ if (b == 0)
+ return true;
+ int i = 0;
+ if (b & Qt::MidButton)
+ i = 1;
+ else if (b & Qt::RightButton)
+ i = 2;
+ if (keyState & Qt::ShiftModifier)
+ emit addMarker(i);
+ emit posChanged(i, pos);
+ }
+ }
+ return true;
+
+ case QEvent::MouseButtonRelease:
+ {
+ QMouseEvent* me = (QMouseEvent*)event;
+ button = Qt::NoButton;
+ keyState = me->modifiers();
+ mouseRelease(me);
+ dragType = DRAG_OTHER;
+ }
+ return true;
+
+ case QEvent::DragEnter:
+ dragEnter((QDragEnterEvent*)event);
+ return true;
+
+ case QEvent::Drop:
+ drop((QDropEvent*)event);
+ return true;
+
+ case QEvent::DragMove:
+ dragMove((QDragMoveEvent*)event);
+ return true;
+
+ case QEvent::DragLeave:
+ dragLeave((QDragLeaveEvent*)event);
+ return true;
+
+ case QEvent::Leave:
+ {
+ emit cursorPos(cursor, false);
+ showCursor = false;
+ emit pitchChanged(-1);
+ curPitch = -1;
+ QRect r(rRuler);
+ if (!rPanelA.isEmpty())
+ r |= rPanelA;
+ widget()->update(r);
+
+ if (mouseInB) {
+ mouseInB = false;
+ // button = ((QMouseEvent*)event)->buttons();
+ leaveB();
+ }
+ }
+ return false;
+
+ case QEvent::Wheel:
+ {
+ QWheelEvent* e = (QWheelEvent*)event;
+ if (e->orientation() != Qt::Vertical)
+ return true;
+ if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier)) {
+ //
+ // xmag
+ //
+ int oldx = e->x() - rCanvasA.x();
+ AL::Pos pos(pix2pos(oldx));
+ int step = e->delta() / 120;
+ if (step > 0) {
+ for (int i = 0; i< step; ++i)
+ _xmag *= 1.1;
+ }
+ else {
+ for (int i = 0; i < -step; ++i)
+ _xmag *= 0.9;
+ }
+ if (_xmag < _xmagMin)
+ _xmag = _xmagMin;
+ else if (_xmag > _xmagMax)
+ _xmag = _xmagMax;
+ hmag->setValue(xmag2s(_xmag));
+ int newx = pos2pix(pos);
+ updateScrollBars();
+ hbar->setValue(wpos.x() + (newx - oldx));
+ updateRulerMag();
+ magChanged();
+ _widget->update();
+ }
+ else {
+ //
+ // scroll
+ //
+ int step = qMin(QApplication::wheelScrollLines() * vbar->singleStep(), vbar->pageStep());
+ int offset = e->delta() * step / 120;
+ if (vbar->invertedControls())
+ offset = -offset;
+ if (qAbs(offset) < 1)
+ return true;
+ vbar->setValue(vbar->value() + offset);
+ }
+ }
+ return true;
+ default:
+// printf("event %d missed\n", event->type());
+ break;
+ }
+ return false;
+ }
+
+
+
+void TimeCanvas::keyPressEvent(QKeyEvent *e)
+{
+ if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Down ||
+ e->key() == Qt::Key_Left || e->key() == Qt::Key_Right)
+ keyboardNavigate(e);
+}
+
+//---------------------------------------------------------
+// moveX
+//---------------------------------------------------------
+
+void TimeCanvas::moveX(int x)
+ {
+ int dx = wpos.x() - x;
+ wpos.setX(x);
+
+ int wh = _widget->height();
+
+ if (type == TIME_CANVAS_PIANOROLL || type == TIME_CANVAS_DRUMEDIT
+ || TIME_CANVAS_WAVEEDIT) {
+ _widget->scroll(dx, 0, QRect(rCanvasA.x(), 0, rCanvasA.width(), wh));
+
+ //HACK:
+ // update controller names
+ int w = 100 + ((dx > 0) ? dx : 0);
+ _widget->update(rCanvasB.x(), rCanvasB.y(), w, rCanvasB.height());
+
+ //HACK:
+ // repaint rounded line end (splitter handle for controller
+ // canvas)
+ int x = rCanvasB.x() + rCanvasB.width() - 1;
+ w = 1;
+ if (dx < 0) {
+ x += dx;
+ w -= dx;
+ }
+ _widget->update(x, rCanvasB.y(), w, rCanvasB.height());
+ }
+ else
+ _widget->scroll(dx, 0);
+ emit contentsMoving(wpos.x(), wpos.y());
+ }
+
+//---------------------------------------------------------
+// moveY
+//---------------------------------------------------------
+
+void TimeCanvas::moveY(int y)
+ {
+ int dy = wpos.y() - y;
+ if (dy == 0)
+ return;
+ wpos.setY(y);
+
+ // dont move ruler:
+
+ int ww = _widget->width();
+ int wh = _widget->height();
+
+ QRect r(0, rulerHeight, ww, wh - rulerHeight - ctrlHeight);
+
+ _widget->scroll(0, dy, r);
+ emit contentsMoving(wpos.x(), wpos.y());
+ }
+
+//---------------------------------------------------------
+// setYPos
+//---------------------------------------------------------
+
+void TimeCanvas::setYPos(int y)
+ {
+ setWPos(QPoint(wpos.x(), y));
+ }
+
+//---------------------------------------------------------
+// setWPos
+//---------------------------------------------------------
+
+void TimeCanvas::setWPos(const QPoint& p)
+ {
+ if (wpos != p) {
+ wpos = p;
+ hbar->setValue(wpos.x());
+ vbar->setValue(wpos.y());
+ _widget->update();
+// QCoreApplication::flush();
+ }
+ }
+
+//---------------------------------------------------------
+// paintClockRuler
+//---------------------------------------------------------
+
+void TimeCanvas::paintClockRuler(QPainter& p, const QRect& r)
+ {
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+
+ int y1 = r.y();
+ int rh = r.height();
+ if (y1 < rulerHeight) {
+ rh -= rulerHeight - y1;
+ y1 = rulerHeight;
+ }
+ int y2 = y1 + rh;
+
+ //---------------------------------------------------
+ // draw Marker
+ //---------------------------------------------------
+
+ int y = rulerHeight - 16;
+ p.setPen(Qt::black);
+ p.setFont(_font3);
+ QRect tr(r);
+ tr.setHeight(12);
+
+ if (marker) {
+ for (AL::iMarker m = marker->begin(); m != marker->end(); ++m) {
+ int xp = mapx(int(m->second.frame()));
+ if (xp > x2)
+ break;
+ AL::iMarker mm = m;
+ ++mm;
+ int xe = x2;
+ if (mm != marker->end()) {
+ xe = mapx(mm->first);
+ }
+ QRect tr(xp, 0, x2 - xp, 11);
+ if (m->second.current()) {
+ p.fillRect(tr, Qt::white);
+ }
+ if (r.intersects(tr)) {
+ int x2;
+ AL::iMarker mm = m;
+ ++mm;
+ if (mm != marker->end())
+ x2 = mapx(mm->first);
+ else
+ x2 = xp+200;
+ QRect r = QRect(xp+10, 0, x2-xp, 12);
+ p.drawPixmap(xp, 0, *flagIconS);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter, m->second.name());
+ }
+ }
+ }
+
+ p.setPen(Qt::black);
+ if (showCursor) {
+ int xp = pos2pix(cursor);
+ if (xp >= x1 && xp < x2)
+ p.drawLine(xp, 0, xp, rulerHeight);
+ }
+
+ AL::Pos p1(pix2pos(x1));
+ AL::Pos p2(pix2pos(x2));
+
+ int sec1 = p1.frame() / AL::sampleRate;
+ int sec2 = (p2.frame() + AL::sampleRate - 1) / AL::sampleRate;
+
+ int sw = lrint(AL::sampleRate * _xmag);
+
+ if (sw > 20) {
+ for (int sec = sec1; sec < sec2; ++sec) {
+ int min = sec / 60;
+ int sr = sec % 60;
+
+ int yy;
+ QString s;
+ if (sr == 0) {
+ p.setFont(_font2);
+ s.sprintf("%d:00", min);
+ yy = y;
+ }
+ else {
+ p.setFont(_font1);
+ s.sprintf("%02d", sr);
+ yy = y + 7;
+ }
+ int xp = pos2pix(AL::Pos(sec * AL::sampleRate, AL::FRAMES));
+// printf(" sec %d min %d sr %d xp %d\n", sec, min, sr, xp);
+ p.setPen(Qt::black);
+ p.drawLine(xp, yy, xp, rulerHeight);
+ p.drawText(xp + 2, rulerHeight - 4, s);
+ p.setPen(sr == 0 ? Qt::lightGray : Qt::gray);
+ p.drawLine(xp, y1, xp, y2);
+ }
+ }
+ else {
+ int min1 = sec1/60;
+ int min2 = (sec2+59)/60;
+ for (int min = min1; min < min2; ++min) {
+ QString s;
+ p.setFont(_font2);
+ s.sprintf("%d", min);
+ int xp = pos2pix(AL::Pos(min * AL::sampleRate * 60, AL::FRAMES));
+ p.setPen(Qt::black);
+ p.drawLine(xp, y, xp, rulerHeight);
+ p.drawText(xp + 2, rulerHeight - 4, s);
+ p.setPen(Qt::lightGray);
+ p.drawLine(xp, y1, xp, y2);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// updateRulerMag
+//---------------------------------------------------------
+
+void TimeCanvas::updateRulerMag()
+ {
+ int bar1, beat, tick;
+ pos1.mbt(&bar1, &beat, &tick);
+ AL::Pos stick(bar1, 0, 0);
+ AL::Pos ntick = AL::Pos(bar1 + 1, 0, 0);
+ int tpix = pos2pix(ntick) - pos2pix(stick);
+ metronomeRulerMag = 0;
+ if (tpix < 64)
+ metronomeRulerMag = 1;
+ if (tpix < 32)
+ metronomeRulerMag = 2;
+ if (tpix <= 16)
+ metronomeRulerMag = 3;
+ if (tpix < 8)
+ metronomeRulerMag = 4;
+ if (tpix <= 4)
+ metronomeRulerMag = 5;
+ if (tpix <= 2)
+ metronomeRulerMag = 6;
+ }
+
+//---------------------------------------------------------
+// paintMetronomRuler
+//---------------------------------------------------------
+
+void TimeCanvas::paintMetronomRuler(QPainter& p, const QRect& r)
+ {
+ static const int mag[7] = {
+ 1, 1, 2, 5, 10, 20, 50
+ };
+
+ int x = r.x();
+ int w = r.width();
+ int y = rulerHeight - 16;
+
+ p.setFont(_font3);
+
+ int h = 14;
+ int y1 = r.y();
+ int rh = r.height();
+ if (y1 < rulerHeight) {
+ rh -= rulerHeight - y1;
+ y1 = rulerHeight;
+ }
+ int y2 = y1 + rh;
+
+ if (x < (MAP_OFFSET - wpos.x()))
+ x = MAP_OFFSET - wpos.x();
+ AL::Pos pos1 = pix2pos(x);
+ AL::Pos pos2 = pix2pos(x+w);
+
+ if (marker) {
+ AL::iMarker start = marker->lower_bound(pos1.tick());
+ if (start != marker->begin())
+ --start;
+ AL::iMarker end = marker->lower_bound(pos2.tick());
+ for (AL::iMarker m = start; m != end; ++m) {
+ AL::Pos pm1(m->second);
+ AL::iMarker m2 = m;
+ ++m2;
+ AL::Pos pm2(pos2);
+ if (m2 != marker->end())
+ pm2 = m2->second;
+
+ int x1 = pos2pix(pm1);
+ int x2 = pos2pix(pm2);
+
+ if (pos[0] >= pm1 && (m2 == marker->end() || pos[0] < pm2))
+ p.fillRect(x1, 0, x2 - x1, 11, Qt::white);
+
+ QRect r = QRect(x1 + 10, 0, x2 - x1, 12);
+ p.drawPixmap(x1, 0, *flagIconS);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter, m->second.name());
+ }
+ }
+
+ //---------------------------------------------------
+ // draw raster
+ //---------------------------------------------------
+
+ int bar1, bar2, beat, tick;
+ pos1.mbt(&bar1, &beat, &tick);
+ pos2.mbt(&bar2, &beat, &tick);
+
+ int n = mag[metronomeRulerMag];
+
+ bar1 = (bar1 / n) * n; // round down
+ if (bar1 && n >= 2)
+ bar1 -= 1;
+ bar2 = ((bar2 + n - 1) / n) * n; // round up
+
+ for (int bar = bar1; bar <= bar2;) {
+ AL::Pos stick(bar, 0, 0);
+ if (metronomeRulerMag) {
+ p.setFont(_font2);
+ int x = pos2pix(stick);
+ QString s;
+ s.setNum(bar + 1);
+
+ p.setPen(Qt::black);
+ p.drawLine(x, y, x, y + h);
+ QRect r = QRect(x+2, y, 1000, h);
+ p.drawText(r, Qt::AlignLeft | Qt::AlignVCenter, s);
+ p.setPen(Qt::lightGray);
+ if (x > 0)
+ p.drawLine(x, y1, x, y2);
+ }
+ else {
+ AL::TimeSignature sig = stick.timesig();
+ int z = sig.z;
+ for (int beat = 0; beat < z; beat++) {
+ AL::Pos xx(bar, beat, 0);
+ int xp = pos2pix(xx);
+ if (xp < 0)
+ continue;
+ QString s;
+ QRect r(xp+2, y + 1, 1000, h);
+ int y3;
+ int num;
+ if (beat == 0) {
+ num = bar + 1;
+ y3 = y + 2;
+ p.setFont(_font2);
+ }
+ else {
+ num = beat + 1;
+ y3 = y + 8;
+ p.setFont(_font1);
+ r.moveTop(r.top() + 1);
+ }
+ s.setNum(num);
+ p.setPen(Qt::black);
+ p.drawLine(xp, y3, xp, y+h);
+ p.drawText(r, Qt::AlignLeft | Qt::AlignVCenter, s);
+ p.setPen(beat == 0 ? Qt::lightGray : Qt::gray);
+ if (xp > 0)
+ p.drawLine(xp, y1, xp, y2);
+ }
+ }
+ if (bar == 0 && n >= 2)
+ bar += (n-1);
+ else
+ bar += n;
+ }
+ //
+ // draw mouse cursor marker
+ //
+ p.setPen(Qt::black);
+ if (showCursor) {
+ int xp = pos2pix(cursor);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, rulerHeight-1);
+ }
+
+ }
+
+//---------------------------------------------------------
+// tempoChanged
+//---------------------------------------------------------
+
+void TimeCanvas::tempoChanged()
+ {
+ widget()->update(rCanvasA.x(), 0, rCanvasA.width(), widget()->height());
+ }
+
+//---------------------------------------------------------
+// canvasPaintEvent
+//---------------------------------------------------------
+
+void TimeCanvas::canvasPaintEvent(const QRect& r, QPainter& p)
+ {
+ if (r.intersects(rButton)) {
+ p.fillRect(rButton, QColor(0xe0, 0xe0, 0xe0));
+ p.setPen(QPen(Qt::black, 2));
+ int y = rButton.y() + rButton.height() - 1;
+ p.drawLine(rButton.x(), y, rButton.width(), y);
+ }
+ p.setRenderHint(QPainter::TextAntialiasing, true);
+
+ QRect par = r & rPanelA;
+ if (!(par.isEmpty() || rPanelA.isEmpty())) {
+ if (type == TIME_CANVAS_DRUMEDIT) {
+ paintDrumList(p, par);
+ }
+ else if (type == TIME_CANVAS_PIANOROLL) {
+ paintPiano(p, par);
+ }
+ else if (type == TIME_CANVAS_WAVEEDIT) {
+ p.fillRect(par, QColor(0xe0, 0xe0, 0xe0));
+ }
+ }
+
+ QRect pbr(r & rPanelB);
+ QRect hor(r & (rRuler | rCanvasA | rCanvasB));
+ QRect car(r & rCanvasA);
+ QRect cbr(r & rCanvasB);
+
+ bool drawPanelB = !(pbr.isEmpty() || rPanelB.isEmpty());
+ bool drawRuler = !(hor.isEmpty() || (rRuler.isEmpty() && rCanvasA.isEmpty() && rCanvasB.isEmpty()));
+ bool drawCanvasA = !(car.isEmpty() || rCanvasA.isEmpty());
+ bool drawCanvasB = !(cbr.isEmpty() || rCanvasB.isEmpty());
+
+ //
+ // draw canvas background
+ //
+
+ p.setClipRect(r);
+ p.setBrushOrigin(QPoint(car.x() + wpos.x(), car.y() + wpos.y()));
+ if (drawCanvasA) {
+ if (canvasBackgroundPixmap.isNull()) {
+ if (type == TIME_CANVAS_DRUMEDIT || type == TIME_CANVAS_PIANOROLL
+ || type == TIME_CANVAS_WAVEEDIT) {
+ QRect rr(car);
+ // paint inactive area different
+ // (darker)
+ QColor c = canvasBackgroundColor.darker(150);
+ int x1 = pos2pix(partPos1) + rCanvasA.x();
+ if (rr.x() < x1) {
+ QRect r(rr.x(), rr.y(), x1-rr.x(), rr.height());
+ p.fillRect(r, c);
+ rr.adjust(x1-rr.x(), 0, 0, 0);
+ }
+ int x2 = pos2pix(partPos2) + rCanvasA.x();
+ int xx2 = rr.x() + rr.width();
+ if (xx2 > x2) {
+ if (x2 < rr.x())
+ x2 = rr.x();
+ QRect r(x2, rr.y(), xx2-x2, rr.height());
+ p.fillRect(r, c);
+ rr.adjust(0, 0, -(xx2-x2), 0);
+ }
+ if (!rr.isEmpty()) {
+ p.fillRect(rr, canvasBackgroundColor);
+ }
+ }
+ else
+ p.fillRect(car, canvasBackgroundColor);
+ }
+ else {
+ p.drawTiledPixmap(car, canvasBackgroundPixmap,
+ car.topLeft() + QPoint(wpos));
+ }
+ }
+
+ if (drawCanvasB)
+ p.fillRect(cbr, canvasBackgroundColor);
+
+ //---------------------------------------------------
+ // draw Ruler
+ //---------------------------------------------------
+
+ if (drawRuler) {
+ QRect rrr(r & rRuler);
+ if (!rrr.isEmpty())
+ p.fillRect(rrr, QColor(0xe0, 0xe0, 0xe0));
+ int x1 = hor.x();
+ int x2 = x1 + hor.width();
+ int y1 = rulerHeight - 17;
+ int y2 = rulerHeight - 1;
+
+ p.setPen(QPen(Qt::black, 1));
+ p.drawLine(x1, y1, x2, y1);
+ p.setPen(QPen(Qt::black, 2));
+ p.drawLine(x1, y2, x2, y2);
+
+ QPoint off(rRuler.topLeft());
+ p.translate(off);
+ if (_timeType == AL::TICKS)
+ paintMetronomRuler(p, hor.translated(-off));
+ else
+ paintClockRuler(p, hor.translated(-off));
+ p.translate(-off);
+ }
+
+ if (drawCanvasA) {
+ p.setClipRect(car);
+ paintCanvas(p, car);
+ }
+ p.setRenderHint(QPainter::Antialiasing, false);
+ if (drawPanelB) {
+ p.setClipRect(pbr);
+ QPoint off(rPanelB.topLeft());
+ p.translate(off);
+ paintControllerPanel(p, pbr.translated(-off));
+ p.translate(-off);
+ }
+ if (drawCanvasB) {
+ p.setClipRect(cbr);
+ QPoint off(rCanvasB.topLeft());
+ p.translate(off);
+ paintControllerCanvas(p, cbr.translated(-off));
+ p.translate(-off);
+ }
+ //---------------------------------------------------
+ // draw marker
+ //---------------------------------------------------
+
+ int y1 = r.y();
+ int y2 = y1 + r.height();
+ if (drawRuler) {
+ p.setClipRect(hor);
+ int w = r.width();
+ int x = r.x();
+ int y = rulerHeight - 16;
+ QColor lcColors[3] = { Qt::red, Qt::blue, Qt::blue };
+
+ for (int i = 0; i < 3; ++i) {
+ p.setPen(lcColors[i]);
+ int xp = pos2pix(pos[i]) + rRuler.x();
+ QPixmap* pm = markIcon[i];
+ int pw = (pm->width() + 1) / 2;
+ int x1 = x - pw;
+ int x2 = x + w + pw;
+ if (xp >= x1 && xp < x2) {
+ p.drawPixmap(xp - pw, y-2, *pm);
+ p.drawLine(xp, y1, xp, y2);
+ }
+ }
+ }
+ if (marker) {
+ int yy1 = y1;
+ if (yy1 < rCanvasA.x())
+ yy1 = rCanvasA.x();
+ p.setPen(Qt::green);
+ AL::iMarker start = marker->lower_bound(pos1.tick());
+ if (start != marker->begin())
+ --start;
+ AL::iMarker end = marker->lower_bound(pos2.tick());
+ if (end != marker->end())
+ ++end;
+ for (AL::iMarker m = start; m != end; ++m) {
+ AL::Pos pm(m->second);
+ int x = pos2pix(pm) + rRuler.x();
+ p.drawLine(x, yy1, x, y2);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paintCanvas
+//---------------------------------------------------------
+
+void TimeCanvas::paintCanvas(QPainter& p, const QRect& cr)
+ {
+ QPoint off(rCanvasA.topLeft());
+
+ if (type == TIME_CANVAS_PIANOROLL) {
+ paintPianorollHorizontalGrid(p, cr);
+ p.setRenderHint(QPainter::Antialiasing, true);
+ }
+ else if (type == TIME_CANVAS_DRUMEDIT) {
+ paintDrumeditHorizontalGrid(p, cr);
+ p.setRenderHint(QPainter::Antialiasing, true);
+ }
+ else
+ off = QPoint(rCanvasA.x(), rCanvasA.y() - wpos.y());
+ p.translate(off);
+ paint(p, cr.translated(-off));
+ p.resetMatrix();
+ }
+
+//---------------------------------------------------------
+// setLocatorPos
+//---------------------------------------------------------
+
+void TimeCanvas::setLocatorPos(int idx, const AL::Pos& val, bool follow)
+ {
+ if (pos[idx] == val)
+ return;
+ QFontMetrics fm(_font2);
+ int fw = fm.width("123") + 2;
+ int w = qMax(markIcon[idx]->width() + 2, fw);
+ int h = widget()->height();
+
+ int x = pos2pix(val);
+ if (idx == 0 && follow && followPos && followMode != FOLLOW_NO) {
+ int scroll = 0;
+ if (followMode == FOLLOW_JUMP) {
+ int x2 = rRuler.width() - 20;
+ if (x2 < 0)
+ x2 = rRuler.width();
+ if (x > x2) {
+ int x1 = 20;
+ if (x1 >= rRuler.width())
+ x1 = 0;
+ scroll = x - x1;
+ }
+ else if (x < 0) {
+ scroll = x - MAP_OFFSET;
+ }
+ }
+ else if (followMode == FOLLOW_CONTINUOUS) {
+ int x1 = rRuler.width() / 2;
+ if (x != x1) {
+ scroll = x - (rRuler.width() / 2);
+ }
+ }
+ if (scroll) {
+ moveX(wpos.x() + scroll);
+ hbar->setValue(wpos.x());
+ }
+ }
+
+ int offset = rRuler.x() - (w/2);
+ int x1 = pos2pix(pos[idx]);
+ int x2 = pos2pix(val);
+ QRect oR(x1 + offset, 0, w, h);
+ QRect nR(x2 + offset, 0, w, h);
+ pos[idx] = val;
+ widget()->update(oR | nR);
+ }
+
+//---------------------------------------------------------
+// setMag
+//---------------------------------------------------------
+
+void TimeCanvas::setMag(double x, double y)
+ {
+ if (_xmag == x && _ymag == y)
+ return;
+ _xmag = x;
+ _ymag = y;
+ if (vmag)
+ vmag->setValue(lrint((_ymag-_ymagMin)*100.0/(_ymagMax-_ymagMin)));
+ hmag->setValue(xmag2s(_xmag));
+ updateScrollBars();
+ updateRulerMag();
+ magChanged();
+ _widget->update();
+ }
+
+//---------------------------------------------------------
+// scaleX
+//---------------------------------------------------------
+
+void TimeCanvas::scaleX(int val)
+ {
+ _xmag = s2xmag(val);
+ updateScrollBars();
+ updateRulerMag();
+ magChanged();
+ _widget->update();
+ }
+
+//---------------------------------------------------------
+// scaleY
+//---------------------------------------------------------
+
+void TimeCanvas::scaleY(int val)
+ {
+ int y = lrint(wpos.y() / _ymag);
+ _ymag = (_ymagMax - _ymagMin) / 100.0 * val + _ymagMin;
+ y = lrint(y * _ymag);
+ wpos.setY(y);
+ updateScrollBars();
+ magChanged();
+ _widget->update();
+ }
+
+//---------------------------------------------------------
+// setRaster
+// r = 1 - no raster
+// 0 - measure raster
+// > 1 - tick raster
+//---------------------------------------------------------
+
+void TimeCanvas::setRaster(int r)
+ {
+ if (_raster != r) {
+ _raster = r;
+ _widget->update();
+ }
+ }
+
+//---------------------------------------------------------
+// setTimeRange
+//---------------------------------------------------------
+
+void TimeCanvas::setTimeRange(const AL::Pos& p1, const AL::Pos& p2)
+ {
+ if (pos1 == p1 && pos2 == p2)
+ return;
+ pos1 = p1;
+ pos2 = p2;
+ updateScrollBars();
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// setEndPos
+//---------------------------------------------------------
+
+void TimeCanvas::setEndPos(const AL::Pos& p2)
+ {
+ if (pos2 == p2)
+ return;
+ pos2 = p2;
+ updateScrollBars();
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// updateScrollBars
+//---------------------------------------------------------
+
+void TimeCanvas::updateScrollBars()
+ {
+ hbar->blockSignals(true);
+ vbar->blockSignals(true);
+
+ int ymax = lrint(yRange * _ymag) - rCanvasA.height();
+ if (ymax < 0)
+ ymax = 0;
+ vbar->setRange(0, ymax);
+ vbar->setPageStep(rCanvasA.height());
+
+ int xmin = lrint(pos1.time(_timeType) * _xmag);
+ unsigned x2 = pos2.time(_timeType);
+ int xmax = lrint(x2 * _xmag) - rCanvasA.width();
+ if (xmax - xmin < 0)
+ xmax = xmin;
+ hbar->setRange(xmin, xmax);
+ hbar->setPageStep(rCanvasA.width());
+ wpos.setX(hbar->value());
+ wpos.setY(vbar->value());
+
+ hbar->blockSignals(false);
+ vbar->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setTimeType1
+//---------------------------------------------------------
+
+void TimeCanvas::setTimeType1(AL::TType t)
+ {
+ double conv = 1.0;
+ if (t == AL::TICKS) {
+ timeTypeButton->setIcon(*metronomIcon);
+ if (_timeType == AL::FRAMES)
+ conv = AL::sampleRate / double(AL::division * 120 / 60);
+ }
+ else {
+ timeTypeButton->setIcon(*clockIcon);
+ if (_timeType == AL::TICKS)
+ conv = double(AL::division * 120 / 60) / double(AL::sampleRate);
+ }
+ _timeType = t;
+ _xmag *= conv;
+ _xmagMax *= conv;
+ _xmagMin *= conv;
+
+ updateRulerMag();
+ magChanged();
+ }
+
+//---------------------------------------------------------
+// setTimeType
+//---------------------------------------------------------
+
+void TimeCanvas::setTimeType(AL::TType t)
+ {
+ setTimeType1(t);
+ updateScrollBars();
+ timeTypeChanged();
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// toggleTimeType
+//---------------------------------------------------------
+
+void TimeCanvas::toggleTimeType()
+ {
+ if (_timeType == AL::TICKS)
+ setTimeType(AL::FRAMES);
+ else
+ setTimeType(AL::TICKS);
+ }
+
+//---------------------------------------------------------
+// setMarkerList
+//---------------------------------------------------------
+
+void TimeCanvas::setMarkerList(AL::MarkerList* ml)
+ {
+ if (marker == ml)
+ return;
+ marker = ml;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// pix2pos
+//---------------------------------------------------------
+
+AL::Pos TimeCanvas::pix2pos(int x) const
+ {
+ int val = lrint((x + wpos.x() - MAP_OFFSET)/_xmag);
+ if (val < 0)
+ val = 0;
+ return AL::Pos(val, _timeType);
+ }
+
+//---------------------------------------------------------
+// pos2pix
+//---------------------------------------------------------
+
+int TimeCanvas::pos2pix(const AL::Pos& p) const
+ {
+ return lrint(p.time(_timeType) * _xmag) + MAP_OFFSET - wpos.x();
+ }
+
+//---------------------------------------------------------
+// mapx
+//---------------------------------------------------------
+
+int TimeCanvas::mapx(int x) const
+ {
+ return lrint(x * _xmag) + MAP_OFFSET - wpos.x();
+ }
+
+//---------------------------------------------------------
+// mapxDev
+//---------------------------------------------------------
+
+int TimeCanvas::mapxDev(int x) const
+ {
+ int val = lrint((x + wpos.x() - MAP_OFFSET)/_xmag);
+ if (val < 0)
+ val = 0;
+ return val;
+ }
+
+//---------------------------------------------------------
+// setCorderWidget
+//---------------------------------------------------------
+
+void TimeCanvas::setCornerWidget(QWidget* w)
+ {
+ grid->addWidget(w, 3, 2);
+ }
+
+//---------------------------------------------------------
+// initPianoroll
+//---------------------------------------------------------
+
+/*
+ 0 1 2 3 4 5 6 7 8 9 10
+ c-2 c-1 C0 C1 C2 C3 C4 C5 C6 C7 C8 - G8
+
+ Grid ve:
+
+ +------------+ ------------------------------
+ 11 | |
+ | b | 7
+ +------+ |
+ 10 | a# +-----+ ..............................
+ +------+ a |
+ 9 | | 6
+ +------+ |
+ 8 | g# +-----+ ..............................
+ +------+ g |
+ 7 | | 5
+ +------+ |
+ 6 | f# +-----+ ..............................
+ +------+ f |
+ 5 | | 4
+ | |
+ +------------+ ------------------------------
+ 4 | |
+ | e | 3
+ +------+ |
+ 3 | d# +-----+ ..............................
+ +------+ d |
+ 2 | | 2
+ +------+ |
+ 1 | c# +-----+ ..............................
+ +------+ c |
+ | | 1
+ 0 | |
+ +------------+ ------------------------------
+ */
+
+void TimeCanvas::initPianoroll()
+ {
+ static const char *oct_xpm[] = {
+ // w h colors
+ "40 91 2 1",
+ ". c #f0f0f0",
+ "# c #000000",
+ // x
+ "####################################### ",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 10
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#",
+ "####################################### ", // 7
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 10
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ "####################################### ", //----------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 9
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#",
+ "####################################### ", // 7
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //--------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 10
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+
+ static const char *mk1_xpm[] = {
+ "40 13 2 1",
+ ". c #ff0000",
+ "# c none",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ "#######################................#",
+ "########################...............#",
+ "########################...............#",
+ "####################################### ",
+ };
+
+ static const char *mk2_xpm[] = {
+ "40 13 2 1",
+ ". c #ff0000",
+ "# c none",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //--------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ };
+
+ static const char *mk3_xpm[] = {
+ "40 13 2 1",
+ ". c #ff0000",
+ "# c none",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ "########################################",
+ };
+
+ static const char *mk4_xpm[] = {
+ "40 13 2 1",
+ "# c #ff0000",
+ ". c none",
+ "........................................",
+ "........................................",
+ "........................................",
+ "#######################.................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "#######################.................",
+ "........................................",
+ "........................................",
+ "........................................",
+ };
+
+ if (octave == 0) {
+ octave = new QPixmap(oct_xpm);
+ mk1 = new QPixmap(mk1_xpm);
+ mk2 = new QPixmap(mk2_xpm);
+ mk3 = new QPixmap(mk3_xpm);
+ mk4 = new QPixmap(mk4_xpm);
+ }
+ yRange = keyHeight * 75;
+ }
+
+//---------------------------------------------------------
+// pitch2y
+// y = 0 == origin of rCanvasA
+//---------------------------------------------------------
+
+int TimeCanvas::pitch2y(int pitch) const
+ {
+ int y;
+ if (type == TIME_CANVAS_DRUMEDIT)
+ y = pitch * drumHeight;
+ else {
+ static int tt[] = {
+ 12, 19, 25, 32, 38, 51, 58, 64, 71, 77, 84, 90
+ };
+ y = (75 * keyHeight) - (tt[pitch % 12] + (7 * keyHeight) * (pitch / 12));
+ if (y < 0)
+ y = 0;
+ }
+ return lrint(y - wpos.y() / _ymag);
+ }
+
+//---------------------------------------------------------
+// y2pitch
+// y = 0 == origin of rCanvasA
+//---------------------------------------------------------
+
+int TimeCanvas::y2pitch(int y) const
+ {
+ y = lrint((y + wpos.y()) / _ymag);
+ int pitch;
+ if (type == TIME_CANVAS_DRUMEDIT)
+ pitch = y / drumHeight;
+ else {
+ const int total = (10 * 7 + 5) * keyHeight; // 75 Ganztonschritte
+ y = total - y;
+ int oct = (y / (7 * keyHeight)) * 12;
+ char kt[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 6, 6,
+ 7, 7, 7, 7, 7, 7,
+ 8, 8, 8, 8, 8, 8, 8,
+ 9, 9, 9, 9, 9, 9,
+ 10, 10, 10, 10, 10, 10, 10,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11
+ };
+ pitch = kt[y % 91] + oct;
+ if (pitch < 0 || pitch > 127)
+ pitch = -1;
+ }
+ return pitch;
+ }
+
+//---------------------------------------------------------
+// paintPiano
+//---------------------------------------------------------
+
+void TimeCanvas::paintPiano(QPainter& p, QRect r)
+ {
+ int d = int(_ymag)+1;
+ qreal x = qreal(r.x());
+ qreal y = (r.y()-rulerHeight-d) / _ymag;
+ if (y < 0.0)
+ y = 0.0;
+ qreal h = (r.height()+d) / _ymag;
+ QPointF offset(x, wpos.y() / _ymag + keyHeight * 2 + y);
+
+ p.translate(0.0, qreal(rulerHeight));
+ p.scale(1.0, _ymag);
+ p.drawTiledPixmap(QRectF(x, y, qreal(r.width()), h), *octave, offset);
+
+ if (curPitch != -1) {
+ int y = pitch2y(curPitch);
+ QPixmap* pm;
+ switch(curPitch % 12) {
+ case 0:
+ case 5:
+ pm = mk3;
+ break;
+ case 2:
+ case 7:
+ case 9:
+ pm = mk2;
+ break;
+ case 4:
+ case 11:
+ pm = mk1;
+ break;
+ default:
+ pm = mk4;
+ break;
+ }
+ p.drawPixmap(0, y, *pm);
+ }
+ p.resetMatrix();
+ }
+
+//---------------------------------------------------------
+// paintPianorollHorizontalGrid
+//---------------------------------------------------------
+
+void TimeCanvas::paintPianorollHorizontalGrid(QPainter& p, QRect r)
+ {
+ qreal offset = rulerHeight - wpos.y();
+ qreal kh = keyHeight * _ymag;
+
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+ if (x1 < pianoWidth)
+ x1 = pianoWidth;
+ qreal y = kh + offset;
+ qreal y1 = r.y() - _ymag;
+ qreal y2 = y1 + r.height() + _ymag;
+ for (int key = 1; key < 75; ++key, y += kh) {
+ if (y < y1)
+ continue;
+ if (y > y2)
+ break;
+ switch (key % 7) {
+ case 2:
+ case 5:
+ p.setPen(QPen(Qt::lightGray));
+ break;
+ default:
+ p.setPen(QPen(Qt::gray));
+ break;
+ }
+ p.drawLine(QLineF(x1, y, x2, y));
+ }
+ }
+
+//---------------------------------------------------------
+// paintDrumeditHorizontalGrid
+//---------------------------------------------------------
+
+void TimeCanvas::paintDrumeditHorizontalGrid(QPainter& p, QRect r)
+ {
+ int offset = rulerHeight - wpos.y();
+
+ p.setPen(QPen(Qt::lightGray));
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+ if (x1 < drumWidth)
+ x1 = drumWidth;
+
+ p.setPen(QPen(Qt::lightGray));
+
+ int y = offset;
+ int y1 = r.y();
+ int y2 = y1 + r.height();
+ for (int i = 0; i < 128; ++i, y += drumHeight) {
+ if (y < y1)
+ continue;
+ if (y > y2)
+ break;
+ p.drawLine(QLine(x1, y, x2, y));
+ }
+ }
+
+//---------------------------------------------------------
+// addCtrlClicked
+//---------------------------------------------------------
+
+void TimeCanvas::addCtrlClicked()
+ {
+ addController();
+ }
+
+//---------------------------------------------------------
+// updateGeometry
+//---------------------------------------------------------
+
+void TimeCanvas::updateGeometry()
+ {
+ int wh = _widget->height();
+ int ww = _widget->width();
+ if (wh < ctrlHeight)
+ ctrlHeight = wh;
+
+ int x1 = 0;
+ if (type == TIME_CANVAS_PIANOROLL)
+ x1 = pianoWidth;
+ else if (type == TIME_CANVAS_DRUMEDIT)
+ x1 = drumWidth;
+ else if (type == TIME_CANVAS_WAVEEDIT)
+ x1 = waveWidth;
+ int y2 = wh - ctrlHeight;
+
+ rPanelA.setRect(0, rulerHeight, x1, wh - rulerHeight - ctrlHeight);
+ rPanelB.setRect(0, y2, x1, ctrlHeight);
+
+ int cw = ww - x1;
+ rRuler.setRect( x1, 0, cw, rulerHeight);
+ rCanvasA.setRect(x1, rulerHeight, cw, wh - rulerHeight - ctrlHeight);
+ rCanvasB.setRect(x1, y2, cw, ctrlHeight);
+
+ rButton.setRect(0, 0, rCanvasA.x(), rPanelA.y());
+
+ if (yRange > 0 && _yFit) {
+ _ymagMin = double(rCanvasA.height()) / double(yRange);
+ if (_ymag < _ymagMin)
+ _ymag = _ymagMin;
+ if (vmag)
+ vmag->setValue(lrint((_ymag-_ymagMin)*100.0/(_ymagMax-_ymagMin)));
+ }
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void TimeCanvas::setTool(int t)
+ {
+ if (_tool == Tool(t))
+ return;
+ _tool = Tool(t);
+ emit toolChanged(_tool);
+ setCursor();
+ }
+
+//---------------------------------------------------------
+// setCursor
+//---------------------------------------------------------
+
+void TimeCanvas::setCursor()
+ {
+ switch(_tool) {
+ case PencilTool:
+ widget()->setCursor(QCursor(QPixmap(":/xpm/pencil.xpm"), 4, 15));
+ break;
+ case RubberTool:
+ widget()->setCursor(QCursor(QPixmap(":/xpm/delete.xpm"), 4, 15));
+ break;
+ case GlueTool:
+ widget()->setCursor(QCursor(QPixmap(":/xpm/glue.xpm"), 4, 15));
+ break;
+ case CutTool:
+ widget()->setCursor(QCursor(QPixmap(":/xpm/cut.xpm"), 4, 15));
+ break;
+ case MuteTool:
+ widget()->setCursor(QCursor(QPixmap(":/xpm/editmute.xmp"), 4, 15));
+ break;
+ default:
+ widget()->setCursor(QCursor(Qt::ArrowCursor));
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// setCanvasBackground
+//---------------------------------------------------------
+
+void TimeCanvas::setCanvasBackground(const QColor& color)
+ {
+ canvasBackgroundPixmap = QPixmap();
+ canvasBackgroundColor = color;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// setCanvasBackground
+//---------------------------------------------------------
+
+void TimeCanvas::setCanvasBackground(const QPixmap& pm)
+ {
+ canvasBackgroundPixmap = pm;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// setYMagRange
+//---------------------------------------------------------
+
+void TimeCanvas::setYMagRange(double min, double max)
+ {
+ _ymagMin = min;
+ _ymagMax = max;
+ if (vmag)
+ vmag->setValue(lrint((_ymag-_ymagMin)*100.0/(_ymagMax-_ymagMin)));
+ }
+
+//---------------------------------------------------------
+// setVSize
+//---------------------------------------------------------
+
+void TimeCanvas::setVSize(int val)
+ {
+ if (yRange == val)
+ return;
+ yRange = val;
+ if (_yFit) {
+ _ymagMin = double(rCanvasA.height()) / double(yRange);
+ if (_ymag < _ymagMin)
+ _ymag = _ymagMin;
+ if (vmag)
+ vmag->setValue(lrint((_ymag-_ymagMin)*100.0/(_ymagMax-_ymagMin)));
+ }
+ updateScrollBars();
+ }
+
+//---------------------------------------------------------
+// s2xmag
+// nonlinear xmag behaviour, feels better
+//---------------------------------------------------------
+
+double TimeCanvas::s2xmag(int val)
+ {
+ val = 100 - val;
+ double f = 1.0 - log10(val * val + 1) * 0.25;
+ return (_xmagMax - _xmagMin) * f + _xmagMin;
+ }
+
+//---------------------------------------------------------
+// xmag2s
+//---------------------------------------------------------
+
+int TimeCanvas::xmag2s(double m)
+ {
+ m -= _xmagMin;
+ m /= (_xmagMax - _xmagMin);
+ double val = sqrt(exp10((1.0 - m) * 4.0)-1.0);
+ return lrint(100.0 - val);
+ }
+
+//---------------------------------------------------------
+// setPart
+//---------------------------------------------------------
+
+void TimeCanvas::setPart(const AL::Pos& p1, const AL::Pos& p2)
+ {
+ partPos1 = p1;
+ partPos2 = p2;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// setFont1
+//---------------------------------------------------------
+
+void TimeCanvas::setFont1(const QFont& f)
+ {
+ _font1 = f;
+ printf("TimeCanvas::setFont1\n");
+ }
+
+//---------------------------------------------------------
+// setFont2
+//---------------------------------------------------------
+
+void TimeCanvas::setFont2(const QFont& f)
+ {
+ _font2 = f;
+ }
+
+//---------------------------------------------------------
+// setFont3
+//---------------------------------------------------------
+
+void TimeCanvas::setFont3(const QFont& f)
+ {
+ _font3 = f;
+ }
+
diff --git a/muse_qt4_evolution/awl/tcanvas.h b/muse_qt4_evolution/awl/tcanvas.h
new file mode 100644
index 00000000..09b26b1d
--- /dev/null
+++ b/muse_qt4_evolution/awl/tcanvas.h
@@ -0,0 +1,293 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TCANVAS_H__
+#define __TCANVAS_H__
+
+#include "al/pos.h"
+#include "al/marker.h"
+
+#define MAP_OFFSET 20
+
+enum TimeCanvasType {
+ TIME_CANVAS, TIME_CANVAS_PIANOROLL, TIME_CANVAS_DRUMEDIT,
+ TIME_CANVAS_WAVEEDIT
+ };
+
+enum Tool {
+ PointerTool=1, PencilTool=2, RubberTool=4, CutTool=8,
+ GlueTool=16, QuantTool=32, DrawTool=64, MuteTool=128
+ };
+
+enum FollowMode {
+ FOLLOW_NO, FOLLOW_JUMP, FOLLOW_CONTINUOUS
+ };
+
+static const int rulerHeight = 28;
+static const int pianoWidth = 40;
+static const int waveWidth = 40;
+static const int drumWidth = 120;
+static const int drumHeight = 18;
+static const int keyHeight = 13;
+
+//---------------------------------------------------------
+// TimeCanvas
+//
+// Layout:
+// Button Ruler
+// panelA canvasA
+// panelB canvasB
+//
+// Pianoroll:
+// panelA -> keyboard
+//
+// Drumeditor:
+// panelA -> instrument list
+//
+//---------------------------------------------------------
+
+class TimeCanvas : public QFrame {
+ Q_OBJECT
+
+ Q_PROPERTY(QFont font1 READ font1 WRITE setFont1)
+ Q_PROPERTY(QFont font2 READ font2 WRITE setFont2)
+ Q_PROPERTY(QFont font3 READ font3 WRITE setFont3)
+
+ // I could not find out how to set the size of a font property with
+ // style sheets. As a workaround here are special "size" properties
+ // which could be set with style sheet command
+ // TimeCanvas { qproperty-fontSize1: 6 }
+
+ Q_PROPERTY(int fontSize1 READ fontSize1 WRITE setFontSize1 STORED false)
+ Q_PROPERTY(int fontSize2 READ fontSize2 WRITE setFontSize2 STORED false)
+ Q_PROPERTY(int fontSize3 READ fontSize3 WRITE setFontSize3 STORED false)
+
+ QFont _font1;
+ QFont _font2;
+ QFont _font3;
+
+ int yRange;
+ bool _yFit;
+ AL::Pos pos1; // time scroll range
+ AL::Pos pos2;
+
+ int metronomeRulerMag;
+
+ double _xmagMin, _xmagMax;
+ double _ymagMin, _ymagMax;
+
+ AL::TType _timeType;
+ AL::MarkerList* marker;
+ QScrollBar* hbar;
+ QScrollBar* vbar;
+ QSlider* vmag;
+ QSlider* hmag;
+ QToolButton* timeTypeButton;
+ QGridLayout* grid;
+ QColor canvasBackgroundColor;
+ QPixmap canvasBackgroundPixmap;
+ int dragType;
+ bool followPos;
+
+ //
+ // pianoroll variables
+ //
+ static QPixmap* octave;
+ static QPixmap* mk1;
+ static QPixmap* mk2;
+ static QPixmap* mk3;
+ static QPixmap* mk4;
+ QPushButton* addCtrlButton;
+
+ bool mouseInB;
+
+ void updateScrollBars();
+ void canvasPaintEvent(const QRect&, QPainter&);
+ void paintCanvas(QPainter&, const QRect&);
+ void paintMetronomRuler(QPainter&, const QRect&);
+ void paintClockRuler(QPainter&, const QRect&);
+ void initPianoroll();
+ void paintPiano(QPainter&, QRect);
+ void paintPianorollHorizontalGrid(QPainter&, QRect);
+ void paintDrumeditHorizontalGrid(QPainter&, QRect);
+ void updateGeometry();
+ double s2xmag(int val);
+ int xmag2s(double m);
+ void updateRulerMag();
+
+ protected:
+ TimeCanvasType type;
+ Tool _tool;
+ QRect rButton, rPanelA, rPanelB, rRuler, rCanvasA, rCanvasB;
+ AL::Pos pos[3];
+ bool showCursor;
+ AL::Pos cursor;
+
+ QWidget* _widget;
+
+ AL::Pos partPos1; // active time range for midi editors
+ AL::Pos partPos2;
+
+ QPoint wpos; // "widget" position
+ double _xmag, _ymag;
+
+ int ctrlHeight;
+ int curPitch;
+
+ int _raster;
+ int button;
+ Qt::KeyboardModifiers keyState;
+
+ bool eventFilter(QObject*, QEvent*);
+
+ virtual void paint(QPainter&, QRect) = 0;
+ virtual void mousePress(QMouseEvent*) {}
+ virtual void mouseMove(QPoint) {}
+ virtual void mouseRelease(QMouseEvent*) {}
+ virtual void mouseDoubleClick(QMouseEvent*) {}
+ virtual void paintDrumList(QPainter&, QRect) {}
+ virtual void layout() {}
+ virtual void enterB() {}
+ virtual void leaveB() {}
+
+ virtual void setCursor();
+
+ virtual void timeTypeChanged() {}
+ virtual void magChanged() {}
+
+ virtual void paintControllerCanvas(QPainter&, QRect) {}
+ virtual void paintControllerPanel(QPainter&, QRect) {}
+
+ virtual void dragEnter(QDragEnterEvent*) {}
+ virtual void drop(QDropEvent*) {}
+ virtual void dragMove(QDragMoveEvent*) {}
+ virtual void dragLeave(QDragLeaveEvent*) {}
+
+ virtual void addController() {}
+
+ virtual void keyPressEvent(QKeyEvent *e);
+ virtual void keyboardNavigate(QKeyEvent *) {}
+
+ // map logical coordinates to physical coordinates (pixel)
+ int mapx(int x) const;
+ int mapy(int y) const { return lrint(y * _ymag) - wpos.y(); }
+ int rmapx(int x) const { return lrint(x * _xmag); }
+ int rmapy(int y) const { return lrint(y * _ymag); }
+ QPoint map(const QPoint& p) const {
+ return QPoint(mapx(p.x()), mapy(p.y()));
+ }
+ QPoint rmap(const QPoint& p) const {
+ return QPoint(rmapx(p.x()), rmapy(p.y()));
+ }
+
+ // map physical coordinates (pixel) to logical coordinates
+ int mapxDev(int x) const;
+ int rmapxDev(int x) const { return lrint(x / _xmag); }
+ int mapyDev(int y) const {
+ int val = lrint((y + wpos.y()) / _ymag);
+ return val < 0 ? 0 : val;
+ }
+ QPoint mapDev(const QPoint& p) const {
+ return QPoint(mapxDev(p.x()), mapyDev(p.y()));
+ }
+
+ virtual int y2pitch(int y) const;
+ virtual int pitch2y(int pitch) const;
+ void setTimeType1(AL::TType t);
+ void setPart(const AL::Pos& p1, const AL::Pos& p2);
+
+ private slots:
+ void moveX(int);
+ void scaleX(int);
+ void scaleY(int);
+ void toggleTimeType();
+ void addCtrlClicked();
+
+ signals:
+ void posChanged(int, const AL::Pos&); // emitted from ruler
+ void cursorPos(const AL::Pos&, bool);
+ void contentsMoving(int, int);
+ void addMarker(const AL::Pos&);
+ void removeMarker(const AL::Pos&);
+ void pitchChanged(int);
+ void toolChanged(int);
+
+ public slots:
+ void setLocatorPos(int idx, const AL::Pos&, bool follow);
+ void setVSize(int);
+ virtual void setRaster(int);
+ void setYPos(int);
+ void moveY(int);
+ void setEndPos(const AL::Pos&);
+ void tempoChanged();
+ void setTool(int);
+ void setFollow(bool val) { followPos = val; }
+
+ public:
+ TimeCanvas(TimeCanvasType = TIME_CANVAS);
+ void setTimeRange(const AL::Pos&, const AL::Pos&);
+ void setMag(double, double);
+ double xmag() const { return _xmag; }
+ double ymag() const { return _ymag; }
+
+ void setYMagRange(double, double);
+ void setYFit(bool val) { _yFit = val; }
+
+ QPoint getWPos() const { return wpos; }
+ QWidget* widget() const { return _widget; }
+ void setWPos(const QPoint& p);
+ void setTimeType(AL::TType t);
+ AL::TType timeType() const { return _timeType; }
+ void setMarkerList(AL::MarkerList*);
+ void setCornerWidget(QWidget* w);
+ void resizeController(int);
+ int raster() const { return _raster; }
+
+ AL::Pos pix2pos(int x) const;
+ int pos2pix(const AL::Pos&) const;
+ QScrollBar* verticalScrollBar() const { return vbar; }
+ Tool tool() const { return _tool; }
+ void setCanvasBackground(const QColor& color);
+ void setCanvasBackground(const QPixmap& pm);
+
+ void updateCanvasB() { _widget->update(rCanvasB); }
+ void updateRuler() { _widget->update(rRuler); }
+
+ QFont font1() const { return _font1; }
+ QFont font2() const { return _font2; }
+ QFont font3() const { return _font3; }
+
+ void setFont1(const QFont& f);
+ void setFont2(const QFont& f);
+ void setFont3(const QFont& f);
+
+ int fontSize1() const { return _font1.pointSize(); }
+ int fontSize2() const { return _font2.pointSize(); }
+ int fontSize3() const { return _font3.pointSize(); }
+ void setFontSize1(int val) { _font1.setPointSize(val); }
+ void setFontSize2(int val) { _font2.setPointSize(val); }
+ void setFontSize3(int val) { _font3.setPointSize(val); }
+
+ static FollowMode followMode;
+ friend class CtrlEdit;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/tempoedit.cpp b/muse_qt4_evolution/awl/tempoedit.cpp
new file mode 100644
index 00000000..d7dbac81
--- /dev/null
+++ b/muse_qt4_evolution/awl/tempoedit.cpp
@@ -0,0 +1,88 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tempoedit.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// TempoEdit
+//---------------------------------------------------------
+
+TempoEdit::TempoEdit(QWidget* parent)
+ : QDoubleSpinBox(parent)
+ {
+ curVal = -1.0;
+ setSingleStep(1.0);
+ setRange(30.0, 600.0);
+ connect(this, SIGNAL(valueChanged(double)), SLOT(newValue(double)));
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize TempoEdit::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ int h = fm.height() + fw * 2;
+ int w = 2 + fm.width(QString("000.00")) + fw * 4 + 30;
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// newValue
+//---------------------------------------------------------
+
+void TempoEdit::newValue(double val)
+ {
+ if (val != curVal) {
+ curVal = val;
+ emit tempoChanged(tempo());
+ }
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void TempoEdit::setTempo(int val)
+ {
+ double d = 60000000.0/double(val);
+ if (d != curVal) {
+ curVal = d;
+ blockSignals(true);
+ setValue(d);
+ blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// tempo
+//---------------------------------------------------------
+
+int TempoEdit::tempo() const
+ {
+ return lrint(60000000.0/value());
+ }
+
+}
+
diff --git a/muse_qt4_evolution/awl/tempoedit.h b/muse_qt4_evolution/awl/tempoedit.h
new file mode 100644
index 00000000..af06221d
--- /dev/null
+++ b/muse_qt4_evolution/awl/tempoedit.h
@@ -0,0 +1,55 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLTEMPOEDIT_H__
+#define __AWLTEMPOEDIT_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// TempoEdit
+//---------------------------------------------------------
+
+class TempoEdit : public QDoubleSpinBox {
+ Q_OBJECT
+
+ double curVal;
+
+ protected:
+ QSize sizeHint() const;
+
+ private slots:
+ void newValue(double);
+
+ public slots:
+ void setTempo(int);
+
+ signals:
+ void tempoChanged(int);
+
+ public:
+ TempoEdit(QWidget*);
+ int tempo() const;
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/tempolabel.cpp b/muse_qt4_evolution/awl/tempolabel.cpp
new file mode 100644
index 00000000..3fcdec5c
--- /dev/null
+++ b/muse_qt4_evolution/awl/tempolabel.cpp
@@ -0,0 +1,72 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tempolabel.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// TempoLabel
+//---------------------------------------------------------
+
+TempoLabel::TempoLabel(QWidget* parent)
+ : QLabel(parent)
+ {
+ setFrameStyle(WinPanel | Sunken);
+ setLineWidth(2);
+ setMidLineWidth(3);
+ _value = 1.0;
+ setValue(0.0);
+ setIndent(3);
+ setMinimumSize(sizeHint());
+ }
+
+//---------------------------------------------------------
+// setVal
+//---------------------------------------------------------
+
+void TempoLabel::setValue(int val)
+ {
+ setValue(double(val/1000.0));
+ }
+
+void TempoLabel::setValue(double val)
+ {
+ if (val == _value)
+ return;
+ _value = val;
+ QString s = QString("%1").arg(val, 3, 'f', 2);
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize TempoLabel::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = 4;
+ int h = fm.height() + fw * 2;
+ int w = 6 + fm.width(QString("000.00")) + fw * 2; // 6=indent
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/tempolabel.h b/muse_qt4_evolution/awl/tempolabel.h
new file mode 100644
index 00000000..cf30444e
--- /dev/null
+++ b/muse_qt4_evolution/awl/tempolabel.h
@@ -0,0 +1,48 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLTEMPOLABEL_H__
+#define __AWLTEMPOLABEL_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// TempoLabel
+//---------------------------------------------------------
+
+class TempoLabel : public QLabel {
+ double _value;
+
+ Q_OBJECT
+
+ protected:
+ QSize sizeHint() const;
+
+ public slots:
+ void setValue(int);
+ void setValue(double);
+
+ public:
+ TempoLabel(QWidget*);
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/utils.cpp b/muse_qt4_evolution/awl/utils.cpp
new file mode 100644
index 00000000..29fe148f
--- /dev/null
+++ b/muse_qt4_evolution/awl/utils.cpp
@@ -0,0 +1,48 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "utils.h"
+
+static const char* vall[] = {
+ "c","c#","d","d#","e","f","f#","g","g#","a","a#","h"
+ };
+static const char* valu[] = {
+ "C","C#","D","D#","E","F","F#","G","G#","A","A#","H"
+ };
+
+namespace Awl {
+
+//---------------------------------------------------------
+// pitch2string
+//---------------------------------------------------------
+
+QString pitch2string(int v)
+ {
+ if (v < 0 || v > 127)
+ return QString("----");
+ int octave = (v / 12) - 2;
+ QString o;
+ o.sprintf("%d", octave);
+ int i = v % 12;
+ QString s(octave < 0 ? valu[i] : vall[i]);
+ return s + o;
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/utils.h b/muse_qt4_evolution/awl/utils.h
new file mode 100644
index 00000000..c97bc7bf
--- /dev/null
+++ b/muse_qt4_evolution/awl/utils.h
@@ -0,0 +1,29 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLUTILS_H__
+#define __AWLUTILS_H__
+
+namespace Awl {
+ extern QString pitch2string(int);
+ }
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/volentry.cpp b/muse_qt4_evolution/awl/volentry.cpp
new file mode 100644
index 00000000..23b38720
--- /dev/null
+++ b/muse_qt4_evolution/awl/volentry.cpp
@@ -0,0 +1,37 @@
+//=============================================================================
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "volentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolEntry
+//---------------------------------------------------------
+
+VolEntry::VolEntry(QWidget* parent)
+ : FloatEntry(parent)
+ {
+ setRange(-60.0f, 10.0f);
+ setSpecialText(tr("off"));
+ setPrecision(0);
+ setLog(true);
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/volentry.h b/muse_qt4_evolution/awl/volentry.h
new file mode 100644
index 00000000..0b51b945
--- /dev/null
+++ b/muse_qt4_evolution/awl/volentry.h
@@ -0,0 +1,41 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLVOLENTRY_H__
+#define __AWLVOLENTRY_H__
+
+#include "floatentry.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolEntry
+//---------------------------------------------------------
+
+class VolEntry : public FloatEntry {
+ Q_OBJECT
+
+ public:
+ VolEntry(QWidget* parent);
+ };
+
+}
+
+#endif
diff --git a/muse_qt4_evolution/awl/volknob.cpp b/muse_qt4_evolution/awl/volknob.cpp
new file mode 100644
index 00000000..da9a1e63
--- /dev/null
+++ b/muse_qt4_evolution/awl/volknob.cpp
@@ -0,0 +1,39 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "volknob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolKnob
+//---------------------------------------------------------
+
+VolKnob::VolKnob(QWidget* parent)
+ : Knob(parent)
+ {
+ setLog(true);
+ setRange(-60.0f, 10.0f);
+ _lineStep = .8f;
+ _pageStep = 3.0f;
+ }
+}
+
diff --git a/muse_qt4_evolution/awl/volknob.h b/muse_qt4_evolution/awl/volknob.h
new file mode 100644
index 00000000..7cec4335
--- /dev/null
+++ b/muse_qt4_evolution/awl/volknob.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLVOLKNOB_H__
+#define __AWLVOLKNOB_H__
+
+#include "knob.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolKnob
+//! Volume Knob entry widget
+//
+//! This widget implements knob with a logarithmic
+//! floating point scale used to adjust the volume
+//! in an audio mixer.
+//---------------------------------------------------------
+
+class VolKnob : public Knob {
+ Q_OBJECT
+
+ public:
+ VolKnob(QWidget* parent = 0);
+ };
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/awl/volslider.cpp b/muse_qt4_evolution/awl/volslider.cpp
new file mode 100644
index 00000000..59f1b8cf
--- /dev/null
+++ b/muse_qt4_evolution/awl/volslider.cpp
@@ -0,0 +1,85 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "volslider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolSlider
+//---------------------------------------------------------
+
+VolSlider::VolSlider(QWidget* parent)
+ : Slider(parent)
+ {
+ setLog(true);
+ setRange(-60.0f, 10.0f);
+ setScaleWidth(7);
+ setLineStep(.8f);
+ setPageStep(3.0f);
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void VolSlider::mouseDoubleClickEvent(QMouseEvent* ev)
+ {
+ if (ev->button() == Qt::RightButton)
+ _value = 0.0;
+ else
+ _value = _minValue;
+ valueChange();
+ update();
+ }
+
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void VolSlider::setValue(double val)
+ {
+ if (_log) {
+ if (val == 0.0f)
+ _value = _minValue;
+ else {
+ _value = fast_log10(val) * 20.0f;
+ if (_value < _minValue)
+ _value = _minValue;
+ }
+ }
+ else
+ _value = val;
+ update();
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+double VolSlider::value() const
+ {
+ return _log ? (_value <= _minValue) ? 0.0f : pow(10.0, _value*0.05f)
+ : _value;
+ }
+
+}
diff --git a/muse_qt4_evolution/awl/volslider.h b/muse_qt4_evolution/awl/volslider.h
new file mode 100644
index 00000000..22b4000f
--- /dev/null
+++ b/muse_qt4_evolution/awl/volslider.h
@@ -0,0 +1,57 @@
+//=============================================================================
+// Awl
+// Audio Widget Library
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AWLVOLSLIDER_H__
+#define __AWLVOLSLIDER_H__
+
+#include "slider.h"
+
+namespace Awl {
+
+//---------------------------------------------------------
+// VolSlider
+//! Volume Slider entry widget
+//
+//! This widget implements a slider with a logarithmic
+//! floating point scale used to adjust the volume
+//! in an audio mixer.
+//! Internal value represents gain as a logarythmic
+//! dB value.
+//---------------------------------------------------------
+
+class VolSlider : public Slider {
+ Q_OBJECT
+
+ protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+
+ public slots:
+ virtual void setValue(double v);
+
+ public:
+ VolSlider(QWidget* parent = 0);
+
+ virtual double value() const;
+ };
+
+}
+
+#endif
+
diff --git a/muse_qt4_evolution/cmake/TargetDoc.cmake b/muse_qt4_evolution/cmake/TargetDoc.cmake
new file mode 100644
index 00000000..e6afb583
--- /dev/null
+++ b/muse_qt4_evolution/cmake/TargetDoc.cmake
@@ -0,0 +1,125 @@
+# -helper macro to add a "doxy" target with CMake build system.
+# and configure Doxyfile.in to Doxyfile
+#
+# target "doxy" allows building the documentation with doxygen/dot on WIN32 and Linux
+# Creates .chm windows help file if MS HTML help workshop
+# (available from http://msdn.microsoft.com/workshop/author/htmlhelp)
+# is installed with its DLLs in PATH.
+#
+#
+# Please note, that the tools, e.g.:
+# doxygen, dot, latex, dvips, makeindex, gswin32, etc.
+# must be in path.
+#
+# Note about Visual Studio Projects:
+# MSVS hast its own path environment which may differ from the shell.
+# See "Menu Tools/Options/Projects/VC++ Directories" in VS 7.1
+#
+# author Jan Woetzel 2004-2006
+# www.mip.informatik.uni-kiel.de/~jw
+
+FIND_PACKAGE(Doxygen)
+
+IF (DOXYGEN)
+
+ MESSAGE("found Doxygen")
+
+ # click+jump in Emacs and Visual Studio (for Doxyfile) (jw)
+ IF (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")
+ SET(DOXY_WARN_FORMAT "\"$file($line) : $text \"")
+ ELSE (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")
+ SET(DOXY_WARN_FORMAT "\"$file:$line: $text \"")
+ ENDIF (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")
+
+ # we need latex for doxygen because of the formulas
+ FIND_PACKAGE(LATEX)
+ IF (NOT LATEX_COMPILER)
+ MESSAGE(STATUS "latex command LATEX_COMPILER not found but usually required. You will probably get warnings and user inetraction on doxy run.")
+ ENDIF (NOT LATEX_COMPILER)
+ IF (NOT MAKEINDEX_COMPILER)
+ MESSAGE(STATUS "makeindex command MAKEINDEX_COMPILER not found but usually required.")
+ ENDIF (NOT MAKEINDEX_COMPILER)
+ IF (NOT DVIPS_CONVERTER)
+ MESSAGE(STATUS "dvips command DVIPS_CONVERTER not found but usually required.")
+ ENDIF (NOT DVIPS_CONVERTER)
+
+ IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in")
+ MESSAGE(STATUS "configured ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in --> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+ @ONLY )
+ # use (configured) Doxyfile from (out of place) BUILD tree:
+ SET(DOXY_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in")
+ # use static hand-edited Doxyfile from SOURCE tree:
+ SET(DOXY_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
+ IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
+ MESSAGE(STATUS "WARNING: using existing ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile instead of configuring from Doxyfile.in file.")
+ ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
+ IF (EXISTS "${CMAKE_MODULE_PATH}/Doxyfile.in")
+ # using template Doxyfile.in
+ MESSAGE(STATUS "configured ${CMAKE_CMAKE_MODULE_PATH}/Doxyfile.in --> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ CONFIGURE_FILE(${CMAKE_MODULE_PATH}/Doxyfile.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+ @ONLY )
+ SET(DOXY_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ ELSE (EXISTS "${CMAKE_MODULE_PATH}/Doxyfile.in")
+ # failed completely...
+ MESSAGE(SEND_ERROR "Please create ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in (or Doxyfile as fallback)")
+ ENDIF(EXISTS "${CMAKE_MODULE_PATH}/Doxyfile.in")
+
+ ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
+ ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in")
+
+ ADD_CUSTOM_TARGET(doxy ${DOXYGEN} ${DOXY_CONFIG})
+
+ # create a windows help .chm file using hhc.exe
+ # HTMLHelp DLL must be in path!
+ # fallback: use hhw.exe interactively
+ IF (WIN32)
+ FIND_PACKAGE(HTMLHelp)
+ IF (HTML_HELP_COMPILER)
+ SET (TMP "${CMAKE_CURRENT_BINARY_DIR}\\Doc\\html\\index.hhp")
+ STRING(REGEX REPLACE "[/]" "\\\\" HHP_FILE ${TMP} )
+ # MESSAGE(SEND_ERROR "DBG HHP_FILE=${HHP_FILE}")
+ ADD_CUSTOM_TARGET(winhelp ${HTML_HELP_COMPILER} ${HHP_FILE})
+ ADD_DEPENDENCIES (winhelp doxy)
+
+ IF (NOT TARGET_DOC_SKIP_INSTALL)
+ # install windows help?
+ # determine useful name for output file
+ # should be project and version unique to allow installing
+ # multiple projects into one global directory
+ IF (EXISTS "${PROJECT_BINARY_DIR}/Doc/html/index.chm")
+ IF (PROJECT_NAME)
+ SET(OUT "${PROJECT_NAME}")
+ ELSE (PROJECT_NAME)
+ SET(OUT "Documentation") # default
+ ENDIF(PROJECT_NAME)
+ IF (${PROJECT_NAME}_VERSION_MAJOR)
+ SET(OUT "${OUT}-${${PROJECT_NAME}_VERSION_MAJOR}")
+ IF (${PROJECT_NAME}_VERSION_MINOR)
+ SET(OUT "${OUT}.${${PROJECT_NAME}_VERSION_MINOR}")
+ IF (${PROJECT_NAME}_VERSION_PATCH)
+ SET(OUT "${OUT}.${${PROJECT_NAME}_VERSION_PATCH}")
+ ENDIF(${PROJECT_NAME}_VERSION_PATCH)
+ ENDIF(${PROJECT_NAME}_VERSION_MINOR)
+ ENDIF(${PROJECT_NAME}_VERSION_MAJOR)
+ # keep suffix
+ SET(OUT "${OUT}.chm")
+
+ #MESSAGE("DBG ${PROJECT_BINARY_DIR}/Doc/html/index.chm \n${OUT}")
+ # create target used by install and package commands
+ INSTALL(FILES "${PROJECT_BINARY_DIR}/Doc/html/index.chm"
+ DESTINATION "doxy"
+ RENAME "${OUT}"
+ )
+ ENDIF(EXISTS "${PROJECT_BINARY_DIR}/Doc/html/index.chm")
+ ENDIF(NOT TARGET_DOC_SKIP_INSTALL)
+
+ ENDIF(HTML_HELP_COMPILER)
+ # MESSAGE(SEND_ERROR "HTML_HELP_COMPILER=${HTML_HELP_COMPILER}")
+ ENDIF (WIN32)
+ELSE(DOXYGEN)
+ MESSAGE("Doxygen not found")
+ENDIF(DOXYGEN)
diff --git a/muse_qt4_evolution/cmake/UsePkgConfig1.cmake b/muse_qt4_evolution/cmake/UsePkgConfig1.cmake
new file mode 100644
index 00000000..55654d98
--- /dev/null
+++ b/muse_qt4_evolution/cmake/UsePkgConfig1.cmake
@@ -0,0 +1,45 @@
+# - pkg-config module for CMake
+#
+# Defines the following macros:
+#
+# PKGCONFIG(package includedir libdir linkflags cflags)
+#
+# Calling PKGCONFIG will fill the desired information into the 4 given arguments,
+# e.g. PKGCONFIG(libart-2.0 LIBART_INCLUDE_DIR LIBART_LINK_DIR LIBART_LINK_FLAGS LIBART_CFLAGS)
+# if pkg-config was NOT found or the specified software package doesn't exist, the
+# variable will be empty when the function returns, otherwise they will contain the respective information
+#
+
+FIND_PROGRAM(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/bin /usr/local/bin )
+
+MACRO(PKGCONFIG _package _minVersion _include_DIR _link_DIR _link_FLAGS _cflags)
+# reset the variables at the beginning
+ SET(${_include_DIR})
+ SET(${_link_DIR})
+ SET(${_link_FLAGS})
+ SET(${_cflags})
+
+ # if pkg-config has been found
+ IF(PKGCONFIG_EXECUTABLE)
+
+ EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --atleast-version=${_minVersion} RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+# EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+
+ # and if the package of interest also exists for pkg-config, then get the information
+ IF(NOT _return_VALUE)
+
+ EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} )
+
+ EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} )
+
+ EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} )
+
+ EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} )
+
+ ENDIF(NOT _return_VALUE)
+
+ ENDIF(PKGCONFIG_EXECUTABLE)
+
+ENDMACRO(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags)
+
+MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE)
diff --git a/muse_qt4_evolution/config.h.in b/muse_qt4_evolution/config.h.in
new file mode 100644
index 00000000..7a856aa5
--- /dev/null
+++ b/muse_qt4_evolution/config.h.in
@@ -0,0 +1,29 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#cmakedefine DSSI_SUPPORT
+#cmakedefine VST_SUPPORT
+#cmakedefine USE_SSE
+#cmakedefine JACK103
+#cmakedefine JACK107
+
+#define INSTALL_NAME "${MusE_INSTALL_NAME}"
+#define INSTPREFIX "${CMAKE_INSTALL_PREFIX}"
+#define VERSION "${MusE_VERSION_FULL}"
diff --git a/muse_qt4_evolution/doc/README.de b/muse_qt4_evolution/doc/README.de
new file mode 100644
index 00000000..62aaaf20
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.de
@@ -0,0 +1,69 @@
+====================================================================
+ MusE --- Linux Music Editor
+====================================================================
+
+Guten Tag!
+dies ist MusE, der Open Source MIDI/Audio Sequencer.
+
+MusE steht unter der GNU General Public Licence (GPL).
+Für Einzelheiten siehe COPYING.
+
+,-----------------------------------------------------------------.
+| HINWEIS |
+|-----------------------------------------------------------------|
+| Viel Teile des Codes von MusE sind EXPERIMENTELL und können |
+| zu Programmabstürzen und wer weiß was sonst noch allem |
+| führen. |
+| SIE BENUTZEN DIESE SOFTWARE AUF EIGENES RISIKO! |
+`-----------------------------------------------------------------'
+
+ =============================
+ Voraussetzungen
+ =============================
+
+ - qt 3.2.0 oder neuer
+ ftp://ftp.trolltech.com/qt/source
+ Bitte mit "-thread" option compilieren.
+
+ - libsndfile 1.0.1 (aktuell ist 1.0.4)
+ http://www.zip.com.au/~erikd/libsndfile/
+
+ - JACK
+ http://jackit.sourceforge.net/
+ download:
+ http://jackit.sourceforge.net/download/
+
+ - fluidsynth-1.0.3 (the synti formerly known as "iiwusynth") von
+ http://savannah.nongnu.org/download/fluid
+
+ - Linux Kernel mit rtc (RealTimeClock) Treiber (device /dev/rtc)
+ ("low latency patches" für minimales timing-jitter wären fein)
+
+ - ALSA von http://www.alsa-project.org/
+ Version 0.9.x oder neuer
+
+ - gcc 3.x.x
+ (es muß der gleiche Compiler wie der zum compilieren der
+ QT-Libraries verwendet werden)
+
+ - natürlich: eine Soundkarte und/oder irgendwelche Midi Geräte
+
+ =============================
+ Kompilierung
+ =============================
+
+ - download source von http://lmuse.sourceforge.net/
+ - untar source:
+ tar xvofj muse-current-tar.bz2 </code>
+ - konfigurieren:
+ run "configure"
+ - kompilieren:
+ run "make all"
+ - installieren
+ als root, run "make install"
+ - Test
+
+====================================================================
+Aktuelle(re) Infos gibt es auf der MusE Homepage
+http://lmuse.sourceforge.net/
+
diff --git a/muse_qt4_evolution/doc/README.instruments b/muse_qt4_evolution/doc/README.instruments
new file mode 100644
index 00000000..a2693b4e
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.instruments
@@ -0,0 +1,108 @@
+================================================
+ MusE loadable Midi Instrument Definitions
+ (as of 10.09.2003) MusE 0.7.0
+================================================
+
+ - File Extension ".idf"
+ - searched in Subdirectory "instruments"
+ (/usr/share/muse/instruments on my system)
+
+ All found instrument definitions are presented by MusE
+ in Config->MidiPorts in Pulldown in column "Instrument".
+
+-------------------------------------------------
+ Example of Instrument Definition File:
+-------------------------------------------------
+
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GM">
+ <Init>
+ ...MusE event list which initializes instrument
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ ...
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ </PatchGroup>
+ ...
+ <Controller name="Brightness">
+ <n>0x4a</n>
+ <min>0</min>
+ <max>127</max>
+ <init>0</init>
+ </Controller>
+ ...
+ </MidiInstrument>
+ </muse>
+
+-------------------------------------------------
+ Notes
+-------------------------------------------------
+
+ (1) PatchGroups are not mandatory; its valid to write:
+
+ <MidiInstrument name="GM">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ ...
+ </MidiInstrument>
+
+ (2) An "Instrument Definition File" can define more than on
+ Instrument, but it is recommended to use one file for
+ one instrument
+
+ (3) the "prog" parameter in a "Patch" is mandatory. Missing
+ "hbank" or "lbank" are treated as "don't care".
+ Missing "drum" is treated as drum="0".
+
+ A XG-Patch looks like:
+ <Patch name="Electro" drum="1" hbank="127" lbank="0" prog="24"/>
+
+ (5) A patch can be associated with a "mode" with one of
+
+ 1 - GM
+ 2 - GS
+ 4 - XG
+
+ Example:
+ <Patch name="Electro" mode="4" drum="1" hbank="127" lbank="0" prog="24"/>
+
+ Mode id's can be ore'd together for patches which are valid
+ for more than one mode:
+
+ <Patch name="Grand Piano" mode=7" hbank="0" lbank="0" prog="0"/>
+
+ (4) example for MusE event (Sysex "XG-On"):
+
+ <event tick="0" type="5" datalen="7">
+ 43 10 4c 00 00 7e 00
+ </event>
+
+ (5) <Init> ... </Init> part can be omitted
+
+
+ (6) Controller have the following porperties:
+
+ name: arbitrary unique (short) string describing the controller
+ n: controller number, defines also the controller type:
+ values from 0x0 - 0x7f are 7Bit controller
+ values from 0x1000 - 0x1ffff are 14 bit controller with
+ MSB/LSB value pairs
+ values from 0x20000 - 0x2ffff are RPN's
+ values from 0x30000 - 0x3ffff are NRPN's
+
+ min: minimum value for controller
+ max: maximum value for controller
+ init: reset value for controller; when controller value is
+ undefined after instrument reset, use the ''undefined''
+ value 0x10000
+
+ the min/max/init values can be ommited
+
diff --git a/muse_qt4_evolution/doc/README.ladspaguis b/muse_qt4_evolution/doc/README.ladspaguis
new file mode 100644
index 00000000..5c77be26
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.ladspaguis
@@ -0,0 +1,63 @@
+MusE can create LADSPA GUI's (graphical user interfaces) from
+Qt designer *.ui files at runtime.
+This allows a user to create or modify customized LADSPA guis without
+recompiling MusE.
+
+======================
+ Installation
+=====================
+
+Copy the file muse/awl/libawlplugin.so and muse/awl/libawlplugin_debug.so
+into a directory were Qt (designer) can find it.
+
+Example:
+ if you installed Qt in /usr/qt4:
+ su -c "cp -af awlplugin.so /usr/qt4/plugins/designer"
+Check:
+ After starting the Qt designer you see all MusE specific widgets
+ in the widget box titled "MusE Awl Widgets".
+ If you cannot find any MusE widgets, designer did not find the
+ muse shared libs.
+ The MusE shared libs must have a signature qt designer understands.
+ If the signature is wrong, qt designer silently ignores the libs.
+
+======================
+ Environment
+======================
+
+Naming:
+ The Qt designer files are named after the LADSPA plugin ID.
+ Example: the "freeverb" plugin has the id "1050". A gui for
+ freeverb has to be named "1050.ui".
+ The plugin ID is shown in the MusE plugin browser.
+
+Path:
+ MusE looks for *ui files at (museglobalshare)/plugins/.
+ If you installed MusE at "/usr" (configured with --prefix=/usr)
+ MusE looks at "/usr/share/muse/plugins" for *ui files.
+
+======================
+ Creating *.ui file
+======================
+
+The association between LADSPA plugin parameters and Qt-Widgets is
+done by name. All input widgets which manipulate a LADSPA parameter
+must have a name starting with the letter "P".
+The "id" property of every widget must be set to the parameter index
+of the plugin,
+One parameter can be manipulated with more than one widgets.
+
+ Example:
+ A "Slider" widget which manipulates the 3th parameter of a
+ plugin has the name "Pslider" and the "id" property has a
+ value of "3".
+
+Supported Widgets:
+ "AwlSlider" slider for float values
+ "AwlFloatEntry" entry for float values
+ "AwlCheckbox" to manipulate a on/off LADSPA parameter
+ "AwlComboBox" select from a list of named values; sets
+ integer LADSPA values
+
+(for more hints please look at the example *.ui files)
+
diff --git a/muse_qt4_evolution/doc/README.realtime b/muse_qt4_evolution/doc/README.realtime
new file mode 100644
index 00000000..7e992261
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.realtime
@@ -0,0 +1,19 @@
+For reliable operation MusE needs "realtime priviledges".
+
+Kernel >= 2.6.12
+ - load the set_rtlimits utility from:
+ http://www.physics.adelaide.edu.au/~jwoithe
+ - compile & install
+
+ - create an audio group (if you dont have one already):
+ groupadd audio
+
+ - add yourself to the audio group
+
+ - create an entry in "/etc/set_rtlimits.conf":
+
+ @audio /home/ws/projects/muse/muse/muse/muse -1 90
+
+ - start MusE with
+ set_rtlimits -r 60 /usr/local/bin/muse
+
diff --git a/muse_qt4_evolution/doc/README.shortcuts b/muse_qt4_evolution/doc/README.shortcuts
new file mode 100644
index 00000000..48de30f3
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.shortcuts
@@ -0,0 +1,159 @@
+From: Frank Neumann
+Subject: [MusE] Keyboard shortcut list
+
+Hi all,
+while reading some MusE source code during the last weeks, I made a list
+of all keyboard shortcuts I found in there. I thought other might find
+this useful, so I am posting this here. There are some "?" spots in
+there where I am not perfectly sure if something is correct or really
+works the way it should, so comments or corrections are welcome. A few
+keys are also result of my first ever cvs commit to Muse :-).
+
+Frank
+
+2004-04-xx:
+ Also changed Ctrl+Shift+A to Select None.
+
+2004-01-08:
+ Changed Ctrl+A to Select All in Arranger for the sake of uniformity. (ML)
+
+2003-10-26:
+ Added Alt+L shortcut in drumeditor to set fixed length on drumnotes
+ according to drummap (Mathias Lundgren)
+ 2003-10-19:
+ In Arranger, Part Canvas:
+ added Alt+P shortcut in to move locators to part boundaries
+ Crsr Up / Crsr Down to move to nearest part on track above/below
+ in current window.
+
+04.01.2003:
+ - (ws) added new Delete keys in pianoroll and drumedit
+
+<cut here>
+
+Shortcut keys in Muse, as of 0.6.0pre5:
+
+Arranger:
+=========
+Undo: Ctrl-Z
+Redo: Ctrl-Y
+New: Ctrl-N
+Open: Ctrl-O
+Save: Ctrl-S
+Open PianoRoll Editor: Ctrl-E
+Open Score Editor: Ctrl-R
+
+Open Recent: Ctrl-S (? collides with "Save"?)
+Config Printer: Ctrl-P
+Quit: Ctrl-Q
+
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste: Ctrl-V
+Delete Track: Delete
+Add Track: Ctrl-J
+Select all: Ctrl-A
+Deselect All Parts: Ctrl-B
+Open Drums Editor: Ctrl-D
+Open List Editor: Ctrl-L
+Open Graphical Mastertrack Editor: Ctrl-M
+Open List Mastertrack Editor: Shift-Ctrl-M
+Open MIDI Transform Editor: Ctrl-T
+Open Transport Panel: F11
+Open Bigtime Window: F12
+Open Help Browser: F1
+Start "What's This" Mode: Shift-F1
+Toggle Metronome Click: C
+
+Stop Playback / Rewind: Space
+Stop Playback: Insert
+Start Playback: Enter
+Go to left Marker: End (Keypad)
+Go to right marker: CursorDown (Keypad)
+Toggle Loop Mode: / (Keypad)
+Start Recording: * (Keypad)
+
+
+Arranger, Part Canvas:
+======================
+Cut: Ctrl-X
+Copy: Ctrl-C
+Select previous/next part in this track: Crsr-Left / Crsr-Right
+Remove Part: Delete
+
+
+Arranger, Track List Canvas:
+============================
+Move to previous track: Crsr-Up
+Move to next track: Crsr-Down
+
+
+Pianoedit:
+==========
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste: Ctrl-V
+Select All: Ctrl-A (just added in CVS)
+Deselect All: Ctrl-Shift-A (just added in CVS)
+Invertion Selection: Ctrl-I (just added in CVS)
+Delete selected Events: Delete
+
+Insert Notes at locator position: Shift-Crsr-Right
+Move Locator right: Crsr-Right
+Move Locator left: Crsr-Left
+Delete under Locator: Delete (KP?), "collects" notes left of locator
+Set Grid Snap/Quantizer to 1/1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64:
+1/2/3/4/5/6/7
+Toggle "triolic" flag of Grid Snap/Quantizer: T
+Toggle "punctuated" flag of Grid Snap/Quantizer: .
+Set Grid Snap/Quantizer to "first value in list"(?): ,
+Open "Event Color" dialog: e (just fixed in CVS)
+
+
+Drumedit:
+=========
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste:Ctrl-V
+Load Drummap: Ctrl-O
+Save Drummap: Ctrl-S
+Set fixed length: Alt-L (Sets length on selected events to the length specified in the drummap)
+
+Delete selected Events: Delete
+
+Listedit:
+=========
+Insert Note: Ctrl-N
+Insert SysEx: Ctrl-S
+Insert Ctrl: Ctrl-T
+Insert Pitch: Ctrl-E
+Insert Channel Aftertouch: Ctrl-A
+Insert Key Aftertouch: Ctrl-P
+Delete Events: Delete
+
+
+Score Edit:
+===========
+When entering Lyrics:
+Move to next Note's Lyrics: Crsr-Left (problems when at beginning/end of
+notes)
+Move to previous Note' Lyrics: Crsr-Right
+Cancel (?) entering notes: Escape
+Remove last character from lyrics: Backspace or Delete
+End entering Lyrics: Enter
+
+
+Help Browser:
+=============
+New Window: Alt-N
+Open File: Alt-O
+Print: Alt-P
+Close: Alt-Q
+Exit: Alt-X
+
+
+Transport:
+==========
+Toggle metronome Click: C
+Toggle Loop Mode: / (Keypad)
+
diff --git a/muse_qt4_evolution/doc/README.softsynth b/muse_qt4_evolution/doc/README.softsynth
new file mode 100644
index 00000000..e3201ff2
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.softsynth
@@ -0,0 +1,86 @@
+=============================================================
+ Short instructions to get the soft
+ synthesizer up and running
+=============================================================
+
+1. Compile and install MusE
+
+3. Run MusE from an xterm with Option "-D";
+ look at the debug output in the xterm; you should see something
+ like:
+
+ 3 soft synth found
+ found soft synth <fluid> <fluid soft synth>
+ found soft synth <organ> <organ soft synth>
+ found soft synth <S1> <organ soft synth>
+
+
+4. Configure Software Synthesizer
+
+ Open Settings->MidiPorts/SoftSynth.
+
+ - select a software synthesizer
+ - press "Add Instance" to create an istance of this
+ synthesizer; the synthi shows up in the list
+ of instances with a unique name
+
+5. Configure Midi Port
+
+ To use the synthesizer instance you must
+ connect it to a MusE midi port:
+
+ - click into the "Device Name" column of an empty midi port
+ (Device Name == "none")
+ - select the synthesizer from the dropdown menu.
+
+ This connects the synthesizer to the selected midi port.
+ The instrument type is automatically set.
+
+6. Open the Audio Mixer
+
+ You see a new mixer strip of type "Synthi" and the name
+ of the new created synthesizer instance.
+
+ Route the audio output of this strip to "Output".
+ (per default the synthesizer is routed to the first Output strip)
+
+7. Now you are ready to play with the "organ" synthesizer
+
+ - create midi track
+ - set the midi port to the synthesizer port
+ - click the "R" column in the tracklist to enable "Recording"
+
+8. Optional: open Configure->MidiPorts and click in column GUI
+ to show a GUI for the synthesizer instance.
+ There is no gui available for the S1 synth.
+ The iiwu gui enables you to enter a different sound font.
+ The organ gui has some "draw bars" to let you play with
+ sounds in real time.
+
+These are the software synthesizers currently available:
+
+ - S1 a simple sythesizer skeleton as a guide for all who
+ want to code their own one:
+ - only one tone at a time
+ - simple sinus wave form
+ - no gui
+ The synthi may be used as a metronome.
+
+ - organ, an adapted version of the LADSPA plugin
+ "Organ - Additive Organ Synthesizer Voice" from
+ David A. Bartold
+
+ "organ" implements a gui connected bidirectional
+ to the synth via stdin/stdout
+
+ - fluid, is the adapted version of Peter Hanappe´s
+ sample based fluid synthesizer (formerly known as iiwu)
+ - loadable sound fonts
+ - multi timbral
+ - 128 voices
+ - simple gui lets you load a different sound font
+ Fluid loads a default sound font determined by the
+ environment variable "DEFAULT_SOUNDFONT".
+
+
+
diff --git a/muse_qt4_evolution/doc/README.translate b/muse_qt4_evolution/doc/README.translate
new file mode 100644
index 00000000..b2189929
--- /dev/null
+++ b/muse_qt4_evolution/doc/README.translate
@@ -0,0 +1,57 @@
+Internationalisation
+
+If you want to contribute a translation the following hints
+may be of help to you:
+
+
+Step 1:
+ enter the MusE directory and edit the
+ file "muse.pro"
+
+ Append a new target file name at "TRANSLATIONS"
+ e.g. change
+ TRANSLATIONS = share/locale/muse_de.ts
+ into
+ TRANSLATIONS = share/locale/muse_de.ts \
+ share/locale/muse_fr.ts
+ if you want to generate a french MusE version.
+
+Step 2:
+ start the Qt-Program "lupdate"
+
+ lupdate muse.pro
+
+ Maybe "lupdate" is not in your PATH and you must
+ specify the complete pathname "lupdate"
+ Example:
+ /usr/lib/qt42/bin/lupdate muse.pro
+
+ This generates the file "locale/muse_fr.ts".
+
+Step 3:
+ Edit "share/locale/muse_fr.ts" manually or use the Qt "linguist" tool:
+
+ cd share/locale; linguist muse_fr.ts
+
+Step 4:
+ start the Qt program "lrelease"
+
+ lrelease muse.pro
+
+ This generates all *.qm files in share/locale
+
+Step 5:
+ install the *.qm files: as superuser start "make install"
+
+
+Step 6:
+ Test:
+ set the environment variable LANG to the desired
+ Language:
+ export LC_ALL=fr
+
+ Start MusE:
+ muse
+
+
+
diff --git a/muse_qt4_evolution/doc/dimpl.odt b/muse_qt4_evolution/doc/dimpl.odt
new file mode 100644
index 00000000..e62ccd90
--- /dev/null
+++ b/muse_qt4_evolution/doc/dimpl.odt
Binary files differ
diff --git a/muse_qt4_evolution/doc/manual-de.odt b/muse_qt4_evolution/doc/manual-de.odt
new file mode 100644
index 00000000..1a8fb669
--- /dev/null
+++ b/muse_qt4_evolution/doc/manual-de.odt
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/main0.png b/muse_qt4_evolution/doc/pics/main0.png
new file mode 100644
index 00000000..2d417bb6
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/main0.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/main1.png b/muse_qt4_evolution/doc/pics/main1.png
new file mode 100644
index 00000000..283eaab5
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/main1.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/main2.png b/muse_qt4_evolution/doc/pics/main2.png
new file mode 100644
index 00000000..11008143
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/main2.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/mixer1.png b/muse_qt4_evolution/doc/pics/mixer1.png
new file mode 100644
index 00000000..709bd83d
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/mixer1.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/pianoroll1.png b/muse_qt4_evolution/doc/pics/pianoroll1.png
new file mode 100644
index 00000000..618b71e3
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/pianoroll1.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/pianoroll2.png b/muse_qt4_evolution/doc/pics/pianoroll2.png
new file mode 100644
index 00000000..699d1edb
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/pianoroll2.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/select_project.png b/muse_qt4_evolution/doc/pics/select_project.png
new file mode 100644
index 00000000..aed3ea0a
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/select_project.png
Binary files differ
diff --git a/muse_qt4_evolution/doc/pics/select_template.png b/muse_qt4_evolution/doc/pics/select_template.png
new file mode 100644
index 00000000..78831d61
--- /dev/null
+++ b/muse_qt4_evolution/doc/pics/select_template.png
Binary files differ
diff --git a/muse_qt4_evolution/grepmidi/CMakeLists.txt b/muse_qt4_evolution/grepmidi/CMakeLists.txt
new file mode 100644
index 00000000..55084217
--- /dev/null
+++ b/muse_qt4_evolution/grepmidi/CMakeLists.txt
@@ -0,0 +1,24 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_executable ( grepmidi grepmidi.cpp )
+
+install_targets ( /bin grepmidi )
+
diff --git a/muse_qt4_evolution/grepmidi/grepmidi.cpp b/muse_qt4_evolution/grepmidi/grepmidi.cpp
new file mode 100644
index 00000000..5e8a4f62
--- /dev/null
+++ b/muse_qt4_evolution/grepmidi/grepmidi.cpp
@@ -0,0 +1,348 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: grepmidi.cpp,v 1.1.1.1 2003/10/27 18:57:02 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+#define XCHG_SHORT(x) ((((x)&0xFF)<<8) | (((x)>>8)&0xFF))
+#ifdef __i486__
+#define XCHG_LONG(x) \
+ ({ int __value; \
+ asm ("bswap %1; movl %1,%0" : "=g" (__value) : "r" (x)); \
+ __value; })
+#else
+#define XCHG_LONG(x) ((((x)&0xFF)<<24) | \
+ (((x)&0xFF00)<<8) | \
+ (((x)&0xFF0000)>>8) | \
+ (((x)>>24)&0xFF))
+#endif
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define BE_SHORT(x) XCHG_SHORT(x)
+#define BE_LONG(x) XCHG_LONG(x)
+#else
+#define BE_SHORT(x) x
+#define BE_LONG(x) x
+#endif
+
+
+int cpos;
+bool printName = false;
+char* curName;
+
+//---------------------------------------------------------
+// readLong
+//---------------------------------------------------------
+
+int readLong(FILE* f)
+ {
+ int format;
+ if (fread(&format, 4, 1, f) != 1) {
+ printf("read long failed\n");
+ exit(1);
+ }
+ cpos += 4;
+ return BE_LONG(format);
+ }
+
+//---------------------------------------------------------
+// readShort
+//---------------------------------------------------------
+
+int readShort(FILE* f)
+ {
+ short format;
+ if (fread(&format, 2, 1, f) != 1) {
+ printf("read short failed\n");
+ exit(1);
+ }
+ cpos += 2;
+ return BE_SHORT(format);
+ }
+
+/*---------------------------------------------------------
+ * getvl
+ * Read variable-length number (7 bits per byte, MSB first)
+ *---------------------------------------------------------*/
+
+int getvl(FILE* f)
+ {
+ int l = 0;
+ for (int i = 0;i < 8; i++) {
+ int c = getc(f);
+ ++cpos;
+ if (c == EOF)
+ break;
+ c &= 0xff;
+ l += (c & 0x7f);
+ if (!(c & 0x80))
+ return l;
+ l <<= 7;
+ }
+ printf("Variable Len too long\n");
+ return -1;
+ }
+
+//---------------------------------------------------------
+// skip
+//---------------------------------------------------------
+
+void skip(FILE* f, int n)
+ {
+ while (n--) {
+ ++cpos;
+ if (getc(f) == EOF) {
+ printf("skip %d failed\n", n);
+ exit(1);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// grepTrack
+//---------------------------------------------------------
+
+int grepTrack(FILE* f, int trackno)
+ {
+// printf("TRACK %d\n", trackno);
+ int mtype, mlen;
+ int b;
+ char* buffer;
+
+ char tmp[4];
+ fread(tmp, 4, 1, f);
+ if (memcmp(tmp, "MTrk", 4))
+ return -5;
+ int len = readLong(f);
+ int endpos = cpos + len;
+ int runstate = -1;
+
+ for (;;) {
+/* int nclick = */ getvl(f);
+ int me = getc(f);
+ ++cpos;
+ int a = -1;
+ if ((me & 0x80) == 0) {
+ if (runstate == -1)
+ return -6;
+ a = me;
+ me = runstate;
+ }
+ switch (me & 0xf0) {
+ case 0x80:
+ case 0x90:
+ case 0xa0:
+ case 0xb0:
+ case 0xe0:
+ b = getc(f);
+ ++cpos;
+ case 0xc0:
+ case 0xd0:
+ if (a == -1) {
+ a = getc(f);
+ ++cpos;
+ }
+ runstate = me;
+ break;
+ case 0xf0:
+ switch(me & 0xf) {
+ case 0: // SYSEX
+ mlen = getvl(f);
+ skip(f, mlen);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ if (printName)
+ printf("%s: ", curName);
+ printf("unknown Message\n");
+ break;
+ case 7: // EOX
+ case 8: // timing clock
+ case 9: // undefined
+ case 0xa: // start
+ case 0xb: // continue
+ case 0xc: // stop
+ case 0xd: // undefined
+ case 0xe: // active sensing
+ if (printName)
+ printf("%s: ", curName);
+ printf("RT Message??\n");
+ break;
+ case 0xf: // META
+ mtype = getc(f);
+ ++cpos;
+ mlen = getvl(f);
+ buffer = new char[mlen+1];
+ if (mlen) {
+ if (fread(buffer, mlen, 1, f) != 1) {
+ if (printName)
+ printf("%s: ", curName);
+ printf("---meta %d too short (%d)\n", mtype, mlen);
+ exit(1);
+ }
+ cpos += mlen;
+ }
+ switch(mtype) {
+ case 0x2f:
+ delete buffer;
+ goto end;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6: // Marker
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ buffer[mlen] = 0;
+ if (printName)
+ printf("%s: ", curName);
+ printf("%02d Meta %0d: <%s>\n", trackno, mtype, buffer);
+ default:
+ break;
+ }
+ delete buffer;
+ break;
+ }
+ break;
+ }
+ }
+end:
+ if (cpos != endpos) {
+ if (printName)
+ printf("%s: ", curName);
+ printf(" %d zu kurz\n", cpos - endpos);
+ }
+ if (endpos-cpos > 0)
+ skip(f, endpos-cpos);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// grep
+//---------------------------------------------------------
+
+int grep(FILE* f)
+ {
+ char tmp[4];
+
+ fread(tmp, 4, 1, f);
+ if (memcmp(tmp, "MThd", 4) != 0)
+ return -2;
+ int len = readLong(f);
+ if (len < 6)
+ return -3;
+ cpos += 8;
+ int format = readShort(f);
+ int ntracks = readShort(f);
+ readShort(f); // division
+ if (len > 6)
+ skip(f, len-6); /* skip the excess */
+ int rv = 0;
+ switch (format) {
+ case 0: rv = grepTrack(f, 0); break;
+ case 1:
+ for (int i = 0; i < ntracks; i++) {
+ rv = grepTrack(f, i);
+ if (rv != 0)
+ return rv;
+ }
+ break;
+ default:
+ return -4;
+ }
+
+ return 0;
+ }
+
+//---------------------------------------------------------
+// grep
+//---------------------------------------------------------
+
+int grepMidi(char* name)
+ {
+ curName = name;
+ char*p = strrchr(name, '.');
+ FILE* f;
+ if (p && strcmp(p, ".gz") == 0) {
+ char buffer[512];
+ sprintf(buffer, "gunzip < %s", name);
+ f = popen(buffer, "r");
+ }
+ else {
+ p = 0;
+ f = fopen(name, "r");
+ }
+ if (f == 0)
+ return -1;
+ cpos = 0;
+ int rc = grep(f);
+ if (p)
+ pclose(f);
+ else
+ fclose(f);
+ return rc;
+ }
+
+//---------------------------------------------------------
+// usage
+//---------------------------------------------------------
+
+void usage(const char* fname, const char* txt)
+ {
+ fprintf(stderr, "%s: %s\n", fname, txt);
+// fprintf(stderr, "usage:\n");
+ }
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int argc, char* argv[])
+ {
+ int c;
+ while ((c = getopt(argc, argv, "f")) != EOF) {
+ switch (c) {
+ case 'f': printName = true; break;
+ default: usage(argv[0], "bad argument"); return -1;
+ }
+ }
+ argc -= optind;
+ ++argc;
+ char* p = 0;
+ for (int i = 1; i < argc; ++i) {
+ switch (grepMidi(argv[i])) {
+ case 0: break;
+ case -1: p = "not found"; break;
+ case -2: p = "no 'MThd': not a midi file"; break;
+ case -3: p = "file too short"; break;
+ case -4: p = "bad file type"; break;
+ case -5: p = "no 'MTrk': not a midi file"; break;
+ case -6: p = "no running state"; break;
+ default:
+ printf("was??\n");
+ return -1;
+ }
+ }
+ if (p)
+ printf("Error: <%s>\n", p);
+ return 0;
+ }
diff --git a/muse_qt4_evolution/midiplugins/CMakeLists.txt b/muse_qt4_evolution/midiplugins/CMakeLists.txt
new file mode 100644
index 00000000..465e1983
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/CMakeLists.txt
@@ -0,0 +1,36 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+subdirs(
+ libmidiplugin
+ splitlayer
+ filter
+ metronom
+ transform
+ trigg
+ dump
+ drumglue
+ )
+
+set ( CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SHARED -fPIC"
+ )
+
+set ( CMAKE_LDD_FLAGS -module -avoid-version )
diff --git a/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt b/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt
new file mode 100644
index 00000000..f824c54b
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt
@@ -0,0 +1,50 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2008 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( drumglue_mocs drumgluegui.h globalinstrumentview.h outputinstrumentview.h )
+QT4_WRAP_UI ( drumglue_uis drumgluegui.ui globalinstrumentview.ui outputinstrumentview.ui )
+
+add_library ( drumglue SHARED
+ drumglue.cpp
+ drumgluegui.cpp
+ drumgluegui.h
+ globalinstrumentview.cpp
+ globalinstrumentview.h
+ outputinstrumentview.cpp
+ outputinstrumentview.h
+ ${drumglue_mocs}
+ ${drumglue_uis}
+ )
+
+target_link_libraries( drumglue
+ midiplugin awl
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target name.so instead of
+# libname.so
+# - use precompiled header files
+set_target_properties ( drumglue
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ drumglue )
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp b/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp
new file mode 100644
index 00000000..7a9b6ed2
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp
@@ -0,0 +1,250 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// drumglue - filter
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#include "drumgluegui.h"
+#include "drumglue.h"
+#include "midi.h"
+#include "midievent.h"
+
+
+
+//---------------------------------------------------------
+// DrumInstrument - get next index
+// - next output instrument to use
+//---------------------------------------------------------
+int DrumInstrument::getNextIndex(int /*velocity*/)
+{
+ // for now we simply do a round robin
+ //
+ // future improvements are to keep track of
+ // the time since the last hit and the
+ // weight set for each instrument.
+ // the incoming velocity should be checked that it's in range
+ if (outputInstruments.size() == 0)
+ return -1;
+
+ if (lastOutputIndex+1 > outputInstruments.size()-1)
+ return 0;
+ else
+ return lastOutputIndex+1;
+}
+
+//---------------------------------------------------------
+// DrumInstrument - get velocity
+// - velocity value to use
+//---------------------------------------------------------
+int DrumInstrument::getVelocity(int /*index*/, int velocity)
+{
+ // for now we just return the same velocity
+ // future improvements are to allow for some
+ return velocity;
+}
+
+
+//---------------------------------------------------------
+// DrumGlue - constructor
+//---------------------------------------------------------
+DrumGlue::DrumGlue(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ gui = 0;
+ saveData = NULL;
+ }
+
+//---------------------------------------------------------
+// DrumGlue - destructor
+//---------------------------------------------------------
+DrumGlue::~DrumGlue()
+ {
+ if (gui)
+ delete gui;
+ if (saveData)
+ delete saveData;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool DrumGlue::init()
+ {
+ gui = new DrumGlueGui(this, 0);
+ gui->setWindowTitle("MusE: "+QString(name()));
+ gui->show();
+ return false;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void DrumGlue::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void DrumGlue::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void DrumGlue::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol)
+ {
+
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ MidiEvent temp=*i;
+ if (temp.isNote() && !temp.isNoteOff())
+ {
+ foreach(DrumInstrument *di, drumInstruments) {
+ if (temp.dataA() == di->inKey) {
+ int inVelocity = temp.dataB();
+ int instrumentIdx = di->getNextIndex(inVelocity);
+ if (instrumentIdx==-1) {
+ // no instrument defined, yet, skip it
+ break;
+ }
+ int outKey = di->outputInstruments[instrumentIdx]->outKey;
+ int outVelocity= di->getVelocity(instrumentIdx, inVelocity);
+ printf("inKey=%d outKey =%d outVelocity=%d instrumentIdx=%d\n", di->inKey, outKey, outVelocity, instrumentIdx);
+ temp.setA(outKey);
+ temp.setB(outVelocity);
+
+ ol->insert(temp); // note on
+
+ temp.setB(0);
+ ol->insert(temp); // note off
+
+ di->lastOutputIndex = instrumentIdx;
+ di->outputTime = temp.time();
+ break;
+ }
+ }
+ }
+ if (temp.isNoteOff()) ; // we just throw it away, we will insert noteoffs for each note on
+ }
+ }
+
+//
+// getInitData - return configuration to MusE
+//
+void DrumGlue::getInitData(int* n, const unsigned char** p) const
+ {
+ QString saveStr;
+
+ foreach (DrumInstrument *di, drumInstruments) {
+ QString drumline = "DRUM " +di->name + " " + QString("%1").arg(di->inKey) + "\n";
+ saveStr.append(drumline);
+ foreach (DrumOutputInstrument *doi, di->outputInstruments) {
+ QString outputline = "OUTPUT " +
+ QString("%1").arg(doi->outKey) + " " +
+ QString("%1").arg(doi->lowestVelocity) + " " +
+ QString("%1").arg(doi->highestVelocity) + " " +
+ QString("%1").arg(doi->prefer) + " " +
+ QString("%1").arg(doi->preferFast) + "\n";
+ saveStr.append(outputline);
+
+ }
+ }
+
+ *n = saveStr.length();
+
+ if (saveData)
+ delete saveData;
+
+
+ saveData = new unsigned char[saveStr.length()];
+
+ strncpy((char*)saveData, saveStr.toLatin1().data(), saveStr.length());
+ saveData[saveStr.length()]=0;
+ printf("getInitData -\n%s\n",saveData);
+
+ *p = saveData;
+
+ }
+
+void DrumGlue::setInitData(int n, const unsigned char* p)
+ {
+ if (saveData)
+ delete saveData;
+ saveData = new unsigned char[n+1];
+
+ strncpy((char*)saveData,(char*)p,n);
+ saveData[n]=0;
+
+ QString loadStr = (char*)saveData;
+ printf("setInitData -\n%s\n",saveData);
+
+ QStringList loadList = loadStr.split("\n");
+
+ DrumInstrument *currentInstrument=NULL;
+ foreach (QString line, loadList) {
+ QStringList splitLine = line.split(" ");
+ if (splitLine[0] == "DRUM") {
+ if (currentInstrument)
+ drumInstruments.append(currentInstrument);
+
+ currentInstrument = new DrumInstrument();
+ currentInstrument->name = splitLine[1];
+ currentInstrument->inKey = splitLine[2].toInt();
+ }
+ if (splitLine[0] == "OUTPUT") {
+ DrumOutputInstrument *doi = new DrumOutputInstrument;
+ doi->outKey = splitLine[1].toInt();
+ doi->lowestVelocity = splitLine[2].toInt();
+ doi->highestVelocity = splitLine[3].toInt();
+ doi->prefer = splitLine[4].toInt();
+ doi->preferFast = splitLine[5].toInt();
+ currentInstrument->outputInstruments.append(doi);
+ }
+ }
+ if (currentInstrument)
+ drumInstruments.append(currentInstrument);
+
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new DrumGlue(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "DrumGlue",
+ "Drum instrument mux filter",
+ "0.1", // filter version string
+ MEMPI_FILTER, // plugin type
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumglue.h b/muse_qt4_evolution/midiplugins/drumglue/drumglue.h
new file mode 100644
index 00000000..49a19b55
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/drumglue.h
@@ -0,0 +1,86 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// drumglue - filter
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#ifndef __DRUMGLUE_H__
+#define __DRUMGLUE_H__
+
+#include <QtGui>
+
+#include "../libmidiplugin/mempi.h"
+
+#include "drumgluegui.h"
+//---------------------------------------------------------
+// drumglue - filter
+//---------------------------------------------------------
+
+struct DrumOutputInstrument {
+ int outKey; // key to send
+ int lowestVelocity; // lower velocity valid for this instrument
+ int highestVelocity; // highest velocity valid for this instrument
+ bool prefer; // true if this instrument is preferred
+ bool preferFast; // true if this instrument is preferred for fast transitions
+};
+
+class DrumInstrument {
+ public:
+ DrumInstrument()
+ {
+ inKey=0;
+ lastOutputIndex=0;
+ outputTime=0;
+ }
+
+ int getNextIndex(int velocity);
+ int getVelocity(int index, int velocity);
+
+
+ int inKey; // the key which triggers this instrument
+ QString name;
+ QList <DrumOutputInstrument *> outputInstruments;
+
+// storage of runtime variables
+ int lastOutputIndex;
+ unsigned int outputTime;
+};
+
+
+
+
+class DrumGlue : public Mempi {
+ friend class DrumGlueGui;
+ friend class GlobalInstrumentView;
+ friend class OutputInstrumentView;
+
+ QList<DrumInstrument *> drumInstruments;
+
+ DrumGlueGui* gui;
+
+ mutable unsigned char *saveData;
+
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ DrumGlue(const char* name, const MempiHost*);
+ ~DrumGlue();
+ virtual bool init();
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp
new file mode 100644
index 00000000..562adf2c
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp
@@ -0,0 +1,68 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#include "drumgluegui.h"
+#include "drumglue.h"
+#include "globalinstrumentview.h"
+
+//---------------------------------------------------------
+// DrumGlueGui
+//---------------------------------------------------------
+
+DrumGlueGui::DrumGlueGui(DrumGlue* f, QWidget* parent)
+ : QDialog(parent)
+ {
+ drumGlue = f;
+ setupUi(this);
+ instrumentsTabWidget->clear();
+
+ connect (addInstrumentButton, SIGNAL(clicked()), this, SLOT(addInstrument()));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+void DrumGlueGui::init()
+ {
+ foreach(DrumInstrument *di, drumGlue->drumInstruments) {
+ GlobalInstrumentView *giView = new GlobalInstrumentView(drumGlue,this, di->name);
+ instrumentsTabWidget->addTab(giView, di->name);
+ }
+ }
+
+//---------------------------------------------------------
+// addInstrument
+//---------------------------------------------------------
+void DrumGlueGui::addInstrument()
+ {
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Instrument name"),
+ tr("Name of instrument:"), QLineEdit::Normal,
+ "", &ok);
+ if (ok && !text.isEmpty()) {
+ DrumInstrument *di = new DrumInstrument();
+ di->name = text;
+ drumGlue->drumInstruments.append(di);
+ GlobalInstrumentView *giView = new GlobalInstrumentView(drumGlue,this, text);
+ instrumentsTabWidget->addTab(giView, text);
+ }
+ }
+
+//---------------------------------------------------------
+// removeInstrument
+//---------------------------------------------------------
+void DrumGlueGui::removeInstrument()
+ {
+ int ret = QMessageBox::warning(this, tr("Remove instrument"),
+ tr("Are you sure you want to remove current instrument?"),
+ QMessageBox::No,
+ QMessageBox::Yes);
+ if (ret == QMessageBox::Yes)
+ instrumentsTabWidget->removeTab(instrumentsTabWidget->currentIndex());
+ }
diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h
new file mode 100644
index 00000000..cdbac7a3
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h
@@ -0,0 +1,41 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#ifndef __DRUMGLUEGUI_H__
+#define __DRUMGLUEGUI_H__
+
+//#include "ui_drumglue.h"
+#include "ui_drumgluegui.h"
+
+
+//---------------------------------------------------------
+// DrumGlueGui
+//---------------------------------------------------------
+class DrumGlue;
+
+class DrumGlueGui : public QDialog, public Ui::DrumGlueBase {
+ Q_OBJECT
+
+ DrumGlue* drumGlue;
+
+ signals:
+ void hideWindow();
+
+ public:
+ DrumGlueGui(DrumGlue*, QWidget* parent=0);
+ void init();
+
+ private slots:
+ void addInstrument();
+ void removeInstrument();
+
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui
new file mode 100644
index 00000000..ddd402c4
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui
@@ -0,0 +1,91 @@
+<ui version="4.0" >
+ <class>DrumGlueBase</class>
+ <widget class="QDialog" name="DrumGlueBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>444</width>
+ <height>270</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Drumglue - midi filter</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QPushButton" name="addInstrumentButton" >
+ <property name="text" >
+ <string>Add instrument</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButton" >
+ <property name="text" >
+ <string>Remove current</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="font" >
+ <font>
+ <family>Arial</family>
+ <pointsize>14</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>DrumGlue 0.1</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTabWidget" name="instrumentsTabWidget" >
+ <property name="tabPosition" >
+ <enum>QTabWidget::North</enum>
+ </property>
+ <property name="tabShape" >
+ <enum>QTabWidget::Rounded</enum>
+ </property>
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <property name="elideMode" >
+ <enum>Qt::ElideLeft</enum>
+ </property>
+ <widget class="QWidget" name="Tab1" >
+ <attribute name="title" >
+ <string>Snare</string>
+ </attribute>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp
new file mode 100644
index 00000000..5ca81054
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp
@@ -0,0 +1,153 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#include "globalinstrumentview.h"
+#include "outputinstrumentview.h"
+#include "drumglue.h"
+
+//---------------------------------------------------------
+// GlobalInstrumentView
+//---------------------------------------------------------
+
+GlobalInstrumentView::GlobalInstrumentView(DrumGlue* f, QWidget* parent, QString name)
+ : QWidget(parent)
+ {
+ setupUi(this);
+ drumGlue = f;
+
+ instrumentName=name;
+
+ DrumInstrument *di =getCurrentOutputInstrument();
+ printf("di->inKey=%d\n", di->inKey);
+ if (di)
+ inKeySpinBox->setValue(di->inKey);
+
+ connect (addOutputButton, SIGNAL(clicked()), this, SLOT(addOutput()));
+ connect (editOutputButton, SIGNAL(clicked()), this, SLOT(editOutput()));
+ connect (removeOutputButton, SIGNAL(clicked()), this, SLOT(removeOutput()));
+ connect (inKeySpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateInKey()));
+ updateList();
+ }
+
+
+DrumInstrument *GlobalInstrumentView::getCurrentOutputInstrument()
+{
+ // get the global instrument belonging to this instance
+ QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin();
+ while(iter != drumGlue->drumInstruments.end()) {
+ printf("name = %s instrumentName= %s\n", (*iter)->name.toLatin1().data(), instrumentName.toLatin1().data());
+ if ((*iter)->name == instrumentName) {
+ break;
+ }
+ iter++;
+ }
+ if (iter == drumGlue->drumInstruments.end()) {
+ printf("Reached the end without getting a hit\n");
+ return NULL;
+ }
+ return *iter;
+}
+
+void GlobalInstrumentView::addOutput()
+ {
+ DrumInstrument *di = getCurrentOutputInstrument();
+ if (!di)
+ return;
+ // create new output
+ DrumOutputInstrument *doi = new DrumOutputInstrument;
+ di->outputInstruments.append(doi);
+
+ OutputInstrumentView *outputView = new OutputInstrumentView(doi,this);
+ int res = outputView->exec();
+ if (res == QDialog::Rejected) {
+ // roll back
+ di->outputInstruments.removeAll(doi);
+ delete doi;
+ }
+ delete outputView;
+ updateList();
+ }
+
+void GlobalInstrumentView::editOutput()
+ {
+ DrumInstrument *di = getCurrentOutputInstrument();
+
+ int currIdx = outputListWidget->currentRow();
+ if (currIdx < 0 || currIdx >= di->outputInstruments.size()) {
+ printf("out of range!!\n");
+ return;
+ }
+
+ DrumOutputInstrument *doi = di->outputInstruments[currIdx];
+
+ DrumOutputInstrument doi_backup = *doi;
+ OutputInstrumentView *outputView = new OutputInstrumentView(doi,this);
+ int res = outputView->exec();
+ if (res == QDialog::Rejected) {
+ // roll back
+ *doi = doi_backup;
+ }
+ delete outputView;
+ updateList();
+ }
+
+void GlobalInstrumentView::removeOutput()
+ {
+ int ret = QMessageBox::warning(this, tr("Remove output"),
+ tr("Are you sure you want to remove current output?"),
+ QMessageBox::No,
+ QMessageBox::Yes);
+ if (ret == QMessageBox::Yes) {
+ DrumInstrument *di = getCurrentOutputInstrument();
+
+ int currIdx = outputListWidget->currentRow();
+ if (currIdx < 0 || currIdx >= di->outputInstruments.size()) {
+ printf("out of range!!\n");
+ return;
+ }
+
+ DrumOutputInstrument *doi = di->outputInstruments[currIdx];
+ di->outputInstruments.removeAll(doi);
+ delete doi;
+ }
+ updateList();
+ }
+
+void GlobalInstrumentView::updateList()
+{
+ printf("updateList\n");
+ outputListWidget->clear();
+
+ QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin();
+ while(iter != drumGlue->drumInstruments.end()) {
+ printf("name = %s instrumentName= %s\n", (*iter)->name.toLatin1().data(), instrumentName.toLatin1().data());
+ if ((*iter)->name == instrumentName) {
+ printf("updating current list\n");
+ foreach (DrumOutputInstrument *doi, (*iter)->outputInstruments) {
+ QListWidgetItem *outDrumItem = new QListWidgetItem(outputListWidget);
+ QString str = QString("%1 %2 %3 %4 %5").arg(doi->outKey).arg(doi->lowestVelocity).arg(doi->highestVelocity).arg(doi->prefer).arg(doi->preferFast);
+ printf("setting item to %s\n",str.toLatin1().data());
+ outDrumItem->setText(str);
+ }
+ }
+ iter++;
+ }
+}
+
+void GlobalInstrumentView::updateInKey()
+{
+ QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin();
+ while(iter != drumGlue->drumInstruments.end()) {
+ if ((*iter)->name == instrumentName) {
+ (*iter)->inKey = inKeySpinBox->value();
+ }
+ iter++;
+ }
+
+}
diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h
new file mode 100644
index 00000000..f923ec49
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h
@@ -0,0 +1,41 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#ifndef __GLOBALINSTRUMENTVIEW_H__
+#define __GLOBALINSTRUMENTVIEW_H__
+
+#include "ui_globalinstrumentview.h"
+
+#include "drumglue.h"
+//---------------------------------------------------------
+// GlobalInstrumentView
+//---------------------------------------------------------
+class DrumGlue;
+
+class GlobalInstrumentView : public QWidget, public Ui::GlobalInstrumentViewBase {
+ Q_OBJECT
+
+ DrumGlue *drumGlue;
+ QString instrumentName;
+ DrumInstrument *getCurrentOutputInstrument();
+
+ public:
+ GlobalInstrumentView(DrumGlue*, QWidget* parent, QString name);
+ private slots:
+ void addOutput();
+ void editOutput();
+ void removeOutput();
+ void updateInKey();
+
+ public slots:
+ void updateList();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui
new file mode 100644
index 00000000..e817906a
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui
@@ -0,0 +1,102 @@
+<ui version="4.0" >
+ <class>GlobalInstrumentViewBase</class>
+ <widget class="QWidget" name="GlobalInstrumentViewBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>386</width>
+ <height>256</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>-1</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>-1</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>-1</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Midi input key:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="inKeySpinBox" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="addOutputButton" >
+ <property name="text" >
+ <string>Add output</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeOutputButton" >
+ <property name="text" >
+ <string>Remove output</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="editOutputButton" >
+ <property name="text" >
+ <string>Edit output</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Midi output definitions:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="outputListWidget" />
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp
new file mode 100644
index 00000000..2e4c97ce
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp
@@ -0,0 +1,45 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "outputinstrumentview.h"
+#include "drumglue.h"
+#include <QtGui>
+//---------------------------------------------------------
+// OutputInstrumentView
+//---------------------------------------------------------
+
+OutputInstrumentView::OutputInstrumentView(DrumOutputInstrument* doi, QWidget* parent)
+ : QDialog(parent)
+ {
+ outputInstrument= doi;
+ setupUi(this);
+
+ midiOutputSpinBox->setValue(outputInstrument->outKey);
+ highRangeSlider->setValue(outputInstrument->highestVelocity);
+ lowRangeSlider->setValue(outputInstrument->lowestVelocity);
+ preferWhenFastCheckBox->setChecked(outputInstrument->preferFast);
+ highProbabiltyCheckBox->setChecked(outputInstrument->prefer);
+
+
+ connect(midiOutputSpinBox,SIGNAL(valueChanged(int)),this, SLOT(update()));
+ connect(highRangeSlider,SIGNAL(valueChanged(int)),this, SLOT(update()));
+ connect(lowRangeSlider,SIGNAL(valueChanged(int)),this, SLOT(update()));
+ connect(preferWhenFastCheckBox,SIGNAL(stateChanged(int)),this, SLOT(update()));
+ connect(highProbabiltyCheckBox,SIGNAL(stateChanged(int)),this, SLOT(update()));
+ }
+
+
+void OutputInstrumentView::update()
+{
+ outputInstrument->outKey = midiOutputSpinBox->value();
+ outputInstrument->highestVelocity = highRangeSlider->value();
+ outputInstrument->lowestVelocity = lowRangeSlider->value();
+ outputInstrument->preferFast = preferWhenFastCheckBox->isChecked();
+ outputInstrument->prefer = highProbabiltyCheckBox->isChecked();
+
+}
diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h
new file mode 100644
index 00000000..b2b5dc12
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h
@@ -0,0 +1,31 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se)
+// (C) Copyright 2005- Werner Schweer (ws@seh.de)
+// Copyright: See COPYING file that comes with this distribution
+//=========================================================
+
+#ifndef __OUTPUTINSTRUMENTVIEW_H__
+#define __OUTPUTINSTRUMENTVIEW_H__
+
+#include "ui_outputinstrumentview.h"
+
+#include "drumglue.h"
+//---------------------------------------------------------
+// OutputInstrumentView
+//---------------------------------------------------------
+class DrumGlue;
+
+class OutputInstrumentView : public QDialog, public Ui::OutputInstrumentViewBase {
+ Q_OBJECT
+ DrumOutputInstrument *outputInstrument;
+ public:
+ OutputInstrumentView(DrumOutputInstrument*, QWidget* parent);
+ private slots:
+ void update();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui
new file mode 100644
index 00000000..250c2010
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui
@@ -0,0 +1,292 @@
+<ui version="4.0" >
+ <class>OutputInstrumentViewBase</class>
+ <widget class="QDialog" name="OutputInstrumentViewBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>449</width>
+ <height>150</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Midi output key:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="midiOutputSpinBox" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="highProbabiltyCheckBox" >
+ <property name="toolTip" >
+ <string>If this instrument is to be used more often than others check this box.</string>
+ </property>
+ <property name="statusTip" >
+ <string/>
+ </property>
+ <property name="text" >
+ <string>Prefer always</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="preferWhenFastCheckBox" >
+ <property name="toolTip" >
+ <string>If this instrument is to be used more often when used often, check this checkbox.</string>
+ </property>
+ <property name="statusTip" >
+ <string/>
+ </property>
+ <property name="text" >
+ <string>Prefer when fast</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="line_4" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label_3" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string> [low]</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line_2" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line_3" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="layoutDirection" >
+ <enum>Qt::RightToLeft</enum>
+ </property>
+ <property name="text" >
+ <string> [high]</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="lowRangeLabel" >
+ <property name="minimumSize" >
+ <size>
+ <width>24</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text" >
+ <string>1</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="lowRangeSlider" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string> use in range </string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="highRangeLabel" >
+ <property name="minimumSize" >
+ <size>
+ <width>24</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text" >
+ <string>127</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="highRangeSlider" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>OutputInstrumentViewBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>OutputInstrumentViewBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>highRangeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>highRangeLabel</receiver>
+ <slot>setNum(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>215</x>
+ <y>107</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>165</x>
+ <y>108</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>lowRangeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lowRangeLabel</receiver>
+ <slot>setNum(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>75</x>
+ <y>107</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>25</x>
+ <y>108</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt b/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt
new file mode 100644
index 00000000..c607ef1f
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt
@@ -0,0 +1,40 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( dump SHARED
+ dump.cpp
+ )
+
+target_link_libraries( dump
+ midiplugin awl
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target dump.so instead of
+# libdump.so
+# - use precompiled header files
+#
+set_target_properties ( dump
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ dump )
+
diff --git a/muse_qt4_evolution/midiplugins/dump/dump.cpp b/muse_qt4_evolution/midiplugins/dump/dump.cpp
new file mode 100644
index 00000000..e346a642
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/dump/dump.cpp
@@ -0,0 +1,48 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $
+//
+// dump- simple midi event dump for testing purposes
+//
+// (C) Copyright 2006 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "dump.h"
+#include "midi.h"
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Dump::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol)
+ {
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ printf("Event %6d ch:%2d type:%2d 0x%02x 0x%02x\n", i->time(), i->channel(),
+ i->type(), i->dataA(), i->dataB());
+ ol->insert(*i);
+ }
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Dump(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Dump",
+ "MusE Simple Midi Event Dump",
+ "0.1", // version string
+ MEMPI_FILTER, // plugin type
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/dump/dump.h b/muse_qt4_evolution/midiplugins/dump/dump.h
new file mode 100644
index 00000000..2194e30f
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/dump/dump.h
@@ -0,0 +1,28 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $
+//
+// dump- simple midi event dump for testing purposes
+//
+// (C) Copyright 2006 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DUMP_H__
+#define __DUMP_H__
+
+#include "../libmidiplugin/mempi.h"
+
+//---------------------------------------------------------
+// dump - simple midi event dump
+//---------------------------------------------------------
+
+class Dump : public Mempi {
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ Dump(const char* name, const MempiHost* h) :Mempi(name, h) {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt b/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt
new file mode 100644
index 00000000..7bdb8544
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt
@@ -0,0 +1,49 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( filter_mocs filtergui.h ctrlcombo.h )
+QT4_WRAP_UI ( filter_uis filtergui.ui )
+
+add_library ( filter SHARED
+ filter.cpp
+ filtergui.cpp
+ filtergui.h
+ ctrlcombo.cpp
+ ctrlcombo.h
+ ${filter_mocs}
+ ${filter_uis}
+ )
+
+target_link_libraries( filter
+ midiplugin awl
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target filter.so instead of
+# libfilter.so
+# - use precompiled header files
+#
+set_target_properties ( filter
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ filter )
+
diff --git a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp
new file mode 100644
index 00000000..b4c436c6
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcombo.cpp,v 1.2 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "ctrlcombo.h"
+
+//---------------------------------------------------------
+// CtrlComboBox
+//---------------------------------------------------------
+
+CtrlComboBox::CtrlComboBox(QWidget* parent)
+ : QComboBox(parent)
+ {
+ const char* ctxt[] = {
+ "No Ctrl", "BankSelMSB", "Modulation", "BreathCtrl",
+ "Control 3", "Foot Ctrl", "Porta Time", "DataEntMSB",
+ "MainVolume", "Balance", "Control 9", "Pan",
+ "Expression", "Control 12", "Control 13", "Control 14",
+ "Control 15", "Gen.Purp.1", "Gen.Purp.2", "Gen.Purp.3",
+ "Gen.Purp.4", "Control 20", "Control 21", "Control 22",
+ "Control 23", "Control 24", "Control 25", "Control 26",
+ "Control 27", "Control 28", "Control 29", "Control 30",
+ "Control 31", "BankSelLSB", "Modul. LSB", "BrthCt.LSB",
+ "Control 35", "FootCt.LSB", "Port.T LSB", "DataEntLSB",
+ "MainVolLSB", "BalanceLSB", "Control 41", "Pan LSB",
+ "Expr. LSB", "Control 44", "Control 45", "Control 46",
+ "Control 47", "Gen.P.1LSB", "Gen.P.2LSB", "Gen.P.3LSB",
+ "Gen.P.4LSB", "Control 52", "Control 53", "Control 54",
+ "Control 55", "Control 56", "Control 57", "Control 58",
+ "Control 59", "Control 60", "Control 61", "Control 62",
+ "Control 63", "Sustain", "Porta Ped", "Sostenuto",
+ "Soft Pedal", "Control 68", "Hold 2", "Control 70",
+ "HarmonicCo", "ReleaseTime", "Attack Time", "Brightness",
+ "Control 75", "Control 76", "Control 77", "Control 78",
+ "Control 79", "Gen.Purp.5", "Gen.Purp.6", "Gen.Purp.7",
+ "Gen.Purp.8", "Porta Ctrl", "Control 85", "Control 86",
+ "Control 87", "Control 88", "Control 89", "Control 90",
+ "Effect1Dep", "Effect2Dep", "Effect3Dep", "Effect4Dep",
+ "Phaser Dep", "Data Incr", "Data Decr", "NRPN LSB",
+ "NRPN MSB", "RPN LSB", "RPN MSB", "Control102",
+ "Control103", "Control104", "Control105", "Control106",
+ "Control107", "Control108", "Control109", "Control110",
+ "Control111", "Control112", "Control113", "Control114",
+ "Control115", "Control116", "Control117", "Control118",
+ "Control119", "AllSndOff", "Reset Ctrl", "Local Ctrl",
+ "AllNoteOff", "OmniModOff", "OmniModeOn", "MonoModeOn",
+ "PolyModeOn"
+ };
+ for (unsigned int i = 0; i < sizeof(ctxt)/sizeof(*ctxt); ++i)
+ addItem(QString(ctxt[i]));
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h
new file mode 100644
index 00000000..53044b20
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h
@@ -0,0 +1,24 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcombo.h,v 1.2 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRLGRP_H__
+#define __CTRLGRP_H__
+
+//---------------------------------------------------------
+// CtrlComboBox
+//---------------------------------------------------------
+
+class CtrlComboBox : public QComboBox {
+ Q_OBJECT
+ public:
+ CtrlComboBox(QWidget* parent = 0);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/filter/filter.cpp b/muse_qt4_evolution/midiplugins/filter/filter.cpp
new file mode 100644
index 00000000..ac99449e
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/filter.cpp
@@ -0,0 +1,167 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $
+//
+// filter - simple midi filter
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "filtergui.h"
+#include "filter.h"
+#include "midi.h"
+
+//---------------------------------------------------------
+// Filter
+//---------------------------------------------------------
+
+Filter::Filter(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ data.type = 0; // allow any events
+ for (int i = 0; i < 4; ++i)
+ data.ctrl[i] = -1;
+ gui = 0;
+ }
+
+//---------------------------------------------------------
+// Filter
+//---------------------------------------------------------
+
+Filter::~Filter()
+ {
+ if (gui)
+ delete gui;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool Filter::init()
+ {
+ gui = new FilterGui(this, 0);
+ gui->setWindowTitle("MusE: "+QString(name()));
+ gui->show();
+ return false;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void Filter::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void Filter::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Filter::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol)
+ {
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ if (!filterEvent(*i))
+ ol->insert(*i);
+ }
+ }
+
+//---------------------------------------------------------
+// filterEvent
+// return true if event filtered
+//---------------------------------------------------------
+
+bool Filter::filterEvent(const MidiEvent& event)
+ {
+ switch(event.type()) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ if (data.type & MIDI_FILTER_NOTEON)
+ return true;
+ break;
+ case ME_POLYAFTER:
+ if (data.type & MIDI_FILTER_POLYP)
+ return true;
+ break;
+ case ME_CONTROLLER:
+ if (data.type & MIDI_FILTER_CTRL)
+ return true;
+ for (int i = 0; i < 4; ++i) {
+ if (data.ctrl[i] == event.dataA())
+ return true;
+ }
+ break;
+ case ME_PROGRAM:
+ if (data.type & MIDI_FILTER_PROGRAM)
+ return true;
+ break;
+ case ME_AFTERTOUCH:
+ if (data.type & MIDI_FILTER_AT)
+ return true;
+ break;
+ case ME_PITCHBEND:
+ if (data.type & MIDI_FILTER_PITCH)
+ return true;
+ break;
+ case ME_SYSEX:
+ if (data.type & MIDI_FILTER_SYSEX)
+ return true;
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+void Filter::getInitData(int* n, const unsigned char** p) const
+ {
+ *n = sizeof(data);
+ *p = (unsigned char*)&data;
+ }
+
+void Filter::setInitData(int n, const unsigned char* p)
+ {
+ memcpy((void*)&data, p, n);
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Filter(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Filter",
+ "MusE Simple Midi Filter",
+ "0.1", // filter version string
+ MEMPI_FILTER, // plugin type
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/filter/filter.h b/muse_qt4_evolution/midiplugins/filter/filter.h
new file mode 100644
index 00000000..c8a357b4
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/filter.h
@@ -0,0 +1,51 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $
+//
+// filter - simple midi filter
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __FILTER_H__
+#define __FILTER_H__
+
+#include "../libmidiplugin/mempi.h"
+
+//---------------------------------------------------------
+// filter - simple midi filter
+//---------------------------------------------------------
+
+class Filter : public Mempi {
+ struct initData {
+ int type;
+ int ctrl[4];
+ } data;
+ FilterGui* gui;
+
+ bool filterEvent(const MidiEvent& event);
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ Filter(const char* name, const MempiHost*);
+ ~Filter();
+ virtual bool init();
+
+ int midiType() const { return data.type; }
+ void setMidiType(int t) { data.type = t; }
+ int midiCtrl(int i) const { return data.ctrl[i]; }
+ void setMidiCtrl(int i, int val) { data.ctrl[i] = val; }
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/filter/filtergui.cpp b/muse_qt4_evolution/midiplugins/filter/filtergui.cpp
new file mode 100644
index 00000000..306ae392
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/filtergui.cpp
@@ -0,0 +1,187 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "filtergui.h"
+#include "filter.h"
+#include "ctrlcombo.h"
+
+//---------------------------------------------------------
+// MidiFilterConfig
+//---------------------------------------------------------
+
+FilterGui::FilterGui(Filter* f, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ filter = f;
+ connect(rf1, SIGNAL(toggled(bool)), SLOT(rf1Toggled(bool)));
+ connect(rf2, SIGNAL(toggled(bool)), SLOT(rf2Toggled(bool)));
+ connect(rf3, SIGNAL(toggled(bool)), SLOT(rf3Toggled(bool)));
+ connect(rf4, SIGNAL(toggled(bool)), SLOT(rf4Toggled(bool)));
+ connect(rf5, SIGNAL(toggled(bool)), SLOT(rf5Toggled(bool)));
+ connect(rf6, SIGNAL(toggled(bool)), SLOT(rf6Toggled(bool)));
+ connect(rf7, SIGNAL(toggled(bool)), SLOT(rf7Toggled(bool)));
+ connect(cb1, SIGNAL(activated(int)), SLOT(cb1Activated(int)));
+ connect(cb2, SIGNAL(activated(int)), SLOT(cb2Activated(int)));
+ connect(cb3, SIGNAL(activated(int)), SLOT(cb3Activated(int)));
+ connect(cb4, SIGNAL(activated(int)), SLOT(cb4Activated(int)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void FilterGui::init()
+ {
+ int midiType = filter->midiType();
+ rf1->setChecked(midiType & MIDI_FILTER_NOTEON);
+ rf2->setChecked(midiType & MIDI_FILTER_POLYP);
+ rf3->setChecked(midiType & MIDI_FILTER_CTRL);
+ rf4->setChecked(midiType & MIDI_FILTER_PROGRAM);
+ rf5->setChecked(midiType & MIDI_FILTER_AT);
+ rf6->setChecked(midiType & MIDI_FILTER_PITCH);
+ rf7->setChecked(midiType & MIDI_FILTER_SYSEX);
+ cb1->setCurrentIndex(filter->midiCtrl(0) + 1);
+ cb2->setCurrentIndex(filter->midiCtrl(1) + 1);
+ cb3->setCurrentIndex(filter->midiCtrl(2) + 1);
+ cb4->setCurrentIndex(filter->midiCtrl(3) + 1);
+ }
+
+//---------------------------------------------------------
+// cb1Activated
+//---------------------------------------------------------
+
+void FilterGui::cb1Activated(int idx)
+ {
+ filter->setMidiCtrl(0, idx - 1);
+ }
+
+//---------------------------------------------------------
+// cb2Activated
+//---------------------------------------------------------
+
+void FilterGui::cb2Activated(int idx)
+ {
+ filter->setMidiCtrl(1, idx - 1);
+ }
+
+//---------------------------------------------------------
+// cb3Activated
+//---------------------------------------------------------
+
+void FilterGui::cb3Activated(int idx)
+ {
+ filter->setMidiCtrl(2, idx - 1);
+ }
+
+//---------------------------------------------------------
+// cb4Activated
+//---------------------------------------------------------
+
+void FilterGui::cb4Activated(int idx)
+ {
+ filter->setMidiCtrl(3, idx - 1);
+ }
+
+//---------------------------------------------------------
+// rf1Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf1Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf1->isChecked())
+ midiType |= MIDI_FILTER_NOTEON;
+ else
+ midiType &= ~MIDI_FILTER_NOTEON;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf2Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf2Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf2->isChecked())
+ midiType |= MIDI_FILTER_POLYP;
+ else
+ midiType &= ~MIDI_FILTER_POLYP;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf3Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf3Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf3->isChecked())
+ midiType |= MIDI_FILTER_CTRL;
+ else
+ midiType &= ~MIDI_FILTER_CTRL;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf4Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf4Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf4->isChecked())
+ midiType |= MIDI_FILTER_PROGRAM;
+ else
+ midiType &= ~MIDI_FILTER_PROGRAM;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf5Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf5Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf5->isChecked())
+ midiType |= MIDI_FILTER_AT;
+ else
+ midiType &= ~MIDI_FILTER_AT;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf6Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf6Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf1->isChecked())
+ midiType |= MIDI_FILTER_PITCH;
+ else
+ midiType &= ~MIDI_FILTER_PITCH;
+ filter->setMidiType(midiType);
+ }
+
+//---------------------------------------------------------
+// rf7Toggled
+//---------------------------------------------------------
+
+void FilterGui::rf7Toggled(bool)
+ {
+ int midiType = filter->midiType();
+ if (rf7->isChecked())
+ midiType |= MIDI_FILTER_SYSEX;
+ else
+ midiType &= ~MIDI_FILTER_SYSEX;
+ filter->setMidiType(midiType);
+ }
diff --git a/muse_qt4_evolution/midiplugins/filter/filtergui.h b/muse_qt4_evolution/midiplugins/filter/filtergui.h
new file mode 100644
index 00000000..701bfec9
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/filtergui.h
@@ -0,0 +1,57 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filtergui.h,v 1.4 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __FILTERGUI_H__
+#define __FILTERGUI_H__
+
+#include "ui_filtergui.h"
+
+class Filter;
+
+enum {
+ MIDI_FILTER_NOTEON = 1,
+ MIDI_FILTER_POLYP = 2,
+ MIDI_FILTER_CTRL = 4,
+ MIDI_FILTER_PROGRAM = 8,
+ MIDI_FILTER_AT = 16,
+ MIDI_FILTER_PITCH = 32,
+ MIDI_FILTER_SYSEX = 64
+ };
+
+//---------------------------------------------------------
+// FilterGui
+//---------------------------------------------------------
+
+class FilterGui : public QDialog, public Ui::FilterBase {
+ Q_OBJECT
+
+ Filter* filter;
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void rf1Toggled(bool);
+ void rf2Toggled(bool);
+ void rf3Toggled(bool);
+ void rf4Toggled(bool);
+ void rf5Toggled(bool);
+ void rf6Toggled(bool);
+ void rf7Toggled(bool);
+ void cb1Activated(int);
+ void cb2Activated(int);
+ void cb3Activated(int);
+ void cb4Activated(int);
+
+ public:
+ FilterGui(Filter*, QWidget* parent=0);
+ void init();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/filter/filtergui.ui b/muse_qt4_evolution/midiplugins/filter/filtergui.ui
new file mode 100644
index 00000000..8e1693f2
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/filter/filtergui.ui
@@ -0,0 +1,269 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>FilterBase</class>
+ <widget class="QDialog" name="FilterBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>388</width>
+ <height>213</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Input Filter</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBoxx" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Event Filter</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="rf1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Note On</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Poly Pressure</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Controller</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Program Change</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>After Touch</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf6" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Pitch Bend</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="rf7" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Sysex</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="GroupBox4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Controller Filter</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="CtrlComboBox" name="cb1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="CtrlComboBox" name="cb2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="CtrlComboBox" name="cb3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="CtrlComboBox" name="cb4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>CtrlComboBox</class>
+ <extends>QComboBox</extends>
+ <header>ctrlcombo.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>rf1</tabstop>
+ <tabstop>rf2</tabstop>
+ <tabstop>rf3</tabstop>
+ <tabstop>rf4</tabstop>
+ <tabstop>rf5</tabstop>
+ <tabstop>rf6</tabstop>
+ <tabstop>rf7</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt b/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt
new file mode 100644
index 00000000..5988205f
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt
@@ -0,0 +1,26 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( midiplugin mempi.cpp )
+
+set_target_properties( midiplugin
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h b/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h
new file mode 100644
index 00000000..8247b6e0
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h
@@ -0,0 +1,64 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: evdata.h,v 1.2 2005/05/11 14:18:39 wschweer Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EVDATA_H__
+#define __EVDATA_H__
+
+//---------------------------------------------------------
+// EvData
+// variable len event data (sysex, meta etc.)
+//---------------------------------------------------------
+
+class EvData {
+ int* refCount;
+
+ public:
+ unsigned char* data;
+ int dataLen;
+
+ EvData() {
+ data = 0;
+ dataLen = 0;
+ refCount = new int(1);
+ }
+ EvData(const EvData& ed) {
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ }
+
+ EvData& operator=(const EvData& ed) {
+ if (data == ed.data)
+ return *this;
+ if (--(*refCount) == 0) {
+ delete refCount;
+ delete[] data;
+ }
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ return *this;
+ }
+
+ ~EvData() {
+ if (--(*refCount) == 0) {
+ delete[] data;
+ delete refCount;
+ }
+ }
+ void setData(const unsigned char* p, int l) {
+ data = new unsigned char[l];
+ memcpy(data, p, l);
+ dataLen = l;
+ }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp
new file mode 100644
index 00000000..91171c3b
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp
@@ -0,0 +1,81 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mempi.cpp,v 1.4 2005/05/24 15:27:48 wschweer Exp $
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mempi.h"
+
+static const int FIFO_SIZE = 128;
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+MidiEvent::MidiEvent(unsigned t, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ edata.setData(data, len);
+ _type = tpe;
+ }
+
+//---------------------------------------------------------
+// operator <
+//---------------------------------------------------------
+
+bool MidiEvent::operator<(const MidiEvent& e) const
+ {
+ if (time() != e.time())
+ return time() < e.time();
+
+ // play note off events first to prevent overlapping
+ // notes
+
+ if (channel() == e.channel())
+ return type() == 0x80
+ || (type() == 0x90 && dataB() == 0);
+
+ int map[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 13, 14, 15 };
+ return map[channel()] < map[e.channel()];
+ }
+
+//---------------------------------------------------------
+// MempiP
+// Mempi private data structure
+//---------------------------------------------------------
+
+struct MempiP {
+ int dummy;
+ };
+
+//---------------------------------------------------------
+// Mempi
+//---------------------------------------------------------
+
+Mempi::Mempi(const char* n, const MempiHost* h)
+ {
+ _name = strdup(n);
+ host = h;
+ d = new MempiP;
+ }
+
+Mempi::~Mempi()
+ {
+ delete _name;
+ delete d;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+// dummy
+//---------------------------------------------------------
+
+void Mempi::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ x = 0;
+ y = 0;
+ w = 0;
+ h = 0;
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h
new file mode 100644
index 00000000..a5f114b6
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h
@@ -0,0 +1,97 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mempi.h,v 1.10 2005/07/16 09:31:50 wschweer Exp $
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//
+// MusE experimental midi plugin interface
+//
+
+#ifndef __MEMPI_H__
+#define __MEMPI_H__
+
+#define MEMPI_MAJOR_VERSION 1
+#define MEMPI_MINOR_VERSION 1
+
+#include <set>
+#include "evdata.h"
+#include "memory.h"
+#include "midievent.h"
+
+class MempiP;
+
+//---------------------------------------------------------
+// MempiHost
+// Host Infos
+//---------------------------------------------------------
+
+struct MempiHost {
+ virtual int division() const; // midi division
+ virtual int tempo(unsigned tick) const;
+ virtual unsigned tick2frame(unsigned tick) const;
+ virtual unsigned frame2tick(unsigned frame) const;
+ virtual void bar(int tick, int* bar, int* beat, unsigned* rest) const;
+ virtual unsigned bar2tick(int bar, int beat, int tick) const;
+ virtual ~MempiHost() {}
+ };
+
+//---------------------------------------------------------
+// Mempi
+// Instance class
+// MusE experimental midi plugin interface
+// Instance virtual interface class
+//---------------------------------------------------------
+
+class Mempi {
+ MempiP* d;
+ const char* _name; // mempi instance name
+
+ protected:
+ const MempiHost* host;
+
+ public:
+ // modul interface
+ Mempi(const char* name, const MempiHost*);
+ virtual ~Mempi();
+ virtual bool init() { return false; }
+ const char* name() const { return _name; }
+
+ // process interface
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*) = 0;
+
+ // session interface
+ virtual void getInitData(int*, const unsigned char**) const {}
+ virtual void setInitData(int, const unsigned char*) {}
+
+ // GUI interface routines
+ virtual bool hasGui() const { return false; }
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int) {}
+ };
+
+//---------------------------------------------------------
+// MEMPI
+// Class descriptor
+//---------------------------------------------------------
+
+enum MempiType { MEMPI_FILTER = 0, MEMPI_GENERATOR = 1 };
+
+struct MEMPI {
+ const char* name;
+ const char* description;
+ const char* version;
+ MempiType type;
+ int majorMempiVersion, minorMempiVersion;
+ Mempi* (*instantiate)(const char* name, const MempiHost*);
+ };
+
+extern "C" {
+ const MEMPI* mempi_descriptor();
+ }
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp
new file mode 100644
index 00000000..972bc8a2
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp
@@ -0,0 +1,21 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.cpp,v 1.1 2005/05/08 17:01:30 wschweer Exp $
+//
+// (C) Copyright 2002-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "midievent.h"
+
+//---------------------------------------------------------
+// MEvent
+//---------------------------------------------------------
+
+MEvent::MEvent(unsigned t, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ edata.setData(data, len);
+ _type = tpe;
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h
new file mode 100644
index 00000000..a21bec88
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h
@@ -0,0 +1,87 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.h,v 1.3 2005/06/06 14:24:53 wschweer Exp $
+//
+// (C) Copyright 1999-2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIEVENT_H__
+#define __MIDIEVENT_H__
+
+#include <set>
+#include "evdata.h"
+#include <ext/mt_allocator.h>
+
+class Event;
+class EvData;
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+class MidiEvent {
+ unsigned _time;
+ EvData edata;
+ unsigned char _channel, _type;
+ int _a, _b;
+
+ public:
+ MidiEvent() {}
+ MidiEvent(unsigned tm, int c, int t, int a, int b)
+ : _time(tm), _channel(c & 0xf), _type(t), _a(a), _b(b) {}
+ MidiEvent(unsigned t, int type, const unsigned char* data, int len);
+ MidiEvent(unsigned t, int tpe, EvData d) : _time(t), edata(d), _type(tpe) {}
+ MidiEvent(unsigned t, int channel, const Event& e);
+
+ ~MidiEvent() {}
+
+ MidiEvent& operator=(const MidiEvent& ed) {
+ _time = ed._time;
+ edata = ed.edata;
+ _channel = ed._channel;
+ _type = ed._type;
+ _a = ed._a;
+ _b = ed._b;
+ return *this;
+ }
+
+ int channel() const { return _channel; }
+ int type() const { return _type; }
+ int dataA() const { return _a; }
+ int dataB() const { return _b; }
+ unsigned time() const { return _time; }
+
+ void setChannel(int val) { _channel = val; }
+ void setType(int val) { _type = val; }
+ void setA(int val) { _a = val; }
+ void setB(int val) { _b = val; }
+ void setTime(unsigned val) { _time = val; }
+
+ const EvData& eventData() const { return edata; }
+ unsigned char* data() const { return edata.data; }
+ int len() const { return edata.dataLen; }
+ void setData(const EvData& e) { edata = e; }
+ void setData(const unsigned char* p, int len) { edata.setData(p, len); }
+ void dump() const;
+ bool isNote() const { return _type == 0x90; }
+ bool isNoteOff() const { return (_type == 0x80)||(_type == 0x90 && _b == 0); }
+ bool operator<(const MidiEvent&) const;
+ };
+
+//---------------------------------------------------------
+// MidiEventList
+//---------------------------------------------------------
+
+// typedef std::multiset<MidiEvent, std::less<MidiEvent>,
+// __gnu_cxx::__mt_alloc<MidiEvent> > MPEL;
+
+struct MidiEventList : public std::multiset<MidiEvent, std::less<MidiEvent> >
+ {
+ };
+
+typedef MidiEventList::iterator iMidiEvent;
+typedef MidiEventList::const_iterator ciMidiEvent;
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt b/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt
new file mode 100644
index 00000000..5153e6d4
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt
@@ -0,0 +1,46 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( metronom_mocs metronomgui.h )
+QT4_WRAP_UI ( metronom_uis metronomgui.ui )
+
+add_library ( metronom SHARED
+ metronom.cpp
+ metronomgui.cpp
+ metronomgui.h
+ ${metronom_mocs}
+ ${metronom_uis}
+ )
+target_link_libraries( metronom
+ midiplugin
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target metronom.so instead of
+# libmetronom.so
+# - use precompiled header files
+#
+set_target_properties ( metronom
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ metronom )
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/metronom.cpp b/muse_qt4_evolution/midiplugins/metronom/metronom.cpp
new file mode 100644
index 00000000..ece1e466
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/metronom.cpp
@@ -0,0 +1,167 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronom.cpp,v 1.3 2005/11/16 17:55:59 wschweer Exp $
+//
+// metronom - midi metronom
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "metronomgui.h"
+#include "metronom.h"
+#include "midi.h"
+#include "midievent.h"
+
+//---------------------------------------------------------
+// Metronom
+//---------------------------------------------------------
+
+Metronom::Metronom(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ gui = 0;
+ }
+
+//---------------------------------------------------------
+// Metronom
+//---------------------------------------------------------
+
+Metronom::~Metronom()
+ {
+ if (gui)
+ delete gui;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool Metronom::init()
+ {
+ nextTick = 0;
+ lastTo = 0;
+ data.measureNote = 63;
+ data.measureVelo = 127;
+ data.beatNote = 63;
+ data.beatVelo = 70;
+
+ gui = new MetronomGui(this, 0);
+ gui->hide();
+ gui->setWindowTitle(QString(name()));
+
+ return false;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void Metronom::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void Metronom::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Metronom::process(unsigned from, unsigned to, MidiEventList* /*il*/, MidiEventList* ol)
+ {
+ if (from == to) {
+ nextTick = 0;
+ return;
+ }
+ if (lastTo != from) { // seek?
+// printf(" seek? %d-%d\n", lastTo, from);
+ nextTick = 0;
+ }
+ lastTo = to;
+ if (nextTick > to)
+ return;
+ while (nextTick < to) {
+ int bar, beat;
+ unsigned tick;
+ if (nextTick < from) {
+ host->bar(from, &bar, &beat, &tick);
+ if (tick)
+ nextTick = host->bar2tick(bar, beat+1, 0);
+ else
+ nextTick = from;
+ }
+ host->bar(nextTick, &bar, &beat, &tick);
+ bool isMeasure = beat == 0;
+
+ MidiEvent ev(nextTick, 0, ME_NOTEON, data.beatNote, data.beatVelo);
+ if (isMeasure) {
+ ev.setA(data.measureNote);
+ ev.setB(data.measureVelo);
+ }
+ ol->insert(ev); // insert note on
+ ev.setB(0);
+ ev.setTime(nextTick + 10);
+ ev.setB(0);
+ ol->insert(ev); // insert note off
+
+ nextTick = host->bar2tick(bar, beat+1, 0);
+ }
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void Metronom::getInitData(int* n, const unsigned char** p) const
+ {
+ *n = sizeof(data);
+ *p = (unsigned char*)&data;
+ }
+
+//---------------------------------------------------------
+// setInitData
+//---------------------------------------------------------
+
+void Metronom::setInitData(int n, const unsigned char* p)
+ {
+ memcpy((void*)&data, p, n);
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Metronom(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Metronom",
+ "MusE Simple Midi Metronom",
+ "0.1", // version string
+ MEMPI_GENERATOR,
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/metronom.h b/muse_qt4_evolution/midiplugins/metronom/metronom.h
new file mode 100644
index 00000000..3d570613
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/metronom.h
@@ -0,0 +1,53 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronom.h,v 1.3 2005/06/12 09:22:51 wschweer Exp $
+//
+// metronom - simple midi metronom
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __METRONOM_H__
+#define __METRONOM_H__
+
+#include "../libmidiplugin/mempi.h"
+
+//---------------------------------------------------------
+// metronom - simple midi metronom
+//---------------------------------------------------------
+
+class Metronom : public Mempi {
+
+ protected:
+ struct InitData {
+ char measureNote;
+ char measureVelo;
+ char beatNote;
+ char beatVelo;
+ } data;
+ MetronomGui* gui;
+ friend class MetronomGui;
+
+ unsigned int nextTick;
+ unsigned int lastTo;
+
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ Metronom(const char* name, const MempiHost*);
+ ~Metronom();
+ virtual bool init();
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp b/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp
new file mode 100644
index 00000000..e6705f7c
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp
@@ -0,0 +1,75 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronomgui.cpp,v 1.2 2005/10/05 17:02:03 lunar_shuttle Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "metronomgui.h"
+#include "metronom.h"
+
+//---------------------------------------------------------
+// MidiMetronomConfig
+//---------------------------------------------------------
+
+MetronomGui::MetronomGui(Metronom* f, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ metronom = f;
+ init();
+ connect(beatNote, SIGNAL(valueChanged(int)), SLOT(beatNoteChanged(int)));
+ connect(measureVelocity, SIGNAL(valueChanged(int)), SLOT(measureVelocityChanged(int)));
+ connect(measureNote, SIGNAL(valueChanged(int)), SLOT(measureNoteChanged(int)));
+ connect(beatVelocity, SIGNAL(valueChanged(int)), SLOT(beatVelocityChanged(int)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MetronomGui::init()
+ {
+ beatNote->setValue(metronom->data.beatNote);
+ measureNote->setValue(metronom->data.measureNote);
+ beatVelocity->setValue(metronom->data.beatVelo);
+ measureVelocity->setValue(metronom->data.measureVelo);
+ }
+
+//---------------------------------------------------------
+// beatNoteChanged
+//---------------------------------------------------------
+
+void MetronomGui::beatNoteChanged(int val)
+ {
+ metronom->data.beatNote = val;
+ }
+
+//---------------------------------------------------------
+// measureVelocityChanged
+//---------------------------------------------------------
+
+void MetronomGui::measureVelocityChanged(int val)
+ {
+ metronom->data.measureVelo = val;
+ }
+
+//---------------------------------------------------------
+// measureNoteChanged
+//---------------------------------------------------------
+
+void MetronomGui::measureNoteChanged(int val)
+ {
+ metronom->data.measureNote = val;
+ }
+
+//---------------------------------------------------------
+// beatVelocityChanged
+//---------------------------------------------------------
+
+void MetronomGui::beatVelocityChanged(int val)
+ {
+ metronom->data.beatVelo = val;
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/metronomgui.h b/muse_qt4_evolution/midiplugins/metronom/metronomgui.h
new file mode 100644
index 00000000..cceea61d
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/metronomgui.h
@@ -0,0 +1,36 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronomgui.h,v 1.3 2005/10/05 17:02:03 lunar_shuttle Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __METRONOMGUI_H__
+#define __METRONOMGUI_H__
+
+#include "ui_metronomgui.h"
+
+class Metronom;
+
+//---------------------------------------------------------
+// MetronomGui
+//---------------------------------------------------------
+
+class MetronomGui : public QDialog, public Ui::MetronomBase {
+ Q_OBJECT
+ Metronom* metronom;
+
+ private slots:
+ void beatNoteChanged(int);
+ void measureVelocityChanged(int);
+ void measureNoteChanged(int);
+ void beatVelocityChanged(int);
+
+ public:
+ MetronomGui(Metronom*, QWidget* parent=0);
+ void init();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui b/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui
new file mode 100644
index 00000000..188735d4
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui
@@ -0,0 +1,150 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>MetronomBase</class>
+ <widget class="QDialog" name="MetronomBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>429</width>
+ <height>164</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Metronome</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <family>ZappedChancellor</family>
+ <pointsize>48</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="toolTip" >
+ <string>Metronome</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Metronome</string>
+ </property>
+ <property name="text" >
+ <string>M</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Measure Note</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Measure Velocity</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QLabel" name="TextLabel4" >
+ <property name="text" >
+ <string>Beat Velocity</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Beat Note</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QSpinBox" name="beatNote" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSpinBox" name="measureVelocity" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="measureNote" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QSpinBox" name="beatVelocity" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt b/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt
new file mode 100644
index 00000000..b6803d8b
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt
@@ -0,0 +1,45 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( splitlayer_mocs splitlayergui.h )
+## QT4_WRAP_UI ( splitlayer_uis splitlayergui.ui )
+
+add_library ( splitlayer SHARED
+ splitlayer.cpp
+ splitlayergui.cpp
+ splitlayergui.h
+ ${splitlayer_mocs}
+ )
+target_link_libraries( splitlayer
+ midiplugin
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target splitlayer.so instead of
+# libsplitlayer.so
+# - use precompiled header files
+#
+set_target_properties ( splitlayer
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ splitlayer )
+
diff --git a/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp
new file mode 100644
index 00000000..7ea4ba3e
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp
@@ -0,0 +1,209 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "splitlayergui.h"
+#include "splitlayer.h"
+#include "midi.h"
+#include "midievent.h"
+
+//---------------------------------------------------------
+// SplitLayer
+//---------------------------------------------------------
+
+SplitLayer::SplitLayer(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ gui = 0;
+ }
+
+//---------------------------------------------------------
+// SplitLayer
+//---------------------------------------------------------
+
+SplitLayer::~SplitLayer()
+ {
+ if (gui)
+ delete gui;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool SplitLayer::init()
+ {
+ data.startVelo[0] = 0;
+ data.endVelo[0] = 128;
+ data.startPitch[0] = 0;
+ data.endPitch[0] = 128;
+ data.pitchOffset[0] = 0;
+ data.veloOffset[0] = 0;
+ for (int i = 1; i < MIDI_CHANNELS; ++i) {
+ data.startVelo[i] = 0;
+ data.endVelo[i] = 0;
+ data.startPitch[i] = 0;
+ data.endPitch[i] = 0;
+ data.pitchOffset[i] = 0;
+ data.veloOffset[i] = 0;
+ }
+ memset(notes, 0, 128 * sizeof(int));
+ learnMode = false;
+ gui = new SplitLayerGui(this, 0);
+ gui->hide();
+ gui->setWindowTitle(QString(name()));
+ gui->init();
+ return false;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void SplitLayer::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void SplitLayer::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void SplitLayer::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol)
+ {
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ if (i->type() != ME_NOTEON && i->type() != ME_NOTEOFF) {
+ ol->insert(*i);
+ continue;
+ }
+ int pitch = i->dataA();
+ int velo = i->dataB();
+ if (learnMode) {
+ if (learnStartPitch)
+ data.startPitch[learnChannel] = pitch;
+ else
+ data.endPitch[learnChannel] = pitch;
+ learnMode = false;
+ gui->sendResetLearnMode();
+ return;
+ }
+ if (i->type() == ME_NOTEON && velo) {
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ MidiEvent event(*i);
+ if (pitch >= data.startPitch[ch]
+ && pitch <= data.endPitch[ch]
+ && velo >= data.startVelo[ch]
+ && velo <= data.endVelo[ch]) {
+ notes[pitch] |= (1 << ch);
+ event.setChannel(ch);
+ int p = pitch;
+ int v = velo;
+ p += data.pitchOffset[ch];
+ if (p > 127)
+ p = 127;
+ else if (p < 0)
+ p = 0;
+ v += data.veloOffset[ch];
+ if (v > 127)
+ v = 127;
+ else if (v < 0)
+ v = 0;
+ event.setA(p);
+ event.setB(v);
+ ol->insert(event);
+ }
+ }
+ }
+ else {
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ if (notes[pitch] & (1 << ch)) {
+ MidiEvent event(*i);
+ event.setChannel(ch);
+ int p = pitch + data.pitchOffset[ch];
+ if (p < 0)
+ p = 0;
+ else if (p > 127)
+ p = 127;
+ event.setA(p);
+ ol->insert(event);
+ }
+ }
+ notes[pitch] = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void SplitLayer::getInitData(int* n, const unsigned char** p) const
+ {
+ *n = sizeof(data);
+ *p = (unsigned char*)&data;
+ }
+
+//---------------------------------------------------------
+// setInitData
+//---------------------------------------------------------
+
+void SplitLayer::setInitData(int n, const unsigned char* p)
+ {
+ memcpy((void*)&data, p, n);
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new SplitLayer(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "SplitLayer",
+ "MusE Midi Splits and Layers",
+ "0.1", // version string
+ MEMPI_FILTER,
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h
new file mode 100644
index 00000000..7c213c01
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h
@@ -0,0 +1,69 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __METRONOM_H__
+#define __METRONOM_H__
+
+#include "../libmidiplugin/mempi.h"
+
+static const int MIDI_CHANNELS = 16;
+
+//---------------------------------------------------------
+// SplitLayer - splits and layers for midi input
+//---------------------------------------------------------
+
+class SplitLayer : public Mempi {
+
+ protected:
+ struct InitData {
+ int startVelo[MIDI_CHANNELS];
+ int endVelo[MIDI_CHANNELS];
+ int startPitch[MIDI_CHANNELS];
+ int endPitch[MIDI_CHANNELS];
+ int pitchOffset[MIDI_CHANNELS];
+ int veloOffset[MIDI_CHANNELS];
+ } data;
+ int notes[128]; // bitmapped note-on/channel values
+ bool learnMode;
+ int learnChannel;
+ bool learnStartPitch;
+
+ SplitLayerGui* gui;
+ friend class SplitLayerGui;
+
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ SplitLayer(const char* name, const MempiHost*);
+ ~SplitLayer();
+ virtual bool init();
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp
new file mode 100644
index 00000000..b5d2bdb4
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp
@@ -0,0 +1,263 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "splitlayergui.h"
+#include "splitlayer.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// SplitLayerGui
+//---------------------------------------------------------
+
+SplitLayerGui::SplitLayerGui(SplitLayer* f, QWidget* parent)
+ : QWidget(parent)
+ {
+ sl = f;
+ QGridLayout* grid = new QGridLayout;
+ grid->setSpacing(1);
+ setLayout(grid);
+ QSignalMapper* m1 = new QSignalMapper(this);
+ QSignalMapper* m2 = new QSignalMapper(this);
+ QSignalMapper* m3 = new QSignalMapper(this);
+ QSignalMapper* m4 = new QSignalMapper(this);
+ QSignalMapper* m5 = new QSignalMapper(this);
+ QSignalMapper* m6 = new QSignalMapper(this);
+ connect(m1, SIGNAL(mapped(int)), SLOT(startPitchChanged(int)));
+ connect(m2, SIGNAL(mapped(int)), SLOT(endPitchChanged(int)));
+ connect(m3, SIGNAL(mapped(int)), SLOT(pitchOffsetChanged(int)));
+ connect(m4, SIGNAL(mapped(int)), SLOT(startVeloChanged(int)));
+ connect(m5, SIGNAL(mapped(int)), SLOT(endVeloChanged(int)));
+ connect(m6, SIGNAL(mapped(int)), SLOT(veloOffsetChanged(int)));
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ QLabel* l = new QLabel(QString("Ch %1").arg(i+1));
+ grid->addWidget(l, i, 0);
+
+ p1[i] = new Awl::PitchEdit(0);
+ p1[i]->setToolTip(tr("start pitch for split"));
+ connect(p1[i], SIGNAL(valueChanged(int)), m1, SLOT(map()));
+ m1->setMapping(p1[i], i);
+
+ a1[i] = new QAction(this);
+ a1[i]->setToolTip(tr("enable learn mode for start pitch"));
+ a1[i]->setCheckable(true);
+ QIcon icon;
+ icon.addFile(":/xpm/recordOn.svg", ICON_SIZE, QIcon::Normal, QIcon::On);
+ icon.addFile(":/xpm/recordOff.svg", ICON_SIZE, QIcon::Normal, QIcon::Off);
+ a1[i]->setIcon(icon);
+ a1[i]->setData(i);
+ QToolButton* rb1 = new QToolButton;
+ rb1->setDefaultAction(a1[i]);
+ connect(rb1, SIGNAL(triggered(QAction*)), SLOT(learnStartPitch(QAction*)));
+
+ p2[i] = new Awl::PitchEdit(0);
+ p2[i]->setToolTip(tr("end pitch for split"));
+ connect(p2[i], SIGNAL(valueChanged(int)), m2, SLOT(map()));
+ m2->setMapping(p2[i], i);
+
+ a2[i] = new QAction(this);
+ a2[i]->setToolTip(tr("enable learn mode for end pitch"));
+ a2[i]->setCheckable(true);
+ a2[i]->setIcon(icon);
+ a2[i]->setData(i);
+ QToolButton* rb2 = new QToolButton;
+ rb2->setDefaultAction(a2[i]);
+ connect(rb2, SIGNAL(triggered(QAction*)), SLOT(learnEndPitch(QAction*)));
+
+ p3[i] = new Awl::PitchEdit(0);
+ p3[i]->setToolTip(tr("pitch offset for split"));
+ p3[i]->setDeltaMode(true);
+ connect(p3[i], SIGNAL(valueChanged(int)), m3, SLOT(map()));
+ m3->setMapping(p3[i], i);
+
+ p4[i] = new QSpinBox;
+ p4[i]->setRange(0, 127);
+ p4[i]->setToolTip(tr("start velocity for split"));
+ connect(p4[i], SIGNAL(valueChanged(int)), m4, SLOT(map()));
+ m4->setMapping(p4[i], i);
+
+ p5[i] = new QSpinBox;
+ p5[i]->setRange(0, 127);
+ p5[i]->setToolTip(tr("end velocity for split"));
+ connect(p5[i], SIGNAL(valueChanged(int)), m5, SLOT(map()));
+ m5->setMapping(p5[i], i);
+
+ p6[i] = new QSpinBox;
+ p6[i]->setRange(-127, 127);
+ p6[i]->setToolTip(tr("velocity offset for split"));
+ connect(p6[i], SIGNAL(valueChanged(int)), m6, SLOT(map()));
+ m6->setMapping(p6[i], i);
+
+ grid->addWidget(p1[i], i, 1);
+ grid->addWidget(rb1, i, 2);
+ grid->addWidget(p2[i], i, 3);
+ grid->addWidget(rb2, i, 4);
+ grid->addWidget(p3[i], i, 5);
+ grid->addWidget(p4[i], i, 7);
+ grid->addWidget(p5[i], i, 8);
+ grid->addWidget(p6[i], i, 9);
+ }
+ QFrame* fr = new QFrame;
+ fr->setFrameStyle(QFrame::VLine | QFrame::Raised);
+ fr->setLineWidth(4);
+ grid->addWidget(fr, 0, 6, MIDI_CHANNELS, 1);
+
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("SplitLayerGui:creating pipe");
+ exit(-1);
+ }
+ fd2 = filedes[0];
+ fd1 = filedes[1];
+
+ QSocketNotifier* socket = new QSocketNotifier(fd2,
+ QSocketNotifier::Read, this);
+ connect(socket, SIGNAL(activated(int)), SLOT(resetLearnMode(int)));
+ init();
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void SplitLayerGui::init()
+ {
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ p1[i]->setValue(sl->data.startPitch[i]);
+ p2[i]->setValue(sl->data.endPitch[i]);
+ p3[i]->setValue(sl->data.pitchOffset[i]);
+ p4[i]->setValue(sl->data.startVelo[i]);
+ p5[i]->setValue(sl->data.endVelo[i]);
+ p6[i]->setValue(sl->data.veloOffset[i]);
+ }
+ }
+
+//---------------------------------------------------------
+// learnStartPitch
+//---------------------------------------------------------
+
+void SplitLayerGui::learnStartPitch(QAction* a)
+ {
+ sl->learnChannel = a->data().toInt();
+ sl->learnStartPitch = true;
+ sl->learnMode = true;
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ if (a != a1[i])
+ a1[i]->setChecked(false);
+ if (a != a2[i])
+ a2[i]->setChecked(false);
+ }
+ }
+
+//---------------------------------------------------------
+// learnEndPitch
+//---------------------------------------------------------
+
+void SplitLayerGui::learnEndPitch(QAction* a)
+ {
+ sl->learnChannel = a->data().toInt();
+ sl->learnStartPitch = false;
+ sl->learnMode = true;
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ if (a != a1[i])
+ a1[i]->setChecked(false);
+ if (a != a2[i])
+ a2[i]->setChecked(false);
+ }
+ }
+
+//---------------------------------------------------------
+// startPitchChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::startPitchChanged(int n)
+ {
+ sl->data.startPitch[n] = p1[n]->value();
+ }
+
+//---------------------------------------------------------
+// endPitchChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::endPitchChanged(int n)
+ {
+ sl->data.endPitch[n] = p2[n]->value();
+ }
+
+//---------------------------------------------------------
+// pitchOffsetChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::pitchOffsetChanged(int n)
+ {
+ sl->data.pitchOffset[n] = p3[n]->value();
+ }
+
+//---------------------------------------------------------
+// startVeloChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::startVeloChanged(int n)
+ {
+ sl->data.startVelo[n] = p4[n]->value();
+ }
+
+//---------------------------------------------------------
+// endVeloChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::endVeloChanged(int n)
+ {
+ sl->data.endVelo[n] = p5[n]->value();
+ }
+
+//---------------------------------------------------------
+// veloOffsetChanged
+//---------------------------------------------------------
+
+void SplitLayerGui::veloOffsetChanged(int n)
+ {
+ sl->data.veloOffset[n] = p6[n]->value();
+ }
+
+//---------------------------------------------------------
+// resetLearnMode
+//---------------------------------------------------------
+
+void SplitLayerGui::resetLearnMode(int fd)
+ {
+ char buffer[16];
+ read(fd, buffer, 16);
+
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ a1[i]->setChecked(false);
+ a2[i]->setChecked(false);
+ }
+ init();
+ }
+
+//---------------------------------------------------------
+// sendResetLearnMode
+//---------------------------------------------------------
+
+void SplitLayerGui::sendResetLearnMode()
+ {
+ write(fd1, "X", 1);
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h
new file mode 100644
index 00000000..4f2006ca
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h
@@ -0,0 +1,65 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SPLITLAYERGUI_H__
+#define __SPLITLAYERGUI_H__
+
+#include "awl/pitchedit.h"
+
+class SplitLayer;
+
+//---------------------------------------------------------
+// SplitLayerGui
+//---------------------------------------------------------
+
+class SplitLayerGui : public QWidget {
+ Q_OBJECT
+ SplitLayer* sl;
+
+ Awl::PitchEdit* p1[16];
+ Awl::PitchEdit* p2[16];
+ Awl::PitchEdit* p3[16];
+ QSpinBox* p4[16];
+ QSpinBox* p5[16];
+ QSpinBox* p6[16];
+
+ QAction* a1[16];
+ QAction* a2[16];
+ int fd1, fd2;
+
+ private slots:
+ void learnStartPitch(QAction*);
+ void learnEndPitch(QAction*);
+ void startPitchChanged(int);
+ void endPitchChanged(int);
+ void pitchOffsetChanged(int);
+ void resetLearnMode(int);
+ void startVeloChanged(int);
+ void endVeloChanged(int);
+ void veloOffsetChanged(int);
+
+ public:
+ SplitLayerGui(SplitLayer*, QWidget* parent=0);
+ void init();
+ void sendResetLearnMode();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/transform/CMakeLists.txt b/muse_qt4_evolution/midiplugins/transform/CMakeLists.txt
new file mode 100644
index 00000000..1ac2652c
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/transform/CMakeLists.txt
@@ -0,0 +1,45 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( transform_mocs transform.h )
+QT4_WRAP_UI ( transform_uis transform.ui )
+
+add_library ( transform SHARED
+ transform.cpp
+ ${transform_mocs}
+ ${transform_uis}
+ )
+
+target_link_libraries( transform
+ midiplugin
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target transform.so instead of
+# libtransform.so
+# - use precompiled header files
+#
+set_target_properties ( transform
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ transform )
+
diff --git a/muse_qt4_evolution/midiplugins/transform/transform.cpp b/muse_qt4_evolution/midiplugins/transform/transform.cpp
new file mode 100644
index 00000000..1376d2fc
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/transform/transform.cpp
@@ -0,0 +1,904 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: transform.cpp,v 1.8 2005/11/17 18:19:30 wschweer Exp $
+//
+// (C) Copyright 2001-2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "midievent.h"
+#include "transform.h"
+
+static int eventTypeTable[] = {
+ 1, 6, 4, 7, 8, 10, 11
+ };
+static int procVal2Map[] = { 0, 1, 2, 3, 4, 5, 6, 7, 10, 11 };
+
+struct TDict {
+ TransformFunction id;
+ const QString text;
+ TDict(TransformFunction f, const QString& s) : id(f), text(s) {}
+ };
+
+static const TDict oplist[] = {
+ TDict(Trans, QString("Transform")),
+ TDict(Delete, QString("Filter"))
+ };
+
+static const char* vall[] = {
+ "c","c#","d","d#","e","f","f#","g","g#","a","a#","h"
+ };
+static const char* valu[] = {
+ "C","C#","D","D#","E","F","F#","G","G#","A","A#","H"
+ };
+
+//---------------------------------------------------------
+// pitch2string
+//---------------------------------------------------------
+
+static QString pitch2string(int v)
+ {
+ if (v < 0 || v > 127)
+ return QString("----");
+ int octave = (v / 12) - 2;
+ QString o;
+ o.sprintf("%d", octave);
+ int i = v % 12;
+ QString s(octave < 0 ? valu[i] : vall[i]);
+ return s + o;
+ }
+//---------------------------------------------------------
+// Transform
+//---------------------------------------------------------
+
+Transform::Transform(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ }
+
+bool Transform::init()
+ {
+ gui = new TransformDialog(this, 0);
+ gui->setWindowTitle(QString(name()));
+ gui->show();
+
+ data.selEventOp = All;
+ data.selType = 0x90;
+ data.selVal1 = Ignore;
+ data.selVal1a = 0;
+ data.selVal1b = 0;
+ data.selVal2 = Ignore;
+ data.selVal2a = 0;
+ data.selVal2b = 0;
+ data.procEvent = Keep;
+ data.eventType = 0x90;
+ data.procVal1 = Keep;
+ data.procVal1a = 0;
+ data.procVal1b = 0;
+ data.procVal2 = Keep;
+ data.procVal2a = 0;
+ data.procVal2b = 0;
+ data.funcOp = Trans;
+ data.quantVal = host->division();
+ data.selChannel = Ignore;
+ data.selChannela = 0;
+ data.selChannelb = 0;
+ data.procChannel = Keep;
+ data.procChannela = 0;
+ data.procChannelb = 0;
+ return false;
+ }
+
+//---------------------------------------------------------
+// filterValOp
+//---------------------------------------------------------
+
+static bool filterValOp(ValOp op, int val, int val1, int val2)
+ {
+ switch (op) {
+ case Ignore:
+ break;
+ case Equal:
+ if (val != val1)
+ return true;
+ break;
+ case Unequal:
+ if (val == val1)
+ return true;
+ break;
+ case Higher:
+ if (val <= val1)
+ return true;
+ break;
+ case Lower:
+ if (val >= val1)
+ return true;
+ break;
+ case Inside:
+ if ((val < val1) || (val >= val2))
+ return true;
+ break;
+ case Outside:
+ if ((val >= val1) && (val < val2))
+ return true;
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// apply
+// apply Select filter
+// return 0 - not applied
+// 1 - drop event
+// 2 - event changed
+//---------------------------------------------------------
+
+void Transform::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol)
+ {
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ MidiEvent event(*i);
+ if (filterEvent(event) == 1)
+ continue;
+ ol->insert(event);
+ }
+ }
+
+//---------------------------------------------------------
+// filterEvent
+//---------------------------------------------------------
+
+int Transform::filterEvent(MidiEvent& event)
+ {
+ switch (data.selEventOp) {
+ case Equal:
+ switch(event.type()) {
+ case 0x90:
+ case 0x80:
+ if (data.selType != 0x90)
+ return 0;
+ break;
+ default:
+ if (event.type() != data.selType)
+ return 0;
+ break;
+ }
+ break;
+ case Unequal:
+ switch(event.type()) {
+ case 0x90:
+ case 0x80:
+ if (data.selType == 0x90)
+ return 0;
+ break;
+ default:
+ if (event.type() == data.selType)
+ return 0;
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ if (filterValOp(data.selVal1, event.dataA(), data.selVal1a, data.selVal1b))
+ return 0;
+ if (filterValOp(data.selVal2, event.dataB(), data.selVal2a, data.selVal2b))
+ return 0;
+ if (filterValOp(data.selChannel, event.channel(), data.selChannela, data.selChannelb))
+ return 0;
+
+ if (data.funcOp == Delete)
+ return 1; // discard event
+
+ // transform event
+ if (data.procEvent != Keep)
+ event.setType(data.eventType);
+
+ //---------------------------------------------------
+ // transform value A
+ //---------------------------------------------------
+
+ int val = event.dataA();
+ switch (data.procVal1) {
+ case Keep:
+ break;
+ case Plus:
+ val += data.procVal1a;
+ break;
+ case Minus:
+ val -= data.procVal1a;
+ break;
+ case Multiply:
+ val = int(val * (data.procVal1a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (data.procVal1a/100.0) + .5);
+ break;
+ case Fix:
+ val = data.procVal1a;
+ break;
+ case Value:
+ val = data.procVal2a;
+ break;
+ case Invert:
+ val = 127 - val;
+ break;
+ case ScaleMap:
+ printf("scale map not implemented\n");
+ break;
+ case Flip:
+ val = data.procVal1a - val;
+ break;
+ case Dynamic: // "crescendo"
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = data.procVal1b - data.procVal1a;
+ if (range > 0)
+ val = (rand() % range) + data.procVal1a;
+ else if (range < 0)
+ val = (rand() % -range) + data.procVal1b;
+ else
+ val = data.procVal1a;
+ }
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ event.setA(val);
+
+ //---------------------------------------------------
+ // transform value B
+ //---------------------------------------------------
+
+ val = event.dataB();
+ switch (data.procVal2) {
+ case Plus:
+ val += data.procVal2a;
+ break;
+ case Minus:
+ val -= data.procVal2a;
+ break;
+ case Multiply:
+ val = int(val * (data.procVal2a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (data.procVal2a/100.0) + .5);
+ break;
+ case Fix:
+ val = data.procVal2a;
+ break;
+ case Value:
+ val = data.procVal1a;
+ break;
+ case Invert:
+ val = 127 - val;
+ break;
+ case Dynamic:
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = data.procVal2b - data.procVal2a;
+ if (range > 0)
+ val = (rand() % range) + data.procVal2a;
+ else if (range < 0)
+ val = (rand() % -range) + data.procVal2b;
+ else
+ val = data.procVal2a;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ event.setB(val);
+
+ //---------------------------------------------------
+ // transform channel
+ //---------------------------------------------------
+
+ val = event.channel();
+ switch (data.procChannel) {
+ case Plus:
+ val += data.procChannela;
+ break;
+ case Minus:
+ val -= data.procChannela;
+ break;
+ case Multiply:
+ val = int(val * (data.procChannela/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (data.procChannela/100.0) + .5);
+ break;
+ case Fix:
+ val = data.procChannela;
+ break;
+ case Value:
+ val = data.procChannela;
+ break;
+ case Invert:
+ val = 16 - val;
+ break;
+ case Dynamic:
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = data.procChannelb - data.procChannela;
+ if (range > 0)
+ val = (rand() % range) + data.procChannela;
+ else if (range < 0)
+ val = (rand() % -range) + data.procChannelb;
+ else
+ val = data.procChannela;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 15)
+ val = 15;
+ event.setChannel(val);
+ return 2;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void Transform::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void Transform::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// TransformDialog
+// Widgets:
+// selEventOp selType
+// selVal1Op selVal1a selVal1b
+// selVal2Op selVal2a selVal2b
+//
+// procEventOp procType
+// procVal1Op procVal1a procVal1b
+// procVal2Op procVal2a procVal2b
+// funcOp funcQuantVal
+// buttonNew buttonDelete
+//
+// selChannelOp selChannelVala selChannelValb
+// procChannelOp procChannelVala procChannelValb
+//---------------------------------------------------------
+
+TransformDialog::TransformDialog(Transform* tf, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ cmt = tf;
+
+ for (unsigned i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i)
+ funcOp->addItem(oplist[i].text, i);
+
+ connect(selEventOp, SIGNAL(activated(int)), SLOT(selEventOpSel(int)));
+ connect(selType, SIGNAL(activated(int)), SLOT(selTypeSel(int)));
+ connect(selVal1Op, SIGNAL(activated(int)), SLOT(selVal1OpSel(int)));
+ connect(selVal2Op, SIGNAL(activated(int)), SLOT(selVal2OpSel(int)));
+ connect(procEventOp, SIGNAL(activated(int)), SLOT(procEventOpSel(int)));
+ connect(procType, SIGNAL(activated(int)), SLOT(procEventTypeSel(int)));
+ connect(procVal1Op, SIGNAL(activated(int)), SLOT(procVal1OpSel(int)));
+ connect(procVal2Op, SIGNAL(activated(int)), SLOT(procVal2OpSel(int)));
+ connect(funcOp, SIGNAL(activated(int)), SLOT(funcOpSel(int)));
+ connect(selVal1a, SIGNAL(valueChanged(int)), SLOT(selVal1aChanged(int)));
+ connect(selVal1b, SIGNAL(valueChanged(int)), SLOT(selVal1bChanged(int)));
+ connect(selVal2a, SIGNAL(valueChanged(int)), SLOT(selVal2aChanged(int)));
+ connect(selVal2b, SIGNAL(valueChanged(int)), SLOT(selVal2bChanged(int)));
+ connect(procVal1a, SIGNAL(valueChanged(int)), SLOT(procVal1aChanged(int)));
+ connect(procVal1b, SIGNAL(valueChanged(int)), SLOT(procVal1bChanged(int)));
+ connect(procVal2a, SIGNAL(valueChanged(int)), SLOT(procVal2aChanged(int)));
+ connect(procVal2b, SIGNAL(valueChanged(int)), SLOT(procVal2bChanged(int)));
+ connect(selChannelOp, SIGNAL(activated(int)), SLOT(selChannelOpSel(int)));
+ connect(selChannelVala, SIGNAL(valueChanged(int)), SLOT(selChannelValaChanged(int)));
+ connect(selChannelValb, SIGNAL(valueChanged(int)), SLOT(selChannelValbChanged(int)));
+ connect(procChannelOp, SIGNAL(activated(int)), SLOT(procChannelOpSel(int)));
+ connect(procChannelVala, SIGNAL(valueChanged(int)), SLOT(procChannelValaChanged(int)));
+ connect(procChannelValb, SIGNAL(valueChanged(int)), SLOT(procChannelValbChanged(int)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void TransformDialog::init()
+ {
+ selEventOp->setCurrentIndex(cmt->data.selEventOp);
+ selEventOpSel(cmt->data.selEventOp);
+
+ for (unsigned i = 0; i < sizeof(eventTypeTable)/sizeof(*eventTypeTable); ++i) {
+ if (eventTypeTable[i] == cmt->data.selType) {
+ selType->setCurrentIndex(i);
+ break;
+ }
+ }
+
+ selVal1Op->setCurrentIndex(cmt->data.selVal1);
+ selVal1OpSel(cmt->data.selVal1);
+
+ selVal2Op->setCurrentIndex(cmt->data.selVal2);
+ selVal2OpSel(cmt->data.selVal2);
+
+ selChannelOp->setCurrentIndex(cmt->data.selChannel);
+ selChannelOpSel(cmt->data.selChannel);
+
+ {
+ unsigned i;
+ for (i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i) {
+ if (oplist[i].id == cmt->data.funcOp) {
+ funcOp->setCurrentIndex(i);
+ break;
+ }
+ }
+ if (i == sizeof(oplist)/sizeof(*oplist))
+ printf("internal error: bad OpCode\n");
+ funcOpSel(i);
+ }
+
+ procEventOp->setCurrentIndex(cmt->data.procEvent);
+ procEventOpSel(cmt->data.procEvent);
+
+ procVal1Op->setCurrentIndex(cmt->data.procVal1);
+ procVal1OpSel(cmt->data.procVal1);
+
+ for (unsigned i = 0; i < sizeof(procVal2Map)/sizeof(*procVal2Map); ++i) {
+ if (procVal2Map[i] == cmt->data.procVal2) {
+ procVal2Op->setCurrentIndex(i);
+ break;
+ }
+ }
+
+ selVal1a->setValue(cmt->data.selVal1a);
+ selVal1b->setValue(cmt->data.selVal1b);
+ selVal1aChanged(cmt->data.selVal1a);
+ selVal1bChanged(cmt->data.selVal1b);
+
+ selVal2a->setValue(cmt->data.selVal2a);
+ selVal2b->setValue(cmt->data.selVal2b);
+
+ selChannelVala->setValue(cmt->data.selChannela);
+ selChannelValb->setValue(cmt->data.selChannelb);
+
+ procVal1a->setValue(cmt->data.procVal1a);
+ procVal1b->setValue(cmt->data.procVal1b);
+
+ procVal2a->setValue(cmt->data.procVal2a);
+ procVal2b->setValue(cmt->data.procVal2b);
+
+ procChannelVala->setValue(cmt->data.procChannela);
+ procChannelValb->setValue(cmt->data.procChannelb);
+ }
+
+//---------------------------------------------------------
+// setValOp
+//---------------------------------------------------------
+
+void TransformDialog::setValOp(QWidget* a, QWidget* b, ValOp op)
+ {
+ switch (op) {
+ case Ignore:
+ a->setEnabled(false);
+ b->setEnabled(false);
+ break;
+ case Equal:
+ case Unequal:
+ case Higher:
+ case Lower:
+ a->setEnabled(true);
+ b->setEnabled(false);
+ break;
+ case Inside:
+ case Outside:
+ a->setEnabled(true);
+ b->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// selEventOpSel
+//---------------------------------------------------------
+
+void TransformDialog::selEventOpSel(int val)
+ {
+ selType->setEnabled(val != All);
+ cmt->data.selEventOp = ValOp(val);
+ selVal1aChanged(cmt->data.selVal1a);
+ selVal1bChanged(cmt->data.selVal1b);
+ }
+
+//---------------------------------------------------------
+// selTypeSel
+//---------------------------------------------------------
+
+void TransformDialog::selTypeSel(int val)
+ {
+ cmt->data.selType = eventTypeTable[val];
+ selVal1aChanged(cmt->data.selVal1a);
+ selVal1bChanged(cmt->data.selVal1b);
+ }
+
+//---------------------------------------------------------
+// selVal1OpSel
+//---------------------------------------------------------
+
+void TransformDialog::selVal1OpSel(int val)
+ {
+ setValOp(selVal1a, selVal1b, ValOp(val));
+ cmt->data.selVal1 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selVal2OpSel
+//---------------------------------------------------------
+
+void TransformDialog::selVal2OpSel(int val)
+ {
+ setValOp(selVal2a, selVal2b, ValOp(val));
+ cmt->data.selVal2 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// procEventOpSel
+//---------------------------------------------------------
+
+void TransformDialog::procEventOpSel(int val)
+ {
+ TransformOperator op = val == 0 ? Keep : Fix;
+ procType->setEnabled(op == Fix);
+ cmt->data.procEvent = op;
+ }
+
+//---------------------------------------------------------
+// procEventTypeSel
+//---------------------------------------------------------
+
+void TransformDialog::procEventTypeSel(int val)
+ {
+ cmt->data.eventType = eventTypeTable[val];
+ }
+
+//---------------------------------------------------------
+// procVal1OpSel
+//---------------------------------------------------------
+
+void TransformDialog::procVal1OpSel(int val)
+ {
+ cmt->data.procVal1 = TransformOperator(val);
+ switch(TransformOperator(val)) {
+ case Keep:
+ case Invert:
+ procVal1a->setEnabled(false);
+ procVal1b->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procVal1a->setEnabled(true);
+ procVal1b->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ case Flip:
+ procVal1a->setEnabled(true);
+ procVal1b->setEnabled(false);
+ break;
+ case Random:
+ case ScaleMap:
+ case Dynamic:
+ procVal1a->setEnabled(true);
+ procVal1b->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procVal2OpSel
+//---------------------------------------------------------
+
+void TransformDialog::procVal2OpSel(int val)
+ {
+ TransformOperator op = TransformOperator(procVal2Map[val]);
+ cmt->data.procVal2 = op;
+
+ switch (op) {
+ case Keep:
+ case Invert:
+ procVal2a->setEnabled(false);
+ procVal2b->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procVal2a->setEnabled(true);
+ procVal2b->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ procVal2a->setEnabled(true);
+ procVal2b->setEnabled(false);
+ break;
+ case Random:
+ case Dynamic:
+ procVal2a->setEnabled(true);
+ procVal2b->setEnabled(true);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// funcOpSel
+//---------------------------------------------------------
+
+void TransformDialog::funcOpSel(int val)
+ {
+ TransformFunction op = oplist[val].id;
+
+ bool isFuncOp(op == Trans);
+
+ procEventOp->setEnabled(isFuncOp);
+ procType->setEnabled(isFuncOp);
+ procVal1Op->setEnabled(isFuncOp);
+ procVal1a->setEnabled(isFuncOp);
+ procVal1b->setEnabled(isFuncOp);
+ procVal2Op->setEnabled(isFuncOp);
+ procVal2a->setEnabled(isFuncOp);
+ procVal2b->setEnabled(isFuncOp);
+ procChannelOp->setEnabled(isFuncOp);
+ procChannelVala->setEnabled(isFuncOp);
+ procChannelValb->setEnabled(isFuncOp);
+ if (isFuncOp) {
+ procEventOpSel(cmt->data.procEvent);
+ procVal1OpSel(cmt->data.procVal1);
+ procVal2OpSel(cmt->data.procVal2);
+ procChannelOpSel(cmt->data.procChannel);
+ }
+ cmt->data.funcOp = op;
+ }
+
+//---------------------------------------------------------
+// selVal1aChanged
+//---------------------------------------------------------
+
+void TransformDialog::selVal1aChanged(int val)
+ {
+ cmt->data.selVal1a = val;
+ if ((cmt->data.selEventOp != All)
+ && (cmt->data.selType == 0x90)) {
+ selVal1a->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1a->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal1bChanged
+//---------------------------------------------------------
+
+void TransformDialog::selVal1bChanged(int val)
+ {
+ cmt->data.selVal1b = val;
+ if ((cmt->data.selEventOp != All)
+ && (cmt->data.selType == 0x90)) {
+ selVal1b->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1b->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal2aChanged
+//---------------------------------------------------------
+
+void TransformDialog::selVal2aChanged(int val)
+ {
+ cmt->data.selVal2a = val;
+ }
+
+//---------------------------------------------------------
+// selVal2bChanged
+//---------------------------------------------------------
+
+void TransformDialog::selVal2bChanged(int val)
+ {
+ cmt->data.selVal2b = val;
+ }
+
+//---------------------------------------------------------
+// procVal1aChanged
+//---------------------------------------------------------
+
+void TransformDialog::procVal1aChanged(int val)
+ {
+ cmt->data.procVal1a = val;
+ }
+
+//---------------------------------------------------------
+// procVal1bChanged
+//---------------------------------------------------------
+
+void TransformDialog::procVal1bChanged(int val)
+ {
+ cmt->data.procVal1b = val;
+ }
+
+//---------------------------------------------------------
+// procVal2aChanged
+//---------------------------------------------------------
+
+void TransformDialog::procVal2aChanged(int val)
+ {
+ cmt->data.procVal2a = val;
+ }
+
+//---------------------------------------------------------
+// procVal2bChanged
+//---------------------------------------------------------
+
+void TransformDialog::procVal2bChanged(int val)
+ {
+ cmt->data.procVal2b = val;
+ }
+
+//---------------------------------------------------------
+// selChannelOpSel
+//---------------------------------------------------------
+
+void TransformDialog::selChannelOpSel(int val)
+ {
+ setValOp(selChannelVala, selChannelValb, ValOp(val));
+ cmt->data.selChannel = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selChannelValaChanged
+//---------------------------------------------------------
+
+void TransformDialog::selChannelValaChanged(int val)
+ {
+ cmt->data.selChannela = val;
+ }
+
+//---------------------------------------------------------
+// selChannelValbChanged
+//---------------------------------------------------------
+
+void TransformDialog::selChannelValbChanged(int val)
+ {
+ cmt->data.selChannelb = val;
+ }
+
+//---------------------------------------------------------
+// procChannelOpSel
+//---------------------------------------------------------
+
+void TransformDialog::procChannelOpSel(int val)
+ {
+ cmt->data.procChannel = TransformOperator(val);
+ switch(TransformOperator(val)) {
+ case Keep:
+ case Invert:
+ procChannelVala->setEnabled(false);
+ procChannelValb->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procChannelVala->setEnabled(true);
+ procChannelValb->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ case Flip:
+ procChannelVala->setEnabled(true);
+ procChannelValb->setEnabled(false);
+ break;
+ case Random:
+ case ScaleMap:
+ case Dynamic:
+ procChannelVala->setEnabled(true);
+ procChannelValb->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procChannelValaChanged
+//---------------------------------------------------------
+
+void TransformDialog::procChannelValaChanged(int val)
+ {
+ cmt->data.procChannela = val;
+ }
+
+//---------------------------------------------------------
+// procChannelValbChanged
+//---------------------------------------------------------
+
+void TransformDialog::procChannelValbChanged(int val)
+ {
+ cmt->data.procChannelb = val;
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void Transform::getInitData(int* n, const unsigned char** p) const
+ {
+ *n = sizeof(data);
+ *p = (unsigned char*)&data;
+ }
+
+//---------------------------------------------------------
+// setInitData
+//---------------------------------------------------------
+
+void Transform::setInitData(int n, const unsigned char* p)
+ {
+ memcpy((void*)&data, p, n);
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Transform(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Transformator",
+ "MusE Midi Event Transformator",
+ "0.1", // version string
+ MEMPI_FILTER,
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/transform/transform.h b/muse_qt4_evolution/midiplugins/transform/transform.h
new file mode 100644
index 00000000..6f68698d
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/transform/transform.h
@@ -0,0 +1,126 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: transform.h,v 1.5 2005/10/05 17:02:03 lunar_shuttle Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TRANSFORM_H__
+#define __TRANSFORM_H__
+
+#include "../libmidiplugin/mempi.h"
+#include "ui_transform.h"
+
+class Transform;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+enum ValOp {
+ All=0, Ignore=0, Equal=1, Unequal=2, Higher=3, Lower=4,
+ Inside=5, Outside=6
+ };
+
+enum TransformFunction {
+ Select, Quantize, Delete, Trans, Insert, Copy, Extract
+ };
+
+enum TransformOperator {
+ Keep, Plus, Minus, Multiply, Divide, Fix, Value, Invert,
+ ScaleMap, Flip, Dynamic, Random
+ };
+
+//---------------------------------------------------------
+// TransformDialog
+//---------------------------------------------------------
+
+class TransformDialog : public QDialog, public Ui::TransformDialogBase {
+ Q_OBJECT
+ Transform* cmt;
+
+ void setValOp(QWidget* a, QWidget* b, ValOp op);
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void selEventOpSel(int);
+ void selTypeSel(int);
+ void selVal1OpSel(int);
+ void selVal2OpSel(int);
+ void procEventOpSel(int);
+ void procEventTypeSel(int);
+ void procVal1OpSel(int);
+ void procVal2OpSel(int);
+ void funcOpSel(int);
+ void selVal1aChanged(int);
+ void selVal1bChanged(int);
+ void selVal2aChanged(int);
+ void selVal2bChanged(int);
+ void procVal1aChanged(int);
+ void procVal1bChanged(int);
+ void procVal2aChanged(int);
+ void procVal2bChanged(int);
+ void selChannelOpSel(int);
+ void selChannelValaChanged(int);
+ void selChannelValbChanged(int);
+ void procChannelOpSel(int);
+ void procChannelValaChanged(int);
+ void procChannelValbChanged(int);
+
+ public:
+ TransformDialog(Transform*, QWidget* parent);
+ void init();
+ };
+
+//---------------------------------------------------------
+// Transform
+//---------------------------------------------------------
+
+class Transform : public Mempi {
+ int filterEvent(MidiEvent& event);
+
+ public:
+ struct initData {
+ ValOp selEventOp;
+ int selType;
+
+ ValOp selVal1;
+ int selVal1a, selVal1b;
+ ValOp selVal2;
+ int selVal2a, selVal2b;
+ ValOp selChannel;
+ int selChannela, selChannelb;
+
+ TransformOperator procEvent;
+ int eventType;
+ TransformOperator procVal1;
+ int procVal1a, procVal1b;
+ TransformOperator procVal2;
+ int procVal2a, procVal2b;
+ TransformOperator procChannel;
+ int procChannela, procChannelb;
+
+ TransformFunction funcOp;
+ int quantVal;
+ } data;
+
+ TransformDialog* gui;
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ Transform(const char* name, const MempiHost*);
+ virtual bool init();
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/transform/transform.ui b/muse_qt4_evolution/midiplugins/transform/transform.ui
new file mode 100644
index 00000000..c23cf343
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/transform/transform.ui
@@ -0,0 +1,616 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>TransformDialogBase</class>
+ <widget class="QDialog" name="TransformDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>630</width>
+ <height>418</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Input Transformator</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBox3" >
+ <property name="title" >
+ <string>Filter</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QComboBox" name="selEventOp" >
+ <item>
+ <property name="text" >
+ <string>All</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QComboBox" name="selType" >
+ <item>
+ <property name="text" >
+ <string>Note</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Poly Pressure</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Control Change</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Aftertouch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pitch Bend</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>RPN</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Event Type</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="selVal1Op" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="selVal1b" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="selVal2b" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="selVal1a" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QComboBox" name="selVal2Op" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QComboBox" name="selChannelOp" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="TextLabel2_2" >
+ <property name="text" >
+ <string>Channel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="selVal2a" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="selChannelVala" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QSpinBox" name="selChannelValb" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="GroupBox5" >
+ <property name="title" >
+ <string>Processing</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel5" >
+ <property name="text" >
+ <string>Event Type</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QComboBox" name="procEventOp" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QComboBox" name="procType" >
+ <item>
+ <property name="text" >
+ <string>Note</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Poly Pressure</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Control Change</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Aftertouch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pitch Bend</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>RPN</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="procVal1Op" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>ScaleMap</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Flip</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Dyn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Random</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="TextLabel6" >
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="TextLabel7" >
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="procVal1b" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="procVal2b" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QSpinBox" name="procChannelValb" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QComboBox" name="procVal2Op" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Dyn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Random</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QComboBox" name="procChannelOp" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Dyn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Random</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="TextLabel2_2_2" >
+ <property name="text" >
+ <string>Channel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QComboBox" name="funcOp" />
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="procVal1a" />
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="procVal2a" />
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="procChannelVala" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+ <tabstop>selEventOp</tabstop>
+ <tabstop>selType</tabstop>
+ <tabstop>selVal1Op</tabstop>
+ <tabstop>selVal1a</tabstop>
+ <tabstop>selVal1b</tabstop>
+ <tabstop>selVal2Op</tabstop>
+ <tabstop>selVal2a</tabstop>
+ <tabstop>selVal2b</tabstop>
+ <tabstop>selChannelOp</tabstop>
+ <tabstop>selChannelVala</tabstop>
+ <tabstop>selChannelValb</tabstop>
+ <tabstop>procEventOp</tabstop>
+ <tabstop>procType</tabstop>
+ <tabstop>procVal1Op</tabstop>
+ <tabstop>procVal1b</tabstop>
+ <tabstop>procVal2Op</tabstop>
+ <tabstop>procVal2b</tabstop>
+ <tabstop>procChannelOp</tabstop>
+ <tabstop>procChannelValb</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt b/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt
new file mode 100644
index 00000000..397ccf81
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt
@@ -0,0 +1,47 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( trigg_mocs trigggui.h )
+QT4_WRAP_UI ( trigg_uis trigggui.ui )
+
+add_library ( trigg SHARED
+ trigg.cpp
+ trigggui.cpp
+ trigggui.h
+ ${trigg_mocs}
+ ${trigg_uis}
+ )
+
+target_link_libraries( trigg
+ midiplugin awl
+ ${QT_LIBRARIES}
+ )
+
+# - tell cmake to name target name.so instead of
+# libname.so
+# - use precompiled header files
+#
+set_target_properties ( trigg
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ trigg )
+
diff --git a/muse_qt4_evolution/midiplugins/trigg/trigg.cpp b/muse_qt4_evolution/midiplugins/trigg/trigg.cpp
new file mode 100644
index 00000000..fb3703cb
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/trigg.cpp
@@ -0,0 +1,131 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $
+//
+// filter - simple midi filter
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "trigggui.h"
+#include "trigg.h"
+#include "midi.h"
+#include "midievent.h"
+
+//---------------------------------------------------------
+// Trigg
+//---------------------------------------------------------
+
+Trigg::Trigg(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ data.note=30; // allow any events
+ data.velocity=127;
+ gui = 0;
+ }
+
+//---------------------------------------------------------
+// Trigg
+//---------------------------------------------------------
+
+Trigg::~Trigg()
+ {
+ if (gui)
+ delete gui;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool Trigg::init()
+ {
+ gui = new TriggGui(this, 0);
+ gui->setWindowTitle("MusE: "+QString(name()));
+ gui->show();
+ return false;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void Trigg::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void Trigg::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Trigg::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol)
+ {
+
+ for (iMidiEvent i = il->begin(); i != il->end(); ++i) {
+ MidiEvent temp=*i;
+ if (temp.isNote() || temp.isNoteOff())
+ {
+ // for each event modify note and velocity
+ printf("a=%d b=%d isNote=%d isNoteOff=%d\n",temp.dataA(),temp.dataB(),temp.isNote(),temp.isNoteOff());
+ temp.setA(data.note);
+ if (!temp.isNoteOff())
+ temp.setB(data.velocity);
+ printf("AFTER a=%d b=%d\n",temp.dataA(),temp.dataB());
+ }
+ ol->insert(temp);
+ }
+ }
+
+void Trigg::getInitData(int* n, const unsigned char** p) const
+ {
+ *n = sizeof(data);
+ *p = (unsigned char*)&data;
+ printf("::getInitData note=%d vel=%d\n",data.note,data.velocity);
+ }
+
+void Trigg::setInitData(int n, const unsigned char* p)
+ {
+ memcpy((void*)&data, p, n);
+ if (gui)
+ gui->init();
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Trigg(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Trigg",
+ "Any note triggers a specified note with specified velocity",
+ "1.0", // filter version string
+ MEMPI_FILTER, // plugin type
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/trigg/trigg.h b/muse_qt4_evolution/midiplugins/trigg/trigg.h
new file mode 100644
index 00000000..c29a06a0
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/trigg.h
@@ -0,0 +1,49 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $
+//
+// filter - simple midi filter
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TRIGG_H__
+#define __TRIGG_H__
+
+#include "../libmidiplugin/mempi.h"
+
+//---------------------------------------------------------
+// filter - simple midi filter
+//---------------------------------------------------------
+class Trigg : public Mempi {
+ struct initData {
+ int note;
+ int velocity;
+ } data;
+ friend class TriggGui;
+
+ TriggGui* gui;
+
+ virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ public:
+ Trigg(const char* name, const MempiHost*);
+ ~Trigg();
+ virtual bool init();
+
+ void setNote(int t) { data.note = t; }
+ void setVelocity(int t) { data.velocity = t; }
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp b/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp
new file mode 100644
index 00000000..0fd3c4c6
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "trigggui.h"
+#include "trigg.h"
+
+//---------------------------------------------------------
+// MidiTriggConfig
+//---------------------------------------------------------
+
+TriggGui::TriggGui(Trigg* f, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ filter = f;
+
+ connect(noteEntry, SIGNAL(valueChanged(int)), SLOT(setNote(int)));
+ connect(velocityEntry, SIGNAL(valueChanged(int)), SLOT(setVelocity(int)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+void TriggGui::init()
+ {
+ Trigg::initData *data;
+ int n;
+ filter->getInitData(&n,(const unsigned char **)&data);
+ printf("::init note=%d vel=%d\n",data->note,data->velocity);
+ noteEntry->setValue(data->note);
+ velocityEntry->setValue(data->velocity);
+ }
+
+//---------------------------------------------------------
+// setNote
+//---------------------------------------------------------
+void TriggGui::setNote(int value)
+ {
+ printf("TriggGui::setNote %d\n",value);
+ filter->setNote(value);
+ }
+
+//---------------------------------------------------------
+// setVelocity
+//---------------------------------------------------------
+void TriggGui::setVelocity(int value)
+ {
+ printf("TriggGui::setVelocity %d\n",value);
+ filter->setVelocity(value);
+ }
+
diff --git a/muse_qt4_evolution/midiplugins/trigg/trigggui.h b/muse_qt4_evolution/midiplugins/trigg/trigggui.h
new file mode 100644
index 00000000..f4c597fa
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/trigggui.h
@@ -0,0 +1,48 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filtergui.h,v 1.4 2005/11/06 17:49:34 wschweer Exp $
+//
+// (C) Copyright 2005 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __FILTERGUI_H__
+#define __FILTERGUI_H__
+
+#include "ui_trigggui.h"
+
+class Trigg;
+
+enum {
+ MIDI_FILTER_NOTEON = 1,
+ MIDI_FILTER_POLYP = 2,
+ MIDI_FILTER_CTRL = 4,
+ MIDI_FILTER_PROGRAM = 8,
+ MIDI_FILTER_AT = 16,
+ MIDI_FILTER_PITCH = 32,
+ MIDI_FILTER_SYSEX = 64
+ };
+
+//---------------------------------------------------------
+// TriggGui
+//---------------------------------------------------------
+
+class TriggGui : public QDialog, public Ui::TriggBase {
+ Q_OBJECT
+
+ Trigg* filter;
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void setNote(int );
+ void setVelocity(int );
+
+ public:
+ TriggGui(Trigg*, QWidget* parent=0);
+ void init();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/midiplugins/trigg/trigggui.ui b/muse_qt4_evolution/midiplugins/trigg/trigggui.ui
new file mode 100644
index 00000000..5c096e24
--- /dev/null
+++ b/muse_qt4_evolution/midiplugins/trigg/trigggui.ui
@@ -0,0 +1,109 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>TriggBase</class>
+ <widget class="QDialog" name="TriggBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>233</width>
+ <height>125</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Input Trigg</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="GroupBoxx" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Trigg</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Velocity</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="noteEntry" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="value" >
+ <number>30</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSpinBox" name="velocityEntry" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Note</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse.pro b/muse_qt4_evolution/muse.pro
new file mode 100644
index 00000000..ce277be6
--- /dev/null
+++ b/muse_qt4_evolution/muse.pro
@@ -0,0 +1,240 @@
+TRANSLATIONS = \
+ share/locale/muse_de.ts \
+ share/locale/muse_es.ts \
+ share/locale/muse_fr.ts \
+ share/locale/muse_ru.ts \
+ share/locale/muse_sv_SE.ts \
+ share/locale/muse_it.ts
+
+SOURCES = \
+ plugins/freeverb/freeverb.cpp \
+ plugins/freeverb/revmodel.cpp \
+ plugins/doublechorus/doublechorus.cpp \
+ plugins/doublechorus/simplechorusmodel.cpp \
+ plugins/doublechorus/doublechorusmodel.cpp \
+ awl/mslider.cpp \
+ awl/volslider.cpp \
+ awl/pitchlabel.cpp \
+ awl/posedit.cpp \
+ awl/combobox.cpp \
+ awl/volknob.cpp \
+ awl/slider.cpp \
+ awl/awl.cpp \
+ awl/tempolabel.cpp \
+ awl/floatentry.cpp \
+ awl/knob.cpp \
+ awl/tempoedit.cpp \
+ awl/midipanknob.cpp \
+ awl/tcanvas.cpp \
+ awl/panentry.cpp \
+ awl/utils.cpp \
+ awl/poslabel.cpp \
+ awl/midimslider.cpp \
+ awl/awlplugin.cpp \
+ awl/midipanentry.cpp \
+ awl/pitchedit.cpp \
+ awl/midimeter.cpp \
+ awl/volentry.cpp \
+ awl/aslider.cpp \
+ awl/midivolentry.cpp \
+ awl/checkbox.cpp \
+ awl/panknob.cpp \
+ awl/sigedit.cpp \
+ awl/ltest.cpp \
+ midiplugins/metronom/metronomgui.cpp \
+ midiplugins/metronom/metronom.cpp \
+ midiplugins/dump/dump.cpp \
+ midiplugins/filter/ctrlcombo.cpp \
+ midiplugins/filter/filtergui.cpp \
+ midiplugins/filter/filter.cpp \
+ midiplugins/libmidiplugin/mempi.cpp \
+ midiplugins/libmidiplugin/midievent.cpp \
+ midiplugins/transform/transform.cpp \
+ midiplugins/trigg/trigggui.cpp \
+ midiplugins/trigg/trigg.cpp \
+ midiplugins/splitlayer/splitlayergui.cpp \
+ midiplugins/splitlayer/splitlayer.cpp \
+ al/xml.cpp \
+ al/marker.cpp \
+ al/sig.cpp \
+ al/tempo.cpp \
+ al/al.cpp \
+ al/pos.cpp \
+ grepmidi/grepmidi.cpp \
+ synti/deicsonze/deicsonze.cpp \
+ synti/deicsonze/deicsonzepreset.cpp \
+ synti/deicsonze/deicsonzegui.cpp \
+ synti/deicsonze/deicsonzeplugin.cpp \
+ synti/fluid/fluid.cpp \
+ synti/fluid/fluidgui.cpp \
+ synti/s1/s1.cpp \
+ synti/vam/vam.cpp \
+ synti/vam/vamgui.cpp \
+ synti/simpledrums/simpledrums.cpp \
+ synti/simpledrums/ssplugin.cpp \
+ synti/simpledrums/simpledrumsgui.cpp \
+ synti/simpledrums/ssplugingui.cpp \
+ synti/organ/organgui.cpp \
+ synti/organ/organ.cpp \
+ synti/fluidsynth/fluidsynthgui.cpp \
+ synti/fluidsynth/fluidsynti.cpp \
+ synti/libsynti/poly.cpp \
+ synti/libsynti/mess.cpp \
+ synti/libsynti/mono.cpp \
+ synti/libsynti/midievent.cpp \
+ synti/libsynti/gui.cpp \
+ synti/mus/mus.cpp \
+ synti/zynaddsubfx/main.cpp \
+ muse/arranger/arranger.cpp \
+ muse/arranger/trackdrag.cpp \
+ muse/arranger/partdrag.cpp \
+ muse/arranger/tlwlayout.cpp \
+ muse/arranger/tlswidget.cpp \
+ muse/arranger/canvas.cpp \
+ muse/arranger/configtrack.cpp \
+ muse/arranger/tllineedit.cpp \
+ muse/arranger/tlwidget.cpp \
+ muse/arranger/trackinfo.cpp \
+ muse/ctrl/ctrleditor.cpp \
+ muse/ctrl/configmidictrl.cpp \
+ muse/ctrl/ctrldialog.cpp \
+ muse/widgets/tools.cpp \
+ muse/widgets/shortcutconfig.cpp \
+ muse/widgets/dentry.cpp \
+ muse/widgets/comboQuant.cpp \
+ muse/widgets/midisync.cpp \
+ muse/widgets/mixdowndialog.cpp \
+ muse/widgets/floatlabel.cpp \
+ muse/widgets/splitter.cpp \
+ muse/widgets/menutitle.cpp \
+ muse/widgets/doublelabel.cpp \
+ muse/widgets/fontsel.cpp \
+ muse/widgets/tb1.cpp \
+ muse/widgets/outportcombo.cpp \
+ muse/widgets/filedialog.cpp \
+ muse/widgets/utils.cpp \
+ muse/widgets/editmetadialogbase.cpp \
+ muse/widgets/quantcombo.cpp \
+ muse/widgets/combobox.cpp \
+ muse/widgets/shortcutcapturedialog.cpp \
+ muse/widgets/rastercombo.cpp \
+ muse/widgets/bigtime.cpp \
+ muse/widgets/ctrlcombo.cpp \
+ muse/widgets/comment.cpp \
+ muse/widgets/noteinfo.cpp \
+ muse/widgets/siglabel.cpp \
+ muse/widgets/simplebutton.cpp \
+ muse/marker/markerview.cpp \
+ muse/instruments/editinstrument.cpp \
+ muse/instruments/midictrledit.cpp \
+ muse/instruments/minstrument.cpp \
+ muse/midiedit/miditracker.cpp \
+ muse/midiedit/velocity.cpp \
+ muse/midiedit/gatetime.cpp \
+ muse/midiedit/citem.cpp \
+ muse/midiedit/prcanvas.cpp \
+ muse/midiedit/dcanvas.cpp \
+ muse/midiedit/midieditor.cpp \
+ muse/midiedit/pianoroll.cpp \
+ muse/midiedit/trackpattern.cpp \
+ muse/midiedit/drummap.cpp \
+ muse/midiedit/midicmd.cpp \
+ muse/midiedit/ctrledit.cpp \
+ muse/midiedit/drumedit.cpp \
+ muse/midiedit/quantconfig.cpp \
+ muse/midiedit/ecanvas.cpp \
+ muse/waveedit/waveedit.cpp \
+ muse/waveedit/waveview.cpp \
+ muse/driver/posixtimer.cpp \
+ muse/driver/dummyaudio.cpp \
+ muse/driver/alsatimer.cpp \
+ muse/driver/coretimer.cpp \
+ muse/driver/rtctimer.cpp \
+ muse/driver/coremidi.cpp \
+ muse/driver/alsamidi.cpp \
+ muse/driver/jack.cpp \
+ muse/mixer/strip.cpp \
+ muse/mixer/routedialog.cpp \
+ muse/mixer/rack.cpp \
+ muse/mixer/midirack.cpp \
+ muse/mixer/mixer.cpp \
+ muse/mixer/astrip.cpp \
+ muse/mixer/mstrip.cpp \
+ muse/liste/listedit.cpp \
+ muse/liste/ctrllistedit.cpp \
+ muse/master/masteredit.cpp \
+ muse/master/master.cpp \
+ muse/seqmsg.cpp \
+ muse/audio.cpp \
+ muse/plugingui.cpp \
+ muse/icons.cpp \
+ muse/ctrl.cpp \
+ muse/waveevent.cpp \
+ muse/undo.cpp \
+ muse/track.cpp \
+ muse/miditrack.cpp \
+ muse/transpose.cpp \
+ muse/ticksynth.cpp \
+ muse/projectpropsdialog.cpp \
+ muse/value.cpp \
+ muse/conf.cpp \
+ muse/globals.cpp \
+ muse/mtc.cpp \
+ muse/wavetrack.cpp \
+ muse/help.cpp \
+ muse/templatedialog.cpp \
+ muse/midiseq.cpp \
+ muse/part.cpp \
+ muse/route.cpp \
+ muse/extmidieditor.cpp \
+ muse/vst.cpp \
+ muse/synth.cpp \
+ muse/eventlist.cpp \
+ muse/midirc.cpp \
+ muse/sync.cpp \
+ muse/midi.cpp \
+ muse/thread.cpp \
+ muse/audiotrack.cpp \
+ muse/audiogroup.cpp \
+ muse/shortcuts.cpp \
+ muse/helper.cpp \
+ muse/plugin.cpp \
+ muse/midiplugin.cpp \
+ muse/wave.cpp \
+ muse/editor.cpp \
+ muse/midififo.cpp \
+ muse/song.cpp \
+ muse/songpart.cpp \
+ muse/songtrack.cpp \
+ muse/song.cpp \
+ muse/midictrl.cpp \
+ muse/esettings.cpp \
+ muse/cobject.cpp \
+ muse/transport.cpp \
+ muse/dssihost.cpp \
+ muse/gconfig.cpp \
+ muse/preferences.cpp \
+ muse/event.cpp \
+ muse/midifile.cpp \
+ muse/fifo.cpp \
+ muse/muse.cpp \
+ muse/songfile.cpp \
+ muse/pipeline.cpp \
+ muse/midievent.cpp \
+ muse/midisynti.cpp \
+ muse/miditransform.cpp \
+ muse/audioprefetch.cpp \
+ muse/audiowriteback.cpp \
+ muse/importmidi.cpp \
+ muse/exportmidi.cpp \
+ muse/projectdialog.cpp \
+ muse/ladspaplugin.cpp \
+ muse/auxplugin.cpp \
+ muse/midiinport.cpp \
+ muse/audiooutput.cpp \
+ muse/midiout.cpp \
+ muse/audioinput.cpp \
+ muse/midieventbase.cpp \
+ muse/midioutport.cpp
+
+
diff --git a/muse_qt4_evolution/muse/CMakeLists.txt b/muse_qt4_evolution/muse/CMakeLists.txt
new file mode 100644
index 00000000..9ef460c3
--- /dev/null
+++ b/muse_qt4_evolution/muse/CMakeLists.txt
@@ -0,0 +1,226 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2008 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+include(${PROJECT_SOURCE_DIR}/pch.txt)
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ )
+
+subdirs (
+ ctrl
+ midiedit
+ widgets
+ master
+ instruments
+ marker
+ liste
+ waveedit
+ )
+
+QT4_WRAP_UI (muse_ui_headers
+ preferences.ui
+ exportmididialog.ui
+ configmidifile.ui
+ transport.ui
+ aboutbox.ui
+ transpose.ui
+ projectpropsdialog.ui
+ projectdialog.ui
+ templatedialog.ui
+ importmidi.ui
+ routedialog.ui
+ configtrack.ui
+ midiportinfo.ui
+ miditrackinfo.ui
+ )
+
+QT4_WRAP_CPP ( muse_moc_headers
+ projectpropsdialog.h
+ projectdialog.h
+ templatedialog.h
+ preferences.h
+ plugingui.h
+ midiplugin.h
+ muse.h
+ song.h
+ transport.h
+ conf.h
+ editor.h
+ cobject.h
+ transpose.h
+ track.h
+ miditrackbase.h
+ midisynti.h
+ miditrack.h
+ wavetrack.h
+ audiotrack.h
+ audiooutput.h
+ audioinput.h
+ audiogroup.h
+ synth.h
+ exportmidi.h
+ importmidi.h
+ midiinport.h
+ midioutport.h
+ astrip.h
+ midirack.h
+ mixer.h
+ mstrip.h
+ rack.h
+ routedialog.h
+ strip.h
+ arranger.h
+ canvas.h
+ configtrack.h
+ partdrag.h
+ tllineedit.h
+ tlswidget.h
+ tlwidget.h
+ trackdrag.h
+ trackinfo.h
+ )
+
+QT4_ADD_RESOURCES (muse_qrc_files muse.qrc)
+
+add_executable ( muse
+ ${muse_qrc_files}
+ ${muse_moc_headers}
+ ${muse_ui_headers}
+ ${PROJECT_BINARY_DIR}/all.h.pch
+
+ ticksynth.cpp
+ vst.cpp
+ dssihost.cpp
+ synth.cpp
+ plugin.cpp
+ ladspaplugin.cpp
+ auxplugin.cpp
+ pipeline.cpp
+ mtc.cpp
+ thread.cpp
+ audio.cpp
+ audioprefetch.cpp
+ audiowriteback.cpp
+ globals.cpp
+ sync.cpp
+ part.cpp
+ undo.cpp
+ songfile.cpp
+ midi.cpp
+ importmidi.cpp
+ importmidi.h
+ midifile.cpp
+ icons.cpp
+ event.cpp
+ eventlist.cpp
+ midieventbase.cpp
+ waveevent.cpp
+ midievent.cpp
+ wave.cpp
+ seqmsg.cpp
+ help.cpp
+ midictrl.cpp
+ fifo.cpp
+ helper.cpp
+ route.cpp
+ shortcuts.cpp
+ ctrl.cpp
+ gconfig.cpp
+ midirc.cpp
+ midififo.cpp
+ midioutport.cpp
+ midiinport.cpp
+ midiout.cpp
+
+ projectpropsdialog.cpp
+ projectdialog.cpp
+ templatedialog.cpp
+ preferences.cpp
+ plugingui.cpp
+ midiplugin.cpp
+ muse.cpp
+ song.cpp
+ songpart.cpp
+ songtrack.cpp
+ transport.cpp
+ conf.cpp
+ editor.cpp
+ cobject.cpp
+ transpose.cpp
+ track.cpp
+ miditrackbase.cpp
+ midisynti.cpp
+ miditrack.cpp
+ wavetrack.cpp
+ audiotrack.cpp
+ audiooutput.cpp
+ audioinput.cpp
+ audiogroup.cpp
+ exportmidi.cpp
+ revision.cpp
+ jack.cpp dummyaudio.cpp
+ astrip.cpp
+ midirack.cpp
+ mixer.cpp
+ mstrip.cpp
+ rack.cpp
+ routedialog.cpp
+ strip.cpp
+
+ arranger.cpp
+ canvas.cpp
+ configtrack.cpp
+ partdrag.cpp
+ tllineedit.cpp
+ tlswidget.cpp
+ tlwidget.cpp
+ tlwlayout.cpp
+ trackdrag.cpp
+ trackinfo.cpp
+ )
+
+set_target_properties( muse
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
+target_link_libraries(muse
+ midiedit
+ master
+ instruments
+ marker
+ liste
+ synti
+ waveedit
+ widgets
+ al
+ awl
+ ctrl
+ ${QT_LIBRARIES}
+ QtSvg
+ ${ALSA_LIB}
+ ${JACK_LIB}
+ ${SNDFILE_LIB}
+ ${SAMPLERATE_LIB}
+ ${LIBLO_LIB}
+ )
+
+install_targets ( /bin muse )
+
diff --git a/muse_qt4_evolution/muse/aboutbox.ui b/muse_qt4_evolution/muse/aboutbox.ui
new file mode 100644
index 00000000..867c5536
--- /dev/null
+++ b/muse_qt4_evolution/muse/aboutbox.ui
@@ -0,0 +1,612 @@
+<ui version="4.0" >
+ <class>AboutBox</class>
+ <widget class="QDialog" name="AboutBox" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>585</width>
+ <height>348</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette" >
+ <palette>
+ <active>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>239</red>
+ <green>237</green>
+ <blue>165</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>103</red>
+ <green>141</green>
+ <blue>178</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>239</red>
+ <green>237</green>
+ <blue>165</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>103</red>
+ <green>141</green>
+ <blue>178</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>239</red>
+ <green>237</green>
+ <blue>165</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>239</red>
+ <green>237</green>
+ <blue>165</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>86</red>
+ <green>117</green>
+ <blue>148</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="windowTitle" >
+ <string>AboutBox</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="museIcon" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="pixmap" >
+ <pixmap resource="muse.qrc" >:/xpm/muse_icon_64x64.png</pixmap>
+ </property>
+ <property name="margin" >
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QLabel" name="titleLabel" >
+ <property name="font" >
+ <font>
+ <pointsize>14</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>MusE</string>
+ </property>
+ <property name="margin" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="versionLabel" >
+ <property name="text" >
+ <string>Version: 2.0.1</string>
+ </property>
+ <property name="indent" >
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="revisionLabel" >
+ <property name="text" >
+ <string>Revision: 628</string>
+ </property>
+ <property name="indent" >
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="copyrightLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Arial'; font-size:14pt; font-weight:600;">&lt;span style=" font-size:10pt; font-weight:400;">(C) Copyright 1999-2008 Werner Schweer and Others. &lt;/span>&lt;/p>
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Arial'; font-size:10pt;">See http://www.muse-sequencer.org for new versions and&lt;/p>
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Arial'; font-size:10pt;">more information.&lt;/p>
+&lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Arial'; font-size:10pt;">&lt;/p>
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Arial'; font-size:10pt;">Published under the GNU Public License&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AboutBox</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>531</x>
+ <y>326</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>582</x>
+ <y>29</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/arranger.cpp b/muse_qt4_evolution/muse/arranger.cpp
new file mode 100644
index 00000000..82c859cb
--- /dev/null
+++ b/muse_qt4_evolution/muse/arranger.cpp
@@ -0,0 +1,1382 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "muse.h"
+#include "arranger.h"
+#include "tlwidget.h"
+#include "tlswidget.h"
+#include "icons.h"
+#include "widgets/simplebutton.h"
+#include "configtrack.h"
+#include "canvas.h"
+#include "widgets/utils.h"
+#include "widgets/splitter.h"
+#include "astrip.h"
+#include "mstrip.h"
+#include "audio.h"
+#include "shortcuts.h"
+#include "trackinfo.h"
+#include "midictrl.h"
+#include "gconfig.h"
+#include "part.h"
+
+//---------------------------------------------------------
+// TrElement elements
+// list of available track gui elements
+//---------------------------------------------------------
+
+const TrElement trElements[] = {
+ TrElement(TR_NAME, 1, "trackname", -1),
+ TrElement(TR_RECORD, 0, "record",
+ Track::M_MIDI | Track::M_AUDIO_OUTPUT | Track::M_WAVE),
+ TrElement(TR_OFF, 2, "off",
+ Track::M_AUDIO_OUTPUT
+ | Track::M_AUDIO_GROUP
+ | Track::M_WAVE
+ | Track::M_AUDIO_INPUT
+ | Track::M_AUDIO_SOFTSYNTH),
+ TrElement(TR_DRUMMAP, 2, "use drum map", Track::M_MIDI),
+ TrElement(TR_MUTE, 3, "mute", -1),
+ TrElement(TR_SOLO, 3, "solo", -1),
+ TrElement(TR_MONITOR, 3, "monitor",
+ Track::M_MIDI | Track::M_WAVE),
+ TrElement(TR_AREAD, 4, "automation read",
+ -1 & ~(Track::M_MIDI_IN | Track::M_MIDI)),
+ TrElement(TR_AWRITE, 4, "automation write",
+ -1 & ~(Track::M_MIDI_IN | Track::M_MIDI)),
+ TrElement(TR_OCHANNEL, 5, "output channel", Track::M_MIDI),
+ TrElement(TR_INSTRUMENT, 6, "instrument", Track::M_MIDI_OUT),
+ TrElement(TR_PATCH, 7, "patch", Track::M_MIDI),
+ };
+
+const int nTrElements = sizeof(trElements)/sizeof(*trElements);
+
+TrGroupList glist[Track::TRACK_TYPES];
+
+extern void populateAddTrack(QMenu*);
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize InfoStack::sizeHint() const
+ {
+ return QSize(infoWidth, height());
+ }
+
+//---------------------------------------------------------
+// TLayout
+// simple layout for trackList
+//---------------------------------------------------------
+
+class TLayout : public QLayout {
+ QList<QLayoutItem*> itemList;
+
+ public:
+ TLayout() {}
+ ~TLayout();
+
+ void addItem(QLayoutItem* item);
+ void insertWidget(int index, QWidget* item);
+ Qt::Orientations expandingDirections() const { return 0; }
+ bool hasHeightForWidth() const { return false; }
+ int count() const { return itemList.size(); }
+ void setGeometry(const QRect &rect);
+ QSize sizeHint() const { return ((QWidget*)parent())->size(); }
+ QLayoutItem *itemAt(int index) const { return itemList.value(index); }
+ QLayoutItem *takeAt(int idx) {
+ return idx >= 0 && idx < itemList.size() ? itemList.takeAt(idx) : 0;
+ }
+ void clear() {
+ QLayoutItem* child;
+ while ((child = takeAt(0)) != 0) {
+ delete child;
+ }
+ }
+ };
+
+//---------------------------------------------------------
+// TLayout
+//---------------------------------------------------------
+
+TLayout::~TLayout()
+ {
+ QLayoutItem* child;
+ while ((child = takeAt(0)) != 0)
+ delete child;
+ }
+
+//---------------------------------------------------------
+// insertWidget
+//---------------------------------------------------------
+
+void TLayout::insertWidget(int index, QWidget* item)
+ {
+ if (item->parent() == 0)
+ item->setParent((QWidget*)parent());
+ itemList.insert(index, new QWidgetItem(item));
+ update();
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void TLayout::addItem(QLayoutItem* item)
+ {
+ itemList.append(item);
+ update();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void TLayout::setGeometry(const QRect& r)
+ {
+ int y = r.y();
+ int n = itemList.size();
+ int width = r.width(); // ((QWidget*)parent())->width();
+ for (int i = 0; i < n; ++i) {
+ QLayoutItem *item = itemList.at(i);
+ QWidget* w = item->widget();
+ int h = w->height();
+ w->setGeometry(0, y, width, h);
+ y += h;
+ }
+ }
+
+//---------------------------------------------------------
+// TlsvLayout
+//---------------------------------------------------------
+
+class TlsvLayout : public QLayout {
+ QList<QLayoutItem*> itemList;
+ int dx, dy;
+
+ public:
+ TlsvLayout() {
+ dx = 0;
+ dy = 0;
+ }
+ ~TlsvLayout();
+
+ void setOffset(int x, int y) {
+ dx = x;
+ dy = y;
+ }
+ void addItem(QLayoutItem* item);
+ void insertWidget(int index, QWidget* item);
+ Qt::Orientations expandingDirections() const { return 0; }
+ bool hasHeightForWidth() const { return false; }
+ int count() const { return itemList.size(); }
+ void setGeometry(const QRect &rect);
+ QSize sizeHint() const { return ((QWidget*)parent())->size(); }
+ QLayoutItem *itemAt(int index) const { return itemList.value(index); }
+ QLayoutItem *takeAt(int idx) {
+ return idx >= 0 && idx < itemList.size() ? itemList.takeAt(idx) : 0;
+ }
+ };
+
+//---------------------------------------------------------
+// TlsvLayout
+//---------------------------------------------------------
+
+TlsvLayout::~TlsvLayout()
+ {
+ QLayoutItem* child;
+ while ((child = takeAt(0)) != 0)
+ delete child;
+ }
+
+//---------------------------------------------------------
+// insertWidget
+//---------------------------------------------------------
+
+void TlsvLayout::insertWidget(int index, QWidget* item)
+ {
+ if (item->parent() == 0)
+ item->setParent((QWidget*)parent());
+ itemList.insert(index, new QWidgetItem(item));
+ update();
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void TlsvLayout::addItem(QLayoutItem* item)
+ {
+ itemList.append(item);
+ update();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void TlsvLayout::setGeometry(const QRect& r)
+ {
+ QLayoutItem *item = itemList.at(0);
+ QWidget* w = item->widget();
+ w->setGeometry(dx, dy, r.width(), w->height());
+ }
+
+//---------------------------------------------------------
+// newAddTrackMenu
+//---------------------------------------------------------
+
+QMenu* newAddTrackMenu(QWidget* parent)
+ {
+ QMenu* menu = new QMenu(parent);
+ populateAddTrack(menu);
+ return menu;
+ }
+
+//---------------------------------------------------------
+// Arranger
+//---------------------------------------------------------
+
+Arranger::Arranger(QMainWindow* parent)
+ : QWidget(parent)
+ {
+// setFocusPolicy(Qt::StrongFocus);
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+ for (int i = 0; i < Track::TRACK_TYPES; ++i)
+ trackInfos[i] = 0;
+
+ zeroTrackInfo = 0;
+ _curTrack = 0;
+ strip = 0;
+ info = 0;
+ tool = PointerTool;
+
+ for (int tt = 0; tt < Track::TRACK_TYPES; ++tt) {
+ int gn = 0;
+ TrElementList group;
+ for (int i = 0; i < nTrElements; ++i) {
+ if (!(trElements[i].trackMask & (1<<tt)))
+ continue;
+ if (trElements[i].grp != gn) {
+ glist[tt].push_back(group);
+ group.clear();
+ gn = trElements[i].grp;
+ }
+ group.push_back(&trElements[i]);
+ }
+ if (!group.empty())
+ glist[tt].push_back(group);
+ }
+
+ configTrackEditor = 0;
+ QLayout* ml = new QHBoxLayout;
+ ml->setSpacing(0);
+ ml->setMargin(0);
+ setLayout(ml);
+
+ infoDock = new QDockWidget(tr("TrackInfo"));
+ infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+ infoDockAction = infoDock->toggleViewAction();
+
+ mixerDock = new QDockWidget(tr(""));
+ mixerDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+ mixerDockAction = mixerDock->toggleViewAction();
+
+ parent->setDockNestingEnabled(true);
+
+ parent->addDockWidget(Qt::LeftDockWidgetArea, infoDock, Qt::Horizontal);
+ parent->addDockWidget(Qt::LeftDockWidgetArea, mixerDock, Qt::Horizontal);
+
+ infoView = new QScrollArea;
+ infoView->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+
+ infoDock->setWidget(infoView);
+ infoView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ trackInfo = new InfoStack();
+ infoView->setWidget(trackInfo);
+ infoView->setWidgetResizable(true);
+
+ trackInfoVisible = false;
+ mixerStripVisible = false;
+
+ infoDock->setVisible(false);
+ mixerDock->setVisible(false);
+
+ connect(infoDockAction, SIGNAL(toggled(bool)), SLOT(toggleTrackInfo(bool)));
+ connect(mixerDockAction, SIGNAL(toggled(bool)), SLOT(toggleMixerStrip(bool)));
+
+ tlsv = new TrackListWidget;
+ tlsv->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
+ tlsvLayout = new TlsvLayout;
+ tlsv->setLayout(tlsvLayout);
+ trackList = new QWidget;
+ trackList->setAttribute(Qt::WA_StaticContents);
+ trackList->setMouseTracking(true);
+
+ tlsv->layout()->addWidget(trackList);
+ tl = new TLayout;
+ trackList->setLayout(tl);
+
+ //
+ // Toolbox
+ //
+ QHBoxLayout* ttoolsLayout = new QHBoxLayout;
+ ttoolsLayout->setMargin(1);
+ ttoolsLayout->setSpacing(1);
+
+ SimpleButton* configButton = new SimpleButton(configIcon, configIcon);
+ configButton->setAutoRaise(true);
+ configButton->setToolTip(tr("Config Tracklist"));
+ configButton->setFixedHeight(rulerHeight-4);
+ connect(configButton, SIGNAL(clicked()), SLOT(configTrackList()));
+ ttoolsLayout->addWidget(configButton);
+ ttoolsLayout->addStretch(100);
+
+ gmute = newMuteButton();
+ gmute->setFixedWidth(rulerHeight);
+ gmute->setToolTip(tr("all mute off"));
+ gmute->setFixedHeight(rulerHeight-4);
+ ttoolsLayout->addWidget(gmute);
+ setGMute();
+ connect(song, SIGNAL(muteChanged(Track*,bool)), SLOT(setGMute()));
+ connect(gmute, SIGNAL(clicked(bool)), SLOT(offGMute()));
+
+ gsolo = newSoloButton();
+ gsolo->setFixedWidth(rulerHeight);
+ gsolo->setToolTip(tr("all solo off"));
+ gsolo->setFixedHeight(rulerHeight-4);
+ ttoolsLayout->addWidget(gsolo);
+ setGSolo();
+ connect(song, SIGNAL(soloChanged(Track*,bool)), SLOT(setGSolo()));
+ connect(gsolo, SIGNAL(clicked(bool)), SLOT(offGSolo()));
+
+ gar = newAutoReadButton();
+ gar->setFixedWidth(rulerHeight);
+ gar->setToolTip(tr("all autoRead off"));
+ gar->setFixedHeight(rulerHeight-4);
+ ttoolsLayout->addWidget(gar);
+ setGar();
+ connect(song, SIGNAL(autoReadChanged(Track*,bool)), SLOT(setGar()));
+ connect(gar, SIGNAL(clicked(bool)), SLOT(offGar()));
+
+ gaw = newAutoWriteButton();
+ gaw->setFixedWidth(rulerHeight);
+ gaw->setToolTip(tr("all autoWrite off"));
+ gaw->setFixedHeight(rulerHeight-4);
+ ttoolsLayout->addWidget(gaw);
+ setGaw();
+ connect(song, SIGNAL(autoWriteChanged(Track*,bool)), SLOT(setGaw()));
+ connect(gaw, SIGNAL(clicked(bool)), SLOT(offGaw()));
+
+ QHBoxLayout* infoboxLayout = new QHBoxLayout;
+ infoboxLayout->setMargin(1);
+ infoboxLayout->setSpacing(1);
+
+ SimpleButton* tifButton = new SimpleButton(QString());
+ tifButton->setCheckable(true);
+ tifButton->setFixedSize(infoHeight-2, infoHeight);
+ tifButton->setDefaultAction(infoDockAction);
+ infoDockAction->setText(tr("i"));
+ infoDockAction->setToolTip(tr("Show Track Info"));
+ infoboxLayout->addWidget(tifButton);
+
+ SimpleButton* mstButton = new SimpleButton(QString());
+ mstButton->setCheckable(true);
+ mstButton->setFixedSize(infoHeight-2, infoHeight);
+ mstButton->setDefaultAction(mixerDockAction);
+ mixerDockAction->setText(tr("m"));
+ mixerDockAction->setToolTip(tr("Show Mixer Strip"));
+ infoboxLayout->addWidget(mstButton);
+
+ infoboxLayout->addStretch(100);
+
+ split = new Splitter(Qt::Horizontal);
+ split->setOpaqueResize(true);
+ split->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ QWidget* tw = new QWidget;
+ split->addWidget(tw);
+ QVBoxLayout* trackListGrid = new QVBoxLayout;
+ trackListGrid->setMargin(0);
+ trackListGrid->setSpacing(0);
+ tw->setLayout(trackListGrid);
+
+ trackListGrid->addLayout(ttoolsLayout);
+ QFrame* ruler = hLine(0);
+ ruler->setLineWidth(2);
+ trackListGrid->addWidget(ruler);
+ trackListGrid->addWidget(tlsv, 100);
+ trackListGrid->addLayout(infoboxLayout);
+
+ //
+ // canvas widget
+ //
+ canvas = new PartCanvas;
+ canvas->setCornerWidget(new QSizeGrip(canvas));
+ split->addWidget(canvas);
+ split->setStretchFactor(1, 100);
+ canvas->setTool(tool);
+ canvas->verticalScrollBar()->setSingleStep(minTrackHeight/2);
+
+ connect(tlsv, SIGNAL(mouseWheel(QWheelEvent*)), SLOT(mouseWheel(QWheelEvent*)));
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), canvas, SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ connect(song, SIGNAL(lenChanged(const AL::Pos&)), canvas, SLOT(setEndPos(const AL::Pos&)));
+ connect(song, SIGNAL(tempoChanged()), canvas, SLOT(tempoChanged()));
+ connect(canvas, SIGNAL(kbdMovementUpdate(Track*, Part*)), SLOT(kbdMovementUpdate(Track*, Part*)));
+ connect(muse, SIGNAL(rasterChanged(int)), canvas, SLOT(setRaster(int)));
+ connect(canvas, SIGNAL(cursorPos(const AL::Pos&,bool)), SIGNAL(cursorPos(const AL::Pos&,bool)));
+ connect(canvas, SIGNAL(contentsMoving(int,int)), SLOT(setTLViewPos(int,int)));
+ connect(canvas, SIGNAL(posChanged(int,const AL::Pos&)), SLOT(setPos(int,const AL::Pos&)));
+
+ connect(canvas, SIGNAL(createLRPart(Track*)), song, SLOT(cmdCreateLRPart(Track*)));
+ connect(canvas, SIGNAL(doubleClickPart(Part*)), SIGNAL(editPart(Part*)));
+ connect(canvas, SIGNAL(startEditor(Part*,int)), muse, SLOT(startEditor(Part*,int)));
+ connect(canvas, SIGNAL(partChanged(Part*,unsigned,unsigned)),
+ song, SLOT(cmdChangePart(Part*,unsigned,unsigned)));
+ connect(canvas, SIGNAL(addMarker(const AL::Pos&)), SLOT(addMarker(const AL::Pos&)));
+ connect(canvas, SIGNAL(removeMarker(const AL::Pos&)), SLOT(removeMarker(const AL::Pos&)));
+
+ layout()->addWidget(split);
+
+ connect(muse, SIGNAL(configChanged()), SLOT(updateConfiguration()));
+ connect(song, SIGNAL(trackSelectionChanged(Track*)), SLOT(setSelectedTrack(Track*)));
+ connect(song, SIGNAL(trackRemoved(Track*)), SLOT(removeTrack(Track*)));
+ connect(song, SIGNAL(trackAdded(Track*,int)), SLOT(insertTrack(Track*)));
+ connect(muse, SIGNAL(startLoadSong()), SLOT(startLoadSong()));
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void Arranger::setPos(int idx, const AL::Pos& pos)
+ {
+ song->setPos(idx, pos.snaped(muse->raster()));
+ }
+
+//---------------------------------------------------------
+// setTLViewPos
+//---------------------------------------------------------
+
+void Arranger::setTLViewPos(int /*x*/, int y)
+ {
+#if 1
+ int dy = y + trackList->y();
+ tlsv->scroll(0, -dy);
+#else
+ trackList->setGeometry(0, -y, trackList->width(), trackList->height());
+#endif
+ tlsvLayout->setOffset(0, -y);
+ }
+
+//---------------------------------------------------------
+// tlIndex
+//---------------------------------------------------------
+
+int Arranger::tlIndex(Track* t) const
+ {
+ const TrackList* stl = song->tracks();
+
+ int idx = 0;
+ for (ciTrack i = stl->begin(); i != stl->end(); ++i, ++idx) {
+ if (*i == t)
+ break;
+ ArrangerTrack* at = &(*i)->arrangerTrack;
+ if (at->tw == 0)
+ continue;
+ idx += (*i)->subtracks.size();
+ }
+ return idx;
+ }
+
+int Arranger::tlIndex(ArrangerTrack* t) const
+ {
+ TrackList* stl = song->tracks();
+
+ int idx = 0;
+ for (ciTrack i = stl->begin(); i != stl->end(); ++i, ++idx) {
+ ArrangerTrack* at = &(*i)->arrangerTrack;
+ if (at->tw == 0)
+ continue;
+ ArrangerTrackList& atl = (*i)->subtracks;
+ for (iArrangerTrack k = atl.begin(); k != atl.end(); ++k) {
+ ++idx;
+ if (*k == t)
+ return idx;
+ }
+ }
+ return -1; // crash
+ }
+
+//---------------------------------------------------------
+// insertTrack
+//---------------------------------------------------------
+
+void Arranger::insertTrack1(Track* t)
+ {
+ int idx = tlIndex(t);
+ //-------------------------
+ // track list widget
+ //-------------------------
+
+ TLWidget* tw = new TLWidget(t, &glist[t->type()]);
+ tw->setFixedHeight(t->arrangerTrack.h);
+ tl->insertWidget(idx, tw);
+ tw->show(); // needed if song is reloaded
+
+ connect(tw, SIGNAL(plusClicked(TLWidget*)), SLOT(appendSubtrack(TLWidget*)));
+ connect(tw, SIGNAL(moveTrack(Track*,Track*)), SLOT(moveTrack(Track*,Track*)));
+ connect(this, SIGNAL(configChanged()), tw, SLOT(configChanged()));
+ connect(tw, SIGNAL(drag(int, int)), SLOT(drag(int,int)));
+ connect(tw, SIGNAL(startDrag(int)), SLOT(startDrag(int)));
+ connect(t, SIGNAL(partsChanged()), canvas->widget(), SLOT(update()));
+
+ ArrangerTrack* at = &(t->arrangerTrack);
+ at->tw = tw;
+ }
+
+void Arranger::insertTrack(Track* t)
+ {
+ insertTrack1(t);
+ t->arrangerTrack.tw->show();
+ updateIndex();
+ if (_curTrack == 0)
+ setSelectedTrack(_curTrack);
+ }
+
+//---------------------------------------------------------
+// removeTrack
+//---------------------------------------------------------
+
+void Arranger::removeTrack(Track* t)
+ {
+ ArrangerTrack* at = &t->arrangerTrack;
+ if (at->tw == 0)
+ return;
+
+ tl->removeWidget(at->tw);
+
+ at->tw->close();
+ at->tw = 0;
+
+ for (iArrangerTrack i = t->subtracks.begin(); i != t->subtracks.end(); ++i) {
+ ArrangerTrack* at = *i;
+ tl->removeWidget(at->tw);
+ at->tw->close();
+ }
+ t->subtracks.clear();
+
+ if (t == _curTrack) {
+ if (!song->tracks()->isEmpty())
+ song->selectTrack(song->tracks()->front());
+ }
+ updateIndex();
+ }
+
+//---------------------------------------------------------
+// drag
+//---------------------------------------------------------
+
+void Arranger::drag(int trackIdx, int delta)
+ {
+ int h = startH + delta;
+ if (h < minTrackHeight)
+ h = minTrackHeight;
+ ArrangerTrack* at = atrack(trackIdx);
+ at->tw->setFixedHeight(h);
+ updateIndex();
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void Arranger::startDrag(int trackIdx)
+ {
+ ArrangerTrack* at = atrack(trackIdx);
+ startH = at->tw->height();
+ }
+
+//---------------------------------------------------------
+// TrackListWidget
+//---------------------------------------------------------
+
+TrackListWidget::TrackListWidget(QWidget* parent)
+ : QWidget(parent)
+ {
+ setAttribute(Qt::WA_NoSystemBackground);
+ setAttribute(Qt::WA_StaticContents);
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void TrackListWidget::paintEvent(QPaintEvent* ev)
+ {
+ QPainter p(this);
+ p.eraseRect(ev->rect());
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void TrackListWidget::mousePressEvent(QMouseEvent* ev)
+ {
+ if (ev->button() == Qt::RightButton) {
+ QMenu* menu = newAddTrackMenu(this);
+ menu->exec(ev->globalPos());
+ }
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void TrackListWidget::wheelEvent(QWheelEvent* e)
+ {
+ emit mouseWheel(e);
+ }
+
+//---------------------------------------------------------
+// mouseWheel
+// get redirected mouse wheel events from TrackListWidget
+//---------------------------------------------------------
+
+void Arranger::mouseWheel(QWheelEvent* e)
+ {
+ if (e->orientation() != Qt::Vertical)
+ return;
+ QScrollBar* sb = canvas->verticalScrollBar();
+ int step = qMin(QApplication::wheelScrollLines() * sb->singleStep(), sb->pageStep());
+ if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier))
+ step = sb->pageStep();
+ int offset = e->delta() * step / 120;
+ if (sb->invertedControls())
+ offset = -offset;
+ if (qAbs(offset) < 1)
+ return;
+ sb->setValue(sb->value() + offset);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// appendSubtrack
+// the user requests a new controller subtrack
+//---------------------------------------------------------
+
+void Arranger::appendSubtrack(TLWidget* trackWidget)
+ {
+ Track* t = trackWidget->track();
+
+ ArrangerTrack* at = new ArrangerTrack;
+ at->h = minTrackHeight;
+ at->ctrl = CTRL_NO_CTRL;
+ t->subtracks.push_back(at);
+ if(initSubtrack(t, at)==true) {
+ updateIndex();
+ }
+ else {
+ t->subtracks.remove(at);
+ delete at;
+ }
+ }
+
+//---------------------------------------------------------
+// initSubtrack
+//---------------------------------------------------------
+
+bool Arranger::initSubtrack(Track* t, ArrangerTrack* at)
+ {
+ TLSWidget* tw = new TLSWidget(t, at, canvas);
+ tw->setFixedHeight(at->h);
+
+ if(tw->setCtrl(at->ctrl) == true) {
+ tl->insertWidget(tlIndex(at), tw);
+ at->tw = tw;
+ connect(tw, SIGNAL(minusClicked(TLSWidget*)), SLOT(removeSubtrack(TLSWidget*)));
+ connect(tw, SIGNAL(controllerChanged(int)), canvas->widget(), SLOT(update()));
+ connect(tw, SIGNAL(drag(int, int)), SLOT(drag(int,int)));
+ connect(tw, SIGNAL(startDrag(int)), SLOT(startDrag(int)));
+ tw->show();
+ }
+ else {
+ delete tw;
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// removeSubtrack
+//---------------------------------------------------------
+
+void Arranger::removeSubtrack(TLSWidget* w)
+ {
+ Track* t = w->track();
+ for (iArrangerTrack it = t->subtracks.begin(); it != t->subtracks.end(); ++it) {
+ ArrangerTrack* at = *it;
+ if (at->tw == w) {
+ tl->removeWidget(at->tw);
+// at->tw->close();
+ delete at->tw;
+ t->subtracks.erase(it);
+ delete at;
+ break;
+ }
+ }
+ updateIndex();
+ }
+
+//---------------------------------------------------------
+// configTrackList
+//---------------------------------------------------------
+
+void Arranger::configTrackList()
+ {
+ if (configTrackEditor == 0) {
+ configTrackEditor = new ConfigTrackList(this);
+ connect(configTrackEditor, SIGNAL(trackConfigChanged()), SIGNAL(configChanged()));
+ }
+ configTrackEditor->show();
+ }
+
+//---------------------------------------------------------
+// atrack
+//---------------------------------------------------------
+
+ArrangerTrack* Arranger::atrack(int idx)
+ {
+ int k = 0;
+ TrackList* stl = song->tracks();
+ for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+ ArrangerTrack* at = &(*i)->arrangerTrack;
+ if (idx == k)
+ return at;
+ ++k;
+ for (iArrangerTrack it = (*i)->subtracks.begin(); it != (*i)->subtracks.end(); ++it) {
+ ArrangerTrack* t = *it;
+ if (idx == k)
+ return t;
+ ++k;
+ }
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// updateIndex
+// update vertical scrollbar & index values
+//---------------------------------------------------------
+
+void Arranger::updateIndex()
+ {
+ int idx = 0;
+ int h = 2 * defaultTrackHeight; // always show room for at least two
+ // tracks at end of list
+
+ TrackList* stl = song->tracks();
+ for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+ ArrangerTrack* at = &(*i)->arrangerTrack;
+ if (at->tw == 0)
+ continue;
+ ((TLWidget*)at->tw)->setIdx(idx);
+ h += at->tw->height();
+ ++idx;
+ for (iArrangerTrack it = (*i)->subtracks.begin(); it != (*i)->subtracks.end(); ++it) {
+ ArrangerTrack* t = *it;
+ if (t->tw == 0)
+ continue;
+ ((TLSWidget*)t->tw)->setIdx(idx);
+ h += t->tw->height();
+ ++idx;
+ }
+ }
+ setGMute();
+ setGSolo();
+ setGar();
+ setGaw();
+ canvas->setVSize(h);
+ trackList->setFixedHeight(h + 32);
+ canvas->widget()->update();
+ QPoint p(canvas->getWPos());
+ setTLViewPos(0, p.y());
+ }
+
+//---------------------------------------------------------
+// toggleTrackInfo
+//---------------------------------------------------------
+
+void Arranger::toggleTrackInfo(bool val)
+ {
+ trackInfoVisible = val;
+ if (trackInfoVisible) {
+ if (_curTrack == 0) {
+ if (zeroTrackInfo == 0) {
+ zeroTrackInfo = new QWidget(this);
+ trackInfo->addWidget(zeroTrackInfo);
+ }
+ trackInfo->setCurrentWidget(zeroTrackInfo);
+
+ return;
+ }
+ Track::TrackType t = _curTrack->type();
+ TrackInfo* w = trackInfos[t];
+ if (w == 0) {
+ w = trackInfos[t] = createTrackInfo();
+ trackInfo->addWidget(w);
+ }
+ w->init(_curTrack);
+ trackInfo->setCurrentWidget(w);
+ }
+// infoDock->layout()->invalidate();
+// infoDock->layout()->update();
+ }
+
+//---------------------------------------------------------
+// toggleMixerStrip
+//---------------------------------------------------------
+
+void Arranger::toggleMixerStrip(bool val)
+ {
+ mixerStripVisible = val;
+ if (mixerStripVisible && _curTrack) {
+ if (strip && _curTrack != strip->getTrack()) {
+ strip->close();
+ strip = 0;
+ }
+ if (!strip) {
+ switch(_curTrack->type()) {
+ case Track::MIDI_IN:
+ strip = new MidiInPortStrip(0, (MidiInPort*)_curTrack, false);
+ break;
+ case Track::MIDI_OUT:
+ strip = new MidiOutPortStrip(0, (MidiOutPort*)_curTrack, false);
+ break;
+ case Track::MIDI_SYNTI:
+ strip = new MidiSyntiStrip(0, (MidiSynti*)_curTrack, false);
+ break;
+ case Track::MIDI:
+ strip = new MidiStrip(0, (MidiTrack*)_curTrack, false);
+ break;
+ default:
+ strip = new AudioStrip(0, (AudioTrack*)_curTrack, false);
+ break;
+ }
+ //
+ // it looks like the dock widget has a minimum
+ // width
+ strip->setFixedWidth(STRIP_WIDTH + 10);
+ mixerDock->setWidget(strip);
+ }
+ }
+ else {
+ if (strip) {
+ strip->close();
+ strip = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// startLoadSong
+//---------------------------------------------------------
+
+void Arranger::startLoadSong()
+ {
+ if (strip)
+ strip->close();
+ strip = 0;
+
+ TrackList* stl = song->tracks();
+ for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+ ArrangerTrack* at = &(*i)->arrangerTrack;
+ tl->removeWidget(at->tw);
+ at->tw->close();
+ delete at->tw;
+ at->tw = 0;
+ for (iArrangerTrack it = (*i)->subtracks.begin(); it != (*i)->subtracks.end(); ++it) {
+ ArrangerTrack* at = *it;
+ tl->removeWidget(at->tw);
+ at->tw->close();
+ delete at->tw;
+ }
+ (*i)->subtracks.clear();
+ }
+ _curTrack = 0;
+ }
+
+//---------------------------------------------------------
+// endLoadSong
+// create track list widgets
+//---------------------------------------------------------
+
+void Arranger::endLoadSong()
+ {
+ TrackList* stl = song->tracks();
+
+ for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+ Track* t = *i;
+ insertTrack1(t);
+ for (iArrangerTrack i = t->subtracks.begin(); i != t->subtracks.end(); ++i) {
+ initSubtrack(t, *i);
+ }
+ }
+ updateIndex();
+ setSelectedTrack(song->selectedTrack());
+ infoDock->setVisible(trackInfoVisible);
+ mixerDock->setVisible(mixerStripVisible);
+ }
+
+//---------------------------------------------------------
+// updateConfiguration
+//---------------------------------------------------------
+
+void Arranger::updateConfiguration()
+ {
+ if (config.canvasUseBgPixmap) {
+ canvas->setCanvasBackground(QPixmap(config.canvasBgPixmap));
+ }
+ else
+ canvas->setCanvasBackground(config.canvasBgColor);
+//TD canvas->setShowGrid(config.canvasShowGrid);
+//TD update();
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void Arranger::readStatus(QDomNode node)
+ {
+ TrackList* tl = song->tracks();
+ iTrack it = tl->begin();
+
+ QPoint wpos;
+ double xmag = 0.05;
+ double ymag = 1.0;
+
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "info")
+ trackInfoVisible = i;
+ else if (tag == "strip")
+ mixerStripVisible = i;
+ else if (tag == "TrackConf") {
+ }
+ else if (tag == "hmag")
+ xmag = s.toDouble();
+ else if (tag == "vmag")
+ ymag = s.toDouble();
+ else if (tag == "hpos")
+ wpos.setX(i);
+ else if (tag == "vpos")
+ wpos.setY(i);
+ else if (tag == "raster") {
+ muse->initRaster(i);
+ canvas->setRaster(i);
+ }
+ else if (tag == "splitter") {
+ split->readStatus(node);
+ QList<int> sizes = split->sizes();
+ split->setSizes(sizes);
+ }
+ else
+ printf("Arranger: unknown tag %s\n", tag.toLatin1().data());
+ }
+ canvas->setMag(xmag, ymag);
+ canvas->setWPos(wpos);
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void Arranger::writeStatus(Xml& xml)
+ {
+ xml.stag("arranger");
+
+ for (int i = 0; i < Track::TRACK_TYPES; ++i) {
+ TrGroupList* gl = &glist[i];
+ xml.stag(QString("TrackConf type=\"%1\"").arg(i));
+ for (iTrGroup ig = gl->begin(); ig != gl->end(); ++ig) {
+ TrElementList& el = *ig;
+ xml.stag("group");
+ for (iTrElement ie = el.begin(); ie != el.end(); ++ie)
+ xml.tagE(QString("element id=\"%1\"").arg((*ie)->id));
+ xml.etag("group");
+ }
+ xml.etag("TrackConf");
+ }
+ xml.tag("info", trackInfoVisible);
+ xml.tag("strip", mixerStripVisible);
+ xml.tag("hmag", canvas->xmag());
+ xml.tag("vmag", canvas->ymag());
+ xml.tag("hpos", canvas->getWPos().x());
+ xml.tag("vpos", canvas->getWPos().y());
+ xml.tag("raster", muse->raster());
+ split->writeStatus("splitter", xml);
+ xml.etag("arranger");
+ }
+
+//---------------------------------------------------------
+// setGMute
+//---------------------------------------------------------
+
+void Arranger::setGMute()
+ {
+ TrackList* tl = song->tracks();
+ bool mute = false;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->mute()) {
+ mute = true;
+ break;
+ }
+ }
+ gmute->setChecked(mute);
+ }
+
+//---------------------------------------------------------
+// setGSolo
+//---------------------------------------------------------
+
+void Arranger::setGSolo()
+ {
+ TrackList* tl = song->tracks();
+ bool solo = false;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->solo()) {
+ solo = true;
+ break;
+ }
+ }
+ gsolo->setChecked(solo);
+ }
+
+//---------------------------------------------------------
+// setGar
+//---------------------------------------------------------
+
+void Arranger::setGar()
+ {
+ TrackList* tl = song->tracks();
+ bool ar = false;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->autoRead()) {
+ ar = true;
+ break;
+ }
+ }
+ if (ar == false) {
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i) {
+ if ((*i)->autoRead()) {
+ ar = true;
+ break;
+ }
+ }
+ }
+ gar->setChecked(ar);
+ }
+
+//---------------------------------------------------------
+// setGaw
+//---------------------------------------------------------
+
+void Arranger::setGaw()
+ {
+ TrackList*tl = song->tracks();
+ bool aw = false;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->autoWrite())
+ aw = true;
+ }
+ if (aw == false) {
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i) {
+ if ((*i)->autoWrite()) {
+ aw = true;
+ break;
+ }
+ }
+ }
+ gaw->setChecked(aw);
+ }
+
+//---------------------------------------------------------
+// offGMute
+//---------------------------------------------------------
+
+void Arranger::offGMute()
+ {
+ TrackList*tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ song->setMute(*i,false);
+ gmute->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// offGSolo
+//---------------------------------------------------------
+
+void Arranger::offGSolo()
+ {
+ TrackList*tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ song->setSolo(*i, false);
+ gsolo->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// offGar
+//---------------------------------------------------------
+
+void Arranger::offGar()
+ {
+ TrackList*tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ song->setAutoRead(*i, false);
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i)
+ song->setAutoRead(*i, false);
+ gar->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// offGaw
+//---------------------------------------------------------
+
+void Arranger::offGaw()
+ {
+ TrackList*tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ song->setAutoWrite(*i, false);
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i)
+ song->setAutoWrite(*i, false);
+ gaw->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void Arranger::setTool(int t)
+ {
+ tool = Tool(t);
+ canvas->setTool(tool);
+ }
+
+//---------------------------------------------------------
+// setSelectedTrack
+//---------------------------------------------------------
+
+void Arranger::setSelectedTrack(Track* t)
+ {
+ _curTrack = t;
+ toggleTrackInfo(trackInfoVisible);
+ toggleMixerStrip(mixerStripVisible);
+ }
+
+//---------------------------------------------------------
+// moveTrack
+// move src before dst
+//---------------------------------------------------------
+
+void Arranger::moveTrack(Track* src, Track* dst)
+ {
+ audio->msgMoveTrack(src, dst);
+ tl->clear();
+ TrackList* stl = song->tracks();
+ for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+ tl->addWidget((*i)->arrangerTrack.tw);
+ for (iArrangerTrack it = (*i)->subtracks.begin(); it != (*i)->subtracks.end(); ++it)
+ tl->addWidget((*it)->tw);
+ }
+ tl->setGeometry(((QWidget*)tl->parent())->geometry());
+ updateIndex();
+ }
+
+//---------------------------------------------------------
+//! \fn Arranger::keyPressEvent(QKeyEvent* e)
+//! \brief Called when a key is pressed
+//! @param e The key event
+//---------------------------------------------------------
+
+void Arranger::keyPressEvent(QKeyEvent* /*e*/)
+ {
+ printf("Arranger::keyPressEvent\n");
+#if 0 //TODOB
+ int key = e->key();
+ bool keypress_handled = false;
+
+ if (e->modifiers() & Qt::ShiftModifier)
+ key += Qt::SHIFT;
+ if (e->modifiers() & Qt::AltModifier)
+ key += Qt::ALT;
+ if (e->modifiers() & Qt::ControlModifier)
+ key += Qt::CTRL;
+
+ if (shortcutsKbdMovement.isValid()) {
+ if (key == shortcuts[SHRT_SEL_LEFT].key || key == shortcuts[SHRT_SEL_LEFT_ADD].key) {
+ keypress_handled = true;
+ bool add = (key == shortcuts[SHRT_SEL_LEFT_ADD].key);
+ PartList* parts = shortcutsKbdMovement.track()->parts();
+ Part* nextLeft = 0;
+
+ for (iPart i = parts->begin(); i != parts->end(); i++) {
+ Part* tmp = i->second;
+ if (!nextLeft) {
+ if (tmp->tick() < shortcutsKbdMovement.getLpos())
+ nextLeft = tmp;
+ }
+ else {
+ if (tmp->tick() > nextLeft->tick() && tmp->tick() < shortcutsKbdMovement.getLpos() )
+ nextLeft = tmp;
+ }
+ }
+ if (nextLeft) {
+ song->selectPart(nextLeft, add);
+ shortcutsKbdMovement.setPart(nextLeft);
+ shortcutsKbdMovement.setPos(nextLeft->tick(), nextLeft->tick() + nextLeft->lenTick());
+ }
+ }
+ else if (key == shortcuts[SHRT_SEL_RIGHT].key || key == shortcuts[SHRT_SEL_RIGHT_ADD].key) {
+ keypress_handled = true;
+ bool add = (key == shortcuts[SHRT_SEL_RIGHT_ADD].key);
+ PartList* parts = shortcutsKbdMovement.track()->parts();
+ Part* nextRight = 0;
+
+ for (iPart i = parts->begin(); i != parts->end(); i++) {
+ Part* tmp = i->second;
+ if (!nextRight) {
+ if (tmp->tick() > shortcutsKbdMovement.getLpos())
+ nextRight = tmp;
+ }
+ else {
+ if (tmp->tick() < nextRight->tick() && tmp->tick() > shortcutsKbdMovement.getLpos() )
+ nextRight = tmp;
+ }
+ }
+ if (nextRight) {
+ song->selectPart(nextRight, add);
+ shortcutsKbdMovement.setPart(nextRight);
+ shortcutsKbdMovement.setPos(nextRight->tick(), nextRight->tick() + nextRight->lenTick());
+ }
+ }
+
+ else if (key == shortcuts[SHRT_SEL_ABOVE].key) {
+ // TODO
+ }
+ else if (key == shortcuts[SHRT_SEL_BELOW].key) {
+ // TODO
+ }
+ } // -- end movement
+ else {
+ if (key == shortcuts[SHRT_TOOL_POINTER].key) {
+ emit toolChanged(PointerTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_PENCIL].key) {
+ emit toolChanged(PencilTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_RUBBER].key) {
+ emit toolChanged(RubberTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_LINEDRAW].key) {
+ emit toolChanged(DrawTool);
+ return;
+ }
+ }
+ // If we haven't dealt with the keypress, pass it along
+ if (!keypress_handled) {
+ e->ignore();
+ }
+#endif
+// e->ignore();
+ }
+
+
+/*!
+ \fn Arranger::kbdMovementUpdate(Track* t, Part* p)
+ \brief Slot connected to canvaswidget, called when a part is selected
+ @param t Track the selected part belongs to (null if no part selected)
+ @param p The selected Part (null if no part selected)
+ */
+void Arranger::kbdMovementUpdate(Track*, Part*)
+ {
+ printf("kbdMovementUpdate\n");
+// if (t && p ) {
+// // If other track selected:
+// if (t != shortcutsKbdMovement.track()) {
+// TrackList* stl = song->tracks();
+// for (iTrack i = stl->begin(); i != stl->end(); ++i) {
+// if (*i == t) {
+// // Set focus and select current track
+// t->arrangerTrack.tw->setFocus();
+// song->selectTrack(t);
+// }
+// }
+// }
+// shortcutsKbdMovement.setTrack(t);
+// shortcutsKbdMovement.setPart(p);
+// shortcutsKbdMovement.setPos(p->tick(), p->tick() + p->lenTick());
+// }
+// else { // Deselected
+// shortcutsKbdMovement.reset();
+// }
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+
+void Arranger::addMarker(const AL::Pos& pos)
+ {
+ song->addMarker(QString(), pos);
+ canvas->widget()->update();
+ }
+
+//---------------------------------------------------------
+// removeMarker
+//---------------------------------------------------------
+
+void Arranger::removeMarker(const AL::Pos& pos)
+ {
+ AL::MarkerList* ml = song->marker();
+ for (AL::iMarker i = ml->begin(); i != ml->end(); ++i) {
+ AL::iMarker ni = i;
+ ++ni;
+ if (i->second <= pos && (ni == ml->end() || ni->second > pos)) {
+ song->removeMarker(&(i->second));
+ canvas->widget()->update();
+ return;
+ }
+ }
+ printf("marker not found\n");
+ }
diff --git a/muse_qt4_evolution/muse/arranger.h b/muse_qt4_evolution/muse/arranger.h
new file mode 100644
index 00000000..1c9f6e38
--- /dev/null
+++ b/muse_qt4_evolution/muse/arranger.h
@@ -0,0 +1,175 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ARRANGER_H__
+#define __ARRANGER_H__
+
+#include "widgets/tools.h"
+#include "track.h"
+
+namespace AL {
+ class Xml;
+ class Pos;
+ };
+using AL::Xml;
+class AL::Pos;
+
+class Track;
+class TrackInfo;
+class TLWidget;
+class TLSWidget;
+class PartCanvas;
+class Part;
+class SimpleButton;
+class Strip;
+class ArrangerTrack;
+class Splitter;
+class TlsvLayout;
+class TLayout;
+
+//---------------------------------------------------------
+// InfoStack
+//---------------------------------------------------------
+
+class InfoStack : public QStackedWidget {
+ Q_OBJECT;
+
+ virtual QSize sizeHint() const;
+
+ public:
+ InfoStack() : QStackedWidget() {}
+ };
+
+//---------------------------------------------------------
+// TrackListWidget
+//---------------------------------------------------------
+
+class TrackListWidget : public QWidget {
+ Q_OBJECT
+
+ void mousePressEvent(QMouseEvent*);
+ void wheelEvent(QWheelEvent*);
+ virtual void paintEvent(QPaintEvent*);
+
+ signals:
+ void mouseWheel(QWheelEvent*);
+
+ public:
+ TrackListWidget(QWidget* parent = 0);
+ };
+
+//---------------------------------------------------------
+// Arranger
+//---------------------------------------------------------
+
+class Arranger : public QWidget {
+ Q_OBJECT
+
+ QAction* infoDockAction;
+ QAction* mixerDockAction;
+
+ TrackInfo* trackInfos[Track::TRACK_TYPES];
+ QWidget* zeroTrackInfo;
+ Tool tool;
+ QWidget* trackList;
+ PartCanvas* canvas;
+ TLayout* tl; // tracklist layout
+ TrackListWidget* tlsv;
+ TlsvLayout* tlsvLayout;
+ QDialog* configTrackEditor;
+ QStackedWidget* trackInfo;
+ QScrollArea* infoView;
+ Track* _curTrack; // current selected track
+ SimpleButton* gmute;
+ SimpleButton* gsolo;
+ SimpleButton* gar;
+ SimpleButton* gaw;
+ Strip* strip;
+ QStackedWidget* info;
+
+ Splitter* split;
+ QDockWidget* infoDock;
+ QDockWidget* mixerDock;
+
+ int startH; // start value for resize track height
+
+ bool trackInfoVisible;
+ bool mixerStripVisible;
+
+ void updateIndex();
+ TrackInfo* createTrackInfo();
+ int tlIndex(Track*) const;
+ int tlIndex(ArrangerTrack* t) const;
+ bool initSubtrack(Track* t, ArrangerTrack*);
+ ArrangerTrack* atrack(int idx);
+ void insertTrack1(Track*);
+
+ private slots:
+ void startDrag(int idx);
+ void drag(int idx, int);
+ void setTLViewPos(int, int);
+ void appendSubtrack(TLWidget*);
+ void removeSubtrack(TLSWidget*);
+ void configTrackList();
+ void toggleTrackInfo(bool);
+ void toggleMixerStrip(bool);
+ void setGMute();
+ void setGSolo();
+ void setGar();
+ void setGaw();
+ void offGMute();
+ void offGSolo();
+ void offGar();
+ void offGaw();
+ void setSelectedTrack(Track*);
+ void moveTrack(Track* src, Track* dst);
+ void kbdMovementUpdate(Track* t, Part* p);
+ void mouseWheel(QWheelEvent*);
+ void setPos(int, const AL::Pos&);
+ void addMarker(const AL::Pos&);
+ void removeMarker(const AL::Pos&);
+
+ public slots:
+ void insertTrack(Track*);
+ void removeTrack(Track*);
+ void setTool(int t);
+ void updateConfiguration();
+ void startLoadSong();
+
+ signals:
+ void configChanged();
+ void toolChanged(int);
+ void editPart(Part*);
+ void cursorPos(const AL::Pos&,bool);
+
+ public:
+ Arranger(QMainWindow* parent = 0);
+ void readStatus(QDomNode);
+ void writeStatus(Xml&);
+ Track* curTrack() const { return _curTrack; }
+ void endLoadSong();
+ Strip* getStrip() const { return strip; }
+
+ protected:
+ virtual void keyPressEvent(QKeyEvent* e);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/astrip.cpp b/muse_qt4_evolution/muse/astrip.cpp
new file mode 100644
index 00000000..8d6cdd09
--- /dev/null
+++ b/muse_qt4_evolution/muse/astrip.cpp
@@ -0,0 +1,791 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2000-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "audio.h"
+#include "audiodev.h"
+#include "song.h"
+#include "astrip.h"
+#include "synth.h"
+#include "rack.h"
+#include "gconfig.h"
+#include "muse.h"
+#include "widgets/simplebutton.h"
+#include "widgets/utils.h"
+#include "auxplugin.h"
+#include "midiinport.h"
+#include "midioutport.h"
+
+#include "awl/volknob.h"
+#include "awl/panknob.h"
+#include "awl/mslider.h"
+#include "awl/volentry.h"
+#include "awl/panentry.h"
+
+//---------------------------------------------------------
+// AudioStrip
+// create mixer strip
+//---------------------------------------------------------
+
+AudioStrip::AudioStrip(Mixer* m, AudioTrack* t, bool align)
+ : Strip(m, t, align)
+ {
+ iR = 0;
+ oR = 0;
+ off = 0;
+ volume = -1.0;
+ channel = t->channels();
+
+ //---------------------------------------------------
+ // prefader plugin rack
+ //---------------------------------------------------
+
+ rack1 = new EffectRack(this, t, true);
+ rack1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ rack1->setFixedHeight(rack1->sizeHint().height() + 2);
+ grid->addWidget(rack1, 1, 0, 1, 2);
+
+ //---------------------------------------------------
+ // mono/stereo pre/post
+ //---------------------------------------------------
+
+ stereo = newStereoButton();
+ stereo->setChecked(channel == 2);
+ stereo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ stereo->setFixedHeight(LABEL_HEIGHT);
+ connect(stereo, SIGNAL(clicked(bool)), SLOT(stereoToggled(bool)));
+
+ pre = new QToolButton;
+ pre->setObjectName("preButton");
+ pre->setCheckable(true);
+ pre->setText(tr("Pre"));
+ pre->setToolTip(tr("pre fader - post fader"));
+ pre->setChecked(t->prefader());
+ pre->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ pre->setFixedHeight(LABEL_HEIGHT);
+ connect(pre, SIGNAL(clicked(bool)), SLOT(preToggled(bool)));
+
+ grid->addWidget(stereo, 2, 0);
+ grid->addWidget(pre, 2, 1);
+
+ //---------------------------------------------------
+ // slider, label
+ //---------------------------------------------------
+
+ slider = new Awl::MeterSlider(this);
+ slider->setRange(config.minSlider, config.maxSlider);
+ slider->setFixedWidth(60);
+ slider->setChannel(channel);
+ Ctrl* ctrl = t->getController(AC_VOLUME);
+ double vol = 0.0f;
+ if (ctrl)
+ vol = ctrl->curVal().f;
+ slider->setValue(vol);
+ grid->addWidget(slider, 3, 0, 1, 2); // 100, Qt::AlignRight);
+
+ sl = new Awl::VolEntry(this);
+ sl->setSuffix(tr("dB"));
+ sl->setFrame(true);
+ sl->setValue(vol);
+ sl->setFixedHeight(entrySize.height());
+
+ connect(slider, SIGNAL(valueChanged(double,int)), SLOT(volumeChanged(double)));
+ connect(sl, SIGNAL(valueChanged(double,int)), SLOT(volumeChanged(double)));
+
+ connect(slider, SIGNAL(sliderPressed(int)), SLOT(volumePressed()));
+ connect(slider, SIGNAL(sliderReleased(int)), SLOT(volumeReleased()));
+ connect(slider, SIGNAL(meterClicked()), SLOT(resetPeaks()));
+ grid->addWidget(sl, 4, 0, 1, 2);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ pan = addPanKnob(&panl, 5);
+ double panv = t->getController(AC_PAN)->curVal().f;
+ pan->setValue(panv);
+ panl->setValue(panv);
+
+ //---------------------------------------------------
+ // postfader plugin rack
+ //---------------------------------------------------
+
+ rack2 = new EffectRack(this, t, false);
+ rack2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ rack2->setFixedHeight(rack1->sizeHint().height() + 2);
+ grid->addWidget(rack2, 7, 0, 1, 2);
+
+ //---------------------------------------------------
+ // mute, solo, record
+ //---------------------------------------------------
+
+ Track::TrackType type = t->type();
+
+ mute = newMuteButton();
+ mute->setChecked(t->mute());
+ mute->setFixedHeight(BUTTON_HEIGHT);
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+ connect(t, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+
+ solo = newSoloButton();
+ solo->setDisabled(true);
+ solo->setFixedHeight(BUTTON_HEIGHT);
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+ connect(t, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+
+ off = newOffButton();
+ off->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ off->setFixedHeight(BUTTON_HEIGHT);
+ off->setChecked(t->off());
+ connect(off, SIGNAL(clicked(bool)), SLOT(offToggled(bool)));
+ connect(t, SIGNAL(offChanged(bool)), this, SLOT(updateOffState()));
+
+ if (track->canRecord()) {
+ record = newRecordButton();
+ record->setFixedHeight(BUTTON_HEIGHT);
+ if (type == Track::AUDIO_OUTPUT)
+ record->setToolTip(tr("record downmix"));
+ record->setChecked(t->recordFlag());
+ connect(record, SIGNAL(clicked(bool)), SLOT(recordToggled(bool)));
+ connect(t, SIGNAL(recordChanged(bool)), record, SLOT(setChecked(bool)));
+ }
+ else
+ record = 0;
+
+ grid->addWidget(off, 8, 0);
+ if (record)
+ grid->addWidget(record, 8, 1);
+ grid->addWidget(mute, 9, 0);
+ grid->addWidget(solo, 9, 1);
+
+ //---------------------------------------------------
+ // automation read write
+ //---------------------------------------------------
+
+ addAutomationButtons(10);
+
+ //---------------------------------------------------
+ // routing
+ //---------------------------------------------------
+
+ iR = newInRouteButton();
+ grid->addWidget(iR, 12, 0);
+ connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
+ connect(iR->menu(), SIGNAL(aboutToHide()), SLOT(iRouteHide()));
+ connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ oR = newOutRouteButton();
+ grid->addWidget(oR, 12, 1);
+ connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
+ connect(oR->menu(), SIGNAL(aboutToHide()), SLOT(oRouteHide()));
+ connect(oR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ if (off) {
+ updateOffState(); // init state
+ }
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+ connect(track, SIGNAL(autoReadChanged(bool)), SLOT(autoChanged()));
+ connect(track, SIGNAL(autoWriteChanged(bool)), SLOT(autoChanged()));
+ autoChanged();
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void AudioStrip::heartBeat()
+ {
+ int peakHold = (config.peakHoldTime * config.guiRefresh) / 1000;
+ for (int ch = 0; ch < channel; ++ch) {
+ int n = track->peakTimer(ch);
+ ++n;
+ double f = track->peak(ch);
+ if (n >= peakHold) {
+ // track->resetPeak(ch);
+ track->setPeak(ch, f * 0.7);
+ }
+ track->setPeakTimer(ch, n);
+ slider->setMeterVal(ch, track->meter(ch), f);
+ }
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void AudioStrip::songChanged(int val)
+ {
+ AudioTrack* src = (AudioTrack*)track;
+ if (val & SC_TRACK_MODIFIED)
+ updateLabel();
+ if ((val & SC_ROUTE) && pre)
+ pre->setChecked(src->prefader());
+ if (val & SC_CHANNELS)
+ updateChannels();
+ }
+
+//---------------------------------------------------------
+// offToggled
+//---------------------------------------------------------
+
+void AudioStrip::offToggled(bool val)
+ {
+ song->setOff(track, !val);
+ }
+
+//---------------------------------------------------------
+// updateOffState
+//---------------------------------------------------------
+
+void AudioStrip::updateOffState()
+ {
+ bool val = !track->off();
+ slider->setEnabled(val);
+ sl->setEnabled(val);
+ pan->setEnabled(val);
+ panl->setEnabled(val);
+ pre->setEnabled(val);
+ rack1->setEnabled(val);
+ rack2->setEnabled(val);
+
+ if (track->type() != Track::AUDIO_SOFTSYNTH)
+ stereo->setEnabled(val);
+ label->setEnabled(val);
+ if (solo)
+ solo->setEnabled(val);
+ if (mute)
+ mute->setEnabled(val);
+ if (iR)
+ iR->setEnabled(val);
+ if (oR)
+ oR->setEnabled(val);
+ if (off)
+ off->setChecked(track->off());
+ if (ar)
+ ar->setEnabled(val);
+ if (aw)
+ aw->setEnabled(val);
+ }
+
+//---------------------------------------------------------
+// preToggled
+//---------------------------------------------------------
+
+void AudioStrip::preToggled(bool val)
+ {
+ ((AudioTrack*)track)->setPrefader(val);
+ resetPeaks();
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// stereoToggled
+//---------------------------------------------------------
+
+void AudioStrip::stereoToggled(bool val)
+ {
+ int nc = val ? 1 : 2;
+ if (channel == nc)
+ return;
+ audio->msgSetChannels((AudioTrack*)track, nc);
+ song->update(SC_CHANNELS);
+ }
+
+//---------------------------------------------------------
+// volumeChanged
+//---------------------------------------------------------
+
+void AudioStrip::volumeChanged(double v)
+ {
+ CVal val;
+ val.f = v;
+ song->setControllerVal(track, AC_VOLUME, val);
+ }
+
+//---------------------------------------------------------
+// volumePressed
+//---------------------------------------------------------
+
+void AudioStrip::volumePressed()
+ {
+ ((AudioTrack*)track)->startAutoRecord(AC_VOLUME);
+ }
+
+//---------------------------------------------------------
+// volumeReleased
+//---------------------------------------------------------
+
+void AudioStrip::volumeReleased()
+ {
+ ((AudioTrack*)track)->stopAutoRecord(AC_VOLUME);
+ }
+
+//---------------------------------------------------------
+// panChanged
+//---------------------------------------------------------
+
+void AudioStrip::panChanged(double v)
+ {
+ if (v != panVal) {
+ CVal val;
+ val.f = v;
+ song->setControllerVal(track, AC_PAN, val);
+ panVal = v;
+ }
+ }
+
+//---------------------------------------------------------
+// setPan
+//---------------------------------------------------------
+
+void AudioStrip::setPan(double val)
+ {
+ if (val != panVal) {
+ panVal = val;
+ pan->setValue(val);
+ panl->setValue(val);
+ }
+ }
+
+//---------------------------------------------------------
+// panPressed
+//---------------------------------------------------------
+
+void AudioStrip::panPressed()
+ {
+ track->startAutoRecord(AC_PAN);
+ }
+
+//---------------------------------------------------------
+// panReleased
+//---------------------------------------------------------
+
+void AudioStrip::panReleased()
+ {
+ track->stopAutoRecord(AC_PAN);
+ }
+
+//---------------------------------------------------------
+// updateChannels
+//---------------------------------------------------------
+
+void AudioStrip::updateChannels()
+ {
+ AudioTrack* t = (AudioTrack*)track;
+ int c = t->channels();
+ if (c == channel)
+ return;
+ channel = c;
+ slider->setChannel(c);
+ stereo->setChecked(channel == 2);
+ }
+
+//---------------------------------------------------------
+// addPanKnob
+//---------------------------------------------------------
+
+Awl::PanKnob* AudioStrip::addPanKnob(Awl::PanEntry** dlabel, int row)
+ {
+ Awl::PanKnob* knob = new Awl::PanKnob(this);
+ knob->setToolTip(tr("panorama"));
+ knob->setFixedHeight(entrySize.height() * 2);
+
+ Awl::PanEntry* pl = new Awl::PanEntry(this);
+ pl->setPrecision(2);
+
+ if (dlabel)
+ *dlabel = pl;
+// pl->setFont(config.fonts[1]);
+ pl->setFrame(true);
+
+ pl->setFixedSize(entrySize);
+
+ QLabel* plb = new QLabel;
+ plb->setObjectName("knobLabel");
+ plb->setText(tr("Pan"));
+ plb->setFixedSize(entrySize);
+ plb->setAlignment(Qt::AlignCenter);
+
+ grid->addWidget(plb, row, 0);
+ grid->addWidget(pl, row+1, 0);
+ grid->addWidget(knob, row, 1, 2, 1);
+
+ connect(knob, SIGNAL(valueChanged(double,int)), SLOT(panChanged(double)));
+ connect(pl, SIGNAL(valueChanged(double,int)), SLOT(panChanged(double)));
+ connect(knob, SIGNAL(sliderPressed(int)), SLOT(panPressed()));
+ connect(knob, SIGNAL(sliderReleased(int)), SLOT(panReleased()));
+ return knob;
+ }
+
+//---------------------------------------------------------
+// addAuxPorts
+//---------------------------------------------------------
+
+static void addAuxPorts(AudioTrack* track, QMenu* lb, const RouteList& rl)
+ {
+ QList<AuxPluginIF*> pre = track->preAux();
+ QList<AuxPluginIF*> post = track->postAux();
+ foreach (AuxPluginIF* p, pre) {
+ QString s = p->pluginInstance()->name();
+ QAction* a = lb->addAction(p->pluginInstance()->name());
+ a->setCheckable(true);
+// Route route(RouteNode(p), RouteNode(track));
+ Route route = Route(RouteNode(p), RouteNode(track));
+ a->setData(QVariant::fromValue(route));
+ a->setChecked(rl.indexOf(route) != -1);
+ }
+ foreach(AuxPluginIF* p, post) {
+ QAction* a = lb->addAction(p->pluginInstance()->name());
+ a->setCheckable(true);
+// Route route(RouteNode(p), RouteNode(track)); // does not compile?!
+ Route route = Route(RouteNode(p), RouteNode(track));
+ a->setData(QVariant::fromValue(route));
+ a->setChecked(rl.indexOf(route) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// addInPorts
+//---------------------------------------------------------
+
+static void addInPorts(AudioTrack* t, QMenu* lb, const RouteList& rl, bool input)
+ {
+ RouteNode a(t);
+
+ InputList* al = song->inputs();
+ for (iAudioInput i = al->begin(); i != al->end(); ++i) {
+ AudioTrack* track = (AudioTrack*)*i;
+ if (t == track)
+ continue;
+ QAction* it = lb->addAction(track->name());
+ it->setCheckable(true);
+ RouteNode b(track);
+ Route route = input ? Route(b, a) : Route(a, b);
+ it->setData(QVariant::fromValue(route));
+ it->setChecked(rl.indexOf(route) != -1);
+ if (input)
+ addAuxPorts(track, lb, rl);
+ }
+ }
+
+//---------------------------------------------------------
+// addOutPorts
+//---------------------------------------------------------
+
+static void addOutPorts(AudioTrack* t, QMenu* lb, const RouteList& rl)
+ {
+ OutputList* al = song->outputs();
+ for (iAudioOutput i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ QAction* it = lb->addAction(track->name());
+ it->setCheckable(true);
+ Route route = Route(RouteNode(t), RouteNode(track));
+ it->setData(QVariant::fromValue(route));
+ it->setChecked(rl.indexOf(route) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// addGroupPorts
+//---------------------------------------------------------
+
+static void addGroupPorts(AudioTrack* t, QMenu* lb, const RouteList& rl)
+ {
+ GroupList* al = song->groups();
+ for (iAudioGroup i = al->begin(); i != al->end(); ++i) {
+ AudioTrack* track = (AudioTrack*)*i;
+ if (t == track)
+ continue;
+ QAction* it = lb->addAction(track->name());
+ it->setCheckable(true);
+ Route route = Route(RouteNode(t), RouteNode(track));
+ it->setData(QVariant::fromValue(route));
+ it->setChecked(rl.indexOf(route) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// addWavePorts
+//---------------------------------------------------------
+
+static void addWavePorts(AudioTrack* t, QMenu* lb, const RouteList& rl, bool input)
+ {
+ RouteNode a(t);
+ WaveTrackList* al = song->waves();
+ for (iWaveTrack i = al->begin(); i != al->end(); ++i) {
+ AudioTrack* track = (AudioTrack*)*i;
+ if (t == track) // cannot connect to itself
+ continue;
+ QAction* it = lb->addAction(track->name());
+ it->setCheckable(true);
+ RouteNode b(track);
+ Route route = input ? Route(b, a) : Route(a, b);
+ it->setData(QVariant::fromValue(route));
+ it->setChecked(rl.indexOf(route) != -1);
+ if (input)
+ addAuxPorts(track, lb, rl);
+ }
+ }
+
+//---------------------------------------------------------
+// addSyntiPorts
+//---------------------------------------------------------
+
+static void addSyntiPorts(AudioTrack* t, QMenu* lb, const RouteList& rl)
+ {
+ SynthIList* al = song->syntis();
+ for (iSynthI i = al->begin(); i != al->end(); ++i) {
+ AudioTrack* track = (AudioTrack*)*i;
+ if (t == track)
+ continue;
+ QAction* it = lb->addAction(track->name());
+ it->setCheckable(true);
+ RouteNode a(t);
+ RouteNode b(track);
+ Route route = Route(b, a);
+ it->setData(QVariant::fromValue(route));
+ it->setChecked(rl.indexOf(route) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// iRouteShow
+//---------------------------------------------------------
+
+extern void addMidiTracks(QMenu* menu, Track* track, int channel, bool input);
+extern void addMidiInPorts(QMenu* menu, Track* dtrack, int channel);
+
+void AudioStrip::iRouteShow()
+ {
+ QMenu* pup = iR->menu();
+ pup->clear();
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* irl = t->inRoutes();
+
+ switch(track->type()) {
+ default:
+ return;
+ case Track::AUDIO_INPUT:
+ {
+ for (int i = 0; i < channel; ++i) {
+ pup->addSeparator()->setText(QString(tr("Channel %1")).arg(i+1));
+ QList<PortName> ol = audioDriver->outputPorts(false);
+ foreach (PortName ip, ol) {
+ QAction* id = pup->addAction(ip.name);
+ id->setCheckable(true);
+ RouteNode src(ip.port, -1, RouteNode::AUDIOPORT);
+ RouteNode dst(t, i, RouteNode::TRACK);
+ Route route = Route(src, dst);
+ id->setData(QVariant::fromValue(route));
+ id->setChecked(irl->indexOf(route) != -1);
+ }
+ }
+ }
+ break;
+ case Track::AUDIO_OUTPUT:
+ addWavePorts(t, pup, *irl, true);
+ addInPorts(t, pup, *irl, true);
+ addGroupPorts(t, pup, *irl);
+ addSyntiPorts(t, pup, *irl);
+ break;
+ case Track::WAVE:
+ addInPorts(t, pup, *irl, true);
+ break;
+ case Track::AUDIO_GROUP:
+ addWavePorts(t, pup, *irl, true);
+ addInPorts(t, pup, *irl, true);
+ addGroupPorts(t, pup, *irl);
+ addSyntiPorts(t, pup, *irl);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ pup->addSeparator()->setText(tr("MidiChannel"));
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QMenu* m = pup->addMenu(QString("Channel %1").arg(ch+1));
+ addMidiTracks(m, track, ch, true);
+ addMidiInPorts(m, track, ch);
+ }
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// iRouteHide
+//---------------------------------------------------------
+
+void AudioStrip::iRouteHide()
+ {
+ // dont leave the menu if SHIFT is pressed; this allows
+ // for fast selecting of more than one input source
+ //
+ if (qApp->keyboardModifiers() & Qt::ShiftModifier) {
+ iR->menu()->show();
+ }
+ }
+
+//---------------------------------------------------------
+// oRouteHide
+//---------------------------------------------------------
+
+void AudioStrip::oRouteHide()
+ {
+ // dont leave the menu if SHIFT is pressed; this allows
+ // for fast selecting of more than one input source
+ //
+ if (qApp->keyboardModifiers() & Qt::ShiftModifier) {
+ oR->menu()->show();
+ }
+ }
+
+//---------------------------------------------------------
+// oRouteShow
+//---------------------------------------------------------
+
+void AudioStrip::oRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* orl = t->outRoutes();
+
+ switch(track->type()) {
+ default:
+ return;
+ case Track::AUDIO_OUTPUT:
+ {
+ for (int i = 0; i < channel; ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").toLatin1().data(), i+1);
+ pup->addSeparator()->setText(QString(buffer));
+
+ QList<PortName> ol = audioDriver->inputPorts(false);
+ foreach (PortName ip, ol) {
+ QAction* action = pup->addAction(ip.name);
+ action->setCheckable(true);
+ RouteNode src(t, i, RouteNode::TRACK);
+ RouteNode dst(ip.port, -1, RouteNode::AUDIOPORT);
+ Route r = Route(src, dst);
+ action->setData(QVariant::fromValue(r));
+ action->setChecked(orl->indexOf(r) != -1);
+ }
+ }
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ addWavePorts(t, pup, *orl, false);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ addOutPorts(t, pup, *orl);
+ addGroupPorts(t, pup, *orl);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void AudioStrip::muteToggled(bool val)
+ {
+ song->setMute(track, val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void AudioStrip::soloToggled(bool val)
+ {
+ song->setSolo(track, val);
+ }
+
+//---------------------------------------------------------
+// recordToggled
+//---------------------------------------------------------
+
+void AudioStrip::recordToggled(bool val)
+ {
+ song->setRecordFlag(track, !val);
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void AudioStrip::controllerChanged(int id)
+ {
+ double val = track->getController(id)->curVal().f;
+ switch (id) {
+ case AC_VOLUME:
+ slider->setValue(val);
+ sl->setValue(val);
+ break;
+ case AC_PAN:
+ pan->setValue(val);
+ panl->setValue(val);
+ panVal = val;
+ break;
+ case AC_MUTE:
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void AudioStrip::autoChanged()
+ {
+ bool ar = track->autoRead();
+ bool aw = track->autoWrite();
+
+ // controller are enabled if
+ // autoRead is off
+ // autoRead and autoWrite are on (touch mode)
+
+ bool ec = !ar || (ar && aw);
+ slider->setEnabled(ec);
+ sl->setEnabled(ec);
+ pan->setEnabled(ec);
+ panl->setEnabled(ec);
+ }
+
+//---------------------------------------------------------
+// autoReadToggled
+//---------------------------------------------------------
+
+void AudioStrip::autoReadToggled(bool val)
+ {
+ song->setAutoRead(track, val);
+ }
+
+//---------------------------------------------------------
+// autoWriteToggled
+//---------------------------------------------------------
+
+void AudioStrip::autoWriteToggled(bool val)
+ {
+ song->setAutoWrite(track, val);
+ }
+
diff --git a/muse_qt4_evolution/muse/astrip.h b/muse_qt4_evolution/muse/astrip.h
new file mode 100644
index 00000000..f0806fda
--- /dev/null
+++ b/muse_qt4_evolution/muse/astrip.h
@@ -0,0 +1,101 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ASTRIP_H__
+#define __ASTRIP_H__
+
+#include "strip.h"
+
+namespace Awl {
+ class MeterSlider;
+ class VolEntry;
+ class VolKnob;
+ class PanKnob;
+ class PanEntry;
+ };
+
+class AudioTrack;
+class SimpleButton;
+class EffectRack;
+class Mixer;
+
+//---------------------------------------------------------
+// AudioStrip
+//---------------------------------------------------------
+
+class AudioStrip : public Strip {
+ Q_OBJECT
+
+ int channel;
+ EffectRack* rack1;
+ EffectRack* rack2;
+
+ Awl::MeterSlider* slider;
+ Awl::VolEntry* sl;
+ double volume;
+
+ Awl::PanKnob* pan;
+ Awl::PanEntry* panl;
+ double panVal;
+
+ QToolButton* stereo;
+ QToolButton* pre;
+
+ Awl::PanKnob* addPanKnob(Awl::PanEntry**, int);
+
+ QToolButton* iR;
+ QToolButton* oR;
+ SimpleButton* off;
+ SimpleButton* record;
+
+ void updateChannels();
+
+ private slots:
+ void stereoToggled(bool);
+ void preToggled(bool);
+ void offToggled(bool);
+ void iRouteShow();
+ void iRouteHide();
+ void oRouteShow();
+ void oRouteHide();
+ void volumeChanged(double);
+ void volumePressed();
+ void volumeReleased();
+ void panChanged(double);
+ void setPan(double);
+ void panPressed();
+ void panReleased();
+ void muteToggled(bool);
+ void soloToggled(bool);
+ void recordToggled(bool);
+ void autoChanged();
+ virtual void controllerChanged(int id);
+ virtual void songChanged(int);
+ void autoReadToggled(bool);
+ void autoWriteToggled(bool);
+ void updateOffState();
+
+ public:
+ AudioStrip(Mixer*, AudioTrack*, bool align);
+ virtual void heartBeat();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/audio.cpp b/muse_qt4_evolution/muse/audio.cpp
new file mode 100644
index 00000000..1ad9eefc
--- /dev/null
+++ b/muse_qt4_evolution/muse/audio.cpp
@@ -0,0 +1,655 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <fcntl.h>
+
+#include "al/al.h"
+#include "muse.h"
+#include "globals.h"
+#include "song.h"
+#include "audiodev.h"
+#include "audioprefetch.h"
+#include "audiowriteback.h"
+#include "audio.h"
+#include "sync.h"
+#include "midi.h"
+#include "gconfig.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "widgets/utils.h"
+#include "synth.h"
+#include "midioutport.h"
+#include "midiinport.h"
+#include "midictrl.h"
+#include "sync.h"
+
+extern bool initJackAudio();
+
+Audio* audio;
+AudioDriver* audioDriver; // current audio device in use
+
+const char* seqMsgList[] = {
+ "SEQM_ADD_TRACK",
+ "SEQM_REMOVE_TRACK",
+ "SEQM_MOVE_TRACK",
+ "SEQM_ADD_PART",
+ "SEQM_REMOVE_PART",
+ "SEQM_CHANGE_PART",
+ "SEQM_ADD_EVENT",
+ "SEQM_REMOVE_EVENT",
+ "SEQM_CHANGE_EVENT",
+ "SEQM_ADD_TEMPO",
+/*10*/"SEQM_SET_TEMPO",
+ "SEQM_REMOVE_TEMPO",
+ "SEQM_ADD_SIG",
+ "SEQM_REMOVE_SIG",
+ "SEQM_SET_GLOBAL_TEMPO",
+ "SEQM_UNDO",
+ "SEQM_REDO",
+ "SEQM_RESET_DEVICES",
+ "SEQM_INIT_DEVICES",
+ "AUDIO_ROUTEADD",
+ "AUDIO_ROUTEREMOVE",
+/*20*/"AUDIO_ADDPLUGIN",
+ "AUDIO_ADDMIDIPLUGIN",
+ "AUDIO_SET_SEG_SIZE",
+ "AUDIO_SET_CHANNELS",
+ "MS_PROCESS",
+ "MS_START",
+ "MS_STOP",
+ "MS_SET_RTC",
+ "SEQM_IDLE",
+ "SEQM_ADD_CTRL",
+ "SEQM_REMOVE_CTRL"
+ };
+
+const char* audioStates[] = {
+ "STOP", "START_PLAY", "PLAY", "LOOP1", "LOOP2", "SYNC", "PRECOUNT"
+ };
+
+
+//---------------------------------------------------------
+// Audio
+//---------------------------------------------------------
+
+Audio::Audio()
+ {
+ recording = false;
+ idle = false;
+ _freewheel = false;
+ _bounce = 0;
+ loopPassed = false;
+
+ _seqTime.pos.setType(AL::FRAMES);
+ startRecordPos.setType(AL::TICKS);
+ endRecordPos.setType(AL::TICKS);
+
+ //---------------------------------------------------
+ // establish pipes/sockets
+ //---------------------------------------------------
+
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("creating pipe0");
+ fatalError("cannot create pipe0");
+ }
+ fromThreadFdw = filedes[1]; // blocking file descriptor
+ fromThreadFdr = filedes[0]; // non blocking file descriptor
+
+ int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
+ if (rv == -1)
+ perror("set pipe O_NONBLOCK");
+
+ if (pipe(filedes) == -1) {
+ perror("creating pipe1");
+ fatalError("cannot create pipe1");
+ }
+ sigFd = filedes[1];
+ QSocketNotifier* ss = new QSocketNotifier(filedes[0], QSocketNotifier::Read);
+ song->connect(ss, SIGNAL(activated(int)), song, SLOT(seqSignal(int)));
+ }
+
+//---------------------------------------------------------
+// start
+// start audio processing
+//---------------------------------------------------------
+
+bool Audio::start()
+ {
+ TrackList* tl = song->tracks();
+
+ _seqTime.curTickPos = 0;
+ _seqTime.nextTickPos = 0;
+ _seqTime.pos.setFrame(~0); // make sure seek is not optimized away
+
+ msg = 0;
+
+ //
+ // init marker for synchronous loop processing
+ //
+ lmark = song->lPos().frame();
+ rmark = song->rPos().frame();
+ state = STOP;
+ muse->setHeartBeat();
+
+ if (audioDriver) {
+ //
+ // allocate ports
+ //
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ (*i)->activate1();
+ seek(song->cpos());
+ process(segmentSize, STOP); // warm up caches; audio must be stopped
+ }
+ else {
+
+ // if audio device has disappeared it probably
+ // means jack has performed a shutdown
+ // try to restart and reconnect everything
+
+ if (false == initJackAudio()) {
+ //
+ // allocate ports, first resetting the old connection
+ //
+ InputList* itl = song->inputs();
+ for (iAudioInput i = itl->begin(); i != itl->end(); ++i) {
+ for (int x=0; x < (*i)->channels();x++) {
+ (*i)->setJackPort(Port(), x); // zero out the old connection
+ }
+ (*i)->activate1();
+ }
+
+ OutputList* otl = song->outputs();
+ for (iAudioOutput i = otl->begin(); i != otl->end(); ++i) {
+ for (int x=0; x < (*i)->channels();x++)
+ (*i)->setJackPort(Port(), x); // zero out the old connection
+ (*i)->activate1();
+ }
+ }
+ else {
+ printf("Failed to init audio!\n");
+ return false;
+ }
+ }
+ audioDriver->start(realTimePriority);
+ audioDriver->stopTransport();
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+// stop audio processing
+// non realtime
+//---------------------------------------------------------
+
+void Audio::stop()
+ {
+#if 0
+ MidiOutPortList* opl = song->midiOutPorts();
+ for (iMidiOutPort i = opl->begin(); i != opl->end(); ++i)
+ (*i)->deactivate();
+ MidiInPortList* ipl = song->midiInPorts();
+ for (iMidiInPort i = ipl->begin(); i != ipl->end(); ++i)
+ (*i)->deactivate();
+#endif
+ if (audioDriver)
+ audioDriver->stop();
+ }
+
+//---------------------------------------------------------
+// sync
+// return true if sync is completed
+//---------------------------------------------------------
+
+bool Audio::sync(int jackState, unsigned frame)
+ {
+// printf("Audio::sync() state %s jackState %s frame 0x%x\n", audioStates[state], audioStates[jackState], frame);
+ bool done = true;
+ if (state == LOOP1)
+ state = LOOP2;
+ else {
+ State s = State(jackState);
+ //
+ // STOP -> START_PLAY start rolling
+ // STOP -> STOP seek in stop state
+ // PLAY -> START_PLAY seek in play state
+
+ if (state != START_PLAY) {
+ Pos p(frame, AL::FRAMES);
+ seek(p);
+ if (!_freewheel)
+ done = audioPrefetch->seekDone();
+ if (s == START_PLAY)
+ state = START_PLAY;
+ }
+ else {
+ if (frame != _seqTime.pos.frame()) {
+ // seek during seek
+ seek(Pos(frame, AL::FRAMES));
+ }
+ done = audioPrefetch->seekDone();
+ }
+ }
+ return done;
+ }
+
+//---------------------------------------------------------
+// setFreewheel
+//---------------------------------------------------------
+
+void Audio::setFreewheel(bool val)
+ {
+// printf("JACK: freewheel callback %d\n", val);
+ _freewheel = val;
+ }
+
+//---------------------------------------------------------
+// shutdown
+//---------------------------------------------------------
+
+void Audio::shutdown()
+ {
+ audioState = AUDIO_STOP;
+printf("JACK: shutdown callback\n");
+ sendMsgToGui(MSG_JACK_SHUTDOWN);
+ }
+
+//---------------------------------------------------------
+// process
+// process one audio buffer at position "_seqTime._pos "
+// of size "frames"
+//---------------------------------------------------------
+
+void Audio::process(unsigned frames, int jackState)
+ {
+ _seqTime.lastFrameTime = audioDriver->frameTime();
+
+ for (iMidiOutPort i = song->midiOutPorts()->begin(); i != song->midiOutPorts()->end(); ++i)
+ audioDriver->startMidiCycle((*i)->jackPort(0));
+
+ //
+ // process messages from gui
+ //
+ if (msg) {
+ processMsg();
+ msg = 0; // dont process again
+ int rv = write(fromThreadFdw, "x", 1);
+ if (rv != 1) {
+ fprintf(stderr, "audio: write(%d) pipe failed: %s\n",
+ fromThreadFdw, strerror(errno));
+ }
+ }
+
+ if (jackState != state) {
+ if (state == START_PLAY && jackState == PLAY) {
+ startRolling();
+ if (_bounce)
+ sendMsgToGui(MSG_START_BOUNCE);
+ }
+ else if (state == LOOP2 && jackState == PLAY) {
+ Pos newPos(loopFrame, AL::FRAMES);
+ seek(newPos);
+ startRolling();
+ }
+ else if (isPlaying() && jackState == STOP)
+ stopRolling();
+ else if (state == START_PLAY && jackState == STOP) {
+ state = STOP;
+ updateController = true;
+ if (_bounce)
+ audioDriver->startTransport();
+ else
+ sendMsgToGui(MSG_STOP);
+ }
+ else if (state == STOP && jackState == PLAY)
+ startRolling();
+ }
+
+ if (idle || (state == START_PLAY)) {
+ // deliver silence
+ OutputList* ol = song->outputs();
+ for (iAudioOutput i = ol->begin(); i != ol->end(); ++i)
+ (*i)->silence(frames);
+ return;
+ }
+
+ if (state == PLAY) {
+ //
+ // clear prefetch FIFO if left/right locators
+ // have changed
+ //
+ unsigned llmark = song->lPos().frame();
+ unsigned rrmark = song->rPos().frame();
+
+ if (lmark != llmark || rmark != rrmark) {
+ //
+ // invalidate audio prefetch buffer
+ //
+ audioPrefetch->getFifo()->clear();
+ audioPrefetch->msgSeek(_seqTime.startFrame());
+ lmark = llmark;
+ rmark = rrmark;
+ }
+ }
+
+ if (isPlaying()) {
+ if (_bounce == 1 && _seqTime.pos >= song->rPos()) {
+ _bounce = 2;
+ sendMsgToGui(MSG_STOP_BOUNCE);
+ }
+ //
+ // check for end of song
+ //
+ if ((_seqTime.curTickPos >= song->len())
+ && !(song->record() || _bounce || song->loop())) {
+ audioDriver->stopTransport();
+ return;
+ }
+
+ //
+ // check for loop end
+ //
+ if (state == PLAY && song->loop() && !_bounce && !extSyncFlag) {
+ unsigned n = rmark - _seqTime.startFrame() - (3 * frames);
+ if (n < frames) {
+ // loop end in current cycle
+ // adjust loop start so we get exact loop len
+ if (n > lmark)
+ n = 0;
+ state = LOOP1;
+ loopFrame = lmark - n;
+ audioDriver->seekTransport(loopFrame);
+ }
+ }
+
+ Pos ppp(_seqTime.pos);
+ ppp += frames;
+ _seqTime.nextTickPos = ppp.tick();
+ }
+
+ //
+ // compute current controller values
+ // (automation)
+ //
+ TrackList* tl = song->tracks();
+ if (state == PLAY || updateController) {
+ updateController = false;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ if ((*it)->isMidiTrack())
+ continue;
+ AudioTrack* track = (AudioTrack*)(*it);
+ if (!track->autoRead())
+ continue;
+ CtrlList* cl = track->controller();
+ for (iCtrl i = cl->begin(); i != cl->end(); ++i) {
+ Ctrl* c = i->second;
+ float val = c->value(_seqTime.startFrame()).f;
+ if (val != c->curVal().f) {
+ c->setCurVal(val);
+ c->setChanged(true);
+ }
+ }
+ }
+ }
+
+ //-----------------------------------------
+ // process midi
+ //-----------------------------------------
+
+ SynthIList* sl = song->syntis();
+ {
+ MidiOutPortList* ol = song->midiOutPorts();
+ MidiInPortList* mil = song->midiInPorts();
+ MidiTrackList* mtl = song->midis();
+
+ for (iMidiInPort i = mil->begin(); i != mil->end(); ++i)
+ (*i)->beforeProcess();
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i)
+ (*i)->processMidi(&_seqTime);
+ for (iMidiOutPort i = ol->begin(); i != ol->end(); ++i)
+ (*i)->processMidi(&_seqTime);
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ (*i)->processMidi(&_seqTime);
+
+ for (iMidiInPort i = mil->begin(); i != mil->end(); ++i)
+ (*i)->afterProcess();
+ }
+
+ //-----------------------------------------
+ // process audio
+ //-----------------------------------------
+
+ GroupList* gl = song->groups();
+ InputList* il = song->inputs();
+ WaveTrackList* wl = song->waves();
+
+ for (iAudioInput i = il->begin(); i != il->end(); ++i)
+ (*i)->process();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ (*i)->process();
+
+ _curReadIndex = -1;
+ if (isPlaying() && !wl->empty()) {
+ Fifo1* fifo = audioPrefetch->getFifo();
+ if (fifo->count() == 0) {
+ printf("MusE::Audio: fifo underflow at 0x%x\n", _seqTime.curTickPos);
+ audioPrefetch->msgTick();
+ }
+ else {
+ bool msg = true;
+ do {
+ unsigned fifoPos = fifo->readPos();
+ if (fifoPos == _seqTime.startFrame()) {
+ _curReadIndex = fifo->readIndex();
+ break;
+ }
+ else {
+ if (msg) {
+ printf("Muse::Audio: wrong prefetch data 0x%x, expected 0x%x\n",
+ fifoPos, _seqTime.startFrame());
+ msg = false;
+ }
+ if (fifoPos > _seqTime.startFrame()) {
+ // discard whole prefetch buffer
+ seek(_seqTime.pos + frames);
+ break;
+ }
+ fifo->pop(); // discard buffer
+ }
+ } while (fifo->count());
+ }
+ }
+ for (iWaveTrack i = wl->begin(); i != wl->end(); ++i) {
+ if (song->bounceTrack != *i)
+ (*i)->process();
+ }
+ for (iAudioGroup i = gl->begin(); i != gl->end(); ++i)
+ (*i)->process();
+
+ OutputList* aol = song->outputs();
+ for (iAudioOutput i = aol->begin(); i != aol->end(); ++i)
+ (*i)->process();
+
+ if (_bounce == 1 && song->bounceTrack && song->bounceTrack->type() == Track::WAVE)
+ song->bounceTrack->process();
+
+ if (isPlaying()) {
+ if (!freewheel()) {
+ //
+ // consume prefetch buffer
+ //
+ if (_curReadIndex != -1) {
+ audioPrefetch->getFifo()->pop();
+ audioPrefetch->msgTick(); // wakeup prefetch thread
+ }
+ }
+ if (recording && (_bounce == 0 || _bounce == 1))
+ audioWriteback->trigger();
+ _seqTime.pos += frames;
+ _seqTime.curTickPos = _seqTime.nextTickPos;
+ }
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void Audio::processMsg()
+ {
+// printf("---msg %d\n", msg->id);
+ switch(msg->id) {
+ case AUDIO_ROUTEADD:
+ addRoute(msg->route);
+ break;
+ case AUDIO_ROUTEREMOVE:
+ removeRoute(msg->route);
+ break;
+ case AUDIO_SET_CHANNELS:
+ msg->track->setChannels(msg->ival);
+ break;
+ case AUDIO_ADDPLUGIN:
+ ((AudioTrack*)msg->track)->addPlugin(msg->plugin, msg->ival,
+ msg->iival);
+ break;
+
+ case AUDIO_SET_SEG_SIZE:
+ segmentSize = msg->ival;
+ AL::sampleRate = msg->iival;
+#if 0 //TODO
+ audioOutput.segmentSizeChanged();
+ for (int i = 0; i < mixerGroups; ++i)
+ audioGroups[i].segmentSizeChanged();
+ for (iSynthI ii = synthiInstances.begin(); ii != synthiInstances.end();++ii)
+ (*ii)->segmentSizeChanged();
+#endif
+ break;
+
+ case SEQM_INIT_DEVICES:
+ initMidiDevices();
+ break;
+ case SEQM_RESET_DEVICES:
+ resetMidiDevices();
+ break;
+ case SEQM_ADD_TEMPO:
+ case SEQM_REMOVE_TEMPO:
+ case SEQM_SET_GLOBAL_TEMPO:
+ case SEQM_SET_TEMPO:
+ song->processMsg(msg);
+ if (isPlaying())
+ _seqTime.pos.setTick(_seqTime.curTickPos);
+ break;
+
+ case SEQM_IDLE:
+ idle = msg->a;
+ break;
+
+ case AUDIO_ADDMIDIPLUGIN:
+ ((MidiTrackBase*)msg->track)->addPlugin(msg->mplugin, msg->ival);
+ break;
+ default:
+ song->processMsg(msg);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// seek
+// - called before start play
+// - initiated from gui
+//---------------------------------------------------------
+
+void Audio::seek(const Pos& p)
+ {
+ _seqTime.pos.setFrame(p.frame());
+ _seqTime.curTickPos = _seqTime.pos.tick();
+ _seqTime.nextTickPos = _seqTime.curTickPos;
+ updateController = true;
+
+ loopPassed = true; // for record loop mode
+ if (state != LOOP2 && !freewheel())
+ audioPrefetch->msgSeek(_seqTime.pos.frame());
+
+ MidiOutPortList* ol = song->midiOutPorts();
+ for (iMidiOutPort i = ol->begin(); i != ol->end(); ++i)
+ (*i)->seek(_seqTime.curTickPos, _seqTime.pos.frame());
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ (*i)->seek(_seqTime.curTickPos, _seqTime.pos.frame());
+ sendMsgToGui(MSG_SEEK);
+ }
+
+//---------------------------------------------------------
+// startRolling
+//---------------------------------------------------------
+
+void Audio::startRolling()
+ {
+ if (song->record()) {
+ startRecordPos = _seqTime.pos;
+ recording = true;
+ TrackList* tracks = song->tracks();
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ ((AudioTrack*)(*i))->recEvents()->clear();
+ }
+ }
+ state = PLAY;
+ sendMsgToGui(MSG_PLAY);
+
+ MidiOutPortList* ol = song->midiOutPorts();
+ for (iMidiOutPort i = ol->begin(); i != ol->end(); ++i)
+ (*i)->start();
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ (*i)->start();
+ }
+
+//---------------------------------------------------------
+// stopRolling
+// execution environment: realtime thread
+//---------------------------------------------------------
+
+void Audio::stopRolling()
+ {
+ state = STOP;
+ MidiOutPortList* ol = song->midiOutPorts();
+ for (iMidiOutPort i = ol->begin(); i != ol->end(); ++i)
+ (*i)->stop();
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ (*i)->stop();
+
+ recording = false;
+ endRecordPos = _seqTime.pos;
+ _bounce = 0;
+ sendMsgToGui(MSG_STOP);
+ seek(_seqTime.pos);
+ }
+
+//---------------------------------------------------------
+// sendMsgToGui
+//---------------------------------------------------------
+
+void Audio::sendMsgToGui(char c)
+ {
+ write(sigFd, &c, 1);
+ }
+
diff --git a/muse_qt4_evolution/muse/audio.h b/muse_qt4_evolution/muse/audio.h
new file mode 100644
index 00000000..5d52ee0f
--- /dev/null
+++ b/muse_qt4_evolution/muse/audio.h
@@ -0,0 +1,306 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIO_H__
+#define __AUDIO_H__
+
+#include "thread.h"
+#include "midievent.h"
+#include "route.h"
+#include "al/tempo.h"
+#include "al/pos.h"
+#include "event.h"
+#include "ctrl.h"
+
+namespace AL {
+ class TimeSignature;
+ };
+
+using AL::Xml;
+class SndFile;
+class PluginI;
+class MidiPluginI;
+class SynthI;
+class AudioDriver;
+class Track;
+class AudioTrack;
+class Part;
+class Event;
+class MidiEvent;
+class Event;
+class MidiTrack;
+class MidiSeq;
+class MidiTrackBase;
+
+//---------------------------------------------------------
+// GuiMessages
+// messages from sequencer to GUI
+// used in Audio::sendMsgToGui(char c)
+//---------------------------------------------------------
+
+#define MSG_STOP '0'
+#define MSG_PLAY '1'
+#define MSG_RECORD '2'
+#define MSG_SEEK 'G'
+#define MSG_JACK_SHUTDOWN 'S'
+#define MSG_START_BOUNCE 'f'
+#define MSG_STOP_BOUNCE 'F'
+#define MSG_GRAPH_CHANGED 'C'
+#define MSG_ALSA_CHANGED 'P'
+
+//---------------------------------------------------------
+// AudioMsgId
+// this are the messages send from the GUI thread to
+// the midi thread
+//---------------------------------------------------------
+
+enum {
+ SEQM_ADD_TRACK,
+ SEQM_REMOVE_TRACK,
+ SEQM_MOVE_TRACK,
+ SEQM_ADD_PART,
+ SEQM_REMOVE_PART,
+ SEQM_CHANGE_PART,
+ SEQM_ADD_EVENT,
+ SEQM_ADD_EVENTS,
+ SEQM_REMOVE_EVENT,
+ SEQM_CHANGE_EVENT,
+ SEQM_ADD_TEMPO,
+ SEQM_SET_TEMPO,
+ SEQM_REMOVE_TEMPO,
+ SEQM_ADD_SIG,
+ SEQM_REMOVE_SIG,
+ SEQM_SET_GLOBAL_TEMPO,
+ SEQM_UNDO,
+ SEQM_REDO,
+ SEQM_RESET_DEVICES,
+ SEQM_INIT_DEVICES,
+ //
+ AUDIO_ROUTEADD,
+ AUDIO_ROUTEREMOVE,
+ AUDIO_ADDPLUGIN,
+ AUDIO_ADDMIDIPLUGIN,
+ AUDIO_SET_SEG_SIZE,
+ AUDIO_SET_CHANNELS,
+
+ MS_PROCESS,
+ MS_START,
+ MS_STOP,
+ MS_SET_RTC,
+
+ SEQM_IDLE,
+ SEQM_ADD_CTRL,
+ SEQM_REMOVE_CTRL
+ };
+
+extern const char* seqMsgList[]; // for debug
+
+//---------------------------------------------------------
+// Msg
+//---------------------------------------------------------
+
+struct AudioMsg : public ThreadMsg { // this should be an union
+ int serialNo;
+ SndFile* downmix;
+ Route route;
+ int ival;
+ int iival;
+ CVal cval1, cval2;
+ PluginI* plugin;
+ MidiPluginI* mplugin;
+ SynthI* synth;
+ Part* spart;
+ Part* dpart;
+ Track* track;
+ QList<Event>* el;
+
+ const void *p1, *p2, *p3;
+ Event ev1, ev2;
+ char port, channel, ctrl;
+ int a, b, c;
+ Pos pos;
+ unsigned time;
+ };
+
+class AudioOutput;
+
+
+//---------------------------------------------------------
+// SeqTime
+// timing information for sequencer cycle
+//---------------------------------------------------------
+
+extern unsigned int segmentSize;
+
+struct SeqTime {
+ unsigned lastFrameTime; // free running counter
+
+ // transport values for current cycle:
+ Pos pos; // current play position
+ unsigned curTickPos; // pos at start of frame during play/record
+ unsigned nextTickPos; // pos at start of next frame during play/record
+
+ unsigned startFrame() const { return pos.frame(); }
+ unsigned endFrame() const { return startFrame() + segmentSize; }
+
+ //---------------------------------------------------------
+ // tick2frame
+ // translate from tick to frameTime, this event has to
+ // be scheduled
+ //---------------------------------------------------------
+
+ unsigned tick2frame(unsigned tick) {
+ return AL::tempomap.tick2frame(tick) - pos.frame() + lastFrameTime + segmentSize;
+ }
+ unsigned frame2tick(unsigned frame) {
+ return AL::tempomap.frame2tick(frame - lastFrameTime + pos.frame());
+ }
+ };
+
+//---------------------------------------------------------
+// Audio
+//---------------------------------------------------------
+
+class Audio {
+ public:
+ enum State {STOP, START_PLAY, PLAY, LOOP1, LOOP2, SYNC, PRECOUNT};
+
+ private:
+ bool recording; // recording is active
+ bool idle; // do nothing in idle mode
+ bool _freewheel;
+ int _bounce;
+ bool loopPassed;
+ unsigned loopFrame; // startframe of loop if in LOOP mode
+ unsigned lmark; // left loop position
+ unsigned rmark; // right loop position
+
+ SeqTime _seqTime;
+ Pos startRecordPos;
+ Pos endRecordPos;
+
+ int _curReadIndex;
+
+ State state;
+ bool updateController;
+
+ AudioMsg* volatile msg;
+ int fromThreadFdw, fromThreadFdr; // message pipe
+
+ int sigFd; // pipe fd for messages to gui
+
+ bool filterEvent(const MidiEvent* event, int type, bool thru);
+
+ void startRolling();
+ void stopRolling();
+
+ void collectEvents(MidiTrack*, unsigned startTick, unsigned endTick);
+ void processMsg();
+ void initMidiDevices();
+ void resetMidiDevices();
+
+ public:
+ Audio();
+ virtual ~Audio() {}
+
+ void process(unsigned frames, int jackState);
+ bool sync(int state, unsigned frame);
+ void shutdown();
+
+ // transport:
+ bool start();
+ void stop();
+ void seek(const Pos& pos);
+
+ bool isPlaying() const { return state == PLAY || state == LOOP1 || state == LOOP2; }
+ bool isRecording() const { return state == PLAY && recording; }
+
+ //-----------------------------------------
+ // message interface
+ //-----------------------------------------
+
+ void msgSeek(const Pos&);
+ void msgPlay(bool val);
+
+ void msgRemoveTrack(Track*);
+ void msgRemoveTracks();
+ void msgMoveTrack(Track*, Track*);
+
+ void msgAddEvent(const Event&, Part*, bool u = true);
+ void msgAddEvents(QList<Event>* el, Part* part);
+ void msgDeleteEvent(const Event&, Part*, bool u = true);
+ void msgChangeEvent(const Event&, const Event&, Part*, bool u = true);
+
+ void msgAddTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgSetTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgSetGlobalTempo(int val);
+ void msgDeleteTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgAddSig(int tick, const AL::TimeSignature&, bool doUndoFlag = true);
+ void msgRemoveSig(int tick, int z, int n, bool doUndoFlag = true);
+ void msgPanic();
+ void sendMsg(AudioMsg*);
+ bool sendMessage(AudioMsg* m, bool doUndo);
+ void msgRoute(bool add, Route);
+ void msgRemoveRoute(Route);
+ void msgRemoveRoute1(Route);
+ void msgAddRoute(Route);
+ void msgAddRoute1(Route);
+ void msgAddPlugin(AudioTrack*, int idx, PluginI* plugin, bool prefader);
+ void msgAddMidiPlugin(MidiTrackBase*, int idx, MidiPluginI* plugin);
+ void msgSetMute(AudioTrack*, bool val);
+ void msgAddSynthI(SynthI* synth);
+ void msgRemoveSynthI(SynthI* synth);
+ void msgSetSegSize(int, int);
+ void msgSetChannels(AudioTrack*, int);
+ void msgSetOff(AudioTrack*, bool);
+ void msgUndo();
+ void msgRedo();
+ void msgLocalOff();
+ void msgInitMidiDevices();
+ void msgResetMidiDevices();
+ void msgIdle(bool);
+ void msgBounce();
+ void msgAddController(Track*, int id, unsigned time, CVal);
+ void msgRemoveController(Track*, int id, unsigned time);
+ void msgSetRtc();
+
+ const Pos& getStartRecordPos() const { return startRecordPos; }
+ const Pos& getEndRecordPos() const { return endRecordPos; }
+
+ bool freewheel() const { return _freewheel; }
+ void setFreewheel(bool val);
+
+ void sendMsgToGui(char c);
+ bool bounce() const { return _bounce != 0; }
+ MidiEvent* getMidiEvent();
+ void popMidiEvent();
+ int curReadIndex() const { return _curReadIndex; }
+
+ const SeqTime* seqTime() const { return &_seqTime; }
+ };
+
+extern int processAudio(unsigned long, void*);
+extern void processAudio1(void*, void*);
+
+extern Audio* audio;
+class AudioDriver;
+extern AudioDriver* audioDriver; // current audio device in use
+#endif
+
diff --git a/muse_qt4_evolution/muse/audiodev.h b/muse_qt4_evolution/muse/audiodev.h
new file mode 100644
index 00000000..39521a03
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiodev.h
@@ -0,0 +1,57 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIODEV_H__
+#define __AUDIODEV_H__
+
+#include "driver.h"
+
+class MidiInPort;
+
+//---------------------------------------------------------
+// AudioDevice
+//---------------------------------------------------------
+
+class AudioDriver : public Driver {
+
+ public:
+ AudioDriver() {}
+ virtual ~AudioDriver() {}
+
+ virtual void start(int priority) = 0;
+ virtual bool restart() { return false; } // return true on error
+ virtual void stop () = 0;
+ virtual unsigned frameTime() const = 0;
+ virtual float* getBuffer(Port, unsigned long nframes) = 0;
+ virtual void registerClient() = 0;
+ virtual Port registerOutPort(const QString& name, bool midi) = 0;
+ virtual Port registerInPort(const QString& name, bool midi) = 0;
+ virtual int realtimePriority() const = 0; // return zero if not realtime
+ virtual void startTransport() = 0;
+ virtual void stopTransport() = 0;
+ virtual void seekTransport(unsigned frame) = 0;
+ virtual void setFreewheel(bool f) = 0;
+ virtual void graphChanged() {}
+ virtual void startMidiCycle(Port) {}
+ virtual void collectMidiEvents(MidiInPort*, Port) {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/audiogroup.cpp b/muse_qt4_evolution/muse/audiogroup.cpp
new file mode 100644
index 00000000..7adc30e5
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiogroup.cpp
@@ -0,0 +1,47 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "audiogroup.h"
+#include "al/xml.h"
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioGroup::read(QDomNode node)
+ {
+ while (!node.isNull()) {
+ AudioTrack::readProperties(node);
+ node = node.nextSibling();
+ }
+ }
+
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioGroup::write(Xml& xml) const
+ {
+ xml.stag("AudioGroup");
+ AudioTrack::writeProperties(xml);
+ xml.etag("AudioGroup");
+ }
+
diff --git a/muse_qt4_evolution/muse/audiogroup.h b/muse_qt4_evolution/muse/audiogroup.h
new file mode 100644
index 00000000..d9837c74
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiogroup.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOGROUP_H__
+#define __AUDIOGROUP_H__
+
+#include "audiotrack.h"
+
+//---------------------------------------------------------
+// AudioGroup
+//---------------------------------------------------------
+
+class AudioGroup : public AudioTrack {
+ Q_OBJECT
+
+ public:
+ AudioGroup() : AudioTrack() {}
+ virtual TrackType type() const { return AUDIO_GROUP; }
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+ virtual bool hasAuxSend() const { return true; }
+ };
+
+typedef QList<AudioGroup*> GroupList;
+typedef GroupList::iterator iAudioGroup;
+typedef GroupList::const_iterator ciAudioGroup;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/audioinput.cpp b/muse_qt4_evolution/muse/audioinput.cpp
new file mode 100644
index 00000000..fe7c57bb
--- /dev/null
+++ b/muse_qt4_evolution/muse/audioinput.cpp
@@ -0,0 +1,131 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+#include "audioinput.h"
+#include "jackaudio.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// AudioInput
+//---------------------------------------------------------
+
+AudioInput::AudioInput()
+ : AudioTrack()
+ {
+ // set Default for Input Ports:
+ _mute = muteDefault();
+ _channels = 0;
+ setChannels(2);
+ //
+ // buffers are allocated from AudioTrack()
+ // and not needed by AudioInput which uses
+ // the JACK supplied buffers
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ if (buffer[i]) {
+ free(buffer[i]);
+ buffer[i] = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// ~AudioInput
+//---------------------------------------------------------
+
+AudioInput::~AudioInput()
+ {
+ for (int i = 0; i < _channels; ++i) {
+ if (!jackPort(i).isZero())
+ audioDriver->unregisterPort(jackPort(i));
+ }
+ // AudioInput does not own buffers (they are from JACK)
+ // make sure ~AudioTrack() does not delete them:
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ buffer[i] = 0;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioInput::write(Xml& xml) const
+ {
+ xml.stag("AudioInput");
+ AudioTrack::writeProperties(xml);
+ xml.etag("AudioInput");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioInput::read(QDomNode node)
+ {
+ for (;!node.isNull(); node = node.nextSibling()) {
+ AudioTrack::readProperties(node);
+ }
+ setName(name()); // allocate jack ports
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void AudioInput::setChannels(int n)
+ {
+ if (n == _channels)
+ return;
+ AudioTrack::setChannels(n);
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void AudioInput::setName(const QString& s)
+ {
+ Track::setName(s);
+ for (int i = 0; i < channels(); ++i) {
+ if (!jackPort(i).isZero()) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i);
+ if (!jackPort(i).isZero())
+ audioDriver->setPortName(jackPort(i), buffer);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// collectInputData
+// if buffer contains silence, set bufferEmpty to true
+//---------------------------------------------------------
+
+void AudioInput::collectInputData()
+ {
+ bufferEmpty = false;
+ for (int ch = 0; ch < channels(); ++ch) {
+ Port port = jackPort(ch);
+ if (!port.isZero())
+ buffer[ch] = audioDriver->getBuffer(port, segmentSize);
+ }
+ }
+
+
diff --git a/muse_qt4_evolution/muse/audioinput.h b/muse_qt4_evolution/muse/audioinput.h
new file mode 100644
index 00000000..9982daf1
--- /dev/null
+++ b/muse_qt4_evolution/muse/audioinput.h
@@ -0,0 +1,53 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOINPUT_H__
+#define __AUDIOINPUT_H__
+
+#include "audiotrack.h"
+
+//---------------------------------------------------------
+// AudioInput
+//---------------------------------------------------------
+
+class AudioInput : public AudioTrack {
+ Q_OBJECT
+
+ void collectInputData();
+
+ public:
+ AudioInput();
+ virtual ~AudioInput();
+ virtual TrackType type() const { return AUDIO_INPUT; }
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+ virtual void setName(const QString& s);
+ virtual void setChannels(int n);
+ virtual bool hasAuxSend() const { return true; }
+ virtual bool muteDefault() const { return true; }
+ };
+
+typedef QList<AudioInput*> InputList;
+typedef InputList::iterator iAudioInput;
+typedef InputList::const_iterator ciAudioInput;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/audiooutput.cpp b/muse_qt4_evolution/muse/audiooutput.cpp
new file mode 100644
index 00000000..e4937a74
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiooutput.cpp
@@ -0,0 +1,191 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "audiooutput.h"
+#include "jackaudio.h"
+#include "audio.h"
+#include "globals.h"
+#include "song.h"
+#include "ticksynth.h"
+
+//---------------------------------------------------------
+// AudioOutput
+//---------------------------------------------------------
+
+AudioOutput::AudioOutput()
+ : AudioTrack()
+ {
+ _channels = 0;
+ setChannels(2);
+
+ //
+ // buffers are allocated from AudioTrack()
+ // and not needed by AudioOutput which uses
+ // the JACK supplied buffers
+
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ if (buffer[i]) {
+ free(buffer[i]);
+ buffer[i] = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// ~AudioOutput
+//---------------------------------------------------------
+
+AudioOutput::~AudioOutput()
+ {
+ for (int i = 0; i < _channels; ++i) {
+ if (!jackPort(i).isZero())
+ audioDriver->unregisterPort(jackPort(i));
+ }
+ // AudioOutput does not own buffers (they are from JACK)
+ // make sure ~AudioTrack() does not delete them:
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ buffer[i] = 0;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioOutput::write(Xml& xml) const
+ {
+ xml.stag("AudioOutput");
+ AudioTrack::writeProperties(xml);
+ xml.etag("AudioOutput");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioOutput::read(QDomNode node)
+ {
+ while (!node.isNull()) {
+ AudioTrack::readProperties(node);
+ node = node.nextSibling();
+ }
+ setName(name()); // allocate jack ports
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void AudioOutput::setChannels(int n)
+ {
+ if (n == _channels)
+ return;
+ AudioTrack::setChannels(n);
+ }
+
+//---------------------------------------------------------
+// silence
+//---------------------------------------------------------
+
+void AudioOutput::silence(unsigned n)
+ {
+ for (int i = 0; i < channels(); ++i) {
+ if (!jackPort(i).isZero())
+ buffer[i] = audioDriver->getBuffer(jackPort(i), n);
+ else {
+ printf("PANIC: silence(): no buffer from audio driver\n");
+ abort();
+ return;
+ }
+ }
+ for (int i = 0; i < channels(); ++i)
+ memset(buffer[i], 0, n * sizeof(float));
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void AudioOutput::setName(const QString& s)
+ {
+ Track::setName(s);
+ for (int i = 0; i < channels(); ++i) {
+ if (!jackPort(i).isZero()) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i);
+ audioDriver->setPortName(jackPort(i), buffer);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// stopRecording
+// gui context
+//---------------------------------------------------------
+
+void AudioOutput::stopRecording(const Pos& /*s*/, const Pos& /*e*/)
+ {
+ SndFile* sf = recFile();
+ if (sf)
+ delete sf; // close
+ setRecFile(0);
+ setRecordFlag(false);
+ }
+
+//---------------------------------------------------------
+// process
+// synthesize segmentSize frames at buffer offset "offset"
+// current frame position is "pos"
+//---------------------------------------------------------
+
+void AudioOutput::process()
+ {
+ for (int c = 0; c < channels(); ++c)
+ buffer[c] = audioDriver->getBuffer(jackPort(c), segmentSize);
+
+ AudioTrack::process();
+
+ if (bufferEmpty) {
+ for (int c = 0; c < channels(); ++c)
+ memset(buffer[c], 0, sizeof(float) * segmentSize);
+ }
+
+ int n = segmentSize;
+ if (audio->isRecording() && recordFlag() && _recFile) {
+ // bounce to file
+ if (audio->freewheel())
+ _recFile->write(channels(), buffer, n);
+ else
+ putFifo(channels(), n, buffer);
+ }
+
+#if 0
+ if (audioClickFlag && song->click() && metronome) {
+ float b[n];
+ float* bp[1];
+ bp[0] = b;
+ metronome->getData(pos, 1, n, bp);
+ for (unsigned i = 0; i < n; ++i) {
+ for (int k = 0; k < channels(); ++k)
+ buffer[k][i] += b[i] * audioClickVolume;
+ }
+ }
+#endif
+ }
+
diff --git a/muse_qt4_evolution/muse/audiooutput.h b/muse_qt4_evolution/muse/audiooutput.h
new file mode 100644
index 00000000..8e0c5161
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiooutput.h
@@ -0,0 +1,55 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOOUTPUT_H__
+#define __AUDIOOUTPUT_H__
+
+#include "audiotrack.h"
+
+//---------------------------------------------------------
+// AudioOutput
+//---------------------------------------------------------
+
+class AudioOutput : public AudioTrack {
+ Q_OBJECT
+
+ public:
+ AudioOutput();
+ virtual ~AudioOutput();
+ virtual TrackType type() const { return AUDIO_OUTPUT; }
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+ virtual void setName(const QString& s);
+ virtual void setChannels(int n);
+
+ virtual bool canRecord() const { return true; }
+ virtual void stopRecording(const AL::Pos&, const AL::Pos&);
+
+ void silence(unsigned);
+ virtual void process();
+ };
+
+typedef QList<AudioOutput*> OutputList;
+typedef OutputList::iterator iAudioOutput;
+typedef OutputList::const_iterator ciAudioOutput;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/audioprefetch.cpp b/muse_qt4_evolution/muse/audioprefetch.cpp
new file mode 100644
index 00000000..d433c1ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/audioprefetch.cpp
@@ -0,0 +1,199 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <poll.h>
+
+#include "audioprefetch.h"
+#include "globals.h"
+#include "track.h"
+#include "song.h"
+#include "audio.h"
+#include "sync.h"
+#include "fifo.h"
+
+enum { PREFETCH_TICK, PREFETCH_SEEK };
+
+//---------------------------------------------------------
+// PrefetchMsg
+//---------------------------------------------------------
+
+struct PrefetchMsg : public ThreadMsg {
+ int pos;
+ };
+
+AudioPrefetch* audioPrefetch;
+
+//---------------------------------------------------------
+// AudioPrefetch
+//---------------------------------------------------------
+
+AudioPrefetch::AudioPrefetch(const char* name)
+ : Thread(name)
+ {
+ seekPos = ~0;
+ writePos = ~0;
+ seekCount = 0;
+ }
+
+//---------------------------------------------------------
+// readMsg
+//---------------------------------------------------------
+
+static void readMsgP(void* p, void*)
+ {
+ AudioPrefetch* at = (AudioPrefetch*)p;
+ at->readMsg1(sizeof(PrefetchMsg));
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void AudioPrefetch::start(int priority)
+ {
+ clearPollFd();
+ addPollFd(toThreadFdr, POLLIN, ::readMsgP, this, 0);
+ Thread::start(priority);
+ }
+
+//---------------------------------------------------------
+// ~AudioPrefetch
+//---------------------------------------------------------
+
+AudioPrefetch::~AudioPrefetch()
+ {
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void AudioPrefetch::processMsg1(const void* m)
+ {
+ const PrefetchMsg* msg = (PrefetchMsg*)m;
+ switch(msg->id) {
+ case PREFETCH_TICK:
+ prefetch(false);
+ seekPos = ~0; // invalidate cached last seek position
+ break;
+
+ case PREFETCH_SEEK:
+ // process seek in background
+ seek(msg->pos);
+ break;
+
+ default:
+ printf("AudioPrefetch::processMsg1: unknown message\n");
+ }
+ }
+
+//---------------------------------------------------------
+// msgTick
+// trigger audio prefetch with next buffer position
+//---------------------------------------------------------
+
+void AudioPrefetch::msgTick()
+ {
+ if (fifo.count() < FIFO_BUFFER/3) {
+ PrefetchMsg msg;
+ msg.id = PREFETCH_TICK;
+ while (sendMsg1(&msg, sizeof(msg))) {
+ printf("AudioPrefetch::msgTick(): send failed!\n");
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// msgSeek
+// called from audio RT context
+//---------------------------------------------------------
+
+void AudioPrefetch::msgSeek(unsigned samplePos)
+ {
+ //
+ // optimize unecessary seeks; seekPos is invalidated on
+ // first prefetch tick
+ //
+ if (samplePos == seekPos)
+ return;
+
+ //q_atomic_increment(&seekCount);
+ ++seekCount;
+
+ PrefetchMsg msg;
+ msg.id = PREFETCH_SEEK;
+ msg.pos = samplePos;
+ msg.serialNo = 0;
+ while (sendMsg1(&msg, sizeof(msg))) {
+ printf("AudioPrefetch::msgSeek::sleep(1)\n");
+ sleep(1);
+ }
+ }
+
+//---------------------------------------------------------
+// prefetch
+//---------------------------------------------------------
+
+void AudioPrefetch::prefetch(bool seekFlag)
+ {
+ WaveTrackList* tl = song->waves();
+ if (tl->empty())
+ return;
+ while (fifo.count() < FIFO_BUFFER) {
+ if (song->loop() && !audio->bounce() && !extSyncFlag) {
+ unsigned rpos = song->rPos().frame();
+ unsigned n = rpos - writePos;
+ //
+ // dont loop if we are beyond right marker
+ //
+ if (writePos <= rpos && (n < segmentSize)) {
+ unsigned lpos = song->lPos().frame();
+ // adjust loop start so we get exact loop len
+ if (n > lpos)
+ n = 0;
+ writePos = lpos - n;
+ }
+ }
+ int widx = fifo.setWritePos(writePos);
+ for (iWaveTrack it = tl->begin(); it != tl->end(); ++it) {
+ WaveTrack* track = *it;
+ if (!seekFlag && ((audio->isRecording() && track->recordFlag()) || !audio->isPlaying()))
+ continue;
+ track->fetchData(writePos, segmentSize, widx);
+ }
+ writePos += segmentSize;
+ fifo.push();
+ }
+ }
+
+//---------------------------------------------------------
+// seek
+//---------------------------------------------------------
+
+void AudioPrefetch::seek(unsigned seekTo)
+ {
+ fifo.clear();
+ writePos = seekTo;
+ prefetch(true);
+ seekPos = seekTo;
+ // q_atomic_decrement(&seekCount);
+ --seekCount;
+ }
+
diff --git a/muse_qt4_evolution/muse/audioprefetch.h b/muse_qt4_evolution/muse/audioprefetch.h
new file mode 100644
index 00000000..14e8096c
--- /dev/null
+++ b/muse_qt4_evolution/muse/audioprefetch.h
@@ -0,0 +1,54 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOPREFETCH_H__
+#define __AUDIOPREFETCH_H__
+
+#include "thread.h"
+#include "fifo.h"
+
+//---------------------------------------------------------
+// AudioPrefetch
+//---------------------------------------------------------
+
+class AudioPrefetch : public Thread {
+ Fifo1 fifo;
+ unsigned writePos;
+ unsigned seekPos; // remember last seek to optimize seeks
+
+ virtual void processMsg1(const void*);
+ void prefetch(bool seekFlag);
+ void seek(unsigned pos);
+ volatile int seekCount;
+
+ public:
+ AudioPrefetch(const char* name);
+ ~AudioPrefetch();
+ virtual void start(int);
+
+ void msgTick();
+ void msgSeek(unsigned pos);
+ bool seekDone() const { return seekCount == 0; }
+ Fifo1* getFifo() { return &fifo; }
+ };
+
+extern AudioPrefetch* audioPrefetch;
+
+#endif
diff --git a/muse_qt4_evolution/muse/audiotrack.cpp b/muse_qt4_evolution/muse/audiotrack.cpp
new file mode 100644
index 00000000..04d215f2
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiotrack.cpp
@@ -0,0 +1,582 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "al/dsp.h"
+#include "al/xml.h"
+#include "track.h"
+#include "event.h"
+#include "song.h"
+#include "audio.h"
+#include "wave.h"
+#include "auxplugin.h"
+#include "pipeline.h"
+#include "audiodev.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// AudioTrack
+//---------------------------------------------------------
+
+AudioTrack::AudioTrack()
+ : Track()
+ {
+ _tt = AL::FRAMES;
+ _prefader = false;
+ _prePipe = new Pipeline();
+ _postPipe = new Pipeline();
+ _recFile = 0;
+ _channels = 0;
+ bufferEmpty = false;
+ setChannels(1);
+
+ //
+ // add two managed standard controller:
+ // volume and pan
+ //
+ Ctrl* c;
+ c = new Ctrl(AC_VOLUME, "Volume");
+ c->setType(Ctrl::INTERPOLATE | Ctrl::LOG);
+ c->setRange(pow(10.0f, config.minSlider*0.05f), pow(10.0f, config.maxSlider*0.05f));
+
+ addController(c);
+ c = new Ctrl(AC_PAN, "Pan");
+ c->setRange(-1.0f, +1.0f);
+ addController(c);
+
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+ }
+
+//---------------------------------------------------------
+// ~AudioTrack
+//---------------------------------------------------------
+
+AudioTrack::~AudioTrack()
+ {
+ foreach(PluginI* plugin, *_prePipe)
+ delete plugin;
+ foreach(PluginI* plugin, *_postPipe)
+ delete plugin;
+ delete _prePipe;
+ delete _postPipe;
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ if (buffer[i])
+ free(buffer[i]);
+ }
+ }
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* AudioTrack::newPart(Part*, bool /*clone*/)
+ {
+ return 0;
+ }
+
+//---------------------------------------------------------
+// addPlugin
+// idx = -1 append
+// plugin = 0 remove plugin
+//---------------------------------------------------------
+
+void AudioTrack::addPlugin(PluginI* plugin, int idx, bool pre)
+ {
+ Pipeline* pipe = pre ? _prePipe : _postPipe;
+ if (plugin == 0) {
+ PluginI* oldPlugin = (*pipe)[idx];
+ if (oldPlugin) {
+ int controller = oldPlugin->plugin()->parameter();
+ for (int i = 0; i < controller; ++i) {
+ int id = genACnum(idx, i, pre);
+ removeController(id);
+ }
+ pipe->removeAt(idx);
+ }
+ }
+ else {
+ if (idx == -1)
+ idx = pipe->size();
+ pipe->insert(idx, plugin);
+ int ncontroller = plugin->plugin()->parameter();
+ for (int i = 0; i < ncontroller; ++i) {
+ int id = genACnum(idx, i, pre);
+ QString name(plugin->getParameterName(i));
+ double min, max;
+ plugin->range(i, &min, &max);
+ Ctrl* cl = getController(id);
+ //printf("Plugin name: %s id:%d\n",name.toAscii().data(), id);
+ if (cl == 0) {
+ cl = new Ctrl(id, name);
+ cl->setRange(min, max);
+ float defaultValue = plugin->defaultValue(i);
+ cl->setDefault(defaultValue);
+ cl->setCurVal(defaultValue);
+ addController(cl);
+ }
+ cl->setRange(min, max);
+ cl->setName(name);
+ plugin->setParam(i, cl->curVal().f);
+ plugin->setControllerList(cl);
+ }
+ }
+ _preAux.clear();
+ _postAux.clear();
+ foreach(PluginI* pi, *_prePipe) {
+ if (pi->plugin() == auxPlugin)
+ _preAux.append((AuxPluginIF*)(pi->pluginIF(0)));
+ }
+ foreach(PluginI* pi, *_postPipe) {
+ if (pi->plugin() == auxPlugin)
+ _postAux.append((AuxPluginIF*)(pi->pluginIF(0)));
+ }
+ }
+
+//---------------------------------------------------------
+// plugin
+//---------------------------------------------------------
+
+PluginI* AudioTrack::plugin(int idx, bool prefader) const
+ {
+ Pipeline* pipe = prefader ? _prePipe : _postPipe;
+ return (*pipe)[idx];
+ }
+
+//---------------------------------------------------------
+// addAuxSend
+//---------------------------------------------------------
+
+void AudioTrack::addAuxSend(int n)
+ {
+ if (n >= NUM_AUX) {
+ printf("too many aux sends (>%d)\n", n);
+ n = NUM_AUX;
+ }
+ for (int i = 0; i < n; ++i) {
+ Ctrl* c = getController(AC_AUX + i);
+ if (c)
+ continue;
+ QString s("AuxSend-");
+ s += QString("%1").arg(i+1);
+ Ctrl* ctrl = new Ctrl(AC_AUX + i, s);
+ ctrl->setRange(pow(10.0f, config.minSlider*0.05f), pow(10.0f, config.maxSlider*0.05f));
+ addController(ctrl);
+
+ c = getController(AC_AUX_PAN + i);
+ if (c)
+ continue;
+ s = ("AuxSendPan-");
+ s += QString("%1").arg(i+1);
+ ctrl = new Ctrl(AC_AUX_PAN + i, s);
+ ctrl->setRange(-1.0f, +1.0f);
+ addController(ctrl);
+ }
+ }
+
+//---------------------------------------------------------
+// AudioTrack::writeProperties
+//---------------------------------------------------------
+
+void AudioTrack::writeProperties(Xml& xml) const
+ {
+ Track::writeProperties(xml);
+ foreach (PluginI* plugin, *_prePipe)
+ plugin->writeConfiguration(xml, true);
+ foreach (PluginI* plugin, *_postPipe)
+ plugin->writeConfiguration(xml, false);
+ }
+
+//---------------------------------------------------------
+// AudioTrack::readProperties
+//---------------------------------------------------------
+
+bool AudioTrack::readProperties(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "plugin") {
+ PluginI* pi = new PluginI(this);
+ bool prefader;
+ if (pi->readConfiguration(node, &prefader)) {
+ delete pi;
+ }
+ else {
+ // insert plugin into first free slot
+ // of plugin rack
+ addPlugin(pi, -1, prefader);
+ }
+ }
+ else if (tag == "prefader")
+ _prefader = e.text().toInt();
+ else if (tag == "recfile")
+ readRecfile(node.firstChild());
+ else
+ return Track::readProperties(node);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setAutoRead
+//---------------------------------------------------------
+
+void AudioTrack::setAutoRead(bool val)
+ {
+ if (_autoRead != val) {
+ _autoRead = val;
+ emit autoReadChanged(_autoRead);
+ }
+ }
+
+//---------------------------------------------------------
+// setAutoWrite
+//---------------------------------------------------------
+
+void AudioTrack::setAutoWrite(bool val)
+ {
+ if (_autoWrite != val) {
+ _autoWrite = val;
+ emit autoWriteChanged(_autoWrite);
+ }
+ }
+
+//---------------------------------------------------------
+// isMute
+//---------------------------------------------------------
+
+bool AudioTrack::isMute() const
+ {
+ if (_solo)
+ return false;
+ if (song->solo())
+ return true;
+ return _mute;
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+bool AudioTrack::setSolo(bool val)
+ {
+ if (Track::setSolo(val)) {
+ if (mute())
+ resetMeter();
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// readRecfile
+//---------------------------------------------------------
+
+void AudioTrack::readRecfile(QDomNode node)
+ {
+ QString path;
+ int channels = 2;
+ int format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag(e.nodeName());
+ if (tag == "path")
+ path = e.text();
+ else if (tag == "channels")
+ channels = e.text().toInt();
+ else if (tag == "format")
+ format = e.text().toInt();
+ else
+ printf("MusE:readRecfile: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ if (QFile::exists(path)) {
+ setRecFile(SndFile::getWave(path, true));
+ }
+ else {
+ setRecFile(new SndFile(path));
+ recFile()->setFormat(format, channels, AL::sampleRate);
+ if (recFile()->openWrite()) {
+ fprintf(stderr, "create wave file(%s) failed: %s\n",
+ path.toAscii().data(), recFile()->strerror().toAscii().data());
+ delete _recFile;
+ _recFile = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// putFifo
+//---------------------------------------------------------
+
+void AudioTrack::putFifo(int channels, unsigned long n, float** bp)
+ {
+ if (fifo.put(channels, n, bp, audio->seqTime()->pos.frame())) {
+ printf("AudioTrack(%s)::putFifo(): overrun\n", name().toAscii().data());
+ }
+ }
+
+//---------------------------------------------------------
+// setMute
+//---------------------------------------------------------
+
+bool AudioTrack::setMute(bool f)
+ {
+ if (Track::setMute(f)) {
+ resetAllMeter();
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+bool AudioTrack::setOff(bool val)
+ {
+ if (Track::setOff(val)) {
+ resetAllMeter();
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setPrefader
+//---------------------------------------------------------
+
+void AudioTrack::setPrefader(bool val)
+ {
+ _prefader = val;
+ if (!_prefader && isMute())
+ resetAllMeter();
+ }
+
+//---------------------------------------------------------
+// record
+// called from audio writeback task
+//---------------------------------------------------------
+
+void AudioTrack::record()
+ {
+ float* recBuffer[_channels];
+
+ if (fifo.get(_channels, segmentSize, recBuffer)) {
+ printf("AudioTrack(%s)::record():: fifo underflow\n",
+ name().toAscii().data());
+ return;
+ }
+ if (_recFile) {
+ _recFile->write(_channels, recBuffer, segmentSize);
+ }
+ else {
+ printf("AudioTrack(%s)::record(): no recFile\n",
+ name().toAscii().data());
+ }
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void AudioTrack::setChannels(int n)
+ {
+ if (n > MAX_CHANNELS) {
+ fprintf(stderr, "AudioTrack::setChannels(%d): too many channels(>%d)!\n",
+ n, MAX_CHANNELS);
+ n = MAX_CHANNELS;
+ }
+ Track::setChannels(n);
+ if (_prePipe)
+ _prePipe->setChannels(n);
+ if (_postPipe)
+ _postPipe->setChannels(n);
+ }
+
+//---------------------------------------------------------
+// startRecording
+//---------------------------------------------------------
+
+void AudioTrack::startRecording()
+ {
+ if (!recordFlag())
+ return;
+ if (!_recFile)
+ _recFile = SndFile::createRecFile(_channels);
+ _recFile->openWrite();
+ if (debugMsg)
+ printf("AudioTrack::startRecording: create internal file %s\n",
+ _recFile->finfo()->filePath().toAscii().data());
+ }
+
+//---------------------------------------------------------
+// process
+// this is called only once per cycle
+//---------------------------------------------------------
+
+void AudioTrack::process()
+ {
+ bufferEmpty = false;
+ if (_off) {
+ bufferEmpty = true;
+ return;
+ }
+ collectInputData();
+ _prePipe->apply(channels(), segmentSize, buffer);
+
+ if (_prefader) {
+ for (int i = 0; i < channels(); ++i)
+ setMeter(i, AL::dsp->peak(buffer[i], segmentSize, 0.0));
+ }
+
+ //
+ // TODO: we can only handle 1 or 2 channels
+ //
+ double vol[2];
+ double _volume = _mute ? 0.0 : ctrlVal(AC_VOLUME).f;
+ double _pan = ctrlVal(AC_PAN).f;
+ vol[0] = _volume * (1.0 - _pan);
+ vol[1] = _volume * (1.0 + _pan);
+
+ for (int i = 0; i < channels(); ++i)
+ AL::dsp->applyGainToBuffer(buffer[i], segmentSize, vol[i]);
+
+ _postPipe->apply(channels(), segmentSize, buffer);
+
+ if (!_prefader) {
+ for (int i = 0; i < channels(); ++i)
+ setMeter(i, AL::dsp->peak(buffer[i], segmentSize, 0.0));
+ }
+ }
+
+//---------------------------------------------------------
+// add
+// add audio buffer to track buffer
+//---------------------------------------------------------
+
+void AudioTrack::add(int srcChannels, float** srcBuffer)
+ {
+ int dstChannels = channels();
+ float** dstBuffer = buffer;
+
+ if (srcChannels == dstChannels) {
+ for (int c = 0; c < dstChannels; ++c)
+ AL::dsp->mix(dstBuffer[c], srcBuffer[c], segmentSize);
+ }
+ //
+ // mix mono to stereo
+ //
+ else if (srcChannels == 1 && dstChannels == 2) {
+ float* dp1 = dstBuffer[0];
+ float* dp2 = dstBuffer[1];
+ float* sp = srcBuffer[0];
+ for (unsigned k = 0; k < segmentSize; ++k) {
+ dp1[k] += sp[k];
+ dp2[k] += sp[k];
+ }
+ }
+ //
+ // downmix stereo to mono
+ //
+ else if (srcChannels == 2 && dstChannels == 1) {
+ float* sp1 = srcBuffer[0];
+ float* sp2 = srcBuffer[1];
+ float* dp = dstBuffer[0];
+ for (unsigned k = 0; k < segmentSize; ++k)
+ dp[k] += sp1[k] + sp2[k];
+ }
+ }
+
+//---------------------------------------------------------
+// copy
+// add audio buffer to track buffer
+//---------------------------------------------------------
+
+bool AudioTrack::copy(int srcChannels, float** srcBuffer)
+ {
+ int dstChannels = channels();
+
+ if (srcChannels == dstChannels) {
+ for (int c = 0; c < dstChannels; ++c)
+ AL::dsp->cpy(buffer[c], srcBuffer[c], segmentSize);
+ }
+ else if (srcChannels == 1 && dstChannels == 2) {
+ float* sp = srcBuffer[0];
+ for (unsigned k = 0; k < segmentSize; ++k) {
+ float val = *sp++;
+ *(buffer[0] + k) = val;
+ *(buffer[1] + k) = val;
+ }
+ }
+ else if (srcChannels == 2 && dstChannels == 1) {
+ float* sp1 = srcBuffer[0];
+ float* sp2 = srcBuffer[1];
+ float* dp = buffer[0];
+ for (unsigned k = 0; k < segmentSize; ++k)
+ dp[k] = sp1[k] + sp2[k];
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// collectInputData
+// if buffer contains silence, set bufferEmpty to true
+//---------------------------------------------------------
+
+void AudioTrack::collectInputData()
+ {
+ bufferEmpty = false;
+ bool copyFlag = true;
+ foreach (const Route& r, _inRoutes) {
+ float** ptr;
+ int ch;
+ if (r.src.type == RouteNode::TRACK) {
+ AudioTrack* track = (AudioTrack*)r.src.track;
+ if (track->off() || song->bounceTrack == track)
+ continue;
+ ptr = track->buffer;
+ ch = track->channels();
+ }
+ else if (r.src.type == RouteNode::AUXPLUGIN) {
+ ch = r.src.plugin->channel();
+ ptr = r.src.plugin->buffer();
+ }
+ else {
+ printf("AudioTrack::collectInputRoutes(): bad route type\n");
+ return;
+ }
+ if (copyFlag) {
+ copy(ch, ptr);
+ copyFlag = false;
+ }
+ else
+ add(ch, ptr);
+ }
+ if (copyFlag) {
+ //
+ // no input,
+ // fill with silence
+ //
+ for (int i = 0; i < channels(); ++i)
+ memset(buffer[i], 0, sizeof(float) * segmentSize);
+ bufferEmpty = true;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/audiotrack.h b/muse_qt4_evolution/muse/audiotrack.h
new file mode 100644
index 00000000..1dc77d65
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiotrack.h
@@ -0,0 +1,105 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOTRACK_H__
+#define __AUDIOTRACK_H__
+
+#include "fifo.h"
+#include "track.h"
+
+class Pipeline;
+class SndFile;
+class PluginI;
+class AuxPluginIF;
+
+//---------------------------------------------------------
+// AudioTrack
+//---------------------------------------------------------
+
+class AudioTrack : public Track {
+ Q_OBJECT
+
+ bool _prefader; // prefader metering
+ Pipeline* _prePipe;
+ Pipeline* _postPipe;
+ QList<AuxPluginIF*> _preAux;
+ QList<AuxPluginIF*> _postAux;
+
+ void readRecfile(QDomNode);
+
+ protected:
+ float* buffer[MAX_CHANNELS]; // this buffer is filled by process()
+
+ bool bufferEmpty; // set by process() to optimize
+ // data flow
+
+ SndFile* _recFile;
+ Fifo fifo; // fifo -> _recFile
+
+ virtual bool setMute(bool val);
+ virtual bool setOff(bool val);
+ virtual bool setSolo(bool val);
+ virtual void collectInputData();
+
+ private slots:
+ virtual void setAutoRead(bool);
+ virtual void setAutoWrite(bool);
+
+ public:
+ AudioTrack();
+ virtual ~AudioTrack();
+
+ bool readProperties(QDomNode);
+ void writeProperties(Xml&) const;
+
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ SndFile* recFile() const { return _recFile; }
+ void setRecFile(SndFile* sf) { _recFile = sf; }
+
+ virtual void setChannels(int n);
+
+ virtual bool isMute() const;
+
+ void putFifo(int channels, unsigned long n, float** bp);
+
+ void record();
+ virtual void startRecording();
+ virtual void stopRecording(const AL::Pos&, const AL::Pos&) {}
+
+ bool prefader() const { return _prefader; }
+ void addAuxSend(int n);
+ void setPrefader(bool val);
+ Pipeline* prePipe() { return _prePipe; }
+ Pipeline* postPipe() { return _postPipe; }
+
+ void addPlugin(PluginI* plugin, int idx, bool pre);
+ PluginI* plugin(int idx, bool prefader) const;
+
+ virtual bool hasAuxSend() const { return false; }
+ virtual void process();
+ void add(int channel, float**);
+ bool copy(int channel, float**);
+ bool isBufferEmpty() const { return bufferEmpty; }
+ QList<AuxPluginIF*> preAux() const { return _preAux; }
+ QList<AuxPluginIF*> postAux() const { return _postAux; }
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/audiowriteback.cpp b/muse_qt4_evolution/muse/audiowriteback.cpp
new file mode 100644
index 00000000..391c89bd
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiowriteback.cpp
@@ -0,0 +1,101 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <poll.h>
+
+#include "audiowriteback.h"
+#include "globals.h"
+#include "audio.h"
+#include "song.h"
+
+AudioWriteback* audioWriteback;
+
+//---------------------------------------------------------
+// AudioWriteback
+//---------------------------------------------------------
+
+AudioWriteback::AudioWriteback(const char* name)
+ : Thread(name)
+ {
+ counter = 0;
+ }
+
+//---------------------------------------------------------
+// readMsg
+//---------------------------------------------------------
+
+static void readMsgP(void* p, void*)
+ {
+ AudioWriteback* at = (AudioWriteback*)p;
+ at->readMsg1(1);
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void AudioWriteback::start(int priority)
+ {
+ clearPollFd();
+ addPollFd(toThreadFdr, POLLIN, ::readMsgP, this, 0);
+ Thread::start(priority);
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void AudioWriteback::processMsg1(const void*)
+ {
+ while (counter) {
+ //q_atomic_decrement(&counter);
+ --counter;
+
+ OutputList* ol = song->outputs();
+ if (!ol->empty()) {
+ AudioOutput* ao = ol->front();
+ if (ao->recordFlag())
+ ao->record();
+ }
+ WaveTrackList* tl = song->waves();
+ for (iWaveTrack t = tl->begin(); t != tl->end(); ++t) {
+ WaveTrack* track = *t;
+ if (track->recordFlag())
+ track->record();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// trigger
+// trigger audio writeback loop
+//---------------------------------------------------------
+
+void AudioWriteback::trigger()
+ {
+ // q_atomic_increment(&counter);
+ ++counter;
+ if (counter < 2) {
+ if (sendMsg1("0", 1)) {
+ printf("AudioWriteback::msgTick(): send failed!\n");
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/audiowriteback.h b/muse_qt4_evolution/muse/audiowriteback.h
new file mode 100644
index 00000000..000ff2f1
--- /dev/null
+++ b/muse_qt4_evolution/muse/audiowriteback.h
@@ -0,0 +1,44 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUDIOWRITEBACK_H__
+#define __AUDIOWRITEBACK_H__
+
+#include "thread.h"
+
+//---------------------------------------------------------
+// AudioWriteback
+//---------------------------------------------------------
+
+class AudioWriteback : public Thread {
+ virtual void processMsg1(const void*);
+ volatile int counter;
+
+ public:
+ AudioWriteback(const char* name);
+ ~AudioWriteback() {}
+ virtual void start(int);
+ void trigger();
+ bool active() const { return counter > 0; }
+ };
+
+extern AudioWriteback* audioWriteback;
+
+#endif
diff --git a/muse_qt4_evolution/muse/auxplugin.cpp b/muse_qt4_evolution/muse/auxplugin.cpp
new file mode 100644
index 00000000..ad203c84
--- /dev/null
+++ b/muse_qt4_evolution/muse/auxplugin.cpp
@@ -0,0 +1,190 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globaldefs.h"
+#include "auxplugin.h"
+#include "gconfig.h"
+
+AuxPlugin* auxPlugin;
+
+//---------------------------------------------------------
+// AuxPlugin
+//---------------------------------------------------------
+
+AuxPlugin::AuxPlugin()
+ : Plugin(0)
+ {
+ }
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void AuxPlugin::range(int idx, double* min, double* max) const
+ {
+ switch(idx) {
+ case 0: // volume
+ *min = pow(10.0f, config.minSlider * 0.05f);
+ *max = pow(10.0f, config.maxSlider * 0.05f);
+ break;
+ case 1: // pan
+ *min = -1.0;
+ *max = 1.0;
+ break;
+ default:
+ printf("AuxPlugin::bad index\n");
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// createPIF
+//---------------------------------------------------------
+
+PluginIF* AuxPlugin::createPIF(PluginI* pi)
+ {
+ AuxPluginIF* pif = new AuxPluginIF(pi);
+ pif->init(pi->plugin());
+ return pif;
+ }
+
+//---------------------------------------------------------
+// isLog
+//---------------------------------------------------------
+
+bool AuxPlugin::isLog(int idx) const
+ {
+ return idx == 0 ? true : false;
+ }
+
+//---------------------------------------------------------
+// isBool
+//---------------------------------------------------------
+
+bool AuxPlugin::isBool(int) const
+ {
+ return false;
+ }
+
+//---------------------------------------------------------
+// isInt
+//---------------------------------------------------------
+
+bool AuxPlugin::isInt(int) const
+ {
+ return false;
+ }
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+double AuxPlugin::defaultValue(int idx) const
+ {
+ return idx == 0 ? -70.0 : 0.0;
+ }
+
+//---------------------------------------------------------
+// AuxPluginIF
+//---------------------------------------------------------
+
+AuxPluginIF::AuxPluginIF(PluginI* pi)
+ : PluginIF(pi)
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ posix_memalign((void**)(_buffer + i), 16, sizeof(float) * segmentSize);
+ }
+
+//---------------------------------------------------------
+// AuxPluginIF
+//---------------------------------------------------------
+
+AuxPluginIF::~AuxPluginIF()
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ if (_buffer[i])
+ free(_buffer[i]);
+ }
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void AuxPluginIF::apply(unsigned nframes, float** s, float** /*dst*/)
+ {
+ // TODO: optimize copy away if there is no route
+ double vol[2];
+ vol[0] = volume * (1.0 - pan);
+ vol[1] = volume * (1.0 + pan);
+
+ for (int i = 0; i < pluginI->channel(); ++i) {
+ float* dst = _buffer[i];
+ float* src = s[i];
+ double v = vol[i];
+ for (unsigned k = 0; k < nframes; ++k)
+ *dst++ = (*src++) * v;
+ }
+ }
+
+//---------------------------------------------------------
+// getParameterName
+//---------------------------------------------------------
+
+const char* AuxPluginIF::getParameterName(int i) const
+ {
+ if (i == 0)
+ return "Volume";
+ else
+ return "Pan";
+ }
+
+//---------------------------------------------------------
+// setParam
+//---------------------------------------------------------
+
+void AuxPluginIF::setParam(int i, double val)
+ {
+ if (i == 0)
+ volume = val;
+ else
+ pan = val;
+ }
+
+//---------------------------------------------------------
+// param
+//---------------------------------------------------------
+
+float AuxPluginIF::param(int i) const
+ {
+ return i == 0 ? volume : pan;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool AuxPluginIF::init(Plugin* p)
+ {
+ volume = p->defaultValue(0);
+ pan = p->defaultValue(1);
+ return true;
+ }
+
diff --git a/muse_qt4_evolution/muse/auxplugin.h b/muse_qt4_evolution/muse/auxplugin.h
new file mode 100644
index 00000000..cb9c2e4e
--- /dev/null
+++ b/muse_qt4_evolution/muse/auxplugin.h
@@ -0,0 +1,84 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AUXPLUGIN_H__
+#define __AUXPLUGIN_H__
+
+#include "globaldefs.h"
+#include "plugin.h"
+
+//---------------------------------------------------------
+// AuxPlugin
+//---------------------------------------------------------
+
+class AuxPlugin : public Plugin {
+
+ public:
+ AuxPlugin();
+
+ virtual QString label() const { return "Aux"; }
+ virtual QString name() const { return "Aux"; }
+ virtual unsigned long id() const { return 0; }
+ virtual QString maker() const { return ""; }
+ virtual QString copyright() const { return ""; }
+
+ void* instantiate() { return 0; }
+ virtual void range(int i, double*, double*) const;
+ virtual int parameter() const { return 2; }
+ virtual int inports() const { return 100; }
+ virtual int outports() const { return 100; }
+
+ virtual bool inPlaceCapable() const { return true; }
+ virtual PluginIF* createPIF(PluginI*);
+
+ virtual bool isLog(int k) const;
+ virtual bool isBool(int k) const;
+ virtual bool isInt(int k) const;
+ virtual double defaultValue(int) const;
+ };
+
+//---------------------------------------------------------
+// AuxPluginIF
+//---------------------------------------------------------
+
+class AuxPluginIF : public PluginIF {
+ double volume;
+ double pan;
+ float* _buffer[MAX_CHANNELS]; // this buffer is filled by apply()
+ // _volume and _pan is applied
+
+ public:
+ AuxPluginIF(PluginI* pi);
+ virtual ~AuxPluginIF();
+
+ virtual void apply(unsigned nframes, float** src, float** dst);
+ virtual void activate() {}
+ virtual void deactivate() {}
+ virtual void cleanup() {}
+ virtual const char* getParameterName(int i) const;
+ virtual void setParam(int i, double val);
+ virtual float param(int i) const;
+ bool init(Plugin*);
+ float** buffer() { return _buffer; }
+ int channel() const { return pluginInstance()->channel(); }
+ };
+
+extern AuxPlugin* auxPlugin;
+#endif
diff --git a/muse_qt4_evolution/muse/canvas.cpp b/muse_qt4_evolution/muse/canvas.cpp
new file mode 100644
index 00000000..c445c446
--- /dev/null
+++ b/muse_qt4_evolution/muse/canvas.cpp
@@ -0,0 +1,1187 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "canvas.h"
+#include "al/al.h"
+#include "al/sig.h"
+#include "gconfig.h"
+#include "song.h"
+#include "icons.h"
+#include "audio.h"
+#include "partdrag.h"
+#include "muse.h"
+#include "midictrl.h"
+#include "tlswidget.h"
+#include "part.h"
+#include "gui.h"
+
+#include <samplerate.h>
+
+static const int partLabelHeight = 13;
+static const int handleWidth = 5;
+static const int partBorderWidth = 2;
+
+enum { HIT_NOTHING, HIT_TRACK, HIT_PART, HIT_SUBTRACK };
+
+//---------------------------------------------------------
+// PartCanvas
+//---------------------------------------------------------
+
+PartCanvas::PartCanvas()
+ : TimeCanvas(TIME_CANVAS)
+ {
+ setFocusPolicy(Qt::StrongFocus);
+ state = S_NORMAL;
+ _drawBackground = true;
+ lselected = -1;
+ starty = -1;
+ setMarkerList(song->marker());
+ rubberBand=NULL;
+ connect(song, SIGNAL(markerChanged(int)), SLOT(markerChanged(int)));
+ }
+
+//---------------------------------------------------------
+// markerChanged
+//---------------------------------------------------------
+
+void PartCanvas::markerChanged(int val)
+ {
+ if (val == Song::MARKER_CUR)
+ updateRuler();
+ }
+
+//---------------------------------------------------------
+// drawWavePart
+// y0 - start of track
+// th - track height
+// from - x pixel coordinate start drawing
+// to - x end drawing
+//
+// redraw area is QRect(from, y0, to-from, th)
+//---------------------------------------------------------
+
+void PartCanvas::drawWavePart(QPainter& p, Part* wp, int y0, int th, int from, int to)
+ {
+ int h = th/2;
+ int y = y0 + 1 + h;
+ int cc = th % 2 ? 0 : 1;
+
+ const Pos pos(pix2pos(from));
+ EventList* el = wp->events();
+ for (iEvent e = el->begin(); e != el->end(); ++e) {
+ Event event = e->second;
+ SndFileR f = event.sndFile();
+ if (f.isNull())
+ continue;
+ unsigned channels = f.channels();
+ if (channels == 0) {
+ printf("drawWavePart: channels==0! %s\n", f.finfo()->fileName().toLatin1().data());
+ continue;
+ }
+
+ int x1 = pos2pix(event.pos() + *wp);
+ int x2 = pos2pix(event.end() + *wp);
+ int w = x2 - x1;
+ if (w == 0)
+ continue;
+
+ int samples = event.lenFrame();
+ int xScale = (samples + w/2)/w;
+ int frame = pos.frame() - wp->frame()
+ - event.pos().frame() + event.spos();
+
+ if (h < 20) {
+ //
+ // combine multi channels into one waveform
+ //
+ for (int i = from; i < to; i++) {
+ SampleV sa[channels];
+ f.read(sa, xScale, frame);
+ frame += xScale;
+ int peak = 0;
+ int rms = 0;
+ for (unsigned k = 0; k < channels; ++k) {
+ if (sa[k].peak > peak)
+ peak = sa[k].peak;
+ rms += sa[k].rms;
+ }
+ rms /= channels;
+ peak = (peak * (th-2)) >> 9;
+ rms = (rms * (th-2)) >> 9;
+ p.setPen(QColor(Qt::darkGray));
+ p.drawLine(i, y - peak - cc, i, y + peak);
+ p.setPen(QColor(Qt::black));
+ p.drawLine(i, y - rms - cc, i, y + rms);
+ }
+ }
+ else {
+ //
+ // multi channel display
+ //
+ h = th / (channels * 2);
+ int cc = th % (channels * 2) ? 0 : 1;
+ for (int i = from; i < to; i++) {
+ y = y0 + 1 + h;
+ SampleV sa[channels];
+ f.read(sa, xScale, frame);
+ frame += xScale;
+ for (unsigned k = 0; k < channels; ++k) {
+ // peak = (sa[k].peak * h) / 256;
+ int peak = (sa[k].peak * (h - 1)) >> 8;
+ int rms = (sa[k].rms * (h - 1)) >> 8;
+ p.setPen(QColor(Qt::darkGray));
+ p.drawLine(i, y - peak - cc, i, y + peak);
+ p.setPen(QColor(Qt::black));
+ p.drawLine(i, y - rms - cc, i, y + rms);
+ y += 2 * h;
+ }
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void PartCanvas::paint(QPainter& p, QRect r)
+ {
+ //printf("canvas paint %d %d %d %d\n", r.x(), r.y(), r.width(), r.height());
+ QFont f = font();
+ f.setPointSize(8);
+ p.setFont(f);
+
+ int from = r.x();
+ int to = from + r.width();
+
+ TrackList* tl = song->tracks();
+ ArrangerTrack* at = 0;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* t = *i;
+ at = &(t->arrangerTrack);
+ if (at->tw == 0)
+ continue;
+
+ int y = at->tw->y(); // - splitWidth/2;
+ int h = at->tw->height() - 1;
+
+ PartList* pl = t->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+ int x1 = pos2pix(*part);
+ int x2 = pos2pix(part->end());
+ int len = x2 - x1;
+
+ if (x2 <= from)
+ continue;
+ if (x1 > to)
+ break;
+
+ QRect pr(x1, y, len, h - partBorderWidth);
+ bool clone = part->isClone();
+
+ QPen pen(QColor(100, 100, 100), partBorderWidth, clone ? Qt::DashLine : Qt::SolidLine);
+ QBrush brush(Qt::SolidPattern);
+ QLinearGradient lg(0, pr.y() - wpos.y()-r.y(),
+ 0, pr.y()+ 2*pr.height() -wpos.y()-r.y());
+ lg.setColorAt(0, part->selected()?Qt::gray
+ :config.partColors[part->colorIndex()]);
+ lg.setColorAt(1, Qt::white);
+ QBrush brushLG(lg);
+ if (part->selected()) {
+ pen.setColor(config.partColors[part->colorIndex()]);
+ brush.setColor(config.selectPartBg);
+ p.setBrush(brushLG);
+ }
+ else if (part->mute()) {
+ pen.setColor(Qt::red);
+ brush.setColor(Qt::gray);
+ p.setBrush(brush);
+ }
+ else {
+ //brush.setColor(config.partColors[part->colorIndex()]);
+ p.setBrush(brushLG);
+ }
+ p.setPen(pen);
+ //
+ // we want to draw the rectangle without transformation
+ // to get equal border width horizontal and vertical
+ //
+ QRect rr(p.matrix().mapRect(pr).adjusted(1, 0, -1, 0));
+ p.save();
+ p.resetMatrix();
+ p.drawRect(rr);
+ p.restore();
+
+ int xx1 = x1;
+ if (xx1 < from)
+ xx1 = from;
+ int xx2 = x2;
+ if (xx2 > to)
+ xx2 = to;
+ if (t->isMidiTrack())
+ drawMidiPart(p, part, y, h, xx1, xx2);
+ else if (t->type() == Track::WAVE)
+ drawWavePart(p, part, y, h, xx1, xx2);
+ int yy = y + h - partLabelHeight;
+ p.drawText(x1 + 3, yy, len - 6,
+ partLabelHeight-1, Qt::AlignVCenter | Qt::AlignLeft,
+ part->name());
+
+ // redraw border
+ p.save();
+ p.resetMatrix();
+ p.setPen(pen);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(rr);
+ p.restore();
+ }
+
+ if (i != tl->begin()) {
+ p.setPen(QPen(Qt::lightGray, trackSeparator, Qt::SolidLine));
+ p.drawLine(from, y + yTrackOffset, to, y + yTrackOffset);
+ }
+ for (iArrangerTrack i = t->subtracks.begin(); i != t->subtracks.end(); ++i) {
+ at = *i;
+ if (at->tw == 0)
+ continue;
+ TLSWidget* tls = (TLSWidget*)(at->tw);
+ int y = tls->y();
+ // int h = tls->height();
+ p.setPen(QPen(Qt::lightGray, trackSeparator, Qt::SolidLine));
+ p.drawLine(from, y + yTrackOffset, to, y + yTrackOffset);
+ y += yTrackOffset + trackSeparator;
+ QPoint off(0, y);
+ p.translate(off);
+ // tls->paint(p, r);
+ tls->paint(p, QRect(from, 0, to-from, tls->height() - (yTrackOffset + trackSeparator)));
+ p.translate(-off);
+ }
+ }
+ if (at && at->tw) {
+ // draw last line
+ int y = at->tw->y() + at->tw->height() + yTrackOffset;
+ p.setPen(QPen(Qt::lightGray, trackSeparator, Qt::SolidLine));
+ p.drawLine(from, y, to, y);
+ }
+ if (state == S_DRAG4 || state == S_DRAG1 || state == S_DRAG2 || state == S_DRAG5) {
+ p.setBrush(Qt::NoBrush);
+ p.setPen(QPen(QColor(Qt::red), partBorderWidth));
+ p.drawRect(drag);
+ }
+ }
+
+//---------------------------------------------------------
+// drawMidiPart
+//---------------------------------------------------------
+
+void PartCanvas::drawMidiPart(QPainter& p, Part* mp, int y, int th, int from, int to)
+ {
+ p.setPen(Qt::black);
+
+ EventList* events = mp->events();
+ // iEvent ito(events->lower_bound(to));
+
+ iEvent ito = events->end();
+// int pos = pos2pix(*mp);
+
+ if (config.canvasShowPartType & 2) { // show events
+ for (iEvent i = events->lower_bound(from); i != ito; ++i) {
+ EventType type = i->second.type();
+ if (
+ ((config.canvasShowPartEvent & 1) && (type == Note))
+ || ((config.canvasShowPartEvent & 2) && (type == PAfter))
+ || ((config.canvasShowPartEvent & 4) && (type == Controller))
+ || ((config.canvasShowPartEvent &16) && (type == CAfter))
+ || ((config.canvasShowPartEvent &64) && (type == Sysex || type == Meta))
+ ) {
+ int t = pos2pix(*mp + i->second.pos());
+ p.drawLine(t, y + 1, t, y + th - 2);
+ }
+ }
+ }
+
+ else { // show Cakewalk Style
+ for (iEvent i = events->begin(); i != ito; ++i) {
+ if (i->second.type() != Note)
+ continue;
+ int x1 = pos2pix(*mp + i->second.pos());
+ int x2 = pos2pix(*mp + i->second.end());
+
+ if (x1 > to)
+ break;
+ if (x2 < from)
+ continue;
+
+ if (x2 > to) // clip to drawing area
+ x2 = to;
+ if (x1 < from)
+ x1 = from;
+ int pitch = i->second.pitch();
+ int yy = y + th - (pitch * th / 127);
+ p.drawLine(x1, yy, x2, yy);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// searchPart
+//---------------------------------------------------------
+
+int PartCanvas::searchPart(const QPoint& pp)
+ {
+ Pos tp(pix2pos(pp.x()));
+ QPoint p(tp.tick(), pp.y() + wpos.y());
+
+// printf("searchPart %d %d\n", p.x(), p.y());
+ track = 0;
+ part = 0;
+ at = 0;
+ int yp = p.y();
+ if (yp < 0)
+ return HIT_NOTHING;
+
+ TrackList* tl = song->tracks();
+ iTrack i;
+ int y1, y2;
+ for (i = tl->begin(); i != tl->end(); ++i) {
+ track = *i;
+ QWidget* tw = track->arrangerTrack.tw;
+ if (tw == 0) {
+ printf(" invisible Track\n");
+ continue;
+ }
+ y1 = tw->y();
+ y2 = y1 + tw->height();
+ if (yp >= y1 && yp < y2) {
+// printf(" track <%s> %d - %d\n", track->name().toLatin1().data(), y1, y2);
+ break;
+ }
+ for (iArrangerTrack i = track->subtracks.begin(); i != track->subtracks.end(); ++i) {
+ at = *i;
+ if (at->tw == 0) {
+ printf("----empty subtrack?\n");
+ break;
+ }
+ y1 = at->tw->y();
+ y2 = y1 + at->tw->height();
+ if (yp >= y1 && yp < y2) {
+ return HIT_SUBTRACK;
+ }
+ }
+ }
+ if (i == tl->end()) {
+ track = 0;
+ at = 0;
+ return HIT_NOTHING;
+ }
+
+ unsigned x = p.x();
+ PartList* pl = track->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ part = ip->second;
+ if (x >= part->tick() && x < part->endTick()) {
+ ppos = mapx(part->tick());
+ psize = rmapx(part->lenTick());
+// printf(" part\n");
+ return HIT_PART;
+ }
+ }
+ part = 0;
+ return HIT_TRACK;
+ }
+
+//---------------------------------------------------------
+// contextMenu
+//---------------------------------------------------------
+
+void PartCanvas::contextMenu(const QPoint& pos)
+ {
+ QMenu* pop = new QMenu(widget());
+ QAction* a;
+ if (part) {
+ pop->addAction(getAction("cut", this));
+ pop->addAction(getAction("copy", this));
+ pop->addSeparator();
+ a = pop->addAction(tr("Rename"));
+ a->setData("rename");
+
+ QMenu* cp = pop->addMenu(tr("Color"));
+
+ // part color selection
+ for (int i = 0; i < NUM_PARTCOLORS; ++i) {
+ a = cp->addAction(partColorNames[i]);
+ a->setData(QString("color%1").arg(i));
+ QPixmap pm(20, 20);
+ QPainter p(&pm);
+ p.fillRect(0, 0, 20, 20, config.partColors[i]);
+ a->setIcon(QIcon(pm));
+ }
+ pop->addAction(getAction("delete", this));
+ pop->addAction(getAction("scissor", this));
+ pop->addAction(getAction("glue", this));
+ a = getAction("declone", this);
+ a->setEnabled(part->isClone());
+ pop->addAction(a);
+ if (track->type() == Track::MIDI) {
+ a = pop->addAction(tr("AutoFill..."));
+ a->setData("autofill");
+ }
+ pop->addSeparator();
+ if (track->type() == Track::MIDI) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ if (track->useDrumMap()) {
+ a = pop->addAction(*edit_drummsIcon, tr("drums"));
+ a->setData("editdrums");
+ }
+ else {
+ a = pop->addAction(QIcon(":/xpm/piano.xpm"), tr("pianoroll"));
+ a->setData("editpiano");
+ }
+ a = pop->addAction(*edit_listIcon, tr("miditracker"));
+ a->setData("miditracker");
+ pop->addAction(getAction("listedit", this));
+ }
+ else {
+ a = pop->addAction(*waveIcon, tr("wave edit"));
+ a->setData("waveedit");
+ }
+
+ a = pop->exec(mapToGlobal(pos));
+ if (a) {
+ QString cmd = a->data().toString();
+ if (cmd == "rename")
+ renamePart(part);
+ else if (cmd == "delete")
+ song->cmdRemovePart(part);
+ else if (cmd == "scissor")
+ splitPart(part, startDrag);
+ else if (cmd == "glue")
+ song->cmdGluePart(part);
+ else if (cmd == "cut")
+ cutPart(part);
+ else if (cmd == "copy")
+ copyPart(part);
+ else if (cmd == "editpiano")
+ emit startEditor(part, 0);
+ else if (cmd == "miditracker")
+ emit startEditor(part, 2);
+ else if (cmd == "listedit")
+ emit startEditor(part, 1);
+ else if (cmd == "drumedit")
+ emit startEditor(part, 3);
+ else if (cmd == "waveedit")
+ emit startEditor(part, 4);
+ else if (cmd == "declone")
+ declonePart(part);
+ else if (cmd == "autofill") {
+ bool ok;
+ int ticksM = AL::sigmap.ticksMeasure(part->tick());
+ int n = QInputDialog::getInteger(this,
+ tr("MusE: Get auto fill loop len"),
+ tr("Measures: "),
+ part->fillLen() / ticksM,
+ 0, 16, 1, &ok);
+ if (ok) {
+ part->setFillLen(n * ticksM);
+ }
+ }
+ else if (cmd.startsWith("color")) {
+ int idx = cmd.mid(5).toInt();
+ part->setColorIndex(idx);
+ widget()->update();
+ }
+ else {
+ printf("unknown action <%s>\n", cmd.toLatin1().data());
+ }
+ }
+ }
+ else {
+ for (int i = 0; i < TOOLS; ++i) {
+ if ((arrangerTools & (1 << i))==0)
+ continue;
+ a = getAction(toolList[i], this);
+ pop->addAction(a);
+ a->setCheckable(true);
+ a->setChecked((1 <<i) == (int)_tool);
+ }
+ a = pop->exec(mapToGlobal(pos));
+ if (a)
+ muse->setTool(a->data().toString());
+ }
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void PartCanvas::mousePress(QMouseEvent* me)
+ {
+ if (state == S_SUBTRACK) {
+ ((TLSWidget*)(at->tw))->mouseRelease();
+ state = S_NORMAL;
+ }
+
+ QPoint pos(me->pos().x(), me->pos().y() - rulerHeight);
+ startDrag = pos;
+ int hit = searchPart(startDrag);
+
+ if (hit == HIT_SUBTRACK) {
+ TLSWidget* w = (TLSWidget*)(at->tw);
+ int y = wpos.y() + pos.y() - w->y();
+ w->mousePress(QPoint(pos.x(), y), me);
+ // propagate drag events to subtrack if left button pressed:
+ if (me->button() == Qt::LeftButton)
+ state = S_SUBTRACK;
+ return;
+ }
+ else if ( hit == HIT_NOTHING ) { // nothing here we put up a rubberband
+ rubberBandStartPos = me->pos();
+ if (!rubberBand)
+ rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
+ rubberBand->setGeometry(QRect(rubberBandStartPos, QSize()));
+ rubberBand->show();
+ }
+
+ if (button & Qt::RightButton) {
+ contextMenu(me->pos());
+ return;
+ }
+
+ QRect r1,r2;
+ QPoint pos2;
+ int xpos = 0, y = 0, len = 0, h = 0;
+
+ if (hit == HIT_PART) {
+ h = track->arrangerTrack.tw->height();
+ len = rmapx(part->lenTick());
+ y = track->arrangerTrack.tw->y() - splitWidth/2;
+ xpos = mapx(part->tick());
+
+ r1 = QRect(xpos, y, handleWidth, h);
+ r2 = QRect(xpos + len - handleWidth, y, handleWidth, h);
+ pos2 = QPoint(pos.x(), pos.y() + wpos.y());
+ }
+
+ switch (_tool) {
+ case PencilTool:
+ if (r1.contains(pos2))
+ state = S_START_DRAG1;
+ else if (r2.contains(pos2))
+ state = S_START_DRAG2;
+ else
+ state = S_START_DRAG5;
+ ppos = pos2pix(pix2pos(startDrag.x()).downSnaped(raster()));
+ psize = pos2pix(pix2pos(ppos+1).upSnaped(raster())) - ppos;
+ startDragTime = QTime::currentTime();
+ setCursor();
+ break;
+ case RubberTool:
+ if (part)
+ song->cmdRemovePart(part);
+ break;
+ case GlueTool:
+ if (part)
+ song->cmdGluePart(part);
+ break;
+ case CutTool:
+ if (part)
+ splitPart(part, pos);
+ break;
+ case MuteTool:
+ if (part) {
+ part->setMute(!part->mute());
+ widget()->update();
+ }
+ break;
+ default:
+ if (hit == HIT_PART) {
+ QRect r3(xpos, y, len, h);
+
+ if (r1.contains(pos2)) {
+ state = S_START_DRAG1;
+ }
+ else if (r2.contains(pos2)) {
+ state = S_START_DRAG2;
+ }
+ else if (r3.contains(pos2)) {
+ state = S_START_DRAG3;
+ bool add = keyState & Qt::ShiftModifier;
+ song->selectPart(part, add);
+ emit kbdMovementUpdate(track, part);
+ }
+ }
+ if (state == S_NORMAL) {
+ song->selectPart(0, false); // deselect all parts
+ emit kbdMovementUpdate(0, 0); // Tell arranger nothing is selected (Keyboard movement)
+ }
+ startDragTime = QTime::currentTime();
+ setCursor();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMove
+//---------------------------------------------------------
+
+void PartCanvas::mouseMove(QPoint pos)
+ {
+
+ if(rubberBand)
+ rubberBand->setGeometry(QRect(rubberBandStartPos, pos).normalized());
+
+ if (state == S_SUBTRACK) {
+ TLSWidget* w = (TLSWidget*)(at->tw);
+ int y = wpos.y() + pos.y() - w->y() - rulerHeight;
+ w->mouseMove(QPoint(pos.x(), y));
+ return;
+ }
+ pos -= rCanvasA.topLeft();
+ bool update = false;
+ int x = pos.x();
+ int delta = startDrag.x() - x;
+ int t = startDragTime.msecsTo(QTime::currentTime());
+ bool dragActive = (startDrag - pos).manhattanLength() >
+ QApplication::startDragDistance()
+ || t > QApplication::startDragTime();
+ switch (state) {
+ case S_START_DRAG1:
+ if (dragActive)
+ state = S_DRAG1;
+ break;
+ case S_START_DRAG2:
+ if (dragActive)
+ state = S_DRAG2;
+ break;
+ case S_START_DRAG3:
+ if (dragActive)
+ state = S_DRAG3;
+ break;
+ case S_START_DRAG5:
+ if (dragActive)
+ state = S_DRAG5;
+ break;
+ case S_NORMAL:
+ {
+ searchPart(pos);
+ bool found = false;
+ if (part) {
+ int h = track->arrangerTrack.tw->height();
+ int xpos = mapx(part->tick());
+ int len = rmapx(part->lenTick());
+ int y = track->arrangerTrack.tw->y();
+ QRect r1(xpos, y, handleWidth, h);
+ QRect r2(xpos + len - handleWidth, y, handleWidth, h);
+ if (r1.contains(pos) || r2.contains(pos))
+ found = true;
+ }
+ if (found) {
+ widget()->setCursor(Qt::SizeHorCursor);
+ }
+ else
+ setCursor();
+ }
+ break;
+ default:
+ break;
+ }
+ if (!track)
+ return;
+ int y = track->arrangerTrack.tw->y(); // - splitWidth/2;
+ int ph = track->arrangerTrack.tw->height() - 1 - partBorderWidth;
+ if (state == S_DRAG1) {
+ //
+ // drag left edge of part
+ //
+ Pos p(pix2pos(ppos - delta));
+ p.snap(raster());
+ int x1 = pos2pix(p);
+ int x2 = pos2pix(part->end());
+ int size = x2 - x1;
+ drag.setRect(x1, y, size, ph);
+ update = true;
+ }
+ else if (state == S_DRAG2) {
+ //
+ // drag right edge of part
+ //
+ int size = psize - delta;
+ if (size < 10)
+ size = 10;
+ int x2 = mapx(AL::sigmap.raster(part->tick() + rmapxDev(size), raster()));
+ drag.setRect(ppos, y, x2 - ppos, ph);
+ update = true;
+ }
+ else if (state == S_DRAG5) {
+ //
+ // draw part with pencil tool
+ //
+ int size = psize - delta;
+ if (size < 10)
+ size = 10;
+ int x2 = mapx(AL::sigmap.raster(mapxDev(ppos + size), raster()));
+ drag.setRect(ppos, y, x2 - ppos, ph);
+ update = true;
+ }
+ else if (state == S_DRAG3) {
+ //
+ // drag whole part
+ //
+ srcPart = part;
+ QDrag* d = 0;
+ if (track->type() == Track::MIDI)
+ d = new MidiPartDrag(srcPart, this);
+ else if (track->type() == Track::WAVE)
+ d = new AudioPartDrag(srcPart, this);
+ if (d) {
+ Qt::KeyboardModifiers kb = QApplication::keyboardModifiers();
+ Qt::DropActions da = kb ? (Qt::MoveAction | Qt::CopyAction | Qt::LinkAction) : Qt::MoveAction;
+ song->startUndo();
+ _dragOffset = startDrag.x() - rCanvasA.x() - ppos;
+ if (d->start(da) == Qt::MoveAction)
+ song->removePart(srcPart);
+ song->endUndo(0);
+ update = true;
+ }
+ state = S_NORMAL;
+ }
+ if (update)
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void PartCanvas::mouseRelease(QMouseEvent* me)
+ {
+
+ if (rubberBand)
+ rubberBand->hide(); // TODO robert, nothing more happens for the moment/
+
+ if (state == S_SUBTRACK) {
+ ((TLSWidget*)(at->tw))->mouseRelease();
+ state = S_NORMAL;
+ return;
+ }
+
+ QPoint pos(me->pos());
+ int x = pos.x();
+ int delta = startDrag.x() - x;
+
+ if (state == S_DRAG1) {
+ int val = mapxDev(ppos-delta);
+ int pos = AL::sigmap.raster(val, raster());
+ int size = part->tick() + part->lenTick() - pos;
+ emit partChanged(part, pos, size);
+ }
+ else if (state == S_DRAG2) {
+ int size = psize - delta;
+ int x1 = part->tick();
+ int x2 = AL::sigmap.raster(part->tick() + rmapxDev(size), raster());
+
+ int step = AL::sigmap.rasterStep(x1, raster());
+ if (x2 - x1 < step)
+ x2 = AL::sigmap.raster(x1 + step, raster());
+ emit partChanged(part, x1, x2-x1);
+ }
+ else if (state == S_DRAG5) {
+ if (track && (track->type() == Track::MIDI || track->type() == Track::WAVE)) {
+ Part* part = track->newPart();
+ Pos p1 = pix2pos(drag.x()).snaped(raster());
+ Pos p2 = pix2pos(drag.x() + drag.width()).snaped(raster());
+ part->setPos(p1);
+ part->setLenTick(p2.tick() - p1.tick());
+ song->cmdAddPart(part);
+ }
+ else
+ widget()->update();
+ }
+ state = S_NORMAL;
+ setCursor();
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void PartCanvas::mouseDoubleClick(QMouseEvent* me)
+ {
+ QPoint pos(me->pos().x(), me->pos().y() - rulerHeight);
+ if (_tool != PointerTool) {
+//TD mousePress(pos);
+ return;
+ }
+ bool shift = keyState & Qt::ShiftModifier;
+ if (searchPart(pos) == HIT_PART) {
+ if (button == Qt::LeftButton && shift) {
+ renamePart(part);
+ }
+ else if (button == Qt::LeftButton) {
+ emit doubleClickPart(part);
+ }
+ }
+ //
+ // double click creates new part between left and
+ // right mark
+
+ else if (track && track->isMidiTrack())
+ emit createLRPart(track);
+ }
+
+
+//---------------------------------------------------------
+// keyboardNavigate
+//---------------------------------------------------------
+
+void PartCanvas::keyboardNavigate(QKeyEvent*)
+ {
+ printf("nothing here go away\n");
+ }
+
+
+//---------------------------------------------------------
+// setCursor
+//---------------------------------------------------------
+
+void PartCanvas::setCursor()
+ {
+ switch(state) {
+ case S_START_DRAG1:
+ case S_START_DRAG2:
+ case S_DRAG1:
+ case S_DRAG2:
+ widget()->setCursor(Qt::SizeHorCursor);
+ return;
+ default:
+ break;
+ }
+ TimeCanvas::setCursor();
+ }
+
+//---------------------------------------------------------
+// declonePart
+//---------------------------------------------------------
+
+void PartCanvas::declonePart(Part* oPart)
+ {
+ Track* track = oPart->track();
+ Part* nPart = track->newPart(oPart, false);
+
+ EventList* se = oPart->events();
+ for (iEvent i = se->begin(); i != se->end(); ++i) {
+ Event oldEvent = i->second;
+// Event ev = oldEvent.clone();
+ nPart->addEvent(oldEvent);
+ }
+ oPart->deref();
+ song->cmdChangePart(oPart, nPart);
+ }
+
+//---------------------------------------------------------
+// splitPart
+//---------------------------------------------------------
+
+void PartCanvas::splitPart(Part* part, const QPoint& p)
+ {
+ song->cmdSplitPart(part, pix2pos(p.x()).snaped(raster()));
+ }
+
+//---------------------------------------------------------
+// renamePart
+//---------------------------------------------------------
+
+void PartCanvas::renamePart(Part* part)
+ {
+ bool ok;
+
+ QString s = QInputDialog::getText(this,
+ tr("MusE: Change Part Name"),
+ tr("PartName:"),
+ QLineEdit::Normal,
+ part->name(),
+ &ok
+ );
+ if (ok && s != part->name()) {
+ song->startUndo();
+ Part* newPart = new Part(*part);
+ newPart->setName(s);
+ song->cmdChangePart(part, newPart);
+ widget()->update();
+ }
+ }
+
+//---------------------------------------------------------
+// cutPart
+//---------------------------------------------------------
+
+void PartCanvas::cutPart(Part* part)
+ {
+ copyPart(part);
+ song->cmdRemovePart(part);
+ }
+
+//---------------------------------------------------------
+// copyPart
+//---------------------------------------------------------
+
+void PartCanvas::copyPart(Part* part)
+ {
+ QBuffer buffer;
+ buffer.open(QIODevice::WriteOnly);
+ AL::Xml xml(&buffer);
+ part->write(xml);
+ buffer.close();
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setData(MidiPartDrag::type, buffer.buffer());
+ QApplication::clipboard()->setMimeData(mimeData);
+ }
+
+//---------------------------------------------------------
+// dragEnter
+//---------------------------------------------------------
+
+void PartCanvas::dragEnter(QDragEnterEvent* event)
+ {
+#if 0
+ QPoint p(event->pos() - rCanvasA.topLeft());
+ searchPart(p);
+ if (!track) {
+ event->ignore();
+ return;
+ }
+ int srcIsMidi = -1;
+ const QMimeData* md = event->mimeData();
+
+ if (MidiPartDrag::canDecode(md))
+ srcIsMidi = 1;
+ else if (AudioPartDrag::canDecode(md))
+ srcIsMidi = 0;
+ else if (WavUriDrag::canDecode(md))
+ srcIsMidi = 0;
+
+ int dstIsMidi = -1;
+ if (track->type() == Track::MIDI)
+ dstIsMidi = 1;
+ else if (track->type() == Track::WAVE)
+ dstIsMidi = 0;
+
+ if ((srcIsMidi == -1) || (dstIsMidi != srcIsMidi)) {
+ event->ignore();
+ return;
+ }
+ Qt::KeyboardModifiers kb = event->keyboardModifiers();
+ if (kb == 0 && (Qt::MoveAction & event->possibleActions())) {
+ event->setDropAction(Qt::MoveAction);
+ event->accept();
+ }
+ else
+#endif
+ event->acceptProposedAction();
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void PartCanvas::dragMove(QDragMoveEvent* event)
+ {
+ QPoint p(event->pos() - rCanvasA.topLeft());
+ searchPart(p);
+ if (!track) {
+ event->acceptProposedAction();
+ return;
+ }
+ Part* srcPart = 0;
+ QString filename;
+
+ bool srcIsMidi;
+ const QMimeData* md = event->mimeData();
+ if (MidiPartDrag::canDecode(md)) {
+ MidiPartDrag::decode(md, srcPart);
+ srcIsMidi = true;
+ }
+ else if (AudioPartDrag::canDecode(md)) {
+ AudioPartDrag::decode(md, srcPart);
+ srcIsMidi = false;
+ }
+ else if (WavUriDrag::canDecode(md)) {
+ WavUriDrag::decode(md, &filename);
+ if (state != S_NORMAL) {
+ state = S_NORMAL;
+ widget()->update();
+ }
+ if (track->type() == Track::WAVE)
+ event->acceptProposedAction();
+ else
+ event->ignore();
+ return;
+ }
+ else {
+ state = S_NORMAL;
+ event->ignore();
+ return;
+ }
+
+ int dstIsMidi = -1;
+ if (track->type() == Track::MIDI)
+ dstIsMidi = 1;
+ else if (track->type() == Track::WAVE)
+ dstIsMidi = 0;
+ if ((srcIsMidi == -1) || (dstIsMidi != srcIsMidi)) {
+ if (state != S_NORMAL) {
+ state = S_NORMAL;
+ widget()->update();
+ }
+ event->ignore();
+ return;
+ }
+ Qt::KeyboardModifiers kb = event->keyboardModifiers();
+ if (kb == 0 && (Qt::MoveAction & event->possibleActions())) {
+ event->setDropAction(Qt::MoveAction);
+ event->accept();
+ }
+ else
+ event->acceptProposedAction();
+ state = S_DRAG4;
+ ArrangerTrack* at = &(track->arrangerTrack);
+
+ PartCanvas* cw = (PartCanvas*)event->source();
+ QRect updateRect(drag);
+
+ Pos pos;
+ if (cw)
+ pos = pix2pos(p.x() - cw->dragOffset()).snaped(raster());
+ else
+ pos = pix2pos(p.x()).snaped(raster());
+ drag.setRect(
+ pos2pix(pos),
+ at->tw->y(),
+ rmapx(srcPart->lenTick()),
+ at->tw->height() - 1 - partBorderWidth
+ );
+ delete srcPart;
+ updateRect |= drag;
+ updateRect.adjust(-1, -1 + rCanvasA.y(), 1, 1 + rCanvasA.y());
+ widget()->update(updateRect);
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void PartCanvas::drop(QDropEvent* event)
+ {
+ state = S_NORMAL;
+ Part* dstPart = 0;
+ QString filename;
+
+ QPoint pos(event->pos() - rCanvasA.topLeft());
+ const QMimeData* md = event->mimeData();
+ if (WavUriDrag::canDecode(md)) {
+ WavUriDrag::decode(md, &filename);
+ int tick = AL::sigmap.raster(mapxDev(pos.x()), raster());
+ Pos pos(tick);
+ muse->importWaveToTrack(filename, track, pos);
+ widget()->update();
+ return;
+ }
+
+ bool isMidi = false;
+ if (MidiPartDrag::canDecode(md)) {
+ MidiPartDrag::decode(md, dstPart);
+ isMidi = true;
+ }
+ else if (AudioPartDrag::canDecode(md))
+ AudioPartDrag::decode(md, dstPart);
+
+ searchPart(pos);
+ if (!dstPart)
+ return;
+ PartCanvas* cw = (PartCanvas*)event->source();
+ bool needEndUndo = false;
+ if (!track) {
+ if (isMidi)
+ track = new MidiTrack();
+ else
+ track = new WaveTrack();
+ track->setDefaultName();
+ if (cw)
+ song->insertTrack(track, -1);
+ else {
+ song->startUndo();
+ song->insertTrack(track, -1);
+ needEndUndo = true;
+ }
+ }
+ else if (isMidi != track->isMidiTrack())
+ return;
+
+ dstPart->setTrack(track);
+
+ //
+ // cw == 0 means that we are dropping to
+ // another application
+
+ unsigned tick;
+ if (cw)
+ tick = AL::sigmap.raster(mapxDev(pos.x() - cw->dragOffset()), raster());
+ else
+ tick = AL::sigmap.raster(mapxDev(pos.x()), raster());
+
+ dstPart->setTick(tick);
+
+ Qt::DropAction da = event->proposedAction();
+ Qt::KeyboardModifiers kb = event->keyboardModifiers();
+ if (kb == 0 && (Qt::MoveAction & event->possibleActions()))
+ da = Qt::MoveAction;
+
+ if ((da == Qt::LinkAction) && (cw == this)) {
+ delete dstPart->events();
+ dstPart->clone(srcPart->events());
+ event->setDropAction(Qt::LinkAction);
+ }
+ else if (da == Qt::MoveAction)
+ event->setDropAction(Qt::MoveAction);
+ else
+ event->setDropAction(Qt::CopyAction);
+ event->accept();
+ if (cw || needEndUndo)
+ song->addPart(dstPart);
+ else
+ song->cmdAddPart(dstPart);
+ if (needEndUndo)
+ song->endUndo(0);
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// dragLeave
+//---------------------------------------------------------
+
+void PartCanvas::dragLeave(QDragLeaveEvent*)
+ {
+ if (state == S_DRAG4) {
+ state = S_NORMAL;
+ widget()->update();
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/canvas.h b/muse_qt4_evolution/muse/canvas.h
new file mode 100644
index 00000000..911936c2
--- /dev/null
+++ b/muse_qt4_evolution/muse/canvas.h
@@ -0,0 +1,124 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CANVAS_H__
+#define __CANVAS_H__
+
+#include "awl/tcanvas.h"
+#include "widgets/tools.h"
+
+class CanvasWidget;
+class Part;
+class Track;
+class ArrangerTrack;
+
+static const int HANDLE1 = 6;
+static const int HANDLE2 = 3;
+
+//---------------------------------------------------------
+// PartCanvas
+//---------------------------------------------------------
+
+class PartCanvas : public TimeCanvas {
+ Q_OBJECT
+
+ // DRAG1 drag part head
+ // DRAG2 drag part tail
+ // DRAG3 drag whole part
+ // DRAG4 Drag&Drop drag
+ // DRAG5 draw part with pencil tool
+
+ enum { S_NORMAL, S_START_DRAG1, S_START_DRAG2, S_START_DRAG3,
+ S_DRAG1, S_DRAG2, S_DRAG3,
+ S_DRAG4,
+ S_START_DRAG5, S_DRAG5, // draw new Part
+ S_SUBTRACK
+ };
+ int state;
+ QPoint startDrag;
+ int _dragOffset;
+ QRect drag;
+ QTime startDragTime;
+ unsigned ppos, psize;
+
+ // values set by searchPart():
+ Track* track;
+ Part* part;
+ ArrangerTrack* at;
+
+ Part* srcPart; // src part of a drag/drop operation
+
+ bool _drawBackground;
+ int selected;
+ int lselected; // in local coordinates
+ int starty;
+ int dragy;
+
+ virtual void paint(QPainter&, QRect);
+ void drawWavePart(QPainter& p, Part* part, int, int, int, int);
+ void drawMidiPart(QPainter& p, Part* mp, int, int, int, int);
+ virtual void mousePress(QMouseEvent*);
+ virtual void mouseMove(QPoint);
+ virtual void mouseRelease(QMouseEvent*);
+ virtual void mouseDoubleClick(QMouseEvent*);
+
+ virtual void dragEnter(QDragEnterEvent*);
+ virtual void drop(QDropEvent*);
+ virtual void dragMove(QDragMoveEvent*);
+ virtual void dragLeave(QDragLeaveEvent*);
+
+ virtual void keyboardNavigate(QKeyEvent *e);
+
+
+ int searchPart(const QPoint& p);
+
+ void declonePart(Part* part);
+ void renamePart(Part*);
+ void splitPart(Part*, const QPoint&);
+ void cutPart(Part*);
+ void copyPart(Part*);
+
+ void setCursor();
+ int dragOffset() const { return _dragOffset; }
+ void drawHandle(QPainter& p, int x, int y) {
+ p.fillRect(x-HANDLE2, y-HANDLE2, HANDLE1, HANDLE1, x == lselected ? Qt::red : Qt::yellow);
+ }
+ void contextMenu(const QPoint&);
+
+ QRubberBand *rubberBand;
+ QPoint rubberBandStartPos;
+
+ private slots:
+ void markerChanged(int);
+
+ signals:
+ void kbdMovementUpdate(Track* t, Part* p);
+ void startEditor(Part*, int);
+ void createLRPart(Track*);
+ void partChanged(Part*, unsigned, unsigned);
+ void doubleClickPart(Part*);
+
+ public:
+ PartCanvas();
+ void setDrawBackground(bool val) { _drawBackground = val; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/cliplist/cliplist.cpp b/muse_qt4_evolution/muse/cliplist/cliplist.cpp
new file mode 100644
index 00000000..b39fa367
--- /dev/null
+++ b/muse_qt4_evolution/muse/cliplist/cliplist.cpp
@@ -0,0 +1,251 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cliplist.cpp,v 1.10 2005/09/22 20:12:59 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "cliplist.h"
+#include "song.h"
+#include "globals.h"
+#include "wave.h"
+#include "xml.h"
+// #include "posedit.h"
+#include "cliplisteditorbase.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+extern int mtcType;
+enum { COL_NAME=0, COL_REFS, COL_POS, COL_LEN };
+
+//---------------------------------------------------------
+// ClipItem
+//---------------------------------------------------------
+
+class ClipItem : public Q3ListViewItem {
+ SndFileR _wf;
+
+ virtual QString text(int) const;
+
+ public:
+ ClipItem(Q3ListView*, const SndFileR&);
+ SndFileR* wf() { return &_wf; }
+ };
+
+ClipItem::ClipItem(Q3ListView* parent, const SndFileR& w)
+ : Q3ListViewItem(parent), _wf(w)
+ {
+ }
+
+//---------------------------------------------------------
+// samples2smpte
+//---------------------------------------------------------
+
+#if 0
+static QString samples2smpte(int samples)
+ {
+ double time = double(samples) / double(sampleRate);
+ int min = int(time) / 60;
+ int sec = int(time) % 60;
+ double rest = time - (min * 60 + sec);
+ switch(mtcType) {
+ case 0: // 24 frames sec
+ rest *= 24;
+ break;
+ case 1: // 25
+ rest *= 25;
+ break;
+ case 2: // 30 drop frame
+ rest *= 30;
+ break;
+ case 3: // 30 non drop frame
+ rest *= 30;
+ break;
+ }
+ int frame = int(rest);
+ int subframe = int((rest-frame)*100);
+ QString s;
+ s.sprintf("%03d:%02d:%02d:%02d", min, sec, frame, subframe);
+ return s;
+ }
+#endif
+
+//---------------------------------------------------------
+// text
+//---------------------------------------------------------
+
+QString ClipItem::text(int col) const
+ {
+ QString s("");
+ switch(col) {
+ case COL_NAME:
+ s = _wf.name();
+ break;
+ case COL_POS:
+ case COL_LEN:
+ break;
+ case COL_REFS:
+ s.setNum(_wf.getRefCount());
+ break;
+ }
+ return s;
+ }
+
+//---------------------------------------------------------
+// ClipListEdit
+//---------------------------------------------------------
+
+ClipListEdit::ClipListEdit()
+ : TopWin(0, "cliplist", Qt::WType_TopLevel /*|WDestructiveClose*/)
+ {
+ setCaption(tr("MusE: Clip List Editor"));
+
+ editor = new ClipListEditorBase(this, "edit");
+ setCentralWidget(editor);
+
+ editor->view->setColumnAlignment(COL_REFS, AlignRight);
+
+ QFontMetrics fm(editor->view->font());
+ int fw = style().pixelMetric(QStyle::PM_DefaultFrameWidth, this);
+ int w = 2 + fm.width('9') * 9 + fm.width(':') * 3 + fw * 4;
+ editor->view->setColumnAlignment(COL_POS, AlignRight);
+ editor->view->setColumnWidth(COL_POS, w);
+ editor->view->setColumnAlignment(COL_LEN, AlignRight);
+ editor->view->setColumnWidth(COL_LEN, w);
+
+ connect(editor->view, SIGNAL(selectionChanged()), SLOT(clipSelectionChanged()));
+ connect(editor->view, SIGNAL(clicked(Q3ListViewItem*)), SLOT(clicked(Q3ListViewItem*)));
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(editor->start, SIGNAL(valueChanged(const Pos&)), SLOT(startChanged(const Pos&)));
+ connect(editor->len, SIGNAL(valueChanged(const Pos&)), SLOT(lenChanged(const Pos&)));
+
+ updateList();
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void ClipListEdit::updateList()
+ {
+ editor->view->clear();
+ for (iSndFile f = SndFile::sndFiles.begin(); f != SndFile::sndFiles.end(); ++f) {
+ new ClipItem(editor->view, *f);
+ }
+ clipSelectionChanged();
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void ClipListEdit::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((int)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void ClipListEdit::songChanged(int)
+ {
+ updateList();
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void ClipListEdit::readStatus(QDomNode node)
+ {
+#if 0 //TODO2
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "topwin")
+ TopWin::readStatus(xml);
+ else
+ xml.unknown("CliplistEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "cliplist")
+ return;
+ default:
+ break;
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void ClipListEdit::writeStatus(Xml& xml) const
+ {
+ xml.tag("cliplist");
+ TopWin::writeStatus(xml);
+ xml.etag("cliplist");
+ }
+
+//---------------------------------------------------------
+// startChanged
+//---------------------------------------------------------
+
+void ClipListEdit::startChanged(const Pos& pos)
+ {
+// editor->view->triggerUpdate();
+ }
+
+//---------------------------------------------------------
+// lenChanged
+//---------------------------------------------------------
+
+void ClipListEdit::lenChanged(const Pos& pos)
+ {
+// curClip.setLenFrame(pos.frame());
+// editor->view->triggerUpdate();
+ }
+
+//---------------------------------------------------------
+// clipSelectionChanged
+//---------------------------------------------------------
+
+void ClipListEdit::clipSelectionChanged()
+ {
+ ClipItem* item = (ClipItem*)(editor->view->selectedItem());
+// if (item == 0) {
+ editor->start->setEnabled(false);
+ editor->len->setEnabled(false);
+ return;
+#if 0
+ }
+ editor->start->setEnabled(true);
+ editor->len->setEnabled(true);
+ Pos pos, len;
+ pos.setType(Pos::FRAMES);
+ len.setType(Pos::FRAMES);
+ pos.setFrame(curClip.spos());
+ len.setFrame(curClip.lenFrame());
+ editor->start->setValue(pos);
+ editor->len->setValue(len);
+#endif
+ }
+
+//---------------------------------------------------------
+// clicked
+//---------------------------------------------------------
+
+void ClipListEdit::clicked(Q3ListViewItem*)
+ {
+// printf("clicked\n");
+ }
+
diff --git a/muse_qt4_evolution/muse/cliplist/cliplist.h b/muse_qt4_evolution/muse/cliplist/cliplist.h
new file mode 100644
index 00000000..c3a6d5aa
--- /dev/null
+++ b/muse_qt4_evolution/muse/cliplist/cliplist.h
@@ -0,0 +1,47 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cliplist.h,v 1.7 2006/01/06 22:48:09 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CLIPLIST_H__
+#define __CLIPLIST_H__
+
+#include "../cobject.h"
+#include "event.h"
+
+class Xml;
+class Pos;
+class ClipListEditorBase;
+
+//---------------------------------------------------------
+// ClipListEdit
+//---------------------------------------------------------
+
+class ClipListEdit : public TopWin {
+ Q_OBJECT
+ ClipListEditorBase* editor;
+
+ virtual void closeEvent(QCloseEvent*);
+ void updateList();
+
+ private slots:
+ void songChanged(int);
+ void startChanged(const Pos&);
+ void lenChanged(const Pos&);
+ void clipSelectionChanged();
+ void clicked(Q3ListViewItem*);
+
+ signals:
+ void deleted(int);
+
+ public:
+ ClipListEdit();
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/cobject.cpp b/muse_qt4_evolution/muse/cobject.cpp
new file mode 100644
index 00000000..6339a2b7
--- /dev/null
+++ b/muse_qt4_evolution/muse/cobject.cpp
@@ -0,0 +1,55 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "cobject.h"
+#include "al/xml.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// TopWin
+//---------------------------------------------------------
+
+TopWin::TopWin()
+ : QMainWindow()
+ {
+ setIconSize(ICON_SIZE);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void TopWin::read(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling())
+ AL::readProperties(this, node);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void TopWin::write(Xml& xml) const
+ {
+ xml.stag(metaObject()->className());
+ xml.writeProperties(this);
+ xml.etag(metaObject()->className());
+ }
+
diff --git a/muse_qt4_evolution/muse/cobject.h b/muse_qt4_evolution/muse/cobject.h
new file mode 100644
index 00000000..0dcbdf9d
--- /dev/null
+++ b/muse_qt4_evolution/muse/cobject.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __COBJECT_H__
+#define __COBJECT_H__
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+//---------------------------------------------------------
+// TopWin
+//---------------------------------------------------------
+
+class TopWin : public QMainWindow
+ {
+ Q_OBJECT
+ Q_PROPERTY(bool muse) // hack: start MusE property list
+ Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry)
+
+ public:
+ virtual void read(QDomNode);
+ virtual void write(Xml& xml) const;
+ TopWin();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/conf.cpp b/muse_qt4_evolution/muse/conf.cpp
new file mode 100644
index 00000000..162f6f9b
--- /dev/null
+++ b/muse_qt4_evolution/muse/conf.cpp
@@ -0,0 +1,694 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "muse.h"
+#include "shortcuts.h"
+#include "transport.h"
+#include "widgets/bigtime.h"
+#include "conf.h"
+#include "gconfig.h"
+#include "al/xml.h"
+#include "widgets/midisync.h"
+#include "sync.h"
+#include "mixer.h"
+#include "globals.h"
+#include "midirc.h"
+#include "awl/tcanvas.h"
+#include "midiedit/pianoroll.h"
+#include "midiedit/drumedit.h"
+
+extern void writeMidiTransforms(Xml& xml);
+extern void readMidiTransform(QDomNode);
+
+//---------------------------------------------------------
+// readColor
+//---------------------------------------------------------
+
+QColor readColor(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ int r = e.attribute("r","0").toInt();
+ int g = e.attribute("g","0").toInt();
+ int b = e.attribute("b","0").toInt();
+ return QColor(r, g, b);
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void readConfiguration(QDomNode node)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ int i = s.toInt();
+ if (tag == "palette0")
+ QColorDialog::setCustomColor(0, readColor(node).rgb());
+ else if (tag == "palette1")
+ QColorDialog::setCustomColor(1, readColor(node).rgb());
+ else if (tag == "palette2")
+ QColorDialog::setCustomColor(2, readColor(node).rgb());
+ else if (tag == "palette3")
+ QColorDialog::setCustomColor(3, readColor(node).rgb());
+ else if (tag == "palette4")
+ QColorDialog::setCustomColor(4, readColor(node).rgb());
+ else if (tag == "palette5")
+ QColorDialog::setCustomColor(5, readColor(node).rgb());
+ else if (tag == "palette6")
+ QColorDialog::setCustomColor(6, readColor(node).rgb());
+ else if (tag == "palette7")
+ QColorDialog::setCustomColor(7, readColor(node).rgb());
+ else if (tag == "palette8")
+ QColorDialog::setCustomColor(8, readColor(node).rgb());
+ else if (tag == "palette9")
+ QColorDialog::setCustomColor(9, readColor(node).rgb());
+ else if (tag == "palette10")
+ QColorDialog::setCustomColor(10, readColor(node).rgb());
+ else if (tag == "palette11")
+ QColorDialog::setCustomColor(11, readColor(node).rgb());
+ else if (tag == "palette12")
+ QColorDialog::setCustomColor(12, readColor(node).rgb());
+ else if (tag == "palette13")
+ QColorDialog::setCustomColor(13, readColor(node).rgb());
+ else if (tag == "palette14")
+ QColorDialog::setCustomColor(14, readColor(node).rgb());
+ else if (tag == "palette15")
+ QColorDialog::setCustomColor(15, readColor(node).rgb());
+ else if (tag == "selectPartBg")
+ config.selectPartBg = readColor(node);
+ else if (tag == "outputTrackBg")
+ config.trackBg[Track::AUDIO_OUTPUT] = readColor(node);
+ else if (tag == "groupTrackBg")
+ config.trackBg[Track::AUDIO_GROUP] = readColor(node);
+ else if (tag == "waveTrackBg")
+ config.trackBg[Track::WAVE] = readColor(node);
+ else if (tag == "inputTrackBg")
+ config.trackBg[Track::AUDIO_INPUT] = readColor(node);
+ else if (tag == "synthTrackBg")
+ config.trackBg[Track::AUDIO_SOFTSYNTH] = readColor(node);
+ else if (tag == "midiTrackBg")
+ config.trackBg[Track::MIDI] = readColor(node);
+ else if (tag == "midiOutputBg")
+ config.trackBg[Track::MIDI_OUT] = readColor(node);
+ else if (tag == "midiInputBg")
+ config.trackBg[Track::MIDI_IN] = readColor(node);
+ else if (tag == "midiSyntiBg")
+ config.trackBg[Track::MIDI_SYNTI] = readColor(node);
+ else if (tag == "extendedMidi")
+ config.extendedMidi = i;
+ else if (tag == "midiExportDivision")
+ config.midiDivision = i;
+ else if (tag == "copyright")
+ config.copyright = s;
+ else if (tag == "smfFormat")
+ config.smfFormat = i;
+ else if (tag == "bigtimeVisible")
+ config.bigTimeVisible = i;
+ else if (tag == "transportVisible")
+ config.transportVisible = i;
+ else if (tag == "mixer1Visible")
+ config.mixer1Visible = i;
+ else if (tag == "mixer2Visible")
+ config.mixer2Visible = i;
+ else if (tag == "showSplashScreen")
+ config.showSplashScreen = i;
+ else if (tag == "canvasShowPartType")
+ config.canvasShowPartType = i;
+ else if (tag == "canvasShowPartEvent")
+ config.canvasShowPartEvent = i;
+ else if (tag == "canvasShowGrid")
+ config.canvasShowGrid = i;
+ else if (tag == "canvasBgPixmap")
+ config.canvasBgPixmap = s;
+ else if (tag == "canvasUsePixmap")
+ config.canvasUseBgPixmap = i;
+ else if (tag == "geometryMain")
+ ; // obsolete
+ else if (tag == "geometryTransport")
+ config.geometryTransport = AL::readGeometry(node);
+ else if (tag == "geometryBigTime")
+ config.geometryBigTime = AL::readGeometry(node);
+ else if (tag == "geometryPianoroll")
+ config.geometryPianoroll = AL::readGeometry(node);
+ else if (tag == "geometryDrumedit")
+ config.geometryDrumedit = AL::readGeometry(node);
+ else if (tag == "mixer1")
+ config.mixer1.read(node);
+ else if (tag == "mixer2")
+ config.mixer2.read(node);
+ else if (tag == "bigtimeForegroundcolor")
+ config.bigTimeForegroundColor = readColor(node);
+ else if (tag == "bigtimeBackgroundcolor")
+ config.bigTimeBackgroundColor = readColor(node);
+ else if (tag == "freewheelMode")
+ config.useJackFreewheelMode = i;
+ else if (tag == "mtctype")
+ AL::mtcType = i;
+ else if (tag == "extSync")
+ extSyncFlag = i;
+ else if (tag == "syncgentype") {
+ // for compatibility
+ int syncGenType= i;
+ genMTCSync = syncGenType == 1;
+ genMCSync = syncGenType == 2;
+ }
+ else if (tag == "genMTCSync")
+ genMTCSync = i;
+ else if (tag == "genMCSync")
+ genMCSync = i;
+ else if (tag == "genMMC")
+ genMMC = i;
+ else if (tag == "acceptMTC")
+ acceptMTC = i;
+ else if (tag == "acceptMMC")
+ acceptMMC = i;
+ else if (tag == "acceptMC")
+ acceptMC = i;
+ else if (tag == "mtcoffset") {
+ QStringList l = s.simplified().split(":", QString::SkipEmptyParts);
+ if (l.size() != 5) {
+ printf("cannot convert mtcoffset <%s>n\n", s.toAscii().data());
+ }
+ else {
+ int h = l.at(0).toInt();
+ int m = l.at(0).toInt();
+ int s = l.at(0).toInt();
+ int f = l.at(0).toInt();
+ int sf = l.at(0).toInt();
+ mtcOffset = MTC(h, m, s, f, sf);
+ }
+ }
+ else if (tag == "shortcuts")
+ readShortCuts(node.firstChild());
+ else if (tag == "midiRC")
+ midiRCList.read(node);
+ else if (tag == "division")
+ config.division = i;
+ else if (tag == "guiDivision")
+ config.guiDivision = i;
+ else if (tag == "rtcTicks")
+ config.rtcTicks = i;
+ else if (tag == "minMeter")
+ config.minMeter = s.toDouble();
+ else if (tag == "maxMeter")
+ config.maxMeter = s.toDouble();
+ else if (tag == "minSlider")
+ config.minSlider = s.toDouble();
+ else if (tag == "maxSlider")
+ config.maxSlider = s.toDouble();
+ else if (tag == "guiRefresh")
+ config.guiRefresh = i;
+ else if (tag == "peakHoldTime")
+ config.peakHoldTime = i;
+ else if (tag == "helpBrowser")
+ config.helpBrowser = s;
+//TD else if (tag == "midiTransform")
+// readMidiTransform(node.firstChild());
+ else if (tag == "startMode")
+ config.startMode = (StartMode)i;
+ else if (tag == "startProject")
+ config.startProject = s;
+ else if (tag == "followMode")
+ TimeCanvas::followMode = (FollowMode)i;
+ else if (tag == "defaultMidiInputDevice")
+ config.defaultMidiInputDevice = s;
+ else if (tag == "defaultMidiOutputDevice")
+ config.defaultMidiOutputDevice = s;
+ else if (tag == "defaultMidiInstrument")
+ config.defaultMidiInstrument = s;
+ else if (tag == "connectToAllMidiDevices")
+ config.connectToAllMidiDevices = i;
+ else if (tag == "connectToAllMidiTracks")
+ config.connectToAllMidiTracks = i;
+ else if (tag == "createDefaultMidiInput")
+ config.createDefaultMidiInput = i;
+ else if (tag == "projectPath")
+ config.projectPath = s;
+ else if (tag == "templatePath")
+ config.templatePath = s;
+ else if (tag == "instrumentPath")
+ config.instrumentPath = s;
+ else if (tag == "importMidiPath") {
+ config.importMidiPath = s;
+ lastMidiPath = museUser + "/" + s;
+ }
+ else if (tag == "importWavePath") {
+ config.importWavePath = s;
+ lastWavePath = museUser + "/" + s;
+ }
+ else if (tag == "PianoRoll")
+ PianoRoll::readConfiguration(node);
+ else if (tag == "DrumEdit")
+ DrumEdit::readConfiguration(node);
+ else {
+ printf("MusE:readConfiguration(): unknown tag %s\n",
+ e.tagName().toAscii().data());
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// probeMachineSpecificConfiguration
+//---------------------------------------------------------
+
+static void probeMachineSpecificConfiguration()
+ {
+ // set a default help browser (crude way to find out)
+ if (!system("which konqueror &>/dev/null")) {
+ config.helpBrowser = QString("konqueror");
+ }
+ else if (!system("which opera &>/dev/null")) {
+ config.helpBrowser = QString("opera");
+ }
+ else if (!system("which firebird &>/dev/null")) {
+ config.helpBrowser = QString("firebird");
+ }
+ else if (!system("which mozilla &>/dev/null")) {
+ config.helpBrowser = QString("mozilla");
+ }
+ else {
+ // was not able to find a browser
+ }
+ // More preconfiguration
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+bool readConfiguration()
+ {
+ if (debugMsg)
+ printf("readConfiguration <%s>\n", configName.toAscii().data());
+
+ QFile qf(configName);
+ if (!qf.open(QIODevice::ReadOnly)) {
+ if (debugMsg || debugMode)
+ fprintf(stderr, "NO Config File <%s> found\n", configName.toAscii().data());
+
+ // if the config file does not exist launch probeMachineSpecificConfiguration
+ probeMachineSpecificConfiguration();
+ return true;
+ }
+ if (debugMsg)
+ printf("readConfiguration <%s>\n", configName.toAscii().data());
+
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(&qf, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error reading med file: %s\n", error.toAscii().data());
+ return true;
+ }
+ QDomNode node = doc.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ node = node.firstChild();
+ // QString version = e.attribute(QString("version"));
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "configuration")
+ readConfiguration(node.firstChild());
+ else
+ printf("MusE:readConfiguration(): unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+ else
+ printf("MusE:readConfiguration() %s not supported\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// writeGlobalConfiguration
+//---------------------------------------------------------
+
+void MusE::writeGlobalConfiguration() const
+ {
+ QFile f(configName);
+ if (!f.open(QIODevice::WriteOnly)) {
+ printf("save configuration to <%s> failed: %s\n",
+ configName.toAscii().data(), strerror(errno));
+ return;
+ }
+ Xml xml(&f);
+ xml.header();
+ xml.stag("muse version=\"2.0\"");
+ writeGlobalConfiguration(xml);
+ xml.etag("muse");
+ f.close();
+ }
+
+void MusE::writeGlobalConfiguration(Xml& xml) const
+ {
+ xml.stag("configuration");
+
+ xml.tag("division", config.division);
+ xml.tag("rtcTicks", config.rtcTicks);
+ xml.tag("minMeter", config.minMeter);
+ xml.tag("maxMeter", config.maxMeter);
+ xml.tag("minSlider", config.minSlider);
+ xml.tag("maxSlider", config.maxSlider);
+ xml.tag("guiRefresh", config.guiRefresh);
+ xml.tag("peakHoldTime", config.peakHoldTime);
+ xml.tag("helpBrowser", config.helpBrowser);
+ xml.tag("extendedMidi", config.extendedMidi);
+ xml.tag("midiExportDivision", config.midiDivision);
+ xml.tag("guiDivision", config.guiDivision);
+ xml.tag("copyright", config.copyright);
+ xml.tag("smfFormat", config.smfFormat);
+ xml.tag("startMode", config.startMode);
+ if (!config.startProject.isEmpty())
+ xml.tag("startProject", config.startProject);
+ xml.tag("freewheelMode", config.useJackFreewheelMode);
+
+ for (int i = 0; i < QColorDialog::customCount(); ++i) {
+ char buffer[32];
+ snprintf(buffer, 32, "palette%d", i);
+ xml.tag(buffer, QColorDialog::customColor(i));
+ }
+
+ xml.tag("selectPartBg", config.selectPartBg);
+
+ static const char* colorNames[Track::TRACK_TYPES] = {
+ "outputTrackBg",
+ "groupTrackBg",
+ "waveTrackBg",
+ "inputTrackBg",
+ "synthTrackBg",
+ "midiTrackBg",
+ "midiOutputBg",
+ "midiInputBg",
+ "midiSyntiBg"
+ };
+ for (int i = 0; i < Track::TRACK_TYPES; ++i)
+ xml.tag(colorNames[i], config.trackBg[i]);
+
+ xml.tag("mtctype", AL::mtcType);
+
+ xml.stag("mtcoffset");
+ xml.put(QString("%1:%2:%3:%4:%5")
+ .arg(mtcOffset.h()).arg(mtcOffset.m()).arg(mtcOffset.s())
+ .arg(mtcOffset.f()).arg(mtcOffset.sf()));
+ xml.etag("mtcoffset");
+
+ xml.tag("extSync", extSyncFlag);
+ xml.tag("genMTCSync", genMTCSync);
+ xml.tag("genMCSync", genMCSync);
+ xml.tag("genMMC", genMMC);
+ xml.tag("acceptMTC", acceptMTC);
+ xml.tag("acceptMMC", acceptMMC);
+ xml.tag("acceptMC", acceptMC);
+
+ xml.tag("geometryTransport", config.geometryTransport);
+ xml.tag("geometryBigTime", config.geometryBigTime);
+ xml.tag("geometryPianoroll", config.geometryPianoroll);
+ xml.tag("geometryDrumedit", config.geometryDrumedit);
+
+ xml.tag("bigtimeVisible", config.bigTimeVisible);
+ xml.tag("transportVisible", config.transportVisible);
+
+ xml.tag("mixer1Visible", config.mixer1Visible);
+ xml.tag("mixer2Visible", config.mixer2Visible);
+
+ config.mixer1.write(xml, "mixer1");
+ config.mixer2.write(xml, "mixer2");
+
+ xml.tag("showSplashScreen", config.showSplashScreen);
+ xml.tag("canvasShowPartType", config.canvasShowPartType);
+ xml.tag("canvasShowPartEvent", config.canvasShowPartEvent);
+ xml.tag("canvasShowGrid", config.canvasShowGrid);
+ xml.tag("canvasUsePixmap", config.canvasUseBgPixmap);
+ xml.tag("canvasBgPixmap", config.canvasBgPixmap);
+
+ xml.tag("bigtimeForegroundcolor", config.bigTimeForegroundColor);
+ xml.tag("bigtimeBackgroundcolor", config.bigTimeBackgroundColor);
+
+ writeShortCuts(xml);
+ midiRCList.write(xml);
+ xml.tag("followMode", TimeCanvas::followMode);
+
+ xml.tag("defaultMidiInputDevice", config.defaultMidiInputDevice);
+ xml.tag("defaultMidiOutputDevice", config.defaultMidiOutputDevice);
+ xml.tag("defaultMidiInstrument", config.defaultMidiInstrument);
+ xml.tag("connectToAllMidiDevices", config.connectToAllMidiDevices);
+ xml.tag("connectToAllMidiTracks", config.connectToAllMidiTracks);
+ xml.tag("createDefaultMidiInput", config.createDefaultMidiInput);
+ xml.tag("projectPath", config.projectPath);
+ xml.tag("templatePath", config.templatePath);
+ xml.tag("instrumentPath", config.instrumentPath);
+ xml.tag("importMidiPath", config.importMidiPath);
+ xml.tag("importWavePath", config.importWavePath);
+
+ PianoRoll::writeConfiguration(xml);
+ DrumEdit::writeConfiguration(xml);
+ xml.etag("configuration");
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+// write song specific configuration
+//---------------------------------------------------------
+
+void MusE::writeConfiguration(Xml& xml) const
+ {
+ xml.stag("configuration");
+
+ xml.tag("mtctype", AL::mtcType);
+ xml.stag("mtcoffset");
+ xml.put(QString("%1:%2:%3:%4:%5")
+ .arg(mtcOffset.h()).arg(mtcOffset.m()).arg(mtcOffset.s())
+ .arg(mtcOffset.f()).arg(mtcOffset.sf()));
+ xml.etag("mtcoffset");
+ xml.tag("extSync", extSyncFlag);
+ xml.tag("genMTCSync", genMTCSync);
+ xml.tag("genMCSync", genMCSync);
+ xml.tag("genMMC", genMMC);
+ xml.tag("acceptMTC", acceptMTC);
+ xml.tag("acceptMMC", acceptMMC);
+ xml.tag("acceptMC", acceptMC);
+
+ xml.tag("bigtimeVisible", bt_id->isChecked());
+ xml.tag("transportVisible", tr_id->isChecked());
+
+ if (transport)
+ xml.tag("geometryTransport", transport);
+ if (bigtime)
+ xml.tag("geometryBigTime", bigtime);
+
+ xml.tag("mixer1Visible", aid1a->isChecked());
+ xml.tag("mixer2Visible", aid1b->isChecked());
+ if (mixer1)
+ mixer1->write(xml, "mixer1");
+ if (mixer2)
+ mixer2->write(xml, "mixer2");
+
+ xml.etag("configuration");
+ }
+
+//---------------------------------------------------------
+// configMidiSync
+//---------------------------------------------------------
+
+void MusE::configMidiSync()
+ {
+ if (!midiSyncConfig) {
+ midiSyncConfig = new MidiSyncConfig(this);
+ connect(midiSyncConfig, SIGNAL(syncChanged()), SLOT(syncChanged()));
+ }
+ midiSyncConfig->raise();
+ midiSyncConfig->show();
+ }
+
+//---------------------------------------------------------
+// syncChanged
+//---------------------------------------------------------
+
+void MusE::syncChanged()
+ {
+ transport->syncChanged();
+ }
+
+//---------------------------------------------------------
+// configMidiFile
+//---------------------------------------------------------
+
+void MusE::configMidiFile()
+ {
+ if (!midiFileConfig)
+ midiFileConfig = new MidiFileConfig();
+ midiFileConfig->updateValues();
+
+ if (midiFileConfig->isVisible()) {
+ midiFileConfig->raise();
+//TD midiFileConfig->setActiveWindow();
+ }
+ else
+ midiFileConfig->show();
+ }
+
+//---------------------------------------------------------
+// MidiFileConfig
+// config properties of exported midi files
+//---------------------------------------------------------
+
+MidiFileConfig::MidiFileConfig()
+ : ConfigMidiFileBase()
+ {
+ setupUi(this);
+ connect(buttonOk, SIGNAL(clicked()), SLOT(okClicked()));
+ connect(buttonCancel, SIGNAL(clicked()), SLOT(cancelClicked()));
+ }
+
+//---------------------------------------------------------
+// updateValues
+//---------------------------------------------------------
+
+void MidiFileConfig::updateValues()
+ {
+ int divisionIdx = 2;
+ switch(config.midiDivision) {
+ case 96: divisionIdx = 0; break;
+ case 192: divisionIdx = 1; break;
+ case 384: divisionIdx = 2; break;
+ }
+ divisionCombo->setCurrentIndex(divisionIdx);
+ formatCombo->setCurrentIndex(config.smfFormat);
+ extendedFormat->setChecked(config.extendedMidi);
+ copyrightEdit->setText(config.copyright);
+ }
+
+//---------------------------------------------------------
+// okClicked
+//---------------------------------------------------------
+
+void MidiFileConfig::okClicked()
+ {
+ int divisionIdx = divisionCombo->currentIndex();
+
+ int divisions[3] = { 96, 192, 384 };
+ if (divisionIdx >= 0 && divisionIdx < 3)
+ config.midiDivision = divisions[divisionIdx];
+ config.extendedMidi = extendedFormat->isChecked();
+ config.smfFormat = formatCombo->currentIndex();
+ config.copyright = copyrightEdit->text();
+
+ muse->changeConfig(true); // write config file
+ close();
+ }
+
+//---------------------------------------------------------
+// cancelClicked
+//---------------------------------------------------------
+
+void MidiFileConfig::cancelClicked()
+ {
+ close();
+ }
+
+//---------------------------------------------------------
+// configGlobalSettings
+//---------------------------------------------------------
+
+//void MusE::configGlobalSettings()
+// {
+// if (!globalSettingsConfig)
+// globalSettingsConfig = new GlobalSettingsConfig();
+//
+// if (globalSettingsConfig->isVisible()) {
+// globalSettingsConfig->raise();
+////TD globalSettingsConfig->setActiveWindow();
+// }
+// else
+// globalSettingsConfig->show();
+// }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MixerConfig::write(Xml& xml, const char* name)
+ {
+ xml.stag(QString(name));
+ xml.tag("geometry", geometry);
+ xml.tag("showMidiTracks", showMidiTracks);
+ xml.tag("showMidiSyntiPorts", showMidiSyntiPorts);
+ xml.tag("showMidiTracks", showMidiTracks);
+ xml.tag("showOutputTracks", showOutputTracks);
+ xml.tag("showWaveTracks", showWaveTracks);
+ xml.tag("showGroupTracks", showGroupTracks);
+ xml.tag("showInputTracks", showInputTracks);
+ xml.tag("showAuxTracks", showAuxTracks);
+ xml.tag("showSyntiTracks", showSyntiTracks);
+ xml.tag("showMidiInPorts", showMidiInPorts);
+ xml.tag("showMidiOutPorts", showMidiOutPorts);
+ xml.etag(name);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MixerConfig::read(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "geometry")
+ geometry = AL::readGeometry(node);
+ else if (tag == "showMidiTracks")
+ showMidiTracks = i;
+ else if (tag == "showMidiSyntiPorts")
+ showMidiSyntiPorts = i;
+ else if (tag == "showOutputTracks")
+ showOutputTracks = i;
+ else if (tag == "showWaveTracks")
+ showWaveTracks = i;
+ else if (tag == "showGroupTracks")
+ showGroupTracks = i;
+ else if (tag == "showInputTracks")
+ showInputTracks = i;
+ else if (tag == "showAuxTracks")
+ showAuxTracks = i;
+ else if (tag == "showSyntiTracks")
+ showSyntiTracks = i;
+ else if (tag == "showMidiInPorts")
+ showMidiInPorts = i;
+ else if (tag == "showMidiOutPorts")
+ showMidiOutPorts = i;
+ else
+ printf("MusE:MixerConfig: unknown tag %s\n", e.tagName().toAscii().data());
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/conf.h b/muse_qt4_evolution/muse/conf.h
new file mode 100644
index 00000000..b026c080
--- /dev/null
+++ b/muse_qt4_evolution/muse/conf.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CONF_H__
+#define __CONF_H__
+
+#include "ui_configmidifile.h"
+
+//---------------------------------------------------------
+// MidiFileConfig
+// config properties of exported midi files
+//---------------------------------------------------------
+
+class MidiFileConfig : public QDialog, public Ui::ConfigMidiFileBase {
+ Q_OBJECT
+
+ private slots:
+ void okClicked();
+ void cancelClicked();
+
+ public:
+ MidiFileConfig();
+ void updateValues();
+ };
+
+extern bool readConfiguration();
+extern void readConfiguration(QDomNode);
+#endif
+
diff --git a/muse_qt4_evolution/muse/configmidifile.ui b/muse_qt4_evolution/muse/configmidifile.ui
new file mode 100644
index 00000000..ca96f3f5
--- /dev/null
+++ b/muse_qt4_evolution/muse/configmidifile.ui
@@ -0,0 +1,153 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ConfigMidiFileBase</class>
+ <widget class="QDialog" name="ConfigMidiFileBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>541</width>
+ <height>280</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Config Midi File Export</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="4" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonCancel" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="formatCombo" >
+ <item>
+ <property name="text" >
+ <string>0 (single track)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>1 (multiple tracks)</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabel3" >
+ <property name="text" >
+ <string>Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="divisionCombo" >
+ <item>
+ <property name="text" >
+ <string>96</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>192</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>384</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="textLabel1" >
+ <property name="text" >
+ <string>Division:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="textLabel2" >
+ <property name="text" >
+ <string>Copyright:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLineEdit" name="copyrightEdit" />
+ </item>
+ <item row="3" column="0" colspan="2" >
+ <widget class="QCheckBox" name="extendedFormat" >
+ <property name="text" >
+ <string>Enable extended smf format</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/configtrack.cpp b/muse_qt4_evolution/muse/configtrack.cpp
new file mode 100644
index 00000000..a8fee6a3
--- /dev/null
+++ b/muse_qt4_evolution/muse/configtrack.cpp
@@ -0,0 +1,265 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "configtrack.h"
+#include "trelement.h"
+#include "arranger.h"
+
+//---------------------------------------------------------
+// ConfigTrackList
+//---------------------------------------------------------
+
+ConfigTrackList::ConfigTrackList(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ // does not work:
+ configuredList->setSelectionMode(QAbstractItemView::SingleSelection);
+ availableList->setSelectionMode(QAbstractItemView::SingleSelection);
+
+ up->setEnabled(false);
+ down->setEnabled(false);
+ addItem->setEnabled(false);
+ removeItem->setEnabled(false);
+ dirty = false;
+ curType = 0;
+ init();
+
+ connect(trackType, SIGNAL(activated(int)), SLOT(trackTypeChanged(int)));
+ connect(availableList, SIGNAL(itemSelectionChanged()), SLOT(availableSelected()));
+ connect(configuredList, SIGNAL(itemSelectionChanged()), SLOT(configuredSelected()));
+ connect(up, SIGNAL(clicked()), SLOT(upClicked()));
+ connect(down, SIGNAL(clicked()), SLOT(downClicked()));
+ connect(addItem, SIGNAL(clicked()), SLOT(addItemClicked()));
+ connect(removeItem, SIGNAL(clicked()), SLOT(removeItemClicked()));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void ConfigTrackList::init()
+ {
+ trackType->clear();
+ for (int tt = 0; tt < Track::TRACK_TYPES; ++tt) {
+ list[tt] = glist[tt];
+ trackType->addItem(Track::_clname[tt]);
+ }
+ trackTypeChanged(curType);
+ }
+
+//---------------------------------------------------------
+// done
+//---------------------------------------------------------
+
+void ConfigTrackList::done(int code)
+ {
+ if (code) {
+ // OK pressed
+ if (dirty)
+ saveTrackType();
+ for (int tt = 0; tt < Track::TRACK_TYPES; ++tt)
+ glist[tt] = list[tt];
+ emit trackConfigChanged();
+ }
+ else {
+ dirty = false;
+ init();
+ }
+ QDialog::done(code);
+ }
+
+//---------------------------------------------------------
+// saveTrackType
+//---------------------------------------------------------
+
+void ConfigTrackList::saveTrackType()
+ {
+ dirty = false;
+ list[curType].clear();
+ int gn = 0;
+ TrElementList group;
+ int n = configuredList->count();
+ for (int i = 0; i < n; ++i) {
+ QString s = configuredList->item(i)->text();
+ int k;
+ for (k = 0; k < nTrElements; ++k)
+ if (trElements[k].name == s)
+ break;
+ if (trElements[k].grp != gn) {
+ list[curType].push_back(group);
+ group.clear();
+ gn = trElements[k].grp;
+ }
+ group.push_back(&trElements[k]);
+ }
+ if (!group.empty())
+ list[curType].push_back(group);
+ }
+
+//---------------------------------------------------------
+// trackTypeChanged
+//---------------------------------------------------------
+
+void ConfigTrackList::trackTypeChanged(int type)
+ {
+ curType = type;
+ if (dirty)
+ saveTrackType();
+
+ configuredList->clear();
+ TrGroupList& gl = list[type];
+ for (iTrGroup i = gl.begin(); i != gl.end(); ++i) {
+ for (iTrElement k = i->begin(); k != i->end(); ++k)
+ configuredList->addItem((*k)->name);
+ }
+
+ availableList->clear();
+ for (int i = 0; i < nTrElements; ++i) {
+ QString name(trElements[i].name);
+ bool f = false;
+
+ // is gui element available for this track type?
+
+ for (int i = 0; i < nTrElements; ++i) {
+ const TrElement& el = trElements[i];
+ if (el.name == name) {
+ if (el.trackMask & (1 << type)) {
+ f = true;
+ break;
+ }
+ }
+ }
+ if (!f)
+ continue;
+
+ // is gui element already configured?
+
+ for (iTrGroup i = gl.begin(); i != gl.end(); ++i) {
+ for (iTrElement k = i->begin(); k != i->end(); ++k) {
+ if (name == (*k)->name) {
+ f = false;
+ break;
+ }
+ }
+ if (!f)
+ break;
+ }
+ if (f) {
+ availableList->addItem(name);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// configuredSelected
+//---------------------------------------------------------
+
+void ConfigTrackList::configuredSelected()
+ {
+ QListWidgetItem* item = configuredList->selectedItems().at(0);
+ up->setEnabled(item != 0);
+ down->setEnabled(item != 0);
+ removeItem->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// availableSelected
+//---------------------------------------------------------
+
+void ConfigTrackList::availableSelected()
+ {
+ QListWidgetItem* item = availableList->selectedItems().at(0);
+ addItem->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// upClicked
+//---------------------------------------------------------
+
+void ConfigTrackList::upClicked()
+ {
+ QListWidgetItem* item = configuredList->selectedItems().at(0);
+ int n = configuredList->row(item);
+ if (n <= 0)
+ return;
+ QString s = item->text();
+ delete item;
+ configuredList->insertItem(n-1, s);
+ configuredList->setItemSelected(configuredList->item(n-1), true);
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// downClicked
+//---------------------------------------------------------
+
+void ConfigTrackList::downClicked()
+ {
+ QListWidgetItem* item = configuredList->selectedItems().at(0);
+ int n = configuredList->row(item);
+ if (n >= int(configuredList->count()-1))
+ return;
+ QString s = item->text();
+
+ delete item;
+ configuredList->insertItem(n+1, s);
+ configuredList->setItemSelected(configuredList->item(n+1), true);
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// addItemClicked
+//---------------------------------------------------------
+
+void ConfigTrackList::addItemClicked()
+ {
+ QListWidgetItem* item = availableList->selectedItems().at(0);
+ if (item == 0)
+ return;
+ QString s = item->text();
+ delete item;
+ configuredList->addItem(s);
+ configuredList->setItemSelected(configuredList->item(configuredList->count()-1), true);
+ QListWidgetItem* ci = availableList->currentItem();
+ if (ci)
+ availableList->setItemSelected(ci, true);
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// removeItemClicked
+//---------------------------------------------------------
+
+void ConfigTrackList::removeItemClicked()
+ {
+ QListWidgetItem* item = configuredList->selectedItems().at(0);
+ if (item == 0)
+ return;
+ QString s = item->text();
+ delete item;
+ availableList->addItem(s);
+ availableList->setItemSelected(availableList->item(availableList->count()-1), true);
+ QListWidgetItem* ci = configuredList->item(configuredList->currentRow());
+ if (ci)
+ configuredList->setItemSelected(ci, true);
+ dirty = true;
+ }
+
diff --git a/muse_qt4_evolution/muse/configtrack.h b/muse_qt4_evolution/muse/configtrack.h
new file mode 100644
index 00000000..47dd0f4a
--- /dev/null
+++ b/muse_qt4_evolution/muse/configtrack.h
@@ -0,0 +1,61 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CONFIG_TRACK_H__
+#define __CONFIG_TRACK_H__
+
+#include "ui_configtrack.h"
+#include "track.h"
+#include "trelement.h"
+
+struct TrElement;
+class TrGroupList;
+
+//---------------------------------------------------------
+// ConfigTrackList
+//---------------------------------------------------------
+
+class ConfigTrackList : public QDialog, Ui::ConfigTrackListBase {
+ Q_OBJECT
+
+ TrGroupList list[Track::TRACK_TYPES];
+ void init();
+ bool dirty;
+ void saveTrackType();
+ int curType;
+
+ private slots:
+ void trackTypeChanged(int);
+ void availableSelected();
+ void configuredSelected();
+ void upClicked();
+ void downClicked();
+ void addItemClicked();
+ void removeItemClicked();
+ virtual void done(int);
+
+ signals:
+ void trackConfigChanged();
+
+ public:
+ ConfigTrackList(QWidget*);
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/configtrack.ui b/muse_qt4_evolution/muse/configtrack.ui
new file mode 100644
index 00000000..350b405a
--- /dev/null
+++ b/muse_qt4_evolution/muse/configtrack.ui
@@ -0,0 +1,299 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ConfigTrackListBase</class>
+ <widget class="QDialog" name="ConfigTrackListBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>545</width>
+ <height>352</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Config Track List</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1" >
+ <property name="text" >
+ <string>Track Type:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="trackType" />
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2" >
+ <property name="text" >
+ <string>Available Items:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="availableList" >
+ <property name="selectionBehavior" >
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="modelColumn" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="addItem" >
+ <property name="text" >
+ <string>Add</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeItem" >
+ <property name="text" >
+ <string>Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="up" >
+ <property name="text" >
+ <string>Up</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="down" >
+ <property name="text" >
+ <string>Down</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel3" >
+ <property name="text" >
+ <string>Configured Items</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="configuredList" >
+ <property name="selectionBehavior" >
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="ok" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancel" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>ok</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigTrackListBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>393</x>
+ <y>321</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>259</x>
+ <y>326</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancel</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigTrackListBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>484</x>
+ <y>327</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>437</x>
+ <y>283</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/ctrl.cpp b/muse_qt4_evolution/muse/ctrl.cpp
new file mode 100644
index 00000000..82e8efef
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl.cpp
@@ -0,0 +1,450 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fastlog.h"
+#include "globals.h"
+#include "ctrl.h"
+#include "al/xml.h"
+#include "midictrl.h"
+
+//---------------------------------------------------------
+// Ctrl
+//---------------------------------------------------------
+
+Ctrl::Ctrl(int id, const QString& s, int t)
+ : _id(id), _name(s), _type(t)
+ {
+ setRange(.0f, 1.f);
+ _default.f = 0.0f;
+ _curVal.f = 0.0f;
+ _touched = false;
+ _changed = false;
+ _moveWithPart = false;
+ }
+
+Ctrl::Ctrl(int id, const QString& s, int t, float a, float b)
+ : _id(id), _name(s), _type(t)
+ {
+ if (_type & INT)
+ setRange(int(a), int(b));
+ else
+ setRange(a, b);
+ _default.f = 0.0f;
+ _curVal.f = 0.0f;
+ _touched = false;
+ _changed = false;
+ _moveWithPart = false;
+ }
+
+Ctrl::Ctrl()
+ {
+ _type = INTERPOLATE;
+ setRange(0.0f, 1.0f);
+ _id = 0;
+ _default.f = 0.0f;
+ _curVal.f = 0.0f;
+ _touched = false;
+ _changed = false;
+ _moveWithPart = false;
+ }
+
+Ctrl::Ctrl(const MidiController* mc)
+ {
+ _type = DISCRETE | INT;
+ setRange(mc->minVal(), mc->maxVal());
+ _id = mc->num();
+ _default.i = mc->initVal();
+ _curVal.i = CTRL_VAL_UNKNOWN;
+ _name = mc->name();
+ _touched = false;
+ _changed = false;
+ _moveWithPart = false;
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+CVal Ctrl::value(unsigned time)
+ {
+ CVal rv;
+
+ if (empty() || _touched)
+ return _curVal;
+ if (_type & DISCRETE) {
+ //
+ // midi controller
+ //
+ ciCtrlVal i = upperBound(time);
+ if (i == end()) {
+ --i;
+ rv = i.value();
+ }
+ else if (i == begin()) {
+ if (i.key() == time)
+ rv = i.value();
+ else
+ return _curVal;
+ }
+ else {
+ --i;
+ rv = i.value();
+ }
+ }
+ else {
+ //
+ // linear interpolated audio
+ // controller
+ //
+ ciCtrlVal i = upperBound(time);
+ if (i == end()) {
+ --i;
+ rv = i.value();
+ }
+ else {
+ int frame2 = i.key();
+ CVal val2 = i.value();
+ int frame1;
+ CVal val1;
+ if (i == begin()) {
+ rv = val2;
+ }
+ else {
+ --i;
+ frame1 = i.key();
+ val1 = i.value();
+ time -= frame1;
+ frame2 -= frame1;
+ if (_type & INT) {
+ val2.i -= val1.i;
+ rv.i = val1.i + (time * val2.i)/frame2;
+ }
+ else {
+ val2.f -= val1.f;
+ rv.f = val1.f + (time * val2.f)/frame2;
+ }
+ }
+ }
+ }
+ if (_type & LOG) {
+ if (rv.f <= -1000.0f)
+ rv.f = 0.0f;
+ else
+ rv.f = pow(10.0f, rv.f);
+ }
+ return rv;
+ }
+
+//---------------------------------------------------------
+// add
+// return true if new value added
+//---------------------------------------------------------
+
+bool Ctrl::add(unsigned frame, CVal val)
+ {
+ if (_type & LOG) {
+ if (val.f <= 0.0)
+ val.f = -1001.0f;
+ else
+ val.f = log10(val.f);
+ }
+ bool rv = find(frame) == end();
+ insert(frame, val);
+ return rv;
+ }
+
+//---------------------------------------------------------
+// del
+//---------------------------------------------------------
+
+void Ctrl::del(unsigned frame)
+ {
+ iCtrlVal e = find(frame);
+ erase(e);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Ctrl::read(QDomNode node, bool)
+ {
+ QDomElement e = node.toElement();
+ _id = e.attribute("id").toInt();
+ _name = e.attribute("name");
+ _type = e.attribute("type","0").toInt();
+
+ const char* minS = "0.0f";
+ const char* maxS = "1.0f";
+
+ if (_type & INT) {
+ minS = "0";
+ maxS = "127";
+ _curVal.i = e.attribute("cur","-1").toInt();
+ _default.i = e.attribute("default","-1").toInt();
+ }
+ else {
+ if (_id == AC_PAN) {
+ minS = "-1.0f";
+ maxS = "+1.0f";
+ }
+ _curVal.f = e.attribute("cur","0.0").toFloat();
+ _default.f = e.attribute("default","0.0").toFloat();
+ }
+ setCurVal(_curVal);
+ if (_type & INT) {
+ min.i = e.attribute("min", minS).toInt();
+ max.i = e.attribute("max", maxS).toInt();
+ }
+ else {
+ min.f = e.attribute("min", minS).toFloat();
+ max.f = e.attribute("max", maxS).toFloat();
+ }
+
+ QStringList vp = e.text().simplified().split(",", QString::SkipEmptyParts);
+ int n = vp.size();
+ for (int i = 0; i < n; ++i) {
+ QStringList sl = vp.at(i).simplified().split(" ");
+ bool ok;
+ int frame = sl.at(0).toInt(&ok, 0);
+ if (!ok) {
+ printf("Ctrl::read(1): conversion <%s><%s> to int failed\n",
+ vp.at(i).simplified().toAscii().data(),
+ sl.at(0).toAscii().data());
+ break;
+ }
+ CVal val;
+ if (_type & INT)
+ val.i = sl.at(1).toInt(&ok, 0);
+ else
+ val.f = sl.at(1).toDouble(&ok);
+ if (!ok) {
+ printf("Ctrl::read(2): conversion <%s><%s> failed\n",
+ vp.at(i).simplified().toAscii().data(),
+ sl.at(1).toAscii().data());
+ break;
+ }
+ add(frame, val);
+ }
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void CtrlList::add(Ctrl* vl)
+ {
+ insert(std::pair<const int, Ctrl*>(vl->id(), vl));
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Ctrl::write(Xml& xml)
+ {
+ QString s("controller id=\"%1\" name=\"%2\" cur=\"%3\" type=\"%4\" min=\"%5\" max=\"%6\" default=\"%7\"");
+
+ QString cn = Xml::xmlString(_name);
+
+ if (empty()) {
+ if (_type & INT)
+ xml.tagE(s.arg(id()).arg(cn).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data());
+ else
+ xml.tagE(s.arg(id()).arg(cn).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data());
+ return;
+ }
+ if (_type & INT)
+ xml.stag(s.arg(id()).arg(cn).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data());
+ else
+ xml.stag(s.arg(id()).arg(cn).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data());
+
+ int i = 0;
+ for (ciCtrlVal ic = begin(); ic != end(); ++ic) {
+ if (i == 0)
+ xml.putLevel();
+ int time = ic.key();
+ CVal val = ic.value();
+ if (_type & LOG)
+ val.f = (val.f <= -1000.0) ? 0.0f : pow(10.0f, val.f);
+ if (_type & INT) {
+ xml << time << ' ' << val.i << ',';
+ }
+ else
+ xml << time << ' ' << val.f << ',';
+ ++i;
+ if (i >= 4) {
+ xml << endl;
+ i = 0;
+ }
+ }
+ if (i)
+ xml << endl;
+ xml.etag("controller");
+ }
+
+//---------------------------------------------------------
+// val2pixelR
+// input val is "raw" data
+//---------------------------------------------------------
+
+int Ctrl::val2pixelR(CVal val, int maxpixel)
+ {
+ maxpixel -= 1;
+ if (_type & INT)
+ return maxpixel - ((maxpixel * (val.i - min.i) + (max.i-min.i)/2) / (max.i - min.i));
+ else {
+ if ((_type & LOG) && (val.f <= -1000.0f))
+ return maxpixel;
+ int pixel = maxpixel - lrint(double(maxpixel) * (val.f - min.f) / (max.f-min.f));
+ if (pixel < 0) {
+ printf("%d - lrint(double(%d) * (%f - %f)/(%f-%f)\n",
+ maxpixel, maxpixel, val.f, min.f, max.f, min.f);
+ printf(" %f/%f = %f\n",
+ val.f-min.f, max.f-min.f, (val.f-min.f)/(max.f-min.f));
+ }
+ return pixel;
+// return maxpixel - lrint(double(maxpixel) * (val.f - min.f) / (max.f-min.f));
+ }
+ }
+
+int Ctrl::val2pixelR(int val, int maxpixel)
+ {
+ maxpixel -= 1;
+ int range = max.i - min.i;
+ return maxpixel - ((maxpixel * (val - min.i) + range / 2) / range);
+ }
+
+//---------------------------------------------------------
+// cur2pixel
+//---------------------------------------------------------
+
+int Ctrl::cur2pixel(int maxpixel)
+ {
+#if 0
+ return val2pixelR(_curVal, maxpixel);
+#else
+ maxpixel -= 1;
+
+ if (_type & INT)
+ return maxpixel - ((maxpixel * (_curVal.i - min.i) + (max.i-min.i)/2) / (max.i - min.i));
+ float f = _curVal.f;
+ if (_type & LOG) {
+ if (f <= 0.0)
+ return maxpixel;
+ else
+ f = fast_log10(f);
+ }
+ return maxpixel - lrint(double(maxpixel) * (f - min.f) / (max.f-min.f));
+#endif
+ }
+
+//---------------------------------------------------------
+// pixel2val
+//---------------------------------------------------------
+
+CVal Ctrl::pixel2val(int pixel, int maxpixel)
+ {
+ maxpixel -= 1;
+ pixel = maxpixel - pixel;
+
+// printf("pixel2val %d(%d) int %d, min %d, max %d\n",
+// pixel, maxpixel, _type & INT, min.i, max.i);
+ CVal rv;
+ if (_type & INT) {
+ rv.i = (pixel * (max.i - min.i) + (maxpixel+min.i)/2) / maxpixel + min.i;
+ if (rv.i < min.i)
+ rv.i = min.i;
+ else if (rv.i > max.i)
+ rv.i = max.i;
+ }
+ else {
+ rv.f = double(pixel) * (max.f - min.f) / double(maxpixel) + min.f;
+ if (rv.f < min.f)
+ rv.f = min.f;
+ else if (rv.f > max.f)
+ rv.f = max.f;
+ if (_type & LOG)
+ rv.f = pow(10.0f, rv.f);
+ }
+ return rv;
+ }
+
+//---------------------------------------------------------
+// pixel2valR
+//---------------------------------------------------------
+
+CVal Ctrl::pixel2valR(int pixel, int maxpixel)
+ {
+ maxpixel -= 1;
+ pixel = maxpixel - pixel;
+
+// printf("pixel2val %d(%d) int %d, min %d, max %d\n",
+// pixel, maxpixel, _type & INT, min.i, max.i);
+ CVal rv;
+ if (_type & INT) {
+ rv.i = (pixel * (max.i - min.i) + (maxpixel+min.i)/2) / maxpixel + min.i;
+ if (rv.i < min.i)
+ rv.i = min.i;
+ else if (rv.i > max.i)
+ rv.i = max.i;
+ }
+ else {
+ rv.f = double(pixel) * (max.f - min.f) / double(maxpixel) + min.f;
+ if (rv.f < min.f)
+ rv.f = min.f;
+ else if (rv.f > max.f)
+ rv.f = max.f;
+ }
+ return rv;
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void Ctrl::setRange(double _min, double _max)
+ {
+ if (_type & LOG) {
+ min.f = log10(_min);
+ max.f = log10(_max);
+ }
+ else {
+ min.f = _min;
+ max.f = _max;
+ }
+ }
+
+void Ctrl::setRange(int _min, int _max)
+ {
+ min.i = _min;
+ max.i = _max;
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void Ctrl::setRange(CVal mi, CVal ma)
+ {
+ min = mi;
+ max = ma;
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl.h b/muse_qt4_evolution/muse/ctrl.h
new file mode 100644
index 00000000..eccd17c0
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl.h
@@ -0,0 +1,236 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRL_H__
+#define __CTRL_H__
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class MidiController;
+
+//
+// predefined audio controller id's:
+//
+const int NUM_AUX = 32; // max number of aux channels
+
+const int AC_VOLUME = 0;
+const int AC_PAN = 1;
+const int AC_MUTE = 2;
+const int AC_AUX = 3; // 3 -- 3+NUM_AUX
+const int AC_AUX_PAN = AC_AUX + NUM_AUX;
+
+const int CTRL_PLUGIN_MASK = 0x3ff0000;
+const int CTRL_PLUGIN_OFFSET = 0x10000;
+const int CTRL_INDEX_MASK = 0xffff;
+const int CTRL_PREFADER = 0x40000000;
+
+//---------------------------------------------------------
+// genACnum
+// create a controller number out of plugin index,
+// controller index and prefader flag
+//---------------------------------------------------------
+
+inline static int genACnum(int plugin, int ctrl, bool prefader) {
+ int pre = prefader ? CTRL_PREFADER : 0;
+ return pre | ((plugin+1) * CTRL_PLUGIN_OFFSET + ctrl);
+ }
+
+//---------------------------------------------------------
+// getCtrlPlugin
+// destill plugin index, controller index and prefader
+// flag from controller id
+//---------------------------------------------------------
+
+inline static void getCtrlPlugin(int id, bool* prefader, int* pluginIndex,
+ int* ctrlIndex) {
+ *prefader = (id & CTRL_PREFADER) ? true : false;
+ *pluginIndex = ((id & CTRL_PLUGIN_MASK) / CTRL_PLUGIN_OFFSET) - 1;
+ *ctrlIndex = id & CTRL_INDEX_MASK;
+ }
+
+//---------------------------------------------------------
+// ControllerName
+//---------------------------------------------------------
+
+struct ControllerName {
+ QString name;
+ int id;
+ ControllerName(const QString& s, int i) : name(s), id(i) {}
+ };
+
+typedef std::vector<ControllerName> ControllerNameList;
+typedef ControllerNameList::iterator iControllerName;
+typedef ControllerNameList::const_iterator ciControllerName;
+
+//---------------------------------------------------------
+// CVal
+// Controller value, either float for audio or
+// int for midi.
+//
+//---------------------------------------------------------
+
+struct CVal {
+ union {
+ float f;
+ int i;
+ };
+ };
+
+//---------------------------------------------------------
+// CtrlVal
+// This structure represents a controller event. Time
+// is a midi tick value or a frame value depending on
+// then containing controller list Ctrl
+//---------------------------------------------------------
+
+struct CtrlVal {
+ int time;
+ CVal val;
+ CtrlVal(int f, CVal v) {
+ time = f;
+ val = v;
+ }
+ CtrlVal(int f) {
+ time = f;
+ }
+ };
+
+//---------------------------------------------------------
+// CtrlRecVal
+// recorded controller event, mixer automation
+//---------------------------------------------------------
+
+struct CtrlRecVal : public CtrlVal {
+ int id;
+ int type; // 0 - ctrlVal, 1 - start, 2 - end
+ CtrlRecVal(int f, int n, CVal v) : CtrlVal(f, v), id(n), type(0) {}
+ CtrlRecVal(int f, int n, int t) : CtrlVal(f), id(n), type(t) {}
+ };
+
+//---------------------------------------------------------
+// CtrlRecList
+//---------------------------------------------------------
+
+class CtrlRecList : public std::list<CtrlRecVal> {
+ public:
+ };
+
+typedef CtrlRecList::iterator iCtrlRec;
+
+typedef QMap<unsigned, CVal> CTRL;
+typedef CTRL::iterator iCtrlVal;
+typedef CTRL::const_iterator ciCtrlVal;
+
+//---------------------------------------------------------
+// Ctrl
+// this is a controller list
+//
+// CtrlType == LOG
+// values are internally represented as log10(value)
+//---------------------------------------------------------
+
+class Ctrl : public CTRL {
+ public:
+ enum CtrlType {
+ INTERPOLATE = 0, // values are linear interpolated
+ DISCRETE = 1, // midi controller events
+ LINEAR = 0,
+ LOG = 2,
+ INT = 4
+ };
+
+ private:
+ int _id;
+ QString _name;
+ int _type; // bitmask of CtrlType
+ CVal _default;
+ CVal _curVal; // used to optimize controller events
+ CVal min, max;
+ bool _changed;
+ bool _touched;
+ bool _moveWithPart;
+
+ public:
+ Ctrl();
+ Ctrl(const MidiController*);
+ Ctrl(int id, const QString& name, int t=INTERPOLATE);
+ Ctrl(int id, const QString& name, int t, float a, float b);
+ int type() const { return _type; }
+ void setType(int t) { _type = t; }
+
+ const CVal& getDefault() const { return _default; }
+ void setDefault(float val) { _default.f = val; }
+ void setDefault(CVal val) { _default = val; }
+ void setDefault(int val) { _default.i = val; }
+
+ const CVal& curVal() const { return _curVal; }
+ void setCurVal(CVal v) { _curVal = v; _changed = true; }
+ void setCurVal(float v) { _curVal.f = v; _changed = true; }
+ void setCurVal(int v) { _curVal.i = v; _changed = true; }
+
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ QString name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ CVal value(unsigned);
+ bool add(unsigned, CVal);
+ void del(unsigned);
+ void setChanged(bool val) { _changed = val; }
+ bool changed() const { return _changed; }
+ void setTouched(bool val) { _touched = val; }
+ bool touched() const { return _touched; }
+ void setRange(double min, double max);
+ void setRange(int min, int max);
+ void setRange(CVal, CVal);
+ CVal minVal() const { return min; }
+ CVal maxVal() const { return max; }
+ bool moveWithPart() const { return _moveWithPart; }
+ void setMoveWithPart(bool v) { _moveWithPart = v; }
+
+ void read(QDomNode node, bool midi);
+ void write(Xml&);
+ int val2pixelR(CVal, int maxpixel);
+ int cur2pixel(int maxpixel);
+ int val2pixelR(int, int maxpixel);
+ CVal pixel2val(int pixel, int maxpixel);
+ CVal pixel2valR(int pixel, int maxpixel);
+ };
+
+//---------------------------------------------------------
+// CtrlList
+// List of controller value lists.
+// This list represents the controller state of a
+// mixer strip
+//---------------------------------------------------------
+
+typedef std::map<unsigned, Ctrl*, std::less<unsigned> > CLIST;
+typedef CLIST::iterator iCtrl;
+typedef CLIST::const_iterator ciCtrl;
+
+class CtrlList : public CLIST {
+ public:
+ void add(Ctrl* vl);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/ctrl/CMakeLists.txt b/muse_qt4_evolution/muse/ctrl/CMakeLists.txt
new file mode 100644
index 00000000..0bdb5be6
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/CMakeLists.txt
@@ -0,0 +1,46 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP (ctrl_mocs
+ configmidictrl.h
+ definemidictrl.h
+ ctrldialog.h
+ ctrledit.h
+ )
+
+QT4_WRAP_UI (ctrl_ui_headers
+ configmidictrl.ui
+ definemidictrl.ui
+ ctrldialog.ui
+ )
+
+add_library ( ctrl STATIC
+ configmidictrl.cpp
+ definemidictrl.cpp
+ ctrldialog.cpp
+ ctrleditor.cpp
+ ctrledit.cpp
+ ${ctrl_mocs}
+ ${ctrl_ui_headers}
+ )
+set_target_properties( ctrl
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/ctrl/configmidictrl.cpp b/muse_qt4_evolution/muse/ctrl/configmidictrl.cpp
new file mode 100644
index 00000000..395518a8
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/configmidictrl.cpp
@@ -0,0 +1,202 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "configmidictrl.h"
+#include "definemidictrl.h"
+#include "miditrack.h"
+#include "midioutport.h"
+#include "midictrl.h"
+#include "midiout.h"
+#include "instruments/minstrument.h"
+
+//---------------------------------------------------------
+// ConfigMidiCtrl
+//---------------------------------------------------------
+
+ConfigMidiCtrl::ConfigMidiCtrl(MidiTrack* t)
+ {
+ setupUi(this);
+ track = t;
+
+ //---------------------------------------------------
+ // populate list of managed controllers
+ //---------------------------------------------------
+
+ ControllerNameList* cn = track->controllerNames();
+ for (iControllerName i = cn->begin(); i != cn->end(); ++i)
+ managedController->addItem(i->name);
+
+ //---------------------------------------------------
+ // populate list of available controllers
+ //---------------------------------------------------
+
+ if (track->type() == Track::MIDI) {
+ MidiTrack* mc = (MidiTrack*)track;
+ portName->setText(track->name());
+ instrumentName->setText(mc->instrument()->iname());
+ //
+ // populate popup with all controllers available for
+ // current instrument
+ //
+ MidiControllerList* mcl = mc->instrument()->controller();
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci) {
+ iControllerName i;
+ for (i = cn->begin(); i != cn->end(); ++i) {
+ if (i->name == (*ci)->name())
+ break;
+ }
+ if (i == cn->end())
+ availableController->addItem((*ci)->name());
+ }
+ }
+
+ delete cn;
+ buttonAdd->setEnabled(false);
+ buttonRemove->setEnabled(false);
+
+ connect(buttonAdd, SIGNAL(clicked()), SLOT(addClicked()));
+ connect(buttonRemove, SIGNAL(clicked()), SLOT(removeClicked()));
+ connect(availableController, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(availableSelected(QListWidgetItem*)));
+ connect(managedController, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(managedSelected(QListWidgetItem*)));
+ connect(defineButton, SIGNAL(clicked()), SLOT(defineClicked()));
+ }
+
+//---------------------------------------------------------
+// addClicked
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::addClicked()
+ {
+ QListWidgetItem* n = availableController->currentItem();
+ if (n == 0)
+ return;
+ QString s(n->text());
+ for (int i = 0; i < managedController->count(); ++i) {
+ if (s == managedController->item(i)->text())
+ return;
+ }
+ managedController->addItem(s);
+ managedController->setCurrentItem(managedController->item(managedController->count()-1));
+ delete n;
+ buttonAdd->setEnabled(false);
+ }
+
+//---------------------------------------------------------
+// removeClicked
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::removeClicked()
+ {
+ QListWidgetItem* n = managedController->currentItem();
+ if (n == 0)
+ return;
+ availableController->addItem(n->text());
+ delete n;
+ buttonRemove->setEnabled(false);
+ }
+
+//---------------------------------------------------------
+// availableSelected
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::availableSelected(QListWidgetItem* item)
+ {
+ buttonAdd->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// managedSelected
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::managedSelected(QListWidgetItem* item)
+ {
+ buttonRemove->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// done
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::done(int code)
+ {
+ if (!code) {
+ QDialog::done(code);
+ return;
+ }
+ if (track->type() == Track::MIDI) {
+ ControllerNameList* cn = track->controllerNames();
+ MidiInstrument* instr = track->instrument();
+ MidiControllerList* mcl = instr->controller();
+
+ //
+ // search for new, added controller
+ //
+ int n = managedController->count();
+ for (int i = 0; i < n; ++i) {
+ QString name(managedController->item(i)->text());
+ iControllerName ii = cn->begin();
+ for (; ii != cn->end(); ++ii) {
+ if (ii->name == name)
+ break;
+ }
+ if (ii == cn->end()) {
+ // add controller "name" to list of managed controller
+ //
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci) {
+ if ((*ci)->name() == name) {
+ Ctrl* ctrl = new Ctrl(*ci);
+ track->addController(ctrl);
+ break;
+ }
+ }
+ }
+ }
+
+ //
+ // search for removed controller
+ //
+ for (iControllerName ii = cn->begin(); ii != cn->end(); ++ii) {
+ int i;
+ for (i = 0; i < n; ++i) {
+ if (managedController->item(i)->text() == ii->name)
+ break;
+ }
+ if (i == n)
+ track->removeController(ii->id);
+ }
+ delete cn;
+ }
+ QDialog::done(code);
+ }
+
+//---------------------------------------------------------
+// defineClicked
+//---------------------------------------------------------
+
+void ConfigMidiCtrl::defineClicked()
+ {
+ DefineMidiCtrl dc(track, this);
+ if (dc.exec()) {
+ Ctrl* ctrl = new Ctrl(dc.midiController());
+ track->addController(ctrl);
+ QDialog::done(0);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl/configmidictrl.h b/muse_qt4_evolution/muse/ctrl/configmidictrl.h
new file mode 100644
index 00000000..0af11e36
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/configmidictrl.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CONFIGMIDICTRL_H__
+#define __CONFIGMIDICTRL_H__
+
+#include "ui_configmidictrl.h"
+
+class MidiTrack;
+
+//---------------------------------------------------------
+// ConfigMidiCtrl
+//---------------------------------------------------------
+
+class ConfigMidiCtrl : public QDialog, public Ui::ConfigMidiCtrlBase {
+ Q_OBJECT
+
+ MidiTrack* track;
+
+ private slots:
+ void addClicked();
+ void removeClicked();
+ void availableSelected(QListWidgetItem*);
+ void managedSelected(QListWidgetItem*);
+ virtual void done(int);
+ void defineClicked();
+
+ public:
+ ConfigMidiCtrl(MidiTrack*);
+ };
+
+#endif
+
+
diff --git a/muse_qt4_evolution/muse/ctrl/configmidictrl.ui b/muse_qt4_evolution/muse/ctrl/configmidictrl.ui
new file mode 100644
index 00000000..1960c490
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/configmidictrl.ui
@@ -0,0 +1,204 @@
+<ui version="4.0" >
+ <class>ConfigMidiCtrlBase</class>
+ <widget class="QDialog" name="ConfigMidiCtrlBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>506</width>
+ <height>355</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Config Midi Controller</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" colspan="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Midi Instrument:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="portName" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="instrumentName" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Midi Port:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Automated Controller:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="3" row="2" column="2" >
+ <widget class="QListWidget" name="managedController" />
+ </item>
+ <item rowspan="2" row="1" column="1" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>75</width>
+ <height>81</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Available Controller:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="3" row="2" column="0" >
+ <widget class="QListWidget" name="availableController" />
+ </item>
+ <item row="4" column="1" >
+ <widget class="QPushButton" name="buttonRemove" >
+ <property name="text" >
+ <string>Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QPushButton" name="buttonAdd" >
+ <property name="text" >
+ <string>Add</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="defineButton" >
+ <property name="text" >
+ <string>Define new Controller</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonCancel" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigMidiCtrlBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigMidiCtrlBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/ctrl/ctrldialog.cpp b/muse_qt4_evolution/muse/ctrl/ctrldialog.cpp
new file mode 100644
index 00000000..fd8a073c
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrldialog.cpp
@@ -0,0 +1,191 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "ctrldialog.h"
+#include "midictrl.h"
+#include "track.h"
+#include "miditrack.h"
+#include "audiotrack.h"
+#include "plugin.h"
+#include "pipeline.h"
+#include "ctrl/configmidictrl.h"
+
+//---------------------------------------------------------
+// CtrlDialog
+//---------------------------------------------------------
+
+CtrlDialog::CtrlDialog(Track* track, int ci, QWidget* parent)
+ : QDialog(parent)
+ {
+ t = track;
+ currentId = ci;
+ setupUi(this);
+ QTreeWidgetItem* header = tw->headerItem();
+ header->setTextAlignment(0, Qt::AlignLeft);
+ header->setTextAlignment(1, Qt::AlignHCenter);
+
+ tw->header()->setResizeMode(0, QHeaderView::Stretch);
+ header->setToolTip(0, tr("controller name"));
+ header->setToolTip(1, tr("flag if controller contains data"));
+
+ updateController();
+ otherButton->setEnabled(track->type() == Track::MIDI);
+ connect(tw,
+ SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)),
+ SLOT(itemDoubleClicked(QTreeWidgetItem*, int)));
+ connect(otherButton, SIGNAL(clicked()), SLOT(otherClicked()));
+ }
+
+//---------------------------------------------------------
+// updateController
+//---------------------------------------------------------
+
+void CtrlDialog::updateController()
+ {
+ tw->clear();
+ QTreeWidgetItem* ci;
+ if (t->type() == Track::MIDI) {
+ //
+ // add special controll for midi tracks
+ //
+ ci = new QTreeWidgetItem(tw, CTRL_VELOCITY);
+ ci->setText(0, "Velocity");
+ if (CTRL_VELOCITY == currentId) {
+ tw->setCurrentItem(ci);
+ tw->setItemSelected(ci, true);
+ }
+ if (((MidiTrack*)(t))->drumMap()) {
+ ci = new QTreeWidgetItem(tw, CTRL_SVELOCITY);
+ ci->setText(0, "Single Velocity");
+
+ if (CTRL_SVELOCITY == currentId) {
+ tw->setCurrentItem(ci);
+ tw->setItemSelected(ci, true);
+ }
+ }
+ }
+ else if (!t->isMidiTrack()) {
+
+ //
+ // present plugin parameter
+ //
+ Pipeline* pl = ((AudioTrack*)t)->prePipe();
+ int idx = 0;
+ foreach (PluginI* plugin, *pl) {
+ ci = new QTreeWidgetItem(tw, CTRL_NO_CTRL);
+ ci->setText(0, plugin->name());
+ int ncontroller = plugin->plugin()->parameter();
+ for (int i = 0; i < ncontroller; ++i) {
+ QString name(plugin->getParameterName(i));
+ int id = genACnum(idx, i, true);
+ QTreeWidgetItem* cci = new QTreeWidgetItem(ci, id);
+ cci->setText(0, name);
+ Ctrl* ctrl = t->getController(id);
+ if (ctrl) {
+ if (!ctrl->empty())
+ cci->setText(1, "*");
+ if (id == currentId) {
+ tw->setCurrentItem(cci);
+ tw->setItemSelected(cci, true);
+ }
+ }
+ else
+ printf("updateController: controller %x not found\n", id);
+ }
+ }
+ pl = ((AudioTrack*)t)->postPipe();
+ idx = 0;
+ foreach (PluginI* plugin, *pl) {
+ ci = new QTreeWidgetItem(tw, CTRL_NO_CTRL);
+ ci->setText(0, plugin->name());
+ int ncontroller = plugin->plugin()->parameter();
+ for (int i = 0; i < ncontroller; ++i) {
+ QString name(plugin->getParameterName(i));
+ int id = genACnum(idx, i, false);
+ QTreeWidgetItem* cci = new QTreeWidgetItem(ci, id);
+ cci->setText(0, name);
+ Ctrl* ctrl = t->getController(id);
+ if (!ctrl->empty())
+ cci->setText(1, "*");
+ if (id == currentId) {
+ tw->setCurrentItem(cci);
+ tw->setItemSelected(cci, true);
+ }
+ }
+ }
+ }
+
+ ControllerNameList* cn = t->controllerNames();
+ for (iControllerName i = cn->begin(); i != cn->end(); ++i) {
+ ci = new QTreeWidgetItem(tw, i->id);
+ ci->setText(0, i->name);
+ Ctrl* ctrl = t->getController(i->id);
+ if (!ctrl->empty())
+ ci->setText(1, "*");
+
+ if (i->id == currentId) {
+ tw->setCurrentItem(ci);
+ tw->setItemSelected(ci, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// itemDoubleClicked
+//---------------------------------------------------------
+
+void CtrlDialog::itemDoubleClicked(QTreeWidgetItem* item, int)
+ {
+ if (item->type() != CTRL_NO_CTRL)
+ accept();
+ }
+
+//---------------------------------------------------------
+// CtrlDialog
+//---------------------------------------------------------
+
+int CtrlDialog::curId() const
+ {
+ QTreeWidgetItem* item = tw->currentItem();
+ if (item == 0)
+ return CTRL_NO_CTRL;
+ return item->type();
+ }
+
+//---------------------------------------------------------
+// otherClicked
+// Add another controller to the list of "managed"
+// controllers.
+//---------------------------------------------------------
+
+void CtrlDialog::otherClicked()
+ {
+ QTreeWidgetItem* item = tw->currentItem();
+ if (item)
+ currentId = item->type();
+ //
+ // present the list of available controller for
+ // the selected midi instrument
+ //
+ ConfigMidiCtrl mce((MidiTrack*)t);
+ mce.exec();
+ updateController();
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl/ctrldialog.h b/muse_qt4_evolution/muse/ctrl/ctrldialog.h
new file mode 100644
index 00000000..3cb51ef2
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrldialog.h
@@ -0,0 +1,49 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRL_DIALOG_H__
+#define __CTRL_DIALOG_H__
+
+#include "ui_ctrldialog.h"
+
+class Track;
+
+//---------------------------------------------------------
+// CtrlDialog
+//---------------------------------------------------------
+
+class CtrlDialog : public QDialog, public Ui_CtrlDialogBase {
+ Q_OBJECT
+
+ Track* t;
+ int currentId;
+ void updateController();
+
+ private slots:
+ void itemDoubleClicked(QTreeWidgetItem*, int);
+ void otherClicked();
+
+ public:
+ CtrlDialog(Track*, int, QWidget* parent = 0);
+ int curId() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/ctrl/ctrldialog.ui b/muse_qt4_evolution/muse/ctrl/ctrldialog.ui
new file mode 100644
index 00000000..178cf1d3
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrldialog.ui
@@ -0,0 +1,126 @@
+<ui version="4.0" >
+ <class>CtrlDialogBase</class>
+ <widget class="QDialog" name="CtrlDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>390</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Select Controller</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTreeWidget" name="tw" >
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="columnCount" >
+ <number>3</number>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Controller</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>A</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="otherButton" >
+ <property name="text" >
+ <string>Other</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>CtrlDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>CtrlDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/ctrl/ctrledit.cpp b/muse_qt4_evolution/muse/ctrl/ctrledit.cpp
new file mode 100644
index 00000000..20022f47
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrledit.cpp
@@ -0,0 +1,184 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "ctrledit.h"
+#include "midictrl.h"
+#include "widgets/simplebutton.h"
+#include "widgets/utils.h"
+#include "ctrl/configmidictrl.h"
+#include "ctrl/ctrldialog.h"
+#include "widgets/tools.h"
+#include "miditrack.h"
+#include "midioutport.h"
+
+//---------------------------------------------------------
+// CtrlEdit
+//---------------------------------------------------------
+
+CtrlEdit::CtrlEdit(QWidget* parent, TimeCanvas* timeCanvas, Track* t)
+ : QObject(parent), _track(t)
+ {
+ y = 0;
+ _height = 0;
+ setDrawCtrlName(true);
+
+ _tc = timeCanvas;
+ _ctrl = &veloList;
+ if (t->type() == Track::MIDI) {
+ ctrlId = CTRL_VELOCITY;
+ _ctrl = &veloList;
+ }
+ else {
+ ctrlId = AC_VOLUME;
+ _ctrl = t->getController(ctrlId);
+ }
+
+ sel = new SimpleButton(tr("Sel"), parent);
+ sel->setToolTip(tr("select controller"));
+ sel->setAutoRaise(false);
+
+ minus = newMinusButton();
+ minus->setParent(parent);
+ minus->setToolTip(tr("remove controller view"));
+ minus->setAutoRaise(false);
+
+ connect(_track, SIGNAL(controllerChanged(int)), SLOT(controllerListChanged(int)));
+ connect(sel, SIGNAL(clicked()), SLOT(showControllerList()));
+ }
+
+//---------------------------------------------------------
+// CtrlEdit
+//---------------------------------------------------------
+
+CtrlEdit::~CtrlEdit()
+ {
+ delete sel;
+ delete minus;
+ }
+
+//---------------------------------------------------------
+// setCtrl
+//---------------------------------------------------------
+
+void CtrlEdit::setCtrl(int id)
+ {
+ _ctrl = 0;
+
+ if (_track->type() == Track::MIDI) {
+ if (id == CTRL_VELOCITY)
+ _ctrl = &veloList;
+ else if (id == CTRL_SVELOCITY)
+ _ctrl = &sveloList;
+ else
+ _ctrl = _track->getController(id);
+ }
+ else
+ _ctrl = _track->getController(id);
+
+ if (!_ctrl)
+ printf("CtrlEdit::setCtrl(%d): not found for track <%s>\n", id,
+ _track->name().toLocal8Bit().data());
+ }
+
+//---------------------------------------------------------
+// showControllerList
+//---------------------------------------------------------
+
+void CtrlEdit::showControllerList()
+ {
+ Ctrl* c = ctrl();
+ int id;
+ if (c)
+ id = c->id();
+ else
+ id = CTRL_NO_CTRL;
+ CtrlDialog cd(_track, id);
+ int rv = cd.exec();
+ if (rv != 1)
+ return;
+ id = cd.curId();
+ if (id == CTRL_NO_CTRL)
+ return;
+ changeController(id);
+ }
+
+//---------------------------------------------------------
+// changeController
+//---------------------------------------------------------
+
+void CtrlEdit::changeController(int id)
+ {
+ if (id == CTRL_VELOCITY) {
+ ctrlId = id;
+ _ctrl = &veloList;
+ }
+ else if (id == CTRL_SVELOCITY) {
+ ctrlId = id;
+ _ctrl = &sveloList;
+ }
+ else if (id == CTRL_OTHER) { // "other"
+ if (track()->type() == Track::MIDI) {
+ ConfigMidiCtrl* mce = new ConfigMidiCtrl((MidiTrack*)track());
+ mce->exec();
+ sel->showMenu();
+ }
+ else
+ printf("CtrlEdit::changeController: not impl.\n");
+ }
+ else {
+ ctrlId = id;
+ _ctrl = track()->getController(ctrlId);
+ }
+ _tc->updateCanvasB();
+ }
+
+//---------------------------------------------------------
+// controllerListChanged
+//---------------------------------------------------------
+
+void CtrlEdit::controllerListChanged(int id)
+ {
+ if (id != ctrlId)
+ return;
+ tc()->widget()->update(tc()->rCanvasB);
+ }
+
+//---------------------------------------------------------
+// pixel2val
+//---------------------------------------------------------
+
+int CtrlEdit::pixel2val(int y) const
+ {
+ if (ctrl() == 0)
+ return 0;
+ CVal val = ctrl()->pixel2val(y, _height - splitWidth);
+ return val.i;
+ }
+
+
+//---------------------------------------------------------
+// setSinglePitch
+//---------------------------------------------------------
+
+void CtrlEdit::setSinglePitch(int val)
+ {
+ singlePitch = val;
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl/ctrledit.h b/muse_qt4_evolution/muse/ctrl/ctrledit.h
new file mode 100644
index 00000000..d942c84f
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrledit.h
@@ -0,0 +1,76 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRL_EDIT_H__
+#define __CTRL_EDIT_H__
+
+#include "ctrleditor.h"
+#include "gui.h"
+
+class SimpleButton;
+class TimeCanvas;
+
+//---------------------------------------------------------
+// CtrlEdit
+//---------------------------------------------------------
+
+class CtrlEdit : public QObject, public CtrlEditor {
+ Q_OBJECT
+
+ Track* const _track;
+ Ctrl* _ctrl;
+ TimeCanvas* _tc;
+ int _height;
+
+ virtual Ctrl* ctrl() const { return _ctrl; }
+ virtual TimeCanvas* tc() const { return _tc; }
+ virtual Track* track() const { return _track; }
+
+ public:
+ int ctrlId;
+ int y;
+ SimpleButton* minus;
+ SimpleButton* sel;
+ QMenu* ctrlList;
+
+ private slots:
+ void showControllerList();
+ void changeController(int);
+ void controllerListChanged(int);
+
+ public:
+ CtrlEdit(QWidget*, TimeCanvas*, Track*);
+ ~CtrlEdit();
+ int pixel2val(int) const;
+ void setHeight(int val) { _height = val; }
+ int height() const { return _height; }
+ virtual int cheight() const { return _height - splitWidth; }
+ void setCtrl(Ctrl* c) { _ctrl = c; }
+ void setCtrl(int id);
+ Ctrl* ctrl() { return _ctrl; }
+ void setSinglePitch(int);
+ };
+
+
+typedef std::vector<CtrlEdit*> CtrlEditList;
+typedef CtrlEditList::iterator iCtrlEdit;
+typedef CtrlEditList::const_iterator ciCtrlEdit;
+#endif
+
diff --git a/muse_qt4_evolution/muse/ctrl/ctrleditor.cpp b/muse_qt4_evolution/muse/ctrl/ctrleditor.cpp
new file mode 100644
index 00000000..cc89c4c6
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrleditor.cpp
@@ -0,0 +1,492 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "ctrleditor.h"
+#include "track.h"
+#include "awl/tcanvas.h"
+#include "ctrl.h"
+#include "midictrl.h"
+#include "gconfig.h"
+#include "song.h"
+#include "part.h"
+#include "tools.h"
+#include "muse.h"
+#include "gui.h"
+
+static const int HANDLE1 = 6;
+static const int HANDLE2 = 3;
+static const int veloWidth = 3;
+
+Ctrl veloList(CTRL_VELOCITY, "velocity", Ctrl::DISCRETE |Ctrl::INT, 0.0, 127.0); // dummy
+Ctrl sveloList(CTRL_SVELOCITY, "single velocity", Ctrl::DISCRETE |Ctrl::INT, 0.0, 127.0); // dummy
+
+//---------------------------------------------------------
+// CtrlEditor
+//---------------------------------------------------------
+
+CtrlEditor::CtrlEditor()
+ {
+ _drawCtrlName = false;
+ dragy = -1;
+ lselected = 0;
+ singlePitch = -1;
+ drawRuler = false;
+ }
+
+//---------------------------------------------------------
+// drawHandle
+//---------------------------------------------------------
+
+inline static void drawHandle(QPainter& p, int x, int y, int lselected)
+ {
+ p.fillRect(x-HANDLE2, y-HANDLE2, HANDLE1, HANDLE1,
+ x == lselected ? Qt::red : Qt::yellow);
+ }
+
+//---------------------------------------------------------
+// ctrlY
+//---------------------------------------------------------
+
+int CtrlEditor::ctrlY(int x, const CVal& val) const
+ {
+ if (dragy != -1 && lselected == x)
+ return dragy;
+ return ctrl()->val2pixelR(val, th) + HANDLE2;
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void CtrlEditor::paint(QPainter& p, const QRect& r)
+ {
+ if (!ctrl())
+ return;
+ int from = r.x() - HANDLE1;
+ if (from < 0)
+ from = 0;
+ int to = r.x() + r.width() + HANDLE1;
+ th = cheight() - HANDLE1 + splitWidth;
+
+ p.save();
+ bool aR = track()->autoRead();
+ p.setPen(QPen(aR ? Qt::white : Qt::gray, 2));
+
+ TType tt = track()->timeType();
+
+ if (ctrl()->id() == CTRL_VELOCITY) {
+ p.setRenderHint(QPainter::Antialiasing, false);
+ p.setPen(QPen(Qt::blue, veloWidth));
+ PartList* pl = track()->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+ int pos1 = tc()->pos2pix(*part);
+ int pos2 = tc()->pos2pix(part->end());
+
+ if (pos2 <= from)
+ continue;
+ if (pos1 > to)
+ break;
+
+ EventList* events = part->events();
+ for (iEvent e = events->begin(); e != events->end(); ++e) {
+ const Event& ev = e->second;
+ if (ev.type() != Note)
+ continue;
+ int pos = tc()->pos2pix(ev.pos() + *part);
+ if (pos <= from)
+ continue;
+ if (pos > to)
+ break;
+ int id = ctrl()->id();
+ if (id == CTRL_VELOCITY ||
+ (id == CTRL_SVELOCITY && ev.pitch() == singlePitch)) {
+ int y1 = ctrl()->val2pixelR(ev.velo(), th+3) + 1;
+ p.drawLine(pos, th+3, pos, y1);
+ }
+ }
+ }
+ }
+ else {
+ p.setRenderHint(QPainter::Antialiasing, true);
+ if (ctrl()->empty()) {
+ if (aR) {
+ int y = ctrl()->cur2pixel(th) + HANDLE2;
+ p.drawLine(r.x(), y, r.x() + r.width(), y);
+ }
+ }
+ else {
+ int x1, y1, x2, y2;
+ int hx = -1;
+ int hy = 0;
+
+ Pos pos1 = tc()->pix2pos(from);
+ ciCtrlVal i = ctrl()->lowerBound(pos1.time(tt));
+
+ if (i == ctrl()->end()) {
+ --i;
+ int x = tc()->pos2pix(Pos(i.key(), tt));
+ int y = ctrlY(x, i.value());
+ p.drawLine(r.x(), y, r.x() + r.width(), y);
+ }
+ else {
+ if (i == ctrl()->begin()) {
+ x1 = tc()->pos2pix(Pos(i.key(), tt));
+ y1 = ctrlY(x1, i.value());
+ x1 = r.x();
+ }
+ else {
+ --i;
+ x1 = tc()->pos2pix(Pos(i.key(), tt));
+ y1 = ctrlY(x1, i.value());
+ hx = x1;
+ hy = y1;
+ ++i;
+ }
+ do {
+ x2 = tc()->pos2pix(Pos(i.key(), tt));
+ y2 = ctrlY(x2, i.value());
+ if (ctrl()->type() & Ctrl::DISCRETE) {
+ p.drawLine(x1, y1, x2, y1);
+ p.drawLine(x2, y1, x2, y2);
+ }
+ else
+ p.drawLine(x1, y1, x2, y2);
+ if (x2 >= to)
+ break;
+ if (hx != -1)
+ drawHandle(p, hx, hy, lselected);
+ hx = x2;
+ hy = y2;
+ x1 = x2;
+ y1 = y2;
+ ++i;
+ } while (i != ctrl()->end());
+ if (x2 < to)
+ p.drawLine(x2, y1, to, y1);
+ if (hx != -1)
+ drawHandle(p, hx, hy, lselected);
+ }
+ }
+ if (!aR) {
+ int y = ctrl()->cur2pixel(th) + HANDLE2;
+ p.drawLine(r.x(), y, r.x() + r.width(), y);
+ }
+ }
+
+ if (drawRuler) {
+ p.setPen(QPen(Qt::white, 2));
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.drawLine(ruler1, ruler2);
+ }
+ //
+ // this does not work well a.t.m:
+ //
+ if (_drawCtrlName) {
+ QString s(ctrl()->name());
+ QFont f(tc()->font());
+// p.setFont(config.fonts[3]);
+ p.setPen(Qt::black);
+ QFontMetrics fm(f);
+ int ly = fm.lineSpacing() + 2;
+ p.drawText(2, ly, s);
+ }
+ p.restore();
+ }
+
+//---------------------------------------------------------
+// mousePress
+//---------------------------------------------------------
+
+void CtrlEditor::mousePress(const QPoint& pos, QMouseEvent* me)
+ {
+ int button = me->button();
+ Qt::KeyboardModifiers modifiers = me->modifiers();
+ Tool tool = tc()->tool();
+ if (button & Qt::RightButton) {
+ QMenu pop(tc());
+ QAction* a;
+ for (int i = 0; i < TOOLS; ++i) {
+ int id = 1 << i;
+ if ((arrangerTools & id) == 0)
+ continue;
+ a = getAction(toolList[i], &pop);
+ pop.addAction(a);
+ a->setCheckable(true);
+ if (id == (int)tool)
+ a->setChecked(true);
+ }
+ a = pop.addSeparator();
+ a = pop.addAction("List Editor");
+ a->setData(1 << (TOOLS+1));
+
+ a = pop.exec(me->globalPos());
+ if (a) {
+ int n = a->data().toInt();
+ if (n == (1 << (TOOLS+1))) {
+ Pos t(tc()->pix2pos(pos.x()));
+ muse->showListEditor(t, track(), 0, ctrl());
+ }
+ else
+ muse->setTool(n);
+ }
+ return;
+ }
+
+ int wh = cheight();
+ int y = pos.y();
+ int x = pos.x();
+
+ int cid = ctrl()->id();
+
+ if (tool == PencilTool || (modifiers & Qt::ShiftModifier)) {
+ selected = tc()->pix2pos(x);
+ lselected = x;
+ dragy = y;
+ dragx = x;
+ dragYoffset = 0;
+ if (cid == CTRL_VELOCITY || cid == CTRL_SVELOCITY)
+ song->startUndo();
+ else {
+ // add controller:
+ CVal val = ctrl()->pixel2val(dragy-HANDLE2, wh - HANDLE1 + splitWidth);
+ song->cmdAddControllerVal(track(), ctrl(), selected, val);
+ tc()->widget()->update();
+ }
+ }
+ else if (tool == PointerTool || tool == RubberTool) {
+ if (cid == CTRL_VELOCITY || cid == CTRL_SVELOCITY) {
+ dragx = x;
+ song->startUndo();
+ return;
+ }
+
+ Pos pos1(tc()->pix2pos(x - HANDLE2));
+ Pos pos2(tc()->pix2pos(x + HANDLE2));
+
+ TType tt = track()->timeType();
+ ciCtrlVal s = ctrl()->upperBound(pos1.time(tt));
+ ciCtrlVal e = ctrl()->upperBound(pos2.time(tt));
+ for (ciCtrlVal i = s; i != e; ++i) {
+ int yy = ctrl()->val2pixelR(i.value(), wh - HANDLE1 + splitWidth) + HANDLE2;
+ startY = yy;
+ if ((yy >= (y-HANDLE2)) && (yy < (y + HANDLE2))) {
+ if (tt == AL::TICKS)
+ selected.setTick(i.key());
+ else
+ selected.setFrame(i.key());
+ lselected = tc()->pos2pix(selected);
+ if (tool == RubberTool || button == Qt::RightButton
+ || modifiers & Qt::ControlModifier) {
+ song->cmdRemoveControllerVal(track(), ctrl()->id(), i.key());
+ dragy = -1;
+ }
+ else {
+ dragy = yy;
+ dragYoffset = dragy - y;
+ }
+ tc()->widget()->update();
+ break;
+ }
+ }
+ }
+ else if (tool == DrawTool) {
+ ruler1 = ruler2 = pos;
+ drawRuler = true;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void CtrlEditor::mouseRelease()
+ {
+ if (tc()->tool() == DrawTool) {
+ song->startUndo();
+ drawRuler = false;
+ int from, to, y1, y2;
+ if (ruler1.x() > ruler2.x()) {
+ from = ruler2.x();
+ to = ruler1.x();
+ y1 = ruler2.y();
+ y2 = ruler1.y();
+ }
+ else {
+ from = ruler1.x();
+ to = ruler2.x();
+ y1 = ruler1.y();
+ y2 = ruler2.y();
+ }
+ MidiController::ControllerType type = midiControllerType(ctrl()->id());
+ if (type == MidiController::Velo) {
+ PartList* pl = track()->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+ int pos1 = tc()->pos2pix(*part);
+ int pos2 = tc()->pos2pix(part->end());
+
+ if (pos2 <= from)
+ continue;
+ if (pos1 > to)
+ break;
+
+ EventList* events = part->events();
+ for (iEvent e = events->begin(); e != events->end(); ++e) {
+ if (e->second.type() != Note)
+ continue;
+ int pos = tc()->pos2pix(e->second.pos() + *part);
+ if (pos <= from)
+ continue;
+ if (pos > to)
+ break;
+ int id = ctrl()->id();
+ if (id == CTRL_VELOCITY ||
+ (CTRL_SVELOCITY && e->second.pitch() == singlePitch)) {
+ int y = y1 + (y2 - y1) * (pos - from) / (to - from);
+ int val = (ctrl()->pixel2val(y+HANDLE2, cheight()-HANDLE1+splitWidth)).i;
+ Event clone = e->second.clone();
+ clone.setB(val);
+ song->changeEvent(e->second, clone, part);
+ song->undoOp(UndoOp::ModifyEvent, clone, e->second, part);
+ }
+ }
+ }
+ }
+ else {
+ printf("ctrleditor:: not implemented\n");
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ tc()->widget()->update();
+ return;
+ }
+ if (ctrl()->id() == CTRL_VELOCITY || ctrl()->id() == CTRL_SVELOCITY)
+ song->endUndo(SC_EVENT_MODIFIED);
+ else {
+ if (dragy != -1 && dragy != startY) {
+ int wh = cheight() + splitWidth - HANDLE1;
+ CVal val = ctrl()->pixel2val(dragy - HANDLE2, wh);
+ // modify controller:
+ song->cmdAddControllerVal(track(), ctrl(), selected, val);
+ }
+ dragy = -1;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMove
+// called only with mouse button pressed
+//---------------------------------------------------------
+
+void CtrlEditor::mouseMove(const QPoint& pos)
+ {
+ Tool tool = tc()->tool();
+ int cid = ctrl()->id();
+
+ if (tool == DrawTool) {
+ ruler2 = pos;
+ tc()->widget()->update();
+ return;
+ }
+ if (cid == CTRL_VELOCITY || cid == CTRL_SVELOCITY) {
+ AL::Pos p1(tc()->pix2pos(dragx));
+ AL::Pos p2(tc()->pix2pos(pos.x()));
+ dragx = pos.x();
+
+ int wh = cheight() - HANDLE1 + splitWidth;
+ int val = (ctrl()->pixel2val(pos.y() - HANDLE2, wh)).i;
+ unsigned tick1 = p1.tick();
+ Part* part = track()->parts()->findPart(tick1);
+ if (part == 0)
+ return;
+ unsigned tick2 = p2.tick();
+ if (tick1 > tick2) {
+ int tmp = tick2;
+ tick2 = tick1;
+ tick1 = tmp;
+ }
+ if (part->tick() > tick1)
+ tick1 = 0;
+ else
+ tick1 -= part->tick(); // event time is relative to part
+ if (part->tick() > tick2)
+ tick2 = 0;
+ else
+ tick2 -= part->tick();
+
+ //
+ // change velocity for all notes at tick time
+ //
+ EventList* el = part->events();
+ EventList tel;
+ for (iEvent ie = el->lower_bound(tick1); ie != el->lower_bound(tick2); ie++) {
+ Event e = ie->second;
+ if (!e.isNote() || e.dataB() == val)
+ continue;
+ tel.add(e);
+ }
+ for (iEvent ie = tel.begin(); ie != tel.end(); ++ie) {
+ Event e = ie->second;
+ Event clone = e.clone();
+ clone.setB(val);
+ song->changeEvent(e, clone, part);
+ song->undoOp(UndoOp::ModifyEvent, clone, e, part);
+ }
+ }
+ else {
+ if (tool == RubberTool) {
+ int wh = cheight();
+ int y = pos.y();
+ int x = pos.x();
+
+ Pos pos1(tc()->pix2pos(x - HANDLE2));
+ Pos pos2(tc()->pix2pos(x + HANDLE2));
+
+ TType tt = track()->timeType();
+ ciCtrlVal s = ctrl()->upperBound(pos1.time(tt));
+ ciCtrlVal e = ctrl()->upperBound(pos2.time(tt));
+ for (ciCtrlVal i = s; i != e; ++i) {
+ int yy = ctrl()->val2pixelR(i.value(), wh);
+ startY = yy;
+ if ((yy >= (y-HANDLE2)) && (yy < (y + HANDLE2))) {
+ if (tt == AL::TICKS)
+ selected.setTick(i.key());
+ else
+ selected.setFrame(i.key());
+ lselected = tc()->pos2pix(selected);
+ song->cmdRemoveControllerVal(track(), ctrl()->id(), i.key());
+ dragy = -1;
+ break;
+ }
+ }
+ }
+ if (dragy != -1) {
+ int th = cheight() + splitWidth - HANDLE2 - 1;
+ dragy = pos.y() + dragYoffset;
+ if (dragy < HANDLE2)
+ dragy = HANDLE2;
+ else if (dragy > th) {
+ dragy = th;
+ }
+ }
+ }
+ tc()->widget()->update();
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl/ctrleditor.h b/muse_qt4_evolution/muse/ctrl/ctrleditor.h
new file mode 100644
index 00000000..e33a8b29
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/ctrleditor.h
@@ -0,0 +1,76 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRL_EDITOR_H__
+#define __CTRL_EDITOR_H__
+
+#include "al/pos.h"
+
+class Ctrl;
+class TimeCanvas;
+class Track;
+struct CVal;
+
+//---------------------------------------------------------
+// CtrlEditor
+//---------------------------------------------------------
+
+class CtrlEditor {
+ bool _drawCtrlName;
+ int dragx, dragy;
+ int dragYoffset;
+ int startY;
+
+ int th; // effective track height, temp value
+
+ int lselected; // cached pixel position of current value
+ AL::Pos selected; // current selected controller value
+
+ bool drawRuler;
+ QPoint ruler1;
+ QPoint ruler2;
+
+ virtual Ctrl* ctrl() const = 0;
+ virtual TimeCanvas* tc() const = 0;
+ virtual int cheight() const = 0;
+ virtual Track* track() const = 0;
+
+ bool searchHandle(unsigned* time) const;
+
+ int ctrlY(int x, const CVal&) const;
+
+ protected:
+ int singlePitch;
+
+ public:
+ CtrlEditor();
+ virtual ~CtrlEditor() {}
+ void paint(QPainter& p, const QRect& r);
+ void setDrawCtrlName(bool val) { _drawCtrlName = val; }
+ void mousePress(const QPoint&, QMouseEvent*);
+ void mouseRelease();
+ void mouseMove(const QPoint& pos);
+ };
+
+
+extern Ctrl veloList;
+extern Ctrl sveloList;
+#endif
+
diff --git a/muse_qt4_evolution/muse/ctrl/definemidictrl.cpp b/muse_qt4_evolution/muse/ctrl/definemidictrl.cpp
new file mode 100644
index 00000000..197d7572
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/definemidictrl.cpp
@@ -0,0 +1,110 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "definemidictrl.h"
+#include "miditrack.h"
+#include "instruments/minstrument.h"
+
+//---------------------------------------------------------
+// DefineMidiCtrlDialog
+// controllerName QLineEdit
+// controllerType QComboBox
+// msbId lsbId minVal maxVal initVal QSpinBox
+// moveWithPart QCheckBox
+//---------------------------------------------------------
+
+DefineMidiCtrl::DefineMidiCtrl(MidiTrack* t, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ track = t;
+ connect(controllerType, SIGNAL(currentIndexChanged(int)), SLOT(typeChanged(int)));
+ }
+
+//---------------------------------------------------------
+// done
+// val == 1 -> OK
+//---------------------------------------------------------
+
+void DefineMidiCtrl::done(int val)
+ {
+ if (val) {
+ ctrl.setName(controllerName->text());
+ ctrl.setComment(controllerComment->toPlainText());
+ int num = MidiController::genNum(
+ MidiController::ControllerType(controllerType->currentIndex()),
+ msbId->value(), lsbId->value());
+ ctrl.setNum(num);
+ ctrl.setMinVal(minVal->value());
+ ctrl.setMaxVal(maxVal->value());
+ ctrl.setInitVal(initVal->value());
+ ctrl.setMoveWithPart(moveWithPart->isChecked());
+
+ //
+ // add controller to instrument
+ //
+ MidiInstrument* instrument = track->instrument();
+ MidiControllerList* mcl = instrument->controller();
+ MidiController* c = new MidiController(ctrl);
+ mcl->append(c);
+ }
+
+ QDialog::done(val);
+ }
+
+//---------------------------------------------------------
+// typeChanged
+//---------------------------------------------------------
+
+void DefineMidiCtrl::typeChanged(int val)
+ {
+ MidiController::ControllerType t = (MidiController::ControllerType)val;
+ switch (t) {
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller7:
+ msbId->setEnabled(false);
+ lsbId->setEnabled(true);
+ maxVal->setRange(0, 127);
+ maxVal->setValue(127);
+ initVal->setRange(0, 127);
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ msbId->setEnabled(true);
+ lsbId->setEnabled(true);
+ maxVal->setRange(0, 128*128-1);
+ maxVal->setValue(128*128-1);
+ initVal->setRange(0, 128*128-1);
+ break;
+ case MidiController::Pitch:
+ case MidiController::Program:
+ msbId->setEnabled(false);
+ lsbId->setEnabled(false);
+ maxVal->setRange(0, 128*128-1);
+ initVal->setRange(0, 128*128-1);
+ maxVal->setValue(128*128-1);
+ break;
+ default:
+ break;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/ctrl/definemidictrl.h b/muse_qt4_evolution/muse/ctrl/definemidictrl.h
new file mode 100644
index 00000000..bc0df6a9
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/definemidictrl.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DEFINEMIDICTRL_H__
+#define __DEFINEMIDICTRL_H__
+
+#include "ui_definemidictrl.h"
+#include "midictrl.h"
+
+class MidiTrack;
+
+//---------------------------------------------------------
+// DefineMidiCtrl
+//---------------------------------------------------------
+
+class DefineMidiCtrl : public QDialog, public Ui::DefineMidiCtrlBase {
+ Q_OBJECT
+
+ MidiTrack* track;
+ MidiController ctrl;
+
+ private slots:
+ virtual void done(int);
+ void typeChanged(int);
+
+ public:
+ DefineMidiCtrl(MidiTrack* t, QWidget* parent = 0);
+ const MidiController* midiController() const { return &ctrl; }
+ };
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/ctrl/definemidictrl.ui b/muse_qt4_evolution/muse/ctrl/definemidictrl.ui
new file mode 100644
index 00000000..a66e55cb
--- /dev/null
+++ b/muse_qt4_evolution/muse/ctrl/definemidictrl.ui
@@ -0,0 +1,285 @@
+<ui version="4.0" >
+ <class>DefineMidiCtrlBase</class>
+ <widget class="QDialog" name="DefineMidiCtrlBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>558</width>
+ <height>344</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item rowspan="2" row="0" column="0" >
+ <widget class="QLabel" name="label_13" >
+ <property name="font" >
+ <font>
+ <pointsize>24</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="lineWidth" >
+ <number>5</number>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Arial'; font-size:24pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;"> &lt;/span>&lt;span style=" font-weight:400;">CTRL &lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Controller Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLineEdit" name="controllerName" />
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Controller Type:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QComboBox" name="controllerType" >
+ <item>
+ <property name="text" >
+ <string>7-Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>14-Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>7-Bit RPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>14-Bit RPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>7-Bit NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>14-Bit NRPN</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_14" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="controllerComment" />
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="label_8" >
+ <property name="text" >
+ <string>0x00</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="lsbId" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Id LSB</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_9" >
+ <property name="text" >
+ <string>0x00</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="msbId" />
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Id MSB</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QCheckBox" name="moveWithPart" >
+ <property name="text" >
+ <string>Move with Part</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="initVal" />
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLabel" name="label_12" >
+ <property name="text" >
+ <string>0x00</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_11" >
+ <property name="text" >
+ <string>0x00</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="text" >
+ <string>Init Value</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="maxVal" />
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Min.Value</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="minVal" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_6" >
+ <property name="text" >
+ <string>Max.Value</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="label_10" >
+ <property name="text" >
+ <string>0x00</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="okButton" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>accepted()</signal>
+ <receiver>DefineMidiCtrlBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>okButton</sender>
+ <signal>rejected()</signal>
+ <receiver>DefineMidiCtrlBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/debug.h b/muse_qt4_evolution/muse/debug.h
new file mode 100644
index 00000000..0820fef3
--- /dev/null
+++ b/muse_qt4_evolution/muse/debug.h
@@ -0,0 +1,44 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MUSE_DEBUG_H__
+#define __MUSE_DEBUG_H__
+
+#include "globals.h"
+
+#ifdef DEBUG_1
+#define M_REPORT(string) printf("%s:%d:%s: " string "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
+#define M_REPORTARG(format, args...) printf("%s:%d:%s: " format "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##args);
+#define M_DEBUG(string) if (debugMsg) fprintf(stderr, "%s:%d:%s: " string "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
+#define M_DEBUGARG(format, args...) if (debugMsg) fprintf(stderr, "%s:%d:%s: " format "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##args);
+#define M_ERROR(string) fprintf(stderr, "%s:%d:%s: " string "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
+#define M_ERRORARG(format, args...) fprintf(stderr, "%s:%d:%s: " format "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##args);
+#else
+#define M_REPORT(string)
+#define M_REPORTARG(format, args...)
+#define M_DEBUG(string)
+#define M_DEBUGARG(format, args...)
+#define M_ERROR(string)
+#define M_ERRORARG(format, args...)
+#endif
+
+#define DEBUG_ARGS __FILE__ << ":" << __LINE__ << ":" << __PRETTY_FUNCTION__ << ": "
+
+#endif /* __MUSE_DEBUG_H__ */
diff --git a/muse_qt4_evolution/muse/default_click.h b/muse_qt4_evolution/muse/default_click.h
new file mode 100644
index 00000000..d6907c80
--- /dev/null
+++ b/muse_qt4_evolution/muse/default_click.h
@@ -0,0 +1,1213 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 20002 Paul Davis
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+static const float defaultClick[] = {
+ -0.0019836426, 0.0097045898, 0.019165039, 0.028594971, 0.036102295,
+ 0.040679932, 0.040649414, 0.036560059, 0.029693604, 0.016967773,
+ 0.0057067871, -0.008026123, -0.021453857, -0.026153564,
+ -0.031921387, -0.036834717, -0.04397583, -0.046844482,
+ -0.045349121, -0.041748047, -0.032623291, -0.026611328,
+ -0.026702881, -0.025482178, -0.013092041, 0.0055847168,
+ 0.023040771, 0.027435303, 0.043426514, 0.07925415, 0.1086731,
+ 0.09463501, 0.039154053, -0.027832031, -0.081542969, -0.099090576,
+ -0.089385986, -0.051055908, -0.0023803711, 0.031951904,
+ 0.044128418, 0.029998779, 0.0086669922, 0.0022888184, 0.0082092285,
+ 0.0085144043, -0.0057983398, -0.027496338, -0.036834717,
+ -0.021759033, -0.020721436, -0.024078369, -0.025360107,
+ -0.090698242, -0.16491699, -0.16052246, -0.090454102, 0.0031433105,
+ 0.013031006, 0.034790039, 0.30599976, 0.58151245, 0.5078125,
+ 0.32858276, 0.21975708, -0.050018311, -0.34790039, -0.46588135,
+ -0.26513672, 0.12893677, 0.19259644, 0.11685181, 0.095825195,
+ -0.039154053, -0.041473389, 0.0069274902, -0.14685059, -0.32232666,
+ -0.21795654, 0.051086426, 0.18112183, 0.30905151, 0.47305298,
+ 0.60980225, 0.59518433, 0.46920776, 0.51705933, 0.47116089,
+ 0.31832886, 0.20901489, 0.059539795, -0.10055542, -0.23834229,
+ -0.26708984, -0.27468872, -0.29516602, -0.22879028, -0.12854004,
+ -0.064300537, -0.0068664551, 0.060211182, 0.10339355, 0.12594604,
+ 0.12954712, 0.063568115, -0.041046143, -0.1184082, -0.19332886,
+ -0.27337646, -0.34906006, -0.40966797, -0.46533203, -0.45361328,
+ -0.39672852, -0.32958984, -0.15246582, 0.086853027, 0.23678589,
+ 0.24838257, 0.13034058, -0.15222168, -0.5199585, -0.80224609,
+ -0.9397583, -0.89654541, -0.71923828, -0.47998047, -0.14666748,
+ 0.26187134, 0.54995728, 0.69186401, 0.84616089, 0.79928589,
+ 0.53170776, 0.39968872, 0.32455444, 0.2137146, 0.19454956,
+ 0.24069214, 0.22750854, 0.14596558, 0.047058105, -0.04876709,
+ -0.13095093, -0.19775391, -0.16293335, -0.059265137, 0.027526855,
+ 0.13961792, 0.26803589, 0.35470581, 0.37600708, 0.34085083,
+ 0.2572937, 0.13265991, -0.008026123, -0.12841797, -0.22216797,
+ -0.30899048, -0.37841797, -0.4251709, -0.45947266, -0.48376465,
+ -0.50341797, -0.52294922, -0.54516602, -0.58447266, -0.62121582,
+ -0.63989258, -0.64990234, -0.63037109, -0.568573, -0.46630859,
+ -0.36468506, -0.27618408, -0.18487549, -0.11065674, -0.070404053,
+ -0.066101074, -0.049835205, -0.026611328, -0.013061523,
+ 0.011444092, 0.034576416, 0.046112061, 0.052215576, 0.045501709,
+ 0.030059814, 0.011657715, 0.026489258, 0.056121826, 0.10122681,
+ 0.20016479, 0.33053589, 0.45944214, 0.54830933, 0.57751465, 0.5625,
+ 0.55612183, 0.55319214, 0.5697937, 0.64987183, 0.73553467,
+ 0.78170776, 0.84420776, 0.89987183, 0.90475464, 0.85861206,
+ 0.75338745, 0.57077026, 0.3354187, 0.067779541, -0.1741333,
+ -0.36557007, -0.47802734, -0.51281738, -0.47766113, -0.36865234,
+ -0.22381592, -0.065765381, 0.066680908, 0.12365723, 0.098114014,
+ 0.020965576, -0.10775757, -0.27294922, -0.41845703, -0.50146484,
+ -0.52563477, -0.48291016, -0.38186646, -0.27264404, -0.16925049,
+ -0.07043457, 0.003326416, 0.025085449, -0.028320312, -0.11358643,
+ -0.18164062, -0.21984863, -0.21286011, -0.16635132, -0.12728882,
+ -0.088104248, 0.016693115, 0.18893433, 0.40280151, 0.59127808,
+ 0.67233276, 0.64682007, 0.54733276, 0.4213562, 0.30703735,
+ 0.19845581, 0.12661743, 0.095611572, 0.10531616, 0.17950439,
+ 0.29904175, 0.41726685, 0.47506714, 0.48678589, 0.48873901,
+ 0.46694946, 0.42233276, 0.38088989, 0.34689331, 0.30709839,
+ 0.26022339, 0.18258667, 0.064544678, -0.09085083, -0.25634766,
+ -0.41540527, -0.54693604, -0.62731934, -0.6809082, -0.70849609,
+ -0.71044922, -0.68469238, -0.64886475, -0.62115479, -0.6104126,
+ -0.62451172, -0.65185547, -0.67504883, -0.68969727, -0.70257568,
+ -0.71337891, -0.68994141, -0.61865234, -0.49755859, -0.32177734,
+ -0.10437012, 0.11209106, 0.30691528, 0.46789551, 0.51602173,
+ 0.44674683, 0.32055664, 0.1769104, 0.06072998, 0.0075378418,
+ -0.013641357, -0.0038146973, 0.082244873, 0.22116089, 0.35787964,
+ 0.47689819, 0.60266113, 0.71801758, 0.81747437, 0.91799927,
+ 0.97079468, 0.97677612, 0.93850708, 0.83322144, 0.65866089,
+ 0.42324829, 0.14834595, -0.10574341, -0.31484985, -0.46813965,
+ -0.54833984, -0.55517578, -0.51220703, -0.43115234, -0.34613037,
+ -0.29052734, -0.2699585, -0.29443359, -0.33349609, -0.38720703,
+ -0.45751953, -0.51318359, -0.54800415, -0.55706787, -0.5402832,
+ -0.48666382, -0.41162109, -0.32958984, -0.24560547, -0.19873047,
+ -0.18457031, -0.19171143, -0.21240234, -0.23876953, -0.25823975,
+ -0.26184082, -0.24902344, -0.21612549, -0.16552734, -0.11083984,
+ -0.058349609, -0.0034179688, 0.053283691, 0.12722778, 0.23052979,
+ 0.35769653, 0.51147461, 0.68243408, 0.85015869, 0.96902466,
+ 0.99908447, 0.99899292, 0.99453735, 0.87936401, 0.72964478,
+ 0.59124756, 0.45162964, 0.29949951, 0.18435669, 0.087219238,
+ 0.0085754395, -0.031677246, -0.057434082, -0.06338501,
+ -0.050262451, -0.021179199, 0.010986328, 0.035095215, 0.041900635,
+ 0.026275635, -0.008972168, -0.067260742, -0.14938354, -0.24298096,
+ -0.33901978, -0.44342041, -0.53179932, -0.59924316, -0.64294434,
+ -0.66220093, -0.65362549, -0.61437988, -0.56277466, -0.48764038,
+ -0.41287231, -0.3420105, -0.25909424, -0.17782593, -0.10604858,
+ -0.033355713, 0.037872314, 0.097198486, 0.15203857, 0.19644165,
+ 0.23324585, 0.2668457, 0.29403687, 0.31442261, 0.33148193,
+ 0.33639526, 0.32794189, 0.31109619, 0.30651855, 0.30456543,
+ 0.31005859, 0.32266235, 0.34017944, 0.36062622, 0.37988281,
+ 0.39459229, 0.40344238, 0.41464233, 0.41500854, 0.41091919,
+ 0.40512085, 0.39819336, 0.3843689, 0.36633301, 0.33621216,
+ 0.28076172, 0.19436646, 0.083892822, -0.056732178, -0.21832275,
+ -0.38809204, -0.55502319, -0.70330811, -0.82672119, -0.909729,
+ -0.93505859, -0.9085083, -0.84347534, -0.74786377, -0.63342285,
+ -0.52468872, -0.42883301, -0.35321045, -0.29504395, -0.26339722,
+ -0.23782349, -0.21252441, -0.19006348, -0.16159058, -0.12472534,
+ -0.075958252, -0.012115479, 0.056091309, 0.11953735, 0.17373657,
+ 0.22116089, 0.25097656, 0.25982666, 0.2539978, 0.24578857,
+ 0.24325562, 0.25292969, 0.28744507, 0.34677124, 0.42510986,
+ 0.51596069, 0.60205078, 0.67550659, 0.71774292, 0.728302,
+ 0.70874023, 0.6612854, 0.59188843, 0.49536133, 0.37322998,
+ 0.23904419, 0.10256958, -0.030303955, -0.15093994, -0.24526978,
+ -0.31253052, -0.3414917, -0.33178711, -0.29302979, -0.23806763,
+ -0.17816162, -0.13470459, -0.12387085, -0.15142822, -0.20706177,
+ -0.28427124, -0.37112427, -0.44927979, -0.50619507, -0.53219604,
+ -0.53118896, -0.49990845, -0.45379639, -0.39599609, -0.31643677,
+ -0.22329712, -0.15414429, -0.1050415, -0.075592041, -0.0753479,
+ -0.088775635, -0.099090576, -0.086639404, -0.035797119,
+ 0.052154541, 0.1661377, 0.28082275, 0.39169312, 0.50491333,
+ 0.59762573, 0.67288208, 0.71621704, 0.73251343, 0.71405029,
+ 0.66171265, 0.60040283, 0.53762817, 0.46520996, 0.3727417,
+ 0.26971436, 0.17245483, 0.092346191, 0.034851074, 0.0072937012,
+ 0.007232666, 0.017547607, 0.01852417, 0.020172119, 0.023345947,
+ 0.014434814, -0.013946533, -0.054168701, -0.094726562, -0.14425659,
+ -0.20623779, -0.27316284, -0.34069824, -0.40481567, -0.4647522,
+ -0.51278687, -0.55215454, -0.57962036, -0.58953857, -0.59140015,
+ -0.57885742, -0.55456543, -0.51055908, -0.45095825, -0.37948608,
+ -0.29974365, -0.22027588, -0.13543701, -0.047271729, 0.033721924,
+ 0.1005249, 0.14877319, 0.18429565, 0.20465088, 0.21621704,
+ 0.2272644, 0.23416138, 0.24511719, 0.26138306, 0.2805481,
+ 0.3006897, 0.32943726, 0.36660767, 0.40802002, 0.44424438,
+ 0.47698975, 0.50256348, 0.52005005, 0.5267334, 0.52258301,
+ 0.50723267, 0.47485352, 0.42205811, 0.34805298, 0.26202393,
+ 0.16522217, 0.067749023, -0.024169922, -0.1060791, -0.18280029,
+ -0.25424194, -0.31921387, -0.37774658, -0.43612671, -0.50094604,
+ -0.56121826, -0.61495972, -0.66091919, -0.69436646, -0.70004272,
+ -0.67868042, -0.63104248, -0.56182861, -0.48074341, -0.39840698,
+ -0.31900024, -0.24609375, -0.18695068, -0.1461792, -0.11993408,
+ -0.11032104, -0.10159302, -0.091918945, -0.076904297, -0.069580078,
+ -0.058898926, -0.038146973, -0.012542725, 0.014831543, 0.043304443,
+ 0.082824707, 0.13180542, 0.1895752, 0.25256348, 0.32229614,
+ 0.38531494, 0.43493652, 0.4697876, 0.48736572, 0.48733521,
+ 0.46533203, 0.42901611, 0.38223267, 0.33636475, 0.2819519,
+ 0.22467041, 0.16455078, 0.10604858, 0.047485352, -0.010040283,
+ -0.057098389, -0.093933105, -0.12252808, -0.14291382, -0.15545654,
+ -0.16064453, -0.16348267, -0.16918945, -0.17095947, -0.17773438,
+ -0.19436646, -0.21868896, -0.25158691, -0.2890625, -0.33297729,
+ -0.37677002, -0.41171265, -0.43563843, -0.44619751, -0.44320679,
+ -0.42520142, -0.39151001, -0.34609985, -0.29324341, -0.23846436,
+ -0.18026733, -0.12319946, -0.068023682, -0.017944336, 0.033691406,
+ 0.08416748, 0.13388062, 0.18310547, 0.23513794, 0.28579712,
+ 0.3314209, 0.37133789, 0.40841675, 0.44143677, 0.46252441,
+ 0.47073364, 0.46435547, 0.44342041, 0.40725708, 0.35971069,
+ 0.30911255, 0.26272583, 0.22372437, 0.19876099, 0.18948364,
+ 0.18948364, 0.19799805, 0.21658325, 0.23733521, 0.25439453,
+ 0.26513672, 0.26702881, 0.25582886, 0.2338562, 0.19677734,
+ 0.15100098, 0.097106934, 0.036804199, -0.02456665, -0.087005615,
+ -0.14819336, -0.20632935, -0.26040649, -0.30117798, -0.33422852,
+ -0.35610962, -0.36178589, -0.3522644, -0.3237915, -0.28857422,
+ -0.24789429, -0.20108032, -0.14822388, -0.097442627, -0.055877686,
+ -0.019500732, 0.0064086914, 0.024627686, 0.033721924, 0.042114258,
+ 0.052032471, 0.069763184, 0.094207764, 0.12030029, 0.14993286,
+ 0.18215942, 0.22003174, 0.26171875, 0.30029297, 0.33355713,
+ 0.35992432, 0.3833313, 0.40148926, 0.41094971, 0.40899658,
+ 0.39849854, 0.37387085, 0.34091187, 0.30215454, 0.26016235,
+ 0.2170105, 0.17681885, 0.13604736, 0.093658447, 0.049316406,
+ 0.0074462891, -0.037322998, -0.086120605, -0.13262939, -0.18286133,
+ -0.22872925, -0.26879883, -0.3026123, -0.33206177, -0.35943604,
+ -0.37924194, -0.39431763, -0.40466309, -0.40936279, -0.40270996,
+ -0.38815308, -0.36676025, -0.3421936, -0.31149292, -0.27597046,
+ -0.24679565, -0.22177124, -0.20294189, -0.19259644, -0.18527222,
+ -0.18157959, -0.17645264, -0.16998291, -0.1524353, -0.12554932,
+ -0.086669922, -0.03894043, 0.016204834, 0.075744629, 0.13665771,
+ 0.18896484, 0.23040771, 0.26107788, 0.28408813, 0.29443359,
+ 0.29440308, 0.28460693, 0.27456665, 0.26107788, 0.24020386,
+ 0.21322632, 0.18551636, 0.15698242, 0.12554932, 0.095855713,
+ 0.069152832, 0.045501709, 0.020141602, -0.0030517578, -0.026702881,
+ -0.0496521, -0.071960449, -0.098327637, -0.12268066, -0.14907837,
+ -0.17523193, -0.20068359, -0.22494507, -0.2482605, -0.27352905,
+ -0.29666138, -0.31420898, -0.32751465, -0.33670044, -0.33874512,
+ -0.32943726, -0.31417847, -0.29504395, -0.26898193, -0.23904419,
+ -0.20245361, -0.16390991, -0.1210022, -0.078308105, -0.039337158,
+ -0.0037231445, 0.029174805, 0.05847168, 0.084106445, 0.1078186,
+ 0.13174438, 0.15719604, 0.17941284, 0.20126343, 0.22348022,
+ 0.2432251, 0.2578125, 0.2640686, 0.26593018, 0.25933838,
+ 0.24685669, 0.2288208, 0.21047974, 0.19494629, 0.18075562,
+ 0.17199707, 0.17199707, 0.17175293, 0.1729126, 0.17126465,
+ 0.16873169, 0.16256714, 0.15036011, 0.1355896, 0.11254883,
+ 0.083465576, 0.050079346, 0.01159668, -0.030029297, -0.074707031,
+ -0.11532593, -0.15432739, -0.18942261, -0.21673584, -0.23681641,
+ -0.24554443, -0.24703979, -0.24472046, -0.23815918, -0.22784424,
+ -0.21243286, -0.19384766, -0.17596436, -0.15844727, -0.14089966,
+ -0.12030029, -0.099395752, -0.076538086, -0.058746338,
+ -0.034484863, -0.0097351074, 0.015625, 0.037445068, 0.063079834,
+ 0.087738037, 0.11401367, 0.13973999, 0.16848755, 0.19680786,
+ 0.2244873, 0.25567627, 0.28305054, 0.30465698, 0.31854248,
+ 0.32287598, 0.31808472, 0.30102539, 0.27633667, 0.24591064,
+ 0.20962524, 0.17144775, 0.13021851, 0.09487915, 0.057861328,
+ 0.023651123, -0.014129639, -0.051239014, -0.086639404, -0.12316895,
+ -0.15304565, -0.18545532, -0.21154785, -0.23434448, -0.25100708,
+ -0.26113892, -0.26712036, -0.26678467, -0.26687622, -0.262146,
+ -0.25656128, -0.24734497, -0.23501587, -0.22433472, -0.20773315,
+ -0.19207764, -0.17459106, -0.15997314, -0.14196777, -0.12670898,
+ -0.1166687, -0.10726929, -0.099243164, -0.090179443, -0.078521729,
+ -0.062225342, -0.038360596, -0.0068054199, 0.031402588,
+ 0.072143555, 0.11181641, 0.15362549, 0.19085693, 0.22195435,
+ 0.24661255, 0.26379395, 0.27166748, 0.27072144, 0.26507568,
+ 0.25247192, 0.2348938, 0.21447754, 0.18756104, 0.15771484,
+ 0.13241577, 0.10873413, 0.087036133, 0.065460205, 0.046875,
+ 0.029754639, 0.013153076, -0.0065917969, -0.024993896,
+ -0.046051025, -0.067810059, -0.092285156, -0.11779785, -0.14529419,
+ -0.17376709, -0.19503784, -0.21487427, -0.23205566, -0.24533081,
+ -0.25128174, -0.2522583, -0.24685669, -0.23486328, -0.21954346,
+ -0.19946289, -0.1786499, -0.15280151, -0.12744141, -0.098022461,
+ -0.069091797, -0.038146973, -0.0079040527, 0.024719238,
+ 0.054351807, 0.082275391, 0.11019897, 0.13510132, 0.15545654,
+ 0.17276001, 0.1854248, 0.19042969, 0.19281006, 0.1930542,
+ 0.19232178, 0.18795776, 0.17938232, 0.17156982, 0.16223145,
+ 0.15603638, 0.15182495, 0.15118408, 0.14651489, 0.14263916,
+ 0.13916016, 0.1343689, 0.12649536, 0.11480713, 0.10400391,
+ 0.091766357, 0.079589844, 0.063781738, 0.04776001, 0.029510498,
+ 0.013061523, -0.0087890625, -0.034454346, -0.06362915,
+ -0.097381592, -0.12896729, -0.15893555, -0.18429565, -0.20910645,
+ -0.22930908, -0.2411499, -0.25009155, -0.2505188, -0.24719238,
+ -0.23956299, -0.22445679, -0.20892334, -0.18774414, -0.16699219,
+ -0.14205933, -0.12145996, -0.10317993, -0.085449219, -0.066101074,
+ -0.050048828, -0.03326416, -0.014404297, 0.0099182129, 0.041809082,
+ 0.077087402, 0.11599731, 0.14718628, 0.18060303, 0.20654297,
+ 0.23117065, 0.25247192, 0.27026367, 0.28042603, 0.27871704,
+ 0.27175903, 0.25527954, 0.2315979, 0.20584106, 0.17654419,
+ 0.1446228, 0.1086731, 0.073699951, 0.040588379, 0.011627197,
+ -0.016143799, -0.044189453, -0.071838379, -0.098449707,
+ -0.12316895, -0.14602661, -0.16595459, -0.17871094, -0.18606567,
+ -0.19488525, -0.20278931, -0.209198, -0.21121216, -0.21276855,
+ -0.21395874, -0.21328735, -0.21072388, -0.20718384, -0.20404053,
+ -0.19812012, -0.19073486, -0.17901611, -0.16781616, -0.15267944,
+ -0.13824463, -0.12042236, -0.098999023, -0.077453613, -0.053497314,
+ -0.029022217, -0.001373291, 0.022583008, 0.050720215, 0.077026367,
+ 0.10748291, 0.13626099, 0.16424561, 0.18908691, 0.21191406,
+ 0.2300415, 0.2428894, 0.25292969, 0.25643921, 0.25924683,
+ 0.25518799, 0.24127197, 0.22161865, 0.19989014, 0.17800903,
+ 0.14935303, 0.12268066, 0.094787598, 0.068878174, 0.041046143,
+ 0.018585205, 0.0020141602, -0.0094604492, -0.01651001, -0.02243042,
+ -0.031860352, -0.049102783, -0.072113037, -0.098083496,
+ -0.12472534, -0.14935303, -0.17062378, -0.18566895, -0.19500732,
+ -0.19784546, -0.19299316, -0.18365479, -0.17153931, -0.1555481,
+ -0.13491821, -0.11233521, -0.090209961, -0.063781738, -0.038879395,
+ -0.017089844, 0.0027770996, 0.021697998, 0.041046143, 0.059844971,
+ 0.078674316, 0.093536377, 0.10656738, 0.11816406, 0.12698364,
+ 0.13323975, 0.13742065, 0.14559937, 0.1522522, 0.15563965,
+ 0.15548706, 0.1583252, 0.15756226, 0.15576172, 0.15216064,
+ 0.1479187, 0.14260864, 0.13577271, 0.1272583, 0.11904907,
+ 0.10968018, 0.10412598, 0.096618652, 0.087615967, 0.07522583,
+ 0.059265137, 0.039978027, 0.017852783, -0.0061950684, -0.029510498,
+ -0.05065918, -0.075500488, -0.099395752, -0.12225342, -0.1418457,
+ -0.16101074, -0.17797852, -0.1932373, -0.20556641, -0.20901489,
+ -0.21026611, -0.20684814, -0.20016479, -0.18768311, -0.17312622,
+ -0.15994263, -0.14834595, -0.13482666, -0.11865234, -0.10229492,
+ -0.083404541, -0.063079834, -0.039276123, -0.014129639,
+ 0.011199951, 0.035583496, 0.059417725, 0.079925537, 0.098571777,
+ 0.11416626, 0.1270752, 0.14013672, 0.15286255, 0.16619873,
+ 0.17810059, 0.18783569, 0.19454956, 0.19598389, 0.19143677,
+ 0.18264771, 0.16867065, 0.15258789, 0.13143921, 0.10482788,
+ 0.075073242, 0.045928955, 0.018371582, -0.0075683594, -0.032928467,
+ -0.054992676, -0.072662354, -0.089813232, -0.10479736, -0.12127686,
+ -0.13748169, -0.15161133, -0.16473389, -0.17370605, -0.18240356,
+ -0.18569946, -0.18682861, -0.18756104, -0.18310547, -0.18099976,
+ -0.17584229, -0.17102051, -0.16162109, -0.15145874, -0.1421814,
+ -0.12973022, -0.11398315, -0.096557617, -0.078460693, -0.061035156,
+ -0.042541504, -0.023590088, -0.0029296875, 0.020996094,
+ 0.044403076, 0.068237305, 0.092926025, 0.11682129, 0.13772583,
+ 0.15460205, 0.17050171, 0.18438721, 0.19360352, 0.19952393,
+ 0.20303345, 0.2048645, 0.20132446, 0.1930542, 0.18280029,
+ 0.16989136, 0.1546936, 0.13711548, 0.12115479, 0.10336304,
+ 0.087890625, 0.068023682, 0.049804688, 0.028320312, 0.0081787109,
+ -0.012664795, -0.030334473, -0.046783447, -0.061584473,
+ -0.073883057, -0.084655762, -0.093719482, -0.10314941, -0.11251831,
+ -0.12094116, -0.1300354, -0.13421631, -0.13647461, -0.13491821,
+ -0.13186646, -0.12530518, -0.11520386, -0.10275269, -0.088775635,
+ -0.074310303, -0.061462402, -0.046875, -0.032409668, -0.014892578,
+ 0.00057983398, 0.016967773, 0.031738281, 0.0440979, 0.054656982,
+ 0.063659668, 0.073791504, 0.081176758, 0.088562012, 0.095916748,
+ 0.10043335, 0.10443115, 0.10519409, 0.1076355, 0.1071167,
+ 0.10748291, 0.10601807, 0.1026001, 0.10031128, 0.095123291,
+ 0.08972168, 0.082763672, 0.075164795, 0.06729126, 0.057922363,
+ 0.049865723, 0.042144775, 0.035125732, 0.026367188, 0.016571045,
+ 0.0040893555, -0.0084228516, -0.025054932, -0.042053223,
+ -0.060974121, -0.077178955, -0.093902588, -0.10845947, -0.1229248,
+ -0.13531494, -0.14489746, -0.15274048, -0.15701294, -0.15966797,
+ -0.15670776, -0.15130615, -0.140625, -0.12561035, -0.10900879,
+ -0.091644287, -0.077362061, -0.063690186, -0.051879883,
+ -0.04083252, -0.028869629, -0.017059326, -0.0053710938,
+ 0.0051574707, 0.020172119, 0.034484863, 0.051361084, 0.067810059,
+ 0.085540771, 0.10223389, 0.11761475, 0.13146973, 0.14044189,
+ 0.1468811, 0.14923096, 0.14846802, 0.14407349, 0.13641357,
+ 0.12796021, 0.11773682, 0.1076355, 0.09463501, 0.081207275,
+ 0.065124512, 0.050323486, 0.035552979, 0.020965576, 0.0063476562,
+ -0.0094299316, -0.024810791, -0.040008545, -0.054534912,
+ -0.0703125, -0.084228516, -0.096862793, -0.10809326, -0.1171875,
+ -0.12515259, -0.13067627, -0.13568115, -0.13632202, -0.13449097,
+ -0.131073, -0.12503052, -0.11868286, -0.11099243, -0.10317993,
+ -0.095306396, -0.087158203, -0.077667236, -0.068115234,
+ -0.059082031, -0.047241211, -0.033966064, -0.019805908,
+ -0.0041503906, 0.012573242, 0.030029297, 0.047637939, 0.063751221,
+ 0.079162598, 0.092987061, 0.1055603, 0.11737061, 0.12628174,
+ 0.13504028, 0.14266968, 0.14840698, 0.1519165, 0.15158081,
+ 0.14685059, 0.14041138, 0.13082886, 0.11962891, 0.10525513,
+ 0.089599609, 0.072784424, 0.057556152, 0.044464111, 0.032470703,
+ 0.02053833, 0.0086364746, -0.0019226074, -0.013336182,
+ -0.026184082, -0.039398193, -0.052368164, -0.064605713,
+ -0.076293945, -0.086303711, -0.09475708, -0.10128784, -0.10568237,
+ -0.10748291, -0.10894775, -0.10787964, -0.10577393, -0.10229492,
+ -0.097198486, -0.090087891, -0.081695557, -0.07244873,
+ -0.062927246, -0.051940918, -0.041748047, -0.028839111,
+ -0.015960693, -0.0022277832, 0.011779785, 0.024932861, 0.038482666,
+ 0.048614502, 0.059326172, 0.066925049, 0.072021484, 0.077026367,
+ 0.079681396, 0.082733154, 0.082855225, 0.081481934, 0.08001709,
+ 0.079833984, 0.079345703, 0.079162598, 0.078582764, 0.078521729,
+ 0.078582764, 0.077575684, 0.073059082, 0.065612793, 0.055480957,
+ 0.044189453, 0.031768799, 0.019744873, 0.008972168, -0.00094604492,
+ -0.0081176758, -0.013885498, -0.018463135, -0.025634766,
+ -0.032623291, -0.041442871, -0.05279541, -0.0652771, -0.078399658,
+ -0.088256836, -0.098297119, -0.10681152, -0.112854, -0.11355591,
+ -0.11132812, -0.10617065, -0.098449707, -0.087738037, -0.077606201,
+ -0.068054199, -0.059051514, -0.051330566, -0.041503906,
+ -0.031066895, -0.019470215, -0.0077514648, 0.0030517578,
+ 0.014892578, 0.026062012, 0.038879395, 0.050079346, 0.060028076,
+ 0.069793701, 0.076568604, 0.082611084, 0.088989258, 0.094360352,
+ 0.098754883, 0.10293579, 0.10635376, 0.10720825, 0.10586548,
+ 0.10314941, 0.0987854, 0.093475342, 0.087432861, 0.079406738,
+ 0.070159912, 0.059204102, 0.048095703, 0.036529541, 0.023071289,
+ 0.010406494, -0.0024719238, -0.01361084, -0.026184082,
+ -0.036682129, -0.047180176, -0.056213379, -0.065765381,
+ -0.07510376, -0.082702637, -0.091064453, -0.09677124, -0.10232544,
+ -0.10546875, -0.1072998, -0.10693359, -0.10385132, -0.10055542,
+ -0.093078613, -0.085235596, -0.075439453, -0.065643311,
+ -0.054138184, -0.042449951, -0.029785156, -0.017822266,
+ -0.0068359375, 0.0038452148, 0.01373291, 0.023773193, 0.033081055,
+ 0.042053223, 0.049560547, 0.057952881, 0.066223145, 0.075775146,
+ 0.083190918, 0.08984375, 0.096191406, 0.10202026, 0.10595703,
+ 0.10742188, 0.10778809, 0.10528564, 0.1020813, 0.096069336,
+ 0.08883667, 0.07925415, 0.069458008, 0.057952881, 0.047454834,
+ 0.036804199, 0.026397705, 0.015777588, 0.004119873, -0.0077819824,
+ -0.019927979, -0.030822754, -0.040405273, -0.048980713,
+ -0.056610107, -0.062805176, -0.069366455, -0.074035645,
+ -0.077026367, -0.079406738, -0.079986572, -0.080322266,
+ -0.078338623, -0.07598877, -0.072479248, -0.067230225,
+ -0.061218262, -0.055847168, -0.050048828, -0.043823242,
+ -0.037536621, -0.030792236, -0.02230835, -0.012634277,
+ -0.0030822754, 0.0069580078, 0.016204834, 0.023040771, 0.03024292,
+ 0.036865234, 0.043518066, 0.051025391, 0.056396484, 0.061645508,
+ 0.063720703, 0.065185547, 0.065032959, 0.0652771, 0.06439209,
+ 0.06451416, 0.063598633, 0.062011719, 0.058654785, 0.055297852,
+ 0.053131104, 0.051208496, 0.048950195, 0.046905518, 0.042175293,
+ 0.035675049, 0.028411865, 0.019622803, 0.0091247559, -0.0016174316,
+ -0.012207031, -0.022521973, -0.031616211, -0.040618896,
+ -0.047302246, -0.052734375, -0.057098389, -0.060455322,
+ -0.064849854, -0.068664551, -0.07321167, -0.074829102, -0.07623291,
+ -0.075378418, -0.072814941, -0.069152832, -0.064819336,
+ -0.059417725, -0.052368164, -0.044769287, -0.036712646,
+ -0.027679443, -0.018005371, -0.0093383789, 0.0010375977,
+ 0.011474609, 0.022399902, 0.03125, 0.03793335, 0.042449951,
+ 0.045379639, 0.048065186, 0.050567627, 0.054260254, 0.058166504,
+ 0.062316895, 0.066436768, 0.068786621, 0.072113037, 0.074707031,
+ 0.077453613, 0.076507568, 0.074523926, 0.071838379, 0.06729126,
+ 0.061126709, 0.053771973, 0.045410156, 0.037078857, 0.027862549,
+ 0.019134521, 0.0096435547, 0.00079345703, -0.0076293945,
+ -0.016296387, -0.024810791, -0.034454346, -0.043334961,
+ -0.052703857, -0.06048584, -0.066101074, -0.070739746, -0.07220459,
+ -0.073394775, -0.072967529, -0.072509766, -0.072296143,
+ -0.070404053, -0.06842041, -0.064819336, -0.062072754,
+ -0.058624268, -0.05380249, -0.048400879, -0.039764404,
+ -0.031280518, -0.021881104, -0.012786865, -0.0053100586,
+ 0.0022888184, 0.0081176758, 0.014038086, 0.020568848, 0.026885986,
+ 0.032867432, 0.037628174, 0.042999268, 0.046722412, 0.052276611,
+ 0.056884766, 0.061584473, 0.065124512, 0.066955566, 0.068054199,
+ 0.067565918, 0.066589355, 0.06362915, 0.058410645, 0.052764893,
+ 0.045349121, 0.036987305, 0.029144287, 0.021606445, 0.015197754,
+ 0.0087280273, 0.0020446777, -0.004699707, -0.012115479,
+ -0.018920898, -0.02633667, -0.032897949, -0.037841797,
+ -0.042205811, -0.046783447, -0.050567627, -0.055114746,
+ -0.05847168, -0.061004639, -0.061401367, -0.059173584,
+ -0.056915283, -0.053955078, -0.049255371, -0.043121338,
+ -0.037384033, -0.032501221, -0.027709961, -0.023468018,
+ -0.018951416, -0.01385498, -0.0096740723, -0.005279541,
+ -0.0010986328, 0.0033874512, 0.0088806152, 0.01348877, 0.01953125,
+ 0.025024414, 0.031097412, 0.036895752, 0.0418396, 0.045837402,
+ 0.048492432, 0.050231934, 0.051208496, 0.052490234, 0.052856445,
+ 0.053344727, 0.052581787, 0.051452637, 0.049224854, 0.046356201,
+ 0.042938232, 0.038543701, 0.034362793, 0.029602051, 0.025726318,
+ 0.021606445, 0.017272949, 0.013641357, 0.009185791, 0.0037841797,
+ -0.0022888184, -0.0105896, -0.019439697, -0.027709961,
+ -0.034454346, -0.039642334, -0.044464111, -0.046569824,
+ -0.048400879, -0.047546387, -0.046142578, -0.043395996,
+ -0.040405273, -0.037994385, -0.035217285, -0.03414917,
+ -0.031890869, -0.029205322, -0.026306152, -0.021820068,
+ -0.018035889, -0.01361084, -0.0084228516, -0.001373291,
+ 0.0057067871, 0.011962891, 0.018157959, 0.022766113, 0.02722168,
+ 0.030090332, 0.032928467, 0.03503418, 0.036895752, 0.039001465,
+ 0.04107666, 0.042816162, 0.04397583, 0.045074463, 0.045562744,
+ 0.045654297, 0.045532227, 0.045135498, 0.043518066, 0.040618896,
+ 0.036437988, 0.032012939, 0.027099609, 0.021911621, 0.016296387,
+ 0.010955811, 0.006072998, 0.00048828125, -0.0053100586,
+ -0.011535645, -0.017303467, -0.023529053, -0.028717041,
+ -0.03427124, -0.038604736, -0.042572021, -0.045074463,
+ -0.046661377, -0.047851562, -0.04776001, -0.047668457,
+ -0.046691895, -0.045379639, -0.04385376, -0.042297363,
+ -0.040435791, -0.037322998, -0.033691406, -0.029205322,
+ -0.024749756, -0.019775391, -0.014556885, -0.0090942383,
+ -0.0034790039, 0.0011901855, 0.0063171387, 0.0095214844,
+ 0.013519287, 0.016174316, 0.019622803, 0.022094727, 0.024627686,
+ 0.027435303, 0.029876709, 0.032958984, 0.035858154, 0.038208008,
+ 0.039398193, 0.040374756, 0.040222168, 0.039978027, 0.039154053,
+ 0.037811279, 0.034820557, 0.030822754, 0.025695801, 0.020721436,
+ 0.015991211, 0.010864258, 0.006439209, 0.0018005371, -0.002166748,
+ -0.0062561035, -0.0096740723, -0.013244629, -0.01663208,
+ -0.019927979, -0.023742676, -0.026611328, -0.029907227,
+ -0.032684326, -0.035064697, -0.037261963, -0.037811279,
+ -0.037902832, -0.036437988, -0.033233643, -0.029876709,
+ -0.026031494, -0.021759033, -0.017456055, -0.014251709,
+ -0.011566162, -0.0094909668, -0.0071105957, -0.0048217773,
+ -0.0027770996, 0.00036621094, 0.0036010742, 0.0076904297,
+ 0.01159668, 0.015350342, 0.019226074, 0.021697998, 0.024749756,
+ 0.026947021, 0.029266357, 0.030853271, 0.032104492, 0.032470703,
+ 0.032165527, 0.03225708, 0.031860352, 0.03213501, 0.032104492,
+ 0.03213501, 0.031860352, 0.031005859, 0.029205322, 0.026550293,
+ 0.023406982, 0.01940918, 0.015258789, 0.010437012, 0.005859375,
+ 0.0013122559, -0.003112793, -0.0067443848, -0.010040283,
+ -0.01361084, -0.016662598, -0.020324707, -0.023193359,
+ -0.026062012, -0.028503418, -0.029663086, -0.030487061,
+ -0.030059814, -0.029418945, -0.027374268, -0.025024414,
+ -0.022857666, -0.0206604, -0.018585205, -0.016113281, -0.013397217,
+ -0.010192871, -0.0072021484, -0.0043029785, -0.002166748, 0,
+ 0.0024414062, 0.005065918, 0.0079345703, 0.01071167, 0.012878418,
+ 0.015380859, 0.017669678, 0.019958496, 0.021575928, 0.023284912,
+ 0.024078369, 0.024719238, 0.025024414, 0.02557373, 0.02633667,
+ 0.026275635, 0.02520752, 0.024017334, 0.022369385, 0.021057129,
+ 0.019622803, 0.017578125, 0.015258789, 0.012054443, 0.0086975098,
+ 0.0051269531, 0.0020141602, -0.00082397461, -0.00390625,
+ -0.0068054199, -0.010406494, -0.014129639, -0.017425537,
+ -0.020385742, -0.02230835, -0.025054932, -0.026916504,
+ -0.028961182, -0.029724121, -0.029937744, -0.029907227,
+ -0.02911377, -0.027770996, -0.025238037, -0.023010254,
+ -0.019714355, -0.016540527, -0.013641357, -0.011077881,
+ -0.008605957, -0.0062866211, -0.0043945312, -0.0021972656,
+ -0.00067138672, 0.0012512207, 0.0020751953, 0.0036315918,
+ 0.0053405762, 0.0081481934, 0.011352539, 0.014709473, 0.017944336,
+ 0.020202637, 0.022003174, 0.023742676, 0.02520752, 0.026031494,
+ 0.026062012, 0.025421143, 0.024261475, 0.022766113, 0.020904541,
+ 0.019287109, 0.017852783, 0.017333984, 0.017181396, 0.016357422,
+ 0.014770508, 0.012298584, 0.0095825195, 0.0057373047, 0.0017089844,
+ -0.0032043457, -0.0075073242, -0.011260986, -0.014068604,
+ -0.016021729, -0.017608643, -0.0184021, -0.019104004, -0.019775391,
+ -0.020507812, -0.020721436, -0.020355225, -0.019348145,
+ -0.017974854, -0.016235352, -0.014648438, -0.013183594,
+ -0.011657715, -0.010498047, -0.0097961426, -0.0091552734,
+ -0.0082702637, -0.0070800781, -0.0055236816, -0.003112793,
+ -0.00054931641, 0.0024719238, 0.0049743652, 0.0075073242,
+ 0.0095825195, 0.011352539, 0.012512207, 0.013580322, 0.014251709,
+ 0.015045166, 0.016113281, 0.017089844, 0.018096924, 0.018890381,
+ 0.019897461, 0.020629883, 0.020965576, 0.020782471, 0.019744873,
+ 0.018371582, 0.016113281, 0.014068604, 0.011260986, 0.0094604492,
+ 0.0072631836, 0.0054016113, 0.0033874512, 0.0014343262,
+ -0.0007019043, -0.0032958984, -0.0055847168, -0.0082397461,
+ -0.010650635, -0.013275146, -0.015167236, -0.016662598,
+ -0.017852783, -0.018218994, -0.018157959, -0.017486572,
+ -0.017181396, -0.01675415, -0.01651001, -0.015808105, -0.015014648,
+ -0.01385498, -0.012390137, -0.01083374, -0.0090332031,
+ -0.0072937012, -0.0054626465, -0.0038757324, -0.0022888184,
+ -0.00051879883, 0.0011901855, 0.0027770996, 0.0043334961,
+ 0.0057067871, 0.0071716309, 0.0084533691, 0.010101318, 0.011047363,
+ 0.011993408, 0.012969971, 0.013092041, 0.013427734, 0.013641357,
+ 0.013946533, 0.014221191, 0.014099121, 0.01385498, 0.012756348,
+ 0.012054443, 0.011322021, 0.010162354, 0.0087280273, 0.0073547363,
+ 0.0061950684, 0.0046386719, 0.0029602051, 0.0014953613,
+ -0.00033569336, -0.0021362305, -0.0043640137, -0.0064086914,
+ -0.0086975098, -0.010498047, -0.012023926, -0.013092041,
+ -0.013366699, -0.01348877, -0.013793945, -0.013763428,
+ -0.013977051, -0.013824463, -0.013519287, -0.013305664,
+ -0.012878418, -0.012390137, -0.011352539, -0.010131836,
+ -0.0085144043, -0.0065307617, -0.0048217773, -0.0028076172,
+ -0.00094604492, 0.00082397461, 0.0019836426, 0.0028991699,
+ 0.0037841797, 0.0042114258, 0.0050048828, 0.0057067871,
+ 0.0067443848, 0.0078735352, 0.0088195801, 0.0099182129,
+ 0.010986328, 0.011657715, 0.012145996, 0.012573242, 0.012969971,
+ 0.013000488, 0.0128479, 0.012481689, 0.011993408, 0.011352539,
+ 0.010498047, 0.0093688965, 0.0081176758, 0.0067749023,
+ 0.0054931641, 0.0044250488, 0.0032958984, 0.001953125,
+ 0.00054931641, -0.00085449219, -0.0026855469, -0.0042114258,
+ -0.0060119629, -0.0071716309, -0.0086364746, -0.0095825195,
+ -0.010284424, -0.010528564, -0.010498047, -0.010284424,
+ -0.0096740723, -0.0094299316, -0.0088195801, -0.0082092285,
+ -0.0076599121, -0.007232666, -0.0068359375, -0.0063171387,
+ -0.0056152344, -0.0047607422, -0.0038146973, -0.0027770996,
+ -0.0015563965, -0.00061035156, 0.00057983398, 0.0016174316,
+ 0.002532959, 0.0032348633, 0.0037536621, 0.0041503906,
+ 0.0043945312, 0.0048217773, 0.0053405762, 0.0060119629,
+ 0.0067443848, 0.0075073242, 0.0080566406, 0.0084228516,
+ 0.008392334, 0.0083618164, 0.0080566406, 0.0076293945,
+ 0.0071411133, 0.0067749023, 0.0062255859, 0.0054626465,
+ 0.0046081543, 0.0036315918, 0.0026550293, 0.0014648438,
+ 0.0002746582, -0.00076293945, -0.0018615723, -0.0027160645,
+ -0.0035400391, -0.0041809082, -0.0048522949, -0.0054626465,
+ -0.0061035156, -0.0067138672, -0.0072021484, -0.0072937012,
+ -0.0072937012, -0.0069885254, -0.0065002441, -0.0059204102,
+ -0.0051269531, -0.0045471191, -0.0039672852, -0.0036010742,
+ -0.0031738281, -0.0027770996, -0.0023803711, -0.0018310547,
+ -0.0012817383, -0.00064086914, -3.0517578e-05, 0.00064086914,
+ 0.0011901855, 0.0017700195, 0.0021972656, 0.002532959,
+ 0.0028381348, 0.003112793, 0.0034484863, 0.0038146973,
+ 0.0040893555, 0.0043334961, 0.0044250488, 0.0044555664,
+ 0.0045776367, 0.0046691895, 0.0047302246, 0.0046691895,
+ 0.0045471191, 0.0042724609, 0.00390625, 0.0035095215, 0.0029296875,
+ 0.0024414062, 0.001953125, 0.0014343262, 0.00085449219,
+ 0.00021362305, -0.00018310547, -0.00073242188, -0.0012207031,
+ -0.001739502, -0.002166748, 0
+ };
+
+static const unsigned defaultClickLength = sizeof(defaultClick) / sizeof(*defaultClick);
+
+static const float defaultClickEmphasis[] = {
+ 0.002166748, 0.0023193359, 0.001739502, 0.002166748, 0.0021362305,
+ 0.0018615723, 0.0020446777, 0.002166748, 0.0019836426, 0.0022277832,
+ 0.0018310547, 0.0023803711, 0.0022277832, 0.001953125, 0.0022888184,
+ 0.0018005371, 0.0025024414, 0.0018310547, 0.0019836426, 0.001953125,
+ 0.0020446777, 0.0017700195, 0.0021057129, 0.0020751953,
+ 0.0019836426, 0.0014343262, 0.0024414062, 0.0015869141,
+ 0.0022888184, 0.0016784668, 0.0025024414, 0.0017089844,
+ 0.0024719238, 0.0020141602, 0.0026855469, 0.0013427734,
+ 0.0028381348, 0.0015563965, 0.0020446777, 0.0018615723, 0.002532959,
+ 0.0015258789, 0.0021972656, 0.0016784668, 0.002166748, 0.0016479492,
+ 0.0021362305, 0.0018920898, 0.0021362305, 0.0017700195,
+ 0.0020141602, 0.0022277832, 0.001739502, 0.0022583008, 0.001953125,
+ 0.0021362305, 0.0018920898, 0.0020446777, 0.001953125, 0.0026550293,
+ 0.0014953613, 0.0023803711, 0.001953125, 0.0021972656, 0.0015869141,
+ 0.0017700195, 0.0020141602, 0.0022277832, 0.0015258789,
+ 0.0015869141, -0.0045471191, -0.011230469, -0.009185791,
+ -0.0038757324, -0.020690918, -0.030731201, -0.0088806152,
+ 0.0032958984, -0.0068664551, -0.0024719238, 0.024688721,
+ 0.035400391, 0.014892578, 0.0047607422, 0.011779785, 0.0035095215,
+ -0.012573242, -0.0059814453, 0.0065612793, 0.0039672852,
+ 0.0014343262, 0.010406494, 0.027374268, 0.021942139, 0.0065612793,
+ 0.010681152, 0.024688721, 0.024291992, 0.012451172, 0.023590088,
+ 0.033203125, 0.024139404, 0.010375977, 0.016662598, 0.026885986,
+ 0.039215088, 0.038330078, 0.039703369, 0.048309326, 0.046447754,
+ 0.029937744, 0.031311035, 0.066497803, 0.052856445, -0.0074768066,
+ -0.016998291, 0.016784668, 0.039428711, 0.021759033, 0.0040893555,
+ -0.0016174316, 0.012451172, 0.052215576, 0.047485352, 0.017150879,
+ 0.015075684, 0.013397217, 0.024475098, 0.035247803, 0.039978027,
+ 0.06137085, 0.080108643, 0.078521729, 0.054779053, 0.0625,
+ 0.1076355, 0.10934448, 0.079803467, 0.056945801, 0.056182861,
+ 0.047851562, 0.028503418, 0.022979736, 0.010803223, -0.015686035,
+ -0.050811768, -0.072509766, -0.057891846, -0.032073975,
+ -0.051300049, -0.078887939, -0.069366455, -0.038146973,
+ -0.0099182129, 0.010528564, 0.048492432, 0.082305908, 0.084838867,
+ 0.059753418, 0.0043029785, -0.087158203, -0.18395996, -0.2911377,
+ -0.37133789, -0.33422852, -0.28649902, -0.31976318, -0.33630371,
+ -0.22824097, 0.020385742, 0.24456787, 0.31582642, 0.37380981,
+ 0.40820312, 0.40539551, 0.41415405, 0.34210205, 0.20877075,
+ 0.010498047, -0.17623901, -0.22705078, -0.15548706, -0.039855957,
+ 0.0067443848, -0.0022277832, -0.050048828, -0.10186768, -0.11407471,
+ -0.1050415, -0.067352295, 0.0018615723, 0.079742432, 0.11517334,
+ 0.12005615, 0.14709473, 0.19543457, 0.2015686, 0.150177,
+ 0.052703857, -0.029602051, -0.084838867, -0.14590454, -0.18951416,
+ -0.18814087, -0.15014648, -0.11505127, -0.094360352, -0.076721191,
+ -0.037872314, 0.011749268, 0.034851074, 0.060791016, 0.11419678,
+ 0.14096069, 0.13140869, 0.1277771, 0.12313843, 0.10934448,
+ 0.055541992, -0.026397705, -0.07144165, -0.050262451, -0.0097961426,
+ -0.02822876, -0.15008545, -0.28927612, -0.32809448, -0.2772522,
+ -0.15994263, 0.016448975, 0.13085938, 0.12866211, 0.1072998,
+ 0.094177246, 0.036346436, -0.026245117, -0.040496826, -0.01348877,
+ 0.0085144043, 0.0070800781, -0.0086669922, -0.0038452148,
+ 0.040252686, 0.077026367, 0.071960449, 0.032470703, 0.002166748,
+ 0.0065612793, 0.0053100586, -0.025115967, -0.058532715,
+ -0.060699463, -0.015563965, 0.048278809, 0.086273193, 0.078582764,
+ 0.031524658, -0.026580811, -0.077911377, -0.11288452, -0.13244629,
+ -0.15325928, -0.14471436, -0.095672607, -0.048858643, -0.012115479,
+ 0.023132324, 0.051544189, 0.046691895, 0.01373291, -0.0097961426,
+ -0.016143799, -0.022460938, -0.025726318, 0.0075378418, 0.091522217,
+ 0.19741821, 0.23269653, 0.16726685, 0.12173462, 0.12973022,
+ 0.064300537, -0.12158203, -0.29794312, -0.33813477, -0.27990723,
+ -0.19500732, -0.063903809, 0.10449219, 0.23712158, 0.34381104,
+ 0.41766357, 0.37658691, 0.22747803, 0.056365967, -0.088317871,
+ -0.19509888, -0.21295166, -0.15499878, -0.1114502, -0.093597412,
+ -0.071289062, -0.034606934, 0.009552002, 0.068084717, 0.12075806,
+ 0.13098145, 0.11383057, 0.08291626, 0.037322998, -0.017211914,
+ -0.05456543, -0.074829102, -0.087768555, -0.076202393, -0.022735596,
+ 0.032653809, 0.045623779, 0.045806885, 0.040496826, 0.016845703,
+ -0.023712158, -0.057769775, -0.07232666, -0.055145264,
+ -0.00091552734, 0.063201904, 0.11480713, 0.13497925, 0.11572266,
+ 0.030731201, -0.11346436, -0.23406982, -0.27478027, -0.23690796,
+ -0.13735962, -0.016479492, 0.076904297, 0.09487915, 0.070220947,
+ 0.058074951, 0.05355835, 0.017181396, -0.096893311, -0.21951294,
+ -0.26168823, -0.20983887, -0.093109131, 0.051879883, 0.15631104,
+ 0.18319702, 0.15551758, 0.078826904, -0.012084961, -0.083007812,
+ -0.10766602, -0.085479736, -0.059906006, -0.040039062, -0.031646729,
+ -0.046142578, -0.065551758, -0.03414917, 0.025482178, 0.046325684,
+ 0.054473877, 0.073303223, 0.073791504, 0.068786621, 0.082366943,
+ 0.080596924, 0.052215576, 0.015594482, -0.0053405762, 0.0040588379,
+ 0.032501221, 0.065551758, 0.093322754, 0.1199646, 0.13677979,
+ 0.14523315, 0.1401062, 0.12902832, 0.11553955, 0.09664917,
+ 0.091278076, 0.13305664, 0.24594116, 0.38180542, 0.45907593,
+ 0.45343018, 0.4213562, 0.36801147, 0.31027222, 0.30541992,
+ 0.33691406, 0.35479736, 0.3321228, 0.27334595, 0.25701904,
+ 0.23641968, 0.18139648, 0.16793823, 0.17538452, 0.17803955,
+ 0.19009399, 0.25280762, 0.38833618, 0.54940796, 0.70336914,
+ 0.74789429, 0.64334106, 0.49359131, 0.30703735, 0.071624756,
+ -0.075897217, -0.096191406, -0.076568604, 0.023406982, 0.15078735,
+ 0.21612549, 0.30493164, 0.39697266, 0.41009521, 0.32348633,
+ 0.24707031, 0.20645142, 0.11102295, 0.0075073242, -0.046325684,
+ -0.038085938, 0.014251709, 0.096618652, 0.1842041, 0.21417236,
+ 0.15905762, 0.0016174316, -0.25387573, -0.57302856, -0.85641479,
+ -0.99038696, -0.99038696, -0.99038696, -0.99038696, -0.99038696,
+ -0.90664673, -0.64364624, -0.42892456, -0.32131958, -0.23550415,
+ -0.25338745, -0.32595825, -0.44995117, -0.57858276, -0.68716431,
+ -0.80804443, -0.90670776, -0.9654541, -0.97409058, -0.95211792,
+ -0.90264893, -0.85357666, -0.80429077, -0.7482605, -0.69125366,
+ -0.60876465, -0.46228027, -0.23776245, -0.049041748, 0.019989014,
+ 0.048950195, 0.033172607, -0.02142334, -0.084259033, -0.15020752,
+ -0.16220093, -0.14608765, -0.14526367, -0.16497803, -0.1781311,
+ -0.19717407, -0.24871826, -0.26089478, -0.21688843, -0.19818115,
+ -0.23718262, -0.2824707, -0.32797241, -0.36758423, -0.3258667,
+ -0.18960571, -0.082885742, -0.056365967, -0.054534912, -0.10766602,
+ -0.26501465, -0.44006348, -0.58209229, -0.71032715, -0.77719116,
+ -0.76467896, -0.68914795, -0.51403809, -0.27841187, -0.092163086,
+ 0.056030273, 0.16799927, 0.19827271, 0.18478394, 0.17562866,
+ 0.15100098, 0.066619873, -0.040313721, -0.15875244, -0.27044678,
+ -0.35754395, -0.39682007, -0.34078979, -0.22293091, -0.13269043,
+ -0.048034668, 0.0730896, 0.19732666, 0.30789185, 0.39804077,
+ 0.44244385, 0.41928101, 0.35534668, 0.29177856, 0.22891235,
+ 0.18084717, 0.15231323, 0.13360596, 0.13049316, 0.13156128,
+ 0.1293335, 0.11477661, 0.12258911, 0.1824646, 0.26675415,
+ 0.35171509, 0.43341064, 0.49163818, 0.51086426, 0.50985718,
+ 0.49337769, 0.45962524, 0.43182373, 0.42025757, 0.4161377,
+ 0.40631104, 0.40435791, 0.42172241, 0.44003296, 0.45986938,
+ 0.47451782, 0.47540283, 0.48825073, 0.51907349, 0.5612793,
+ 0.62319946, 0.7109375, 0.79650879, 0.86904907, 0.92111206,
+ 0.96124268, 0.96994019, 0.92593384, 0.83483887, 0.70803833,
+ 0.57583618, 0.45834351, 0.3828125, 0.35479736, 0.35110474,
+ 0.38894653, 0.45022583, 0.49264526, 0.48919678, 0.45336914,
+ 0.40823364, 0.35009766, 0.28097534, 0.22503662, 0.18313599,
+ 0.14697266, 0.11010742, 0.07019043, 0.023956299, -0.024658203,
+ -0.087219238, -0.14846802, -0.19796753, -0.23556519, -0.25576782,
+ -0.25366211, -0.2333374, -0.19955444, -0.13546753, -0.052581787,
+ 0.018371582, 0.079620361, 0.14343262, 0.20013428, 0.2388916,
+ 0.25930786, 0.26889038, 0.26208496, 0.24691772, 0.22842407,
+ 0.19110107, 0.14624023, 0.093017578, 0.034301758, -0.044189453,
+ -0.1378479, -0.22967529, -0.29983521, -0.32650757, -0.31271362,
+ -0.26196289, -0.19345093, -0.11380005, -0.032806396, 0.038330078,
+ 0.087677002, 0.10690308, 0.092254639, 0.035766602, -0.057952881,
+ -0.17190552, -0.28945923, -0.40023804, -0.49761963, -0.5635376,
+ -0.59222412, -0.60348511, -0.61352539, -0.60958862, -0.57702637,
+ -0.53674316, -0.49453735, -0.45465088, -0.42507935, -0.40863037,
+ -0.4095459, -0.42730713, -0.45852661, -0.49362183, -0.53048706,
+ -0.55499268, -0.5526123, -0.52798462, -0.49053955, -0.44320679,
+ -0.38500977, -0.30548096, -0.2182312, -0.14306641, -0.073547363,
+ -0.0094299316, 0.045196533, 0.083312988, 0.11129761, 0.14489746,
+ 0.19921875, 0.24578857, 0.25418091, 0.23397827, 0.20111084,
+ 0.14822388, 0.078582764, 0.020812988, -0.012390137, -0.02520752,
+ -0.010559082, 0.026947021, 0.081542969, 0.13687134, 0.18441772,
+ 0.21426392, 0.22711182, 0.21377563, 0.17559814, 0.12246704,
+ 0.060882568, -0.0017089844, -0.067504883, -0.12475586, -0.16159058,
+ -0.16809082, -0.15145874, -0.12081909, -0.077362061, -0.03012085,
+ 0.011444092, 0.044189453, 0.075256348, 0.1050415, 0.13238525,
+ 0.15667725, 0.17337036, 0.17050171, 0.14389038, 0.10055542,
+ 0.057220459, 0.016204834, -0.012664795, -0.025024414, -0.014221191,
+ 0.012939453, 0.063781738, 0.12664795, 0.19824219, 0.26501465,
+ 0.32858276, 0.3782959, 0.40698242, 0.42160034, 0.42788696,
+ 0.43948364, 0.46075439, 0.48413086, 0.49819946, 0.50167847,
+ 0.49963379, 0.48529053, 0.45324707, 0.40890503, 0.36273193,
+ 0.31619263, 0.27200317, 0.23919678, 0.21868896, 0.2046814,
+ 0.18276978, 0.15286255, 0.11727905, 0.071807861, 0.015777588,
+ -0.054199219, -0.12478638, -0.19580078, -0.25622559, -0.30892944,
+ -0.34820557, -0.37606812, -0.39535522, -0.40704346, -0.42147827,
+ -0.43313599, -0.4447937, -0.44998169, -0.44503784, -0.431427,
+ -0.40750122, -0.37838745, -0.34109497, -0.29644775, -0.24822998,
+ -0.1991272, -0.15881348, -0.12728882, -0.10827637, -0.09979248,
+ -0.094055176, -0.091125488, -0.089508057, -0.087646484, -0.0809021,
+ -0.072387695, -0.055328369, -0.035583496, -0.0079956055,
+ 0.018188477, 0.04309082, 0.060577393, 0.073272705, 0.080413818,
+ 0.084503174, 0.083343506, 0.07522583, 0.071136475, 0.076141357,
+ 0.088348389, 0.10449219, 0.12374878, 0.14376831, 0.1534729,
+ 0.14807129, 0.1255188, 0.092559814, 0.047485352, -0.0028076172,
+ -0.062286377, -0.12301636, -0.17855835, -0.22631836, -0.26260376,
+ -0.28588867, -0.29559326, -0.29629517, -0.287323, -0.27877808,
+ -0.26751709, -0.25668335, -0.24749756, -0.24139404, -0.24041748,
+ -0.23944092, -0.23544312, -0.22592163, -0.20898438, -0.184021,
+ -0.15014648, -0.11633301, -0.082702637, -0.0496521, -0.017944336,
+ 0.017486572, 0.052581787, 0.092041016, 0.13427734, 0.18481445,
+ 0.24057007, 0.29467773, 0.33944702, 0.37042236, 0.38433838,
+ 0.38241577, 0.36376953, 0.33966064, 0.31497192, 0.29443359,
+ 0.27792358, 0.2600708, 0.24700928, 0.23727417, 0.23452759,
+ 0.23358154, 0.23257446, 0.23406982, 0.23239136, 0.23312378,
+ 0.22958374, 0.22579956, 0.21710205, 0.20043945, 0.17419434,
+ 0.13870239, 0.096466064, 0.051971436, 0.010437012, -0.024963379,
+ -0.052490234, -0.066467285, -0.068969727, -0.058563232,
+ -0.044616699, -0.030029297, -0.017486572, -0.0077209473,
+ -0.0032043457, -0.0048217773, -0.012481689, -0.027801514,
+ -0.042724609, -0.060211182, -0.072937012, -0.081756592,
+ -0.082977295, -0.07800293, -0.064605713, -0.043792725, -0.013031006,
+ 0.028625488, 0.077667236, 0.13046265, 0.18130493, 0.22851562,
+ 0.26617432, 0.29119873, 0.3039856, 0.30383301, 0.2925415,
+ 0.27261353, 0.24078369, 0.20632935, 0.16989136, 0.13552856,
+ 0.1038208, 0.074462891, 0.045898438, 0.013061523, -0.021087646,
+ -0.06072998, -0.099700928, -0.14016724, -0.17874146, -0.21130371,
+ -0.23596191, -0.25204468, -0.26132202, -0.26803589, -0.27981567,
+ -0.29934692, -0.32730103, -0.36425781, -0.40698242, -0.45092773,
+ -0.48971558, -0.51776123, -0.53198242, -0.5333252, -0.52218628,
+ -0.50076294, -0.47000122, -0.43017578, -0.38583374, -0.33612061,
+ -0.28347778, -0.23306274, -0.18682861, -0.14859009, -0.11853027,
+ -0.099853516, -0.09072876, -0.088562012, -0.091369629, -0.098022461,
+ -0.10787964, -0.11395264, -0.11013794, -0.093841553, -0.069274902,
+ -0.035369873, 0.0026245117, 0.046783447, 0.090698242, 0.1315918,
+ 0.16296387, 0.18664551, 0.2038269, 0.2154541, 0.22036743,
+ 0.21444702, 0.20489502, 0.18753052, 0.16650391, 0.13882446,
+ 0.10861206, 0.078735352, 0.049346924, 0.024078369, 0.0013427734,
+ -0.017974854, -0.032165527, -0.043243408, -0.050262451, -0.05670166,
+ -0.061157227, -0.068695068, -0.078918457, -0.085601807,
+ -0.090698242, -0.093658447, -0.095581055, -0.092529297, -0.08404541,
+ -0.068939209, -0.053649902, -0.037017822, -0.016448975,
+ 0.0096740723, 0.041687012, 0.074798584, 0.10549927, 0.13494873,
+ 0.16445923, 0.1937561, 0.2208252, 0.24539185, 0.26721191,
+ 0.28359985, 0.29733276, 0.30651855, 0.31622314, 0.32266235,
+ 0.31842041, 0.31008911, 0.29681396, 0.2819519, 0.26678467,
+ 0.25457764, 0.24642944, 0.24273682, 0.23709106, 0.22891235,
+ 0.2197876, 0.21051025, 0.20257568, 0.19024658, 0.17764282,
+ 0.1607666, 0.14309692, 0.12210083, 0.096893311, 0.073150635,
+ 0.049530029, 0.028045654, 0.0048522949, -0.017669678, -0.036224365,
+ -0.050506592, -0.059112549, -0.066345215, -0.068939209,
+ -0.070495605, -0.073059082, -0.073028564, -0.076812744,
+ -0.080963135, -0.092010498, -0.10275269, -0.11016846, -0.11907959,
+ -0.12677002, -0.13555908, -0.13842773, -0.13674927, -0.13088989,
+ -0.11846924, -0.099334717, -0.072784424, -0.042541504,
+ -0.0082702637, 0.031524658, 0.072387695, 0.10968018, 0.13861084,
+ 0.15847778, 0.16812134, 0.16650391, 0.15774536, 0.14169312,
+ 0.12005615, 0.092895508, 0.061737061, 0.02923584, -0.0022277832,
+ -0.032836914, -0.05670166, -0.075439453, -0.093322754, -0.1121521,
+ -0.13204956, -0.15255737, -0.17541504, -0.19900513, -0.21817017,
+ -0.23519897, -0.25091553, -0.27148438, -0.29296875, -0.31069946,
+ -0.3243103, -0.33599854, -0.34689331, -0.35461426, -0.3598938,
+ -0.36212158, -0.36105347, -0.35699463, -0.34725952, -0.33319092,
+ -0.31484985, -0.29327393, -0.26959229, -0.24423218, -0.21859741,
+ -0.18777466, -0.15194702, -0.11468506, -0.079498291, -0.0496521,
+ -0.023529053, 0.001159668, 0.025848389, 0.044494629, 0.054168701,
+ 0.058135986, 0.059844971, 0.066894531, 0.075195312, 0.087585449,
+ 0.10009766, 0.11755371, 0.13864136, 0.16278076, 0.18545532,
+ 0.20370483, 0.22076416, 0.23773193, 0.25531006, 0.26928711,
+ 0.27508545, 0.27371216, 0.26660156, 0.25100708, 0.2260437,
+ 0.1942749, 0.16079712, 0.12878418, 0.10110474, 0.07244873,
+ 0.046051025, 0.024993896, 0.010284424, -0.0010070801, -0.0082397461,
+ -0.011383057, -0.0072937012, -0.0034179688, 0.0040893555,
+ 0.013519287, 0.022583008, 0.031219482, 0.032714844, 0.034851074,
+ 0.033508301, 0.033935547, 0.030975342, 0.031982422, 0.039794922,
+ 0.05569458, 0.077392578, 0.10113525, 0.1277771, 0.15429688,
+ 0.18026733, 0.20275879, 0.21591187, 0.22341919, 0.224823,
+ 0.22775269, 0.22766113, 0.22491455, 0.2170105, 0.20431519,
+ 0.19171143, 0.17459106, 0.15859985, 0.14315796, 0.12554932,
+ 0.10998535, 0.09463501, 0.083435059, 0.070465088, 0.057983398,
+ 0.048278809, 0.041351318, 0.036224365, 0.030639648, 0.021850586,
+ 0.012176514, -0.0034484863, -0.022735596, -0.045166016,
+ -0.068908691, -0.094421387, -0.11810303, -0.13882446, -0.15774536,
+ -0.17269897, -0.18533325, -0.19125366, -0.19116211, -0.18655396,
+ -0.18423462, -0.18267822, -0.17877197, -0.17248535, -0.16625977,
+ -0.16271973, -0.16104126, -0.16125488, -0.16192627, -0.16333008,
+ -0.16461182, -0.16616821, -0.16235352, -0.15325928, -0.13644409,
+ -0.11523438, -0.090240479, -0.058013916, -0.024383545, 0.0089111328,
+ 0.039093018, 0.067749023, 0.096221924, 0.11837769, 0.13458252,
+ 0.13946533, 0.13269043, 0.12045288, 0.099212646, 0.073608398,
+ 0.042266846, 0.011627197, -0.019042969, -0.04876709, -0.07409668,
+ -0.096038818, -0.11062622, -0.1239624, -0.1340332, -0.14199829,
+ -0.14428711, -0.14074707, -0.13641357, -0.13253784, -0.13400269,
+ -0.13830566, -0.1505127, -0.16162109, -0.17391968, -0.1847229,
+ -0.19418335, -0.2019043, -0.20770264, -0.21234131, -0.21121216,
+ -0.20510864, -0.19058228, -0.16986084, -0.14498901, -0.11407471,
+ -0.082061768, -0.048492432, -0.015533447, 0.018341064, 0.052185059,
+ 0.078826904, 0.10336304, 0.12106323, 0.1315918, 0.13513184,
+ 0.13653564, 0.13986206, 0.14501953, 0.14926147, 0.15634155,
+ 0.16189575, 0.16915894, 0.17584229, 0.18264771, 0.19329834,
+ 0.20681763, 0.22433472, 0.24029541, 0.25708008, 0.27435303,
+ 0.28552246, 0.28768921, 0.2796936, 0.26013184, 0.23287964,
+ 0.20193481, 0.17483521, 0.14996338, 0.12689209, 0.10336304,
+ 0.081939697, 0.063842773, 0.047302246, 0.031677246, 0.01953125,
+ 0.010559082, 0.0013427734, -0.0082397461, -0.016357422,
+ -0.019348145, -0.023223877, -0.023406982, -0.023895264,
+ -0.022155762, -0.020477295, -0.017089844, -0.013031006,
+ -0.0098571777, -0.0046691895, 6.1035156e-05, 0.0072937012,
+ 0.0128479, 0.025878906, 0.040618896, 0.055908203, 0.066558838,
+ 0.072021484, 0.076965332, 0.080383301, 0.081237793, 0.077575684,
+ 0.072113037, 0.067443848, 0.064880371, 0.063720703, 0.058959961,
+ 0.054534912, 0.047576904, 0.039276123, 0.025390625, 0.010986328,
+ -0.0061645508, -0.018859863, -0.028900146, -0.036376953,
+ -0.041473389, -0.047241211, -0.054260254, -0.063049316, -0.0730896,
+ -0.081085205, -0.090118408, -0.10089111, -0.11264038, -0.12442017,
+ -0.1350708, -0.14535522, -0.15383911, -0.16052246, -0.16329956,
+ -0.1668396, -0.17166138, -0.17819214, -0.18157959, -0.18133545,
+ -0.17935181, -0.1758728, -0.17181396, -0.16687012, -0.16067505,
+ -0.15344238, -0.14562988, -0.13626099, -0.12780762, -0.11743164,
+ -0.10961914, -0.098510742, -0.085601807, -0.071716309, -0.05758667,
+ -0.041412354, -0.024078369, -0.0043640137, 0.015960693, 0.037567139,
+ 0.060455322, 0.082855225, 0.10211182, 0.11419678, 0.12088013,
+ 0.12197876, 0.12145996, 0.11743164, 0.11026001, 0.096984863,
+ 0.077789307, 0.054504395, 0.031890869, 0.010986328, -0.0061340332,
+ -0.020507812, -0.032836914, -0.042541504, -0.050476074,
+ -0.056762695, -0.06137085, -0.065032959, -0.064727783, -0.064147949,
+ -0.060119629, -0.05770874, -0.056549072, -0.057098389, -0.059692383,
+ -0.063140869, -0.067321777, -0.072021484, -0.075439453,
+ -0.078033447, -0.077575684, -0.073059082, -0.063995361,
+ -0.049560547, -0.030212402, -0.008605957, 0.015930176, 0.039794922,
+ 0.065917969, 0.090820312, 0.11099243, 0.12619019, 0.13739014,
+ 0.1472168, 0.15374756, 0.15893555, 0.16152954, 0.16671753,
+ 0.17425537, 0.17889404, 0.18060303, 0.17886353, 0.17861938,
+ 0.17984009, 0.18179321, 0.18499756, 0.18548584, 0.18609619,
+ 0.18521118, 0.18234253, 0.17956543, 0.17547607, 0.1690979,
+ 0.16101074, 0.15505981, 0.14837646, 0.13739014, 0.12255859,
+ 0.10522461, 0.082397461, 0.05770874, 0.030609131, 0.0046691895,
+ -0.018676758, -0.037872314, -0.054779053, -0.069458008,
+ -0.078826904, -0.084136963, -0.085479736, -0.083404541,
+ -0.076324463, -0.066314697, -0.056060791, -0.049926758,
+ -0.043182373, -0.040252686, -0.037811279, -0.038543701,
+ -0.039276123, -0.040771484, -0.041687012, -0.042053223,
+ -0.043548584, -0.040161133, -0.034637451, -0.024841309,
+ -0.015197754, -0.0059509277, 0.001159668, 0.0042114258,
+ 0.0062866211, 0.0049438477, 0.0047302246, 0.0028686523,
+ -0.00082397461, -0.0034790039, -0.0077514648, -0.01260376,
+ -0.019500732, -0.02645874, -0.032409668, -0.041351318, -0.049163818,
+ -0.058532715, -0.068603516, -0.078948975, -0.088897705,
+ -0.094543457, -0.097167969, -0.095581055, -0.094726562,
+ -0.095001221, -0.095336914, -0.094726562, -0.096160889, -0.09866333,
+ -0.10427856, -0.1104126, -0.11727905, -0.12301636, -0.13006592,
+ -0.13479614, -0.13574219, -0.13119507, -0.12451172, -0.11630249,
+ -0.10476685, -0.094543457, -0.08416748, -0.074066162, -0.061767578,
+ -0.050415039, -0.040557861, -0.031402588, -0.023834229, -0.01361084,
+ -0.0036010742, 0.0055236816, 0.013122559, 0.02142334, 0.029418945,
+ 0.041717529, 0.056518555, 0.075714111, 0.095062256, 0.11523438,
+ 0.13363647, 0.146698, 0.15646362, 0.16061401, 0.16043091,
+ 0.15634155, 0.14889526, 0.13769531, 0.12127686, 0.10272217,
+ 0.085418701, 0.070739746, 0.055541992, 0.040405273, 0.024200439,
+ 0.010803223, -0.00048828125, -0.0087890625, -0.012481689,
+ -0.014404297, -0.014068604, -0.011230469, -0.0081787109,
+ -0.0049438477, -0.0041809082, -0.0060119629, -0.012237549,
+ -0.020355225, -0.027832031, -0.034759521, -0.042053223, -0.04675293,
+ -0.045349121, -0.042297363, -0.03604126, -0.027862549, -0.015777588,
+ -0.0011291504, 0.013397217, 0.030212402, 0.04598999, 0.061401367,
+ 0.074615479, 0.086242676, 0.094238281, 0.09979248, 0.10458374,
+ 0.10662842, 0.10894775, 0.11077881, 0.11056519, 0.11022949,
+ 0.10903931, 0.1072998, 0.10266113, 0.098999023, 0.095977783,
+ 0.095916748, 0.095611572, 0.094909668, 0.093963623, 0.092895508,
+ 0.092559814, 0.090423584, 0.084014893, 0.073852539, 0.059020996,
+ 0.044830322, 0.02822876, 0.012023926, -0.0049743652, -0.020050049,
+ -0.036193848, -0.052398682, -0.066253662, -0.078796387,
+ -0.089019775, -0.098083496, -0.10592651, -0.11224365, -0.11618042,
+ -0.11715698, -0.11807251, -0.11676025, -0.11459351, -0.11108398,
+ -0.10748291, -0.10400391, -0.10064697, -0.096923828, -0.092163086,
+ -0.086639404, -0.08114624, -0.075531006, -0.071838379, -0.06854248,
+ -0.064971924, -0.061035156, -0.054382324, -0.047393799,
+ -0.043518066, -0.04095459, -0.041351318, -0.041259766, -0.041931152,
+ -0.04095459, -0.037841797, -0.034210205, -0.029541016, -0.026550293,
+ -0.02444458, -0.024139404, -0.026397705, -0.03036499, -0.035675049,
+ -0.041046143, -0.04675293, -0.054168701, -0.061218262, -0.065704346,
+ -0.066650391, -0.066650391, -0.063537598, -0.06048584, -0.055664062,
+ -0.053375244, -0.052642822, -0.052764893, -0.054718018,
+ -0.053955078, -0.05355835, -0.052764893, -0.053405762, -0.056213379,
+ -0.06036377, -0.062744141, -0.063110352, -0.06072998, -0.054504395,
+ -0.044647217, -0.034057617, -0.022949219, -0.011810303, 0.002532959,
+ 0.015594482, 0.024383545, 0.032165527, 0.03894043, 0.047302246,
+ 0.055236816, 0.064605713, 0.072387695, 0.081115723, 0.088348389,
+ 0.094940186, 0.10223389, 0.11135864, 0.12249756, 0.13082886,
+ 0.13803101, 0.14520264, 0.14993286, 0.15118408, 0.14987183,
+ 0.14846802, 0.14581299, 0.13851929, 0.12878418, 0.11639404,
+ 0.10375977, 0.09173584, 0.078796387, 0.063842773, 0.048980713,
+ 0.034576416, 0.022338867, 0.011932373, 0.0039672852, 0.0011291504,
+ -0.00094604492, -0.0015563965, -0.0034484863, -0.0050354004,
+ -0.0083312988, -0.012390137, -0.01651001, -0.019683838,
+ -0.022003174, -0.024414062, -0.027557373, -0.03137207, -0.03314209,
+ -0.030700684, -0.028045654, -0.025482178, -0.022247314,
+ -0.018737793, -0.013275146, -0.0074157715, 0.0010070801,
+ 0.0093078613, 0.01763916, 0.027404785, 0.035583496, 0.043151855,
+ 0.047485352, 0.051239014, 0.053649902, 0.054626465, 0.054382324,
+ 0.053039551, 0.050323486, 0.046691895, 0.044158936, 0.041534424,
+ 0.039794922, 0.035797119, 0.031494141, 0.026580811, 0.021575928,
+ 0.017944336, 0.014038086, 0.0093688965, 0.0051574707,
+ -0.00067138672, -0.0070495605, -0.014984131, -0.021728516,
+ -0.030151367, -0.037719727, -0.049804688, -0.062255859,
+ -0.073791504, -0.08416748, -0.089599609, -0.096496582, -0.10055542,
+ -0.10531616, -0.10870361, -0.11083984, -0.11102295, -0.10925293,
+ -0.10610962, -0.10125732, -0.094848633, -0.086700439, -0.07925415,
+ -0.074005127, -0.070770264, -0.068511963, -0.065643311,
+ -0.060577393, -0.054595947, -0.049407959, -0.043914795,
+ -0.039794922, -0.033813477, -0.027923584, -0.022674561,
+ -0.017791748, -0.01260376, -0.008972168, -0.0076293945,
+ -0.0053100586, -0.0030517578, -0.0024719238, -0.0032043457,
+ -0.0035705566, -0.002746582, -0.0013427734, -0.0011901855,
+ -0.0012817383, -0.0016479492, -0.0030212402, -0.0040588379,
+ -0.0071411133, -0.0085449219, -0.010375977, -0.01171875,
+ -0.011230469, -0.012512207, -0.013305664, -0.014190674,
+ -0.014099121, -0.015625, -0.01763916, -0.020202637, -0.020172119,
+ -0.017730713, -0.014068604, -0.0097351074, -0.0065917969,
+ -0.0020751953, 0.0018310547, 0.0045471191, 0.0046691895,
+ 0.003326416, 0.0018615723, -0.00021362305, 0.0010986328,
+ 0.0056152344, 0.011962891, 0.019866943, 0.029846191, 0.040130615,
+ 0.050811768, 0.058746338, 0.068267822, 0.076721191, 0.083862305,
+ 0.091491699, 0.096008301, 0.10150146, 0.1036377, 0.10562134,
+ 0.10449219, 0.1026001, 0.10076904, 0.099822998, 0.098297119,
+ 0.095245361, 0.094207764, 0.091949463, 0.092773438, 0.093048096,
+ 0.093658447, 0.090881348, 0.084747314, 0.078186035, 0.068328857,
+ 0.058197021, 0.044403076, 0.031768799, 0.019866943, 0.010345459,
+ 0.0029602051, -0.0044555664, -0.011932373, -0.018920898,
+ -0.024993896, -0.029205322, -0.031768799, -0.034790039,
+ -0.036773682, -0.037841797, -0.04019165, -0.042785645, -0.045928955,
+ -0.045776367, -0.044006348, -0.040649414, -0.037902832,
+ -0.036834717, -0.035308838, -0.033569336, -0.030090332,
+ -0.025543213, -0.020263672, -0.014678955, -0.0094604492,
+ -0.0042114258, -0.00067138672, 0.0016784668, 0.0021362305,
+ 0.0038452148, 0.007598877, 0.0099487305, 0.013793945, 0.015838623,
+ 0.01852417, 0.019958496, 0.021087646, 0.021270752, 0.021911621,
+ 0.021789551, 0.020965576, 0.01776123, 0.013275146, 0.0070495605,
+ 0.00076293945, -0.004119873, -0.007232666, -0.009552002,
+ -0.012695312, -0.016052246, -0.019226074, -0.02331543, -0.028625488,
+ -0.032348633, -0.035736084, -0.038909912, -0.044372559,
+ -0.050354004, -0.056610107, -0.061309814, -0.065704346,
+ -0.065948486, -0.067230225, -0.06652832, -0.0652771, -0.061981201,
+ -0.057128906, -0.052185059, -0.046112061, -0.041595459,
+ -0.035461426, -0.031097412, -0.025970459, -0.022979736,
+ -0.019836426, -0.015899658, -0.01260376, -0.0087585449,
+ -0.0061950684, -0.0028991699, -0.0014953613, 0.0018615723,
+ 0.0055847168, 0.008605957, 0.011871338, 0.015594482, 0.020629883,
+ 0.025970459, 0.030212402, 0.034973145, 0.037322998, 0.037597656,
+ 0.036254883, 0.034698486, 0.032440186, 0.029937744, 0.026062012,
+ 0.021972656, 0.018432617, 0.013397217, 0.010528564, 0.0077514648,
+ 0.0076904297, 0.0078430176, 0.0095825195, 0.012512207, 0.01550293,
+ 0.017486572, 0.017150879, 0.015563965, 0.013031006, 0.010070801,
+ 0.0068969727, 0.0039367676, 0.0021057129, 0.0018920898,
+ 0.0032653809, 0.0064697266, 0.0092163086, 0.010437012, 0.0097961426,
+ 0.0078125, 0.0053405762, 0.0048828125, 0.0055236816, 0.0086669922,
+ 0.013061523, 0.019897461, 0.027252197, 0.035675049, 0.043518066,
+ 0.050018311, 0.056427002, 0.06072998, 0.062011719, 0.061859131,
+ 0.060546875, 0.060577393, 0.059173584, 0.056945801, 0.054138184,
+ 0.053283691, 0.053131104, 0.052764893, 0.050811768, 0.04864502,
+ 0.046295166, 0.044921875, 0.043182373, 0.040161133, 0.036529541,
+ 0.032287598, 0.028411865, 0.022247314, 0.015960693, 0.0095825195,
+ 0.0032958984, -0.0028991699, -0.01159668, -0.018249512, -0.02532959,
+ -0.03137207, -0.035919189, -0.040710449, -0.044006348, -0.049163818,
+ -0.052246094, -0.055969238, -0.056396484, -0.055511475,
+ -0.052825928, -0.049194336, -0.046844482, -0.04598999, -0.045227051,
+ -0.044586182, -0.042388916, -0.039611816, -0.037719727,
+ -0.035766602, -0.032806396, -0.030700684, -0.027313232, -0.02444458,
+ -0.020019531, -0.015533447, -0.012145996, -0.0091552734,
+ -0.0064697266, -0.0040893555, -0.00048828125, 0.001953125,
+ 0.0048522949, 0.0061950684, 0.007019043, 0.0083007812, 0.0091247559,
+ 0.0094909668, 0.0098876953, 0.010894775, 0.011566162, 0.0105896,
+ 0.0083007812, 0.0047607422, 0.0010986328, -0.0036621094,
+ -0.0073242188, -0.010223389, -0.011505127, -0.011993408,
+ -0.012786865, -0.015350342, -0.017669678, -0.019500732,
+ -0.022613525, -0.025115967, -0.027862549, -0.027832031,
+ -0.028320312, -0.029602051, -0.030761719, -0.033111572,
+ -0.033630371, -0.032592773, -0.030914307, -0.027008057, -0.02355957,
+ -0.020507812, -0.017211914, -0.014709473, -0.0097351074,
+ -0.0033874512, 0.0032958984, 0.010284424, 0.014007568, 0.017272949,
+ 0.017791748, 0.018371582, 0.018096924, 0.017272949, 0.016326904,
+ 0.016021729, 0.017028809, 0.020507812, 0.025238037, 0.031280518,
+ 0.036834717, 0.040283203, 0.04284668, 0.045410156, 0.048339844,
+ 0.050109863, 0.04800415, 0.044311523, 0.040557861, 0.036010742,
+ 0.031982422, 0.026977539, 0.022766113, 0.018829346, 0.015411377,
+ 0.012359619, 0.010925293, 0.0095214844, 0.010498047, 0.012054443,
+ 0.014221191, 0.016326904, 0.017150879, 0.016784668, 0.01473999,
+ 0.012481689, 0.0090026855, 0.0057678223, 0.002746582,
+ -0.00024414062, -6.1035156e-05, -0.00042724609, -0.00039672852,
+ -0.0024414062, -0.0037841797, -0.0043334961, -0.0034790039,
+ -0.0015563965, 0.0011901855, 0.0047302246, 0.0079345703,
+ 0.011108398, 0.013885498, 0.017150879, 0.020874023, 0.024139404,
+ 0.028411865, 0.031860352, 0.036010742, 0.038330078, 0.038574219,
+ 0.03805542, 0.035980225, 0.033905029, 0.03112793, 0.027496338,
+ 0.024414062, 0.020690918, 0.017791748, 0.013549805, 0.0098876953,
+ 0.0071105957, 0.0046081543, 0.0029296875, 0.0013122559,
+ 0.0002746582, -0.0014343262, -0.0029907227, -0.0065307617,
+ -0.009979248, -0.014831543, -0.02041626, -0.027008057, -0.036132812,
+ -0.043670654, -0.049591064, -0.053894043, -0.057312012,
+ -0.059570312, -0.059051514, -0.057617188, -0.05581665, -0.054962158,
+ -0.053283691, -0.051300049, -0.049591064, -0.049407959,
+ -0.049560547, -0.0496521, -0.04788208, -0.044830322, -0.040771484,
+ -0.03616333, -0.031066895, -0.024902344, -0.019226074, -0.014312744,
+ -0.010925293, -0.0085754395, -0.0065612793, -0.0048217773,
+ -0.0020141602, -0.00039672852, 0.0014648438, 0.003326416,
+ 0.0067749023, 0.009979248, 0.014068604, 0.016052246, 0.017486572,
+ 0.017700195, 0.018127441, 0.018066406, 0.017608643, 0.016845703,
+ 0.015838623, 0.014404297, 0.013214111, 0.011901855, 0.010650635,
+ 0.0085754395, 0.0069885254, 0.0051269531, 0.0030212402,
+ 0.00015258789, -0.0031738281, -0.0065307617, -0.0090637207,
+ -0.010498047, -0.011505127, -0.012023926, -0.01260376, -0.012115479,
+ -0.010406494, -0.0086975098, -0.0063781738, -0.005859375,
+ -0.0042114258, -0.0034179688, -0.0012207031, 0.00057983398,
+ 0.0030822754, 0.0048828125, 0.0070800781, 0.010040283, 0.013793945,
+ 0.01763916, 0.020935059, 0.024047852, 0.026245117, 0.02822876,
+ 0.028381348, 0.028015137, 0.027618408, 0.027496338, 0.0284729,
+ 0.029174805, 0.029815674, 0.030670166, 0.033081055, 0.035797119,
+ 0.037445068, 0.039154053, 0.039825439, 0.040283203, 0.03918457,
+ 0.036987305, 0.033874512, 0.02935791, 0.025177002, 0.020507812,
+ 0.016479492, 0.013031006, 0.010070801, 0.0077209473, 0.0056152344,
+ 0.003326416, 0.00048828125, -0.0017089844, -0.0030517578,
+ -0.0029602051, -0.003112793, -0.0025024414, -0.0024414062,
+ -0.0021362305, -0.0023498535, -0.0029907227, -0.0043029785,
+ -0.0059814453, -0.0078735352, -0.01083374, -0.013397217,
+ -0.016448975, -0.018890381, -0.020568848, -0.020080566, -0.01852417,
+ -0.016845703, -0.014007568, -0.0105896, -0.0066833496,
+ -0.0030517578, 0.0014953613, 0.0065002441, 0.0098571777,
+ 0.013122559, 0.014404297, 0.015472412, 0.016571045, 0.018035889,
+ 0.018585205, 0.018371582, 0.016540527, 0.014099121, 0.011413574,
+ 0.009185791, 0.0065917969, 0.0032653809, 0.00054931641,
+ -0.0018005371, -0.0024719238, -0.0046081543, -0.0062255859,
+ -0.0078430176, -0.009979248, -0.011627197, -0.015289307,
+ -0.017456055, -0.019897461, -0.022918701, -0.025543213,
+ -0.028747559, -0.031524658, -0.036865234, -0.041534424,
+ -0.045410156, -0.046875, -0.048126221, -0.049499512, -0.049163818,
+ -0.048828125, -0.047790527, -0.04574585, -0.043579102, -0.040924072,
+ -0.040222168, -0.038360596, -0.036895752, -0.034210205,
+ -0.031616211, -0.028289795, -0.024200439, -0.020294189,
+ -0.015838623, -0.011993408, -0.007598877, -0.0036010742,
+ 0.00054931641, 0.004486084, 0.0074157715, 0.0098571777, 0.012054443,
+ 0.01473999, 0.017700195, 0.019744873, 0.022399902, 0.02432251,
+ 0.025817871, 0.027130127, 0.027709961, 0.0284729, 0.027893066,
+ 0.027496338, 0.026580811, 0.025634766, 0.023681641, 0.021972656,
+ 0.019775391, 0.017730713, 0.016052246, 0.014556885, 0.014434814,
+ 0.013763428, 0.012268066, 0.0105896, 0.0091247559, 0.0077819824,
+ 0.0054626465, 0.0030822754, 0.00067138672, -0.0012207031,
+ -0.0028686523, -0.0048217773, -0.0047912598, -0.004486084,
+ -0.002746582, -0.00067138672, 0.0012512207, 0.0037231445,
+ 0.0054321289, 0.0074157715, 0.010192871, 0.013214111, 0.016448975,
+ 0.018005371, 0.019134521, 0.018463135, 0.017944336, 0.016723633,
+ 0.016448975, 0.01651001, 0.01651001, 0.017669678, 0.019622803,
+ 0.022064209, 0.024017334, 0.025909424, 0.026977539, 0.027008057,
+ 0.026733398, 0.025634766, 0.024261475, 0.022247314, 0.020202637,
+ 0.017730713, 0.01663208, 0.015319824, 0.014404297, 0.013092041,
+ 0.0098266602, 0.0065307617, 0.0032653809, 0.00061035156,
+ -0.0028076172, -0.0061340332, -0.0094909668, -0.012115479,
+ -0.013244629, -0.014251709, -0.015075684, -0.015808105,
+ -0.015991211, -0.016418457, -0.016601562, -0.01663208, -0.01675415,
+ -0.017333984, -0.018615723, -0.019775391, -0.02053833, -0.020721436,
+ -0.021820068, -0.022918701, -0.023651123, -0.023895264,
+ -0.023590088, -0.02331543, -0.022338867, -0.020141602, -0.017669678,
+ -0.014068604, -0.010528564, -0.0055236816, 0, 0.0051574707,
+ 0.008972168, 0.011291504, 0.012207031, 0.012420654, 0.01159668,
+ 0.0105896, 0.009185791, 0.0078735352, 0.0067749023, 0.0052490234,
+ 0.0040588379, 0.0025024414, 0.0013427734, 0.0014038086,
+ 0.0009765625, 0.00076293945, -0.00079345703, -0.0029907227,
+ -0.0054626465, -0.0073547363, -0.0095825195, -0.011383057,
+ -0.012237549, -0.013000488, -0.014373779, -0.016448975,
+ -0.018341064, -0.020446777, -0.02331543, -0.025909424, -0.02835083,
+ -0.028869629, -0.028839111, -0.028686523, -0.028106689,
+ -0.027740479, -0.027435303, -0.027313232, -0.026672363,
+ -0.025604248, -0.02355957, -0.020263672, -0.016204834, -0.011383057,
+ -0.0068359375, -0.0024719238, 0.00021362305, 0.0022583008,
+ 0.0036621094, 0.0053710938, 0.0079040527, 0.010162354, 0.013214111,
+ 0.016052246, 0.019042969, 0.022064209, 0.024871826, 0.027618408,
+ 0.029205322, 0.030761719, 0.031921387, 0.032012939, 0.032562256,
+ 0.032714844, 0.032958984, 0.032318115, 0.031860352, 0.030822754,
+ 0.03024292, 0.029510498, 0.028167725, 0.027099609, 0.024810791,
+ 0.022674561, 0.019958496, 0.018218994, 0.016143799, 0.014373779,
+ 0.012145996, 0.010101318, 0.0079345703, 0.0063476562, 0.0045471191,
+ 0.003112793, 0.00085449219, -0.00088500977, -0.002532959,
+ -0.0035095215, -0.0039672852, -0.0041503906, -0.0031433105,
+ -0.0017700195, -3.0517578e-05, 0.0010681152, 0.0033874512,
+ 0.0053405762, 0.0074768066, 0.0082397461, 0.0075683594, 0.007019043,
+ 0.005279541, 0.004486084, 0.0035400391, 0.0035400391, 0.0047607422,
+ 0.0061645508, 0.0079345703, 0.0090332031, 0.010314941, 0.010681152,
+ 0.010467529, 0.010467529, 0.009979248, 0.009765625, 0.0090637207,
+ 0.0083007812, 0.0075683594, 0.0065917969, 0.0066223145,
+ 0.0054626465, 0.0040893555, 0.0021362305, -3.0517578e-05,
+ -0.0024719238, -0.0052490234, -0.008026123, -0.010375977,
+ -0.012573242, -0.01461792, -0.01651001, -0.017822266, -0.018981934,
+ -0.019622803, -0.019592285, -0.020172119, -0.020751953,
+ -0.021728516, -0.022186279, -0.02230835, -0.02230835, -0.022155762,
+ -0.022583008, -0.022338867, -0.023193359, -0.023284912,
+ -0.023406982, -0.022766113, -0.022216797, -0.022094727,
+ -0.021484375, -0.021026611, -0.019836426, -0.018005371,
+ -0.015533447, -0.012512207, -0.0092773438, -0.0061340332,
+ -0.0029907227, 0.00076293945, 0.00390625, 0.0065002441,
+ 0.0084228516, 0.010070801, 0.011566162, 0.012054443, 0.012573242,
+ 0.011779785, 0.011077881, 0.010131836, 0.0088500977, 0.0075073242,
+ 0.0054321289, 0.0044555664, 0.003692627, 0.0032348633, 0.0028991699,
+ 0.0022583008, 0.0026245117, 0.0021972656, 0.001953125,
+ 0.00079345703, -0.001159668, -0.0028381348, -0.0046386719,
+ -0.0059814453, -0.0075378418, -0.0087890625, -0.010192871,
+ -0.01083374, -0.011993408, -0.012695312, -0.012756348, -0.012908936,
+ -0.012695312, -0.013061523, -0.012756348, -0.012145996,
+ -0.011352539, -0.010253906, -0.0094909668, -0.0081787109,
+ -0.0067138672, -0.0047912598, -0.0016784668, 0.00085449219,
+ 0.0041809082, 0.0070495605, 0.0098571777, 0.013061523, 0.016052246,
+ 0.019012451, 0.020965576, 0.022613525, 0.023590088, 0.024169922,
+ 0.02432251, 0.024078369, 0.024261475, 0.023681641, 0.024291992,
+ 0.024475098, 0.025390625, 0.026306152, 0.026641846, 0.027008057,
+ 0.026672363, 0.026641846, 0.026153564, 0.025482178, 0.024108887,
+ 0.022155762, 0.020050049, 0.017578125, 0.01461792, 0.011932373,
+ 0.0090332031, 0.0069580078, 0.0048828125, 0.0032653809, 0.001953125,
+ 0.0007019043, -0.00036621094, -0.0019226074, -0.0037536621,
+ -0.0056152344, -0.0076904297, -0.0087280273, -0.0090942383,
+ -0.0088195801, -0.0081481934, -0.0072937012, -0.006439209,
+ -0.005279541, -0.0043640137, -0.0034179688, -0.003112793,
+ -0.0025024414, -0.0022888184, -0.0019226074, -0.0015869141,
+ -0.0015869141, -0.0015258789, -0.0016784668, -0.0017700195,
+ -0.0016784668, -0.0013427734, -0.0011291504, -0.00061035156, 0,
+ 0.00079345703, 0.0012207031, 0.0015869141, 0.0016479492,
+ 0.0015258789, 0.0012817383, 0.00094604492, 0.00045776367,
+ -0.0002746582, -0.00088500977, -0.0016479492, -0.0024108887,
+ -0.0036621094, -0.0050354004, -0.0063476562, -0.0079956055,
+ -0.0096435547, -0.011535645, -0.013458252, -0.014953613,
+ -0.016296387, -0.017364502, -0.01776123, -0.018280029, -0.018371582,
+ -0.018035889, -0.017456055, -0.016479492, -0.015838623,
+ -0.015167236, -0.015228271, -0.015380859, -0.015625, -0.015716553,
+ -0.015411377, -0.015197754, -0.015106201, -0.01473999, -0.014221191,
+ -0.013092041, -0.012054443, -0.010742188, -0.008605957,
+ -0.006439209, -0.0038757324, -0.0016479492, 0.00079345703,
+ 0.0026550293, 0.0045471191, 0.0065612793, 0.009185791, 0.011566162,
+ 0.013427734, 0.014404297, 0.015075684, 0.015411377, 0.015319824,
+ 0.014801025, 0.013977051, 0.013305664, 0.012634277, 0.011932373,
+ 0.010864258, 0.0099182129, 0.0098571777, 0.0093994141, 0.0091247559,
+ 0.0080566406, 0.0068359375, 0.0056762695, 0.0043640137,
+ 0.0037841797, 0.0027770996, 0.0023803711, 0.0017700195,
+ 0.0010375977, 0, -0.0011901855, -0.0020446777, -0.0028991699,
+ -0.0037841797, -0.0050964355, -0.0057983398, -0.0063476562,
+ -0.0065917969, -0.0063781738, -0.0061950684, -0.0056152344,
+ -0.0050354004, -0.0045471191, -0.0035705566, -0.0025939941,
+ -0.00091552734, 0.00082397461, 0.0028076172, 0.0045471191,
+ 0.0061950684, 0.0078430176, 0.0096435547, 0.010742188, 0.011474609,
+ 0.012176514, 0.01260376, 0.013153076, 0.013458252, 0.014129639,
+ 0.014801025, 0.015228271, 0.015991211, 0.016204834, 0.01663208,
+ 0.016601562, 0.016357422, 0.015808105, 0.014770508, 0.014007568,
+ 0.012939453, 0.012268066, 0.011444092, 0.01071167, 0.010070801,
+ 0.0086975098, 0.0075683594, 0.0058288574, 0.0040588379,
+ 0.0018615723, 6.1035156e-05, -0.0015258789, -0.0029602051,
+ -0.0040283203, -0.0055236816, -0.0065307617, -0.0078735352,
+ -0.0090942383, -0.010131836, -0.010925293, -0.011260986,
+ -0.011322021, -0.011199951, -0.010955811, -0.010925293, -0.0105896,
+ -0.010375977, -0.0097351074, -0.0092163086, -0.0085754395,
+ -0.0077819824, -0.007232666, -0.0067443848, -0.0063171387,
+ -0.0060119629, -0.0053405762, -0.0050048828, -0.0045166016,
+ -0.0040588379, -0.0035400391, -0.0030517578, -0.0029907227,
+ -0.0027160645, -0.0028076172, -0.0025024414, -0.0021972656,
+ -0.001953125, -0.0013122559, -0.00091552734, -0.00033569336,
+ -0.00012207031, -0.00024414062, -0.00054931641, -0.0010375977,
+ -0.0018615723, -0.0028686523, -0.0036010742, -0.0042724609,
+ -0.0046691895, -0.0052490234, -0.0056152344, -0.0061035156,
+ -0.0066833496, -0.0074768066, -0.0083007812, -0.0089111328,
+ -0.0093688965, -0.0096435547, -0.0096740723, -0.0093994141,
+ -0.0086669922, -0.0079040527, -0.0073242188, -0.007019043,
+ -0.0067749023, -0.0067138672, -0.0064697266, -0.0060424805,
+ -0.0054931641, -0.0048828125, -0.0044250488, -0.0039367676,
+ -0.0031738281, -0.0024414062, -0.0014953613, -0.00039672852,
+ 0.0007019043, 0.001739502, 0.0028991699, 0.0042724609, 0.005645752,
+ 0.0072021484, 0.0087585449, 0.010192871, 0.011627197, 0.012542725,
+ 0.013244629, 0.01361084, 0.013671875, 0.013580322, 0.013122559,
+ 0.012512207, 0.012145996, 0.011993408, 0.011932373, 0.011779785,
+ 0.011352539, 0.010742188, 0.0099487305, 0.0090942383, 0.0079956055,
+ 0.0068054199, 0.0057373047, 0.0047912598, 0.004119873, 0.003326416,
+ 0.0027770996, 0.0021057129, 0.0015869141, 0.0010375977,
+ 0.00024414062, -0.00030517578, -0.00085449219, -0.0012512207,
+ -0.0015869141, -0.002166748, -0.0025939941, -0.0032043457,
+ -0.0038757324, -0.0043640137, -0.0044250488, -0.004486084,
+ -0.004119873, -0.0036621094, -0.0028381348, -0.0020751953,
+ -0.0012817383, -0.00064086914, -0.00012207031, 0.00051879883,
+ 0.0012512207, 0.002166748, 0.0032653809, 0.0042419434, 0.0049743652,
+ 0.0056152344, 0.0059509277, 0.0061645508, 0.0062866211,
+ 0.0061035156, 0.0059204102, 0.005645752, 0.005645752, 0.0054016113,
+ 0.0051879883, 0.0050354004, 0.0049133301, 0.0049133301, 0.004699707,
+ 0.0045776367, 0.0043640137, 0.0040283203, 0.0033569336,
+ 0.0025024414, 0.0013122559, 6.1035156e-05, -0.0009765625,
+ -0.0021972656, -0.0028076172, -0.0036010742, -0.0038452148,
+ -0.0042419434, -0.004699707, -0.0052185059, -0.0058898926,
+ -0.0064697266, -0.0073242188, -0.0082397461, -0.0091552734,
+ -0.0096740723, -0.0099182129, -0.0096435547, -0.0091552734,
+ -0.0085449219, -0.0079040527, -0.0074768066, -0.0068969727,
+ -0.0066223145, -0.0062561035, -0.005859375, -0.0055236816,
+ -0.0049438477, -0.0045471191, -0.0039672852, -0.0035095215,
+ -0.0030822754, -0.002746582, -0.0026245117, -0.0025939941,
+ -0.002532959, -0.0024414062, -0.0020141602, -0.0015869141,
+ -0.001159668, -0.00067138672, -0.0002746582, 0.00021362305,
+ 0.00033569336, 0.00045776367, 0.00051879883, 0.00064086914,
+ 0.00079345703, 0.00088500977, 0.00094604492, 0.00082397461,
+ 0.00064086914, 0.00030517578, 0.00015258789, -0.00024414062,
+ -0.00061035156, -0.0011901855, -0.0016174316, -0.0020446777,
+ -0.0022888184, -0.0023803711, -0.0023803711, -0.0023803711,
+ -0.0023498535, -0.0022888184, -0.0020446777, -0.0018005371,
+ -0.0014343262, -0.0011901855, -0.00088500977, -0.00064086914,
+ -0.00045776367, -0.00039672852, -0.00033569336, -0.00015258789, 0,
+ 0.00030517578, 0.00054931641, 0.0010375977, 0.001373291,
+ 0.0016784668, 0.001953125, 0.0023193359, 0.0028381348, 0.0035095215,
+ 0.0043334961, 0.0049133301, 0.0056152344, 0.006072998, 0.0065917969,
+ 0.0068664551, 0.0072021484, 0.0073547363, 0.0074768066,
+ 0.0075378418, 0.0073547363, 0.0070800781, 0.0066223145,
+ 0.0062866211, 0.005859375, 0.0054321289, 0.0050048828, 0.0045776367,
+ 0.0043334961, 0.0039978027, 0.003692627, 0.0032958984, 0.0029602051,
+ 0.0024108887, 0.0019226074, 0.0014343262, 0.00088500977,
+ 0.00054931641, 0.00012207031, -0.00015258789, -0.00045776367,
+ -0.00067138672, -0.0009765625, -0.0012512207, -0.0015869141,
+ -0.001953125, -0.0022888184, -3.0517578e-05, -3.0517578e-05,
+ -3.0517578e-05, -3.0517578e-05, -3.0517578e-05, -3.0517578e-05,
+ -3.0517578e-05, -3.0517578e-05, -3.0517578e-05, -6.1035156e-05,
+ -3.0517578e-05, -6.1035156e-05, -3.0517578e-05, -6.1035156e-05,
+ -6.1035156e-05, -3.0517578e-05, -3.0517578e-05, -3.0517578e-05,
+ -3.0517578e-05, -3.0517578e-05, -3.0517578e-05, -3.0517578e-05,
+ -3.0517578e-05, -3.0517578e-05, -3.0517578e-05, -3.0517578e-05,
+ -3.0517578e-05, -3.0517578e-05, 0,
+ };
+
+static const unsigned defaultClickEmphasisLength = sizeof(defaultClickEmphasis) / sizeof(*defaultClickEmphasis);
+
diff --git a/muse_qt4_evolution/muse/device.h b/muse_qt4_evolution/muse/device.h
new file mode 100644
index 00000000..6ccf13cf
--- /dev/null
+++ b/muse_qt4_evolution/muse/device.h
@@ -0,0 +1,56 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DEVICE_H__
+#define __DEVICE_H__
+
+//---------------------------------------------------------
+// Device
+//---------------------------------------------------------
+
+class Device {
+
+ public:
+ enum DeviceType { MidiDevice, WaveDevice };
+
+ protected:
+ QString _name;
+ DeviceType _type;
+ int _port;
+
+ public:
+ Device() {}
+ virtual ~Device() {}
+ Device(const QString& name, DeviceType t = MidiDevice)
+ : _name(name), _type(t) {}
+
+ virtual QString open(int) = 0;
+ virtual void close() = 0;
+
+ const QString& name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ const DeviceType type() const { return _type; }
+ void setDeviceType(DeviceType t) { _type = t; }
+ int port() const { return _port; }
+ void setPort(int p) { _port = p; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/driver.h b/muse_qt4_evolution/muse/driver.h
new file mode 100644
index 00000000..c8bbfc7f
--- /dev/null
+++ b/muse_qt4_evolution/muse/driver.h
@@ -0,0 +1,64 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DRIVER_H__
+#define __DRIVER_H__
+
+#include <jack/midiport.h>
+#include "port.h"
+
+struct PortName {
+ Port port;
+ QString name;
+ };
+
+class MidiEvent;
+
+//---------------------------------------------------------
+// Driver
+// abstract driver base class; used for midi and
+// audio
+//---------------------------------------------------------
+
+class Driver {
+
+ public:
+ Driver() {}
+ virtual ~Driver() {}
+ virtual bool init() = 0;
+
+ virtual QList<PortName> outputPorts(bool midi) = 0;
+ virtual QList<PortName> inputPorts(bool midi) = 0;
+
+ virtual Port registerOutPort(const QString&, bool midi) = 0;
+ virtual Port registerInPort(const QString&, bool midi) = 0;
+ virtual void unregisterPort(Port) = 0;
+ virtual void setPortName(Port p, const QString&) = 0;
+ virtual QString portName(Port) = 0;
+ virtual Port findPort(const QString&) = 0;
+
+ virtual bool connect(Port, Port) = 0;
+ virtual bool disconnect(Port, Port) = 0;
+ virtual void putEvent(Port, const MidiEvent&) = 0;
+ virtual void updateConnections() {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/dssihost.cpp b/muse_qt4_evolution/muse/dssihost.cpp
new file mode 100644
index 00000000..f72d4740
--- /dev/null
+++ b/muse_qt4_evolution/muse/dssihost.cpp
@@ -0,0 +1,891 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "config.h"
+
+#ifdef DSSI_SUPPORT
+
+#include <signal.h>
+#include <dlfcn.h>
+#include <dssi.h>
+#include <alsa/asoundlib.h>
+
+#include "dssihost.h"
+#include "synth.h"
+#include "jackaudio.h"
+#include "midi.h"
+#include "al/al.h"
+#include "al/xml.h"
+#include "song.h"
+#include "midictrl.h"
+#include "ladspaplugin.h"
+
+static lo_server_thread serverThread;
+static char osc_path_tmp[1024];
+static char* url;
+
+//---------------------------------------------------------
+// oscError
+//---------------------------------------------------------
+
+static void oscError(int num, const char *msg, const char *path)
+ {
+ fprintf(stderr, "MusE: liblo server error %d in path %s: %s\n",
+ num, path, msg);
+ }
+
+//---------------------------------------------------------
+// oscDebugHandler
+//---------------------------------------------------------
+
+static int oscDebugHandler(const char* path, const char* types, lo_arg** argv,
+ int argc, void*, void*)
+ {
+ printf("MusE: got unhandled OSC message:\n path: <%s>\n", path);
+ for (int i = 0; i < argc; i++) {
+ printf(" arg %d '%c' ", i, types[i]);
+ lo_arg_pp(lo_type(types[i]), argv[i]);
+ printf("\n");
+ }
+ return 1;
+ }
+
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int DssiSynthIF::oscUpdate(lo_arg **argv)
+ {
+ const char *url = (char *)&argv[0]->s;
+
+ if (uiTarget)
+ lo_address_free(uiTarget);
+ char* host = lo_url_get_hostname(url);
+ char* port = lo_url_get_port(url);
+ uiTarget = lo_address_new(host, port);
+ free(host);
+ free(port);
+
+ if (uiOscPath)
+ free(uiOscPath);
+ uiOscPath = lo_url_get_path(url);
+ int pl = strlen(uiOscPath);
+
+ if (uiOscControlPath)
+ free(uiOscControlPath);
+ uiOscControlPath = (char *)malloc(pl + 10);
+ sprintf(uiOscControlPath, "%s/control", uiOscPath);
+
+ if (uiOscConfigurePath)
+ free(uiOscConfigurePath);
+ uiOscConfigurePath = (char *)malloc(pl + 12);
+ sprintf(uiOscConfigurePath, "%s/configure", uiOscPath);
+
+ if (uiOscProgramPath)
+ free(uiOscProgramPath);
+ uiOscProgramPath = (char *)malloc(pl + 10);
+ sprintf(uiOscProgramPath, "%s/program", uiOscPath);
+
+ if (uiOscShowPath)
+ free(uiOscShowPath);
+ uiOscShowPath = (char *)malloc(pl + 10);
+ sprintf(uiOscShowPath, "%s/show", uiOscPath);
+
+ /* At this point a more substantial host might also call
+ * configure() on the UI to set any state that it had remembered
+ * for the plugin instance. But we don't remember state for
+ * plugin instances (see our own configure() implementation in
+ * osc_configure_handler), and so we have nothing to send except
+ * the optional project directory.
+ */
+
+ lo_send(uiTarget, uiOscConfigurePath, "ss",
+ DSSI_PROJECT_DIRECTORY_KEY, song->projectPath().toAscii().data());
+
+#if 0
+ /* Send current bank/program (-FIX- another race...) */
+ if (instance->pendingProgramChange < 0) {
+ unsigned long bank = instance->currentBank;
+ unsigned long program = instance->currentProgram;
+ instance->uiNeedsProgramUpdate = 0;
+ if (instance->uiTarget) {
+ lo_send(instance->uiTarget, instance->ui_osc_program_path, "ii", bank, program);
+ }
+ }
+
+ /* Send control ports */
+ for (i = 0; i < instance->plugin->controlIns; i++) {
+ int in = i + instance->firstControlIn;
+ int port = pluginControlInPortNumbers[in];
+ lo_send(instance->uiTarget, instance->ui_osc_control_path, "if", port,
+ pluginControlIns[in]);
+ /* Avoid overloading the GUI if there are lots and lots of ports */
+ if ((i+1) % 50 == 0)
+ usleep(300000);
+ }
+#endif
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscMessageHandler
+//---------------------------------------------------------
+
+int oscMessageHandler(const char* path, const char* types, lo_arg** argv,
+ int argc, void* data, void* user_data)
+ {
+ const char* p = path;
+ if (strncmp(p, "/dssi/", 6))
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+
+ p += 6;
+
+ SynthIList* sl = song->syntis();
+ DssiSynthIF* instance = 0;
+ SynthI* synti = 0;
+
+ for (iSynthI si = sl->begin(); si != sl->end(); ++si) {
+ int l = strlen((*si)->name().toAscii().data());
+ if (!strncmp(p, (*si)->name().toAscii().data(), l)) {
+ synti = *si;
+ instance = (DssiSynthIF*)(synti->sif());
+ p += l;
+ break;
+ }
+ }
+ if (!instance)
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+
+ if (*p != '/' || *(p + 1) == 0)
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ ++p;
+
+ if (!strcmp(p, "configure") && argc == 2 && !strcmp(types, "ss"))
+ return instance->oscConfigure(argv);
+ else if (!strcmp(p, "control") && argc == 2 && !strcmp(types, "if"))
+ return instance->oscControl(argv);
+ else if (!strcmp(p, "midi") && argc == 1 && !strcmp(types, "m"))
+ return instance->oscMidi(argv);
+ else if (!strcmp(p, "program") && argc == 2 && !strcmp(types, "ii"))
+ return instance->oscProgram(argv);
+ else if (!strcmp(p, "update") && argc == 1 && !strcmp(types, "s"))
+ return instance->oscUpdate(argv);
+ else if (!strcmp(p, "exiting") && argc == 0)
+ return instance->oscExiting(argv);
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+
+//---------------------------------------------------------
+// scanDSSILib
+//---------------------------------------------------------
+
+static void scanDSSILib(const QFileInfo& fi)
+ {
+ void* handle = dlopen(fi.filePath().toAscii().data(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ fi.filePath().toAscii().data(), dlerror());
+ return;
+ }
+ DSSI_Descriptor_Function dssi = (DSSI_Descriptor_Function)dlsym(handle, "dssi_descriptor");
+
+ if (!dssi) {
+ const char *txt = dlerror();
+ if (txt) {
+ fprintf(stderr,
+ "Unable to find dssi_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a DSSI plugin file?\n",
+ fi.filePath().toAscii().data(),
+ txt);
+ exit(1);
+ }
+ }
+ const DSSI_Descriptor* descr;
+ for (int i = 0;; ++i) {
+ descr = dssi(i);
+ if (descr == 0)
+ break;
+ QString label(descr->LADSPA_Plugin->Label);
+ DssiSynth* s = new DssiSynth(&fi, label);
+ synthis.push_back(s);
+ }
+ dlclose(handle);
+ }
+
+//---------------------------------------------------------
+// scanVstDir
+//---------------------------------------------------------
+
+static void scanDSSIDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan DSSI plugin dir <%s>\n", s.toAscii().data());
+
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), QDir::Unsorted, QDir::Files);
+#else
+ QDir pluginDir(s, QString("*.so"), QDir::Unsorted, QDir::Files);
+#endif
+ if (!pluginDir.exists())
+ return;
+
+ const QFileInfoList list = pluginDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ scanDSSILib(fi);
+ }
+ }
+
+//---------------------------------------------------------
+// initDSSI
+//---------------------------------------------------------
+
+void initDSSI()
+ {
+ const char* dssiPath = getenv("DSSI_PATH");
+ if (dssiPath == 0)
+ dssiPath = "/usr/lib/dssi:/usr/local/lib/dssi";
+
+ const char* p = dssiPath;
+ while (*p != '\0') {
+ const char* pe = p;
+ while (*pe != ':' && *pe != '\0')
+ pe++;
+
+ int n = pe - p;
+ if (n) {
+ char* buffer = new char[n + 1];
+ strncpy(buffer, p, n);
+ buffer[n] = '\0';
+ scanDSSIDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ // Create OSC thread
+
+ serverThread = lo_server_thread_new(0, oscError);
+ snprintf(osc_path_tmp, 31, "/dssi");
+ char* tmp = lo_server_thread_get_url(serverThread);
+ url = (char *)malloc(strlen(tmp) + strlen(osc_path_tmp));
+ sprintf(url, "%s%s", tmp, osc_path_tmp + 1);
+ free(tmp);
+
+ lo_server_thread_add_method(serverThread, 0, 0, oscMessageHandler, 0);
+ lo_server_thread_start(serverThread);
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool DssiSynthIF::guiVisible() const
+ {
+ return _guiVisible;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void DssiSynthIF::showGui(bool v)
+ {
+ if (v == guiVisible())
+ return;
+ for (int i = 0; i < 5; ++i) {
+ if (uiOscPath)
+ break;
+ sleep(1);
+ }
+ if (uiOscPath == 0) {
+ printf("DssiSynthIF::showGui(): no uiOscPath\n");
+ return;
+ }
+ char uiOscGuiPath[strlen(uiOscPath)+6];
+ sprintf(uiOscGuiPath, "%s/%s", uiOscPath, v ? "show" : "hide");
+ lo_send(uiTarget, uiOscGuiPath, "");
+ _guiVisible = v;
+ }
+
+//---------------------------------------------------------
+// receiveEvent
+//---------------------------------------------------------
+
+MidiEvent DssiSynthIF::receiveEvent()
+ {
+ return MidiEvent();
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool DssiSynthIF::init(DssiSynth* s)
+ {
+ synth = s;
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+ handle = ld->instantiate(ld, AL::sampleRate);
+
+ queryPrograms();
+
+ int controlPorts = synth->_controller;
+ controls = new LadspaPort[controlPorts];
+
+ for (int k = 0; k < controlPorts; ++k) {
+ int i = synth->pIdx[k];
+ controls[k].val = ladspaDefaultValue(ld, i);
+ ld->connect_port(handle, i, &controls[k].val);
+ }
+
+ if (ld->activate)
+ ld->activate(handle);
+
+ if (dssi->configure) {
+ char *rv = dssi->configure(handle, DSSI_PROJECT_DIRECTORY_KEY,
+ song->projectPath().toAscii().data());
+ if (rv)
+ fprintf(stderr, "MusE: Warning: plugin doesn't like project directory: \"%s\"\n", rv);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// DssiSynthIF
+//---------------------------------------------------------
+
+DssiSynthIF::DssiSynthIF(SynthI* s)
+ : SynthIF(s)
+ {
+ _guiVisible = false;
+ uiTarget = 0;
+ uiOscShowPath = 0;
+ uiOscControlPath = 0;
+ uiOscConfigurePath = 0;
+ uiOscProgramPath = 0;
+ uiOscPath = 0;
+ guiPid = -1;
+ }
+
+//---------------------------------------------------------
+// ~DssiSynthIF
+//---------------------------------------------------------
+
+DssiSynthIF::~DssiSynthIF()
+ {
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
+
+ if (descr->cleanup)
+ descr->cleanup(handle);
+ if (guiPid != -1)
+ kill(guiPid, SIGHUP);
+ }
+
+//---------------------------------------------------------
+// setParameter
+//---------------------------------------------------------
+
+void DssiSynthIF::setParameter(int, float)
+ {
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void DssiSynthIF::write(Xml&) const
+ {
+ }
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+void DssiSynthIF::getData(MidiEventList* el, unsigned pos, int ch, unsigned samples, float** data)
+ {
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
+
+ unsigned long nevents = el->size();
+
+ while (!synti->putFifo.isEmpty()) {
+ MidiEvent event = synti->putFifo.get();
+ printf("Dssi: FIFO\n");
+ }
+
+ snd_seq_event_t events[nevents];
+ memset(events, 0, sizeof(events));
+
+ nevents = 0;
+ unsigned endPos = pos + samples;
+ iMidiEvent i = el->begin();
+ for (; i != el->end(); ++i, ++nevents) {
+ if (i->time() >= endPos)
+ break;
+ MidiEvent e = *i;
+
+ int chn = e.channel();
+ int a = e.dataA();
+ int b = e.dataB();
+ //for sysex
+ QByteArray ba = QByteArray((const char*)e.data(), e.len());
+ //we must had 0xF0 at the beginning and 0xF7 at the end of e.data()
+ ba.push_front(0xF0);
+ ba.push_back(0xF7);
+ int len = e.len() + 2;
+
+
+ snd_seq_event_t* event = &events[nevents];
+ event->queue = SND_SEQ_QUEUE_DIRECT;
+
+ switch(e.type()) {
+ case ME_NOTEON:
+ if (b)
+ snd_seq_ev_set_noteon(event, chn, a, b);
+ else
+ snd_seq_ev_set_noteoff(event, chn, a, 0);
+ break;
+ case ME_NOTEOFF:
+ snd_seq_ev_set_noteoff(event, chn, a, 0);
+ break;
+ case ME_CONTROLLER:
+ if (a == CTRL_PROGRAM) {
+ int bank = b >> 8;
+ int prog = b & 0xff;
+ if (dssi->select_program)
+ dssi->select_program(handle, bank, prog);
+ break;
+ }
+ snd_seq_ev_set_controller(event, chn, a, b);
+ break;
+ case ME_PITCHBEND:
+ snd_seq_ev_set_pitchbend(event, chn, a);
+ break;
+ case ME_AFTERTOUCH:
+ snd_seq_ev_set_chanpress(event, chn, a);
+ break;
+ case ME_SYSEX:
+ snd_seq_ev_set_sysex(event, len,
+ (unsigned char*)ba.data());
+ break;
+ default:
+ --nevents;
+ break;
+ }
+ }
+ el->erase(el->begin(), i);
+ for (int k = 0; k < ch; ++k)
+ descr->connect_port(handle, synth->oIdx[k], data[k]);
+
+ if (synth->dssi->run_synth)
+ synth->dssi->run_synth(handle, samples, events, nevents);
+ else if (synth->dssi->run_multiple_synths) {
+ snd_seq_event_t* ev = events;
+ synth->dssi->run_multiple_synths(1, &handle, samples, &ev, &nevents);
+ }
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool DssiSynthIF::putEvent(const MidiEvent& ev)
+ {
+ if (midiOutputTrace)
+ ev.dump();
+ return false;
+ }
+
+//---------------------------------------------------------
+// incInstances
+//---------------------------------------------------------
+
+void DssiSynth::incInstances(int val)
+ {
+ _instances += val;
+ if (_instances == 0) {
+ if (handle)
+ dlclose(handle);
+ dssi = 0;
+ df = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+SynthIF* DssiSynth::createSIF(SynthI* synti)
+ {
+ if (_instances == 0) {
+ handle = dlopen(info.filePath().toAscii().data(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ info.filePath().toAscii().data(), dlerror());
+ return 0;
+ }
+ df = (DSSI_Descriptor_Function)dlsym(handle, "dssi_descriptor");
+
+ if (!df) {
+ const char *txt = dlerror();
+ fprintf(stderr,
+ "Unable to find dssi_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a DSSI plugin file?\n",
+ info.filePath().toAscii().data(),
+ txt ? txt : "?");
+ dlclose(handle);
+ handle = 0;
+ return 0;
+ }
+ for (int i = 0;; ++i) {
+ dssi = df(i);
+ if (dssi == 0)
+ break;
+ QString label(dssi->LADSPA_Plugin->Label);
+ if (label == _name)
+ break;
+ }
+
+ _inports = 0;
+ _outports = 0;
+ _controller = 0;
+ const LADSPA_Descriptor* d = dssi->LADSPA_Plugin;
+ for (unsigned k = 0; k < d->PortCount; ++k) {
+ LADSPA_PortDescriptor pd = d->PortDescriptors[k];
+ if (LADSPA_IS_PORT_AUDIO(pd)) {
+ if (LADSPA_IS_PORT_INPUT(pd)) {
+ ++_inports;
+ iIdx.push_back(k);
+ }
+ else if (LADSPA_IS_PORT_OUTPUT(pd)) {
+ ++_outports;
+ oIdx.push_back(k);
+ }
+ }
+ else if (LADSPA_IS_PORT_CONTROL(pd)) {
+ if (LADSPA_IS_PORT_INPUT(pd)) {
+ ++_controller;
+ pIdx.push_back(k);
+ }
+ else {
+ // ??
+ }
+ }
+ }
+ }
+ if (dssi == 0) {
+ fprintf(stderr, "cannot found DSSI synti %s\n", _name.toAscii().data());
+ dlclose(handle);
+ handle = 0;
+ df = 0;
+ return 0;
+ }
+ DssiSynthIF* sif = new DssiSynthIF(synti);
+ ++_instances;
+ sif->init(this);
+
+ //
+ // start gui
+ //
+ static char oscUrl[1024];
+ snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toAscii().data());
+
+ QString guiPath(info.path() + "/" + info.baseName());
+ QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ if (guiDir.exists()) {
+ const QFileInfoList list = guiDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ QString gui(fi.filePath());
+ if (gui.contains('_') == 0)
+ continue;
+ struct stat buf;
+ if (stat(gui.toAscii().data(), &buf)) {
+ perror("stat failed");
+ continue;
+ }
+
+ if ((S_ISREG(buf.st_mode) || S_ISLNK(buf.st_mode)) &&
+ (buf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) {
+ if ((sif->guiPid = fork()) == 0) {
+ execlp(
+ fi.filePath().toAscii().data(),
+ fi.fileName().toAscii().data(),
+ oscUrl,
+ info.filePath().toAscii().data(),
+ name().toAscii().data(),
+ "channel 1", (void*)0);
+ fprintf(stderr, "exec %s %s %s %s failed: %s\n",
+ fi.filePath().toAscii().data(),
+ fi.fileName().toAscii().data(),
+ oscUrl,
+ name().toAscii().data(),
+ strerror(errno));
+ exit(1);
+ }
+ }
+ }
+ _hasGui = true;
+ }
+ else {
+ printf("%s: no dir for dssi gui found: %s\n",
+ name().toAscii().data(), guiPath.toAscii().data());
+ _hasGui = false;
+ }
+ return sif;
+ }
+
+//---------------------------------------------------------
+// oscProgram
+//---------------------------------------------------------
+
+int DssiSynthIF::oscProgram(lo_arg** argv)
+ {
+ int bank = argv[0]->i;
+ int program = argv[1]->i;
+ int ch = 0; // TODO: ??
+ MidiEvent event(0, ch, ME_CONTROLLER, CTRL_PROGRAM, (bank << 8) + program);
+ synti->playMidiEvent(&event);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscControl
+//---------------------------------------------------------
+
+int DssiSynthIF::oscControl(lo_arg**)
+ {
+printf("received oscControl\n");
+#if 0
+ int port = argv[0]->i;
+ LADSPA_Data value = argv[1]->f;
+
+ if (port < 0 || port > instance->plugin->descriptor->LADSPA_Plugin->PortCount) {
+ fprintf(stderr, "MusE: OSC: %s port number (%d) is out of range\n",
+ instance->friendly_name, port);
+ return 0;
+ }
+ if (instance->pluginPortControlInNumbers[port] == -1) {
+ fprintf(stderr, "MusE: OSC: %s port %d is not a control in\n",
+ instance->friendly_name, port);
+ return 0;
+ }
+ pluginControlIns[instance->pluginPortControlInNumbers[port]] = value;
+ if (verbose) {
+ printf("MusE: OSC: %s port %d = %f\n",
+ instance->friendly_name, port, value);
+ }
+#endif
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscExiting
+//---------------------------------------------------------
+
+int DssiSynthIF::oscExiting(lo_arg**)
+ {
+ printf("not impl.: oscExiting\n");
+#if 0
+ int i;
+
+ if (verbose) {
+ printf("MusE: OSC: got exiting notification for instance %d\n",
+ instance->number);
+ }
+
+ if (instance->plugin) {
+
+ /*!!! No, this isn't safe -- plugins deactivated in this way
+ would still be included in a run_multiple_synths call unless
+ we re-jigged the instance array at the same time -- leave it
+ for now
+ if (instance->plugin->descriptor->LADSPA_Plugin->deactivate) {
+ instance->plugin->descriptor->LADSPA_Plugin->deactivate
+ (instanceHandles[instance->number]);
+ }
+ */
+ /* Leave this flag though, as we need it to determine when to exit */
+ instance->inactive = 1;
+ }
+
+ /* Do we have any plugins left running? */
+
+ for (i = 0; i < instance_count; ++i) {
+ if (!instances[i].inactive)
+ return 0;
+ }
+
+ if (verbose) {
+ printf("MusE: That was the last remaining plugin, exiting...\n");
+ }
+ exiting = 1;
+#endif
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscMidi
+//---------------------------------------------------------
+
+int DssiSynthIF::oscMidi(lo_arg** argv)
+ {
+ int a = argv[0]->m[1];
+ int b = argv[0]->m[2];
+ int c = argv[0]->m[3];
+ if (a == ME_NOTEOFF) {
+ a = ME_NOTEON;
+ c = 0;
+ }
+ int channel = 0;
+ MidiEvent event(0, channel, a, b, c);
+ synti->playMidiEvent(&event);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+int DssiSynthIF::oscConfigure(lo_arg** argv)
+ {
+ if (!synth->dssi->configure)
+ return 0;
+
+ const char *key = (const char *)&argv[0]->s;
+ const char *value = (const char *)&argv[1]->s;
+
+ /* This is pretty much the simplest legal implementation of
+ * configure in a DSSI host. */
+
+ /* The host has the option to remember the set of (key,value)
+ * pairs associated with a particular instance, so that if it
+ * wants to restore the "same" instance on another occasion it can
+ * just call configure() on it for each of those pairs and so
+ * restore state without any input from a GUI. Any real-world GUI
+ * host will probably want to do that. This host doesn't have any
+ * concept of restoring an instance from one run to the next, so
+ * we don't bother remembering these at all. */
+
+ if (!strncmp(key, DSSI_RESERVED_CONFIGURE_PREFIX,
+ strlen(DSSI_RESERVED_CONFIGURE_PREFIX))) {
+ fprintf(stderr, "MusE: OSC: UI for plugin '%s' attempted to use reserved configure key \"%s\", ignoring\n",
+ synti->name().toAscii().data(), key);
+ return 0;
+ }
+
+ char* message = synth->dssi->configure(handle, key, value);
+ if (message) {
+ printf("MusE: on configure '%s' '%s', plugin '%s' returned error '%s'\n",
+ key, value, synti->name().toAscii().data(), message);
+ free(message);
+ }
+
+ // also call back on UIs for plugins other than the one
+ // that requested this:
+ // if (n != instance->number && instances[n].uiTarget) {
+ // lo_send(instances[n].uiTarget,
+ // instances[n].ui_osc_configure_path, "ss", key, value);
+ // }
+
+ /* configure invalidates bank and program information, so
+ we should do this again now: */
+ queryPrograms();
+ return 0;
+ }
+
+//---------------------------------------------------------
+// queryPrograms
+//---------------------------------------------------------
+
+void DssiSynthIF::queryPrograms()
+ {
+ for (std::vector<DSSI_Program_Descriptor>::const_iterator i = programs.begin();
+ i != programs.end(); ++i) {
+ free((void*)(i->Name));
+ }
+ programs.clear();
+
+ if (!(synth->dssi->get_program && synth->dssi->select_program))
+ return;
+
+ for (int i = 0;; ++i) {
+ const DSSI_Program_Descriptor* pd = synth->dssi->get_program(handle, i);
+ if (pd == 0)
+ break;
+ DSSI_Program_Descriptor d;
+ d.Name = strdup(pd->Name);
+ d.Program = pd->Program;
+ d.Bank = pd->Bank;
+ programs.push_back(d);
+ }
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+QString DssiSynthIF::getPatchName(int, int prog)
+ {
+ unsigned program = prog & 0x7f;
+ int lbank = (prog >> 8) & 0xff;
+ int hbank = (prog >> 16) & 0xff;
+
+ if (lbank == 0xff)
+ lbank = 0;
+ if (hbank == 0xff)
+ hbank = 0;
+ unsigned bank = (hbank << 8) + lbank;
+
+ for (std::vector<DSSI_Program_Descriptor>::const_iterator i = programs.begin();
+ i != programs.end(); ++i) {
+ if (i->Bank == bank && i->Program ==program)
+ return i->Name;
+ }
+ return "?";
+ }
+
+//---------------------------------------------------------
+// populatePatchPopup
+//---------------------------------------------------------
+
+void DssiSynthIF::populatePatchPopup(QMenu* menu, int)
+ {
+ menu->clear();
+
+ for (std::vector<DSSI_Program_Descriptor>::const_iterator i = programs.begin();
+ i != programs.end(); ++i) {
+ int bank = i->Bank;
+ int prog = i->Program;
+ int id = (bank << 16) + prog;
+ QAction* a = menu->addAction(QString(i->Name));
+ a->setData(id);
+ }
+ }
+
+#else
+void initDSSI() {}
+#endif
+
diff --git a/muse_qt4_evolution/muse/dssihost.h b/muse_qt4_evolution/muse/dssihost.h
new file mode 100644
index 00000000..0ec251ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/dssihost.h
@@ -0,0 +1,121 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DSSIHOST_H__
+#define __DSSIHOST_H__
+
+#include <lo/lo.h>
+#include "synth.h"
+#include "plugin.h"
+
+struct _DSSI;
+class DssiPluginIF;
+class LadspaPort;
+
+//---------------------------------------------------------
+// DssiSynth
+//---------------------------------------------------------
+
+class DssiSynth : public Synth {
+ protected:
+ char* label;
+ void* handle;
+ const DSSI_Descriptor* dssi;
+ DSSI_Descriptor_Function df;
+ std::vector<int> pIdx;
+ std::vector<int> iIdx;
+ std::vector<int> oIdx;
+ int _inports, _outports, _controller;
+ bool _hasGui;
+
+ public:
+ DssiSynth(const QFileInfo* fi, QString l) : Synth(fi, l) {
+ df = 0;
+ handle = 0;
+ dssi = 0;
+ _hasGui = false;
+ }
+ virtual ~DssiSynth() {
+ delete label;
+ }
+ virtual void incInstances(int val);
+ virtual SynthIF* createSIF(SynthI*);
+ friend class DssiSynthIF;
+ float defaultValue(int);
+ };
+
+//---------------------------------------------------------
+// DssiSynthIF
+// VSTi synthesizer instance
+//---------------------------------------------------------
+
+class DssiSynthIF : public SynthIF
+ {
+ bool _guiVisible;
+ DssiSynth* synth;
+ LADSPA_Handle handle;
+ LadspaPort* controls;
+ void* uiTarget;
+ char* uiOscShowPath;
+ char* uiOscControlPath;
+ char* uiOscConfigurePath;
+ char* uiOscProgramPath;
+ char* uiOscPath;
+
+ std::vector<DSSI_Program_Descriptor> programs;
+ void queryPrograms();
+
+ protected:
+ int guiPid;
+
+ public:
+ DssiSynthIF(SynthI* s);
+ virtual ~DssiSynthIF();
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool v);
+ virtual bool hasGui() const { return synth->_hasGui; }
+ virtual void getGeometry(int*, int*, int*, int*) const {}
+ virtual void setGeometry(int, int, int, int) {}
+ virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer) ;
+ virtual bool putEvent(const MidiEvent& ev);
+ virtual MidiEvent receiveEvent();
+ virtual int eventsPending() const { return 0; }
+ virtual int channels() const { return synth->_outports; }
+ virtual void deactivate3() {}
+ virtual QString getPatchName(int, int);
+ virtual void populatePatchPopup(QMenu*, int);
+ virtual void write(Xml& xml) const;
+ virtual void setParameter(int idx, float value);
+ virtual int getControllerInfo(int, const char**, int*, int*, int*) { return 0; }
+ bool init(DssiSynth* s);
+
+ int oscUpdate(lo_arg**);
+ int oscProgram(lo_arg**);
+ int oscControl(lo_arg**);
+ int oscExiting(lo_arg**);
+ int oscMidi(lo_arg**);
+ int oscConfigure(lo_arg**);
+
+ friend class DssiSynth;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/dummyaudio.cpp b/muse_qt4_evolution/muse/dummyaudio.cpp
new file mode 100644
index 00000000..b4bc73ff
--- /dev/null
+++ b/muse_qt4_evolution/muse/dummyaudio.cpp
@@ -0,0 +1,294 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "widgets/utils.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "globals.h"
+#include "song.h"
+
+static const unsigned dummyFrames = 1024;
+static double startTime;
+
+//---------------------------------------------------------
+// DummyAudio
+//---------------------------------------------------------
+
+class DummyAudio : public AudioDriver {
+ float* buffer;
+ pthread_t dummyThread;
+ std::vector<QString> oPorts;
+ std::vector<QString> iPorts;
+ int realTimePriority;
+
+ public:
+ int state;
+ bool seekflag;
+ unsigned pos;
+
+ DummyAudio() {
+ state = Audio::STOP;
+ seekflag = false;
+ startTime = curTime();
+ posix_memalign((void**)&buffer, 16, sizeof(float) * dummyFrames);
+ }
+ virtual ~DummyAudio() {
+ free(buffer);
+ }
+
+ virtual bool init() { return true; }
+ virtual void start(int);
+ virtual void stop ();
+ virtual unsigned frameTime() const {
+ return lrint(curTime() * AL::sampleRate);
+ }
+ virtual unsigned lastFrameTime() const {
+ return lrint(startTime * AL::sampleRate);
+ }
+ virtual unsigned curFrame() const { return pos; }
+
+ virtual float* getBuffer(Port /*port*/, unsigned long nframes)
+ {
+ if (nframes > dummyFrames) {
+ fprintf(stderr, "error: segment size > %d\n", dummyFrames);
+ exit(-1);
+ }
+ memset(buffer, 0, nframes * sizeof(float));
+ return buffer;
+ }
+
+ virtual QList<PortName> outputPorts(bool midi = false);
+ virtual QList<PortName> inputPorts(bool midi = false);
+
+ virtual void registerClient() {}
+
+ virtual Port registerOutPort(const QString& s, bool) {
+ iPorts.push_back(QString(s));
+ Port port(0, iPorts.size() + 3000);
+ return port;
+ }
+ virtual Port registerInPort(const QString& s, bool) {
+ oPorts.push_back(QString(s));
+ Port port(0, oPorts.size() + 40);
+ return port;
+ }
+ virtual void unregisterPort(Port) {
+/* if (long(p) >= 100)
+ oPorts.erase(oPorts.begin() + (long(p)-40));
+ else
+ iPorts.erase(iPorts.begin() + long(p)-30);
+*/
+ }
+ virtual bool connect(Port, Port) { return true; }
+ virtual bool disconnect(Port, Port) { return true; }
+ virtual void setPortName(Port, const QString&) {}
+ virtual Port findPort(const QString& s) {
+ if (s == "input1")
+ return Port(0, 10);
+ if (s == "input2")
+ return Port(0, 11);
+ if (s == "output1")
+ return Port(0, 20);
+ if (s == "output2")
+ return Port(0, 21);
+ int k = 0;
+ for (std::vector<QString>::const_iterator i = iPorts.begin(); i != iPorts.end(); ++i, ++k) {
+ if (s == *i)
+ return Port(0, 30+k);
+ }
+ k = 0;
+ for (std::vector<QString>::const_iterator i = oPorts.begin(); i != oPorts.end(); ++i, ++k) {
+ if (s == *i)
+ return Port(0, 40);
+ }
+ return Port();
+ }
+ virtual QString portName(Port port) {
+ if (port.alsaPort() == 10)
+ return QString("input1");
+ if (port.alsaPort() == 11)
+ return QString("input2");
+ if (port.alsaPort() == 20)
+ return QString("output1");
+ if (port.alsaPort() == 21)
+ return QString("output2");
+ if (port.alsaPort() >= 40)
+ return QString(oPorts[port.alsaPort() - 40]);
+ else
+ return QString(iPorts[port.alsaPort() - 30]);
+ }
+ virtual int realtimePriority() const { return 40; }
+ virtual void startTransport() {
+ state = Audio::PLAY;
+ }
+ virtual void stopTransport() {
+ state = Audio::STOP;
+ }
+ virtual void seekTransport(unsigned n) {
+ seekflag = true;
+ pos = n;
+ }
+ virtual void setFreewheel(bool) {}
+ virtual void putEvent(Port, const MidiEvent&) {}
+ };
+
+DummyAudio* dummyAudio;
+
+//---------------------------------------------------------
+// initDummyAudio
+//---------------------------------------------------------
+
+bool initDummyAudio()
+ {
+ dummyAudio = new DummyAudio();
+ audioDriver = dummyAudio;
+ return false;
+ }
+
+//---------------------------------------------------------
+// outputPorts
+//---------------------------------------------------------
+
+QList<PortName> DummyAudio::outputPorts(bool midi)
+ {
+ QList<PortName> clientList;
+ if (!midi) {
+ PortName p1;
+ p1.name = QString("output1");
+ p1.port = Port(0, 100);
+ PortName p2;
+ p2.name = QString("output2");
+ p2.port = Port(0, 101);
+ clientList.append(p1);
+ clientList.append(p2);
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// inputPorts
+//---------------------------------------------------------
+
+QList<PortName> DummyAudio::inputPorts(bool midi)
+ {
+ QList<PortName> clientList;
+ if (!midi) {
+ PortName p1;
+ p1.name = QString("input1");
+ p1.port = Port(0, 0);
+ PortName p2;
+ p2.name = QString("input2");
+ p2.port = Port(0, 1);
+ clientList.append(p1);
+ clientList.append(p2);
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// dummyLoop
+//---------------------------------------------------------
+
+static void* dummyLoop(void*)
+ {
+#ifndef __APPLE__
+ if (realTimePriority) {
+ //
+ // check if we really got realtime priviledges
+ //
+ int policy;
+ if ((policy = sched_getscheduler (0)) < 0) {
+ printf("cannot get current client scheduler for audio dummy thread: %s!\n", strerror(errno));
+ }
+ else
+ {
+ if (policy != SCHED_FIFO)
+ printf("audio dummy thread _NOT_ running SCHED_FIFO\n");
+ else if (debugMsg) {
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(sched_param));
+ int type;
+ int rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ if (rv == -1)
+ perror("get scheduler parameter");
+ printf("audio dummy thread running SCHED_FIFO priority %d\n",
+ rt_param.sched_priority);
+ }
+ }
+ }
+#endif
+
+ for (;;) {
+ if (audioState == AUDIO_RUNNING)
+ audio->process(segmentSize, dummyAudio->state);
+ else if (audioState == AUDIO_START1)
+ audioState = AUDIO_START2;
+ usleep(dummyFrames*1000000/AL::sampleRate);
+ if (dummyAudio->seekflag) {
+ audio->sync(Audio::STOP, dummyAudio->pos);
+ dummyAudio->seekflag = false;
+ }
+ if (dummyAudio->state == Audio::PLAY) {
+ dummyAudio->pos += dummyFrames;
+ }
+ }
+ pthread_exit(0);
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void DummyAudio::start(int priority)
+ {
+ realTimePriority = priority;
+ pthread_attr_t* attributes = 0;
+
+ if (priority) {
+ attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+ if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+ printf("cannot set FIFO scheduling class for RT thread\n");
+ }
+ if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+ printf("Cannot set scheduling scope for RT thread\n");
+ }
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = priority;
+ if (pthread_attr_setschedparam (attributes, &rt_param)) {
+ printf("Cannot set scheduling priority %d for RT thread (%s)\n",
+ priority, strerror(errno));
+ }
+ }
+ if (pthread_create(&dummyThread, attributes, ::dummyLoop, this))
+ perror("creating thread failed:");
+ if (priority)
+ pthread_attr_destroy(attributes);
+ }
+
+void DummyAudio::stop ()
+ {
+ pthread_cancel(dummyThread);
+ pthread_join(dummyThread, 0);
+ }
+
diff --git a/muse_qt4_evolution/muse/editor.cpp b/muse_qt4_evolution/muse/editor.cpp
new file mode 100644
index 00000000..a37e1baa
--- /dev/null
+++ b/muse_qt4_evolution/muse/editor.cpp
@@ -0,0 +1,38 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "editor.h"
+
+//---------------------------------------------------------
+// Editor
+//---------------------------------------------------------
+
+Editor::Editor()
+ {
+ tcanvas = 0;
+ }
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+Editor::~Editor()
+ {
+ }
diff --git a/muse_qt4_evolution/muse/editor.h b/muse_qt4_evolution/muse/editor.h
new file mode 100644
index 00000000..7de2d9e4
--- /dev/null
+++ b/muse_qt4_evolution/muse/editor.h
@@ -0,0 +1,44 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EDITOR_H__
+#define __EDITOR_H__
+
+#include "cobject.h"
+
+class TimeCanvas;
+
+//---------------------------------------------------------
+// Editor
+//---------------------------------------------------------
+
+class Editor : public TopWin {
+ Q_OBJECT
+
+ protected:
+ TimeCanvas* tcanvas;
+
+ public:
+ Editor();
+ virtual ~Editor();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/esettings.cpp b/muse_qt4_evolution/muse/esettings.cpp
new file mode 100644
index 00000000..7d3886f0
--- /dev/null
+++ b/muse_qt4_evolution/muse/esettings.cpp
@@ -0,0 +1,773 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2004 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "esettings.h"
+#include "al/xml.h"
+#include "midieditor.h" //only for debug prints
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void CtrlEditSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "controller")
+ controller = i;
+ else if (tag == "height")
+ height = i;
+ else
+ printf("MusE:CtrlEditSettings: unknown tag: %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void CtrlEditSettings::writeStatus(Xml& xml)
+ {
+ xml.tag("ctrleditsettings");
+ xml.intTag("height", height);
+ xml.intTag("controller", controller);
+ xml.etag("ctrleditsettings");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void EditorSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "width")
+ _width = i;
+ else if (tag == "height")
+ _height = i;
+ else if (tag == "x")
+ _x = i;
+ else if (tag == "y")
+ _y = i;
+ else if (tag == "raster")
+ _raster = i;
+ else
+ printf("MusE:EditorSettings: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void EditorSettings::writeStatus(Xml& xml) const
+ {
+ xml.tag("editorsettings");
+ xml.intTag("width", _width);
+ xml.intTag("height", _height);
+ xml.intTag("x", _x);
+ xml.intTag("y", _y);
+ xml.intTag("raster", _raster);
+ xml.etag("editorsettings");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void GraphEditorSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "editorsettings") {
+ EditorSettings::readStatus(node.firstChild());
+ }
+ else if (tag == "xmag")
+ _xmag = s.toDouble();
+ else if (tag == "ymag")
+ _ymag = s.toDouble();
+ else if (tag == "xpos")
+ _pos.setX(i);
+ else if (tag == "ypos")
+ _pos.setY(i);
+ else
+ printf("MusE:GraphEditorSettings: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void GraphEditorSettings::writeStatus(Xml& xml) const
+ {
+ xml.tag("grapheditorsettings");
+ EditorSettings::writeStatus(xml);
+ xml.doubleTag("xmag", _xmag);
+ xml.doubleTag("ymag", _ymag);
+ xml.intTag("xpos", _pos.x());
+ xml.intTag("ypos", _pos.y());
+ xml.etag("grapheditorsettings");
+ }
+
+bool ExtEditorSettings::_steprec = false;
+bool ExtEditorSettings::_midiin = false;
+
+
+//---------------------------------------------------------
+// ExtEditorSettings constructor
+//---------------------------------------------------------
+
+ExtEditorSettings::ExtEditorSettings(int r, int w, int h, int x, int y, double xm, double ym, QPoint pos, int q, int apply)
+ : GraphEditorSettings(r, w, h, x, y, xm, ym, pos), _quant(q), _applyTo(apply)
+ {
+ for (int i=0; i<MAXNOOFCTRLEDITSETTINGS; i++)
+ ctrlEdits[i] = 0;
+ _numOfCtrlEdits = 0;
+ }
+
+//---------------------------------------------------------
+// ExtEditorSettings destructor
+//---------------------------------------------------------
+ExtEditorSettings::~ExtEditorSettings()
+ {
+ for (int i=0; i<MAXNOOFCTRLEDITSETTINGS; i++) {
+ if (this->ctrlEdits[i])
+ delete ctrlEdits[i];
+ }
+ }
+
+//---------------------------------------------------------
+// setControlEditSettings
+//---------------------------------------------------------
+
+void ExtEditorSettings::setControlEditSettings(int pos, CtrlEditSettings* c)
+ {
+ if (ctrlEdits[pos])
+ delete ctrlEdits[pos];
+
+ ctrlEdits[pos] = c;
+ }
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+EditorSettings* ExtEditorSettings::clone()
+ {
+ ExtEditorSettings* newSettings = new ExtEditorSettings(_raster, _width, _height, _x, _y, _xmag, _ymag, _pos, _quant, _applyTo);
+ CtrlEditSettings* c;
+ for (int i=0; i<_numOfCtrlEdits; i++) {
+ c = new CtrlEditSettings();
+ *c = *(ctrlEdits[i]); //copy
+ newSettings->setControlEditSettings(i, c);
+ }
+ newSettings->setControlEditSize(_numOfCtrlEdits);
+ return (EditorSettings*) newSettings;
+ }
+
+//---------------------------------------------------------
+// readStatic
+//---------------------------------------------------------
+
+void ExtEditorSettings::readStatic(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "steprec")
+ _steprec = i;
+ else if (tag == "midiin")
+ _midiin = i;
+ else
+ printf("MusE:ExtEditorSettings Static: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatic
+//---------------------------------------------------------
+
+void ExtEditorSettings::writeStatic(Xml& xml)
+ {
+ xml.tag("exteditorstatic");
+ xml.intTag("steprec", _steprec);
+ xml.intTag("midiin", _midiin);
+ xml.etag("exteditorstatic");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void ExtEditorSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "grapheditorsettings")
+ GraphEditorSettings::readStatus(node.firstChild());
+ else if (tag == "quant")
+ _quant = i;
+ else if (tag == "applyTo")
+ _applyTo = i;
+ else if (tag == "steprec")
+ _steprec = i;
+ else if (tag == "midiin")
+ _midiin = i;
+ else if (tag == "ctrleditsettings") {
+ ctrlEdits[_numOfCtrlEdits] = new CtrlEditSettings();
+ ctrlEdits[_numOfCtrlEdits]->readStatus(node.firstChild());
+ _numOfCtrlEdits++;
+ }
+ else
+ printf("MusE:ExtEditorSettings: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void ExtEditorSettings::writeStatus(Xml& xml) const
+ {
+ //TODO: The ctrlEdits need to be updated (created) before trying to write status of ctrlEdits...
+ xml.tag("exteditorsettings");
+ GraphEditorSettings::writeStatus(xml);
+ xml.intTag("quant", _quant);
+ xml.intTag("applyTo", _applyTo);
+ xml.intTag("steprec", _steprec);
+ xml.intTag("midiin", _midiin);
+ for (int i=0; i<_numOfCtrlEdits; i++) {
+ ctrlEdits[i]->writeStatus(xml);
+ }
+ xml.etag("exteditorsettings");
+ }
+
+//
+// DrumEditorSettings static init default values:
+//
+int DrumEditorSettings::_quantInit = 96;
+int DrumEditorSettings::_rasterInit = 96;
+int DrumEditorSettings::_widthInit = 600;
+int DrumEditorSettings::_heightInit = 400;
+
+//---------------------------------------------------------
+// DrumEditorSettings
+//---------------------------------------------------------
+
+DrumEditorSettings::DrumEditorSettings(int r, int w, int h, int x, int y,
+ double xm, double ym, QPoint pos, int q, int apply, int dl, int dw)
+ : ExtEditorSettings(r, w, h, x, y, xm, ym, pos, q, apply),
+ _dlistWidth(dl), _dcanvasWidth(dw)
+ {
+ // For uninitialized values, go with static default values instead
+ if (w == ES_UNINIT)
+ _width = _widthInit;
+ if (h == ES_UNINIT)
+ _height = _heightInit;
+ if (r == ES_UNINIT)
+ _raster = _rasterInit;
+ if (q == ES_UNINIT)
+ _quant = _quantInit;
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+EditorSettings* DrumEditorSettings::clone()
+ {
+ DrumEditorSettings* newSettings = new DrumEditorSettings(_raster, _width, _height, _x, _y, _xmag, _ymag, _pos, _quant, _applyTo, _dlistWidth, _dcanvasWidth);
+ for (int i=0; i<_numOfCtrlEdits; i++) {
+ CtrlEditSettings* c = new CtrlEditSettings();
+ *c = *(ctrlEdits[i]); //copy
+ newSettings->setControlEditSettings(i, c);
+ }
+ newSettings->setControlEditSize(_numOfCtrlEdits);
+ return (EditorSettings*) newSettings;
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void DrumEditorSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "exteditorsettings")
+ ExtEditorSettings::readStatus(node.firstChild());
+ else if (tag == "dlistwidth")
+ _dlistWidth = i;
+ else if (tag == "dcanvaswidth")
+ _dcanvasWidth = i;
+ else
+ printf("MusE:DrumEditorSettings: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void DrumEditorSettings::writeStatus(Xml& xml) const
+ {
+ xml.tag("drumeditorsettings");
+ ExtEditorSettings::writeStatus(xml);
+ xml.intTag("dlistwidth", _dlistWidth);
+ xml.intTag("dcanvaswidth", _dcanvasWidth);
+ xml.etag("drumeditorsettings");
+ }
+
+//---------------------------------------------------------
+// setStaticInitValues
+//---------------------------------------------------------
+void DrumEditorSettings::setStaticInitValues(int widthinit, int heightinit, int rasterinit, int quantinit)
+ {
+ _widthInit = widthinit;
+ _heightInit = heightinit;
+ _rasterInit = rasterinit;
+ _quantInit = quantinit;
+ }
+
+//---------------------------------------------------------
+// writeStatic
+//! write static configuration values for pianoroll
+//---------------------------------------------------------
+
+void DrumEditorSettings::writeStatic(Xml& xml)
+ {
+ xml.tag("drumeditorstatic");
+ xml.intTag("quantDefault", _quantInit);
+ xml.intTag("rasterDefault", _rasterInit);
+ xml.intTag("widthDefault", _widthInit);
+ xml.intTag("heightDefault", _heightInit);
+ xml.etag("drumeditorstatic");
+ }
+
+//---------------------------------------------------------
+// readStatic
+//---------------------------------------------------------
+
+void DrumEditorSettings::readStatic(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "quantDefault")
+ _quantInit = i;
+ else if (tag == "rasterDefault")
+ _rasterInit = i;
+ else if (tag == "widthDefault")
+ _widthInit = i;
+ else if (tag == "heightDefault")
+ _heightInit = i;
+ else
+ printf("MusE:DrumEditorSettings Static: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void DrumEditorSettings::dump()
+ {
+// printf("%x: DrumEditorSettings: q=%d r=%d w=%d h=%d dlw=%d dcw=%d xmag: %d pos: %d ypos: %d\n", this, _quant, _raster, _width, _height, _dlistWidth, _dcanvasWidth, _xmag, _pos, _ypos);
+ }
+
+//
+// PianorollSettings static init default values:
+//
+int PianorollSettings::_quantInit = 96;
+int PianorollSettings::_rasterInit = 96;
+int PianorollSettings::_widthInit = 600;
+int PianorollSettings::_heightInit = 400;
+
+PianorollSettings::PianorollSettings(int r, int w, int h, int x, int y,
+ double xm, double ym, QPoint pos, int q, int apply,
+ int qs, int qlim, int cmode, bool qlen, int pw)
+ : ExtEditorSettings(r, w, h, x, y, xm, ym, pos, q, apply),
+ _quantStrength(qs), _quantLimit(qlim), _colorMode(cmode),
+ _quantLen(qlen), _pianoWidth(pw)
+ {
+ // For uninitialized values, go with static default values instead
+ if (w == ES_UNINIT)
+ _width = _widthInit;
+ if (h == ES_UNINIT)
+ _height = _heightInit;
+ if (r == ES_UNINIT)
+ _raster = _rasterInit;
+ if (q == ES_UNINIT)
+ _quant = _quantInit;
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+EditorSettings* PianorollSettings::clone()
+ {
+ PianorollSettings* newSettings = new PianorollSettings(_raster, _width,
+ _height, _x, _y, _xmag, _ymag, _pos, _quant, _applyTo, _quantStrength, _quantLimit, _colorMode, _quantLen, _pianoWidth);
+ CtrlEditSettings* c;
+ for (int i=0; i<_numOfCtrlEdits; i++) {
+ c = new CtrlEditSettings();
+ *c = *(ctrlEdits[i]); //copy
+ newSettings->setControlEditSettings(i, c);
+ }
+ newSettings->setControlEditSize(_numOfCtrlEdits);
+ return (EditorSettings*) newSettings;
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void PianorollSettings::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "exteditorsettings")
+ ExtEditorSettings::readStatus(node.firstChild());
+ else if (tag == "quantstrength")
+ _quantStrength = i;
+ else if (tag == "quantlimit")
+ _quantLimit = i;
+ else if (tag == "colormode")
+ _colorMode = i;
+ else if (tag == "quantLen")
+ _quantLen = i;
+ else if (tag == "pianowidth")
+ _pianoWidth = i;
+ else
+ printf("MusE:PianorollSettings: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void PianorollSettings::writeStatus(Xml& xml) const
+ {
+ xml.tag("prollsettings");
+ ExtEditorSettings::writeStatus(xml);
+ xml.intTag("quantstrength", _quantStrength);
+ xml.intTag("quantlimit", _quantLimit);
+ xml.intTag("colormode", _colorMode);
+ xml.intTag("quantLen", _quantLen);
+ xml.intTag("pianowidth", _pianoWidth);
+ xml.etag("prollsettings");
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void PianorollSettings::dump()
+ {
+// printf("%x: PianorollSettings: q=%d r=%d w=%d h=%d x:%d y:%d xmag: %d pos:%d ypos:%d qs:%d ql:%d cm:%d at:%d ql:%d pw:%d\n", this, _quant, _raster, _width, _height, _x, _y, _xmag, _pos, _ypos, _quantStrength, _quantLimit, _colorMode, _applyTo, _quantLen, _pianoWidth);
+ }
+
+
+//---------------------------------------------------------
+// setStaticInitValues
+//! set static initialization values
+//---------------------------------------------------------
+void PianorollSettings::setStaticInitValues(int widthinit, int heightinit, int rasterinit, int quantinit)
+ {
+ _widthInit = widthinit;
+ _heightInit = heightinit;
+ _rasterInit = rasterinit;
+ _quantInit = quantinit;
+ }
+
+//---------------------------------------------------------
+// writeStatic
+//! write static configuration values for pianoroll
+//---------------------------------------------------------
+
+void PianorollSettings::writeStatic(Xml& xml)
+ {
+ xml.tag("pianorollstatic");
+ xml.intTag("quantDefault", _quantInit);
+ xml.intTag("rasterDefault", _rasterInit);
+ xml.intTag("widthDefault", _widthInit);
+ xml.intTag("heightDefault", _heightInit);
+ xml.etag("pianorollstatic");
+ }
+
+//---------------------------------------------------------
+// readStatic
+//---------------------------------------------------------
+
+void PianorollSettings::readStatic(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "quantDefault")
+ _quantInit = i;
+ else if (tag == "rasterDefault")
+ _rasterInit = i;
+ else if (tag == "widthDefault")
+ _widthInit = i;
+ else if (tag == "heightDefault")
+ _heightInit = i;
+ else
+ printf("MusE:PianorollSettings Static: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// SettingsList
+//---------------------------------------------------------
+
+SettingsList::SettingsList()
+ {
+ //_default = d;
+ //dump();
+ }
+
+//---------------------------------------------------------
+// ~SettingsList
+//---------------------------------------------------------
+
+SettingsList::~SettingsList()
+ {
+ for(iSettingsList i = begin(); i!=end(); i++)
+ delete(i->second);
+ }
+
+//---------------------------------------------------------
+// set
+//---------------------------------------------------------
+
+void SettingsList::set(unsigned id, EditorSettings* e)
+ {
+ iSettingsList i = find(id);
+ if (i == end()) {
+ //Create a new item
+ EditorSettings* newItem = e->clone();
+ if (DBG_ESETTINGS)
+ printf("SettingsList::set - storing item with id=%d, "
+ "object at %p, cloned object at: %p.\n", id, e, newItem);
+ insert(std::pair<unsigned, EditorSettings*>(id, newItem));
+ }
+ else {
+ EditorSettings* newItem = e->clone();
+ if (DBG_ESETTINGS)
+ printf("SettingsList::set - Cloning item with id=%d, object at %p to obj at %p\n", id, e, newItem);
+ printf("SettingsList::set - deleting settings at: %p\n", i->second);
+ delete(i->second); //Hmmm, hehhh... Perhaps better to use copy-constructor instead of deletion in different places, but then it's difficult to create object of correct subclass (in a neat way)... (ml)
+ i->second = newItem;
+ }
+ }
+
+//---------------------------------------------------------
+// get
+//---------------------------------------------------------
+
+EditorSettings* SettingsList::get(unsigned id)
+ {
+ iSettingsList i = find(id);
+
+ if (i == end()) {
+ if (DBG_ESETTINGS)
+ printf("SettingsList::get - no match for id=%d\n", id);
+ return 0;
+ }
+ else
+ return i->second;
+ }
+
+//---------------------------------------------------------
+// removeSettings
+// remove settings for parts that don't exist anymore
+//---------------------------------------------------------
+
+void SettingsList::removeSettings(unsigned id)
+ {
+ for(iSettingsList i = begin(); i!=end(); i++) {
+ int bc = i->first;
+ bc&= ~(0xf0000000);
+ if (unsigned(bc) == id) {
+ if (DBG_ESETTINGS)
+ printf("SettingsList::removeSettings, deleting obj at %p\n", i->second);
+ delete i->second;
+ erase(i);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void SettingsList::dump()
+ {
+#if 0
+ printf("-------SettingsList-DUMP------\n");
+ for(iSettingsList i = begin(); i!=end(); i++) {
+ //printf("i=%x ",i);
+ printf("PART NO: %x ", i->first);
+ printf("- i->second at %x\n", i->second);
+
+ i->second->dump();
+ }
+ printf("---END-SettingsList-DUMP------\n");
+#endif
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//! writes out the settings for all editors and parts
+//---------------------------------------------------------
+
+void SettingsList::writeStatus(Xml& xml) const
+ {
+ xml.tag("settingslist");
+ // Write static
+ ExtEditorSettings::writeStatic(xml);
+ PianorollSettings::writeStatic(xml);
+ DrumEditorSettings::writeStatic(xml);
+
+ //Write all nodes
+ for (ciSettingsList i = begin(); i != end(); i++) {
+ xml.tag("elem");
+ xml.intTag("id", i->first);
+ i->second->writeStatus(xml);
+ xml.etag("elem");
+ }
+ xml.etag("settingslist");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//! reads the settings for all editors and parts
+//---------------------------------------------------------
+
+void SettingsList::readStatus(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ if (tag == "elem")
+ readElem(node.firstChild());
+ else if (tag == "exteditorstatic")
+ ExtEditorSettings::readStatic(node.firstChild());
+ else if (tag == "pianorollstatic")
+ PianorollSettings::readStatic(node.firstChild());
+ else if (tag == "drumeditorstatic")
+ DrumEditorSettings::readStatic(node.firstChild());
+ else
+ printf("MusE:SettingsList: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// readElem
+//---------------------------------------------------------
+
+void SettingsList::readElem(QDomNode node)
+ {
+ int id = 0;
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "grapheditorsettings") {
+ GraphEditorSettings* temp = new GraphEditorSettings();
+ temp->readStatus(node.firstChild());
+ insert(std::pair<unsigned, EditorSettings*>(id, temp));
+ }
+ else if (tag == "editorsettings") {
+ EditorSettings* temp = new EditorSettings();
+ temp->readStatus(node.firstChild());
+ insert(std::pair<unsigned, EditorSettings*>(id, temp));
+ }
+ else if (tag == "drumeditorsettings") {
+ DrumEditorSettings* temp = new DrumEditorSettings();
+ temp->readStatus(node.firstChild());
+ insert(std::pair<unsigned, EditorSettings*>(id, temp));
+ }
+ else if (tag == "prollsettings") {
+ PianorollSettings* temp = new PianorollSettings();
+ temp->readStatus(node.firstChild());
+ insert(std::pair<unsigned, EditorSettings*>(id, temp));
+ }
+ else if (tag == "id")
+ id = i;
+ else
+ printf("MusE:SettingsList element: unknown tag %s\n", e.tagName().toAscii().data());
+ node = node.nextSibling();
+ }
+ }
+
+
+//---------------------------------------------------------
+/*!
+ \fn SettingsList::reset()
+ \brief Remove all previous settings and clean up
+ */
+//---------------------------------------------------------
+void SettingsList::reset()
+ {
+ for (iSettingsList i = begin(); i != end(); i++) {
+ delete i->second;
+ }
+ clear();
+ }
diff --git a/muse_qt4_evolution/muse/esettings.h b/muse_qt4_evolution/muse/esettings.h
new file mode 100644
index 00000000..292c02c7
--- /dev/null
+++ b/muse_qt4_evolution/muse/esettings.h
@@ -0,0 +1,361 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Description:
+// Configuration settings for the midi-editors.
+//
+// Copyright (C) 2004 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ESETTINGS_H__
+#define __ESETTINGS_H__
+
+#include <unistd.h>
+#include <fcntl.h>
+
+#define ET_LISTEDIT 0x1000000
+#define ET_MASTEREDIT 0x4000000
+#define ET_PIANO_ROLL 0x10000000
+#define ET_DRUMEDIT 0x20000000
+#define ET_WAVEEDIT 0x40000000
+
+#define MAXNOOFCTRLEDITSETTINGS 16
+
+#define ES_UNINIT -1 /* Uninitialized parameter */
+
+#define ESETTINGS_DEBUG 0
+
+#include "debug.h"
+#define DBG_ESETTINGS_ON 0
+#define DBG_ESETTINGS debugMsg && DBG_ESETTINGS_ON
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class CtrlEdit;
+
+//-----------------------------------------------
+// CtrlEditSettings class
+// stores ctrleditsettings
+//-----------------------------------------------
+class CtrlEditSettings
+ {
+ private:
+ int height;
+ int controller;
+
+ public:
+ //const MidiController* controller;
+ CtrlEditSettings() {}
+ CtrlEditSettings(int h, int c) { height = h; controller = c; }
+ CtrlEditSettings(const CtrlEditSettings& c) { height = c.height; controller = c.controller; }
+ int getHeight() { return height; }
+ int getController() { return controller; }
+ void readStatus(QDomNode);
+ void writeStatus(Xml& xml);
+
+ bool operator==(const CtrlEditSettings& c) const { return (c.height == height && c.controller == controller); }
+ bool operator!=(const CtrlEditSettings& c) const { return !(c == *this); }
+ };
+
+//-----------------------------------------------
+// EditorSettings
+// base class for midieditorsettings
+//-----------------------------------------------
+class EditorSettings
+ {
+ protected:
+ int _raster;
+ int _width, _height, _x, _y;
+
+ public:
+ EditorSettings(int r=96, int w=600, int h=400, int x=-1, int y=-1) : _raster(r), _width(w), _height(h), _x(x), _y(y) { }
+ virtual ~EditorSettings() {}
+ int raster() const { return _raster; }
+ void setRaster(int r) { _raster = r; }
+ int* rasterPtr() { return &_raster; }
+ int width() const { return _width; }
+ int height() const { return _height; }
+ void setWidth(int w) { _width = w; }
+ void setHeight(int h) { _height = h; }
+ int x() const { return _x; }
+ void setX(int x) { _x = x; }
+ int y() const { return _y; }
+ void setY(int y) { _y = y; }
+
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ virtual bool operator==(const EditorSettings& e) const {
+ return ((e._raster == _raster) && (e._width == _width) && (e._height == _height)/* && (e._x == _x) && (e._y == _y)*/);
+ }
+ virtual bool operator!=(const EditorSettings& e) const { return !(e == *this); }
+ virtual EditorSettings* clone() { return new EditorSettings(_raster, _width, _height, _x, _y); }
+ virtual void dump() { printf("%p: EditorSettings: r:%d w:%d h:%d x:%d y:%d\n", this, _raster, _width, _height, _x, _y); }
+ };
+
+//---------------------------------------------------------
+// GraphEditorSettings
+//---------------------------------------------------------
+class GraphEditorSettings : public EditorSettings
+ {
+ protected:
+ //Values considering scroll + zoom
+ double _xmag, _ymag;
+ QPoint _pos;
+
+ public:
+ GraphEditorSettings(int r=96, int w=600, int h=400, int x=-1, int y=-1,
+ double xmag=0.05, double ymag=1.0, QPoint pos = QPoint(0, 0))
+ : EditorSettings(r, w, h, x, y), _xmag(xmag), _ymag(ymag), _pos(pos)
+ {
+ }
+ virtual ~GraphEditorSettings() {}
+
+ double xmag() const { return _xmag; }
+ double ymag() const { return _ymag; }
+ void setXmag(double x) { _xmag = x; }
+ void setYmag(double y) { _xmag = y; }
+ QPoint pos() const { return _pos; }
+ void setPos(const QPoint& p) { _pos = p; }
+ int ypos() const { return _pos.y(); }
+ void setYpos(int y) { _pos.setY(y); }
+
+ virtual bool operator==(const EditorSettings& e) const {
+ const GraphEditorSettings& f = (GraphEditorSettings&) e;
+ return ((f._raster == _raster) && (f._width == _width) && (f._height == _height)// && (f._x == _x) && (f._y == _y)
+ && (f._xmag == _xmag)
+ && (f._ymag == _ymag)
+ && (f._pos == _pos));
+ }
+ virtual bool operator!=(const EditorSettings& e) const { return !(e == *this); }
+ virtual EditorSettings* clone() { return new GraphEditorSettings(_raster, _width, _height, _x, _y, _xmag, _ymag, _pos); }
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ virtual void dump() {
+ printf("%p: GraphEditorSettings: r:%d w:%d h:%d x:%d y:%d mag:%f:%f pos:%d ypos:%d\n",
+ this, _raster, _width, _height, _x, _y, _xmag, _ymag, _pos.x(), _pos.y());
+ }
+ };
+
+//---------------------------------------------------------
+// ExtEditorSettings
+// Common settings for drumeditor and pianoroll
+//---------------------------------------------------------
+
+class ExtEditorSettings : public GraphEditorSettings
+ {
+ private:
+
+ protected:
+ int _quant;
+ int _applyTo;
+ static bool _steprec;
+ static bool _midiin;
+ int _numOfCtrlEdits;
+
+ public:
+ ExtEditorSettings(int r=96, int w=600, int h=400, int x=-1, int y=-1, double xm=0.05, double ym=1.0, QPoint pos = QPoint(0,0), int q=96, int apply=0);
+ virtual ~ExtEditorSettings();
+ //ExtEditorSettings(const ExtEditorSettings& e) : EditorSettings(e._raster) , _quant(e._quant) { }
+ static void readStatic(QDomNode);
+ static void writeStatic(Xml& xml);
+ CtrlEditSettings* ctrlEdits[MAXNOOFCTRLEDITSETTINGS];
+
+ virtual bool operator==(const EditorSettings& e) const { //örk...
+ const ExtEditorSettings& f = (ExtEditorSettings&) e;
+ bool ctrlEditsEqual = true;
+ for (int i=0; i<MAXNOOFCTRLEDITSETTINGS; i++) {
+ if (ctrlEdits[i] != f.ctrlEdits[i])
+ ctrlEditsEqual = false;
+ }
+ return ((f._raster == _raster) && (f._width == _width) && (f._height == _height)// && (f._x == _x) && (f._y == _y)
+ && (f._xmag == _xmag)
+ && (f._ymag == _ymag)
+ && (f._pos == _pos)
+ && (f._quant == _quant) && (f._applyTo == _applyTo)
+ && (ctrlEditsEqual));
+ };
+ virtual bool operator!=(const EditorSettings& e) const { const ExtEditorSettings& f = (ExtEditorSettings&) e; return !(f == *this); }
+
+ virtual EditorSettings* clone();
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ virtual void dump() {
+ printf("%p: ExtEditorSettings: r:%d q:%d w:%d h:%d x:%d y:%d mag=%f:%f xpos=%d ypos=%d applyTo=%d\n",
+ this, _raster, _quant, _width, _height, _x, _y, _xmag, _ymag, _pos.x(), _pos.y(), _applyTo);
+ }
+ void setControlEditSettings(int pos, CtrlEditSettings* c);
+ void setControlEditSize(int s) { _numOfCtrlEdits = s; }
+ int getControlEditSize() { return _numOfCtrlEdits; }
+ CtrlEditSettings* getControlEditSettings(int pos) { return ctrlEdits[pos]; }
+
+ int quant() const { return _quant; }
+ void setQuant(int q) { _quant = q; }
+
+ static bool steprec() { return _steprec; }
+ static void setSteprec(bool b) { _steprec = b; }
+ static bool midiin() { return _midiin; }
+ static void setMidiin(bool b) { _midiin = b; }
+ };
+
+
+//---------------------------------------------------------
+// DrumEditorSettings
+// Settings for drumeditor
+//---------------------------------------------------------
+class DrumEditorSettings : public ExtEditorSettings
+ {
+ int _dlistWidth, _dcanvasWidth;
+
+ // Default initialization values
+ static int _quantInit, _rasterInit;
+ static int _widthInit, _heightInit;
+
+ public:
+ DrumEditorSettings(int r=ES_UNINIT, int w=ES_UNINIT, int h=ES_UNINIT,
+ int x=-1, int y=-1,
+ double xm=0.05, double ym=1.0, QPoint pos=QPoint(0,0), int q=ES_UNINIT, int apply=0, int dl=50, int dw=300);
+ virtual ~DrumEditorSettings() {}
+
+ static void readStatic(QDomNode);
+ static void writeStatic(Xml& xml);
+ int dlistWidth() const { return _dlistWidth; }
+ int dcanvasWidth() const { return _dcanvasWidth; }
+ void setdlistWidth(int d) { _dlistWidth = d; }
+ void setdcanvasWidth(int d) { _dcanvasWidth = d; }
+
+ virtual bool operator==(const EditorSettings& e) const { //öööörk...
+ DrumEditorSettings& f = (DrumEditorSettings&) e;
+ bool ctrlEditsEqual = true;
+ for (int i=0; i<MAXNOOFCTRLEDITSETTINGS; i++) {
+ if (ctrlEdits[i] != f.ctrlEdits[i])
+ ctrlEditsEqual = false;
+ }
+ return ((f._raster == _raster) && (f._width == _width) && (f._height == _height)// && (f._x == _x) && (f._y == _y)
+ && (f._xmag == _xmag)
+ && (f._ymag == _ymag)
+ && (f._pos == _pos)
+ && (f._quant == _quant) && (f._applyTo == _applyTo)
+ && (ctrlEditsEqual)
+ && (f._dlistWidth == _dlistWidth) && (f._dcanvasWidth == _dcanvasWidth));
+ }
+ virtual bool operator!=(const EditorSettings& e) const { DrumEditorSettings& f = (DrumEditorSettings&) e; return !(f==*this); }
+ virtual EditorSettings* clone();
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ virtual void dump();
+
+ static void setStaticInitValues(int widthinit, int heightinit, int rasterinit, int quantinit);
+ };
+
+
+//---------------------------------------------------------
+// PianorollSettings
+// Settings for pianoroll
+//---------------------------------------------------------
+class PianorollSettings : public ExtEditorSettings
+ {
+ int _quantStrength, _quantLimit, _colorMode;
+ bool _quantLen;
+ int _pianoWidth;
+
+ // Default initialization values
+ static int _quantInit;
+ static int _rasterInit;
+ static int _widthInit;
+ static int _heightInit;
+
+ public:
+ PianorollSettings(int r=ES_UNINIT, int w=ES_UNINIT, int h=ES_UNINIT,
+ int x=-1, int y=-1, double xm=0.05, double ym = 1.0,
+ QPoint pos = QPoint(0, 245), int q=ES_UNINIT, int apply=0,
+ int qs=80, int qlim=50, int cmode=0, bool qlen=false, int pw=40);
+ virtual ~PianorollSettings() {}
+
+ static void readStatic(QDomNode);
+ static void writeStatic(Xml& xml);
+ int quantStrength() const { return _quantStrength; }
+ void setQuantStrength(int c) { _quantStrength = c; }
+ int quantLimit() const { return _quantLimit; }
+ void setQuantLimit(int q) { _quantLimit = q; }
+ int colorMode() const { return _colorMode; }
+ void setColorMode(int c) { _colorMode = c; }
+ int applyTo() const { return _applyTo; }
+ void setApplyTo(int a) { _applyTo = a; }
+ bool quantLen() const { return _quantLen; }
+ void setQuantLen(bool b) { _quantLen = b; }
+ int pianoWidth() const { return _pianoWidth; }
+ void setPianoWidth(int w) { _pianoWidth = w; }
+
+ virtual bool operator==(const EditorSettings& e) const { //öööörkk...
+ PianorollSettings& f = (PianorollSettings&) e;
+ bool ctrlEditsEqual = true;
+ for (int i=0; i<MAXNOOFCTRLEDITSETTINGS; i++) {
+ if (ctrlEdits[i] != f.ctrlEdits[i])
+ ctrlEditsEqual = false;
+ }
+ return ((f._raster == _raster) && (f._width == _width) && (f._height == _height)// && (f._x == _x) && (f._y == _y)
+ && (f._xmag == _xmag)
+ && (f._ymag == _ymag)
+ && (f._pos == _pos)
+ && (f._quant == _quant) && (f._applyTo == _applyTo)
+ && (ctrlEditsEqual)
+ && (f._quantStrength == _quantStrength) && (f._quantLimit == _quantLimit) && (f._colorMode == _colorMode)
+ && (f._quantLen == _quantLen) && (f._pianoWidth == _pianoWidth));
+ }
+ virtual bool operator!=(const EditorSettings& e) const { PianorollSettings& f = (PianorollSettings&) e; return !(f==*this); }
+ virtual void readStatus(QDomNode);
+ virtual void writeStatus(Xml&) const;
+ virtual EditorSettings* clone();
+ virtual void dump();
+
+ static void setStaticInitValues(int widthinit, int heightinit, int rasterinit, int quantinit);
+ };
+
+//---------------------------------------------------------
+// SettingsList
+//
+// Multimap containing a list of editor settings
+// There is one big list with settings for all editors and
+// different parts. When opening an editor for a specific
+// part, the part-id is matched against the correct editortype
+// If one exists, the editor gets when calling getSettings(),
+// otherwise, a new one is created.
+// The setting has a final update on destruction, and if it
+// has changed, it is stored to the settingslist
+//---------------------------------------------------------
+typedef std::multimap<unsigned, EditorSettings*>::iterator iSettingsList;
+typedef std::multimap<unsigned, EditorSettings*>::const_iterator ciSettingsList;
+
+class SettingsList : public std::multimap<unsigned, EditorSettings*>
+ {
+ public:
+ SettingsList();
+ ~SettingsList();
+ void set(unsigned id, EditorSettings* e);
+ EditorSettings* get(unsigned);
+ void removeSettings(unsigned id);
+ void readElem(QDomNode);
+ void readStatus(QDomNode);
+ void writeStatus(Xml&) const;
+ void dump();
+ void reset();
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/evdata.h b/muse_qt4_evolution/muse/evdata.h
new file mode 100644
index 00000000..629b9e9a
--- /dev/null
+++ b/muse_qt4_evolution/muse/evdata.h
@@ -0,0 +1,85 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EVDATA_H__
+#define __EVDATA_H__
+
+#include <string.h>
+
+//---------------------------------------------------------
+// EvData
+// variable len event data (sysex, meta etc.)
+//---------------------------------------------------------
+
+class EvData {
+ int* refCount;
+
+ public:
+ unsigned char* data;
+ int dataLen;
+
+ EvData() {
+ data = 0;
+ dataLen = 0;
+ refCount = new int(1);
+ }
+ EvData(const EvData& ed) {
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ }
+
+ EvData& operator=(const EvData& ed) {
+ if (data == ed.data)
+ return *this;
+ if (--(*refCount) == 0) {
+ delete refCount;
+ delete[] data;
+ }
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ return *this;
+ }
+
+ bool operator==(const EvData& ed) const {
+ if(dataLen==ed.dataLen) {
+ return memcmp(data, ed.data, sizeof(unsigned char) * dataLen)==0;
+ }
+ else return false;
+ }
+
+ ~EvData() {
+ if (--(*refCount) == 0) {
+ delete[] data;
+ delete refCount;
+ }
+ }
+ void setData(const unsigned char* p, int l) {
+ data = new unsigned char[l];
+ memcpy(data, p, l);
+ dataLen = l;
+ }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/event.cpp b/muse_qt4_evolution/muse/event.cpp
new file mode 100644
index 00000000..53d68c08
--- /dev/null
+++ b/muse_qt4_evolution/muse/event.cpp
@@ -0,0 +1,222 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "event.h"
+#include "eventbase.h"
+#include "waveevent.h"
+#include "midieventbase.h"
+
+using AL::Pos;
+
+//---------------------------------------------------------
+// Event
+//---------------------------------------------------------
+
+EventBase::EventBase(EventType t)
+ {
+ _type = t;
+ Pos::setType(_type == Wave ? AL::FRAMES : AL::TICKS);
+ refCount = 0;
+ _selected = false;
+ _recorded = false;
+ }
+
+EventBase::EventBase(const EventBase& ev)
+ : PosLen(ev)
+ {
+ refCount = 0;
+ _selected = ev._selected;
+ _type = ev._type;
+ _recorded = ev._recorded;
+ }
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void EventBase::move(int tickOffset)
+ {
+ setTick(tick() + tickOffset);
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void EventBase::dump(int n) const
+ {
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ printf("Event %p refs:%d ", this, refCount);
+ PosLen::dump(n+2);
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+Event Event::clone() const
+ {
+ return Event(ev->clone());
+ }
+
+Event::Event(EventType t)
+ {
+ if (t == Wave)
+ ev = new WaveEventBase(t);
+ else
+ ev = new MidiEventBase(t);
+ ++(ev->refCount);
+ }
+
+Event::Event(const Event& e)
+ {
+ ev = e.ev;
+ if (ev)
+ ++(ev->refCount);
+ }
+
+Event::Event(EventBase* eb)
+ {
+ ev = eb;
+ ++(ev->refCount);
+ }
+
+Event::~Event()
+ {
+ if (ev && --(ev->refCount) == 0)
+ delete ev;
+ }
+
+bool Event::empty() const
+ {
+ return ev == 0;
+ }
+
+EventType Event::type() const
+ {
+ return ev ? ev->type() : Note;
+ }
+
+void Event::setType(EventType t)
+ {
+ if (ev && --(ev->refCount) == 0)
+ delete ev;
+ if (t == Wave)
+ ev = new WaveEventBase(t);
+ else
+ ev = new MidiEventBase(t);
+ ++(ev->refCount);
+ }
+
+Event& Event::operator=(const Event& e)
+ {
+ if (ev == e.ev)
+ return *this;
+ if (ev && --(ev->refCount) == 0)
+ delete ev;
+ ev = e.ev;
+ if (ev)
+ ++(ev->refCount);
+ return *this;
+ }
+
+bool Event::operator==(const Event& e) const {
+ return *ev == *e.ev;
+ }
+
+
+int Event::getRefCount() const { return ev->getRefCount(); }
+bool Event::selected() const { return ev->_selected; }
+void Event::setSelected(bool val) { ev->_selected = val; }
+bool Event::recorded() const { return ev->_recorded; }
+void Event::setRecorded(bool val) { ev->_recorded = val; }
+void Event::move(int offset) { ev->move(offset); }
+
+void Event::read(QDomNode node) { ev->read(node); }
+void Event::write(Xml& xml, const Pos& o) const { ev->write(xml, o); }
+void Event::dump(int n) const { ev->dump(n); }
+Event Event::mid(unsigned a, unsigned b) { return Event(ev->mid(a, b)); }
+
+bool Event::isNote() const { return ev->isNote(); }
+bool Event::isNoteOff() const { return ev->isNoteOff(); }
+bool Event::isNoteOff(const Event& e) const { return ev->isNoteOff(e); }
+int Event::dataA() const { return ev->dataA(); }
+int Event::pitch() const { return ev->dataA(); }
+void Event::setA(int val) { ev->setA(val); }
+void Event::setPitch(int val) { ev->setA(val); }
+int Event::dataB() const { return ev->dataB(); }
+int Event::velo() const { return ev->dataB(); }
+void Event::setB(int val) { ev->setB(val); }
+void Event::setVelo(int val) { ev->setB(val); }
+int Event::dataC() const { return ev->dataC(); }
+int Event::veloOff() const { return ev->dataC(); }
+void Event::setC(int val) { ev->setC(val); }
+void Event::setVeloOff(int val) { ev->setC(val); }
+
+const unsigned char* Event::data() const { return ev->data(); }
+int Event::dataLen() const { return ev->dataLen(); }
+void Event::setData(const unsigned char* data, int len) { ev->setData(data, len); }
+const EvData Event::eventData() const { return ev->eventData(); }
+
+const QString Event::name() const { return ev->name(); }
+void Event::setName(const QString& s) { ev->setName(s); }
+int Event::spos() const { return ev->spos(); }
+void Event::setSpos(int s) { ev->setSpos(s); }
+SndFileR Event::sndFile() const { return ev->sndFile(); }
+void Event::setSndFile(SndFileR& sf) { ev->setSndFile(sf); }
+void Event::read(unsigned offset, float** bpp, int channels, int nn)
+ {
+ ev->read(offset, bpp, channels, nn);
+ }
+
+void Event::setTick(unsigned val) { ev->setTick(val); }
+unsigned Event::tick() const { return ev->tick(); }
+Pos Event::pos() const { return *ev; }
+unsigned Event::frame() const { return ev->frame(); }
+void Event::setFrame(unsigned val) { ev->setFrame(val); }
+void Event::setLenTick(unsigned val) { ev->setLenTick(val); }
+void Event::setLenFrame(unsigned val) { ev->setLenFrame(val); }
+unsigned Event::lenTick() const { return ev->lenTick(); }
+unsigned Event::lenFrame() const { return ev->lenFrame(); }
+Pos Event::end() const { return ev->end(); }
+unsigned Event::endTick() const { return ev->end().tick(); }
+unsigned Event::endFrame() const { return ev->end().frame(); }
+void Event::setPos(const Pos& p) { ev->setPos(p); }
+QString Event::eventTypeName() const { return ev->eventTypeName(); }
+
+
+//---------------------------------------------------------
+// eventTypeName
+//---------------------------------------------------------
+
+QString EventBase::eventTypeName() const
+ {
+ switch(type()) {
+ case Note: return QString("Note");
+ case Controller: return QString("Ctrl");
+ case Sysex: return QString("Sysex");
+ case PAfter: return QString("PAfter");
+ case CAfter: return QString("CAfter");
+ case Meta: return QString("Meta");
+ default: return QString("??");
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/event.h b/muse_qt4_evolution/muse/event.h
new file mode 100644
index 00000000..62b79756
--- /dev/null
+++ b/muse_qt4_evolution/muse/event.h
@@ -0,0 +1,139 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EVENT_H__
+#define __EVENT_H__
+
+#include "wave.h" // wg. SndFile
+#include "al/xml.h"
+#include "al/pos.h"
+#include "evdata.h"
+
+using AL::Xml;
+using AL::Pos;
+
+enum EventType { Note, Controller, Sysex, PAfter, CAfter, Meta, Wave };
+class EventBase;
+
+//---------------------------------------------------------
+// Event
+//---------------------------------------------------------
+
+class Event {
+ EventBase* ev;
+
+ public:
+ Event() { ev = 0; }
+ Event(EventType t);
+ Event(const Event& e);
+ Event(EventBase* eb);
+ virtual ~Event();
+
+ bool empty() const;
+ EventType type() const;
+ QString eventTypeName() const;
+
+ void setType(EventType t);
+ Event& operator=(const Event& e);
+ bool operator==(const Event& e) const;
+
+ int getRefCount() const;
+ bool selected() const;
+ void setSelected(bool val);
+ bool recorded() const;
+ void setRecorded(bool val);
+ void move(int offset);
+
+ void read(QDomNode);
+ void write(AL::Xml& xml, const Pos& offset) const;
+ void dump(int n = 0) const;
+ Event clone() const;
+ Event mid(unsigned a, unsigned b);
+
+ bool isNote() const;
+ bool isNoteOff() const;
+ bool isNoteOff(const Event& e) const;
+ int dataA() const;
+ int pitch() const;
+ void setA(int val);
+ void setPitch(int val);
+ int dataB() const;
+ int velo() const;
+ void setB(int val);
+ void setVelo(int val);
+ int dataC() const;
+ int veloOff() const;
+ void setC(int val);
+ void setVeloOff(int val);
+
+ const unsigned char* data() const;
+ int dataLen() const;
+ void setData(const unsigned char* data, int len);
+ const EvData eventData() const;
+
+ const QString name() const;
+ void setName(const QString& s);
+ int spos() const;
+ void setSpos(int s);
+ SndFileR sndFile() const;
+ virtual void setSndFile(SndFileR& sf);
+ virtual void read(unsigned offset, float** bpp, int channels, int nn);
+
+ Pos pos() const;
+ Pos end() const;
+
+ void setTick(unsigned val);
+ unsigned tick() const;
+ unsigned frame() const;
+ void setFrame(unsigned val);
+ void setLenTick(unsigned val);
+ void setLenFrame(unsigned val);
+ unsigned lenTick() const;
+ unsigned lenFrame() const;
+ unsigned endTick() const;
+ unsigned endFrame() const;
+ void setPos(const Pos& p);
+ };
+
+typedef std::multimap<unsigned, Event, std::less<unsigned> > EL;
+typedef EL::iterator iEvent;
+typedef EL::reverse_iterator riEvent;
+typedef EL::const_iterator ciEvent;
+typedef std::pair <iEvent, iEvent> EventRange;
+
+//---------------------------------------------------------
+// EventList
+// tick sorted list of events
+//---------------------------------------------------------
+
+class EventList : public EL {
+ public:
+ int cloneCount;
+ EventList() { cloneCount = 0; }
+ iEvent find(const Event&);
+ iEvent add(const Event& event);
+ iEvent add(const Event& event, unsigned tick);
+ void move(const Event& event, unsigned tick);
+ void dump() const;
+ void read(QDomNode, bool midi);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/eventbase.h b/muse_qt4_evolution/muse/eventbase.h
new file mode 100644
index 00000000..27d9e323
--- /dev/null
+++ b/muse_qt4_evolution/muse/eventbase.h
@@ -0,0 +1,100 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EVENTBASE_H__
+#define __EVENTBASE_H__
+
+#include "al/pos.h"
+
+//---------------------------------------------------------
+// EventBase
+//---------------------------------------------------------
+
+class EventBase : public AL::PosLen {
+ EventType _type;
+
+ protected:
+ int refCount;
+ bool _selected;
+ bool _recorded;
+
+ public:
+ EventBase(EventType t);
+ EventBase(const EventBase& ev);
+ QString eventTypeName() const;
+
+ virtual ~EventBase() {}
+
+ int getRefCount() const { return refCount; }
+ EventType type() const { return _type; }
+ void setType(EventType t) { _type = t; }
+ bool selected() const { return _selected; }
+ void setSelected(bool val) { _selected = val; }
+ bool recorded() const { return _recorded; }
+ void setRecorded(bool val) { _recorded = val; }
+
+ void move(int offset);
+
+ virtual void read(QDomNode) = 0;
+ virtual void write(Xml&, const Pos& offset) const = 0;
+ virtual void dump(int n = 0) const;
+ virtual EventBase* mid(unsigned, unsigned) = 0;
+ friend class Event;
+
+ virtual bool isNote() const { return false; }
+ virtual bool isNoteOff() const { return false; }
+ virtual bool isNoteOff(const Event&) const { return false; }
+ virtual int pitch() const { return 0; }
+ virtual int program() const { return 0; }
+ virtual int cntrl() const { return 0; }
+ virtual int dataA() const { return 0; }
+ virtual void setA(int) { }
+ virtual void setPitch(int) { }
+
+ virtual int cntrlVal() const { return 0; }
+ virtual int dataB() const { return 0; }
+ virtual int velo() const { return 0; }
+ virtual void setB(int) { }
+ virtual void setVelo(int) { }
+
+ virtual int veloOff() const { return 0; }
+ virtual int dataC() const { return 0; }
+ virtual void setC(int) { }
+ virtual void setVeloOff(int) { }
+
+ virtual const unsigned char* data() const { return 0; }
+ virtual int dataLen() const { return 0; }
+ virtual void setData(const unsigned char*, int) { }
+ virtual const EvData eventData() const { return EvData(); }
+
+ virtual const QString name() const { return QString("?"); }
+ virtual void setName(const QString&) { }
+ virtual int spos() const { return 0; }
+ virtual void setSpos(int) { }
+ virtual SndFileR sndFile() const { return 0; }
+ virtual void setSndFile(SndFileR&) { }
+ virtual EventBase* clone() const = 0;
+ virtual void read(unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/) {}
+
+ virtual bool operator==(const EventBase&) const { return false; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/eventlist.cpp b/muse_qt4_evolution/muse/eventlist.cpp
new file mode 100644
index 00000000..82d3b389
--- /dev/null
+++ b/muse_qt4_evolution/muse/eventlist.cpp
@@ -0,0 +1,93 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "event.h"
+#include "al/xml.h"
+
+//---------------------------------------------------------
+// readEventList
+//---------------------------------------------------------
+
+void EventList::read(QDomNode node, bool midi)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag.isEmpty())
+ continue;
+ if (tag == "event") {
+ Event e(midi ? Note : Wave);
+ e.read(node);
+ add(e);
+ }
+ else
+ printf("EventListData:read(): unknown tag %s\n", tag.toAscii().data());
+ }
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+iEvent EventList::add(const Event& event, unsigned tick)
+ {
+ return std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (tick, event));
+ }
+
+iEvent EventList::add(const Event& event)
+ {
+ return add(event, event.tick());
+ }
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void EventList::move(const Event& event, unsigned tick)
+ {
+ iEvent i = find(event);
+ erase(i);
+ std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (tick, event));
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+iEvent EventList::find(const Event& event)
+ {
+ EventRange range = equal_range(event.tick());
+ for (iEvent i = range.first; i != range.second; ++i) {
+ if (i->second == event)
+ return i;
+ }
+ return end();
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void EventList::dump() const
+ {
+ for (ciEvent i = begin(); i != end(); ++i)
+ i->second.dump();
+ }
+
diff --git a/muse_qt4_evolution/muse/exportmidi.cpp b/muse_qt4_evolution/muse/exportmidi.cpp
new file mode 100644
index 00000000..f18794ab
--- /dev/null
+++ b/muse_qt4_evolution/muse/exportmidi.cpp
@@ -0,0 +1,376 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "muse.h"
+#include "midifile.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "globals.h"
+#include "widgets/filedialog.h"
+#include "song.h"
+#include "midievent.h"
+#include "event.h"
+#include "midiedit/drummap.h"
+#include "gconfig.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "al/marker.h"
+#include "part.h"
+#include "exportmidi.h"
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+static void addController(MidiEventList* l, int tick, int channel, int a, int b)
+ {
+ if (a < 0x1000) { // 7 Bit Controller
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, a, b));
+ }
+ else if (a < 0x20000) { // 14 Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, ctrlH, dataH));
+ l->insert(MidiEvent(tick+1, channel, ME_CONTROLLER, ctrlL, dataL));
+ }
+ else if (a < 0x30000) { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ l->insert(MidiEvent(tick+1, channel, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ l->insert(MidiEvent(tick+2, channel, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ else if (a < 0x40000) { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ l->insert(MidiEvent(tick+1, channel, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ l->insert(MidiEvent(tick+2, channel, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ else if (a == CTRL_PITCH) {
+ int a = b + 8192;
+ int b = a >> 7;
+ l->insert(MidiEvent(tick, channel, ME_PITCHBEND, a & 0x7f, b & 0x7f));
+ }
+ else if (a == CTRL_PROGRAM) {
+ int hb = (b >> 16) & 0xff;
+ int lb = (b >> 8) & 0xff;
+ int pr = b & 0x7f;
+ int tickoffset = 0;
+ if (hb != 0xff) {
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, CTRL_HBANK, hb));
+ ++tickoffset;
+ }
+ if (lb != 0xff) {
+ l->insert(MidiEvent(tick+tickoffset, channel, ME_CONTROLLER, CTRL_LBANK, lb));
+ ++tickoffset;
+ }
+ l->insert(MidiEvent(tick+tickoffset, channel, ME_PROGRAM, pr, 0));
+ }
+ else if (a < 0x60000) { // RPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ l->insert(MidiEvent(tick+1, channel, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ l->insert(MidiEvent(tick+2, channel, ME_CONTROLLER, CTRL_HDATA, dataH));
+ l->insert(MidiEvent(tick+3, channel, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ else if (a < 0x70000) { // NRPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ l->insert(MidiEvent(tick, channel, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ l->insert(MidiEvent(tick+1, channel, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ l->insert(MidiEvent(tick+2, channel, ME_CONTROLLER, CTRL_HDATA, dataH));
+ l->insert(MidiEvent(tick+3, channel, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ }
+
+//---------------------------------------------------------
+// exportMidi
+//---------------------------------------------------------
+
+void MusE::exportMidi()
+ {
+ if (exportMidiDialog == 0)
+ exportMidiDialog = new ExportMidiDialog(song->projectPath());
+ int rv = exportMidiDialog->exec();
+ if (rv == 0)
+ return;
+ QString name = exportMidiDialog->filename->text();
+ QFile fp(name);
+ if (fp.exists()) {
+ QString s(QWidget::tr("File\n") + name + QWidget::tr("\nexists"));
+ int rv = QMessageBox::warning(this,
+ QWidget::tr("MusE: export midi file:"),
+ s,
+ QWidget::tr("Overwrite"),
+ QWidget::tr("Quit"), QString::null, 0, 1);
+ if (rv == 1)
+ return;
+ }
+
+ MidiFile mf;
+ int format = exportMidiDialog->smf0->isChecked() ? 0 : 1;
+ mf.setFormat(format);
+
+ MidiFileTrackList* mtl = new MidiFileTrackList;
+
+ MidiTrackList* mt = song->midis();
+ for (iMidiTrack im = mt->begin(); im != mt->end(); ++im) {
+ MidiTrack* track = *im;
+
+ MidiFileTrack* mft = new MidiFileTrack;
+ mtl->push_back(mft);
+
+ MidiEventList* l = &(mft->events);
+ int channel = 0;
+ channel = track->channelNo();
+
+ //-----------------------------------
+ // track name
+ //-----------------------------------
+
+ if (!track->name().isEmpty()) {
+ const char* name = track->name().toAscii().data();
+ int len = strlen(name);
+ MidiEvent ev(0, ME_META, (unsigned char*)name, len+1);
+ ev.setA(0x3); // Meta Sequence/Track Name
+ l->insert(ev);
+ }
+
+ //-----------------------------------
+ // managed controller
+ //-----------------------------------
+
+ CtrlList* cll = track->controller();
+ for (iCtrl ivl = cll->begin(); ivl != cll->end(); ++ivl) {
+ Ctrl* c = ivl->second;
+ int id = c->id();
+ for (iCtrlVal iv = c->begin(); iv != c->end(); ++iv) {
+ int tick = iv.key();
+ int val = iv.value().i;
+ addController(l, tick, channel, id, val);
+ }
+ }
+
+ //-----------------------------------
+ // track comment
+ //-----------------------------------
+
+ if (!track->comment().isEmpty()) {
+ const char* comment = track->comment().toAscii().data();
+ int len = strlen(comment);
+ MidiEvent ev(0, ME_META, (unsigned char*)comment, len+1);
+ ev.setA(0xf); // Meta Text
+ l->insert(ev);
+ }
+ PartList* parts = track->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p) {
+ Part* part = p->second;
+ EventList* evlist = part->events();
+ for (iEvent i = evlist->begin(); i != evlist->end(); ++i) {
+ Event ev = i->second;
+ int tick = ev.tick() + part->tick();
+
+ switch (ev.type()) {
+ case Note:
+ {
+ if (ev.velo() == 0) {
+ printf("Warning: midi note has velocity 0, (ignored)\n");
+ continue;
+ }
+ int pitch = ev.pitch();
+ int velo = ev.velo();
+ int len = ev.lenTick();
+
+ //---------------------------------------
+ // apply trackinfo values
+ //---------------------------------------
+
+ if (track->transposition()
+ || track->velocity()
+ || track->compression() != 100
+ || track->len() != 100) {
+ pitch += track->transposition();
+ if (pitch > 127)
+ pitch = 127;
+ if (pitch < 0)
+ pitch = 0;
+
+ velo += track->velocity();
+ velo = (velo * track->compression()) / 100;
+ if (velo > 127)
+ velo = 127;
+ if (velo < 1) // no off event
+ velo = 1;
+ len = (len * track->len()) / 100;
+ }
+ if (len <= 0)
+ len = 1;
+ l->insert(MidiEvent(tick, channel, ME_NOTEON, pitch, velo));
+ l->insert(MidiEvent(tick+len, channel, ME_NOTEON, pitch, 0));
+ }
+ break;
+
+ case Controller:
+ addController(l, tick, channel, ev.dataA(), ev.dataB());
+ break;
+
+ case Sysex:
+ l->insert(MidiEvent(tick, ME_SYSEX, ev.eventData()));
+ break;
+
+ case PAfter:
+ l->insert(MidiEvent(tick, channel, ME_AFTERTOUCH, ev.dataA(), ev.dataB()));
+ break;
+
+ case CAfter:
+ l->insert(MidiEvent(tick, channel, ME_POLYAFTER, ev.dataA(), ev.dataB()));
+ break;
+
+ case Meta:
+ {
+ MidiEvent mpev(tick, ME_META, ev.eventData());
+ mpev.setA(ev.dataA());
+ l->insert(mpev);
+ }
+ break;
+ case Wave:
+ break;
+ }
+ }
+ }
+ }
+
+ MidiFileTrack* mft = mtl->front();
+ MidiEventList* l = &(mft->events);
+
+ //---------------------------------------------------
+ // Write Track Marker
+ //
+ AL::MarkerList* ml = song->marker();
+ for (AL::ciMarker m = ml->begin(); m != ml->end(); ++m) {
+ const char* name = m->second.name().toAscii().data();
+ int len = strlen(name);
+ MidiEvent ev(m->first, ME_META, (unsigned char*)name, len);
+ ev.setA(0x6);
+ l->insert(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Copyright
+ //
+ const char* copyright = config.copyright.toAscii().data();
+ if (copyright && *copyright) {
+ int len = strlen(copyright);
+ MidiEvent ev(0, ME_META, (unsigned char*)copyright, len);
+ ev.setA(0x2);
+ l->insert(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Tempomap
+ //
+ AL::TempoList* tl = &AL::tempomap;
+ for (AL::ciTEvent e = tl->begin(); e != tl->end(); ++e) {
+ AL::TEvent* event = e->second;
+ unsigned char data[3];
+ int tempo = event->tempo;
+ data[2] = tempo & 0xff;
+ data[1] = (tempo >> 8) & 0xff;
+ data[0] = (tempo >> 16) & 0xff;
+ MidiEvent ev(event->tick, ME_META, data, 3);
+ ev.setA(0x51);
+ l->insert(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Signatures
+ //
+ const AL::SigList* sl = &AL::sigmap;
+ for (AL::ciSigEvent e = sl->begin(); e != sl->end(); ++e) {
+ AL::SigEvent* event = e->second;
+ unsigned char data[2];
+ data[0] = event->sig.z;
+ switch(event->sig.n) {
+ case 1: data[1] = 0; break;
+ case 2: data[1] = 1; break;
+ case 4: data[1] = 2; break;
+ case 8: data[1] = 3; break;
+ case 16: data[1] = 4; break;
+ case 32: data[1] = 5; break;
+ case 64: data[1] = 6; break;
+ default:
+ fprintf(stderr, "falsche Signatur; nenner %d\n", event->sig.n);
+ break;
+ }
+ MidiEvent ev(event->tick, ME_META, data, 2);
+ ev.setA(0x58);
+ l->insert(ev);
+ }
+
+ mf.setDivision(config.midiDivision);
+ mf.setTrackList(mtl);
+ fp.open(QIODevice::WriteOnly);
+ mf.write(&fp);
+ fp.close();
+ }
+
+//---------------------------------------------------------
+// ExportMidiDialog
+//---------------------------------------------------------
+
+ExportMidiDialog::ExportMidiDialog(const QString& name, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+
+ smf0->setChecked(config.smfFormat == 0);
+ smf1->setChecked(config.smfFormat == 1);
+ QFileInfo fi(name);
+ QString s(fi.path() + "/" + fi.baseName() + ".mid");
+ label->setText(tr("Save ") + fi.baseName() + tr(" as smf midi file"));
+ filename->setText(s);
+ connect(fileButton, SIGNAL(clicked()), SLOT(startFileBrowser()));
+ }
+
+//---------------------------------------------------------
+// startFileBrowser
+//---------------------------------------------------------
+
+void ExportMidiDialog::startFileBrowser()
+ {
+ QString s = QFileDialog::getSaveFileName(
+ (QWidget*)this,
+ tr("MusE: export midi smf file"),
+ QFileInfo(filename->text()).path(),
+ QString("Midi Files (*.mid *.kar *.MID)"),
+ 0,
+ QFileDialog::DontConfirmOverwrite);
+ if (!s.isEmpty())
+ filename->setText(s);
+ }
+
diff --git a/muse_qt4_evolution/muse/exportmidi.h b/muse_qt4_evolution/muse/exportmidi.h
new file mode 100644
index 00000000..0a4fa071
--- /dev/null
+++ b/muse_qt4_evolution/muse/exportmidi.h
@@ -0,0 +1,41 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EXPORTMIDI_H__
+#define __EXPORTMIDI_H__
+
+#include "ui_exportmididialog.h"
+
+//---------------------------------------------------------
+// ExportMidiDialog
+//---------------------------------------------------------
+
+class ExportMidiDialog : public QDialog, public Ui::ExportMidiDialogBase {
+ Q_OBJECT
+
+ private slots:
+ void startFileBrowser();
+
+ public:
+ ExportMidiDialog(const QString&, QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/exportmididialog.ui b/muse_qt4_evolution/muse/exportmididialog.ui
new file mode 100644
index 00000000..69d35da1
--- /dev/null
+++ b/muse_qt4_evolution/muse/exportmididialog.ui
@@ -0,0 +1,176 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ExportMidiDialogBase</class>
+ <widget class="QDialog" name="ExportMidiDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>425</width>
+ <height>316</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Export Midi</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="smf0" >
+ <property name="text" >
+ <string>SMF Typ 0 (single track)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="smf1" >
+ <property name="text" >
+ <string>SMF Typ 1 (multiple tracks)</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Save As:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="filename" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="fileButton" >
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/filenew.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources>
+ <include location="../muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ExportMidiDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>321</x>
+ <y>274</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ExportMidiDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>414</x>
+ <y>274</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/extmidieditor.cpp b/muse_qt4_evolution/muse/extmidieditor.cpp
new file mode 100644
index 00000000..38377b94
--- /dev/null
+++ b/muse_qt4_evolution/muse/extmidieditor.cpp
@@ -0,0 +1,422 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2004 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EXTMIDIEDITOR_CPP__
+#define __EXTMIDIEDITOR_CPP__
+
+#include "extmidieditor.h"
+#include "part.h"
+#include "al/xml.h"
+#include "al/pos.h"
+#include "song.h"
+#include "midiedit/ecanvas.h"
+#include "waveedit/waveview.h"
+#include "esettings.h"
+// #include "../ctrl/ctrledit.h"
+
+//---------------------------------------------------------
+// GraphMidiEditor
+//---------------------------------------------------------
+
+GraphMidiEditor::GraphMidiEditor(PartList* pl)
+ : MidiEditor(pl)
+ {
+ setIconSize(QSize(ICON_SIZE));
+ _followSong = true;
+ }
+
+//---------------------------------------------------------
+// ~GraphMidiEditor
+//---------------------------------------------------------
+
+GraphMidiEditor::~GraphMidiEditor()
+ {
+ refreshSettings();
+ }
+
+//---------------------------------------------------------
+// newDefaultSettings
+//---------------------------------------------------------
+
+EditorSettings* GraphMidiEditor::newDefaultSettings()
+ {
+ return new GraphEditorSettings();
+ }
+
+//---------------------------------------------------------
+// initSettings
+//---------------------------------------------------------
+
+void GraphMidiEditor::initSettings()
+ {
+ MidiEditor::initSettings();
+#if 0 //TD
+ GraphEditorSettings* s = ((GraphEditorSettings*)(settings));
+ hscroll->setXmag(s->xmag()); //horizontal zoom
+ hscroll->setPos(s->pos());
+
+ if (editorType != ET_WAVEEDIT)
+ vscroll->setPos(((GraphEditorSettings*)settings)->ypos());
+#endif
+ }
+
+
+//---------------------------------------------------------
+// refreshSettings
+//---------------------------------------------------------
+void GraphMidiEditor::refreshSettings() const
+ {
+ MidiEditor::refreshSettings();
+// if (editorType != ET_WAVEEDIT) //hACK! TODO: Separate waveedit class
+// ((GraphEditorSettings*)settings)->setYpos(vscroll->pos());
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+int GraphMidiEditor::raster() const
+ {
+ return settings->raster();
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+void GraphMidiEditor::setRaster(int val)
+ {
+ settings->setRaster(val);
+// canvas->setFocus(); // give back focus after kb input
+ //_raster = val;
+ }
+
+//---------------------------------------------------------
+// rasterStep
+//---------------------------------------------------------
+int GraphMidiEditor::rasterStep(unsigned tick) const
+ {
+ return AL::sigmap.rasterStep(tick, settings->raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal
+//---------------------------------------------------------
+unsigned GraphMidiEditor::rasterVal(unsigned v) const
+ {
+ return AL::sigmap.raster(v, settings->raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal1
+//---------------------------------------------------------
+unsigned GraphMidiEditor::rasterVal1(unsigned v) const
+ {
+ return AL::sigmap.raster1(v, settings->raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal2
+//---------------------------------------------------------
+unsigned GraphMidiEditor::rasterVal2(unsigned v) const
+ {
+ return AL::sigmap.raster2(v, settings->raster());
+ }
+
+
+//---------------------------------------------------------
+// ExtMidiEditor
+//---------------------------------------------------------
+
+ExtMidiEditor::ExtMidiEditor(PartList* pl)
+ : GraphMidiEditor(pl)
+ {
+ _curDrumInstrument = -1;
+ //printf("ExtMidiEditor, defaultSettings: %x\n",&defaultSettings);
+ }
+
+//---------------------------------------------------------
+// ~ExtMidiEditor
+//---------------------------------------------------------
+
+ExtMidiEditor::~ExtMidiEditor()
+ {
+ refreshSettings();
+ }
+
+//---------------------------------------------------------
+// updateCtrlEdits
+//---------------------------------------------------------
+
+void ExtMidiEditor::updateCtrlEdits() const
+ {
+#if 0 //TD
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ int j=0;
+ for (std::list<CtrlEdit*>::const_iterator i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, j++) {
+ CtrlEdit* ctrlEdit = (*i);
+ int ctrlid = ctrlEdit->controllerId();
+ CtrlEditSettings* ctrl = new CtrlEditSettings(ctrlEdit->getPanelHeight(), ctrlid);
+ s->setControlEditSettings(j, ctrl);
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// newDefaultSettings
+//---------------------------------------------------------
+EditorSettings* ExtMidiEditor::newDefaultSettings()
+ {
+ return (EditorSettings*) new ExtEditorSettings();
+ }
+
+//---------------------------------------------------------
+// initSettings
+//---------------------------------------------------------
+
+void ExtMidiEditor::initSettings()
+ {
+ GraphMidiEditor::initSettings();
+
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ srec->setChecked(s->steprec()); //set steprec
+ midiin->setChecked(s->midiin()); //set midiin
+ int ctrlsize = s->getControlEditSize();
+ //Set to 0 again to not get the double amount of ctrledits:
+ s->setControlEditSize(0);
+ for (int i=0; i< ctrlsize; i++) {
+ CtrlEditSettings* settings = s->getControlEditSettings(i);
+ CtrlEdit* ctrlEdit = addCtrl();
+//TD ctrlEdit->setController(settings->getController());
+ }
+ QList<int> vl;
+ vl.push_back(400); // dummy: canvas height
+ for (int i = 0; i < ctrlsize; i++) {
+ CtrlEditSettings* settings = s->getControlEditSettings(i);
+ vl.push_back(settings->getHeight());
+ }
+//TD splitter->setSizes(vl);
+ }
+
+//---------------------------------------------------------
+// quantVal
+//---------------------------------------------------------
+
+int ExtMidiEditor::quantVal(int v) const
+ {
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ //int val = ((v+_quant/2)/_quant)*_quant;
+ int q = s->quant();
+ int val = ((v+q/2)/q)*q;
+ if (val == 0)
+ val = q;
+ return val;
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+/*
+void ExtMidiEditor::readStatus(Xml& xml)
+ {
+ if (_pl == 0)
+ _pl = new PartList;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (tag == "quant")
+ _quant = xml.parseInt();
+ else if (tag == "raster")
+ _raster = xml.parseInt();
+ else if (tag == "topwin")
+ TopWin::readStatus(xml);
+ else
+ xml.unknown("MidiEditor");
+ break;
+ case Xml::TagEnd:
+ if (tag == "midieditor")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+*/
+
+//---------------------------------------------------------
+// setCurDrumInstrument
+//---------------------------------------------------------
+
+void ExtMidiEditor::setCurDrumInstrument(int instr)
+ {
+ _curDrumInstrument = instr;
+ emit curDrumInstrumentChanged(_curDrumInstrument);
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+/*
+void ExtMidiEditor::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "midieditor");
+ TopWin::writeStatus(level, xml);
+ xml.intTag(level, "quant", _quant);
+ xml.intTag(level, "raster", _raster);
+ xml.tag(level, "/midieditor");
+ }
+*/
+
+//---------------------------------------------------------
+// quant
+//---------------------------------------------------------
+int ExtMidiEditor::quant() const
+ {
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ return s->quant();
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void ExtMidiEditor::setQuant(int val)
+ {
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ s->setQuant(val);
+ canvas->setQuant(val);
+ canvas->setFocus();
+ }
+
+
+//---------------------------------------------------------
+// follow
+//---------------------------------------------------------
+
+void ExtMidiEditor::follow(int pos)
+ {
+ int s, e;
+ canvas->range(&s, &e);
+
+// if (pos < e && pos >= s)
+// hscroll->setOffset(pos);
+// if (pos < s)
+// hscroll->setOffset(s);
+ }
+
+//---------------------------------------------------------
+// removeCtrl
+//---------------------------------------------------------
+
+void ExtMidiEditor::removeCtrl(CtrlEdit* ctrl)
+ {
+ for (std::list<CtrlEdit*>::iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ if (*i == ctrl) {
+ ctrlEditList.erase(i);
+ break;
+ }
+ }
+ ExtEditorSettings* s = (ExtEditorSettings*)settings;
+ int n = s->getControlEditSize();
+ n--;
+ s->setControlEditSize(n);
+ }
+
+//---------------------------------------------------------
+// addCtrl
+//---------------------------------------------------------
+
+CtrlEdit* ExtMidiEditor::addCtrl()
+ {
+#if 0 //TD
+ bool expanding = editorType == ET_DRUMEDIT ? true : false;
+
+ CtrlEdit* ctrlEdit = new CtrlEdit(splitter, this, EXTMIDIEDITOR_XSCALE, expanding, "extMidiEditorCtrlEdit");
+ splitter->setResizeMode(ctrlEdit, QSplitter::KeepSize);
+
+ // Calculate sizes:
+ QList<int> sizes = splitter->sizes();
+ QList<int> newSizes;
+ QListIterator<int> i = sizes.begin();
+
+ int editorHeight = *i - EXTMIDIEDITOR_DEFAULT_CTRLHEIGHT;
+ int ctrlHeight = EXTMIDIEDITOR_DEFAULT_CTRLHEIGHT;
+ if (editorHeight < 0) {
+ ctrlHeight = EXTMIDIEDITOR_DEFAULT_CTRLHEIGHT + editorHeight;
+ editorHeight = *i - ctrlHeight;
+ }
+ if (editorHeight < 0) {
+ editorHeight = 5;
+ }
+
+ newSizes.append(editorHeight);
+ for (i++; i != sizes.end(); i++) {
+ newSizes.append(*i);
+ }
+ newSizes.pop_back();
+ newSizes.append(ctrlHeight);
+ splitter->setSizes(newSizes);
+
+ ctrlEdit->blockSignals(true);
+ connect(tools2, SIGNAL(toolChanged(int)), ctrlEdit, SLOT(setTool(int)));
+// connect(hscroll, SIGNAL(scrollChanged(int)), ctrlEdit, SLOT(setXPos(int)));
+// connect(hscroll, SIGNAL(scaleChanged(int)), ctrlEdit, SLOT(setXMag(int)));
+ connect(ctrlEdit, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(ctrlEdit, SIGNAL(destroyedCtrl(CtrlEdit*)), SLOT(removeCtrl(CtrlEdit*)));
+// connect(ctrlEdit, SIGNAL(yposChanged(int)), toolbar, SLOT(setInt(int)));
+
+ ctrlEdit->setTool(tools2->curTool());
+// ctrlEdit->setXPos(hscroll->pos());
+// ctrlEdit->setXMag(hscroll->getScaleValue());
+ ctrlEdit->setController(CTRL_VELOCITY);
+
+ ctrlEdit->show();
+ ctrlEditList.push_back(ctrlEdit);
+ ctrlEdit->blockSignals(false);
+ ExtEditorSettings* s = (ExtEditorSettings*)settings;
+ int n = s->getControlEditSize();
+ n++;
+ s->setControlEditSize(n);
+ return ctrlEdit;
+#endif
+ return 0;
+ }
+
+//---------------------------------------------------------
+// refreshSettings
+//---------------------------------------------------------
+void ExtMidiEditor::refreshSettings() const
+ {
+ GraphMidiEditor::refreshSettings();
+ ExtEditorSettings* s = (ExtEditorSettings*) settings;
+ s->setSteprec(canvas->steprec());
+ s->setMidiin(canvas->midiin());
+// s->setXmag(hscroll->xmag());
+// s->setPos(hscroll->pos());
+ updateCtrlEdits();
+ }
+
+#endif
diff --git a/muse_qt4_evolution/muse/extmidieditor.h b/muse_qt4_evolution/muse/extmidieditor.h
new file mode 100644
index 00000000..b02ac730
--- /dev/null
+++ b/muse_qt4_evolution/muse/extmidieditor.h
@@ -0,0 +1,120 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2004 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EXTMIDIEDITOR_H__
+#define __EXTMIDIEDITOR_H__
+
+#include "midiedit/midieditor.h"
+#include "esettings.h"
+
+namespace AL {
+ class Pos;
+ };
+
+class EditToolBar;
+class NoteInfo;
+class PartList;
+class CtrlEdit;
+class Toolbar1;
+class Part;
+
+//---------------------------------------------------------
+// GraphMidiEditor
+//
+// Base class for graphical editors
+// Currently used by WaveEdit and MasterEdit
+//---------------------------------------------------------
+
+class GraphMidiEditor : public MidiEditor {
+ Q_OBJECT
+
+ protected:
+ virtual EditorSettings* newDefaultSettings(); //TODO: = 0
+ virtual void initSettings();
+ virtual void refreshSettings() const;
+ QAction* srec;
+ QAction* midiin;
+ bool _followSong;
+ EditToolBar* tools2;
+
+ protected slots:
+ void setRaster(int val);
+
+ public:
+ GraphMidiEditor(PartList*);
+ virtual ~GraphMidiEditor();
+ int rasterStep(unsigned tick) const;
+ unsigned rasterVal(unsigned v) const;
+ unsigned rasterVal1(unsigned v) const;
+ unsigned rasterVal2(unsigned v) const;
+ int raster() const;
+ bool followSong() const { return _followSong; }
+ };
+
+
+//---------------------------------------------------------
+// ExtMidiEditor
+//
+// Inherited by Drumeditor and Pianoroll
+// Not instantiated directly - virtual
+//---------------------------------------------------------
+
+class ExtMidiEditor : public GraphMidiEditor {
+ Q_OBJECT
+ int _curDrumInstrument; // currently selected instrument if drum
+ // editor
+
+ protected:
+ std::list<CtrlEdit*> ctrlEditList;
+ virtual EditorSettings* newDefaultSettings();
+ virtual void initSettings();
+ virtual void refreshSettings() const;
+ Toolbar1* toolbar;
+ Part* selPart;
+ NoteInfo* info;
+ QToolBar* tools;
+ EventCanvas* canvas;
+ WaveView* wview;
+
+ void updateCtrlEdits() const;
+
+ signals:
+ void curDrumInstrumentChanged(int); //hACK!
+
+ protected slots:
+ void setQuant(int val);
+ void follow(int pos);
+ void removeCtrl(CtrlEdit* ctrl);
+ virtual CtrlEdit* addCtrl();
+
+ public slots:
+ void setCurDrumInstrument(int instr); //hACK!
+
+ public:
+ ExtMidiEditor(PartList*);
+ virtual ~ExtMidiEditor();
+ int quantVal(int v) const;
+ int quant() const;
+
+ int curDrumInstrument() const { return _curDrumInstrument; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/fastlog.h b/muse_qt4_evolution/muse/fastlog.h
new file mode 100644
index 00000000..23710a8b
--- /dev/null
+++ b/muse_qt4_evolution/muse/fastlog.h
@@ -0,0 +1,38 @@
+/* Copyright unknown. Code by Laurent de Soras <laurent@ohmforce.com>.
+ */
+
+#ifndef __pbd_fastlog_h__
+#define __pbd_fastlog_h__
+
+#include <math.h> /* for HUGE_VAL */
+
+static inline float fast_log2 (float val)
+ {
+ /* don't use reinterpret_cast<> because that prevents this
+ from being used by pure C code (for example, GnomeCanvasItems)
+ */
+ union {float f; int i;} t;
+ t.f = val;
+ int* const exp_ptr = &t.i;
+ int x = *exp_ptr;
+ const int log_2 = ((x >> 23) & 255) - 128;
+ x &= ~(255 << 23);
+ x += 127 << 23;
+ *exp_ptr = x;
+ val = ((-1.0f/3) * t.f + 2) * t.f - 2.0f/3;
+ return (val + log_2);
+ }
+
+static inline float fast_log (const float val)
+ {
+ return (fast_log2 (val) * 0.69314718f);
+ }
+
+static inline float fast_log10 (const float val)
+ {
+ return fast_log2(val) / 3.312500f;
+ }
+
+static inline float minus_infinity() { return -HUGE_VAL; }
+
+#endif /* __pbd_fastlog_h__ */
diff --git a/muse_qt4_evolution/muse/fifo.cpp b/muse_qt4_evolution/muse/fifo.cpp
new file mode 100644
index 00000000..12c2febf
--- /dev/null
+++ b/muse_qt4_evolution/muse/fifo.cpp
@@ -0,0 +1,183 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "fifo.h"
+#include "globals.h"
+#include "al/dsp.h"
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void FifoBase::clear()
+ {
+ ridx = 0;
+ widx = 0;
+ counter = 0;
+ }
+
+//---------------------------------------------------------
+// push
+//---------------------------------------------------------
+
+void FifoBase::push()
+ {
+ widx = (widx + 1) % FIFO_BUFFER;
+// q_atomic_increment(&counter);
+ ++counter;
+ }
+
+//---------------------------------------------------------
+// pop
+//---------------------------------------------------------
+
+void FifoBase::pop()
+ {
+ ridx = (ridx + 1) % FIFO_BUFFER;
+ // q_atomic_decrement(&counter);
+ --counter;
+ }
+
+//---------------------------------------------------------
+// Fifo
+//---------------------------------------------------------
+
+Fifo::Fifo()
+ {
+ nbuffer = FIFO_BUFFER;
+ buffer = new FifoBuffer*[nbuffer];
+ for (int i = 0; i < nbuffer; ++i)
+ buffer[i] = new FifoBuffer;
+ clear();
+ }
+
+Fifo::~Fifo()
+ {
+ for (int i = 0; i < nbuffer; ++i)
+ delete buffer[i];
+ delete[] buffer;
+ }
+
+//---------------------------------------------------------
+// put
+// return true if fifo full
+//---------------------------------------------------------
+
+bool Fifo::put(int segs, unsigned long samples, float** src, unsigned pos)
+ {
+ if (counter == nbuffer) {
+ printf("FIFO %p overrun at 0x%x\n", this, pos);
+ return true;
+ }
+ FifoBuffer* b = buffer[widx];
+ int n = segs * samples;
+ if (b->maxSize < n) {
+ if (b->buffer)
+ free(b->buffer);
+ posix_memalign((void**)&(b->buffer), 16, sizeof(float) * n);
+ b->maxSize = n;
+ }
+ b->size = samples;
+ b->segs = segs;
+ b->pos = pos;
+ for (int i = 0; i < segs; ++i)
+ AL::dsp->cpy(b->buffer + i * samples, src[i], samples);
+ push();
+ return false;
+ }
+
+//---------------------------------------------------------
+// get
+// return true if fifo empty
+//---------------------------------------------------------
+
+bool Fifo::get(int segs, unsigned long samples, float** dst, unsigned pos)
+ {
+ FifoBuffer* b;
+ bool errMsg = true;
+ for (;;) {
+ if (counter == 0) {
+ printf("FIFO %p underrun at 0x%x\n", this, pos);
+ return true;
+ }
+ b = buffer[ridx];
+ if (pos == b->pos)
+ break;
+ //
+ // skip all buffer until we get the rigth one or the
+ // fifo is empty
+ //
+// if (errMsg)
+ printf("Fifo %p::get(0x%x) n=%d, discard wrong prefetch block(s) 0x%x\n",
+ this, pos, counter, b->pos);
+ pop();
+ errMsg = false;
+ }
+ for (int i = 0; i < segs; ++i)
+ dst[i] = b->buffer + samples * (i % b->segs);
+ pop();
+ return false;
+ }
+
+//---------------------------------------------------------
+// get
+// return true if fifo empty
+//---------------------------------------------------------
+
+bool Fifo::get(int segs, unsigned long samples, float** dst)
+ {
+ FifoBuffer* b;
+ if (counter == 0) {
+ printf("FIFO %p underrun --cannot happen!\n", this);
+ return true;
+ }
+ b = buffer[ridx];
+ for (int i = 0; i < segs; ++i)
+ dst[i] = b->buffer + samples * (i % b->segs);
+ pop();
+ return false;
+ }
+
+//---------------------------------------------------------
+// getWriteBuffer
+// return true, if no more buffer available
+// (overflow)
+//---------------------------------------------------------
+
+bool Fifo::getWriteBuffer(int segs, unsigned long samples, float** buf, unsigned pos)
+ {
+ if (counter == nbuffer)
+ return true;
+ FifoBuffer* b = buffer[widx];
+ int n = segs * samples;
+ if (b->maxSize < n) {
+ if (b->buffer)
+ free(b->buffer);
+ posix_memalign((void**)&(b->buffer), 16, sizeof(float) * n);
+ b->maxSize = n;
+ }
+ for (int i = 0; i < segs; ++i)
+ buf[i] = b->buffer + i * samples;
+ b->size = samples;
+ b->segs = segs;
+ b->pos = pos;
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/muse/fifo.h b/muse_qt4_evolution/muse/fifo.h
new file mode 100644
index 00000000..b4c49288
--- /dev/null
+++ b/muse_qt4_evolution/muse/fifo.h
@@ -0,0 +1,105 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __FIFO_H__
+#define __FIFO_H__
+
+const int FIFO_BUFFER = 256;
+
+//---------------------------------------------------------
+// Fifo
+//---------------------------------------------------------
+
+struct FifoBuffer {
+ float* buffer;
+ int size;
+ int maxSize;
+ unsigned pos;
+ int segs;
+
+ FifoBuffer() {
+ buffer = 0;
+ size = 0;
+ maxSize = 0;
+ }
+ };
+
+//---------------------------------------------------------
+// FifoBase
+// - works only for one reader/writer
+// - reader writes ridx
+// - writer writes widx
+// - reader decrements counter
+// - writer increments counter
+// - counter increment/decrement must be atomic
+//---------------------------------------------------------
+
+class FifoBase {
+
+ protected:
+ int ridx; // read index
+ int widx; // write index
+ volatile int counter; // objects in fifo
+
+ public:
+ FifoBase() { clear(); }
+ virtual ~FifoBase() {}
+ void clear();
+ virtual void push(); // put object on fifo
+ virtual void pop(); // remove object from fifo
+ int count() const { return counter; }
+ int readIndex() const { return ridx; }
+ };
+
+//---------------------------------------------------------
+// Fifo
+//---------------------------------------------------------
+
+class Fifo : public FifoBase {
+ int nbuffer; // max buffer size (fifo-size)
+ FifoBuffer** buffer;
+
+ public:
+ Fifo();
+ ~Fifo();
+ bool put(int, unsigned long, float** buffer, unsigned pos);
+ bool getWriteBuffer(int, unsigned long, float** buffer, unsigned pos);
+ bool get(int, unsigned long, float** buffer, unsigned pos);
+ bool get(int, unsigned long, float** buffer);
+ };
+
+//---------------------------------------------------------
+// Fifo1
+//---------------------------------------------------------
+
+class Fifo1 : public FifoBase {
+ public:
+ unsigned positions[FIFO_BUFFER];
+
+ Fifo1() : FifoBase() {}
+ int setWritePos(unsigned pos) {
+ positions[widx] = pos;
+ return widx;
+ }
+ unsigned readPos() const { return positions[ridx]; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/gconfig.cpp b/muse_qt4_evolution/muse/gconfig.cpp
new file mode 100644
index 00000000..f80542cb
--- /dev/null
+++ b/muse_qt4_evolution/muse/gconfig.cpp
@@ -0,0 +1,121 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "gconfig.h"
+
+GlobalConfigValues config = {
+ ":/style.qss", // default style sheet
+ {
+ QColor(255, 232, 140), // part colors
+ QColor(0xff, 0x00, 0x00),
+ QColor(0x00, 0xff, 0x00),
+ QColor(0x00, 0x00, 0xff),
+ QColor(0xff, 0xff, 0x00),
+ QColor(0x00, 0xff, 0xff),
+ QColor(0xff, 0x00, 0xff),
+ QColor(0x9f, 0xc7, 0xef),
+ QColor(0x00, 0xff, 0x7f),
+ QColor(0x7f, 0x00, 0x00),
+ QColor(0x00, 0x7f, 0x00),
+ QColor(0x00, 0x00, 0x7f),
+ QColor(0x7f, 0x7f, 0x3f),
+ QColor(0x00, 0x7f, 0x7f),
+ QColor(0x7f, 0x00, 0x7f),
+ QColor(0x00, 0x7f, 0xff),
+ QColor(0x00, 0x3f, 0x3f)
+ },
+ QColor(100, 100, 100), // selected Part Bg
+ QColor(0, 0, 255), // transportHandleColor;
+ QColor(255, 0, 0), // bigTimeForegroundColor;
+ QColor(0, 0, 0), // bigTimeBackgroundColor;
+ QColor(200, 200, 200), // waveEditBackgroundColor;
+ {
+ QColor(Qt::white), // outputTrackBg;
+ QColor(Qt::yellow), // groupTrackBg;
+ QColor(Qt::green), // waveTrackBg;
+ QColor(Qt::red), // inputTrackBg;
+ QColor(Qt::blue), // synthTrackBg;
+ QColor(Qt::gray), // midi;
+ QColor(Qt::gray), // midiOut;
+ QColor(Qt::gray), // midiIn;
+ QColor(Qt::gray), // midiSynti;
+ },
+
+ QColor(0, 0, 0), // mixerBg;
+
+ 384, // division;
+ 1024, // rtcTicks
+ -60.0, // minMeter (dB)
+ 10.0, // maxMeter (dB)
+ -60.0, // double minSlider (dB)
+ 10.0, // double maxSlider (dB)
+ 20, // int guiRefresh;
+ 2000, // peak hold time (ms)
+ QString(""), // helpBrowser
+ true, // extendedMidi
+ 384, // division for smf export
+ QString(""), // copyright string for smf export
+ 1, // smf export file format
+ START_ASK_FOR_PROJECT, // startMode
+ QString(""), // start song path
+ 384, // gui division
+ QRect(0, 0, 200, 100), // GeometryTransport;
+ QRect(0, 0, 600, 200), // GeometryBigTime;
+ QRect(100, 100, 600, 400), // GeometryPianoroll;
+ QRect(0, 0, 600, 400), // GeometryDrumedit;
+ {
+ QRect(0, 0, 300, 500), // Mixer1
+ false, true, true, true,
+ true, true, true, true, true, true
+ },
+ {
+ QRect(200, 200, 300, 500), // Mixer2
+ false, true, true, true,
+ true, true, true, true, true, true
+ },
+ false, // TransportVisible
+ false, // BigTimeVisible;
+ false, // mixerVisible1;
+ false, // mixerVisible2;
+
+ true, // showSplashScreen
+
+ QColor(0x71, 0x8d, 0xbe), // canvasBgColor
+ QString(""), // canvasBgPixmap;
+ false, // canvasUseBgPixmap;
+ 1, // canvasShowPartType 1 - names, 2 events
+ 5, // canvasShowPartEvent
+ false, // canvasShowGrid;
+
+ false, // use JACK freewheel mode
+ QString("sweep"), // externalWavEditor shell command
+
+ QString(""), // defaultMidiInputDevice
+ QString(""), // defaultMidiOutputDevice
+ QString(""), // defaultMidiInstrument
+ true, // connectToAllMidiDevices
+ true, // connectToAllMidiTracks
+ true, // createDefaultMidiInput
+ QString("MusE/projects"), // projectPath
+ QString("MusE/templates"), // templatePath
+ QString("MusE/instruments"), // instrumentPath
+ QString("MusE/"), // midi import path
+ QString("MusE/"), // wave import path
+ };
diff --git a/muse_qt4_evolution/muse/gconfig.h b/muse_qt4_evolution/muse/gconfig.h
new file mode 100644
index 00000000..b30fdebb
--- /dev/null
+++ b/muse_qt4_evolution/muse/gconfig.h
@@ -0,0 +1,133 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+
+#define NUM_PARTCOLORS 17
+
+#include "track.h"
+#include "al/xml.h"
+using AL::Xml;
+
+enum StartMode {
+ START_ASK_FOR_PROJECT,
+ START_LAST_PROJECT,
+ START_START_PROJECT
+ };
+
+//---------------------------------------------------------
+// MixerConfig
+//---------------------------------------------------------
+
+struct MixerConfig {
+ QRect geometry;
+ bool showMidiTracks;
+ bool showMidiInPorts;
+ bool showMidiSyntiPorts;
+ bool showMidiOutPorts;
+ bool showOutputTracks;
+ bool showWaveTracks;
+ bool showGroupTracks;
+ bool showInputTracks;
+ bool showAuxTracks;
+ bool showSyntiTracks;
+
+ void write(Xml&, const char* name);
+ void read(QDomNode);
+ };
+
+//---------------------------------------------------------
+// GlobalConfigValues
+//---------------------------------------------------------
+
+struct GlobalConfigValues {
+ QString styleSheetFile;
+ QColor partColors[NUM_PARTCOLORS];
+ QColor selectPartBg;
+ QColor transportHandleColor;
+ QColor bigTimeForegroundColor;
+ QColor bigTimeBackgroundColor;
+ QColor waveEditBackgroundColor;
+
+ QColor trackBg[Track::TRACK_TYPES];
+
+ QColor mixerBg;
+
+ int division;
+ int rtcTicks;
+ double minMeter;
+ double maxMeter;
+ double minSlider;
+ double maxSlider;
+ int guiRefresh;
+ int peakHoldTime; // peak meter hold time (ms)
+ QString helpBrowser;
+
+ bool extendedMidi; // extended smf format
+ int midiDivision; // division for smf export
+ QString copyright; // copyright string for smf export
+ int smfFormat; // smf export file type
+
+ enum StartMode startMode;
+ QString startProject; // path for start project
+ int guiDivision; // division for tick display
+
+ QRect geometryTransport;
+ QRect geometryBigTime;
+ QRect geometryPianoroll;
+ QRect geometryDrumedit;
+ MixerConfig mixer1;
+ MixerConfig mixer2;
+ bool transportVisible;
+ bool bigTimeVisible;
+ bool mixer1Visible;
+ bool mixer2Visible;
+
+ bool showSplashScreen;
+
+ QColor canvasBgColor;
+ QString canvasBgPixmap;
+ bool canvasUseBgPixmap;
+
+ int canvasShowPartType; // 1 - names, 2 events
+ int canvasShowPartEvent; //
+ bool canvasShowGrid;
+
+ bool useJackFreewheelMode;
+ QString externalWavEditor;
+
+ QString defaultMidiInputDevice;
+ QString defaultMidiOutputDevice;
+ QString defaultMidiInstrument;
+ bool connectToAllMidiDevices;
+ bool connectToAllMidiTracks;
+ bool createDefaultMidiInput;
+ QString projectPath;
+ QString templatePath;
+ QString instrumentPath;
+ QString importMidiPath;
+ QString importWavePath;
+ };
+
+extern GlobalConfigValues config;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/globaldefs.h b/muse_qt4_evolution/muse/globaldefs.h
new file mode 100644
index 00000000..4f72bcc3
--- /dev/null
+++ b/muse_qt4_evolution/muse/globaldefs.h
@@ -0,0 +1,37 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __GLOBALDEFS_H__
+#define __GLOBALDEFS_H__
+
+static const int MAX_CHANNELS = 2; // max audio channels
+// const int MIDI_PORTS = 16; // max Number of Midi Ports
+
+#ifndef MIDI_CHANNELS
+#define MIDI_CHANNELS 16 // Channels per Port
+
+enum MidiInstrumentType {
+ MT_GENERIC, MT_GM, MT_GS, MT_XG
+ };
+
+#endif
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/globals.cpp b/muse_qt4_evolution/muse/globals.cpp
new file mode 100644
index 00000000..86871a0c
--- /dev/null
+++ b/muse_qt4_evolution/muse/globals.cpp
@@ -0,0 +1,133 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+enum AudioState audioState;
+
+unsigned segmentSize = 1024U; // segmentSize in frames (set by JACK)
+int segmentCount = 2;
+
+bool overrideAudioOutput = false;
+bool overrideAudioInput = false;
+
+QTimer* heartBeatTimer;
+
+const signed char sharpTab[14][7] = {
+ { 0, 3, -1, 2, 5, 1, 4 },
+ { 0, 3, -1, 2, 5, 1, 4 },
+ { 0, 3, -1, 2, 5, 1, 4 },
+ { 0, 3, -1, 2, 5, 1, 4 },
+ { 2, 5, 1, 4, 7, 3, 6 },
+ { 2, 5, 1, 4, 7, 3, 6 },
+ { 2, 5, 1, 4, 7, 3, 6 },
+ { 4, 0, 3, -1, 2, 5, 1 },
+ { 7, 3, 6, 2, 5, 1, 4 },
+ { 5, 8, 4, 7, 3, 6, 2 },
+ { 3, 6, 2, 5, 1, 4, 7 },
+ { 1, 4, 0, 3, 6, 2, 5 },
+ { 6, 2, 5, 1, 4, 0, 3 },
+ { 0, 3, -1, 2, 5, 1, 4 },
+ };
+const signed char flatTab[14][7] = {
+ { 4, 1, 5, 2, 6, 3, 7 },
+ { 4, 1, 5, 2, 6, 3, 7 },
+ { 4, 1, 5, 2, 6, 3, 7 },
+ { 4, 1, 5, 2, 6, 3, 7 },
+ { 6, 3, 7, 4, 8, 5, 9 },
+ { 6, 3, 7, 4, 8, 5, 9 },
+ { 6, 3, 7, 4, 8, 5, 9 },
+
+ { 1, 5, 2, 6, 3, 7, 4 },
+ { 4, 1, 5, 2, 6, 3, 7 },
+ { 2, 6, 3, 7, 4, 8, 5 },
+ { 7, 4, 1, 5, 2, 6, 3 },
+ { 5, 2, 6, 3, 7, 4, 8 },
+ { 3, 0, 4, 1, 5, 2, 6 },
+ { 4, 1, 5, 2, 6, 3, 7 },
+ };
+
+QString museGlobalLib;
+QString museGlobalShare;
+QString museUser;
+QString configName;
+
+QString lastWavePath(".");
+QString lastMidiPath(".");
+
+bool debugMode = false;
+bool debugMsg = false;
+bool midiInputTrace = false;
+bool midiOutputTrace = false;
+int realTimePriority = 50;
+bool loadPlugins = true;
+bool loadVST = true;
+bool loadDSSI = true;
+bool midiOnly = false;
+
+const char* midi_file_pattern[] = {
+ "Midi/Kar (*.mid *.MID *.kar *.KAR *.mid.gz *.mid.bz2)",
+ "Midi (*.mid *.MID *.mid.gz *.mid.bz2)",
+ "Karaoke (*.kar *.KAR *.kar.gz *.kar.bz2)",
+ "All Files (*)",
+ 0
+ };
+QString medFilePattern =
+ "med Files (*.med *.med.gz *.med.bz2);;"
+ "All Files (*)";
+
+const char* med_midi_file_pattern[] = {
+ "med Files (*.med *.med.gz *.med.bz2)",
+ "Midi/Kar (*.mid *.kar *.mid.gz *.mid.bz2)",
+ "Midi (*.mid *.mid.gz *.mid.bz2)",
+ "Karaoke (*.kar *.kar.gz *.kar.bz2)",
+ "All Files (*)",
+ 0
+ };
+const char* med_file_pattern[] = {
+ "med Files (*.med *.med.gz *.med.bz2)",
+ "All Files (*)",
+ 0
+ };
+const char* image_file_pattern[] = {
+ "(*.jpg *.gif *.png)",
+ "(*.jpg)",
+ "(*.gif)",
+ "(*.png)",
+ "All Files (*)",
+ 0
+ };
+
+const char* ctrl_file_pattern[] = {
+ "ctrl Files (*.ctrl *.ctrl.gz *.ctrl.bz2)",
+ "All Files (*)",
+ 0
+ };
+
+QAction* undoAction;
+QAction* redoAction;
+
+QAction* loopAction;
+QAction* punchinAction;
+QAction* punchoutAction;
+QAction* recordAction;
+QAction* panicAction;
+
+bool rcEnable = false;
+
diff --git a/muse_qt4_evolution/muse/globals.h b/muse_qt4_evolution/muse/globals.h
new file mode 100644
index 00000000..eaf121d8
--- /dev/null
+++ b/muse_qt4_evolution/muse/globals.h
@@ -0,0 +1,86 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef GLOBALS_H
+#define GLOBALS_H
+
+#include <sys/types.h>
+#include "mtc.h"
+
+enum AudioState {
+ AUDIO_STOP,
+ AUDIO_START1,
+ AUDIO_START2,
+ AUDIO_RUNNING
+ };
+extern enum AudioState audioState;
+
+extern unsigned segmentSize;
+extern int segmentCount;
+
+extern bool overrideAudioOutput;
+extern bool overrideAudioInput;
+
+class QTimer;
+extern QTimer* heartBeatTimer;
+
+extern const signed char sharpTab[14][7];
+extern const signed char flatTab[14][7];
+
+extern QString museGlobalLib;
+extern QString museGlobalShare;
+extern QString museUser;
+extern QString configName;
+
+extern QString lastWavePath;
+extern QString lastMidiPath;
+
+extern bool debugMode;
+extern bool midiInputTrace;
+extern bool midiOutputTrace;
+extern bool debugMsg;
+extern bool debugSync;
+extern bool loadPlugins;
+extern bool loadVST;
+extern bool loadDSSI;
+extern bool midiOnly;
+
+extern int realTimePriority;
+extern const char* midi_file_pattern[];
+extern QString medFilePattern;
+extern const char* med_file_pattern[];
+extern const char* med_midi_file_pattern[];
+extern const char* image_file_pattern[];
+extern const char* ctrl_file_pattern[];
+
+enum { CMD_RANGE_ALL, CMD_RANGE_SELECTED, CMD_RANGE_LOOP };
+
+extern QAction* undoAction;
+extern QAction* redoAction;
+
+extern QAction* loopAction;
+extern QAction* punchinAction;
+extern QAction* punchoutAction;
+extern QAction* recordAction;
+extern QAction* panicAction;
+
+extern bool rcEnable;
+#endif
+
diff --git a/muse_qt4_evolution/muse/gui.h b/muse_qt4_evolution/muse/gui.h
new file mode 100644
index 00000000..784e58e2
--- /dev/null
+++ b/muse_qt4_evolution/muse/gui.h
@@ -0,0 +1,54 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __GUI_H__
+#define __GUI_H__
+
+//
+// GUI constants
+// central point of tweaking the gui
+//
+
+// size of horizontal and vertical splitter
+//
+static const int splitWidth = 6;
+
+// arranger:
+static const int trackRowHeight = 24;
+static const int minTrackHeight = trackRowHeight + splitWidth + 1;
+static const int defaultTrackHeight = minTrackHeight;
+static const int infoHeight = 20;
+static const int infoWidth = 140;
+static const int trackSeparator = 1;
+static const int yTrackOffset = -2; // -4;
+
+// mixer:
+static const int STRIP_WIDTH = 60;
+static const int LABEL_HEIGHT = 20;
+static const int BUTTON_HEIGHT = STRIP_WIDTH / 3;
+static const int ENTRY_HEIGHT = 17;
+
+static const int ICON_WIDTH = 18;
+static const QSize ICON_SIZE(ICON_WIDTH, ICON_WIDTH);
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/help.cpp b/muse_qt4_evolution/muse/help.cpp
new file mode 100644
index 00000000..c17581ae
--- /dev/null
+++ b/muse_qt4_evolution/muse/help.cpp
@@ -0,0 +1,101 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "config.h"
+#include "muse.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "icons.h"
+#include "help.h"
+
+//---------------------------------------------------------
+// AboutBoxDialog
+//---------------------------------------------------------
+
+AboutBoxDialog::AboutBoxDialog()
+ {
+ extern int revision;
+ setupUi(this);
+ versionLabel->setText("Version: " VERSION);
+ revisionLabel->setText(QString("Revision: %1").arg(revision));
+ }
+
+//---------------------------------------------------------
+// startHelpBrowser
+//---------------------------------------------------------
+
+void MusE::startHelpBrowser()
+ {
+ QString lang(getenv("LANG"));
+ QFileInfo museHelp(museGlobalShare + QString("/doc/man-") + lang + QString(".pdf"));
+ if (!museHelp.isReadable()) {
+ museHelp.setFile(museGlobalShare + QString("/doc/man-en.pdf"));
+ if (!museHelp.isReadable()) {
+ QString info(tr("MusE manual not found at: "));
+ info += museHelp.filePath();
+ QMessageBox::critical(this, tr("MusE: Open Help"), info);
+ return;
+ }
+ }
+ QString url("file://" + museHelp.filePath());
+ QDesktopServices::openUrl(url);
+ }
+
+//---------------------------------------------------------
+// startHelpBrowser
+//---------------------------------------------------------
+
+void MusE::startHomepageBrowser()
+ {
+ QString museHome = QString("http://lmuse.sourceforge.net");
+
+ QDesktopServices::openUrl(museHome);
+ }
+
+//---------------------------------------------------------
+// startBugBrowser
+//---------------------------------------------------------
+
+void MusE::startBugBrowser()
+ {
+ QString museBugPage("http://lmuse.sourceforge.net/bugs.html");
+ QDesktopServices::openUrl(museBugPage);
+ }
+
+//---------------------------------------------------------
+// about
+//---------------------------------------------------------
+
+void MusE::about()
+ {
+ AboutBoxDialog ab;
+ ab.show();
+ ab.exec();
+ }
+
+//---------------------------------------------------------
+// aboutQt
+//---------------------------------------------------------
+
+void MusE::aboutQt()
+ {
+ QMessageBox::aboutQt(this, QString("MusE"));
+ }
+
diff --git a/muse_qt4_evolution/muse/help.h b/muse_qt4_evolution/muse/help.h
new file mode 100644
index 00000000..c2a54d90
--- /dev/null
+++ b/muse_qt4_evolution/muse/help.h
@@ -0,0 +1,36 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __HELP_H__
+#define __HELP_H__
+
+#include "ui_aboutbox.h"
+
+//---------------------------------------------------------
+// AboutBoxDialog
+//---------------------------------------------------------
+
+class AboutBoxDialog : public QDialog, Ui::AboutBox {
+ public:
+ AboutBoxDialog();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/helper.cpp b/muse_qt4_evolution/muse/helper.cpp
new file mode 100644
index 00000000..6b534a6d
--- /dev/null
+++ b/muse_qt4_evolution/muse/helper.cpp
@@ -0,0 +1,47 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "helper.h"
+
+extern bool hIsB;
+static const char* vall[] = {
+ "c","c#","d","d#","e","f","f#","g","g#","a","a#","h"
+ };
+static const char* valu[] = {
+ "C","C#","D","D#","E","F","F#","G","G#","A","A#","H"
+ };
+
+//---------------------------------------------------------
+// pitch2string
+//---------------------------------------------------------
+
+QString pitch2string(int v)
+ {
+ if (v < 0 || v > 127)
+ return QString("----");
+ int octave = (v / 12) - 2;
+ QString o;
+ o.sprintf("%d", octave);
+ int i = v % 12;
+ QString s(octave < 0 ? valu[i] : vall[i]);
+ return s + o;
+ }
+
+
diff --git a/muse_qt4_evolution/muse/helper.h b/muse_qt4_evolution/muse/helper.h
new file mode 100644
index 00000000..3f255393
--- /dev/null
+++ b/muse_qt4_evolution/muse/helper.h
@@ -0,0 +1,27 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __HELPER_H__
+#define __HELPER_H__
+
+extern QString pitch2string(int v);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/icons.cpp b/muse_qt4_evolution/muse/icons.cpp
new file mode 100644
index 00000000..2fa62f9a
--- /dev/null
+++ b/muse_qt4_evolution/muse/icons.cpp
@@ -0,0 +1,341 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+#include "gui.h"
+
+#include "xpm/audio_bounce_to_file.xpm"
+#include "xpm/audio_bounce_to_track.xpm"
+#include "xpm/audio_restartaudio.xpm"
+#include "xpm/edit_midi.xpm"
+#include "xpm/midi_edit_instrument.xpm"
+#include "xpm/midi_init_instr.xpm"
+#include "xpm/midi_local_off.xpm"
+#include "xpm/midi_reset_instr.xpm"
+#include "xpm/settings_appearance_settings.xpm"
+#include "xpm/settings_configureshortcuts.xpm"
+#include "xpm/settings_follow_song.xpm"
+#include "xpm/settings_globalsettings.xpm"
+#include "xpm/settings_metronome.xpm"
+#include "xpm/settings_midifileexport.xpm"
+#include "xpm/settings_midisync.xpm"
+
+#include "xpm/play.xpm"
+
+#include "xpm/stick.xpm"
+#include "xpm/wave.xpm"
+#include "xpm/cmark.xpm"
+#include "xpm/lmark.xpm"
+#include "xpm/rmark.xpm"
+#include "xpm/steprec.xpm"
+#include "xpm/master.xpm"
+#include "xpm/filenewS.xpm"
+#include "xpm/home.xpm"
+#include "xpm/back.xpm"
+#include "xpm/forward.xpm"
+
+#include "xpm/up.xpm"
+#include "xpm/down.xpm"
+#include "xpm/bold.xpm"
+#include "xpm/italic.xpm"
+#include "xpm/underlined.xpm"
+#include "xpm/midiin.xpm"
+#include "xpm/sysex.xpm"
+#include "xpm/ctrl.xpm"
+#include "xpm/meta.xpm"
+#include "xpm/pitch.xpm"
+#include "xpm/cafter.xpm"
+#include "xpm/pafter.xpm"
+#include "xpm/flag.xpm"
+#include "xpm/flagS.xpm"
+#include "xpm/lock.xpm"
+#include "xpm/toc.xpm"
+#include "xpm/editcut.xpm"
+#include "xpm/editcopy.xpm"
+#include "xpm/editpaste.xpm"
+
+#include "xpm/speaker.xpm"
+#include "xpm/buttondown.xpm"
+#include "xpm/configure.xpm"
+
+#include "xpm/mastertrackS.xpm"
+#include "xpm/localoffS.xpm"
+#include "xpm/miditransformS.xpm"
+#include "xpm/midi_plugS.xpm"
+#include "xpm/miditransposeS.xpm"
+#include "xpm/mixerS.xpm"
+#include "xpm/resetS.xpm"
+#include "xpm/track_add.xpm"
+#include "xpm/track_delete.xpm"
+#include "xpm/listS.xpm"
+#include "xpm/inputpluginS.xpm"
+#include "xpm/cliplistS.xpm"
+#include "xpm/mixeraudioS.xpm"
+#include "xpm/initS.xpm"
+
+#include "xpm/addtrack_addmiditrack.xpm"
+#include "xpm/addtrack_audiogroup.xpm"
+#include "xpm/addtrack_audioinput.xpm"
+#include "xpm/addtrack_audiooutput.xpm"
+#include "xpm/addtrack_drumtrack.xpm"
+#include "xpm/addtrack_wavetrack.xpm"
+#include "xpm/edit_drumms.xpm"
+#include "xpm/edit_list.xpm"
+#include "xpm/edit_mastertrack.xpm"
+#include "xpm/edit_track_add.xpm"
+#include "xpm/edit_track_del.xpm"
+#include "xpm/mastertrack_graphic.xpm"
+#include "xpm/mastertrack_list.xpm"
+#include "xpm/midi_transform.xpm"
+#include "xpm/midi_transpose.xpm"
+#include "xpm/select.xpm"
+// #include "xpm/select_all.xpm"
+#include "xpm/select_all_parts_on_track.xpm"
+// #include "xpm/select_deselect_all.xpm"
+// #include "xpm/select_inside_loop.xpm"
+// #include "xpm/select_invert_selection.xpm"
+// #include "xpm/select_outside_loop.xpm"
+
+#include "xpm/muse_icon.xpm"
+#include "xpm/config.xpm"
+#include "xpm/minus.xpm"
+#include "xpm/plus.xpm"
+
+QPixmap* mastertrackSIcon;
+QPixmap* localoffSIcon;
+QPixmap* miditransformSIcon;
+QPixmap* midi_plugSIcon;
+QPixmap* miditransposeSIcon;
+QPixmap* mixerSIcon;
+QPixmap* resetSIcon;
+QPixmap* track_addIcon;
+QPixmap* track_deleteIcon;
+QPixmap* listSIcon;
+QPixmap* inputpluginSIcon;
+QPixmap* cliplistSIcon;
+QPixmap* mixerAudioSIcon;
+QPixmap* initSIcon;
+
+QPixmap* playIcon;
+
+QPixmap* stopIcon;
+QPixmap* fforwardIcon;
+QPixmap* frewindIcon;
+QPixmap* stickIcon;
+QPixmap* waveIcon;
+QPixmap* markIcon[3];
+QPixmap* steprecIcon;
+QPixmap* openIcon;
+QPixmap* saveIcon;
+QPixmap* masterIcon;
+QPixmap* filenewIcon;
+QPixmap* filenewIconS;
+QPixmap* homeIcon;
+QPixmap* backIcon;
+QPixmap* forwardIcon;
+QPixmap* muteIcon;
+QPixmap* upIcon;
+QPixmap* downIcon;
+QPixmap* boldIcon;
+QPixmap* italicIcon;
+QPixmap* underlinedIcon;
+QPixmap* midiinIcon;
+QPixmap* sysexIcon;
+QPixmap* ctrlIcon;
+QPixmap* metaIcon;
+QPixmap* pitchIcon;
+QPixmap* cafterIcon;
+QPixmap* pafterIcon;
+QPixmap* flagIcon;
+QPixmap* flagIconS;
+QPixmap* lockIcon;
+QPixmap* tocIcon;
+
+QPixmap* speakerIcon;
+QPixmap* buttondownIcon;
+QPixmap* configureIcon;
+
+QIcon* editcutIconSet;
+QIcon* editcopyIconSet;
+QIcon* editpasteIconSet;
+QIcon* recordIcon;
+QIcon* onOffIcon;
+QPixmap* offIcon;
+
+QPixmap* addtrack_addmiditrackIcon;
+QPixmap* addtrack_audiogroupIcon;
+QPixmap* addtrack_audioinputIcon;
+QPixmap* addtrack_audiooutputIcon;
+QPixmap* addtrack_drumtrackIcon;
+QPixmap* addtrack_wavetrackIcon;
+QPixmap* edit_drummsIcon;
+QPixmap* edit_listIcon;
+QPixmap* edit_mastertrackIcon;
+QPixmap* edit_track_addIcon;
+QPixmap* edit_track_delIcon;
+QPixmap* mastertrack_graphicIcon;
+QPixmap* mastertrack_listIcon;
+QPixmap* midi_transformIcon;
+QPixmap* midi_transposeIcon;
+QPixmap* selectIcon;
+// QPixmap* select_allIcon;
+QPixmap* select_all_parts_on_trackIcon;
+// QPixmap* select_deselect_allIcon;
+// QPixmap* select_inside_loopIcon;
+// QPixmap* select_invert_selectionIcon;
+// QPixmap* select_outside_loopIcon;
+
+QPixmap* audio_bounce_to_fileIcon;
+QPixmap* audio_bounce_to_trackIcon;
+QPixmap* audio_restartaudioIcon;
+QPixmap* edit_midiIcon;
+QPixmap* midi_edit_instrumentIcon;
+QPixmap* midi_init_instrIcon;
+QPixmap* midi_local_offIcon;
+QPixmap* midi_reset_instrIcon;
+QPixmap* settings_appearance_settingsIcon;
+QPixmap* settings_configureshortcutsIcon;
+QPixmap* settings_follow_songIcon;
+QPixmap* settings_globalsettingsIcon;
+QPixmap* settings_metronomeIcon;
+QPixmap* settings_midifileexportIcon;
+QPixmap* settings_midisyncIcon;
+
+QPixmap* museIcon;
+QPixmap* museIcon64;
+QPixmap* configIcon;
+QPixmap* minusIcon;
+QPixmap* plusIcon;
+
+//---------------------------------------------------------
+// initIcons
+//---------------------------------------------------------
+
+void initIcons()
+ {
+ playIcon = new QPixmap(play_xpm);
+
+ stickIcon = new QPixmap(stick_xpm);
+ waveIcon = new QPixmap(wave_xpm);
+ markIcon[0] = new QPixmap(cmark_xpm);
+ markIcon[1] = new QPixmap(lmark_xpm);
+ markIcon[2] = new QPixmap(rmark_xpm);
+ steprecIcon = new QPixmap(steprec_xpm);
+ saveIcon = new QPixmap(":/xpm/filesave.png");
+ openIcon = new QPixmap(":/xpm/fileopen.png");
+ masterIcon = new QPixmap(master_xpm);
+ filenewIcon = new QPixmap(":/xpm/filenew.png");
+ filenewIconS = new QPixmap(filenewS_xpm);
+ homeIcon = new QPixmap(home_xpm);
+ backIcon = new QPixmap(back_xpm);
+ forwardIcon = new QPixmap(forward_xpm);
+ upIcon = new QPixmap(up_xpm);
+ downIcon = new QPixmap(down_xpm);
+ boldIcon = new QPixmap(bold_xpm);
+ italicIcon = new QPixmap(italic_xpm);
+ underlinedIcon = new QPixmap(underlined_xpm);
+ midiinIcon = new QPixmap(midiin_xpm);
+ sysexIcon = new QPixmap(sysex_xpm);
+ ctrlIcon = new QPixmap(ctrl_xpm);
+ metaIcon = new QPixmap(meta_xpm);
+ pitchIcon = new QPixmap(pitch_xpm);
+ cafterIcon = new QPixmap(cafter_xpm);
+ pafterIcon = new QPixmap(pafter_xpm);
+ flagIcon = new QPixmap(flag_xpm);
+ flagIconS = new QPixmap(flagS_xpm);
+ lockIcon = new QPixmap(lock_xpm);
+ tocIcon = new QPixmap(toc_xpm);
+
+ speakerIcon = new QPixmap(speaker_xpm);
+ buttondownIcon = new QPixmap(buttondown_xpm);
+ configureIcon = new QPixmap(configure_xpm);
+
+ editcutIconSet = new QIcon(QPixmap(editcut_xpm));
+ editcopyIconSet = new QIcon(QPixmap(editcopy_xpm));
+ editpasteIconSet = new QIcon(QPixmap(editpaste_xpm));
+
+ mastertrackSIcon = new QPixmap(mastertrackS_xpm);
+ localoffSIcon = new QPixmap(localoffS_xpm);
+ miditransformSIcon = new QPixmap(miditransformS_xpm);
+ midi_plugSIcon = new QPixmap(midi_plugS_xpm);
+ miditransposeSIcon = new QPixmap(miditransposeS_xpm);
+ mixerSIcon = new QPixmap(mixerS_xpm);
+ resetSIcon = new QPixmap(resetS_xpm);
+ track_addIcon = new QPixmap(track_add_xpm);
+ track_deleteIcon = new QPixmap(track_delete_xpm);
+ listSIcon = new QPixmap(listS_xpm);
+ inputpluginSIcon = new QPixmap(inputpluginS_xpm);
+ cliplistSIcon = new QPixmap(cliplistS_xpm);
+ mixerAudioSIcon = new QPixmap(mixerAudioS_xpm);
+ initSIcon = new QPixmap(initS_xpm);
+
+ addtrack_addmiditrackIcon = new QPixmap(addtrack_addmiditrack_xpm);
+ addtrack_audiogroupIcon = new QPixmap(addtrack_audiogroup_xpm);
+ addtrack_audioinputIcon = new QPixmap(addtrack_audioinput_xpm);
+ addtrack_audiooutputIcon = new QPixmap(addtrack_audiooutput_xpm);
+ addtrack_drumtrackIcon = new QPixmap(addtrack_drumtrack_xpm);
+ addtrack_wavetrackIcon = new QPixmap(addtrack_wavetrack_xpm);
+ edit_drummsIcon = new QPixmap(edit_drumms_xpm);
+ edit_listIcon = new QPixmap(edit_list_xpm);
+ edit_mastertrackIcon = new QPixmap(edit_mastertrack_xpm);
+ edit_track_addIcon = new QPixmap(edit_track_add_xpm);
+ edit_track_delIcon = new QPixmap(edit_track_del_xpm);
+ mastertrack_graphicIcon = new QPixmap(mastertrack_graphic_xpm);
+ mastertrack_listIcon = new QPixmap(mastertrack_list_xpm);
+ midi_transformIcon = new QPixmap(midi_transform_xpm);
+ midi_transposeIcon = new QPixmap(midi_transpose_xpm);
+ selectIcon = new QPixmap(select_xpm);
+// select_allIcon = new QPixmap(select_all_xpm);
+ select_all_parts_on_trackIcon = new QPixmap(select_all_parts_on_track_xpm);
+// select_deselect_allIcon = new QPixmap(select_deselect_all);
+// select_inside_loopIcon = new QPixmap(select_inside_loop_xpm);
+// select_invert_selectionIcon = new QPixmap(select_invert_selection);
+// select_outside_loopIcon = new QPixmap(select_outside_loop_xpm);
+
+ audio_bounce_to_fileIcon = new QPixmap(audio_bounce_to_file_xpm);
+ audio_bounce_to_trackIcon = new QPixmap(audio_bounce_to_track_xpm);
+ audio_restartaudioIcon = new QPixmap(audio_restartaudio_xpm);
+ edit_midiIcon = new QPixmap(edit_midi_xpm);
+ midi_edit_instrumentIcon = new QPixmap(midi_edit_instrument_xpm);
+ midi_init_instrIcon = new QPixmap(midi_init_instr_xpm);
+ midi_local_offIcon = new QPixmap(midi_local_off_xpm);
+ midi_reset_instrIcon = new QPixmap(midi_reset_instr_xpm);
+ settings_appearance_settingsIcon = new QPixmap(settings_appearance_settings_xpm);
+ settings_configureshortcutsIcon = new QPixmap(settings_configureshortcuts_xpm);
+ settings_follow_songIcon = new QPixmap(settings_follow_song_xpm);
+ settings_globalsettingsIcon = new QPixmap(settings_globalsettings_xpm);
+ settings_metronomeIcon = new QPixmap(settings_metronome_xpm);
+ settings_midifileexportIcon = new QPixmap(settings_midifileexport_xpm);
+ settings_midisyncIcon = new QPixmap(settings_midisync_xpm);
+
+ museIcon = new QPixmap(muse_icon_xpm);
+ configIcon = new QPixmap(config_xpm);
+ minusIcon = new QPixmap(minus_xpm);
+ plusIcon = new QPixmap(plus_xpm);
+
+ recordIcon = new QIcon;
+ recordIcon->addFile(":/xpm/recordOn.svg", ICON_SIZE, QIcon::Normal, QIcon::On);
+ recordIcon->addFile(":/xpm/recordOff.svg", ICON_SIZE, QIcon::Normal, QIcon::Off);
+
+ onOffIcon = new QIcon;
+ onOffIcon->addFile(":/xpm/on.svg", ICON_SIZE, QIcon::Normal, QIcon::On);
+ onOffIcon->addFile(":/xpm/off.svg", ICON_SIZE, QIcon::Normal, QIcon::Off);
+ }
+
diff --git a/muse_qt4_evolution/muse/icons.h b/muse_qt4_evolution/muse/icons.h
new file mode 100644
index 00000000..788f0ad0
--- /dev/null
+++ b/muse_qt4_evolution/muse/icons.h
@@ -0,0 +1,134 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef ICONS_H
+#define ICONS_H
+
+extern QPixmap* playIcon;
+extern QPixmap* stickIcon;
+extern QPixmap* waveIcon;
+extern QPixmap* markIcon[3];
+
+extern QPixmap* cutIcon;
+extern QPixmap* steprecIcon;
+extern QPixmap* glueIcon;
+extern QPixmap* drawIcon;
+
+extern QPixmap* quantIcon;
+extern QPixmap* openIcon;
+extern QPixmap* saveIcon;
+extern QPixmap* archiveIcon;
+extern QPixmap* findIcon;
+extern QPixmap* masterIcon;
+extern QPixmap* filenewIcon;
+extern QPixmap* filenewIconS;
+extern QPixmap* homeIcon;
+extern QPixmap* backIcon;
+extern QPixmap* forwardIcon;
+extern QPixmap* upIcon;
+extern QPixmap* downIcon;
+extern QPixmap* boldIcon;
+extern QPixmap* italicIcon;
+extern QPixmap* underlinedIcon;
+extern QPixmap* midiinIcon;
+extern QPixmap* sysexIcon;
+extern QPixmap* ctrlIcon;
+extern QPixmap* metaIcon;
+extern QPixmap* pitchIcon;
+extern QPixmap* cafterIcon;
+extern QPixmap* pafterIcon;
+extern QPixmap* flagIcon;
+extern QPixmap* flagIconS;
+extern QPixmap* lockIcon;
+extern QPixmap* tocIcon;
+
+extern QPixmap* speakerIcon;
+extern QPixmap* buttondownIcon;
+extern QPixmap* configureIcon;
+
+extern QIcon* editcutIconSet;
+extern QIcon* editcopyIconSet;
+extern QIcon* editpasteIconSet;
+
+extern QPixmap* offIcon;
+
+extern QPixmap* mastertrackSIcon;
+extern QPixmap* localoffSIcon;
+extern QPixmap* miditransformSIcon;
+extern QPixmap* midi_plugSIcon;
+extern QPixmap* miditransposeSIcon;
+extern QPixmap* mixerSIcon;
+extern QPixmap* resetSIcon;
+extern QPixmap* track_addIcon;
+extern QPixmap* track_deleteIcon;
+extern QPixmap* listSIcon;
+extern QPixmap* inputpluginSIcon;
+extern QPixmap* cliplistSIcon;
+extern QPixmap* mixerAudioSIcon;
+extern QPixmap* initSIcon;
+
+extern QPixmap* addtrack_addmiditrackIcon;
+extern QPixmap* addtrack_audiogroupIcon;
+extern QPixmap* addtrack_audioinputIcon;
+extern QPixmap* addtrack_audiooutputIcon;
+extern QPixmap* addtrack_drumtrackIcon;
+extern QPixmap* addtrack_wavetrackIcon;
+extern QPixmap* edit_drummsIcon;
+extern QPixmap* edit_listIcon;
+extern QPixmap* edit_mastertrackIcon;
+extern QPixmap* edit_track_addIcon;
+extern QPixmap* edit_track_delIcon;
+extern QPixmap* mastertrack_graphicIcon;
+extern QPixmap* mastertrack_listIcon;
+extern QPixmap* midi_transformIcon;
+extern QPixmap* midi_transposeIcon;
+extern QPixmap* selectIcon;
+// extern QPixmap* select_allIcon;
+extern QPixmap* select_all_parts_on_trackIcon;
+// extern QPixmap* select_deselect_allIcon;
+// extern QPixmap* select_inside_loopIcon;
+// extern QPixmap* select_invert_selectionIcon;
+// extern QPixmap* select_outside_loopIcon;
+
+extern QPixmap* audio_bounce_to_fileIcon;
+extern QPixmap* audio_bounce_to_trackIcon;
+extern QPixmap* audio_restartaudioIcon;
+extern QPixmap* edit_midiIcon;
+extern QPixmap* midi_edit_instrumentIcon;
+extern QPixmap* midi_init_instrIcon;
+extern QPixmap* midi_local_offIcon;
+extern QPixmap* midi_reset_instrIcon;
+extern QPixmap* settings_appearance_settingsIcon;
+extern QPixmap* settings_configureshortcutsIcon;
+extern QPixmap* settings_follow_songIcon;
+extern QPixmap* settings_globalsettingsIcon;
+extern QPixmap* settings_metronomeIcon;
+extern QPixmap* settings_midifileexportIcon;
+extern QPixmap* settings_midisyncIcon;
+
+extern QPixmap* museIcon;
+extern QPixmap* configIcon;
+extern QPixmap* minusIcon;
+extern QPixmap* plusIcon;
+
+extern QIcon* recordIcon;
+extern QIcon* onOffIcon;
+#endif
+
diff --git a/muse_qt4_evolution/muse/importmidi.cpp b/muse_qt4_evolution/muse/importmidi.cpp
new file mode 100644
index 00000000..0bd33df8
--- /dev/null
+++ b/muse_qt4_evolution/muse/importmidi.cpp
@@ -0,0 +1,589 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+#include "muse.h"
+#include "song.h"
+#include "widgets/filedialog.h"
+#include "midi.h"
+#include "midifile.h"
+#include "transport.h"
+#include "midiedit/drummap.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "instruments/minstrument.h"
+#include "gconfig.h"
+#include "part.h"
+#include "importmidi.h"
+#include "projectdialog.h"
+#include "templatedialog.h"
+#include "audio.h"
+#include "mixer.h"
+#include "arranger.h"
+#include "midictrl.h"
+#include "midiinport.h"
+#include "midioutport.h"
+
+//---------------------------------------------------------
+// ImportMidiDialog
+//---------------------------------------------------------
+
+ImportMidiDialog::ImportMidiDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ bg = new QButtonGroup(this);
+ bg->setExclusive(true);
+ bg->addButton(addToProject, 0);
+ bg->addButton(createNewProject, 1);
+ createNewProject->setChecked(true);
+ connect(selectTemplate,SIGNAL(clicked()), SLOT(selectTemplateClicked()));
+ connect(selectProject, SIGNAL(clicked()), SLOT(selectProjectClicked()));
+ }
+
+//---------------------------------------------------------
+// selectTemplateClicked
+//---------------------------------------------------------
+
+void ImportMidiDialog::selectTemplateClicked()
+ {
+ TemplateDialog templateDialog;
+ templateDialog.setTemplatePath(templateName->text());
+ int rv = templateDialog.exec();
+ if (rv == 0)
+ return;
+ templateName->setText(templateDialog.templatePath());
+ }
+
+//---------------------------------------------------------
+// selectProjectClicked
+//---------------------------------------------------------
+
+void ImportMidiDialog::selectProjectClicked()
+ {
+ ProjectDialog projectDialog;
+ projectDialog.setProjectName(projectName->text());
+ int rv = projectDialog.exec();
+ if (rv == 0)
+ return;
+ projectName->setText(projectDialog.projectName());
+ }
+
+//---------------------------------------------------------
+// setProjectName
+//---------------------------------------------------------
+
+void ImportMidiDialog::setProjectName(const QString& name)
+ {
+ projectName->setText(name);
+ }
+
+//---------------------------------------------------------
+// setTemplateName
+//---------------------------------------------------------
+
+void ImportMidiDialog::setTemplateName(const QString& name)
+ {
+ templateName->setText(name);
+ }
+
+//---------------------------------------------------------
+// importMidi
+//---------------------------------------------------------
+
+void MusE::importMidi()
+ {
+ importMidi(QString());
+ }
+
+void MusE::importMidi(const QString &file)
+ {
+ QString fn;
+ QStringList pattern;
+
+ const char** s = midi_file_pattern;
+ while (*s)
+ pattern << *s++;
+
+ if (file.isEmpty()) {
+ fn = getOpenFileName(lastMidiPath, pattern, this,
+ tr("MusE: Import Midi"));
+ lastMidiPath = fn;
+ if (fn.isEmpty())
+ return;
+ }
+ else
+ fn = file;
+
+ QFileInfo fi(fn);
+
+ ImportMidiDialog mid(this);
+ mid.setProjectName(fi.baseName());
+ mid.setTemplateName("");
+
+ if (mid.exec() == 0)
+ return;
+
+ if (mid.doCreateNewProject()) {
+ QString header = tr("MusE: import midi file");
+ QString path(mid.projectName->text());
+ QDir pd(QDir::homePath() + "/" + config.projectPath + "/" + path);
+
+ if (leaveProject())
+ return;
+ if (!pd.mkdir(pd.path())) {
+ QString s(tr("Cannot create project folder <%1>"));
+ QMessageBox::critical(this, header, s.arg(pd.path()));
+ return;
+ }
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ addProject(path); // add to history
+ seqStop();
+ if (mixer1)
+ mixer1->clear();
+ if (mixer2)
+ mixer2->clear();
+ //===========================================================
+ //
+ // close all toplevel windows
+ //
+ foreach(QWidget* w, QApplication::topLevelWidgets()) {
+ if (!w->isVisible())
+ continue;
+ if (strcmp("DrumEdit", w->metaObject()->className()) == 0)
+ w->close();
+ else if (strcmp("PianoRoll", w->metaObject()->className()) == 0)
+ w->close();
+ else if (strcmp("MasterEdit", w->metaObject()->className()) == 0)
+ w->close();
+ else if (strcmp("WaveEdit", w->metaObject()->className()) == 0)
+ w->close();
+ else if (strcmp("ListEdit", w->metaObject()->className()) == 0)
+ w->close();
+ }
+ emit startLoadSong();
+ song->setProjectPath(path);
+ song->clear(false);
+ song->setCreated(true);
+
+ QString s = mid.templateName->text();
+ bool rv = true;
+ if (!s.isEmpty()) {
+ QFile f(s);
+ if (f.open(QIODevice::ReadOnly)) {
+ rv = song->read(&f);
+ f.close();
+ }
+ else {
+ QString msg(tr("Cannot open template file\n%1"));
+ QMessageBox::critical(this, header, msg.arg(s));
+ }
+ }
+ if (!rv) {
+ QString msg(tr("File <%1> read error"));
+ QMessageBox::critical(this, header, msg.arg(s));
+ }
+ addMidiFile(fn);
+
+ tr_id->setChecked(config.transportVisible);
+ bt_id->setChecked(config.bigTimeVisible);
+
+ //
+ // dont emit song->update():
+ song->blockSignals(true);
+
+ showBigtime(config.bigTimeVisible);
+ showMixer1(config.mixer1Visible);
+ showMixer2(config.mixer2Visible);
+ if (mixer1 && config.mixer1Visible)
+ mixer1->setUpdateMixer();
+ if (mixer2 && config.mixer2Visible)
+ mixer2->setUpdateMixer();
+
+ if (config.transportVisible)
+ transport->show();
+ transport->move(config.geometryTransport.topLeft());
+ showTransport(config.transportVisible);
+
+ song->blockSignals(false);
+
+ transport->setMasterFlag(song->masterFlag());
+ punchinAction->setChecked(song->punchin());
+ punchoutAction->setChecked(song->punchout());
+ loopAction->setChecked(song->loop());
+ clipboardChanged(); // enable/disable "Paste"
+ song->setLen(song->len()); // emit song->lenChanged() signal
+
+ //
+ // add connected channels
+ //
+ TrackList* tl = song->tracks();
+#if 0
+ MidiChannelList* mcl = song->midiChannel();
+ for (iMidiChannel i = mcl->begin(); i != mcl->end(); ++i) {
+ MidiChannel* mc = (MidiChannel*)*i;
+ if (mc->noInRoute() || song->trackExists(mc))
+ continue;
+ tl->push_back(mc);
+ }
+#endif
+
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+ arranger->endLoadSong();
+ song->updatePos();
+ //
+ // send "cur" controller values to devices
+ //
+
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* track = *i;
+ track->blockSignals(true);
+ CtrlList* cl = track->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* ctrl = ic->second;
+ if (ctrl->type() & Ctrl::INT) {
+ CVal val;
+ val = ctrl->curVal();
+ ctrl->setCurVal(CTRL_VAL_UNKNOWN);
+ song->setControllerVal(track, ctrl, val);
+ }
+ }
+ track->blockSignals(false);
+ }
+ setWindowTitle(QString("MusE: Song: ") + path);
+ seqStart();
+ audio->msgSeek(song->cPos());
+ }
+ else {
+ // add to project
+ addMidiFile(fn);
+ song->update(-1);
+ }
+ }
+
+//---------------------------------------------------------
+// addMidiFile
+//---------------------------------------------------------
+
+void MusE::addMidiFile(const QString name)
+ {
+ QFile* fp = fileOpen(this, name, QString(".mid"), QIODevice::ReadOnly);
+ if (fp == 0)
+ return;
+ MidiFile mf;
+ bool rv = mf.read(fp);
+ fp->close();
+ delete fp;
+
+ if (rv) {
+ QString s(tr("reading midifile\n "));
+ s += name;
+ s += tr("\nfailed: ");
+ s += mf.error();
+ QMessageBox::critical(this, QString("MusE"), s);
+ return;
+ }
+ MidiFileTrackList* etl = mf.trackList();
+ int division = mf.division();
+
+ MidiOutPort* outPort = 0;
+
+ if (song->midiOutPorts()->empty()) {
+ outPort = new MidiOutPort();
+ outPort->setDefaultName();
+ song->insertTrack0(outPort, -1);
+
+ //
+ // set preferred instrument
+ //
+ MidiInstrument* instr = 0; // genericMidiInstrument;
+ for (iMidiInstrument mi = midiInstruments.begin(); mi != midiInstruments.end(); ++mi) {
+ if ((*mi)->iname() == config.defaultMidiInstrument) {
+ instr = *mi;
+ break;
+ }
+ }
+
+ //
+ // if midi file is GM/GS/XG this overrides the preferred
+ // instrument setting
+
+ if (mf.midiType() != MT_GENERIC) {
+ MidiInstrument* instr2 = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
+ MidiInstrument* mi = *i;
+ switch(mf.midiType()) {
+ case MT_GM:
+ if (mi->iname() == "GM")
+ instr2 = mi;
+ break;
+ case MT_GS:
+ if (mi->iname() == "GS")
+ instr2 = mi;
+ break;
+ case MT_XG:
+ if (mi->iname() == "XG")
+ instr2 = mi;
+ break;
+ case MT_GENERIC: // cannot happen
+ break;
+ }
+ if (instr2)
+ break;
+ }
+ if (instr2)
+ instr = instr2;
+ }
+ if (instr == 0)
+ instr = genericMidiInstrument;
+ outPort->setInstrument(instr);
+ }
+ else
+ outPort = song->midiOutPorts()->front();
+
+ //
+ // create MidiTrack and copy events to ->events()
+ // - combine note on/off events
+ // - calculate tick value for internal resolution
+ //
+
+ foreach(const MidiFileTrack* t, *etl) {
+ const MidiEventList& el = t->events;
+ if (el.empty())
+ continue;
+ //
+ // if we split the track, SYSEX and META events go into
+ // the first target track
+
+ bool first = true;
+ for (int channel = 0; channel < MIDI_CHANNELS; ++channel) {
+ //
+ // check if there are any events for channel in track:
+ //
+ iMidiEvent i;
+ for (i = el.begin(); i != el.end(); ++i) {
+ MidiEvent ev = *i;
+ if (ev.type() != ME_SYSEX && ev.type() != ME_META && ev.channel() == channel)
+ break;
+ }
+ if (i == el.end())
+ continue;
+
+ MidiTrack* track = new MidiTrack();
+ if (t->isDrumTrack)
+ track->setUseDrumMap(true);
+//TODOB track->outRoutes()->push_back(Route(outPort->channel(channel), -1, Route::TRACK));
+// if (inPort && config.connectToAllMidiTracks) {
+// for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+// Route src(inPort, ch, Route::TRACK);
+// track->inRoutes()->push_back(src);
+// }
+// }
+
+ EventList* mel = track->events();
+ buildMidiEventList(mel, &el, track, channel, division, first);
+ first = false;
+
+ for (iEvent i = mel->begin(); i != mel->end(); ++i) {
+ Event event = i->second;
+ if (event.type() == Controller) {
+ int ctrl = event.dataA();
+ MidiInstrument* instr = outPort->instrument();
+ track->addMidiController(instr, ctrl);
+ CVal val;
+ val.i = event.dataB();
+ track->addControllerVal(ctrl, event.tick(), val);
+ }
+ }
+ processTrack(track);
+ if (track->name().isEmpty())
+ track->setDefaultName();
+ song->insertTrack0(track, -1);
+ }
+ if (first) {
+ //
+ // track does only contain non-channel messages
+ // (SYSEX or META)
+ //
+ MidiTrack* track = new MidiTrack();
+ EventList* mel = track->events();
+ buildMidiEventList(mel, &el, track, 0, division, true);
+ processTrack(track);
+ if (track->name().isEmpty())
+ track->setDefaultName();
+ song->insertTrack0(track, -1);
+ }
+ }
+
+ TrackList* tl = song->tracks();
+ if (!tl->empty()) {
+ Track* track = tl->front();
+ track->setSelected(true);
+ }
+ unsigned int l = 1;
+ MidiTrackList* mtl = song->midis();
+ for (iMidiTrack t = mtl->begin(); t != mtl->end(); ++t) {
+ MidiTrack* track = *t;
+ PartList* parts = track->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p) {
+ unsigned last = p->second->tick() + p->second->lenTick();
+ if (last > l)
+ l = last;
+ }
+ }
+ song->setLen(l);
+ AL::TimeSignature sig = AL::sigmap.timesig(0);
+ int z = sig.z;
+ int n = sig.n;
+
+ transport->setTimesig(z, n);
+// int tempo = AL::tempomap.tempo(0);
+// transport->setTempo(tempo);
+
+ bool masterF = !AL::tempomap.empty();
+ song->setMasterFlag(masterF);
+ transport->setMasterFlag(masterF);
+
+ song->updatePos();
+ }
+
+//---------------------------------------------------------
+// processTrack
+// divide events into parts
+//---------------------------------------------------------
+
+void MusE::processTrack(MidiTrack* track)
+ {
+ EventList* tevents = track->events();
+ if (tevents->empty())
+ return;
+
+ //---------------------------------------------------
+ // create parts
+ // Break midi tracks into parts.
+ // A new part is created when a gap of at least
+ // one measure is detected. Part len is aligned
+ // to one measure.
+ //---------------------------------------------------
+
+ PartList* pl = track->parts();
+
+ int lastTick = 0;
+ for (iEvent i = tevents->begin(); i != tevents->end(); ++i) {
+ Event event = i->second;
+ int epos = event.tick() + event.lenTick();
+ if (epos > lastTick)
+ lastTick = epos;
+ }
+
+ int len = song->roundUpBar(lastTick+1);
+ int bar2, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(len, &bar2, &beat, &tick);
+
+ QString partname = track->name();
+
+ int lastOff = 0;
+ int st = -1; // start tick current part
+ int x1 = 0; // start tick current measure
+ int x2 = 0; // end tick current measure
+
+ for (int bar = 0; bar < bar2; ++bar, x1 = x2) {
+ x2 = AL::sigmap.bar2tick(bar+1, 0, 0);
+ if (lastOff > x2) {
+ // this measure is busy!
+ continue;
+ }
+ iEvent i1 = tevents->lower_bound(x1);
+ iEvent i2 = tevents->lower_bound(x2);
+
+ if (i1 == i2) { // empty?
+ if (st != -1) {
+ Part* part = new Part(track);
+ part->ref();
+ part->setType(AL::TICKS);
+ part->setTick(st);
+ part->setLenTick(x1-st);
+ part->setName(partname);
+ pl->add(part);
+ st = -1;
+ }
+ }
+ else {
+ if (st == -1)
+ st = x1; // begin new part
+ //HACK:
+ //lastOff:
+ for (iEvent i = i1; i != i2; ++i) {
+ Event event = i->second;
+ if (event.type() == Note) {
+ int off = event.tick() + event.lenTick();
+ if (off > lastOff)
+ lastOff = off;
+ }
+ }
+ }
+ }
+ if (st != -1) {
+ Part* part = new Part(track);
+ part->ref();
+ part->setType(AL::TICKS);
+ part->setTick(st);
+ part->setLenTick(x2-st);
+ part->setName(partname);
+ pl->add(part);
+ }
+
+ //-------------------------------------------------------------
+ // assign events to parts
+ //-------------------------------------------------------------
+
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ Part* part = p->second;
+ int stick = part->tick();
+ int etick = part->tick() + part->lenTick();
+ iEvent r1 = tevents->lower_bound(stick);
+ iEvent r2 = tevents->lower_bound(etick);
+ int startTick = part->tick();
+
+ EventList* el = part->events();
+ for (iEvent i = r1; i != r2; ++i) {
+ Event ev = i->second;
+ int ntick = ev.tick() - startTick;
+ ev.setTick(ntick);
+ el->add(ev, ntick);
+ }
+ tevents->erase(r1, r2);
+ }
+
+ if (tevents->size())
+ printf("-----------events left: %zd\n", tevents->size());
+ for (iEvent i = tevents->begin(); i != tevents->end(); ++i) {
+ printf("%d===\n", i->first);
+ i->second.dump();
+ }
+ // all events should be processed:
+ assert(tevents->empty());
+ }
+
diff --git a/muse_qt4_evolution/muse/importmidi.h b/muse_qt4_evolution/muse/importmidi.h
new file mode 100644
index 00000000..b7aa1571
--- /dev/null
+++ b/muse_qt4_evolution/muse/importmidi.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __IMPORTMIDI_H__
+#define __IMPORTMIDI_H__
+
+#include "ui_importmidi.h"
+
+//---------------------------------------------------------
+// ImportMidiDialog
+//---------------------------------------------------------
+
+class ImportMidiDialog : public QDialog, public Ui::ImportMidiDialogBase {
+ Q_OBJECT
+ QButtonGroup* bg;
+
+ private slots:
+ void selectProjectClicked();
+ void selectTemplateClicked();
+
+ public:
+ ImportMidiDialog(QWidget*);
+ void setProjectName(const QString&);
+ void setTemplateName(const QString&);
+ bool doCreateNewProject() const { return bg->checkedId() == 1; }
+ };
+
+
+#endif
diff --git a/muse_qt4_evolution/muse/importmidi.ui b/muse_qt4_evolution/muse/importmidi.ui
new file mode 100644
index 00000000..ccf22220
--- /dev/null
+++ b/muse_qt4_evolution/muse/importmidi.ui
@@ -0,0 +1,200 @@
+<ui version="4.0" >
+ <class>ImportMidiDialogBase</class>
+ <widget class="QDialog" name="ImportMidiDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>312</width>
+ <height>185</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Import Midi File</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="addToProject" >
+ <property name="text" >
+ <string>add to current project</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="createNewProject" >
+ <property name="text" >
+ <string>create new project:</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="3" >
+ <widget class="QToolButton" name="selectProject" >
+ <property name="toolTip" >
+ <string>select project name</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/filenew.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Project Name: </string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QToolButton" name="selectTemplate" >
+ <property name="toolTip" >
+ <string>select template</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/filenew.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLineEdit" name="templateName" />
+ </item>
+ <item row="0" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>30</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Template:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLineEdit" name="projectName" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ImportMidiDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ImportMidiDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/instruments/CMakeLists.txt b/muse_qt4_evolution/muse/instruments/CMakeLists.txt
new file mode 100644
index 00000000..b86764d4
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/CMakeLists.txt
@@ -0,0 +1,41 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( instruments_mocs
+ minstrument.h editinstrument.h
+ )
+
+QT4_WRAP_UI ( instruments_ui_headers
+ editinstrument.ui
+ )
+
+add_library ( instruments STATIC
+ minstrument.cpp
+ editinstrument.cpp
+ minstrument.h
+ editinstrument.h
+ ${instruments_mocs}
+ ${instruments_ui_headers}
+ )
+
+set_target_properties( instruments
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/instruments/editinstrument.cpp b/muse_qt4_evolution/muse/instruments/editinstrument.cpp
new file mode 100644
index 00000000..823a20e3
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/editinstrument.cpp
@@ -0,0 +1,844 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "editinstrument.h"
+#include "minstrument.h"
+#include "ctrl.h"
+#include "midictrl.h"
+#include "al/xml.h"
+#include "gconfig.h"
+
+extern int string2sysex(const QString& s, unsigned char** data);
+extern QString sysex2string(int len, unsigned char* data);
+
+//---------------------------------------------------------
+// EditInstrument
+//---------------------------------------------------------
+
+EditInstrument::EditInstrument(QWidget* parent)
+ : QMainWindow(parent)
+ {
+ setupUi(this);
+ // populate instrument list
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
+ QListWidgetItem* item = new QListWidgetItem((*i)->iname());
+ QVariant v = qVariantFromValue((void*)(*i));
+ item->setData(Qt::UserRole, v);
+ instrumentList->addItem(item);
+ }
+ instrumentList->setItemSelected(instrumentList->item(0), true);
+ connect(instrumentList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
+ SLOT(instrumentChanged(QListWidgetItem*,QListWidgetItem*)));
+ connect(patchView, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
+ SLOT(patchChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ instrumentChanged(instrumentList->item(0), instrumentList->item(0));
+ connect(listController, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
+ SLOT(controllerChanged(QListWidgetItem*, QListWidgetItem*)));
+ connect(sysexList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
+ SLOT(sysexChanged(QListWidgetItem*, QListWidgetItem*)));
+ connect(instrumentName, SIGNAL(textChanged(const QString&)), SLOT(instrumentNameChanged(const QString&)));
+ connect(fileSaveAsAction, SIGNAL(triggered()), SLOT(fileSaveAs()));
+ connect(fileSaveAction, SIGNAL(triggered()), SLOT(fileSave()));
+ connect(fileNewAction, SIGNAL(triggered()), SLOT(fileNew()));
+ connect(fileExitAction, SIGNAL(triggered()), SLOT(close()));
+
+ connect(deletePatch, SIGNAL(clicked()), SLOT(deletePatchClicked()));
+ connect(newPatch, SIGNAL(clicked()), SLOT(newPatchClicked()));
+ connect(newGroup, SIGNAL(clicked()), SLOT(newGroupClicked()));
+ connect(newCategory, SIGNAL(clicked()), SLOT(newCategoryClicked()));
+ connect(deleteController, SIGNAL(clicked()), SLOT(deleteControllerClicked()));
+ connect(newController, SIGNAL(clicked()), SLOT(newControllerClicked()));
+ connect(deleteSysex, SIGNAL(clicked()), SLOT(deleteSysexClicked()));
+ connect(newSysex, SIGNAL(clicked()), SLOT(newSysexClicked()));
+
+ connect(ctrlType,SIGNAL(activated(int)), SLOT(ctrlTypeChanged(int)));
+ }
+
+//---------------------------------------------------------
+// fileNew
+//---------------------------------------------------------
+
+void EditInstrument::fileNew()
+ {
+ for (int i = 1;; ++i) {
+ QString s = QString("Instrument-%1").arg(i);
+ bool found = false;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
+ if (s == (*i)->iname()) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ MidiInstrument* ni = new MidiInstrument(s);
+ midiInstruments.append(ni);
+ QListWidgetItem* item = new QListWidgetItem(ni->iname());
+ QVariant v = qVariantFromValue((void*)(ni));
+ item->setData(Qt::UserRole, v);
+ instrumentList->addItem(item);
+ instrumentList->setCurrentItem(item);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// fileSave
+//---------------------------------------------------------
+
+void EditInstrument::fileSave()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ if (instrument->filePath().isEmpty())
+ fileSaveAs();
+ else {
+ QFile f(instrument->filePath());
+ if (!f.open(QIODevice::WriteOnly)) {
+ fileSaveAs();
+ }
+ else {
+ f.close();
+ if (fileSave(instrument, instrument->filePath()))
+ instrument->setDirty(false);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// fileSave
+//---------------------------------------------------------
+
+bool EditInstrument::fileSave(MidiInstrument* instrument, const QString& name)
+ {
+ QFile f(name);
+ if (!f.open(QIODevice::WriteOnly)) {
+ QString s("Creating file failed: ");
+ s += strerror(errno);
+ QMessageBox::critical(this,
+ tr("MusE: Create file failed"), s);
+ return false;
+ }
+ Xml xml(&f);
+ updateInstrument(instrument);
+ instrument->write(xml);
+ f.close();
+ if (f.error()) {
+ QString s = QString("Write File\n") + f.fileName() + QString("\nfailed: ")
+ + f.errorString();
+ QMessageBox::critical(this, tr("MusE: Write File failed"), s);
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// fileSaveAs
+//---------------------------------------------------------
+
+void EditInstrument::fileSaveAs()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ QString path = QDir::homePath() + "/" + config.instrumentPath;
+ if (instrument->filePath().isEmpty())
+ path += QString("/%1.idf").arg(instrument->iname());
+ else {
+ QFileInfo fi(instrument->filePath());
+ path += QString("/%1.idf").arg(fi.baseName());
+ }
+ QString s = QFileDialog::getSaveFileName(this,
+ tr("MusE: Save Instrument Definition"),
+ path,
+ tr("Instrument Definition (*.idf)"));
+ if (s.isEmpty())
+ return;
+ instrument->setFilePath(s);
+ if (fileSave(instrument, s))
+ instrument->setDirty(false);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void EditInstrument::closeEvent(QCloseEvent* ev)
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item) {
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ if (checkDirty(instrument)) {
+ ev->ignore();
+ return;
+ }
+ }
+ QMainWindow::closeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// instrumentNameChanged
+//---------------------------------------------------------
+
+void EditInstrument::instrumentNameChanged(const QString& s)
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ if (s != item->text()) {
+ item->setText(s);
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ instrument->setDirty(true);
+ }
+ }
+
+//---------------------------------------------------------
+// deletePatchClicked
+//---------------------------------------------------------
+
+void EditInstrument::deletePatchClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ QTreeWidgetItem* pi = patchView->currentItem();
+ if (pi == 0)
+ return;
+ void* p = pi->data(0, Qt::UserRole).value<void*>();
+ if (p == 0)
+ return;
+ Patch* patch = (Patch*)p;
+ std::vector<PatchGroup>* pg = instrument->groups();
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p) {
+ if (patch == *p) {
+ g->patches.erase(p);
+ delete pi;
+ instrument->setDirty(true);
+ return;
+ }
+ }
+ }
+ printf("fatal: patch not found\n");
+ }
+
+//---------------------------------------------------------
+// newPatchClicked
+//---------------------------------------------------------
+
+void EditInstrument::newPatchClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ std::vector<PatchGroup>* pg = instrument->groups();
+ QString patchName;
+ for (int i = 1;; ++i) {
+ patchName = QString("Patch-%1").arg(i);
+ bool found = false;
+
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p) {
+ if ((*p)->name == patchName) {
+ found = true;
+ break;
+ }
+ }
+ if (found)
+ break;
+ }
+ if (!found)
+ break;
+ }
+
+ //
+ // search current patch group
+ //
+ PatchGroup* pGroup = 0;
+ QTreeWidgetItem* pi = patchView->currentItem();
+ if (pi == 0)
+ return;
+ if (pi->data(0, Qt::UserRole).value<void*>())
+ pi = pi->parent();
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ if (g->name == pi->text(0)) {
+ pGroup = &*g;
+ break;
+ }
+ }
+ if (pGroup == 0) {
+ printf("group not found\n");
+ return;
+ }
+ Patch* patch = new Patch;
+ patch->name = patchName;
+ pGroup->patches.push_back(patch);
+ QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ sitem->setText(0, patch->name);
+ QVariant v = QVariant::fromValue((void*)(patch));
+ sitem->setData(0, Qt::UserRole, v);
+
+ pi->addChild(sitem);
+ patchView->setCurrentItem(sitem);
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newGroupClicked
+//---------------------------------------------------------
+
+void EditInstrument::newGroupClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ std::vector<PatchGroup>* pg = instrument->groups();
+ QString groupName;
+ for (int i = 1;; ++i) {
+ groupName = QString("Group-%1").arg(i);
+ bool found = false;
+
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ if (g->name == groupName) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+
+ PatchGroup pGroup;
+ pGroup.name = groupName;
+ pg->push_back(pGroup);
+
+ QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ sitem->setText(0, groupName);
+ QVariant v = QVariant::fromValue((void*)0);
+ sitem->setData(0, Qt::UserRole, v);
+ patchView->addTopLevelItem(sitem);
+ patchView->setCurrentItem(sitem);
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newCategoryClicked
+//---------------------------------------------------------
+
+void EditInstrument::newCategoryClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ bool ok;
+ QString cat = QInputDialog::getText(this,
+ tr("MusE: Enter new Category"),
+ tr("Enter new Category:"),
+ QLineEdit::Normal, "", &ok
+ );
+ if (ok && !cat.isEmpty()) {
+ category->addItem(cat);
+ instrument->addCategory(cat);
+ instrument->setDirty(true);
+ }
+ }
+
+//---------------------------------------------------------
+// deleteControllerClicked
+//---------------------------------------------------------
+
+void EditInstrument::deleteControllerClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ QListWidgetItem* item2 = listController->currentItem();
+ if (item == 0 || item2 == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ MidiController* ctrl = (MidiController*)item2->data(Qt::UserRole).value<void*>();
+ MidiControllerList* cl = instrument->controller();
+ cl->removeAll(ctrl);
+ delete item2;
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newControllerClicked
+//---------------------------------------------------------
+
+void EditInstrument::newControllerClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+
+ QString ctrlName;
+ MidiControllerList* cl = instrument->controller();
+ for (int i = 1;; ++i) {
+ ctrlName = QString("Controller-%d").arg(i);
+
+ bool found = false;
+ for (iMidiController ic = cl->begin(); ic != cl->end(); ++ic) {
+ MidiController* c = *ic;
+ if (c->name() == ctrlName) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+
+ MidiController* ctrl = new MidiController();
+ ctrl->setName(ctrlName);
+ item = new QListWidgetItem(ctrlName);
+ QVariant v = qVariantFromValue((void*)(ctrl));
+ item->setData(Qt::UserRole, v);
+ listController->addItem(item);
+ listController->setCurrentItem(item);
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// deleteSysexClicked
+//---------------------------------------------------------
+
+void EditInstrument::deleteSysexClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ QListWidgetItem* item2 = sysexList->currentItem();
+ if (item == 0 || item2 == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ SysEx* sysex = (SysEx*)item2->data(Qt::UserRole).value<void*>();
+ QList<SysEx*> sl = instrument->sysex();
+ instrument->removeSysex(sysex);
+ delete item2;
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newSysexClicked
+//---------------------------------------------------------
+
+void EditInstrument::newSysexClicked()
+ {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+
+ QString sysexName;
+ for (int i = 1;; ++i) {
+ sysexName = QString("Sysex-%1").arg(i);
+
+ bool found = false;
+ foreach(const SysEx* s, instrument->sysex()) {
+ if (s->name == sysexName) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+ SysEx* nsysex = new SysEx;
+ nsysex->name = sysexName;
+ instrument->addSysex(nsysex);
+
+ item = new QListWidgetItem(sysexName);
+ QVariant v = QVariant::fromValue((void*)nsysex);
+ item->setData(Qt::UserRole, v);
+ sysexList->addItem(item);
+ sysexList->setCurrentItem(item);
+ instrument->setDirty(true);
+ }
+
+//---------------------------------------------------------
+// instrumentChanged
+//---------------------------------------------------------
+
+void EditInstrument::instrumentChanged(QListWidgetItem* sel, QListWidgetItem* old)
+ {
+ if (sel == 0)
+ return;
+ if (old) {
+ MidiInstrument* oi = (MidiInstrument*)old->data(Qt::UserRole).value<void*>();
+ checkDirty(oi);
+ oi->setDirty(false);
+ }
+
+ patchView->clear();
+ listController->clear();
+ category->clear();
+ sysexList->clear();
+
+ // populate patch list
+
+ MidiInstrument* instrument = (MidiInstrument*)sel->data(Qt::UserRole).value<void*>();
+ instrument->setDirty(false);
+
+ instrumentName->setText(instrument->iname());
+ std::vector<PatchGroup>* pg = instrument->groups();
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setText(0, g->name);
+ QVariant v = QVariant::fromValue((void*)0);
+ item->setData(0, Qt::UserRole, v);
+ patchView->addTopLevelItem(item);
+ for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p) {
+ Patch* patch = *p;
+ QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ sitem->setText(0, patch->name);
+ QVariant v = QVariant::fromValue((void*)patch);
+ sitem->setData(0, Qt::UserRole, v);
+ item->addChild(sitem);
+ }
+ }
+ MidiControllerList* cl = instrument->controller();
+ for (iMidiController ic = cl->begin(); ic != cl->end(); ++ic) {
+ MidiController* c = *ic;
+ QListWidgetItem* item = new QListWidgetItem(c->name());
+ QVariant v = QVariant::fromValue((void*)c);
+ item->setData(Qt::UserRole, v);
+ listController->addItem(item);
+ }
+ listController->setItemSelected(listController->item(0), true);
+ controllerChanged(listController->item(0), 0);
+
+ category->addItems(instrument->categories());
+
+ foreach(const SysEx* s, instrument->sysex()) {
+ QListWidgetItem* item = new QListWidgetItem(s->name);
+ QVariant v = QVariant::fromValue((void*)s);
+ item->setData(Qt::UserRole, v);
+ sysexList->addItem(item);
+ }
+
+ sysexList->setItemSelected(sysexList->item(0), true);
+ sysexChanged(sysexList->item(0), 0);
+
+ if (!cl->empty()) {
+ listController->setItemSelected(listController->item(0), true);
+ controllerChanged(listController->item(0), 0);
+ }
+ }
+
+//---------------------------------------------------------
+// updatePatch
+//---------------------------------------------------------
+
+void EditInstrument::updatePatch(MidiInstrument* instrument, Patch* p)
+ {
+ if (p->name != patchNameEdit->text()) {
+ p->name = patchNameEdit->text();
+ instrument->setDirty(true);
+ }
+ if (p->hbank != spinBoxHBank->value()) {
+ p->hbank = spinBoxHBank->value();
+ instrument->setDirty(true);
+ }
+ if (p->lbank != spinBoxLBank->value()) {
+ p->hbank = spinBoxHBank->value();
+ instrument->setDirty(true);
+ }
+ if (p->prog != spinBoxProgram->value()) {
+ p->prog = spinBoxProgram->value();
+ instrument->setDirty(true);
+ }
+ // there is no logical xor in c++
+ bool a = p->typ & 1;
+ bool b = p->typ & 2;
+ bool c = p->typ & 4;
+ bool aa = checkBoxGM->isChecked();
+ bool bb = checkBoxGS->isChecked();
+ bool cc = checkBoxXG->isChecked();
+ if ((a ^ aa) || (b ^ bb) || (c ^ cc)) {
+ int value = 0;
+ if (checkBoxGM->isChecked())
+ value |= 1;
+ if (checkBoxGS->isChecked())
+ value |= 2;
+ if (checkBoxXG->isChecked())
+ value |= 4;
+ p->typ = value;
+ instrument->setDirty(true);
+ }
+ if (p->categorie != category->currentIndex()) {
+ p->categorie = category->currentIndex();
+ instrument->setDirty(true);
+ }
+ }
+
+//---------------------------------------------------------
+// patchChanged
+//---------------------------------------------------------
+
+void EditInstrument::patchChanged(QTreeWidgetItem* sel, QTreeWidgetItem* old)
+ {
+ if (old && old->data(0, Qt::UserRole).value<void*>()) {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ Patch* p = (Patch*)old->data(0, Qt::UserRole).value<void*>();
+ updatePatch(instrument, p);
+ }
+ if (sel == 0 || sel->data(0, Qt::UserRole).value<void*>() == 0) {
+ patchNameEdit->setText("");
+ return;
+ }
+ Patch* p = (Patch*)sel->data(0, Qt::UserRole).value<void*>();
+ patchNameEdit->setText(p->name);
+ spinBoxHBank->setValue(p->hbank);
+ spinBoxLBank->setValue(p->lbank);
+ spinBoxProgram->setValue(p->prog);
+ checkBoxDrum->setChecked(p->drumMap);
+ checkBoxGM->setChecked(p->typ & 1);
+ checkBoxGS->setChecked(p->typ & 2);
+ checkBoxXG->setChecked(p->typ & 4);
+ category->setCurrentIndex(p->categorie);
+ }
+
+//---------------------------------------------------------
+// updateController
+//---------------------------------------------------------
+
+void EditInstrument::updateController(MidiInstrument* instrument, MidiController* oc)
+ {
+ int ctrlH = spinBoxHCtrlNo->value();
+ int ctrlL = spinBoxLCtrlNo->value();
+ MidiController::ControllerType type = (MidiController::ControllerType)ctrlType->currentIndex();
+ int num = MidiController::genNum(type, ctrlH, ctrlL);
+
+ if (num != oc->num()) {
+ oc->setNum(num);
+ instrument->setDirty(true);
+ }
+ if (spinBoxMin->value() != oc->minVal()) {
+ oc->setMinVal(spinBoxMin->value());
+ instrument->setDirty(true);
+ }
+ if (spinBoxMax->value() != oc->maxVal()) {
+ oc->setMaxVal(spinBoxMax->value());
+ instrument->setDirty(true);
+ }
+ if (spinBoxDefault->value() != oc->initVal()) {
+ oc->setInitVal(spinBoxDefault->value());
+ instrument->setDirty(true);
+ }
+ if (moveWithPart->isChecked() ^ oc->moveWithPart()) {
+ oc->setMoveWithPart(moveWithPart->isChecked());
+ instrument->setDirty(true);
+ }
+ if (ctrlName->text() != oc->name()) {
+ oc->setName(ctrlName->text());
+ instrument->setDirty(true);
+ }
+ if (ctrlComment->toPlainText() != oc->comment()) {
+ oc->setComment(ctrlComment->toPlainText());
+ instrument->setDirty(true);
+ }
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void EditInstrument::controllerChanged(QListWidgetItem* sel, QListWidgetItem* old)
+ {
+ if (old) {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ MidiController* oc = (MidiController*)old->data(Qt::UserRole).value<void*>();
+ updateController(instrument, oc);
+ }
+ if (sel == 0 || sel->data(Qt::UserRole).value<void*>() == 0) {
+ ctrlName->setText("");
+ ctrlComment->setText("");
+ return;
+ }
+ MidiController* c = (MidiController*)sel->data(Qt::UserRole).value<void*>();
+ ctrlName->setText(c->name());
+ ctrlComment->setText(c->comment());
+ int ctrlH = (c->num() >> 8) & 0x7f;
+ int ctrlL = c->num() & 0x7f;
+ int type = int(c->type());
+ ctrlType->setCurrentIndex(type);
+ ctrlTypeChanged(type);
+ spinBoxHCtrlNo->setValue(ctrlH);
+ spinBoxLCtrlNo->setValue(ctrlL);
+ spinBoxMin->setValue(c->minVal());
+ spinBoxMax->setValue(c->maxVal());
+ spinBoxDefault->setRange(c->minVal()-1, c->maxVal());
+ spinBoxDefault->setValue(c->initVal());
+ moveWithPart->setChecked(c->moveWithPart());
+ }
+
+//---------------------------------------------------------
+// updateSysex
+//---------------------------------------------------------
+
+void EditInstrument::updateSysex(MidiInstrument* instrument, SysEx* so)
+ {
+ if (sysexName->text() != so->name) {
+ so->name = sysexName->text();
+ instrument->setDirty(true);
+ }
+ if (sysexComment->toPlainText() != so->comment) {
+ so->comment = sysexComment->toPlainText();
+ instrument->setDirty(true);
+ }
+ unsigned char* data;
+ int len = string2sysex(sysexData->toPlainText(), &data);
+ if (so->dataLen != len || !memcmp(data, so->data, len)) {
+ delete so->data;
+ so->data = data;
+ so->dataLen = len;
+ }
+ }
+
+//---------------------------------------------------------
+// sysexChanged
+//---------------------------------------------------------
+
+void EditInstrument::sysexChanged(QListWidgetItem* sel, QListWidgetItem* old)
+ {
+ if (old) {
+ QListWidgetItem* item = instrumentList->currentItem();
+ if (item == 0)
+ return;
+ MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ SysEx* so = (SysEx*)item->data(Qt::UserRole).value<void*>();
+ updateSysex(instrument, so);
+ }
+ if (sel == 0) {
+ sysexName->setText("");
+ sysexComment->setText("");
+ sysexData->setText("");
+ sysexName->setEnabled(false);
+ sysexComment->setEnabled(false);
+ sysexData->setEnabled(false);
+ return;
+ }
+ sysexName->setEnabled(true);
+ sysexComment->setEnabled(true);
+ sysexData->setEnabled(true);
+
+ SysEx* sx = (SysEx*)sel->data(Qt::UserRole).value<void*>();
+ sysexName->setText(sx->name);
+ sysexComment->setText(sx->comment);
+ sysexData->setText(sysex2string(sx->dataLen, sx->data));
+ }
+
+//---------------------------------------------------------
+// checkDirty
+// return true on Abort
+//---------------------------------------------------------
+
+bool EditInstrument::checkDirty(MidiInstrument* i)
+ {
+ updateInstrument(i);
+ if (!i->dirty())
+ return false;
+ int n = QMessageBox::warning(this, tr("MusE"),
+ tr("The current Instrument contains unsaved data\n"
+ "Save Current Instrument?"),
+ tr("&Save"), tr("&Nosave"), tr("&Abort"), 0, 2);
+ if (n == 0) {
+ if (i->filePath().isEmpty())
+ fileSaveAs();
+ else {
+ QFile f(i->filePath());
+ if (!f.open(QIODevice::WriteOnly))
+ fileSaveAs();
+ else {
+ f.close();
+ if (fileSave(i, i->filePath()))
+ i->setDirty(false);
+ }
+ }
+ return false;
+ }
+ return n == 2;
+ }
+
+//---------------------------------------------------------
+// ctrlTypeChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlTypeChanged(int idx)
+ {
+ MidiController::ControllerType t = (MidiController::ControllerType)idx;
+ switch (t) {
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller7:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(true);
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ spinBoxHCtrlNo->setEnabled(true);
+ spinBoxLCtrlNo->setEnabled(true);
+ break;
+ case MidiController::Pitch:
+ case MidiController::Program:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// updateInstrument
+//---------------------------------------------------------
+
+void EditInstrument::updateInstrument(MidiInstrument* instrument)
+ {
+ QListWidgetItem* sysexItem = sysexList->currentItem();
+ if (sysexItem) {
+ SysEx* so = (SysEx*)sysexItem->data(Qt::UserRole).value<void*>();
+ updateSysex(instrument, so);
+ }
+ QListWidgetItem* ctrlItem = listController->currentItem();
+ if (ctrlItem) {
+ MidiController* ctrl = (MidiController*)ctrlItem->data(Qt::UserRole).value<void*>();
+ updateController(instrument, ctrl);
+ }
+ QTreeWidgetItem* patchItem = patchView->currentItem();
+ if (patchItem) {
+ Patch* p = (Patch*)patchItem->data(0, Qt::UserRole).value<void*>();
+ updatePatch(instrument, p);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/instruments/editinstrument.h b/muse_qt4_evolution/muse/instruments/editinstrument.h
new file mode 100644
index 00000000..cefafe74
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/editinstrument.h
@@ -0,0 +1,70 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __EDITINSTRUMENT_H__
+#define __EDITINSTRUMENT_H__
+
+#include "ui_editinstrument.h"
+
+class MidiInstrument;
+class SysEx;
+class MidiController;
+struct Patch;
+
+//---------------------------------------------------------
+// EditInstrument
+//---------------------------------------------------------
+
+class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase {
+ Q_OBJECT
+
+ bool fileSave(MidiInstrument*, const QString& name);
+ void closeEvent(QCloseEvent*);
+ bool checkDirty(MidiInstrument*);
+ void updateInstrument(MidiInstrument*);
+ void updateSysex(MidiInstrument*, SysEx*);
+ void updateController(MidiInstrument*, MidiController*);
+ void updatePatch(MidiInstrument* instrument, Patch* p);
+
+ private slots:
+ virtual void fileNew();
+ virtual void fileSave();
+ virtual void fileSaveAs();
+ void instrumentChanged(QListWidgetItem*, QListWidgetItem*);
+ void patchChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void controllerChanged(QListWidgetItem*, QListWidgetItem*);
+ void sysexChanged(QListWidgetItem*, QListWidgetItem*);
+ void instrumentNameChanged(const QString&);
+ void deletePatchClicked();
+ void newPatchClicked();
+ void newGroupClicked();
+ void newCategoryClicked();
+ void deleteControllerClicked();
+ void newControllerClicked();
+ void deleteSysexClicked();
+ void newSysexClicked();
+ void ctrlTypeChanged(int);
+
+ public:
+ EditInstrument(QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/instruments/editinstrument.ui b/muse_qt4_evolution/muse/instruments/editinstrument.ui
new file mode 100644
index 00000000..f58d9d28
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/editinstrument.ui
@@ -0,0 +1,998 @@
+<ui version="4.0" >
+ <class>EditInstrumentBase</class>
+ <widget class="QMainWindow" name="EditInstrumentBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>821</width>
+ <height>551</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Instrument Editor</string>
+ </property>
+ <widget class="QWidget" name="widget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter_3" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QListWidget" name="instrumentList" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="resizeMode" >
+ <enum>QListView::Adjust</enum>
+ </property>
+ <property name="layoutMode" >
+ <enum>QListView::Batched</enum>
+ </property>
+ </widget>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Instrument Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="instrumentName" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTabWidget" name="tabWidget3" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Patches</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTreeWidget" name="patchView" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Patch/Group</string>
+ </property>
+ </column>
+ </widget>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QLineEdit" name="patchNameEdit" />
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabelPatchName" >
+ <property name="text" >
+ <string>Patch Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="textLabel4_3" >
+ <property name="text" >
+ <string>Program:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="deletePatch" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>&amp;Delete</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="newPatch" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>&amp;New Patch</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+N</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="newGroup" >
+ <property name="text" >
+ <string>New Group</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>240</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="newCategory" >
+ <property name="text" >
+ <string>New Category</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="3" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>280</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="4" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>280</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>280</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="spinBoxLBank" >
+ <property name="specialValueText" >
+ <string>d.c.</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>-1</number>
+ </property>
+ <property name="value" >
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="textLabel2_2" >
+ <property name="text" >
+ <string>High Bank:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="textLabel3_2" >
+ <property name="text" >
+ <string>Low Bank:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>90</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="spinBoxHBank" >
+ <property name="specialValueText" >
+ <string>d.c.</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>-1</number>
+ </property>
+ <property name="value" >
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" >
+ <widget class="QSpinBox" name="spinBoxProgram" />
+ </item>
+ <item row="5" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="checkBoxDrum" >
+ <property name="text" >
+ <string>Drum</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxGM" >
+ <property name="text" >
+ <string>GM</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxGS" >
+ <property name="text" >
+ <string>GS</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxXG" >
+ <property name="text" >
+ <string>XG</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="category" >
+ <property name="editable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_6" >
+ <property name="text" >
+ <string>Category:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Controller</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Controller List:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="listController" >
+ <property name="whatsThis" >
+ <string>This is a list of commonly used midi controllers.
+Note that in MusE pitch and program changes are
+handled like normal controllers.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBox1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Properties</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1_3" >
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLineEdit" name="ctrlName" />
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Comment</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QTextEdit" name="ctrlComment" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="TextLabel2_4" >
+ <property name="text" >
+ <string>Type</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="ctrlType" >
+ <item>
+ <property name="text" >
+ <string>Controller-7Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Controller-14Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>RPN-7Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>NRPN-7Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>RPN-14Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>NRPN-14Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Program</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel3_2" >
+ <property name="text" >
+ <string>H-Ctrl</string>
+ </property>
+ <property name="indent" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxHCtrlNo" >
+ <property name="toolTip" >
+ <string>Midi Controller Number High Byte</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2_3_2" >
+ <property name="text" >
+ <string>L-Ctrl</string>
+ </property>
+ <property name="indent" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxLCtrlNo" >
+ <property name="toolTip" >
+ <string>Midi Controller Number Low Byte</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="textLabel4_2" >
+ <property name="text" >
+ <string>Range</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel1_2_2" >
+ <property name="text" >
+ <string>Min</string>
+ </property>
+ <property name="indent" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxMin" >
+ <property name="maximum" >
+ <number>16384</number>
+ </property>
+ <property name="minimum" >
+ <number>-16385</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2_2_2" >
+ <property name="text" >
+ <string>Max</string>
+ </property>
+ <property name="indent" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxMax" >
+ <property name="maximum" >
+ <number>8388607</number>
+ </property>
+ <property name="minimum" >
+ <number>-16385</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel1_3" >
+ <property name="text" >
+ <string>Default</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxDefault" >
+ <property name="specialValueText" >
+ <string>??</string>
+ </property>
+ <property name="minimum" >
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="4" column="0" colspan="3" >
+ <widget class="QCheckBox" name="moveWithPart" >
+ <property name="text" >
+ <string>Move Controller Values with Part</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="deleteController" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="newController" >
+ <property name="text" >
+ <string>New Controller</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="TabPage" >
+ <attribute name="title" >
+ <string>SysEx</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter_4" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>SYSEX-List:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="sysexList" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="resizeMode" >
+ <enum>QListView::Adjust</enum>
+ </property>
+ <property name="uniformItemSizes" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="layoutWidget" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Properties</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="sysexName" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QTextEdit" name="sysexComment" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="textLabel1_2" >
+ <property name="text" >
+ <string>Data:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QTextEdit" name="sysexData" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="deleteSysex" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="newSysex" >
+ <property name="text" >
+ <string>New Sysex</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="MenuBar" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>821</width>
+ <height>32</height>
+ </rect>
+ </property>
+ <property name="defaultUp" >
+ <bool>false</bool>
+ </property>
+ <widget class="QMenu" name="fileMenu" >
+ <property name="geometry" >
+ <rect>
+ <x>434</x>
+ <y>167</y>
+ <width>146</width>
+ <height>168</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>&amp;File</string>
+ </property>
+ <addaction name="fileNewAction" />
+ <addaction name="fileSaveAction" />
+ <addaction name="fileSaveAsAction" />
+ <addaction name="separator" />
+ <addaction name="fileExitAction" />
+ </widget>
+ <addaction name="fileMenu" />
+ </widget>
+ <widget class="QToolBar" name="toolBar" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <attribute name="toolBarArea" >
+ <number>4</number>
+ </attribute>
+ <addaction name="fileExitAction" />
+ <addaction name="fileNewAction" />
+ <addaction name="fileSaveAction" />
+ </widget>
+ <action name="fileNewAction" >
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/filenew.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;New</string>
+ </property>
+ <property name="iconText" >
+ <string>New</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+N</string>
+ </property>
+ </action>
+ <action name="fileOpenAction" >
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/fileopen.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;Open...</string>
+ </property>
+ <property name="iconText" >
+ <string>Open</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="fileSaveAction" >
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/filesave.png</iconset>
+ </property>
+ <property name="text" >
+ <string>&amp;Save</string>
+ </property>
+ <property name="iconText" >
+ <string>Save</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+S</string>
+ </property>
+ </action>
+ <action name="fileSaveAsAction" >
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/fileopen.png</iconset>
+ </property>
+ <property name="text" >
+ <string>Save &amp;As...</string>
+ </property>
+ <property name="iconText" >
+ <string>Save As</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ </action>
+ <action name="fileExitAction" >
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/off.svg</iconset>
+ </property>
+ <property name="text" >
+ <string>E&amp;xit</string>
+ </property>
+ <property name="iconText" >
+ <string>Exit</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources>
+ <include location="../muse.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/instruments/midictrledit.cpp b/muse_qt4_evolution/muse/instruments/midictrledit.cpp
new file mode 100644
index 00000000..b2f33e30
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/midictrledit.cpp
@@ -0,0 +1,418 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "app.h"
+#include "driver/mididev.h"
+#include "midictrl.h"
+#include "midictrledit.h"
+#include "xml.h"
+#include "filedialog.h"
+#include "globals.h"
+
+MidiControllerEditDialog* midiControllerEditDialog;
+
+static MidiController predefinedMidiController[] = {
+ MidiController("Pitch", 0x40000, -10000, +10000),
+ MidiController("Program", 0x40001, 0, 127),
+ MidiController("BankSel", 0x10000, 0, 16383)
+ };
+
+enum {
+ COL_NAME = 0, COL_TYPE,
+ COL_HNUM, COL_LNUM, COL_MIN, COL_MAX
+ };
+
+//---------------------------------------------------------
+// addControllerToView
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::addControllerToView(MidiController* mctrl)
+ {
+ QString hnum;
+ hnum.setNum(mctrl->num());
+ QString lnum("---");
+ QString min;
+ min.setNum(mctrl->minVal());
+ QString max;
+ max.setNum(mctrl->maxVal());
+ new Q3ListViewItem(viewController,
+ mctrl->name(),
+ int2ctrlType(mctrl->type()),
+ hnum, lnum, min, max
+ );
+ }
+
+//---------------------------------------------------------
+// MidiControllerEditDialog
+//---------------------------------------------------------
+
+MidiControllerEditDialog::MidiControllerEditDialog(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
+ : MidiControllerEditDialogBase(parent, name, modal, fl)
+ {
+ viewController->setColumnAlignment(COL_HNUM, AlignCenter);
+ viewController->setColumnAlignment(COL_LNUM, AlignCenter);
+ viewController->setColumnAlignment(COL_MIN, AlignCenter);
+ viewController->setColumnAlignment(COL_MAX, AlignCenter);
+ viewController->setColumnWidthMode(COL_NAME, Q3ListView::Maximum);
+
+ // populate list of predefined controller
+ int size = sizeof(predefinedMidiController) / sizeof(*predefinedMidiController);
+ for (int i = 0; i < size; ++i)
+ listController->insertItem(predefinedMidiController[i].name());
+ listController->setSelected(0, true);
+
+ // populate ports pulldown
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ QString name;
+ name.sprintf("%d(%s)", port->portno()+1,
+ dev ? dev->name().latin1() : "none");
+ midiPortsList->insertItem(name, i);
+ }
+
+ reject(); // populate list
+ viewController->setCurrentItem(viewController->firstChild());
+
+ connect(buttonNew, SIGNAL(clicked()), SLOT(ctrlAdd()));
+ connect(buttonDelete, SIGNAL(clicked()), SLOT(ctrlDelete()));
+ connect(entryName, SIGNAL(textChanged(const QString&)), SLOT(nameChanged(const QString&)));
+ connect(comboType, SIGNAL(activated(const QString&)), SLOT(typeChanged(const QString&)));
+ connect(spinboxHCtrlNo, SIGNAL(valueChanged(int)), SLOT(valueHChanged(int)));
+ connect(spinboxLCtrlNo, SIGNAL(valueChanged(int)), SLOT(valueLChanged(int)));
+ connect(spinboxMin, SIGNAL(valueChanged(int)), SLOT(minChanged(int)));
+ connect(spinboxMax, SIGNAL(valueChanged(int)), SLOT(maxChanged(int)));
+ connect(viewController, SIGNAL(selectionChanged()), SLOT(controllerChanged()));
+
+ controllerChanged(viewController->currentItem());
+ }
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::reject()
+ {
+ viewController->clear();
+ for (iMidiController i = midiControllerList.begin();
+ i != midiControllerList.end(); ++i) {
+ addControllerToView(&*i);
+ }
+ MidiControllerEditDialogBase::reject();
+ }
+
+//---------------------------------------------------------
+// ctrlAdd
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::ctrlAdd()
+ {
+ Q3ListBoxItem* item = listController->selectedItem();
+ if (item == 0)
+ return;
+ QString name = item->text();
+ int size = sizeof(predefinedMidiController) / sizeof(*predefinedMidiController);
+ for (int i = 0; i < size; ++i) {
+ MidiController* c = &predefinedMidiController[i];
+ if (c->name() != name)
+ continue;
+ MidiController::ControllerType t = c->type();
+ QString type = int2ctrlType(t);
+ QString min, max;
+ min.setNum(c->minVal());
+ max.setNum(c->maxVal());
+
+ QString hno, lno;
+ int h = (c->num() >> 14) & 0x7f;
+ int l = c->num() & 0x7f;
+
+ switch(t) {
+ case MidiController::Controller7:
+ hno = "---";
+ lno.setNum(l);
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller14:
+ hno.setNum(h);
+ lno.setNum(l);
+ break;
+ case MidiController::Pitch:
+ case MidiController::Program:
+ hno = "---";
+ lno = "---";
+ default:
+ break;
+ }
+
+ Q3ListViewItem* item = new Q3ListViewItem(viewController,
+ name, type, hno, lno, min, max);
+
+ viewController->setCurrentItem(item);
+ controllerChanged(item);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// ctrlDelete
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::ctrlDelete()
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ delete item;
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::accept()
+ {
+ midiControllerList.clear();
+
+ Q3ListViewItem* item = viewController->firstChild();
+ int hval = item->text(COL_HNUM).toInt();
+ int lval = item->text(COL_LNUM).toInt();
+
+ while (item) {
+ MidiController c;
+ c.setName(item->text(COL_NAME));
+ MidiController::ControllerType type = ctrlType2Int(item->text(COL_TYPE));
+
+ switch(type) {
+ case MidiController::Controller7:
+ c.setNum(hval);
+ break;
+ case MidiController::Controller14:
+ c.setNum((hval << 8 | lval) | 0x10000);
+ break;
+ case MidiController::RPN:
+ c.setNum((hval << 8 | lval) | 0x20000);
+ break;
+ case MidiController::NRPN:
+ c.setNum((hval << 8 | lval) | 0x30000);
+ break;
+ case MidiController::Pitch:
+ c.setNum(CTRL_PITCH);
+ break;
+ default:
+ break;
+ }
+ c.setMinVal(item->text(COL_MIN).toInt());
+ c.setMaxVal(item->text(COL_MAX).toInt());
+ midiControllerList.push_back(c);
+ item = item->nextSibling();
+ }
+ MidiControllerEditDialogBase::accept();
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::nameChanged(const QString& s)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ item->setText(COL_NAME, s);
+ }
+
+//---------------------------------------------------------
+// typeChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::typeChanged(const QString& s)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ item->setText(COL_TYPE, s);
+ item->setText(COL_MIN, QString("0"));
+ switch(ctrlType2Int(s)) {
+ case 2: // RPN
+ case 3: // NRPN
+ case MidiController::Controller14:
+ item->setText(COL_MAX, QString("16383"));
+ break;
+ case MidiController::Controller7:
+ case MidiController::Program:
+ item->setText(COL_MAX, QString("127"));
+ break;
+ case MidiController::Pitch:
+ item->setText(COL_MIN, QString("-5000"));
+ item->setText(COL_MAX, QString("+5000"));
+ break;
+ default:
+ break;
+ }
+ controllerChanged(item);
+ }
+
+//---------------------------------------------------------
+// valueHChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::valueHChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ item->setText(COL_HNUM, s);
+ }
+
+//---------------------------------------------------------
+// valueLChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::valueLChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ item->setText(COL_LNUM, s);
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::controllerChanged()
+ {
+ Q3ListViewItem* item = viewController->selectedItem();
+ controllerChanged(item);
+ }
+
+void MidiControllerEditDialog::controllerChanged(Q3ListViewItem* item)
+ {
+ if (item == 0) {
+ entryName->setEnabled(false);
+ comboType->setEnabled(false);
+ spinboxHCtrlNo->setEnabled(false);
+ spinboxLCtrlNo->setEnabled(false);
+ spinboxMin->setEnabled(false);
+ spinboxMax->setEnabled(false);
+ return;
+ }
+
+ entryName->blockSignals(true);
+ comboType->blockSignals(true);
+ spinboxHCtrlNo->blockSignals(true);
+ spinboxLCtrlNo->blockSignals(true);
+ spinboxMin->blockSignals(true);
+ spinboxMax->blockSignals(true);
+
+ entryName->setEnabled(true);
+ entryName->setText(item->text(COL_NAME));
+ comboType->setCurrentItem(int(ctrlType2Int(item->text(COL_TYPE))));
+ switch (ctrlType2Int(item->text(COL_TYPE))) {
+ case MidiController::Controller7:
+ comboType->setEnabled(true);
+ spinboxHCtrlNo->setEnabled(false);
+ spinboxLCtrlNo->setEnabled(true);
+ spinboxMin->setEnabled(true);
+ spinboxMax->setEnabled(true);
+
+ spinboxHCtrlNo->setValue(item->text(COL_HNUM).toInt());
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ item->setText(COL_LNUM, QString("---"));
+ break;
+
+ case MidiController::Controller14:
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ comboType->setEnabled(true);
+ spinboxHCtrlNo->setEnabled(true);
+ spinboxLCtrlNo->setEnabled(true);
+ spinboxMin->setEnabled(true);
+ spinboxMax->setEnabled(true);
+
+ spinboxHCtrlNo->setValue(item->text(COL_HNUM).toInt());
+ spinboxLCtrlNo->setValue(item->text(COL_LNUM).toInt());
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ break;
+
+ case MidiController::Pitch:
+ case MidiController::Program:
+ comboType->setEnabled(true);
+ spinboxHCtrlNo->setEnabled(false);
+ spinboxLCtrlNo->setEnabled(false);
+ spinboxMin->setEnabled(true);
+ spinboxMax->setEnabled(true);
+ break;
+ default:
+ break;
+ }
+ entryName->blockSignals(false);
+ comboType->blockSignals(false);
+ spinboxHCtrlNo->blockSignals(false);
+ spinboxLCtrlNo->blockSignals(false);
+ spinboxMin->blockSignals(false);
+ spinboxMax->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// minChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::minChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ item->setText(COL_MIN, s);
+ }
+
+//---------------------------------------------------------
+// maxChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::maxChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ item->setText(COL_MAX, s);
+ }
+
+//---------------------------------------------------------
+// configMidiController
+//---------------------------------------------------------
+
+void configMidiController()
+ {
+ if (midiControllerEditDialog == 0)
+ midiControllerEditDialog = new MidiControllerEditDialog();
+ midiControllerEditDialog->show();
+ }
diff --git a/muse_qt4_evolution/muse/instruments/midictrledit.h b/muse_qt4_evolution/muse/instruments/midictrledit.h
new file mode 100644
index 00000000..321f14b7
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/midictrledit.h
@@ -0,0 +1,58 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDICTRLEDIT_H__
+#define __MIDICTRLEDIT_H__
+
+#include "ccontrolbase.h"
+#include "midictrl.h"
+
+//---------------------------------------------------------
+// MidiControllerEditDialog
+//---------------------------------------------------------
+
+class MidiControllerEditDialog : public MidiControllerEditDialogBase {
+ Q_OBJECT
+
+ void addControllerToView(MidiController* mctrl);
+ void mergeReplace(bool replace);
+
+ private slots:
+ void ctrlAdd();
+ void ctrlDelete();
+ virtual void accept();
+ virtual void reject();
+ void nameChanged(const QString&);
+ void typeChanged(const QString&);
+ void valueHChanged(int);
+ void valueLChanged(int);
+ void controllerChanged(Q3ListViewItem*);
+ void controllerChanged();
+ void minChanged(int);
+ void maxChanged(int);
+
+ public:
+ MidiControllerEditDialog(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WFlags fl = 0);
+ };
+
+extern MidiControllerEditDialog* midiControllerEditDialog;
+extern void configMidiController();
+#endif
+
diff --git a/muse_qt4_evolution/muse/instruments/minstrument.cpp b/muse_qt4_evolution/muse/instruments/minstrument.cpp
new file mode 100644
index 00000000..a189c63d
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/minstrument.cpp
@@ -0,0 +1,631 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "minstrument.h"
+#include "midioutport.h"
+#include "globals.h"
+#include "event.h"
+#include "midievent.h"
+#include "midictrl.h"
+#include "gconfig.h"
+#include "midiedit/drummap.h"
+
+MidiInstrumentList midiInstruments;
+MidiInstrument* genericMidiInstrument;
+
+//---------------------------------------------------------
+// string2sysex
+//---------------------------------------------------------
+
+int string2sysex(const QString& s, unsigned char** data)
+ {
+ const char* src = s.toLatin1().data();
+ char buffer[2048];
+ char* dst = buffer;
+
+ if(src) {
+ while (*src) {
+ while (*src == ' ' || *src == '\n') {
+ ++src;
+ }
+ char* ep;
+ long val = strtol(src, &ep, 16);
+ if (ep == src) {
+ QMessageBox::information(0,
+ QString("MusE"),
+ QWidget::tr("Cannot convert sysex string"));
+ return 0;
+ }
+ src = ep;
+ *dst++ = val;
+ if (dst - buffer >= 2048) {
+ QMessageBox::information(0,
+ QString("MusE"),
+ QWidget::tr("Hex String too long (2048 bytes limit)"));
+ return 0;
+ }
+ }
+ }
+ int len = dst - buffer;
+ unsigned char* b = new unsigned char[len+1];
+ memcpy(b, buffer, len);
+ b[len] = 0;
+ *data = b;
+ return len;
+ }
+
+//---------------------------------------------------------
+// sysex2string
+//---------------------------------------------------------
+
+QString sysex2string(int len, unsigned char* data)
+ {
+ QString d;
+ QString s;
+ for (int i = 0; i < len; ++i) {
+ if ((i > 0) && ((i % 8)==0)) {
+ d += "\n";
+ }
+ else if (i)
+ d += " ";
+ d += s.sprintf("%02x", data[i]);
+ }
+ return d;
+ }
+
+//---------------------------------------------------------
+// Patch
+//---------------------------------------------------------
+
+Patch::Patch()
+ {
+ drumMap = 0;
+ categorie = -1;
+ }
+
+Patch::~Patch()
+ {
+ if (drumMap)
+ delete drumMap;
+ }
+
+//---------------------------------------------------------
+// loadIDF
+//---------------------------------------------------------
+
+static void loadIDF(QFileInfo* fi)
+ {
+ QFile qf(fi->filePath());
+ if (!qf.open(QIODevice::ReadOnly)) {
+ printf("cannot open file %s\n", fi->fileName().toLatin1().data());
+ return;
+ }
+ if (debugMsg)
+ printf(" load instrument definition <%s>\n", fi->filePath().toLocal8Bit().data());
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(&qf, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + " at line: " + ln + " col: " + col;
+ printf("error reading file <%s>:\n %s\n",
+ fi->filePath().toLatin1().data(), error.toLatin1().data());
+ return;
+ }
+ QDomNode node = doc.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ QString version = e.attribute(QString("version"));
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e = n.toElement();
+ if (e.tagName() == "MidiInstrument") {
+ MidiInstrument* i = new MidiInstrument();
+ i->read(n);
+ i->setFilePath(fi->filePath());
+ bool replaced = false;
+ for (int idx = 0; idx < midiInstruments.size(); ++idx) {
+ if (midiInstruments[idx]->iname() == i->iname()) {
+ midiInstruments.replace(idx, i);
+ replaced = true;
+ if (debugMsg)
+ printf("Midi Instrument Definition <%s> overwritten\n",
+ i->iname().toLocal8Bit().data());
+ break;
+ }
+ }
+ if (!replaced)
+ midiInstruments += i;
+ }
+ }
+ }
+ else
+ printf("MusE:laodIDF: %s not supported\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ qf.close();
+ }
+
+//---------------------------------------------------------
+// initMidiInstruments
+//---------------------------------------------------------
+
+void initMidiInstruments()
+ {
+ genericMidiInstrument = new MidiInstrument(QWidget::tr("generic midi"));
+
+ midiInstruments.push_back(genericMidiInstrument);
+ QString museGlobalInstruments(museGlobalShare
+ + QString("/instruments"));
+ if (debugMsg)
+ printf("load instrument definitions from <%s>\n", museGlobalInstruments.toLatin1().data());
+ QDir instrumentsDir(museGlobalInstruments, QString("*.idf"),
+ QDir::SortFlags(QDir::Name | QDir::IgnoreCase), QDir::Files);
+ if (instrumentsDir.exists()) {
+ QFileInfoList list = instrumentsDir.entryInfoList();
+ int n = list.size();
+ for (int i = 0; i < n; ++i) {
+ QFileInfo fi = list.at(i);
+ loadIDF(&fi);
+ }
+ }
+ QString path2 = QDir::homePath() + "/" + config.instrumentPath;
+ if (debugMsg)
+ printf("load instrument definitions from <%s>\n", path2.toLatin1().data());
+ QDir instrumentsDir2(path2, QString("*.idf"),
+ QDir::SortFlags(QDir::Name | QDir::IgnoreCase), QDir::Files);
+ if (instrumentsDir2.exists()) {
+ QFileInfoList list = instrumentsDir2.entryInfoList();
+ int n = list.size();
+ for (int i = 0; i < n; ++i) {
+ QFileInfo fi = list.at(i);
+ loadIDF(&fi);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// registerMidiInstrument
+//---------------------------------------------------------
+
+MidiInstrument* registerMidiInstrument(const QString& name)
+ {
+ for (iMidiInstrument i = midiInstruments.begin();
+ i != midiInstruments.end(); ++i) {
+ if ((*i)->iname() == name)
+ return *i;
+ }
+ return genericMidiInstrument;
+ }
+
+//---------------------------------------------------------
+// removeMidiInstrument
+//---------------------------------------------------------
+
+void removeMidiInstrument(const QString& name)
+ {
+ for (iMidiInstrument i = midiInstruments.begin();
+ i != midiInstruments.end(); ++i) {
+ if ((*i)->iname() == name) {
+ midiInstruments.erase(i);
+ return;
+ }
+ }
+ }
+
+void removeMidiInstrument(const MidiInstrument* instr)
+ {
+ for (iMidiInstrument i = midiInstruments.begin();
+ i != midiInstruments.end(); ++i) {
+ if (*i == instr) {
+ midiInstruments.erase(i);
+ return;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+void MidiInstrument::init()
+ {
+ _initScript = 0;
+ _midiInit = new EventList();
+ _midiReset = new EventList();
+ _midiState = new EventList();
+ _controller = new MidiControllerList;
+
+ // add some default controller to controller list
+ // this controllers are always available for all instruments
+ //
+ MidiController* prog = new MidiController("Program", CTRL_PROGRAM, 0, 0x7fffff, 0);
+ _controller->push_back(prog);
+ _dirty = false;
+ _readonly = false;
+ }
+
+MidiInstrument::MidiInstrument()
+ {
+ init();
+ }
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+MidiInstrument::MidiInstrument(const QString& txt)
+ {
+ _name = txt;
+ init();
+ }
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+MidiInstrument::~MidiInstrument()
+ {
+ delete _midiInit;
+ delete _midiReset;
+ delete _midiState;
+ delete _controller;
+ if (_initScript)
+ delete _initScript;
+ }
+
+//---------------------------------------------------------
+// readPatchGroup
+//---------------------------------------------------------
+
+void PatchGroup::read(QDomNode node, MidiInstrument* instrument)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+
+ if (tag == "Patch") {
+ Patch* patch = new Patch;
+ patch->read(node, false, instrument);
+ patches.push_back(patch);
+ }
+ else if (tag == "drummap") {
+ Patch* patch = new Patch;
+ patch->read(node, true, instrument);
+ patches.push_back(patch);
+ }
+ else if (!tag.isEmpty())
+ printf("MusE:PatchGroup(): unknown tag %s in group %s\n",
+ e.tagName().toLatin1().data(), name.toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Patch::read(QDomNode node, bool dr, MidiInstrument* instrument)
+ {
+ QDomElement e = node.toElement();
+ name = e.attribute("name");
+ typ = e.attribute("mode", "-1").toInt();
+ hbank = e.attribute("hbank", "-1").toInt();
+ lbank = e.attribute("lbank", "-1").toInt();
+ prog = e.attribute("prog", "0").toInt();
+ QString cat = e.attribute("cat");
+ categorie = instrument->categories().indexOf(cat);
+ drumMap = 0;
+ if (!dr)
+ return;
+ drumMap = new DrumMap(name);
+ int idx = 0;
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "entry") {
+ DrumMapEntry* de = drumMap->entry(idx);
+ de->read(node);
+ ++idx;
+ }
+ else if (!tag.isEmpty()) {
+ printf("Patch: read drummap: unknown tag %s\n", tag.toLatin1().data());
+ }
+ }
+ drumMap->init();
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Patch::write(Xml& xml)
+ {
+ if (drumMap == 0) {
+ QString s = QString("Patch name=\"%1\"").arg(Xml::xmlString(name));
+ if (typ != -1)
+ s += QString(" mode=\"%d\"").arg(typ);
+ s += QString(" hbank=\"%1\" lbank=\"%2\" prog=\"%3\"").arg(hbank).arg(lbank).arg(prog);
+ xml.tagE(s);
+ return;
+ }
+ QString s = QString("drummap name=\"%1\"").arg(Xml::xmlString(name));
+ s += QString(" hbank=\"%1\" lbank=\"%2\" prog=\"%3\"").arg(hbank).arg(lbank).arg(prog);
+ xml.stag(s);
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ DrumMapEntry* dm = drumMap->entry(i);
+ dm->write(xml);
+ }
+ xml.etag("drummap");
+ }
+
+//---------------------------------------------------------
+// readMidiState
+//---------------------------------------------------------
+
+void MidiInstrument::readMidiState(QDomNode node)
+ {
+ _midiState->read(node, true);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MidiInstrument::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ _name = e.attribute("name");
+
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "Patch") {
+ Patch* patch = new Patch;
+ patch->read(node, false, this);
+ if (pg.empty()) {
+ PatchGroup p;
+ p.patches.push_back(patch);
+ pg.push_back(p);
+ }
+ else
+ pg[0].patches.push_back(patch);
+ }
+ else if (tag == "Category") {
+ QString name = e.attribute(QString("name"));
+ _categories.append(name);
+ }
+ else if (tag == "drummap") {
+ Patch* patch = new Patch;
+ patch->read(node, true, this);
+ if (pg.empty()) {
+ PatchGroup p;
+ p.patches.push_back(patch);
+ pg.push_back(p);
+ }
+ else
+ pg[0].patches.push_back(patch);
+ }
+ else if (tag == "PatchGroup") {
+ PatchGroup p;
+ p.name = e.attribute("name");
+ p.read(node.firstChild(), this);
+ pg.push_back(p);
+ }
+ else if (tag == "Controller") {
+ MidiController* mc = new MidiController();
+ mc->read(node);
+ //
+ // HACK: make predefined "Program" controller overloadable
+ //
+ if (mc->name() == "Program") {
+ for (iMidiController i = _controller->begin(); i != _controller->end(); ++i) {
+ if ((*i)->name() == mc->name()) {
+ _controller->erase(i);
+ break;
+ }
+ }
+ }
+ _controller->push_back(mc);
+ }
+ else if (tag == "Init")
+ _midiInit->read(node.firstChild(), true);
+ else if (tag == "SysEx") {
+ SysEx* se = new SysEx;
+ se->name = e.attribute("name");
+ for (QDomNode nnode = node.firstChild(); !nnode.isNull(); nnode = nnode.nextSibling()) {
+ e = nnode.toElement();
+ QString tag(e.tagName());
+ if (tag == "comment")
+ se->comment = e.text();
+ else if (tag == "data") {
+ se->dataLen = string2sysex(e.text(), &(se->data));
+ }
+ else
+ printf("MidiInstrument::read():SysEx: unknown tag %s\n", tag.toLatin1().data());
+ }
+ _sysex.append(se);
+ }
+ else if (!tag.isEmpty()) {
+ printf("MidiInstrument::read(): unknown tag %s\n", tag.toLatin1().data());
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+QString MidiInstrument::getPatchName(int /*channel*/, int prog)
+ {
+ int hbank = (prog >> 16) & 0xff;
+ int lbank = (prog >> 8) & 0xff;
+ prog &= 0xff;
+ if (prog == 0xff)
+ return "---";
+
+ int tmask = 1;
+ bool hb = hbank == 0xff;
+ bool lb = lbank == 0xff;
+
+ for (std::vector<PatchGroup>::iterator i = pg.begin(); i != pg.end(); ++i) {
+ PatchList& pl = i->patches;
+ for (PatchList::const_iterator ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if ((mp->typ & tmask)
+ && (prog == mp->prog)
+ && (hbank == mp->hbank || hb || mp->hbank == -1)
+ && (lbank == mp->lbank || lb || mp->lbank == -1))
+ return mp->name;
+ }
+ }
+ return QString("---");
+ }
+
+//---------------------------------------------------------
+// getDrumMap
+//---------------------------------------------------------
+
+DrumMap* MidiInstrument::getDrumMap(int prog)
+ {
+ int hbank = (prog >> 16) & 0xff;
+ int lbank = (prog >> 8) & 0xff;
+ prog &= 0xff;
+ if (prog == 0xff)
+ return 0;
+
+ int tmask = 1;
+ bool hb = hbank == 0xff;
+ bool lb = lbank == 0xff;
+
+ for (std::vector<PatchGroup>::iterator i = pg.begin(); i != pg.end(); ++i) {
+ PatchList& pl = i->patches;
+ for (PatchList::const_iterator ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if ((mp->typ & tmask)
+ && (prog == mp->prog)
+ && (hbank == mp->hbank || hb || mp->hbank == -1)
+ && (lbank == mp->lbank || lb || mp->lbank == -1)) {
+ return mp->drumMap;
+ }
+ }
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// populatePatchPopup
+//---------------------------------------------------------
+
+void MidiInstrument::populatePatchPopup(QMenu* menu, int)
+ {
+ menu->clear();
+ int mask = 7;
+
+ if (pg.size() > 1) {
+ for (std::vector<PatchGroup>::iterator i = pg.begin(); i != pg.end(); ++i) {
+ QMenu* pm = menu->addMenu(i->name);
+// pm->setFont(config.fonts[0]);
+ PatchList& pl = i->patches;
+ for (PatchList::const_iterator ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if (mp->typ & mask) {
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
+ QAction* a = pm->addAction(mp->name);
+ a->setData(id);
+ }
+ }
+ }
+ }
+ else if (pg.size() == 1 ){
+ // no groups
+ PatchList& pl = pg.front().patches;
+ for (PatchList::const_iterator ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if (mp->typ & mask) {
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
+ QAction* a = menu->addAction(mp->name);
+ a->setData(id);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getMidiController
+//---------------------------------------------------------
+
+MidiController* MidiInstrument::midiController(int num) const
+ {
+ for (iMidiController i = _controller->begin(); i != _controller->end(); ++i) {
+ int cn = (*i)->num();
+ if (cn == num)
+ return *i;
+ // wildcard?
+ if (((cn & 0xff) == 0xff) && ((cn & ~0xff) == (num & ~0xff)))
+ return *i;
+ }
+ for (iMidiController i = defaultMidiController.begin(); i != defaultMidiController.end(); ++i) {
+ int cn = (*i)->num();
+ if (cn == num)
+ return *i;
+ // wildcard?
+ if (((cn & 0xff) == 0xff) && ((cn & ~0xff) == (num & ~0xff)))
+ return *i;
+ }
+ QString name = midiCtrlName(num);
+ int min = 0;
+ int max = 127;
+ MidiController* c = new MidiController(name, num, min, max, 0);
+ defaultMidiController.push_back(c);
+ return c;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiInstrument::write(Xml& xml)
+ {
+ xml.header();
+ xml.stag("muse version=\"2.1\"");
+ xml.stag(QString("MidiInstrument name=\"%1\"").arg(Xml::xmlString(iname())));
+
+ foreach(const QString& s, _categories)
+ xml.tagE(QString("Category name=\"%1\"").arg(Xml::xmlString(s)));
+
+ std::vector<PatchGroup>* pg = groups();
+ for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ xml.stag(QString("PatchGroup name=\"%1\"").arg(Xml::xmlString(g->name)));
+ for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p)
+ (*p)->write(xml);
+ xml.etag("PatchGroup");
+ }
+ for (iMidiController ic = _controller->begin(); ic != _controller->end(); ++ic)
+ (*ic)->write(xml);
+ xml.etag("MidiInstrument");
+ xml.etag("muse");
+ }
+
diff --git a/muse_qt4_evolution/muse/instruments/minstrument.h b/muse_qt4_evolution/muse/instruments/minstrument.h
new file mode 100644
index 00000000..5bcf2616
--- /dev/null
+++ b/muse_qt4_evolution/muse/instruments/minstrument.h
@@ -0,0 +1,160 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MINSTRUMENT_H__
+#define __MINSTRUMENT_H__
+
+#include "globaldefs.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class MidiOutPort;
+class EventList;
+class MidiControllerList;
+class MidiController;
+class MidiEvent;
+class DrumMap;
+class MidiInstrument;
+
+//---------------------------------------------------------
+// Patch
+//---------------------------------------------------------
+
+struct Patch {
+ signed char typ; // 1 - GM 2 - GS 4 - XG
+ signed char hbank, lbank, prog;
+ QString name;
+ int categorie;
+ DrumMap* drumMap;
+
+ void read(QDomNode, bool, MidiInstrument*);
+ void write(Xml& xml);
+
+ Patch();
+ ~Patch();
+ };
+
+typedef std::list<Patch*> PatchList;
+typedef PatchList::iterator iPatch;
+typedef PatchList::const_iterator ciPatch;
+
+//---------------------------------------------------------
+// PatchGroup
+//---------------------------------------------------------
+
+struct PatchGroup {
+ QString name;
+ PatchList patches;
+ void read(QDomNode, MidiInstrument*);
+ };
+
+struct SysEx {
+ QString name;
+ QString comment;
+ int dataLen;
+ unsigned char* data;
+ };
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+class MidiInstrument {
+ std::vector<PatchGroup> pg;
+ MidiControllerList* _controller;
+ QList<SysEx*> _sysex;
+ bool _dirty;
+ bool _readonly;
+
+ void init();
+
+ protected:
+ QList<QString> _categories;
+ EventList* _midiInit;
+ EventList* _midiReset;
+ EventList* _midiState;
+ char* _initScript;
+ QString _name;
+ QString _filePath;
+
+ public:
+ MidiInstrument();
+ virtual ~MidiInstrument();
+ MidiInstrument(const QString& txt);
+ const QString& iname() const { return _name; }
+ void setIName(const QString& txt) { _name = txt; }
+ QString filePath() const { return _filePath; }
+ void setFilePath(const QString& s) { _filePath = s; }
+ bool dirty() const { return _dirty; }
+ void setDirty(bool v) { _dirty = v; }
+ bool readonly() const { return _readonly; }
+ void setReadonly(bool v) { _readonly = v; }
+
+ EventList* midiInit() const { return _midiInit; }
+ EventList* midiReset() const { return _midiReset; }
+ EventList* midiState() const { return _midiState; }
+ const char* initScript() const { return _initScript; }
+ MidiControllerList* controller() const { return _controller; }
+
+ void readMidiState(QDomNode);
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual bool hasGui() const { return false; }
+ virtual void writeToGui(const MidiEvent&) {}
+
+ virtual QString getPatchName(int,int);
+ virtual DrumMap* getDrumMap(int);
+
+ virtual void populatePatchPopup(QMenu*, int);
+ void read(QDomNode);
+ void write(Xml& xml);
+ const QList<SysEx*>& sysex() const { return _sysex; }
+ void removeSysex(SysEx* sysex) { _sysex.removeAll(sysex); }
+ void addSysex(SysEx* sysex) { _sysex.append(sysex); }
+
+ MidiController* midiController(int num) const;
+
+ std::vector<PatchGroup>* groups() { return &pg; }
+ const QList<QString>& categories() const { return _categories; }
+ void addCategory(const QString& s) { _categories.append(s); }
+ };
+
+//---------------------------------------------------------
+// MidiInstrumentList
+//---------------------------------------------------------
+
+class MidiInstrumentList : public QList<MidiInstrument*> {
+ };
+
+typedef MidiInstrumentList::iterator iMidiInstrument;
+
+extern MidiInstrumentList midiInstruments;
+
+extern MidiInstrument* genericMidiInstrument;
+extern void initMidiInstruments();
+extern MidiInstrument* registerMidiInstrument(const QString&);
+extern void removeMidiInstrument(const QString& name);
+extern void removeMidiInstrument(const MidiInstrument* instr);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/jack.cpp b/muse_qt4_evolution/muse/jack.cpp
new file mode 100644
index 00000000..bc372357
--- /dev/null
+++ b/muse_qt4_evolution/muse/jack.cpp
@@ -0,0 +1,886 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "config.h"
+#include "al/al.h"
+#include "al/tempo.h"
+#include "audio.h"
+#include "globals.h"
+#include "song.h"
+#include "jackaudio.h"
+#include "track.h"
+#include "midiinport.h"
+
+#ifdef VST_SUPPORT
+#include <fst.h>
+#endif
+
+JackAudio* jackAudio;
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool JackAudio::init()
+ {
+ return true;
+ }
+
+//---------------------------------------------------------
+// jack_thread_init
+//---------------------------------------------------------
+
+static void jack_thread_init (void* /*data*/)
+ {
+#ifdef VST_SUPPORT
+ if (loadVST)
+ fst_adopt_thread();
+#endif
+ }
+
+//---------------------------------------------------------
+// timebase_callback
+//---------------------------------------------------------
+
+static void timebase_callback(jack_transport_state_t /* state */,
+ jack_nframes_t /* nframes */,
+ jack_position_t* pos,
+ int /* new_pos */,
+ void*)
+ {
+ AL::Pos p(pos->frame, AL::FRAMES);
+ pos->valid = JackPositionBBT;
+ p.mbt(&pos->bar, &pos->beat, &pos->tick);
+ pos->bar++;
+ pos->beat++;
+ pos->bar_start_tick = Pos(pos->bar, 0, 0).tick();
+ //
+ // dummy:
+ //
+ pos->beats_per_bar = 4;
+ pos->beat_type = 4;
+ pos->ticks_per_beat = 384;
+ int tempo = AL::tempomap.tempo(p.tick());
+ pos->beats_per_minute = (60000000.0 / tempo) * AL::tempomap.globalTempo()/100.0;
+ }
+
+//---------------------------------------------------------
+// processAudio
+// JACK callback
+//---------------------------------------------------------
+
+int JackAudio::processAudio(jack_nframes_t frames, void*)
+ {
+ jackAudio->_frameCounter += frames;
+
+ int jackState = jackAudio->getTransportState();
+ segmentSize = frames;
+ if (audioState == AUDIO_RUNNING)
+ audio->process((unsigned long)frames, jackState);
+ else if (audioState == AUDIO_STOP) {
+ if (debugMsg)
+ puts("jack calling when audio is stopped!\n");
+ }
+ else if (audioState == AUDIO_START1)
+ audioState = AUDIO_START2;
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getTransportState
+//---------------------------------------------------------
+
+int JackAudio::getTransportState()
+ {
+ int jackState;
+ transportState = jack_transport_query(_client, &pos);
+ switch (jackAudio->transportState) {
+ case JackTransportStopped:
+ jackState = Audio::STOP;
+ break;
+ case JackTransportLooping:
+ case JackTransportRolling:
+ jackState = Audio::PLAY;
+ break;
+ case JackTransportStarting:
+ jackState = Audio::START_PLAY;
+ break;
+ default:
+ jackState = Audio::STOP;
+ break;
+ }
+ return jackState;
+ }
+
+//---------------------------------------------------------
+// processSync
+// return TRUE (non-zero) when ready to roll.
+//---------------------------------------------------------
+
+static int processSync(jack_transport_state_t state, jack_position_t* pos, void*)
+ {
+ int audioState = Audio::STOP;
+ switch (state) {
+ case JackTransportStopped:
+ audioState = Audio::STOP;
+ break;
+ case JackTransportLooping:
+ case JackTransportRolling:
+ audioState = Audio::PLAY;
+ break;
+ case JackTransportStarting:
+ audioState = Audio::START_PLAY;
+ break;
+ }
+ unsigned frame = pos->frame;
+ return audio->sync(audioState, frame);
+ }
+
+//---------------------------------------------------------
+// processShutdown
+//---------------------------------------------------------
+
+static void processShutdown(void*)
+ {
+ audio->shutdown();
+
+ for (int i = 0; i < 10; ++i) {
+ if (audioState == AUDIO_STOP)
+ break;
+ sleep(1);
+ }
+ if (audioState == AUDIO_RUNNING)
+ fprintf(stderr, "MusE: sequencer still running, something is very wrong.\n");
+ jackAudio->zeroClientPtr(); // jack disconnect client no longer valid
+ }
+
+//---------------------------------------------------------
+// jackError
+//---------------------------------------------------------
+
+static void jackError(const char* s)
+ {
+ fprintf(stderr, "JACK ERROR: %s\n", s);
+ }
+
+//---------------------------------------------------------
+// noJackError
+//---------------------------------------------------------
+
+static void noJackError(const char* /* s */)
+ {
+ }
+
+//---------------------------------------------------------
+// JackAudio
+//---------------------------------------------------------
+
+JackAudio::JackAudio(jack_client_t* cl, char* name)
+ : AudioDriver()
+ {
+ strcpy(jackRegisteredName, name);
+ _client = cl;
+ _frameCounter = 0;
+ }
+
+//---------------------------------------------------------
+// ~JackAudio
+//---------------------------------------------------------
+
+JackAudio::~JackAudio()
+ {
+ if (_client) {
+ if (jack_client_close(_client)) {
+ fprintf(stderr, "jack_client_close() failed: %s\n",
+ strerror(errno));
+ }
+ }
+ _client = 0;
+ }
+
+//---------------------------------------------------------
+// getJackName()
+//---------------------------------------------------------
+
+char* JackAudio::getJackName()
+ {
+ return jackRegisteredName;
+ }
+
+//---------------------------------------------------------
+// restart
+//---------------------------------------------------------
+
+bool JackAudio::restart()
+ {
+ printf("JackAudio::restart\n");
+ _client = jack_client_new(jackRegisteredName);
+ if (!_client)
+ return true;
+ registerClient();
+ return false;
+ }
+
+//---------------------------------------------------------
+// bufsize_callback
+//---------------------------------------------------------
+
+static int bufsize_callback(jack_nframes_t n, void*)
+ {
+ printf("JACK: buffersize changed %d\n", n);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// freewheel_callback
+//---------------------------------------------------------
+
+static void freewheel_callback(int starting, void*)
+ {
+ audio->setFreewheel(starting);
+ }
+
+//---------------------------------------------------------
+// srate_callback
+//---------------------------------------------------------
+
+static int srate_callback(jack_nframes_t n, void*)
+ {
+ if (debugMsg)
+ printf("JACK: sample rate changed: %d\n", n);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// registration_callback
+//---------------------------------------------------------
+
+static void registration_callback(jack_port_id_t, int, void*)
+ {
+ if (debugMsg)
+ printf("JACK: registration changed\n");
+ }
+
+//---------------------------------------------------------
+// graph_callback
+// this is called from jack when the connections
+// changed
+//---------------------------------------------------------
+
+static int graph_callback(void*)
+ {
+ // we cannot call JackAudio::graphChanged() from this
+ // context, so we send a message to the gui thread which in turn
+ // calls graphChanged()
+
+ audio->sendMsgToGui(MSG_GRAPH_CHANGED);
+ if (debugMsg)
+ printf("JACK: graph changed!\n");
+ return 0;
+ }
+
+//---------------------------------------------------------
+// JackAudio::graphChanged
+// this is called from song in gui context triggered
+// by graph_callback()
+//---------------------------------------------------------
+
+void JackAudio::graphChanged()
+ {
+ RouteList rr, ra;
+
+ InputList* il = song->inputs();
+ for (iAudioInput ii = il->begin(); ii != il->end(); ++ii) {
+ AudioInput* it = *ii;
+ int channels = it->channels();
+ RouteList* irl = it->inRoutes();
+
+ for (int channel = 0; channel < channels; ++channel) {
+ jack_port_t* port = it->jackPort(channel).jackPort();
+ if (port == 0)
+ continue;
+ const char** ports = jack_port_get_all_connections(_client, port);
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ foreach (const Route& r, *irl) {
+ if (r.dst.channel != channel)
+ continue;
+ const char* name = jack_port_name(r.src.port.jackPort());
+ bool found = false;
+ for (const char** pn = ports; pn && *pn; ++pn) {
+ if (strcmp(*pn, name) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ rr.append(r);
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports) {
+ for (const char** pn = ports; *pn; ++pn) {
+ bool found = false;
+ foreach(const Route& r, *irl) {
+ if (r.dst.channel != channel)
+ continue;
+ const char* name = jack_port_name(r.src.port.jackPort());
+ if (strcmp(*pn, name) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ Route a;
+ Port port(jack_port_by_name(_client, *pn));
+ a.src = RouteNode(port, -1, RouteNode::AUDIOPORT);
+ a.dst = RouteNode(it, channel);
+ ra.append(a);
+ }
+ }
+ free(ports);
+ }
+ }
+ }
+
+// printf(" input: remove %d add %d routes\n", rr.size(), ra.size());
+ foreach(Route r, rr)
+ audio->msgRemoveRoute1(r);
+ foreach(Route r, ra)
+ audio->msgAddRoute1(r);
+ rr.clear();
+ ra.clear();
+
+ OutputList* ol = song->outputs();
+ for (iAudioOutput ii = ol->begin(); ii != ol->end(); ++ii) {
+ AudioOutput* it = *ii;
+ int channels = it->channels();
+ for (int channel = 0; channel < channels; ++channel) {
+ jack_port_t* port = it->jackPort(channel).jackPort();
+ if (port == 0)
+ continue;
+ const char** ports = jack_port_get_all_connections(_client, port);
+ RouteList* rl = it->outRoutes();
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ foreach(const Route& r, *rl) {
+ if (r.src.channel != channel)
+ continue;
+ const char* name = jack_port_name(r.dst.port.jackPort());
+ bool found = false;
+ const char** pn = ports;
+ while (pn && *pn) {
+ if (strcmp(*pn, name) == 0) {
+ found = true;
+ break;
+ }
+ ++pn;
+ }
+ if (!found)
+ rr.append(r);
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports) {
+ const char** pn = ports;
+ while (*pn) {
+ bool found = false;
+ foreach (const Route& r, *rl) {
+ if (r.src.channel != channel)
+ continue;
+ const char* name = jack_port_name(r.dst.port.jackPort());
+ if (strcmp(*pn, name) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ Route a;
+ Port port(jack_port_by_name(_client, *pn));
+ a.src = RouteNode(it, channel, RouteNode::TRACK);
+ a.dst = RouteNode(port, -1, RouteNode::AUDIOPORT);
+ ra.append(a);
+ }
+ ++pn;
+ }
+ free(ports);
+ }
+ }
+ }
+// printf(" output: remove %d add %d routes\n", rr.size(), ra.size());
+ foreach(Route r, rr)
+ audio->msgRemoveRoute1(r);
+ foreach(Route r, ra)
+ audio->msgAddRoute1(r);
+ }
+
+//---------------------------------------------------------
+// register
+//---------------------------------------------------------
+
+void JackAudio::registerClient()
+ {
+ jack_set_process_callback(_client, processAudio, 0);
+ jack_set_sync_callback(_client, processSync, 0);
+ jack_on_shutdown(_client, processShutdown, 0);
+ jack_set_buffer_size_callback(_client, bufsize_callback, 0);
+ jack_set_sample_rate_callback(_client, srate_callback, 0);
+ jack_set_port_registration_callback(_client, registration_callback, 0);
+ jack_set_graph_order_callback(_client, graph_callback, 0);
+ jack_set_freewheel_callback (_client, freewheel_callback, 0);
+ jack_set_thread_init_callback(_client, (JackThreadInitCallback) jack_thread_init, 0);
+ jack_set_timebase_callback(_client, 0, timebase_callback, 0);
+ }
+
+//---------------------------------------------------------
+// registerInPort
+//---------------------------------------------------------
+
+Port JackAudio::registerInPort(const QString& name, bool midi)
+ {
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ Port p(jack_port_register(_client, name.toLatin1().data(), type, JackPortIsInput, 0));
+// printf("JACK: registerInPort<%s>: <%s> %p\n", type, name.toLatin1().data(), p.jackPort());
+ if (!p.jackPort())
+ p.setZero();
+ return p;
+ }
+
+//---------------------------------------------------------
+// registerOutPort
+//---------------------------------------------------------
+
+Port JackAudio::registerOutPort(const QString& name, bool midi)
+ {
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ Port p(jack_port_register(_client, name.toLatin1().data(), type, JackPortIsOutput, 0));
+// printf("JACK: registerOutPort<%s>: <%s> %p\n", type, name.toLatin1().data(), p.jackPort());
+ if (!p.jackPort())
+ p.setZero();
+ return p;
+ }
+
+//---------------------------------------------------------
+// exitJackAudio
+//---------------------------------------------------------
+
+void exitJackAudio()
+ {
+ if (jackAudio)
+ delete jackAudio;
+ }
+
+//---------------------------------------------------------
+// connect
+// return false on error
+//---------------------------------------------------------
+
+bool JackAudio::connect(Port src, Port dst)
+ {
+ if (src.isZero() || dst.isZero()) {
+ fprintf(stderr, "JackAudio::connect(1): unknown jack ports (%d-%d)\n",
+ src.isZero(), dst.isZero());
+ return false;
+ }
+ const char* sn = jack_port_name(src.jackPort());
+ const char* dn = jack_port_name(dst.jackPort());
+
+ if (debugMsg)
+ printf("jack connect <%s>%p - <%s>%p\n", sn, src.jackPort(), dn, dst.jackPort());
+
+ if (sn == 0 || dn == 0) {
+ fprintf(stderr, "JackAudio::connect(2): unknown jack ports\n");
+ return false;
+ }
+ int rv = jack_connect(_client, sn, dn);
+ if (rv) {
+ fprintf(stderr, "%d: jack connect <%s> - <%s> failed\n",
+ rv, sn, dn);
+ if (rv == EEXIST)
+ fprintf(stderr, " connection already made\n");
+ else {
+ int pf = jack_port_flags(src.jackPort());
+ if (!(pf & JackPortIsOutput))
+ fprintf(stderr, " src is not an output port\n");
+ pf = jack_port_flags(dst.jackPort());
+ if (!(pf & JackPortIsInput))
+ fprintf(stderr, " dst is not an input port\n");
+ }
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// disconnect
+//---------------------------------------------------------
+
+bool JackAudio::disconnect(Port src, Port dst)
+ {
+ const char* sn = jack_port_name(src.jackPort());
+ const char* dn = jack_port_name(dst.jackPort());
+
+ if (debugMsg)
+ printf("jack disconnect <%s>%p - <%s>%p\n", sn, src.jackPort(), dn, dst.jackPort());
+
+ if (sn == 0 || dn == 0) {
+ fprintf(stderr, "JackAudio::disconnect: unknown jack ports\n");
+ return false;
+ }
+ if (jack_disconnect(_client, sn, dn)) {
+ fprintf(stderr, "jack disconnect <%s> - <%s> failed\n",
+ sn, dn);
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void JackAudio::start(int)
+ {
+ if (jack_activate(_client)) {
+ fprintf (stderr, "JACK: cannot activate client\n");
+ exit(-1);
+ }
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void JackAudio::stop()
+ {
+ if (_client == 0)
+ return;
+ if (jack_deactivate(_client))
+ fprintf (stderr, "JACK: cannot deactivate client\n");
+ }
+
+//---------------------------------------------------------
+// outputPorts
+//---------------------------------------------------------
+
+QList<PortName> JackAudio::outputPorts(bool midi)
+ {
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, JackPortIsOutput);
+ QList<PortName> clientList;
+ for (const char** p = ports; p && *p; ++p) {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ char buffer[128];
+ strncpy(buffer, *p, 128);
+ if (strncmp(buffer, "MusE", 4) == 0)
+ continue;
+ PortName pn;
+ pn.name = QString(buffer);
+ pn.port = Port(port);
+ clientList.append(pn);
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// inputPorts
+//---------------------------------------------------------
+
+QList<PortName> JackAudio::inputPorts(bool midi)
+ {
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, JackPortIsInput);
+ QList<PortName> clientList;
+ for (const char** p = ports; p && *p; ++p) {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ char buffer[128];
+ strncpy(buffer, *p, 128);
+ if (strncmp(buffer, "MusE", 4) == 0)
+ continue;
+ PortName pn;
+ pn.name = QString(buffer);
+ pn.port = Port(port);
+ clientList.append(pn);
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// portName
+//---------------------------------------------------------
+
+QString JackAudio::portName(Port port)
+ {
+ const char* nameStrPtr = jack_port_name(port.jackPort());
+ QString s(nameStrPtr);
+ return s;
+ }
+
+//---------------------------------------------------------
+// unregisterPort
+//---------------------------------------------------------
+
+void JackAudio::unregisterPort(Port p)
+ {
+ if (_client) {
+// printf("JACK: unregister Port %p\n", p);
+ if (jack_port_unregister(_client, p.jackPort()))
+ fprintf(stderr, "jack unregister port %p failed\n", p.jackPort());
+ }
+ }
+
+//---------------------------------------------------------
+// setFreewheel
+//---------------------------------------------------------
+
+void JackAudio::setFreewheel(bool f)
+ {
+// printf("JACK: setFreewheel %d\n", f);
+ jack_set_freewheel(_client, f);
+ }
+
+//---------------------------------------------------------
+// startTransport
+//---------------------------------------------------------
+
+void JackAudio::startTransport()
+ {
+ jack_transport_start(_client);
+ }
+
+//---------------------------------------------------------
+// stopTransport
+//---------------------------------------------------------
+
+void JackAudio::stopTransport()
+ {
+ if (_client)
+ jack_transport_stop(_client);
+ }
+
+//---------------------------------------------------------
+// seekTransport
+//---------------------------------------------------------
+
+void JackAudio::seekTransport(unsigned frame)
+ {
+ jack_transport_locate(_client, frame);
+ }
+
+//---------------------------------------------------------
+// findPort
+//---------------------------------------------------------
+
+Port JackAudio::findPort(const QString& name)
+ {
+ if (_client == 0) {
+ printf("JackAudio(%p)::findPort(%s): _client==0\n", this, qPrintable(name));
+ return Port();
+ }
+ jack_port_t* port = jack_port_by_name(_client, name.toLatin1().data());
+ return (port == 0) ? Port() : Port(port);
+ }
+
+//---------------------------------------------------------
+// realtimePriority
+// return zero if not running realtime
+// can only be called if JACK client thread is already
+// running
+//---------------------------------------------------------
+
+int JackAudio::realtimePriority() const
+ {
+ pthread_t t = jack_client_thread_id(_client);
+ int policy;
+ struct sched_param param;
+ memset(&param, 0, sizeof(param));
+ int rv = pthread_getschedparam(t, &policy, &param);
+ if (rv) {
+ perror("MusE: get jack schedule parameter");
+ return 0;
+ }
+ if (policy != SCHED_FIFO) {
+ printf("JACK is not running realtime\n");
+ return 0;
+ }
+ return param.sched_priority;
+ }
+
+//---------------------------------------------------------
+// initJackAudio
+// return true if JACK not found
+//---------------------------------------------------------
+
+bool initJackAudio()
+ {
+ if (debugMsg) {
+ fprintf(stderr, "init Jack Audio\n");
+ jack_set_error_function(jackError);
+ }
+ else
+ jack_set_error_function(noJackError);
+
+ jack_client_t* client = 0;
+ jack_status_t status;
+ jack_options_t options = JackNullOption;
+ client = jack_client_open("MusE", options, &status);
+ if (!client) {
+ if (status & JackServerStarted)
+ printf("jack server started...\n");
+ if (status & JackServerFailed)
+ printf("cannot connect to jack server\n");
+ if (status & JackServerError)
+ printf("communication with jack server failed\n");
+ if (status & JackShmFailure)
+ printf("jack cannot access shared memory\n");
+ if (status & JackVersionError)
+ printf("jack server has wrong version\n");
+ printf("cannot create jack client\n");
+ return true;
+ }
+
+ if (debugMsg)
+ fprintf(stderr, "init Jack Audio: register device\n");
+
+ jack_set_error_function(jackError);
+ if (debugMsg)
+ fprintf(stderr, "init Jack Audio: register device\n");
+
+ jackAudio = new JackAudio(client, jack_get_client_name(client));
+ if (debugMsg)
+ fprintf(stderr, "init Jack Audio: register client\n");
+ jackAudio->registerClient();
+ AL::sampleRate = jack_get_sample_rate(client);
+ segmentSize = jack_get_buffer_size(client);
+ audioDriver = jackAudio;
+ return false;
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+void JackAudio::putEvent(Port port, const MidiEvent& e)
+ {
+ if (midiOutputTrace) {
+ printf("MidiOut<%s>: jackMidi: ", portName(port).toLatin1().data());
+ e.dump();
+ }
+ void* pb = jack_port_get_buffer(port.jackPort(), segmentSize);
+ int ft = e.time() - _frameCounter;
+ if (ft < 0)
+ ft = 0;
+ if (ft >= (int)segmentSize) {
+ printf("JackAudio::putEvent: time out of range %d(seg=%d)\n", ft, segmentSize);
+ if (ft > (int)segmentSize)
+ ft = segmentSize - 1;
+ }
+ switch(e.type()) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ case ME_POLYAFTER:
+ case ME_CONTROLLER:
+ case ME_PITCHBEND:
+ {
+ unsigned char* p = jack_midi_event_reserve(pb, ft, 3);
+ if (p == 0) {
+ fprintf(stderr, "JackMidi: buffer overflow, event lost\n");
+ return;
+ }
+ p[0] = e.type() | e.channel();
+ p[1] = e.dataA();
+ p[2] = e.dataB();
+ }
+ break;
+
+ case ME_PROGRAM:
+ case ME_AFTERTOUCH:
+ {
+ unsigned char* p = jack_midi_event_reserve(pb, ft, 2);
+ if (p == 0) {
+ fprintf(stderr, "JackMidi: buffer overflow, event lost\n");
+ return;
+ }
+ p[0] = e.type() | e.channel();
+ p[1] = e.dataA();
+ }
+ break;
+ case ME_SYSEX:
+ {
+ const unsigned char* data = e.data();
+ int len = e.len();
+ unsigned char* p = jack_midi_event_reserve(pb, ft, len+2);
+ if (p == 0) {
+ fprintf(stderr, "JackMidi: buffer overflow, event lost\n");
+ return;
+ }
+ p[0] = 0xf0;
+ p[len+1] = 0xf7;
+ memcpy(p+1, data, len);
+ }
+ break;
+ case ME_SONGPOS:
+ case ME_CLOCK:
+ case ME_START:
+ case ME_CONTINUE:
+ case ME_STOP:
+ printf("JackMidi: event type %x not supported\n", e.type());
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// startMidiCycle
+//---------------------------------------------------------
+
+void JackAudio::startMidiCycle(Port port)
+ {
+ void* port_buf = jack_port_get_buffer(port.jackPort(), segmentSize);
+ jack_midi_clear_buffer(port_buf);
+ }
+
+//---------------------------------------------------------
+// collectMidiEvents
+//---------------------------------------------------------
+
+void JackAudio::collectMidiEvents(MidiInPort* track, Port port)
+ {
+ void* port_buf = jack_port_get_buffer(port.jackPort(), segmentSize);
+ jack_midi_event_t event;
+ jack_nframes_t eventCount = jack_midi_get_event_count(port_buf);
+ for (jack_nframes_t i = 0; i < eventCount; ++i) {
+ jack_midi_event_get(&event, port_buf, i);
+ track->eventReceived(&event);
+ }
+ }
+
+
diff --git a/muse_qt4_evolution/muse/jackaudio.h b/muse_qt4_evolution/muse/jackaudio.h
new file mode 100644
index 00000000..1839d27e
--- /dev/null
+++ b/muse_qt4_evolution/muse/jackaudio.h
@@ -0,0 +1,90 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __JACKAUDIO_H__
+#define __JACKAUDIO_H__
+
+#include "audiodev.h"
+class MidiInPort;
+
+//---------------------------------------------------------
+// JackAudio
+//---------------------------------------------------------
+
+class JackAudio : public AudioDriver {
+ jack_client_t* _client;
+ jack_position_t pos;
+ char jackRegisteredName[8];
+ jack_transport_state_t transportState;
+ jack_nframes_t _frameCounter;
+
+ static int processAudio(jack_nframes_t frames, void*);
+
+ public:
+ JackAudio(jack_client_t* cl, char * jack_id_string);
+ virtual ~JackAudio();
+
+ int getTransportState();
+ virtual bool init();
+ virtual void start(int);
+ virtual bool restart();
+ virtual void stop ();
+ virtual void zeroClientPtr() { _client = 0; }
+ virtual float* getBuffer(Port port, unsigned long nframes) {
+ return (float*)jack_port_get_buffer(port.jackPort(), nframes);
+ }
+
+ virtual QList<PortName> outputPorts(bool midi);
+ virtual QList<PortName> inputPorts(bool midi);
+
+ virtual void registerClient();
+
+ virtual Port registerOutPort(const QString& name, bool midi);
+ virtual Port registerInPort(const QString& name, bool midi);
+
+ virtual char* getJackName();
+
+ virtual void unregisterPort(Port);
+ virtual bool connect(Port, Port);
+ virtual bool disconnect(Port, Port);
+ virtual void setPortName(Port p, const QString& n) {
+ jack_port_set_name(p.jackPort(), n.toLatin1().data());
+ }
+ virtual Port findPort(const QString& name);
+ virtual QString portName(Port);
+ virtual int realtimePriority() const;
+ virtual void startTransport();
+ virtual void stopTransport();
+ virtual void seekTransport(unsigned frame);
+ virtual void setFreewheel(bool f);
+
+ jack_transport_state_t transportQuery(jack_position_t* pos) {
+ return jack_transport_query(_client, pos);
+ }
+ void graphChanged();
+ virtual void putEvent(Port, const MidiEvent&);
+ virtual void startMidiCycle(Port);
+
+ virtual unsigned frameTime() const { return _frameCounter; }
+ virtual void collectMidiEvents(MidiInPort*, Port);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/ladspa.h b/muse_qt4_evolution/muse/ladspa.h
new file mode 100644
index 00000000..7bbc338f
--- /dev/null
+++ b/muse_qt4_evolution/muse/ladspa.h
@@ -0,0 +1,599 @@
+/* ladspa.h
+
+ Linux Audio Developer's Simple Plugin API Version 1.1[provisional,
+ LGPL]. Copyright (C) 2000-2002 Richard W.E. Furse, Paul
+ Barton-Davis, Stefan Westerfeld.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA. */
+
+#ifndef LADSPA_INCLUDED
+#define LADSPA_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************/
+
+/* Overview:
+
+ There is a large number of synthesis packages in use or development
+ on the Linux platform at this time. This API (`The Linux Audio
+ Developer's Simple Plugin API') attempts to give programmers the
+ ability to write simple `plugin' audio processors in C/C++ and link
+ them dynamically (`plug') into a range of these packages (`hosts').
+ It should be possible for any host and any plugin to communicate
+ completely through this interface.
+
+ This API is deliberately short and simple. To achieve compatibility
+ with a range of promising Linux sound synthesis packages it
+ attempts to find the `greatest common divisor' in their logical
+ behaviour. Having said this, certain limiting decisions are
+ implicit, notably the use of a fixed type (LADSPA_Data) for all
+ data transfer and absence of a parameterised `initialisation'
+ phase. See below for the LADSPA_Data typedef.
+
+ Plugins are expected to distinguish between control and audio
+ data. Plugins have `ports' that are inputs or outputs for audio or
+ control data and each plugin is `run' for a `block' corresponding
+ to a short time interval measured in samples. Audio data is
+ communicated using arrays of LADSPA_Data, allowing a block of audio
+ to be processed by the plugin in a single pass. Control data is
+ communicated using single LADSPA_Data values. Control data has a
+ single value at the start of a call to the `run()' or `run_adding()'
+ function, and may be considered to remain this value for its
+ duration. The plugin may assume that all its input and output ports
+ have been connected to the relevant data location (see the
+ `connect_port()' function below) before it is asked to run.
+
+ Plugins will reside in shared object files suitable for dynamic
+ linking by dlopen() and family. The file will provide a number of
+ `plugin types' that can be used to instantiate actual plugins
+ (sometimes known as `plugin instances') that can be connected
+ together to perform tasks.
+
+ This API contains very limited error-handling. */
+
+/*****************************************************************************/
+
+/* Fundamental data type passed in and out of plugin. This data type
+ is used to communicate audio samples and control values. It is
+ assumed that the plugin will work sensibly given any numeric input
+ value although it may have a preferred range (see hints below).
+
+ For audio it is generally assumed that 1.0f is the `0dB' reference
+ amplitude and is a `normal' signal level. */
+
+typedef float LADSPA_Data;
+
+/*****************************************************************************/
+
+/* Special Plugin Properties:
+
+ Optional features of the plugin type are encapsulated in the
+ LADSPA_Properties type. This is assembled by ORing individual
+ properties together. */
+
+typedef int LADSPA_Properties;
+
+/* Property LADSPA_PROPERTY_REALTIME indicates that the plugin has a
+ real-time dependency (e.g. listens to a MIDI device) and so its
+ output must not be cached or subject to significant latency. */
+#define LADSPA_PROPERTY_REALTIME 0x1
+
+/* Property LADSPA_PROPERTY_INPLACE_BROKEN indicates that the plugin
+ may cease to work correctly if the host elects to use the same data
+ location for both input and output (see connect_port()). This
+ should be avoided as enabling this flag makes it impossible for
+ hosts to use the plugin to process audio `in-place.' */
+#define LADSPA_PROPERTY_INPLACE_BROKEN 0x2
+
+/* Property LADSPA_PROPERTY_HARD_RT_CAPABLE indicates that the plugin
+ is capable of running not only in a conventional host but also in a
+ `hard real-time' environment. To qualify for this the plugin must
+ satisfy all of the following:
+
+ (1) The plugin must not use malloc(), free() or other heap memory
+ management within its run() or run_adding() functions. All new
+ memory used in run() must be managed via the stack. These
+ restrictions only apply to the run() function.
+
+ (2) The plugin will not attempt to make use of any library
+ functions with the exceptions of functions in the ANSI standard C
+ and C maths libraries, which the host is expected to provide.
+
+ (3) The plugin will not access files, devices, pipes, sockets, IPC
+ or any other mechanism that might result in process or thread
+ blocking.
+
+ (4) The plugin will take an amount of time to execute a run() or
+ run_adding() call approximately of form (A+B*SampleCount) where A
+ and B depend on the machine and host in use. This amount of time
+ may not depend on input signals or plugin state. The host is left
+ the responsibility to perform timings to estimate upper bounds for
+ A and B. */
+#define LADSPA_PROPERTY_HARD_RT_CAPABLE 0x4
+
+#define LADSPA_IS_REALTIME(x) ((x) & LADSPA_PROPERTY_REALTIME)
+#define LADSPA_IS_INPLACE_BROKEN(x) ((x) & LADSPA_PROPERTY_INPLACE_BROKEN)
+#define LADSPA_IS_HARD_RT_CAPABLE(x) ((x) & LADSPA_PROPERTY_HARD_RT_CAPABLE)
+
+/*****************************************************************************/
+
+/* Plugin Ports:
+
+ Plugins have `ports' that are inputs or outputs for audio or
+ data. Ports can communicate arrays of LADSPA_Data (for audio
+ inputs/outputs) or single LADSPA_Data values (for control
+ input/outputs). This information is encapsulated in the
+ LADSPA_PortDescriptor type which is assembled by ORing individual
+ properties together.
+
+ Note that a port must be an input or an output port but not both
+ and that a port must be a control or audio port but not both. */
+
+typedef int LADSPA_PortDescriptor;
+
+/* Property LADSPA_PORT_INPUT indicates that the port is an input. */
+#define LADSPA_PORT_INPUT 0x1
+
+/* Property LADSPA_PORT_OUTPUT indicates that the port is an output. */
+#define LADSPA_PORT_OUTPUT 0x2
+
+/* Property LADSPA_PORT_CONTROL indicates that the port is a control
+ port. */
+#define LADSPA_PORT_CONTROL 0x4
+
+/* Property LADSPA_PORT_AUDIO indicates that the port is a audio
+ port. */
+#define LADSPA_PORT_AUDIO 0x8
+
+#define LADSPA_IS_PORT_INPUT(x) ((x) & LADSPA_PORT_INPUT)
+#define LADSPA_IS_PORT_OUTPUT(x) ((x) & LADSPA_PORT_OUTPUT)
+#define LADSPA_IS_PORT_CONTROL(x) ((x) & LADSPA_PORT_CONTROL)
+#define LADSPA_IS_PORT_AUDIO(x) ((x) & LADSPA_PORT_AUDIO)
+
+/*****************************************************************************/
+
+/* Plugin Port Range Hints:
+
+ The host may wish to provide a representation of data entering or
+ leaving a plugin (e.g. to generate a GUI automatically). To make
+ this more meaningful, the plugin should provide `hints' to the host
+ describing the usual values taken by the data.
+
+ Note that these are only hints. The host may ignore them and the
+ plugin must not assume that data supplied to it is meaningful. If
+ the plugin receives invalid input data it is expected to continue
+ to run without failure and, where possible, produce a sensible
+ output (e.g. a high-pass filter given a negative cutoff frequency
+ might switch to an all-pass mode).
+
+ Hints are meaningful for all input and output ports but hints for
+ input control ports are expected to be particularly useful.
+
+ More hint information is encapsulated in the
+ LADSPA_PortRangeHintDescriptor type which is assembled by ORing
+ individual hint types together. Hints may require further
+ LowerBound and UpperBound information.
+
+ All the hint information for a particular port is aggregated in the
+ LADSPA_PortRangeHint structure. */
+
+typedef int LADSPA_PortRangeHintDescriptor;
+
+/* Hint LADSPA_HINT_BOUNDED_BELOW indicates that the LowerBound field
+ of the LADSPA_PortRangeHint should be considered meaningful. The
+ value in this field should be considered the (inclusive) lower
+ bound of the valid range. If LADSPA_HINT_SAMPLE_RATE is also
+ specified then the value of LowerBound should be multiplied by the
+ sample rate. */
+#define LADSPA_HINT_BOUNDED_BELOW 0x1
+
+/* Hint LADSPA_HINT_BOUNDED_ABOVE indicates that the UpperBound field
+ of the LADSPA_PortRangeHint should be considered meaningful. The
+ value in this field should be considered the (inclusive) upper
+ bound of the valid range. If LADSPA_HINT_SAMPLE_RATE is also
+ specified then the value of UpperBound should be multiplied by the
+ sample rate. */
+#define LADSPA_HINT_BOUNDED_ABOVE 0x2
+
+/* Hint LADSPA_HINT_TOGGLED indicates that the data item should be
+ considered a Boolean toggle. Data less than or equal to zero should
+ be considered `off' or `false,' and data above zero should be
+ considered `on' or `true.' LADSPA_HINT_TOGGLED may not be used in
+ conjunction with any other hint except LADSPA_HINT_DEFAULT_0 or
+ LADSPA_HINT_DEFAULT_1. */
+#define LADSPA_HINT_TOGGLED 0x4
+
+/* Hint LADSPA_HINT_SAMPLE_RATE indicates that any bounds specified
+ should be interpreted as multiples of the sample rate. For
+ instance, a frequency range from 0Hz to the Nyquist frequency (half
+ the sample rate) could be requested by this hint in conjunction
+ with LowerBound = 0 and UpperBound = 0.5. Hosts that support bounds
+ at all must support this hint to retain meaning. */
+#define LADSPA_HINT_SAMPLE_RATE 0x8
+
+/* Hint LADSPA_HINT_LOGARITHMIC indicates that it is likely that the
+ user will find it more intuitive to view values using a logarithmic
+ scale. This is particularly useful for frequencies and gains. */
+#define LADSPA_HINT_LOGARITHMIC 0x10
+
+/* Hint LADSPA_HINT_INTEGER indicates that a user interface would
+ probably wish to provide a stepped control taking only integer
+ values. Any bounds set should be slightly wider than the actual
+ integer range required to avoid floating point rounding errors. For
+ instance, the integer set {0,1,2,3} might be described as [-0.1,
+ 3.1]. */
+#define LADSPA_HINT_INTEGER 0x20
+
+/* The various LADSPA_HINT_HAS_DEFAULT_* hints indicate a `normal'
+ value for the port that is sensible as a default. For instance,
+ this value is suitable for use as an initial value in a user
+ interface or as a value the host might assign to a control port
+ when the user has not provided one. Defaults are encoded using a
+ mask so only one default may be specified for a port. Some of the
+ hints make use of lower and upper bounds, in which case the
+ relevant bound or bounds must be available and
+ LADSPA_HINT_SAMPLE_RATE must be applied as usual. The resulting
+ default must be rounded if LADSPA_HINT_INTEGER is present. Default
+ values were introduced in LADSPA v1.1. */
+#define LADSPA_HINT_DEFAULT_MASK 0x3C0
+
+/* This default values indicates that no default is provided. */
+#define LADSPA_HINT_DEFAULT_NONE 0x0
+
+/* This default hint indicates that the suggested lower bound for the
+ port should be used. */
+#define LADSPA_HINT_DEFAULT_MINIMUM 0x40
+
+/* This default hint indicates that a low value between the suggested
+ lower and upper bounds should be chosen. For ports with
+ LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.75 +
+ log(upper) * 0.25). Otherwise, this should be (lower * 0.75 + upper
+ * 0.25). */
+#define LADSPA_HINT_DEFAULT_LOW 0x80
+
+/* This default hint indicates that a middle value between the
+ suggested lower and upper bounds should be chosen. For ports with
+ LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.5 +
+ log(upper) * 0.5). Otherwise, this should be (lower * 0.5 + upper *
+ 0.5). */
+#define LADSPA_HINT_DEFAULT_MIDDLE 0xC0
+
+/* This default hint indicates that a high value between the suggested
+ lower and upper bounds should be chosen. For ports with
+ LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.25 +
+ log(upper) * 0.75). Otherwise, this should be (lower * 0.25 + upper
+ * 0.75). */
+#define LADSPA_HINT_DEFAULT_HIGH 0x100
+
+/* This default hint indicates that the suggested upper bound for the
+ port should be used. */
+#define LADSPA_HINT_DEFAULT_MAXIMUM 0x140
+
+/* This default hint indicates that the number 0 should be used. Note
+ that this default may be used in conjunction with
+ LADSPA_HINT_TOGGLED. */
+#define LADSPA_HINT_DEFAULT_0 0x200
+
+/* This default hint indicates that the number 1 should be used. Note
+ that this default may be used in conjunction with
+ LADSPA_HINT_TOGGLED. */
+#define LADSPA_HINT_DEFAULT_1 0x240
+
+/* This default hint indicates that the number 100 should be used. */
+#define LADSPA_HINT_DEFAULT_100 0x280
+
+/* This default hint indicates that the Hz frequency of `concert A'
+ should be used. This will be 440 unless the host uses an unusual
+ tuning convention, in which case it may be within a few Hz. */
+#define LADSPA_HINT_DEFAULT_440 0x2C0
+
+#define LADSPA_IS_HINT_BOUNDED_BELOW(x) ((x) & LADSPA_HINT_BOUNDED_BELOW)
+#define LADSPA_IS_HINT_BOUNDED_ABOVE(x) ((x) & LADSPA_HINT_BOUNDED_ABOVE)
+#define LADSPA_IS_HINT_TOGGLED(x) ((x) & LADSPA_HINT_TOGGLED)
+#define LADSPA_IS_HINT_SAMPLE_RATE(x) ((x) & LADSPA_HINT_SAMPLE_RATE)
+#define LADSPA_IS_HINT_LOGARITHMIC(x) ((x) & LADSPA_HINT_LOGARITHMIC)
+#define LADSPA_IS_HINT_INTEGER(x) ((x) & LADSPA_HINT_INTEGER)
+
+#define LADSPA_IS_HINT_HAS_DEFAULT(x) ((x) & LADSPA_HINT_DEFAULT_MASK)
+#define LADSPA_IS_HINT_DEFAULT_MINIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_MINIMUM)
+#define LADSPA_IS_HINT_DEFAULT_LOW(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_LOW)
+#define LADSPA_IS_HINT_DEFAULT_MIDDLE(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_MIDDLE)
+#define LADSPA_IS_HINT_DEFAULT_HIGH(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_HIGH)
+#define LADSPA_IS_HINT_DEFAULT_MAXIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_MAXIMUM)
+#define LADSPA_IS_HINT_DEFAULT_0(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_0)
+#define LADSPA_IS_HINT_DEFAULT_1(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_1)
+#define LADSPA_IS_HINT_DEFAULT_100(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_100)
+#define LADSPA_IS_HINT_DEFAULT_440(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
+ == LADSPA_HINT_DEFAULT_440)
+
+typedef struct _LADSPA_PortRangeHint {
+
+ /* Hints about the port. */
+ LADSPA_PortRangeHintDescriptor HintDescriptor;
+
+ /* Meaningful when hint LADSPA_HINT_BOUNDED_BELOW is active. When
+ LADSPA_HINT_SAMPLE_RATE is also active then this value should be
+ multiplied by the relevant sample rate. */
+ LADSPA_Data LowerBound;
+
+ /* Meaningful when hint LADSPA_HINT_BOUNDED_ABOVE is active. When
+ LADSPA_HINT_SAMPLE_RATE is also active then this value should be
+ multiplied by the relevant sample rate. */
+ LADSPA_Data UpperBound;
+
+} LADSPA_PortRangeHint;
+
+/*****************************************************************************/
+
+/* Plugin Handles:
+
+ This plugin handle indicates a particular instance of the plugin
+ concerned. It is valid to compare this to NULL (0 for C++) but
+ otherwise the host should not attempt to interpret it. The plugin
+ may use it to reference internal instance data. */
+
+typedef void * LADSPA_Handle;
+
+/*****************************************************************************/
+
+/* Descriptor for a Type of Plugin:
+
+ This structure is used to describe a plugin type. It provides a
+ number of functions to examine the type, instantiate it, link it to
+ buffers and workspaces and to run it. */
+
+typedef struct _LADSPA_Descriptor {
+
+ /* This numeric identifier indicates the plugin type
+ uniquely. Plugin programmers may reserve ranges of IDs from a
+ central body to avoid clashes. Hosts may assume that IDs are
+ below 0x1000000. */
+ unsigned long UniqueID;
+
+ /* This identifier can be used as a unique, case-sensitive
+ identifier for the plugin type within the plugin file. Plugin
+ types should be identified by file and label rather than by index
+ or plugin name, which may be changed in new plugin
+ versions. Labels must not contain white-space characters. */
+ const char * Label;
+
+ /* This indicates a number of properties of the plugin. */
+ LADSPA_Properties Properties;
+
+ /* This member points to the null-terminated name of the plugin
+ (e.g. "Sine Oscillator"). */
+ const char * Name;
+
+ /* This member points to the null-terminated string indicating the
+ maker of the plugin. This can be an empty string but not NULL. */
+ const char * Maker;
+
+ /* This member points to the null-terminated string indicating any
+ copyright applying to the plugin. If no Copyright applies the
+ string "None" should be used. */
+ const char * Copyright;
+
+ /* This indicates the number of ports (input AND output) present on
+ the plugin. */
+ unsigned long PortCount;
+
+ /* This member indicates an array of port descriptors. Valid indices
+ vary from 0 to PortCount-1. */
+ const LADSPA_PortDescriptor * PortDescriptors;
+
+ /* This member indicates an array of null-terminated strings
+ describing ports (e.g. "Frequency (Hz)"). Valid indices vary from
+ 0 to PortCount-1. */
+ const char * const * PortNames;
+
+ /* This member indicates an array of range hints for each port (see
+ above). Valid indices vary from 0 to PortCount-1. */
+ const LADSPA_PortRangeHint * PortRangeHints;
+
+ /* This may be used by the plugin developer to pass any custom
+ implementation data into an instantiate call. It must not be used
+ or interpreted by the host. It is expected that most plugin
+ writers will not use this facility as LADSPA_Handle should be
+ used to hold instance data. */
+ void * ImplementationData;
+
+ /* This member is a function pointer that instantiates a plugin. A
+ handle is returned indicating the new plugin instance. The
+ instantiation function accepts a sample rate as a parameter. The
+ plugin descriptor from which this instantiate function was found
+ must also be passed. This function must return NULL if
+ instantiation fails.
+
+ Note that instance initialisation should generally occur in
+ activate() rather than here. */
+ LADSPA_Handle (*instantiate)(const struct _LADSPA_Descriptor * Descriptor,
+ unsigned long SampleRate);
+
+ /* This member is a function pointer that connects a port on an
+ instantiated plugin to a memory location at which a block of data
+ for the port will be read/written. The data location is expected
+ to be an array of LADSPA_Data for audio ports or a single
+ LADSPA_Data value for control ports. Memory issues will be
+ managed by the host. The plugin must read/write the data at these
+ locations every time run() or run_adding() is called and the data
+ present at the time of this connection call should not be
+ considered meaningful.
+
+ connect_port() may be called more than once for a plugin instance
+ to allow the host to change the buffers that the plugin is
+ reading or writing. These calls may be made before or after
+ activate() or deactivate() calls.
+
+ connect_port() must be called at least once for each port before
+ run() or run_adding() is called. When working with blocks of
+ LADSPA_Data the plugin should pay careful attention to the block
+ size passed to the run function as the block allocated may only
+ just be large enough to contain the block of samples.
+
+ Plugin writers should be aware that the host may elect to use the
+ same buffer for more than one port and even use the same buffer
+ for both input and output (see LADSPA_PROPERTY_INPLACE_BROKEN).
+ However, overlapped buffers or use of a single buffer for both
+ audio and control data may result in unexpected behaviour. */
+ void (*connect_port)(LADSPA_Handle Instance,
+ unsigned long Port,
+ LADSPA_Data * DataLocation);
+
+ /* This member is a function pointer that initialises a plugin
+ instance and activates it for use. This is separated from
+ instantiate() to aid real-time support and so that hosts can
+ reinitialise a plugin instance by calling deactivate() and then
+ activate(). In this case the plugin instance must reset all state
+ information dependent on the history of the plugin instance
+ except for any data locations provided by connect_port() and any
+ gain set by set_run_adding_gain(). If there is nothing for
+ activate() to do then the plugin writer may provide a NULL rather
+ than an empty function.
+
+ When present, hosts must call this function once before run() (or
+ run_adding()) is called for the first time. This call should be
+ made as close to the run() call as possible and indicates to
+ real-time plugins that they are now live. Plugins should not rely
+ on a prompt call to run() after activate(). activate() may not be
+ called again unless deactivate() is called first. Note that
+ connect_port() may be called before or after a call to
+ activate(). */
+ void (*activate)(LADSPA_Handle Instance);
+
+ /* This method is a function pointer that runs an instance of a
+ plugin for a block. Two parameters are required: the first is a
+ handle to the particular instance to be run and the second
+ indicates the block size (in samples) for which the plugin
+ instance may run.
+
+ Note that if an activate() function exists then it must be called
+ before run() or run_adding(). If deactivate() is called for a
+ plugin instance then the plugin instance may not be reused until
+ activate() has been called again.
+
+ If the plugin has the property LADSPA_PROPERTY_HARD_RT_CAPABLE
+ then there are various things that the plugin should not do
+ within the run() or run_adding() functions (see above). */
+ void (*run)(LADSPA_Handle Instance,
+ unsigned long SampleCount);
+
+ /* This method is a function pointer that runs an instance of a
+ plugin for a block. This has identical behaviour to run() except
+ in the way data is output from the plugin. When run() is used,
+ values are written directly to the memory areas associated with
+ the output ports. However when run_adding() is called, values
+ must be added to the values already present in the memory
+ areas. Furthermore, output values written must be scaled by the
+ current gain set by set_run_adding_gain() (see below) before
+ addition.
+
+ run_adding() is optional. When it is not provided by a plugin,
+ this function pointer must be set to NULL. When it is provided,
+ the function set_run_adding_gain() must be provided also. */
+ void (*run_adding)(LADSPA_Handle Instance,
+ unsigned long SampleCount);
+
+ /* This method is a function pointer that sets the output gain for
+ use when run_adding() is called (see above). If this function is
+ never called the gain is assumed to default to 1. Gain
+ information should be retained when activate() or deactivate()
+ are called.
+
+ This function should be provided by the plugin if and only if the
+ run_adding() function is provided. When it is absent this
+ function pointer must be set to NULL. */
+ void (*set_run_adding_gain)(LADSPA_Handle Instance,
+ LADSPA_Data Gain);
+
+ /* This is the counterpart to activate() (see above). If there is
+ nothing for deactivate() to do then the plugin writer may provide
+ a NULL rather than an empty function.
+
+ Hosts must deactivate all activated units after they have been
+ run() (or run_adding()) for the last time. This call should be
+ made as close to the last run() call as possible and indicates to
+ real-time plugins that they are no longer live. Plugins should
+ not rely on prompt deactivation. Note that connect_port() may be
+ called before or after a call to deactivate().
+
+ Deactivation is not similar to pausing as the plugin instance
+ will be reinitialised when activate() is called to reuse it. */
+ void (*deactivate)(LADSPA_Handle Instance);
+
+ /* Once an instance of a plugin has been finished with it can be
+ deleted using the following function. The instance handle passed
+ ceases to be valid after this call.
+
+ If activate() was called for a plugin instance then a
+ corresponding call to deactivate() must be made before cleanup()
+ is called. */
+ void (*cleanup)(LADSPA_Handle Instance);
+
+} LADSPA_Descriptor;
+
+/**********************************************************************/
+
+/* Accessing a Plugin: */
+
+/* The exact mechanism by which plugins are loaded is host-dependent,
+ however all most hosts will need to know is the name of shared
+ object file containing the plugin types. To allow multiple hosts to
+ share plugin types, hosts may wish to check for environment
+ variable LADSPA_PATH. If present, this should contain a
+ colon-separated path indicating directories that should be searched
+ (in order) when loading plugin types.
+
+ A plugin programmer must include a function called
+ "ladspa_descriptor" with the following function prototype within
+ the shared object file. This function will have C-style linkage (if
+ you are using C++ this is taken care of by the `extern "C"' clause
+ at the top of the file).
+
+ A host will find the plugin shared object file by one means or
+ another, find the ladspa_descriptor() function, call it, and
+ proceed from there.
+
+ Plugin types are accessed by index (not ID) using values from 0
+ upwards. Out of range indexes must result in this function
+ returning NULL, so the plugin count can be determined by checking
+ for the least index that results in NULL being returned. */
+
+const LADSPA_Descriptor * ladspa_descriptor(unsigned long Index);
+
+/* Datatype corresponding to the ladspa_descriptor() function. */
+typedef const LADSPA_Descriptor *
+(*LADSPA_Descriptor_Function)(unsigned long Index);
+
+/**********************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LADSPA_INCLUDED */
+
+/* EOF */
diff --git a/muse_qt4_evolution/muse/ladspaplugin.cpp b/muse_qt4_evolution/muse/ladspaplugin.cpp
new file mode 100644
index 00000000..85398d74
--- /dev/null
+++ b/muse_qt4_evolution/muse/ladspaplugin.cpp
@@ -0,0 +1,235 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "ladspaplugin.h"
+#include "fastlog.h"
+#include "ctrl.h"
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+float ladspaDefaultValue(const LADSPA_Descriptor* plugin, int k)
+ {
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[k];
+ LADSPA_PortRangeHintDescriptor rh = range.HintDescriptor;
+// bool isLog = LADSPA_IS_HINT_LOGARITHMIC(rh);
+ double val = 1.0;
+ float m = (rh & LADSPA_HINT_SAMPLE_RATE) ? float(AL::sampleRate) : 1.0f;
+ if (LADSPA_IS_HINT_DEFAULT_MINIMUM(rh)) {
+ val = range.LowerBound * m;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_LOW(rh)) {
+ if (LADSPA_IS_HINT_LOGARITHMIC(rh))
+ val = exp(fast_log10(range.LowerBound * m) * .75 +
+ log(range.UpperBound * m) * .25);
+ else
+ val = range.LowerBound*.75*m + range.UpperBound*.25*m;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_MIDDLE(rh)) {
+ if (LADSPA_IS_HINT_LOGARITHMIC(rh))
+ val = exp(log(range.LowerBound * m) * .5 +
+ log10(range.UpperBound * m) * .5);
+ else
+ val = range.LowerBound*.5*m + range.UpperBound*.5*m;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_HIGH(rh)) {
+ if (LADSPA_IS_HINT_LOGARITHMIC(rh))
+ val = exp(log(range.LowerBound * m) * .25 +
+ log(range.UpperBound * m) * .75);
+ else
+ val = range.LowerBound*.25*m + range.UpperBound*.75*m;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(rh)) {
+ val = range.UpperBound*m;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_0(rh))
+ val = 0.0;
+ else if (LADSPA_IS_HINT_DEFAULT_1(rh))
+ val = 1.0;
+ else if (LADSPA_IS_HINT_DEFAULT_100(rh))
+ val = 100.0;
+ else if (LADSPA_IS_HINT_DEFAULT_440(rh))
+ val = 440.0;
+ return val;
+ }
+
+//---------------------------------------------------------
+// LadpsaPlugin
+//---------------------------------------------------------
+
+LadspaPlugin::LadspaPlugin(const QFileInfo* f,
+ const LADSPA_Descriptor_Function ldf,
+ const LADSPA_Descriptor* d)
+ : Plugin(f), ladspa(ldf), plugin(d)
+ {
+ _inports = 0;
+ _outports = 0;
+ _parameter = 0;
+ for (unsigned k = 0; k < plugin->PortCount; ++k) {
+ LADSPA_PortDescriptor pd = d->PortDescriptors[k];
+ static const int CI = LADSPA_PORT_CONTROL | LADSPA_PORT_INPUT;
+ if ((pd & CI) == CI) {
+ ++_parameter;
+ pIdx.push_back(k);
+ }
+ else if (pd & LADSPA_PORT_INPUT) {
+ ++_inports;
+ iIdx.push_back(k);
+ }
+ else if (pd & LADSPA_PORT_OUTPUT) {
+ ++_outports;
+ oIdx.push_back(k);
+ }
+ }
+ LADSPA_Properties properties = plugin->Properties;
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(properties);
+ if (_inports != _outports)
+ _inPlaceCapable = false;
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+void* LadspaPlugin::instantiate()
+ {
+ return plugin->instantiate(plugin, AL::sampleRate);
+ }
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void LadspaPlugin::range(int i, double* min, double* max) const
+ {
+ i = pIdx[i];
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[i];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+ if (desc & LADSPA_HINT_TOGGLED) {
+ *min = -1.0;
+ *max = 1.0;
+ return;
+ }
+ double m = (desc & LADSPA_HINT_SAMPLE_RATE) ? float(AL::sampleRate) : 1.0f;
+
+ if (desc & LADSPA_HINT_BOUNDED_BELOW)
+ *min = range.LowerBound * m;
+ else
+ *min = 0.0;
+ if (desc & LADSPA_HINT_BOUNDED_ABOVE)
+ *max = range.UpperBound * m;
+ else
+ *max = 1.0;
+ }
+
+//---------------------------------------------------------
+// createPIF
+//---------------------------------------------------------
+
+PluginIF* LadspaPlugin::createPIF(PluginI* pi)
+ {
+ LadspaPluginIF* pif = new LadspaPluginIF(pi);
+ pif->init(pi->plugin());
+ return pif;
+ }
+
+//---------------------------------------------------------
+// LadspaPluginIF
+//---------------------------------------------------------
+
+LadspaPluginIF::LadspaPluginIF(PluginI* pi)
+ : PluginIF(pi)
+ {
+ descr = 0;
+ plugin = (LadspaPlugin*)(pi->plugin());
+ }
+
+//---------------------------------------------------------
+// init
+// return true on error
+//---------------------------------------------------------
+
+bool LadspaPluginIF::init(Plugin* pl)
+ {
+ handle = (LADSPA_Descriptor*) ((LadspaPlugin*)pl)->instantiate();
+ plugin = (LadspaPlugin*)pl;
+ descr = plugin->ladspaDescriptor();
+
+ int controlPorts = plugin->parameter();
+ controls = new LadspaPort[controlPorts];
+
+ for (int k = 0; k < controlPorts; ++k) {
+ controls[k].val = plugin->defaultValue(k);
+ descr->connect_port(handle, plugin->pIdx[k], &controls[k].val);
+ }
+ return handle == 0;
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void LadspaPluginIF::apply(unsigned nframes, float** src, float** dst)
+ {
+ int iports = plugin->inports();
+ int oports = plugin->outports();
+ int cports = plugin->parameter();
+
+ //
+ // update parameter
+ //
+ for (int i = 0; i < cports; ++i)
+ controls[i].val = pluginI->controllerList[i]->curVal().f;
+ //
+ // set connections
+ //
+ for (int k = 0; k < iports; ++k)
+ descr->connect_port(handle, plugin->iIdx[k], src[k]);
+ for (int k = 0; k < oports; ++k)
+ descr->connect_port(handle, plugin->oIdx[k], dst[k]);
+
+ descr->run(handle, nframes);
+ }
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+double LadspaPlugin::defaultValue(int k) const
+ {
+ k = pIdx[k];
+ return ladspaDefaultValue(plugin, k);
+ }
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void LadspaPluginIF::activate()
+ {
+ //
+ // TODO: init values?
+ //
+ if (descr->activate)
+ descr->activate(handle);
+ }
+
diff --git a/muse_qt4_evolution/muse/ladspaplugin.h b/muse_qt4_evolution/muse/ladspaplugin.h
new file mode 100644
index 00000000..4c492813
--- /dev/null
+++ b/muse_qt4_evolution/muse/ladspaplugin.h
@@ -0,0 +1,127 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __LADSPAPLUGIN_H__
+#define __LADSPAPLUGIN_H__
+
+#include "ladspa.h"
+#include "plugin.h"
+
+//---------------------------------------------------------
+// LadspaPlugin
+//---------------------------------------------------------
+
+class LadspaPlugin : public Plugin {
+ LADSPA_Descriptor_Function ladspa;
+ const LADSPA_Descriptor* plugin;
+
+ protected:
+ int _parameter;
+ std::vector<int> pIdx;
+
+ int _inports;
+ std::vector<int> iIdx;
+
+ int _outports;
+ std::vector<int> oIdx;
+
+ bool _inPlaceCapable;
+ friend class LadspaPluginIF;
+
+ public:
+ LadspaPlugin(const QFileInfo* f,
+ const LADSPA_Descriptor_Function,
+ const LADSPA_Descriptor* d);
+
+ virtual QString label() const { return QString(plugin->Label); }
+ virtual QString name() const { return QString(plugin->Name); }
+ virtual unsigned long id() const { return plugin->UniqueID; }
+ virtual QString maker() const { return QString(plugin->Maker); }
+ virtual QString copyright() const { return QString(plugin->Copyright); }
+
+ void* instantiate();
+ virtual void range(int i, double*, double*) const;
+ virtual int parameter() const { return _parameter; }
+ virtual int inports() const { return _inports; }
+ virtual int outports() const { return _outports; }
+
+ virtual bool inPlaceCapable() const { return _inPlaceCapable; }
+ virtual PluginIF* createPIF(PluginI*);
+ const LADSPA_Descriptor* ladspaDescriptor() const { return plugin; }
+
+ virtual bool isLog(int k) const {
+ LADSPA_PortRangeHint r = plugin->PortRangeHints[pIdx[k]];
+ return LADSPA_IS_HINT_LOGARITHMIC(r.HintDescriptor);
+ }
+ virtual bool isBool(int k) const {
+ return LADSPA_IS_HINT_TOGGLED(plugin->PortRangeHints[pIdx[k]].HintDescriptor);
+ }
+ virtual bool isInt(int k) const {
+ LADSPA_PortRangeHint r = plugin->PortRangeHints[pIdx[k]];
+ return LADSPA_IS_HINT_INTEGER(r.HintDescriptor);
+ }
+ virtual double defaultValue(int) const;
+ };
+
+//---------------------------------------------------------
+// LadspaPort
+//---------------------------------------------------------
+
+struct LadspaPort {
+ float val;
+ };
+
+//---------------------------------------------------------
+// LadspaPluginIF
+//---------------------------------------------------------
+
+class LadspaPluginIF : public PluginIF {
+ const LADSPA_Descriptor* descr;
+ LADSPA_Handle handle; // per instance
+ LadspaPlugin* plugin;
+
+ LadspaPort* controls;
+
+ public:
+ LadspaPluginIF(PluginI* pi);
+
+ virtual void apply(unsigned nframes, float** src, float** dst);
+ virtual void activate();
+ virtual void deactivate() {
+ if (descr->deactivate)
+ descr->deactivate(handle);
+ }
+ virtual void cleanup() {
+ if (descr->cleanup)
+ descr->cleanup(handle);
+ }
+ virtual const char* getParameterName(int i) const {
+ return plugin->plugin->PortNames[plugin->pIdx[i]];
+ }
+ virtual void setParam(int i, double val) { controls[i].val = val; }
+ virtual float param(int i) const { return controls[i].val; }
+ bool init(Plugin*);
+ };
+
+extern float ladspaDefaultValue(const LADSPA_Descriptor* plugin, int k);
+
+#endif
+
+
diff --git a/muse_qt4_evolution/muse/liste/CMakeLists.txt b/muse_qt4_evolution/muse/liste/CMakeLists.txt
new file mode 100644
index 00000000..988efaf8
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/CMakeLists.txt
@@ -0,0 +1,48 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( liste_mocs
+ listedit.h
+ ctrllistedit.h
+ tracklistedit.h
+ partlistedit.h
+ ieventdialog.h
+ )
+
+QT4_WRAP_UI ( liste_ui_headers
+ ctrllistedit.ui
+ partlistedit.ui
+ tracklistedit.ui
+ )
+
+add_library ( liste STATIC
+ listedit.cpp listedit.h
+ ctrllistedit.cpp ctrllistedit.h
+ partlistedit.cpp partlistedit.h
+ tracklistedit.cpp tracklistedit.h
+ ieventdialog.cpp ieventdialog.h
+ ${liste_mocs}
+ ${liste_ui_headers}
+ )
+set_target_properties( liste
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
+
diff --git a/muse_qt4_evolution/muse/liste/ctrllistedit.cpp b/muse_qt4_evolution/muse/liste/ctrllistedit.cpp
new file mode 100644
index 00000000..ab9e66e3
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/ctrllistedit.cpp
@@ -0,0 +1,569 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "ctrllistedit.h"
+#include "ctrl.h"
+#include "track.h"
+#include "song.h"
+#include "al/pos.h"
+#include "awl/posedit.h"
+
+//---------------------------------------------------------
+// CtrlListEditor
+//---------------------------------------------------------
+
+CtrlListEditor::CtrlListEditor(ListEdit* e, QWidget* parent)
+ : ListWidget(parent)
+ {
+ listEdit = e;
+ updateListDisabled = false;
+ QWidget* cew = new QWidget;
+ le.setupUi(cew);
+ QVBoxLayout* layout = new QVBoxLayout;
+ layout->addWidget(cew);
+ setLayout(layout);
+ le.minValue->setRange(-10000000.0, 100000000.0);
+ le.maxValue->setRange(-10000000.0, 100000000.0);
+ le.defaultValue->setRange(-10000000.0, 100000000.0);
+ le.minValue->setSingleStep(1.0);
+ le.maxValue->setSingleStep(1.0);
+ le.defaultValue->setSingleStep(1.0);
+
+ QFontMetrics fm(le.ctrlList->font());
+ int zW = fm.width("0");
+ le.ctrlList->setColumnWidth(TICK_COL, zW * 8);
+ le.ctrlList->setColumnWidth(TIME_COL, zW * 14);
+ CtrlDelegate* ctrlDelegate = new CtrlDelegate(this);
+ le.ctrlList->setItemDelegate(ctrlDelegate);
+
+ track = 0;
+ connect(le.ctrlList, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
+ SLOT(itemActivated(QTreeWidgetItem*,int)));
+ connect(le.ctrlList, SIGNAL(itemChanged(QTreeWidgetItem*, int)),
+ SLOT(itemChanged(QTreeWidgetItem*, int)));
+ connect(le.ctrlList, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ connect(le.insertButton, SIGNAL(clicked()), SLOT(insertClicked()));
+ connect(le.deleteButton, SIGNAL(clicked()), SLOT(deleteClicked()));
+ connect(le.controllerName, SIGNAL(textEdited(const QString&)),
+ SLOT(nameEdited(const QString&)));
+ connect(le.minValue, SIGNAL(valueChanged(double)), SLOT(minValChanged(double)));
+ connect(le.maxValue, SIGNAL(valueChanged(double)), SLOT(maxValChanged(double)));
+ connect(le.defaultValue, SIGNAL(valueChanged(double)), SLOT(defaultValChanged(double)));
+ EscapeFilter* ef = new EscapeFilter(this);
+ installEventFilter(ef);
+ }
+
+//---------------------------------------------------------
+// eventFilter
+//---------------------------------------------------------
+
+bool EscapeFilter::eventFilter(QObject* obj, QEvent* event)
+ {
+ if (event->type() == QEvent::KeyPress) {
+ if (((QKeyEvent*)event)->key() == Qt::Key_Escape) {
+ ((CtrlListEditor*)parent())->sendEscape();
+ return true;
+ }
+ }
+ return QObject::eventFilter(obj, event);
+ }
+
+//---------------------------------------------------------
+// setup
+//---------------------------------------------------------
+
+void CtrlListEditor::setup(const ListType& lt)
+ {
+ if (track)
+ disconnect(track, SIGNAL(controllerChanged(int)), this, SLOT(controllerChanged(int)));
+ track = lt.track;
+ connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+
+ c = lt.ctrl;
+ le.controllerName->setText(c->name());
+ le.discreteCheckBox->setChecked(c->type() & Ctrl::DISCRETE);
+ le.logarithmicCheckBox->setChecked(c->type() & Ctrl::LOG);
+ le.floatCheckBox->setChecked(!(c->type() & Ctrl::INT));
+ le.ctrlId->setValue(c->id());
+ if (c->type() & Ctrl::INT) {
+ le.minValue->setDecimals(0);
+ le.minValue->setValue(c->minVal().i);
+ le.maxValue->setDecimals(0);
+ le.maxValue->setValue(c->maxVal().i);
+ le.defaultValue->setDecimals(0);
+ le.defaultValue->setValue(c->getDefault().i);
+ }
+ else {
+ if (c->type() & Ctrl::LOG) {
+ le.minValue->setDecimals(0);
+ le.minValue->setValue(c->minVal().f * 20.0);
+ le.minValue->setSuffix(tr("dB"));
+ le.maxValue->setDecimals(0);
+ le.maxValue->setValue(c->maxVal().f * 20.0);
+ le.maxValue->setSuffix(tr("dB"));
+ le.defaultValue->setDecimals(0);
+ le.defaultValue->setValue(c->getDefault().f * 20.0);
+ le.defaultValue->setSuffix(tr("dB"));
+ }
+ else {
+ le.minValue->setDecimals(1);
+ le.minValue->setValue(c->minVal().f);
+ le.maxValue->setDecimals(1);
+ le.maxValue->setValue(c->maxVal().f);
+ le.defaultValue->setDecimals(1);
+ le.defaultValue->setValue(c->getDefault().f);
+ }
+ }
+ updateList();
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void CtrlListEditor::updateList()
+ {
+ if (updateListDisabled)
+ return;
+ le.ctrlList->clear();
+ int idx = 0;
+ bool curItemSet = false;
+ for (iCtrlVal i = c->begin(); i != c->end(); ++i, ++idx) {
+ CVal v = i.value();
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setData(TICK_COL, Qt::TextAlignmentRole, int(Qt::AlignRight | Qt::AlignVCenter));
+ item->setData(TIME_COL, Qt::TextAlignmentRole, int(Qt::AlignRight | Qt::AlignVCenter));
+ item->setData(VAL_COL, Qt::TextAlignmentRole, int(Qt::AlignHCenter | Qt::AlignVCenter));
+
+ item->setData(TICK_COL, Qt::DisplayRole, i.key());
+ item->setData(TIME_COL, Qt::DisplayRole, i.key());
+ if (c->type() & Ctrl::INT)
+ item->setData(VAL_COL, Qt::DisplayRole, v.i);
+ else
+ item->setData(VAL_COL, Qt::DisplayRole, v.f);
+ le.ctrlList->insertTopLevelItem(idx, item);
+ if (!curItemSet && (i.key() >= listEdit->pos().tick())) {
+ le.ctrlList->setCurrentItem(item);
+ curItemSet = true;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::controllerChanged(int id)
+ {
+ if (id != c->id())
+ return;
+ updateList();
+ }
+
+//---------------------------------------------------------
+// itemActivated
+//---------------------------------------------------------
+
+void CtrlListEditor::itemActivated(QTreeWidgetItem* item, int column)
+ {
+ le.ctrlList->openPersistentEditor(item, column);
+ }
+
+//---------------------------------------------------------
+// itemChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::itemChanged(QTreeWidgetItem* item, int column)
+ {
+ CVal val;
+ if (c->type() & Ctrl::INT) {
+ val.i = item->data(VAL_COL, Qt::DisplayRole).toInt();
+ bool updateData = false;
+ if (val.i < c->minVal().i) {
+ val.i = c->minVal().i;
+ updateData = true;
+ }
+ else if (val.i > c->maxVal().i) {
+ val.i = c->maxVal().i;
+ updateData = true;
+ }
+ if (updateData)
+ item->setData(VAL_COL, Qt::DisplayRole, val.i);
+ }
+ else {
+ val.f = item->data(VAL_COL, Qt::DisplayRole).toDouble();
+ bool updateData = false;
+ if (val.f < c->minVal().f) {
+ val.f = c->minVal().f;
+ updateData = true;
+ }
+ else if (val.f > c->maxVal().f) {
+ val.f = c->maxVal().f;
+ updateData = true;
+ }
+ if (updateData)
+ item->setData(VAL_COL, Qt::DisplayRole, val.f);
+ }
+ le.ctrlList->closePersistentEditor(item, TICK_COL);
+ le.ctrlList->closePersistentEditor(item, TIME_COL);
+ le.ctrlList->closePersistentEditor(item, VAL_COL);
+ updateListDisabled = true;
+ switch(column) {
+ case TICK_COL:
+ {
+ int otick = item->data(TIME_COL, Qt::DisplayRole).toInt();
+ int tick = item->data(TICK_COL, Qt::DisplayRole).toInt();
+ item->setData(TIME_COL, Qt::DisplayRole, tick);
+ song->cmdRemoveControllerVal(track, c->id(), otick);
+ song->cmdAddControllerVal(track, c, tick, val);
+ }
+ break;
+ case TIME_COL:
+ {
+ int otick = item->data(TICK_COL, Qt::DisplayRole).toInt();
+ int tick = item->data(TIME_COL, Qt::DisplayRole).toInt();
+ item->setData(TICK_COL, Qt::DisplayRole, tick);
+ song->cmdRemoveControllerVal(track, c->id(), otick);
+ song->cmdAddControllerVal(track, c, tick, val);
+ }
+ break;
+ case VAL_COL:
+ song->cmdAddControllerVal(track, c, listEdit->pos(), val);
+ break;
+ }
+ updateListDisabled = false;
+ }
+
+//---------------------------------------------------------
+// sendEscape
+//---------------------------------------------------------
+
+void CtrlListEditor::sendEscape()
+ {
+ QTreeWidgetItem* cur = le.ctrlList->currentItem();
+ if (cur == 0)
+ return;
+ le.ctrlList->closePersistentEditor(cur, TICK_COL);
+ le.ctrlList->closePersistentEditor(cur, TIME_COL);
+ le.ctrlList->closePersistentEditor(cur, VAL_COL);
+ }
+
+//---------------------------------------------------------
+// currentItemChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::currentItemChanged(QTreeWidgetItem* cur, QTreeWidgetItem* prev)
+ {
+ if (prev) {
+ le.ctrlList->closePersistentEditor(prev, TICK_COL);
+ le.ctrlList->closePersistentEditor(prev, TIME_COL);
+ le.ctrlList->closePersistentEditor(prev, VAL_COL);
+ }
+ if (cur) {
+ Pos pos(cur->data(TICK_COL, Qt::DisplayRole).toInt(), track->timeType());
+ listEdit->pos() = pos;
+ }
+ le.deleteButton->setEnabled(cur);
+ }
+
+//---------------------------------------------------------
+// insertClicked
+// insert one tick before current value
+//---------------------------------------------------------
+
+void CtrlListEditor::insertClicked()
+ {
+ CVal val = c->minVal();
+ QTreeWidgetItem* cur = le.ctrlList->currentItem();
+ if (cur) {
+ int tick = cur->data(TICK_COL, Qt::DisplayRole).toInt();
+ if (tick == 0) // cannot insert value at position < 0
+ return;
+ listEdit->pos().setTick(tick - 1);
+ if (c->type() & Ctrl::INT)
+ val.i = cur->data(VAL_COL, Qt::DisplayRole).toInt();
+ else
+ val.f = cur->data(VAL_COL, Qt::DisplayRole).toDouble();
+ }
+ song->cmdAddControllerVal(track, c, listEdit->pos(), val);
+ }
+
+//---------------------------------------------------------
+// deleteClicked
+//---------------------------------------------------------
+
+void CtrlListEditor::deleteClicked()
+ {
+ QTreeWidgetItem* cur = le.ctrlList->currentItem();
+ if (cur == 0)
+ return;
+ int tick = cur->data(TICK_COL, Qt::DisplayRole).toInt();
+ song->cmdRemoveControllerVal(track, c->id(), tick);
+ }
+
+//---------------------------------------------------------
+// nameEdited
+//---------------------------------------------------------
+
+void CtrlListEditor::nameEdited(const QString& s)
+ {
+ track->changeCtrlName(c, s);
+ }
+
+//---------------------------------------------------------
+// minValChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::minValChanged(double v)
+ {
+ CVal val;
+ if (c->type() & Ctrl::INT)
+ val.i = int(v);
+ else {
+ if (c->type() & Ctrl::LOG)
+ v /= 20.0;
+ val.f = v;
+ }
+ c->setRange(val, c->maxVal());
+ }
+
+//---------------------------------------------------------
+// maxValChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::maxValChanged(double v)
+ {
+ CVal val;
+ if (c->type() & Ctrl::INT)
+ val.i = int(v);
+ else {
+ if (c->type() & Ctrl::LOG)
+ v /= 20.0;
+ val.f = v;
+ }
+ c->setRange(c->minVal(), val);
+ }
+
+//---------------------------------------------------------
+// defaultValChanged
+//---------------------------------------------------------
+
+void CtrlListEditor::defaultValChanged(double v)
+ {
+ CVal val;
+ if (c->type() & Ctrl::INT)
+ val.i = int(v);
+ else
+ val.f = v;
+ c->setDefault(val);
+ }
+
+//---------------------------------------------------------
+// CtrlDelegate
+//---------------------------------------------------------
+
+CtrlDelegate::CtrlDelegate(QObject* parent)
+ : QItemDelegate(parent)
+ {
+ }
+
+//---------------------------------------------------------
+// createEditor
+//---------------------------------------------------------
+
+QWidget* CtrlDelegate::createEditor(QWidget* pw,
+ const QStyleOptionViewItem& option, const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case CtrlListEditor::TICK_COL:
+ break;
+ case CtrlListEditor::TIME_COL:
+ return new Awl::PosEdit(pw);
+ case CtrlListEditor::VAL_COL:
+ {
+ CtrlListEditor* ce = static_cast<CtrlListEditor*>(parent());
+ Ctrl* c = ce->ctrl();
+ if (c->type() & Ctrl::INT) {
+ QSpinBox* w = new QSpinBox(pw);
+ w->setRange(c->minVal().i, c->maxVal().i);
+ w->installEventFilter(const_cast<CtrlDelegate*>(this));
+ return w;
+ }
+ QDoubleSpinBox* w = new QDoubleSpinBox(pw);
+ if (c->type() & Ctrl::LOG)
+ w->setSuffix(tr("dB"));
+// w->setRange(c->minVal().f, c->maxVal().f);
+ w->installEventFilter(const_cast<CtrlDelegate*>(this));
+ return w;
+ }
+ }
+ return QItemDelegate::createEditor(pw, option, index);
+ }
+
+//---------------------------------------------------------
+// setEditorData
+//---------------------------------------------------------
+
+void CtrlDelegate::setEditorData(QWidget* editor,
+ const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case CtrlListEditor::TICK_COL:
+ break;
+ case CtrlListEditor::TIME_COL:
+ {
+ Awl::PosEdit* pe = static_cast<Awl::PosEdit*>(editor);
+ pe->setValue(AL::Pos(index.data().toInt()));
+ }
+ return;
+ case CtrlListEditor::VAL_COL:
+ {
+ CtrlListEditor* ce = static_cast<CtrlListEditor*>(parent());
+ Ctrl* c = ce->ctrl();
+ if (c->type() & Ctrl::INT) {
+ QSpinBox* w = static_cast<QSpinBox*>(editor);
+ w->setValue(index.data().toInt());
+ }
+ else {
+ QDoubleSpinBox* w = static_cast<QDoubleSpinBox*>(editor);
+ double v = index.data().toDouble();
+printf("type %x\n", c->type());
+ if (c->type() & Ctrl::LOG)
+ v *= 20.0;
+ w->setValue(v);
+ }
+ }
+ return;
+ }
+ QItemDelegate::setEditorData(editor, index);
+ }
+
+//---------------------------------------------------------
+// setModelData
+//---------------------------------------------------------
+
+void CtrlDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
+ const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case CtrlListEditor::TICK_COL:
+ break;
+ case CtrlListEditor::TIME_COL:
+ {
+ Awl::PosEdit* pe = static_cast<Awl::PosEdit*>(editor);
+ model->setData(index, pe->pos().tick(), Qt::DisplayRole);
+ }
+ return;
+ case CtrlListEditor::VAL_COL:
+ {
+ CtrlListEditor* ce = static_cast<CtrlListEditor*>(parent());
+ Ctrl* c = ce->ctrl();
+ if (c->type() & Ctrl::INT) {
+ QSpinBox* w = static_cast<QSpinBox*>(editor);
+ model->setData(index, w->value(), Qt::DisplayRole);
+ }
+ else {
+ QDoubleSpinBox* w = static_cast<QDoubleSpinBox*>(editor);
+ double v = w->value();
+ if (c->type() & Ctrl::LOG)
+ v /= 20.0;
+ model->setData(index, v, Qt::DisplayRole);
+ }
+ }
+ break;
+ }
+ QItemDelegate::setModelData(editor, model, index);
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void CtrlDelegate::paint(QPainter* painter,
+ const QStyleOptionViewItem& option, const QModelIndex& index) const
+ {
+ QString text;
+ CtrlListEditor* ce = static_cast<CtrlListEditor*>(parent());
+
+ switch(index.column()) {
+ case CtrlListEditor::TICK_COL:
+ {
+ Track* track = ce->getTrack();
+ AL::Pos pos(index.data().toInt(), track->timeType());
+ text = QString("%1").arg(pos.tick());
+ }
+ break;
+ case CtrlListEditor::TIME_COL:
+ {
+ Track* track = ce->getTrack();
+ AL::Pos pos(index.data().toInt(), track->timeType());
+ int measure, beat, tick;
+ pos.mbt(&measure, &beat, &tick);
+ text.sprintf("%04d.%02d.%03u", measure+1, beat+1, tick);
+ }
+ break;
+ case CtrlListEditor::VAL_COL:
+ {
+ Ctrl* c = ce->ctrl();
+ if (c->type() & Ctrl::INT) {
+ text = QString("%1").arg(index.data().toInt());
+ }
+ else {
+ if (c->type() & Ctrl::LOG) {
+ double f = index.data().toDouble();
+ if (f <= -1000.0f)
+ text = tr("off");
+ else
+ text = QString("%1 dB").arg(f * 20.0);
+ }
+ else {
+ text = QString("%1").arg(index.data().toDouble());
+ }
+ }
+ }
+ break;
+ }
+
+ QStyleOptionViewItemV2 opt = setOptions(index, option);
+ const QStyleOptionViewItemV2 *v2 = qstyleoption_cast<const QStyleOptionViewItemV2 *>(&option);
+ opt.features = v2 ? v2->features : QStyleOptionViewItemV2::ViewItemFeatures(QStyleOptionViewItemV2::None);
+
+ painter->save();
+ QVariant value;
+ QRect displayRect;
+ displayRect = option.rect; // textRectangle(painter, d->textLayoutBounds(opt), opt.font, text);
+
+ QRect checkRect;
+ Qt::CheckState checkState = Qt::Unchecked;
+ value = index.data(Qt::CheckStateRole);
+ if (value.isValid()) {
+ checkState = static_cast<Qt::CheckState>(value.toInt());
+ checkRect = check(opt, opt.rect, value);
+ }
+
+ drawBackground(painter, opt, index);
+ drawCheck(painter, opt, checkRect, checkState);
+ drawDisplay(painter, opt, displayRect, text);
+ drawFocus(painter, opt, text.isEmpty() ? QRect() : displayRect);
+ painter->restore();
+ }
+
+
diff --git a/muse_qt4_evolution/muse/liste/ctrllistedit.h b/muse_qt4_evolution/muse/liste/ctrllistedit.h
new file mode 100644
index 00000000..75ed6008
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/ctrllistedit.h
@@ -0,0 +1,96 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRLLISTEDIT_H__
+#define __CTRLLISTEDIT_H__
+
+#include "al/pos.h"
+#include "listedit.h"
+#include "ui_ctrllistedit.h"
+
+//---------------------------------------------------------
+// CtrlDelegate
+//---------------------------------------------------------
+
+class CtrlDelegate : public QItemDelegate {
+ Q_OBJECT
+
+ virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem&,
+ const QModelIndex& index) const;
+ virtual void setEditorData(QWidget* editor, const QModelIndex&) const;
+ virtual void setModelData(QWidget* editor, QAbstractItemModel*,
+ const QModelIndex&) const;
+ void paint(QPainter*, const QStyleOptionViewItem&,
+ const QModelIndex&) const;
+
+ public:
+ CtrlDelegate(QObject* parent = 0);
+ };
+
+//---------------------------------------------------------
+// EscapeFilter
+//---------------------------------------------------------
+
+class EscapeFilter : public QObject {
+ Q_OBJECT
+ protected:
+ bool eventFilter(QObject*, QEvent*);
+ public:
+ EscapeFilter(QObject* parent = 0): QObject(parent) {}
+ };
+
+//---------------------------------------------------------
+// CtrlListEditor
+//---------------------------------------------------------
+
+class CtrlListEditor : public ListWidget {
+ Q_OBJECT
+
+ Ui::CtrlListEdit le;
+ Track* track;
+ Ctrl* c;
+ bool updateListDisabled;
+ ListEdit* listEdit;
+
+ void updateList();
+
+ private slots:
+ void controllerChanged(int id);
+ void itemActivated(QTreeWidgetItem*,int);
+ void itemChanged(QTreeWidgetItem*,int);
+ void currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void insertClicked();
+ void deleteClicked();
+ void nameEdited(const QString&);
+ void minValChanged(double);
+ void maxValChanged(double);
+ void defaultValChanged(double);
+
+ public:
+ CtrlListEditor(ListEdit*, QWidget* parent = 0);
+ virtual void setup(const ListType&);
+ void sendEscape();
+ Ctrl* ctrl() const { return c; }
+ Track* getTrack() const { return track; }
+ enum { TICK_COL, TIME_COL, VAL_COL };
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/liste/ctrllistedit.ui b/muse_qt4_evolution/muse/liste/ctrllistedit.ui
new file mode 100644
index 00000000..27389b7c
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/ctrllistedit.ui
@@ -0,0 +1,334 @@
+<ui version="4.0" >
+ <class>CtrlListEdit</class>
+ <widget class="QWidget" name="CtrlListEdit" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>341</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Controller:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="controllerName" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Id:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="ctrlId" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="moveWithPart" >
+ <property name="text" >
+ <string>move with part</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="discreteCheckBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>discrete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="logarithmicCheckBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>logarithmic</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="floatCheckBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>float</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>min:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDoubleSpinBox" name="minValue" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="l2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>max:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDoubleSpinBox" name="maxValue" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="l3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>default:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDoubleSpinBox" name="defaultValue" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="ctrlList" >
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="indentation" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="itemsExpandable" >
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Tick</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Time</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Value</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="deleteButton" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="insertButton" >
+ <property name="text" >
+ <string>Insert</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>231</width>
+ <height>29</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/liste/ieventdialog.cpp b/muse_qt4_evolution/muse/liste/ieventdialog.cpp
new file mode 100644
index 00000000..a2914ffc
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/ieventdialog.cpp
@@ -0,0 +1,428 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2007 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <QColor>
+#include <QDialogButtonBox>
+#include "ieventdialog.h"
+
+InsertEventDialog::InsertEventDialog(const Pos& time, Part* part, Event* ev,
+ QWidget* parent, Qt::WindowFlags f)
+ : QDialog(parent, f) {
+ setWindowTitle("Insert Event Dialog");
+
+ _selectedType = -1;
+
+
+ _part = part;
+
+ _lastDir = QDir::currentPath();
+
+ _mainLayout = new QGridLayout(parent);
+ //event type
+ QLabel* eventTypeLabel = new QLabel("Event Type", parent);
+ _mainLayout->addWidget(eventTypeLabel, 0, 0);
+ _eventTypeComboBox = new QComboBox(parent);
+ for(unsigned i = 0; i < IED_TypeCount; i++) {
+ _typeWidget.push_back(new QWidget(parent));
+ QGridLayout* tLayout = new QGridLayout(_typeWidget[i]);
+ if(i == IED_Note) {
+ _eventTypeComboBox->addItem(NoteSTR);
+ //pitch
+ QLabel* pitchLabel = new QLabel("Pitch", _typeWidget[i]);
+ tLayout->addWidget(pitchLabel, 0, 0);
+ /*_noteLabel = new QLabel("C4", _typeWidget[i]);
+ _noteLabel->setFrameShape(QFrame::Panel);
+ _noteLabel->setFrameShadow(QFrame::Sunken);
+ tLayout->addWidget(_noteLabel, 0, 1);*/
+ _pitchSpinBox = new QSpinBox(_typeWidget[i]);
+ _pitchSpinBox->setMaximum(127);
+ _pitchSpinBox->setMinimum(0);
+ _pitchSpinBox->setValue(ev && ev->type()==Note?ev->pitch():72/*C4*/);
+ tLayout->addWidget(_pitchSpinBox, 0, 1);
+ //Velocity
+ QLabel* velocityLabel = new QLabel("Velocity", _typeWidget[i]);
+ tLayout->addWidget(velocityLabel, 1, 0);
+ _velocitySpinBox = new QSpinBox(_typeWidget[i]);
+ _velocitySpinBox->setMaximum(127);
+ _velocitySpinBox->setMinimum(0);
+ _velocitySpinBox->setValue(ev && ev->type()==Note?ev->velo():70);
+ tLayout->addWidget(_velocitySpinBox, 1, 1);
+ //Velocity Off
+ /*QLabel* veloOffLabel = new QLabel("Velocity Off", _typeWidget[i]);
+ tLayout->addWidget(veloOffLabel, 2, 0);
+ _veloOffSpinBox = new QSpinBox(_typeWidget[i]);
+ _veloOffSpinBox->setMaximum(127);
+ _veloOffSpinBox->setMinimum(0);
+ _veloOffSpinBox->setValue(0);
+ tLayout->addWidget(_veloOffSpinBox, 2, 1);*/
+ //Length
+ QLabel* lengthLabel = new QLabel("Length", _typeWidget[i]);
+ tLayout->addWidget(lengthLabel, 2, 0);
+ _lengthSpinBox = new QSpinBox(_typeWidget[i]);
+ _lengthSpinBox->setMaximum(32768);
+ _lengthSpinBox->setMinimum(1);
+ _lengthSpinBox->setValue(ev && ev->type()==Note?ev->lenTick():384);
+ tLayout->addWidget(_lengthSpinBox, 2, 1);
+ }
+ else if(i == IED_ProgramChange) {
+ _eventTypeComboBox->addItem(ProgramChangeSTR);
+ //TODO
+ QLabel* programChangeEventTODO =
+ new QLabel("TODO : Program change event", _typeWidget[i]);
+ tLayout->addWidget(programChangeEventTODO, 0, 0, 1, 2);
+ }
+ else if(i == IED_ControlChange) {
+ _eventTypeComboBox->addItem(ControlChangeSTR);
+ //TODO
+ QLabel* controlChangeEventTODO =
+ new QLabel("TODO : Control change event", _typeWidget[i]);
+ tLayout->addWidget(controlChangeEventTODO, 0, 0, 1, 2);
+ }
+ else if(i == IED_Sysex) {
+ _eventTypeComboBox->addItem(SysexSTR);
+ //number of sysex
+ QLabel* numOfSysexLabel = new QLabel("Number of Sysex", _typeWidget[i]);
+ tLayout->addWidget(numOfSysexLabel, 0, 0);
+ _sysexCountSpinBox = new QSpinBox(_typeWidget[i]);
+ _sysexCountSpinBox->setMaximum(1024);
+ _sysexCountSpinBox->setMinimum(1);
+ _sysexCountSpinBox->setValue(1);
+ tLayout->addWidget(_sysexCountSpinBox, 0, 1);
+ //current sysex
+ QLabel* curSysexLabel = new QLabel("Current Sysex", _typeWidget[i]);
+ tLayout->addWidget(curSysexLabel, 1, 0);
+ _curSysexSpinBox = new QSpinBox(_typeWidget[i]);
+ _curSysexSpinBox->setMaximum(0);
+ _curSysexSpinBox->setMinimum(0);
+ _curSysexSpinBox->setValue(0);
+ tLayout->addWidget(_curSysexSpinBox, 1, 1);
+ //select from the instrument
+ QPushButton* selectButton = new QPushButton("Select from instrument",
+ _typeWidget[i]);
+ tLayout->addWidget(selectButton, 2, 0, 1, 2);
+ //load
+ _loadButton = new QPushButton("Load...", _typeWidget[i]);
+ tLayout->addWidget(_loadButton, 3, 0);
+ //save
+ _saveButton = new QPushButton("Save...", _typeWidget[i]);
+ tLayout->addWidget(_saveButton, 3, 1);
+ //length
+ QLabel* lengthLabel = new QLabel("Length", _typeWidget[i]);
+ tLayout->addWidget(lengthLabel, 4, 0);
+ _lengthIntLabel = new QLabel(ev && ev->type()==Sysex?
+ QString::number(ev->dataLen()):"0",
+ _typeWidget[i]);
+ tLayout->addWidget(_lengthIntLabel, 4, 1);
+ //text edit
+ _sysexTextEdit = new QTextEdit(_typeWidget[i]);
+ _sysexCursorPos = 0;
+ _dataSysex.push_back(ev && ev->type()==Sysex?
+ QByteArray((const char*)ev->data(), ev->dataLen())
+ :QByteArray());
+ _lengthIntLabel->setText(QString::number(sysexLength()));
+ _dataSysexStr.push_back(ev && ev->type()==Sysex?
+ charArray2Str((const char*)ev->data(),
+ ev->dataLen()):
+ "F0 F7");
+ tLayout->addWidget(_sysexTextEdit, 5, 0, 3, 2);
+ setSysexTextEdit();
+ QString HEX = "(?!F7)([A-F]|\\d){1,2}";
+ QString SRE = QString("^F0(\\s+)(") + HEX + QString("(\\s+))*F7$");
+ _hexRegExp = new QRegExp(SRE, Qt::CaseInsensitive);
+ }
+ tLayout->setMargin(0);
+ _typeWidget[i]->setLayout(tLayout);
+ _mainLayout->addWidget(_typeWidget[i], 2, 0, 1, 2);
+ }
+ _mainLayout->addWidget(_eventTypeComboBox, 0, 1);
+ //time
+ QLabel* timeLabel = new QLabel("Time", parent);
+ _mainLayout->addWidget(timeLabel, 1, 0);
+ _timePosEdit = new PosEdit(parent);
+ _timePosEdit->setValue(time);
+ _mainLayout->addWidget(_timePosEdit, 1, 1);
+ //Ok, cancel
+ QDialogButtonBox* OkCancelBox =
+ new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
+ Qt::Horizontal, parent);
+ _mainLayout->addWidget(OkCancelBox, 3, 0, 1, 2);
+
+ if(ev)
+ if(ev->type()==Note) _eventTypeComboBox->setCurrentIndex(IED_Note);
+ else if(ev->type()==Sysex) _eventTypeComboBox->setCurrentIndex(IED_Sysex);
+ else _eventTypeComboBox->setCurrentIndex(IED_Note);
+ else _eventTypeComboBox->setCurrentIndex(IED_Note);
+
+ updateType(_eventTypeComboBox->currentIndex());
+
+ setLayout(_mainLayout);
+
+ //connection
+ connect(_sysexTextEdit, SIGNAL(textChanged()), this,
+ SLOT(updateSysexTextEdit()));
+ connect(_sysexTextEdit, SIGNAL(cursorPositionChanged()), this,
+ SLOT(updateSysexCursor()));
+ connect(_eventTypeComboBox, SIGNAL(currentIndexChanged(int)), this,
+ SLOT(updateType(int)));
+ connect(_sysexCountSpinBox, SIGNAL(valueChanged(int)), this,
+ SLOT(updateSysexCount(int)));
+ connect(_curSysexSpinBox, SIGNAL(valueChanged(int)), this,
+ SLOT(updateCurSysexSpinBox(int)));
+ connect(_loadButton, SIGNAL(clicked()), this, SLOT(updateSysexLoad()));
+ connect(_saveButton, SIGNAL(clicked()), this, SLOT(updateSysexSave()));
+ connect(OkCancelBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(OkCancelBox, SIGNAL(rejected()), this, SLOT(reject()));
+}
+
+InsertEventDialog::~InsertEventDialog() {
+}
+
+EventList* InsertEventDialog::elResult() {
+ unsigned evTick;
+ evTick = (unsigned)IED_MAX(0, (int)_timePosEdit->pos().tick()
+ - (int)_part->tick());
+ Pos evPos(evTick);
+ EventList* res = new EventList;
+
+ int curType = _eventTypeComboBox->currentIndex();
+
+ if(curType == IED_Note) {
+ Event evNote(Note);
+ evNote.setPos(evPos);
+ evNote.setPitch(_pitchSpinBox->value());
+ evNote.setVelo(_velocitySpinBox->value());
+ //evNote.setVeloOff(_veloOffSpinBox->value());
+ evNote.setLenTick(_lengthSpinBox->value());
+ res->add(evNote);
+ return res;
+ }
+ else if(curType == IED_ProgramChange) {
+ //TODO
+ return NULL;
+ }
+ else if(curType == IED_ControlChange) {
+ //TODO
+ return NULL;
+ }
+ else if(curType == IED_Sysex) {
+ for(unsigned i = 0; (int)i < _sysexCountSpinBox->value(); i++) {
+ Event evSysex(Sysex);
+ evSysex.setPos(evPos);
+ evSysex.setData((const unsigned char*) _dataSysex[i].data(),
+ _dataSysex[i].size());
+ res->add(evSysex);
+ }
+ return res;
+ }
+ else return NULL;
+}
+
+int InsertEventDialog::sysexLength() {
+ return _dataSysex[_curSysexSpinBox->value()].size();
+}
+QString InsertEventDialog::charArray2Str(const char* s, int length) {
+ return ByteArray2Str(QByteArray(s, length));
+}
+QString InsertEventDialog::ByteArray2Str(const QByteArray& ba) {
+ QString res = "F0 ";
+ for(int i = 0; i < ba.size(); i++) {
+ res += QString::number((unsigned char)ba.at(i), 16);
+ res += " ";
+ }
+ res += "F7";
+ return res.toUpper();
+}
+QByteArray InsertEventDialog::Str2ByteArray(const QString& s) {
+ QByteArray ba;
+ QString simpli = s.simplified();
+ QStringList sl = simpli.split(" ");
+ bool ok;
+ for(int i = 1; i < sl.size() - 1; i++) {//i=1 and until size-1 to skip F0, F7
+ ba.push_back(sl[i].toInt(&ok, 16));
+ }
+ return ba;
+}
+char* InsertEventDialog::Str2CharArray(const QString& s) {
+ return Str2ByteArray(s).data();
+}
+
+void InsertEventDialog::setSysexTextEdit() {
+ QString s = _dataSysexStr[_curSysexSpinBox->value()].toUpper();
+ _sysexTextEdit->blockSignals(true);
+ //print in gray F0
+ _sysexTextEdit->setTextColor(Qt::darkGray);
+ _sysexTextEdit->setPlainText(s.left(2));
+ //move cursor at the end
+ QTextCursor tc1(_sysexTextEdit->document());
+ tc1.movePosition(QTextCursor::End);
+ _sysexTextEdit->setTextCursor(tc1);
+ //print in black the core
+ _sysexTextEdit->setTextColor(Qt::black);
+ _sysexTextEdit->insertPlainText(s.mid(2, s.size()-4));
+ //move cursor at the end
+ QTextCursor tc2(_sysexTextEdit->document());
+ tc2.movePosition(QTextCursor::End);
+ _sysexTextEdit->setTextCursor(tc2);
+ //print in gray F7
+ _sysexTextEdit->setTextColor(Qt::darkGray);
+ _sysexTextEdit->insertPlainText(s.right(2));
+ //relocate cursor
+ QTextCursor tc(_sysexTextEdit->document());
+ tc.setPosition(_sysexCursorPos);
+ _sysexTextEdit->setTextCursor(tc);
+ //update length label
+ _lengthIntLabel->setText(QString::number(sysexLength()));
+
+ _sysexTextEdit->blockSignals(false);
+}
+
+//SLOTS
+void InsertEventDialog::updateSysexTextEdit() {
+ int cur = _curSysexSpinBox->value();
+ int curCursor = _sysexTextEdit->textCursor().position();
+ QString data = _sysexTextEdit->toPlainText();
+ bool correctInput = _hexRegExp->exactMatch(data);
+
+ if(correctInput) {
+ _dataSysexStr[cur] = data;
+ _sysexCursorPos = curCursor;
+ }
+
+ //display text, relocate cursor and update length
+ setSysexTextEdit();
+ //update _dataSysex
+ _dataSysex[cur] = Str2ByteArray(_dataSysexStr[cur]);
+}
+void InsertEventDialog::updateSysexCursor() {
+ if(_dataSysexStr[_curSysexSpinBox->value()]
+ == _sysexTextEdit->toPlainText()) //only if the text hasn't changed
+ _sysexCursorPos = _sysexTextEdit->textCursor().position();
+}
+void InsertEventDialog::updateSysexCount(int c) {
+ while((int)_dataSysexStr.size() < c) {
+ _dataSysexStr.push_back(QString("F0 F7"));
+ QByteArray ba;
+ _dataSysex.push_back(ba);
+ }
+ if(c <= _curSysexSpinBox->value()) _curSysexSpinBox->setValue(c-1);
+ _curSysexSpinBox->setMaximum(c-1);
+}
+void InsertEventDialog::updateCurSysexSpinBox(int /*c*/) {
+ setSysexTextEdit();
+}
+void InsertEventDialog::updateSysexLoad() {
+ QByteArray ba;
+ QString fileName =
+ QFileDialog::getOpenFileName(this,
+ tr("Load Sysex dialog"),
+ _lastDir,
+ QString("*.syx;; *"));
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ _lastDir = fi.path();
+
+ QFile f(fileName);
+ if(f.open(QIODevice::ReadOnly)) {
+ ba = f.readAll();
+ bool sysexStart = false;
+ int sysexCount = 0;
+ for(int i = 0; i < ba.size(); i++) {
+ if((unsigned char)ba.at(i) == 0xF0) {
+ sysexStart = true;
+ sysexCount++;
+ while((int)_dataSysex.size() < sysexCount) {
+ QByteArray tempba;
+ _dataSysex.push_back(tempba);
+ _dataSysexStr.push_back(QString(""));
+ }
+ _dataSysex[sysexCount-1].clear();
+ }
+ else if((unsigned char)ba.at(i) == 0xF7) {
+ QByteArray endba(_dataSysex[sysexCount-1]);
+ sysexStart = false;
+ _dataSysexStr[sysexCount-1] = ByteArray2Str(endba);
+ }
+ else if(sysexStart) _dataSysex[sysexCount-1].push_back(ba.at(i));
+ }
+ _sysexCountSpinBox->setValue(sysexCount);
+ _curSysexSpinBox->setValue(0);
+ updateCurSysexSpinBox(0);
+ //Message dialog
+ if(sysexCount > 0) {
+ QMessageBox::information(this, tr("Sysex loaded"),
+ tr("MusE has successfully detected"
+ " and loaded ") +
+ QString::number(sysexCount) +
+ tr(" sysex messages."));
+ }
+ else {
+ QMessageBox::information(this, tr("No sysex"),
+ tr("No sysex in this file"));
+ }
+ }
+ else {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ }
+ }
+}
+void InsertEventDialog::updateSysexSave() {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save Sysex Dialog"),
+ _lastDir,
+ QString("*"));
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ _lastDir = fi.path();
+ QFile f(filename);
+ if(f.open(QIODevice::WriteOnly)) {
+ for(unsigned i = 0; i < _dataSysex.size(); i++) {
+ qint64 wok;
+ wok = f.write(QByteArray(1, 0xF0));
+ wok = f.write(_dataSysex[i]);
+ wok = f.write(QByteArray(1, 0xF7));
+ if(wok == -1) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot write the sysex number %1")
+ .arg(i));
+ }
+ }
+ }
+ else {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot save file %1").arg(filename));
+ }
+ }
+}
+void InsertEventDialog::updateType(int type) {
+ if(_selectedType != type) {
+ for(unsigned i = 0; i < IED_TypeCount; i++) {
+ if(type == (int)i) _typeWidget[i]->show();
+ else _typeWidget[i]->hide();
+ }
+ _selectedType = type;
+ resize(1, 1);
+ }
+}
diff --git a/muse_qt4_evolution/muse/liste/ieventdialog.h b/muse_qt4_evolution/muse/liste/ieventdialog.h
new file mode 100644
index 00000000..7906f6c9
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/ieventdialog.h
@@ -0,0 +1,117 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2007 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __IEVENTDIALOG_H__
+#define __IEVENTDIALOG_H__
+
+#include <QDialog>
+#include <vector>
+#include <QStringList>
+#include <QLineEdit>
+#include <QTextEdit>
+#include <QRegExp>
+#include <QDir>
+#include "awl/posedit.h"
+#include "midievent.h"
+#include "al/pos.h"
+#include "muse/event.h"
+#include "muse/part.h"
+
+class QDialog;
+using Awl::PosEdit;
+using AL::Pos;
+
+#define NoteSTR "Note"
+#define ProgramChangeSTR "Program change"
+#define ControlChangeSTR "Control change"
+#define SysexSTR "Sysex"
+
+#define IED_MAX(x, y) (x > y? x : y)
+
+class InsertEventDialog : public QDialog {
+ Q_OBJECT
+
+ QGridLayout* _mainLayout;
+ std::vector<QWidget*> _typeWidget;
+ int _selectedType;
+
+ QString _lastDir;
+
+ Part* _part;
+
+
+ //event type
+ QComboBox* _eventTypeComboBox;
+
+ //time
+ PosEdit* _timePosEdit;
+
+ //Note
+ QSpinBox* _pitchSpinBox;
+ QSpinBox* _velocitySpinBox;
+ QSpinBox* _veloOffSpinBox;
+ QSpinBox* _lengthSpinBox;
+ //QLabel* _noteLabel;
+
+ //Sysex
+ QSpinBox* _sysexCountSpinBox;
+ QSpinBox* _curSysexSpinBox;
+ QLabel* _lengthIntLabel;
+ QTextEdit* _sysexTextEdit;
+ QRegExp* _hexRegExp;
+ int _sysexCursorPos;
+ QPushButton* _loadButton;
+ QPushButton* _saveButton;
+ std::vector<QByteArray> _dataSysex;
+ std::vector<QString> _dataSysexStr;
+
+ enum {
+ IED_Note,
+ IED_ProgramChange,
+ IED_ControlChange,
+ IED_Sysex,
+ IED_TypeCount };
+
+ int sysexLength(); //return the length of the current sysex
+ void setSysexTextEdit(); //set the display of sysexTextEdit
+
+ public:
+ InsertEventDialog(const Pos& time, Part* part, Event* ev = NULL,
+ QWidget* parent = 0, Qt::WindowFlags f = 0);
+ ~InsertEventDialog();
+
+ EventList* elResult();
+
+ static QString charArray2Str(const char* s, int length); //add F0 and F7
+ static QString ByteArray2Str(const QByteArray& ba); //add F0 and F7
+ static QByteArray Str2ByteArray(const QString& s); //skip F0 and F7
+ static char* Str2CharArray(const QString& s);
+
+ private slots:
+ void updateSysexTextEdit();
+ void updateSysexCursor();
+ void updateSysexCount(int c);
+ void updateCurSysexSpinBox(int c);
+ void updateSysexLoad();
+ void updateSysexSave();
+ void updateType(int type);
+};
+
+#endif
diff --git a/muse_qt4_evolution/muse/liste/listedit.cpp b/muse_qt4_evolution/muse/liste/listedit.cpp
new file mode 100644
index 00000000..1f6138a8
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/listedit.cpp
@@ -0,0 +1,298 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "listedit.h"
+#include "ctrllistedit.h"
+#include "partlistedit.h"
+#include "tracklistedit.h"
+#include "song.h"
+#include "part.h"
+#include "ctrl.h"
+
+//---------------------------------------------------------
+// operator==
+//---------------------------------------------------------
+
+bool ListType::operator==(const ListType& t) const
+ {
+ return id == t.id && track == t.track
+ && part == t.part && (ctrl ? ctrl->id() == t.ctrl->id() : true);
+ }
+
+//---------------------------------------------------------
+// ListEdit
+//---------------------------------------------------------
+
+ListEdit::ListEdit(QWidget*)
+ : TopWin()
+ {
+ setWindowTitle(tr("MusE: List Edit"));
+
+ QSplitter* split = new QSplitter;
+ split->setOpaqueResize(true);
+ setCentralWidget(split);
+
+ list = new QTreeWidget;
+ list->setColumnCount(1);
+ list->setSelectionMode(QAbstractItemView::SingleSelection);
+ list->setRootIsDecorated(true);
+ list->setColumnCount(1);
+ list->setHeaderLabels(QStringList("Element"));
+ list->setSortingEnabled(false);
+ list->setUniformRowHeights(true);
+ split->addWidget(list);
+
+ stack = new QStackedWidget;
+ split->addWidget(stack);
+
+ ctrlPanel = new CtrlListEditor(this);
+ stack->addWidget(ctrlPanel);
+ partPanel = new PartListEditor(this);
+ stack->addWidget(partPanel);
+ trackPanel = new TrackListEditor(this);
+ stack->addWidget(trackPanel);
+
+ connect(list, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(itemChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
+ connect(list, SIGNAL(itemExpanded(QTreeWidgetItem*)), SLOT(itemExpanded(QTreeWidgetItem*)));
+ connect(list, SIGNAL(itemCollapsed(QTreeWidgetItem*)), SLOT(itemExpanded(QTreeWidgetItem*)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ list->resizeColumnToContents(0);
+ resize(900, 400);
+ }
+
+//---------------------------------------------------------
+// itemExpanded
+//---------------------------------------------------------
+
+void ListEdit::itemExpanded(QTreeWidgetItem*)
+ {
+ list->resizeColumnToContents(0);
+ }
+
+//---------------------------------------------------------
+// itemChanged
+//---------------------------------------------------------
+
+void ListEdit::itemChanged(QTreeWidgetItem* i, QTreeWidgetItem*)
+ {
+ if (i == 0)
+ return;
+ ListWidget* ew = ctrlPanel;
+ lt = i->data(0, Qt::UserRole).value<ListType>();
+ switch(lt.id) {
+ case LIST_TRACK:
+ ew = trackPanel;
+ break;
+ case LIST_PART:
+ ew = partPanel;
+ break;
+ case LIST_CTRL:
+ ew = ctrlPanel;
+ break;
+ default:
+ return;
+ }
+ ew->setup(lt);
+ stack->setCurrentWidget(ew);
+ }
+
+//---------------------------------------------------------
+// buildList
+//---------------------------------------------------------
+
+void ListEdit::buildList()
+ {
+ list->clear();
+ TrackList* tl = song->tracks();
+ int idx = 0;
+ ListType lt;
+
+ for (iTrack i = tl->begin(); i != tl->end(); ++i,++idx) {
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ Track* t = *i;
+ item->setText(0, t->name());
+ lt.id = LIST_TRACK;
+ lt.track = t;
+ item->setData(0, Qt::UserRole, QVariant::fromValue(lt));
+ list->insertTopLevelItem(idx, item);
+
+ PartList* pl = t->parts();
+ if (!pl->empty()) {
+ QTreeWidgetItem* pitem = new QTreeWidgetItem(item);
+ pitem->setFlags(pitem->flags() & ~Qt::ItemIsSelectable);
+ pitem->setText(0, tr("Parts"));
+ lt.id = LIST_NONE;
+ pitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));
+ for (iPart pi = pl->begin(); pi != pl->end(); ++pi) {
+ lt.id = LIST_PART;
+ lt.part = pi->second;
+ QTreeWidgetItem* ppitem = new QTreeWidgetItem(pitem);
+ ppitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));
+ ppitem->setText(0, pi->second->name());
+ }
+ }
+
+ CtrlList* cl = t->controller();
+ lt.part = 0;
+ if (!cl->empty()) {
+ QTreeWidgetItem* citem = new QTreeWidgetItem(item);
+ citem->setText(0, tr("Controller"));
+ citem->setFlags(citem->flags() & ~Qt::ItemIsSelectable);
+ lt.id = LIST_NONE;
+ citem->setData(0, Qt::UserRole, QVariant::fromValue(lt));
+ for (iCtrl ci = cl->begin(); ci != cl->end(); ++ci) {
+ QTreeWidgetItem* ccitem = new QTreeWidgetItem(citem);
+ ccitem->setText(0, ci->second->name());
+ lt.id = LIST_CTRL;
+ lt.ctrl = ci->second;
+ ccitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void ListEdit::songChanged(int flags)
+ {
+ if (flags & (SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_PART_INSERTED
+ | SC_PART_REMOVED)) {
+ buildList();
+ selectItem();
+ }
+ }
+
+//---------------------------------------------------------
+// findItem
+//---------------------------------------------------------
+
+QTreeWidgetItem* ListEdit::findItem(const ListType& lt, QTreeWidgetItem* item)
+ {
+ if (item->flags() & Qt::ItemIsSelectable) {
+ if (lt == item->data(0, Qt::UserRole).value<ListType>())
+ return item;
+ }
+ for (int n = 0; n < item->childCount(); ++n) {
+ QTreeWidgetItem* i = findItem(lt, item->child(n));
+ if (i)
+ return i;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// selectItem
+//---------------------------------------------------------
+
+void ListEdit::selectItem(const AL::Pos& p, Track* track, Part* part, Ctrl* ctrl)
+ {
+ _pos = p;
+ stack->setCurrentWidget(ctrlPanel);
+ if (ctrl)
+ lt.id = LIST_CTRL;
+ else if (part)
+ lt.id = LIST_PART;
+ else if (track)
+ lt.id = LIST_TRACK;
+ else
+ return;
+ lt.track = track;
+ lt.part = part;
+ lt.ctrl = ctrl;
+ selectItem();
+ }
+
+void ListEdit::selectItem()
+ {
+ stack->setCurrentWidget(ctrlPanel);
+ buildList();
+ for (int i = 0;; ++i) {
+ QTreeWidgetItem* item = list->topLevelItem(i);
+ if (item == 0) {
+ printf("MusE::ListEdit: Element not found\n");
+ break;
+ }
+ item = findItem(lt, item);
+ if (item) {
+ list->setItemExpanded(item, true);
+ list->setCurrentItem(item);
+ list->scrollToItem(item);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void ListEdit::read(QDomNode node)
+ {
+ QString trackName;
+ Track* track = 0;
+ Part* part = 0;
+ Ctrl* ctrl = 0;
+
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "Track") {
+ track = song->findTrack(e.text());
+ if (track == 0) {
+ printf("MusE::ListEdit::read: track not found\n");
+ }
+ }
+ else if (tag == "Pos")
+ _pos.read(node);
+ else if (tag == "Ctrl") {
+ int ctrlId = e.text().toInt();
+ ctrl = track->getController(ctrlId);
+ if (ctrl == 0) {
+ printf("MusE::ListEdit::read: controller not found: track %p\n", track);
+ printf("MusE::ListEdit::read: controller %d not found\n", ctrlId);
+ return;
+ }
+ }
+ else
+ AL::readProperties(this, node);
+ }
+ selectItem(_pos, track, part, ctrl);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void ListEdit::write(Xml& xml) const
+ {
+ xml.stag(metaObject()->className());
+ xml.writeProperties(this);
+
+ xml.tag("Track", lt.track->name());
+ if (lt.ctrl) {
+ xml.tag("Ctrl", lt.ctrl->id());
+ _pos.write(xml, "Pos");
+ }
+ xml.etag(metaObject()->className());
+ }
+
diff --git a/muse_qt4_evolution/muse/liste/listedit.h b/muse_qt4_evolution/muse/liste/listedit.h
new file mode 100644
index 00000000..b49e61c3
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/listedit.h
@@ -0,0 +1,98 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __LISTEDIT_H__
+#define __LISTEDIT_H__
+
+#include "al/pos.h"
+#include "cobject.h"
+
+class Track;
+class Part;
+class Ctrl;
+class CtrlListEditor;
+class PartListEditor;
+class TrackListEditor;
+
+//---------------------------------------------------------
+// ListType
+//---------------------------------------------------------
+
+enum { LIST_NONE, LIST_TRACK, LIST_PART, LIST_CTRL };
+
+struct ListType {
+ int id;
+ Track* track;
+ Part* part;
+ Ctrl* ctrl;
+
+ bool operator==(const ListType& t) const;
+ };
+
+Q_DECLARE_METATYPE(struct ListType);
+
+//---------------------------------------------------------
+// ListWidget
+// interface class
+//---------------------------------------------------------
+
+class ListWidget : public QWidget {
+ Q_OBJECT;
+
+ public:
+ ListWidget(QWidget* = 0) {}
+ virtual void setup(const ListType&) = 0;
+ };
+
+//---------------------------------------------------------
+// ListEdit
+//---------------------------------------------------------
+
+class ListEdit : public TopWin {
+ Q_OBJECT;
+
+ ListType lt;
+ AL::Pos _pos;
+
+ QStackedWidget* stack;
+ QTreeWidget* list;
+ CtrlListEditor* ctrlPanel;
+ PartListEditor* partPanel;
+ TrackListEditor* trackPanel;
+
+ void buildList();
+ QTreeWidgetItem* findItem(const ListType& lt, QTreeWidgetItem* item);
+ void selectItem();
+
+ private slots:
+ void itemChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void itemExpanded(QTreeWidgetItem*);
+ void songChanged(int);
+
+ public:
+ ListEdit(QWidget* parent = 0);
+ void selectItem(const AL::Pos&, Track*, Part*, Ctrl*);
+ virtual void read(QDomNode);
+ virtual void write(Xml& xml) const;
+ AL::Pos& pos() { return _pos; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/liste/partlistedit.cpp b/muse_qt4_evolution/muse/liste/partlistedit.cpp
new file mode 100644
index 00000000..d3db4de2
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/partlistedit.cpp
@@ -0,0 +1,434 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "partlistedit.h"
+#include "track.h"
+#include "song.h"
+#include "al/pos.h"
+#include "awl/posedit.h"
+#include "part.h"
+
+//---------------------------------------------------------
+// PartListEditor
+//---------------------------------------------------------
+
+PartListEditor::PartListEditor(ListEdit* e, QWidget* parent)
+ : ListWidget(parent)
+ {
+ listEdit = e;
+ updateListDisabled = false;
+ curEvent = NULL;
+ QWidget* cew = new QWidget;
+ le.setupUi(cew);
+ QVBoxLayout* layout = new QVBoxLayout;
+ layout->addWidget(cew);
+ setLayout(layout);
+
+ QFontMetrics fm(le.eventList->font());
+ int zW = fm.width("0");
+ le.eventList->setColumnWidth(TICK_COL, zW * 8);
+ le.eventList->setColumnWidth(TIME_COL, zW * 14);
+ EventDelegate* eventDelegate = new EventDelegate(this);
+ le.eventList->setItemDelegate(eventDelegate);
+
+ part = 0;
+
+ connect(le.eventList, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
+ SLOT(itemActivated(QTreeWidgetItem*,int)));
+ connect(le.eventList, SIGNAL(itemChanged(QTreeWidgetItem*, int)),
+ SLOT(itemChanged(QTreeWidgetItem*, int)));
+ connect(le.eventList,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ connect(le.insertButton, SIGNAL(clicked()), SLOT(insertClicked()));
+ connect(le.deleteButton, SIGNAL(clicked()), SLOT(deleteClicked()));
+ }
+
+//---------------------------------------------------------
+// getTrack
+//---------------------------------------------------------
+
+Track* PartListEditor::getTrack() const
+ {
+ return part->track();
+ }
+
+//---------------------------------------------------------
+// setup
+//---------------------------------------------------------
+
+void PartListEditor::setup(const ListType& lt)
+ {
+ part = lt.part;
+ le.partName->setText(part->name());
+ updateList();
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void PartListEditor::updateList() {
+ if(updateListDisabled) {
+ updateListDisabled = false;
+ return;
+ }
+ EventList* el = part->events();
+ int idx = 0;
+ le.eventList->clear();
+ for (iEvent i = el->begin(); i != el->end(); ++i, ++idx) {
+ Event e = i->second;
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setData(TICK_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignRight | Qt::AlignVCenter));
+ item->setData(TIME_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignRight | Qt::AlignVCenter));
+ item->setData(TICK_COL, Qt::DisplayRole, e.tick() + part->tick());
+ item->setData(TIME_COL, Qt::DisplayRole, e.tick() + part->tick());
+ item->setData(TYPE_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignRight | Qt::AlignVCenter));
+ item->setData(TYPE_COL, Qt::DisplayRole, e.eventTypeName());
+ item->setData(A_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignHCenter | Qt::AlignVCenter));
+ if(e.type()!=Sysex) item->setData(A_COL, Qt::DisplayRole, e.dataA());
+ item->setData(B_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignHCenter | Qt::AlignVCenter));
+ if(e.type()!=Sysex) item->setData(B_COL, Qt::DisplayRole, e.dataB());
+ item->setData(C_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignHCenter | Qt::AlignVCenter));
+ if(e.type()!=Sysex) item->setData(C_COL, Qt::DisplayRole, e.dataC());
+ item->setData(LEN_COL, Qt::TextAlignmentRole,
+ int(Qt::AlignHCenter | Qt::AlignVCenter));
+ item->setData(LEN_COL, Qt::DisplayRole,
+ (e.type()==Sysex?e.dataLen():e.lenTick()));
+ QString dataStr;
+ if(e.type()==Sysex)
+ dataStr = InsertEventDialog::charArray2Str((const char*)e.data(),
+ e.dataLen());
+ else dataStr = QString("");
+ item->setText(DATA_COL, dataStr);
+ le.eventList->insertTopLevelItem(idx, item);
+ }
+}
+
+//---------------------------------------------------------
+// item2Event
+//---------------------------------------------------------
+
+Event* PartListEditor::item2Event(QTreeWidgetItem* item, int time_col) {
+ if(item) {
+ int tick;
+ if(time_col == TICK_COL)
+ tick = item->data(TICK_COL, Qt::DisplayRole).toInt();
+ else tick = item->data(TIME_COL, Qt::DisplayRole).toInt();
+ int evTick = (unsigned)IED_MAX(0, (int)tick - (int)part->tick());
+ QString type = item->text(TYPE_COL);
+ if(type == "Note") {
+ Event* ev = new Event(Note);
+ int pitch = item->data(A_COL, Qt::DisplayRole).toInt();
+ int velo = item->data(B_COL, Qt::DisplayRole).toInt();
+ int len = item->data(LEN_COL, Qt::DisplayRole).toInt();
+ ev->setTick(evTick);
+ ev->setPitch(pitch);
+ ev->setVelo(velo);
+ ev->setLenTick(len);
+ return ev;
+ }
+ else if(type == "Sysex") {
+ Event* ev = new Event(Sysex);
+ QString dataStr = item->text(DATA_COL);
+ char* data = InsertEventDialog::Str2CharArray(dataStr);
+ int len = item->data(LEN_COL, Qt::DisplayRole).toInt();
+ ev->setTick(evTick);
+ ev->setData((const unsigned char*)data, len);
+ return ev;
+ }
+ else return NULL;
+ }
+ else return NULL;
+}
+
+//---------------------------------------------------------
+// itemActivated
+//---------------------------------------------------------
+
+void PartListEditor::itemActivated(QTreeWidgetItem* item, int column) {
+ AL::Pos time;
+ int tick = item->data(TIME_COL, Qt::DisplayRole).toInt();
+ time.setTick(tick);
+ Event* ev = item2Event(item);
+ EventList* el;
+
+ if(column == TYPE_COL) {
+ InsertEventDialog dialog(time, part, ev, this);
+ if(dialog.exec() == QDialog::Accepted) {
+ el = dialog.elResult();
+ if(el) {
+ if(ev) song->deleteEvent(*ev, part);
+ for(iEvent ie = el->begin(); ie != el->end(); ie++) {
+ Event e = ie->second;
+ song->addEvent(e, part);
+ }
+ }
+ }
+ }
+ else if((column==A_COL || column==B_COL || column==C_COL || column==LEN_COL)
+ && ev && ev->type()==Sysex) {
+ //DO NOTHING
+ }
+ else if(column == DATA_COL) {
+ if(ev && ev->type()==Sysex) {
+ InsertEventDialog dialog(time, part, ev, this);
+ if(dialog.exec() == QDialog::Accepted) {
+ el = dialog.elResult();
+ if(el) {
+ if(ev) song->deleteEvent(*ev, part);
+ for(iEvent ie = el->begin(); ie != el->end(); ie++) {
+ Event e = ie->second;
+ song->addEvent(e, part);
+ }
+ }
+ }
+ }
+ }
+ else le.eventList->openPersistentEditor(item, column);
+}
+
+//---------------------------------------------------------
+// itemChanged
+//---------------------------------------------------------
+
+void PartListEditor::itemChanged(QTreeWidgetItem* item, int column) {
+ updateListDisabled = (column != TICK_COL && column != TIME_COL);
+ if(item) {
+ Event* newEvent = item2Event(item, column);
+ song->changeEvent(*curEvent, *newEvent, part);
+ }
+}
+
+//---------------------------------------------------------
+// currentItemChanged
+//---------------------------------------------------------
+
+void PartListEditor::currentItemChanged(QTreeWidgetItem* cur,
+ QTreeWidgetItem* pre) {
+ if(pre) {
+ le.eventList->closePersistentEditor(pre, TICK_COL);
+ le.eventList->closePersistentEditor(pre, TIME_COL);
+ le.eventList->closePersistentEditor(pre, A_COL);
+ le.eventList->closePersistentEditor(pre, B_COL);
+ le.eventList->closePersistentEditor(pre, C_COL);
+ le.eventList->closePersistentEditor(pre, LEN_COL);
+ }
+ if(cur) {
+ curEvent = item2Event(cur);
+ }
+}
+
+//---------------------------------------------------------
+// insertClicked
+// insert one tick before current value
+//---------------------------------------------------------
+
+void PartListEditor::insertClicked()
+ {
+ QTreeWidgetItem* cur = le.eventList->currentItem();
+ AL::Pos time;
+ if(cur) {
+ int tick = cur->data(TIME_COL, Qt::DisplayRole).toInt();
+ time.setTick(tick);
+ }
+
+ EventList* el;
+
+ InsertEventDialog dialog(time, part, NULL, this);
+ if(dialog.exec() == QDialog::Accepted) {
+ el = dialog.elResult();
+ if(el) {
+ for(iEvent ie = el->begin(); ie != el->end(); ie++) {
+ Event e = ie->second;
+ song->addEvent(e, part);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// deleteClicked
+//---------------------------------------------------------
+
+void PartListEditor::deleteClicked()
+ {
+ QTreeWidgetItem* cur = le.eventList->currentItem();
+ if (cur == 0)
+ return;
+ Event* ev = item2Event(cur);
+ song->deleteEvent(*ev, part);
+ }
+
+//---------------------------------------------------------
+// EventDelegate
+//---------------------------------------------------------
+
+EventDelegate::EventDelegate(QObject* parent)
+ : QItemDelegate(parent)
+ {
+ }
+
+//---------------------------------------------------------
+// createEditor
+//---------------------------------------------------------
+
+QWidget* EventDelegate::createEditor(QWidget* pw,
+ const QStyleOptionViewItem& option, const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case PartListEditor::TICK_COL:
+ break;
+ case PartListEditor::TIME_COL:
+ return new Awl::PosEdit(pw);
+ case PartListEditor::TYPE_COL:
+ case PartListEditor::A_COL:
+ case PartListEditor::B_COL:
+ case PartListEditor::C_COL:
+ case PartListEditor::LEN_COL:
+ case PartListEditor::DATA_COL:
+ break;
+ }
+ return QItemDelegate::createEditor(pw, option, index);
+ }
+
+//---------------------------------------------------------
+// setEditorData
+//---------------------------------------------------------
+
+void EventDelegate::setEditorData(QWidget* editor,
+ const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case PartListEditor::TICK_COL:
+ break;
+ case PartListEditor::TIME_COL:
+ {
+ Awl::PosEdit* pe = static_cast<Awl::PosEdit*>(editor);
+ pe->setValue(AL::Pos(index.data().toInt()));
+ }
+ return;
+ case PartListEditor::TYPE_COL:
+ case PartListEditor::A_COL:
+ case PartListEditor::B_COL:
+ case PartListEditor::C_COL:
+ case PartListEditor::LEN_COL:
+ case PartListEditor::DATA_COL:
+ break;
+ }
+ QItemDelegate::setEditorData(editor, index);
+ }
+
+//---------------------------------------------------------
+// setModelData
+//---------------------------------------------------------
+
+void EventDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
+ const QModelIndex& index) const
+ {
+ switch(index.column()) {
+ case PartListEditor::TICK_COL:
+ break;
+ case PartListEditor::TIME_COL:
+ {
+ Awl::PosEdit* pe = static_cast<Awl::PosEdit*>(editor);
+ model->setData(index, pe->pos().tick(), Qt::DisplayRole);
+ }
+ return;
+ case PartListEditor::TYPE_COL:
+ case PartListEditor::A_COL:
+ case PartListEditor::B_COL:
+ case PartListEditor::C_COL:
+ case PartListEditor::LEN_COL:
+ case PartListEditor::DATA_COL:
+ break;
+ }
+ QItemDelegate::setModelData(editor, model, index);
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void EventDelegate::paint(QPainter* painter,
+ const QStyleOptionViewItem& option, const QModelIndex& index) const
+ {
+ QString text;
+ PartListEditor* ce = static_cast<PartListEditor*>(parent());
+
+ switch(index.column()) {
+ case PartListEditor::TICK_COL:
+ {
+ Track* track = ce->getTrack();
+ AL::Pos pos(index.data().toInt(), track->timeType());
+ text = QString("%1").arg(pos.tick());
+ }
+ break;
+ case PartListEditor::TIME_COL:
+ {
+ Track* track = ce->getTrack();
+ AL::Pos pos(index.data().toInt(), track->timeType());
+ int measure, beat, tick;
+ pos.mbt(&measure, &beat, &tick);
+ text.sprintf("%04d.%02d.%03u", measure+1, beat+1, tick);
+ }
+ break;
+ case PartListEditor::TYPE_COL:
+ case PartListEditor::A_COL:
+ case PartListEditor::B_COL:
+ case PartListEditor::C_COL:
+ case PartListEditor::LEN_COL:
+ case PartListEditor::DATA_COL:
+ QItemDelegate::paint(painter, option, index);
+ return;
+ }
+
+ QStyleOptionViewItemV2 opt = setOptions(index, option);
+ const QStyleOptionViewItemV2 *v2 = qstyleoption_cast<const QStyleOptionViewItemV2 *>(&option);
+ opt.features = v2 ? v2->features : QStyleOptionViewItemV2::ViewItemFeatures(QStyleOptionViewItemV2::None);
+
+ painter->save();
+ QVariant value;
+ QRect displayRect;
+ displayRect = option.rect; // textRectangle(painter, d->textLayoutBounds(opt), opt.font, text);
+
+ QRect checkRect;
+ Qt::CheckState checkState = Qt::Unchecked;
+ value = index.data(Qt::CheckStateRole);
+ if (value.isValid()) {
+ checkState = static_cast<Qt::CheckState>(value.toInt());
+ checkRect = check(opt, opt.rect, value);
+ }
+
+ drawBackground(painter, opt, index);
+ drawCheck(painter, opt, checkRect, checkState);
+ drawDisplay(painter, opt, displayRect, text);
+ drawFocus(painter, opt, text.isEmpty() ? QRect() : displayRect);
+ painter->restore();
+ }
+
+
+
diff --git a/muse_qt4_evolution/muse/liste/partlistedit.h b/muse_qt4_evolution/muse/liste/partlistedit.h
new file mode 100644
index 00000000..10eda46a
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/partlistedit.h
@@ -0,0 +1,79 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PARTLISTEDIT_H__
+#define __PARTLISTEDIT_H__
+
+#include "al/pos.h"
+#include "ieventdialog.h"
+#include "listedit.h"
+#include "ui_partlistedit.h"
+
+//---------------------------------------------------------
+// EventDelegate
+//---------------------------------------------------------
+
+class EventDelegate : public QItemDelegate {
+ Q_OBJECT
+
+ virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem&,
+ const QModelIndex& index) const;
+ virtual void setEditorData(QWidget* editor, const QModelIndex&) const;
+ virtual void setModelData(QWidget* editor, QAbstractItemModel*,
+ const QModelIndex&) const;
+ void paint(QPainter*, const QStyleOptionViewItem&,
+ const QModelIndex&) const;
+
+ public:
+ EventDelegate(QObject* parent = 0);
+ };
+
+//---------------------------------------------------------
+// PartListEditor
+//---------------------------------------------------------
+
+class PartListEditor : public ListWidget {
+ Q_OBJECT
+
+ ListEdit* listEdit;
+ Ui::PartListEdit le;
+ Part* part;
+ Event* curEvent;
+ bool updateListDisabled;
+
+ void updateList();
+ Event* item2Event(QTreeWidgetItem* item, int time_col = TICK_COL);
+
+ private slots:
+ void itemActivated(QTreeWidgetItem* item, int column);
+ void itemChanged(QTreeWidgetItem* item, int column);
+ void currentItemChanged(QTreeWidgetItem* cur, QTreeWidgetItem* pre);
+ void insertClicked();
+ void deleteClicked();
+
+ public:
+ PartListEditor(ListEdit*, QWidget* parent = 0);
+ virtual void setup(const ListType&);
+ Track* getTrack() const;
+ enum { TICK_COL, TIME_COL, TYPE_COL, A_COL, B_COL, C_COL, LEN_COL, DATA_COL};
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/liste/partlistedit.ui b/muse_qt4_evolution/muse/liste/partlistedit.ui
new file mode 100644
index 00000000..c575ef03
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/partlistedit.ui
@@ -0,0 +1,166 @@
+<ui version="4.0" >
+ <class>PartListEdit</class>
+ <widget class="QWidget" name="PartListEdit" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>341</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;">Part:&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="partName" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Eventlist:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="eventList" >
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="indentation" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="itemsExpandable" >
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Tick</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Time</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Type</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Val A</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Val B</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Val C</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Length</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Data</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="deleteButton" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="insertButton" >
+ <property name="text" >
+ <string>Insert</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>231</width>
+ <height>29</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/liste/tracklistedit.cpp b/muse_qt4_evolution/muse/liste/tracklistedit.cpp
new file mode 100644
index 00000000..24fc4722
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/tracklistedit.cpp
@@ -0,0 +1,65 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tracklistedit.h"
+#include "track.h"
+#include "song.h"
+#include "al/pos.h"
+#include "awl/posedit.h"
+
+//---------------------------------------------------------
+// TrackListEditor
+//---------------------------------------------------------
+
+TrackListEditor::TrackListEditor(ListEdit* e, QWidget* parent)
+ : ListWidget(parent)
+ {
+ listEdit = e;
+ QWidget* cew = new QWidget;
+ le.setupUi(cew);
+ QVBoxLayout* layout = new QVBoxLayout;
+ layout->addWidget(cew);
+ setLayout(layout);
+
+ QFontMetrics fm(le.partList->font());
+ int zW = fm.width("0");
+ le.partList->setColumnWidth(TICK_COL, zW * 8);
+ le.partList->setColumnWidth(TIME_COL, zW * 14);
+ track = 0;
+ }
+
+//---------------------------------------------------------
+// setup
+//---------------------------------------------------------
+
+void TrackListEditor::setup(const ListType& lt)
+ {
+ track = lt.track;
+ le.trackName->setText(track->name());
+ updateList();
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void TrackListEditor::updateList()
+ {
+ }
diff --git a/muse_qt4_evolution/muse/liste/tracklistedit.h b/muse_qt4_evolution/muse/liste/tracklistedit.h
new file mode 100644
index 00000000..7d4b57f7
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/tracklistedit.h
@@ -0,0 +1,50 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRACKLISTEDIT_H__
+#define __TRACKLISTEDIT_H__
+
+#include "al/pos.h"
+#include "listedit.h"
+#include "ui_tracklistedit.h"
+
+//---------------------------------------------------------
+// TrackListEditor
+//---------------------------------------------------------
+
+class TrackListEditor : public ListWidget {
+ Q_OBJECT
+
+ ListEdit* listEdit;
+ Ui::TrackListEdit le;
+ Track* track;
+
+ void updateList();
+
+ private slots:
+
+ public:
+ TrackListEditor(ListEdit*, QWidget* parent = 0);
+ virtual void setup(const ListType&);
+ enum { TICK_COL, TIME_COL };
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/liste/tracklistedit.ui b/muse_qt4_evolution/muse/liste/tracklistedit.ui
new file mode 100644
index 00000000..dfddf1c7
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/tracklistedit.ui
@@ -0,0 +1,146 @@
+<ui version="4.0" >
+ <class>TrackListEdit</class>
+ <widget class="QWidget" name="TrackListEdit" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>341</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;">Track:&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="trackName" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Partlist:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="partList" >
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="indentation" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="itemsExpandable" >
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Tick</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Time</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Len</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="deleteButton" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="insertButton" >
+ <property name="text" >
+ <string>Insert</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>231</width>
+ <height>29</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/marker/CMakeLists.txt b/muse_qt4_evolution/muse/marker/CMakeLists.txt
new file mode 100644
index 00000000..d031533c
--- /dev/null
+++ b/muse_qt4_evolution/muse/marker/CMakeLists.txt
@@ -0,0 +1,45 @@
+#
+#
+#
+#
+
+MACRO(WRAP_CPP outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.cpp)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_CPP)
+
+MACRO(WRAP_H outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.h)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_H)
+
+MACRO(WRAP_UI outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.ui)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_UI)
+
+set(mocs
+ markerview
+ )
+
+WRAP_H(mocH ${mocs})
+WRAP_CPP(mocCPP ${mocs})
+
+QT4_WRAP_CPP (moc_headers ${mocH})
+
+set (uics
+ )
+
+WRAP_UI(uiUI ${uics})
+QT4_WRAP_UI (ui_headers ${uiUI})
+
+set ( marker_src ${mocCPP} ${moc_headers})
+
+add_library ( marker STATIC ${marker_src})
+set_target_properties( marker
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/marker/markerview.cpp b/muse_qt4_evolution/muse/marker/markerview.cpp
new file mode 100644
index 00000000..7cab2d02
--- /dev/null
+++ b/muse_qt4_evolution/muse/marker/markerview.cpp
@@ -0,0 +1,413 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "markerview.h"
+#include "globals.h"
+#include "sync.h"
+#include "icons.h"
+#include "song.h"
+#include "awl/posedit.h"
+#include "al/al.h"
+#include "al/xml.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "al/marker.h"
+#include "shortcuts.h"
+
+enum { COL_TICK = 0, COL_SMPTE, COL_LOCK, COL_NAME };
+
+//---------------------------------------------------------
+// tick
+//---------------------------------------------------------
+
+unsigned MarkerItem::tick() const
+ {
+ return _marker->tick();
+ }
+
+//---------------------------------------------------------
+// name
+//---------------------------------------------------------
+
+const QString MarkerItem::name() const
+ {
+ return _marker->name();
+ }
+
+//---------------------------------------------------------
+// lock
+//---------------------------------------------------------
+
+bool MarkerItem::lock() const
+ {
+ return _marker->type() == AL::FRAMES;
+ }
+
+//---------------------------------------------------------
+// MarkerItem
+//---------------------------------------------------------
+
+MarkerItem::MarkerItem(QTreeWidget* parent, AL::Marker* m)
+ : QTreeWidgetItem(parent)
+ {
+ _marker = m;
+ setText(COL_NAME, m->name());
+ setTick(m->tick());
+ setIcon(COL_LOCK, m->type() == AL::FRAMES ? *lockIcon : QIcon());
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void MarkerItem::setName(const QString& s)
+ {
+ setText(COL_NAME, s);
+ _marker = song->setMarkerName(_marker, s);
+ }
+
+//---------------------------------------------------------
+// setLock
+//---------------------------------------------------------
+
+void MarkerItem::setLock(bool lck)
+ {
+ setIcon(COL_LOCK, lck ? *lockIcon : QIcon());
+ _marker = song->setMarkerLock(_marker, lck);
+ }
+
+//---------------------------------------------------------
+// setTick
+//---------------------------------------------------------
+
+void MarkerItem::setTick(unsigned v)
+ {
+ if (_marker->tick() != v)
+ _marker = song->setMarkerTick(_marker, v);
+ QString s;
+ int bar, beat;
+ int tick;
+ _marker->mbt(&bar, &beat, &tick);
+ s.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
+ setText(COL_TICK, s);
+
+ int min, sec, frame, subframe;
+ _marker->msf(&min, &sec, &frame, &subframe);
+
+ s.sprintf("%03d:%02d:%02d:%02d", min, sec, frame, subframe);
+ setText(COL_SMPTE, s);
+ }
+
+//---------------------------------------------------------
+// MarkerView
+//---------------------------------------------------------
+
+MarkerView::MarkerView()
+ : TopWin()
+ {
+ lockChange = false;
+ setWindowTitle(tr("MusE: Marker"));
+
+ //---------Actions----------------------------
+ QAction* markerAdd = new QAction(QIcon(*flagIcon), tr("add marker"), this);
+ markerAdd->setToolTip(tr("Add Marker"));
+ connect(markerAdd, SIGNAL(triggered()), SLOT(addMarker()));
+
+ QAction* markerDelete = getAction("delete", this);
+ connect(markerDelete, SIGNAL(triggered()), SLOT(deleteMarker()));
+
+ //---------Pulldown Menu----------------------------
+ QMenuBar* mb = menuBar();
+
+ QMenu* editMenu = mb->addMenu(tr("&Edit"));
+ editMenu->addAction(markerAdd);
+ editMenu->addAction(markerDelete);
+
+ //---------ToolBar----------------------------------
+ QToolBar* tools = addToolBar(tr("marker-tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+
+ QToolBar* edit = addToolBar(tr("edit tools"));
+ edit->addAction(markerAdd);
+ edit->addAction(markerDelete);
+
+ //---------------------------------------------------
+ // master
+ //---------------------------------------------------
+
+ QWidget* w = new QWidget;
+ setCentralWidget(w);
+ QVBoxLayout* vbox = new QVBoxLayout;
+ w->setLayout(vbox);
+
+ table = new QTreeWidget;
+ table->setUniformRowHeights(true);
+ table->setAlternatingRowColors(true);
+ table->setSelectionBehavior(QAbstractItemView::SelectRows);
+ table->setSelectionMode(QTreeWidget::SingleSelection);
+ table->setSortingEnabled(false);
+ table->setIndentation(0);
+ QStringList labels;
+ labels << tr("Bar:Beat:Tick")
+ << tr("Min:Sc:Fr:Sf")
+ << tr("Lock")
+ << tr("Text");
+ table->setHeaderLabels(labels);
+
+ table->header()->resizeSection(0, 120);
+ table->header()->resizeSection(1, 120);
+ table->header()->resizeSection(2, 50);
+ table->header()->resizeSection(3, 200);
+// table->header()->resizeSection(mnWidthMode(3, QTreeWidget::Maximum);
+ connect(table, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), SLOT(currentChanged(QTreeWidgetItem*)));
+ connect(table, SIGNAL(itemSelectionChanged()), SLOT(selectionChanged()));
+ connect(table, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SLOT(clicked(QTreeWidgetItem*)));
+
+ QGroupBox* props = new QGroupBox(tr("Marker Properties"));
+ QHBoxLayout* propsLayout = new QHBoxLayout;
+ props->setLayout(propsLayout);
+
+ editTick = new Awl::PosEdit;
+ propsLayout->addWidget(editTick);
+ editTick->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,
+ QSizePolicy::Fixed));
+
+ editSMPTE = new Awl::PosEdit;
+ propsLayout->addWidget(editSMPTE);
+ editSMPTE->setSmpte(true);
+ editSMPTE->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,
+ QSizePolicy::Fixed));
+
+ lock = new QToolButton;
+ propsLayout->addWidget(lock);
+ lock->setIcon(*lockIcon);
+ lock->setCheckable(true);
+
+ editName = new QLineEdit;
+ propsLayout->addWidget(editName);
+ editName->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
+ QSizePolicy::Preferred));
+ connect(editName, SIGNAL(textChanged(const QString&)),
+ SLOT(nameChanged(const QString&)));
+ connect(editTick, SIGNAL(valueChanged(const Pos&)),
+ SLOT(tickChanged(const Pos&)));
+ connect(editSMPTE, SIGNAL(valueChanged(const Pos&)),
+ SLOT(tickChanged(const Pos&)));
+ connect(editSMPTE, SIGNAL(valueChanged(const Pos&)),
+ editTick, SLOT(setValue(const Pos&)));
+ connect(editTick, SIGNAL(valueChanged(const Pos&)),
+ editSMPTE, SLOT(setValue(const Pos&)));
+ connect(lock, SIGNAL(toggled(bool)),
+ SLOT(lockChanged(bool)));
+ connect(song, SIGNAL(markerChanged(int)), SLOT(markerChanged(int)));
+
+ vbox->addWidget(table);
+ vbox->addWidget(props);
+
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+// connect(song, SIGNAL(songChanged(int)), SLOT(updateList()));
+ updateList();
+ markerChanged(Song::MARKER_CUR); // select current marker
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+
+void MarkerView::addMarker()
+ {
+ addMarker(song->cPos());
+ }
+
+void MarkerView::addMarker(const AL::Pos& pos)
+ {
+// new MarkerItem(table, m);
+ song->addMarker(QString(""), pos);
+ table->sortItems(0, Qt::AscendingOrder);
+ }
+
+//---------------------------------------------------------
+// deleteMarker
+//---------------------------------------------------------
+
+void MarkerView::deleteMarker()
+ {
+ MarkerItem* item = (MarkerItem*)table->currentItem();
+ if (item) {
+ AL::Marker* marker = item->marker();
+ delete item;
+ song->removeMarker(marker);
+ }
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void MarkerView::updateList()
+ {
+ table->clear();
+ AL::MarkerList* marker = song->marker();
+ for (AL::iMarker i = marker->begin(); i != marker->end(); ++i) {
+ AL::Marker* m = &i->second;
+ new MarkerItem(table, m);
+ }
+ }
+
+//---------------------------------------------------------
+// currentChanged
+//---------------------------------------------------------
+
+void MarkerView::currentChanged(QTreeWidgetItem* i)
+ {
+ MarkerItem* item = (MarkerItem*)i;
+ if (item == 0) { // never triggered
+ editTick->setValue(0);
+ editSMPTE->setValue(0);
+ editName->setText(QString(""));
+ lock->setChecked(false);
+ editSMPTE->setEnabled(false);
+ editTick->setEnabled(false);
+ lock->setEnabled(false);
+ editName->setEnabled(false);
+ }
+ else {
+ editTick->setValue(item->tick());
+ editSMPTE->setValue(item->tick());
+ editName->setText(item->name());
+ editName->setEnabled(true);
+ lock->setChecked(item->lock());
+ lock->setEnabled(true);
+ editSMPTE->setEnabled(item->lock());
+ editTick->setEnabled(!item->lock());
+ }
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MarkerView::selectionChanged()
+ {
+#if 0
+ QList<QTreeWidgetItem*> sel = table->selectedItems();
+ if (!sel.empty()) {
+ MarkerItem* item = (MarkerItem*)(sel[0]);
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// clicked
+//---------------------------------------------------------
+
+void MarkerView::clicked(QTreeWidgetItem* i)
+ {
+ MarkerItem* item = (MarkerItem*)i;
+ if (item == 0) {
+ table->clearSelection();
+ return;
+ }
+ Pos p(item->tick(), AL::TICKS);
+ song->setPos(0, p, true, true, false);
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MarkerView::nameChanged(const QString& s)
+ {
+ MarkerItem* item = (MarkerItem*)table->currentItem();
+ if (item)
+ item->setName(s);
+ }
+
+//---------------------------------------------------------
+// tickChanged
+//---------------------------------------------------------
+
+void MarkerView::tickChanged(const Pos& pos)
+ {
+ MarkerItem* item = (MarkerItem*)table->currentItem();
+ if (item) {
+ lockChange = true;
+ item->setTick(pos.tick());
+ Pos p(pos.tick(), AL::TICKS);
+ song->setPos(0, p, true, true, false);
+ lockChange = false;
+ }
+ }
+
+//---------------------------------------------------------
+// lockChanged
+//---------------------------------------------------------
+
+void MarkerView::lockChanged(bool lck)
+ {
+ MarkerItem* item = (MarkerItem*)table->currentItem();
+ if (item) {
+ item->setLock(lck);
+ editSMPTE->setEnabled(item->lock());
+ editTick->setEnabled(!item->lock());
+ }
+ }
+
+//---------------------------------------------------------
+// markerChanged
+//---------------------------------------------------------
+
+void MarkerView::markerChanged(int val)
+ {
+ if (lockChange)
+ return;
+ switch (val) {
+ case Song::MARKER_ADD:
+ case Song::MARKER_REMOVE:
+ updateList();
+ // fall through
+ case Song::MARKER_CUR:
+ {
+ AL::MarkerList* marker = song->marker();
+ for (AL::iMarker i = marker->begin(); i != marker->end(); ++i) {
+ if (i->second.current()) {
+ int n = table->topLevelItemCount();
+ for (int k = 0; k < n; ++k) {
+ MarkerItem* item = (MarkerItem*)(table->topLevelItem(k));
+ if (item->marker() == &i->second) {
+ table->setCurrentItem(item);
+ return;
+ }
+ }
+ }
+ }
+ }
+ break;
+ case Song::MARKER_NAME:
+ case Song::MARKER_TICK:
+ case Song::MARKER_LOCK:
+ break;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/marker/markerview.h b/muse_qt4_evolution/muse/marker/markerview.h
new file mode 100644
index 00000000..53205e3d
--- /dev/null
+++ b/muse_qt4_evolution/muse/marker/markerview.h
@@ -0,0 +1,98 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MARKERVIEW_H__
+#define __MARKERVIEW_H__
+
+#include "cobject.h"
+
+namespace Awl {
+ class PosEdit;
+ };
+
+namespace AL {
+ class Pos;
+ class Xml;
+ class Marker;
+ };
+using AL::Pos;
+using AL::Xml;
+
+
+//---------------------------------------------------------
+// MarkerItem
+//---------------------------------------------------------
+
+class MarkerItem : public QTreeWidgetItem {
+ AL::Marker* _marker;
+
+ public:
+ MarkerItem(QTreeWidget* parent, AL::Marker* m);
+ AL::Marker* marker() const { return _marker; }
+ unsigned tick() const;
+ const QString name() const;
+ bool lock() const;
+ void setName(const QString& s);
+ void setTick(unsigned t);
+ void setLock(bool lck);
+ };
+
+//---------------------------------------------------------
+// MarkerView
+//---------------------------------------------------------
+
+class MarkerView : public TopWin {
+ Q_OBJECT
+
+ bool lockChange;
+
+ QTreeWidget* table;
+ QLineEdit* editName;
+ Awl::PosEdit* editSMPTE;
+ Awl::PosEdit* editTick;
+ QToolButton* lock;
+
+ void closeEvent(QCloseEvent* e) {
+ emit closed();
+ QMainWindow::closeEvent(e);
+ }
+
+ signals:
+ void closed();
+
+ private slots:
+ void addMarker();
+ void addMarker(const AL::Pos&);
+ void deleteMarker();
+ void currentChanged(QTreeWidgetItem*);
+ void selectionChanged();
+ void nameChanged(const QString&);
+ void tickChanged(const Pos&);
+ void lockChanged(bool);
+ void markerChanged(int);
+ void clicked(QTreeWidgetItem*);
+ void updateList();
+
+ public:
+ MarkerView();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/master/CMakeLists.txt b/muse_qt4_evolution/muse/master/CMakeLists.txt
new file mode 100644
index 00000000..a20d3be1
--- /dev/null
+++ b/muse_qt4_evolution/muse/master/CMakeLists.txt
@@ -0,0 +1,37 @@
+#
+#
+#
+#
+
+MACRO(WRAP_CPP outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.cpp)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_CPP)
+
+MACRO(WRAP_H outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.h)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_H)
+
+MACRO(WRAP_UI outfiles )
+ FOREACH(it ${ARGN})
+ SET(${outfiles} ${${outfiles}} ${it}.ui)
+ ENDFOREACH(it)
+ ENDMACRO(WRAP_UI)
+
+set( mocs master masteredit )
+
+WRAP_H(mocH ${mocs})
+WRAP_CPP(mocCPP ${mocs})
+
+QT4_WRAP_CPP (moc_headers ${mocH})
+
+set ( master_src ${mocCPP} ${moc_headers})
+
+add_library ( master STATIC ${master_src})
+set_target_properties( master
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/master/master.cpp b/muse_qt4_evolution/muse/master/master.cpp
new file mode 100644
index 00000000..d033753c
--- /dev/null
+++ b/muse_qt4_evolution/muse/master/master.cpp
@@ -0,0 +1,233 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "master.h"
+#include "icons.h"
+#include "audio.h"
+#include "al/tempo.h"
+#include "song.h"
+
+static const int minTempo = 50;
+static const int maxTempo = 250;
+
+//---------------------------------------------------------
+// pix2tempo
+//---------------------------------------------------------
+
+int MasterCanvas::pix2tempo(int val) const
+ {
+ return maxTempo*1000 - mapyDev(val);
+ }
+
+//---------------------------------------------------------
+// tempo2pix
+//---------------------------------------------------------
+
+int MasterCanvas::tempo2pix(int val) const
+ {
+ return mapy(maxTempo*1000 - lrint(60000000000.0/val));
+ }
+
+//---------------------------------------------------------
+// MasterCanvas
+//---------------------------------------------------------
+
+MasterCanvas::MasterCanvas()
+ : TimeCanvas(TIME_CANVAS)
+ {
+ setMarkerList(song->marker());
+ setMag(xmag(), 400.0 / (maxTempo * 1000.0));
+ setYMagRange(40.0 / (maxTempo*1000), 4000.0 / (maxTempo*1000));
+ setVSize((maxTempo - minTempo) * 1000);
+ setYFit(true);
+ verticalScrollBar()->setSingleStep(1000);
+ verticalScrollBar()->setMinimum(minTempo * 1000);
+ verticalScrollBar()->setMaximum(maxTempo * 1000);
+ drag = DRAG_OFF;
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void MasterCanvas::paint(QPainter& p, QRect rect)
+ {
+ int y = rect.y();
+
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ int y2 = lrint(maxTempo * 1000 * _ymag);
+ const AL::TempoList* tl = &AL::tempomap;
+ for (AL::ciTEvent i = tl->begin(); i != tl->end(); ++i) {
+ AL::TEvent* e = i->second;
+ int x1 = pos2pix(AL::Pos(i->first));
+ int x2 = pos2pix(AL::Pos(i->second->tick));
+ int y1 = lrint(_ymag * (maxTempo*1000 - lrint(60000000000.0/e->tempo)));
+ if (y1 < y)
+ y1 = y;
+ p.fillRect(x1, y1, x2 - x1, y2 - y1, Qt::blue);
+ }
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void MasterCanvas::mousePress(QMouseEvent* event)
+ {
+ start = event->pos();
+ int x = start.x() - rCanvasA.x();
+ int y = start.y() - rCanvasA.y();
+
+ switch (tool()) {
+ case PointerTool:
+ drag = DRAG_LASSO_START;
+ break;
+
+ case PencilTool:
+ drag = DRAG_NEW;
+ song->startUndo();
+ newVal(x, x, y);
+ break;
+
+ case RubberTool:
+ drag = DRAG_DELETE;
+ song->startUndo();
+ deleteVal(x, x);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void MasterCanvas::mouseMove(QPoint pos)
+ {
+ int y = pos.y() - rCanvasA.y();
+ int x = pos.x() - rCanvasA.x();
+
+ QPoint dist = pos - start;
+ // bool moving = dist.y() >= 3 || dist.y() <= 3 || dist.x() >= 3 || dist.x() <= 3;
+
+ int sx = start.x() - rCanvasA.x();
+ switch (drag) {
+ case DRAG_NEW:
+ newVal(sx, x, y);
+ start = pos;
+ break;
+
+ case DRAG_DELETE:
+ deleteVal(sx, x);
+ start = pos;
+ break;
+
+ default:
+ break;
+ }
+ emit tempoChanged(pix2tempo(y));
+// emit timeChanged(editor->rasterVal(x));
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void MasterCanvas::mouseRelease(QMouseEvent*)
+ {
+ switch (drag) {
+ case DRAG_RESIZE:
+ case DRAG_NEW:
+ case DRAG_DELETE:
+ song->endUndo(SC_TEMPO);
+ break;
+ default:
+ break;
+ }
+ drag = DRAG_OFF;
+ }
+
+//---------------------------------------------------------
+// deleteVal
+//---------------------------------------------------------
+
+bool MasterCanvas::deleteVal1(const AL::Pos& p1, const AL::Pos& p2)
+ {
+ bool songChanged = false;
+
+ AL::TempoList* tl = &AL::tempomap;
+ for (AL::iTEvent i = tl->begin(); i != tl->end(); ++i) {
+ if (i->first < p1.tick())
+ continue;
+ if (i->first >= p2.tick())
+ break;
+ AL::iTEvent ii = i;
+ ++ii;
+ if (ii != tl->end()) {
+ int tempo = ii->second->tempo;
+ audio->msgDeleteTempo(i->first, tempo, false);
+ songChanged = true;
+ }
+ }
+ return songChanged;
+ }
+
+//---------------------------------------------------------
+// deleteVal
+//---------------------------------------------------------
+
+void MasterCanvas::deleteVal(int x1, int x2)
+ {
+ AL::Pos p1(pix2pos(x1));
+ AL::Pos p2(pix2pos(x2));
+ p1.downSnap(raster());
+ p2.upSnap(raster());
+ if (deleteVal1(p1, p2))
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// newVal
+//---------------------------------------------------------
+
+void MasterCanvas::newVal(int x1, int x2, int y)
+ {
+ int tempo = lrint(60000000000.0 / pix2tempo(y));
+ AL::Pos p1 = pix2pos(x1);
+ p1.downSnap(raster());
+ AL::Pos p2 = pix2pos(x2);
+ p2.upSnap(raster());
+
+ if (p1 > p2) {
+ AL::Pos tmp = p2;
+ p2 = p1;
+ p1 = tmp;
+ }
+ deleteVal1(p1, p2);
+ audio->msgAddTempo(p1.tick(), tempo, false);
+ widget()->update();
+ }
+
+
diff --git a/muse_qt4_evolution/muse/master/master.h b/muse_qt4_evolution/muse/master/master.h
new file mode 100644
index 00000000..54899663
--- /dev/null
+++ b/muse_qt4_evolution/muse/master/master.h
@@ -0,0 +1,63 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MASTER_H__
+#define __MASTER_H__
+
+#include "awl/tcanvas.h"
+
+class GraphMidiEditor;
+
+//---------------------------------------------------------
+// MasterCanvas
+//---------------------------------------------------------
+
+class MasterCanvas : public TimeCanvas {
+ QPoint start;
+
+ enum {
+ DRAG_OFF, DRAG_LASSO_START, DRAG_RESIZE, DRAG_NEW,
+ DRAG_DELETE
+ } drag;
+
+ Q_OBJECT
+ virtual void mouseMove(QPoint);
+ virtual void mousePress(QMouseEvent* event);
+ virtual void mouseRelease(QMouseEvent*);
+
+ virtual void paint(QPainter&, QRect);
+
+ void newVal(int x1, int x2, int y);
+ bool deleteVal1(const AL::Pos&, const AL::Pos&);
+ void deleteVal(int x1, int x2);
+
+ int pix2tempo(int) const;
+ int tempo2pix(int) const;
+
+ signals:
+ void tempoChanged(int);
+
+ public:
+ MasterCanvas();
+ virtual ~MasterCanvas() {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/master/masteredit.cpp b/muse_qt4_evolution/muse/master/masteredit.cpp
new file mode 100644
index 00000000..e3271ea6
--- /dev/null
+++ b/muse_qt4_evolution/muse/master/masteredit.cpp
@@ -0,0 +1,302 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "masteredit.h"
+#include "awl/poslabel.h"
+#include "awl/tempoedit.h"
+#include "awl/tempolabel.h"
+#include "awl/sigedit.h"
+#include "master.h"
+#include "al/tempo.h"
+#include "widgets/tools.h"
+
+static int rasterTable[] = { 1, 0, 768, 384, 192, 96 };
+static const char* rastval[] = {
+ QT_TR_NOOP("Off"), "Bar", "1/2", "1/4", "1/8", "1/16"
+ };
+
+int MasterEdit::initRaster = MasterEdit::INIT_RASTER;
+int MasterEdit::initWidth = MasterEdit::INIT_WIDTH;
+int MasterEdit::initHeight = MasterEdit::INIT_HEIGHT;
+double MasterEdit::initXmag = 0.04;
+double MasterEdit::initYmag = 1.0;
+
+//---------------------------------------------------------
+// MasterEdit
+//---------------------------------------------------------
+
+MasterEdit::MasterEdit()
+ : Editor()
+ {
+ setWindowTitle(tr("MusE: Mastertrack"));
+
+ //---------ToolBar----------------------------------
+ tools = addToolBar(tr("edit tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+ tools->addSeparator();
+
+ tools2 = new EditToolBar(this,
+ PointerTool | PencilTool | RubberTool);
+ addToolBar(tools2);
+
+ QToolBar* enableMaster = addToolBar(tr("EnableTempomap"));
+ enableMasterAction = enableMaster->addAction(tr("Tempomap"));
+ enableMasterAction->setCheckable(true);
+ enableMasterAction->setToolTip(tr("Enable use of tempo map"));
+ enableMasterAction->setChecked(song->masterFlag());
+ connect(enableMasterAction, SIGNAL(triggered(bool)), song, SLOT(setMasterFlag(bool)));
+
+ addToolBarBreak();
+ QToolBar* info = new QToolBar(tr("Info"), this);
+ addToolBar(info);
+
+ QLabel* label = new QLabel(tr("Cursor"));
+ info->addWidget(label);
+
+ cursorPos = new PosLabel;
+ info->addWidget(cursorPos);
+ tempo = new TempoLabel(info);
+ info->addWidget(tempo);
+
+ info->addWidget(new QLabel(tr("Snap")));
+ rasterLabel = new QComboBox;
+ info->addWidget(rasterLabel);
+ for (int i = 0; i < 6; i++)
+ rasterLabel->addItem(tr(rastval[i]), i);
+ connect(rasterLabel, SIGNAL(activated(int)), SLOT(_setRaster(int)));
+
+ cursorPos->setToolTip(tr("time at cursor position"));
+ tempo->setToolTip(tr("tempo at cursor position"));
+
+ //---------values for current position---------------
+ info->addWidget(new QLabel(tr("CurPos ")));
+ curTempo = new TempoEdit(info);
+ info->addWidget(curTempo);
+ curSig = new SigEdit(info);
+ info->addWidget(curSig);
+ curSig->setValue(AL::TimeSignature(4, 4));
+ curTempo->setToolTip(tr("tempo at current position"));
+ curSig->setToolTip(tr("time signature at current position"));
+ connect(curSig, SIGNAL(valueChanged(const AL::TimeSignature&)), song, SLOT(setSig(const AL::TimeSignature&)));
+ connect(curTempo, SIGNAL(tempoChanged(int)), song, SLOT(setTempo(int)));
+
+ //---------------------------------------------------
+ // master
+ //---------------------------------------------------
+
+ tcanvas = new MasterCanvas;
+ setCentralWidget(tcanvas);
+ tcanvas->setEndPos(AL::Pos(song->len()));
+ setRaster(INIT_RASTER);
+ tcanvas->setMag(initXmag, initYmag);
+
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), tcanvas, SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), SLOT(posChanged(int,const AL::Pos&,bool)));
+ connect(song, SIGNAL(lenChanged(const AL::Pos&)), tcanvas, SLOT(setEndPos(const AL::Pos&)));
+ connect(song, SIGNAL(tempoChanged()), tcanvas, SLOT(tempoChanged()));
+
+ connect(tcanvas, SIGNAL(posChanged(int,const AL::Pos&)), song, SLOT(setPos(int,const AL::Pos&)));
+ connect(tcanvas, SIGNAL(cursorPos(const AL::Pos&,bool)), cursorPos, SLOT(setValue(const AL::Pos&,bool)));
+
+ connect(tcanvas, SIGNAL(tempoChanged(int)), SLOT(setTempo(int)));
+ connect(tools2, SIGNAL(toolChanged(int)), tcanvas, SLOT(setTool(int)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+
+ resize(initWidth, initHeight);
+ }
+
+//---------------------------------------------------------
+// ~MasterEdit
+//---------------------------------------------------------
+
+MasterEdit::~MasterEdit()
+ {
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MasterEdit::songChanged(int type)
+ {
+ if (type & SC_TEMPO) {
+ int tempo = AL::tempomap.tempo(song->cpos());
+ curTempo->setTempo(tempo);
+ }
+ if (type & SC_MASTER)
+ enableMasterAction->setChecked(song->masterFlag());
+ }
+
+//---------------------------------------------------------
+// _setRaster
+//---------------------------------------------------------
+
+void MasterEdit::_setRaster(int index)
+ {
+ setRaster(rasterTable[index]);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void MasterEdit::setRaster(int val)
+ {
+ _raster = val;
+ tcanvas->setRaster(val);
+ for (unsigned i = 0; i < sizeof(rasterTable)/sizeof(*rasterTable); ++i) {
+ if (rasterTable[i] == val) {
+ rasterLabel->setCurrentIndex(i);
+ return;
+ }
+ }
+ rasterLabel->setCurrentIndex(1);
+ }
+
+//---------------------------------------------------------
+// posChanged
+//---------------------------------------------------------
+
+void MasterEdit::posChanged(int idx, const AL::Pos& pos, bool)
+ {
+ if (idx == 0) {
+ unsigned val = pos.tick();
+ int tempo = AL::tempomap.tempo(val);
+ AL::TimeSignature sig = AL::sigmap.timesig(val);
+ curSig->blockSignals(true);
+
+ curTempo->setTempo(tempo);
+ curSig->setValue(sig);
+
+ curSig->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void MasterEdit::setTempo(int val)
+ {
+ if (val == -1)
+ tempo->setEnabled(false);
+ else {
+ tempo->setEnabled(true);
+ tempo->setValue(val);
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MasterEdit::read(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling())
+ AL::readProperties(this, node);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MasterEdit::write(Xml& xml) const
+ {
+ xml.stag(metaObject()->className());
+ xml.writeProperties(this);
+ xml.etag(metaObject()->className());
+ }
+
+//---------------------------------------------------------
+// tool
+//---------------------------------------------------------
+
+int MasterEdit::tool() const
+ {
+ return tcanvas->tool();
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void MasterEdit::setTool(int n)
+ {
+ tcanvas->setTool(n);
+ tools2->set(n);
+ }
+
+//---------------------------------------------------------
+// canvasPos
+//---------------------------------------------------------
+
+QPoint MasterEdit::canvasPos() const
+ {
+ return tcanvas->getWPos();
+ }
+
+//---------------------------------------------------------
+// setCanvasPos
+//---------------------------------------------------------
+
+void MasterEdit::setCanvasPos(const QPoint& p)
+ {
+ tcanvas->setWPos(p);
+ }
+
+//---------------------------------------------------------
+// xmag
+//---------------------------------------------------------
+
+double MasterEdit::xmag() const
+ {
+ return tcanvas->xmag();
+ }
+
+//---------------------------------------------------------
+// setXmag
+//---------------------------------------------------------
+
+void MasterEdit::setXmag(double val)
+ {
+ tcanvas->setMag(val, tcanvas->ymag());
+ }
+
+//---------------------------------------------------------
+// ymag
+//---------------------------------------------------------
+
+double MasterEdit::ymag() const
+ {
+ return tcanvas->ymag();
+ }
+
+//---------------------------------------------------------
+// setYmag
+//---------------------------------------------------------
+
+void MasterEdit::setYmag(double val)
+ {
+ tcanvas->setMag(tcanvas->xmag(), val);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/master/masteredit.h b/muse_qt4_evolution/muse/master/masteredit.h
new file mode 100644
index 00000000..e60f3a67
--- /dev/null
+++ b/muse_qt4_evolution/muse/master/masteredit.h
@@ -0,0 +1,107 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MASTER_EDIT_H__
+#define __MASTER_EDIT_H__
+
+#include "editor.h"
+#include "widgets/noteinfo.h"
+#include "cobject.h"
+
+class MasterCanvas;
+class EditToolBar;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+namespace Awl {
+ class TempoEdit;
+ class SigEdit;
+ class PosLabel;
+ class TempoLabel;
+ };
+using Awl::TempoEdit;
+using Awl::SigEdit;
+using Awl::PosLabel;
+using Awl::TempoLabel;
+
+//---------------------------------------------------------
+// MasterEdit
+//---------------------------------------------------------
+
+class MasterEdit : public Editor {
+ Q_OBJECT
+ Q_PROPERTY(int raster READ raster WRITE setRaster)
+ Q_PROPERTY(QPoint canvasPos READ canvasPos WRITE setCanvasPos)
+ Q_PROPERTY(int tool READ tool WRITE setTool)
+ Q_PROPERTY(double xmag READ xmag WRITE setXmag)
+ Q_PROPERTY(double ymag READ ymag WRITE setYmag)
+
+ EditToolBar* tools2;
+ QAction* enableMasterAction;
+ TempoEdit* curTempo;
+ SigEdit* curSig;
+ QComboBox* rasterLabel;
+ QToolBar* tools;
+ PosLabel* cursorPos;
+ TempoLabel* tempo;
+
+ int _raster;
+
+ MasterCanvas* canvas() { return (MasterCanvas*)tcanvas; }
+
+ private slots:
+ void _setRaster(int);
+ void posChanged(int idx, const AL::Pos& pos, bool);
+ void setTempo(int);
+ void songChanged(int);
+
+ signals:
+ void deleted(void*);
+
+ public:
+ MasterEdit();
+ ~MasterEdit();
+ void read(QDomNode);
+ void write(Xml&) const;
+
+ int raster() const { return _raster; }
+ void setRaster(int val);
+ QPoint canvasPos() const;
+ void setCanvasPos(const QPoint&);
+ double xmag() const;
+ void setXmag(double val);
+ double ymag() const;
+ void setYmag(double val);
+ int tool() const;
+ void setTool(int);
+
+ static int initRaster, initWidth, initHeight;
+ static double initXmag, initYmag;
+
+ static const int INIT_RASTER = 384;
+ static const int INIT_WIDTH = 650;
+ static const int INIT_HEIGHT = 450;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midi.cpp b/muse_qt4_evolution/muse/midi.cpp
new file mode 100644
index 00000000..a182fe4a
--- /dev/null
+++ b/muse_qt4_evolution/muse/midi.cpp
@@ -0,0 +1,633 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "midi.h"
+#include "midiedit/drummap.h"
+#include "event.h"
+#include "globals.h"
+#include "midictrl.h"
+#include "midictrl.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "wave.h"
+#include "synth.h"
+#include "sync.h"
+#include "gconfig.h"
+#include "ticksynth.h"
+#include "al/tempo.h"
+#include "al/sig.h"
+#include "part.h"
+#include "midiplugin.h"
+#include "midiinport.h"
+#include "midioutport.h"
+#include "instruments/minstrument.h"
+
+extern void dump(const unsigned char* p, int n);
+
+unsigned const char gmOnMsg[] = {
+ 0x7e, // Non-Real Time header
+ 0x7f, // ID of target device (7f = all devices)
+ 0x09,
+ 0x01
+ };
+unsigned const char gsOnMsg[] = {
+ 0x41, // roland id
+ 0x10, // Id of target device (default = 10h for roland)
+ 0x42, // model id (42h = gs devices)
+ 0x12, // command id (12h = data set)
+ 0x40, // address & value
+ 0x00,
+ 0x7f,
+ 0x00,
+ 0x41 // checksum?
+ };
+unsigned const char xgOnMsg[] = {
+ 0x43, // yamaha id
+ 0x10, // device number (0)
+ 0x4c, // model id
+ 0x00, // address (high, mid, low)
+ 0x00,
+ 0x7e,
+ 0x00 // data
+ };
+unsigned const int gmOnMsgLen = sizeof(gmOnMsg);
+unsigned const int gsOnMsgLen = sizeof(gsOnMsg);
+unsigned const int xgOnMsgLen = sizeof(xgOnMsg);
+
+/*---------------------------------------------------------
+ * midi_meta_name
+ *---------------------------------------------------------*/
+
+QString midiMetaName(int meta)
+ {
+ const char* s = "";
+ switch (meta) {
+ case 0: s = "Sequence Number"; break;
+ case 1: s = "Text Event"; break;
+ case 2: s = "Copyright"; break;
+ case 3: s = "Sequence/Track Name"; break;
+ case 4: s = "Instrument Name"; break;
+ case 5: s = "Lyric"; break;
+ case 6: s = "Marker"; break;
+ case 7: s = "Cue Point"; break;
+ case 8:
+ case 9:
+ case 0x0a:
+ case 0x0b:
+ case 0x0c:
+ case 0x0d:
+ case 0x0e:
+ case 0x0f: s = "Text"; break;
+ case 0x20: s = "Channel Prefix"; break;
+ case 0x21: s = "Port Change"; break;
+ case 0x2f: s = "End of Track"; break;
+ case 0x51: s = "Set Tempo"; break;
+ case 0x54: s = "SMPTE Offset"; break;
+ case 0x58: s = "Time Signature"; break;
+ case 0x59: s = "Key Signature"; break;
+ case 0x74: s = "Sequencer-Specific1"; break;
+ case 0x7f: s = "Sequencer-Specific2"; break;
+ default:
+ break;
+ }
+ return QString(s);
+ }
+
+//---------------------------------------------------------
+// QString nameSysex
+//---------------------------------------------------------
+
+QString nameSysex(unsigned int len, const unsigned char* buf)
+ {
+ QString s;
+ switch(buf[0]) {
+ case 0x00:
+ 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 0x07: s = "Kurzweil"; break;
+ case 0x08: s = "Fender"; break;
+ case 0x09: s = "Gulbransen"; break;
+ case 0x0a: s = "Delta Labas"; break;
+ case 0x0b: s = "Sound Comp."; break;
+ case 0x0c: s = "General Electro"; break;
+ 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 0x13: s = "DigiDesign"; 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 0x24: s = "Hohner"; break;
+ case 0x25: s = "Crumar"; break;
+ case 0x26: s = "Solton"; break;
+ case 0x27: s = "Jellinghaus Ms"; break;
+ case 0x28: s = "CTS"; break;
+ case 0x29: s = "PPG"; break;
+ 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 0x44: s = "Casio"; break;
+ case 0x45: s = "Akai"; break;
+ case 0x7c: 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;
+ }
+ //
+ // 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";
+ 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;
+ }
+
+//---------------------------------------------------------
+// buildMidiEventList
+// TODO:
+// parse data increment/decrement controller
+// NRPN/RPN fine/course data 7/14 Bit
+// must we set datah/datal to zero after change
+// of NRPN/RPN register?
+// generally: how to handle incomplete messages?
+//---------------------------------------------------------
+
+void buildMidiEventList(EventList* del, const MidiEventList* el, MidiTrack* track, int channel,
+ int div, bool addSysexMeta)
+ {
+ QString tname;
+ int hbank = 0xff;
+ int lbank = 0xff;
+ int rpnh = -1;
+ int rpnl = -1;
+ int datah = 0;
+ int datal = 0;
+ int dataType = 0; // 0 : disabled, 0x20000 : rpn, 0x30000 : nrpn
+
+ EventList mel;
+ int metaChannel = -1;
+ for (iMidiEvent i = el->begin(); i != el->end(); ++i) {
+ MidiEvent ev = *i;
+ if (ev.type() == ME_META) {
+ if (ev.dataA() == 0x20) {
+ metaChannel = ((char*)(ev.data()))[0];
+ }
+ if (metaChannel == channel) {
+ if (ev.dataA() == 0x4) {
+ tname = (char*)(ev.data());
+ }
+ }
+ }
+ if (!addSysexMeta && (ev.type() == ME_SYSEX || ev.type() == ME_META))
+ continue;
+ if (!(ev.type() == ME_SYSEX || ev.type() == ME_META || (ev.channel() == channel)))
+ continue;
+ int tick = ev.time();
+ Event e;
+ switch(ev.type()) {
+ case ME_NOTEON:
+ e.setType(Note);
+
+ if (track->useDrumMap()) {
+ int instr = track->drumMap()->inmap(ev.dataA());
+ e.setPitch(instr);
+ }
+ else
+ e.setPitch(ev.dataA());
+
+ e.setVelo(ev.dataB());
+ e.setLenTick(0);
+ break;
+ case ME_NOTEOFF:
+ e.setType(Note);
+ if (track->useDrumMap()) {
+ int instr = track->drumMap()->inmap(ev.dataA());
+ e.setPitch(instr);
+ }
+ else
+ e.setPitch(ev.dataA());
+ e.setVelo(0);
+ e.setVeloOff(ev.dataB());
+ e.setLenTick(0);
+ break;
+ case ME_POLYAFTER:
+ e.setType(PAfter);
+ e.setA(ev.dataA());
+ e.setB(ev.dataB());
+ break;
+ case ME_CONTROLLER:
+ {
+ int val = ev.dataB();
+ switch(ev.dataA()) {
+ case CTRL_HBANK:
+ hbank = val;
+ break;
+
+ case CTRL_LBANK:
+ lbank = val;
+ break;
+
+ case CTRL_HDATA:
+ datah = val;
+ // check if a CTRL_LDATA follows
+ // e.g. wie have a 14 bit controller:
+ {
+ iMidiEvent ii = i;
+ ++ii;
+ bool found = false;
+ for (; ii != el->end(); ++ii) {
+ MidiEvent ev = *ii;
+ if (ev.type() == ME_CONTROLLER) {
+ if (ev.dataA() == CTRL_LDATA) {
+ // handle later
+ found = true;
+ }
+ break;
+ }
+ }
+ if (!found) {
+ if (rpnh == -1 || rpnl == -1) {
+ printf("parameter number not defined, data 0x%x\n", datah);
+ }
+ else {
+ int ctrl = dataType | (rpnh << 8) | rpnl;
+ e.setType(Controller);
+ e.setA(ctrl);
+ e.setB(datah);
+ }
+ }
+ }
+ break;
+
+ case CTRL_LDATA:
+ datal = val;
+
+ if (rpnh == -1 || rpnl == -1) {
+ printf("parameter number not defined, data 0x%x 0x%x, tick %d, channel %d\n",
+ datah, datal, tick, channel);
+ break;
+ }
+ // assume that the sequence is always
+ // CTRL_HDATA - CTRL_LDATA
+ // eg. that LDATA is always send last
+
+ e.setType(Controller);
+ // 14 Bit RPN/NRPN
+ e.setA((dataType+0x30000) | (rpnh << 8) | rpnl);
+ e.setB((datah << 7) | datal);
+ break;
+
+ case CTRL_HNRPN:
+ rpnh = val;
+ dataType = 0x30000;
+ break;
+
+ case CTRL_LNRPN:
+ rpnl = val;
+ dataType = 0x30000;
+ break;
+
+ case CTRL_HRPN:
+ rpnh = val;
+ dataType = 0x20000;
+ break;
+
+ case CTRL_LRPN:
+ rpnl = val;
+ dataType = 0x20000;
+ break;
+
+ default:
+ e.setType(Controller);
+ e.setA(ev.dataA());
+ e.setB(val);
+ break;
+ }
+ }
+ break;
+
+ case ME_PROGRAM:
+ e.setType(Controller);
+ e.setA(CTRL_PROGRAM);
+ e.setB((hbank << 16) | (lbank << 8) | ev.dataA());
+ break;
+
+ case ME_AFTERTOUCH:
+ e.setType(CAfter);
+ e.setA(ev.dataA());
+ break;
+
+ case ME_PITCHBEND:
+ e.setType(Controller);
+ e.setA(CTRL_PITCH);
+ e.setB(ev.dataA());
+ break;
+
+ case ME_SYSEX:
+ e.setType(Sysex);
+ e.setData(ev.data(), ev.len());
+ break;
+
+ case ME_META:
+ {
+ const unsigned char* data = ev.data();
+ switch (ev.dataA()) {
+ case 0x01: // Text
+ if (track->comment().isEmpty())
+ track->setComment(QString((const char*)data));
+ else
+ track->setComment(track->comment() + "\n" + QString((const char*)data));
+ break;
+ case 0x02: // Copyright
+ config.copyright = (char*)data;
+ break;
+ case 0x03: // Sequence-/TrackName
+ tname = (char*)data;
+ break;
+ case 0x6: // Marker
+ {
+ Pos pos((tick * config.division + div/2) / div, AL::TICKS);
+ song->addMarker(QString((const char*)(data)), pos);
+ }
+ break;
+ case 0x4: // Instrument Name
+ case 0x5: // Lyrics
+ case 0x8: // text
+ case 0x9:
+ case 0xa:
+ case 0x20: // channel prefix
+ case 0x21: // port change
+ break;
+
+ case 0x0f: // Track Comment
+ track->setComment(QString((char*)data));
+ break;
+
+ case 0x51: // Tempo
+ {
+ int tempo = data[2] + (data[1] << 8) + (data[0] <<16);
+ int ltick = (tick * config.division + div/2) / div;
+ AL::tempomap.addTempo(ltick, tempo);
+ }
+ break;
+
+ case 0x58: // Time Signature
+ {
+ int timesig_z = data[0];
+ int n = data[1];
+ int timesig_n = 1;
+ for (int i = 0; i < n; i++)
+ timesig_n *= 2;
+ int ltick = (tick * config.division + div/2) / div;
+ AL::sigmap.add(ltick, AL::TimeSignature(timesig_z, timesig_n));
+ }
+ break;
+
+ case 0x59: // Key Signature
+ printf("Meta: Key Signature %d %d\n", data[0], data[1]);
+ // track->scale.set(data[0]);
+ // track->scale.setMajorMinor(data[1]);
+ break;
+
+ case 0x7f: // Sequencer Specific
+ printf("Meta: Seq specific:len %d\n", ev.len());
+ break;
+
+ default:
+ printf("unknown Meta 0x%x %d\n", ev.dataA(), ev.dataA());
+ }
+ }
+ break;
+ } // switch(ev.type()
+ if (!e.empty()) {
+ e.setTick(tick);
+ mel.add(e);
+ }
+ } // i != el->end()
+
+ //---------------------------------------------------
+ // resolve NoteOff events
+ //---------------------------------------------------
+
+ for (iEvent i = mel.begin(); i != mel.end(); ++i) {
+ Event ev = i->second;
+ if (!ev.isNote())
+ continue;
+ if (ev.lenTick())
+ continue;
+// printf("%d note %d %d\n", ev.tick(), ev.pitch(), ev.velo());
+ if (ev.isNoteOff()) {
+ bool found = false;
+ iEvent k = i;
+// printf(" start with note off\n");
+ for (++k; k != mel.end(); ++k) {
+ Event event = k->second;
+ if (event.tick() > ev.tick())
+ break;
+ if (event.isNote() && event.velo() && event.pitch() == ev.pitch()) {
+ ev.setLenTick(1);
+ ev.setVelo(event.velo());
+ ev.setVeloOff(0);
+ found = true;
+// printf(" found on: %d\n", event.tick());
+ break;
+ }
+ }
+ if (!found) {
+ // maybe found note with velocity zero is really a
+ // note-on !
+ k = i;
+ found = true;
+ for (++k; k != mel.end(); ++k) {
+ Event event = k->second;
+ if (!event.isNote())
+ continue;
+ if (event.pitch() == ev.pitch()) {
+ if (event.velo() == 0) {
+ found = true;
+ int t = event.tick() - ev.tick();
+ ev.setLenTick(t);
+ ev.setVelo(1);
+ ev.setVeloOff(0);
+ mel.erase(k);
+ i = mel.begin();
+ }
+ break;
+ }
+ }
+ if (!found) {
+ printf("NOTE OFF without Note ON tick %d type %d %d %d\n",
+ ev.tick(), ev.type(), ev.pitch(), ev.velo());
+ }
+ else
+ continue;
+ }
+ else {
+ mel.erase(k);
+ i = mel.begin(); // DEBUG
+ continue;
+ }
+ }
+ iEvent k;
+ // ev is noteOn
+ for (k = mel.lower_bound(ev.tick()); k != mel.end(); ++k) {
+ Event event = k->second;
+// printf(" - %d(%d,%d)\n", event.tick(), event.pitch(), event.velo());
+ if (ev.isNoteOff(event)) {
+ int t = k->first - i->first;
+ if (t <= 0) {
+ if (debugMsg) {
+ printf("Note len is (%d-%d)=%d, set to 1\n",
+ k->first, i->first, k->first - i->first);
+ ev.dump();
+ event.dump();
+ }
+ t = 1;
+ }
+ ev.setLenTick(t);
+ ev.setVeloOff(event.veloOff());
+ break;
+ }
+ }
+ if (k == mel.end()) {
+ printf(" -no note-off! %d pitch %d velo %d\n",
+ ev.tick(), ev.pitch(), ev.velo());
+ //
+ // switch off at end of measure
+ //
+ int endTick = song->roundUpBar(ev.tick()+1);
+ ev.setLenTick(endTick-ev.tick());
+ }
+ else {
+ mel.erase(k);
+ i = mel.begin();
+ }
+ }
+
+ for (iEvent i = mel.begin(); i != mel.end(); ++i) {
+ Event ev = i->second;
+ if (ev.isNoteOff()) {
+ printf("+extra note-off! %d pitch %d velo %d\n",
+ i->first, ev.pitch(), ev.velo());
+// ev.dump();
+ continue;
+ }
+ int tick = (ev.tick() * config.division + div/2) / div;
+ if (ev.isNote()) {
+ int lenTick = (ev.lenTick() * config.division + div/2) / div;
+ ev.setLenTick(lenTick);
+ }
+ ev.setTick(tick);
+ if (ev.type() == Controller) {
+ int id = ev.dataA();
+ CVal val;
+ val.i = ev.dataB();
+
+// bool found = false;
+ Ctrl* c = track->getController(id);
+ if (c)
+ c->add(tick, val);
+ else
+ // if no managed controller, store as event
+ del->add(ev);
+ }
+ else
+ del->add(ev);
+ }
+ if (!tname.isEmpty())
+ track->setName(tname);
+ }
+
+//---------------------------------------------------------
+// initMidiDevices
+//---------------------------------------------------------
+
+void Audio::initMidiDevices()
+ {
+ //
+ // test for explicit instrument initialization
+ //
+ MidiOutPortList* mpl = song->midiOutPorts();
+ for (iMidiOutPort i = mpl->begin(); i != mpl->end(); ++i) {
+ MidiOutPort* mp = *i;
+ MidiInstrument* instr = mp->instrument();
+ if (!instr)
+ continue; // TODO: use default instrument?
+ EventList* events = instr->midiInit();
+ for (iEvent ie = events->begin(); ie != events->end(); ++ie) {
+ MidiEvent ev(0, 0, ie->second);
+ mp->playMidiEvent(&ev);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// resetMidiDevices
+//---------------------------------------------------------
+
+void Audio::resetMidiDevices()
+ {
+ MidiTrackList* mcl = song->midis();
+ for (iMidiTrack i = mcl->begin(); i != mcl->end(); ++i) {
+ MidiTrack* mc = *i;
+ if (!mc->mute() && mc->autoRead()) {
+ CtrlList* cl = mc->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ ic->second->setCurVal(CTRL_VAL_UNKNOWN);
+ }
+ }
+ }
+ MidiOutPortList* mpl = song->midiOutPorts();
+ for (iMidiOutPort i = mpl->begin(); i != mpl->end(); ++i) {
+ MidiOutPort* mp = *i;
+ if (!mp->mute() && mp->autoRead()) {
+ CtrlList* cl = mp->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ ic->second->setCurVal(CTRL_VAL_UNKNOWN);
+ }
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midi.h b/muse_qt4_evolution/muse/midi.h
new file mode 100644
index 00000000..d6713c5a
--- /dev/null
+++ b/muse_qt4_evolution/muse/midi.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDI_H__
+#define __MIDI_H__
+
+enum {
+ ME_NOTEOFF = 0x80,
+ ME_NOTEON = 0x90,
+ ME_POLYAFTER = 0xa0,
+ ME_CONTROLLER = 0xb0,
+ ME_PROGRAM = 0xc0,
+ ME_AFTERTOUCH = 0xd0,
+ ME_PITCHBEND = 0xe0,
+ ME_SYSEX = 0xf0,
+ ME_META = 0xff,
+ ME_MTC_QUARTER = 0xf1,
+ ME_SONGPOS = 0xf2,
+ ME_SONGSEL = 0xf3,
+ ME_TUNE_REQ = 0xf6,
+ ME_SYSEX_END = 0xf7,
+ ME_CLOCK = 0xf8,
+ ME_TICK = 0xf9,
+ ME_START = 0xfa,
+ ME_CONTINUE = 0xfb,
+ ME_STOP = 0xfc,
+ ME_SENSE = 0xfe,
+ };
+
+#define ME_TIMESIG 0x58
+
+extern unsigned const char gmOnMsg[];
+extern unsigned const char gsOnMsg[];
+extern unsigned const char xgOnMsg[];
+
+extern unsigned const int gmOnMsgLen;
+extern unsigned const int gsOnMsgLen;
+extern unsigned const int xgOnMsgLen;
+
+QString nameSysex(unsigned int len, const unsigned char* buf);
+QString midiMetaName(int);
+
+class EventList;
+class MidiTrack;
+class MidiEventList;
+
+extern void buildMidiEventList(EventList* mel, const MidiEventList* el, MidiTrack* track,
+ int channel, int division, bool);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midictrl.cpp b/muse_qt4_evolution/muse/midictrl.cpp
new file mode 100644
index 00000000..89e40ec1
--- /dev/null
+++ b/muse_qt4_evolution/muse/midictrl.cpp
@@ -0,0 +1,372 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midictrl.h"
+#include "al/xml.h"
+
+static const char* ctrlName[] = {
+ "BankSelMSB", "Modulation", "BreathCtrl", "Control 3", "Foot Ctrl",
+ "Porta Time", "DataEntMSB", "MainVolume", "Balance", "Control 9",
+/*10*/ "Pan", "Expression", "Control 12", "Control 13", "Control 14",
+ "Control 15", "Gen.Purp.1", "Gen.Purp.2", "Gen.Purp.3", "Gen.Purp.4",
+/*20*/ "Control 20", "Control 21", "Control 22", "Control 23", "Control 24",
+ "Control 25", "Control 26", "Control 27", "Control 28", "Control 29",
+/*30*/ "Control 30", "Control 31", "BankSelLSB", "Modul. LSB", "BrthCt.LSB",
+ "Control 35", "FootCt.LSB", "Port.T LSB", "DataEntLSB", "MainVolLSB",
+ "BalanceLSB", "Control 41", "Pan LSB", "Expr. LSB", "Control 44",
+ "Control 45", "Control 46", "Control 47", "Gen.P.1LSB", "Gen.P.2LSB",
+/*50*/ "Gen.P.3LSB", "Gen.P.4LSB", "Control 52", "Control 53", "Control 54",
+ "Control 55", "Control 56", "Control 57", "Control 58", "Control 59",
+ "Control 60", "Control 61", "Control 62", "Control 63", "Sustain",
+ "Porta Ped", "Sostenuto", "Soft Pedal", "Control 68", "Hold 2",
+ "Control 70", "HarmonicCo", "ReleaseTime", "Attack Time", "Brightness",
+ "Control 75", "Control 76", "Control 77", "Control 78", "Control 79",
+ "Gen.Purp.5", "Gen.Purp.6", "Gen.Purp.7", "Gen.Purp.8", "Porta Ctrl",
+ "Control 85", "Control 86", "Control 87", "Control 88", "Control 89",
+ "Control 90", "Effect1Dep", "Effect2Dep", "Effect3Dep", "Effect4Dep",
+ "Phaser Dep", "Data Incr", "Data Decr", "NRPN LSB", "NRPN MSB",
+/*100*/ "RPN LSB", "RPN MSB", "Control102", "Control103", "Control104",
+ "Control105", "Control106", "Control107", "Control108", "Control109",
+ "Control110", "Control111", "Control112", "Control113", "Control114",
+ "Control115", "Control116", "Control117", "Control118", "Control119",
+ "AllSndOff", "Reset Ctrl", "Local Ctrl", "AllNoteOff", "OmniModOff",
+ "OmniModeOn", "MonoModeOn", "PolyModeOn"
+ };
+
+#if 0
+static const char* ctrl14Name[] = {
+ "BankSel", "Modulation", "BreathCtrl",
+ "Control 3", "Foot Ctrl", "Porta Time", "DataEntry",
+ "MainVolume", "Balance", "Control 9", "Pan",
+ "Expression", "Control 12", "Control 13", "Control 14",
+ "Control 15", "Gen.Purp.1", "Gen.Purp.2", "Gen.Purp.3",
+ "Gen.Purp.4", "Control 20", "Control 21", "Control 22",
+ "Control 23", "Control 24", "Control 25", "Control 26",
+ "Control 27", "Control 28", "Control 29", "Control 30",
+ "Control 31",
+ };
+#endif
+
+enum {
+ COL_NAME = 0, COL_TYPE,
+ COL_HNUM, COL_LNUM, COL_MIN, COL_MAX
+ };
+
+MidiControllerList defaultMidiController;
+//
+// some global controller which are always available:
+//
+MidiController veloCtrl("Velocity", CTRL_VELOCITY, 0, 127, 0);
+static MidiController pitchCtrl("PitchBend", CTRL_PITCH, -8192, +8191, 0);
+static MidiController programCtrl("Program", CTRL_PROGRAM, 0, 0xffffff, 0);
+static MidiController mastervolCtrl("MasterVolume", CTRL_MASTER_VOLUME, 0, 0x3fff, 0x3000);
+static MidiController volumeCtrl("MainVolume", CTRL_VOLUME, 0, 127, 100);
+static MidiController panCtrl("Pan", CTRL_PANPOT, 0, 127, 64);
+static MidiController reverbCtrl("ReverbSend", CTRL_REVERB_SEND, 0, 127, 0);
+static MidiController chorusCtrl("ChorusSend", CTRL_CHORUS_SEND, 0, 127, 0);
+static MidiController variationCtrl("VariationSend",CTRL_VARIATION_SEND,0, 127, 0);
+
+//---------------------------------------------------------
+// ctrlType2Int
+// int2ctrlType
+//---------------------------------------------------------
+
+static struct {
+ MidiController::ControllerType type;
+ QString name;
+ } ctrlTypes[] = {
+ { MidiController::Controller7, QString("Control7") },
+ { MidiController::Controller14, QString("Control14") },
+ { MidiController::RPN, QString("RPN") },
+ { MidiController::NRPN, QString("NRPN") },
+ { MidiController::Pitch, QString("Pitch") },
+ { MidiController::Program, QString("Program") },
+ { MidiController::RPN14, QString("RPN14") },
+ { MidiController::NRPN14, QString("NRPN14") },
+ { MidiController::Controller7, QString("Control") }, // alias
+ };
+
+//---------------------------------------------------------
+// ctrlType2Int
+//---------------------------------------------------------
+
+MidiController::ControllerType ctrlType2Int(const QString& s)
+ {
+ int n = sizeof(ctrlTypes)/sizeof(*ctrlTypes);
+ for (int i = 0; i < n; ++i) {
+ if (ctrlTypes[i].name == s)
+ return ctrlTypes[i].type;
+ }
+ return MidiController::ControllerType(0);
+ }
+
+//---------------------------------------------------------
+// int2ctrlType
+//---------------------------------------------------------
+
+const QString& int2ctrlType(int n)
+ {
+ static QString dontKnow("?T?");
+ int size = sizeof(ctrlTypes)/sizeof(*ctrlTypes);
+ for (int i = 0; i < size; ++i) {
+ if (ctrlTypes[i].type == n)
+ return ctrlTypes[i].name;
+ }
+ return dontKnow;
+ }
+
+//---------------------------------------------------------
+// initMidiController
+//---------------------------------------------------------
+
+void initMidiController()
+ {
+ static bool initialized = false;
+ if (initialized)
+ return;
+ defaultMidiController.push_back(&veloCtrl);
+ defaultMidiController.push_back(&pitchCtrl);
+ defaultMidiController.push_back(&programCtrl);
+ defaultMidiController.push_back(&mastervolCtrl);
+ defaultMidiController.push_back(&volumeCtrl);
+ defaultMidiController.push_back(&panCtrl);
+ defaultMidiController.push_back(&reverbCtrl);
+ defaultMidiController.push_back(&chorusCtrl);
+ defaultMidiController.push_back(&variationCtrl);
+ initialized = true;
+ }
+
+//---------------------------------------------------------
+// midiCtrlName
+//---------------------------------------------------------
+
+QString midiCtrlName(int ctrl)
+ {
+ if (ctrl < 0x10000)
+ return QString(ctrlName[ctrl]);
+ QString s("?N?");
+ switch(ctrl) {
+ case CTRL_PITCH:
+ s = "Pitch";
+ break;
+ case CTRL_PROGRAM:
+ s = "ProgramChange";
+ break;
+ case CTRL_VELOCITY:
+ s = "Velocity";
+ break;
+ case CTRL_MASTER_VOLUME:
+ s = "MasterVolume";
+ break;
+ default:
+ printf("midiCtrlName unknown %x\n", ctrl);
+ break;
+ }
+ return s;
+ }
+
+//---------------------------------------------------------
+// MidiController
+//---------------------------------------------------------
+
+MidiController::MidiController()
+ : _name(QString(QT_TR_NOOP("Velocity")))
+ {
+ _num = CTRL_VELOCITY;
+ _minVal = 0;
+ _maxVal = 127;
+ _initVal = 0;
+ _moveWithPart = true;
+ }
+
+MidiController::MidiController(const QString& s, int n, int min, int max, int init,
+ bool mwp)
+ : _name(s), _num(n), _minVal(min), _maxVal(max), _initVal(init),
+ _moveWithPart(mwp)
+ {
+ }
+
+//---------------------------------------------------------
+// type
+//---------------------------------------------------------
+
+MidiController::ControllerType midiControllerType(int num)
+ {
+ if (num == CTRL_PITCH)
+ return MidiController::Pitch;
+ if (num == CTRL_PROGRAM)
+ return MidiController::Program;
+ if (num == CTRL_VELOCITY || num == CTRL_SVELOCITY)
+ return MidiController::Velo;
+ if (num < CTRL_14_OFFSET)
+ return MidiController::Controller7;
+ if (num < CTRL_RPN_OFFSET)
+ return MidiController::Controller14;
+ if (num < CTRL_NRPN_OFFSET)
+ return MidiController::RPN;
+ if (num < CTRL_RPN14_OFFSET)
+ return MidiController::NRPN;
+ if (num < CTRL_NRPN14_OFFSET)
+ return MidiController::RPN14;
+ if (num < CTRL_NONE_OFFSET)
+ return MidiController::NRPN14;
+ return MidiController::Controller7;
+ }
+
+//---------------------------------------------------------
+// MidiController::write
+//---------------------------------------------------------
+
+void MidiController::write(Xml& xml) const
+ {
+ ControllerType t = midiControllerType(_num);
+ QString type(int2ctrlType(t));
+
+ int h = (_num >> 8) & 0x7f;
+ int l = _num & 0x7f;
+
+ QString sl;
+ if ((_num & 0xff) == 0xff)
+ sl = "Pitch";
+ else
+ sl.setNum(l);
+
+ QString s = QString("Controller name=\"%1\" type=\"%2\" h=\"%3\" l=\"%4\" min=\"%5\" max=\"%6\" init=\"%7\"")
+ .arg(Xml::xmlString(_name)).arg(type).arg(h).arg(sl).arg(_minVal).arg(_maxVal).arg(_initVal);
+ if (_comment.isEmpty())
+ xml.tagE(s);
+ else {
+ xml.putLevel();
+ xml << '<' << s << '>' << Xml::xmlString(_comment) << "</Controller>\n";
+ }
+ }
+
+//---------------------------------------------------------
+// MidiController::read
+//---------------------------------------------------------
+
+void MidiController::read(QDomNode node)
+ {
+ ControllerType t = Controller7;
+ static const int NOT_SET = 0x100000;
+ int l = 0;
+
+ QDomElement e = node.toElement();
+ _name = e.attribute("name");
+ _comment = e.text();
+ t = ctrlType2Int(e.attribute("type"));
+ int h = e.attribute("h","0").toInt(0,0);
+ QString s = e.attribute("l");
+ if (s == "pitch")
+ l = 0xff;
+ else
+ l = s.toInt(0,0);
+ _minVal = e.attribute("min", "0").toInt(0,0);
+ _maxVal = e.attribute("max", "0x100000").toInt(0,0);
+ _initVal = e.attribute("init", "-1").toInt(0,0);
+
+ _num = (h << 8) + l;
+ switch (t) {
+ case RPN:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ _num |= 0x20000;
+ break;
+ case NRPN:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ _num |= 0x30000;
+ break;
+ case Controller7:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ break;
+ case Controller14:
+ _num |= 0x10000;
+ if (_maxVal == NOT_SET)
+ _maxVal = 127 * 127 * 127;
+ break;
+ case RPN14:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127 * 127 * 127;
+ _num |= 0x50000;
+ break;
+ case NRPN14:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127 * 127 * 127;
+ _num |= 0x60000;
+ break;
+ case Pitch:
+ if (_maxVal == NOT_SET)
+ _maxVal = 8191;
+ if (_minVal == NOT_SET)
+ _minVal = -8192;
+ _num = CTRL_PITCH;
+ break;
+ case Program:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127 * 127 * 127;
+ _num = CTRL_PROGRAM;
+ break;
+ case Velo: // cannot happen
+ break;
+ }
+ return;
+ }
+
+//---------------------------------------------------------
+// type
+//---------------------------------------------------------
+
+MidiController::ControllerType MidiController::type() const
+ {
+ return midiControllerType(num());
+ }
+
+//---------------------------------------------------------
+// genNum
+//---------------------------------------------------------
+
+
+int MidiController::genNum(MidiController::ControllerType t, int h, int l)
+ {
+ int val = (h << 8) + l;
+ switch(t) {
+ case Controller7:
+ return l;
+ case Controller14:
+ return val + CTRL_14_OFFSET;
+ case RPN:
+ return l + CTRL_RPN_OFFSET;
+ case NRPN:
+ return l + CTRL_NRPN_OFFSET;
+ case RPN14:
+ return val + CTRL_RPN14_OFFSET;
+ case NRPN14:
+ return val + CTRL_NRPN14_OFFSET;
+ case Pitch:
+ return CTRL_PITCH;
+ case Program:
+ return CTRL_PROGRAM;
+ default:
+ return -1;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midictrl.h b/muse_qt4_evolution/muse/midictrl.h
new file mode 100644
index 00000000..9d20fdcc
--- /dev/null
+++ b/muse_qt4_evolution/muse/midictrl.h
@@ -0,0 +1,168 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDICTRL_H__
+#define __MIDICTRL_H__
+
+const int CTRL_HBANK = 0x00;
+const int CTRL_LBANK = 0x20;
+
+const int CTRL_HDATA = 0x06;
+const int CTRL_LDATA = 0x26;
+
+const int CTRL_HNRPN = 0x63;
+const int CTRL_LNRPN = 0x62;
+
+const int CTRL_HRPN = 0x65;
+const int CTRL_LRPN = 0x64;
+
+const int CTRL_MODULATION = 0x01;
+const int CTRL_PORTAMENTO_TIME = 0x05;
+const int CTRL_VOLUME = 0x07;
+const int CTRL_PANPOT = 0x0a;
+const int CTRL_EXPRESSION = 0x0b;
+const int CTRL_SUSTAIN = 0x40;
+const int CTRL_PORTAMENTO = 0x41;
+const int CTRL_SOSTENUTO = 0x42;
+const int CTRL_SOFT_PEDAL = 0x43;
+const int CTRL_HARMONIC_CONTENT = 0x47;
+const int CTRL_RELEASE_TIME = 0x48;
+const int CTRL_ATTACK_TIME = 0x49;
+
+const int CTRL_BRIGHTNESS = 0x4a;
+const int CTRL_PORTAMENTO_CONTROL = 0x54;
+const int CTRL_REVERB_SEND = 0x5b;
+const int CTRL_CHORUS_SEND = 0x5d;
+const int CTRL_VARIATION_SEND = 0x5e;
+
+const int CTRL_ALL_SOUNDS_OFF = 0x78; // 120
+const int CTRL_RESET_ALL_CTRL = 0x79; // 121
+const int CTRL_LOCAL_OFF = 0x7a; // 122
+
+// controller types 0x10000 - 0x1ffff are 14 bit controller with
+// 0x1xxyy
+// xx - MSB controller
+// yy - LSB controller
+
+// RPN - registered parameter numbers 0x20000 -
+// NRPN - non registered parameter numbers 0x30000 -
+
+// internal controller types:
+const int CTRL_PITCH = 0x40000;
+const int CTRL_PROGRAM = 0x40001;
+const int CTRL_VELOCITY = 0x40002;
+const int CTRL_MASTER_VOLUME = 0x40003;
+const int CTRL_OTHER = 0x40004;
+const int CTRL_SVELOCITY = 0x40005; // single velocity, used for drum editor
+ // to show only velocity for current instrument
+const int CTRL_NO_CTRL = 0x40006;
+
+const int CTRL_VAL_UNKNOWN = -1; // used as unknown hwVal
+
+const int CTRL_14_OFFSET = 0x10000;
+const int CTRL_RPN_OFFSET = 0x20000;
+const int CTRL_NRPN_OFFSET = 0x30000;
+const int CTRL_RPN14_OFFSET = 0x50000;
+const int CTRL_NRPN14_OFFSET = 0x60000;
+const int CTRL_NONE_OFFSET = 0x70000;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+//---------------------------------------------------------
+// MidiController
+//---------------------------------------------------------
+
+class MidiController {
+ public:
+ //
+ // mapping of midi controller types to
+ // controller number:
+ //
+ enum ControllerType {
+ Controller7, // num values from 0 - 0x7f
+ Controller14, // values from 0x10000 - 0x12fff
+ RPN, // registered parameter 0x20000 -
+ NRPN, // non registered parameter 0x30000 -
+ RPN14, // registered parameter 0x50000
+ NRPN14, // non registered parameter 0x60000 -
+ Pitch, // num value = CTRL_PITCH
+ Program, // num value = CTRL_PROGRAM
+ Velo // not assigned
+ };
+ private:
+ QString _name;
+ QString _comment;
+ int _num; // Controller Number
+ int _minVal; // controller value range (used in gui)
+ int _maxVal;
+ int _initVal;
+ bool _moveWithPart;
+
+ public:
+ MidiController();
+ MidiController(const QString& n, int num, int min, int max, int init,
+ bool mwp = true);
+ const QString& name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ const QString& comment() const { return _comment; }
+ void setComment(const QString& s) { _comment = s; }
+ int num() const { return _num; }
+ void setNum(int v) { _num = v; }
+ void write(Xml& xml) const;
+ void read(QDomNode);
+ int minVal() const { return _minVal; }
+ int maxVal() const { return _maxVal; }
+ int initVal() const { return _initVal; }
+ void setInitVal(int val) { _initVal = val; }
+ void setMinVal(int val) { _minVal = val; }
+ void setMaxVal(int val) { _maxVal = val; }
+ bool moveWithPart() const { return _moveWithPart; }
+ void setMoveWithPart(bool v) { _moveWithPart = v; }
+ ControllerType type() const;
+ static int genNum(ControllerType, int, int);
+ };
+
+//---------------------------------------------------------
+// MidiControllerList
+// this is a list of used midi controllers created
+// - excplicit by user
+// - implicit during import of a midi file
+//---------------------------------------------------------
+
+class MidiControllerList : public QList<MidiController*> {};
+
+typedef MidiControllerList::iterator iMidiController;
+typedef MidiControllerList::const_iterator ciMidiController;
+
+extern MidiControllerList defaultMidiController;
+extern void initMidiController();
+
+extern MidiController::ControllerType midiControllerType(int num);
+extern void configMidiController();
+extern const QString& int2ctrlType(int n);
+extern MidiController::ControllerType ctrlType2Int(const QString& s);
+extern QString midiCtrlName(int ctrl);
+extern MidiController veloCtrl;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/CMakeLists.txt b/muse_qt4_evolution/muse/midiedit/CMakeLists.txt
new file mode 100644
index 00000000..a71aed71
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/CMakeLists.txt
@@ -0,0 +1,71 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( midiedit_mocs
+ midicmd.h
+ gatetime.h
+ velocity.h
+ quantconfig.h
+ dcanvas.h
+ drumedit.h
+ ecanvas.h
+ midieditor.h
+ pianoroll.h
+ prcanvas.h
+ miditracker.h
+ trackpattern.h
+ )
+
+QT4_WRAP_UI ( midiedit_ui_headers
+ midicmd.ui
+ gatetime.ui
+ velocity.ui
+ quantconfig.ui
+ )
+
+add_library ( midiedit STATIC
+ midicmd.h
+ gatetime.h
+ ${midiedit_ui_headers}
+ ${midiedit_mocs}
+ midicmd.cpp
+ gatetime.cpp
+ velocity.cpp
+ quantconfig.cpp
+ citem.h
+ cmd.h
+ drummap.h
+ midicmd.h
+ citem.cpp
+ dcanvas.cpp
+ drumedit.cpp
+ drummap.cpp
+ ecanvas.cpp
+ midieditor.cpp
+ pianoroll.cpp
+ prcanvas.cpp
+ miditracker.cpp
+ trackpattern.cpp
+ )
+
+set_target_properties( midiedit
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/midiedit/citem.cpp b/muse_qt4_evolution/muse/midiedit/citem.cpp
new file mode 100644
index 00000000..b7ae8287
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/citem.cpp
@@ -0,0 +1,82 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "part.h"
+#include "citem.h"
+
+//---------------------------------------------------------
+// CItem
+//---------------------------------------------------------
+
+CItem::CItem()
+ {
+ isMoving = false;
+ }
+
+CItem::CItem(const Event& e, Part* p)
+ {
+ event = e;
+ part = p;
+ isMoving = false;
+ pos = e.pos() + *p;
+ }
+
+//---------------------------------------------------------
+// isSelected
+//---------------------------------------------------------
+
+bool CItem::isSelected() const
+ {
+ return event.empty() ? part->selected() : event.selected();
+ }
+
+//---------------------------------------------------------
+// setSelected
+//---------------------------------------------------------
+
+void CItem::setSelected(bool f)
+ {
+ event.empty() ? part->setSelected(f) : event.setSelected(f);
+ }
+
+//---------------------------------------------------------
+// CItemList
+//---------------------------------------------------------
+
+CItem* CItemList::find(const QPoint& pos) const
+ {
+ for (rciCItem i = rbegin(); i != rend(); ++i) {
+ if (i->second->contains(pos))
+ return i->second;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// CItemList
+//---------------------------------------------------------
+
+void CItemList::add(CItem* item)
+ {
+ std::multimap<int, CItem*, std::less<int> >::insert(
+ std::pair<const unsigned int, CItem*> (item->pos.tick(), item)
+ );
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/citem.h b/muse_qt4_evolution/muse/midiedit/citem.h
new file mode 100644
index 00000000..5b3452ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/citem.h
@@ -0,0 +1,70 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CITEM_H__
+#define __CITEM_H__
+
+#include "al/pos.h"
+#include "event.h"
+
+class Part;
+
+//---------------------------------------------------------
+// CItem
+// Canvas Item
+//---------------------------------------------------------
+
+struct CItem {
+ Event event;
+ Part* part;
+
+ bool isMoving;
+ AL::Pos moving;
+ int my;
+
+ QRect bbox;
+ AL::Pos pos;
+
+ CItem();
+ CItem(const Event& e, Part* p);
+
+ bool isSelected() const;
+ void setSelected(bool f);
+ bool contains(const QPoint& p) const { return bbox.contains(p); }
+ bool intersects(const QRect& r) const { return r.intersects(bbox); }
+ };
+
+typedef std::multimap<int, CItem*, std::less<int> >::iterator iCItem;
+typedef std::multimap<int, CItem*, std::less<int> >::const_iterator ciCItem;
+typedef std::multimap<int, CItem*, std::less<int> >::const_reverse_iterator rciCItem;
+
+//---------------------------------------------------------
+// CItemList
+// Canvas Item List
+//---------------------------------------------------------
+
+class CItemList: public std::multimap<int, CItem*, std::less<int> > {
+ public:
+ void add(CItem*);
+ CItem* find(const QPoint& pos) const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/cmd.h b/muse_qt4_evolution/muse/midiedit/cmd.h
new file mode 100644
index 00000000..7f51abdd
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/cmd.h
@@ -0,0 +1,32 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CMD_H__
+#define __CMD_H__
+
+enum {
+ MCMD_LEFT,
+ MCMD_RIGHT,
+ MCMD_INSERT,
+ MCMD_DELETE,
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/dcanvas.cpp b/muse_qt4_evolution/muse/midiedit/dcanvas.cpp
new file mode 100644
index 00000000..20d8170d
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/dcanvas.cpp
@@ -0,0 +1,723 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "dcanvas.h"
+#include "song.h"
+#include "midieditor.h"
+#include "drummap.h"
+#include "audio.h"
+#include "velocity.h"
+#include "gconfig.h"
+#include "part.h"
+
+#define CARET 12
+#define CARET2 6
+
+//---------------------------------------------------------
+// drumMap
+//---------------------------------------------------------
+
+DrumMap* DrumCanvas::drumMap() const
+ {
+ DrumMap* drumMap = track()->drumMap();
+ if (drumMap == 0)
+ drumMap = &noDrumMap;
+ return drumMap;
+ }
+
+//---------------------------------------------------------
+// y2pitch
+//---------------------------------------------------------
+
+int DrumCanvas::y2pitch(int y) const
+ {
+ return drumMap()->anote(EventCanvas::y2pitch(y));
+ }
+
+//---------------------------------------------------------
+// pitch2y
+//---------------------------------------------------------
+
+int DrumCanvas::pitch2y(int pitch) const
+ {
+ return EventCanvas::pitch2y(drumMap()->outmap(pitch));
+ }
+
+//---------------------------------------------------------
+// DrumCanvas
+//---------------------------------------------------------
+
+DrumCanvas::DrumCanvas(MidiEditor* pr)
+ : EventCanvas(pr, TIME_CANVAS_DRUMEDIT)
+ {
+ singlePitch = -1;
+ verticalScrollBar()->setSingleStep(drumHeight/2);
+ canvasTools = PointerTool | PencilTool | RubberTool;
+ songChanged(SC_TRACK_INSERTED);
+ connect(track(), SIGNAL(drumMapChanged()), widget(), SLOT(update()));
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void DrumCanvas::addItem(Part* part, const Event& event)
+ {
+ CItem* item = new CItem(event, part);
+ unsigned tick = event.tick() + part->tick();
+ item->pos = Pos(tick);
+ items.add(item);
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void DrumCanvas::paint(QPainter& p, QRect r)
+ {
+ p.setPen(QPen(Qt::black, 0.0));
+
+ QPainterPath pa;
+ pa.moveTo(-CARET2, 0);
+ pa.lineTo(0, - CARET2);
+ pa.lineTo(CARET2, 0);
+ pa.lineTo(0, CARET2);
+ pa.closeSubpath();
+
+ Pos p1(pix2pos(r.x() - CARET2));
+ Pos p2(pix2pos(r.x() + r.width() + CARET2));
+ iCItem from(items.lower_bound(p1.tick()));
+ iCItem to(items.upper_bound(p2.tick()));
+
+ for (iCItem i = from; i != to; ++i) {
+ CItem* e = i->second;
+ int x = pos2pix(AL::Pos(i->first));
+ int y = pitch2y(e->event.pitch()) + drumHeight/2;
+ QPoint pt(x, y);
+ Event me(e->event);
+
+ DrumMapEntry* dm = drumMap()->entry(me.pitch()); //Get the drum item
+ QColor color;
+ int velo = me.velo();
+ if (velo < dm->lv1)
+ color.setRgb(240, 240, 255);
+ else if (velo < dm->lv2)
+ color.setRgb(200, 200, 255);
+ else if (velo < dm->lv3)
+ color.setRgb(170, 170, 255);
+ else
+ color.setRgb(0, 0, 255);
+
+ if (e->part != curPart)
+ p.setBrush(Qt::lightGray);
+ else if (e->isMoving) {
+ p.setBrush(Qt::gray);
+ p.translate(pt);
+ p.drawPath(pa);
+ p.translate(-pt);
+ p.setBrush(Qt::black);
+
+ int x = pos2pix(e->moving);
+ int y = e->my + drumHeight/2;
+ pt = QPoint(x, y);
+ }
+ else if (e->isSelected())
+ p.setBrush(Qt::black);
+ else
+ p.setBrush(color);
+ p.translate(pt);
+ p.drawPath(pa);
+ p.translate(-pt);
+ }
+
+ //---------------------------------------------------
+ // draw lasso
+ //---------------------------------------------------
+
+ if (drag == DRAG_LASSO) {
+ p.setPen(Qt::blue);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(lasso);
+ }
+ }
+
+//---------------------------------------------------------
+// moveItem
+//---------------------------------------------------------
+
+void DrumCanvas::moveItem(CItem* nevent, DragType dtype)
+ {
+ Part* part = nevent->part;
+ Event event = nevent->event;
+ int npitch = y2pitch(nevent->my);
+
+ Event newEvent = event.clone();
+ newEvent.setPitch(npitch);
+ newEvent.setPos(nevent->moving - *(nevent->part));
+ if (dtype == MOVE_COPY)
+ audio->msgAddEvent(newEvent, part, false);
+ else
+ audio->msgChangeEvent(event, newEvent, part, false);
+ }
+
+//---------------------------------------------------------
+// newItem
+//---------------------------------------------------------
+
+CItem* DrumCanvas::newItem(const QPoint& p, int state)
+ {
+ AL::Pos pos(pix2pos(p.x()));
+ pos.snap(raster());
+ if (pos < partPos1 || pos >= partPos2) {
+ return 0;
+ }
+
+ int pitch = y2pitch(p.y());
+ int instr = drumMap()->outmap(pitch);
+ DrumMapEntry* dm = drumMap()->entry(instr);
+ int velo = dm->lv4;
+ if (state == Qt::ShiftModifier)
+ velo = dm->lv3;
+ else if (state == Qt::ControlModifier)
+ velo = dm->lv2;
+ else if (state == (Qt::ControlModifier | Qt::ShiftModifier))
+ velo = dm->lv1;
+
+ Event e(Note);
+ e.setPos(pos - *curPart);
+ e.setPitch(drumMap()->anote(instr));
+ e.setVelo(velo);
+ e.setLenTick(dm->len);
+ return new CItem(e, curPart);
+ }
+
+//---------------------------------------------------------
+// resizeItem
+//---------------------------------------------------------
+
+void DrumCanvas::resizeItem(CItem* nevent, bool)
+ {
+ Event ev = nevent->event;
+ audio->msgDeleteEvent(ev, nevent->part);
+ }
+
+//---------------------------------------------------------
+// newItem
+//---------------------------------------------------------
+
+void DrumCanvas::newItem(CItem* nevent, bool noSnap)
+ {
+ Event event = nevent->event;
+ Pos pos(nevent->pos);
+ if (!noSnap)
+ pos.snap(editor->raster());
+ event.setPos(pos - *(nevent->part));
+ int npitch = event.pitch();
+ event.setPitch(npitch);
+
+ //
+ // check for existing event
+ // if found change command semantic from insert to delete
+ //
+ EventList* el = nevent->part->events();
+ iEvent lower = el->lower_bound(event.tick());
+ iEvent upper = el->upper_bound(event.tick());
+
+ for (iEvent i = lower; i != upper; ++i) {
+ Event ev = i->second;
+ if (ev.pitch() == npitch) {
+ audio->msgDeleteEvent(ev, nevent->part);
+ return;
+ }
+ }
+
+ audio->msgAddEvent(event, nevent->part);
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+bool DrumCanvas::deleteItem(CItem* item)
+ {
+ Event ev = item->event;
+ audio->msgDeleteEvent(ev, item->part);
+ return false;
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void DrumCanvas::cmd(QAction* a)
+ {
+ QString cmd(a->data().toString());
+
+ if (cmd == "paste")
+ paste();
+ else if (cmd == "sel_all") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (!k->second->isSelected())
+ selectItem(k->second, true);
+ }
+ }
+ else if (cmd == "sel_none")
+ deselectAll();
+ else if (cmd == "sel_inv") {
+ for (iCItem k = items.begin(); k != items.end(); ++k)
+ selectItem(k->second, !k->second->isSelected());
+ }
+ else if (cmd == "sel_ins_loc") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* nevent = k->second;
+ Part* part = nevent->part;
+ Event event = nevent->event;
+ unsigned tick = event.tick() + part->tick();
+ if (tick < song->lpos() || tick >= song->rpos())
+ selectItem(k->second, false);
+ else
+ selectItem(k->second, true);
+ }
+ }
+ else if (cmd == "sel_out_loc") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* nevent = k->second;
+ Part* part = nevent->part;
+ Event event = nevent->event;
+ unsigned tick = event.tick() + part->tick();
+ if (tick < song->lpos() || tick >= song->rpos())
+ selectItem(k->second, true);
+ else
+ selectItem(k->second, false);
+ }
+ }
+ else if (cmd == "delete") {
+ if (selectionSize()) {
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ Event ev = i->second->event;
+ audio->msgDeleteEvent(ev, i->second->part, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ }
+ return;
+ }
+ else if (cmd == "midi_fixed_len") {
+ if (selectionSize()) {
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (k->second->isSelected()) {
+ CItem* devent = k->second;
+ Event event = devent->event;
+ Event newEvent = event.clone();
+ newEvent.setLenTick(drumMap()->entry(event.pitch())->len);
+ audio->msgChangeEvent(event, newEvent, devent->part, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+ }
+ else if (cmd == "goto_left") {
+ int frames = pos[0].tick() - editor->rasterStep(pos[0].tick());
+ if (frames < 0)
+ frames = 0;
+ Pos p(frames, AL::TICKS);
+ song->setPos(0, p, true, true, true);
+ }
+ else if (cmd == "goto_right") {
+ Pos p(pos[0].tick() + editor->rasterStep(pos[0].tick()), AL::TICKS);
+ song->setPos(0, p, true, true, true);
+ }
+ else if (cmd == "mid_mod_velo") {
+ Velocity w(this);
+ w.setRange(editor->applyTo());
+ if (w.exec()) {
+ editor->setApplyTo(w.range());
+ int rate = w.rateVal();
+ int offset = w.offsetVal();
+
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* devent = k->second;
+ Event event = devent->event;
+ if (event.type() != Note)
+ continue;
+ unsigned tick = event.tick();
+ bool selected = devent->isSelected();
+ bool inLoop = (tick >= song->lpos()) && (tick < song->rpos());
+
+ int range = editor->applyTo();
+ if ((range == RANGE_ALL)
+ || (range == RANGE_SELECTED && selected)
+ || (range == RANGE_LOOPED && inLoop)
+ || (range == (RANGE_LOOPED | RANGE_SELECTED) && selected && inLoop)) {
+ int velo = event.velo();
+
+ //velo = rate ? (velo * 100) / rate : 64;
+ velo = (velo * rate) / 100;
+ velo += offset;
+
+ if (velo <= 0)
+ velo = 1;
+ if (velo > 127)
+ velo = 127;
+ if (event.velo() != velo) {
+ Event newEvent = event.clone();
+ newEvent.setVelo(velo);
+ audio->msgChangeEvent(event, newEvent, devent->part, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+ }
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// paste
+// paste events
+//---------------------------------------------------------
+
+void DrumCanvas::paste()
+ {
+ QString stype("x-muse-eventlist");
+ QString s = QApplication::clipboard()->text(stype, QClipboard::Selection);
+ pasteAt(s, song->cpos());
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void DrumCanvas::startDrag(CItem* /* item*/, bool /*copymode*/)
+ {
+printf("DrumCanvas: startDrag\n");
+#if 0 //TD
+ QMimeData* drag = getTextDrag();
+ if (drag) {
+ QApplication::clipboard()->setMimeData(drag, QClipboard::Selection);
+ if (copymode)
+ drag->dragCopy();
+ else
+ drag->dragMove();
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragEnterEvent(QDragEnterEvent* /*event*/)
+ {
+printf("DrumCanvas: dragEnterEvent\n");
+//TD event->accept(Q3TextDrag::canDecode(event));
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragMoveEvent(QDragMoveEvent*)
+ {
+ printf("drag move %p\n", this);
+ }
+
+//---------------------------------------------------------
+// dragLeaveEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragLeaveEvent(QDragLeaveEvent*)
+ {
+ printf("drag leave\n");
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void DrumCanvas::viewDropEvent(QDropEvent* /*event*/)
+ {
+printf("DrumCanvas: viewDropEvent\n");
+#if 0 //TD
+ QString text;
+ if (event->source() == this) {
+ printf("local DROP\n");
+ return;
+ }
+ if (Q3TextDrag::decode(event, text)) {
+// printf("drop <%s>\n", text.ascii());
+ int x = editor->rasterVal(event->pos().x());
+ if (x < 0)
+ x = 0;
+ pasteAt(text, x);
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// keyPressed
+//---------------------------------------------------------
+
+void DrumCanvas::keyPressed(int index, bool)
+ {
+ int pitch = drumMap()->entry(index)->anote;
+
+ // play note:
+ MidiEvent e(0, 0, 0x90, pitch, 127);
+ track()->playMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// keyReleased
+//---------------------------------------------------------
+
+void DrumCanvas::keyReleased(int index, bool)
+ {
+ int pitch = drumMap()->entry(index)->anote;
+
+ // release note:
+ MidiEvent e(0, 0, 0x90, pitch, 0);
+ track()->playMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void DrumCanvas::resizeEvent(QResizeEvent* ev)
+ {
+ if (ev->size().width() != ev->oldSize().width())
+ emit newWidth(ev->size().width());
+ EventCanvas::resizeEvent(ev);
+ }
+
+
+//---------------------------------------------------------
+// modifySelected
+//---------------------------------------------------------
+
+void DrumCanvas::modifySelected(NoteInfo::ValType type, int delta)
+ {
+ audio->msgIdle(true);
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!(i->second->isSelected()))
+ continue;
+ CItem* e = i->second;
+ Event event = e->event;
+ if (event.type() != Note)
+ continue;
+
+ Part* part = e->part;
+ Event newEvent = event.clone();
+
+ switch (type) {
+ case NoteInfo::VAL_TIME:
+ {
+ int newTime = event.tick() + delta;
+ if (newTime < 0)
+ newTime = 0;
+ newEvent.setTick(newTime);
+ }
+ break;
+ case NoteInfo::VAL_LEN:
+ /*
+ {
+ int len = event.lenTick() + delta;
+ if (len < 1)
+ len = 1;
+ newEvent.setLenTick(len);
+ }
+ */
+ printf("DrumCanvas::modifySelected - NoteInfo::VAL_LEN not implemented\n");
+ break;
+ case NoteInfo::VAL_VELON:
+ /*
+ {
+ int velo = event->velo() + delta;
+ if (velo > 127)
+ velo = 127;
+ else if (velo < 0)
+ velo = 0;
+ newEvent.setVelo(velo);
+ }
+ */
+ printf("DrumCanvas::modifySelected - NoteInfo::VAL_VELON not implemented\n");
+ break;
+ case NoteInfo::VAL_VELOFF:
+ /*
+ {
+ int velo = event.veloOff() + delta;
+ if (velo > 127)
+ velo = 127;
+ else if (velo < 0)
+ velo = 0;
+ newEvent.setVeloOff(velo);
+ }
+ */
+ printf("DrumCanvas::modifySelected - NoteInfo::VAL_VELOFF not implemented\n");
+ break;
+ case NoteInfo::VAL_PITCH:
+ {
+ int pitch = event.pitch() - delta; // Reversing order since the drumlist is displayed in increasing order
+ if (pitch > 127)
+ pitch = 127;
+ else if (pitch < 0)
+ pitch = 0;
+ newEvent.setPitch(pitch);
+ }
+ break;
+ }
+ song->changeEvent(event, newEvent, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// paintDrumList
+//---------------------------------------------------------
+
+void DrumCanvas::paintDrumList(QPainter& p, QRect r)
+ {
+ p.fillRect(r, QColor(0xe0, 0xe0, 0xe0));
+ paintVLine(p, 0, rPanelB.y(), rPanelA.x() + rPanelA.width());
+// p.setFont(config.fonts[1]);
+
+ int yoff = wpos.y() - rPanelA.y();
+ int i = (r.y() + yoff) / drumHeight;
+ if (i < 0)
+ i = 0;
+ if (i > 127)
+ return;
+ int y = i * drumHeight - yoff;
+ DrumMap* dm = drumMap();
+
+ for (; i < 128; ++i, y += drumHeight) {
+ if (y > r.y() + r.height())
+ break;
+ QRect r(3, y, drumWidth-4, drumHeight);
+ if (dm->anote(i) == curPitch || dm->anote(i) == singlePitch)
+ p.fillRect(0, y, drumWidth-4, drumHeight, Qt::white);
+ DrumMapEntry* de = dm->entry(i);
+ if (de->mute) {
+ p.setPen(Qt::red);
+ p.drawText(r, Qt::AlignVCenter | Qt::AlignLeft, "m");
+ p.setPen(Qt::darkGray);
+ p.drawText(r.adjusted(16, 0, 0, 0), Qt::AlignVCenter | Qt::AlignLeft, de->name);
+ }
+ else {
+ p.setPen(Qt::black);
+ p.drawText(r, Qt::AlignVCenter | Qt::AlignLeft, "m");
+ p.drawText(r.adjusted(16, 0, 0, 0), Qt::AlignVCenter | Qt::AlignLeft, de->name);
+ }
+ if (i != 0)
+ p.drawLine(0, y, drumWidth-3, y);
+ }
+ p.setPen(QPen(Qt::darkGray, 1));
+ p.drawLine(17, r.y(), 17, r.y() + r.height());
+ }
+
+//---------------------------------------------------------
+// searchItem
+//---------------------------------------------------------
+
+CItem* DrumCanvas::searchItem(const QPoint& p) const
+ {
+ Pos p1(pix2pos(p.x() - CARET2));
+ Pos p2(pix2pos(p.x() + CARET2));
+
+ ciCItem from(items.lower_bound(p1.tick()));
+ ciCItem to(items.upper_bound(p2.tick()));
+
+ int pitch = y2pitch(p.y());
+ for (ciCItem i = from; i != to; ++i) {
+ if (pitch == i->second->event.pitch())
+ return i->second;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// selectLasso
+//---------------------------------------------------------
+
+void DrumCanvas::selectLasso(bool toggle)
+ {
+ Pos p1(pix2pos(lasso.x()));
+ Pos p2(pix2pos(lasso.x() + lasso.width()));
+
+ iCItem from(items.lower_bound(p1.tick()));
+ iCItem to(items.upper_bound(p2.tick()));
+ int y = lasso.y();
+ int pitch1 = y2pitch(y);
+ int pitch2 = y2pitch(y + lasso.height());
+
+ int n = 0;
+ for (iCItem i = from; i != to; ++i) {
+ CItem* item = i->second;
+ int pitch = item->event.pitch();
+ if (pitch >= pitch1 && pitch <= pitch2) {
+ selectItem(item, !(toggle && item->isSelected()));
+ ++n;
+ }
+ }
+ if (n) {
+ updateSelection();
+ widget()->update();
+ }
+ }
+
+//---------------------------------------------------------
+// mousePress
+//---------------------------------------------------------
+
+void DrumCanvas::mousePress(QMouseEvent* ev)
+ {
+ QPoint r(ev->pos());
+ int pitch = y2pitch(r.y() - rPanelA.y() - wpos.y());
+ if (r.x() < 20) {
+ //
+ // "mute" button click
+ //
+ DrumMap* dm = drumMap();
+ int idx = dm->outmap(pitch);
+ DrumMapEntry* de = dm->entry(idx);
+ de->mute = !de->mute;
+ widget()->update(rPanelA);
+ return;
+ }
+ else if (r.x() < rCanvasA.x()) {
+ if (pitch != singlePitch) {
+ singlePitch = pitch;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i)
+ (*i)->setSinglePitch(singlePitch);
+ widget()->update();
+ }
+ }
+ EventCanvas::mousePress(ev);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/midiedit/dcanvas.h b/muse_qt4_evolution/muse/midiedit/dcanvas.h
new file mode 100644
index 00000000..9d4ab754
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/dcanvas.h
@@ -0,0 +1,77 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DCANVAS_H__
+#define __DCANVAS_H__
+
+#include "ecanvas.h"
+
+class MidiEditor;
+class DrumMap;
+
+//---------------------------------------------------------
+// DrumCanvas
+//---------------------------------------------------------
+
+class DrumCanvas : public EventCanvas {
+ Q_OBJECT
+
+ int singlePitch;
+ virtual void mousePress(QMouseEvent*);
+ virtual void paint(QPainter&, QRect);
+ virtual void addItem(Part* part, const Event& event);
+ virtual void moveItem(CItem*, DragType);
+ virtual CItem* newItem(const QPoint&, int);
+ virtual void resizeItem(CItem*, bool);
+ virtual void newItem(CItem*, bool);
+ virtual bool deleteItem(CItem*);
+ virtual CItem* searchItem(const QPoint& p) const;
+
+ void copy();
+ void paste();
+ void startDrag(CItem*, bool copymode);
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dragMoveEvent(QDragMoveEvent*);
+ void dragLeaveEvent(QDragLeaveEvent*);
+ void viewDropEvent(QDropEvent* event);
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void paintDrumList(QPainter&, QRect);
+ virtual void selectLasso(bool toggle);
+
+ DrumMap* drumMap() const;
+
+ protected:
+ virtual int y2pitch(int y) const;
+ virtual int pitch2y(int pitch) const;
+
+ signals:
+ void newWidth(int);
+
+ public slots:
+ void keyPressed(int, bool);
+ void keyReleased(int, bool);
+
+ public:
+ DrumCanvas(MidiEditor*);
+ void cmd(QAction*);
+ virtual void modifySelected(NoteInfo::ValType type, int delta);
+ };
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/drumedit.cpp b/muse_qt4_evolution/muse/midiedit/drumedit.cpp
new file mode 100644
index 00000000..a21a56a0
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/drumedit.cpp
@@ -0,0 +1,450 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "drumedit.h"
+#include "icons.h"
+#include "drummap.h"
+#include "audio.h"
+#include "shortcuts.h"
+#include "part.h"
+#include "muse.h"
+#include "song.h"
+
+static const int drumeditTools = PointerTool | PencilTool | RubberTool | DrawTool;
+
+int DrumEdit::initWidth = DrumEdit::INIT_WIDTH;
+int DrumEdit::initHeight = DrumEdit::INIT_HEIGHT;
+int DrumEdit::initRaster = DrumEdit::INIT_RASTER;
+int DrumEdit::initQuant = DrumEdit::INIT_QUANT;
+bool DrumEdit::initFollow = DrumEdit::INIT_FOLLOW;
+bool DrumEdit::initSpeaker = DrumEdit::INIT_SPEAKER;
+bool DrumEdit::initMidiin = DrumEdit::INIT_MIDIIN;
+double DrumEdit::initXmag = 0.08; // DrumEdit::INIT_XMAG;
+int DrumEdit::initApplyTo = DrumEdit::INIT_APPLY_TO;
+
+//---------------------------------------------------------
+// DrumEdit
+//---------------------------------------------------------
+
+DrumEdit::DrumEdit(PartList* pl, bool init)
+ : MidiEditor(pl)
+ {
+ _applyTo = initApplyTo;
+
+ deltaMode = false;
+ drumMap = &noDrumMap;
+
+ //---------Pulldown Menu----------------------------
+ QMenuBar* mb = menuBar();
+
+ menuEdit->addSeparator();
+ menuEdit->addAction(getAction("delete", this));
+
+ // Functions
+ menuFunctions = mb->addMenu(tr("&Functions"));
+ menuFunctions->addAction(getAction("midi_fixed_len", this));
+ menuFunctions->addAction(getAction("midi_mod_velo", this));
+
+ menuSelect = menuEdit->addMenu(tr("&Select"));
+ menuSelect->setIcon(QIcon(*selectIcon));
+
+ menuSelect->addAction(getAction("sel_all", this));
+ menuSelect->addAction(getAction("sel_none", this));
+ menuSelect->addAction(getAction("sel_inv", this));
+ menuSelect->addSeparator();
+ menuSelect->addAction(getAction("sel_ins_loc", this));
+ menuSelect->addAction(getAction("sel_out_loc", this));
+
+ connect(menuSelect, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(menuFunctions, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+
+ //---------------------------------------------------
+ // Toolbars
+ //---------------------------------------------------
+
+ tools = addToolBar(tr("Drum Tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+ tools->addSeparator();
+
+ tools->addAction(stepRecAction);
+ stepRecAction->setChecked(INIT_SREC);
+
+ tools->addAction(midiInAction);
+ midiInAction->setChecked(INIT_MIDIIN);
+
+ tools->addAction(speaker);
+ speaker->setChecked(INIT_SPEAKER);
+
+ tools->addAction(followSongAction);
+ followSongAction->setChecked(INIT_FOLLOW);
+
+ tools2 = new EditToolBar(this, drumeditTools);
+ addToolBar(tools2);
+
+ QToolBar* transport = addToolBar(tr("Transport"));
+ muse->setupTransportToolbar(transport);
+
+ addToolBarBreak();
+ toolbar = new Toolbar1(initRaster, initQuant, false);
+ addToolBar(toolbar);
+ addToolBarBreak();
+ info = new NoteInfo(this);
+ addToolBar(info);
+
+ tcanvas = new DrumCanvas(this);
+ setCentralWidget(tcanvas);
+ tcanvas->setCornerWidget(new QSizeGrip(tcanvas));
+ tcanvas->setFollow(INIT_FOLLOW);
+
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), canvas(), SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ connect(canvas(), SIGNAL(posChanged(int,const AL::Pos&)), SLOT(setPos(int,const AL::Pos&)));
+
+ connect(canvas(), SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ connect(tools2, SIGNAL(toolChanged(int)), canvas(), SLOT(setTool(int)));
+
+ connect(canvas(), SIGNAL(selectionChanged(int, Event&, Part*)),
+ SLOT(setSelection(int, Event&, Part*)));
+
+ setWindowTitle(canvas()->getCaption());
+
+ Pos p1(0, AL::TICKS), p2(0, AL::TICKS);
+ canvas()->range(p1, p2);
+ p2 += AL::sigmap.ticksMeasure(p2.tick()); // show one more measure
+ canvas()->setTimeRange(p1, p2);
+
+ // connect toolbar
+ connect(canvas(), SIGNAL(cursorPos(const AL::Pos&,bool)), toolbar, SLOT(setTime(const AL::Pos&,bool)));
+ connect(toolbar, SIGNAL(quantChanged(int)), SLOT(setQuant(int)));
+ connect(toolbar, SIGNAL(rasterChanged(int)), SLOT(setRaster(int)));
+ connect(toolbar, SIGNAL(soloChanged(bool)), SLOT(soloChanged(bool)));
+ connect(toolbar, SIGNAL(toChanged(int)), SLOT(setApplyTo(int)));
+
+ connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+
+ canvas()->selectFirst();
+
+ //
+ // install misc shortcuts
+ //
+ QShortcut* sc;
+ sc = new QShortcut(Qt::Key_Escape, this);
+ sc->setContext(Qt::WindowShortcut);
+ connect(sc, SIGNAL(activated()), SLOT(close()));
+
+ QSignalMapper* cmdMap = new QSignalMapper(this);
+ static const char* actions[] = {
+ "curpos_increase", "curpos_decrease",
+ "pointer", "pencil", "eraser",
+ "midi_quant_1", "midi_quant_2", "midi_quant_3", "midi_quant_4",
+ "midi_quant_5", "midi_quant_6", "midi_quant_7",
+ "midi_quant_triol", "midi_quant_punct", "midi_quant_punct2"
+ };
+ for (unsigned i = 0; i < sizeof(actions)/sizeof(*actions); ++i) {
+ QAction* a = getAction(actions[i], this);
+ addAction(a);
+ cmdMap->setMapping(a, a);
+ connect(a, SIGNAL(triggered()), cmdMap, SLOT(map()));
+ }
+ connect(cmdMap, SIGNAL(mapped(QObject*)), SLOT(drumCmd(QObject*)));
+
+
+ connect(song, SIGNAL(songChanged(int)), canvas(), SLOT(songChanged(int)));
+ connect(followSongAction, SIGNAL(toggled(bool)), canvas(), SLOT(setFollow(bool)));
+ canvas()->selectFirst();
+
+ Part* part = canvas()->part();
+
+ setRaster(part->raster() != -1 ? part->raster() : initRaster);
+ setQuant(part->quant() != -1 ? part->quant() : initQuant);
+ setXmag(part->xmag() != -1.0 ? part->xmag() : initXmag);
+
+ if (init)
+ initFromPart();
+ else
+ resize(initWidth, initHeight);
+ }
+
+//---------------------------------------------------------
+// ~DrumEdit
+//---------------------------------------------------------
+
+DrumEdit::~DrumEdit()
+ {
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void DrumEdit::closeEvent(QCloseEvent* e)
+ {
+ MidiEditor::closeEvent(e);
+ }
+
+//---------------------------------------------------------
+// setSelection
+// update Info Line
+//---------------------------------------------------------
+
+void DrumEdit::setSelection(int tick, Event& e, Part* p)
+ {
+ int selections = canvas()->selectionSize();
+ selEvent = e;
+ selPart = p;
+
+ if (selections > 1) {
+ info->setEnabled(true);
+ info->setDeltaMode(true);
+ if (!deltaMode) {
+ deltaMode = true;
+ info->setValues(0, 0, 0, 0, 0);
+ tickOffset = 0;
+ lenOffset = 0;
+ pitchOffset = 0;
+ veloOnOffset = 0;
+ veloOffOffset = 0;
+ }
+ }
+ else if (selections == 1) {
+ deltaMode = false;
+ info->setEnabled(true);
+ info->setDeltaMode(false);
+ info->setValues(tick,
+ selEvent.lenTick(),
+ selEvent.pitch(),
+ selEvent.velo(),
+ selEvent.veloOff());
+ }
+ else {
+ deltaMode = false;
+ info->setEnabled(false);
+ }
+ selectionChanged();
+ }
+
+//---------------------------------------------------------
+// soloChanged
+//---------------------------------------------------------
+
+void DrumEdit::soloChanged(bool flag)
+ {
+ song->setSolo(canvas()->track(), flag);
+ }
+
+//---------------------------------------------------------
+// edit currently selected Event
+//---------------------------------------------------------
+
+void DrumEdit::noteinfoChanged(NoteInfo::ValType type, int val)
+ {
+ int selections = canvas()->selectionSize();
+
+ if (selections == 0) {
+ printf("noteinfoChanged while nothing selected\n");
+ }
+ else if (selections == 1) {
+ Event event = selEvent.clone();
+ switch(type) {
+ case NoteInfo::VAL_TIME:
+ event.setTick(val - selPart->tick());
+ break;
+ case NoteInfo::VAL_LEN:
+ event.setLenTick(val);
+ break;
+ case NoteInfo::VAL_VELON:
+ event.setVelo(val);
+ break;
+ case NoteInfo::VAL_VELOFF:
+ event.setVeloOff(val);
+ break;
+ case NoteInfo::VAL_PITCH:
+ event.setPitch(val);
+ break;
+ }
+ audio->msgChangeEvent(selEvent, event, selPart);
+ }
+ else {
+ // multiple events are selected; treat noteinfo values
+ // as offsets to event values
+
+ int delta = 0;
+ switch (type) {
+ case NoteInfo::VAL_TIME:
+ delta = val - tickOffset;
+ tickOffset = val;
+ break;
+ case NoteInfo::VAL_LEN:
+ delta = val - lenOffset;
+ lenOffset = val;
+ break;
+ case NoteInfo::VAL_VELON:
+ delta = val - veloOnOffset;
+ veloOnOffset = val;
+ break;
+ case NoteInfo::VAL_VELOFF:
+ delta = val - veloOffOffset;
+ veloOffOffset = val;
+ break;
+ case NoteInfo::VAL_PITCH:
+ delta = val - pitchOffset;
+ pitchOffset = val;
+ break;
+ }
+ if (delta)
+ canvas()->modifySelected(type, delta);
+ }
+ }
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void DrumEdit::cmd(QAction* a)
+ {
+ canvas()->cmd(a);
+ }
+
+//---------------------------------------------------------
+// drumCmd
+//---------------------------------------------------------
+
+void DrumEdit::drumCmd(QObject* object)
+ {
+ QAction* a = (QAction*)object;
+ QString cmd(a->data().toString());
+
+ static const int rasterTable[] = {
+ //-9----8- 7 6 5 4 3(1/4) 2 1
+ 4, 8, 16, 32, 64, 128, 256, 512, 1024, // triple
+ 6, 12, 24, 48, 96, 192, 384, 768, 1536,
+ 9, 18, 36, 72, 144, 288, 576, 1152, 2304 // dot
+ };
+
+ DrumCanvas* dc = canvas();
+ int index = 0;
+ int n = sizeof(rasterTable);
+ for (; index < n; ++index)
+ if (rasterTable[index] == raster())
+ break;
+ int off = (index / 9) * 9;
+ index = index % 9;
+ int val;
+
+ if (cmd == "curpos_increase") {
+ dc->cmd(a);
+ return;
+ }
+ else if (cmd == "curpos_decrease") {
+ dc->cmd(a);
+ return;
+ }
+ else if (cmd == "pointer") {
+ tools2->set(PointerTool);
+ return;
+ }
+ else if (cmd == "pencil") {
+ tools2->set(PencilTool);
+ return;
+ }
+ else if (cmd == "eraser") {
+ tools2->set(RubberTool);
+ return;
+ }
+ else if (cmd == "midi_quant_1")
+ val = rasterTable[8 + off];
+ else if (cmd == "midi_quant_2")
+ val = rasterTable[7 + off];
+ else if (cmd == "midi_quant_3")
+ val = rasterTable[6 + off];
+ else if (cmd == "midi_quant_4")
+ val = rasterTable[5 + off];
+ else if (cmd == "midi_quant_5")
+ val = rasterTable[4 + off];
+ else if (cmd == "midi_quant_6")
+ val = rasterTable[3 + off];
+ else if (cmd == "midi_quant_7")
+ val = rasterTable[2 + off];
+ else if (cmd == "midi_quant_triol")
+ val = rasterTable[index + ((off == 0) ? 9 : 0)];
+ else if (cmd == "midi_quant_punct")
+ val = rasterTable[index + ((off == 18) ? 9 : 18)];
+
+ else if (cmd == "midi_quant_punct2") {
+ if ((off == 18) && (index > 2)) {
+ val = rasterTable[index + 9 - 1];
+ }
+ else if ((off == 9) && (index < 8)) {
+ val = rasterTable[index + 18 + 1];
+ }
+ else
+ return;
+ }
+ else {
+ printf("DrumEdit::drumCmd: unknown cmd <%s>\n", cmd.toLatin1().data());
+ return;
+ }
+ setQuant(val);
+ setRaster(val);
+ toolbar->setQuant(quant());
+ toolbar->setRaster(raster());
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void DrumEdit::writeConfiguration(Xml& xml)
+ {
+ xml.stag("DrumEdit");
+ if (DrumEdit::initWidth != DrumEdit::INIT_WIDTH)
+ xml.tag("width", DrumEdit::initWidth);
+ if (DrumEdit::initHeight != DrumEdit::INIT_HEIGHT)
+ xml.tag("height", DrumEdit::initHeight);
+ if (DrumEdit::initRaster != DrumEdit::INIT_RASTER)
+ xml.tag("raster", DrumEdit::initRaster);
+ xml.etag("DrumEdit");
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void DrumEdit::readConfiguration(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ int i = e.text().toInt();
+ if (tag == "width")
+ DrumEdit::initWidth = i;
+ else if (tag == "height")
+ DrumEdit::initHeight = i;
+ else if (tag == "raster")
+ DrumEdit::initRaster = i;
+ else
+ printf("MusE:DrumEdit: unknown tag %s\n", tag.toLatin1().data());
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/drumedit.h b/muse_qt4_evolution/muse/midiedit/drumedit.h
new file mode 100644
index 00000000..20cf99f6
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/drumedit.h
@@ -0,0 +1,93 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DRUM_EDIT_H__
+#define __DRUM_EDIT_H__
+
+#include "midieditor.h"
+#include "dcanvas.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+
+class PartList;
+class Part;
+class DrumMap;
+
+//---------------------------------------------------------
+// DrumEdit
+//---------------------------------------------------------
+
+class DrumEdit : public MidiEditor {
+ Q_OBJECT
+
+ Event selEvent;
+ DrumMap* drumMap;
+ int selTick;
+ QMenu *menuFunctions, *menuSelect;
+
+ int tickOffset;
+ int lenOffset;
+ int pitchOffset;
+ int veloOnOffset;
+ int veloOffOffset;
+ bool deltaMode;
+
+ virtual void closeEvent(QCloseEvent*);
+ QWidget* genToolbar(QWidget* parent);
+ DrumCanvas* canvas() { return (DrumCanvas*)tcanvas; }
+
+ private slots:
+ void noteinfoChanged(NoteInfo::ValType type, int val);
+ virtual void cmd(QAction*);
+ void drumCmd(QObject* object);
+
+ public slots:
+ void setSelection(int, Event&, Part*);
+ void soloChanged(bool); // called by Solo button
+
+ public:
+ DrumEdit(PartList*, bool);
+ ~DrumEdit();
+
+ static int initRaster, initQuant, initWidth, initHeight;
+ static bool initFollow, initSpeaker, initMidiin;
+ static int initApplyTo;
+ static double initXmag;
+
+ static void readConfiguration(QDomNode);
+ static void writeConfiguration(Xml&);
+
+ static const int INIT_WIDTH = 650;
+ static const int INIT_HEIGHT = 450;
+ static const int INIT_RASTER = 384 / 4;
+ static const int INIT_QUANT = 384 / 4;
+ static const bool INIT_FOLLOW = false;
+ static const bool INIT_SPEAKER = true;
+ static const bool INIT_SREC = false;
+ static const bool INIT_MIDIIN = false;
+ static const double INIT_XMAG = 0.08;
+ static const int INIT_APPLY_TO = 0;
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/midiedit/drummap.cpp b/muse_qt4_evolution/muse/midiedit/drummap.cpp
new file mode 100644
index 00000000..978c7dab
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/drummap.cpp
@@ -0,0 +1,219 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "drummap.h"
+#include "al/xml.h"
+
+static const int DEFAULT_QUANT = 16;
+static const int DEFAULT_LEN = 32;
+static const int DEFAULT_CHANNEL = -1;
+static const int DEFAULT_LV1 = 70;
+static const int DEFAULT_LV2 = 90;
+static const int DEFAULT_LV3 = 110;
+static const int DEFAULT_LV4 = 127;
+
+//---------------------------------------------------------
+// GM default drum map
+//---------------------------------------------------------
+
+DrumMap gmDrumMap("generic");
+DrumMap noDrumMap("no-map");
+
+//---------------------------------------------------------
+// DrumMap
+//---------------------------------------------------------
+
+DrumMap::DrumMap(const QString& s)
+ {
+ _name = s;
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ map[i].name = "?";
+ map[i].enote = i;
+ map[i].anote = i;
+ map[i].quant = DEFAULT_QUANT;
+ map[i].len = DEFAULT_LEN;
+ map[i].channel = DEFAULT_CHANNEL;
+ map[i].lv1 = DEFAULT_LV1;
+ map[i].lv2 = DEFAULT_LV2;
+ map[i].lv3 = DEFAULT_LV3;
+ map[i].lv4 = DEFAULT_LV4;
+ map[i].mute = false;
+ }
+ init();
+ }
+
+//---------------------------------------------------------
+// initGm
+//---------------------------------------------------------
+
+void DrumMap::initGm()
+ {
+ static const char* gmNames[] = {
+ "Acoustic Bass Drum", "Bass Drum 1", "Side Stick", "Acoustic Snare",
+ "Hand Clap", "Electric Snare", "Low Floor Tom", "Closed Hi-Hat",
+ "High Floor Tom", "Pedal Hi-Hat", "Low Tom", "Open Hi-Hat", "Low-Mid Tom",
+ "Hi-Mid Tom", "Crash Cymbal 1", "High Tom", "Ride Cymbal 1",
+ "Chinese Cymbal", "Ride Bell", "Tambourine", "Splash Cymbal",
+ "Cowbell", "Crash Cymbal 2", "Vibraslap", "Ride Cymbal 2",
+ "Hi Bongo", "Low Bongo", "Mute Hi Conga", "Open Hi Conga",
+ "Low Conga", "High Timbale", "Low Timbale", "High Agogo",
+ "Low Agogo", "Cabasa", "Maracas", "Short Whistle",
+ "Long Whistle", "Short Guiro", "Long Guiro", "Claves",
+ "Hi Wood Block", "Low Wood Block", "Mute Cuica",
+ "Open Cuica", "Mute Triangle", "Open Triangle", 0
+ };
+ init();
+ int idx = 0;
+ const char** p = &gmNames[0];
+ int val = 35;
+ for (; *p; ++p, ++val, ++idx) {
+ map[idx].name = *p;
+ map[idx].enote = val;
+ map[idx].anote = val;
+ _inmap[int(map[idx].enote)] = idx;
+ _outmap[int(map[idx].anote)] = idx;
+ }
+ }
+
+//---------------------------------------------------------
+// init
+// populate Inmap and Outmap
+//---------------------------------------------------------
+
+void DrumMap::init()
+ {
+ memset(_inmap, 0, sizeof(_inmap));
+ memset(_outmap, 0, sizeof(_outmap));
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ _inmap[int(map[i].enote)] = i;
+ _outmap[int(map[i].anote)] = i;
+ }
+ }
+
+//---------------------------------------------------------
+// writeDrumMap
+//---------------------------------------------------------
+
+void DrumMap::write(Xml& xml)
+ {
+ xml.stag("drummap");
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ DrumMapEntry* dm = &map[i];
+ dm->write(xml);
+ }
+ xml.etag("drummap");
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void DrumMapEntry::write(Xml& xml)
+ {
+ xml.stag("entry");
+ xml.tag("name", name);
+ if (quant != DEFAULT_QUANT)
+ xml.tag("quant", quant);
+ if (len != DEFAULT_LEN)
+ xml.tag("len", len);
+ if (channel != DEFAULT_CHANNEL)
+ xml.tag("channel", channel);
+ if (lv1 != DEFAULT_LV1)
+ xml.tag("lv1", lv1);
+ if (lv2 != DEFAULT_LV2)
+ xml.tag("lv2", lv2);
+ if (lv3 != DEFAULT_LV3)
+ xml.tag("lv3", lv3);
+ if (lv4 != DEFAULT_LV4)
+ xml.tag("lv4", lv4);
+ xml.tag("enote", enote);
+ if (anote != enote)
+ xml.tag("anote", anote);
+ xml.etag("entry");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void DrumMapEntry::read(QDomNode n)
+ {
+ anote = -1;
+ for (QDomNode node = n.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ if (tag == "name")
+ name = s;
+ else if (tag == "quant")
+ quant = s.toInt();
+ else if (tag == "len")
+ len = s.toInt();
+ else if (tag == "channel")
+ channel = s.toInt();
+ else if (tag == "lv1")
+ lv1 = s.toInt();
+ else if (tag == "lv2")
+ lv2 = s.toInt();
+ else if (tag == "lv3")
+ lv3 = s.toInt();
+ else if (tag == "lv4")
+ lv4 = s.toInt();
+ else if (tag == "enote")
+ enote = s.toInt();
+ else if (tag == "anote")
+ anote = s.toInt();
+ else if (tag == "mute")
+ mute = s.toInt();
+ else {
+ printf("read Drummap Entry: unknown tag %s\n", tag.toLatin1().data());
+ break;
+ }
+ }
+ if (anote == -1)
+ anote = enote;
+ }
+
+//---------------------------------------------------------
+// readDrummap
+//---------------------------------------------------------
+
+void DrumMap::read(QDomNode node)
+ {
+ init();
+ int idx = 0;
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+
+ if (tag == "entry") {
+ QDomNode entryNode = node.firstChild();
+ map[idx].read(entryNode);
+ _inmap[int(map[idx].enote)] = idx;
+ _outmap[int(map[idx].anote)] = idx;
+ ++idx;
+ }
+ else {
+ printf("read Drummap: unknown tag %s\n", tag.toLatin1().data());
+ break;
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/drummap.h b/muse_qt4_evolution/muse/midiedit/drummap.h
new file mode 100644
index 00000000..0ec1d536
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/drummap.h
@@ -0,0 +1,81 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DRUMMAP_H__
+#define __DRUMMAP_H__
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+const int DRUM_MAPSIZE = 128;
+
+//---------------------------------------------------------
+// DrumMapEntry
+//---------------------------------------------------------
+
+struct DrumMapEntry {
+ QString name;
+ int quant;
+ int len; // len of event in ticks
+ int channel; // midi channel
+ char lv1, lv2, lv3, lv4; // velocities
+ char enote, anote; // input note - output note
+ bool mute;
+
+ void read(QDomNode node);
+ void write(Xml& xml);
+ };
+
+//---------------------------------------------------------
+// DrumMap
+//---------------------------------------------------------
+
+class DrumMap {
+ QString _name;
+ DrumMapEntry map[DRUM_MAPSIZE];
+ char _outmap[DRUM_MAPSIZE];
+ char _inmap[DRUM_MAPSIZE];
+
+ public:
+ DrumMap(const QString& name);
+ void init();
+ void write(Xml& xml);
+ void read(QDomNode);
+ void initGm();
+ DrumMapEntry* entry(int idx) { return &map[idx]; }
+ QString name() const { return _name; }
+ QString name(int i) const { return map[i].name; }
+ int quant(int i) const { return map[i].quant; }
+ int len(int i) const { return map[i].len; }
+ int channel(int i) const { return map[i].channel; }
+ int enote(int i) const { return map[i].enote; }
+ int anote(int i) const { return map[i].anote; }
+ bool mute(int i) const { return map[i].mute; }
+ int inmap(int i) const { return _inmap[i]; }
+ int outmap(int i) const { return _outmap[i]; }
+ };
+
+extern DrumMap gmDrumMap;
+extern DrumMap noDrumMap;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/ecanvas.cpp b/muse_qt4_evolution/muse/midiedit/ecanvas.cpp
new file mode 100644
index 00000000..8c2eefbf
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/ecanvas.cpp
@@ -0,0 +1,1549 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midieditor.h"
+#include "ecanvas.h"
+#include "song.h"
+#include "shortcuts.h"
+#include "widgets/simplebutton.h"
+#include "widgets/tools.h"
+#include "widgets/utils.h"
+#include "part.h"
+#include "audio.h"
+#include "midi.h"
+
+//---------------------------------------------------------
+// EventCanvas
+//---------------------------------------------------------
+
+EventCanvas::EventCanvas(MidiEditor* pr, TimeCanvasType type)
+ : TimeCanvas(type)
+ {
+ setMarkerList(song->marker());
+ canvasTools = 0;
+ curItem = 0;
+ curSplitter = -1;
+ dragSplitter = false;
+
+ keyDown = -1;
+
+ itemPopupMenu = 0;
+ canvasPopupMenu = 0;
+ drag = DRAG_OFF;
+
+ editor = pr;
+ curVelo = 70;
+
+ setAcceptDrops(true);
+ setFocusPolicy(Qt::StrongFocus);
+ setMouseTracking(true);
+
+ curPart = editor->parts()->begin()->second;
+ connect(song, SIGNAL(midiEvent(const MidiEvent&)), SLOT(midiNote(const MidiEvent&)));
+ }
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void EventCanvas::range(AL::Pos& s, AL::Pos& e) const
+ {
+ s.setTick(startTick);
+ e.setTick(endTick);
+ }
+
+//---------------------------------------------------------
+// getCaption
+//---------------------------------------------------------
+
+QString EventCanvas::getCaption() const
+ {
+ int bar1, bar2, xx;
+ unsigned x;
+ AL::sigmap.tickValues(curPart->tick(), &bar1, &xx, &x);
+ AL::sigmap.tickValues(curPart->tick() + curPart->lenTick(), &bar2, &xx, &x);
+
+ return QString("MusE: Part <") + curPart->name()
+ + QString("> %1-%2").arg(bar1+1).arg(bar2+1);
+ }
+
+//---------------------------------------------------------
+// startUndo
+//---------------------------------------------------------
+
+void EventCanvas::startUndo(DragType)
+ {
+ song->startUndo();
+ }
+
+//---------------------------------------------------------
+// endUndo
+//---------------------------------------------------------
+
+void EventCanvas::endUndo(DragType dtype)
+ {
+ song->endUndo((dtype == MOVE_COPY) ? SC_EVENT_INSERTED : SC_EVENT_MODIFIED);
+ }
+
+//---------------------------------------------------------
+// updateSelection
+//---------------------------------------------------------
+
+void EventCanvas::updateSelection()
+ {
+ song->update(SC_SELECTION);
+ }
+
+//---------------------------------------------------------
+// songChanged(type)
+// called from MidiEditor
+//---------------------------------------------------------
+
+void EventCanvas::songChanged(int flags)
+ {
+ if ((flags & ~SC_SELECTION) && !editor->parts()->empty()) {
+ items.clear();
+ startTick = INT_MAX;
+ endTick = 0;
+ for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {
+ Part* part = p->second;
+ unsigned stick = part->tick();
+ unsigned etick = stick + part->lenTick();
+ if (stick < startTick)
+ startTick = stick;
+ if (etick > endTick)
+ endTick = etick;
+
+ EventList* el = part->events();
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event e = i->second;
+ if (e.isNote())
+ addItem(part, e);
+ }
+ }
+ }
+
+ Event event;
+ Part* part = 0;
+ int x = 0;
+ CItem* nevent = 0;
+
+ int n = 0; // count selections
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ Event ev = k->second->event;
+ bool selected = ev.selected();
+ if (selected) {
+ k->second->setSelected(true);
+ ++n;
+ if (!nevent) {
+ nevent = k->second;
+ Event mi = nevent->event;
+ curVelo = mi.velo();
+ }
+ }
+ }
+ startTick = song->roundDownBar(startTick);
+ endTick = song->roundUpBar(endTick);
+
+ if (n == 1) {
+ x = nevent->bbox.x();
+ event = nevent->event;
+ part = nevent->part;
+ }
+ emit selectionChanged(x, event, part);
+ if (curPart)
+ setPart(*curPart, curPart->end());
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// selectFirst
+//---------------------------------------------------------
+
+void EventCanvas::selectFirst()
+ {
+ //Select leftmost note if none selected and there are any
+ if (!items.empty() && selectionSize() == 0) {
+ iCItem i = items.begin();
+ if (!i->second->isSelected()) {
+ selectItem(i->second, true);
+ songChanged(SC_SELECTION);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// track
+//---------------------------------------------------------
+
+MidiTrack* EventCanvas::track() const
+ {
+ return (MidiTrack*)(curPart->track());
+ }
+
+//---------------------------------------------------------
+// keyPress
+//---------------------------------------------------------
+
+void EventCanvas::keyPress(QKeyEvent* event)
+ {
+#if 0 // TODOB
+ int key = event->key();
+ if (event->modifiers() & Qt::ShiftModifier)
+ key += Qt::SHIFT;
+ if (event->modifiers() & Qt::AltModifier)
+ key += Qt::ALT;
+ if (event->modifiers() & Qt::ControlModifier)
+ key += Qt::CTRL;
+
+ //
+ // Shortcut for DrumEditor & PianoRoll
+ // Sets locators to selected events
+ //
+ if (key == shortcuts[SHRT_LOCATORS_TO_SELECTION].key) {
+ int tick_max = 0;
+ int tick_min = INT_MAX;
+ bool found = false;
+
+ for (iCItem i= items.begin(); i != items.end(); i++) {
+ if (!i->second->isSelected())
+ continue;
+
+ int tick = i->second->bbox.x();
+ int len = i->second->event.lenTick();
+ found = true;
+ if (tick + len > tick_max)
+ tick_max = tick + len;
+ if (tick < tick_min)
+ tick_min = tick;
+ }
+ if (found) {
+ Pos p1(tick_min, AL::TICKS);
+ Pos p2(tick_max, AL::TICKS);
+ song->setPos(1, p1);
+ song->setPos(2, p2);
+ }
+ }
+ // Select items by key (PianoRoll & DrumEditor)
+ else if (key == shortcuts[SHRT_SEL_RIGHT].key || key == shortcuts[SHRT_SEL_RIGHT_ADD].key) {
+ iCItem i, iRightmost;
+ CItem* rightmost = NULL;
+ //Get the rightmost selected note (if any)
+ for (i = items.begin(); i != items.end(); ++i) {
+ if (i->second->isSelected()) {
+ iRightmost = i;
+ rightmost = i->second;
+ }
+ }
+ if (rightmost) {
+ iCItem temp = iRightmost;
+ temp++;
+ //If so, deselect current note and select the one to the right
+ if (temp != items.end()) {
+ if (key != shortcuts[SHRT_SEL_RIGHT_ADD].key)
+ deselectAll();
+
+ iRightmost++;
+ iRightmost->second->setSelected(true);
+ updateSelection();
+ }
+ }
+ }
+ //Select items by key: (PianoRoll & DrumEditor)
+ else if (key == shortcuts[SHRT_SEL_LEFT].key || key == shortcuts[SHRT_SEL_LEFT_ADD].key) {
+ iCItem i, iLeftmost;
+ CItem* leftmost = NULL;
+ for (i = items.end(), i--; i != items.begin(); i--) {
+ if (i->second->isSelected()) {
+ iLeftmost = i;
+ leftmost = i->second;
+ }
+ }
+ if (leftmost) {
+ if (iLeftmost != items.begin()) {
+ //Add item
+ if (key != shortcuts[SHRT_SEL_LEFT_ADD].key)
+ deselectAll();
+
+ iLeftmost--;
+ iLeftmost->second->setSelected(true);
+ updateSelection();
+ }
+ }
+ }
+ else if (key == shortcuts[SHRT_INC_PITCH].key) {
+ modifySelected(NoteInfo::VAL_PITCH, 1);
+ }
+ else if (key == shortcuts[SHRT_DEC_PITCH].key) {
+ modifySelected(NoteInfo::VAL_PITCH, -1);
+ }
+ else if (key == shortcuts[SHRT_INC_POS].key) {
+ // TODO: Check boundaries
+ modifySelected(NoteInfo::VAL_TIME, editor->raster());
+ }
+ else if (key == shortcuts[SHRT_DEC_POS].key) {
+ // TODO: Check boundaries
+ modifySelected(NoteInfo::VAL_TIME, 0 - editor->raster());
+ }
+ else
+ event->ignore();
+#endif
+ }
+
+//---------------------------------------------------------
+// mousePressCanvasA
+//---------------------------------------------------------
+
+void EventCanvas::mousePressCanvasA(QMouseEvent* me)
+ {
+ QPoint p(me->pos() - rCanvasA.topLeft());
+
+ // special events if right button is clicked while operations
+ // like moving or drawing lasso is performed.
+
+ if (button == Qt::RightButton) {
+ switch (drag) {
+ case DRAG_LASSO:
+ drag = DRAG_OFF;
+ widget()->update();
+ return;
+ case DRAG_MOVE:
+ drag = DRAG_OFF;
+ endMoveItems(MOVE_MOVE);
+ return;
+ default:
+ break;
+ }
+ }
+ // ignore event if (another) button is already active:
+ if (me->buttons() & (Qt::LeftButton | Qt::RightButton | Qt::MidButton)
+ & ~button)
+ return;
+
+ bool shift = keyState & Qt::ShiftModifier;
+ bool ctrl = keyState & Qt::ControlModifier;
+ start = p;
+ startPitch = y2pitch(start.y());
+ deltaPitch = 0;
+
+ //---------------------------------------------------
+ // set curItem to item mouse is pointing
+ // (if any)
+ //---------------------------------------------------
+
+ curItem = searchItem(start);
+ if (curItem && editor->playEvents()) {
+ int pitch = curItem->event.pitch() + track()->transposition();
+ MidiEvent e(0, 0, ME_NOTEON, pitch, curItem->event.velo());
+ track()->playMidiEvent(&e);
+ }
+
+ if (curItem && (button == Qt::MidButton)) {
+ if (!curItem->isSelected()) {
+ selectItem(curItem, true);
+ updateSelection();
+ widget()->update();
+ }
+ startDrag(curItem, shift);
+ }
+ else if (button == Qt::RightButton) {
+ if (curItem) {
+ if (shift) {
+ drag = DRAG_RESIZE;
+ setCursor();
+ Pos p1(curItem->bbox.x(), timeType());
+ Pos p2(pix2pos(start.x()));
+ curItem->bbox.setWidth(p2.time(timeType())-p1.time(timeType()));
+
+ start.setX(curItem->bbox.x());
+ deselectAll();
+ selectItem(curItem, true);
+ updateSelection();
+ widget()->update();
+ }
+ else {
+ itemPopupMenu = genItemPopup(curItem);
+ if (itemPopupMenu) {
+ QAction* a = itemPopupMenu->exec(QCursor::pos());
+ if (a) {
+ int n = a->data().toInt();
+ itemPopup(curItem, n, start);
+ }
+ delete itemPopupMenu;
+ }
+ }
+ }
+ else {
+ canvasPopupMenu = genCanvasPopup();
+ if (canvasPopupMenu) {
+ QAction* a = canvasPopupMenu->exec(QCursor::pos(), 0);
+ if (a) {
+ int n = a->data().toInt();
+ canvasPopup(n);
+ }
+ delete canvasPopupMenu;
+ }
+ }
+ }
+ else if (button == Qt::LeftButton) {
+ switch (_tool) {
+ case PointerTool:
+ if (curItem) {
+ itemPressed(curItem);
+ if (curItem->part != curPart)
+ setCurPart(curItem->part);
+ if (shift && !ctrl)
+ drag = DRAG_COPY_START;
+ else if (!shift && ctrl) {
+ //Select all on the same pitch
+ deselectAll();
+ int pitch = curItem->event.pitch();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->event.pitch() == pitch)
+ selectItem(i->second, true);
+ }
+ updateSelection();
+ widget()->update();
+ drag = DRAG_MOVE_START;
+ }
+ else
+ drag = DRAG_MOVE_START;
+ }
+ else
+ drag = DRAG_LASSO_START;
+ setCursor();
+ break;
+
+ case RubberTool:
+ deleteItem(p);
+ drag = DRAG_DELETE;
+ setCursor();
+ break;
+
+ case PencilTool:
+ if (curItem) {
+ drag = DRAG_RESIZE;
+ setCursor();
+
+ Pos p1(curItem->bbox.x(), timeType());
+ Pos p2(pix2pos(start.x()));
+ int w = p2.time(timeType()) - p1.time(timeType());
+ curItem->bbox.setWidth(w);
+ start.setX(curItem->bbox.x());
+ start.setY(curItem->bbox.y());
+ }
+ else {
+ drag = DRAG_NEW;
+ setCursor();
+ curItem = newItem(start, keyState);
+ if (curItem) {
+ items.add(curItem);
+ if (editor->playEvents()) {
+ int pitch = curItem->event.pitch() + track()->transposition();
+ MidiEvent e(0, 0, ME_NOTEON, pitch, curItem->event.velo());
+ track()->playMidiEvent(&e);
+ }
+ }
+ else {
+ drag = DRAG_OFF;
+ setCursor();
+ }
+ }
+ deselectAll();
+ if (curItem)
+ selectItem(curItem, true);
+ updateSelection();
+ widget()->update();
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMoveCanvasA
+// pos is relative to CanvasA
+//---------------------------------------------------------
+
+void EventCanvas::mouseMoveCanvasA(QPoint pos)
+ {
+ QPoint dist = pos - start;
+ bool isMoving = dist.manhattanLength() >= QApplication::startDragDistance();
+
+ switch (drag) {
+ case DRAG_LASSO_START:
+ if (!isMoving)
+ break;
+ drag = DRAG_LASSO;
+ setCursor();
+ // proceed with DRAG_LASSO:
+
+ case DRAG_LASSO:
+ lasso = QRect(start, QSize(dist.x(), dist.y()));
+ widget()->update();
+ break;
+
+ case DRAG_MOVE_START:
+ case DRAG_COPY_START:
+ if (!isMoving)
+ break;
+ {
+ bool shift = keyState & Qt::ShiftModifier;
+ bool ctrl = keyState & Qt::ControlModifier;
+ if (shift && ctrl) {
+ if (qAbs(dist.x()) > qAbs(dist.y())) {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAGX_MOVE;
+ else
+ drag = DRAGX_COPY;
+ }
+ else {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAGY_MOVE;
+ else
+ drag = DRAGY_COPY;
+ }
+ }
+ else {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAG_MOVE;
+ else
+ drag = DRAG_COPY;
+ }
+ setCursor();
+ if (!curItem->isSelected()) {
+ if (drag == DRAG_MOVE)
+ deselectAll();
+ selectItem(curItem, true);
+ updateSelection();
+ widget()->update();
+ }
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->isSelected()) {
+ i->second->isMoving = true;
+ moving.add(i->second);
+ }
+ }
+ moveItems(pos, 0);
+ }
+ break;
+
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ moveItems(pos, 0);
+ break;
+
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ moveItems(pos, 1);
+ break;
+
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ moveItems(pos, 2);
+ break;
+
+ case DRAG_NEW:
+ case DRAG_RESIZE:
+ if (dist.x()) {
+ Pos p1(curItem->bbox.x(), timeType());
+ Pos p2(pix2pos(pos.x()));
+ int w = p2.time(timeType()) - p1.time(timeType());
+ if (w < 1)
+ w = 1;
+ curItem->bbox.setWidth(w);
+ widget()->update();
+ }
+ break;
+ case DRAG_DELETE:
+ deleteItem(pos);
+ break;
+
+ case DRAG_OFF:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseCanvasA
+//---------------------------------------------------------
+
+void EventCanvas::mouseReleaseCanvasA(QMouseEvent* me)
+ {
+ if (curItem && editor->playEvents()) {
+ int pitch = curItem->event.pitch() + track()->transposition();
+ MidiEvent e(0, 0, ME_NOTEON, pitch, 0);
+ track()->playMidiEvent(&e);
+ }
+ // ignore event if (another) button is already active:
+
+ if (me->buttons() & (Qt::LeftButton | Qt::RightButton | Qt::MidButton)
+ & ~button)
+ return;
+
+ bool shift = keyState & Qt::ShiftModifier;
+ bool ctrl = keyState & Qt::ControlModifier;
+ bool redrawFlag = false;
+
+ switch (drag) {
+ case DRAG_MOVE_START:
+ case DRAG_COPY_START:
+ if (!(shift || ctrl))
+ deselectAll();
+ if (!ctrl)
+ selectItem(curItem, !(shift && curItem->isSelected()));
+ updateSelection();
+ redrawFlag = true;
+ itemReleased();
+ break;
+ case DRAG_COPY:
+ case DRAGX_COPY:
+ case DRAGY_COPY:
+ endMoveItems(MOVE_COPY);
+ break;
+ case DRAG_MOVE:
+ case DRAGX_MOVE:
+ case DRAGY_MOVE:
+ endMoveItems(MOVE_MOVE);
+ break;
+ case DRAG_OFF:
+ break;
+ case DRAG_RESIZE:
+ resizeItem(curItem, false);
+ break;
+ case DRAG_NEW:
+ newItem(curItem, false);
+ redrawFlag = true;
+ break;
+ case DRAG_LASSO_START:
+ lasso.setRect(-1, -1, -1, -1);
+ if (!shift)
+ deselectAll();
+ updateSelection();
+ redrawFlag = true;
+ break;
+
+ case DRAG_LASSO:
+ if (!shift)
+ deselectAll();
+ lasso = lasso.normalized();
+ selectLasso(shift);
+ updateSelection();
+ redrawFlag = true;
+ break;
+
+ case DRAG_DELETE:
+ break;
+ }
+ drag = DRAG_OFF;
+ if (redrawFlag)
+ widget()->update();
+ setCursor();
+ }
+
+
+//---------------------------------------------------------
+// endMoveItems
+//---------------------------------------------------------
+
+void EventCanvas::endMoveItems(DragType dragtype)
+ {
+ startUndo(dragtype);
+
+ for (iCItem i = moving.begin(); i != moving.end(); ++i) {
+ selectItem(i->second, true);
+ moveItem(i->second, dragtype);
+//TD if (moving.size() == 1) {
+// itemReleased();
+// }
+ if (dragtype == MOVE_COPY)
+ selectItem(i->second, false);
+ }
+ endUndo(dragtype);
+ moving.clear();
+ updateSelection();
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// selectItem
+//---------------------------------------------------------
+
+void EventCanvas::selectItem(CItem* e, bool flag)
+ {
+ e->setSelected(flag);
+ }
+
+//---------------------------------------------------------
+// deselectAll
+//---------------------------------------------------------
+
+void EventCanvas::deselectAll()
+ {
+ for (iCItem i = items.begin(); i != items.end(); ++i)
+ i->second->setSelected(false);
+ }
+
+//---------------------------------------------------------
+// genCanvasPopup
+//---------------------------------------------------------
+
+QMenu* EventCanvas::genCanvasPopup()
+ {
+ if (canvasTools == 0)
+ return 0;
+ QMenu* canvasPopup = new QMenu(this);
+
+ for (int i = 0; i < TOOLS; ++i) {
+ int data = 1 << i;
+ if ((canvasTools & data) == 0)
+ continue;
+ QAction* a = getAction(toolList[i], this);
+ a->setData(data);
+ a->setCheckable(true);
+ a->setChecked(data == int(_tool));
+ canvasPopup->addAction(a);
+ }
+ return canvasPopup;
+ }
+
+//---------------------------------------------------------
+// canvasPopup
+//---------------------------------------------------------
+
+void EventCanvas::canvasPopup(int n)
+ {
+ setTool(n);
+ }
+
+//---------------------------------------------------------
+// setCursor
+//---------------------------------------------------------
+
+void EventCanvas::setCursor()
+ {
+ if (curSplitter != -1) {
+ widget()->setCursor(Qt::SplitVCursor);
+ return;
+ }
+ switch (drag) {
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ widget()->setCursor(QCursor(Qt::SizeHorCursor));
+ break;
+
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ widget()->setCursor(QCursor(Qt::SizeVerCursor));
+ break;
+
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ widget()->setCursor(QCursor(Qt::SizeAllCursor));
+ break;
+
+ case DRAG_RESIZE:
+ widget()->setCursor(QCursor(Qt::SizeHorCursor));
+ break;
+
+ case DRAG_DELETE:
+ case DRAG_COPY_START:
+ case DRAG_MOVE_START:
+ case DRAG_NEW:
+ case DRAG_LASSO_START:
+ case DRAG_LASSO:
+ case DRAG_OFF:
+ TimeCanvas::setCursor();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// deleteItem
+// p is relative to CanvasA
+//---------------------------------------------------------
+
+void EventCanvas::deleteItem(const QPoint& p)
+ {
+ Pos pos(pix2pos(p.x()));
+ int pitch(y2pitch(p.y()));
+
+// printf("%d %d - %d %d\n", p.x(), p.y(), pos.tick(), pitch);
+
+ pos -= *curPart;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ Event& event = i->second->event;
+ if (event.pitch() == pitch
+ && (pos >= event.pos())
+ && (pos < event.end())) {
+ deleteItem(i->second);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// moveItems
+// dir = 0 move in all directions
+// 1 move only horizontal
+// 2 move only vertical
+//---------------------------------------------------------
+
+void EventCanvas::moveItems(const QPoint& pos, int dir)
+ {
+ int dpitch = y2pitch(pos.y()) - startPitch;
+
+ Pos sp(pix2pos(start.x()));
+ Pos cp(pix2pos(pos.x()));
+
+ bool left = sp > cp;
+ Pos dx(left ? sp - cp : cp - sp);
+
+ if (dir == 2)
+ dx.setTick(0);
+
+ for (iCItem i = moving.begin(); i != moving.end(); ++i) {
+ CItem* item = i->second;
+ Pos p;
+ if (left) {
+ //
+ // restrict movement to pos >= 0
+ //
+ if (dx > item->pos)
+ p.setTick(0);
+ else
+ p = item->pos - dx;
+ }
+ else
+ p = item->pos + dx;
+ p.snap(raster());
+
+ if (p < *curPart)
+ p = *curPart;
+
+ if (item->moving != p || dpitch != deltaPitch) {
+ item->moving = p;
+ if (dir != 1)
+ item->my = pitch2y(item->event.pitch() + dpitch)
+ + (int)(wpos.y() / _ymag);
+ itemMoved(item);
+ }
+ }
+ deltaPitch = dpitch;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// selectionSize
+//---------------------------------------------------------
+
+int EventCanvas::selectionSize() const
+ {
+ int n = 0;
+ for (ciCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->isSelected())
+ ++n;
+ }
+ return n;
+ }
+
+//---------------------------------------------------------
+// layout
+// called after resize
+//---------------------------------------------------------
+
+void EventCanvas::layout()
+ {
+ int n = ctrlEditList.size();
+ if (n == 0)
+ return;
+ if (ctrlHeight == 0) {
+ int wh = widget()->height();
+ resizeController(wh < 120 ? wh / 2 : 100);
+ }
+
+ // check, if layout is ok already; this happens after
+ // song load
+ int h = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ h += c->height();
+ }
+ if (h == ctrlHeight) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i)
+ layoutPanelB(*i);
+ return;
+ }
+
+ int y = 0;
+ int sch = ctrlHeight / n;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ c->setHeight(sch);
+ layoutPanelB(c);
+ y += sch;
+ }
+ }
+
+//---------------------------------------------------------
+// layout1
+// called after read song
+//---------------------------------------------------------
+
+void EventCanvas::layout1()
+ {
+ int n = ctrlEditList.size();
+ if (n == 0)
+ return;
+ int y = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ y += c->height();
+ }
+ resizeController(y);
+ }
+
+//---------------------------------------------------------
+// layoutPanelB
+//---------------------------------------------------------
+
+void EventCanvas::layoutPanelB(CtrlEdit* c)
+ {
+ int y = c->y;
+ int h = c->height();
+ int bx = rPanelB.x() + rPanelB.width() - 23;
+ int by = rPanelB.y() + y + h - 19;
+ c->minus->setGeometry(bx, by, 18, 18);
+ bx = rPanelB.x() + 1;
+ by = rPanelB.y() + y + 5;
+ c->sel->setGeometry(bx, by, rPanelB.width()-5, 18);
+ }
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+void EventCanvas::addController()
+ {
+ int n = ctrlEditList.size();
+ CtrlEdit* ce = new CtrlEdit(widget(), this, track());
+ ce->setHeight(50);
+ ctrlEditList.push_back(ce);
+
+ ce->minus->defaultAction()->setData(n);
+ connect(ce->minus, SIGNAL(triggered(QAction*)), SLOT(removeController(QAction*)));
+ ce->minus->show();
+ ce->sel->show();
+
+ layout();
+ widget()->update();
+ updatePartControllerList();
+ }
+
+void EventCanvas::addController(int id, int h)
+ {
+ ctrlHeight += h;
+ int n = ctrlEditList.size();
+
+ CtrlEdit* ce = new CtrlEdit(widget(), this, track());
+ ce->setHeight(h);
+ ce->setCtrl(id);
+ ctrlEditList.push_back(ce);
+
+ ce->minus->defaultAction()->setData(n);
+ connect(ce->minus, SIGNAL(triggered(QAction*)), SLOT(removeController(QAction*)));
+ }
+
+//---------------------------------------------------------
+// paintControllerCanvas
+// r(0, 0) is PanelB topLeft()
+//---------------------------------------------------------
+
+void EventCanvas::paintControllerCanvas(QPainter& p, QRect r)
+ {
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+
+ int xx2 = rCanvasB.width();
+ if (xx2 >= x2)
+ x2 = xx2 - 2;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ int y = c->y;
+ paintHLine(p, x1, x2, y);
+ p.setPen(lineColor[0]);
+ p.drawLine(xx2-1, 1, xx2-1, splitWidth-2);
+
+ QRect rc(0, y + splitWidth, rCanvasB.width(), c->cheight());
+ QPoint pt(rc.topLeft());
+ rc &= r;
+ if (!rc.isEmpty()) {
+ p.translate(pt);
+ c->paint(p, rc.translated(-pt));
+ p.translate(-pt);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paintControllerPanel
+// panelB
+//---------------------------------------------------------
+
+void EventCanvas::paintControllerPanel(QPainter& p, QRect r)
+ {
+ p.fillRect(r, QColor(0xe0, 0xe0, 0xe0));
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+
+ paintVLine(p, r.y() + splitWidth, r.y() + r.height(),
+ rPanelB.x() + rPanelB.width());
+
+ if (x1 == 0)
+ x1 = 1;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ paintHLine(p, x1, x2, c->y);
+ p.setPen(lineColor[0]);
+ p.drawLine(0, 1, 0, splitWidth-2);
+ }
+ }
+
+//---------------------------------------------------------
+// removeController
+//---------------------------------------------------------
+
+void EventCanvas::removeController(QAction* a)
+ {
+ int id = a->data().toInt();
+
+ int k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ if (k == id) {
+ CtrlEdit* c = *i;
+ delete c;
+ ctrlEditList.erase(i);
+ break;
+ }
+ }
+ k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ CtrlEdit* c = *i;
+ c->minus->defaultAction()->setData(k);
+ }
+
+ if (ctrlEditList.empty())
+ resizeController(0);
+ else
+ layout();
+ widget()->update();
+ updatePartControllerList();
+ }
+
+//---------------------------------------------------------
+// enterB
+//---------------------------------------------------------
+
+void EventCanvas::enterB()
+ {
+ if ((button == 0) && curSplitter != -1) {
+ curSplitter = -1;
+ setCursor();
+ }
+ }
+
+//---------------------------------------------------------
+// leaveB
+//---------------------------------------------------------
+
+void EventCanvas::leaveB()
+ {
+ if ((button == 0) && (curSplitter != -1)) {
+ curSplitter = -1;
+ setCursor();
+ }
+ }
+
+//---------------------------------------------------------
+// noteOn
+//---------------------------------------------------------
+
+void EventCanvas::noteOn(int pitch, int velocity, bool shift)
+ {
+ DrumMap* dm = track()->drumMap();
+ if (!dm)
+ pitch += track()->transposition();
+
+ // play note:
+ if (editor->playEvents()) {
+ MidiEvent e(0, 0, ME_NOTEON, pitch, velocity);
+ track()->playMidiEvent(&e);
+ }
+
+ if (curPart && editor->stepRec()
+ && pos[0].tick() >= startTick
+ && pos[0].tick() < endTick) {
+ int len = editor->quant();
+ unsigned tick = pos[0].tick() - curPart->tick(); //CDW
+ if (shift)
+ tick -= editor->rasterStep(tick);
+ Event e(Note);
+ e.setTick(tick);
+ e.setPitch(pitch);
+ e.setVelo(127);
+ e.setLenTick(len);
+ audio->msgAddEvent(e, curPart);
+ tick += editor->rasterStep(tick) + curPart->tick();
+ if (tick != song->cpos()) {
+ Pos p(tick, AL::TICKS);
+ song->setPos(0, p, true, false, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// noteOff
+//---------------------------------------------------------
+
+void EventCanvas::noteOff(int pitch)
+ {
+ if (!editor->playEvents())
+ return;
+ DrumMap* dm = track()->drumMap();
+ if (!dm)
+ pitch += track()->transposition();
+
+ // release key:
+ MidiEvent e(0, 0, ME_NOTEON, pitch, 0);
+ track()->playMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClick
+//---------------------------------------------------------
+
+void EventCanvas::mouseDoubleClick(QMouseEvent* me)
+ {
+ mousePress(me);
+ }
+
+//---------------------------------------------------------
+// mousePress
+//---------------------------------------------------------
+
+void EventCanvas::mousePress(QMouseEvent* me)
+ {
+ QPoint pos(me->pos());
+ if (rPanelA.contains(pos)) {
+ bool shift = keyState & Qt::ShiftModifier;
+ if (keyDown != -1) {
+ noteOff(keyDown);
+ keyDown = -1;
+ }
+ keyDown = y2pitch(pos.y() - rCanvasA.y());
+ int velocity = me->x()*127/40;
+ if (keyDown != -1)
+ noteOn(keyDown, velocity, shift);
+ return;
+ }
+ if (rCanvasA.contains(pos)) {
+ mousePressCanvasA(me);
+ return;
+ }
+ if (curSplitter != -1) {
+ dragSplitter = true;
+ splitterY = pos.y();
+ return;
+ }
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mousePress(pos - r.topLeft(), me);
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMove
+//---------------------------------------------------------
+
+void EventCanvas::mouseMove(QPoint pos)
+ {
+ if (rPanelA.contains(pos) || rCanvasA.contains(pos)) {
+ int y = pos.y() - rCanvasA.y();
+ int pitch = y2pitch(y);
+ if (curPitch != pitch) {
+ curPitch = pitch;
+ widget()->update(rPanelA); // update keyboard
+ emit pitchChanged(curPitch);
+ if (button != Qt::NoButton) {
+ if (keyDown != -1 && curPitch != -1) {
+ bool shift = keyState & Qt::ShiftModifier;
+ if (curPitch != keyDown) {
+ noteOff(keyDown);
+ keyDown = curPitch;
+ int velocity = std::min(pos.x()*127/40, 127);
+ noteOn(keyDown, velocity, shift);
+ }
+ }
+ }
+ }
+ }
+ if (dragSplitter) {
+ int deltaY = pos.y() - splitterY;
+
+ iCtrlEdit i = ctrlEditList.begin();
+ int y = 0;
+ if (curSplitter > 0) {
+ int k = 0;
+ CtrlEdit* c = 0;
+ for (; i != ctrlEditList.end(); ++i, ++k) {
+ c = *i;
+ y += c->height();
+ if ((k+1) == curSplitter)
+ break;
+ }
+ if (i == ctrlEditList.end()) {
+ printf("unexpected edit list end, curSplitter %d\n", curSplitter);
+ return;
+ }
+ if (c->height() + deltaY < splitWidth)
+ deltaY = splitWidth - c->height();
+ ++i;
+ int rest = 0;
+ for (iCtrlEdit ii = i; ii != ctrlEditList.end(); ++ii)
+ rest += (*ii)->cheight();
+ if (rest < deltaY)
+ deltaY = rest;
+ c->setHeight(c->height() + deltaY);
+ layoutPanelB(c);
+ y += deltaY;
+ }
+ //
+ // layout rest, add deltaY vertical
+ //
+ int rest = 0;
+ for (iCtrlEdit ii = i; ii != ctrlEditList.end(); ++ii) {
+ CtrlEdit* c = *ii;
+ rest += c->cheight();
+ }
+ if (rest < deltaY)
+ deltaY = rest;
+ rest = deltaY;
+ for (; i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ int d = c->cheight();
+ if (d > deltaY)
+ d = deltaY;
+ c->setHeight(c->height() - d);
+ c->y = y;
+ layoutPanelB(c);
+ y += c->height();
+ deltaY -= d;
+ if (deltaY == 0)
+ break;
+ }
+ if (i != ctrlEditList.end())
+ ++i;
+ for (; i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ y += c->height();
+ }
+ if (curSplitter == 0)
+ resizeController(ctrlHeight - rest);
+ else
+ widget()->update(rPanelB | rCanvasB);
+ splitterY = pos.y();
+ updatePartControllerList();
+ return;
+ }
+ if (rCanvasA.contains(pos)) {
+ mouseMoveCanvasA(pos - rCanvasA.topLeft());
+ return;
+ }
+ if (button == 0) {
+ if (rPanelB.contains(pos) || rCanvasB.contains(pos)) {
+ int y = pos.y() - rPanelB.y();
+ int k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ CtrlEdit* c = *i;
+ if (y >= c->y && y < (c->y + splitWidth)) {
+ curSplitter = k;
+ setCursor();
+ return;
+ }
+ int ypos = y - c->y - splitWidth;
+ if (ypos >= 0)
+ emit yChanged(c->pixel2val(ypos));
+ }
+ }
+ if (curSplitter != -1) {
+ curSplitter = -1;
+ setCursor();
+ }
+ return;
+ }
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mouseMove(pos - r.topLeft());
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void EventCanvas::mouseRelease(QMouseEvent* me)
+ {
+ if (keyDown != -1) {
+ noteOff(keyDown);
+ keyDown = -1;
+ }
+ if (dragSplitter) {
+ dragSplitter = false;
+ return;
+ }
+ QPoint pos(me->pos());
+ if (rCanvasA.contains(pos)) {
+ mouseReleaseCanvasA(me);
+ return;
+ }
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mouseRelease();
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setCurPart
+//---------------------------------------------------------
+
+void EventCanvas::setCurPart(Part* part)
+ {
+ curPart = part;
+
+ if (curPart->raster() != -1)
+ editor->setRaster(curPart->raster());
+ if (curPart->quant() != -1)
+ editor->setQuant(curPart->quant());
+ if (curPart->xmag() != 0.0)
+ editor->setXmag(curPart->xmag());
+ curPart->setRaster(editor->raster());
+ curPart->setQuant(editor->quant());
+ curPart->setXmag(editor->xmag());
+ setPart(*curPart, curPart->end());
+ editor->setWindowTitle(getCaption());
+ }
+
+//---------------------------------------------------------
+// getTextDrag
+//---------------------------------------------------------
+
+QMimeData* EventCanvas::getTextDrag()
+ {
+ //---------------------------------------------------
+ // generate event list from selected events
+ //---------------------------------------------------
+
+ EventList el;
+ unsigned startTick = INT_MAX;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ CItem* ne = i->second;
+ Event e = ne->event;
+ if (startTick == INT_MAX)
+ startTick = e.tick();
+ el.add(e);
+ }
+ QBuffer buffer;
+ buffer.open(QIODevice::WriteOnly);
+ Xml xml(&buffer);
+ xml.header();
+
+ xml.stag("eventlist");
+ for (ciEvent e = el.begin(); e != el.end(); ++e)
+ e->second.write(xml, -startTick);
+ xml.etag("eventlist");
+
+ QByteArray data = buffer.buffer();
+ QMimeData* drag = new QMimeData;
+ drag->setData("text/x-muse-eventlist", data);
+ buffer.close();
+ return drag;
+ }
+
+//---------------------------------------------------------
+// pasteAt
+//---------------------------------------------------------
+
+void EventCanvas::pasteAt(const QString& pt, unsigned pos)
+ {
+ QDomDocument doc;
+
+ if (!doc.setContent(pt, false)) {
+ printf("MusE:pasteAt(): syntax error\n");
+ printf(">>%s<<\n", pt.toLatin1().data());
+ return;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "eventlist") {
+ EventList el;
+ el.read(node.firstChild(), true);
+ song->startUndo();
+ for (iEvent i = el.begin(); i != el.end(); ++i) {
+ Event e = i->second;
+ e.setTick(e.tick() + pos - curPart->tick());
+ audio->msgAddEvent(e, curPart, false);
+ }
+ song->endUndo(SC_EVENT_INSERTED);
+ }
+ else
+ printf("MusE:pasteAt(): tag %s not supported\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// midiNote
+//---------------------------------------------------------
+
+void EventCanvas::midiNote(const MidiEvent& me)
+ {
+ if (me.type() != ME_NOTEON)
+ return;
+ int pitch = me.dataA();
+ int velo = me.dataB();
+
+ if (editor->midiIn() && editor->stepRec() && curPart
+ && !audio->isPlaying() && velo && pos[0].tick() >= startTick
+ && pos[0].tick() < endTick
+ && !(keyState & Qt::AltModifier)) {
+ int len = editor->quant();
+ unsigned tick = pos[0].tick(); //CDW
+ unsigned starttick = tick;
+ if (keyState & Qt::ShiftModifier)
+ tick -= editor->rasterStep(tick);
+
+ //
+ // extend len of last note?
+ //
+ EventList* events = curPart->events();
+ if (keyState & Qt::ControlModifier) {
+ for (iEvent i = events->begin(); i != events->end(); ++i) {
+ Event ev = i->second;
+ if (!ev.isNote())
+ continue;
+ if (ev.pitch() == pitch && ((ev.tick() + ev.lenTick()) == starttick)) {
+ Event e = ev.clone();
+ e.setLenTick(ev.lenTick() + editor->rasterStep(starttick));
+ audio->msgChangeEvent(ev, e, curPart);
+ tick += editor->rasterStep(tick);
+ if (tick != song->cpos()) {
+ Pos p(tick, AL::TICKS);
+ song->setPos(0, p, true, false, true);
+ }
+ return;
+ }
+ }
+ }
+
+ //
+ // if we already entered the note, delete it
+ //
+ EventRange range = events->equal_range(tick);
+ for (iEvent i = range.first; i != range.second; ++i) {
+ Event ev = i->second;
+ if (ev.isNote() && ev.pitch() == pitch) {
+ audio->msgDeleteEvent(ev, curPart);
+ if (keyState & Qt::ShiftModifier)
+ tick += editor->rasterStep(tick);
+ return;
+ }
+ }
+ Event e(Note);
+ e.setTick(tick - curPart->tick());
+ e.setPitch(pitch);
+ e.setVelo(velo);
+ e.setLenTick(len);
+ audio->msgAddEvent(e, curPart);
+ tick += editor->rasterStep(tick);
+ if (tick != song->cpos()) {
+ Pos p(tick, AL::TICKS);
+ song->setPos(0, p, true, false, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// magChanged
+//---------------------------------------------------------
+
+void EventCanvas::magChanged()
+ {
+ if (part()) {
+ part()->setXmag(_xmag);
+ }
+ }
+
+//---------------------------------------------------------
+// updatePartControllerList
+//---------------------------------------------------------
+
+void EventCanvas::updatePartControllerList()
+ {
+ if (curPart == 0)
+ return;
+ CtrlCanvasList* cl = curPart->getCtrlCanvasList();
+ cl->clear();
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlCanvas cc;
+ cc.ctrlId = (*i)->ctrlId;
+ cc.height = (*i)->height();
+ cl->push_back(cc);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/ecanvas.h b/muse_qt4_evolution/muse/midiedit/ecanvas.h
new file mode 100644
index 00000000..f128e5fa
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/ecanvas.h
@@ -0,0 +1,173 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ECANVAS_H__
+#define __ECANVAS_H__
+
+#include "al/pos.h"
+#include "awl/tcanvas.h"
+#include "widgets/noteinfo.h"
+#include "citem.h"
+#include "ctrl/ctrledit.h"
+#include "widgets/tb1.h"
+
+class MidiTrack;
+class MidiEditor;
+class MidiEvent;
+class Part;
+class Event;
+class CtrlEdit;
+
+//---------------------------------------------------------
+// EventCanvas
+//---------------------------------------------------------
+
+class EventCanvas : public TimeCanvas {
+ Q_OBJECT
+
+ int startPitch; // on start dragging events
+ int deltaPitch;
+ int keyDown; // pressed key on piano keypad (or drum instrument list)
+ int playedPitch;
+
+ void noteOn(int pitch, int velocity, bool shift);
+ void noteOff(int pitch);
+ virtual void layout();
+ virtual void magChanged();
+
+ protected:
+ enum DragMode {
+ DRAG_OFF, DRAG_NEW,
+ DRAG_MOVE_START, DRAG_MOVE,
+ DRAG_COPY_START, DRAG_COPY,
+ DRAGX_MOVE, DRAGY_MOVE,
+ DRAGX_COPY, DRAGY_COPY,
+ DRAG_DELETE,
+ DRAG_RESIZE, DRAG_LASSO_START, DRAG_LASSO,
+ };
+
+ enum DragType {
+ MOVE_MOVE, MOVE_COPY
+ };
+
+ CtrlEditList ctrlEditList;
+ MidiEditor* editor;
+ CItemList items;
+ CItemList moving;
+ CItem* curItem;
+ Part* curPart;
+ int canvasTools;
+ int curSplitter; // -1 mouse not in splitter
+ bool dragSplitter;
+ int splitterY;
+
+ DragMode drag;
+ QRect lasso;
+ QPoint start;
+ QMenu* itemPopupMenu;
+ QMenu* canvasPopupMenu;
+
+ unsigned startTick, endTick;
+ int curVelo;
+
+ virtual void mousePress(QMouseEvent*);
+ virtual void mouseDoubleClick(QMouseEvent*);
+ virtual void mouseMove(QPoint);
+ virtual void enterB();
+ virtual void leaveB();
+ virtual void mouseRelease(QMouseEvent*);
+ void layoutPanelB(CtrlEdit* c);
+
+ void updateSelection();
+ virtual CItem* searchItem(const QPoint& p) const = 0;
+ virtual void addItem(Part*, const Event&) = 0;
+ virtual void moveItem(CItem*, DragType) = 0;
+ virtual CItem* newItem(const QPoint&, int state) = 0;
+ virtual void newItem(CItem*, bool noSnap=false) = 0;
+ virtual bool deleteItem(CItem*) = 0;
+ virtual void resizeItem(CItem*, bool noSnap=false) = 0;
+
+ virtual void startDrag(CItem*, bool) {}
+ virtual QMenu* genItemPopup(CItem*) { return 0; }
+ virtual void itemPopup(CItem*, int, const QPoint&) {}
+ virtual void itemReleased() {}
+ virtual void itemPressed(const CItem*) {}
+ virtual void itemMoved(const CItem*) {}
+
+ virtual void addController();
+
+ void endMoveItems(DragType);
+ virtual void selectItem(CItem* e, bool);
+ virtual void deselectAll();
+ QMenu* genCanvasPopup();
+ void canvasPopup(int);
+ virtual void startUndo(DragType);
+ virtual void endUndo(DragType);
+ virtual void selectLasso(bool) {}
+ void setCursor();
+ virtual void deleteItem(const QPoint&);
+ void moveItems(const QPoint& pos, int dir);
+ void mousePressCanvasA(QPoint pos);
+ void mousePressCanvasA(QMouseEvent*);
+ void mouseMoveCanvasA(QPoint pos);
+ void mouseReleaseCanvasA(QMouseEvent*);
+
+ virtual void paintControllerCanvas(QPainter&, QRect);
+ virtual void paintControllerPanel(QPainter&, QRect);
+
+ void pasteAt(const QString& pt, unsigned pos);
+ void updatePartControllerList();
+
+ private slots:
+ void removeController(QAction*);
+ void midiNote(const MidiEvent&);
+
+ public slots:
+ void setQuant(int) { update(); }
+ void songChanged(int);
+
+ signals:
+ void selectionChanged(int, Event&, Part*);
+ void enterCanvas();
+ void yChanged(int); // emitted from mouseMove in controller canvas
+
+ public:
+ EventCanvas(MidiEditor*, TimeCanvasType);
+ MidiTrack* track() const;
+ Part* part() const { return curPart; }
+ QString getCaption() const;
+ void range(AL::Pos& s, AL::Pos& e) const;
+ void selectFirst();
+ virtual void modifySelected(NoteInfo::ValType, int) {}
+ virtual void keyPress(QKeyEvent*);
+ int selectionSize() const;
+ void setCurPart(Part*);
+ QMimeData* getTextDrag();
+ CItemList* getItems() { return &items; }
+ CtrlEditList* getCtrlEditors() { return &ctrlEditList; }
+ const CtrlEditList* getCtrlEditors() const { return &ctrlEditList; }
+ void addController(int id, int h);
+ void layout1();
+ };
+
+extern void paintVLine(QPainter& p, int y1, int y2, int x);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/gatetime.cpp b/muse_qt4_evolution/muse/midiedit/gatetime.cpp
new file mode 100644
index 00000000..862d4aaf
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/gatetime.cpp
@@ -0,0 +1,105 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "gatetime.h"
+#include "song.h"
+#include "tb1.h"
+
+//---------------------------------------------------------
+// GateTime
+//---------------------------------------------------------
+
+GateTime::GateTime(QWidget*)
+ : MidiCmdDialog()
+ {
+ setWindowTitle(tr("MusE: Modify Gate Time"));
+ QWidget* gateTime = new QWidget;
+ gt.setupUi(gateTime);
+ layout->addWidget(gateTime);
+ layout->addStretch(10);
+ _rateVal = 0;
+ _offsetVal = 0;
+ gt.rate->setValue(_rateVal);
+ gt.offset->setValue(_offsetVal);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void GateTime::accept()
+ {
+ _rateVal = gt.rate->value();
+ _offsetVal = gt.offset->value();
+ MidiCmdDialog::accept();
+ }
+
+//---------------------------------------------------------
+// MidifyGateTime
+//---------------------------------------------------------
+
+ModifyGateTimeCmd::ModifyGateTimeCmd(MidiEditor* e)
+ : MidiCmd(e)
+ {
+ dialog = 0;
+ }
+
+//---------------------------------------------------------
+// guiDialog
+//---------------------------------------------------------
+
+MidiCmdDialog* ModifyGateTimeCmd::guiDialog()
+ {
+ if (dialog == 0)
+ dialog = new GateTime(0);
+ return dialog;
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void ModifyGateTimeCmd::process(CItemList* items)
+ {
+ int rate = dialog->rateVal();
+ int offset = dialog->offsetVal();
+
+ for (iCItem k = items->begin(); k != items->end(); ++k) {
+ CItem* item = k->second;
+ Event event = item->event;
+ if (event.type() != Note)
+ continue;
+
+ if (itemInRange(item)) {
+ unsigned len = event.lenTick();
+ len = rate ? (len * 100) / rate : 1;
+ len += offset;
+ if (len <= 1)
+ len = 1;
+
+ if (event.lenTick() != len) {
+ Event newEvent = event.clone();
+ newEvent.setLenTick(len);
+ changeEvent(event, newEvent, item->part);
+ }
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/gatetime.h b/muse_qt4_evolution/muse/midiedit/gatetime.h
new file mode 100644
index 00000000..699b7c61
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/gatetime.h
@@ -0,0 +1,62 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __GATETIME_H__
+#define __GATETIME_H__
+
+#include "ui_gatetime.h"
+#include "midicmd.h"
+
+//---------------------------------------------------------
+// GateTime
+//---------------------------------------------------------
+
+class GateTime : public MidiCmdDialog {
+ Q_OBJECT
+
+ Ui::GateTimeBase gt;
+ int _rateVal;
+ int _offsetVal;
+
+ protected slots:
+ void accept();
+
+ public:
+ GateTime(QWidget* parent = 0);
+ int rateVal() const { return _rateVal; }
+ int offsetVal() const { return _offsetVal; }
+ };
+
+//---------------------------------------------------------
+// ModifyGateTimeCmd
+//---------------------------------------------------------
+
+class ModifyGateTimeCmd : public MidiCmd
+ {
+ GateTime* dialog;
+ virtual MidiCmdDialog* guiDialog();
+ virtual void process(CItemList* items);
+
+ public:
+ ModifyGateTimeCmd(MidiEditor* e);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/gatetime.ui b/muse_qt4_evolution/muse/midiedit/gatetime.ui
new file mode 100644
index 00000000..e1b92e7e
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/gatetime.ui
@@ -0,0 +1,85 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>GateTimeBase</class>
+ <widget class="QWidget" name="GateTimeBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>262</width>
+ <height>149</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Modify Gate Time</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBox3" >
+ <property name="title" >
+ <string>Values</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel4" >
+ <property name="text" >
+ <string>Offset:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="rate" >
+ <property name="suffix" >
+ <string>%</string>
+ </property>
+ <property name="maximum" >
+ <number>200</number>
+ </property>
+ <property name="value" >
+ <number>100</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="offset" >
+ <property name="maximum" >
+ <number>999</number>
+ </property>
+ <property name="minimum" >
+ <number>-999</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/midiedit/midicmd.cpp b/muse_qt4_evolution/muse/midiedit/midicmd.cpp
new file mode 100644
index 00000000..bb6b1972
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/midicmd.cpp
@@ -0,0 +1,135 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midicmd.h"
+#include "song.h"
+#include "gatetime.h"
+#include "velocity.h"
+#include "audio.h"
+#include "midieditor.h"
+#include "widgets/tb1.h"
+
+//==========================================================
+// class MidiCmd is an attempt to formalize the
+// interface between midi command code and MusE.
+// Maybe this can be extended to an specialized
+// plugin interface
+//==========================================================
+
+//---------------------------------------------------------
+// MidiCmdDialog
+//---------------------------------------------------------
+
+MidiCmdDialog::MidiCmdDialog()
+ : QDialog()
+ {
+ QWidget* rangeWidget = new QWidget;
+ mc.setupUi(rangeWidget);
+ layout = new QVBoxLayout;
+ setLayout(layout);
+ layout->addWidget(rangeWidget);
+ rangeGroup = new QButtonGroup(this);
+ rangeGroup->setExclusive(true);
+ rangeGroup->addButton(mc.allEventsButton, RANGE_ALL);
+ rangeGroup->addButton(mc.selectedEventsButton, RANGE_SELECTED);
+ rangeGroup->addButton(mc.loopedEventsButton, RANGE_LOOPED);
+ rangeGroup->addButton(mc.selectedLoopedButton, RANGE_SELECTED | RANGE_LOOPED);
+ mc.allEventsButton->setChecked(true);
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void MidiCmdDialog::setRange(int id)
+ {
+ if (rangeGroup->button(id))
+ rangeGroup->button(id)->setChecked(true);
+ else
+ printf("setRange: not button %d!\n", id);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MidiCmdDialog::accept()
+ {
+ _range = rangeGroup->checkedId();
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// MidiCmd
+//---------------------------------------------------------
+
+MidiCmd::MidiCmd(MidiEditor* e)
+ {
+ editor = e;
+ }
+
+//---------------------------------------------------------
+// processEvents
+//---------------------------------------------------------
+
+void MidiCmd::processEvents(CItemList* items)
+ {
+ MidiCmdDialog* dialog = guiDialog();
+ range = editor->applyTo();
+ dialog->setRange(range);
+ bool rv = dialog->exec();
+ if (!rv)
+ return;
+ range = dialog->range(); // all, selected, looped, sel+loop
+ editor->setApplyTo(range);
+
+ modified = 0;
+ song->startUndo();
+ process(items);
+ song->endUndo(modified);
+ }
+
+//---------------------------------------------------------
+// eventInRange
+//---------------------------------------------------------
+
+bool MidiCmd::itemInRange(CItem* item)
+ {
+ unsigned tick = item->event.tick();
+ bool selected = item->isSelected();
+ bool inLoop = (tick >= song->lpos()) && (tick < song->rpos());
+ return (
+ (range == 0)
+ || (range == 1 && selected)
+ || (range == 2 && inLoop)
+ || (range == 3 && selected && inLoop)
+ );
+ }
+
+//---------------------------------------------------------
+// changeEvent
+//---------------------------------------------------------
+
+void MidiCmd::changeEvent(Event oldEvent, Event newEvent, Part* part)
+ {
+ audio->msgChangeEvent(oldEvent, newEvent, part, false);
+ modified = SC_EVENT_MODIFIED;
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/midicmd.h b/muse_qt4_evolution/muse/midiedit/midicmd.h
new file mode 100644
index 00000000..f78f9cb9
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/midicmd.h
@@ -0,0 +1,81 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDICMD_H__
+#define __MIDICMD_H__
+
+#include "citem.h"
+#include "ui_midicmd.h"
+
+class MidiEditor;
+class MidiCmdDialog;
+
+//---------------------------------------------------------
+// MidiCmdDialog
+// GUI base class for midiCmd
+//---------------------------------------------------------
+
+class MidiCmdDialog : public QDialog
+ {
+ Q_OBJECT
+
+ QButtonGroup* rangeGroup;
+ int _range;
+ Ui::MidiCmd mc;
+
+ protected:
+ void accept();
+ QVBoxLayout* layout;
+
+ public:
+ MidiCmdDialog();
+ int range() const { return _range; }
+ void setRange(int);
+ };
+
+//---------------------------------------------------------
+// MidiCmd
+// abstract base class for midi commands
+//---------------------------------------------------------
+
+class MidiCmd {
+ int modified;
+
+ protected:
+ MidiEditor* editor;
+ int range;
+
+ // convenience classes for derived classes
+ bool itemInRange(CItem* item);
+ void changeEvent(Event oldEvent, Event newEvent, Part* part);
+
+ // virtual functions provided by derived classes
+ virtual void process(CItemList*) = 0;
+ virtual MidiCmdDialog* guiDialog() { return 0; }
+
+ public:
+ MidiCmd(MidiEditor*);
+ virtual ~MidiCmd() {}
+ void processEvents(CItemList*);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/midicmd.ui b/muse_qt4_evolution/muse/midiedit/midicmd.ui
new file mode 100644
index 00000000..e64e6ba4
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/midicmd.ui
@@ -0,0 +1,76 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>MidiCmd</class>
+ <widget class="QWidget" name="MidiCmd" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>387</width>
+ <height>392</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Modify Gate Time</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="rangeGroup" >
+ <property name="title" >
+ <string>Apply To</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="allEventsButton" >
+ <property name="text" >
+ <string>All Events</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="selectedEventsButton" >
+ <property name="text" >
+ <string>Selected Events</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="loopedEventsButton" >
+ <property name="text" >
+ <string>Looped Events</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="selectedLoopedButton" >
+ <property name="text" >
+ <string>Selected AND Looped</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/midiedit/midieditor.cpp b/muse_qt4_evolution/muse/midiedit/midieditor.cpp
new file mode 100644
index 00000000..d004ef29
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/midieditor.cpp
@@ -0,0 +1,444 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midieditor.h"
+#include "part.h"
+#include "song.h"
+#include "widgets/tools.h"
+#include "ecanvas.h"
+#include "icons.h"
+#include "audio.h"
+#include "shortcuts.h"
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+MidiEditor::MidiEditor(PartList* pl)
+ : Editor()
+ {
+ _pl = pl;
+ selPart = 0;
+ tools2 = 0;
+ info = 0;
+ tools = 0;
+ toolbar = 0;
+
+ QMenuBar* mb = menuBar();
+
+ //---------Menu-------------------------------
+ menuEdit = new QMenu(tr("&Edit"));
+ mb->addMenu(menuEdit);
+
+ menuEdit->addAction(undoAction);
+ menuEdit->addAction(redoAction);
+
+ menuEdit->addSeparator();
+ cutAction = getAction("cut", this);
+ menuEdit->addAction(cutAction);
+ copyAction = getAction("copy", this);
+ menuEdit->addAction(copyAction);
+ pasteAction = getAction("paste", this);
+ menuEdit->addAction(pasteAction);
+
+ speaker = new QAction(this);
+ speaker->setCheckable(true);
+ speaker->setIcon(QIcon(*speakerIcon));
+ speaker->setText(tr("Play Events"));
+ speaker->setToolTip(tr("Play Events"));
+
+ stepRecAction = new QAction(this);
+ stepRecAction->setIcon(QIcon(*steprecIcon));
+ stepRecAction->setText(tr("Step Record"));
+ stepRecAction->setToolTip(tr("Step Record"));
+ stepRecAction->setCheckable(true);
+
+ midiInAction = new QAction(this);
+ midiInAction->setIcon(QIcon(*midiinIcon));
+ midiInAction->setText(tr("Midi Input"));
+ midiInAction->setToolTip(tr("Midi Input"));
+ midiInAction->setCheckable(true);
+
+ followSongAction = new QAction(this);
+ followSongAction->setText("F");
+ followSongAction->setToolTip(tr("Follow Song"));
+ followSongAction->setCheckable(true);
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+ connect(cb, SIGNAL(selectionChanged()), SLOT(clipboardChanged()));
+ connect(menuEdit, SIGNAL(triggered(QAction*)), SLOT(midiCmd(QAction*)));
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void MidiEditor::midiCmd(QAction* a)
+ {
+ QString s(a->data().toString());
+ if (s == "cut") {
+ copy();
+ song->startUndo();
+ CItemList* items = canvas()->getItems();
+ for (iCItem i = items->begin(); i != items->end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ CItem* e = i->second;
+ Event event = e->event;
+ audio->msgDeleteEvent(event, e->part, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ }
+ else if (s == "copy")
+ copy();
+ else
+ cmd(a);
+ }
+
+//---------------------------------------------------------
+// copy
+// cut copy paste
+//---------------------------------------------------------
+
+void MidiEditor::copy()
+ {
+ QMimeData* drag = canvas()->getTextDrag();
+ if (drag)
+ QApplication::clipboard()->setMimeData(drag, QClipboard::Selection);
+ }
+
+
+//---------------------------------------------------------
+// setPos
+// snap locator positioning
+//---------------------------------------------------------
+
+void MidiEditor::setPos(int idx, const AL::Pos& pos)
+ {
+ song->setPos(idx, pos.snaped(_raster));
+ }
+
+//---------------------------------------------------------
+// genPartlist
+//---------------------------------------------------------
+
+void MidiEditor::genPartlist()
+ {
+ MidiTrackList* tl = song->midis();
+ PartList* npl = new PartList;
+ for (iPart ip = _pl->begin(); ip != _pl->end(); ++ip) {
+ Part* part = ip->second;
+ for (iMidiTrack it = tl->begin(); it != tl->end(); ++it) {
+ PartList* pl2 = (*it)->parts();
+ iPart ip2 = pl2->begin();
+ for (; ip2 != pl2->end(); ++ip2)
+ if (ip2->second == part) {
+ npl->add(part);
+ break;
+ }
+ if (ip2 != pl2->end())
+ break;
+ }
+ }
+ delete _pl;
+ _pl = npl;
+ for (iPart ip = _pl->begin(); ip != _pl->end(); ++ip) {
+ if (ip->second == selPart)
+ return;
+ }
+ if (_pl->empty())
+ return;
+ selPart = _pl->begin()->second;
+ if (canvas())
+ canvas()->setCurPart(selPart);
+ }
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+MidiEditor::~MidiEditor()
+ {
+ if (_pl)
+ delete _pl;
+ }
+
+//---------------------------------------------------------
+// writePartList
+//---------------------------------------------------------
+
+void MidiEditor::writePartList(Xml& xml) const
+ {
+ for (ciPart p = _pl->begin(); p != _pl->end(); ++p) {
+ Part* part = p->second;
+ Track* track = part->track();
+ int trkIdx = song->tracks()->indexOf(track);
+ int partIdx = track->parts()->index(part);
+ xml.stag("part");
+ xml.put(QString("%1:%2").arg(trkIdx).arg(partIdx));
+ xml.etag("part");
+ }
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiEditor::songChanged(int type)
+ {
+ if (type & (SC_PART_REMOVED | SC_PART_MODIFIED
+ | SC_PART_INSERTED | SC_TRACK_REMOVED)) {
+ genPartlist();
+ // close window if editor has no parts anymore
+ if (parts()->empty()) {
+ close();
+ return;
+ }
+ }
+ canvas()->songChanged(type);
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void MidiEditor::setQuant(int val)
+ {
+ _quant = val;
+ if (toolbar)
+ toolbar->setQuant(val);
+ if (canvas() && canvas()->part())
+ canvas()->part()->setQuant(val);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void MidiEditor::setRaster(int val)
+ {
+ _raster = val;
+ if (toolbar)
+ toolbar->setRaster(val);
+ if (canvas()) {
+ canvas()->setRaster(val);
+ if (canvas()->part())
+ canvas()->part()->setRaster(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setApplyTo
+//---------------------------------------------------------
+
+void MidiEditor::setApplyTo(int val)
+ {
+ _applyTo = val;
+ if (toolbar)
+ toolbar->setApplyTo(_applyTo);
+ }
+
+//---------------------------------------------------------
+// rasterStep
+//---------------------------------------------------------
+
+int MidiEditor::rasterStep(unsigned tick) const
+ {
+ return AL::sigmap.rasterStep(tick, raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal
+//---------------------------------------------------------
+
+unsigned MidiEditor::rasterVal(unsigned v) const
+ {
+ return AL::sigmap.raster(v, raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal1
+//---------------------------------------------------------
+
+unsigned MidiEditor::rasterVal1(unsigned v) const
+ {
+ return AL::sigmap.raster1(v, raster());
+ }
+
+//---------------------------------------------------------
+// rasterVal2
+//---------------------------------------------------------
+
+unsigned MidiEditor::rasterVal2(unsigned v) const
+ {
+ return AL::sigmap.raster2(v, raster());
+ }
+
+//---------------------------------------------------------
+// quantVal
+//---------------------------------------------------------
+
+int MidiEditor::quantVal(int v) const
+ {
+ int q = quant();
+ int val = ((v+q/2)/q)*q;
+ if (val == 0)
+ val = q;
+ return val;
+ }
+
+//---------------------------------------------------------
+// xmag
+//---------------------------------------------------------
+
+double MidiEditor::xmag() const
+ {
+ return tcanvas->xmag();
+ }
+
+//---------------------------------------------------------
+// setXmag
+//---------------------------------------------------------
+
+void MidiEditor::setXmag(double val)
+ {
+ if (canvas())
+ canvas()->setMag(val, tcanvas->ymag());
+ }
+
+//---------------------------------------------------------
+// tool
+//---------------------------------------------------------
+
+int MidiEditor::tool() const
+ {
+ return tcanvas->tool();
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void MidiEditor::setTool(int n)
+ {
+ tcanvas->setTool(n);
+ tools2->set(n);
+ }
+
+//---------------------------------------------------------
+// canvasPos
+//---------------------------------------------------------
+
+QPoint MidiEditor::canvasPos() const
+ {
+ return tcanvas->getWPos();
+ }
+
+//---------------------------------------------------------
+// setCanvasPos
+//---------------------------------------------------------
+
+void MidiEditor::setCanvasPos(const QPoint& p)
+ {
+ if (tcanvas)
+ tcanvas->setWPos(p);
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void MidiEditor::clipboardChanged()
+ {
+ QString stype("x-muse-eventlist");
+ QString s = QApplication::clipboard()->text(stype, QClipboard::Selection);
+ pasteAction->setEnabled(!s.isEmpty());
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MidiEditor::selectionChanged()
+ {
+ bool flag = canvas()->selectionSize() > 0;
+ cutAction->setEnabled(flag);
+ copyAction->setEnabled(flag);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MidiEditor::read(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "CtrlEdit") {
+ int id = e.attribute("id","0").toInt();
+ int h = e.attribute("h","50").toInt();
+ canvas()->addController(id, h);
+ }
+ else
+ AL::readProperties(this, node);
+ }
+ canvas()->layout1();
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiEditor::write(Xml& xml) const
+ {
+ writePartList(xml);
+ xml.stag(metaObject()->className());
+ xml.writeProperties(this);
+ const CtrlEditList* el = canvas()->getCtrlEditors();
+ for (ciCtrlEdit i = el->begin(); i != el->end(); ++i) {
+ xml.tagE(QString("CtrlEdit h=\"%1\" id=\"%2\"")
+ .arg((*i)->height()).arg((*i)->ctrl()->id()));
+ }
+ xml.etag(metaObject()->className());
+ }
+
+//---------------------------------------------------------
+// initFromPart
+//---------------------------------------------------------
+
+void MidiEditor::initFromPart()
+ {
+ Part* part = canvas()->part();
+ CtrlCanvasList* cl = part->getCtrlCanvasList();
+ if (!cl->empty()) {
+#if 0
+ for (iCtrlCanvas i = cl->begin(); i != cl->end(); ++i) {
+printf("MidiEditor::initFromPart(): add controller %d %d\n", i->ctrlId, i->height);
+ canvas()->addController(i->ctrlId, i->height);
+ }
+#endif
+ canvas()->layout1();
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/midieditor.h b/muse_qt4_evolution/muse/midiedit/midieditor.h
new file mode 100644
index 00000000..3791e017
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/midieditor.h
@@ -0,0 +1,147 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIEDITOR_H__
+#define __MIDIEDITOR_H__
+
+#include "editor.h"
+
+namespace AL {
+ class Xml;
+ class Pos;
+ };
+using AL::Xml;
+
+class EditToolBar;
+class NoteInfo;
+class Toolbar1;
+class Part;
+class PartList;
+class EventCanvas;
+class ScrollScale;
+class MTScale;
+class WaveView;
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+class MidiEditor : public Editor {
+ Q_OBJECT
+
+ Q_PROPERTY(int raster READ raster WRITE setRaster)
+ Q_PROPERTY(int quant READ quant WRITE setQuant)
+ Q_PROPERTY(bool stepRec READ stepRec WRITE setStepRec)
+ Q_PROPERTY(bool midiIn READ midiIn WRITE setMidiIn)
+ Q_PROPERTY(bool playEvents READ playEvents WRITE setPlayEvents)
+ Q_PROPERTY(bool followSong READ followSong WRITE setFollowSong)
+ Q_PROPERTY(double xmag READ xmag WRITE setXmag)
+ Q_PROPERTY(int applyTo READ applyTo WRITE setApplyTo)
+ Q_PROPERTY(QPoint canvasPos READ canvasPos WRITE setCanvasPos)
+ Q_PROPERTY(int tool READ tool WRITE setTool)
+
+ bool _playEvents;
+
+ EventCanvas* canvas() { return (EventCanvas*)tcanvas; }
+ const EventCanvas* canvas() const { return (EventCanvas*)tcanvas; }
+ void copy();
+
+ protected:
+ int _raster;
+ int _quant;
+ int _applyTo;
+
+ PartList* _pl;
+ Part* selPart;
+
+ QMenu *menuEdit;
+ QAction* speaker;
+ QAction* stepRecAction;
+ QAction* midiInAction;
+ QAction* followSongAction;
+ QAction* cutAction;
+ QAction* copyAction;
+ QAction* pasteAction;
+
+ EditToolBar* tools2;
+ NoteInfo* info;
+ QToolBar* tools;
+ Toolbar1* toolbar;
+
+ void writePartList(Xml&) const;
+ void genPartlist();
+ void writeStatus(Xml&) const;
+ void initFromPart();
+
+ private slots:
+ void midiCmd(QAction*);
+
+ protected slots:
+ void clipboardChanged(); // enable/disable "Paste"
+ void selectionChanged(); // enable/disable "Copy" & "Paste"
+ virtual void songChanged(int); //add virtual to allow editors that do not use
+ //ecancav to use there own songChanged slot
+ //and avoid crashing, like MidiTrackerEditor
+ void setPos(int, const AL::Pos&);
+ virtual void cmd(QAction*) = 0;
+
+ public slots:
+ void setQuant(int val);
+ void setApplyTo(int val);
+ void setRaster(int val);
+
+ public:
+ MidiEditor(PartList*);
+ virtual ~MidiEditor();
+
+ void read(QDomNode);
+ void write(Xml&) const;
+ void readStatus(QDomNode);
+
+ PartList* parts() { return _pl; }
+ int rasterStep(unsigned tick) const;
+ unsigned rasterVal(unsigned v) const;
+ unsigned rasterVal1(unsigned v) const;
+ unsigned rasterVal2(unsigned v) const;
+ int quantVal(int v) const;
+ int raster() const { return _raster; }
+ int quant() const { return _quant; }
+ int applyTo() const { return _applyTo; }
+ bool playEvents() const { return speaker->isChecked(); }
+ void setPlayEvents(bool val) { speaker->setChecked(val); }
+ bool stepRec() const { return stepRecAction->isChecked(); }
+ void setStepRec(bool val) { stepRecAction->setChecked(val); }
+ bool midiIn() const { return midiInAction->isChecked(); }
+ void setMidiIn(bool val) { midiInAction->setChecked(val); }
+ bool followSong() const { return followSongAction->isChecked(); }
+ void setFollowSong(bool val) { followSongAction->setChecked(val); }
+ double xmag() const;
+ void setXmag(double val);
+ QPoint canvasPos() const;
+ void setCanvasPos(const QPoint&);
+ void setTool(int);
+ int tool() const;
+ enum {
+ CMD_CUT, CMD_COPY, CMD_PASTE
+ };
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/miditracker.cpp b/muse_qt4_evolution/muse/midiedit/miditracker.cpp
new file mode 100644
index 00000000..e345f454
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/miditracker.cpp
@@ -0,0 +1,234 @@
+//=================================================================
+// miditracker
+// midi editor a la soundtracker
+// miditracker.cpp
+// (C) Copyright 2006 Nil Geisweiller (a_lin@user.sourceforge.net)
+//=================================================================
+
+#include "ecanvas.h"
+#include "miditracker.h"
+#include "trackpattern.h"
+#include "song.h"
+#include "muse.h"
+#include "part.h"
+
+#define MAX(x,y) (x>y?x:y)
+
+class TrackPattern;
+//class EventCanvas;
+
+//---------------------------------------------------------
+// MidiTrackerEditor
+//---------------------------------------------------------
+
+MidiTrackerEditor::MidiTrackerEditor(PartList* pl, bool /*init*/)
+ : MidiEditor(pl) {
+ //--------
+ //menuView
+ //--------
+ menuView = menuBar()->addMenu(tr("&View"));
+
+ //-------
+ //ToolBar
+ //-------
+ tools = addToolBar(tr("MidiTracker Tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+ tools->addSeparator();
+
+ tools->addAction(stepRecAction);
+ stepRecAction->setChecked(INIT_SREC);
+
+ tools->addAction(midiInAction);
+ midiInAction->setChecked(INIT_MIDIIN);
+
+ tools->addAction(speaker);
+ speaker->setChecked(INIT_SPEAKER);
+
+ tools->addAction(followSongAction);
+ followSongAction->setChecked(INIT_FOLLOW);
+ setFollow(INIT_FOLLOW);
+
+ //panic button
+ QToolBar* panicToolbar = addToolBar(tr("Panic"));
+ panicToolbar->addAction(panicAction);
+
+ //Transport Bar
+ QToolBar* transport = addToolBar(tr("Transport"));
+ muse->setupTransportToolbar(transport);
+
+ //frame containing the different matrices of time and notes and FX
+ //QFrame* matricesFrame = new QFrame
+
+ //second bar
+ addToolBarBreak();
+ //row per bar
+ QToolBar* rowfeatures = addToolBar(tr("row features"));
+
+ QLabel* quantLabel = new QLabel(tr("Quantize"));
+ quantLabel->setIndent(5);
+ rowfeatures->addWidget(quantLabel);
+ _quantCombo = new QuantCombo(rowfeatures);
+ rowfeatures->addWidget(_quantCombo);
+
+ //QLabel* rpmLabel = new QLabel(tr("Row per bar"), rowfeatures);
+ //rpmLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ //rpmLabel->setIndent(3);
+ //rowfeatures->addWidget(rpmLabel);
+ //_rpmSpinBox = new QSpinBox(rowfeatures);
+ //_rpmSpinBox->setRange(1, 256);
+ //_rpmSpinBox->setFixedHeight(24);
+ //rowfeatures->addWidget(_rpmSpinBox);
+
+ //init row per bar
+ setQuant(96); //corresponds to 16 quant
+ updateQuant();
+
+ //number of visible rows
+ //rowfeatures->addSeparator();
+ /*QLabel* nvrLabel = new QLabel(tr("Number of visible rows"), rowfeatures);
+ nvrLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ nvrLabel->setIndent(3);
+ rowfeatures->addWidget(nvrLabel);
+ _nvrSpinBox = new QSpinBox(rowfeatures);
+ _nvrSpinBox->setRange(1, 256);
+ _nvrSpinBox->setFixedHeight(24);
+ rowfeatures->addWidget(_nvrSpinBox);*/
+ //init number of visible row
+ /*setNumVisibleRows(20);
+ updateNumVisibleRows();*/
+
+ //evaluate fisrtTick and lastTick
+ unsigned firstTick = _pl->begin()->second->tick();
+ unsigned lastTick = 0;
+ for(ciPart p = _pl->begin(); p != _pl->end(); ++p) {
+ Part* part = p->second;
+ lastTick = MAX(lastTick, part->endTick());
+ }
+
+ //-------------
+ //timing matrix
+ //-------------
+ _timingPattern =
+ new TimingPattern(this, "Timing", firstTick, lastTick, _quant);
+ int nbrRow = _timingPattern->getAbsoluteNbrRow();
+
+ //---------------
+ //tracks matrices
+ //---------------
+ for(ciPart p = _pl->begin(); p != _pl->end(); ++p) {
+ Part* part = p->second;
+ Track* track = part->track();
+ if(track->isMidiTrack()) {
+ bool trackNotFound = true;
+ for(unsigned int i = 0; i < _trackPatterns.size(); i++)
+ if(_trackPatterns[i]->getTrack()==track) trackNotFound = false;
+ if(trackNotFound) {
+ TrackPattern* tp;
+ tp = new TrackPattern(this, track->name(), firstTick, lastTick,
+ _quant, pl, (MidiTrack*) track, nbrRow);
+ _trackPatterns.push_back(tp);
+ }
+ }
+ }
+
+ //signals from TimingPattern and TrackPattern
+ connect(_timingPattern, SIGNAL(moveCurrentRow(unsigned)),
+ this, SLOT(updateMoveCurrentRow(unsigned)));
+ for(unsigned i = 0; i < _trackPatterns.size(); i++) {
+ connect(_trackPatterns[i], SIGNAL(moveCurrentRow(unsigned)),
+ this, SLOT(updateMoveCurrentRow(unsigned)));
+ }
+
+ /*
+ addToolBarBreak();
+ toolbar = new Toolbar1(initRaster, initQuant);
+ addToolBar(toolbar);
+
+ addToolBarBreak();
+ info = new NoteInfo(this);
+ addToolBar(info);
+
+ setCentralWidget(tcanvas);
+ tcanvas->setCornerWidget(new QSizeGrip(tcanvas));
+
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), canvas(),
+ SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ connect(canvas(), SIGNAL(posChanged(int,const AL::Pos&)),
+ SLOT(setPos(int,const AL::Pos&)));
+
+ connect(canvas(), SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ connect(tools2, SIGNAL(toolChanged(int)), canvas(), SLOT(setTool(int)));
+
+ connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)),
+ SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+
+ connect(canvas(), SIGNAL(selectionChanged(int, Event&, Part*)), this,
+ SLOT(setSelection(int, Event&, Part*)));
+
+ info->setEnabled(false);
+
+ setWindowTitle(canvas()->getCaption());
+ int s1, e;
+ canvas()->range(&s1, &e);
+ e += AL::sigmap.ticksMeasure(e); // show one more measure
+ canvas()->setTimeRange(s1, e);*/
+
+}
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+void MidiTrackerEditor::setQuant(int q) {
+ _quant = q;
+}
+
+//---------------------------------------------------------
+// getQuant
+//---------------------------------------------------------
+int MidiTrackerEditor::getQuant() {
+ return _quant;
+}
+
+//---------------------------------------------------------
+// updateQuant
+//---------------------------------------------------------
+void MidiTrackerEditor::updateQuant() {
+ _quantCombo->blockSignals(true);
+ _quantCombo->setQuant(_quant);
+ _quantCombo->blockSignals(false);
+}
+
+//---------------------------------------------------------
+// setFollow
+//---------------------------------------------------------
+void MidiTrackerEditor::setFollow(bool f) {
+ _follow = f;
+}
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+void MidiTrackerEditor::songChanged(int i) {
+ emit signalSongChanged(i);
+}
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void MidiTrackerEditor::cmd(QAction* /*a*/) {
+ //int cmd = a->data().toInt();
+ //canvas()->cmd(cmd, _quantStrength, _quantLimit, _quantLen);
+}
+
+//void MidiTrackerEditor::resizeEvent(QResizeEvent *event) {
+// for(int i = 0; i < _trackPatterns.size(); i++)
+// _trackPatterns[i]->fillTrackPat();
+// _timingPattern->fillTimmingPat();
+//}
+
+void MidiTrackerEditor::updateMoveCurrentRow(unsigned index) {
+ emit signalMoveCurrentRow(index);
+}
diff --git a/muse_qt4_evolution/muse/midiedit/miditracker.h b/muse_qt4_evolution/muse/midiedit/miditracker.h
new file mode 100644
index 00000000..5e6d706a
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/miditracker.h
@@ -0,0 +1,76 @@
+//=================================================================
+// miditracker
+// midi editor a la soundtracker
+// miditracker.h
+// (C) Copyright 2006 Nil Geisweiller (a_lin@user.sourceforge.net)
+//=================================================================
+
+#ifndef __MTEDITOR_H__
+#define __MTEDITOR_H__
+
+#include "midieditor.h"
+#include "trackpattern.h"
+#include "quantcombo.h"
+#include <vector>
+
+
+class QuantCombo;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+//---------------------------------------------------------
+// MidiTrackerEditor
+//---------------------------------------------------------
+
+class MidiTrackerEditor : public MidiEditor {
+ Q_OBJECT
+
+ private:
+ int _quant;
+ QuantCombo* _quantCombo;
+ //int _numVisibleRows;
+ //QSpinBox* _nvrSpinBox;
+
+ QMenu* menuView;
+ bool _follow;
+ void setFollow(bool);
+
+ std::vector<TrackPattern*> _trackPatterns;
+ TimingPattern* _timingPattern;
+
+ private slots:
+ void updateMoveCurrentRow(unsigned);
+ virtual void cmd(QAction*);
+
+ protected slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiTrackerEditor(PartList*, bool);
+ ~MidiTrackerEditor() {}
+
+ void setQuant(int rpm);
+ int getQuant();
+ void updateQuant(); //update the gui
+
+ void setNumVisibleRows(int nvr);
+ int getNumVisibleRows();
+ void updateNumVisibleRows(); //update the gui
+
+ static const bool INIT_FOLLOW = false;
+ static const bool INIT_SPEAKER = true;
+ static const bool INIT_SREC = false;
+ static const bool INIT_MIDIIN = false;
+
+ protected:
+ //void resizeEvent(QResizeEvent *event);
+
+ signals:
+ void signalMoveCurrentRow(unsigned);
+ void signalSongChanged(int);
+};
+
+#endif
diff --git a/muse_qt4_evolution/muse/midiedit/pianoroll.cpp b/muse_qt4_evolution/muse/midiedit/pianoroll.cpp
new file mode 100644
index 00000000..c9be06e9
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/pianoroll.cpp
@@ -0,0 +1,526 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "pianoroll.h"
+#include "song.h"
+#include "icons.h"
+#include "cmd.h"
+#include "muse.h"
+#include "widgets/tools.h"
+#include "quantconfig.h"
+#include "shortcuts.h"
+#include "audio.h"
+#include "part.h"
+
+static int pianorollTools = PointerTool | PencilTool | RubberTool | DrawTool;
+int PianoRoll::initWidth = PianoRoll::INIT_WIDTH;
+int PianoRoll::initHeight = PianoRoll::INIT_HEIGHT;
+int PianoRoll::initRaster = PianoRoll::INIT_RASTER;
+int PianoRoll::initQuant = PianoRoll::INIT_QUANT;
+int PianoRoll::initColorMode = PianoRoll::INIT_COLOR_MODE;
+bool PianoRoll::initFollow = PianoRoll::INIT_FOLLOW;
+bool PianoRoll::initSpeaker = PianoRoll::INIT_SPEAKER;
+bool PianoRoll::initMidiin = PianoRoll::INIT_MIDIIN;
+double PianoRoll::initXmag = 0.08; // PianoRoll::INIT_XMAG; (compiler problem?)
+int PianoRoll::initApplyTo = PianoRoll::INIT_APPLY_TO;
+int PianoRoll::initQuantStrength = PianoRoll::INIT_QUANT_STRENGTH;
+int PianoRoll::initQuantLimit = PianoRoll::INIT_QUANT_LIMIT;
+bool PianoRoll::initQuantLen = PianoRoll::INIT_QUANT_LEN;
+
+//---------------------------------------------------------
+// PianoRoll
+//---------------------------------------------------------
+
+PianoRoll::PianoRoll(PartList* pl, bool init)
+ : MidiEditor(pl)
+ {
+ _applyTo = initApplyTo;
+ _colorMode = initColorMode;
+ _quantStrength = initQuantStrength;
+ _quantLimit = initQuantLimit;
+ _quantLen = initQuantLen;
+
+ deltaMode = false;
+ quantConfig = 0;
+
+ tcanvas = new PianoCanvas(this);
+ QMenuBar* mb = menuBar();
+
+ menu_ids[CMD_EVENT_COLOR] = getAction("change_event_color", this);
+ menu_ids[CMD_CONFIG_QUANT] = getAction("config_quant", this);
+
+ //---------Menu----------------------------------
+ menuEdit->addSeparator();
+
+ QAction* a = getAction("delete", this);
+ menuEdit->addAction(a);
+
+ menuEdit->addSeparator();
+
+ menuSelect = menuEdit->addMenu(QIcon(*selectIcon),tr("&Select"));
+
+ menuSelect->addAction(getAction("sel_all", this));
+ menuSelect->addAction(getAction("sel_none", this));
+ menuSelect->addAction(getAction("sel_inv", this));
+ menuSelect->addAction(getAction("sel_ins_loc", this));
+ menuSelect->addAction(getAction("sel_out_loc", this));
+
+ menuConfig = mb->addMenu(tr("&Config"));
+ eventColor = menuConfig->addMenu(tr("event color"));
+ menu_ids[CMD_EVENT_COLOR] = eventColor->menuAction();
+
+ colorModeAction[0] = eventColor->addAction(tr("blue"));
+ colorModeAction[0]->setData(0);
+ colorModeAction[0]->setCheckable(true);
+ colorModeAction[1] = eventColor->addAction(tr("pitch colors"));
+ colorModeAction[1]->setData(1);
+ colorModeAction[1]->setCheckable(true);
+ colorModeAction[2] = eventColor->addAction(tr("velocity colors"));
+ colorModeAction[2]->setData(2);
+ colorModeAction[2]->setCheckable(true);
+ connect(eventColor, SIGNAL(triggered(QAction*)), SLOT(setEventColorMode(QAction*)));
+
+ menuFunctions = mb->addMenu(tr("&Functions"));
+
+ menuFunctions->addAction(getAction("midi_over_quant", this));
+ menuFunctions->addAction(getAction("midi_quant_noteon", this));
+ menuFunctions->addAction(getAction("midi_quant_noteoff", this));
+ menuFunctions->addAction(getAction("midi_quant_iterative", this));
+
+ menuFunctions->addSeparator();
+
+ menu_ids[CMD_CONFIG_QUANT] = menuFunctions->addAction(tr("Config Quant..."));
+ connect(menu_ids[CMD_CONFIG_QUANT], SIGNAL(triggered()), this, SLOT(configQuant()));
+
+ menuFunctions->addSeparator();
+
+ menuFunctions->addAction(getAction("midi_mod_gate_time", this));
+ menuFunctions->addAction(getAction("midi_mod_velo", this));
+
+#if 0 // TODO
+ menuFunctions->addAction(getAction("midi_crescendo", this));
+ menuFunctions->addAction(getAction("midi_transpose", this));
+ menuFunctions->addAction(getAction("midi_thin_out", this));
+ menuFunctions->addAction(getAction("midi_erase_event", this));
+ menuFunctions->addAction(getAction("midi_note_shift", this));
+ menuFunctions->addAction(getAction("midi_move_clock", this));
+ menuFunctions->addAction(getAction("midi_copy_measure", this));
+ menuFunctions->addAction(getAction("midi_erase_measure", this));
+ menuFunctions->addAction(getAction("midi_delete_measure", this));
+ menuFunctions->addAction(getAction("midi_create_measure", this));
+#endif
+
+ connect(menuSelect, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(menuFunctions, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+
+ //---------ToolBar----------------------------------
+ tools = addToolBar(tr("Pianoroll Tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+ tools->addSeparator();
+
+ tools->addAction(stepRecAction);
+ stepRecAction->setChecked(INIT_SREC);
+
+ tools->addAction(midiInAction);
+ midiInAction->setChecked(INIT_MIDIIN);
+
+ tools->addAction(speaker);
+ speaker->setChecked(INIT_SPEAKER);
+
+ tools->addAction(followSongAction);
+ followSongAction->setChecked(INIT_FOLLOW);
+ tcanvas->setFollow(INIT_FOLLOW);
+
+ tools2 = new EditToolBar(this, pianorollTools);
+ addToolBar(tools2);
+
+ QToolBar* panicToolbar = addToolBar(tr("Panic"));
+ panicToolbar->addAction(panicAction);
+
+ //-------------------------------------------------------------
+ // Transport Bar
+
+ QToolBar* transport = addToolBar(tr("Transport"));
+ muse->setupTransportToolbar(transport);
+
+ addToolBarBreak();
+ toolbar = new Toolbar1(initRaster, initQuant);
+ addToolBar(toolbar);
+
+ addToolBarBreak();
+ info = new NoteInfo(this);
+ addToolBar(info);
+
+ setCentralWidget(tcanvas);
+ tcanvas->setCornerWidget(new QSizeGrip(tcanvas));
+
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), canvas(), SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ connect(canvas(), SIGNAL(posChanged(int,const AL::Pos&)), SLOT(setPos(int,const AL::Pos&)));
+
+ connect(canvas(), SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ connect(tools2, SIGNAL(toolChanged(int)), canvas(), SLOT(setTool(int)));
+
+ connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+
+ connect(canvas(), SIGNAL(selectionChanged(int, Event&, Part*)), this,
+ SLOT(setSelection(int, Event&, Part*)));
+
+ info->setEnabled(false);
+
+ setWindowTitle(canvas()->getCaption());
+ Pos p1(0, AL::TICKS), p2(0, AL::TICKS);
+ canvas()->range(p1, p2);
+ p2 += AL::sigmap.ticksMeasure(p2.tick()); // show one more measure
+ canvas()->setTimeRange(p1, p2);
+
+ // connect to toolbar
+ connect(canvas(), SIGNAL(pitchChanged(int)), toolbar, SLOT(setPitch(int)));
+ connect(canvas(), SIGNAL(yChanged(int)), toolbar, SLOT(setInt(int)));
+ connect(canvas(), SIGNAL(cursorPos(const AL::Pos&,bool)), toolbar, SLOT(setTime(const AL::Pos&,bool)));
+ connect(toolbar, SIGNAL(quantChanged(int)), SLOT(setQuant(int)));
+ connect(toolbar, SIGNAL(rasterChanged(int)),SLOT(setRaster(int)));
+ connect(toolbar, SIGNAL(toChanged(int)), SLOT(setApplyTo(int)));
+ connect(toolbar, SIGNAL(soloChanged(bool)), SLOT(soloChanged(bool)));
+
+ setEventColorMode(_colorMode);
+
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+
+ //
+ // install misc shortcuts
+ //
+ QShortcut* sc = new QShortcut(Qt::Key_Escape, this);
+ sc->setContext(Qt::WindowShortcut);
+ connect(sc, SIGNAL(activated()), SLOT(close()));
+
+ QSignalMapper* cmdMap = new QSignalMapper(this);
+ static const char* actions[] = {
+ "curpos_increase", "curpos_decrease",
+ "midi_insert_at_loc",
+ "midi_quant_1", "midi_quant_2", "midi_quant_3", "midi_quant_4",
+ "midi_quant_5", "midi_quant_6", "midi_quant_7",
+ "midi_quant_punct", "midi_quant_punct2", "midi_quant_triol",
+ };
+ for (unsigned i = 0; i < sizeof(actions)/sizeof(*actions); ++i) {
+ a = getAction(actions[i], this);
+ addAction(a);
+ cmdMap->setMapping(a, a);
+ connect(a, SIGNAL(triggered()), cmdMap, SLOT(map()));
+ }
+ connect(cmdMap, SIGNAL(mapped(QObject*)), SLOT(pianoCmd(QObject*)));
+
+ connect(song, SIGNAL(songChanged(int)), canvas(), SLOT(songChanged(int)));
+ connect(followSongAction, SIGNAL(toggled(bool)), canvas(), SLOT(setFollow(bool)));
+ canvas()->selectFirst();
+
+ Part* part = canvas()->part();
+ setRaster(part->raster() != -1 ? part->raster() : initRaster);
+ setQuant(part->quant() != -1 ? part->quant() : initQuant);
+ setXmag(part->xmag() != -1.0 ? part->xmag() : initXmag);
+
+ if (init)
+ initFromPart();
+ else {
+ resize(initWidth, initHeight);
+ }
+ }
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void PianoRoll::cmd(QAction* a)
+ {
+ canvas()->cmd(a, _quantStrength, _quantLimit, _quantLen);
+ }
+
+//---------------------------------------------------------
+// setSelection
+// update Info Line
+//---------------------------------------------------------
+
+void PianoRoll::setSelection(int tick, Event& e, Part* p)
+ {
+ int selections = canvas()->selectionSize();
+
+ selEvent = e;
+ selPart = p;
+
+ if (selections > 1) {
+ info->setEnabled(true);
+ info->setDeltaMode(true);
+ if (!deltaMode) {
+ deltaMode = true;
+ info->setValues(0, 0, 0, 0, 0);
+ tickOffset = 0;
+ lenOffset = 0;
+ pitchOffset = 0;
+ veloOnOffset = 0;
+ veloOffOffset = 0;
+ }
+ }
+ else if (selections == 1) {
+ deltaMode = false;
+ info->setEnabled(true);
+ info->setDeltaMode(false);
+ info->setValues(tick,
+ selEvent.lenTick(),
+ selEvent.pitch(),
+ selEvent.velo(),
+ selEvent.veloOff());
+ }
+ else {
+ deltaMode = false;
+ info->setEnabled(false);
+ }
+ selectionChanged();
+ }
+
+//---------------------------------------------------------
+// edit currently selected Event
+//---------------------------------------------------------
+
+void PianoRoll::noteinfoChanged(NoteInfo::ValType type, int val)
+ {
+ int selections = canvas()->selectionSize();
+
+ if (selections == 0) {
+ printf("noteinfoChanged while nothing selected\n");
+ }
+ else if (selections == 1) {
+ Event event = selEvent.clone();
+ switch(type) {
+ case NoteInfo::VAL_TIME:
+ event.setTick(val - selPart->tick());
+ break;
+ case NoteInfo::VAL_LEN:
+ event.setLenTick(val);
+ break;
+ case NoteInfo::VAL_VELON:
+ event.setVelo(val);
+ break;
+ case NoteInfo::VAL_VELOFF:
+ event.setVeloOff(val);
+ break;
+ case NoteInfo::VAL_PITCH:
+ event.setPitch(val);
+ break;
+ }
+ audio->msgChangeEvent(selEvent, event, selPart);
+ }
+ else {
+ // multiple events are selected; treat noteinfo values
+ // as offsets to event values
+
+ int delta = 0;
+ switch (type) {
+ case NoteInfo::VAL_TIME:
+ delta = val - tickOffset;
+ tickOffset = val;
+ break;
+ case NoteInfo::VAL_LEN:
+ delta = val - lenOffset;
+ lenOffset = val;
+ break;
+ case NoteInfo::VAL_VELON:
+ delta = val - veloOnOffset;
+ veloOnOffset = val;
+ break;
+ case NoteInfo::VAL_VELOFF:
+ delta = val - veloOffOffset;
+ veloOffOffset = val;
+ break;
+ case NoteInfo::VAL_PITCH:
+ delta = val - pitchOffset;
+ pitchOffset = val;
+ break;
+ }
+ if (delta)
+ canvas()->modifySelected(type, delta);
+ }
+ }
+
+//---------------------------------------------------------
+// soloChanged
+// signal from solo button
+//---------------------------------------------------------
+
+void PianoRoll::soloChanged(bool flag)
+ {
+ song->setSolo(canvas()->track(), flag);
+ }
+
+//---------------------------------------------------------
+// pianoCmd
+//---------------------------------------------------------
+
+void PianoRoll::pianoCmd(QObject* object)
+ {
+ QAction* a = (QAction*)object;
+ QString cmd(a->data().toString());
+
+ static int rasterTable[] = {
+ //-9----8- 7 6 5 4 3(1/4) 2 1
+ 4, 8, 16, 32, 64, 128, 256, 512, 1024, // triple
+ 6, 12, 24, 48, 96, 192, 384, 768, 1536,
+ 9, 18, 36, 72, 144, 288, 576, 1152, 2304 // dot
+ };
+
+ int index;
+ int n = sizeof(rasterTable)/sizeof(*rasterTable);
+ for (index = 0; index < n; ++index)
+ if (rasterTable[index] == raster())
+ break;
+ if (index == n) {
+ index = 0;
+ // raster 1 is not in table
+ }
+ int off = (index / 9) * 9;
+ index = index % 9;
+
+ int val = 0;
+
+ PianoCanvas* pc = canvas();
+
+ if (cmd == "curpos_increase")
+ canvas()->pianoCmd(MCMD_LEFT);
+ else if (cmd == "curpos_decrease")
+ canvas()->pianoCmd(MCMD_RIGHT);
+ else if (cmd == "midi_insert_at_loc") {
+ pc->pianoCmd(MCMD_INSERT);
+ return;
+ }
+ else if (cmd == "midi_quant_1")
+ val = rasterTable[8 + off];
+ else if (cmd == "midi_quant_2")
+ val = rasterTable[7 + off];
+ else if (cmd == "midi_quant_3")
+ val = rasterTable[6 + off];
+ else if (cmd == "midi_quant_4")
+ val = rasterTable[5 + off];
+ else if (cmd == "midi_quant_5")
+ val = rasterTable[4 + off];
+ else if (cmd == "midi_quant_6")
+ val = rasterTable[3 + off];
+ else if (cmd == "midi_quant_7")
+ val = rasterTable[2 + off];
+ else if (cmd == "midi_quant_triol")
+ val = rasterTable[index + ((off == 0) ? 9 : 0)];
+ else if (cmd == "change_event_color") {
+ _colorMode = (_colorMode + 1) % 3;
+ setEventColorMode(_colorMode);
+ return;
+ }
+ else if (cmd == "midi_quant_punct")
+ val = rasterTable[index + ((off == 18) ? 9 : 18)];
+ else if (cmd == "midi_quant_punct2") {
+ if ((off == 18) && (index > 2)) {
+ val = rasterTable[index + 9 - 1];
+ }
+ else if ((off == 9) && (index < 8)) {
+ val = rasterTable[index + 18 + 1];
+ }
+ else
+ return;
+ }
+ else
+ printf("unknown cmd <%s>\n", cmd.toLatin1().data());
+ setQuant(val);
+ setRaster(val);
+ toolbar->setQuant(quant());
+ toolbar->setRaster(raster());
+ }
+
+//---------------------------------------------------------
+// configQuant
+//---------------------------------------------------------
+
+void PianoRoll::configQuant()
+ {
+ QuantConfig quantConfig(_quantStrength, _quantLimit, _quantLen, this);
+ if (!quantConfig.exec())
+ return;
+ _quantStrength = quantConfig.quantStrength();
+ _quantLimit = quantConfig.quantLimit();
+ _quantLen = quantConfig.doQuantLen();
+ }
+
+//---------------------------------------------------------
+// setEventColorMode
+//---------------------------------------------------------
+
+void PianoRoll::setEventColorMode(QAction* a)
+ {
+ setEventColorMode(a->data().toInt());
+ }
+
+void PianoRoll::setEventColorMode(int mode)
+ {
+ _colorMode = mode;
+ for (int i = 0; i < 3; ++i)
+ colorModeAction[i]->setChecked(mode == i);
+ canvas()->setColorMode(mode);
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+// read static init values
+//---------------------------------------------------------
+
+void PianoRoll::readConfiguration(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ int i = e.text().toInt();
+ if (tag == "width")
+ PianoRoll::initWidth = i;
+ else if (tag == "height")
+ PianoRoll::initHeight = i;
+ else if (tag == "raster")
+ PianoRoll::initRaster = i;
+ else if (tag == "quant")
+ PianoRoll::initQuant = i;
+ else
+ printf("MusE:PianoRoll: unknown tag %s\n", tag.toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+// write static init values
+//---------------------------------------------------------
+
+void PianoRoll::writeConfiguration(Xml& xml)
+ {
+ xml.stag("PianoRoll");
+ if (PianoRoll::initWidth != PianoRoll::INIT_WIDTH)
+ xml.tag("width", PianoRoll::initWidth);
+ if (PianoRoll::initHeight != PianoRoll::INIT_HEIGHT)
+ xml.tag("height", PianoRoll::initHeight);
+ if (PianoRoll::initRaster != PianoRoll::INIT_RASTER)
+ xml.tag("raster", PianoRoll::initRaster);
+ if (PianoRoll::initQuant != PianoRoll::INIT_QUANT)
+ xml.tag("quant", PianoRoll::initQuant);
+ xml.etag("PianoRoll");
+ }
diff --git a/muse_qt4_evolution/muse/midiedit/pianoroll.h b/muse_qt4_evolution/muse/midiedit/pianoroll.h
new file mode 100644
index 00000000..e510408c
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/pianoroll.h
@@ -0,0 +1,126 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PIANOROLL_H__
+#define __PIANOROLL_H__
+
+#include "midieditor.h"
+#include "prcanvas.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class PianoCanvas;
+class PartList;
+class QuantConfig;
+class Part;
+class TimeCanvas;
+
+//---------------------------------------------------------
+// PianoRoll
+//---------------------------------------------------------
+
+class PianoRoll : public MidiEditor {
+ Q_OBJECT
+
+ Q_PROPERTY(int colorMode READ colorMode WRITE setColorMode)
+ Q_PROPERTY(int quantStrength READ quantStrength WRITE setQuantStrength)
+ Q_PROPERTY(int quantLimit READ quantLimit WRITE setQuantLimit)
+ Q_PROPERTY(bool quantLen READ quantLen WRITE setQuantLen)
+
+ int _quantStrength, _quantLimit;
+ bool _quantLen;
+ int _colorMode;
+
+ Event selEvent;
+
+ enum { CMD_EVENT_COLOR, CMD_CONFIG_QUANT, CMD_LAST };
+
+ QAction* menu_ids[CMD_LAST];
+ QMenu *menuFunctions, *menuSelect, *menuConfig;
+
+ int tickOffset;
+ int lenOffset;
+ int pitchOffset;
+ int veloOnOffset;
+ int veloOffOffset;
+ bool deltaMode;
+
+ QAction* colorModeAction[3];
+ QMenu* eventColor;
+ QuantConfig* quantConfig;
+
+ QWidget* genToolbar(QWidget* parent);
+ void setEventColorMode(int);
+ PianoCanvas* canvas() { return (PianoCanvas*)tcanvas; }
+ const PianoCanvas* canvas() const { return (PianoCanvas*)tcanvas; }
+
+ private slots:
+ void setSelection(int, Event&, Part*);
+ void noteinfoChanged(NoteInfo::ValType, int);
+ void soloChanged(bool flag);
+ void configQuant();
+
+ virtual void cmd(QAction*);
+ void setEventColorMode(QAction*);
+ void pianoCmd(QObject*);
+
+ public:
+ PianoRoll(PartList*, bool);
+ ~PianoRoll() {}
+
+ int colorMode() const { return _colorMode; }
+ void setColorMode(int val) { _colorMode = val; }
+ int quantStrength() const { return _quantStrength; }
+ int quantLimit() const { return _quantLimit; }
+ bool quantLen() const { return _quantLen; }
+ void setQuantStrength(int val) { _quantStrength = val; }
+ void setQuantLimit(int val) { _quantLimit = val; }
+ void setQuantLen(bool val) { _quantLen = val; }
+
+ static void readConfiguration(QDomNode);
+ static void writeConfiguration(Xml&);
+ static int initRaster, initQuant, initWidth, initHeight;
+ static bool initFollow, initSpeaker, initMidiin;
+ static int initColorMode, initApplyTo;
+ static double initXmag;
+ static int initQuantStrength, initQuantLimit;
+ static bool initQuantLen;
+
+ static const int INIT_WIDTH = 650;
+ static const int INIT_HEIGHT = 450;
+ static const int INIT_RASTER = 384 / 2;
+ static const int INIT_QUANT = 384 / 2;
+ static const bool INIT_FOLLOW = false;
+ static const bool INIT_SPEAKER = true;
+ static const bool INIT_MIDIIN = false;
+ static const bool INIT_SREC = false;
+ static const bool INIT_COLOR_MODE = 0;
+ static const double INIT_XMAG = 0.08;
+ static const int INIT_APPLY_TO = 0;
+ static const int INIT_QUANT_STRENGTH = 100;
+ static const int INIT_QUANT_LIMIT = 0;
+ static const int INIT_QUANT_LEN = false;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/prcanvas.cpp b/muse_qt4_evolution/muse/midiedit/prcanvas.cpp
new file mode 100644
index 00000000..f6890b02
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/prcanvas.cpp
@@ -0,0 +1,773 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midieditor.h"
+#include "prcanvas.h"
+#include "cmd.h"
+#include "gatetime.h"
+#include "velocity.h"
+#include "song.h"
+#include "audio.h"
+#include "part.h"
+
+#include "velocity.h"
+#include "gatetime.h"
+
+//---------------------------------------------------------
+// PianoCanvas
+//---------------------------------------------------------
+
+PianoCanvas::PianoCanvas(MidiEditor* pr)
+ : EventCanvas(pr, TIME_CANVAS_PIANOROLL)
+ {
+ verticalScrollBar()->setSingleStep(keyHeight/2);
+ playedPitch = -1;
+ colorMode = 0;
+ canvasTools = PointerTool | PencilTool | RubberTool | DrawTool;
+
+ // register midi commands
+ cmdModifyGateTime = new ModifyGateTimeCmd(pr);
+ cmdModifyVelocity = new ModifyVelocityCmd(pr);
+
+ songChanged(SC_TRACK_INSERTED);
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void PianoCanvas::addItem(Part* part, const Event& event)
+ {
+ CItem* item = new CItem(event, part);
+ int y = pitch2y(event.pitch()) + keyHeight/4 + (int)(wpos.y()/_ymag);
+ item->pos = event.pos() + *part;
+ unsigned time = item->pos.time(timeType());
+ item->bbox = QRect(time, y, event.lenTick(), keyHeight/2);
+ items.add(item);
+ }
+
+//---------------------------------------------------------
+// timeTypeChanged
+//---------------------------------------------------------
+
+void PianoCanvas::timeTypeChanged()
+ {
+ //
+ // recalculate bounding boxes
+ //
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ CItem* item = i->second;
+ unsigned t1 = item->event.pos().time(timeType());
+ unsigned t2 = item->event.end().time(timeType());
+ item->bbox.setX(t1 + (item->part)->time(timeType()));
+ item->bbox.setWidth(t2 - t1);
+ }
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void PianoCanvas::paint(QPainter& p, QRect cr)
+ {
+ static QColor color1[12] = {
+ QColor(0xff, 0x3d, 0x39),
+ QColor(0x39, 0xff, 0x39),
+ QColor(0x39, 0x3d, 0xff),
+ QColor(0xff, 0xff, 0x39),
+ QColor(0xff, 0x3d, 0xff),
+ QColor(0x39, 0xff, 0xff),
+ QColor(0xff, 0x7e, 0x7a),
+ QColor(0x7a, 0x7e, 0xff),
+ QColor(0x7a, 0xff, 0x7a),
+ QColor(0xff, 0x7e, 0xbf),
+ QColor(0x7a, 0xbf, 0xff),
+ QColor(0xff, 0xbf, 0x7a)
+ };
+
+ QPoint off(MAP_OFFSET - wpos.x(), -wpos.y());
+ p.translate(off);
+ cr.translate(-off);
+
+ int time1 = lrint(cr.x() / _xmag);
+ int w = lrint(cr.width() / _xmag);
+ cr.setRect(
+ time1,
+ lrint(cr.y() / _ymag),
+ w,
+ lrint(cr.height() / _ymag)
+ );
+ p.scale(_xmag, _ymag);
+
+ int time2 = time1 + w;
+
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ p.setPen(QPen(Qt::black, 0.0));
+
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ CItem* item = i->second;
+ QRect r(item->bbox);
+ if (r.x() >= time2)
+ break;
+ if (!cr.intersects(r))
+ continue;
+ Event event(item->event);
+
+ QColor color;
+ if (item->part != curPart)
+ p.setBrush(Qt::lightGray);
+ else {
+ if (item->isMoving) {
+ p.setBrush(Qt::gray);
+ p.drawRect(r);
+ p.setBrush(Qt::NoBrush);
+ int x = item->moving.tick();
+ int y = item->my + item->bbox.height()/2;
+ int w = item->bbox.width();
+ int h = item->bbox.height();
+ p.drawRect(x, y, w, h);
+ }
+ else if (item->isSelected()) {
+ p.setBrush(Qt::black);
+ }
+ else {
+ if (colorMode == 1)
+ color = color1[event.pitch() % 12];
+ else if (colorMode == 2) {
+ int velo = event.velo();
+ if (velo < 64)
+ color.setRgb(velo*4, 0, 0xff);
+ else
+ color.setRgb(0xff, 0, (127-velo) * 4);
+ }
+ else
+ color.setRgb(0, 0, 255);
+ p.setBrush(color);
+ }
+ }
+ p.drawRect(r);
+ }
+
+ //---------------------------------------------------
+ // draw lasso
+ //---------------------------------------------------
+
+ p.resetMatrix();
+ p.translate(rCanvasA.topLeft());
+
+ if (drag == DRAG_LASSO) {
+ p.setPen(Qt::blue);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(lasso);
+ QColor fillColor(Qt::blue);
+ fillColor.setAlpha(40);
+ QBrush fillBrush(fillColor);
+ p.fillRect(lasso,fillBrush);
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseDoubleClickEvent
+//---------------------------------------------------------
+
+void PianoCanvas::viewMouseDoubleClickEvent(QMouseEvent* event)
+ {
+ if ((_tool != PointerTool) && (event->button() != Qt::LeftButton)) {
+// mousePress(event);
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// moveItem
+// called after moving an object
+//---------------------------------------------------------
+
+void PianoCanvas::moveItem(CItem* item, DragType dtype)
+ {
+ Part* part = item->part;
+ Event event = item->event;
+ int npitch = y2pitch((int)((item->my - (int)(wpos.y()/_ymag)
+ + item->bbox.height())*_ymag));
+ if ((curItem==item) //remove this if want to have all selection playing
+ && event.pitch() != npitch && editor->playEvents()) {
+ // release note:
+ MidiEvent ev1(0, 0, 0x90, playedPitch, 0);
+ track()->playMidiEvent(&ev1);
+ //remove below because the note is never cut off
+ //MidiEvent ev2(0, 0, 0x90, npitch + track()->transposition(), event.velo());
+ //track()->playMidiEvent(&ev2);
+ }
+
+ Event newEvent = event.clone();
+ newEvent.setPitch(npitch);
+ newEvent.setPos(item->moving - *part);
+
+ if (dtype == MOVE_COPY)
+ audio->msgAddEvent(newEvent, part, false);
+ else
+ audio->msgChangeEvent(event, newEvent, part, false);
+ }
+
+//---------------------------------------------------------
+// newItem(p, state)
+//---------------------------------------------------------
+
+CItem* PianoCanvas::newItem(const QPoint& p, int)
+ {
+ Pos opos(pix2pos(p.x()));
+ Pos pos(opos);
+ pos.downSnap(raster());
+
+ if (pos < partPos1 || pos >= partPos2)
+ return 0;
+
+ int pitch = y2pitch(p.y());
+
+ Event e(Note);
+ e.setPitch(pitch);
+ e.setVelo(curVelo);
+ e.setPos(pos - *curPart);
+
+ CItem* i = new CItem(e, curPart);
+ int l = timeType() == AL::TICKS ? e.lenTick() : e.lenFrame();
+ int x = pos.time(timeType());
+ int y = pitch2y(pitch) + keyHeight/4 + (int)(wpos.y() / _ymag);
+ i->bbox = QRect(x, y, l, keyHeight/2);
+
+ return i;
+ }
+
+void PianoCanvas::newItem(CItem* item, bool noSnap)
+ {
+ Event event = item->event;
+ Pos p1(item->bbox.x(), timeType());
+ Pos p2(item->bbox.x() + item->bbox.width(), timeType());
+ int tickLen;
+
+ if (noSnap)
+ tickLen = p2.tick() - p1.tick();
+ else {
+ p1.downSnap(raster());
+ tickLen = editor->quantVal(p2.tick() - p1.tick());
+ }
+
+ Part* part = item->part;
+ event.setPos(p1 - *part);
+ event.setLenTick(tickLen);
+ audio->msgAddEvent(event, part);
+ }
+
+//---------------------------------------------------------
+// resizeItem
+//---------------------------------------------------------
+
+void PianoCanvas::resizeItem(CItem* item, bool noSnap)
+ {
+ Event event = item->event;
+ Event newEvent = event.clone();
+ int len;
+ if (noSnap)
+ len = item->bbox.width();
+ else
+ len = editor->quantVal(item->bbox.width());
+ newEvent.setLenTick(len);
+ audio->msgChangeEvent(event, newEvent, item->part);
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+bool PianoCanvas::deleteItem(CItem* item)
+ {
+ if (item->part == curPart) {
+ Event ev = item->event;
+ audio->msgDeleteEvent(ev, curPart);
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// pianoCmd
+//---------------------------------------------------------
+
+void PianoCanvas::pianoCmd(int cmd)
+ {
+ switch(cmd) {
+ case MCMD_LEFT:
+ {
+ int frames = pos[0].tick() - editor->rasterStep(pos[0].tick());
+ if (frames < 0)
+ frames = 0;
+ Pos p(frames, AL::TICKS);
+ song->setPos(0, p, true, true, true); //CDW
+ }
+ break;
+ case MCMD_RIGHT:
+ {
+ Pos p(pos[0].tick() + editor->rasterStep(pos[0].tick()), AL::TICKS);
+ //if (p > part->tick())
+ // p = part->tick();
+ song->setPos(0, p, true, true, true); //CDW
+ }
+ break;
+ case MCMD_INSERT:
+ {
+ if (pos[0].tick() < startTick || pos[0].tick() >= endTick)
+ break;
+ Part* part = curPart;
+
+ if (part == 0)
+ break;
+ song->startUndo();
+ EventList* el = part->events();
+
+ std::list <Event> elist;
+ for (iEvent e = el->lower_bound(pos[0].tick() - part->tick()); e != el->end(); ++e)
+ elist.push_back((Event)e->second);
+ for (std::list<Event>::iterator i = elist.begin(); i != elist.end(); ++i) {
+ Event event = *i;
+ Event newEvent = event.clone();
+ newEvent.setTick(event.tick() + editor->raster());
+ audio->msgChangeEvent(event, newEvent, part, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ Pos p(editor->rasterVal(pos[0].tick() + editor->rasterStep(pos[0].tick())), AL::TICKS);
+ song->setPos(0, p, true, false, true);
+ }
+ return;
+ case MCMD_DELETE:
+ if (pos[0].tick() < startTick || pos[0].tick() >= endTick)
+ break;
+ {
+ Part* part = curPart;
+ if (part == 0)
+ break;
+ song->startUndo();
+ EventList* el = part->events();
+
+ std::list<Event> elist;
+ for (iEvent e = el->lower_bound(pos[0].tick()); e != el->end(); ++e)
+ elist.push_back((Event)e->second);
+ for (std::list<Event>::iterator i = elist.begin(); i != elist.end(); ++i) {
+ Event event = *i;
+ Event newEvent = event.clone();
+ newEvent.setTick(event.tick() - editor->raster() - part->tick());
+ audio->msgChangeEvent(event, newEvent, part, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ Pos p(editor->rasterVal(pos[0].tick() - editor->rasterStep(pos[0].tick())), AL::TICKS);
+ song->setPos(0, p, true, false, true);
+ }
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void PianoCanvas::cmd(QAction* a, int quantStrength, int quantLimit, bool quantLen)
+ {
+ QString cmd(a->data().toString());
+
+ if (cmd == "paste")
+ paste();
+ else if (cmd == "delete") {
+ if (selectionSize()) {
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ Event ev = i->second->event;
+ audio->msgDeleteEvent(ev, i->second->part, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ }
+ return;
+ }
+ if (cmd == "midi_over_quant")
+ quantize(100, 1, quantLen);
+ else if (cmd == "midi_quant_noteon")
+ quantize(50, 1, false);
+ else if (cmd == "midi_quant_noteoff")
+ quantize(50, 1, true);
+ else if (cmd == "midi_quant_iterative")
+ quantize(quantStrength, quantLimit, quantLen);
+ else if (cmd == "sel_all") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (!k->second->isSelected())
+ selectItem(k->second, true);
+ }
+ }
+ else if (cmd == "sel_none")
+ deselectAll();
+ else if (cmd == "sel_inv") {
+ for (iCItem k = items.begin(); k != items.end(); ++k)
+ selectItem(k->second, !k->second->isSelected());
+ }
+ else if (cmd == "sel_ins_loc") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* item = k->second;
+ Event event = item->event;
+ unsigned tick = event.tick();
+ if (tick < song->lpos() || tick >= song->rpos())
+ selectItem(k->second, false);
+ else
+ selectItem(k->second, true);
+ }
+ }
+ else if (cmd == "sel_out_loc") {
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* item = k->second;
+ Event event = item->event;
+ unsigned tick = event.tick();
+ if (tick < song->lpos() || tick >= song->rpos())
+ selectItem(k->second, true);
+ else
+ selectItem(k->second, false);
+ }
+ }
+ else if (cmd == "midi_mod_gate_time")
+ cmdModifyGateTime->processEvents(&items);
+ else if (cmd == "midi_mod_velo")
+ cmdModifyVelocity->processEvents(&items);
+ updateSelection();
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// quantize
+//---------------------------------------------------------
+
+void PianoCanvas::quantize(int strength, int limit, bool quantLen)
+ {
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ CItem* item = k->second;
+ Event event = item->event;
+ Part* part = item->part;
+ if (event.type() != Note)
+ continue;
+
+ if ((editor->applyTo() & CMD_RANGE_SELECTED) && !k->second->isSelected())
+ continue;
+
+ unsigned tick = event.tick() + part->tick();
+
+ if ((editor->applyTo() & CMD_RANGE_LOOP)
+ && ((tick < song->lpos() || tick >= song->rpos())))
+ continue;
+
+ unsigned len = event.lenTick();
+ int tick2 = tick + len;
+
+ // quant start position
+ int diff = editor->rasterVal(tick) - tick;
+ if (abs(diff) > limit)
+ tick += ((diff * strength) / 100);
+
+ // quant len
+ diff = editor->rasterVal(tick2) - tick2;
+ if (quantLen && (abs(diff) > limit))
+ len += ((diff * strength) / 100);
+
+ // something changed?
+ if (((event.tick() + part->tick()) != tick) || (event.lenTick() != len)) {
+ Event newEvent = event.clone();
+ newEvent.setTick(tick - part->tick());
+ newEvent.setLenTick(len);
+ audio->msgChangeEvent(event, newEvent, part, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+
+//---------------------------------------------------------
+// paste
+// paste events
+//---------------------------------------------------------
+
+void PianoCanvas::paste()
+ {
+ QString stype("x-muse-eventlist");
+ QString s = QApplication::clipboard()->text(stype, QClipboard::Selection);
+ pasteAt(s, song->cpos());
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void PianoCanvas::startDrag(CItem* /*item*/, bool /*copymode*/)
+ {
+printf("PianoCanvas: startDrag\n");
+ QMimeData* drag = getTextDrag();
+ if (drag) {
+ QApplication::clipboard()->setMimeData(drag);
+#if 0
+ if (copymode)
+ drag->dragCopy();
+ else
+ drag->dragMove();
+#endif
+ }
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragEnterEvent(QDragEnterEvent*)
+ {
+printf("PianoCanvas: dragEnterEvent\n");
+//TD event->accept(Q3TextDrag::canDecode(event));
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragMoveEvent(QDragMoveEvent*)
+ {
+ printf("drag move %p\n", this);
+ }
+
+//---------------------------------------------------------
+// dragLeaveEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragLeaveEvent(QDragLeaveEvent*)
+ {
+ printf("drag leave\n");
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void PianoCanvas::viewDropEvent(QDropEvent*)
+ {
+printf("PianoCanvas: viewDropEvent\n");
+#if 0 //TD
+ QString text;
+ if (event->source() == this) {
+ printf("local DROP\n");
+ return;
+ }
+ if (Q3TextDrag::decode(event, text)) {
+ int x = editor->rasterVal(event->pos().x());
+ if (x < 0)
+ x = 0;
+ pasteAt(text, x);
+ }
+ else {
+ printf("cannot decode drop\n");
+ }
+#endif
+ }
+
+
+//---------------------------------------------------------
+// itemPressed
+//---------------------------------------------------------
+
+void PianoCanvas::itemPressed(const CItem* item)
+ {
+ if (!editor->playEvents())
+ return;
+ Event event = item->event;
+ playedPitch = event.pitch() + track()->transposition();
+ //int velo = event.velo();
+
+ // play note:
+ //I comment the following code because a note
+ //is already played in EventCanvas::mousePressCanvasA(QMouseEvent* me)
+ /*MidiEvent e(0, 0, 0x90, playedPitch, velo);
+ track()->playMidiEvent(&e);*/
+ }
+
+//---------------------------------------------------------
+// itemReleased
+//---------------------------------------------------------
+
+void PianoCanvas::itemReleased()
+ {
+ if (!editor->playEvents())
+ return;
+
+ // release note:
+ MidiEvent ev(0, 0, 0x90, playedPitch, 0);
+ track()->playMidiEvent(&ev);
+ playedPitch = -1;
+ }
+
+//---------------------------------------------------------
+// itemMoved
+//---------------------------------------------------------
+
+void PianoCanvas::itemMoved(const CItem* item)
+ {
+ int npitch = y2pitch((int)((item->my - (int)(wpos.y()/_ymag)
+ + item->bbox.height())*_ymag));
+ npitch += track()->transposition();
+ if ((curItem==item) //remove this if want to have all selection playing
+ && (playedPitch != -1) && (playedPitch != npitch)
+ && editor->playEvents()) {
+ Event event = item->event;
+ // release note:
+ MidiEvent ev1(0, 0, 0x90, playedPitch, 0);
+ track()->playMidiEvent(&ev1);
+ // play note:
+ MidiEvent e2(0, 0, 0x90, npitch, event.velo());
+ track()->playMidiEvent(&e2);
+ playedPitch = npitch;
+ }
+ }
+
+//---------------------------------------------------------
+// modifySelected
+//---------------------------------------------------------
+
+void PianoCanvas::modifySelected(NoteInfo::ValType type, int delta)
+ {
+ audio->msgIdle(true);
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!(i->second->isSelected()))
+ continue;
+ CItem* e = i->second;
+ Event event = e->event;
+ if (event.type() != Note)
+ continue;
+
+ Part* part = e->part;
+ Event newEvent = event.clone();
+
+ switch (type) {
+ case NoteInfo::VAL_TIME:
+ {
+ int newTime = event.tick() + delta;
+ if (newTime < 0)
+ newTime = 0;
+ newEvent.setTick(newTime);
+ }
+ break;
+ case NoteInfo::VAL_LEN:
+ {
+ int len = event.lenTick() + delta;
+ if (len < 1)
+ len = 1;
+ newEvent.setLenTick(len);
+ }
+ break;
+ case NoteInfo::VAL_VELON:
+ {
+ int velo = event.velo() + delta;
+ if (velo > 127)
+ velo = 127;
+ else if (velo < 0)
+ velo = 0;
+ newEvent.setVelo(velo);
+ }
+ break;
+ case NoteInfo::VAL_VELOFF:
+ {
+ int velo = event.veloOff() + delta;
+ if (velo > 127)
+ velo = 127;
+ else if (velo < 0)
+ velo = 0;
+ newEvent.setVeloOff(velo);
+ }
+ break;
+ case NoteInfo::VAL_PITCH:
+ {
+ int pitch = event.pitch() + delta;
+ if (pitch > 127)
+ pitch = 127;
+ else if (pitch < 0)
+ pitch = 0;
+ newEvent.setPitch(pitch);
+ }
+ break;
+ }
+ song->changeEvent(event, newEvent, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// setColorMode
+//---------------------------------------------------------
+
+void PianoCanvas::setColorMode(int mode)
+ {
+ colorMode = mode;
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// searchItem
+//---------------------------------------------------------
+
+CItem* PianoCanvas::searchItem(const QPoint& pt) const
+ {
+ QPoint p(
+ lrint((pt.x() - MAP_OFFSET + wpos.x()) / _xmag),
+ lrint((pt.y() + wpos.y()) / _ymag)
+ );
+ return items.find(p);
+ }
+
+//---------------------------------------------------------
+// selectLasso
+//---------------------------------------------------------
+
+void PianoCanvas::selectLasso(bool toggle)
+ {
+ QRect r(
+ lrint((lasso.x() + wpos.x()) / _xmag),
+ lrint((lasso.y() + wpos.y()) / _ymag),
+ lrint(lasso.width() / _xmag),
+ lrint(lasso.height() / _ymag)
+ );
+
+ int n = 0;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->intersects(r)) {
+ selectItem(i->second, !(toggle && i->second->isSelected()));
+ ++n;
+ }
+ }
+ if (n) {
+ updateSelection();
+ widget()->update();
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/prcanvas.h b/muse_qt4_evolution/muse/midiedit/prcanvas.h
new file mode 100644
index 00000000..7f92e95e
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/prcanvas.h
@@ -0,0 +1,75 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PRCANVAS_H__
+#define __PRCANVAS_H__
+
+#include "ecanvas.h"
+
+class CItem;
+class MidiCmd;
+
+//---------------------------------------------------------
+// PianoCanvas
+//---------------------------------------------------------
+
+class PianoCanvas : public EventCanvas {
+ Q_OBJECT
+
+ int colorMode;
+ int playedPitch;
+
+ MidiCmd* cmdModifyGateTime;
+ MidiCmd* cmdModifyVelocity;
+
+ virtual void paint(QPainter&, QRect);
+ virtual CItem* searchItem(const QPoint& p) const;
+ virtual void addItem(Part* part, const Event& event);
+ virtual void viewMouseDoubleClickEvent(QMouseEvent*);
+ virtual void moveItem(CItem*, DragType);
+ virtual CItem* newItem(const QPoint&, int);
+ virtual void resizeItem(CItem*, bool noSnap);
+ virtual void newItem(CItem*, bool noSnap);
+ virtual bool deleteItem(CItem*);
+ virtual void startDrag(CItem* item, bool copymode);
+ virtual void dragEnterEvent(QDragEnterEvent* event);
+ virtual void dragMoveEvent(QDragMoveEvent*);
+ virtual void dragLeaveEvent(QDragLeaveEvent*);
+ virtual void viewDropEvent(QDropEvent* event);
+ virtual void selectLasso(bool toggle);
+ virtual void timeTypeChanged();
+
+ void quantize(int, int, bool);
+ void paste();
+ virtual void itemPressed(const CItem*);
+ virtual void itemReleased();
+ virtual void itemMoved(const CItem*);
+
+ public slots:
+ void pianoCmd(int);
+
+ public:
+ PianoCanvas(MidiEditor*);
+ void cmd(QAction*, int, int, bool);
+ void setColorMode(int mode);
+ virtual void modifySelected(NoteInfo::ValType type, int delta);
+ };
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/quantconfig.cpp b/muse_qt4_evolution/muse/midiedit/quantconfig.cpp
new file mode 100644
index 00000000..229b8875
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/quantconfig.cpp
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "quantconfig.h"
+
+const char* wtStrengthTxt = QT_TR_NOOP("sets amount of quantization:\n"
+ "0 - no quantization\n"
+ "100 - full quantization");
+const char* wtQLimitTxt = QT_TR_NOOP("don't quantize notes above this tick limit");
+const char* wtQLenTxt = QT_TR_NOOP("quantize also note len as default");
+
+//---------------------------------------------------------
+// QuantConfig
+//---------------------------------------------------------
+
+QuantConfig::QuantConfig(int s, int l, bool lenFlag, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ strength->setValue(s);
+ dontQuantize->setValue(l);
+ quantLen->setChecked(lenFlag);
+ }
+
+//---------------------------------------------------------
+// quantStrength
+//---------------------------------------------------------
+
+int QuantConfig::quantStrength() const
+ {
+ return strength->value();
+ }
+
+//---------------------------------------------------------
+// quantLimit
+//---------------------------------------------------------
+
+int QuantConfig::quantLimit() const
+ {
+ return dontQuantize->value();
+ }
+
+//---------------------------------------------------------
+// doQuantLen
+//---------------------------------------------------------
+
+bool QuantConfig::doQuantLen() const
+ {
+ return quantLen->isChecked();
+ }
+
diff --git a/muse_qt4_evolution/muse/midiedit/quantconfig.h b/muse_qt4_evolution/muse/midiedit/quantconfig.h
new file mode 100644
index 00000000..08e75cb2
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/quantconfig.h
@@ -0,0 +1,42 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __QCONFIG_H__
+#define __QCONFIG_H__
+
+#include "ui_quantconfig.h"
+
+//---------------------------------------------------------
+// QuantConfig
+//---------------------------------------------------------
+
+class QuantConfig : public QDialog, public Ui::QuantConfigBase {
+ Q_OBJECT
+
+ public:
+ QuantConfig(int, int, bool, QWidget* parent = 0);
+ int quantStrength() const;
+ int quantLimit() const;
+ bool doQuantLen() const;
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/quantconfig.ui b/muse_qt4_evolution/muse/midiedit/quantconfig.ui
new file mode 100644
index 00000000..1da9f790
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/quantconfig.ui
@@ -0,0 +1,151 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>QuantConfigBase</class>
+ <widget class="QDialog" name="QuantConfigBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>333</width>
+ <height>193</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Configure Quantize</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="dontQuantize" >
+ <property name="maximum" >
+ <number>500</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Strength:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="strength" >
+ <property name="suffix" >
+ <string>%</string>
+ </property>
+ <property name="maximum" >
+ <number>100</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Don't Quantize:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QCheckBox" name="quantLen" >
+ <property name="text" >
+ <string>Quant Len</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>QuantConfigBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>QuantConfigBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/midiedit/trackpattern.cpp b/muse_qt4_evolution/muse/midiedit/trackpattern.cpp
new file mode 100644
index 00000000..d50fffd0
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/trackpattern.cpp
@@ -0,0 +1,627 @@
+#include "trackpattern.h"
+#include "event.h"
+#include "al/sig.h"
+
+class EventList;
+
+#define MAX(x,y) (x>y?x:y)
+
+#define EMPTYCHAR "-"
+#define NONREADCHAR "*"
+#define SPACECHAR "-"
+#define PLUSCHAR "+"
+#define STOPCHAR "="
+#define SEPCHAR " "
+//#define FONT "Console"
+#define FONT "Monospace"
+//#define FONT "MiscFixed"
+#define FONT_HEIGHT 14
+#define OFFSET_HEIGHT 3
+#define OFFSET_Y 3
+
+//----------------------------------------------------------
+// EventPat
+// has to be derived, can be note or control
+//----------------------------------------------------------
+EventPat::EventPat(bool e, bool r) {_isEmpty = e; _isReadable = r;}
+EventPat::EventPat() {EventPat(true, true);}
+EventPat::~EventPat() {}
+
+void EventPat::setEmpty(bool e) {_isEmpty = e;}
+bool EventPat::getEmpty() {return _isEmpty;}
+void EventPat::setReadable(bool r) {_isReadable = r;}
+bool EventPat::getReadable() {return _isReadable;}
+
+//----------------------------------------------------------
+// VoiceEventPat
+//----------------------------------------------------------
+VoiceEventPat::VoiceEventPat(int n, int v):EventPat(false, true) {
+ _noteNum = n;
+ _velocity = v;
+}
+
+VoiceEventPat::VoiceEventPat(bool e, bool r):EventPat(e, r) {}
+
+VoiceEventPat::VoiceEventPat():EventPat(true, true) {}
+
+VoiceEventPat::~VoiceEventPat() {}
+
+
+void VoiceEventPat::setNoteNum(int n) { _noteNum = n; }
+
+int VoiceEventPat::getNoteNum() { return _noteNum; }
+
+void VoiceEventPat::setVelocity(int n) { _velocity = n; }
+
+int VoiceEventPat::getVelocity() { return _velocity; }
+
+QString VoiceEventPat::str() {
+ if(_isEmpty) {
+ return QString(EMPTYCHAR EMPTYCHAR EMPTYCHAR EMPTYCHAR)
+ + QString(SEPCHAR) + QString(EMPTYCHAR EMPTYCHAR EMPTYCHAR);
+ }
+ else if(_isReadable) {
+ if(_velocity==0) {
+ return QString(STOPCHAR STOPCHAR STOPCHAR STOPCHAR)
+ + QString(SEPCHAR) + QString(EMPTYCHAR EMPTYCHAR EMPTYCHAR);
+ }
+ else {
+ int octave = _noteNum/12 - 2;
+ int note = _noteNum%12;
+ QString sNote;
+ switch(note) {
+ case 0: sNote = QString("C") + QString(SPACECHAR);
+ break;
+ case 1: sNote = QString("C#");
+ break;
+ case 2: sNote = QString("D") + QString(SPACECHAR);
+ break;
+ case 3: sNote = QString("D#");
+ break;
+ case 4: sNote = QString("E") + QString(SPACECHAR);
+ break;
+ case 5: sNote = QString("F") + QString(SPACECHAR);
+ break;
+ case 6: sNote = QString("F#");
+ break;
+ case 7: sNote = QString("G") + QString(SPACECHAR);
+ break;
+ case 8: sNote = QString("G#");
+ break;
+ case 9: sNote = QString("A") + QString(SPACECHAR);
+ break;
+ case 10: sNote = QString("A#");
+ break;
+ case 11: sNote = QString("F") + QString(SPACECHAR);
+ break;
+ default:
+ printf("VoiceEventPat::str() Error : case note not treated\n");
+ break;
+ }
+ QString sOctave;
+ sOctave.setNum(octave);
+ if(octave>=0) {
+ sOctave = QString(PLUSCHAR) + sOctave;
+ }
+ QString sVel;
+ sVel.setNum(_velocity);
+ if(_velocity<10) {
+ sVel = QString("00") + sVel;
+ }
+ else if(_velocity<100) {
+ sVel = QString("0") + sVel;
+ }
+ return sNote + sOctave + QString(SEPCHAR) + sVel;
+ }
+ }
+ else {
+ return QString(NONREADCHAR NONREADCHAR NONREADCHAR NONREADCHAR)
+ + QString(SEPCHAR) + QString(NONREADCHAR NONREADCHAR NONREADCHAR);
+ }
+}
+
+//----------------------------------------------------------
+// CtrlEventPat
+//----------------------------------------------------------
+CtrlEventPat::CtrlEventPat(int c, int v):EventPat(false, true) {
+ _ctrlNum = c;
+ _value = v;
+}
+
+CtrlEventPat::CtrlEventPat():EventPat(true, true) {}
+
+CtrlEventPat::~CtrlEventPat() {}
+
+
+void CtrlEventPat::setCtrlNum(int n) { _ctrlNum = n; }
+
+int CtrlEventPat::getCtrlNum() { return _ctrlNum; }
+
+void CtrlEventPat::setValue(int n) { _value = n; }
+
+int CtrlEventPat::getValue() { return _value; }
+
+QString CtrlEventPat::str() {
+ //TODO
+ if(_isReadable) {
+ QString sCtrl;
+ sCtrl.setNum(_ctrlNum);
+ QString s = " ";
+ QString sVal;
+ sVal.setNum(_value);
+ return sCtrl + s + sVal;
+ }
+ else {
+ QString s = "***";
+ return s;
+ }
+}
+
+//----------------------------------------------------------
+// BasePat
+//----------------------------------------------------------
+BasePat::BasePat() {
+}
+BasePat::BasePat(QString name, unsigned firstTick,
+ unsigned lastTick, int quant) {
+ _name = name;
+ _firstTick = firstTick;
+ _lastTick = lastTick;
+ _quant = quant;
+}
+
+BasePat::~BasePat() {}
+
+QString BasePat::getName() {
+ return _name;
+}
+
+bool BasePat::isRow(unsigned tick) {
+ Pos p = AL::sigmap.raster(_firstTick + tick, _quant);
+ return p.tick() == _firstTick + tick;
+}
+
+unsigned BasePat::tick2row(unsigned tick) {
+ return (_firstTick + tick) / _quant - (_firstTick / _quant);
+}
+
+//----------------------------------------------------------
+// VoicePat
+//----------------------------------------------------------
+VoicePat::VoicePat(QString name, unsigned firstTick, unsigned lastTick,
+ int quant):BasePat(name, firstTick, lastTick, quant) {
+ _events = new EventList();
+}
+
+VoicePat::~VoicePat() {
+ delete(_events);
+}
+
+
+std::vector<VoiceEventPat*> VoicePat::getEventsCol() {
+ return _eventsCol;
+}
+
+bool VoicePat::add(const Event* ev, unsigned tick) {
+ Event* e = new Event(*ev);
+ if(isFreeSpace(e, tick)) {
+ //add into the list of events
+ _events->add(*e, tick);
+ //add the begin tick into the column
+ unsigned beginRow = tick2row(tick);
+ if(beginRow >= _eventsCol.size()) {
+ for(unsigned i = _eventsCol.size(); i <= beginRow; i++) {
+ //empty voice event
+ _eventsCol.push_back(new VoiceEventPat());
+ }
+ }
+ VoiceEventPat* vbep;
+ if(isRow(tick)) vbep = new VoiceEventPat(e->pitch(), e->velo());
+ else vbep = new VoiceEventPat(false, false); //non-readable
+ if(_eventsCol[beginRow]) delete(_eventsCol[beginRow]);
+ _eventsCol[beginRow] = vbep;
+
+ //add the end tick into the column
+ unsigned endTick = e->lenTick() + tick;
+ unsigned endRow = tick2row(endTick);
+ if(endRow >= _eventsCol.size()) {
+ for(unsigned i = _eventsCol.size(); i <= endRow; i++) {
+ //empty voice event
+ _eventsCol.push_back(new VoiceEventPat());
+ }
+ }
+ VoiceEventPat* veep;
+ if(isRow(endTick)) veep = new VoiceEventPat(e->pitch(), 0);
+ else veep = new VoiceEventPat(false, false); //non-readable
+ if(_eventsCol[endRow]
+ &&
+ (_eventsCol[endRow]->getEmpty() || tick2row(endTick)==tick2row(tick))) {
+ delete(_eventsCol[endRow]);
+ _eventsCol[endRow] = veep;
+ }
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+bool VoicePat::isFreeSpace(const Event* e, unsigned tick) {
+ bool isFree = true;
+ for(ciEvent ce = _events->begin(); ce != _events->end(); ce++) {
+ const Event* cevent = &ce->second;
+ unsigned beginTick = ce->first;
+ unsigned endTick = ce->first + cevent->lenTick();
+ isFree = (endTick <= tick) || (beginTick >= tick + e->lenTick());
+ if(!isFree) break;
+ }
+ return isFree;
+}
+
+//----------------------------------------------------------
+// CtrlPat
+//----------------------------------------------------------
+CtrlPat::CtrlPat(QString /*name*/) {
+}
+
+CtrlPat::~CtrlPat() {}
+
+//----------------------------------------------------------
+// BaseTrackPat
+//----------------------------------------------------------
+BaseTrackPat::BaseTrackPat(QMainWindow* parent, unsigned anr) {
+ _parent = parent;
+ _tree = new QTreeWidget(this);
+
+ _absoluteNbrRow = anr;
+
+ _update = false;
+
+ connect(_tree, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
+ SLOT(currentItemChanged(QTreeWidgetItem*)));
+ connect(_tree, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(currentItemChanged(QTreeWidgetItem*)));
+ connect(_parent, SIGNAL(signalMoveCurrentRow(unsigned)), this,
+ SLOT(moveRowFromSignal(unsigned)));
+ //connect signalSongChanged to update the pattern
+ connect(parent, SIGNAL(signalSongChanged(int)), this, SLOT(updatePattern(int)));
+}
+
+BaseTrackPat::~BaseTrackPat() {
+}
+
+void BaseTrackPat::setRowMag() {
+ _rowMag = (unsigned) height()/_fontHeight - OFFSET_Y;
+ _lastRow = _firstRow + _rowMag - 1;
+}
+void BaseTrackPat::setFirstRow(unsigned f) {
+ _firstRow = f;
+ _lastRow = f + _rowMag - 1;
+}
+void BaseTrackPat::setRelativeCurrentRow(unsigned r) {
+ _relativeCurrentRow = r;
+ _absoluteCurrentRow = r + _firstRow;
+}
+void BaseTrackPat::setAbsoluteCurrentRow(unsigned a) {
+ _absoluteCurrentRow = a;
+ _relativeCurrentRow = a - _firstRow;
+}
+
+unsigned BaseTrackPat::getRowMag() {
+ return _rowMag;
+}
+unsigned BaseTrackPat::getFirstRow() {
+ return _firstRow;
+}
+unsigned BaseTrackPat::getLastRow() {
+ return _lastRow;
+}
+unsigned BaseTrackPat::getRelativeCurrentRow() {
+ return _relativeCurrentRow;
+}
+unsigned BaseTrackPat::getAbsoluteCurrentRow() {
+ return _absoluteCurrentRow;
+}
+
+unsigned BaseTrackPat::getAbsoluteNbrRow() {
+ return _absoluteNbrRow;
+}
+
+void BaseTrackPat::moveRelativeCurrentRow(unsigned newIndex) {
+ if(newIndex==0 && getFirstRow()>0) {
+ setFirstRow(getFirstRow() - 1);
+ setRelativeCurrentRow(newIndex + 1);
+ _update = true;
+ }
+ else if(newIndex==getRowMag()-1 && getLastRow()<_absoluteNbrRow-1) {
+ setFirstRow(getFirstRow() + 1);
+ setRelativeCurrentRow(newIndex - 1);
+ _update = true;
+ }
+ else setRelativeCurrentRow(newIndex);
+}
+
+//void BaseTrackPat::itemSelectionChanged() {
+void BaseTrackPat::currentItemChanged(QTreeWidgetItem* nitem) {
+ int index;
+ if(nitem) {
+ index = _tree->indexOfTopLevelItem(nitem);
+
+ emit moveCurrentRow(index);
+ }
+}
+
+void BaseTrackPat::moveRowFromSignal(unsigned index) {
+ moveRelativeCurrentRow(index);
+ if(_update==true) {
+ fillPattern();
+ _update = false;
+ }
+ selectCurrentRow();
+}
+
+void BaseTrackPat::resizeEvent(QResizeEvent* /*event*/) {
+ setRowMag();
+ fillPattern();
+ selectCurrentRow();
+}
+
+void BaseTrackPat::selectCurrentRow() {
+ unsigned rcr = getRelativeCurrentRow();
+ if(rcr < getRowMag()) {
+ QTreeWidgetItem* item = _tree->topLevelItem(getRelativeCurrentRow());
+ if(item) {
+ _tree->blockSignals(true);
+ item->setSelected(true);
+ _tree->setCurrentItem(item);
+ _tree->blockSignals(false);
+ }
+ }
+}
+
+void BaseTrackPat::updatePattern(int /*type*/) {
+ clearMatrix();
+ buildMatrix();
+ fillPattern();
+ selectCurrentRow();
+}
+
+//----------------------------------------------------------
+// TrackPattern
+//----------------------------------------------------------
+TrackPattern::TrackPattern(QMainWindow* parent, QString name,
+ unsigned firstTick, unsigned lastTick,
+ int quant, PartList* pl, MidiTrack* t, unsigned anr)
+ : BaseTrackPat(parent, anr), BasePat(name, firstTick, lastTick, quant) {
+
+ //set attributs
+ _track = t;
+
+ //build the list of parts belonging to track t
+ _partList = new PartList;
+ for(ciPart p = pl->begin(); p != pl->end(); p++) {
+ Part* part = p->second;
+ if(t==part->track())
+ _partList->add(part);
+ }
+
+ //build the matrix of events
+ buildMatrix();
+
+ //configure and add the dockWidget
+ setWindowTitle(_track->name());
+ setFeatures(QDockWidget::DockWidgetClosable |QDockWidget::DockWidgetMovable);
+ parent->addDockWidget(Qt::LeftDockWidgetArea, this, Qt::Horizontal);
+
+ //build the treeWidget
+ _tree->setColumnCount(_voiceColumns.size() + _ctrlColumns.size());
+ QStringList headerLabels;
+ for(unsigned i = 0; i < _voiceColumns.size(); i++) {
+ headerLabels += QStringList(_voiceColumns[i]->getName());
+ }
+ for(unsigned i = 0; i < _ctrlColumns.size(); i++) {
+ //TODO CTRL
+ //headerLabels += QStringList(_ctrlColumns[i]->getName());
+ }
+ _tree->setHeaderLabels(headerLabels);
+ //set some display properties
+ _tree->setRootIsDecorated(false);
+ _tree->setUniformRowHeights(true);
+ _tree->setAlternatingRowColors(true);
+ QFont font =_tree->font();
+ font.setFamily(FONT);
+ _tree->setFont(font);
+ font.setPixelSize(FONT_HEIGHT);
+ _fontHeight = font.pixelSize() + OFFSET_HEIGHT;
+ setWidget(_tree);
+
+ //set the range of rows to display
+ setFirstRow(10); //TODO : choose accordingly to current position of muse song
+ setAbsoluteCurrentRow(10); //TODO : the same
+ setRowMag();
+
+ //fill the treeWidget
+ fillPattern();
+ selectCurrentRow();
+
+ //Resize the columns
+ for(unsigned i = 0; i < _voiceColumns.size(); i++)
+ _tree->resizeColumnToContents(i);
+}
+
+TrackPattern::~TrackPattern() {
+}
+
+void TrackPattern::add(const Event* e, unsigned tick) {
+ if(e->isNote()) {
+ bool success = false;
+ for(unsigned i = 0; i < _voiceColumns.size(); i++) {
+ success = _voiceColumns[i]->add(e, tick);
+ if(success) break;
+ }
+ if(!success) {
+ QString voiceName;
+ voiceName.setNum(_voiceColumns.size());
+ voiceName = QString("Voice " + voiceName);
+ VoicePat* vp = new VoicePat(voiceName, _firstTick, 0, _quant);
+ _voiceColumns.push_back(vp);
+ bool success = vp->add(e, tick);
+ if(!success) printf("Error TrackPattern::add\n");
+ }
+ }
+ else {
+ //TODO Ctrl
+ }
+}
+
+void TrackPattern::setQuant(int /*quant*/) {
+ //TODO
+}
+
+void TrackPattern::clearMatrix() {
+ _voiceColumns.clear();
+ _ctrlColumns.clear();
+}
+
+void TrackPattern::buildMatrix() {
+ for(ciPart p = _partList->begin(); p != _partList->end(); p++) {
+ Part* part = p->second;
+ EventList* events = part->events();
+ for(ciEvent e = events->begin(); e != events->end(); e++) {
+ const Event* event = &e->second;
+ unsigned rescaledTick = part->tick() + event->tick() - _firstTick;
+ add(event, rescaledTick);
+ }
+ }
+}
+
+void TrackPattern::fillPattern() {
+ _tree->blockSignals(true);
+
+ _tree->clear();
+ for(unsigned i = 0; i < _voiceColumns.size(); i++) {
+ for(unsigned j = getFirstRow(); j <= getLastRow(); j++) {
+ QTreeWidgetItem* item = _tree->topLevelItem(j - getFirstRow());
+ if(!item) item = new QTreeWidgetItem(_tree);
+ VoiceEventPat* vep = (_voiceColumns[i]->getEventsCol())[j];
+ if(vep) item->setText(i, vep->str());
+ }
+ }
+ for(unsigned i = 0; i < _ctrlColumns.size(); i++) {
+ //TODO CTRL
+ }
+
+ _tree->blockSignals(false);
+}
+
+//---------------------------------------------------------------
+// TimingEvent
+//---------------------------------------------------------------
+TimingEvent::TimingEvent(unsigned row) {
+ _row = row;
+}
+TimingEvent::~TimingEvent() {
+}
+
+void TimingEvent::setBarBeatTick(unsigned tick) {
+ AL::sigmap.tickValues(tick, &_bar, &_beat, &_tick);
+}
+
+QString TimingEvent::barBeatTickStr() {
+ QString barS;
+ barS.setNum(_bar + 1);
+ if(_bar<10) barS = QString("000") + barS;
+ else if(_bar<100) barS = QString("00") + barS;
+ else if(_bar<1000) barS = QString("0") + barS;
+ QString beatS;
+ beatS.setNum(_beat + 1);
+ if(_beat<10) beatS = QString("0") + beatS;
+ QString tickS;
+ tickS.setNum(_tick);
+ if(_tick<10) tickS = QString("00") + tickS;
+ else if(_tick<100) tickS = QString("0") + tickS;
+ return barS + QString(":") + beatS + QString(":") + tickS;
+}
+
+QString TimingEvent::rowStr() {
+ QString r;
+ r.setNum(_row);
+ if(_row<10) r = QString("00") + r;
+ else if(_row<100) r = QString("0") + r;
+ return r;
+}
+
+//---------------------------------------------------------------
+// TimingPattern
+//---------------------------------------------------------------
+TimingPattern::TimingPattern(QMainWindow* parent, QString name,
+ unsigned firstTick, unsigned lastTick, int quant)
+ : BasePat(name, firstTick, lastTick, quant), BaseTrackPat(parent) {
+ //build the timing matrix
+ buildMatrix();
+
+ //configure and add the dockWidget
+ setWindowTitle(name);
+ setFeatures(QDockWidget::DockWidgetClosable |QDockWidget::DockWidgetMovable);
+ parent->addDockWidget(Qt::LeftDockWidgetArea, this, Qt::Horizontal);
+
+ //build the treeWidget
+ QStringList headerLabels;
+ _tree->setHeaderLabels(QStringList("bar:bt:tick") + QStringList("row"));
+ _tree->setHeaderLabels(headerLabels);
+ //set some display properties
+ _tree->setRootIsDecorated(false);
+ _tree->setUniformRowHeights(true);
+ _tree->setAlternatingRowColors(true);
+ QFont font =_tree->font();
+ font.setFamily(FONT);
+ _tree->setFont(font);
+ font.setPixelSize(FONT_HEIGHT);
+ _fontHeight = font.pixelSize() + OFFSET_HEIGHT;
+ setWidget(_tree);
+
+ //set the range of rows to display
+ setFirstRow(10); //TODO : choose accordingly to current position of muse song
+ setAbsoluteCurrentRow(10); //TODO : the same
+ setRowMag();
+
+ //fill the treeWidget
+ fillPattern();
+ selectCurrentRow();
+
+ //resize the columns
+ for(int i = 0; i < _tree->columnCount(); i++)
+ _tree->resizeColumnToContents(i);
+}
+
+TimingPattern::~TimingPattern() {
+}
+
+void TimingPattern::clearMatrix() {
+ _timingEvents.clear();
+}
+
+void TimingPattern::buildMatrix() {
+ for(unsigned tick = _firstTick; tick <= _lastTick; tick++) {
+ if(isRow(tick)) {
+ TimingEvent* te = new TimingEvent(tick2row(tick) - tick2row(_firstTick));
+ te->setBarBeatTick(tick);
+ _timingEvents.push_back(te);
+ }
+ }
+ _absoluteNbrRow = _timingEvents.size();
+}
+
+void TimingPattern::fillPattern() {
+ _tree->blockSignals(true);
+
+ _tree->clear();
+ for(unsigned i = getFirstRow(); i <= getLastRow(); i++) {
+ QTreeWidgetItem* item = new QTreeWidgetItem(_tree);
+ TimingEvent* te = _timingEvents[i];
+ item->setText(0, te->barBeatTickStr());
+ item->setText(1, te->rowStr());
+ }
+
+ _tree->blockSignals(false);
+}
diff --git a/muse_qt4_evolution/muse/midiedit/trackpattern.h b/muse_qt4_evolution/muse/midiedit/trackpattern.h
new file mode 100644
index 00000000..d9d91aee
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/trackpattern.h
@@ -0,0 +1,261 @@
+//=================================================================
+// trackpattern.h
+// TrackPattern class for miditracker, QDock, QTree, Part, matrix
+// miditracker.h
+// (C) Copyright 2006 Nil Geisweiller (a_lin@user.sourceforge.net)
+//=================================================================
+
+#ifndef __TRACKERPATTERN_H__
+#define __TRACKERPATTERN_H__
+
+#include <vector>
+#include "miditrack.h"
+#include "part.h"
+
+class PartList;
+
+//----------------------------------------------------------
+// EventPat
+// has to be derived, can be note or control
+//----------------------------------------------------------
+class EventPat {
+ private:
+ protected:
+ bool _isReadable; //true iff the time of the event is the exact row time
+ bool _isEmpty;
+ public:
+ EventPat(bool isEmpty, bool isReadable);
+ EventPat(); //_isEmpty=true and_isReadable=true at the initialization
+ ~EventPat();
+
+ void setEmpty(bool);
+ bool getEmpty();
+ void setReadable(bool);
+ bool getReadable();
+};
+
+//----------------------------------------------------------
+// VoiceEventPat
+//----------------------------------------------------------
+class VoiceEventPat : public EventPat {
+ private:
+ int _noteNum; //absolute note number including octave
+ int _velocity; //if velocity is 0 note is off
+ public:
+ VoiceEventPat(int noteNum, int velocity); // _isReadable is initialized true
+ VoiceEventPat(bool isEmpty, bool isReadable);
+ VoiceEventPat(); //_isEmpty = true, _isReadable = true
+ ~VoiceEventPat();
+
+ void setNoteNum(int n);
+ int getNoteNum();
+ void setVelocity(int n);
+ int getVelocity();
+ QString str(); //return the string to display on the entry of the pattern
+};
+
+//----------------------------------------------------------
+// CtrlEventPat
+//----------------------------------------------------------
+class CtrlEventPat : public EventPat {
+ private:
+ int _ctrlNum;
+ int _value; //if velocity is 0 note is off
+ public:
+ CtrlEventPat(int ctrlNum, int value); // _isReadable is initialized true
+ CtrlEventPat(); // _isReadable is initialized false
+ ~CtrlEventPat();
+
+ void setCtrlNum(int n);
+ int getCtrlNum();
+ void setValue(int n);
+ int getValue();
+ QString str(); //return the string to display on the entry of the pattern
+};
+
+//----------------------------------------------------------
+// BasePat
+//----------------------------------------------------------
+class BasePat {
+ protected:
+ QString _name;
+ unsigned _firstTick;
+ unsigned _lastTick;
+ int _quant;
+ public:
+ BasePat();
+ BasePat(QString name, unsigned firstTick, unsigned lastTick, int quant);
+ ~BasePat();
+
+ QString getName();
+
+ bool isRow(unsigned tick); //return true iff tick coincides with one row
+ unsigned tick2row(unsigned tick);
+};
+
+//----------------------------------------------------------
+// VoicePat
+//----------------------------------------------------------
+class VoicePat : public BasePat {
+ private:
+ std::vector<VoiceEventPat*> _eventsCol; //column of VoiceEventPat to display
+ EventList* _events; //actual list of events, only one at a time
+ public:
+ VoicePat(QString name, unsigned firstTick, unsigned lastTick, int quant);
+ ~VoicePat();
+
+ std::vector<VoiceEventPat*> getEventsCol();
+
+ bool add(const Event* e, unsigned tick); //add the Event e into the EventList
+ //and update properly _events
+ //return true if success, that is
+ //there is an empty space of the
+ //event
+ bool isFreeSpace(const Event* e, unsigned tick); //return true iff there
+ //is space to add the
+ //event e without
+ //overlapping other events
+};
+
+//----------------------------------------------------------
+// CtrlPat
+//----------------------------------------------------------
+class CtrlPat {
+ private:
+ std::vector<CtrlEventPat> _events; //column of CtrlEventPat
+ public:
+ CtrlPat(QString name);
+ ~CtrlPat();
+};
+
+//------------------------------------------------------
+// BaseTrackPat
+//------------------------------------------------------
+class BaseTrackPat : public QDockWidget {
+ Q_OBJECT
+
+ protected:
+ QTreeWidget* _tree;
+ QMainWindow* _parent;
+
+ unsigned _rowMag; //contains the number of rows
+ unsigned _firstRow; //absolute index of the first row
+ unsigned _lastRow; //absolute index of the last row, included
+ unsigned _relativeCurrentRow; //index of the current according to the tree
+ unsigned _absoluteCurrentRow; //index of the current row according to the
+ //event matrix
+ unsigned _absoluteNbrRow; //contains the number of rows of the matrix
+
+ int _fontHeight;
+
+ bool _update; //if true then the tree must updated
+
+ public:
+ BaseTrackPat(QMainWindow* parent, unsigned anr = 0);
+ ~BaseTrackPat();
+
+ void setRowMag(); //set _rowMag with the number of rows to display according
+ //to the size of the window, adjust _lastRow accordingly,
+ //assum that first row is set appropriately
+ void setFirstRow(unsigned f); //set _firstRow with f, that is the absolute index
+ //of the first row, adjust _lastRow appropriately
+ void setRelativeCurrentRow(unsigned r); //set _relativeCurrentRow with r
+ //and _absoluteCurrentRow accordingly
+ void setAbsoluteCurrentRow(unsigned a); //set _absoluteCurrentRow with a
+ //and _relativeCurrentRow accordingly
+
+ unsigned getRowMag();
+ unsigned getFirstRow();
+ unsigned getLastRow();
+ unsigned getRelativeCurrentRow();
+ unsigned getAbsoluteCurrentRow();
+
+ unsigned getAbsoluteNbrRow();
+
+ void moveRelativeCurrentRow(unsigned newIndex); //update _firstRow, _lastrow
+ //relativeCurrentRow,
+ //absoluteCurrentRow, considering
+ //that the new relative index is
+ //newIndex
+
+ void resizeEvent(QResizeEvent* /*event*/);
+
+ virtual void clearMatrix() {}
+ virtual void buildMatrix() {}
+ virtual void fillPattern() {} //fill the treeWidget with the right window of times
+ //according to _firstRow and _lastRow
+
+
+ void selectCurrentRow(); //block the signals and select the current row
+
+ signals:
+ void moveCurrentRow(unsigned i); //send the signal that the current row is moved
+ //at the relative index i
+ private slots:
+ void currentItemChanged(QTreeWidgetItem* nitem);
+ void moveRowFromSignal(unsigned index);
+ void updatePattern(int songChangeType);
+};
+
+//------------------------------------------------------
+// TrackPattern
+//------------------------------------------------------
+class TrackPattern : public BaseTrackPat, public BasePat {
+ private:
+ PartList* _partList; //partList concerned by a track
+ MidiTrack* _track;
+ std::vector<VoicePat*> _voiceColumns; //matrix of voice events
+ std::vector<CtrlPat*> _ctrlColumns; //matrix of ctrl events
+ public:
+ TrackPattern(QMainWindow* parent, QString name,
+ unsigned firstTick, unsigned lastTick,
+ int quant, PartList* pl, MidiTrack* t, unsigned anr = 0);
+ ~TrackPattern();
+
+ void add(const Event* e, unsigned tick); //add the Event e and
+ //build consequently
+ //the matrix,
+ //creating new voices when necessary
+ MidiTrack* getTrack() {return _track;}
+ void setQuant(int quant);
+
+ virtual void clearMatrix();
+ virtual void buildMatrix();
+ virtual void fillPattern();
+};
+
+//------------------------------------------------------
+// TimingEvent
+//------------------------------------------------------
+class TimingEvent {
+ private:
+ int _bar;
+ int _beat;
+ unsigned _tick;
+ unsigned _row;
+
+ public:
+ TimingEvent(unsigned row);
+ ~TimingEvent();
+
+ void setBarBeatTick(unsigned tick);
+
+ QString barBeatTickStr();
+ QString rowStr();
+};
+
+class TimingPattern : public BasePat, public BaseTrackPat {
+ private:
+ //QTreeWidget* _tree;
+ std::vector<TimingEvent*> _timingEvents;
+ public:
+ TimingPattern(QMainWindow* parent, QString name, unsigned firstTick,
+ unsigned lastTick, int quant);
+ ~TimingPattern();
+
+ virtual void clearMatrix();
+ virtual void buildMatrix();
+ virtual void fillPattern();
+};
+
+#endif
diff --git a/muse_qt4_evolution/muse/midiedit/velocity.cpp b/muse_qt4_evolution/muse/midiedit/velocity.cpp
new file mode 100644
index 00000000..f0abd845
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/velocity.cpp
@@ -0,0 +1,108 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "velocity.h"
+#include "song.h"
+#include "tb1.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// Velocity
+//---------------------------------------------------------
+
+Velocity::Velocity(QWidget*)
+ : MidiCmdDialog()
+ {
+ setWindowTitle(tr("MusE: Modify Velocity"));
+ QWidget* velocityWidget = new QWidget;
+ velo.setupUi(velocityWidget);
+ layout->addWidget(velocityWidget);
+ layout->addStretch(10);
+ _rateVal = 0;
+ _offsetVal = 0;
+ velo.rate->setValue(_rateVal);
+ velo.offset->setValue(_offsetVal);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void Velocity::accept()
+ {
+ _rateVal = velo.rate->value();
+ _offsetVal = velo.offset->value();
+ MidiCmdDialog::accept();
+ }
+
+//---------------------------------------------------------
+// ModifyVelocityCmd
+//---------------------------------------------------------
+
+ModifyVelocityCmd::ModifyVelocityCmd(MidiEditor* e)
+ : MidiCmd(e)
+ {
+ dialog = 0;
+ }
+
+//---------------------------------------------------------
+// guiDialog
+//---------------------------------------------------------
+
+MidiCmdDialog* ModifyVelocityCmd::guiDialog()
+ {
+ if (dialog == 0)
+ dialog = new Velocity(0);
+ return dialog;
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void ModifyVelocityCmd::process(CItemList* items)
+ {
+ int rate = dialog->rateVal();
+ int offset = dialog->offsetVal();
+
+ for (iCItem k = items->begin(); k != items->end(); ++k) {
+ CItem* item = k->second;
+ Event event = item->event;
+ if (event.type() != Note)
+ continue;
+ if (itemInRange(item)) {
+ int velo = event.velo();
+ velo = (velo * rate) / 100;
+ velo += offset;
+
+ if (velo <= 0)
+ velo = 1;
+ if (velo > 127)
+ velo = 127;
+ if (event.velo() != velo) {
+ Event newEvent = event.clone();
+ newEvent.setVelo(velo);
+ audio->msgChangeEvent(event, newEvent, item->part, false);
+ }
+ }
+ }
+ }
+
+
diff --git a/muse_qt4_evolution/muse/midiedit/velocity.h b/muse_qt4_evolution/muse/midiedit/velocity.h
new file mode 100644
index 00000000..2ac4e700
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/velocity.h
@@ -0,0 +1,62 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __VELOCITY_H__
+#define __VELOCITY_H__
+
+#include "ui_velocity.h"
+#include "midicmd.h"
+
+//---------------------------------------------------------
+// Velocity
+//---------------------------------------------------------
+
+class Velocity : public MidiCmdDialog {
+ Q_OBJECT
+
+ Ui::VelocityBase velo;
+ int _rateVal;
+ int _offsetVal;
+
+ protected slots:
+ void accept();
+
+ public:
+ Velocity(QWidget* parent = 0);
+ int rateVal() const { return _rateVal; }
+ int offsetVal() const { return _offsetVal; }
+ };
+
+//---------------------------------------------------------
+// ModifyVelocityCmd
+//---------------------------------------------------------
+
+class ModifyVelocityCmd : public MidiCmd
+ {
+ Velocity* dialog;
+ virtual MidiCmdDialog* guiDialog();
+ virtual void process(CItemList* items);
+
+ public:
+ ModifyVelocityCmd(MidiEditor* e);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiedit/velocity.ui b/muse_qt4_evolution/muse/midiedit/velocity.ui
new file mode 100644
index 00000000..342611c0
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiedit/velocity.ui
@@ -0,0 +1,86 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>VelocityBase</class>
+ <widget class="QWidget" name="VelocityBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>275</width>
+ <height>335</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Modify Velocity</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBox3" >
+ <property name="title" >
+ <string>Values</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel4" >
+ <property name="text" >
+ <string>Offset:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="rate" >
+ <property name="suffix" >
+ <string>%</string>
+ </property>
+ <property name="maximum" >
+ <number>200</number>
+ </property>
+ <property name="value" >
+ <number>100</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="offset" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/midievent.cpp b/muse_qt4_evolution/muse/midievent.cpp
new file mode 100644
index 00000000..80fd30a8
--- /dev/null
+++ b/muse_qt4_evolution/muse/midievent.cpp
@@ -0,0 +1,129 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midievent.h"
+
+#include "helper.h"
+#include "event.h"
+#include "midictrl.h"
+#include "muse/midi.h"
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+MidiEvent::MidiEvent(unsigned t, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ edata.setData(data, len);
+ _type = tpe;
+ }
+
+MidiEvent::MidiEvent(unsigned tick, int channel, const Event& e)
+ {
+ setChannel(channel);
+ setTime(tick);
+ switch(e.type()) {
+ case Note:
+ setType(ME_NOTEON);
+ setA(e.dataA());
+ setB(e.dataB());
+ break;
+ case Controller:
+ setType(ME_CONTROLLER);
+ setA(e.dataA()); // controller number
+ setB(e.dataB()); // controller value
+ break;
+ case PAfter:
+ setType(ME_POLYAFTER);
+ setA(e.dataA());
+ setB(e.dataB());
+ break;
+ case CAfter:
+ setType(ME_AFTERTOUCH);
+ setA(e.dataA());
+ setB(0);
+ break;
+ case Sysex:
+ setType(ME_SYSEX);
+ setData(e.eventData());
+ break;
+ default:
+ printf("MEvent::MEvent(): event type %d not implemented\n",
+ type());
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void MidiEvent::dump() const
+ {
+ printf("chan:%d ", _channel+1);
+ if (_type == ME_NOTEON) {
+ QString s = pitch2string(_a);
+ printf("NoteOn %3s(0x%02x) %3d\n", s.toLatin1().data(), _a, _b);
+ }
+ else if (_type == ME_NOTEOFF) {
+ QString s = pitch2string(_a);
+ printf("NoteOff %3s(0x%02x) %3d\n", s.toLatin1().data(), _a, _b);
+ }
+ else if (_type == ME_SYSEX) {
+ printf("SysEx len %d ", len());
+ int n = len() < 7 ? len() : 7;
+ unsigned char* p = data();
+ for (int i = 0; i < n; ++i)
+ printf("%02x ", *p++);
+ printf("\n");
+ }
+ else if (_type == ME_CONTROLLER)
+ printf("Ctrl %d(0x%02x) %d(0x%02x)\n", _a, _a, _b, _b);
+ else if (_type == ME_PROGRAM)
+ printf("Prog %d(0x%02x)\n", _a, _a);
+ else if (_type == ME_AFTERTOUCH)
+ printf("Aftertouch %d\n", _a);
+ else if (_type == ME_PITCHBEND)
+ printf("PitchBend %d\n", _a);
+ else
+ printf("type:0x%02x a=%d(0x%02x) b=%d(0x%02x)\n", _type, _a, _a, _b, _b);
+ }
+
+//---------------------------------------------------------
+// operator <
+//---------------------------------------------------------
+
+bool MidiEvent::operator<(const MidiEvent& e) const
+ {
+ if (time() != e.time())
+ return time() < e.time();
+
+ // play note off events first to prevent overlapping
+ // notes
+
+ if (channel() == e.channel())
+ return type() == ME_NOTEOFF
+ || (type() == ME_NOTEON && dataB() == 0);
+
+ int map[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 13, 14, 15 };
+ return map[channel()] < map[e.channel()];
+ }
+
diff --git a/muse_qt4_evolution/muse/midievent.h b/muse_qt4_evolution/muse/midievent.h
new file mode 100644
index 00000000..780c7ce6
--- /dev/null
+++ b/muse_qt4_evolution/muse/midievent.h
@@ -0,0 +1,100 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIEVENT_H__
+#define __MIDIEVENT_H__
+
+#include <set>
+#include "evdata.h"
+
+#include "midi.h"
+
+class Event;
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+class MidiEvent {
+ unsigned _time;
+ EvData edata;
+ unsigned char _channel, _type;
+ int _a, _b;
+
+ public:
+ MidiEvent() {}
+ MidiEvent(unsigned tm, int c, int t, int a, int b)
+ : _time(tm), _channel(c & 0xf), _type(t), _a(a), _b(b) {}
+ MidiEvent(unsigned t, int type, const unsigned char* data, int len);
+ MidiEvent(unsigned t, int tpe, EvData d) : _time(t), edata(d), _type(tpe) {}
+ MidiEvent(unsigned t, int channel, const Event& e);
+
+ ~MidiEvent() {}
+
+ MidiEvent& operator=(const MidiEvent& ed) {
+ _time = ed._time;
+ edata = ed.edata;
+ _channel = ed._channel;
+ _type = ed._type;
+ _a = ed._a;
+ _b = ed._b;
+ return *this;
+ }
+
+ int channel() const { return _channel; }
+ int type() const { return _type; }
+ int dataA() const { return _a; }
+ int dataB() const { return _b; }
+ unsigned time() const { return _time; }
+
+ void setChannel(int val) { _channel = val; }
+ void setType(int val) { _type = val; }
+ void setA(int val) { _a = val; }
+ void setB(int val) { _b = val; }
+ void setTime(unsigned val) { _time = val; }
+
+ const EvData& eventData() const { return edata; }
+ unsigned char* data() const { return edata.data; }
+ int len() const { return edata.dataLen; }
+ void setData(const EvData& e) { edata = e; }
+ void setData(const unsigned char* p, int len) { edata.setData(p, len); }
+ void dump() const;
+ bool isNote() const { return _type == ME_NOTEON; }
+ bool isNoteOff() const { return (_type == ME_NOTEOFF)||(_type == ME_NOTEON && _b == 0); }
+ bool operator<(const MidiEvent&) const;
+ };
+
+//---------------------------------------------------------
+// MidiEventList
+//---------------------------------------------------------
+
+// typedef std::multiset<MidiEvent, std::less<MidiEvent>,
+// __gnu_cxx::__mt_alloc<MidiEvent> > MPEL;
+
+class MidiEventList : public std::multiset<MidiEvent, std::less<MidiEvent> >
+ {
+ public:
+ };
+
+typedef MidiEventList::iterator iMidiEvent;
+typedef MidiEventList::const_iterator ciMidiEvent;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midieventbase.cpp b/muse_qt4_evolution/muse/midieventbase.cpp
new file mode 100644
index 00000000..2e3f371c
--- /dev/null
+++ b/muse_qt4_evolution/muse/midieventbase.cpp
@@ -0,0 +1,159 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "event.h"
+#include "midieventbase.h"
+#include "al/xml.h"
+#include "midievent.h"
+#include "midictrl.h"
+#include "muse.h"
+
+//---------------------------------------------------------
+// MidiEventBase
+//---------------------------------------------------------
+
+MidiEventBase::MidiEventBase(EventType t)
+ : EventBase(t)
+ {
+ a = 0;
+ b = 0;
+ c = 0;
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::mid
+//---------------------------------------------------------
+
+EventBase* MidiEventBase::mid(unsigned b, unsigned e)
+ {
+ if (tick() < b || tick() >= e)
+ return 0;
+ return new MidiEventBase(*this);
+ }
+
+//---------------------------------------------------------
+// isNoteOff
+//---------------------------------------------------------
+
+bool MidiEventBase::isNoteOff() const
+ {
+ return (type() == Note && (velo() == 0));
+ }
+
+bool MidiEventBase::isNoteOff(const Event& e) const
+ {
+ return (e.isNoteOff() && (e.pitch() == a));
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void MidiEventBase::dump(int n) const
+ {
+ EventBase::dump(n);
+ QString p = eventTypeName();
+ QString s;
+ s.sprintf("%s<%s> a:0x%x(%d) b:0x%x(%d)\n",
+ QString(n+2, ' ').toLocal8Bit().data(), p.toLocal8Bit().data(), a, a, b, b);
+ printf("%s\n", s.toLocal8Bit().data());
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::write
+//---------------------------------------------------------
+
+void MidiEventBase::write(Xml& xml, const Pos& offset) const
+ {
+ QString s = QString("event tick=\"%1\"").arg(tick() + offset.tick());
+
+ switch (type()) {
+ case Note:
+ s += QString(" len=\"%1\"").arg(lenTick());
+ break;
+ default:
+ s += QString(" type=\"%1\"").arg(type());
+ break;
+ }
+ if (edata.dataLen) {
+ s += QString(" datalen=\"%1\"").arg(edata.dataLen);
+ xml.stag(s);
+ xml.dump(edata.dataLen, edata.data);
+ xml.etag("event");
+ }
+ else {
+ if (a)
+ s += QString(" a=\"%1\"").arg(a);
+ if (b)
+ s += QString(" b=\"%1\"").arg(b);
+ if (c)
+ s += QString(" b=\"%1\"").arg(c);
+ xml.tagE(s);
+ }
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::read
+//---------------------------------------------------------
+
+void MidiEventBase::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ setTick(e.attribute("tick","0").toInt());
+ setType(EventType(e.attribute("type","0").toInt()));
+ setLenTick(e.attribute("len","0").toInt());
+ a = e.attribute("a","0").toInt();
+ b = e.attribute("b","0").toInt();
+ c = e.attribute("c","0").toInt();
+ int dataLen = e.attribute("datalen","0").toInt();
+
+ if (dataLen) {
+ QStringList l = e.text().simplified().split(" ", QString::SkipEmptyParts);
+ if (dataLen != l.size()) {
+ printf("error converting init string <%s>\n", e.text().toLatin1().data());
+ }
+ edata.data = new unsigned char[dataLen];
+ edata.dataLen = dataLen;
+ unsigned char* d = edata.data;
+ int numberBase = 16;
+ for (int i = 0; i < l.size(); ++i) {
+ bool ok;
+ *d++ = l.at(i).toInt(&ok, numberBase);
+ if (!ok)
+ printf("error converting data val <%s>\n", l.at(i).toLatin1().data());
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::operator==
+//---------------------------------------------------------
+
+bool MidiEventBase::operator==(const EventBase& ev) const {
+ const MidiEventBase* pev = dynamic_cast<const MidiEventBase*>(&ev);
+
+ if(pev) return operator==(*pev);
+ else return false;
+}
+
+bool MidiEventBase::operator==(const MidiEventBase& ev) const {
+ return (ev.a==a && ev.b==b && ev.c==c && ev.edata==edata
+ && PosLen::operator==((const PosLen&)ev));
+}
diff --git a/muse_qt4_evolution/muse/midieventbase.h b/muse_qt4_evolution/muse/midieventbase.h
new file mode 100644
index 00000000..64a8269c
--- /dev/null
+++ b/muse_qt4_evolution/muse/midieventbase.h
@@ -0,0 +1,76 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDI_EVENT_BASE_H__
+#define __MIDI_EVENT_BASE_H__
+
+#include "eventbase.h"
+
+//---------------------------------------------------------
+// MidiEventBase
+//---------------------------------------------------------
+
+class MidiEventBase : public EventBase {
+ int a, b, c; // pitch, velo-on, velo-off
+ EvData edata;
+
+ virtual EventBase* clone() const { return new MidiEventBase(*this); }
+
+ public:
+ MidiEventBase(EventType t);
+ virtual ~MidiEventBase() {}
+
+ virtual bool isNote() const { return type() == Note; }
+ virtual bool isNoteOff() const;
+ virtual bool isNoteOff(const Event&) const;
+ virtual int pitch() const { return a; }
+ virtual int program() const { return a; }
+ virtual int cntrl() const { return a; }
+ virtual int dataA() const { return a; }
+ virtual void setA(int val) { a = val; }
+ virtual void setPitch(int v) { a = v; }
+
+ virtual int cntrlVal() const { return b; }
+ virtual int dataB() const { return b; }
+ virtual int velo() const { return b; }
+ virtual void setB(int val) { b = val; }
+ virtual void setVelo(int v) { b = v; }
+
+ virtual int veloOff() const { return c; }
+ virtual int dataC() const { return c; }
+ virtual void setC(int val) { c = val; }
+ virtual void setVeloOff(int v) { c = v; }
+
+ virtual const unsigned char* data() const { return edata.data; }
+ virtual int dataLen() const { return edata.dataLen; }
+ virtual void setData(const unsigned char* data, int len) { edata.setData(data, len); }
+ virtual const EvData eventData() const { return edata; }
+
+ virtual void dump(int n = 0) const;
+ virtual void read(QDomNode);
+ virtual void write(Xml&, const Pos& offset) const;
+ virtual EventBase* mid(unsigned, unsigned);
+
+ virtual bool operator==(const EventBase&) const;
+ virtual bool operator==(const MidiEventBase&) const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midififo.cpp b/muse_qt4_evolution/muse/midififo.cpp
new file mode 100644
index 00000000..f68afd83
--- /dev/null
+++ b/muse_qt4_evolution/muse/midififo.cpp
@@ -0,0 +1,103 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midififo.h"
+
+//---------------------------------------------------------
+// put
+// return true on fifo overflow
+//---------------------------------------------------------
+
+bool MidiFifo::put(const MidiEvent& event)
+ {
+ if (size < MIDI_FIFO_SIZE) {
+ fifo[wIndex] = event;
+ wIndex = (wIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_increment(&size);
+ ++size;
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// get
+//---------------------------------------------------------
+
+MidiEvent MidiFifo::get()
+ {
+ MidiEvent event(fifo[rIndex]);
+ rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ return event;
+ }
+
+//---------------------------------------------------------
+// peek
+//---------------------------------------------------------
+
+const MidiEvent& MidiFifo::peek(int n)
+ {
+ int idx = (rIndex + n) % MIDI_FIFO_SIZE;
+ return fifo[idx];
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void MidiFifo::remove()
+ {
+ rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ }
+
+//---------------------------------------------------------
+// put
+// return true on fifo overflow
+//---------------------------------------------------------
+
+bool MidiOutFifo::put(const MidiOutEvent& event)
+ {
+ if (size < MIDI_FIFO_SIZE) {
+ fifo[wIndex] = event;
+ wIndex = (wIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_increment(&size);
+ ++size;
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// get
+//---------------------------------------------------------
+
+MidiOutEvent MidiOutFifo::get()
+ {
+ MidiOutEvent event(fifo[rIndex]);
+ rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ return event;
+ }
+
diff --git a/muse_qt4_evolution/muse/midififo.h b/muse_qt4_evolution/muse/midififo.h
new file mode 100644
index 00000000..e2342feb
--- /dev/null
+++ b/muse_qt4_evolution/muse/midififo.h
@@ -0,0 +1,92 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIFIFO_H__
+#define __MIDIFIFO_H__
+
+#include "midievent.h"
+#include "port.h"
+
+#define MIDI_FIFO_SIZE 512
+
+//---------------------------------------------------------
+// MidiFifo
+//---------------------------------------------------------
+
+class MidiFifo {
+ MidiEvent fifo[MIDI_FIFO_SIZE];
+ volatile int size;
+ int wIndex;
+ int rIndex;
+
+ public:
+ MidiFifo() { clear(); }
+ bool put(const MidiEvent& event); // returns true on fifo overflow
+ MidiEvent get();
+ const MidiEvent& peek(int n = 0);
+ void remove();
+ bool isEmpty() const { return size == 0; }
+ void clear() { size = 0, wIndex = 0, rIndex = 0; }
+ int getSize() const { return size; }
+ };
+
+//---------------------------------------------------------
+// MidiOutEvent
+//---------------------------------------------------------
+
+struct MidiOutEvent {
+ Port port;
+ MidiEvent event;
+
+ MidiOutEvent() {}
+ MidiOutEvent(const Port& p, const MidiEvent& e)
+ : port(p), event(e) {}
+ bool operator<(const MidiOutEvent& e) const {
+ if (port == e.port)
+ return event < e.event;
+ return event < e.event;
+ }
+ };
+
+typedef std::multiset<MidiOutEvent, std::less<MidiOutEvent> > MidiOutEventList;
+typedef MidiOutEventList::iterator iMidiOutEvent;
+typedef MidiOutEventList::const_iterator ciMidiOutEvent;
+
+//---------------------------------------------------------
+// MidiOutFifo
+//---------------------------------------------------------
+
+class MidiOutFifo {
+ MidiOutEvent fifo[MIDI_FIFO_SIZE];
+ volatile int size;
+ int wIndex;
+ int rIndex;
+
+ public:
+ MidiOutFifo() { clear(); }
+ bool put(const MidiOutEvent& event); // returns true on fifo overflow
+ MidiOutEvent get();
+ bool isEmpty() const { return size == 0; }
+ void clear() { size = 0, wIndex = 0, rIndex = 0; }
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midifile.cpp b/muse_qt4_evolution/muse/midifile.cpp
new file mode 100644
index 00000000..c45c57d2
--- /dev/null
+++ b/muse_qt4_evolution/muse/midifile.cpp
@@ -0,0 +1,673 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "midi.h"
+#include "midifile.h"
+#include "midiedit/drummap.h"
+#include "event.h"
+#include "globals.h"
+#include "midictrl.h"
+#include "midictrl.h"
+#include "midievent.h"
+#include "gconfig.h"
+
+const char* errString[] = {
+ "no Error",
+ "unexpected EOF",
+ "read Error",
+ "write Error",
+ "bad midifile: 'MTrk' expected",
+ "bad midifile: 'MThd' expected",
+ "bad midi fileformat",
+ };
+
+enum ERROR {
+ MF_NO_ERROR,
+ MF_EOF,
+ MF_READ,
+ MF_WRITE,
+ MF_MTRK,
+ MF_MTHD,
+ MF_FORMAT,
+ };
+
+//---------------------------------------------------------
+// error
+//---------------------------------------------------------
+
+QString MidiFile::error()
+ {
+ return QString(errString[_error]);
+ }
+
+//---------------------------------------------------------
+// MidiFile
+//---------------------------------------------------------
+
+MidiFile::MidiFile()
+ {
+ fp = 0;
+ curPos = 0;
+ _error = MF_NO_ERROR;
+ _tracks = new MidiFileTrackList;
+ _midiType = MT_GENERIC;
+ }
+
+MidiFile::~MidiFile()
+ {
+ delete _tracks;
+ }
+
+//---------------------------------------------------------
+// read
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::read(void* p, size_t len)
+ {
+ for (;;) {
+ curPos += len;
+ qint64 rv = fp->read((char*)p, len);
+ if (rv == len)
+ return false;
+ if (fp->atEnd()) {
+ _error = MF_EOF;
+ return true;
+ }
+ _error = MF_READ;
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// write
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::write(const void* p, size_t len)
+ {
+ qint64 rv = fp->write((char*)p, len);
+ if (rv == len)
+ return false;
+ _error = MF_WRITE;
+ return true;
+ }
+
+//---------------------------------------------------------
+// writeShort
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::writeShort(int i)
+ {
+ short format = BE_SHORT(i);
+ return write(&format, 2);
+ }
+
+//---------------------------------------------------------
+// writeLong
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::writeLong(int i)
+ {
+ int format = BE_LONG(i);
+ return write(&format, 4);
+ }
+
+//---------------------------------------------------------
+// readShort
+//---------------------------------------------------------
+
+int MidiFile::readShort()
+ {
+ short format;
+ read(&format, 2);
+ return BE_SHORT(format);
+ }
+
+//---------------------------------------------------------
+// readLong
+// writeLong
+//---------------------------------------------------------
+
+int MidiFile::readLong()
+ {
+ int format;
+ read(&format, 4);
+ return BE_LONG(format);
+ }
+
+/*---------------------------------------------------------
+ * skip
+ * This is meant for skipping a few bytes in a
+ * file or fifo.
+ *---------------------------------------------------------*/
+
+bool MidiFile::skip(size_t len)
+ {
+ char tmp[len];
+ return read(tmp, len);
+ }
+
+/*---------------------------------------------------------
+ * getvl
+ * Read variable-length number (7 bits per byte, MSB first)
+ *---------------------------------------------------------*/
+
+int MidiFile::getvl()
+ {
+ int l = 0;
+ for (int i = 0; i < 16; i++) {
+ uchar c;
+ if (read(&c, 1))
+ return -1;
+ l += (c & 0x7f);
+ if (!(c & 0x80))
+ return l;
+ l <<= 7;
+ }
+ return -1;
+ }
+
+/*---------------------------------------------------------
+ * putvl
+ * Write variable-length number (7 bits per byte, MSB first)
+ *---------------------------------------------------------*/
+
+void MidiFile::putvl(unsigned val)
+ {
+ unsigned long buf = val & 0x7f;
+ while ((val >>= 7) > 0) {
+ buf <<= 8;
+ buf |= 0x80;
+ buf += (val & 0x7f);
+ }
+ for (;;) {
+ put(buf);
+ if (buf & 0x80)
+ buf >>= 8;
+ else
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// readTrack
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::readTrack(MidiFileTrack* t)
+ {
+ MidiEventList* el = &(t->events);
+ char tmp[4];
+ if (read(tmp, 4))
+ return true;
+ if (memcmp(tmp, "MTrk", 4)) {
+ _error = MF_MTRK;
+ return true;
+ }
+ int len = readLong(); // len
+ int endPos = curPos + len;
+ status = -1;
+ sstatus = -1; // running status, not reset scanning meta or sysex
+ click = 0;
+
+ int port = 0;
+ int channel = 0;
+
+ for (;;) {
+ MidiEvent event;
+ lastport = -1;
+ lastchannel = -1;
+
+ int rv = readEvent(&event, t);
+ if (lastport != -1)
+ port = lastport;
+ if (lastchannel != -1) {
+ channel = lastchannel;
+ if (channel >= MIDI_CHANNELS) {
+ printf("channel %d >= %d, reset to 0\n", port, MIDI_CHANNELS);
+ channel = 0;
+ }
+ }
+ if (rv == 0)
+ break;
+ else if (rv == -1)
+ continue;
+ else if (rv == -2) // error
+ return true;
+
+//TODO3 event.setPort(port);
+ if (event.type() == ME_SYSEX || event.type() == ME_META)
+ event.setChannel(channel);
+ else
+ channel = event.channel();
+ el->insert(event);
+ }
+ int end = curPos;
+ if (end != endPos) {
+ printf("MidiFile::readTrack(): TRACKLEN does not fit %d+%d != %d, %d too much\n",
+ endPos-len, len, end, endPos-end);
+ if (end < endPos)
+ skip(endPos - end);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// readEvent
+// returns:
+// 0 End of track
+// -1 Event filtered
+// -2 Error
+//---------------------------------------------------------
+
+int MidiFile::readEvent(MidiEvent* event, MidiFileTrack* t)
+ {
+ uchar me, type, a, b;
+
+ int nclick = getvl();
+ if (nclick == -1) {
+ printf("readEvent: error 1\n");
+ return 0;
+ }
+ click += nclick;
+ for (;;) {
+ if (read(&me, 1)) {
+ printf("readEvent: error 2\n");
+ return 0;
+ }
+ if (me >= 0xf8 && me <= 0xfe)
+ printf("Midi: Real Time Message 0x%02x??\n", me & 0xff);
+ else
+ break;
+ }
+
+ event->setTime(click);
+ int len;
+ unsigned char* buffer;
+
+ if ((me & 0xf0) == 0xf0) {
+ if (me == 0xf0 || me == 0xf7) {
+ //
+ // SYSEX
+ //
+ status = -1; // no running status
+ len = getvl();
+ if (len == -1) {
+ printf("readEvent: error 3\n");
+ return -2;
+ }
+ buffer = new unsigned char[len];
+ if (read(buffer, len)) {
+ printf("readEvent: error 4\n");
+ delete[] buffer;
+ return -2;
+ }
+ if (buffer[len-1] != 0xf7) {
+ printf("SYSEX endet nicht mit 0xf7!\n");
+ // Forstsetzung folgt?
+ }
+ else
+ --len; // don't count 0xf7
+ event->setType(ME_SYSEX);
+ event->setData(buffer, len);
+
+ if ((len == (signed)gmOnMsgLen) && memcmp(buffer, gmOnMsg, gmOnMsgLen) == 0)
+ _midiType = MT_GM;
+ else if ((len == (signed)gsOnMsgLen) && memcmp(buffer, gsOnMsg, gsOnMsgLen) == 0)
+ _midiType = MT_GS;
+
+ if (buffer[0] == 0x43) { // Yamaha
+ _midiType = MT_XG;
+ int type = buffer[1] & 0xf0;
+ switch (type) {
+ case 0x00: // bulk dump
+ buffer[1] = 0;
+ break;
+ case 0x10:
+ if (buffer[1] != 0x10) {
+ buffer[1] = 0x10; // fix to Device 1
+ }
+ if (len == 7 && buffer[2] == 0x4c && buffer[3] == 0x08 && buffer[5] == 7) {
+ // part mode
+ // 0 - normal
+ // 1 - DRUM
+ // 2 - DRUM 1
+ // 3 - DRUM 2
+ // 4 - DRUM 3
+ // 5 - DRUM 4
+ printf("xg set part mode channel %d to %d\n", buffer[4]+1, buffer[6]);
+ if (buffer[6] != 0)
+ t->isDrumTrack = true;
+ }
+ break;
+ case 0x20:
+ printf("YAMAHA DUMP REQUEST\n");
+ return -1;
+ case 0x30:
+ printf("YAMAHA PARAMETER REQUEST\n");
+ return -1;
+ default:
+ printf("YAMAHA unknown SYSEX: data[2]=%02x\n", buffer[1]);
+ return -1;
+ }
+ }
+ else if (buffer[0] == 0x43) {
+ if (_midiType != MT_XG)
+ _midiType = MT_GS;
+ }
+
+ return 3;
+ }
+ if (me == 0xff) {
+ //
+ // META
+ //
+ status = -1; // no running status
+ if (read(&type, 1)) { // read type
+ printf("readEvent: error 5\n");
+ return -2;
+ }
+ len = getvl(); // read len
+ if (len == -1) {
+ printf("readEvent: error 6\n");
+ return -2;
+ }
+ buffer = new unsigned char[len+1];
+ *buffer = 0;
+ if (len) {
+ if (read(buffer, len)) {
+ printf("readEvent: error 7\n");
+ delete[] buffer;
+ return -2;
+ }
+ buffer[len] = 0;
+ }
+ event->setType(ME_META);
+ event->setData(buffer, len+1);
+ event->setA(type);
+ buffer[len] = 0;
+ switch(type) {
+ case 0x21: // switch port
+ lastport = buffer[0];
+ return 3;
+ case 0x20: // switch channel
+ lastchannel = buffer[0];
+ return 3;
+ case 0x2f: // End of Track
+ delete[] buffer;
+ return 0;
+ default:
+ return 3;
+ }
+ }
+ else {
+ printf("Midi: unknown Message 0x%02x\n", me & 0xff);
+ return -1;
+ }
+ }
+
+ if (me & 0x80) { // status byte
+ status = me;
+ sstatus = status;
+ if (read(&a, 1)) {
+ printf("readEvent: error 9\n");
+ return -2;
+ }
+ a &= 0x7F;
+ }
+ else {
+ if (status == -1) {
+ // Meta events and sysex events cancel running status.
+ // There are some midi files which do not send
+ // status again after this events. Silently assume
+ // old running status.
+
+ if (debugMsg || sstatus == -1)
+ printf("readEvent: no running status, read 0x%02x, old status 0x%02x\n", me, sstatus);
+ if (sstatus == -1)
+ return -1;
+ status = sstatus;
+ }
+ a = me;
+ }
+ b = 0;
+ switch (status & 0xf0) {
+ case ME_NOTEOFF:
+ case ME_NOTEON:
+ case ME_POLYAFTER:
+ case ME_CONTROLLER:
+ case ME_PITCHBEND:
+ if (read(&b, 1)) {
+ printf("readEvent: error 15\n");
+ return -2;
+ }
+ event->setB(b & 0x80 ? 0 : b);
+ break;
+ case ME_PROGRAM:
+ case ME_AFTERTOUCH:
+ break;
+ default: // f1 f2 f3 f4 f5 f6 f7 f8 f9
+ printf("BAD STATUS 0x%02x, me 0x%02x\n", status, me);
+ return -2;
+ }
+ event->setA(a & 0x7f);
+ event->setType(status & 0xf0);
+ event->setChannel(status & 0xf);
+ if ((a & 0x80) || (b & 0x80)) {
+ printf("8'tes Bit in Daten(%02x %02x): tick %d read 0x%02x status:0x%02x\n",
+ a & 0xff, b & 0xff, click, me, status);
+ printf("readEvent: error 16\n");
+ if (b & 0x80) {
+ // Try to fix: interpret as channel byte
+ status = b & 0xf0;
+ sstatus = status;
+ return 3;
+ }
+ return -1;
+ }
+ if (event->type() == ME_PITCHBEND) {
+ int val = (event->dataB() << 7) + event->dataA();
+ val -= 8192;
+ event->setA(val);
+ }
+ return 3;
+ }
+
+//---------------------------------------------------------
+// writeTrack
+//---------------------------------------------------------
+
+bool MidiFile::writeTrack(const MidiFileTrack* t)
+ {
+ const MidiEventList* events = &(t->events);
+ write("MTrk", 4);
+ int lenpos = fp->pos();
+ writeLong(0); // dummy len
+
+ status = -1;
+ int tick = 0;
+ for (iMidiEvent i = events->begin(); i != events->end(); ++i) {
+ int ntick = i->time();
+ if (ntick < tick) {
+ printf("MidiFile::writeTrack: ntick %d < tick %d\n", ntick, tick);
+ ntick = tick;
+ }
+ putvl(((ntick - tick) * config.midiDivision + config.division/2)/config.division);
+ tick = ntick;
+ writeEvent(&(*i));
+ }
+
+ //---------------------------------------------------
+ // write "End Of Track" Meta
+ // write Track Len
+ //
+
+ putvl(0);
+ put(0xff); // Meta
+ put(0x2f); // EOT
+ putvl(0); // len 0
+ int endpos = fp->pos();
+ fp->seek(lenpos);
+ writeLong(endpos-lenpos-4); // tracklen
+ fp->seek(endpos);
+ return false;
+ }
+
+//---------------------------------------------------------
+// writeEvent
+//---------------------------------------------------------
+
+void MidiFile::writeEvent(const MidiEvent* event)
+ {
+ int c = event->channel();
+ int nstat = event->type();
+
+ // we dont save meta data into smf type 0 files:
+
+ if (config.smfFormat == 0 && nstat == ME_META)
+ return;
+
+ nstat |= c;
+ //
+ // running status; except for Sysex- and Meta Events
+ //
+ if (((nstat & 0xf0) != 0xf0) && (nstat != status)) {
+ status = nstat;
+ put(nstat);
+ }
+ switch (event->type()) {
+ case ME_NOTEOFF:
+ case ME_NOTEON:
+ case ME_POLYAFTER:
+ case ME_CONTROLLER:
+ case ME_PITCHBEND:
+ put(event->dataA());
+ put(event->dataB());
+ break;
+ case ME_PROGRAM: // Program Change
+ case ME_AFTERTOUCH: // Channel Aftertouch
+ put(event->dataA());
+ break;
+ case ME_SYSEX:
+ put(0xf0);
+ putvl(event->len() + 1); // including 0xf7
+ write(event->data(), event->len());
+ put(0xf7);
+ status = -1; // invalidate running status
+ break;
+ case ME_META:
+ put(0xff);
+ put(event->dataA());
+ putvl(event->len());
+ write(event->data(), event->len());
+ status = -1;
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// write
+// returns true on error
+//---------------------------------------------------------
+
+bool MidiFile::write(QFile* _fp)
+ {
+ fp = _fp;
+ write("MThd", 4);
+ writeLong(6); // header len
+ writeShort(format);
+ if (format == 0) {
+ // ?? writeShort(1);
+ MidiFileTrack dst;
+ for (iMidiFileTrack i = _tracks->begin(); i != _tracks->end(); ++i) {
+ MidiEventList* sl = &((*i)->events);
+ for (iMidiEvent ie = sl->begin(); ie != sl->end(); ++ie)
+ dst.events.insert(*ie);
+ }
+ writeShort(1);
+ writeShort(_division);
+ writeTrack(&dst);
+ }
+ else {
+ writeShort(_tracks->size());
+ writeShort(_division);
+ for (ciMidiFileTrack i = _tracks->begin(); i != _tracks->end(); ++i)
+ writeTrack(*i);
+ }
+ return false; // (ferror(fp) != 0);
+ }
+
+//---------------------------------------------------------
+// readMidi
+// returns true on error
+//---------------------------------------------------------
+
+bool MidiFile::read(QFile* _fp)
+ {
+ fp = _fp;
+ _error = MF_NO_ERROR;
+ int i;
+ char tmp[4];
+
+ if (read(tmp, 4))
+ return true;
+ int len = readLong();
+ if (memcmp(tmp, "MThd", 4) || len < 6) {
+ _error = MF_MTHD;
+ return true;
+ }
+ format = readShort();
+ ntracks = readShort();
+ _division = readShort();
+
+ if (_division < 0)
+ _division = (-(_division/256)) * (_division & 0xff);
+ if (len > 6)
+ skip(len-6); // skip excess bytes
+
+ switch (format) {
+ case 0:
+ {
+ MidiFileTrack* t = new MidiFileTrack;
+ _tracks->push_back(t);
+ if (readTrack(t))
+ return true;
+ }
+ break;
+ case 1:
+ for (i = 0; i < ntracks; i++) {
+ MidiFileTrack* t = new MidiFileTrack;
+ _tracks->push_back(t);
+ if (readTrack(t))
+ return true;
+ }
+ break;
+ default:
+ _error = MF_FORMAT;
+ return true;
+ }
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/muse/midifile.h b/muse_qt4_evolution/muse/midifile.h
new file mode 100644
index 00000000..dd51a7d3
--- /dev/null
+++ b/muse_qt4_evolution/muse/midifile.h
@@ -0,0 +1,121 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIFILE_H__
+#define __MIDIFILE_H__
+
+#include "globaldefs.h"
+#include "midievent.h"
+
+struct MidiEventList;
+class MidiEvent;
+
+//---------------------------------------------------------
+// MidiFileTrack
+//---------------------------------------------------------
+
+struct MidiFileTrack {
+ MidiEventList events;
+ bool isDrumTrack;
+ MidiFileTrack() {
+ isDrumTrack = false;
+ }
+ };
+
+typedef std::list<MidiFileTrack*> MidiFileTrackList;
+typedef MidiFileTrackList::iterator iMidiFileTrack;
+typedef MidiFileTrackList::const_iterator ciMidiFileTrack;
+
+//---------------------------------------------------------
+// MidiFile
+//---------------------------------------------------------
+
+class MidiFile {
+ int _error;
+ int format; // smf file format
+ int ntracks; // number of midi tracks
+ int _division;
+ MidiInstrumentType _midiType;
+ MidiFileTrackList* _tracks;
+
+ int status, click;
+ int sstatus;
+ int lastport, lastchannel;
+ QFile* fp;
+ int curPos;
+
+ bool read(void*, size_t);
+ bool write(const void*, size_t);
+ void put(unsigned char c) { write(&c, 1); }
+ bool skip(size_t);
+ int readShort();
+ bool writeShort(int);
+ int readLong();
+ bool writeLong(int);
+ int getvl();
+ void putvl(unsigned);
+
+ bool readTrack(MidiFileTrack*);
+ bool writeTrack(const MidiFileTrack*);
+
+ int readEvent(MidiEvent*, MidiFileTrack*);
+ void writeEvent(const MidiEvent*);
+
+ public:
+ MidiFile();
+ ~MidiFile();
+ bool read(QFile* f);
+ bool write(QFile* f);
+ QString error();
+ MidiFileTrackList* trackList() { return _tracks; }
+ int tracks() const { return ntracks; }
+ void setTrackList(MidiFileTrackList* tr) {
+ _tracks = tr;
+ }
+ void setDivision(int d) { _division = d; }
+ int division() const { return _division; }
+ void setFormat(int val) { format = val; }
+ MidiInstrumentType midiType() const { return _midiType; }
+ };
+
+#define XCHG_SHORT(x) ((((x)&0xFF)<<8) | (((x)>>8)&0xFF))
+#ifdef __i486__
+#define XCHG_LONG(x) \
+ ({ int __value; \
+ asm ("bswap %1; movl %1,%0" : "=g" (__value) : "r" (x)); \
+ __value; })
+#else
+#define XCHG_LONG(x) ((((x)&0xFF)<<24) | \
+ (((x)&0xFF00)<<8) | \
+ (((x)&0xFF0000)>>8) | \
+ (((x)>>24)&0xFF))
+#endif
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define BE_SHORT(x) XCHG_SHORT(x)
+#define BE_LONG(x) XCHG_LONG(x)
+#else
+#define BE_SHORT(x) x
+#define BE_LONG(x) x
+#endif
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiinport.cpp b/muse_qt4_evolution/muse/midiinport.cpp
new file mode 100644
index 00000000..afe53876
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiinport.cpp
@@ -0,0 +1,241 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "midiplugin.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "al/xml.h"
+#include "audiodev.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "midiinport.h"
+#include "jackaudio.h"
+
+//---------------------------------------------------------
+// MidiInPort
+//---------------------------------------------------------
+
+MidiInPort::MidiInPort()
+ : MidiTrackBase()
+ {
+ _channels = 1;
+ for (int i = 0; i < MIDI_CHANNELS; ++i)
+ activity[i] = 0;
+ }
+
+//---------------------------------------------------------
+// MidiInPort
+//---------------------------------------------------------
+
+MidiInPort::~MidiInPort()
+ {
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void MidiInPort::setName(const QString& s)
+ {
+ Track::setName(s);
+ if (!jackPort(0).isZero())
+ audioDriver->setPortName(jackPort(), s);
+ }
+
+//---------------------------------------------------------
+// MidiInPort::write
+//---------------------------------------------------------
+
+void MidiInPort::write(Xml& xml) const
+ {
+ xml.stag("MidiInPort");
+ MidiTrackBase::writeProperties(xml);
+ xml.etag("MidiInPort");
+ }
+
+//---------------------------------------------------------
+// MidiInPort::read
+//---------------------------------------------------------
+
+void MidiInPort::read(QDomNode node)
+ {
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (MidiTrackBase::readProperties(node))
+ printf("MusE:MidiInPort: unknown tag %s\n", tag.toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+
+//---------------------------------------------------------
+// midiReceived
+// called from midiSeq context
+//---------------------------------------------------------
+
+void MidiInPort::eventReceived(jack_midi_event_t* ev)
+ {
+ MidiEvent event;
+ event.setB(0);
+
+ //
+ // move all events 2*segmentSize into the future to get
+ // jitterfree playback
+ //
+ // cycle n-1 n n+1
+ // -+----------+----------+----------+-
+ // ^ ^ ^
+ // catch process play
+ //
+ const SeqTime* st = audio->seqTime();
+
+// unsigned curFrame = st->startFrame() + segmentSize;
+ unsigned curFrame = st->lastFrameTime;
+ event.setTime(curFrame + ev->time);
+
+ event.setChannel(*(ev->buffer) & 0xf);
+ int type = *(ev->buffer) & 0xf0;
+ int a = *(ev->buffer + 1) & 0x7f;
+ int b = *(ev->buffer + 2) & 0x7f;
+ event.setType(type);
+ switch(type) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ case ME_CONTROLLER:
+ event.setA(*(ev->buffer + 1));
+ event.setB(*(ev->buffer + 2));
+ break;
+ case ME_PROGRAM:
+ case ME_AFTERTOUCH:
+ event.setA(*(ev->buffer + 1));
+ break;
+
+ case ME_PITCHBEND:
+ event.setA(((b << 7) + a) - 8192);
+ break;
+
+ case ME_SYSEX:
+ {
+ int type = *(ev->buffer) & 0xff;
+ switch(type) {
+ case ME_SYSEX:
+ event.setTime(0); // mark as used
+ event.setType(ME_SYSEX);
+ event.setData((unsigned char*)(ev->buffer + 1),
+ ev->size - 2);
+ break;
+ case ME_CLOCK:
+ case ME_SENSE:
+ break;
+ default:
+ printf("unknown event 0x%02x\n", type);
+ return;
+ }
+ }
+ return;
+ }
+
+ if (midiInputTrace) {
+ printf("MidiInput<%s>: ", name().toLatin1().data());
+ event.dump();
+ }
+ //
+ // process midi filter pipeline and add event to
+ // _recordEvents
+ //
+
+ MidiEventList il, ol;
+ il.insert(event);
+ pipeline()->apply(st->curTickPos, st->nextTickPos, &il, &ol);
+
+ //
+ // update midi activity
+ // notify gui of new events
+ //
+
+ for (iMidiEvent i = ol.begin(); i != ol.end(); ++i) {
+ triggerActivity(i->channel());
+ song->putEvent(*i);
+ if (recordFifo.put(*i))
+ printf("MusE: eventReceived(): fifo overflow\n");
+ }
+ }
+
+//---------------------------------------------------------
+// afterProcess
+// clear all recorded events after a process cycle
+//---------------------------------------------------------
+
+void MidiInPort::afterProcess()
+ {
+ while (tmpRecordCount--)
+ recordFifo.remove();
+ }
+
+//---------------------------------------------------------
+// beforeProcess
+// "freeze" fifo for this process cycle
+//---------------------------------------------------------
+
+void MidiInPort::beforeProcess()
+ {
+ if (!jackPort(0).isZero())
+ audioDriver->collectMidiEvents(this, jackPort(0));
+ tmpRecordCount = recordFifo.getSize();
+ }
+
+//---------------------------------------------------------
+// getEvents
+// called from jack process context
+// This method can be called multiple times in a process
+// cycle so we have to empty the fifo at
+// "afterProcess()".
+//---------------------------------------------------------
+
+void MidiInPort::getEvents(unsigned, unsigned, int ch, MidiEventList* dst)
+ {
+ for (int i = 0; i < tmpRecordCount; ++i) {
+ const MidiEvent& ev = recordFifo.peek(i);
+ if (ch == -1 || (ev.channel() == ch))
+ dst->insert(ev);
+ }
+ }
+
+//---------------------------------------------------------
+// checkActivity
+//---------------------------------------------------------
+
+bool MidiInPort::checkActivity(int channel)
+ {
+ if (activity[channel])
+ --activity[channel];
+ return activity[channel] != 0;
+ }
+
+//---------------------------------------------------------
+// triggerActivity
+//---------------------------------------------------------
+
+void MidiInPort::triggerActivity(int channel)
+ {
+ activity[channel] = config.guiRefresh / 5 + 1; // hold for >= 1/5 sec
+ }
+
diff --git a/muse_qt4_evolution/muse/midiinport.h b/muse_qt4_evolution/muse/midiinport.h
new file mode 100644
index 00000000..899ee0a8
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiinport.h
@@ -0,0 +1,67 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIINPORT_H__
+#define __MIDIINPORT_H__
+
+#include "midififo.h"
+#include "miditrackbase.h"
+#include "midievent.h"
+
+static const int RECORD_FIFO_SIZE = 512;
+
+//---------------------------------------------------------
+// MidiInPort
+//---------------------------------------------------------
+
+class MidiInPort : public MidiTrackBase {
+ Q_OBJECT
+
+ MidiFifo recordFifo;
+
+ int tmpRecordCount;
+ int activity[MIDI_CHANNELS];
+
+ public:
+ MidiInPort();
+ ~MidiInPort();
+ virtual TrackType type() const { return MIDI_IN; }
+
+ virtual void setName(const QString& s);
+ virtual void write(Xml&) const;
+ virtual void read(QDomNode);
+ virtual bool isMute() const { return _mute; }
+ virtual Part* newPart(Part*, bool) { return 0; }
+
+ void eventReceived(jack_midi_event_t*);
+
+ virtual void getEvents(unsigned from, unsigned to, int channel, MidiEventList* dst);
+ void beforeProcess();
+ void afterProcess();
+ bool checkActivity(int channel);
+ void triggerActivity(int channel);
+ };
+
+typedef QList<MidiInPort*> MidiInPortList;
+typedef MidiInPortList::iterator iMidiInPort;
+typedef MidiInPortList::const_iterator ciMidiInPort;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiout.cpp b/muse_qt4_evolution/muse/midiout.cpp
new file mode 100644
index 00000000..c35f115f
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiout.cpp
@@ -0,0 +1,398 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midiout.h"
+#include "midictrl.h"
+#include "miditrackbase.h"
+#include "al/al.h"
+#include "al/tempo.h"
+#include "event.h"
+#include "sync.h"
+#include "audio.h"
+#include "gconfig.h"
+
+static const unsigned char mmcDeferredPlayMsg[] = { 0x7f, 0x7f, 0x06, 0x03 };
+static const unsigned char mmcStopMsg[] = { 0x7f, 0x7f, 0x06, 0x01 };
+
+//---------------------------------------------------------
+// MidiOut
+//---------------------------------------------------------
+
+MidiOut::MidiOut()
+ {
+ track = 0;
+ }
+
+//---------------------------------------------------------
+// sendGmOn
+// send GM-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiOut::sendGmOn()
+ {
+ sendSysex(gmOnMsg, gmOnMsgLen);
+ track->setHwCtrlState(CTRL_PROGRAM, 0);
+ track->setHwCtrlState(CTRL_PITCH, 0);
+ track->setHwCtrlState(CTRL_VOLUME, 100);
+ track->setHwCtrlState(CTRL_PANPOT, 64);
+ track->setHwCtrlState(CTRL_REVERB_SEND, 40);
+ track->setHwCtrlState(CTRL_CHORUS_SEND, 0);
+ track->setMeter(0, 0.0);
+ }
+
+//---------------------------------------------------------
+// sendGsOn
+// send Roland GS-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiOut::sendGsOn()
+ {
+ static unsigned char data2[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x33, 0x50, 0x3c };
+ static unsigned char data3[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x34, 0x50, 0x3b };
+
+ sendSysex(data2, sizeof(data2));
+ sendSysex(data3, sizeof(data3));
+ }
+
+//---------------------------------------------------------
+// sendXgOn
+// send Yamaha XG-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiOut::sendXgOn()
+ {
+ sendSysex(xgOnMsg, xgOnMsgLen);
+ track->setHwCtrlState(CTRL_PROGRAM, 0);
+ track->setHwCtrlState(CTRL_MODULATION, 0);
+ track->setHwCtrlState(CTRL_PORTAMENTO_TIME, 0);
+ track->setHwCtrlState(CTRL_VOLUME, 0x64);
+ track->setHwCtrlState(CTRL_PANPOT, 0x40);
+ track->setHwCtrlState(CTRL_EXPRESSION, 0x7f);
+ track->setHwCtrlState(CTRL_SUSTAIN, 0x0);
+ track->setHwCtrlState(CTRL_PORTAMENTO, 0x0);
+ track->setHwCtrlState(CTRL_SOSTENUTO, 0x0);
+ track->setHwCtrlState(CTRL_SOFT_PEDAL, 0x0);
+ track->setHwCtrlState(CTRL_HARMONIC_CONTENT, 0x40);
+ track->setHwCtrlState(CTRL_RELEASE_TIME, 0x40);
+ track->setHwCtrlState(CTRL_ATTACK_TIME, 0x40);
+ track->setHwCtrlState(CTRL_BRIGHTNESS, 0x40);
+ track->setHwCtrlState(CTRL_REVERB_SEND, 0x28);
+ track->setHwCtrlState(CTRL_CHORUS_SEND, 0x0);
+ track->setHwCtrlState(CTRL_VARIATION_SEND, 0x0);
+ track->setMeter(0, 0.0);
+ }
+
+//---------------------------------------------------------
+// sendSysex
+// send SYSEX message to midi device
+//---------------------------------------------------------
+
+void MidiOut::sendSysex(const unsigned char* p, int n)
+ {
+ MidiEvent event(0, ME_SYSEX, p, n);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// sendStart
+//---------------------------------------------------------
+
+void MidiOut::sendStart()
+ {
+ MidiEvent event(0, 0, ME_START, 0, 0);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// sendStop
+//---------------------------------------------------------
+
+void MidiOut::sendStop()
+ {
+ MidiEvent event(0, 0, ME_STOP, 0, 0);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// sendClock
+//---------------------------------------------------------
+
+void MidiOut::sendClock()
+ {
+ MidiEvent event(0, 0, ME_CLOCK, 0, 0);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// sendContinue
+//---------------------------------------------------------
+
+void MidiOut::sendContinue()
+ {
+ MidiEvent event(0, 0, ME_CONTINUE, 0, 0);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// sendSongpos
+//---------------------------------------------------------
+
+void MidiOut::sendSongpos(int pos)
+ {
+ MidiEvent event(0, 0, ME_SONGPOS, pos, 0);
+ track->routeEvent(event);
+ }
+
+//---------------------------------------------------------
+// playMidiEvent
+// called from GUI
+//---------------------------------------------------------
+
+void MidiOut::playMidiEvent(MidiEvent* ev)
+ {
+ if (eventFifo.put(*ev))
+ printf("MidiPort::playMidiEvent(): port overflow, drop event\n");
+ }
+
+//---------------------------------------------------------
+// seek
+//---------------------------------------------------------
+
+void MidiOut::seek(unsigned tickPos, unsigned framePos)
+ {
+ if (genMCSync && track->sendSync()) {
+ int beat = (tickPos * 4) / config.division;
+ sendStop();
+ sendSongpos(beat);
+ sendContinue();
+ }
+ if (track->mute())
+ return;
+
+// if (pos == 0 && !song->record())
+// audio->initDevices();
+
+ //---------------------------------------------------
+ // stop all notes
+ //---------------------------------------------------
+
+ for (iMidiEvent i = _schedEvents.begin(); i != _schedEvents.end(); ++i) {
+ MidiEvent ev = *i;
+ if (ev.isNoteOff()) {
+ ev.setTime(framePos);
+ track->routeEvent(ev);
+ }
+ }
+ _schedEvents.clear();
+
+ //---------------------------------------------------
+ // set all controller
+ //---------------------------------------------------
+
+ if (track->autoRead()) {
+ CtrlList* cl = track->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* c = ic->second;
+ int val = c->value(tickPos).i;
+ if ((val != CTRL_VAL_UNKNOWN) && (c->curVal().i != val)) {
+ MidiEvent ev(0, -1, ME_CONTROLLER, c->id(), val);
+ track->routeEvent(ev);
+ c->setCurVal(val);
+ }
+ }
+ }
+ foreach (const Route& r, *track->inRoutes()) {
+ MidiTrackBase* t = (MidiTrackBase*)r.src.track;
+ int dstChannel = r.dst.channel;
+ if (t->isMute() || !t->autoRead())
+ continue;
+ CtrlList* cl = t->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* c = ic->second;
+ int val = c->value(tickPos).i;
+ if ((val != CTRL_VAL_UNKNOWN) && (c->curVal().i != val)) {
+ MidiEvent ev(0, dstChannel, ME_CONTROLLER, c->id(), val);
+ track->routeEvent(ev);
+ c->setCurVal(val);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void MidiOut::stop()
+ {
+ //---------------------------------------------------
+ // stop all notes
+ //---------------------------------------------------
+
+ int time = audio->seqTime()->lastFrameTime;
+ for (iMidiEvent i = _schedEvents.begin(); i != _schedEvents.end(); ++i) {
+ MidiEvent ev = *i;
+ if (ev.isNoteOff()) {
+ ev.setTime(time);
+ track->routeEvent(ev);
+ }
+ }
+ _schedEvents.clear();
+
+ //---------------------------------------------------
+ // reset sustain
+ //---------------------------------------------------
+
+ foreach (const Route& r, *track->inRoutes()) {
+ MidiTrackBase* t = (MidiTrackBase*)r.src.track;
+ int dstChannel = r.dst.channel;
+ if (t->isMute() || !t->autoRead())
+ continue;
+ CtrlList* cl = t->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* c = ic->second;
+ if (c->id() == CTRL_SUSTAIN) {
+ if (c->curVal().i > 0) {
+ MidiEvent ev(time, dstChannel, ME_CONTROLLER, c->id(), 0);
+ track->routeEvent(ev);
+ c->setCurVal(0);
+ }
+ }
+ }
+ }
+
+ if (track->sendSync()) {
+ if (genMMC) {
+ unsigned char mmcPos[] = {
+ 0x7f, 0x7f, 0x06, 0x44, 0x06, 0x01,
+ 0, 0, 0, 0, 0
+ };
+ double frame = double(audio->seqTime()->pos.frame());
+ MTC mtc(frame / double(AL::sampleRate));
+ mmcPos[6] = mtc.h() | (AL::mtcType << 5);
+ mmcPos[7] = mtc.m();
+ mmcPos[8] = mtc.s();
+ mmcPos[9] = mtc.f();
+ mmcPos[10] = mtc.sf();
+ sendSysex(mmcStopMsg, sizeof(mmcStopMsg));
+ sendSysex(mmcPos, sizeof(mmcPos));
+ }
+ if (genMCSync) { // Midi Clock
+ // send STOP and
+ // "set song position pointer"
+ sendStop();
+ sendSongpos(audio->seqTime()->curTickPos * 4 / config.division);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void MidiOut::start()
+ {
+ // TODO: set sustain to old value?
+
+ if (!(genMMC || genMCSync || track->sendSync()))
+ return;
+ if (genMMC)
+ sendSysex(mmcDeferredPlayMsg, sizeof(mmcDeferredPlayMsg));
+ if (genMCSync) {
+ if (audio->seqTime()->curTickPos)
+ sendContinue();
+ else
+ sendStart();
+ }
+ }
+
+//---------------------------------------------------------
+// reset
+//---------------------------------------------------------
+
+void MidiOut::reset()
+ {
+/* TODO
+ MidiEvent ev;
+ ev.setType(0x90);
+ for (int chan = 0; chan < MIDI_CHANNELS; ++chan) {
+ ev.setChannel(chan);
+ for (int pitch = 0; pitch < 128; ++pitch) {
+ ev.setA(pitch);
+ ev.setB(0);
+ mp->putEvent(ev);
+ }
+ }
+*/
+ }
+
+//-------------------------------------------------------------------
+// process
+// Collect all midi events for the current process cycle and put
+// into _schedEvents queue. For note on events create the proper
+// note off events. The note off events maybe played later after the
+// current process cycle.
+// From _schedEvents queue copy all events for the current cycle
+// to all output routes. Events routed to ALSA go into the
+// _playEvents queue which is processed by the MidiSeq thread.
+//-------------------------------------------------------------------
+
+void MidiOut::processMidi(MidiEventList& el, const SeqTime* time)
+ {
+ while (!eventFifo.isEmpty())
+ el.insert(eventFifo.get());
+
+ // collect port controller
+ if (track->autoRead() && (time->curTickPos != time->nextTickPos)) { // if rolling
+ CtrlList* cl = track->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* c = ic->second;
+ iCtrlVal is = c->lowerBound(time->curTickPos);
+ iCtrlVal ie = c->lowerBound(time->nextTickPos);
+ for (iCtrlVal ic = is; ic != ie; ++ic) {
+ unsigned frame = AL::tempomap.tick2frame(ic.key());
+ MidiEvent ev(frame, -1, ME_CONTROLLER, c->id(), ic.value().i);
+ el.insert(ev);
+ c->setCurVal(ic.value().i);
+ }
+ }
+ }
+ foreach (const Route& r, *track->inRoutes()) {
+ MidiTrackBase* t = (MidiTrackBase*)r.src.track;
+ int dstChannel = r.dst.channel;
+ if (t->isMute())
+ continue;
+ MidiEventList ell;
+ t->getEvents(time->curTickPos, time->nextTickPos, r.src.channel, &ell);
+ int velo = 0;
+ for (iMidiEvent i = ell.begin(); i != ell.end(); ++i) {
+ MidiEvent ev(*i);
+ ev.setChannel(dstChannel);
+ el.insert(ev);
+ if (ev.type() == ME_NOTEON)
+ velo += ev.dataB();
+ }
+ t->addMidiMeter(velo);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midiout.h b/muse_qt4_evolution/muse/midiout.h
new file mode 100644
index 00000000..8bf25261
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiout.h
@@ -0,0 +1,67 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIOUT_H__
+#define __MIDIOUT_H__
+
+#include "midififo.h"
+
+class Track;
+class MidiInstrument;
+class SeqTime;
+
+//---------------------------------------------------------
+// MidiOut
+//---------------------------------------------------------
+
+class MidiOut
+ {
+ public:
+ Track* track;
+ MidiInstrument* _instrument;
+ MidiEventList _schedEvents; // scheduled events by process()
+
+ // fifo for midi events send from gui
+ // direct to midi port:
+
+ MidiFifo eventFifo;
+
+ MidiOut();
+ void processMidi(MidiEventList&, const SeqTime*);
+
+ void seek(unsigned, unsigned);
+ void stop();
+ void start();
+ void reset();
+
+ void sendSysex(const unsigned char*, int);
+ void sendSongpos(int);
+ void sendGmOn();
+ void sendGsOn();
+ void sendXgOn();
+ void sendStart();
+ void sendStop();
+ void sendContinue();
+ void sendClock();
+ void playMidiEvent(MidiEvent* ev);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midioutport.cpp b/muse_qt4_evolution/muse/midioutport.cpp
new file mode 100644
index 00000000..695f51a6
--- /dev/null
+++ b/muse_qt4_evolution/muse/midioutport.cpp
@@ -0,0 +1,262 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "midiplugin.h"
+#include "midictrl.h"
+#include "al/al.h"
+#include "al/tempo.h"
+#include "al/xml.h"
+#include "audiodev.h"
+#include "audio.h"
+#include "midioutport.h"
+#include "sync.h"
+#include "gconfig.h"
+#include "instruments/minstrument.h"
+
+//---------------------------------------------------------
+// MidiOutPort
+//---------------------------------------------------------
+
+MidiOutPort::MidiOutPort()
+ : MidiTrackBase()
+ {
+ track = this;
+ _instrument = genericMidiInstrument;
+ setDeviceId(127); // all
+ addMidiController(_instrument, CTRL_MASTER_VOLUME);
+ _channels = 1;
+ }
+
+//---------------------------------------------------------
+// MidiOutPort
+//---------------------------------------------------------
+
+MidiOutPort::~MidiOutPort()
+ {
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void MidiOutPort::setName(const QString& s)
+ {
+ Track::setName(s);
+ if (!jackPort().isZero())
+ audioDriver->setPortName(jackPort(), s);
+ }
+
+//---------------------------------------------------------
+// MidiOutPort::write
+//---------------------------------------------------------
+
+void MidiOutPort::write(Xml& xml) const
+ {
+ xml.stag("MidiOutPort");
+ MidiTrackBase::writeProperties(xml);
+ if (_instrument)
+ xml.tag("instrument", _instrument->iname());
+ xml.tag("sendSync", sendSync());
+ xml.tag("deviceId", deviceId());
+ xml.etag("MidiOutPort");
+ }
+
+//---------------------------------------------------------
+// MidiOutPort::read
+//---------------------------------------------------------
+
+void MidiOutPort::read(QDomNode node)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "instrument") {
+ QString iname = e.text();
+ _instrument = registerMidiInstrument(iname);
+ }
+ else if (tag == "sendSync")
+ setSendSync(e.text().toInt());
+ else if (tag == "deviceId")
+ setDeviceId(e.text().toInt());
+ else if (MidiTrackBase::readProperties(node))
+ printf("MusE:MidiOutPort: unknown tag %s\n", tag.toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// routeEvent
+//---------------------------------------------------------
+
+void MidiOutPort::routeEvent(const MidiEvent& event)
+ {
+ for (iRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r) {
+ if (r->dst.type == RouteNode::JACKMIDIPORT)
+ queueJackEvent(event);
+ else
+ fprintf(stderr, "MidiOutPort::process(): invalid routetype\n");
+ }
+ }
+
+//---------------------------------------------------------
+// queueJackEvent
+// called from MidiSeq
+//---------------------------------------------------------
+
+#define JO(e) audioDriver->putEvent(jackPort(0), e);
+
+void MidiOutPort::queueJackEvent(const MidiEvent& ev)
+ {
+ if (ev.type() == ME_CONTROLLER) {
+ int a = ev.dataA();
+ int b = ev.dataB();
+ int chn = ev.channel();
+ unsigned t = ev.time();
+
+ if (a == CTRL_PITCH) {
+ int v = b + 8192;
+ audioDriver->putEvent(jackPort(0), MidiEvent(t, chn, ME_PITCHBEND, v & 0x7f, (v >> 7) & 0x7f));
+ }
+ else if (a == CTRL_PROGRAM) {
+ // don't output program changes for GM drum channel
+// if (!(song->mtype() == MT_GM && chn == 9)) {
+ int hb = (b >> 16) & 0xff;
+ int lb = (b >> 8) & 0xff;
+ int pr = b & 0x7f;
+ if (hb != 0xff)
+ JO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HBANK, hb));
+ if (lb != 0xff)
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LBANK, lb));
+ JO(MidiEvent(t+2, chn, ME_PROGRAM, pr, 0));
+// }
+ }
+ else if (a == CTRL_MASTER_VOLUME) {
+ unsigned char sysex[] = {
+ 0x7f, 0x7f, 0x04, 0x01, 0x00, 0x00
+ };
+ sysex[1] = deviceId();
+ sysex[4] = b & 0x7f;
+ sysex[5] = (b >> 7) & 0x7f;
+ JO(MidiEvent(t, ME_SYSEX, sysex, 6));
+ }
+ else if (a < CTRL_14_OFFSET) { // 7 Bit Controller
+ JO(ev);
+ }
+ else if (a < CTRL_RPN_OFFSET) { // 14 bit high resolution controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ JO(MidiEvent(t, chn, ME_CONTROLLER, ctrlH, dataH));
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, ctrlL, dataL));
+ }
+ else if (a < CTRL_NRPN_OFFSET) { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ JO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ JO(MidiEvent(t+2, chn, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ else if (a < CTRL_RPN14_OFFSET) { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ JO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ JO(MidiEvent(t+2, chn, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ else if (a < CTRL_NRPN14_OFFSET) { // RPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ JO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ JO(MidiEvent(t+2, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ JO(MidiEvent(t+3, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ else if (a < CTRL_NONE_OFFSET) { // NRPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ JO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ JO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ JO(MidiEvent(t+2, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ JO(MidiEvent(t+3, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ else {
+ printf("putEvent: unknown controller type 0x%x\n", a);
+ }
+ }
+ else {
+ JO(ev);
+ }
+ }
+#undef JO
+
+//---------------------------------------------------------
+// setInstrument
+//---------------------------------------------------------
+
+void MidiOutPort::setInstrument(MidiInstrument* i)
+ {
+ _instrument = i;
+ emit instrumentChanged();
+ }
+
+//-------------------------------------------------------------------
+// process
+// Collect all midi events for the current process cycle and put
+// into _schedEvents queue. For note on events create the proper
+// note off events. The note off events maybe played after the
+// current process cycle.
+// From _schedEvents queue copy all events for the current cycle
+// to all output routes.
+//-------------------------------------------------------------------
+
+void MidiOutPort::processMidi(const SeqTime* t)
+ {
+ if (track->mute())
+ return;
+
+ MidiEventList el;
+ MidiOut::processMidi(el, t);
+
+ pipeline()->apply(t->curTickPos, t->nextTickPos, &el, &_schedEvents);
+
+ //
+ // route events to destination
+ //
+
+ int portVelo = 0;
+ unsigned endFrame = t->lastFrameTime + segmentSize;
+ iMidiEvent i = _schedEvents.begin();
+
+ for (; i != _schedEvents.end(); ++i) {
+ if (i->time() >= endFrame)
+ break;
+ routeEvent(*i);
+ if (i->type() == ME_NOTEON)
+ portVelo += i->dataB();
+ }
+ _schedEvents.erase(_schedEvents.begin(), i);
+ addMidiMeter(portVelo);
+ }
+
diff --git a/muse_qt4_evolution/muse/midioutport.h b/muse_qt4_evolution/muse/midioutport.h
new file mode 100644
index 00000000..31529349
--- /dev/null
+++ b/muse_qt4_evolution/muse/midioutport.h
@@ -0,0 +1,70 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIOUTPORT_H__
+#define __MIDIOUTPORT_H__
+
+#include "miditrackbase.h"
+#include "midiout.h"
+
+struct SeqTime;
+
+//---------------------------------------------------------
+// MidiOutPort
+//---------------------------------------------------------
+
+class MidiOutPort : public MidiTrackBase, public MidiOut {
+ Q_OBJECT
+
+ MidiInstrument* _instrument;
+ void routeEvent(const MidiEvent&);
+ void queueAlsaEvent(const MidiEvent& event);
+ void queueJackEvent(const MidiEvent& event);
+
+ signals:
+ void instrumentChanged();
+
+ public:
+ MidiOutPort();
+ ~MidiOutPort();
+ virtual TrackType type() const { return MIDI_OUT; }
+
+ virtual void setName(const QString& s);
+ virtual void write(Xml&) const;
+ virtual void read(QDomNode);
+ virtual bool isMute() const { return _mute; }
+ virtual Part* newPart(Part*, bool) { return 0; }
+
+ virtual MidiInstrument* instrument() { return _instrument; }
+ virtual MidiOut* midiOut() { return this; }
+ void setInstrument(MidiInstrument* i);
+
+ bool guiVisible() const;
+ bool hasGui() const;
+
+ virtual void processMidi(const SeqTime*);
+ };
+
+typedef QList<MidiOutPort*> MidiOutPortList;
+typedef MidiOutPortList::iterator iMidiOutPort;
+typedef MidiOutPortList::const_iterator ciMidiOutPort;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiplugin.cpp b/muse_qt4_evolution/muse/midiplugin.cpp
new file mode 100644
index 00000000..1d13828d
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiplugin.cpp
@@ -0,0 +1,625 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <dlfcn.h>
+
+#include "al/al.h"
+#include "al/xml.h"
+#include "al/tempo.h"
+#include "al/sig.h"
+#include "midiplugin.h"
+#include "ctrl.h"
+#include "midiplugins/libmidiplugin/mempi.h"
+#include "audio.h"
+#include "gconfig.h"
+
+MidiPluginList midiPlugins;
+
+MempiHost mempiHost;
+
+//---------------------------------------------------------
+// division
+//---------------------------------------------------------
+
+int MempiHost::division() const
+ {
+ return config.division;
+ }
+
+//---------------------------------------------------------
+// tempo
+//---------------------------------------------------------
+
+int MempiHost::tempo(unsigned tick) const
+ {
+ return AL::tempomap.tempo(tick);
+ }
+
+//---------------------------------------------------------
+// tick2frame
+//---------------------------------------------------------
+
+unsigned MempiHost::tick2frame(unsigned tick) const
+ {
+ return AL::tempomap.tick2frame(tick);
+ }
+
+//---------------------------------------------------------
+// frame2tick
+//---------------------------------------------------------
+
+unsigned MempiHost::frame2tick(unsigned frame) const
+ {
+ return AL::tempomap.frame2tick(frame);
+ }
+
+//---------------------------------------------------------
+// bar
+//---------------------------------------------------------
+
+void MempiHost::bar(int t, int* bar, int* beat, unsigned* tick) const
+ {
+ AL::sigmap.tickValues(t, bar, beat, tick);
+ }
+
+//---------------------------------------------------------
+// bar2tick
+//---------------------------------------------------------
+
+unsigned MempiHost::bar2tick(int bar, int beat, int tick) const
+ {
+ return AL::sigmap.bar2tick(bar, beat, tick);
+ }
+
+//---------------------------------------------------------
+// MidiPlugin
+//---------------------------------------------------------
+
+MidiPlugin::MidiPlugin(const QFileInfo* f, const MEMPI_Function mf,
+ const MEMPI* d) : fi(*f)
+ {
+ mempi = mf;
+ plugin = d;
+ _instances = 0;
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+MidiPluginI* MidiPlugin::instantiate(MidiTrackBase* t)
+ {
+ if (plugin == 0) {
+ printf("initMidiPluginInstance: zero plugin\n");
+ return 0;
+ }
+ ++_instances;
+ QString inst("-" + QString::number(_instances));
+ QString s = name() + inst;
+
+ Mempi* m = plugin->instantiate(s.toLatin1().data(), &mempiHost);
+ if (m->init()) {
+ delete m;
+ return 0;
+ }
+ MidiPluginI* mp = new MidiPluginI(this, t, m);
+ return mp;
+ }
+
+bool MidiPlugin::instantiate(MidiPluginI* mp)
+ {
+ if (plugin == 0) {
+ printf("initMidiPluginInstance: zero plugin\n");
+ return 0;
+ }
+ ++_instances;
+ QString inst("-" + QString::number(_instances));
+ QString s = name() + inst;
+
+ Mempi* m = plugin->instantiate(s.toLatin1().data(), &mempiHost);
+ if (m->init()) {
+ delete m;
+ return true;
+ }
+ mp->setMempi(m);
+ return false;
+ }
+
+//---------------------------------------------------------
+// MidiPluginI
+//---------------------------------------------------------
+
+MidiPluginI::MidiPluginI(MidiPlugin* p, MidiTrackBase* t, Mempi* m)
+ {
+ _track = t;
+ _plugin = p;
+ mempi = m;
+ _on = true;
+ }
+
+//---------------------------------------------------------
+// MidiPluginI
+//---------------------------------------------------------
+
+MidiPluginI::MidiPluginI(MidiTrackBase* t)
+ {
+ _track = t;
+ _plugin = 0;
+ mempi = 0;
+ _on = true;
+ }
+
+//---------------------------------------------------------
+// MidiPluginI
+//---------------------------------------------------------
+
+MidiPluginI::~MidiPluginI()
+ {
+ if (mempi)
+ delete mempi;
+ }
+
+//---------------------------------------------------------
+// loadMidiPlugin
+//---------------------------------------------------------
+
+static void loadMidiPlugin(QFileInfo* fi)
+ {
+ if (debugMsg)
+ printf(" load midi plugin <%s>\n", fi->filePath().toAscii().data());
+ void* handle = dlopen(fi->filePath().toLocal8Bit().data(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "loadMidiPlugin::dlopen(%s) failed: %s\n",
+ fi->filePath().toLatin1().data(), dlerror());
+ return;
+ }
+ MEMPI_Function mempi = (MEMPI_Function)dlsym(handle, "mempi_descriptor");
+
+ if (!mempi) {
+ const char *txt = dlerror();
+ if (txt) {
+ fprintf(stderr,
+ "Unable to find mempi_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a MEMPI plugin file?\n",
+ fi->filePath().toLatin1().data(),
+ txt);
+ return;
+ }
+ }
+ const MEMPI* descr = mempi();
+
+ if (descr == 0) {
+ fprintf(stderr, "Mempi::instantiate: no MEMPI descr found\n");
+ return;
+ }
+ if (descr->majorMempiVersion != MEMPI_MAJOR_VERSION) {
+ fprintf(stderr, "Mempi::instantiate: bad MEMPI version %d, expected %d\n",
+ descr->majorMempiVersion, MEMPI_MAJOR_VERSION);
+ return;
+ }
+ midiPlugins.push_back(new MidiPlugin(fi, mempi, descr));
+ }
+
+//---------------------------------------------------------
+// loadMidiPluginDir
+//---------------------------------------------------------
+
+static void loadMidiPluginDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan midi plugin dir <%s>\n", s.toLatin1().data());
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
+ QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ loadMidiPlugin(&fi);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// initMidiPlugins
+// search for midi MEPI plugins
+//---------------------------------------------------------
+
+void initMidiPlugins()
+ {
+ loadMidiPluginDir(museGlobalLib + QString("/midiplugins"));
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+MidiPlugin* MidiPluginList::find(const QString& /*file*/, const QString& name)
+ {
+ for (iMidiPlugin i = begin(); i != end(); ++i) {
+ if (name == (*i)->name())
+ return *i;
+ }
+ printf("MidiPlugin <%s> not found\n", name.toLatin1().data());
+ return 0;
+ }
+
+//---------------------------------------------------------
+// Pipeline
+//---------------------------------------------------------
+
+MidiPipeline::MidiPipeline()
+ : QList<MidiPluginI*>()
+ {
+ }
+
+//---------------------------------------------------------
+// isOn
+//---------------------------------------------------------
+
+bool MidiPipeline::isOn(int idx) const
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p)
+ return p->on();
+ return false;
+ }
+
+//---------------------------------------------------------
+// setOn
+//---------------------------------------------------------
+
+void MidiPipeline::setOn(int idx, bool flag)
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p) {
+ p->setOn(flag);
+ }
+ }
+
+//---------------------------------------------------------
+// name
+//---------------------------------------------------------
+
+QString MidiPipeline::name(int idx) const
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p)
+ return p->name();
+ return QString("empty");
+ }
+
+#if 0
+//---------------------------------------------------------
+// empty
+//---------------------------------------------------------
+
+bool MidiPipeline::empty(int idx) const
+ {
+ MidiPluginI* p = (*this)[idx];
+ return p == 0;
+ }
+#endif
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void MidiPipeline::move(int idx, bool up)
+ {
+ MidiPluginI* p1 = (*this)[idx];
+ if (up) {
+ (*this)[idx] = (*this)[idx-1];
+ (*this)[idx-1] = p1;
+ }
+ else {
+ (*this)[idx] = (*this)[idx+1];
+ (*this)[idx+1] = p1;
+ }
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void MidiPipeline::showGui(int idx, bool flag)
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p)
+ p->showGui(flag);
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool MidiPipeline::guiVisible(int idx) const
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p)
+ return p->guiVisible();
+ return false;
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool MidiPipeline::hasGui(int idx) const
+ {
+ MidiPluginI* p = (*this)[idx];
+ if (p)
+ return p->hasGui();
+ return false;
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void MidiPipeline::apply(unsigned from, unsigned to, MidiEventList* il, MidiEventList* ool)
+ {
+ MidiEventList oList;
+ MidiEventList* ol = &oList;
+
+ bool swap = true;
+ for (iMidiPluginI i = begin(); i != end(); ++i) {
+ MidiPluginI* p = *i;
+ if (p == 0 || !p->on())
+ continue;
+ if (swap) {
+ ol->clear();
+ p->apply(from, to, il, ol);
+ }
+ else {
+ il->clear();
+ p->apply(from, to, ol, il);
+ }
+ swap = !swap;
+ }
+ MidiEventList* l = swap ? il : ol;
+ for (iMidiEvent i = l->begin(); i != l->end(); ++i)
+ ool->insert(*i);
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void MidiPluginI::apply(unsigned from, unsigned to, MidiEventList* il, MidiEventList* ol)
+ {
+ mempi->process(from, to, il, ol);
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void MidiPluginI::writeConfiguration(Xml& xml)
+ {
+ xml.stag(QString("midiPlugin file=\"%1\" name=\"%2\"")
+ .arg(_plugin->lib()).arg(_plugin->name()));
+ if (_on == false)
+ xml.tag("on", _on);
+ if (mempi->hasGui()) {
+ xml.tag("guiVisible", mempi->guiVisible());
+ int x, y, w, h;
+ w = 0;
+ h = 0;
+ mempi->getGeometry(&x, &y, &w, &h);
+ if (h || w)
+ xml.tag("geometry", QRect(x, y, w, h));
+ }
+
+ //---------------------------------------------
+ // dump current state of plugin
+ //---------------------------------------------
+
+ int len = 0;
+ const unsigned char* p;
+ mempi->getInitData(&len, &p);
+ if (len) {
+ xml.stag(QString("init len=\"%1\"").arg(len));
+ xml.dump(len, p);
+ xml.etag("init");
+ }
+ xml.etag("midiPlugin");
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+// return true on error
+//---------------------------------------------------------
+
+bool MidiPluginI::readConfiguration(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString file = e.attribute("file");
+ QString label = e.attribute("name");
+
+ if (_plugin == 0) {
+ _plugin = midiPlugins.find(file, label);
+ if (_plugin == 0)
+ return true;
+ if (_plugin->instantiate(this))
+ return true;
+ }
+ node = node.firstChild();
+ while (!node.isNull()) {
+ e = node.toElement();
+ int i = e.text().toInt();
+ QString tag(e.tagName());
+ if (tag == "on") {
+ bool flag = i;
+ _on = flag;
+ }
+ else if (tag == "guiVisible") {
+ showGui(i);
+ }
+ else if (tag == "geometry") {
+ QRect r(AL::readGeometry(node));
+ mempi->setGeometry(r.x(), r.y(), r.width(), r.height());
+ }
+ else if (tag == "init") {
+ int len = e.attribute("len","0").toInt();
+ if (len) {
+ const char* s = e.text().toLatin1().data();
+ unsigned char data[len];
+ unsigned char* d = data;
+ int numberBase = 16;
+ for (int i = 0; i < len; ++i) {
+ char* endp;
+ *d++ = strtol(s, &endp, numberBase);
+ s = endp;
+ if (s == 0)
+ break;
+ }
+ mempi->setInitData(len, data);
+ }
+ }
+ else
+ printf("MusE:MidiPluginI: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void MidiPluginI::showGui()
+ {
+ mempi->showGui(!mempi->guiVisible());
+ }
+
+void MidiPluginI::showGui(bool flag)
+ {
+ mempi->showGui(flag);
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool MidiPluginI::guiVisible() const
+ {
+ return mempi->guiVisible();
+ }
+
+//---------------------------------------------------------
+// MidiPluginDialog
+//---------------------------------------------------------
+
+MidiPluginDialog::MidiPluginDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ resize(QSize(550, 300));
+ setModal(true);
+ setWindowTitle(tr("MusE: select midi plugin"));
+ QVBoxLayout* layout = new QVBoxLayout(this);
+
+ pList = new QTreeWidget(this);
+ pList->setIndentation(0);
+ pList->setColumnCount(4);
+ pList->setSortingEnabled(true);
+ pList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ pList->setSelectionMode(QAbstractItemView::SingleSelection);
+ pList->setAlternatingRowColors(true);
+
+ QStringList headerLabels;
+
+ headerLabels << tr("File") << tr("Name") << tr("Version") << tr("Description");
+ pList->header()->resizeSection(0, 100);
+ pList->header()->resizeSection(1, 120);
+ pList->header()->resizeSection(2, 70);
+ pList->header()->setResizeMode(3, QHeaderView::Stretch);
+ pList->setHeaderLabels(headerLabels);
+
+ fillPlugs();
+
+ layout->addWidget(pList);
+
+ //---------------------------------------------------
+ // Ok/Cancel Buttons
+ //---------------------------------------------------
+
+ QBoxLayout* w5 = new QHBoxLayout;
+ layout->addLayout(w5);
+
+ QPushButton* okB = new QPushButton(tr("Ok"));
+ QPushButton* cancelB = new QPushButton(tr("Cancel"));
+ okB->setFixedWidth(80);
+ cancelB->setFixedWidth(80);
+ okB->setDefault(true);
+ w5->addStretch(100);
+ w5->addWidget(okB);
+ w5->addWidget(cancelB);
+
+ connect(pList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(accept()));
+ connect(cancelB, SIGNAL(clicked()), SLOT(reject()));
+ connect(okB, SIGNAL(clicked()), SLOT(accept()));
+ }
+
+//---------------------------------------------------------
+// getPlugin
+//---------------------------------------------------------
+
+MidiPlugin* MidiPluginDialog::getPlugin(QWidget* parent)
+ {
+ MidiPluginDialog* dialog = new MidiPluginDialog(parent);
+ if (dialog->exec())
+ return dialog->value();
+ return 0;
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+MidiPlugin* MidiPluginDialog::value()
+ {
+ QTreeWidgetItem* item = pList->selectedItems().at(0);
+ if (item)
+ return midiPlugins.find(item->text(0), item->text(1));
+ return 0;
+ }
+
+//---------------------------------------------------------
+// fillPlugs
+//---------------------------------------------------------
+
+void MidiPluginDialog::fillPlugs()
+ {
+ pList->clear();
+ for (iMidiPlugin i = midiPlugins.begin(); i != midiPlugins.end(); ++i) {
+ if ((*i)->type() != MEMPI_FILTER)
+ continue;
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setText(0, (*i)->lib());
+ item->setText(1, (*i)->name());
+ item->setText(2, (*i)->version());
+ item->setText(3, (*i)->description());
+ pList->addTopLevelItem(item);
+ }
+ }
diff --git a/muse_qt4_evolution/muse/midiplugin.h b/muse_qt4_evolution/muse/midiplugin.h
new file mode 100644
index 00000000..87e91953
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiplugin.h
@@ -0,0 +1,168 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIPLUGIN_H__
+#define __MIDIPLUGIN_H__
+
+#include "globals.h"
+#include "midiplugins/libmidiplugin/mempi.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class MidiPluginIF;
+class MidiPluginGui;
+class MidiPluginI;
+class MidiTrackBase;
+class Ctrl;
+class MidiEventList;
+class MidiTrackBase;
+
+typedef const MEMPI* (*MEMPI_Function)();
+
+//---------------------------------------------------------
+// MidiPlugin
+//---------------------------------------------------------
+
+class MidiPlugin {
+ MEMPI_Function mempi;
+ const MEMPI* plugin;
+
+ protected:
+ int _instances;
+ QFileInfo fi;
+
+ public:
+ MidiPlugin(const QFileInfo* f, const MEMPI_Function, const MEMPI* d);
+ virtual ~MidiPlugin() {}
+
+ int instances() const { return _instances; }
+ virtual void incInstances(int val) { _instances += val; }
+
+ QString lib() const { return fi.baseName(); }
+ QString path() const { return fi.absolutePath(); }
+ QString name() const { return QString(plugin->name); }
+ QString description() const { return QString(plugin->description); }
+ QString version() const { return QString(plugin->version); }
+ MempiType type() const { return plugin->type; }
+ MidiPluginI* instantiate(MidiTrackBase*);
+ bool instantiate(MidiPluginI*);
+ };
+
+//---------------------------------------------------------
+// MidiPluginList
+//---------------------------------------------------------
+
+typedef QList<MidiPlugin*>::iterator iMidiPlugin;
+
+class MidiPluginList : public QList<MidiPlugin*> {
+ public:
+ MidiPlugin* find(const QString&, const QString&);
+ MidiPluginList() {}
+ };
+
+//---------------------------------------------------------
+// MidiPluginI
+// plugin instance
+//---------------------------------------------------------
+
+class MidiPluginI {
+ MidiPlugin* _plugin;
+ Mempi* mempi;
+
+ MidiTrackBase* _track;
+ bool _on;
+
+ public:
+ MidiPluginI(MidiPlugin*, MidiTrackBase*, Mempi*);
+ MidiPluginI(MidiTrackBase*);
+ ~MidiPluginI();
+
+ void setMempi(Mempi* m) { mempi = m; }
+
+ MidiPlugin* plugin() const { return _plugin; }
+ bool on() const { return _on; }
+ void setOn(bool val) { _on = val; }
+ void apply(unsigned, unsigned, MidiEventList*, MidiEventList*);
+
+ QString name() const { return QString(mempi->name()); }
+ QString lib() const { return _plugin->lib(); }
+ MidiTrackBase* track() const { return _track; }
+ void getGeometry(int*x, int*y, int* w, int* h) const { mempi->getGeometry(x, y, w, h); }
+ void setGeometry(int x, int y, int w, int h) { mempi->setGeometry(x, y, w, h); }
+ void writeConfiguration(Xml& xml);
+ bool readConfiguration(QDomNode);
+
+ void showGui();
+ void showGui(bool);
+ bool hasGui() const { return mempi->hasGui(); }
+ bool guiVisible() const;
+ void getInitData(int* len, const unsigned char** p) { mempi->getInitData(len, p); }
+ void setInitData(int len, const unsigned char* p) { mempi->setInitData(len, p); }
+ };
+
+//---------------------------------------------------------
+// Pipeline
+// chain of connected efx inserts
+//---------------------------------------------------------
+
+class MidiPipeline : public QList<MidiPluginI*> {
+ public:
+ MidiPipeline();
+ bool isOn(int idx) const;
+ void setOn(int, bool);
+ QString name(int idx) const;
+ void showGui(int, bool);
+ bool guiVisible(int) const;
+ bool hasGui(int) const;
+ void apply(unsigned, unsigned, MidiEventList*, MidiEventList*);
+ void move(int idx, bool up);
+ };
+
+typedef MidiPipeline::iterator iMidiPluginI;
+typedef MidiPipeline::const_iterator ciMidiPluginI;
+
+//---------------------------------------------------------
+// MidiPluginDialog
+//---------------------------------------------------------
+
+class MidiPluginDialog : public QDialog {
+ QTreeWidget* pList;
+
+ Q_OBJECT
+
+ public:
+ MidiPluginDialog(QWidget* parent=0);
+ static MidiPlugin* getPlugin(QWidget* parent);
+ MidiPlugin* value();
+
+ public slots:
+ void fillPlugs();
+ };
+
+static const int MidiPipelineDepth = 4;
+
+extern void initMidiPlugins();
+extern MidiPluginList midiPlugins;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midiportinfo.ui b/muse_qt4_evolution/muse/midiportinfo.ui
new file mode 100644
index 00000000..ad8ae201
--- /dev/null
+++ b/muse_qt4_evolution/muse/midiportinfo.ui
@@ -0,0 +1,92 @@
+<ui version="4.0" >
+ <class>MidiPortInfoBase</class>
+ <widget class="QWidget" name="MidiPortInfoBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>142</width>
+ <height>96</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>0</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QComboBox" name="instrument" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Midi Instrument</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="deviceId" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Device-Id:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/midirack.cpp b/muse_qt4_evolution/muse/midirack.cpp
new file mode 100644
index 00000000..0b054729
--- /dev/null
+++ b/muse_qt4_evolution/muse/midirack.cpp
@@ -0,0 +1,208 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "icons.h"
+#include "gconfig.h"
+#include "midirack.h"
+#include "track.h"
+#include "song.h"
+#include "midiplugin.h"
+#include "audio.h"
+#include "muse.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// MidiRack
+//---------------------------------------------------------
+
+MidiRack::MidiRack(QWidget* parent, MidiTrackBase* t)
+ : QListWidget(parent)
+ {
+ setUniformItemSizes(true);
+ setAlternatingRowColors(true);
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ verticalScrollBar()->setStyle(smallStyle);
+ track = t;
+// setFont(config.fonts[1]);
+
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ setSelectionMode(QAbstractItemView::SingleSelection);
+ songChanged(SC_RACK); // force update
+ connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
+ this, SLOT(doubleClicked(QListWidgetItem*)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ setToolTip(tr("midi effect rack"));
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize MidiRack::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int h = fm.lineSpacing() * MidiPipelineDepth + 1;
+ return QSize(STRIP_WIDTH, h);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiRack::songChanged(int typ)
+ {
+ if (typ & (SC_ROUTE | SC_RACK)) {
+ clear();
+ foreach(MidiPluginI* plugin, *(track->pipeline())) {
+ QListWidgetItem* item = new QListWidgetItem;
+ item->setText(plugin->name());
+ // tooltip should only be set if name does not fit
+ // (is elided)
+ item->setToolTip(plugin->name());
+ item->setBackgroundColor(plugin->on() ? Qt::white : Qt::gray);
+ addItem(item);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// contextMenuEvent
+//---------------------------------------------------------
+
+void MidiRack::contextMenuEvent(QContextMenuEvent* ev)
+ {
+ QPoint pt(ev->pos());
+ QListWidgetItem* item = itemAt(pt);
+ MidiPipeline* pipe = track->pipeline();
+
+ QMenu* menu = new QMenu;
+ QAction* upAction = menu->addAction(QIcon(*upIcon), tr("move up"));
+ QAction* downAction = menu->addAction(QIcon(*downIcon), tr("move down"));
+ QAction* removeAction = menu->addAction(tr("remove"));
+ QAction* bypassAction = menu->addAction(tr("bypass"));
+ QAction* showAction = menu->addAction(tr("show gui"));
+ QAction* newAction = menu->addAction(tr("new"));
+ bypassAction->setCheckable(true);
+ showAction->setCheckable(true);
+
+ int idx = -1;
+ if (item == 0) {
+ upAction->setEnabled(false);
+ downAction->setEnabled(false);
+ removeAction->setEnabled(false);
+ bypassAction->setEnabled(false);
+ showAction->setEnabled(false);
+ }
+ else {
+ idx = row(item);
+ upAction->setEnabled(idx != 0);
+ downAction->setEnabled(idx < (pipe->size() - 1));
+ showAction->setEnabled(pipe->hasGui(idx));
+ bypassAction->setEnabled(true);
+ bypassAction->setChecked(!pipe->isOn(idx));
+ showAction->setChecked(pipe->guiVisible(idx));
+ }
+
+ QAction* sel = menu->exec(mapToGlobal(pt), newAction);
+ delete menu;
+ if (sel == 0)
+ return;
+
+ if (sel == newAction) {
+ selectNew();
+ return;
+ }
+ if (sel == removeAction) {
+ audio->msgAddMidiPlugin(track, idx, 0);
+ }
+ else if (sel == bypassAction) {
+ bool flag = !pipe->isOn(idx);
+ pipe->setOn(idx, flag);
+ }
+ else if (sel == showAction) {
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ }
+ else if (sel == upAction) {
+ if (idx > 0) {
+ setCurrentRow(idx-1);
+ pipe->move(idx, true);
+ }
+ }
+ else if (sel == downAction) {
+ if (idx < (pipe->size() - 1)) {
+ setCurrentRow(idx+1);
+ pipe->move(idx, false);
+ }
+ }
+ song->update(SC_RACK);
+ }
+
+//---------------------------------------------------------
+// doubleClicked
+// toggle gui
+//---------------------------------------------------------
+
+void MidiRack::doubleClicked(QListWidgetItem* it)
+ {
+ if (track == 0)
+ return;
+ int idx = row(it);
+ MidiPipeline* pipe = track->pipeline();
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ song->update(SC_RACK);
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void MidiRack::mouseDoubleClickEvent(QMouseEvent* event)
+ {
+ QListWidgetItem* it = itemAt(event->pos());
+ if (it || (track == 0)) {
+ QListWidget::mouseDoubleClickEvent(event);
+ return;
+ }
+ selectNew();
+ }
+
+//---------------------------------------------------------
+// selectNew
+//---------------------------------------------------------
+
+void MidiRack::selectNew()
+ {
+ MidiPlugin* plugin = MidiPluginDialog::getPlugin(this);
+ if (plugin) {
+ MidiPluginI* plugi = plugin->instantiate(track);
+ if (plugi == 0) {
+ printf("cannot instantiate plugin <%s>\n",
+ plugin->name().toLatin1().data());
+ delete plugi;
+ }
+ else
+ audio->msgAddMidiPlugin(track, track->pipeline()->size(), plugi);
+ song->update(SC_RACK);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/midirack.h b/muse_qt4_evolution/muse/midirack.h
new file mode 100644
index 00000000..7f83ca42
--- /dev/null
+++ b/muse_qt4_evolution/muse/midirack.h
@@ -0,0 +1,48 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIRACK_H__
+#define __MIDIRACK_H__
+
+class MidiTrackBase;
+
+//---------------------------------------------------------
+// MidiRack
+//---------------------------------------------------------
+
+class MidiRack : public QListWidget {
+ MidiTrackBase* track;
+ Q_OBJECT
+
+ virtual void contextMenuEvent(QContextMenuEvent*);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ void selectNew();
+
+ private slots:
+ void doubleClicked(QListWidgetItem*);
+ void songChanged(int);
+
+ public:
+ MidiRack(QWidget*, MidiTrackBase* t);
+ QSize sizeHint() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/midirc.cpp b/muse_qt4_evolution/muse/midirc.cpp
new file mode 100644
index 00000000..14b69d55
--- /dev/null
+++ b/muse_qt4_evolution/muse/midirc.cpp
@@ -0,0 +1,180 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midirc.h"
+#include "song.h"
+#include "midi.h"
+
+MidiRCList midiRCList;
+
+//---------------------------------------------------------
+// isActive
+//---------------------------------------------------------
+
+bool MidiRCList::isActive(int action)
+ {
+ for (iMidiRC i = begin(); i != end(); ++i) {
+ if (i->action == action)
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setAction
+//---------------------------------------------------------
+
+void MidiRCList::setAction(const MidiEvent& e, int action)
+ {
+ //
+ // TODO: check for already used events
+ //
+ for (iMidiRC i = begin(); i != end(); ++i) {
+ if (i->action == action) {
+// printf("replace action %d: ", action);
+// i->event.dump();
+ i->event = e;
+ return;
+ }
+ }
+ push_back(MidiRC(e, action));
+// printf("add action %d: ", action);
+ e.dump();
+ }
+
+//---------------------------------------------------------
+// emitAction
+//---------------------------------------------------------
+
+void MidiRCList::emitAction(int action) const
+ {
+// printf("emit action %d\n", action);
+ switch(action) {
+ case RC_STOP:
+ song->setStop(true);
+ break;
+ case RC_PLAY:
+ song->setPlay(true);
+ break;
+ case RC_RECORD:
+ song->setRecord(true);
+ break;
+ case RC_GOTO_LEFT_MARK:
+ song->setPos(0, song->lpos(), true, true, true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// doAction
+// emit action associated with event e
+// return true if action found
+//---------------------------------------------------------
+
+bool MidiRCList::doAction(const MidiEvent& e)
+ {
+// printf("MidiRCList::doAction ");
+// e.dump();
+ for (iMidiRC i = begin(); i != end(); ++i) {
+ if ((i->event.type()& 0xf0) == (e.type() & 0xf0)) {
+ //
+ // for note on events only compare pitch, not velocity
+ // ignore note off events (note on with velicity zero
+ //
+ if ((e.type() == ME_NOTEON)
+ && i->event.dataA() == e.dataA()
+ && e.dataB() != 0) {
+ emitAction(i->action);
+ return true;
+ }
+ //
+ // compare controller and controller value
+ // TODO: maybe we need a special option to
+ // ignore the controller value
+ //
+ if ((e.type() == ME_CONTROLLER)
+ && i->event.dataA() == e.dataA()
+ && i->event.dataB() == e.dataB()) {
+ emitAction(i->action);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MidiRCList::read(QDomNode node)
+ {
+ int action = 0;
+ MidiEvent event;
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "action") {
+ action = e.attribute("id", "0").toInt();
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e1 = node.toElement();
+ if (e1.isNull())
+ continue;
+ if (e1.tagName() == "noteOn") {
+ event.setType(ME_NOTEON);
+ event.setA(e1.attribute("pitch","0").toInt());
+ }
+ else if (e1.tagName() == "controller") {
+ event.setType(ME_CONTROLLER);
+ event.setA(e1.attribute("no","0").toInt());
+ event.setB(e1.attribute("val","0").toInt());
+ }
+ else
+ printf("MusE:midiRC:action: unknown tag %s\n", e1.tagName().toLatin1().data());
+ }
+ setAction(event, action);
+ }
+ else
+ printf("MusE:midiRC: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiRCList::write(Xml& xml)
+ {
+ xml.stag("midiRC");
+ for (iMidiRC i = begin(); i != end(); ++i) {
+ xml.stag(QString("action id=\"%1\"").arg(i->action));
+ if (i->event.type() == ME_NOTEON)
+ xml.stag(QString("noteOn pitch=\"%1\"").arg(i->event.dataA()));
+ else if (i->event.type() == ME_CONTROLLER)
+ xml.stag(QString("controller no=\"%1\" val=\"%2\"")
+ .arg(i->event.dataA()).arg(i->event.dataB()));
+ else
+ printf("remote event type %d not supported\n", i->event.type());
+ xml.etag("action");
+ }
+ xml.etag("midiRC");
+ }
+
diff --git a/muse_qt4_evolution/muse/midirc.h b/muse_qt4_evolution/muse/midirc.h
new file mode 100644
index 00000000..670fca63
--- /dev/null
+++ b/muse_qt4_evolution/muse/midirc.h
@@ -0,0 +1,65 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDIRC_H__
+#define __MIDIRC_H__
+
+#include "event.h"
+#include "midievent.h"
+
+enum {
+ RC_STOP, RC_PLAY, RC_RECORD, RC_GOTO_LEFT_MARK
+ };
+
+//---------------------------------------------------------
+// MidiRC
+//---------------------------------------------------------
+
+struct MidiRC {
+ MidiEvent event;
+ int action;
+
+ MidiRC(const MidiEvent& e, int a)
+ : event(e), action(a)
+ {
+ }
+ };
+
+//---------------------------------------------------------
+// MidiRCList
+//---------------------------------------------------------
+
+class MidiRCList : public std::list<MidiRC> {
+
+ void emitAction(int) const;
+
+ public:
+ MidiRCList() {}
+ void setAction(const MidiEvent& e, int action);
+ bool isActive(int action);
+ bool doAction(const MidiEvent&);
+ void read(QDomNode);
+ void write(Xml&);
+ };
+
+typedef MidiRCList::iterator iMidiRC;
+
+extern MidiRCList midiRCList;
+#endif
diff --git a/muse_qt4_evolution/muse/midisynti.cpp b/muse_qt4_evolution/muse/midisynti.cpp
new file mode 100644
index 00000000..b53693af
--- /dev/null
+++ b/muse_qt4_evolution/muse/midisynti.cpp
@@ -0,0 +1,225 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "midi.h"
+#include "midisynti.h"
+#include "midiplugin.h"
+#include "midiplugins/libmidiplugin/mempi.h"
+#include "al/tempo.h"
+
+//---------------------------------------------------------
+// MidiSynti
+//---------------------------------------------------------
+
+MidiSynti::MidiSynti()
+ : MidiTrackBase()
+ {
+ _synti = 0;
+ init();
+ }
+
+MidiSynti::~MidiSynti()
+ {
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MidiSynti::init()
+ {
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool MidiSynti::hasGui() const
+ {
+ return _synti->hasGui();
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+void MidiSynti::showGui(bool val)
+ {
+ return _synti->showGui(val);
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool MidiSynti::guiVisible() const
+ {
+ return _synti->guiVisible();
+ }
+
+//---------------------------------------------------------
+// initInstance
+// return true on error
+//---------------------------------------------------------
+
+bool MidiSynti::initInstance(MidiPlugin* plugin)
+ {
+ _synti = plugin->instantiate(this);
+ return _synti == 0;
+ }
+
+//---------------------------------------------------------
+// MidiSynti::write
+//---------------------------------------------------------
+
+void MidiSynti::write(Xml& xml) const
+ {
+ xml.stag("MidiSynti");
+ MidiTrackBase::writeProperties(xml);
+ xml.tag("class", _synti->plugin()->name());
+ if (_synti->hasGui()) {
+ xml.tag("guiVisible", _synti->guiVisible());
+ int x, y, w, h;
+ w = 0;
+ h = 0;
+ _synti->getGeometry(&x, &y, &w, &h);
+ if (h || w)
+ xml.tag("geometry", QRect(x, y, w, h));
+ }
+ //---------------------------------------------
+ // dump current state of plugin
+ //---------------------------------------------
+
+ int len = 0;
+ const unsigned char* p;
+ _synti->getInitData(&len, &p);
+ if (len) {
+ xml.stag(QString("init len=\"%1\"").arg(len));
+ xml.dump(len, p);
+ xml.etag("init");
+ }
+ xml.etag("MidiSynti");
+ }
+
+//---------------------------------------------------------
+// MidiSynti::read
+//---------------------------------------------------------
+
+void MidiSynti::read(QDomNode node)
+ {
+ bool startGui = false;
+ QRect r;
+ QString sclass;
+ unsigned char* data = 0;
+ int len = 0;
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "class")
+ sclass = e.text();
+ else if (tag == "guiVisible")
+ startGui = e.text().toInt();
+ else if (tag == "geometry")
+ r = AL::readGeometry(node);
+ else if (tag == "init") {
+ len = e.attribute("len", "0").toInt();
+ if (len) {
+ QStringList l = e.text().simplified().split(" ", QString::SkipEmptyParts);
+ if (len != l.size()) {
+ printf("error converting init string <%s>\n", e.text().toLatin1().data());
+ }
+ data = new unsigned char[len];
+ unsigned char* d = data;
+ int numberBase = 16;
+ for (int i = 0; i < l.size(); ++i) {
+ bool ok;
+ *d++ = l.at(i).toInt(&ok, numberBase);
+ if (!ok)
+ printf("error converting init val <%s>\n", l.at(i).toLatin1().data());
+ }
+ }
+ }
+ else if (MidiTrackBase::readProperties(node))
+ printf("MusE:MidiSynti: unknown tag %s\n", node.toElement().tagName().toLatin1().data());
+ }
+ iMidiPlugin i;
+ for (i = midiPlugins.begin(); i != midiPlugins.end(); ++i) {
+ if ((*i)->type() != MEMPI_GENERATOR)
+ continue;
+ if ((*i)->name() == sclass)
+ break;
+ }
+ if (i == midiPlugins.end()) {
+ fprintf(stderr, "MidiSynti::read: midi plugin not found\n");
+ return;
+ }
+ MidiPlugin* mp = *i;
+ if (initInstance(mp)) {
+ fprintf(stderr, "MidiSynti::read: instantiate failed\n");
+ return;
+ }
+ if (data) {
+ _synti->setInitData(len, data);
+ delete[] data;
+ }
+ song->insertTrack0(this, -1);
+ _synti->showGui(startGui);
+ _synti->setGeometry(r.x(), r.y(), r.width(), r.height());
+ }
+
+//---------------------------------------------------------
+// getEvents
+//---------------------------------------------------------
+
+void MidiSynti::getEvents(unsigned from, unsigned to, int, MidiEventList* dst)
+ {
+ MidiEventList il;
+ foreach(const Route& r, *inRoutes()) {
+ MidiTrackBase* track = (MidiTrackBase*)r.src.track;
+ if (track->isMute())
+ continue;
+ track->getEvents(from, to, r.src.channel, &il);
+ }
+ MidiEventList ol;
+ _synti->apply(from, to, &il, &ol);
+ for (iMidiEvent i = ol.begin(); i != ol.end(); ++i) {
+ MidiEvent ev(*i);
+ if (ev.type() == ME_NOTEON) {
+ _meter[0] += ev.dataB()/2;
+ if (_meter[0] > 127.0f)
+ _meter[0] = 127.0f;
+ }
+ // convert tick-time to sample-time
+ ev.setTime(AL::tempomap.tick2frame(ev.time()));
+ dst->insert(ev);
+ }
+ }
+
+bool MidiSynti::isMute() const
+ {
+ if (_solo)
+ return false;
+ if (song->solo())
+ return true;
+ return _mute;
+ }
+
+
diff --git a/muse_qt4_evolution/muse/midisynti.h b/muse_qt4_evolution/muse/midisynti.h
new file mode 100644
index 00000000..89c77764
--- /dev/null
+++ b/muse_qt4_evolution/muse/midisynti.h
@@ -0,0 +1,62 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDISYNTH_H__
+#define __MIDISYNTH_H__
+
+#include "miditrackbase.h"
+
+//---------------------------------------------------------
+// MidiSynti
+//---------------------------------------------------------
+
+class MidiSynti : public MidiTrackBase {
+ Q_OBJECT
+
+ MidiPluginI* _synti;
+
+ public:
+ MidiSynti();
+ virtual ~MidiSynti();
+ virtual TrackType type() const { return MIDI_SYNTI; }
+
+ void init();
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+ virtual bool isMute() const;
+
+ virtual Part* newPart(Part*, bool) { return 0; }
+
+ bool initInstance(MidiPlugin*);
+ virtual void getEvents(unsigned from, unsigned to, int channel, MidiEventList* dst);
+
+ bool hasGui() const;
+ bool guiVisible() const;
+ void showGui(bool);
+ };
+
+
+typedef QList<MidiSynti*> MidiSyntiList;
+typedef MidiSyntiList::iterator iMidiSynti;
+typedef MidiSyntiList::const_iterator ciMidiSynti;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/miditrack.cpp b/muse_qt4_evolution/muse/miditrack.cpp
new file mode 100644
index 00000000..276eeccb
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditrack.cpp
@@ -0,0 +1,716 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "miditrack.h"
+#include "event.h"
+#include "song.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "audio.h"
+#include "part.h"
+#include "al/tempo.h"
+#include "midiedit/drummap.h"
+
+//---------------------------------------------------------
+// MidiTrack
+//---------------------------------------------------------
+
+MidiTrack::MidiTrack()
+ : MidiTrackBase()
+ {
+ _transposition = 0;
+ _velocity = 0;
+ _delay = 0;
+ _len = 100; // percent
+ _compression = 100; // percent
+
+ initMidiController();
+ recordPart = 0;
+ _drumMap = 0;
+ _useDrumMap = false;
+
+ //
+ // create minimal set of managed controllers
+ // to make midi mixer operational
+ //
+ MidiInstrument* mi = genericMidiInstrument;
+ addMidiController(mi, CTRL_PROGRAM);
+ addMidiController(mi, CTRL_VOLUME);
+ addMidiController(mi, CTRL_PANPOT);
+ addMidiController(mi, CTRL_REVERB_SEND);
+ addMidiController(mi, CTRL_CHORUS_SEND);
+ addMidiController(mi, CTRL_VARIATION_SEND);
+ }
+
+MidiTrack::~MidiTrack()
+ {
+ }
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* MidiTrack::newPart(Part* p, bool clone)
+ {
+ Part* part = new Part(this);
+ if (p) {
+ if (clone)
+ part->clone(p->events());
+ else
+ part->ref();
+ part->setName(p->name());
+ part->setColorIndex(p->colorIndex());
+
+ *(AL::PosLen*)part = *(AL::PosLen*)p;
+ part->setMute(p->mute());
+ }
+ else
+ part->ref();
+ return part;
+ }
+
+//---------------------------------------------------------
+// MidiTrack::write
+//---------------------------------------------------------
+
+void MidiTrack::write(Xml& xml) const
+ {
+ xml.stag("miditrack");
+ MidiTrackBase::writeProperties(xml);
+
+ xml.tag("transposition", _transposition);
+ xml.tag("velocity", _velocity);
+ xml.tag("delay", _delay);
+ xml.tag("len", _len);
+ xml.tag("compression", _compression);
+ xml.tag("useDrumMap", _useDrumMap);
+
+ const PartList* pl = parts();
+ for (ciPart p = pl->begin(); p != pl->end(); ++p)
+ p->second->write(xml);
+ xml.etag("miditrack");
+ }
+
+//---------------------------------------------------------
+// MidiTrack::read
+//---------------------------------------------------------
+
+void MidiTrack::read(QDomNode node)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ int i = s.toInt();
+ if (tag == "transposition")
+ _transposition = i;
+ else if (tag == "velocity")
+ _velocity = i;
+ else if (tag == "delay")
+ _delay = i;
+ else if (tag == "len")
+ _len = i;
+ else if (tag == "compression")
+ _compression = i;
+ else if (tag == "part") {
+ Part* p = newPart();
+ p->read(node, true);
+ parts()->add(p);
+ }
+ else if (tag == "locked")
+ _locked = i;
+ else if (tag == "useDrumMap")
+ _useDrumMap = e.text().toInt();
+ else if (MidiTrackBase::readProperties(node))
+ printf("MusE:MidiTrack: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// playMidiEvent
+//---------------------------------------------------------
+
+void MidiTrack::playMidiEvent(MidiEvent* ev)
+ {
+ foreach (const Route& r, _outRoutes) {
+ Track* track = r.dst.track;
+ ev->setChannel(r.dst.channel);
+ if (track->type() == MIDI_OUT)
+ ((MidiOutPort*)track)->playMidiEvent(ev);
+ else if (track->type() == AUDIO_SOFTSYNTH)
+ ((SynthI*)track)->playMidiEvent(ev);
+ }
+ }
+
+//---------------------------------------------------------
+// startRecording
+// gui context
+//---------------------------------------------------------
+
+void MidiTrack::startRecording()
+ {
+ hbank = 0;
+ lbank = 0;
+ datah = 0;
+ datal = 0;
+ rpnh = 0;
+ rpnl = 0;
+ dataType = 0;
+ recordedEvents = 0;
+ partCreated = false;
+ recordPart = 0;
+ recordFifo.clear();
+ keyDown.clear();
+
+ AL::Pos start = song->punchin() ? song->lPos() : song->cPos();
+
+ for (iPart ip = parts()->begin(); ip != parts()->end(); ++ip) {
+ Part* part = ip->second;
+ unsigned partStart = part->tick();
+ unsigned partEnd = partStart + part->lenTick();
+ if (start.tick() >= partStart && start.tick() < partEnd) {
+ recordPart = part;
+ }
+ }
+ if (recordPart == 0) {
+ //
+ // create new part for recording
+ //
+ recordPart = new Part(this);
+ recordPart->ref();
+ recordPart->setTrack(this);
+ int startTick = song->roundDownBar(start.tick());
+ int endTick = song->roundUpBar(start.tick());
+ recordPart->setTick(startTick);
+ recordPart->setLenTick(endTick - startTick);
+ recordPart->setName(name());
+ song->addPart(recordPart);
+ partCreated = true;
+ }
+ }
+
+//---------------------------------------------------------
+// recordBeat
+// gui context
+// update current recording
+//---------------------------------------------------------
+
+void MidiTrack::recordBeat()
+ {
+ int updateFlags = 0;
+ unsigned cpos = song->cpos();
+ unsigned ptick = recordPart->tick();
+
+ if (song->punchout()) {
+ if (song->rPos() >= song->cPos()) {
+ while (!recordFifo.isEmpty())
+ recordFifo.get();
+ return;
+ }
+ }
+ QList<Event> el;
+ while (!recordFifo.isEmpty()) {
+ MidiEvent me(recordFifo.get());
+
+ unsigned time = me.time();
+ if (song->punchin() && time < song->lpos())
+ continue;
+ bool isOff = me.isNoteOff();
+
+ if (song->punchout() && (time >= song->rpos()) && !isOff)
+ continue;
+
+ if (!partCreated && song->recMode() == Song::REC_REPLACE) {
+ // TODO: remove old events
+ }
+
+ time -= ptick;
+ if (isOff) {
+ //
+ // process note off
+ //
+ for (std::list<Event>::iterator i = keyDown.begin(); i != keyDown.end(); ++i) {
+ if (i->pitch() == me.dataA()) {
+ unsigned tl = time - i->tick();
+ if (tl != i->lenTick()) {
+ i->setLenTick(tl);
+ updateFlags |= SC_EVENT_MODIFIED;
+ }
+ keyDown.erase(i);
+ break;
+ }
+ }
+ }
+ else if (me.type() == ME_NOTEON && me.dataB() != 0) {
+ //
+ // create Note event on "note on"
+ //
+ Event event(Note);
+ event.setTick(time);
+ event.setLenTick(1);
+ event.setPitch(me.dataA());
+ event.setVelo(me.dataB());
+ keyDown.push_front(event);
+ el.append(event);
+ }
+ else if (me.type() == ME_POLYAFTER) {
+ Event event(PAfter);
+ event.setTick(time);
+ event.setA(me.dataA());
+ event.setB(me.dataB());
+ }
+ else if (me.type() == ME_CONTROLLER) {
+ Event event(Controller);
+ event.setTick(time + ptick);
+ switch(me.dataA()) {
+ case CTRL_HBANK:
+ hbank = me.dataB();
+ break;
+
+ case CTRL_LBANK:
+ lbank = me.dataB();
+ break;
+
+ case CTRL_HDATA:
+ datah = me.dataB();
+ event.setA(dataType | (rpnh << 8) | rpnl);
+ event.setB(datah);
+ el.append(event);
+ break;
+
+ case CTRL_LDATA:
+ datal = me.dataB();
+ if (dataType == CTRL_NRPN_OFFSET)
+ dataType = CTRL_NRPN14_OFFSET;
+ else if (dataType == CTRL_RPN_OFFSET)
+ dataType = CTRL_RPN14_OFFSET;
+ break;
+
+ case CTRL_HNRPN:
+ rpnh = me.dataB();
+ dataType = CTRL_NRPN_OFFSET;
+ break;
+
+ case CTRL_LNRPN:
+ rpnl = me.dataB();
+ dataType = CTRL_NRPN_OFFSET;
+ break;
+
+ case CTRL_HRPN:
+ rpnh = me.dataB();
+ dataType = CTRL_RPN_OFFSET;
+ break;
+
+ case CTRL_LRPN:
+ rpnl = me.dataB();
+ dataType = CTRL_RPN_OFFSET;
+ break;
+
+ default:
+ event.setA(me.dataA());
+ event.setB(me.dataB());
+ el.append(event);
+ break;
+ }
+ }
+ else if (me.type() == ME_PROGRAM) {
+ Event event(Controller);
+ event.setTick(time + ptick);
+ event.setA(CTRL_PROGRAM);
+ event.setB((hbank << 16) | (lbank << 8) | me.dataA());
+ el.append(event);
+ }
+ else if (me.type() == ME_PITCHBEND) {
+ Event event(Controller);
+ event.setTick(time + ptick);
+ event.setA(CTRL_PITCH);
+ event.setB(me.dataA());
+ el.append(event);
+ }
+ else if (me.type() == ME_SYSEX) {
+ Event event(Sysex);
+ event.setTick(time + ptick);
+ event.setData(me.data(), me.len());
+ el.append(event);
+ }
+ else if (me.type() == ME_AFTERTOUCH) {
+ Event event(CAfter);
+ event.setTick(time + ptick);
+ event.setA(me.dataA());
+ el.append(event);
+ }
+ }
+ if (!el.isEmpty()) {
+ for (int i = 0; i < el.size(); ++i)
+ el[i].setRecorded(true);
+ audio->msgAddEvents(&el, recordPart);
+ recordedEvents += el.size();
+ updateFlags |= SC_EVENT_INSERTED;
+ }
+
+ if (partCreated) {
+ recordPart->setLenTick(cpos - ptick);
+ updateFlags |= SC_PART_MODIFIED;
+ }
+ //
+ // modify len of all hold keys
+ //
+ for (std::list<Event>::iterator i = keyDown.begin(); i != keyDown.end(); ++i) {
+ if (cpos > (i->tick() + ptick))
+ i->setLenTick(cpos - (i->tick() + ptick));
+ updateFlags |= SC_EVENT_MODIFIED;
+ }
+ song->update(updateFlags);
+ }
+
+//---------------------------------------------------------
+// stopRecording
+// gui context
+//---------------------------------------------------------
+
+void MidiTrack::stopRecording()
+ {
+ for (iEvent e = recordPart->events()->begin(); e != recordPart->events()->end(); ++e) {
+ e->second.setRecorded(false);
+ }
+ if (recordedEvents == 0 && partCreated) {
+ // TD: remove empty part?
+ }
+ //
+ // modify len of all hold keys
+ //
+ unsigned ptick = recordPart->tick();
+ unsigned cpos = song->cpos();
+ for (std::list<Event>::iterator i = keyDown.begin(); i != keyDown.end(); ++i) {
+ i->setLenTick(cpos - (i->tick() + ptick));
+ }
+ //
+ // adjust part len && song len
+ //
+ if (recordPart->lenTick() < (cpos-ptick)) {
+ //
+ // TODO: check for events outside part boundaries
+ //
+ int endTick = song->roundUpBar(cpos);
+ recordPart->setLenTick(endTick - ptick);
+ }
+
+ unsigned etick = recordPart->endTick();
+ if (song->len() < etick)
+ song->setLen(etick);
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+void MidiTrack::clone(MidiTrack* t)
+ {
+ QString name;
+ for (int i = 1; ; ++i) {
+ name.sprintf("%s-%d", t->name().toLatin1().data(), i);
+ TrackList* tl = song->tracks();
+ bool found = false;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ if ((*it)->name() == name) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+ setName(name);
+ _transposition = t->_transposition;
+ _velocity = t->_velocity;
+ _delay = t->_delay;
+ _len = t->_len;
+ _compression = t->_compression;
+ _recordFlag = t->_recordFlag;
+ _mute = t->_mute;
+ _solo = t->_solo;
+ _off = t->_off;
+ _monitor = t->_monitor;
+ _channels = t->_channels;
+ _locked = t->_locked;
+ _inRoutes = t->_inRoutes;
+ _outRoutes = t->_outRoutes;
+ _controller = t->_controller;
+ _autoRead = t->_autoRead;
+ _autoWrite = t->_autoWrite;
+ }
+
+//---------------------------------------------------------
+// isMute
+//---------------------------------------------------------
+
+bool MidiTrack::isMute() const
+ {
+ if (_solo)
+ return false;
+ if (song->solo())
+ return true;
+ return _mute;
+ }
+
+//---------------------------------------------------------
+// processMidi
+//---------------------------------------------------------
+
+void MidiTrack::processMidi(SeqTime* t)
+ {
+ schedEvents.clear();
+ //
+ // collect events only when transport is rolling
+ //
+ if (t->curTickPos < t->nextTickPos) {
+ for (iPart p = parts()->begin(); p != parts()->end(); ++p) {
+ Part* part = p->second;
+ if (part->mute())
+ continue;
+ DrumMap* dm = drumMap();
+ unsigned offset = _delay + part->tick();
+
+ if (offset > t->nextTickPos)
+ break;
+
+ EventList* events = part->events();
+
+ iEvent ie = events->lower_bound((offset > t->curTickPos) ? 0 : t->curTickPos - offset);
+ iEvent iend = events->lower_bound(t->nextTickPos - offset);
+
+ for (; ie != iend; ++ie) {
+ Event ev = ie->second;
+ if (ev.recorded())
+ continue;
+ if (ev.type() == Meta) // ignore meta events
+ continue;
+ unsigned tick = ev.tick() + offset;
+ unsigned frame = t->tick2frame(tick);
+ if (ev.type() == Note) {
+ if (dm) {
+ if (dm->entry(dm->outmap(ev.pitch()))->mute)
+ continue;
+ }
+ //
+ // maybe we should skip next lines if using a
+ // drummap
+
+ int pitch = ev.pitch() + _transposition + song->globalPitchShift();
+ if (pitch > 127)
+ pitch = 127;
+ if (pitch < 0)
+ pitch = 0;
+ int velo = ev.velo();
+ velo += _velocity;
+ velo = (velo * _compression) / 100;
+ if (velo > 127)
+ velo = 127;
+ if (velo < 1) // no off event
+ velo = 1;
+ int elen = (ev.lenTick() * _len)/100;
+ if (elen <= 0) // dont allow zero length
+ elen = 1;
+ int veloOff = ev.veloOff();
+
+ unsigned eframe = t->tick2frame(tick+elen);
+ schedEvents.insert(MidiEvent(frame, 0, ME_NOTEON, pitch, velo));
+ schedEvents.insert(MidiEvent(eframe, 0, veloOff ? ME_NOTEOFF : ME_NOTEON, pitch, veloOff));
+ _meter[0] += velo/2;
+ if (_meter[0] > 127.0f)
+ _meter[0] = 127.0f;
+ }
+ else {
+ schedEvents.insert(MidiEvent(frame, 0, ev));
+ }
+ }
+ }
+ //
+ // collect controller
+ //
+ if (autoRead()) {
+ for (iCtrl ic = controller()->begin(); ic != controller()->end(); ++ic) {
+ Ctrl* c = ic->second;
+ iCtrlVal is = c->lowerBound(t->curTickPos);
+ iCtrlVal ie = c->lowerBound(t->nextTickPos);
+ for (iCtrlVal ic = is; ic != ie; ++ic) {
+ unsigned frame = t->tick2frame(ic.key());
+ Event ev(Controller);
+ ev.setA(c->id());
+ ev.setB(ic.value().i);
+ schedEvents.insert(MidiEvent(frame, -1, ev));
+ c->setCurVal(ic.value().i);
+ }
+ }
+ }
+ }
+
+ //
+ // process input routing
+ //
+
+ foreach(const Route& r, *inRoutes()) {
+ MidiTrackBase* track = (MidiTrackBase*)r.src.track;
+ if (track->isMute())
+ continue;
+ MidiEventList el;
+ track->getEvents(t->curTickPos, t->nextTickPos, r.src.channel, &el);
+
+ for (iMidiEvent ie = el.begin(); ie != el.end(); ++ie) {
+ MidiEvent event(*ie);
+ unsigned eventTime = event.time();
+ if (recordFlag() && audio->isRecording()) {
+ unsigned time = t->frame2tick(eventTime);
+ event.setTime(time); // set tick time
+ recordFifo.put(event);
+ }
+ if (event.type() == ME_NOTEON && (monitor() || recordFlag()))
+ addMidiMeter(event.dataB());
+ if (monitor()) {
+ if (event.type() == ME_NOTEON) {
+ int pitch = event.dataA() + _transposition + song->globalPitchShift();
+ if (pitch > 127)
+ pitch = 127;
+ if (pitch < 0)
+ pitch = 0;
+ event.setA(pitch);
+ if (!event.isNoteOff()) {
+ int velo = event.dataB() + _velocity;
+ velo = (velo * _compression) / 100;
+ if (velo > 127)
+ velo = 127;
+ if (velo < 1)
+ velo = 1;
+ event.setB(velo);
+ }
+ }
+ event.setTime(eventTime + segmentSize);
+ schedEvents.insert(event);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getEvents
+// from/to - midi ticks
+//---------------------------------------------------------
+
+void MidiTrack::getEvents(unsigned /*from*/, unsigned /*to*/, int, MidiEventList* dst)
+ {
+ for (iMidiEvent i = schedEvents.begin(); i != schedEvents.end(); ++i) {
+ dst->insert(*i);
+ }
+ }
+
+//---------------------------------------------------------
+// emitControllerChanged
+//---------------------------------------------------------
+
+void MidiTrack::emitControllerChanged(int id)
+ {
+ if (id == CTRL_PROGRAM && _useDrumMap) {
+ int val = ctrlVal(id).i;
+ MidiInstrument* mi = instrument();
+ DrumMap* dm = mi->getDrumMap(val);
+ if (dm == 0)
+ dm = &gmDrumMap;
+ if (dm != _drumMap)
+ _drumMap = dm;
+ emit drumMapChanged();
+ }
+ emit controllerChanged(id);
+ }
+
+//---------------------------------------------------------
+// setUseDrumMap
+//---------------------------------------------------------
+
+void MidiTrack::setUseDrumMap(bool val)
+ {
+ if (_useDrumMap != val) {
+ _useDrumMap = val;
+ if (_useDrumMap) {
+ MidiInstrument* mi = instrument();
+ DrumMap* dm;
+ if (mi) {
+ int val = ctrlVal(CTRL_PROGRAM).i;
+ dm = mi->getDrumMap(val);
+ if (dm == 0)
+ dm = &gmDrumMap;
+ }
+ _drumMap = dm;
+ }
+ else
+ _drumMap = &noDrumMap;
+ emit drumMapChanged();
+ emit useDrumMapChanged(_useDrumMap);
+ }
+ }
+
+//---------------------------------------------------------
+// instrument
+//---------------------------------------------------------
+
+MidiInstrument* MidiTrack::instrument()
+ {
+ if (_outRoutes.isEmpty())
+ return genericMidiInstrument;
+ return _outRoutes[0].dst.track->instrument();
+ }
+
+//---------------------------------------------------------
+// channelNo
+//---------------------------------------------------------
+
+int MidiTrack::channelNo() const
+ {
+ if (_outRoutes.isEmpty()) // TODO: better: remember old channel setting
+ return 0;
+ return _outRoutes[0].dst.channel;
+ }
+
+//---------------------------------------------------------
+// midiOut
+//---------------------------------------------------------
+
+MidiOut* MidiTrack::midiOut()
+ {
+ if (_outRoutes.isEmpty())
+ return 0;
+ return _outRoutes[0].dst.track->midiOut();
+ }
+
+//---------------------------------------------------------
+// setChannel
+//---------------------------------------------------------
+
+void MidiTrack::setChannel(int n)
+ {
+ if (_outRoutes.isEmpty())
+ return;
+ Route r = _outRoutes[0];
+ if (r.dst.channel == n)
+ return;
+ audio->msgRemoveRoute(r);
+ r.dst.channel = n;
+ audio->msgAddRoute(r);
+ emit channelChanged(n);
+ }
diff --git a/muse_qt4_evolution/muse/miditrack.h b/muse_qt4_evolution/muse/miditrack.h
new file mode 100644
index 00000000..994c3c92
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditrack.h
@@ -0,0 +1,127 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDITRACK_H__
+#define __MIDITRACK_H__
+
+#include "miditrackbase.h"
+#include "midififo.h"
+#include "event.h"
+
+class Part;
+class EventList;
+class MidiOut;
+class SeqTime;
+
+//---------------------------------------------------------
+// MidiTrack
+//---------------------------------------------------------
+
+class MidiTrack : public MidiTrackBase {
+ Q_OBJECT
+
+ EventList _events; // tmp Events during midi import
+
+ // recording:
+ MidiFifo recordFifo; // for event transfer from RT-thread to gui thread
+ std::list<Event> keyDown; // keep track of "note on" events
+ Part* recordPart; // part we are recording into
+ int recordedEvents;
+ bool partCreated;
+ int hbank, lbank;
+ int datah, datal;
+ int rpnh, rpnl;
+ int dataType;
+
+ // channel data:
+ DrumMap* _drumMap;
+ bool _useDrumMap;
+
+ // play parameter
+ int _transposition;
+ int _velocity;
+ int _delay;
+ int _len;
+ int _compression;
+
+ MidiEventList schedEvents; // scheduled events by process()
+
+ signals:
+ void drumMapChanged() const;
+ void useDrumMapChanged(bool);
+ void channelChanged(int);
+
+ public slots:
+ void setChannel(int);
+
+ public:
+ MidiTrack();
+ virtual ~MidiTrack();
+ virtual TrackType type() const { return MIDI; }
+ void clone(MidiTrack*);
+
+ int transposition() const { return _transposition; }
+ int velocity() const { return _velocity; }
+ int delay() const { return _delay; }
+ int len() const { return _len; }
+ int compression() const { return _compression; }
+ void setTransposition(int val) { _transposition = val; }
+ void setVelocity(int val) { _velocity = val; }
+ void setDelay(int val) { _delay = val; }
+ void setLen(int val) { _len = val; }
+ void setCompression(int val) { _compression = val; }
+
+ void startRecording();
+ void recordBeat();
+ void stopRecording();
+
+ EventList* events() { return &_events; }
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ virtual bool isMute() const;
+ virtual bool canRecord() const { return true; }
+ void playMidiEvent(MidiEvent*);
+
+ virtual void processMidi(SeqTime*);
+ virtual void getEvents(unsigned from, unsigned to, int channel, MidiEventList* dst);
+
+ bool useDrumMap() const { return _useDrumMap; }
+ DrumMap* drumMap() const { return _drumMap; }
+ void setUseDrumMap(bool val);
+
+ int channelNo() const;
+ virtual void emitControllerChanged(int id);
+
+ virtual MidiOut* midiOut();
+ virtual MidiInstrument* instrument();
+ };
+
+typedef QList<MidiTrack*> MidiTrackList;
+typedef MidiTrackList::iterator iMidiTrack;
+typedef MidiTrackList::const_iterator ciMidiTrack;
+
+Q_DECLARE_METATYPE(class MidiTrack*);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/miditrackbase.cpp b/muse_qt4_evolution/muse/miditrackbase.cpp
new file mode 100644
index 00000000..7af53299
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditrackbase.cpp
@@ -0,0 +1,136 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "miditrackbase.h"
+#include "midiplugin.h"
+
+//---------------------------------------------------------
+// MidiTrackBase
+//---------------------------------------------------------
+
+MidiTrackBase::MidiTrackBase()
+ : Track()
+ {
+ _pipeline = new MidiPipeline();
+ }
+
+//---------------------------------------------------------
+// MidiTrackBase
+//---------------------------------------------------------
+
+MidiTrackBase::~MidiTrackBase()
+ {
+ foreach(MidiPluginI* plugin, *_pipeline)
+ delete plugin;
+ delete _pipeline;
+ }
+
+//---------------------------------------------------------
+// MidiTrackBase::writeProperties
+//---------------------------------------------------------
+
+void MidiTrackBase::writeProperties(Xml& xml) const
+ {
+ Track::writeProperties(xml);
+ for (ciMidiPluginI ip = _pipeline->begin(); ip != _pipeline->end(); ++ip) {
+ if (*ip)
+ (*ip)->writeConfiguration(xml);
+ }
+ }
+
+//---------------------------------------------------------
+// MidiTrackBase::readProperties
+//---------------------------------------------------------
+
+bool MidiTrackBase::readProperties(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "midiPlugin") {
+ MidiPluginI* pi = new MidiPluginI(this);
+ if (pi->readConfiguration(node))
+ delete pi;
+ else
+ addPlugin(pi, -1);
+ }
+ else
+ return Track::readProperties(node);
+ return false;
+ }
+
+//---------------------------------------------------------
+// plugin
+//---------------------------------------------------------
+
+MidiPluginI* MidiTrackBase::plugin(int idx) const
+ {
+ return _pipeline->value(idx);
+ }
+
+//---------------------------------------------------------
+// addPlugin
+// realtime context
+// idx = -1 append
+// plugin = 0 remove slot
+//---------------------------------------------------------
+
+void MidiTrackBase::addPlugin(MidiPluginI* plugin, int idx)
+ {
+ if (plugin) {
+ if (idx == -1)
+ idx = _pipeline->size();
+ _pipeline->insert(idx, plugin);
+#if 0
+ int ncontroller = plugin->plugin()->parameter();
+ for (int i = 0; i < ncontroller; ++i) {
+ int id = (idx + 1) * 0x1000 + i;
+ QString name(plugin->getParameterName(i));
+ double min, max;
+ plugin->range(i, &min, &max);
+ Ctrl* cl = getController(id);
+ if (cl == 0) {
+ cl = new Ctrl(id, name);
+ cl->setRange(min, max);
+ double defaultValue = plugin->defaultValue(i);
+ cl->setDefault(defaultValue);
+ cl->setCurVal(defaultValue);
+ addController(cl);
+ }
+ plugin->setParam(i, cl->schedVal().f);
+ plugin->setControllerList(cl);
+ }
+#endif
+ }
+ else {
+ MidiPluginI* oldPlugin = _pipeline->takeAt(idx);
+ if (oldPlugin) {
+#if 0
+ int controller = oldPlugin->plugin()->parameter();
+ for (int i = 0; i < controller; ++i) {
+ int id = (idx + 1) * 0x1000 + i;
+ removeController(id);
+ }
+#endif
+ }
+ }
+ }
+
+
+
diff --git a/muse_qt4_evolution/muse/miditrackbase.h b/muse_qt4_evolution/muse/miditrackbase.h
new file mode 100644
index 00000000..d10b2bb3
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditrackbase.h
@@ -0,0 +1,53 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDITRACKBASE_H__
+#define __MIDITRACKBASE_H__
+
+#include "track.h"
+
+//---------------------------------------------------------
+// MidiTrackBase
+//---------------------------------------------------------
+
+class MidiTrackBase : public Track {
+ Q_OBJECT
+
+ MidiPipeline* _pipeline;
+
+ public:
+ MidiTrackBase();
+ virtual ~MidiTrackBase();
+
+ bool readProperties(QDomNode);
+ void writeProperties(Xml&) const;
+
+ MidiPipeline* pipeline() { return _pipeline; }
+ void addPlugin(MidiPluginI* plugin, int idx);
+ MidiPluginI* plugin(int idx) const;
+
+ virtual void processMidi(unsigned, unsigned, unsigned, unsigned) {}
+ virtual void getEvents(unsigned /*from*/, unsigned /*to*/, int /*channel*/, MidiEventList* /*dst*/) {}
+ };
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/miditrackinfo.ui b/muse_qt4_evolution/muse/miditrackinfo.ui
new file mode 100644
index 00000000..c1624188
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditrackinfo.ui
@@ -0,0 +1,292 @@
+<ui version="4.0" >
+ <class>MidiTrackInfoBase</class>
+ <widget class="QWidget" name="MidiTrackInfoBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>135</width>
+ <height>165</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>0</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Transp.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="transposition" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Transpose</string>
+ </property>
+ <property name="minimum" >
+ <number>-127</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Delay</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="delay" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Track Delay (ticks)</string>
+ </property>
+ <property name="minimum" >
+ <number>-1000</number>
+ </property>
+ <property name="maximum" >
+ <number>1000</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Length</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="length" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Modify Note Length</string>
+ </property>
+ <property name="suffix" >
+ <string>%</string>
+ </property>
+ <property name="minimum" >
+ <number>25</number>
+ </property>
+ <property name="maximum" >
+ <number>200</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Velocity</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="velocity" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Modify Note Velocity</string>
+ </property>
+ <property name="minimum" >
+ <number>-127</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Compr.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" >
+ <widget class="QSpinBox" name="compression" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Compress Note Velocity</string>
+ </property>
+ <property name="suffix" >
+ <string>%</string>
+ </property>
+ <property name="minimum" >
+ <number>25</number>
+ </property>
+ <property name="maximum" >
+ <number>200</number>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2" >
+ <widget class="QPushButton" name="patch" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Instrument Patch</string>
+ </property>
+ <property name="text" >
+ <string>???</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/miditransform.cpp b/muse_qt4_evolution/muse/miditransform.cpp
new file mode 100644
index 00000000..f4e85be2
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditransform.cpp
@@ -0,0 +1,1534 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "helper.h"
+#include "event.h"
+#include "miditransform.h"
+#include "track.h"
+#include "song.h"
+#include "al/xml.h"
+#include "globals.h"
+#include "comboQuant.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "al/sig.h"
+
+static int eventTypeTable[] = {
+ Note, Controller, Sysex, PAfter, CAfter, Meta
+ };
+
+static int procVal2Map[] = { 0, 1, 2, 3, 4, 5, 6, 7, 10, 11 };
+
+//---------------------------------------------------------
+// MidiTransformation
+//---------------------------------------------------------
+
+class MidiTransformation {
+ public:
+ QString name;
+ QString comment;
+
+ ValOp selEventOp;
+ EventType selType;
+
+ ValOp selVal1;
+ int selVal1a, selVal1b;
+ ValOp selVal2;
+ int selVal2a, selVal2b;
+ ValOp selLen;
+ int selLenA, selLenB;
+ ValOp selRange;
+ int selRangeA, selRangeB;
+
+ TransformOperator procEvent;
+ EventType eventType;
+ TransformOperator procVal1;
+ int procVal1a, procVal1b;
+ TransformOperator procVal2;
+ int procVal2a, procVal2b;
+ TransformOperator procLen;
+ int procLenA;
+ TransformOperator procPos;
+ int procPosA;
+
+ TransformFunction funcOp;
+ int quantVal;
+ bool selectedTracks;
+ bool insideLoop;
+
+ MidiTransformation(const QString& s) {
+ name = s;
+ selEventOp = All;
+ selType = Note;
+ selVal1 = Ignore;
+ selVal1a = 0;
+ selVal1b = 0;
+ selVal2 = Ignore;
+ selVal2a = 0;
+ selVal2b = 0;
+ selLen = Ignore;
+ selLenA = 0;
+ selLenB = 0;
+ selRange = Ignore;
+ selRangeA = 0;
+ selRangeB = 0;
+ procEvent = Keep;
+ eventType = Note;
+ procVal1 = Keep;
+ procVal1a = 0;
+ procVal1b = 0;
+ procVal2 = Keep;
+ procVal2a = 0;
+ procVal2b = 0;
+ procLen = Keep;
+ procLenA = 0;
+ procPos = Keep;
+ procPosA = 0;
+ funcOp = Select;
+ quantVal = config.division;
+ selectedTracks = false;
+ insideLoop = false;
+ }
+ void write(Xml& xml);
+ };
+
+class MidiTransformPrivate {
+ public:
+ MidiTransformation* cmt;
+ int cindex; // current index in preset list
+ };
+
+typedef std::list<MidiTransformation* > MidiTransformationList;
+typedef std::list<MidiTransformation* >::iterator iMidiTransformation;
+typedef std::list<MidiTransformation* >::const_iterator ciMidiTransformation;
+
+static MidiTransformationList mtlist;
+
+//---------------------------------------------------------
+// MidiTransformDialog
+// Widgets:
+// presetList nameEntry commentEntry
+// selEventOp selType
+// selVal1Op selVal1a selVal1b
+// selVal2Op selVal2a selVal2b
+// selLenOp selLenA selLenB
+// selRangeOp selBarA selBarB
+//
+// procEventOp procType
+// procVal1Op procVal1a procVal1b
+// procVal2Op procVal2a procVal2b
+// procLenOp procLenA
+// procPosOp procPosA
+// funcOp funcQuantVal
+// processAll selectedTracks insideLoop
+// buttonNew buttonDelete buttonApply buttonOk
+//---------------------------------------------------------
+
+MidiTransformerDialog::MidiTransformerDialog(QWidget* parent,
+ const char* name, bool modal, Qt::WFlags fl)
+ : MidiTransformDialogBase(parent, name, modal, fl)
+ {
+ data = new MidiTransformPrivate;
+ data->cmt = 0;
+ data->cindex = -1;
+ connect(buttonApply, SIGNAL(clicked()), SLOT(apply()));
+ connect(buttonNew, SIGNAL(clicked()), SLOT(presetNew()));
+ connect(buttonDelete, SIGNAL(clicked()), SLOT(presetDelete()));
+ connect(selEventOp, SIGNAL(activated(int)), SLOT(selEventOpSel(int)));
+ connect(selType, SIGNAL(activated(int)), SLOT(selTypeSel(int)));
+ connect(selVal1Op, SIGNAL(activated(int)), SLOT(selVal1OpSel(int)));
+ connect(selVal2Op, SIGNAL(activated(int)), SLOT(selVal2OpSel(int)));
+ connect(selLenOp, SIGNAL(activated(int)), SLOT(selLenOpSel(int)));
+ connect(selRangeOp, SIGNAL(activated(int)), SLOT(selRangeOpSel(int)));
+ connect(procEventOp, SIGNAL(activated(int)), SLOT(procEventOpSel(int)));
+ connect(procType, SIGNAL(activated(int)), SLOT(procEventTypeSel(int)));
+ connect(procVal1Op, SIGNAL(activated(int)), SLOT(procVal1OpSel(int)));
+ connect(procVal2Op, SIGNAL(activated(int)), SLOT(procVal2OpSel(int)));
+ connect(procLenOp, SIGNAL(activated(int)), SLOT(procLenOpSel(int)));
+ connect(procPosOp, SIGNAL(activated(int)), SLOT(procPosOpSel(int)));
+ connect(funcOp, SIGNAL(activated(int)), SLOT(funcOpSel(int)));
+ connect(funcQuantVal, SIGNAL(valueChanged(int)), SLOT(funcQuantValSel(int)));
+ connect(presetList, SIGNAL(highlighted(Q3ListBoxItem*)),
+ SLOT(presetChanged(Q3ListBoxItem*)));
+ connect(nameEntry, SIGNAL(textChanged(const QString&)),
+ SLOT(nameChanged(const QString&)));
+ connect(commentEntry, SIGNAL(textChanged()), SLOT(commentChanged()));
+
+ connect(selVal1a, SIGNAL(valueChanged(int)), SLOT(selVal1aChanged(int)));
+ connect(selVal1b, SIGNAL(valueChanged(int)), SLOT(selVal1bChanged(int)));
+ connect(selVal2a, SIGNAL(valueChanged(int)), SLOT(selVal2aChanged(int)));
+ connect(selVal2b, SIGNAL(valueChanged(int)), SLOT(selVal2bChanged(int)));
+ connect(selLenA, SIGNAL(valueChanged(int)), SLOT(selLenAChanged(int)));
+ connect(selLenB, SIGNAL(valueChanged(int)), SLOT(selLenBChanged(int)));
+ connect(selBarA, SIGNAL(valueChanged(int)), SLOT(selBarAChanged(int)));
+ connect(selBarB, SIGNAL(valueChanged(int)), SLOT(selBarBChanged(int)));
+ connect(procVal1a, SIGNAL(valueChanged(int)), SLOT(procVal1aChanged(int)));
+ connect(procVal1b, SIGNAL(valueChanged(int)), SLOT(procVal1bChanged(int)));
+ connect(procVal2a, SIGNAL(valueChanged(int)), SLOT(procVal2aChanged(int)));
+ connect(procVal2b, SIGNAL(valueChanged(int)), SLOT(procVal2bChanged(int)));
+ connect(procLenA, SIGNAL(valueChanged(int)), SLOT(procLenAChanged(int)));
+ connect(procPosA, SIGNAL(valueChanged(int)), SLOT(procPosAChanged(int)));
+
+ connect(processAll, SIGNAL(toggled(bool)), SLOT(processAllChanged(bool)));
+ connect(selectedTracks, SIGNAL(toggled(bool)), SLOT(selectedTracksChanged(bool)));
+ connect(insideLoop, SIGNAL(toggled(bool)), SLOT(insideLoopChanged(bool)));
+
+ //---------------------------------------------------
+ // populate preset list
+ //---------------------------------------------------
+
+ for (iMidiTransformation i = mtlist.begin(); i != mtlist.end(); ++i) {
+ presetList->insertItem((*i)->name);
+ if (data->cmt == 0)
+ data->cmt = *i;
+ }
+ if (data->cmt == 0) {
+ data->cmt = new MidiTransformation(tr("New"));
+ mtlist.push_back(data->cmt);
+ presetList->insertItem(tr("New"));
+ }
+ data->cindex = 0;
+ presetList->setCurrentItem(0);
+ }
+
+//---------------------------------------------------------
+// ~MidiTransformDialog
+//---------------------------------------------------------
+
+MidiTransformerDialog::~MidiTransformerDialog()
+ {
+ delete data;
+ }
+
+//---------------------------------------------------------
+// writeMidiTransforms
+//---------------------------------------------------------
+
+void writeMidiTransforms(Xml& xml)
+ {
+ for (iMidiTransformation i = mtlist.begin(); i != mtlist.end(); ++i) {
+ (*i)->write(xml);
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiTransformation::write(Xml& xml)
+ {
+ xml.tag("midiTransform");
+ xml.strTag("name", name);
+ xml.strTag("comment", comment);
+ xml.intTag("function", int(funcOp));
+ xml.intTag("selectedTracks", selectedTracks);
+ xml.intTag("insideLoop", insideLoop);
+ if (funcOp == Quantize) {
+ xml.intTag("quantVal", quantVal);
+ }
+ if (funcOp == Transform || funcOp == Insert) {
+ if (procEvent != Keep) {
+ xml.intTag("procEventOp", int(procEvent));
+ xml.intTag("eventType", int(eventType));
+ }
+ if (procVal1 != Keep) {
+ xml.intTag("procVal1Op", int(procVal1));
+ xml.intTag("procVal1a", procVal1a);
+ xml.intTag("procVal1b", procVal1b);
+ }
+ if (procVal2 != Keep) {
+ xml.intTag("procVal2Op", int(procVal2));
+ xml.intTag("procVal2a", procVal2a);
+ xml.intTag("procVal2b", procVal2b);
+ }
+ if (procLen != Keep) {
+ xml.intTag("procLenOp", int(procLen));
+ xml.intTag("procLen", procLenA);
+ }
+ if (procPos != Keep) {
+ xml.intTag("procPosOp", int(procPos));
+ xml.intTag("procPos", procPosA);
+ }
+ }
+ if (selEventOp != Ignore) {
+ xml.intTag("selEventOp", int(selEventOp));
+ xml.intTag("selEventType", int(selType));
+ }
+ if (selVal1 != Ignore) {
+ xml.intTag("selVal1Op", int(selVal1));
+ xml.intTag("selVal1a", selVal1a);
+ xml.intTag("selVal1b", selVal1b);
+ }
+ if (selVal2 != Ignore) {
+ xml.intTag("selVal2Op", int(selVal2));
+ xml.intTag("selVal2a", selVal2a);
+ xml.intTag("selVal2b", selVal2b);
+ }
+ if (selLen != Ignore) {
+ xml.intTag("selLenOp", int(selLen));
+ xml.intTag("selLenA", selLenA);
+ xml.intTag("selLenB", selLenB);
+ }
+ if (selRange != Ignore) {
+ xml.intTag("selRangeOp", int(selRange));
+ xml.intTag("selRangeA", selRangeA);
+ xml.intTag("selRangeB", selRangeB);
+ }
+ xml.etag("midiTransform");
+ }
+
+//---------------------------------------------------------
+// readMidiTransform
+//---------------------------------------------------------
+
+void readMidiTransform(QDomNode node)
+ {
+ MidiTransformation trans(QWidget::tr("new"));
+
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ int i = s.toInt();
+
+ if (tag == "name")
+ trans.name = s;
+ else if (tag == "comment")
+ trans.comment = s;
+ else if (tag == "function")
+ trans.funcOp = TransformFunction(i);
+ else if (tag == "selectedTracks")
+ trans.selectedTracks = i;
+ else if (tag == "insideLoop")
+ trans.insideLoop = i;
+ else if (tag == "quantVal")
+ trans.quantVal = i;
+ else if (tag == "procEventOp")
+ trans.procEvent = TransformOperator(i);
+ else if (tag == "eventType")
+ trans.eventType = EventType(i);
+ else if (tag == "procVal1Op")
+ trans.procVal1 = TransformOperator(i);
+ else if (tag == "procVal1a")
+ trans.procVal1a = i;
+ else if (tag == "procVal1b")
+ trans.procVal1b = i;
+ else if (tag == "procVal2Op")
+ trans.procVal2 = TransformOperator(i);
+ else if (tag == "procVal2a")
+ trans.procVal2a = i;
+ else if (tag == "procVal2b")
+ trans.procVal2b = i;
+ else if (tag == "procLenOp")
+ trans.procLen = TransformOperator(i);
+ else if (tag == "procLen")
+ trans.procLenA = i;
+ else if (tag == "procPosOp")
+ trans.procPos = TransformOperator(i);
+ else if (tag == "procPos")
+ trans.procPosA = i;
+ else if (tag == "selEventOp")
+ trans.selEventOp = ValOp(i);
+ else if (tag == "selEventType")
+ trans.selType = EventType(i);
+ else if (tag == "selVal1Op")
+ trans.selVal1 = ValOp(i);
+ else if (tag == "selVal1a")
+ trans.selVal1a = i;
+ else if (tag == "selVal1b")
+ trans.selVal1b = i;
+ else if (tag == "selVal2Op")
+ trans.selVal2 = ValOp(i);
+ else if (tag == "selVal2a")
+ trans.selVal2a = i;
+ else if (tag == "selVal2b")
+ trans.selVal2b = i;
+ else if (tag == "selLenOp")
+ trans.selLen = ValOp(i);
+ else if (tag == "selLenA")
+ trans.selLenA = i;
+ else if (tag == "selLenB")
+ trans.selLenB = i;
+ else if (tag == "selRangeOp")
+ trans.selRange = ValOp(i);
+ else if (tag == "selRangeA")
+ trans.selRangeA = i;
+ else if (tag == "selRangeB")
+ trans.selRangeB = i;
+ else
+ printf("MusE:readMidiTransform(): unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ MidiTransformation* t = new MidiTransformation(trans);
+ mtlist.push_back(t);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MidiTransformerDialog::accept()
+ {
+ apply();
+ reject();
+ }
+
+//---------------------------------------------------------
+// transformEvent
+// subfunction of processEvent()
+//---------------------------------------------------------
+
+void MidiTransformerDialog::transformEvent(Event& event, MidiPart* part,
+ MidiPart* newPart)
+ {
+ MidiTransformation* cmt = data->cmt;
+ Event newEvent = event.clone();
+
+ if (cmt->procEvent != Keep)
+ newEvent.setType(cmt->eventType);
+
+ //---------------------------------------------------
+ // transform value A
+ //---------------------------------------------------
+
+ int val = newEvent.dataA();
+ switch (cmt->procVal1) {
+ case Keep:
+ break;
+ case Plus:
+ val += cmt->procVal1a;
+ break;
+ case Minus:
+ val -= cmt->procVal1a;
+ break;
+ case Multiply:
+ val = int(val * (cmt->procVal1a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (cmt->procVal1a/100.0) + .5);
+ break;
+ case Fix:
+ val = cmt->procVal1a;
+ break;
+ case Value:
+ val = cmt->procVal2a;
+ break;
+ case Invert:
+ val = 128 - val;
+ break;
+ case ScaleMap:
+ printf("scale map not implemented\n");
+ break;
+ case Flip:
+ val = cmt->procVal1a - val;
+ break;
+ case Dynamic: // "crescendo"
+ val = (((cmt->procVal2b-cmt->procVal2a)
+ * (newEvent.tick() - song->lpos()))
+ / (song->rpos() - song->lpos())) + cmt->procVal2a;
+ break;
+ case Random:
+ {
+ int range = cmt->procVal1b - cmt->procVal1a;
+ if (range > 0)
+ val = (rand() % range) + cmt->procVal1a;
+ else if (range < 0)
+ val = (rand() % -range) + cmt->procVal1b;
+ else
+ val = cmt->procVal1a;
+ }
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ newEvent.setA(val);
+
+ //---------------------------------------------------
+ // transform value B
+ //---------------------------------------------------
+
+ val = newEvent.dataB();
+ switch (cmt->procVal2) {
+ case Plus:
+ val += cmt->procVal2a;
+ break;
+ case Minus:
+ val -= cmt->procVal2a;
+ break;
+ case Multiply:
+ val = int(val * (cmt->procVal2a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (cmt->procVal2a/100.0) + .5);
+ break;
+ case Fix:
+ val = cmt->procVal2a;
+ break;
+ case Value:
+ val = cmt->procVal1a;
+ break;
+ case Invert:
+ val = 128 - val;
+ break;
+ case Dynamic:
+ val = (((cmt->procVal2b-cmt->procVal2a)
+ * (newEvent.tick() - song->lpos()))
+ / (song->rpos() - song->lpos())) + cmt->procVal2a;
+ break;
+ case Random:
+ {
+ int range = cmt->procVal2b - cmt->procVal2a;
+ if (range > 0)
+ val = (rand() % range) + cmt->procVal2a;
+ else if (range < 0)
+ val = (rand() % -range) + cmt->procVal2b;
+ else
+ val = cmt->procVal1a;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ newEvent.setB(val);
+
+ //---------------------------------------------------
+ // transform len
+ //---------------------------------------------------
+
+ int len = newEvent.lenTick();
+ switch (cmt->procLen) {
+ case Plus:
+ len += cmt->procLenA;
+ break;
+ case Minus:
+ len -= cmt->procLenA;
+ break;
+ case Multiply:
+ len = int(val * (cmt->procLenA/100.0) + .5);
+ break;
+ case Divide:
+ len = int(val / (cmt->procLenA/100.0) + .5);
+ break;
+ case Fix:
+ len = cmt->procLenA;
+ break;
+ case Invert:
+ case ScaleMap:
+ case Dynamic:
+ case Random:
+ case Keep:
+ case Flip:
+ case Value:
+ break;
+ }
+ if (len < 0)
+ len = 0;
+ newEvent.setLenTick(len);
+
+ //---------------------------------------------------
+ // transform pos
+ //---------------------------------------------------
+
+ int pos = newEvent.tick();
+ switch (cmt->procPos) {
+ case Plus:
+ pos += cmt->procPosA;
+ break;
+ case Minus:
+ pos -= cmt->procPosA;
+ break;
+ case Multiply:
+ pos = int(val * (cmt->procPosA/100.0) + .5);
+ break;
+ case Divide:
+ pos = int(val / (cmt->procPosA/100.0) + .5);
+ break;
+ case Fix:
+ case Invert:
+ case ScaleMap:
+ case Dynamic:
+ case Random:
+ case Keep:
+ case Flip:
+ case Value:
+ break;
+ }
+ if (pos < 0)
+ pos = 0;
+ newEvent.setTick(pos);
+
+ Event dummy;
+ switch(data->cmt->funcOp) {
+ case Transform:
+ song->changeEvent(event, newEvent, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->addUpdateFlags(SC_EVENT_MODIFIED);
+ break;
+ case Insert:
+ song->undoOp(UndoOp::AddEvent, dummy, newEvent, part);
+ song->addEvent(newEvent, part);
+ song->addUpdateFlags(SC_EVENT_INSERTED);
+ break;
+ case Extract:
+ song->undoOp(UndoOp::DeleteEvent, dummy, event, part);
+ song->deleteEvent(event, part);
+ song->addUpdateFlags(SC_EVENT_REMOVED);
+ case Copy:
+ newPart->addEvent(newEvent);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void MidiTransformerDialog::processEvent(Event& event, MidiPart* part, MidiPart* newPart)
+ {
+ switch(data->cmt->funcOp) {
+ case Select:
+ break;
+ case Quantize:
+ {
+ int tick = event.tick();
+ int rt = AL::sigmap.raster(tick, data->cmt->quantVal) - tick;
+ if (tick != rt) {
+ Event newEvent = event.clone();
+ newEvent.setTick(rt);
+ song->changeEvent(event, newEvent, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->addUpdateFlags(SC_EVENT_MODIFIED);
+ }
+ }
+ break;
+ case Delete:
+ {
+ Event ev;
+ song->undoOp(UndoOp::DeleteEvent, ev, event, part);
+ song->deleteEvent(event, part);
+ song->addUpdateFlags(SC_EVENT_REMOVED);
+ }
+ break;
+ case Transform:
+ case Insert:
+ case Copy:
+ case Extract:
+ transformEvent(event, part, newPart);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// isSelected
+// apply Select filter
+// return true if event is selected
+//---------------------------------------------------------
+
+bool MidiTransformerDialog::isSelected(Event& event, MidiPart*)
+ {
+ MidiTransformation* cmt = data->cmt;
+
+ switch (cmt->selEventOp) {
+ case Equal:
+ if (event.type() != cmt->selType) {
+ return false;
+ }
+ break;
+ case Unequal:
+ if (event.type() == cmt->selType) {
+ return false;
+ }
+ break;
+ default:
+ break;
+ }
+ switch (cmt->selVal1) {
+ case Ignore:
+ break;
+ case Equal:
+ if (event.dataA() != cmt->selVal1a)
+ return false;
+ break;
+ case Unequal:
+ if (event.dataA() == cmt->selVal1a)
+ return false;
+ break;
+ case Higher:
+ if (event.dataA() <= cmt->selVal1a)
+ return false;
+ break;
+ case Lower:
+ if (event.dataA() >= cmt->selVal1a)
+ return false;
+ break;
+ case Inside:
+ if ((event.dataA() < cmt->selVal1a)
+ || (event.dataA() >= cmt->selVal1b))
+ return false;
+ break;
+ case Outside:
+ if ((event.dataA() >= cmt->selVal1a)
+ && (event.dataA() < cmt->selVal1b))
+ return false;
+ break;
+ }
+ switch (cmt->selVal2) {
+ case Ignore:
+ break;
+ case Equal:
+ if (event.dataB() != cmt->selVal2a)
+ return false;
+ break;
+ case Unequal:
+ if (event.dataB() == cmt->selVal2a)
+ return false;
+ break;
+ case Higher:
+ if (event.dataB() <= cmt->selVal2a)
+ return false;
+ break;
+ case Lower:
+ if (event.dataB() >= cmt->selVal2a)
+ return false;
+ break;
+ case Inside:
+ if ((event.dataB() < cmt->selVal2a)
+ || (event.dataB() >= cmt->selVal2b))
+ return false;
+ break;
+ case Outside:
+ if ((event.dataB() >= cmt->selVal2a)
+ && (event.dataB() < cmt->selVal2b))
+ return false;
+ break;
+ }
+ int len = event.lenTick();
+ switch (cmt->selLen) {
+ case Ignore:
+ break;
+ case Equal:
+ if (len != cmt->selLenA)
+ return false;
+ break;
+ case Unequal:
+ if (len == cmt->selLenA)
+ return false;
+ break;
+ case Higher:
+ if (len <= cmt->selLenA)
+ return false;
+ break;
+ case Lower:
+ if (len >= cmt->selLenA)
+ return false;
+ break;
+ case Inside:
+ if ((len < cmt->selLenA) || (len >= cmt->selLenB))
+ return false;
+ break;
+ case Outside:
+ if ((len >= cmt->selLenA) && (len < cmt->selLenB))
+ return false;
+ break;
+ }
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(event.tick(), &bar, &beat, &tick);
+ int beat1 = cmt->selRangeA / 1000;
+ unsigned tick1 = cmt->selRangeA % 1000;
+ int beat2 = cmt->selRangeB / 1000;
+ unsigned tick2 = cmt->selRangeB % 1000;
+ switch (cmt->selRange) {
+ case Ignore:
+ break;
+ case Equal:
+ if (beat != beat1 || tick != tick1)
+ return false;
+ break;
+ case Unequal:
+ if (beat == beat1 && tick == tick1)
+ return false;
+ break;
+ case Higher:
+ if (beat <= beat1)
+ return false;
+ if (beat == beat1 && tick <= tick1)
+ return false;
+ break;
+ case Lower:
+ if (beat >= beat1)
+ return false;
+ if (beat == beat1 && tick >= tick1)
+ return false;
+ break;
+ case Inside:
+ if ((beat < beat1) || (beat >= beat2))
+ return false;
+ if (beat == beat1 && tick < tick1)
+ return false;
+ if (beat == beat2 && tick >= tick2)
+ return false;
+ break;
+ case Outside:
+ if ((beat >= beat1) || (beat < beat2))
+ return false;
+ if (beat == beat1 && tick >= tick1)
+ return false;
+ if (beat == beat2 && tick < tick2)
+ return false;
+ break;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void MidiTransformerDialog::apply()
+ {
+ int flags = 0;
+ song->startUndo();
+ audio->msgIdle(true);
+ bool copyExtract = (data->cmt->funcOp == Copy)
+ || (data->cmt->funcOp == Extract);
+
+ MidiTrackList* tracks = song->midis();
+ MidiTrackList tl;
+ for (iMidiTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ if (data->cmt->selectedTracks && !(*t)->selected())
+ continue;
+ MidiTrack* newTrack = 0;
+ PartList *pl = (*t)->parts();
+ if (copyExtract) {
+ // check wether we must generate a new track
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ MidiPart* part = (MidiPart *) p->second;
+ EventList* el = part->events();
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event event = i->second;
+ unsigned tick = event.tick();
+ if (data->cmt->insideLoop && (tick < song->lpos() || tick >= song->rpos()))
+ continue;
+ if (isSelected(event, part)) {
+ newTrack = new MidiTrack();
+ tl.push_back(newTrack);
+ break;
+ }
+ }
+ if (newTrack)
+ break;
+ }
+ }
+
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ MidiPart* part = (MidiPart *) p->second;
+ MidiPart* newPart = 0;
+ EventList* el = part->events();
+ if (copyExtract) {
+ // check wether we must generate a new part
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event event = i->second;
+ unsigned tick = event.tick();
+ if (data->cmt->insideLoop && (tick < song->lpos() || tick >= song->rpos()))
+ continue;
+ if (isSelected(event, part)) {
+ newPart = new MidiPart(newTrack);
+ newPart->setName(part->name());
+ newPart->setColorIndex(part->colorIndex());
+ newPart->setTick(part->tick());
+ newPart->setLenTick(part->lenTick());
+ song->addPart(newPart);
+ flags |= SC_PART_INSERTED;
+ break;
+ }
+ }
+ }
+ EventList pel;
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event event = i->second;
+ unsigned tick = event.tick();
+ if (data->cmt->insideLoop && (tick < song->lpos() || tick >= song->rpos()))
+ continue;
+ bool flag = isSelected(event, part);
+ if (data->cmt->funcOp == Select)
+ event.setSelected(flag);
+ else if (flag)
+ pel.add(event);
+ }
+ for (iEvent i = pel.begin(); i != pel.end(); ++i) {
+ Event event = i->second;
+ processEvent(event, part, newPart);
+ }
+ }
+ }
+ if (!tl.empty()) {
+ flags |= SC_TRACK_INSERTED;
+ for (iTrack t = tl.begin(); t != tl.end(); ++t) {
+ song->insertTrack0(*t, -1);
+ }
+ }
+
+ switch(data->cmt->funcOp) {
+ case Select:
+ flags |= SC_SELECTION;
+ break;
+ case Quantize:
+ flags |= SC_EVENT_MODIFIED;
+ break;
+ case Delete:
+ flags |= SC_EVENT_REMOVED;
+ break;
+ case Transform:
+ flags |= SC_EVENT_MODIFIED;
+ break;
+ case Insert:
+ flags |= SC_EVENT_INSERTED;
+ break;
+ case Copy:
+ flags |= SC_EVENT_INSERTED;
+ case Extract:
+ break;
+ }
+ audio->msgIdle(false);
+ song->endUndo(flags);
+ }
+
+//---------------------------------------------------------
+// setValOp
+//---------------------------------------------------------
+
+void MidiTransformerDialog::setValOp(QWidget* a, QWidget* b, ValOp op)
+ {
+ switch (op) {
+ case Ignore:
+ a->setEnabled(false);
+ b->setEnabled(false);
+ break;
+ case Equal:
+ case Unequal:
+ case Higher:
+ case Lower:
+ a->setEnabled(true);
+ b->setEnabled(false);
+ break;
+ case Inside:
+ case Outside:
+ a->setEnabled(true);
+ b->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// selEventOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selEventOpSel(int val)
+ {
+ selType->setEnabled(val != All);
+ data->cmt->selEventOp = ValOp(val);
+ selVal1aChanged(data->cmt->selVal1a);
+ selVal1bChanged(data->cmt->selVal1b);
+ }
+
+//---------------------------------------------------------
+// selTypeSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selTypeSel(int val)
+ {
+ data->cmt->selType = EventType(eventTypeTable[val]);
+ selVal1aChanged(data->cmt->selVal1a);
+ selVal1bChanged(data->cmt->selVal1b);
+ }
+
+//---------------------------------------------------------
+// selVal1OpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal1OpSel(int val)
+ {
+ setValOp(selVal1a, selVal1b, ValOp(val));
+ data->cmt->selVal1 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selVal2OpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal2OpSel(int val)
+ {
+ setValOp(selVal2a, selVal2b, ValOp(val));
+ data->cmt->selVal2 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selLenOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selLenOpSel(int val)
+ {
+ setValOp(selLenA, selLenB, ValOp(val));
+ data->cmt->selLen = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selRangeOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selRangeOpSel(int val)
+ {
+ setValOp(selBarA, selBarB, ValOp(val));
+ data->cmt->selRange = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// procEventOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procEventOpSel(int val)
+ {
+ TransformOperator op = val == 0 ? Keep : Fix;
+ procType->setEnabled(op == Fix);
+ data->cmt->procEvent = op;
+ }
+
+//---------------------------------------------------------
+// procEventTypeSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procEventTypeSel(int val)
+ {
+ data->cmt->eventType = EventType(eventTypeTable[val]);
+ }
+
+//---------------------------------------------------------
+// procVal1OpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal1OpSel(int val)
+ {
+ data->cmt->procVal1 = TransformOperator(val);
+ switch(TransformOperator(val)) {
+ case Keep:
+ case Invert:
+ procVal1a->setEnabled(false);
+ procVal1b->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procVal1a->setEnabled(true);
+// procVal1a->setPrecision(2);
+ procVal1b->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ case Flip:
+// procVal1a->setPrecision(0);
+ procVal1a->setEnabled(true);
+ procVal1b->setEnabled(false);
+ break;
+ case Random:
+ case ScaleMap:
+ case Dynamic:
+// procVal1a->setPrecision(0);
+ procVal1a->setEnabled(true);
+ procVal1b->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procVal2OpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal2OpSel(int val)
+ {
+ TransformOperator op = TransformOperator(procVal2Map[val]);
+ data->cmt->procVal2 = op;
+
+ switch (op) {
+ case Keep:
+ case Invert:
+ procVal2a->setEnabled(false);
+ procVal2b->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procVal2a->setEnabled(true);
+// procVal2a->setPrecision(2);
+ procVal2b->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+// procVal2a->setPrecision(0);
+ procVal2a->setEnabled(true);
+ procVal2b->setEnabled(false);
+ break;
+ case Random:
+ case Dynamic:
+// procVal2a->setPrecision(0);
+ procVal2a->setEnabled(true);
+ procVal2b->setEnabled(true);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procLenOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procLenOpSel(int val)
+ {
+ TransformOperator op = TransformOperator(val);
+ data->cmt->procLen = op;
+
+ switch (op) {
+ case Keep:
+ case Invert:
+ procLenA->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+// procLenA->setPrecision(0);
+ procLenA->setEnabled(true);
+ break;
+ case Multiply:
+ case Divide:
+// procLenA->setPrecision(2);
+ procLenA->setEnabled(true);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procPosOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procPosOpSel(int val)
+ {
+ TransformOperator op = TransformOperator(val);
+ data->cmt->procPos = op;
+
+ switch (op) {
+ case Keep:
+ case Invert:
+ procPosA->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+// procPosA->setPrecision(2);
+ procPosA->setEnabled(true);
+ break;
+ case Plus:
+ case Minus:
+// procPosA->setPrecision(0);
+ procPosA->setEnabled(true);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// funcOpSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::funcOpSel(int val)
+ {
+ funcQuantVal->setEnabled(val == Quantize);
+ bool isFuncOp = val == Transform || val == Insert;
+
+ procEventOp->setEnabled(isFuncOp);
+ procType->setEnabled(isFuncOp);
+ procVal1Op->setEnabled(isFuncOp);
+ procVal1a->setEnabled(isFuncOp);
+ procVal1b->setEnabled(isFuncOp);
+ procVal2Op->setEnabled(isFuncOp);
+ procVal2a->setEnabled(isFuncOp);
+ procVal2b->setEnabled(isFuncOp);
+ procLenOp->setEnabled(isFuncOp);
+ procLenA->setEnabled(isFuncOp);
+ procPosOp->setEnabled(isFuncOp);
+ procPosA->setEnabled(isFuncOp);
+ if (isFuncOp) {
+ procEventOpSel(data->cmt->procEvent);
+ procVal1OpSel(data->cmt->procVal1);
+ procVal2OpSel(data->cmt->procVal2);
+ procLenOpSel(data->cmt->procLen);
+ procPosOpSel(data->cmt->procPos);
+ }
+ data->cmt->funcOp = TransformFunction(val);
+ }
+
+//---------------------------------------------------------
+// presetNew
+//---------------------------------------------------------
+
+void MidiTransformerDialog::presetNew()
+ {
+ QString name;
+ for (int i = 0;; ++i) {
+ name.sprintf("New-%d", i);
+ iMidiTransformation imt;
+ for (imt = mtlist.begin(); imt != mtlist.end(); ++imt) {
+ if (name == (*imt)->name)
+ break;
+ }
+ if (imt == mtlist.end())
+ break;
+ }
+ MidiTransformation* mt = new MidiTransformation(name);
+ Q3ListBoxText* lbi = new Q3ListBoxText(presetList, name);
+ mtlist.push_back(mt);
+ presetList->setCurrentItem(lbi);
+ }
+
+//---------------------------------------------------------
+// presetDelete
+//---------------------------------------------------------
+
+void MidiTransformerDialog::presetDelete()
+ {
+ if (data->cindex != -1) {
+ iMidiTransformation mt = mtlist.begin();
+ for (int i = 0; i < data->cindex; ++i, ++mt) {
+ mtlist.erase(mt);
+ presetList->removeItem(data->cindex);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// presetChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::presetChanged(Q3ListBoxItem* item)
+ {
+ data->cindex = presetList->index(item);
+ iMidiTransformation i;
+ for (i = mtlist.begin(); i != mtlist.end(); ++i) {
+ if (item->text() == (*i)->name) {
+ data->cmt = *i;
+ break;
+ }
+ }
+ if (i == mtlist.end()) {
+ printf("MidiTransformerDialog::presetChanged: not found\n");
+ return;
+ }
+ nameEntry->setText(data->cmt->name);
+ commentEntry->setText(data->cmt->comment);
+
+ selEventOp->setCurrentItem(data->cmt->selEventOp);
+ selEventOpSel(data->cmt->selEventOp);
+
+ for (unsigned i = 0; i < sizeof(eventTypeTable)/sizeof(*eventTypeTable); ++i) {
+ if (eventTypeTable[i] == data->cmt->selType) {
+ selType->setCurrentItem(i);
+ break;
+ }
+ }
+
+ selVal1Op->setCurrentItem(data->cmt->selVal1);
+ selVal1OpSel(data->cmt->selVal1);
+
+ selVal2Op->setCurrentItem(data->cmt->selVal2);
+ selVal2OpSel(data->cmt->selVal2);
+
+ selLenOp->setCurrentItem(data->cmt->selLen);
+ selLenOpSel(data->cmt->selLen);
+
+ selRangeOp->setCurrentItem(data->cmt->selRange);
+ selRangeOpSel(data->cmt->selRange);
+
+ funcOp->setCurrentItem(data->cmt->funcOp);
+ funcOpSel(data->cmt->funcOp);
+
+ // TransformOperator procEvent: Keep, Fix
+ procEventOp->setCurrentItem(data->cmt->procEvent == Fix);
+
+ procEventOpSel(data->cmt->procEvent);
+
+ procVal1Op->setCurrentItem(data->cmt->procVal1);
+ procVal1OpSel(data->cmt->procVal1);
+
+ for (unsigned i = 0; i < sizeof(procVal2Map)/sizeof(*procVal2Map); ++i) {
+ if (procVal2Map[i] == data->cmt->procVal2) {
+ procVal2Op->setCurrentItem(i);
+ break;
+ }
+ }
+ procLenOp->setCurrentItem(data->cmt->procLen);
+ procLenOpSel(data->cmt->procLen);
+
+ procPosOp->setCurrentItem(data->cmt->procPos);
+ procPosOpSel(data->cmt->procPos);
+
+ selVal1aChanged(data->cmt->selVal1a);
+ selVal1bChanged(data->cmt->selVal1b);
+ selVal2a->setValue(data->cmt->selVal2a);
+ selVal2b->setValue(data->cmt->selVal2b);
+ selLenA->setValue(data->cmt->selLenA);
+ selLenB->setValue(data->cmt->selLenB);
+ selBarA->setValue(data->cmt->selRangeA);
+ selBarB->setValue(data->cmt->selRangeB);
+ procVal1a->setValue(data->cmt->procVal1a);
+ procVal1b->setValue(data->cmt->procVal1b);
+ procVal2a->setValue(data->cmt->procVal2a);
+ procVal2b->setValue(data->cmt->procVal2b);
+ procLenA->setValue(data->cmt->procLenA);
+ procPosA->setValue(data->cmt->procPosA);
+ funcQuantVal->setValue(data->cmt->quantVal);
+
+ selectedTracks->setChecked(data->cmt->selectedTracks);
+ selectedTracksChanged(data->cmt->selectedTracks);
+ insideLoop->setChecked(data->cmt->insideLoop);
+ insideLoopChanged(data->cmt->insideLoop);
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::nameChanged(const QString& s)
+ {
+ data->cmt->name = s;
+ Q3ListBoxItem* item = presetList->item(data->cindex);
+ if (s != item->text()) {
+ disconnect(presetList, SIGNAL(highlighted(Q3ListBoxItem*)),
+ this, SLOT(presetChanged(Q3ListBoxItem*)));
+ presetList->changeItem(s, data->cindex);
+ connect(presetList, SIGNAL(highlighted(Q3ListBoxItem*)),
+ SLOT(presetChanged(Q3ListBoxItem*)));
+ }
+ }
+
+//---------------------------------------------------------
+// commentChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::commentChanged()
+ {
+ data->cmt->comment = commentEntry->text();
+ }
+
+//---------------------------------------------------------
+// selVal1aChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal1aChanged(int val)
+ {
+ data->cmt->selVal1a = val;
+ if ((data->cmt->selEventOp != All)
+ && (data->cmt->selType == Note)) {
+ selVal1a->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1a->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal1bChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal1bChanged(int val)
+ {
+ data->cmt->selVal1b = val;
+ if ((data->cmt->selEventOp != All)
+ && (data->cmt->selType == Note)) {
+ selVal1b->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1b->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal2aChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal2aChanged(int val)
+ {
+ data->cmt->selVal2a = val;
+ }
+
+//---------------------------------------------------------
+// selVal2bChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selVal2bChanged(int val)
+ {
+ data->cmt->selVal2b = val;
+ }
+
+//---------------------------------------------------------
+// selLenAChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selLenAChanged(int val)
+ {
+ data->cmt->selLenA = val;
+ }
+
+//---------------------------------------------------------
+// selLenBChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selLenBChanged(int val)
+ {
+ data->cmt->selLenB = val;
+ }
+
+//---------------------------------------------------------
+// selBarAChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selBarAChanged(int val)
+ {
+ data->cmt->selRangeA = val;
+ }
+
+//---------------------------------------------------------
+// selBarBChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selBarBChanged(int val)
+ {
+ data->cmt->selRangeB = val;
+ }
+
+//---------------------------------------------------------
+// procVal1aChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal1aChanged(int val)
+ {
+ data->cmt->procVal1a = val;
+ }
+
+//---------------------------------------------------------
+// procVal1bChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal1bChanged(int val)
+ {
+ data->cmt->procVal1b = val;
+ }
+
+//---------------------------------------------------------
+// procVal2aChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal2aChanged(int val)
+ {
+ data->cmt->procVal2a = val;
+ }
+
+//---------------------------------------------------------
+// procVal2bChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procVal2bChanged(int val)
+ {
+ data->cmt->procVal2b = val;
+ }
+
+//---------------------------------------------------------
+// procLenAChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procLenAChanged(int val)
+ {
+ data->cmt->procLenA = val;
+ }
+
+//---------------------------------------------------------
+// procPosAChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::procPosAChanged(int val)
+ {
+ data->cmt->procPosA = val;
+ }
+
+//---------------------------------------------------------
+// funcQuantValSel
+//---------------------------------------------------------
+
+void MidiTransformerDialog::funcQuantValSel(int val)
+ {
+ data->cmt->quantVal = val;
+ }
+
+//---------------------------------------------------------
+// processAllChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::processAllChanged(bool val)
+ {
+ if (val == true) {
+ selectedTracks->setChecked(false);
+ insideLoop->setChecked(false);
+ data->cmt->selectedTracks = false;
+ data->cmt->insideLoop = false;
+ }
+ }
+
+//---------------------------------------------------------
+// selectedTracksChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::selectedTracksChanged(bool val)
+ {
+ data->cmt->selectedTracks = val;
+ processAll->setChecked(!val && !data->cmt->insideLoop);
+ }
+
+//---------------------------------------------------------
+// insideLoopChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::insideLoopChanged(bool val)
+ {
+ data->cmt->insideLoop = val;
+ processAll->setChecked(!data->cmt->selectedTracks && !val);
+ }
+
diff --git a/muse_qt4_evolution/muse/miditransform.h b/muse_qt4_evolution/muse/miditransform.h
new file mode 100644
index 00000000..1931ce78
--- /dev/null
+++ b/muse_qt4_evolution/muse/miditransform.h
@@ -0,0 +1,113 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDITRANSFORM_H__
+#define __MIDITRANSFORM_H__
+
+#include "widgets/transformbase.h"
+
+class MidiTransformation;
+class MidiTransformPrivate;
+class Event;
+class Part;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+enum ValOp {
+ All=0, Ignore=0, Equal=1, Unequal=2, Higher=3, Lower=4,
+ Inside=5, Outside=6
+ };
+
+enum TransformFunction {
+ Select, Quantize, Delete, Transform, Insert, Copy, Extract
+ };
+
+enum TransformOperator {
+ Keep, Plus, Minus, Multiply, Divide, Fix, Value, Invert,
+ ScaleMap, Flip, Dynamic, Random
+ };
+
+//---------------------------------------------------------
+// MidiTransformDialog
+//---------------------------------------------------------
+
+class MidiTransformerDialog : public MidiTransformDialogBase {
+ Q_OBJECT
+ MidiTransformPrivate* data;
+
+ virtual void accept();
+// virtual void reject();
+ void setValOp(QWidget* a, QWidget* b, ValOp op);
+ void processEvent(Event&, Part*, Part*);
+ bool isSelected(Event&, Part*);
+ void transformEvent(Event&, Part*, Part*);
+
+ private slots:
+ void apply();
+ void presetNew();
+ void presetDelete();
+
+ void selEventOpSel(int);
+ void selTypeSel(int);
+ void selVal1OpSel(int);
+ void selVal2OpSel(int);
+ void selLenOpSel(int);
+ void selRangeOpSel(int);
+ void procEventOpSel(int);
+ void procEventTypeSel(int);
+ void procVal1OpSel(int);
+ void procVal2OpSel(int);
+ void procLenOpSel(int);
+ void procPosOpSel(int);
+ void funcOpSel(int);
+ void presetChanged(QListWidgetItem*);
+ void nameChanged(const QString&);
+ void commentChanged();
+ void selVal1aChanged(int);
+ void selVal1bChanged(int);
+ void selVal2aChanged(int);
+ void selVal2bChanged(int);
+ void selLenAChanged(int);
+ void selLenBChanged(int);
+ void selBarAChanged(int);
+ void selBarBChanged(int);
+ void procVal1aChanged(int);
+ void procVal1bChanged(int);
+ void procVal2aChanged(int);
+ void procVal2bChanged(int);
+ void procLenAChanged(int);
+ void procPosAChanged(int);
+ void funcQuantValSel(int);
+ void processAllChanged(bool);
+ void selectedTracksChanged(bool);
+ void insideLoopChanged(bool);
+
+ public:
+ MidiTransformerDialog(QWidget* parent = 0, const char* name = 0,
+ bool modal = false, Qt::WFlags fl = 0);
+ ~MidiTransformerDialog();
+ };
+
+extern void writeMidiTransforms(Xml& xml);
+extern void readMidiTransform(QDomNode);
+#endif
diff --git a/muse_qt4_evolution/muse/mixer.cpp b/muse_qt4_evolution/muse/mixer.cpp
new file mode 100644
index 00000000..b3e5ce06
--- /dev/null
+++ b/muse_qt4_evolution/muse/mixer.cpp
@@ -0,0 +1,397 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "muse.h"
+#include "mixer.h"
+#include "song.h"
+#include "icons.h"
+#include "astrip.h"
+#include "mstrip.h"
+#include "routedialog.h"
+#include "synth.h"
+#include "midiinport.h"
+#include "midioutport.h"
+
+extern void populateAddTrack(QMenu* addTrack);
+
+//---------------------------------------------------------
+// Mixer
+//
+// inputs | synthis | tracks | groups | master
+//---------------------------------------------------------
+
+Mixer::Mixer(QWidget* parent, MixerConfig* c)
+ : QMainWindow(parent)
+ {
+ mustUpdateMixer = false;
+ cfg = c;
+ routingDialog = 0;
+ setWindowTitle(tr("MusE: Mixer"));
+ setWindowIcon(*museIcon);
+
+ QMenu* menuCreate = menuBar()->addMenu(tr("&Create"));
+ populateAddTrack(menuCreate);
+
+ menuView = menuBar()->addMenu(tr("&View"));
+ routingAction = menuView->addAction(tr("Routing"), this, SLOT(toggleRouteDialog()));
+ routingAction->setCheckable(true);
+
+ showMidiTracksId = menuView->addAction(tr("Show Midi Tracks"));
+ showMidiOutPortId = menuView->addAction(tr("Show Midi Out Ports"));
+ showMidiInPortId = menuView->addAction(tr("Show Midi In Ports"));
+
+ menuView->addSeparator();
+
+ showWaveTracksId = menuView->addAction(tr("Show Wave Tracks"));
+ showOutputTracksId = menuView->addAction(tr("Show Output Tracks"));
+ showGroupTracksId = menuView->addAction(tr("Show Group Tracks"));
+ showInputTracksId = menuView->addAction(tr("Show Input Tracks"));
+ showSyntiTracksId = menuView->addAction(tr("Show Synthesizer"));
+ connect(menuView, SIGNAL(triggered(QAction*)), SLOT(showTracksChanged(QAction*)));
+
+ showMidiTracksId->setCheckable(true);
+ showMidiInPortId->setCheckable(true);
+ showMidiOutPortId->setCheckable(true);
+ showWaveTracksId->setCheckable(true);
+ showOutputTracksId->setCheckable(true);
+ showGroupTracksId->setCheckable(true);
+ showInputTracksId->setCheckable(true);
+ showSyntiTracksId->setCheckable(true);
+
+ QScrollArea* view = new QScrollArea;
+ view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setCentralWidget(view);
+
+ central = new QWidget;
+ layout = new QHBoxLayout;
+ central->setLayout(layout);
+ layout->setSpacing(0);
+ layout->setMargin(0);
+ view->setWidget(central);
+ view->setWidgetResizable(true);
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ song->update(); // calls update mixer
+ }
+
+//---------------------------------------------------------
+// addStrip
+//---------------------------------------------------------
+
+void Mixer::addStrip(Track* t, int idx)
+ {
+ StripList::iterator si = stripList.begin();
+ for (int i = 0; i < idx; ++i) {
+ if (si != stripList.end())
+ ++si;
+ }
+ if (si != stripList.end() && (*si)->getTrack() == t)
+ return;
+
+ StripList::iterator nsi = si;
+ ++nsi;
+ if (si != stripList.end()
+ && nsi != stripList.end()
+ && (*nsi)->getTrack() == t) {
+ layout->removeWidget(*si);
+ delete *si;
+ stripList.erase(si);
+ }
+ else {
+ Strip* strip;
+ switch(t->type()) {
+ case Track::MIDI_IN:
+ strip = new MidiInPortStrip(this, (MidiInPort*)t, true);
+ break;
+ case Track::MIDI_OUT:
+ strip = new MidiOutPortStrip(this, (MidiOutPort*)t, true);
+ break;
+ case Track::MIDI:
+ strip = new MidiStrip(this, (MidiTrack*)t, true);
+ break;
+ case Track::MIDI_SYNTI:
+ strip = new MidiSyntiStrip(this, (MidiSynti*)t, true);
+ break;
+ default:
+ strip = new AudioStrip(this, (AudioTrack*)t, true);
+ break;
+ }
+ layout->insertWidget(idx, strip);
+ stripList.insert(si, strip);
+ strip->show();
+ }
+ }
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void Mixer::clear()
+ {
+ QLayoutItem* i;
+ while ((i = layout->takeAt(0))) {
+ if (i->widget())
+ delete i->widget();
+ delete i;
+ }
+ stripList.clear();
+ }
+
+//---------------------------------------------------------
+// updateMixer
+//---------------------------------------------------------
+
+void Mixer::updateMixer(int action)
+ {
+ showMidiTracksId->setChecked(cfg->showMidiTracks);
+ showMidiInPortId->setChecked(cfg->showMidiInPorts);
+ showMidiOutPortId->setChecked(cfg->showMidiOutPorts);
+ showWaveTracksId->setChecked(cfg->showWaveTracks);
+ showOutputTracksId->setChecked(cfg->showOutputTracks);
+ showGroupTracksId->setChecked(cfg->showGroupTracks);
+ showInputTracksId->setChecked(cfg->showInputTracks);
+ showSyntiTracksId->setChecked(cfg->showSyntiTracks);
+
+ if (action == STRIP_REMOVED) {
+ foreach(Strip* strip, stripList) {
+ Track* track = strip->getTrack();
+ if (song->trackExists(track))
+ continue;
+ layout->removeWidget(strip);
+ delete strip;
+ stripList.removeAt(stripList.indexOf(strip));
+ }
+ int idx = stripList.size();
+ setMaximumWidth(STRIP_WIDTH * idx + 4);
+ central->setFixedWidth(STRIP_WIDTH * idx);
+ if (idx < 4)
+ setMinimumWidth(idx * STRIP_WIDTH + 4);
+ return;
+ }
+
+ clear();
+
+ int idx = 0;
+ //---------------------------------------------------
+ // generate Input Strips
+ //---------------------------------------------------
+
+ if (cfg->showInputTracks) {
+ InputList* itl = song->inputs();
+ for (iAudioInput i = itl->begin(); i != itl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // Synthesizer Strips
+ //---------------------------------------------------
+
+ if (cfg->showSyntiTracks) {
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // generate Wave Track Strips
+ //---------------------------------------------------
+
+ if (cfg->showWaveTracks) {
+ WaveTrackList* wtl = song->waves();
+ for (iWaveTrack i = wtl->begin(); i != wtl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // generate Midi strips
+ //---------------------------------------------------
+
+ if (cfg->showMidiInPorts) {
+ MidiInPortList* mpl = song->midiInPorts();
+ for (iMidiInPort i = mpl->begin(); i != mpl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ if (cfg->showMidiSyntiPorts) {
+ MidiSyntiList* mpl = song->midiSyntis();
+ for (iMidiSynti i = mpl->begin(); i != mpl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ if (cfg->showMidiTracks) {
+ MidiTrackList* mtl = song->midis();
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ if (cfg->showMidiOutPorts) {
+ MidiOutPortList* mpl = song->midiOutPorts();
+ for (iMidiOutPort i = mpl->begin(); i != mpl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // Groups
+ //---------------------------------------------------
+
+ if (cfg->showGroupTracks) {
+ GroupList* gtl = song->groups();
+ for (iAudioGroup i = gtl->begin(); i != gtl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // Master
+ //---------------------------------------------------
+
+ if (cfg->showOutputTracks) {
+ OutputList* otl = song->outputs();
+ for (iAudioOutput i = otl->begin(); i != otl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+ setMaximumWidth(STRIP_WIDTH * idx + 4);
+ central->setFixedWidth(STRIP_WIDTH * idx);
+ if (idx < 4)
+ setMinimumWidth(idx * STRIP_WIDTH + 4);
+ layout->update();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void Mixer::songChanged(int flags)
+ {
+ int action = NO_UPDATE;
+ if (flags == -1)
+ action = UPDATE_ALL;
+ else {
+ if (flags & SC_TRACK_REMOVED)
+ action |= STRIP_REMOVED;
+ if (flags & SC_TRACK_INSERTED)
+ action |= STRIP_INSERTED;
+ }
+ if (action != NO_UPDATE)
+ updateMixer(action);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void Mixer::closeEvent(QCloseEvent* e)
+ {
+ emit closed();
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// toggleRouteDialog
+//---------------------------------------------------------
+
+void Mixer::toggleRouteDialog()
+ {
+ showRouteDialog(routingAction->isChecked());
+ }
+
+//---------------------------------------------------------
+// showRouteDialog
+//---------------------------------------------------------
+
+void Mixer::showRouteDialog(bool on)
+ {
+ if (on && routingDialog == 0) {
+ routingDialog = new RouteDialog(this);
+ connect(routingDialog, SIGNAL(closed()), SLOT(routingDialogClosed()));
+ }
+ if (routingDialog)
+ routingDialog->setShown(on);
+ routingAction->setChecked(on);
+ }
+
+//---------------------------------------------------------
+// routingDialogClosed
+//---------------------------------------------------------
+
+void Mixer::routingDialogClosed()
+ {
+ routingAction->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// showTracksChanged
+//---------------------------------------------------------
+
+void Mixer::showTracksChanged(QAction* id)
+ {
+ bool val = id->isChecked();
+ if (id == showMidiTracksId)
+ cfg->showMidiTracks = val;
+ else if (id == showOutputTracksId)
+ cfg->showOutputTracks = val;
+ else if (id == showWaveTracksId)
+ cfg->showWaveTracks = val;
+ else if (id == showGroupTracksId)
+ cfg->showGroupTracks = val;
+ else if (id == showInputTracksId)
+ cfg->showInputTracks = val;
+ else if (id == showSyntiTracksId)
+ cfg->showSyntiTracks = val;
+ else if (id == showMidiInPortId)
+ cfg->showMidiInPorts = val;
+ else if (id == showMidiOutPortId)
+ cfg->showMidiOutPorts = val;
+ updateMixer(UPDATE_ALL);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Mixer::write(Xml& xml, const char* name)
+ {
+ xml.stag(QString(name));
+ xml.tag("geometry", geometry());
+ xml.tag("showMidiTracks", cfg->showMidiTracks);
+ xml.tag("showOutputTracks", cfg->showOutputTracks);
+ xml.tag("showWaveTracks", cfg->showWaveTracks);
+ xml.tag("showGroupTracks", cfg->showGroupTracks);
+ xml.tag("showInputTracks", cfg->showInputTracks);
+ xml.tag("showSyntiTracks", cfg->showSyntiTracks);
+ xml.tag("showMidiInPorts", cfg->showMidiInPorts);
+ xml.tag("showMidiOutPorts", cfg->showMidiOutPorts);
+ xml.etag(name);
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void Mixer::heartBeat()
+ {
+ if (mustUpdateMixer) {
+ updateMixer(STRIP_INSERTED | STRIP_REMOVED);
+ mustUpdateMixer = false;
+ }
+ foreach(Strip* s, stripList)
+ s->heartBeat();
+ }
+
diff --git a/muse_qt4_evolution/muse/mixer.h b/muse_qt4_evolution/muse/mixer.h
new file mode 100644
index 00000000..62c526a6
--- /dev/null
+++ b/muse_qt4_evolution/muse/mixer.h
@@ -0,0 +1,95 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __AMIXER_H__
+#define __AMIXER_H__
+
+#include "gconfig.h"
+
+class Meter;
+class Track;
+class Slider;
+class Knob;
+class RouteDialog;
+class Strip;
+
+typedef QList<Strip*> StripList;
+
+//---------------------------------------------------------
+// Mixer
+//---------------------------------------------------------
+
+class Mixer : public QMainWindow {
+ Q_OBJECT
+
+ MixerConfig* cfg;
+ StripList stripList;
+ QWidget* central;
+ QHBoxLayout* lbox;
+ Strip* master;
+ QHBoxLayout* layout;
+ QMenu* menuView;
+ RouteDialog* routingDialog;
+ QAction* routingAction;
+
+ QAction* routingId;
+ QAction* showMidiTracksId;
+ QAction* showMidiInPortId;
+ QAction* showMidiOutPortId;
+ QAction* showOutputTracksId;
+ QAction* showWaveTracksId;
+ QAction* showGroupTracksId;
+ QAction* showInputTracksId;
+ QAction* showSyntiTracksId;
+
+ bool mustUpdateMixer;
+
+ virtual void closeEvent(QCloseEvent*);
+ void addStrip(Track*, int);
+ void showRouteDialog(bool);
+
+ enum {
+ NO_UPDATE = 0,
+ STRIP_INSERTED = 1,
+ STRIP_REMOVED = 2,
+ UPDATE_ALL = 4
+ };
+ void updateMixer(int);
+
+ signals:
+ void closed();
+
+ private slots:
+ void songChanged(int);
+ void configChanged() { songChanged(-1); }
+ void toggleRouteDialog();
+ void routingDialogClosed();
+ void showTracksChanged(QAction*);
+
+ public:
+ Mixer(QWidget* parent, MixerConfig*);
+ void clear();
+ void write(Xml&, const char* name);
+ void setUpdateMixer() { mustUpdateMixer = true; }
+ void heartBeat();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/mstrip.cpp b/muse_qt4_evolution/muse/mstrip.cpp
new file mode 100644
index 00000000..64b8132c
--- /dev/null
+++ b/muse_qt4_evolution/muse/mstrip.cpp
@@ -0,0 +1,1211 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2008 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "midictrl.h"
+#include "mstrip.h"
+#include "audio.h"
+#include "song.h"
+#include "mixer.h"
+#include "widgets/simplebutton.h"
+#include "widgets/utils.h"
+#include "audiodev.h"
+#include "synth.h"
+#include "midirack.h"
+#include "midiplugin.h"
+#include "midiinport.h"
+#include "midioutport.h"
+
+#include "awl/midimslider.h"
+#include "awl/midimeter.h"
+#include "awl/midivolentry.h"
+#include "awl/midipanentry.h"
+#include "awl/midipanknob.h"
+#include "awl/knob.h"
+
+enum { KNOB_PAN, KNOB_CHOR_SEND, KNOB_VAR_SEND, KNOB_REV_SEND };
+
+//---------------------------------------------------------
+// addMidiTracks
+// input == true
+// add routes from all possible midi tracks to input
+// route list of track(channel)
+// input == false
+// add routes to all midi tracks to output route
+// list of track(channel)
+//
+// Note: midi tracks do not have channels
+//---------------------------------------------------------
+
+void addMidiTracks(QMenu* menu, Track* track, int channel, bool input)
+ {
+ RouteList* rl = input ? track->inRoutes() : track->outRoutes();
+ RouteNode a(track, channel, RouteNode::TRACK);
+
+ MidiTrackList* tl = song->midis();
+ for (iMidiTrack i = tl->begin();i != tl->end(); ++i) {
+ MidiTrack* track = *i;
+ QAction* action = menu->addAction(track->name());
+ action->setCheckable(true);
+ RouteNode b(track);
+ Route r = input ? Route(b, a) : Route(a, b);
+ action->setData(QVariant::fromValue(r));
+ action->setChecked(rl->indexOf(r) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// addMidiInPorts
+// can only be added to input route lists
+//---------------------------------------------------------
+
+void Strip::addMidiInPorts(QMenu* menu, Track* dtrack, int channel)
+ {
+ RouteList* rl = dtrack->inRoutes();
+ RouteNode dst(dtrack, channel, RouteNode::TRACK);
+
+ MidiInPortList* tl = song->midiInPorts();
+ for (iMidiInPort i = tl->begin();i != tl->end(); ++i) {
+ MidiInPort* track = *i;
+ QMenu* m = menu->addMenu(track->name());
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ a->setCheckable(true);
+ RouteNode src(track, ch, RouteNode::TRACK);
+ Route r = Route(src, dst);
+ a->setData(QVariant::fromValue(r));
+ a->setChecked(rl->indexOf(r) != -1);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// addMidiOutPorts
+// can only be added to output route lists
+//---------------------------------------------------------
+
+void Strip::addMidiOutPorts(QMenu* menu, Track* strack, int channel)
+ {
+ RouteList* rl = strack->outRoutes();
+ RouteNode src(strack, channel, RouteNode::TRACK);
+
+ MidiOutPortList* tl = song->midiOutPorts();
+ for (iMidiOutPort i = tl->begin();i != tl->end(); ++i) {
+ MidiOutPort* op = *i;
+ QMenu* m = menu->addMenu(op->name());
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ a->setCheckable(true);
+ RouteNode dst(op, ch, RouteNode::TRACK);
+ Route r = Route(src, dst);
+ a->setData(QVariant::fromValue(r));
+ a->setChecked(rl->indexOf(r) != -1);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// addSyntiPorts
+// can only be added to output route lists
+//---------------------------------------------------------
+
+static void addSyntiPorts(QMenu* menu, Track* strack, int channel)
+ {
+ RouteList* rl = strack->outRoutes();
+ RouteNode src(strack, channel, RouteNode::TRACK);
+
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i) {
+ SynthI* sy = *i;
+ QMenu* m = menu->addMenu(sy->name());
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ a->setCheckable(true);
+ RouteNode dst(sy, ch, RouteNode::TRACK);
+ Route r = Route(src, dst);
+ a->setData(QVariant::fromValue(r));
+ a->setChecked(rl->indexOf(r) != -1);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// addKnob
+//---------------------------------------------------------
+
+void MidiStrip::addKnob(int ctrl, int idx, const QString& tt, const QString& label,
+ const char* slot, bool enabled, int row)
+ {
+ Awl::FloatEntry* dl;
+ Awl::Knob* knob;
+
+ if (idx == KNOB_PAN) {
+ dl = new Awl::MidiPanEntry(this);
+ knob = new Awl::MidiPanKnob(this);
+ }
+ else {
+ dl = new Awl::MidiVolEntry(this);
+ knob = new Awl::Knob(this);
+ knob->setRange(0.0, 127.0);
+ }
+ knob->setId(ctrl);
+ dl->setId(ctrl);
+ dl->setFrame(true);
+
+ controller[idx].knob = knob;
+ knob->setToolTip(tt);
+ knob->setEnabled(enabled);
+
+ controller[idx].dl = dl;
+ dl->setFixedSize(entrySize);
+ dl->setEnabled(enabled);
+
+ QLabel* lb = new QLabel(label, this);
+ lb->setObjectName("knobLabel");
+ controller[idx].lb = lb;
+ lb->setFixedSize(entrySize);
+ lb->setAlignment(Qt::AlignCenter);
+ lb->setEnabled(enabled);
+
+ grid->addWidget(lb, row, 0);
+ grid->addWidget(dl, row+1, 0);
+ grid->addWidget(knob, row, 1, 2, 1);
+
+ connect(knob, SIGNAL(valueChanged(double,int)), slot);
+ connect(dl, SIGNAL(valueChanged(double,int)), slot);
+ connect(knob, SIGNAL(sliderPressed(int)), SLOT(sliderPressed(int)));
+ connect(knob, SIGNAL(sliderReleased(int)), SLOT(sliderReleased(int)));
+ }
+
+//---------------------------------------------------------
+// MidiStrip
+//---------------------------------------------------------
+
+MidiStrip::MidiStrip(Mixer* m, MidiTrack* t, bool align)
+ : Strip(m, t, align)
+ {
+ volumeTouched = false;
+ panTouched = false;
+ reverbSendTouched = false;
+ variSendTouched = false;
+ chorusSendTouched = false;
+
+ addKnob(CTRL_VARIATION_SEND, KNOB_VAR_SEND, tr("VariationSend"), tr("Var"), SLOT(ctrlChanged(double,int)), true, 1);
+ addKnob(CTRL_REVERB_SEND, KNOB_REV_SEND, tr("ReverbSend"), tr("Rev"), SLOT(ctrlChanged(double,int)), true, 3);
+ addKnob(CTRL_CHORUS_SEND, KNOB_CHOR_SEND, tr("ChorusSend"), tr("Cho"), SLOT(ctrlChanged(double,int)), true, 5);
+
+ //---------------------------------------------------
+ // slider, label, meter
+ //---------------------------------------------------
+
+ slider = new Awl::MidiMeterSlider(this);
+ slider->setId(CTRL_VOLUME);
+ slider->setFixedWidth(40);
+ grid->addWidget(slider, 7, 0, 1, 2, Qt::AlignRight);
+
+ sl = new Awl::MidiVolEntry(this);
+ sl->setId(CTRL_VOLUME);
+ sl->setFixedHeight(entrySize.height());
+
+ connect(slider, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ connect(slider, SIGNAL(sliderPressed(int)), SLOT(sliderPressed(int)));
+ connect(slider, SIGNAL(sliderReleased(int)), SLOT(sliderReleased(int)));
+ connect(sl, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ grid->addWidget(sl, 8, 0, 1, 2);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ addKnob(CTRL_PANPOT, KNOB_PAN, tr("Pan/Balance"), tr("Pan"), SLOT(ctrlChanged(double,int)), true, 9);
+
+ //---------------------------------------------------
+ // --- record
+ // mute, solo
+ //---------------------------------------------------
+
+ SimpleButton* monitor = newMonitorButton();
+ monitor->setFixedHeight(BUTTON_HEIGHT);
+ monitor->setChecked(track->monitor());
+ connect(monitor, SIGNAL(clicked(bool)), SLOT(monitorToggled(bool)));
+ connect(t, SIGNAL(monitorChanged(bool)), monitor, SLOT(setChecked(bool)));
+
+ SimpleButton* record = newRecordButton();
+ record->setFixedHeight(BUTTON_HEIGHT);
+ record->setChecked(track->recordFlag());
+ connect(record, SIGNAL(clicked(bool)), SLOT(recordToggled(bool)));
+ connect(t, SIGNAL(recordChanged(bool)), record, SLOT(setChecked(bool)));
+
+ mute = newMuteButton();
+ mute->setChecked(track->isMute());
+ mute->setFixedHeight(BUTTON_HEIGHT);
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+
+ solo = newSoloButton();
+ solo->setFixedHeight(BUTTON_HEIGHT);
+ solo->setChecked(track->solo());
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+
+ grid->addWidget(monitor, 11, 0);
+ grid->addWidget(record, 11, 1);
+ grid->addWidget(mute, 12, 0);
+ grid->addWidget(solo, 12, 1);
+
+ //---------------------------------------------------
+ // automation mode
+ //---------------------------------------------------
+
+ addAutomationButtons(13);
+
+ //---------------------------------------------------
+ // routing
+ //---------------------------------------------------
+
+ iR = newInRouteButton();
+ grid->addWidget(iR, 14, 0);
+ connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
+ connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ oR = newOutRouteButton();
+ grid->addWidget(oR, 14, 1);
+ connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
+ connect(oR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(track, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(autoReadChanged(bool)), SLOT(autoChanged()));
+ connect(track, SIGNAL(autoWriteChanged(bool)), SLOT(autoChanged()));
+ connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+ autoChanged();
+ controllerChanged(CTRL_VOLUME);
+ controllerChanged(CTRL_PANPOT);
+ controllerChanged(CTRL_VARIATION_SEND);
+ controllerChanged(CTRL_REVERB_SEND);
+ controllerChanged(CTRL_CHORUS_SEND);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiStrip::songChanged(int val)
+ {
+ if (val & SC_TRACK_MODIFIED)
+ updateLabel();
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiStrip::heartBeat()
+ {
+ double a = track->meter(0); // fast_log10(track->meter(0)) * .2f;
+ slider->setMeterVal(a * 0.008);
+ track->setMeter(0, a * 0.8); // hack
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void MidiStrip::controllerChanged(int id)
+ {
+ CVal cv = track->ctrlVal(id);
+ double val = double(cv.i);
+
+ switch (id) {
+ case CTRL_VOLUME:
+ if (!volumeTouched)
+ slider->setValue(val);
+ sl->setValue(val);
+ break;
+ case CTRL_PANPOT:
+ if (!panTouched)
+ controller[KNOB_PAN].knob->setValue(val);
+ controller[KNOB_PAN].dl->setValue(val);
+ break;
+ case CTRL_VARIATION_SEND:
+ if (!variSendTouched)
+ controller[KNOB_VAR_SEND].knob->setValue(val);
+ controller[KNOB_VAR_SEND].dl->setValue(val);
+ break;
+ case CTRL_REVERB_SEND:
+ if (!reverbSendTouched)
+ controller[KNOB_REV_SEND].knob->setValue(val);
+ controller[KNOB_REV_SEND].dl->setValue(val);
+ break;
+ case CTRL_CHORUS_SEND:
+ if (!chorusSendTouched)
+ controller[KNOB_CHOR_SEND].knob->setValue(val);
+ controller[KNOB_CHOR_SEND].dl->setValue(val);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+// called when user changes controller
+//---------------------------------------------------------
+
+void MidiStrip::ctrlChanged(double val, int num)
+ {
+ int ival = int(val);
+ CVal cval;
+ cval.i = ival;
+ song->setControllerVal(track, num, cval);
+ }
+
+//---------------------------------------------------------
+// sliderPressed
+//---------------------------------------------------------
+
+void MidiStrip::sliderPressed(int id)
+ {
+ switch (id) {
+ case CTRL_VOLUME: volumeTouched = true; break;
+ case CTRL_PANPOT: panTouched = true; break;
+ case CTRL_VARIATION_SEND: variSendTouched = true; break;
+ case CTRL_REVERB_SEND: reverbSendTouched = true; break;
+ case CTRL_CHORUS_SEND: chorusSendTouched = true; break;
+ }
+ track->startAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// sliderReleased
+//---------------------------------------------------------
+
+void MidiStrip::sliderReleased(int id)
+ {
+ switch (id) {
+ case CTRL_VOLUME: volumeTouched = false; break;
+ case CTRL_PANPOT: panTouched = false; break;
+ case CTRL_VARIATION_SEND: variSendTouched = false; break;
+ case CTRL_REVERB_SEND: reverbSendTouched = false; break;
+ case CTRL_CHORUS_SEND: chorusSendTouched = false; break;
+ }
+ track->stopAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void MidiStrip::muteToggled(bool val)
+ {
+ song->setMute(track, val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void MidiStrip::soloToggled(bool val)
+ {
+ song->setSolo(track, val);
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void MidiStrip::autoChanged()
+ {
+ bool ar = track->autoRead();
+ bool aw = track->autoWrite();
+
+ // controller are enabled if
+ // autoRead is off
+ // autoRead and autoWrite are on (touch mode)
+
+ bool ec = !ar || (ar && aw);
+ for (unsigned i = 0; i < sizeof(controller)/sizeof(*controller); ++i) {
+ controller[i].knob->setEnabled(ec);
+ controller[i].dl->setEnabled(ec);
+ }
+ slider->setEnabled(ec);
+ sl->setEnabled(ec);
+ }
+
+//---------------------------------------------------------
+// autoReadToggled
+//---------------------------------------------------------
+
+void MidiStrip::autoReadToggled(bool val)
+ {
+ song->setAutoRead(track, val);
+ }
+
+//---------------------------------------------------------
+// autoWriteToggled
+//---------------------------------------------------------
+
+void MidiStrip::autoWriteToggled(bool val)
+ {
+ song->setAutoWrite(track, val);
+ }
+
+//---------------------------------------------------------
+// iRouteShow
+//---------------------------------------------------------
+
+void MidiStrip::iRouteShow()
+ {
+ QMenu* pup = iR->menu();
+ pup->clear();
+ addMidiInPorts(pup, track, -1); // add midi inputs to menu
+ }
+
+//---------------------------------------------------------
+// oRouteShow
+//---------------------------------------------------------
+
+void MidiStrip::oRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+ addMidiOutPorts(pup, track, -1);
+ addSyntiPorts(pup, track, -1);
+ }
+
+//---------------------------------------------------------
+// monitorToggled
+//---------------------------------------------------------
+
+void MidiStrip::monitorToggled(bool val)
+ {
+ song->setMonitor(track, val);
+ }
+
+//---------------------------------------------------------
+// recordToggled
+//---------------------------------------------------------
+
+void MidiStrip::recordToggled(bool val)
+ {
+ song->setRecordFlag(track, !val);
+ }
+
+//---------------------------------------------------------
+// MidiOutPortStrip
+//---------------------------------------------------------
+
+MidiOutPortStrip::MidiOutPortStrip(Mixer* m, MidiOutPort* t, bool align)
+ : Strip(m, t, align)
+ {
+ //---------------------------------------------------
+ // plugin rack
+ //---------------------------------------------------
+
+ MidiRack* rack = new MidiRack(this, t);
+ rack->setFixedHeight(rack->sizeHint().height()+2);
+ grid->addWidget(rack, 1, 0, 1, 2);
+
+
+ if (_align)
+ grid->setRowMinimumHeight(2, STRIP_WIDTH/2);
+
+ volumeTouched = false;
+
+ //---------------------------------------------------
+ // slider, label, meter
+ //---------------------------------------------------
+
+ slider = new Awl::MidiMeterSlider(this);
+ slider->setId(CTRL_MASTER_VOLUME);
+ slider->setRange(0.0, 1024*16.0);
+ slider->setFixedWidth(40);
+ grid->addWidget(slider, 3, 0, 1, 2, Qt::AlignRight);
+
+ sl = new Awl::MidiVolEntry(this);
+ sl->setId(CTRL_MASTER_VOLUME);
+ sl->setMax(128 * 128 - 1);
+// sl->setFont(config.fonts[1]);
+ sl->setFixedHeight(entrySize.height());
+
+ controllerChanged(CTRL_MASTER_VOLUME);
+
+ connect(slider, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ connect(slider, SIGNAL(sliderPressed(int)), SLOT(sliderPressed(int)));
+ connect(slider, SIGNAL(sliderReleased(int)), SLOT(sliderReleased(int)));
+ connect(sl, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ grid->addWidget(sl, 4, 0, 1, 2);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ if (_align)
+ grid->setRowMinimumHeight(5, entrySize.height() * 2);
+
+ //---------------------------------------------------
+ // sync
+ // mute, solo
+ //---------------------------------------------------
+
+ sync = newSyncButton();
+ sync->setFixedHeight(BUTTON_HEIGHT);
+ sync->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ sync->setChecked(((MidiOutPort*)track)->sendSync());
+ grid->addWidget(sync, 6, 0, 1, 2);
+ connect(sync, SIGNAL(clicked(bool)), SLOT(syncToggled(bool)));
+ connect(track, SIGNAL(sendSyncChanged(bool)), sync, SLOT(setChecked(bool)));
+
+ mute = newMuteButton();
+ mute->setChecked(track->isMute());
+ mute->setFixedHeight(BUTTON_HEIGHT);
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+
+ solo = newSoloButton();
+ solo->setFixedHeight(BUTTON_HEIGHT);
+ solo->setChecked(track->solo());
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+
+ grid->addWidget(mute, 7, 0);
+ grid->addWidget(solo, 7, 1);
+
+ //---------------------------------------------------
+ // automation mode
+ //---------------------------------------------------
+
+ addAutomationButtons(8);
+
+ //---------------------------------------------------
+ // output routing
+ //---------------------------------------------------
+
+ iR = newInRouteButton();
+ grid->addWidget(iR, 9, 0);
+ connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
+ connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ oR = newOutRouteButton();
+ grid->addWidget(oR, 9, 1);
+ connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
+ connect(oR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(track, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(autoReadChanged(bool)), SLOT(autoChanged()));
+ connect(track, SIGNAL(autoWriteChanged(bool)), SLOT(autoChanged()));
+ autoChanged();
+ controllerChanged(CTRL_MASTER_VOLUME);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiOutPortStrip::songChanged(int val)
+ {
+ if (val & SC_TRACK_MODIFIED)
+ updateLabel();
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiOutPortStrip::heartBeat()
+ {
+ double a = track->meter(0); // fast_log10(track->meter(0)) * .2f;
+ slider->setMeterVal(a * 0.008);
+ track->setMeter(0, a * 0.8); // hack
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void MidiOutPortStrip::ctrlChanged(double val, int num)
+ {
+ int ival = int(val);
+ CVal cval;
+ cval.i = ival;
+ song->setControllerVal(track, num, cval);
+ }
+
+//---------------------------------------------------------
+// sliderPressed
+//---------------------------------------------------------
+
+void MidiOutPortStrip::sliderPressed(int id)
+ {
+ switch (id) {
+ case CTRL_MASTER_VOLUME: volumeTouched = true; break;
+ }
+ track->startAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// sliderReleased
+//---------------------------------------------------------
+
+void MidiOutPortStrip::sliderReleased(int id)
+ {
+ switch (id) {
+ case CTRL_MASTER_VOLUME: volumeTouched = false; break;
+ }
+ track->stopAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void MidiOutPortStrip::muteToggled(bool val)
+ {
+ song->setMute(track, val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void MidiOutPortStrip::soloToggled(bool val)
+ {
+ song->setSolo(track, val);
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void MidiOutPortStrip::autoChanged()
+ {
+ bool ar = track->autoRead();
+ bool aw = track->autoWrite();
+
+ // controller are enabled if
+ // autoRead is off
+ // autoRead and autoWrite are on (touch mode)
+
+ bool ec = !ar || (ar && aw);
+ slider->setEnabled(ec);
+ sl->setEnabled(ec);
+ }
+
+//---------------------------------------------------------
+// autoReadToggled
+//---------------------------------------------------------
+
+void MidiOutPortStrip::autoReadToggled(bool val)
+ {
+ song->setAutoRead(track, val);
+ }
+
+//---------------------------------------------------------
+// autoWriteToggled
+//---------------------------------------------------------
+
+void MidiOutPortStrip::autoWriteToggled(bool val)
+ {
+ song->setAutoWrite(track, val);
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void MidiOutPortStrip::controllerChanged(int id)
+ {
+ if (id == CTRL_MASTER_VOLUME) {
+ double val = double(track->ctrlVal(id).i);
+ if (!volumeTouched)
+ slider->setValue(val);
+ sl->setValue(val);
+ }
+ }
+
+//---------------------------------------------------------
+// iRouteShow
+//---------------------------------------------------------
+
+void MidiOutPortStrip::iRouteShow()
+ {
+ QMenu* pup = iR->menu();
+ pup->clear();
+
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QMenu* m = pup->addMenu(QString("Channel %1").arg(ch+1));
+ addMidiTracks(m, track, ch, true);
+ addMidiInPorts(m, track, ch);
+ }
+ }
+
+//---------------------------------------------------------
+// oRouteShow
+//---------------------------------------------------------
+
+void MidiOutPortStrip::oRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+ RouteList* orl = track->outRoutes();
+
+ QList<PortName> ol;
+ //
+ // add JACK midi ports to list
+ //
+ ol = audioDriver->inputPorts(true);
+ foreach (PortName ip, ol) {
+ QAction* oa = pup->addAction(ip.name);
+ oa->setCheckable(true);
+ RouteNode dst(ip.port, RouteNode::JACKMIDIPORT);
+ Route r = Route(RouteNode(track), dst);
+ oa->setData(QVariant::fromValue(r));
+ oa->setChecked(orl->indexOf(r) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// syncToggled
+//---------------------------------------------------------
+
+void MidiOutPortStrip::syncToggled(bool val) const
+ {
+ ((MidiOutPort*)track)->setSendSync(val);
+ }
+
+//---------------------------------------------------------
+// MidiInPortStrip
+//---------------------------------------------------------
+
+MidiInPortStrip::MidiInPortStrip(Mixer* m, MidiInPort* t, bool align)
+ : Strip(m, t, align)
+ {
+ //---------------------------------------------------
+ // plugin rack
+ //---------------------------------------------------
+
+ MidiRack* rack = new MidiRack(this, t);
+ rack->setFixedHeight(rack->sizeHint().height()+2);
+ grid->addWidget(rack, 1, 0, 1, 2);
+
+ //---------------------------------------------------
+ // input activity
+ //---------------------------------------------------
+
+ grid->setRowStretch(2, 100);
+
+ QGridLayout* ag = new QGridLayout;
+ ag->setMargin(4);
+ ag->setSpacing(1);
+ QSvgRenderer sr;
+ QPainter painter;
+
+ sr.load(QString(":/xpm/activeon.svg"));
+ QSize aSize(sr.defaultSize());
+ activityOn = new QPixmap(aSize);
+ activityOn->fill(Qt::transparent);
+ painter.begin(activityOn);
+ sr.render(&painter);
+ painter.end();
+
+ sr.load(QString(":/xpm/activeoff.svg"));
+ activityOff = new QPixmap(aSize);
+ activityOff->fill(Qt::transparent);
+ painter.begin(activityOff);
+ sr.render(&painter);
+ painter.end();
+
+ for (int ch = MIDI_CHANNELS-1; ch >= 0; --ch) {
+ QLabel* l = new QLabel(QString("%1").arg(ch+1));
+ l->setObjectName("midiChannelLabel");
+ ag->addWidget(l, ch, 0, Qt::AlignCenter);
+ channelActivity[ch] = new QLabel;
+ ag->addWidget(channelActivity[ch], ch, 1, Qt::AlignCenter);
+ channelActivity[ch]->setPixmap(*activityOff);
+ activity[ch] = 0;
+ }
+ grid->addLayout(ag, 3, 0, 2, Qt::AlignHCenter);
+
+ if (_align)
+ grid->setRowMinimumHeight(4, BUTTON_HEIGHT);
+
+ //---------------------------------------------------
+ // mute, solo
+ // or
+ // record, mixdownfile
+ //---------------------------------------------------
+
+ mute = newMuteButton();
+ mute->setChecked(track->isMute());
+ mute->setFixedHeight(BUTTON_HEIGHT);
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+
+ solo = newSoloButton();
+ solo->setFixedHeight(BUTTON_HEIGHT);
+ solo->setChecked(track->solo());
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+
+ grid->addWidget(mute, 5, 0);
+ grid->addWidget(solo, 5, 1);
+
+ //---------------------------------------------------
+ // output routing
+ //---------------------------------------------------
+
+ if (_align)
+ grid->setRowMinimumHeight(6, BUTTON_HEIGHT);
+
+ iR = newInRouteButton();
+ connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
+ connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ oR = newOutRouteButton();
+ connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
+ connect(oR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ grid->addWidget(iR, 7, 0);
+ grid->addWidget(oR, 7, 1);
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(track, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiInPortStrip::songChanged(int val)
+ {
+ if (val & SC_TRACK_MODIFIED)
+ updateLabel();
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiInPortStrip::heartBeat()
+ {
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ bool isActive = inport()->checkActivity(i);
+ if (activity[i] != isActive) {
+ channelActivity[i]->setPixmap(isActive ? *activityOn : *activityOff);
+ activity[i] = isActive;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void MidiInPortStrip::muteToggled(bool val)
+ {
+ song->setMute(track, val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void MidiInPortStrip::soloToggled(bool val)
+ {
+ song->setSolo(track, val);
+ }
+
+//---------------------------------------------------------
+// iRouteShow
+//---------------------------------------------------------
+
+void MidiInPortStrip::iRouteShow()
+ {
+ QMenu* pup = iR->menu();
+ pup->clear();
+
+ RouteList* irl = track->inRoutes();
+
+ QList<PortName> ol;
+ //
+ // add JACK midi ports to list
+ //
+ ol = audioDriver->outputPorts(true);
+ foreach (PortName ip, ol) {
+ QAction* action = pup->addAction(ip.name);
+ action->setCheckable(true);
+ RouteNode src(ip.port, RouteNode::JACKMIDIPORT);
+ Route r = Route(src, RouteNode(track));
+ action->setData(QVariant::fromValue(r));
+ action->setChecked(irl->indexOf(r) != -1);
+ }
+ }
+
+//---------------------------------------------------------
+// oRouteShow
+//---------------------------------------------------------
+
+void MidiInPortStrip::oRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QMenu* m = pup->addMenu(QString("Channel %1").arg(ch+1));
+ addMidiTracks(m, track, ch, false);
+ addSyntiPorts(m, track, ch);
+ addMidiOutPorts(m, track, ch);
+ }
+ }
+
+//---------------------------------------------------------
+// MidiSyntiStrip
+//---------------------------------------------------------
+
+MidiSyntiStrip::MidiSyntiStrip(Mixer* m, MidiSynti* t, bool align)
+ : Strip(m, t, align)
+ {
+ if (_align)
+ grid->setRowMinimumHeight(1, STRIP_WIDTH/2 * 3);
+
+ volumeTouched = false;
+
+ //---------------------------------------------------
+ // slider, label, meter
+ //---------------------------------------------------
+
+ slider = new Awl::MidiMeterSlider(this);
+ slider->setId(CTRL_MASTER_VOLUME);
+ slider->setRange(0.0, 1024*16.0);
+ slider->setFixedWidth(40);
+ grid->addWidget(slider, 2, 0, 1, 2, Qt::AlignRight);
+
+ sl = new Awl::MidiVolEntry(this);
+ sl->setId(CTRL_MASTER_VOLUME);
+// sl->setFont(config.fonts[1]);
+ sl->setFixedHeight(entrySize.height());
+
+ connect(slider, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ connect(slider, SIGNAL(sliderPressed(int)), SLOT(sliderPressed(int)));
+ connect(slider, SIGNAL(sliderReleased(int)), SLOT(sliderReleased(int)));
+ connect(sl, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double, int)));
+ grid->addWidget(sl, 3, 0, 1, 2);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ if (_align)
+ grid->setRowMinimumHeight(4, STRIP_WIDTH);
+
+ //---------------------------------------------------
+ // sync
+ // mute, solo
+ //---------------------------------------------------
+
+ mute = newMuteButton();
+ mute->setChecked(track->isMute());
+ mute->setFixedHeight(BUTTON_HEIGHT);
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+
+ solo = newSoloButton();
+ solo->setFixedHeight(BUTTON_HEIGHT);
+ solo->setChecked(track->solo());
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+
+ grid->addWidget(mute, 5, 0);
+ grid->addWidget(solo, 5, 1);
+
+ //---------------------------------------------------
+ // automation mode
+ //---------------------------------------------------
+
+ addAutomationButtons(6);
+
+ //---------------------------------------------------
+ // output routing
+ //---------------------------------------------------
+
+ iR = newInRouteButton();
+ grid->addWidget(iR, 7, 0);
+ connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
+ connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ oR = newOutRouteButton();
+ grid->addWidget(oR, 7, 1);
+ connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
+ connect(oR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(track, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(autoReadChanged(bool)), SLOT(autoChanged()));
+ connect(track, SIGNAL(autoWriteChanged(bool)), SLOT(autoChanged()));
+ autoChanged();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiSyntiStrip::songChanged(int val)
+ {
+ if (val & SC_TRACK_MODIFIED)
+ updateLabel();
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiSyntiStrip::heartBeat()
+ {
+ double a = track->meter(0); // fast_log10(track->meter(0)) * .2f;
+ slider->setMeterVal(a * 0.008);
+ track->setMeter(0, a * 0.8); // hack
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void MidiSyntiStrip::ctrlChanged(double val, int num)
+ {
+ int ival = int(val);
+ CVal cval;
+ cval.i = ival;
+ song->setControllerVal(track, num, cval);
+ }
+
+//---------------------------------------------------------
+// sliderPressed
+//---------------------------------------------------------
+
+void MidiSyntiStrip::sliderPressed(int id)
+ {
+ switch (id) {
+ case CTRL_MASTER_VOLUME: volumeTouched = true; break;
+ }
+ track->startAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// sliderReleased
+//---------------------------------------------------------
+
+void MidiSyntiStrip::sliderReleased(int id)
+ {
+ switch (id) {
+ case CTRL_MASTER_VOLUME: volumeTouched = false; break;
+ }
+ track->stopAutoRecord(id);
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void MidiSyntiStrip::muteToggled(bool val)
+ {
+ song->setMute(track, val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void MidiSyntiStrip::soloToggled(bool val)
+ {
+ song->setSolo(track, val);
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void MidiSyntiStrip::autoChanged()
+ {
+ bool ar = track->autoRead();
+ bool aw = track->autoWrite();
+
+ // controller are enabled if
+ // autoRead is off
+ // autoRead and autoWrite are on (touch mode)
+
+ bool ec = !ar || (ar && aw);
+ slider->setEnabled(ec);
+ sl->setEnabled(ec);
+ }
+
+//---------------------------------------------------------
+// autoReadToggled
+//---------------------------------------------------------
+
+void MidiSyntiStrip::autoReadToggled(bool val)
+ {
+ song->setAutoRead(track, val);
+ }
+
+//---------------------------------------------------------
+// autoWriteToggled
+//---------------------------------------------------------
+
+void MidiSyntiStrip::autoWriteToggled(bool val)
+ {
+ song->setAutoWrite(track, val);
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void MidiSyntiStrip::controllerChanged(int id)
+ {
+ if (id == CTRL_MASTER_VOLUME) {
+ double val = double(track->ctrlVal(id).i);
+ if (!volumeTouched)
+ slider->setValue(val);
+ sl->setValue(val);
+ }
+ }
+
+//---------------------------------------------------------
+// oRouteShow
+//---------------------------------------------------------
+
+void MidiSyntiStrip::oRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+ addMidiOutPorts(pup, track, -1);
+ }
+
+//---------------------------------------------------------
+// iRouteShow
+//---------------------------------------------------------
+
+void MidiSyntiStrip::iRouteShow()
+ {
+ QMenu* pup = oR->menu();
+ pup->clear();
+
+ MidiOutPort* t = (MidiOutPort*)track;
+
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ QMenu* m = pup->addMenu(QString("Channel %1").arg(ch+1));
+ addMidiTracks(m, t, ch, false);
+ addMidiInPorts(m, t, ch);
+ }
+ }
diff --git a/muse_qt4_evolution/muse/mstrip.h b/muse_qt4_evolution/muse/mstrip.h
new file mode 100644
index 00000000..058884db
--- /dev/null
+++ b/muse_qt4_evolution/muse/mstrip.h
@@ -0,0 +1,191 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MSTRIP_H__
+#define __MSTRIP_H__
+
+#include "strip.h"
+
+namespace Awl {
+ class MidiMeterSlider;
+ class MidiMeter;
+ class FloatEntry;
+ class MidiVolEntry;
+ class Knob;
+ };
+
+class MidiTrack;
+class MidiOutPort;
+class MidiInPort;
+class MidiChannel;
+class MidiSynti;
+
+//---------------------------------------------------------
+// MidiStrip
+//---------------------------------------------------------
+
+class MidiStrip : public Strip {
+ Q_OBJECT
+
+ Awl::MidiMeterSlider* slider;
+ Awl::MidiVolEntry* sl;
+ QToolButton* iR;
+ QToolButton* oR;
+
+ struct KNOB {
+ Awl::Knob* knob;
+ Awl::FloatEntry* dl;
+ QLabel* lb;
+ } controller[4]; // pan variation reverb chorus
+
+ bool volumeTouched;
+ bool panTouched;
+ bool reverbSendTouched;
+ bool variSendTouched;
+ bool chorusSendTouched;
+
+ void addKnob(int ctrl, int idx, const QString&, const QString&, const char*, bool, int row);
+
+ private slots:
+ virtual void controllerChanged(int id);
+ void ctrlChanged(double val, int num);
+ void muteToggled(bool);
+ void soloToggled(bool);
+ void autoChanged();
+ void sliderPressed(int);
+ void sliderReleased(int);
+ void autoReadToggled(bool);
+ void autoWriteToggled(bool);
+ void iRouteShow();
+ void oRouteShow();
+ void recordToggled(bool);
+ void monitorToggled(bool);
+ QMenu* sendMenu() const { return static_cast<QMenu*>(sender()); }
+
+ public slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiStrip(Mixer*, MidiTrack*, bool align = true);
+ virtual void heartBeat();
+ };
+
+//---------------------------------------------------------
+// MidiOutPortStrip
+//---------------------------------------------------------
+
+class MidiOutPortStrip : public Strip {
+ Q_OBJECT
+
+ Awl::MidiMeterSlider* slider;
+ Awl::MidiVolEntry* sl;
+ QToolButton* oR;
+ QToolButton* iR;
+ SimpleButton* sync;
+
+ bool volumeTouched;
+
+ private slots:
+ virtual void controllerChanged(int id);
+ void ctrlChanged(double val, int num);
+ void muteToggled(bool);
+ void soloToggled(bool);
+ void autoChanged();
+ void sliderPressed(int);
+ void sliderReleased(int);
+ void autoReadToggled(bool);
+ void autoWriteToggled(bool);
+ void iRouteShow();
+ void oRouteShow();
+ void syncToggled(bool) const;
+
+ public slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiOutPortStrip(Mixer*, MidiOutPort*, bool align = true);
+ virtual void heartBeat();
+ };
+
+//---------------------------------------------------------
+// MidiSyntiStrip
+//---------------------------------------------------------
+
+class MidiSyntiStrip : public Strip {
+ Q_OBJECT
+
+ Awl::MidiMeterSlider* slider;
+ Awl::MidiVolEntry* sl;
+ QToolButton* iR;
+ QToolButton* oR;
+
+ bool volumeTouched;
+
+ private slots:
+ virtual void controllerChanged(int id);
+ void ctrlChanged(double val, int num);
+ void muteToggled(bool);
+ void soloToggled(bool);
+ void autoChanged();
+ void sliderPressed(int);
+ void sliderReleased(int);
+ void autoReadToggled(bool);
+ void autoWriteToggled(bool);
+ void iRouteShow();
+ void oRouteShow();
+
+ public slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiSyntiStrip(Mixer*, MidiSynti*, bool align = true);
+ virtual void heartBeat();
+ };
+
+//---------------------------------------------------------
+// MidiInPortStrip
+//---------------------------------------------------------
+
+class MidiInPortStrip : public Strip {
+ Q_OBJECT
+
+ bool activity[MIDI_CHANNELS];
+ QPixmap* activityOn;
+ QPixmap* activityOff;
+ QLabel* channelActivity[MIDI_CHANNELS];
+ QToolButton* iR;
+ QToolButton* oR;
+ MidiInPort* inport() const { return (MidiInPort*)track; }
+
+ private slots:
+ void muteToggled(bool);
+ void soloToggled(bool);
+ void iRouteShow();
+ void oRouteShow();
+
+ public slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiInPortStrip(Mixer*, MidiInPort*, bool align = true);
+ virtual void heartBeat();
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/mtc.cpp b/muse_qt4_evolution/muse/mtc.cpp
new file mode 100644
index 00000000..54ed5584
--- /dev/null
+++ b/muse_qt4_evolution/muse/mtc.cpp
@@ -0,0 +1,131 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "mtc.h"
+
+//---------------------------------------------------------
+// MTC::time
+// converts MTC Time to seconds according to
+// global mtcType
+//---------------------------------------------------------
+
+double MTC::time() const
+ {
+ double time = _h * 3600 + _m * 60 + _s;
+ double ft = 0.0;
+ switch (AL::mtcType) {
+ case 0: // 24 frames sec
+ ft = 1.0/24.0;
+ break;
+ case 1: // 25
+ ft = 0.04;
+ break;
+ case 2: // 30 drop frame TODO
+ case 3: // 30 non drop frame
+ ft = 1.0/30.0;
+ break;
+ }
+ return time + ft *_f + 0.01 * ft * _sf;
+ }
+
+//---------------------------------------------------------
+// MTC
+//---------------------------------------------------------
+
+MTC::MTC(double t)
+ {
+ _h = int(t/3600);
+ t -= _h * 3600;
+ _m = int(t/60);
+ t -= _m * 60;
+ _s = int(t);
+ t -= _s;
+ double ft = 1.0/24.0;
+ switch (AL::mtcType) {
+ case 0: // 24 frames sec
+ ft = 1.0/24.0;
+ break;
+ case 1: // 25
+ ft = 0.04;
+ break;
+ case 2: // 30 drop frame
+ case 3: // 30 non drop frame
+ ft = 1.0/30.0;
+ break;
+ }
+ double frames = t / ft;
+ _f = int(frames);
+ frames -= _f;
+ _sf = int(frames * 100);
+ }
+
+//---------------------------------------------------------
+// incQuarter
+// increment MTC time one quarter frame time
+//---------------------------------------------------------
+
+void MTC::incQuarter()
+ {
+ int frames = 24;
+ switch (AL::mtcType) {
+ case 0:
+ frames = 24;
+ break;
+ case 1:
+ frames = 25;
+ break;
+ case 2:
+ case 3:
+ frames = 30;
+ break;
+ }
+ _sf += 25;
+ if (_sf >= 100) {
+ ++_f;
+ _sf -= 100;
+ }
+ if (_f == frames) {
+ ++_s;
+ _f = 0;
+ }
+ if (_s == 60) {
+ ++_m;
+ _s = 0;
+ }
+ if (_m == 60) {
+ ++_h;
+ _m = 0;
+ }
+ if (_h == 24) {
+ _h = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// print
+//---------------------------------------------------------
+
+void MTC::print() const
+ {
+ printf("%02d:%02d:%02d:%02d:%02d", _h, _m, _s, _f, _sf);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/mtc.h b/muse_qt4_evolution/muse/mtc.h
new file mode 100644
index 00000000..862bc5b1
--- /dev/null
+++ b/muse_qt4_evolution/muse/mtc.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MTC_H__
+#define __MTC_H__
+
+//---------------------------------------------------------
+// MTC
+//---------------------------------------------------------
+
+class MTC {
+ unsigned char _h, _m, _s, _f, _sf;
+
+ public:
+ MTC(int h, int m, int s, int f, int sf=0) {
+ _h = h;
+ _m = m;
+ _s = s;
+ _f = f;
+ _sf = sf;
+ }
+ MTC() {
+ _h = _m = _s = _f = _sf = 0;
+ }
+ MTC(double);
+ void set(int h, int m, int s, int f, int sf=0) {
+ _h = h;
+ _m = m;
+ _s = s;
+ _f = f;
+ _sf = sf;
+ }
+ void incQuarter();
+ void setH(int val) { _h = val; }
+ void setM(int val) { _m = val; }
+ void setS(int val) { _s = val; }
+ void setF(int val) { _f = val; }
+ void setSf(int val) { _sf = val; }
+
+ int h() const { return _h; }
+ int m() const { return _m; }
+ int s() const { return _s; }
+ int f() const { return _f; }
+ int sf() const { return _sf; }
+ double time() const;
+ void print() const;
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/muse.cpp b/muse_qt4_evolution/muse/muse.cpp
new file mode 100644
index 00000000..01f0d1c4
--- /dev/null
+++ b/muse_qt4_evolution/muse/muse.cpp
@@ -0,0 +1,3029 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "config.h"
+#include <sys/mman.h>
+#include "muse.h"
+#include "transport.h"
+#include "widgets/bigtime.h"
+#include "arranger.h"
+#include "midiedit/pianoroll.h"
+#include "al/al.h"
+#include "al/xml.h"
+#include "al/dsp.h"
+#include "al/tempo.h"
+#include "conf.h"
+#include "liste/listedit.h"
+#include "master/masteredit.h"
+#include "midiedit/drumedit.h"
+#include "mixer.h"
+#include "audiodev.h"
+#include "waveedit/waveedit.h"
+#include "icons.h"
+#include "widgets/mixdowndialog.h"
+#include "midictrl.h"
+#include "widgets/filedialog.h"
+#include "plugin.h"
+#include "marker/markerview.h"
+#include "transpose.h"
+#include "preferences.h"
+#include "audio.h"
+#include "audioprefetch.h"
+#include "audiowriteback.h"
+#include "widgets/shortcutconfig.h"
+#include "gconfig.h"
+#include "ticksynth.h"
+#include "song.h"
+#include "awl/poslabel.h"
+#include "shortcuts.h"
+#include "midiplugin.h"
+#include "midiedit/drummap.h"
+#include "widgets/utils.h"
+#include "instruments/editinstrument.h"
+#include "part.h"
+#include "projectdialog.h"
+#include "templatedialog.h"
+#include "midiedit/miditracker.h"
+#include "projectpropsdialog.h"
+#include "liste/listedit.h"
+#include "strip.h"
+
+extern void initMidiInstruments();
+
+#define PROJECT_LIST_LEN 6
+static QString* projectList[PROJECT_LIST_LEN];
+
+extern void initIcons();
+extern void initMidiSynth();
+extern bool initDummyAudio();
+extern void initVST();
+extern void initDSSI();
+extern bool initJackAudio();
+extern void exitJackAudio();
+
+QStyle* smallStyle;
+
+pthread_t splashThread;
+MusE* muse;
+
+//
+// Arranger Snap values
+//
+
+struct RasterVal {
+ int val;
+ QString label;
+ };
+
+static RasterVal rasterTable[] = {
+ { 1, QT_TR_NOOP("Off") },
+ { 0, QT_TR_NOOP("Bar") },
+ { 2 * config.division, "1/2" },
+ { config.division, "1/4" },
+ { config.division/2, "1/8" },
+ { config.division/4, "1/16" }
+ };
+
+//---------------------------------------------------------
+// seqStart
+//---------------------------------------------------------
+
+bool MusE::seqStart()
+ {
+ if (audioState != AUDIO_STOP) {
+ printf("seqStart(): already running\n");
+ return true;
+ }
+ audioState = AUDIO_START1;
+ if (!audio->start()) {
+ QMessageBox::critical( muse, tr("Failed to start audio!"),
+ tr("Was not able to start audio, check if jack is running.\n"));
+ return false;
+ }
+ //
+ // wait for jack callback
+ //
+ for (int i = 0; i < 60; ++i) {
+ if (audioState == AUDIO_START2)
+ break;
+ sleep(1);
+ }
+ if (audioState != AUDIO_START2) {
+ QMessageBox::critical( muse, tr("Failed to start audio!"),
+ tr("Was not able to start audio, check if jack is running.\n"));
+ }
+ //
+ // now its safe to ask the driver for realtime
+ // priority
+
+ realTimePriority = audioDriver->realtimePriority();
+ audioState = AUDIO_RUNNING;
+ if (realTimePriority) {
+ audioPrefetch->start(realTimePriority - 5);
+ audioWriteback->start(realTimePriority - 5);
+ }
+ else {
+ audioPrefetch->start(0);
+ audioWriteback->start(0);
+ }
+ //
+ // do connections
+ //
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ (*i)->activate2();
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void MusE::seqStop()
+ {
+ song->setStop(true);
+ song->setStopPlay(false);
+ audio->stop();
+ audioWriteback->stop(true);
+ audioPrefetch->stop(true);
+ audioState = AUDIO_STOP;
+ }
+
+//---------------------------------------------------------
+// seqRestart
+//---------------------------------------------------------
+
+bool MusE::seqRestart()
+ {
+ bool restartSequencer = audioState == AUDIO_RUNNING;
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+
+ if (!seqStart())
+ return false;
+
+ audioDriver->graphChanged();
+ return true;
+ }
+
+//---------------------------------------------------------
+// addProject
+//---------------------------------------------------------
+
+void addProject(const QString& name)
+ {
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ if (projectList[i] == 0)
+ break;
+ if (name == *projectList[i]) {
+ int dst = i;
+ int src = i+1;
+ int n = PROJECT_LIST_LEN - i - 1;
+ delete projectList[i];
+ for (int k = 0; k < n; ++k)
+ projectList[dst++] = projectList[src++];
+ projectList[dst] = 0;
+ break;
+ }
+ }
+ QString** s = &projectList[PROJECT_LIST_LEN - 2];
+ QString** d = &projectList[PROJECT_LIST_LEN - 1];
+ if (*d)
+ delete *d;
+ for (int i = 0; i < PROJECT_LIST_LEN-1; ++i)
+ *d-- = *s--;
+ projectList[0] = new QString(name);
+ }
+
+//---------------------------------------------------------
+// populateAddTrack
+// this is also used in "mixer"
+//---------------------------------------------------------
+
+void populateAddTrack(QMenu* m)
+ {
+ m->setSeparatorsCollapsible(false);
+ m->clear();
+ QAction* a;
+
+ a = m->addSeparator();
+ a->setText(QT_TR_NOOP("Midi"));
+ QFont f(a->font());
+ f.setBold(true);
+ f.setPointSize(8);
+ a->setFont(f);
+
+ a = m->addAction(QIcon(*addtrack_addmiditrackIcon), QT_TR_NOOP("Add Midi Track"));
+ a->setData(Track::MIDI);
+
+ a = m->addAction(QIcon(*addtrack_addmiditrackIcon), QT_TR_NOOP("Add Midi Output"));
+ a->setData(Track::MIDI_OUT);
+
+ a = m->addAction(QIcon(*addtrack_addmiditrackIcon), QT_TR_NOOP("Add Midi Input"));
+ a->setData(Track::MIDI_IN);
+
+ QMenu* ps = m->addMenu(QMenu::tr("Add Midi Generator..."));
+
+ int idx = 5000;
+ for (iMidiPlugin i = midiPlugins.begin(); i != midiPlugins.end(); ++i) {
+ if ((*i)->type() != MEMPI_GENERATOR)
+ continue;
+ a = ps->addAction((*i)->name());
+ a->setData(idx);
+ }
+
+ if (!midiOnly) {
+ a = m->addSeparator();
+ a->setText(QT_TR_NOOP("Audio"));
+ a->setFont(f);
+
+ a = m->addAction(QIcon(*addtrack_wavetrackIcon), QT_TR_NOOP("Add Wave Track"));
+ a->setData(Track::WAVE);
+ a = m->addAction(QIcon(*addtrack_audiooutputIcon), QT_TR_NOOP("Add Audio Output"));
+ a->setData(Track::AUDIO_OUTPUT);
+ a = m->addAction(QIcon(*addtrack_audiogroupIcon), QT_TR_NOOP("Add Audio Group"));
+ a->setData(Track::AUDIO_GROUP);
+ a = m->addAction(QIcon(*addtrack_audioinputIcon), QT_TR_NOOP("Add Audio Input"));
+ a->setData(Track::AUDIO_INPUT);
+
+ ps = m->addMenu(QMenu::tr("Add Soft Synth..."));
+
+ int idx = 1000;
+ for (std::vector<Synth*>::iterator is = synthis.begin(); is != synthis.end(); ++is, ++idx) {
+ a = ps->addAction((*is)->name());
+ a->setData(idx);
+ }
+ }
+ m->connect(m, SIGNAL(triggered(QAction*)), song, SLOT(addTrack(QAction*)));
+ }
+
+//---------------------------------------------------------
+// setupTransportToolbar
+//---------------------------------------------------------
+
+void MusE::setupTransportToolbar(QToolBar* tb) const
+ {
+ tb->addAction(loopAction);
+ tb->addAction(punchinAction);
+ tb->addAction(punchoutAction);
+ tb->addAction(startAction);
+
+ // hack to implement auto repeat:
+ // the action auto repeat does only work for
+ // shortcuts but not for mouse press:
+
+ QToolButton* rewindTb = new QToolButton;
+ rewindTb->setDefaultAction(rewindAction);
+ rewindTb->setAutoRepeat(true);
+ tb->addWidget(rewindTb);
+ connect(rewindTb, SIGNAL(clicked()), song, SLOT(rewind()));
+
+ QToolButton* forwardTb = new QToolButton;
+ forwardTb->setDefaultAction(forwardAction);
+ forwardTb->setAutoRepeat(true);
+ tb->addWidget(forwardTb);
+ connect(forwardTb, SIGNAL(clicked()), song, SLOT(forward()));
+
+ tb->addAction(stopAction);
+ tb->addAction(playAction);
+ tb->addAction(recordAction);
+ }
+
+//---------------------------------------------------------
+// MusE
+//---------------------------------------------------------
+
+MusE::MusE()
+ : QMainWindow()
+ {
+ setWindowIcon(*museIcon);
+ setIconSize(ICON_SIZE);
+ setFocusPolicy(Qt::WheelFocus);
+
+ muse = this; // hack
+ midiSyncConfig = 0;
+ midiRemoteConfig = 0;
+ midiPortConfig = 0;
+ metronomeConfig = 0;
+ audioConfig = 0;
+ midiFileConfig = 0;
+ midiFilterConfig = 0;
+ midiInputTransform = 0;
+ midiRhythmGenerator = 0;
+ preferencesDialog = 0;
+ softSynthesizerConfig = 0;
+ midiTransformerDialog = 0;
+ shortcutConfig = 0;
+ editInstrument = 0;
+ appName = QString("MusE");
+ _raster = 0;
+ audioState = AUDIO_STOP;
+ bigtime = 0;
+ mixer1 = 0;
+ mixer2 = 0;
+ markerView = 0;
+ exportMidiDialog = 0;
+ projectPropsDialog = 0;
+ listEditor = 0;
+
+ //---------------------------------------------------
+ // Transport
+ //---------------------------------------------------
+
+ loopAction = getAction("toggle_loop", this);
+ loopAction->setCheckable(true);
+ connect(loopAction, SIGNAL(triggered(bool)), song, SLOT(setLoop(bool)));
+
+ punchinAction = getAction("punchin", this);
+ punchinAction->setCheckable(true);
+ connect(punchinAction, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool)));
+
+ punchoutAction = getAction("punchout", this);
+ punchoutAction->setCheckable(true);
+ connect(punchoutAction, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));
+
+ recordAction = getAction("toggle_rec", this);
+ recordAction->setCheckable(true);
+ connect(recordAction, SIGNAL(triggered(bool)), song, SLOT(setRecord(bool)));
+
+ panicAction = getAction("panic", this);
+ connect(panicAction, SIGNAL(triggered()), song, SLOT(panic()));
+
+ startAction = getAction("start", this);
+ connect(startAction, SIGNAL(triggered()), song, SLOT(rewindStart()));
+
+ playAction = getAction("play", this);
+ playAction->setCheckable(true);
+ connect(playAction, SIGNAL(triggered(bool)), song, SLOT(setPlay(bool)));
+
+ QAction* a = getAction("play_toggle", this);
+ connect(a, SIGNAL(triggered()), SLOT(playToggle()));
+ addAction(a);
+
+ a = getAction("toggle_metro", this);
+ connect(a, SIGNAL(triggered()), song, SLOT(toggleClick()));
+ addAction(a);
+
+ a = getAction("goto_left", this);
+ connect(a, SIGNAL(triggered()), song, SLOT(gotoLeftMarker()));
+ addAction(a);
+
+ a = getAction("goto_right", this);
+ connect(a, SIGNAL(triggered()), song, SLOT(gotoRightMarker()));
+ addAction(a);
+
+ rewindAction = getAction("rewind", this);
+ rewindAction->setAutoRepeat(true);
+
+ forwardAction = getAction("forward", this);
+ forwardAction->setAutoRepeat(true);
+
+ stopAction = getAction("stop", this);
+ stopAction->setCheckable(true);
+ connect(stopAction, SIGNAL(triggered(bool)), song, SLOT(setStop(bool)));
+
+ song->blockSignals(true);
+ heartBeatTimer = new QTimer(this);
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(beat()));
+
+ //---------------------------------------------------
+ // undo/redo
+ //---------------------------------------------------
+
+ undoAction = getAction("undo", this);
+ undoAction->setEnabled(false);
+ connect(undoAction, SIGNAL(triggered()), song, SLOT(undo()));
+
+ redoAction = getAction("redo", this);
+ redoAction->setEnabled(false);
+ connect(redoAction, SIGNAL(triggered()), song, SLOT(redo()));
+
+ fileOpenAction = getAction("open_project", this);
+ connect(fileOpenAction, SIGNAL(triggered()), SLOT(loadProject()));
+
+ fileSaveAction = getAction("save_project", this);
+ connect(fileSaveAction, SIGNAL(triggered()), SLOT(save()));
+
+ fileSaveAsAction = getAction("save_project_as", this);
+ connect(fileSaveAsAction, SIGNAL(triggered()), SLOT(saveAs()));
+
+ pianoAction = getAction("open_pianoroll", this);
+ connect(pianoAction, SIGNAL(triggered()), SLOT(startPianoroll()));
+
+ waveAction = getAction("open_waveedit", this);
+ connect(waveAction, SIGNAL(triggered()), SLOT(startWaveEditor()));
+
+ trackerAction = getAction("open_miditracker", this);
+ connect(trackerAction, SIGNAL(triggered()), SLOT(startMidiTrackerEditor()));
+
+ //--------------------------------------------------
+ // Toolbar
+ //--------------------------------------------------
+
+ tools = new QToolBar(tr("Project Buttons"));
+ addToolBar(tools);
+
+ tools->addAction(fileOpenAction);
+ tools->addAction(fileSaveAction);
+ tools->addAction(QWhatsThis::createAction(this));
+
+ tools->addSeparator();
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+
+ tools1 = new EditToolBar(this, arrangerTools);
+ addToolBar(tools1);
+
+ QToolBar* transportToolbar = addToolBar(tr("Transport"));
+ setupTransportToolbar(transportToolbar);
+
+ QToolBar* panicToolbar = new QToolBar(tr("Panic"), this);
+ addToolBar(panicToolbar);
+ panicToolbar->addAction(panicAction);
+
+ addToolBarBreak();
+
+ audio = new Audio();
+ audioPrefetch = new AudioPrefetch("Prefetch");
+ audioWriteback = new AudioWriteback("Writeback");
+
+ //---------------------------------------------------
+ // MenuBar
+ //---------------------------------------------------
+
+ QMenuBar* mb = menuBar();
+
+ //-------------------------------------------------------------
+ // File
+ //-------------------------------------------------------------
+
+ menu_file = mb->addMenu(tr("&Project"));
+
+ menu_file->addAction(fileOpenAction);
+
+ openRecent = new QMenu(tr("Open &Recent"), this);
+ connect(openRecent, SIGNAL(aboutToShow()), this, SLOT(openRecentMenu()));
+ connect(openRecent, SIGNAL(triggered(QAction*)), this, SLOT(selectProject(QAction*)));
+
+ menu_file->addMenu(openRecent);
+ menu_file->addSeparator();
+ menu_file->addAction(fileSaveAction);
+ menu_file->addAction(fileSaveAsAction);
+ a = getAction("save_as_template", this);
+ connect(a, SIGNAL(triggered()), SLOT(saveAsTemplate()));
+ menu_file->addAction(a);
+
+ menu_file->addSeparator();
+ a = menu_file->addAction(*openIcon, tr("Import Midifile"));
+ connect(a, SIGNAL(triggered()), this, SLOT(importMidi()));
+ a = menu_file->addAction(*saveIcon, tr("Export Midifile"));
+ connect(a, SIGNAL(triggered()), this, SLOT(exportMidi()));
+ menu_file->addSeparator();
+
+ a = menu_file->addAction(*openIcon, tr("Import Wave File"));
+ connect(a, SIGNAL(triggered()), this, SLOT(importWave()));
+ a->setEnabled(!midiOnly);
+
+ menu_file->addSeparator();
+ a = getAction("quit", this);
+ menu_file->addAction(a);
+ connect(a, SIGNAL(triggered()), this, SLOT(quitDoc()));
+ menu_file->addSeparator();
+
+ //-------------------------------------------------------------
+ // Edit
+ //-------------------------------------------------------------
+
+ menuEdit = mb->addMenu(tr("&Edit"));
+
+ menuEdit->addAction(undoAction);
+ menuEdit->addAction(redoAction);
+ menuEdit->addSeparator();
+
+ cutAction = getAction("cut", this);
+ menuEdit->addAction(cutAction);
+ copyAction = getAction("copy", this);
+ menuEdit->addAction(copyAction);
+ pasteAction = getAction("paste", this);
+ menuEdit->addAction(pasteAction);
+
+ menuEdit->addSeparator();
+ a = menuEdit->addAction(QIcon(*edit_track_delIcon), tr("Delete Selected Tracks"));
+ a->setData("delete_track");
+
+ addTrack = menuEdit->addMenu(*edit_track_addIcon, tr("Add Track"));
+ // delay creation of menu (at this moment the list of software
+ // synthesizer is empty):
+ connect(addTrack, SIGNAL(aboutToShow()), SLOT(aboutToShowAddTrack()));
+
+ menuEdit->addSeparator();
+ select = menuEdit->addMenu(QIcon(*selectIcon), tr("Select"));
+ select->addAction(getAction("sel_all", this));
+ select->addAction(getAction("sel_none", this));
+ select->addAction(getAction("sel_inv", this));
+ select->addAction(getAction("sel_ins_loc", this));
+ select->addAction(getAction("sel_out_loc", this));
+ select->addAction(getAction("select_parts_on_track", this));
+
+ menuEdit->addSeparator();
+ menuEdit->addAction(pianoAction);
+ menuEdit->addAction(waveAction);
+ menuEdit->addAction(trackerAction);
+
+ a = getAction("open_drumedit", this);
+ menuEdit->addAction(a);
+ connect(a, SIGNAL(triggered()), SLOT(startDrumEditor()));
+
+ a = getAction("open_master", this);
+ menuEdit->addAction(a);
+ connect(a, SIGNAL(triggered()), SLOT(startMasterEditor()));
+
+ a = menuEdit->addAction(*saveIcon, tr("Project Properties"));
+ connect(a, SIGNAL(triggered()), SLOT(showProjectPropsDialog()));
+
+ menuEdit->addSeparator();
+ connect(menuEdit, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(select, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+
+ midiEdit = menuEdit->addMenu(QIcon(*edit_midiIcon), tr("Midi"));
+
+#if 0 // TODO
+ midiEdit->insertItem(tr("Modify Gate Time"), this, SLOT(modifyGateTime()));
+ midiEdit->insertItem(tr("Modify Velocity"), this, SLOT(modifyVelocity()));
+ midiEdit->insertItem(tr("Crescendo"), this, SLOT(crescendo()));
+ midiEdit->insertItem(tr("Transpose"), this, SLOT(transpose()));
+ midiEdit->insertItem(tr("Thin Out"), this, SLOT(thinOut()));
+ midiEdit->insertItem(tr("Erase Event"), this, SLOT(eraseEvent()));
+ midiEdit->insertItem(tr("Note Shift"), this, SLOT(noteShift()));
+ midiEdit->insertItem(tr("Move Clock"), this, SLOT(moveClock()));
+ midiEdit->insertItem(tr("Copy Measure"), this, SLOT(copyMeasure()));
+ midiEdit->insertItem(tr("Erase Measure"), this, SLOT(eraseMeasure()));
+ midiEdit->insertItem(tr("Delete Measure"), this, SLOT(deleteMeasure()));
+ midiEdit->insertItem(tr("Create Measure"), this, SLOT(createMeasure()));
+ midiEdit->insertItem(tr("Mix Track"), this, SLOT(mixTrack()));
+#endif
+ a = midiEdit->addAction(QIcon(*midi_transposeIcon), tr("Transpose"));
+ connect(a, SIGNAL(triggered()), this, SLOT(transpose()));
+
+ //-------------------------------------------------------------
+ // View
+ //-------------------------------------------------------------
+
+ menuView = mb->addMenu(tr("&View"));
+
+ tr_id = getAction("toggle_transport", this);
+ tr_id->setCheckable(true);
+ menuView->addAction(tr_id);
+ connect(tr_id, SIGNAL(triggered(bool)), this, SLOT(showTransport(bool)));
+
+ bt_id = getAction("toggle_bigtime", this);
+ bt_id->setCheckable(true);
+ menuView->addAction(bt_id);
+ connect(bt_id, SIGNAL(triggered(bool)), this, SLOT(showBigtime(bool)));
+
+ aid1a = getAction("toggle_mixer1", this);
+ aid1a->setCheckable(true);
+ menuView->addAction(aid1a);
+ connect(aid1a, SIGNAL(triggered(bool)), this, SLOT(showMixer1(bool)));
+
+ aid1b = getAction("toggle_mixer2", this);
+ aid1b->setCheckable(true);
+ menuView->addAction(aid1b);
+ connect(aid1b, SIGNAL(triggered(bool)), this, SLOT(showMixer2(bool)));
+
+ mk_id = getAction("marker_window", this);
+ mk_id->setCheckable(true);
+ menuView->addAction(mk_id);
+ connect(mk_id , SIGNAL(triggered(bool)), this, SLOT(showMarker(bool)));
+
+ //-------------------------------------------------------------
+ // Structure
+ //-------------------------------------------------------------
+
+ menuStructure = mb->addMenu(tr("&Structure"));
+
+ a = menuStructure->addAction(tr("Global Cut"));
+ connect(a, SIGNAL(triggered()), this, SLOT(globalCut()));
+
+ a = menuStructure->addAction(tr("Global Insert"));
+ connect(a, SIGNAL(triggered()), this, SLOT(globalInsert()));
+
+ a = menuStructure->addAction(tr("Global Split"));
+ connect(a, SIGNAL(triggered()), this, SLOT(globalSplit()));
+
+ a = menuStructure->addAction(tr("Copy Range"));
+ connect(a, SIGNAL(triggered()), this, SLOT(copyRange()));
+ a->setEnabled(false);
+
+ menuStructure->addSeparator();
+
+ a = menuStructure->addAction(tr("Cut Events"));
+ connect(a, SIGNAL(triggered()), this, SLOT(cutEvents()));
+ a->setEnabled(false);
+
+ //-------------------------------------------------------------
+ // Midi
+ //-------------------------------------------------------------
+
+ menu_functions = mb->addMenu(tr("&Midi"));
+
+ a = menu_functions->addAction(QIcon(*midi_edit_instrumentIcon), tr("Edit Instrument"));
+ connect(a, SIGNAL(triggered()), this, SLOT(startEditInstrument()));
+
+ menu_functions->addSeparator();
+ a = menu_functions->addAction(QIcon(*midi_reset_instrIcon), tr("Reset Instr."));
+ connect(a, SIGNAL(triggered()), this, SLOT(resetMidiDevices()));
+ a = menu_functions->addAction(QIcon(*midi_init_instrIcon), tr("Init Instr."));
+ connect(a, SIGNAL(triggered()), this, SLOT(initMidiDevices()));
+ a = menu_functions->addAction(QIcon(*midi_local_offIcon), tr("local off"));
+ connect(a, SIGNAL(triggered()), this, SLOT(localOff()));
+
+ //-------------------------------------------------------------
+ // Audio
+ //-------------------------------------------------------------
+
+ menu_audio = mb->addMenu(tr("&Audio"));
+
+ a = menu_audio->addAction(QIcon(*audio_bounce_to_trackIcon), tr("Bounce to Track"));
+ connect(a, SIGNAL(triggered()), this, SLOT(bounceToTrack()));
+
+ a = menu_audio->addAction(QIcon(*audio_bounce_to_fileIcon), tr("Bounce to File"));
+ connect(a, SIGNAL(triggered()), this, SLOT(bounceToFile()));
+ menu_audio->setEnabled(!midiOnly);
+ a = menu_audio->addAction(QIcon(*audio_restartaudioIcon), tr("Restart Audio"));
+ connect(a, SIGNAL(triggered()), this, SLOT(seqRestart()));
+
+ //-------------------------------------------------------------
+ // Settings
+ //-------------------------------------------------------------
+
+ menuSettings = mb->addMenu(tr("Setti&ngs"));
+ a = menuSettings->addAction(QIcon(*settings_configureshortcutsIcon), tr("Configure shortcuts"));
+ connect(a, SIGNAL(triggered()), this, SLOT(configShortCuts()));
+
+ follow = menuSettings->addMenu(QIcon(*settings_follow_songIcon), tr("follow song"));
+ //follow->menuAction()->setShortcut(Qt::Key_F);
+ fid0 = follow->addAction(tr("dont follow Song"));
+ fid0->setData("follow_no");
+ fid0->setCheckable(true);
+ fid1 = follow->addAction(tr("follow page"));
+ fid1->setData("follow_jump");
+ fid1->setCheckable(true);
+ fid2 = follow->addAction(tr("follow continuous"));
+ fid2->setData("follow_continuous");
+ fid2->setCheckable(true);
+ fid0->setChecked(TimeCanvas::followMode == FOLLOW_NO);
+ fid1->setChecked(TimeCanvas::followMode == FOLLOW_JUMP);
+ fid2->setChecked(TimeCanvas::followMode == FOLLOW_CONTINUOUS);
+ connect(follow, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+
+ menuSettings->addSeparator();
+ a = menuSettings->addAction(QIcon(*settings_midisyncIcon), tr("Midi Sync"));
+ connect(a, SIGNAL(triggered()), this, SLOT(configMidiSync()));
+ a = menuSettings->addAction(QIcon(*settings_midifileexportIcon), tr("Midi File Export"));
+ connect(a, SIGNAL(triggered()), this, SLOT(configMidiFile()));
+ menuSettings->addSeparator();
+ QAction* action = menuSettings->addAction(QIcon(*settings_globalsettingsIcon), tr("Preferences"));
+ connect(action, SIGNAL(triggered()), this, SLOT(preferences()));
+
+ //---------------------------------------------------
+ // Help
+ //---------------------------------------------------
+
+ mb->addSeparator();
+ menu_help = mb->addMenu(tr("&Help"));
+
+ a = menu_help->addAction(tr("&Manual"));
+ connect(a, SIGNAL(triggered()), this, SLOT(startHelpBrowser()));
+ a = menu_help->addAction(tr("&MusE homepage"));
+ connect(a, SIGNAL(triggered()), this, SLOT(startHomepageBrowser()));
+ menu_help->addSeparator();
+ a = menu_help->addAction(tr("&Report Bug..."));
+ connect(a, SIGNAL(triggered()), this, SLOT(startBugBrowser()));
+ menu_help->addSeparator();
+ a = menu_help->addAction(tr("&About MusE"));
+ a->setIcon(QIcon(*museIcon));
+ connect(a, SIGNAL(triggered()), this, SLOT(about()));
+ a = menu_help->addAction(tr("About&Qt"));
+ connect(a, SIGNAL(triggered()), this, SLOT(aboutQt()));
+ menu_help->addSeparator();
+ a = QWhatsThis::createAction(this);
+ a->setText(tr("What's &This?"));
+ menu_help->addAction(a);
+
+ //---------------------------------------------------
+ // ToolBar
+ //---------------------------------------------------
+
+ QToolBar* aToolBar = addToolBar(tr("Arranger"));
+
+ QLabel* label = new QLabel(tr("Cursor"));
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ aToolBar->addWidget(label);
+
+ Awl::PosLabel* cursorPos = new Awl::PosLabel;
+ aToolBar->addWidget(cursorPos);
+ cursorPos->setFixedHeight(25);
+
+ label = new QLabel(tr("Snap"));
+ label->setIndent(5);
+ aToolBar->addWidget(label);
+
+ rasterCombo = new QComboBox;
+ rasterCombo->setFixedHeight(24);
+ aToolBar->addWidget(rasterCombo);
+ for (unsigned i = 0; i < sizeof(rasterTable)/sizeof(*rasterTable); i++)
+ rasterCombo->addItem(rasterTable[i].label, i);
+ rasterCombo->setCurrentIndex(1);
+ connect(rasterCombo, SIGNAL(activated(int)), SLOT(setRaster(int)));
+
+ // Song len
+ label = new QLabel(tr("Len"));
+ label->setIndent(5);
+ aToolBar->addWidget(label);
+
+ // song length is limited to 10000 bars; the real song len is limited
+ // by overflows in tick computations
+ //
+ QSpinBox* lenEntry = new QSpinBox;
+ lenEntry->setFixedHeight(24);
+ lenEntry->setRange(1, 10000);
+ aToolBar->addWidget(lenEntry);
+ lenEntry->setValue(song->len());
+ connect(lenEntry, SIGNAL(valueChanged(int)), song, SLOT(setMeasureLen(int)));
+ connect(song, SIGNAL(measureLenChanged(int)), lenEntry, SLOT(setValue(int)));
+
+ label = new QLabel(tr("Pitch"));
+ label->setIndent(5);
+ aToolBar->addWidget(label);
+
+ QSpinBox* globalPitchSpinBox = new QSpinBox;
+ globalPitchSpinBox->setFixedHeight(24);
+ globalPitchSpinBox->setRange(-127, 127);
+ aToolBar->addWidget(globalPitchSpinBox);
+ globalPitchSpinBox->setValue(song->globalPitchShift());
+ globalPitchSpinBox->setToolTip(tr("midi pitch"));
+ globalPitchSpinBox->setWhatsThis(tr("global midi pitch shift"));
+ connect(globalPitchSpinBox, SIGNAL(valueChanged(int)), SLOT(globalPitchChanged(int)));
+
+ label = new QLabel(tr("Tempo"));
+ label->setIndent(5);
+ aToolBar->addWidget(label);
+
+ globalTempoSpinBox = new QSpinBox;
+ globalTempoSpinBox->setFixedHeight(24);
+ globalTempoSpinBox->setRange(50, 200);
+ aToolBar->addWidget(globalTempoSpinBox);
+ globalTempoSpinBox->setSuffix(QString("%"));
+ globalTempoSpinBox->setValue(AL::tempomap.globalTempo());
+ globalTempoSpinBox->setToolTip(tr("midi tempo"));
+ globalTempoSpinBox->setWhatsThis(tr("midi tempo"));
+ connect(globalTempoSpinBox, SIGNAL(valueChanged(int)), SLOT(globalTempoChanged(int)));
+
+ QToolButton* tempo50 = new QToolButton;
+ tempo50->setFixedHeight(24);
+ aToolBar->addWidget(tempo50);
+ tempo50->setText(QString("50%"));
+ connect(tempo50, SIGNAL(clicked()), SLOT(setTempo50()));
+
+ QToolButton* tempo100 = new QToolButton;
+ tempo100->setFixedHeight(24);
+ aToolBar->addWidget(tempo100);
+ tempo100->setText(tr("N"));
+ connect(tempo100, SIGNAL(clicked()), SLOT(setTempo100()));
+
+ QToolButton* tempo200 = new QToolButton;
+ tempo200->setFixedHeight(24);
+ aToolBar->addWidget(tempo200);
+ tempo200->setText(QString("200%"));
+ connect(tempo200, SIGNAL(clicked()), SLOT(setTempo200()));
+
+ //---------------------------------------------------
+ // Central Widget
+ //---------------------------------------------------
+
+ arranger = new Arranger(this);
+ setCentralWidget(arranger);
+
+ connect(tools1, SIGNAL(toolChanged(int)), SLOT(setTool(int)));
+ connect(arranger, SIGNAL(toolChanged(int)), SLOT(setTool(int)));
+ connect(arranger, SIGNAL(editPart(Part*)), SLOT(startEditor(Part*)));
+//TODO1 connect(arranger, SIGNAL(dropSongFile(const QString&)), SLOT(loadProject(const QString&)));
+//TODO1 connect(arranger, SIGNAL(dropMidiFile(const QString&)), SLOT(importMidi(const QString&)));
+ connect(arranger, SIGNAL(cursorPos(const AL::Pos&,bool)), cursorPos, SLOT(setValue(const AL::Pos&,bool)));
+
+ //---------------------------------------------------
+ // read list of "Recent Projects"
+ //---------------------------------------------------
+
+ QString prjPath(getenv("HOME"));
+ prjPath += QString("/.musePrj");
+ FILE* f = fopen(prjPath.toLatin1().data(), "r");
+ if (f == 0) {
+ if (debugMsg) {
+ fprintf(stderr, "open projectfile <%s> failed: %s",
+ prjPath.toLatin1().data(), strerror(errno));
+ }
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i)
+ projectList[i] = 0;
+ }
+ else {
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ char buffer[256];
+ if (fgets(buffer, 256, f)) {
+ int n = strlen(buffer);
+ if (n && buffer[n-1] == '\n')
+ buffer[n-1] = 0;
+ projectList[i] = *buffer ? new QString(buffer) : 0;
+ }
+ else
+ break;
+ }
+ fclose(f);
+ }
+
+ initMidiSynth();
+
+ transport = new Transport;
+ transport->hide();
+ connect(transport, SIGNAL(closed()), SLOT(transportClosed()));
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+ connect(cb, SIGNAL(selectionChanged()), SLOT(clipboardChanged()));
+ song->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// aboutToShowAddTrack
+//---------------------------------------------------------
+
+void MusE::aboutToShowAddTrack()
+ {
+ populateAddTrack(addTrack);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void MusE::setRaster(int val)
+ {
+ _raster = rasterTable[val].val;
+ emit rasterChanged(_raster);
+ }
+
+//---------------------------------------------------------
+// initRaster
+//---------------------------------------------------------
+
+void MusE::initRaster(int val)
+ {
+ for (unsigned i = 0; i < sizeof(rasterTable)/sizeof(*rasterTable); ++i) {
+ if (rasterTable[i].val == val) {
+ _raster = val;
+ rasterCombo->setCurrentIndex(i);
+ return;
+ }
+ }
+ _raster = rasterTable[1].val;
+ rasterCombo->setCurrentIndex(1);
+ }
+
+//---------------------------------------------------------
+// setHeartBeat
+//---------------------------------------------------------
+
+void MusE::setHeartBeat()
+ {
+ heartBeatTimer->start(1000/config.guiRefresh);
+ }
+
+//---------------------------------------------------------
+// resetDevices
+//---------------------------------------------------------
+
+void MusE::resetMidiDevices()
+ {
+ audio->msgResetMidiDevices();
+ }
+
+//---------------------------------------------------------
+// initMidiDevices
+//---------------------------------------------------------
+
+void MusE::initMidiDevices()
+ {
+ audio->msgInitMidiDevices();
+ }
+
+//---------------------------------------------------------
+// localOff
+//---------------------------------------------------------
+
+void MusE::localOff()
+ {
+ audio->msgLocalOff();
+ }
+
+//---------------------------------------------------------
+// loadProject
+//---------------------------------------------------------
+
+void MusE::loadProject(const QString& path)
+ {
+ //
+ // stop audio threads if running
+ //
+ bool restartSequencer = audioState == AUDIO_RUNNING;
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+ loadProject1(path);
+ if (restartSequencer)
+ seqStart();
+ audio->msgSeek(song->cPos());
+ }
+
+//---------------------------------------------------------
+// loadProject1
+//---------------------------------------------------------
+
+void MusE::loadProject1(const QString& path)
+ {
+ QFileInfo file(path);
+ QString header = tr("MusE: new project");
+
+ if (leaveProject())
+ return;
+
+ if (mixer1)
+ mixer1->clear();
+ if (mixer2)
+ mixer2->clear();
+
+ QString name(file.fileName());
+ QDir pd(QDir::homePath() + "/" + config.projectPath + "/" + path);
+
+ addProject(path); // add to history
+
+ bool newProject = false;
+ if (!pd.exists()) {
+ newProject = true;
+ if (!pd.mkdir(pd.path())) {
+ QString s(tr("Cannot create project folder <%1>"));
+ QMessageBox::critical(this, header, s.arg(pd.path()));
+ return;
+ }
+ }
+ //
+ // close all toplevel windows
+ //
+ foreach(QWidget* w, QApplication::topLevelWidgets()) {
+ if (!w->isVisible())
+ continue;
+ static const char* const top[] = {
+ "DrumEdit", "PianoRoll", "MasterEdit", "WaveEdit",
+ "ListEdit", "PluginGui"
+ };
+ for (unsigned i = 0; i < sizeof(top)/sizeof(*top); ++i) {
+ if (strcmp(top[i], w->metaObject()->className()) == 0) {
+ w->close();
+ break;
+ }
+ }
+ }
+ emit startLoadSong();
+
+ song->setProjectPath(path);
+ song->clear(false);
+ song->setCreated(newProject);
+
+ QString s = pd.absoluteFilePath(name + ".med");
+
+ QFile f(s);
+
+ song->blockSignals(true);
+
+ bool rv = true;
+ if (f.open(QIODevice::ReadOnly)) {
+ rv = song->read(&f);
+ f.close();
+ }
+ else {
+ TemplateDialog templateDialog;
+ if (templateDialog.exec() == 1) {
+ s = templateDialog.templatePath();
+ if (!s.isEmpty()) {
+ QFile f(s);
+ if (f.open(QIODevice::ReadOnly)) {
+ rv = song->read(&f);
+ f.close();
+ }
+ else {
+ QString msg(tr("Cannot open template file\n%1"));
+ QMessageBox::critical(this, header, msg.arg(s));
+ }
+ }
+ }
+ }
+ if (!rv) {
+ QString msg(tr("File <%1> read error"));
+ QMessageBox::critical(this, header, msg.arg(s));
+ }
+ tr_id->setChecked(config.transportVisible);
+ bt_id->setChecked(config.bigTimeVisible);
+
+ showBigtime(config.bigTimeVisible);
+ showMixer1(config.mixer1Visible);
+ showMixer2(config.mixer2Visible);
+ if (mixer1 && config.mixer1Visible)
+ mixer1->setUpdateMixer();
+ if (mixer2 && config.mixer2Visible)
+ mixer2->setUpdateMixer();
+// resize(config.geometryMain.size());
+// move(config.geometryMain.topLeft());
+ if (config.transportVisible)
+ transport->show();
+ transport->move(config.geometryTransport.topLeft());
+ showTransport(config.transportVisible);
+ song->blockSignals(false);
+ transport->setMasterFlag(song->masterFlag());
+ punchinAction->setChecked(song->punchin());
+ punchoutAction->setChecked(song->punchout());
+ loopAction->setChecked(song->loop());
+ clipboardChanged(); // enable/disable "Paste"
+ song->setLen(song->len()); // emit song->lenChanged() signal
+
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+ arranger->endLoadSong();
+ song->updatePos();
+ song->updateCurrentMarker();
+ //
+ // send "cur" controller values to devices
+ //
+
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* track = *i;
+// track->blockSignals(true);
+ CtrlList* cl = track->controller();
+ for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ Ctrl* ctrl = ic->second;
+ if (ctrl->type() & Ctrl::INT) {
+ CVal val;
+ val = ctrl->curVal();
+ if (track->isMidiTrack() && val.i == CTRL_VAL_UNKNOWN)
+ continue;
+ ctrl->setCurVal(CTRL_VAL_UNKNOWN);
+ song->setControllerVal(track, ctrl, val);
+ }
+ }
+// track->blockSignals(false);
+ }
+ setWindowTitle(QString("MusE: Song: ") + name);
+ }
+
+//---------------------------------------------------------
+// MusE::loadProject
+//---------------------------------------------------------
+
+void MusE::loadProject()
+ {
+ ProjectDialog projectDialog;
+ int rv = projectDialog.exec();
+ if (rv == 0)
+ return;
+ QString path = projectDialog.projectPath();
+ if (path.isEmpty())
+ return;
+ loadProject(path);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+bool MusE::save()
+ {
+ QString backupCommand;
+
+ QString name(song->projectName() + ".med");
+ QFileInfo fi(song->absoluteProjectPath() + "/" + name);
+
+ QTemporaryFile tmp(fi.path() + "/MusEXXXXXX");
+ tmp.setAutoRemove(false);
+
+ if (!tmp.open()) {
+ QString s("Creating temp file failed: ");
+ s += strerror(errno);
+ QMessageBox::critical(this,
+ tr("MusE: Create tmp file failed"), s);
+ return false;
+ }
+ Xml xml(&tmp);
+ write(xml);
+ if (tmp.error()) {
+ QString s = QString("Write File\n") + tmp.fileName() + QString("\nfailed: ")
+ + tmp.errorString();
+ QMessageBox::critical(this, tr("MusE: Write File failed"), s);
+ return false;
+ }
+ if (!song->backupWritten()) {
+ //
+ // remove old backup file
+ //
+ QDir dir(fi.path());
+ QString backupName = QString(".") + fi.fileName() + QString(",");
+ dir.remove(backupName);
+
+ //
+ // rename old file to backup
+ //
+ QString n(fi.filePath());
+ dir.rename(n, backupName);
+ }
+ //
+ // rename temp name to file name
+ //
+ tmp.rename(fi.filePath());
+
+ song->dirty = false;
+ SndFile::updateRecFiles();
+ return true;
+ }
+
+//---------------------------------------------------------
+// saveAs
+//---------------------------------------------------------
+
+bool MusE::saveAs()
+ {
+ printf("SAVEAS\n");
+ ProjectDialog projectDialog;
+ int rv = projectDialog.exec();
+ if (rv == 0)
+ return false;
+ QString path = projectDialog.projectPath();
+ if (path.isEmpty())
+ return false;
+
+ QDir pd(QDir::homePath() + "/" + config.projectPath + "/" + path);
+ QString header = tr("MusE: new project");
+ if (!pd.exists()) {
+ if (!pd.mkdir(pd.path())) {
+ QString s(tr("Cannot create project folder <%1>"));
+ QMessageBox::critical(this, header, s.arg(pd.path()));
+ return false;
+ }
+ }
+ addProject(path);
+ song->setProjectPath(path);
+ QString name = song->projectName();
+ setWindowTitle(QString("MusE: Song: ") + name);
+ return save();
+ }
+
+
+//---------------------------------------------------------
+// saveAsTemplate
+//---------------------------------------------------------
+
+void MusE::saveAsTemplate()
+ {
+ printf("Not implemented: save as template\n");
+ }
+
+//---------------------------------------------------------
+// quitDoc
+//---------------------------------------------------------
+
+void MusE::quitDoc()
+ {
+ close();
+ }
+
+//---------------------------------------------------------
+// leaveProject
+// return false if user aborts operation
+//---------------------------------------------------------
+
+bool MusE::leaveProject()
+ {
+ if (song->dirty) {
+ int n = 0;
+ n = QMessageBox::warning(this, appName,
+ tr("The current Project contains unsaved data\n"
+ "Save Current Project?"),
+ tr("&Save"), tr("&Nosave"), tr("&Abort"), 0, 2);
+ if (n == 0)
+ return !save();
+ else if (n == 2)
+ return true;
+ //
+ // delete all wave files created in this session and not
+ // referenced any more
+ // delete all if we drop the song
+ //
+ SndFile::cleanupRecFiles(n == 1);
+ }
+ else
+ SndFile::cleanupRecFiles(true);
+ //
+ // if this is a new created project,
+ // delete project directory
+ //
+ if (song->created()) {
+ // delete project directory
+ QDir pp;
+ if (!pp.rmdir(song->absoluteProjectPath()))
+ printf("cannot remove dir <%s>\n", song->absoluteProjectPath().toLatin1().data());
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MusE::closeEvent(QCloseEvent* event)
+ {
+ song->setStop(true);
+ //
+ // wait for sequencer
+ //
+ while (audio->isPlaying()) {
+ qApp->processEvents();
+ }
+
+ if (leaveProject()) {
+ event->ignore();
+ return;
+ }
+
+ seqStop();
+
+ // save "Open Recent" list
+ QString prjPath(getenv("HOME"));
+ prjPath += "/.musePrj";
+ FILE* f = fopen(prjPath.toLatin1().data(), "w");
+ if (f) {
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ fprintf(f, "%s\n", projectList[i] ? projectList[i]->toLatin1().data() : "");
+ }
+ fclose(f);
+ }
+ exitJackAudio();
+ SynthIList* sl = song->syntis();
+ for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ delete *i;
+
+ // Cleanup temporary wavefiles + peakfiles used for undo
+ for (std::list<QString>::iterator i = temporaryWavFiles.begin(); i != temporaryWavFiles.end(); i++) {
+ QString filename = *i;
+ QFileInfo f(filename);
+ QDir d = f.dir();
+ d.remove(filename);
+ d.remove(f.baseName() + ".wca");
+ }
+ writeSettings();
+ qApp->quit();
+ }
+
+//---------------------------------------------------------
+// showTransport
+//---------------------------------------------------------
+
+void MusE::showTransport(bool flag)
+ {
+ transport->setShown(flag);
+ tr_id->setChecked(flag);
+ if (flag)
+ transport->setValues();
+ }
+
+//---------------------------------------------------------
+// printVersion
+//---------------------------------------------------------
+
+static void printVersion(const char* prog)
+ {
+ fprintf(stderr, "%s: Linux Music Editor; Version %s\n", prog, VERSION);
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(PartList* pl, int type)
+ {
+ switch (type) {
+ case 0: startPianoroll(pl); break;
+ case 1: startListEditor(pl); break;
+ case 2: startMidiTrackerEditor(pl); break;
+ case 3: startDrumEditor(pl); break;
+ case 4: startWaveEditor(pl); break;
+ }
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(Part* part, int type)
+ {
+ PartList* pl = new PartList();
+ pl->add(part);
+ startEditor(pl, type);
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(Part* part)
+ {
+ PartList* pl = new PartList();
+ pl->add(part);
+ Track* track = part->track();
+ switch (track->type()) {
+ case Track::MIDI:
+ {
+ MidiTrack* t = (MidiTrack*)track;
+ if (t->useDrumMap())
+ startDrumEditor(pl);
+ else
+ startPianoroll(pl);
+ }
+ break;
+ case Track::WAVE:
+ startWaveEditor(pl);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// getMidiPartsToEdit
+//---------------------------------------------------------
+
+PartList* MusE::getMidiPartsToEdit()
+ {
+ PartList* pl = song->getSelectedMidiParts();
+ if (pl->empty()) {
+ QMessageBox::critical(this, QString("MusE"), tr("Nothing to edit"));
+ delete pl;
+ return 0;
+ }
+ return pl;
+ }
+
+//---------------------------------------------------------
+// startPianoroll
+//---------------------------------------------------------
+
+void MusE::startPianoroll()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startPianoroll(pl);
+ }
+
+void MusE::startPianoroll(PartList* pl)
+ {
+ PianoRoll* pianoroll = new PianoRoll(pl, false);
+ pianoroll->show();
+// connect(muse, SIGNAL(configChanged()), pianoroll, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startListEditor
+//---------------------------------------------------------
+
+void MusE::startListEditor()
+ {
+// PartList* pl = getMidiPartsToEdit();
+// if (pl == 0)
+// return;
+// startListEditor(pl);
+ startListEditor(0);
+ }
+
+void MusE::startListEditor(PartList* pl)
+ {
+ Part* part = 0;
+ if (pl && !pl->empty()) {
+ part = pl->begin()->second;
+ showListEditor(Pos(), part->track(), part, 0);
+ }
+ else
+ showListEditor(Pos(), 0, 0, 0);
+ }
+
+void MusE::showListEditor(const Pos& pos, Track* track, Part* part, Ctrl* ctrl)
+ {
+ if (listEditor == 0)
+ listEditor = new ListEdit(this);
+ listEditor->selectItem(pos, track, part, ctrl);
+ listEditor->show();
+ }
+
+//---------------------------------------------------------
+// startMidiTrackerEditor
+//---------------------------------------------------------
+
+void MusE::startMidiTrackerEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startMidiTrackerEditor(pl);
+ }
+
+void MusE::startMidiTrackerEditor(PartList* pl)
+ {
+ MidiTrackerEditor* miditracker = new MidiTrackerEditor(pl, false);
+ miditracker->show();
+ connect(muse, SIGNAL(configChanged()), miditracker, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startMasterEditor
+//---------------------------------------------------------
+
+void MusE::startMasterEditor()
+ {
+ MasterEdit* masterEditor = new MasterEdit();
+ masterEditor->show();
+ }
+
+//---------------------------------------------------------
+// showProjectPropsDialog
+//---------------------------------------------------------
+
+void MusE::showProjectPropsDialog()
+ {
+ if (projectPropsDialog == 0)
+ projectPropsDialog = new ProjectPropsDialog(this);
+ projectPropsDialog->show();
+ }
+
+//---------------------------------------------------------
+// startDrumEditor
+//---------------------------------------------------------
+
+void MusE::startDrumEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startDrumEditor(pl);
+ }
+
+void MusE::startDrumEditor(PartList* pl)
+ {
+ DrumEdit* drumEditor = new DrumEdit(pl, false);
+ drumEditor->show();
+// connect(muse, SIGNAL(configChanged()), drumEditor, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startWaveEditor
+//---------------------------------------------------------
+
+void MusE::startWaveEditor()
+ {
+ PartList* pl = song->getSelectedWaveParts();
+ if (pl->empty()) {
+ QMessageBox::critical(this, QString("MusE"), tr("Nothing to edit"));
+ delete pl;
+ return;
+ }
+ startWaveEditor(pl);
+ }
+
+void MusE::startWaveEditor(PartList* pl)
+ {
+ WaveEdit* waveEditor = new WaveEdit(pl, false);
+ waveEditor->show();
+ connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// fileMenu
+//---------------------------------------------------------
+
+void MusE::openRecentMenu()
+ {
+ openRecent->clear();
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ if (projectList[i] == 0)
+ break;
+ const char* path = projectList[i]->toLatin1().data();
+ const char* p = strrchr(path, '/');
+ if (p == 0)
+ p = path;
+ else
+ ++p;
+ QAction* a = openRecent->addAction(QString(p));
+ a->setData(i);
+ }
+ }
+
+//---------------------------------------------------------
+// selectProject
+//---------------------------------------------------------
+
+void MusE::selectProject(QAction* a)
+ {
+ if (a == 0)
+ return;
+ int id = a->data().toInt();
+ if (id < 0)
+ return;
+ assert(id < PROJECT_LIST_LEN);
+ QString* name = projectList[id];
+ if (name == 0)
+ return;
+ loadProject(*name);
+ }
+
+//---------------------------------------------------------
+// playToggle
+//---------------------------------------------------------
+
+void MusE::playToggle()
+ {
+ if (audio->isPlaying())
+ song->setStop(true);
+ else
+ song->setPlay(true);
+// else if (song->cpos() != song->lpos())
+// song->setPos(0, song->lPos());
+// else {
+// Pos p(0, AL::TICKS);
+// song->setPos(0, p);
+// }
+ }
+
+//---------------------------------------------------------
+// MuseApplication
+//---------------------------------------------------------
+
+MuseApplication::MuseApplication(int& argc, char** argv)
+ : QApplication(argc, argv)
+ {
+ muse = 0;
+ for (unsigned i = 0;; ++i) {
+ if (sc[i].xml == 0)
+ break;
+ shortcuts[sc[i].xml] = &sc[i];
+ }
+ }
+
+//---------------------------------------------------------
+// usage
+//---------------------------------------------------------
+
+static void usage(const char* prog, const char* txt)
+ {
+ fprintf(stderr, "%s: %s\nusage: %s flags midifile\n Flags:",
+ prog, txt, prog);
+ fprintf(stderr, " -v print version\n");
+ fprintf(stderr, " -m MIDI only mode\n");
+ fprintf(stderr, " -d debug mode: no threads, no RT\n");
+ fprintf(stderr, " -D debug mode: enable some debug messages\n");
+ fprintf(stderr, " -i debug mode: trace midi Input\n");
+ fprintf(stderr, " -o debug mode: trace midi Output\n");
+ fprintf(stderr, " -s debug mode: trace sync\n");
+ fprintf(stderr, " -p don't load LADSPA plugins\n");
+#ifdef VST_SUPPORT
+ fprintf(stderr, " -V don't load VST plugins\n");
+#endif
+#ifdef DSSI_SUPPORT
+ fprintf(stderr, " -I don't load DSSI plugins\n");
+#endif
+ }
+
+//---------------------------------------------------------
+// catchSignal
+// only for debugging
+//---------------------------------------------------------
+
+#if 0
+static void catchSignal(int sig)
+ {
+ if (debugMsg)
+ fprintf(stderr, "MusE: signal %d catched\n", sig);
+ if (sig == SIGSEGV) {
+ fprintf(stderr, "MusE: segmentation fault\n");
+ abort();
+ }
+ if (sig == SIGCHLD) {
+ M_DEBUG("caught SIGCHLD - child died\n");
+ int status;
+ int n = waitpid (-1, &status, WNOHANG);
+ if (n > 0) {
+ fprintf(stderr, "SIGCHLD for unknown process %d received\n", n);
+ }
+ }
+ }
+#endif
+
+//---------------------------------------------------------
+// setFollow
+//---------------------------------------------------------
+
+void MusE::setFollow(FollowMode fm)
+ {
+ TimeCanvas::followMode = fm;
+ fid0->setChecked(fm == FOLLOW_NO);
+ fid1->setChecked(fm == FOLLOW_JUMP);
+ fid2->setChecked(fm == FOLLOW_CONTINUOUS);
+ changeConfig(true); // save settings
+ }
+
+//---------------------------------------------------------
+// copyParts
+// copy all selected Parts of type MIDI or WAVE to
+// clipboard whatever first found
+//---------------------------------------------------------
+
+void MusE::copyParts(bool cutFlag)
+ {
+ QBuffer buffer;
+ buffer.open(QIODevice::WriteOnly);
+ AL::Xml xml(&buffer);
+
+ if (cutFlag)
+ song->startUndo();
+ int midiType = -1;
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* track = *i;
+ if (midiType == 1 && !track->isMidiTrack())
+ continue;
+ PartList* pl = track->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+ if (part->selected()) {
+ if (midiType == -1)
+ midiType = track->isMidiTrack();
+ part->write(xml);
+ if (cutFlag)
+ song->removePart(part);
+ }
+ }
+ }
+ buffer.close();
+ QMimeData* mimeData = new QMimeData;
+ const char* t = midiType ? "application/muse/part/midi" : "application/muse/part/audio";
+ mimeData->setData(t, buffer.buffer());
+ QApplication::clipboard()->setMimeData(mimeData);
+ if (cutFlag)
+ song->endUndo(0);
+ }
+
+//---------------------------------------------------------
+// cmd
+// some cmd's from pulldown menu
+//---------------------------------------------------------
+
+void MusE::cmd(QAction* a)
+ {
+ QString cmd = a->data().toString();
+ TrackList* tracks = song->tracks();
+ int l = song->lpos();
+ int r = song->rpos();
+
+ if (cmd == "cut")
+ copyParts(true);
+ else if (cmd == "copy")
+ copyParts(false);
+ else if (cmd == "paste") {
+ const QMimeData* s = QApplication::clipboard()->mimeData();
+ int isMidi = -1;
+ QByteArray data;
+ if (s->hasFormat("application/muse/part/midi")) {
+ isMidi = 1;
+ data = s->data("application/muse/part/midi");
+ }
+ else if (s->hasFormat("application/muse/part/audio")) {
+ isMidi = 0;
+ data = s->data("application/muse/part/audio");
+ }
+ // exit if unknown format
+ if (isMidi == -1) {
+ printf("paste: unknown format\n");
+ return;
+ }
+
+ // search target track
+ TrackList* tl = song->tracks();
+ Track* track = 0;
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* t = *i;
+ if ((isMidi == 1 && t->type() == Track::MIDI)
+ || (isMidi == 0 && t->type() == Track::WAVE)) {
+ track = t;
+ break;
+ }
+ }
+ if (track == 0) {
+ printf("no destination track selected\n");
+ return;
+ }
+
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ PartList pl;
+ if (!doc.setContent(data, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error parsing part: %s\n", error.toLatin1().data());
+ return;
+ }
+ int tick = -1;
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "part") {
+ Part* p = new Part(0);
+ p->ref();
+ p->read(node, true);
+ pl.add(p);
+ if (tick == -1 || p->tick() < unsigned(tick))
+ tick = int(p->tick());
+ }
+ else
+ printf("MusE: %s not supported\n", e.tagName().toLatin1().data());
+ }
+
+ unsigned cpos = song->cpos();
+ song->startUndo();
+ for (iPart ip = pl.begin(); ip != pl.end(); ++ip) {
+ Part* part = ip->second;
+ part->setTick(part->tick() - tick + cpos);
+ part->setTrack(track);
+ song->addPart(part);
+ cpos += part->lenTick();
+ }
+ song->endUndo(0);
+ track->partListChanged();
+ }
+
+ else if (cmd == "delete") {
+ TrackList* tl = song->tracks();
+ bool partsMarked = false;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ PartList* pl2 = (*it)->parts();
+ for (iPart ip = pl2->begin(); ip != pl2->end(); ++ip) {
+ if (ip->second->selected()) {
+ partsMarked = true;
+ break;
+ }
+ }
+ }
+ if (partsMarked)
+ song->cmdRemoveParts();
+ else
+ audio->msgRemoveTracks();
+ }
+ else if (cmd == "delete_track")
+ audio->msgRemoveTracks();
+ else if (cmd == "sel_all" || cmd == "sel_none" || cmd == "sel_inv"
+ || cmd == "sel_ins_loc" || cmd == "sel_out_loc") {
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ PartList* parts = (*i)->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p) {
+ bool f = false;
+ int t1 = p->second->tick();
+ int t2 = t1 + p->second->lenTick();
+ bool inside =
+ ((t1 >= l) && (t1 < r))
+ || ((t2 > l) && (t2 < r))
+ || ((t1 <= l) && (t2 > r));
+ if (cmd == "sel_inv")
+ f = !p->second->selected();
+ else if (cmd == "sel_none")
+ f = false;
+ else if (cmd == "sel_all")
+ f = true;
+ else if (cmd == "sel_ins_loc")
+ f = inside;
+ else if (cmd == "sel_out_loc")
+ f = !inside;
+ p->second->setSelected(f);
+ }
+ (*i)->partListChanged(); // repaints canvaswidget
+ }
+ song->update();
+ }
+ else if (cmd == "select_parts_on_track") {
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ if (!(*i)->selected())
+ continue;
+ PartList* parts = (*i)->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p)
+ p->second->setSelected(true);
+ }
+ song->update();
+ }
+
+ else if (cmd == "follow_no")
+ setFollow(FOLLOW_NO);
+ else if (cmd == "follow_jump")
+ setFollow(FOLLOW_JUMP);
+ else if (cmd == "follow_continuous")
+ setFollow(FOLLOW_CONTINUOUS);
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void MusE::clipboardChanged()
+ {
+// QString subtype("partlist");
+ const QMimeData* ms = QApplication::clipboard()->mimeData();
+ if (ms == 0)
+ return;
+ bool flag = ms->hasFormat("application/muse/part/midi")
+ || ms->hasFormat("application/muse/part/audio");
+ pasteAction->setEnabled(flag);
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MusE::selectionChanged()
+ {
+ int k = 0;
+ TrackList* tl = song->tracks();
+ for (iTrack t = tl->begin(); t != tl->end(); ++t)
+ k += (*t)->selected();
+ cutAction->setEnabled(k == 1);
+ copyAction->setEnabled(k == 1);
+ song->updateSelectedTrack();
+ }
+
+//---------------------------------------------------------
+// transpose
+//---------------------------------------------------------
+
+void MusE::transpose()
+ {
+ Transpose *w = new Transpose();
+ w->show();
+ }
+
+//---------------------------------------------------------
+// modifyGateTime
+//---------------------------------------------------------
+
+void MusE::modifyGateTime()
+ {
+//TODO GateTime* w = new GateTime(this);
+// w->show();
+ }
+
+//---------------------------------------------------------
+// modifyVelocity
+//---------------------------------------------------------
+
+void MusE::modifyVelocity()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// crescendo
+//---------------------------------------------------------
+
+void MusE::crescendo()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// thinOut
+//---------------------------------------------------------
+
+void MusE::thinOut()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// eraseEvent
+//---------------------------------------------------------
+
+void MusE::eraseEvent()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// noteShift
+//---------------------------------------------------------
+
+void MusE::noteShift()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// moveClock
+//---------------------------------------------------------
+
+void MusE::moveClock()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// copyMeasure
+//---------------------------------------------------------
+
+void MusE::copyMeasure()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// eraseMeasure
+//---------------------------------------------------------
+
+void MusE::eraseMeasure()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// deleteMeasure
+//---------------------------------------------------------
+
+void MusE::deleteMeasure()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// createMeasure
+//---------------------------------------------------------
+
+void MusE::createMeasure()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// mixTrack
+//---------------------------------------------------------
+
+void MusE::mixTrack()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// configAppearance
+//---------------------------------------------------------
+//
+//void MusE::configAppearance()
+// {
+// if (!appearance)
+// appearance = new Appearance(arranger);
+// appearance->resetValues();
+// appearance->show();
+// }
+
+//---------------------------------------------------------
+// preferences
+//---------------------------------------------------------
+
+void MusE::preferences()
+ {
+ if (!preferencesDialog)
+ preferencesDialog = new PreferencesDialog(arranger);
+ preferencesDialog->resetValues();
+ preferencesDialog->show();
+ }
+
+//---------------------------------------------------------
+// configChanged
+// - called whenever configuration has changed
+// - when configuration has changed by user, call with
+// writeFlag=true to save configuration in ~/.MusE
+//---------------------------------------------------------
+
+void MusE::changeConfig(bool writeFlag)
+ {
+ if (writeFlag)
+ writeGlobalConfiguration();
+ updateConfiguration();
+ emit configChanged();
+ }
+
+//---------------------------------------------------------
+// configShortCuts
+//---------------------------------------------------------
+
+void MusE::configShortCuts()
+ {
+ if (!shortcutConfig)
+ shortcutConfig = new ShortcutConfig(this);
+ shortcutConfig->_config_changed = false;
+ if (shortcutConfig->exec())
+ changeConfig(true);
+ }
+
+//---------------------------------------------------------
+// globalCut
+// - remove area between left and right locator
+// - do not touch muted track
+// - cut master track
+//---------------------------------------------------------
+
+void MusE::globalCut()
+ {
+ int lpos = song->lpos();
+ int rpos = song->rpos();
+ if ((lpos - rpos) >= 0)
+ return;
+
+ song->startUndo();
+ MidiTrackList* tracks = song->midis();
+ for (iMidiTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = *it;
+ if (track->mute())
+ continue;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ Part* part = p->second;
+ int t = part->tick();
+ int l = part->lenTick();
+ if (t + l <= lpos)
+ continue;
+ if ((t >= lpos) && ((t+l) <= rpos)) {
+ song->removePart(part);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) <= rpos)) {
+ // remove part tail
+ int len = lpos - t;
+ Part* nPart = new Part(*part);
+ nPart->setLenTick(len);
+ //
+ // cut Events in nPart
+ EventList* el = nPart->events();
+ iEvent ie = el->lower_bound(t + len);
+ for (; ie != el->end();) {
+ iEvent i = ie;
+ ++ie;
+ audio->msgDeleteEvent(i->second, nPart, false);
+ }
+ song->changePart(part, nPart);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) > rpos)) {
+ //----------------------
+ // remove part middle
+ //----------------------
+
+ Part* nPart = new Part(*part);
+ EventList* el = nPart->events();
+ iEvent is = el->lower_bound(lpos);
+ iEvent ie = el->upper_bound(rpos);
+ for (iEvent i = is; i != ie;) {
+ iEvent ii = i;
+ ++i;
+ audio->msgDeleteEvent(ii->second, nPart, false);
+ }
+
+ ie = el->lower_bound(rpos);
+ for (; ie != el->end();) {
+ iEvent i = ie;
+ ++ie;
+ Event event = i->second;
+ Event nEvent = event.clone();
+ nEvent.setTick(nEvent.tick() - (rpos-lpos));
+ audio->msgChangeEvent(event, nEvent, nPart, false);
+ }
+ nPart->setLenTick(l - (rpos-lpos));
+ song->changePart(part, nPart);
+ }
+ else if ((t >= lpos) && (t < rpos) && (t+l) > rpos) {
+ // TODO: remove part head
+ }
+ else if (t >= rpos) {
+ Part* nPart = new Part(*part);
+ int nt = part->tick();
+ nPart->setTick(nt - (rpos -lpos));
+ song->changePart(part, nPart);
+ }
+ }
+ }
+ // TODO: cut tempo track
+ // TODO: process marker
+ song->endUndo(SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_REMOVED);
+ }
+
+//---------------------------------------------------------
+// globalInsert
+// - insert empty space at left locator position upto
+// right locator
+// - do not touch muted track
+// - insert in master track
+//---------------------------------------------------------
+
+void MusE::globalInsert()
+ {
+ unsigned lpos = song->lpos();
+ unsigned rpos = song->rpos();
+ if (lpos >= rpos)
+ return;
+
+ song->startUndo();
+ MidiTrackList* tracks = song->midis();
+ for (iMidiTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = *it;
+ //
+ // process only non muted midi tracks
+ //
+ if (track->mute())
+ continue;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ Part* part = p->second;
+ unsigned t = part->tick();
+ int l = part->lenTick();
+ if (t + l <= lpos)
+ continue;
+ if (lpos >= t && lpos < (t+l)) {
+ Part* nPart = new Part(*part);
+ nPart->setLenTick(l + (rpos-lpos));
+ EventList* el = nPart->events();
+
+ iEvent i = el->end();
+ while (i != el->begin()) {
+ --i;
+ if (i->first < lpos)
+ break;
+ Event event = i->second;
+ Event nEvent = i->second.clone();
+ nEvent.setTick(nEvent.tick() + (rpos-lpos));
+ audio->msgChangeEvent(event, nEvent, nPart, false);
+ }
+ song->changePart(part, nPart);
+ }
+ else if (t > lpos) {
+ Part* nPart = new Part(*part);
+ nPart->setTick(t + (rpos -lpos));
+ song->changePart(part, nPart);
+ }
+ }
+ }
+ // TODO: process tempo track
+ // TODO: process marker
+ song->endUndo(SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_REMOVED);
+ }
+
+//---------------------------------------------------------
+// globalSplit
+// - split all parts at the song position pointer
+// - do not touch muted track
+//---------------------------------------------------------
+
+void MusE::globalSplit()
+ {
+ int pos = song->cpos();
+ song->startUndo();
+ TrackList* tracks = song->tracks();
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ Track* track = *it;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ Part* part = p->second;
+ int p1 = part->tick();
+ int l0 = part->lenTick();
+ if (pos > p1 && pos < (p1+l0)) {
+ Part* p1;
+ Part* p2;
+ track->splitPart(part, pos, p1, p2);
+ song->changePart(part, p1);
+ song->addPart(p2);
+ break;
+ }
+ }
+ }
+ song->endUndo(SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_INSERTED);
+ }
+
+//---------------------------------------------------------
+// copyRange
+// - copy space between left and right locator position
+// to song position pointer
+// - dont process muted tracks
+// - create a new part for every track containing the
+// copied events
+//---------------------------------------------------------
+
+void MusE::copyRange()
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Copy Range"),
+ tr("not implemented")
+ );
+ }
+
+//---------------------------------------------------------
+// cutEvents
+// - make sure that all events in a part end where the
+// part ends
+// - process only marked parts
+//---------------------------------------------------------
+
+void MusE::cutEvents()
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Cut Events"),
+ tr("not implemented")
+ );
+ }
+
+//---------------------------------------------------------
+// checkRegionNotNull
+// return true if (rPos - lPos) <= 0
+//---------------------------------------------------------
+
+bool MusE::checkRegionNotNull()
+ {
+ int start = song->lPos().frame();
+ int end = song->rPos().frame();
+ if (end - start <= 0) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce"),
+ tr("set left/right marker for bounce range")
+ );
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// resetAllRecordFlags
+//---------------------------------------------------------
+
+static void resetAllRecordFlags()
+ {
+ WaveTrackList* wtl = song->waves();
+ for (iWaveTrack i = wtl->begin(); i != wtl->end(); ++i) {
+ if((*i)->recordFlag())
+ song->setRecordFlag(*i, false);
+ }
+ MidiTrackList* mtl = song->midis();
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i) {
+ if((*i)->recordFlag())
+ song->setRecordFlag(*i, false);
+ }
+ }
+
+//---------------------------------------------------------
+// bounceToTrack
+//---------------------------------------------------------
+
+void MusE::bounceToTrack()
+ {
+ if (checkRegionNotNull())
+ return;
+ // search target track
+ TrackList* tl = song->tracks();
+ WaveTrack* track = 0;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ Track* t = *it;
+ if (t->selected()) {
+ if (track) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("more than one target track selected")
+ );
+ return;
+ }
+ if (t->type() != Track::WAVE) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("wrong target track type,\nselect wave track as target")
+ );
+ return;
+ }
+ track = (WaveTrack*)t;
+ }
+ }
+ if (track == 0) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("no target track selected")
+ );
+ return;
+ }
+ song->bounceTrack = track;
+ song->setRecord(true);
+ resetAllRecordFlags();
+ song->setRecordFlag(track, true);
+ audio->msgBounce();
+ }
+
+//---------------------------------------------------------
+// bounceToFile
+//---------------------------------------------------------
+
+void MusE::bounceToFile()
+ {
+ if (checkRegionNotNull())
+ return;
+ SndFile* sf = getSndFile(0, this);
+ if (sf == 0)
+ return;
+ OutputList* ol = song->outputs();
+ AudioOutput* ao = ol->front();
+ if (ao == 0) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to File"),
+ tr("no output track found")
+ );
+ return;
+ }
+ ao->setRecFile(sf);
+ song->setRecord(true);
+ resetAllRecordFlags();
+ song->setRecordFlag(ao, true);
+ audio->msgBounce();
+ }
+
+//---------------------------------------------------------
+// startEditInstrument
+//---------------------------------------------------------
+
+void MusE::startEditInstrument()
+ {
+ if (editInstrument == 0)
+ editInstrument = new EditInstrument(this);
+ editInstrument->show();
+ }
+
+//---------------------------------------------------------
+// updateConfiguration
+// called whenever the configuration has changed
+//---------------------------------------------------------
+
+void MusE::updateConfiguration()
+ {
+ }
+
+//---------------------------------------------------------
+// showBigtime
+//---------------------------------------------------------
+
+void MusE::showBigtime(bool on)
+ {
+ if (on && bigtime == 0) {
+ bigtime = new BigTime(0);
+ bigtime->setPos(0, song->cpos(), false);
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&, bool)), bigtime, SLOT(setPos(int,const AL::Pos&, bool)));
+ connect(muse, SIGNAL(configChanged()), bigtime, SLOT(configChanged()));
+ connect(bigtime, SIGNAL(closed()), SLOT(bigtimeClosed()));
+ bigtime->resize(config.geometryBigTime.size());
+ bigtime->move(config.geometryBigTime.topLeft());
+ }
+ if (bigtime)
+ bigtime->setShown(on);
+ bt_id->setChecked(on);
+ }
+
+//---------------------------------------------------------
+// showMarker
+//---------------------------------------------------------
+
+void MusE::showMarker(bool on)
+ {
+ if (on && markerView == 0) {
+ markerView = new MarkerView;
+ connect(markerView, SIGNAL(closed()), SLOT(markerClosed()));
+ }
+ if (markerView)
+ markerView->setShown(on);
+ mk_id->setChecked(on);
+ }
+
+//---------------------------------------------------------
+// markerClosed
+//---------------------------------------------------------
+
+void MusE::markerClosed()
+ {
+ mk_id->setChecked(false);
+ markerView = 0;
+ }
+
+//---------------------------------------------------------
+// bigtimeClosed
+//---------------------------------------------------------
+
+void MusE::bigtimeClosed()
+ {
+ bt_id->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// transportClosed
+//---------------------------------------------------------
+
+void MusE::transportClosed()
+ {
+ tr_id->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// showMixer1
+//---------------------------------------------------------
+
+void MusE::showMixer1(bool on)
+ {
+ if (on && mixer1 == 0) {
+ mixer1 = new Mixer(this, &(config.mixer1));
+ connect(mixer1, SIGNAL(closed()), SLOT(mixer1Closed()));
+ mixer1->resize(config.mixer1.geometry.size());
+ mixer1->move(config.mixer1.geometry.topLeft());
+ }
+ if (mixer1)
+ mixer1->setShown(on);
+ aid1a->setChecked(on);
+ }
+
+//---------------------------------------------------------
+// showMixer2
+//---------------------------------------------------------
+
+void MusE::showMixer2(bool on)
+ {
+ if (on && mixer2 == 0) {
+ mixer2 = new Mixer(this, &(config.mixer2));
+ connect(mixer2, SIGNAL(closed()), SLOT(mixer2Closed()));
+ mixer2->resize(config.mixer2.geometry.size());
+ mixer2->move(config.mixer2.geometry.topLeft());
+ }
+ if (mixer2)
+ mixer2->setShown(on);
+ aid1b->setChecked(on);
+ }
+
+//---------------------------------------------------------
+// mixer1Closed
+//---------------------------------------------------------
+
+void MusE::mixer1Closed()
+ {
+ aid1a->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// mixer2Closed
+//---------------------------------------------------------
+
+void MusE::mixer2Closed()
+ {
+ aid1b->setChecked(false);
+ }
+
+//---------------------------------------------------------
+// transportWindow
+//---------------------------------------------------------
+
+QWidget* MusE::transportWindow()
+ {
+ return transport;
+ }
+
+//---------------------------------------------------------
+// bigtimeWindow
+//---------------------------------------------------------
+
+QWidget* MusE::bigtimeWindow()
+ {
+ return bigtime;
+ }
+
+//---------------------------------------------------------
+// mixer1Window
+//---------------------------------------------------------
+
+QWidget* MusE::mixer1Window()
+ {
+ return mixer1;
+ }
+
+//---------------------------------------------------------
+// mixer2Window
+//---------------------------------------------------------
+
+QWidget* MusE::mixer2Window()
+ {
+ return mixer2;
+ }
+
+//---------------------------------------------------------
+// focusInEvent
+//---------------------------------------------------------
+
+void MusE::focusInEvent(QFocusEvent* ev)
+ {
+ if (mixer1)
+ mixer1->raise();
+ if (mixer2)
+ mixer2->raise();
+ raise();
+ QMainWindow::focusInEvent(ev);
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void MusE::setTool(int tool)
+ {
+ tools1->set(tool);
+ arranger->setTool(tool);
+ }
+
+void MusE::setTool(const QString& s)
+ {
+ int id = 0;
+ for (int i = 0; i < TOOLS; ++i) {
+ if (toolList[i] == s) {
+ id = i;
+ break;
+ }
+ }
+ id = 1 << id;
+ tools1->set(id);
+ arranger->setTool(id);
+ }
+
+//---------------------------------------------------------
+// globalPitchChanged
+//---------------------------------------------------------
+
+void MusE::globalPitchChanged(int val)
+ {
+ song->setGlobalPitchShift(val);
+ }
+
+//---------------------------------------------------------
+// globalTempoChanged
+//---------------------------------------------------------
+
+void MusE::globalTempoChanged(int val)
+ {
+ audio->msgSetGlobalTempo(val);
+ song->update(SC_TEMPO);
+ }
+
+//---------------------------------------------------------
+// setTempo50
+//---------------------------------------------------------
+
+void MusE::setTempo50()
+ {
+ setGlobalTempo(50);
+ }
+
+//---------------------------------------------------------
+// setTempo100
+//---------------------------------------------------------
+
+void MusE::setTempo100()
+ {
+ setGlobalTempo(100);
+ }
+
+//---------------------------------------------------------
+// setTempo200
+//---------------------------------------------------------
+
+void MusE::setTempo200()
+ {
+ setGlobalTempo(200);
+ }
+
+//---------------------------------------------------------
+// setGlobalTempo
+//---------------------------------------------------------
+
+void MusE::setGlobalTempo(int val)
+ {
+ globalTempoSpinBox->setValue(val);
+ }
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int argc, char* argv[])
+ {
+ char c;
+ QString opts("mvdDiosP:p");
+
+#ifdef VST_SUPPORT
+ opts += "V";
+#endif
+#ifdef DSSI_SUPPORT
+ opts += "I";
+#endif
+ while ((c = getopt(argc, argv, opts.toLatin1().data())) != EOF) {
+ switch (c) {
+ case 'v': printVersion(argv[0]); return 0;
+ case 'd':
+ debugMode = true;
+ realTimePriority = false;
+ break;
+ case 'm': midiOnly = true; break;
+ case 'D': debugMsg = true; break;
+ case 'i': midiInputTrace = true; break;
+ case 'o': midiOutputTrace = true; break;
+ case 's': debugSync = true; break;
+ case 'p': loadPlugins = false; break;
+ case 'V': loadVST = false; break;
+ case 'I': loadDSSI = false; break;
+ default: usage(argv[0], "bad argument"); return -1;
+ }
+ }
+ AL::debugMsg = debugMsg;
+ if (midiOnly) {
+ loadDSSI = false;
+ loadPlugins = false;
+ loadVST = false;
+ }
+ AL::initDsp();
+
+ museUser = QString(getenv("MUSEHOME"));
+ if (museUser.isEmpty())
+ museUser = QDir::homePath();
+ QString museGlobal;
+ const char* p = getenv("MUSE");
+ museGlobal = p ? p : INSTPREFIX;
+
+ museGlobalLib = museGlobal + "/lib/" INSTALL_NAME;
+ museGlobalShare = museGlobal + "/share/" INSTALL_NAME;
+ configName = museUser + QString("/." INSTALL_NAME);
+ lastMidiPath = museUser + "/" + ::config.importMidiPath;
+ lastWavePath = museUser + "/" + ::config.importWavePath;
+
+ srand(time(0)); // initialize random number generator
+ initMidiController();
+ initMidiInstruments();
+ MuseApplication app(argc, argv);
+ QCoreApplication::setOrganizationName("MusE");
+ QCoreApplication::setOrganizationDomain("muse.org");
+ QCoreApplication::setApplicationName("MusE");
+
+ gmDrumMap.initGm(); // init default drum map
+ readConfiguration();
+
+ // this style is used for scrollbars in mixer plugin racks:
+ smallStyle = new QWindowsStyle();
+
+ // SHOW MUSE SPLASH SCREEN
+ if (config.showSplashScreen) {
+ QPixmap splsh(":/xpm/splash.png");
+
+ if (!splsh.isNull()) {
+ QSplashScreen* muse_splash = new QSplashScreen(splsh,
+ Qt::WindowStaysOnTopHint);
+ muse_splash->show();
+ QTimer* stimer = new QTimer(0);
+ muse_splash->connect(stimer, SIGNAL(timeout()), muse_splash, SLOT(close()));
+ stimer->start(6000);
+ }
+ }
+
+ QFile cf(config.styleSheetFile);
+ if (cf.open(QIODevice::ReadOnly)) {
+ QByteArray ss = cf.readAll();
+ QString sheet(QString::fromUtf8(ss.data()));
+ app.setStyleSheet(sheet);
+ cf.close();
+ }
+ else
+ printf("loading style sheet <%s> failed\n", qPrintable(config.styleSheetFile));
+
+ bool useJACK = !(debugMode || midiOnly);
+ if (useJACK) {
+ if (initJackAudio()) {
+ if (!debugMode)
+ {
+ QMessageBox::critical(NULL, "MusE fatal error",
+ "MusE failed to find a Jack audio server.\n"
+ "Check that Jack was started.\n"
+ "If Jack was started check that it was\n"
+ "started as the same user as MusE.");
+ // fatalError("cannot start JACK");
+ }
+ else
+ {
+ fprintf(stderr, "fatal error: no JACK audio server found\n");
+ fprintf(stderr, "no audio functions available\n");
+ fprintf(stderr, "*** experimental mode -- no play possible ***\n");
+ }
+ useJACK = false;
+ debugMode = true;
+ }
+ }
+ if (!useJACK)
+ initDummyAudio();
+
+ argc -= optind;
+ ++argc;
+
+ if (debugMsg) {
+ printf("global lib: <%s>\n", museGlobalLib.toLatin1().data());
+ printf("global share: <%s>\n", museGlobalShare.toLatin1().data());
+ printf("muse home: <%s>\n", museUser.toLatin1().data());
+ printf("project dir: <%s>\n", config.projectPath.toLatin1().data());
+ printf("config file: <%s>\n", configName.toLatin1().data());
+ }
+
+ static QTranslator translator;
+ QFile f(":/muse.qm");
+ if (f.exists()) {
+ if (debugMsg)
+ printf("locale file found\n");
+ if (translator.load(":/muse.qm")) {
+ if (debugMsg)
+ printf("locale file loaded\n");
+ }
+ qApp->installTranslator(&translator);
+ }
+ else {
+ if (debugMsg) {
+ printf("locale file not found for locale <%s>\n",
+ QLocale::system().name().toLatin1().data());
+ }
+ }
+
+ if (loadPlugins) {
+ initPlugins();
+ initMidiPlugins();
+ }
+ if (loadVST)
+ initVST();
+
+ if (loadDSSI)
+ initDSSI();
+
+ initIcons();
+ if (!midiOnly)
+ initMetronome();
+
+ if (debugMsg) {
+ QStringList list = app.libraryPaths();
+ QStringList::Iterator it = list.begin();
+ printf("QtLibraryPath:\n");
+ while(it != list.end()) {
+ printf(" <%s>\n", (*it).toLatin1().data());
+ ++it;
+ }
+ }
+
+ song = new Song();
+ muse = new MusE();
+ muse->readSettings();
+ app.setMuse(muse);
+
+ //---------------------------------------------------
+ // load project
+ //---------------------------------------------------
+
+ // check for project directory:
+
+ QDir pd(QDir::homePath() + "/" + config.projectPath);
+ if (!pd.exists()) {
+ // ask user to create a new project directory
+ QString title(QT_TR_NOOP("MusE: create project directory"));
+
+ QString s;
+ s = "The MusE project directory\n%1\ndoes not exists";
+ s = s.arg(pd.path());
+
+ int rv = QMessageBox::question(0,
+ title,
+ s,
+ "Create",
+ "Abort",
+ QString(),
+ 0, 1);
+ if (rv == 1)
+ exit(0);
+ if (!pd.mkpath(pd.path())) {
+ // TODO: tell user why this has happened
+ QMessageBox::critical(0,
+ title,
+ "Creating project directory failed");
+ exit(-1);
+ }
+ }
+
+ // check for template directory:
+
+ pd.setPath(QDir::homePath() + "/" + config.templatePath);
+ if (!pd.exists()) {
+ // ask user to create a new template directory
+ QString title(QT_TR_NOOP("MusE: create template directory"));
+
+ QString s;
+ s = "The MusE template directory\n%1\ndoes not exists";
+ s = s.arg(pd.path());
+
+ int rv = QMessageBox::question(0,
+ title,
+ s,
+ "Create",
+ "Abort",
+ QString(),
+ 0, 1);
+ if (rv == 0) {
+ if (!pd.mkpath(pd.path())) {
+ // TODO: tell user why this has happened
+ QMessageBox::critical(0,
+ title,
+ "Creating template directory failed");
+ }
+ }
+ }
+
+ // check for instruments directory:
+
+ pd.setPath(QDir::homePath() + "/" + config.instrumentPath);
+ if (!pd.exists()) {
+ // ask user to create a new instruments directory
+ QString title(QT_TR_NOOP("MusE: create instruments directory"));
+
+ QString s;
+ s = "The MusE instruments directory\n%1\ndoes not exists";
+ s = s.arg(pd.path());
+
+ int rv = QMessageBox::question(0,
+ title,
+ s,
+ "Create",
+ "Abort",
+ QString(),
+ 0, 1);
+ if (rv == 0) {
+ if (!pd.mkpath(pd.path())) {
+ // TODO: tell user why this has happened
+ QMessageBox::critical(0,
+ title,
+ "Creating instruments directory failed");
+ }
+ }
+ }
+
+ QString path; // project path relativ to config.projectPath
+ if (argc >= 2)
+ path = argv[optind]; // start with first name on command line
+ else if (config.startMode == START_LAST_PROJECT) {
+ if (projectList[0])
+ path = *projectList[0];
+ }
+ else if (config.startMode == START_START_PROJECT)
+ path = config.startProject;
+
+ QString name = path.split("/").last();
+ if (!path.isEmpty()) {
+ QFile f(QDir::homePath() +"/"+config.projectPath+"/"+path+"/"+name+".med");
+ if (!f.exists()) {
+ QString s(QT_TR_NOOP("Cannot find project <%1>"));
+ QString header(QT_TR_NOOP("MusE: load Project"));
+ QMessageBox::critical(0, header, s.arg(f.fileName()));
+ path = "";
+ }
+ }
+ if (path.isEmpty()) {
+ //
+ // ask user for a project
+ //
+ for (;;) {
+ ProjectDialog projectDialog;
+ projectDialog.setProjectName(name);
+ int rv = projectDialog.exec();
+ if (rv == 1) {
+ path = projectDialog.projectPath();
+ if (!path.isEmpty())
+ break;
+ }
+ // the user did not select/create a project
+ rv = QMessageBox::question(0,
+ "MusE: create/select project",
+ "before MusE starts, you must select a project\n"
+ "or create a new one",
+ "Go Back",
+ "Abort",
+ QString(),
+ 0, 1);
+ if (rv == 1)
+ exit(0);
+ }
+ }
+
+ muse->loadProject(path);
+ muse->changeConfig(false);
+ if (!debugMode) {
+ if (mlockall(MCL_CURRENT | MCL_FUTURE))
+ perror("WARNING: Cannot lock memory:");
+ }
+ muse->show();
+ muse->seqStart();
+ int n = app.exec();
+ if (n)
+ fprintf(stderr, "app end %d\n", n);
+ return n;
+ }
+
+//---------------------------------------------------------
+// beat
+// heart beat
+//---------------------------------------------------------
+
+void MusE::beat()
+ {
+ song->beat();
+ if (mixer1 && mixer1->isVisible())
+ mixer1->heartBeat();
+ if (mixer2 && mixer2->isVisible())
+ mixer2->heartBeat();
+ if (arranger && arranger->getStrip() && arranger->getStrip()->isVisible())
+ arranger->getStrip()->heartBeat();
+ }
+
+//---------------------------------------------------------
+// writeSettings
+//---------------------------------------------------------
+
+void MusE::writeSettings()
+ {
+ QSettings settings;
+ settings.beginGroup("MainWindow");
+ settings.setValue("size", size());
+ settings.setValue("pos", pos());
+ settings.endGroup();
+ }
+
+//---------------------------------------------------------
+// readSettings
+//---------------------------------------------------------
+
+void MusE::readSettings()
+ {
+ QSettings settings;
+ settings.beginGroup("MainWindow");
+ resize(settings.value("size", QSize(950, 500)).toSize());
+ move(settings.value("pos", QPoint(10, 10)).toPoint());
+ settings.endGroup();
+ }
+
+
diff --git a/muse_qt4_evolution/muse/muse.h b/muse_qt4_evolution/muse/muse.h
new file mode 100644
index 00000000..8a9d4f68
--- /dev/null
+++ b/muse_qt4_evolution/muse/muse.h
@@ -0,0 +1,318 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __APP_H__
+#define __APP_H__
+
+#include "shortcuts.h"
+#include "cobject.h"
+#include "widgets/tools.h"
+
+namespace AL {
+ class Xml;
+ class Pos;
+ };
+using AL::Xml;
+using AL::Pos;
+
+class Part;
+class PartList;
+class Transport;
+class BigTime;
+class Arranger;
+class Track;
+class MidiSyncConfig;
+class MRConfig;
+class MetronomeConfig;
+class AudioConf;
+class MidiFileConfig;
+class MidiFilterConfig;
+class MarkerView;
+class MidiInputTransformDialog;
+class MidiTransformerDialog;
+class RhythmGen;
+class MidiTrack;
+class ShortcutConfig;
+class PreferencesDialog;
+class EditInstrument;
+class Mixer;
+class ExportMidiDialog;
+class ListEdit;
+class Ctrl;
+
+extern void configMidiController();
+
+//---------------------------------------------------------
+// MusE
+//---------------------------------------------------------
+
+class MusE : public QMainWindow // , public Ui::MuseBase
+ {
+ Q_OBJECT
+
+ QAction* fileSaveAction;
+ QAction* fileSaveAsAction;
+ QAction* fileOpenAction;
+ QAction* pianoAction;
+ QAction* waveAction;
+ QAction* trackerAction;
+ QAction* fileNewAction;
+
+ QString appName;
+
+ QToolBar *tools;
+ EditToolBar *tools1;
+ int _raster;
+
+ Transport* transport;
+ QAction* tr_id;
+ BigTime* bigtime;
+ QAction* bt_id;
+ MarkerView* markerView;
+ QAction* mk_id;
+ Mixer* mixer1;
+ QAction* aid1a;
+ Mixer* mixer2;
+ QAction* aid1b;
+ ListEdit* listEditor;
+
+ EditInstrument* editInstrument;
+
+ QMenu *menu_file, *menuView, *menuSettings, *menu_help;
+ QMenu *menuEdit, *menuStructure;
+ QMenu* menu_audio;
+ QMenu* menu_functions;
+ QMenu* select, *master, *midiEdit, *addTrack;
+ QMenu* follow;
+ QMenu* midiInputPlugins;
+
+ QAction* aid2;
+ QAction* aid3;
+ QAction* fid0;
+ QAction* fid1;
+ QAction* fid2;
+ QAction* cutAction;
+ QAction* copyAction;
+ QAction* pasteAction;
+
+ QWidget* midiPortConfig;
+ QWidget* softSynthesizerConfig;
+ MidiSyncConfig* midiSyncConfig;
+ MRConfig* midiRemoteConfig;
+ RhythmGen* midiRhythmGenerator;
+ MetronomeConfig* metronomeConfig;
+ AudioConf* audioConfig;
+ MidiFileConfig* midiFileConfig;
+ MidiFilterConfig* midiFilterConfig;
+ MidiInputTransformDialog* midiInputTransform;
+ ShortcutConfig* shortcutConfig;
+ PreferencesDialog* preferencesDialog;
+ ExportMidiDialog* exportMidiDialog;
+
+ MidiTransformerDialog* midiTransformerDialog;
+ QMenu* openRecent;
+ QSpinBox* globalTempoSpinBox;
+ QComboBox* rasterCombo;
+
+ QDialog* projectPropsDialog;
+
+ //------------------------------------------
+
+ bool readMidi(FILE*);
+ void processTrack(MidiTrack* track);
+
+ void write(Xml& xml) const;
+
+ void setFollow(FollowMode);
+ void readConfigParts(QDomNode);
+ void readCtrl(QDomNode, int port, int channel);
+ PartList* getMidiPartsToEdit();
+ Part* readPart(QDomNode);
+ bool checkRegionNotNull();
+ void loadProject1(const QString&);
+ void writeGlobalConfiguration(Xml&) const;
+ void writeConfiguration(Xml&) const;
+ void updateConfiguration();
+
+ bool leaveProject();
+
+ virtual void focusInEvent(QFocusEvent*);
+ void addMidiFile(const QString name);
+ void copyParts(bool);
+ void writeSettings();
+
+ signals:
+ void configChanged();
+ void rasterChanged(int);
+ void startLoadSong();
+
+ private slots:
+ void beat();
+ void loadProject();
+ void quitDoc();
+ void about();
+ void aboutQt();
+ void startHelpBrowser();
+ void startHomepageBrowser();
+ void startBugBrowser();
+ void importMidi();
+ void importWave();
+ bool importWave(const QString&);
+ void exportMidi();
+
+ void configMidiSync();
+ void configMidiFile();
+ void configShortCuts();
+
+ void startMasterEditor();
+
+ void startDrumEditor();
+ void startDrumEditor(PartList* pl);
+ void startEditor(Part*);
+ void startEditor(PartList*, int);
+ void startPianoroll();
+ void startPianoroll(PartList* pl);
+ void startMidiTrackerEditor();
+ void startMidiTrackerEditor(PartList* pl);
+ void startWaveEditor();
+ void startWaveEditor(PartList*);
+ void writeGlobalConfiguration() const;
+ void startEditInstrument();
+
+ void startListEditor();
+ void startListEditor(PartList*);
+
+ void showProjectPropsDialog();
+
+ void openRecentMenu();
+ void selectProject(QAction*);
+ void cmd(QAction*);
+ void clipboardChanged();
+ void transpose();
+ void modifyGateTime();
+ void modifyVelocity();
+ void crescendo();
+ void thinOut();
+ void eraseEvent();
+ void noteShift();
+ void moveClock();
+ void copyMeasure();
+ void eraseMeasure();
+ void deleteMeasure();
+ void createMeasure();
+ void mixTrack();
+ void globalCut();
+ void globalInsert();
+ void globalSplit();
+ void copyRange();
+ void cutEvents();
+ void bounceToTrack();
+ void resetMidiDevices();
+ void initMidiDevices();
+ void localOff();
+ void bigtimeClosed();
+ void transportClosed();
+ void markerClosed();
+ void mixer1Closed();
+ void mixer2Closed();
+ void syncChanged();
+ void preferences();
+ void aboutToShowAddTrack();
+ void setRaster(int);
+ void playToggle();
+ void saveAsTemplate();
+
+ public slots:
+ void bounceToFile();
+ void closeEvent(QCloseEvent*e);
+ void loadProject(const QString&);
+ bool seqStart();
+ void showTransport(bool flag);
+ void showBigtime(bool);
+ void showMixer1(bool);
+ void showMixer2(bool);
+ void showMarker(bool on);
+ void importMidi(const QString &file);
+ void globalPitchChanged(int val);
+ void globalTempoChanged(int val);
+ bool seqRestart();
+ void setTempo50();
+ void setTempo100();
+ void setTempo200();
+ void setGlobalTempo(int val);
+ void setTool(int);
+ void setTool(const QString&);
+ void startEditor(Part*, int);
+ bool save();
+ bool saveAs();
+
+ public:
+ MusE();
+ Arranger* arranger;
+ QRect configGeometryMain;
+ void kbAccel(int);
+ void changeConfig(bool writeFlag);
+
+ void seqStop();
+ void setHeartBeat();
+ QWidget* transportWindow();
+ QWidget* bigtimeWindow();
+ QWidget* mixer1Window();
+ QWidget* mixer2Window();
+ bool importWaveToTrack(const QString& name, Track* track, const Pos&);
+
+ void selectionChanged();
+
+ int version; // last *.med file version
+ // 0xaabb aa - major version, bb minor version
+ int raster() const { return _raster; }
+ void setupTransportToolbar(QToolBar* tb) const;
+ void readToplevels(QDomNode);
+ void initRaster(int);
+
+ QAction* startAction;
+ QAction* rewindAction;
+ QAction* forwardAction;
+ QAction* stopAction;
+ QAction* playAction;
+
+ void showListEditor(const Pos&, Track*, Part*, Ctrl*);
+ void readSettings();
+ };
+
+//---------------------------------------------------------
+// MuseApplication
+//---------------------------------------------------------
+
+class MuseApplication : public QApplication {
+ MusE* muse;
+
+ public:
+ MuseApplication(int& argc, char** argv);
+ void setMuse(MusE* m) { muse = m; }
+ static Shortcut sc[];
+ };
+
+extern MusE* muse;
+extern QStyle* smallStyle;
+extern void addProject(const QString& name);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/muse.qrc b/muse_qt4_evolution/muse/muse.qrc
new file mode 100644
index 00000000..b15b64da
--- /dev/null
+++ b/muse_qt4_evolution/muse/muse.qrc
@@ -0,0 +1,85 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>style.qss</file>
+ <file>xpm/muse_icon_64x64.png</file>
+ <file>xpm/splash.png</file>
+ <file>xpm/filenew.png</file>
+ <file>xpm/fileopen.png</file>
+ <file>xpm/filesave.png</file>
+ <file>xpm/punchin.xpm</file>
+ <file>xpm/punchout.xpm</file>
+ <file>xpm/loop.xpm</file>
+ <file>xpm/start.xpm</file>
+ <file>xpm/stop.xpm</file>
+ <file>xpm/play.xpm</file>
+ <file>xpm/frewind.xpm</file>
+ <file>xpm/fforward.xpm</file>
+ <file>xpm/folder_new.png</file>
+ <file>xpm/recordOn.svg</file>
+ <file>xpm/recordOff.svg</file>
+ <file>xpm/greendot.svg</file>
+ <file>xpm/darkgreendot.svg</file>
+ <file>xpm/activeon.svg</file>
+ <file>xpm/activeoff.svg</file>
+ <file>xpm/on.svg</file>
+ <file>xpm/off.svg</file>
+ <file>xpm/mono.svg</file>
+ <file>xpm/stereo.svg</file>
+ <file>xpm/loop.xpm</file>
+ <file>xpm/punchin.xpm</file>
+ <file>xpm/punchout.xpm</file>
+ <file>xpm/undo.xpm</file>
+ <file>xpm/redo.xpm</file>
+ <file>xpm/panic.xpm</file>
+ <file>xpm/piano.xpm</file>
+ <file>xpm/view_transport_window.xpm</file>
+ <file>xpm/view_bigtime_window.xpm</file>
+ <file>xpm/view_cliplist.xpm</file>
+ <file>xpm/view_marker.xpm</file>
+ <file>xpm/view_mixer.xpm</file>
+ <file>xpm/pointer.xpm</file>
+ <file>xpm/pencil.xpm</file>
+ <file>xpm/delete.xpm</file>
+ <file>xpm/cut.xpm</file>
+ <file>xpm/glue.xpm</file>
+ <file>xpm/quant.xpm</file>
+ <file>xpm/draw.xpm</file>
+ <file>xpm/editmute.xpm</file>
+
+ <file>xpm/select_all.xpm</file>
+ <file>xpm/select_deselect_all.xpm</file>
+ <file>xpm/select_invert_selection.xpm</file>
+ <file>xpm/select_inside_loop.xpm</file>
+ <file>xpm/select_outside_loop.xpm</file>
+ <file>xpm/editcut.xpm</file>
+ <file>xpm/editcopy.xpm</file>
+ <file>xpm/editpaste.xpm</file>
+ <file>xpm/edit_drumms.xpm</file>
+ <file>xpm/edit_mastertrack.xpm</file>
+ <file>xpm/edit_list.xpm</file>
+ <file>xpm/wave.xpm</file>
+
+ </qresource>
+
+ <qresource lang="de">
+ <file alias="muse.qm">../share/locale/muse_de.qm</file>
+ </qresource>
+
+ <qresource lang="es">
+ <file alias="muse.qm">../share/locale/muse_es.qm</file>
+ </qresource>
+
+ <qresource lang="fr">
+ <file alias="muse.qm">../share/locale/muse_fr.qm</file>
+ </qresource>
+
+ <qresource lang="ru">
+ <file alias="muse.qm">../share/locale/muse_ru.qm</file>
+ </qresource>
+
+ <qresource lang="sv">
+ <file alias="muse.qm">../share/locale/muse_sv_SE.qm</file>
+ </qresource>
+</RCC>
+
diff --git a/muse_qt4_evolution/muse/part.cpp b/muse_qt4_evolution/muse/part.cpp
new file mode 100644
index 00000000..61ba561d
--- /dev/null
+++ b/muse_qt4_evolution/muse/part.cpp
@@ -0,0 +1,361 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "part.h"
+#include "track.h"
+#include "globals.h"
+#include "event.h"
+#include "audio.h"
+#include "al/tempo.h"
+
+const char* partColorNames[] = {
+ QT_TR_NOOP("Default"),
+ QT_TR_NOOP("Refrain"),
+ QT_TR_NOOP("Bridge"),
+ QT_TR_NOOP("Intro"),
+ QT_TR_NOOP("Coda"),
+ QT_TR_NOOP("Chorus"),
+ QT_TR_NOOP("Solo"),
+ QT_TR_NOOP("Brass"),
+ QT_TR_NOOP("Percussion"),
+ QT_TR_NOOP("Drums"),
+ QT_TR_NOOP("Guitar"),
+ QT_TR_NOOP("Bass"),
+ QT_TR_NOOP("Flute"),
+ QT_TR_NOOP("Strings"),
+ QT_TR_NOOP("Keyboard"),
+ QT_TR_NOOP("Piano"),
+ QT_TR_NOOP("Saxophon"),
+ };
+
+CloneList cloneList;
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+Part::Part(Track* t)
+ {
+ _selected = false;
+ _mute = false;
+ _colorIndex = 0;
+ _raster = -1; // invalid
+ _quant = -1;
+ _xmag = -1.0;
+ _fillLen = 0;
+ _track = t;
+ _events = 0;
+ if (_track && _track->type() == Track::WAVE)
+ setType(AL::FRAMES);
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+void Part::clone(EventList* e)
+ {
+ _events = e;
+ ref();
+ }
+
+//---------------------------------------------------------
+// addEvent
+//---------------------------------------------------------
+
+iEvent Part::addEvent(Event& p)
+ {
+ return _events->add(p);
+ }
+
+iEvent Part::addEvent(Event& p, unsigned t)
+ {
+ return _events->add(p, t);
+ }
+
+//---------------------------------------------------------
+// index
+//---------------------------------------------------------
+
+int PartList::index(Part* part)
+ {
+ int index = 0;
+ for (iPart i = begin(); i != end(); ++i, ++index)
+ if (i->second == part) {
+ return index;
+ }
+ printf("PartList::index(): not found!\n");
+ abort();
+// return 0;
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+Part* PartList::find(int idx)
+ {
+ int index = 0;
+ for (iPart i = begin(); i != end(); ++i, ++index)
+ if (index == idx)
+ return i->second;
+ return 0;
+ }
+
+//---------------------------------------------------------
+// findPart
+// search for part which contains tick
+//---------------------------------------------------------
+
+Part* PartList::findPart(unsigned tick)
+ {
+ iPart i = lower_bound(tick);
+ if (i != begin())
+ --i;
+ for (; i != end(); ++i) {
+ unsigned tick1 = i->second->tick();
+ unsigned tick2 = tick1 + i->second->lenTick();
+
+ if (tick >= tick2)
+ continue;
+ if (tick >= tick1)
+ return i->second;
+ if (tick < tick1)
+ break;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+iPart PartList::add(Part* part)
+ {
+ return insert(std::pair<const unsigned, Part*> (part->tick(), part));
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void PartList::remove(Part* part)
+ {
+ iPart i;
+ for (i = begin(); i != end(); ++i) {
+ if (i->second == part) {
+ erase(i);
+ return;
+ }
+ }
+printf("remove part: not found\n");
+ assert(i != end());
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Part::dump(int n) const
+ {
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ printf("Part: <%s> ", _name.toLatin1().data());
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ PosLen::dump();
+ }
+
+//---------------------------------------------------------
+// Part::write
+//---------------------------------------------------------
+
+void Part::write(Xml& xml)
+ {
+ int id = -1;
+ bool dumpEvents = true;
+
+
+ if (isClone()) {
+ // we have to dump the event list only on first
+ // incarnation of clone
+
+ for (iClone i = cloneList.begin(); i != cloneList.end(); ++i) {
+ if (i->el == _events) {
+ id = i->id;
+ dumpEvents = false;
+ break;
+ }
+ }
+ if (id == -1)
+ cloneList.push_back(ClonePart(_events, cloneList.size()));
+ }
+
+ if (id != -1)
+ xml.stag(QString("part cloneId=\"%1\"").arg(id));
+ else
+ xml.stag("part");
+ if (!_name.isEmpty())
+ xml.tag("name", _name);
+
+ PosLen::write(xml, "poslen");
+ if (_selected)
+ xml.tag("selected", _selected);
+ xml.tag("color", _colorIndex);
+ if (_raster != -1)
+ xml.tag("raster", _raster);
+ if (_quant != -1)
+ xml.tag("quant", _quant);
+ if (_xmag != -1.0)
+ xml.tag("xmag", _xmag);
+ for (ciCtrlCanvas i = ctrlCanvasList.begin(); i != ctrlCanvasList.end(); ++i)
+ xml.tagE(QString("CtrlCanvas h=\"%1\" id=\"%2\"").arg(i->height).arg(i->ctrlId));
+ if (_fillLen)
+ xml.tag("fillLen", _fillLen);
+ if (_mute)
+ xml.tag("mute", _mute);
+ if (dumpEvents) {
+ for (ciEvent e = _events->begin(); e != _events->end(); ++e)
+ e->second.write(xml, *this);
+ }
+ xml.etag("part");
+ }
+
+//---------------------------------------------------------
+// Part::read
+//---------------------------------------------------------
+
+void Part::read(QDomNode node, bool isMidiPart)
+ {
+ QDomElement e = node.toElement();
+ int id = e.attribute("cloneId", "-1").toInt();
+
+ ctrlCanvasList.clear();
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ int i = s.toInt();
+ if (tag == "name")
+ _name = s;
+ else if (tag == "poslen")
+ PosLen::read(node);
+ else if (tag == "selected")
+ _selected = i;
+ else if (tag == "color")
+ _colorIndex = i;
+ else if (tag == "raster")
+ _raster = i;
+ else if (tag == "quant")
+ _quant = i;
+ else if (tag == "xmag")
+ _xmag = s.toDouble();
+ else if (tag == "CtrlCanvas") {
+ CtrlCanvas c;
+ c.ctrlId = e.attribute("id","0").toInt();
+ c.height = e.attribute("h","50").toInt();
+ ctrlCanvasList.push_back(c);
+ }
+ else if (tag == "mute")
+ _mute = i;
+ else if (tag == "fillLen")
+ _fillLen = i;
+ else if (tag == "event") {
+ EventType type = isMidiPart ? Note : Wave;
+ Event e(type);
+ e.read(node);
+ // tickpos is relative to start of part
+ // TODO: better handling for wave event
+ e.move(-tick());
+ int tick = e.tick();
+ if ((tick < 0) || (tick >= int(lenTick()))) {
+ printf("ReadEvent: warning: event not in part: %d - %d - %d, discarded\n",
+ 0, tick, lenTick());
+ }
+ else {
+#if 0
+ if (e.type() == Controller) {
+ MidiChannel* mc = ((MidiTrack*)_track)->channel();
+ if (mc) {
+ CVal v;
+ v.i = e.dataB();
+ mc->addControllerVal(e.dataA(), tick, v);
+ }
+ else
+ _events.add(e);
+ }
+ else
+#endif
+ _events->add(e);
+ }
+ }
+ else
+ printf("MusE:read: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+
+ if (id != -1) {
+ bool found = false;
+ for (iClone i = cloneList.begin(); i != cloneList.end(); ++i) {
+ if (i->id == id) {
+ if (_events->size())
+ printf("MusE::internal error: clone part contains events\n");
+ clone(i->el);
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ // add to cloneList:
+ ClonePart cp(_events, id);
+ cloneList.push_back(cp);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// isClone
+//---------------------------------------------------------
+
+bool Part::isClone() const
+ {
+ return _events->cloneCount > 1;
+ }
+
+//---------------------------------------------------------
+// ref
+//---------------------------------------------------------
+
+void Part::ref()
+ {
+ if (_events == 0)
+ _events = new EventList;
+ ++(_events->cloneCount);
+ }
+
+//---------------------------------------------------------
+// deref
+//---------------------------------------------------------
+
+void Part::deref()
+ {
+ --(_events->cloneCount);
+ }
+
diff --git a/muse_qt4_evolution/muse/part.h b/muse_qt4_evolution/muse/part.h
new file mode 100644
index 00000000..fd5fdd52
--- /dev/null
+++ b/muse_qt4_evolution/muse/part.h
@@ -0,0 +1,151 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PART_H__
+#define __PART_H__
+
+#include "event.h"
+
+class Track;
+class MidiTrack;
+class WaveTrack;
+
+namespace AL {
+ class Xml;
+ };
+
+using AL::Xml;
+
+//---------------------------------------------------------
+// ClonePart
+//---------------------------------------------------------
+
+struct ClonePart {
+ EventList* el;
+ int id;
+ ClonePart(EventList* e, int i) : el(e), id(i) {}
+ };
+
+typedef std::list<ClonePart> CloneList;
+typedef CloneList::iterator iClone;
+extern CloneList cloneList;
+
+//---------------------------------------------------------
+// CtrlCanvas
+//---------------------------------------------------------
+
+struct CtrlCanvas {
+ int ctrlId;
+ int height;
+ };
+
+typedef std::list<CtrlCanvas> CtrlCanvasList;
+typedef CtrlCanvasList::iterator iCtrlCanvas;
+typedef CtrlCanvasList::const_iterator ciCtrlCanvas;
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+class Part : public AL::PosLen {
+ QString _name;
+ bool _selected;
+ bool _mute;
+ int _colorIndex;
+
+ // editor presets:
+ int _raster, _quant;
+ double _xmag;
+ CtrlCanvasList ctrlCanvasList;
+
+ // auto fill:
+ int _fillLen; // = 0 if no auto fill
+
+ protected:
+ Track* _track;
+ EventList* _events;
+
+ public:
+ Part(Track*);
+
+ CtrlCanvasList* getCtrlCanvasList() { return &ctrlCanvasList; }
+
+ const QString& name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+
+ bool selected() const { return _selected; }
+ void setSelected(bool f) { _selected = f; }
+
+ bool mute() const { return _mute; }
+ void setMute(bool b) { _mute = b; }
+
+ Track* track() const { return _track; }
+ void setTrack(Track*t) { _track = t; }
+
+ int colorIndex() const { return _colorIndex; }
+ void setColorIndex(int idx) { _colorIndex = idx; }
+
+ int raster() const { return _raster; }
+ void setRaster(int val) { _raster = val; }
+
+ int quant() const { return _quant; }
+ void setQuant(int val) { _quant = val; }
+
+ double xmag() const { return _xmag; }
+ void setXmag(double val) { _xmag = val; }
+
+ EventList* events() const { return _events; }
+
+ void clone(EventList* e);
+ iEvent addEvent(Event& p);
+ iEvent addEvent(Event& p, unsigned);
+
+ int fillLen() const { return _fillLen; }
+ void setFillLen(int val) { _fillLen = val; }
+
+ void read(QDomNode, bool isMidiPart);
+ void write(Xml&);
+ void dump(int n = 0) const;
+
+ bool isClone() const;
+ void deref();
+ void ref();
+ };
+
+//---------------------------------------------------------
+// PartList
+//---------------------------------------------------------
+
+typedef std::multimap<unsigned, Part*, std::less<unsigned> > PL;
+typedef PL::iterator iPart;
+typedef PL::const_iterator ciPart;
+
+class PartList : public PL {
+ public:
+ Part* findPart(unsigned tick);
+ iPart add(Part*);
+ void remove(Part* part);
+ int index(Part*);
+ Part* find(int idx);
+ };
+
+extern const char* partColorNames[];
+#endif
+
diff --git a/muse_qt4_evolution/muse/partdrag.cpp b/muse_qt4_evolution/muse/partdrag.cpp
new file mode 100644
index 00000000..c47d3c11
--- /dev/null
+++ b/muse_qt4_evolution/muse/partdrag.cpp
@@ -0,0 +1,199 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "partdrag.h"
+#include "al/xml.h"
+#include "part.h"
+
+const char MidiPartDrag::type[] = "application/muse/part/midi";
+const char AudioPartDrag::type[] = "application/muse/part/audio";
+const char WavUriDrag::type[] = "text/uri-list";
+
+//---------------------------------------------------------
+// MidiPartDrag
+//---------------------------------------------------------
+
+MidiPartDrag::MidiPartDrag(Part* part, QWidget* src)
+ : QDrag(src)
+ {
+ QBuffer buffer;
+ buffer.open(QIODevice::WriteOnly);
+ AL::Xml xml(&buffer);
+ part->write(xml);
+ buffer.close();
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setData(type, buffer.buffer());
+ setMimeData(mimeData);
+ }
+
+//---------------------------------------------------------
+// canDecode
+//---------------------------------------------------------
+
+bool MidiPartDrag::canDecode(const QMimeData* s)
+ {
+ return s->hasFormat(type);
+ }
+
+//---------------------------------------------------------
+// decode
+//---------------------------------------------------------
+
+bool MidiPartDrag::decode(const QMimeData* s, Part*& p)
+ {
+ p = 0;
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(s->data(type), false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error parsing part: %s\n", error.toLatin1().data());
+ return false;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "part") {
+ p = new Part(0);
+ p->ref();
+ p->read(node, true);
+ }
+ else
+ printf("MusE: %s not supported\n", e.tagName().toLatin1().data());
+ }
+ return (p != 0);
+ }
+
+//---------------------------------------------------------
+// PartDrag
+// does only transfer reference to part, this does
+// not allow for transfers between different apps
+// TODO: transfer content (xml representation)
+//---------------------------------------------------------
+
+AudioPartDrag::AudioPartDrag(Part* part, QWidget* src)
+ : QDrag(src)
+ {
+ QBuffer buffer;
+ buffer.open(QIODevice::WriteOnly);
+ Xml xml(&buffer);
+ part->write(xml);
+ buffer.close();
+
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setData(type, buffer.buffer());
+ setMimeData(mimeData);
+ }
+
+//---------------------------------------------------------
+// canDecode
+//---------------------------------------------------------
+
+bool AudioPartDrag::canDecode(const QMimeData* s)
+ {
+ return s->hasFormat(type);
+ }
+
+//---------------------------------------------------------
+// decode
+//---------------------------------------------------------
+
+bool AudioPartDrag::decode(const QMimeData* s, Part*& p)
+ {
+ p = 0;
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(s->data(type), false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error parsing part: %s\n", error.toLatin1().data());
+ return false;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "part") {
+ p = new Part(0);
+ p->ref();
+ p->read(node, false);
+ }
+ else
+ printf("MusE: %s not supported\n", e.tagName().toLatin1().data());
+ }
+ return (p != 0);
+ }
+
+//---------------------------------------------------------
+// WavUriDrag
+//---------------------------------------------------------
+
+WavUriDrag::WavUriDrag(const QString& s, QWidget* src)
+ : QDrag(src)
+ {
+ QByteArray a(s.toAscii());
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setData(type, a);
+ setMimeData(mimeData);
+ }
+
+//---------------------------------------------------------
+// canDecode
+//---------------------------------------------------------
+
+bool WavUriDrag::canDecode(const QMimeData* s)
+ {
+ if (!s->hasFormat(type))
+ return false;
+ QByteArray data = s->data(type);
+ QUrl url(data);
+ if (url.scheme() != "file")
+ return false;
+ QFileInfo fi(url.toLocalFile().trimmed());
+ if (!fi.exists()) {
+ printf("drag file <%s> does not exist\n", fi.filePath().toLatin1().data());
+ return false;
+ }
+ if (fi.suffix() != "wav") {
+ printf("drag file <%s> has no wav suffix\n", fi.filePath().toLatin1().data());
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// decode
+//---------------------------------------------------------
+
+bool WavUriDrag::decode(const QMimeData* s, QString* uri)
+ {
+ QByteArray data = s->data(type);
+ QUrl url(data);
+ *uri = url.toLocalFile().trimmed();
+ return true;
+ }
+
diff --git a/muse_qt4_evolution/muse/partdrag.h b/muse_qt4_evolution/muse/partdrag.h
new file mode 100644
index 00000000..d8c2e978
--- /dev/null
+++ b/muse_qt4_evolution/muse/partdrag.h
@@ -0,0 +1,69 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PARTDRAG_H__
+#define __PARTDRAG_H__
+
+class Part;
+
+//---------------------------------------------------------
+// MidiPartDrag
+//---------------------------------------------------------
+
+class MidiPartDrag : public QDrag {
+ Q_OBJECT
+
+ public:
+ static const char type[];
+ MidiPartDrag(Part*, QWidget* src);
+ static bool canDecode(const QMimeData*);
+ static bool decode(const QMimeData* s, Part*& p);
+ };
+
+//---------------------------------------------------------
+// AudioPartDrag
+//---------------------------------------------------------
+
+class AudioPartDrag : public QDrag {
+ Q_OBJECT
+
+ public:
+ static const char type[];
+ AudioPartDrag(Part*, QWidget* src);
+ static bool canDecode(const QMimeData*);
+ static bool decode(const QMimeData* s, Part*& p);
+ };
+
+//---------------------------------------------------------
+// WavUriDrag
+//---------------------------------------------------------
+
+class WavUriDrag : public QDrag {
+ Q_OBJECT
+
+ public:
+ static const char type[];
+ WavUriDrag(const QString&, QWidget* src);
+ static bool canDecode(const QMimeData*);
+ static bool decode(const QMimeData* s, QString* p);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/pipeline.cpp b/muse_qt4_evolution/muse/pipeline.cpp
new file mode 100644
index 00000000..ae5b9d25
--- /dev/null
+++ b/muse_qt4_evolution/muse/pipeline.cpp
@@ -0,0 +1,221 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "pipeline.h"
+#include "plugin.h"
+#include "plugingui.h"
+#include "al/dsp.h"
+
+//---------------------------------------------------------
+// Pipeline
+//---------------------------------------------------------
+
+Pipeline::Pipeline()
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+ }
+
+Pipeline::Pipeline(const Pipeline& p)
+ : QList<PluginI*>(p)
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+ }
+
+//---------------------------------------------------------
+// Pipeline
+//---------------------------------------------------------
+
+Pipeline::~Pipeline()
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ ::free(buffer[i]);
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void Pipeline::setChannels(int n)
+ {
+ foreach(PluginI* plugin, *this)
+ plugin->setChannels(n);
+ }
+
+//---------------------------------------------------------
+// isOn
+//---------------------------------------------------------
+
+bool Pipeline::isOn(int idx) const
+ {
+ PluginI* p = value(idx);
+ if (p)
+ return p->on();
+ return false;
+ }
+
+//---------------------------------------------------------
+// setOn
+//---------------------------------------------------------
+
+void Pipeline::setOn(int idx, bool flag)
+ {
+ PluginI* p = value(idx);
+ if (p) {
+ p->setOn(flag);
+ if (p->gui())
+ p->gui()->setOn(flag);
+ }
+ }
+
+//---------------------------------------------------------
+// label
+//---------------------------------------------------------
+
+QString Pipeline::label(int idx) const
+ {
+ PluginI* p = value(idx);
+ if (p)
+ return p->label();
+ return QString("");
+ }
+
+//---------------------------------------------------------
+// name
+//---------------------------------------------------------
+
+QString Pipeline::name(int idx) const
+ {
+ PluginI* p = value(idx);
+ if (p)
+ return p->name();
+ return QString("empty");
+ }
+
+//---------------------------------------------------------
+// hasNativeGui
+//---------------------------------------------------------
+
+bool Pipeline::hasNativeGui(int idx) const
+ {
+ PluginI* p = value(idx);
+ if (p)
+ return p->hasNativeGui();
+ return false;
+ }
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void Pipeline::move(int idx, bool up)
+ {
+ PluginI* p1 = (*this)[idx];
+ if (up) {
+ (*this)[idx] = (*this)[idx-1];
+ (*this)[idx-1] = p1;
+ }
+ else {
+ (*this)[idx] = (*this)[idx+1];
+ (*this)[idx+1] = p1;
+ }
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void Pipeline::showGui(int idx, bool flag)
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ p->showGui(flag);
+ }
+
+//---------------------------------------------------------
+// showNativeGui
+//---------------------------------------------------------
+
+void Pipeline::showNativeGui(int idx, bool flag)
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ p->showNativeGui(flag);
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool Pipeline::guiVisible(int idx)
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ return p->guiVisible();
+ return false;
+ }
+
+//---------------------------------------------------------
+// nativeGuiVisible
+//---------------------------------------------------------
+
+bool Pipeline::nativeGuiVisible(int idx)
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ return p->nativeGuiVisible();
+ return false;
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void Pipeline::apply(int ports, unsigned long nframes, float** buffer1)
+ {
+ // prepare a second set of buffers in case a plugin is not
+ // capable of inPlace processing
+
+ bool swap = false;
+
+ foreach (PluginI* p, *this) {
+ if (p->on()) {
+ if (p->inPlaceCapable()) {
+ if (swap)
+ p->apply(nframes, ports, buffer, buffer);
+ else
+ p->apply(nframes, ports, buffer1, buffer1);
+ }
+ else {
+ if (swap)
+ p->apply(nframes, ports, buffer, buffer1);
+ else
+ p->apply(nframes, ports, buffer1, buffer);
+ swap = !swap;
+ }
+ }
+ }
+ if (swap) {
+ for (int i = 0; i < ports; ++i)
+ AL::dsp->cpy(buffer1[i], buffer[i], nframes);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/pipeline.h b/muse_qt4_evolution/muse/pipeline.h
new file mode 100644
index 00000000..a6e34678
--- /dev/null
+++ b/muse_qt4_evolution/muse/pipeline.h
@@ -0,0 +1,59 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PIPELINE_H__
+#define __PIPELINE_H__
+
+#include "globaldefs.h"
+
+class PluginI;
+
+//---------------------------------------------------------
+// Pipeline
+// chain of connected efx inserts
+//---------------------------------------------------------
+
+class Pipeline : public QList<PluginI*> {
+ float* buffer[MAX_CHANNELS];
+
+ public:
+ Pipeline();
+ ~Pipeline();
+
+ Pipeline(const Pipeline&);
+ Pipeline& operator=(const Pipeline&); // disable copies
+
+ bool isOn(int idx) const;
+ void setOn(int, bool);
+ QString label(int idx) const;
+ QString name(int idx) const;
+ bool hasNativeGui(int idx) const;
+ void showGui(int, bool);
+ bool guiVisible(int);
+ bool nativeGuiVisible(int);
+ void showNativeGui(int, bool);
+ void apply(int ports, unsigned long nframes, float** buffer);
+ void move(int idx, bool up);
+ void setChannels(int);
+ PluginI* plugin(int idx) { return value(idx); }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/plugin.cpp b/muse_qt4_evolution/muse/plugin.cpp
new file mode 100644
index 00000000..a661b08e
--- /dev/null
+++ b/muse_qt4_evolution/muse/plugin.cpp
@@ -0,0 +1,466 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <dlfcn.h>
+
+#include "al/al.h"
+#include "plugin.h"
+#include "ladspaplugin.h"
+#include "auxplugin.h"
+#include "plugingui.h"
+#include "al/xml.h"
+#include "fastlog.h"
+#include "ctrl.h"
+
+PluginList plugins;
+
+//---------------------------------------------------------
+// Plugin
+//---------------------------------------------------------
+
+Plugin::Plugin(const QFileInfo* f)
+ : fi(*f)
+ {
+ _instances = 0;
+ }
+
+//---------------------------------------------------------
+// loadPluginLib
+//---------------------------------------------------------
+
+static void loadPluginLib(QFileInfo* fi)
+ {
+ void* handle = dlopen(fi->filePath().toLatin1().data(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ fi->filePath().toLatin1().data(), dlerror());
+ return;
+ }
+ LADSPA_Descriptor_Function ladspa = (LADSPA_Descriptor_Function)dlsym(handle, "ladspa_descriptor");
+
+ if (!ladspa) {
+ const char *txt = dlerror();
+ if (txt) {
+ fprintf(stderr,
+ "Unable to find ladspa_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a LADSPA plugin file?\n",
+ fi->filePath().toLatin1().data(),
+ txt);
+ return;
+ }
+ }
+ const LADSPA_Descriptor* descr;
+ for (int i = 0;; ++i) {
+ descr = ladspa(i);
+ if (descr == NULL)
+ break;
+ plugins.push_back(new LadspaPlugin(fi, ladspa, descr));
+ }
+ }
+
+//---------------------------------------------------------
+// loadPluginDir
+//---------------------------------------------------------
+
+static void loadPluginDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan ladspa plugin dir <%s>\n", s.toLatin1().data());
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
+ QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ loadPluginLib(&fi);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// initPlugins
+// search for LADSPA plugins
+//---------------------------------------------------------
+
+void initPlugins()
+ {
+ loadPluginDir(museGlobalLib + QString("/plugins"));
+
+ const char* ladspaPath = getenv("LADSPA_PATH");
+ if (ladspaPath == 0)
+ ladspaPath = "/usr/lib/ladspa:/usr/local/lib/ladspa";
+
+ const char* p = ladspaPath;
+ while (*p != '\0') {
+ const char* pe = p;
+ while (*pe != ':' && *pe != '\0')
+ pe++;
+
+ int n = pe - p;
+ if (n) {
+ char* buffer = new char[n + 1];
+ strncpy(buffer, p, n);
+ buffer[n] = '\0';
+ loadPluginDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ auxPlugin = new AuxPlugin;
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+Plugin* PluginList::find(const QString& file, const QString& name)
+ {
+ for (iPlugin i = begin(); i != end(); ++i) {
+ if ((file == (*i)->lib()) && (name == (*i)->label()))
+ return *i;
+ }
+ printf("MusE: Plugin <%s> not found\n", name.toAscii().data());
+ return 0;
+ }
+
+//---------------------------------------------------------
+// PluginI
+//---------------------------------------------------------
+
+PluginI::PluginI(AudioTrack* t)
+ {
+ _track = t;
+ _plugin = 0;
+ instances = 0;
+ _gui = 0;
+ _on = true;
+ pif = 0;
+ initControlValues = false;
+ }
+
+//---------------------------------------------------------
+// PluginI
+//---------------------------------------------------------
+
+PluginI::~PluginI()
+ {
+ if (_plugin) {
+ deactivate();
+ _plugin->incInstances(-1);
+ }
+ if (_gui)
+ delete _gui;
+ if (pif) {
+ for (int i = 0; i < instances; ++i) {
+ delete pif[i];
+ }
+ delete[] pif;
+ }
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void PluginI::apply(unsigned nframes, int ports, float** src, float** dst)
+ {
+ int oports = _plugin->outports();
+ int iports = _plugin->inports();
+
+ float* sp[iports * instances];
+ float* dp[oports * instances];
+
+ for (int i = 0; i < iports * instances; ++i)
+ sp[i] = src[i % ports];
+ for (int i = 0; i < oports * instances; ++i)
+ dp[i] = dst[i % ports];
+
+ float** spp = sp;
+ float** dpp = dp;
+ for (int i = 0; i < instances; ++i) {
+ pif[i]->apply(nframes, spp, dpp);
+ spp += iports;
+ dpp += oports;
+ }
+ }
+
+//---------------------------------------------------------
+// setChannel
+//---------------------------------------------------------
+
+void PluginI::setChannels(int c)
+ {
+ if (_channel == c)
+ return;
+ int ni = c / _plugin->outports();
+ if (ni == 0)
+ ni = 1;
+ _channel = c;
+ if (ni == instances)
+ return;
+ _channel = c;
+
+ // remove old instances:
+ deactivate();
+ for (int i = 0; i < instances; ++i)
+ delete pif[i];
+ delete pif;
+
+ instances = ni;
+ pif = new PluginIF*[instances];
+ for (int i = 0; i < instances; ++i) {
+ pif[i] = _plugin->createPIF(this);
+ if (pif[i] == 0)
+ return;
+ }
+ activate();
+ }
+
+//---------------------------------------------------------
+// initPluginInstance
+// return true on error
+//---------------------------------------------------------
+
+bool PluginI::initPluginInstance(Plugin* plug, int c)
+ {
+ if (plug == 0) {
+ printf("initPluginInstance: zero plugin\n");
+ return true;
+ }
+ _channel = c;
+ _plugin = plug;
+ _plugin->incInstances(1);
+ QString inst("-" + QString::number(_plugin->instances()));
+ _name = _plugin->name() + inst;
+ _label = _plugin->label() + inst;
+
+ instances = _channel / plug->outports();
+ if (instances < 1)
+ instances = 1;
+ pif = new PluginIF*[instances];
+ for (int i = 0; i < instances; ++i) {
+ pif[i] = _plugin->createPIF(this);
+ if (pif[i] == 0)
+ return true;
+ }
+ activate();
+ return false;
+ }
+
+//---------------------------------------------------------
+// setParameter
+// set plugin instance controller value by name
+// return true on error
+//---------------------------------------------------------
+
+bool PluginI::setParameter(const QString& s, double val)
+ {
+ if (_plugin == 0)
+ return true;
+ int n = _plugin->parameter();
+ for (int i = 0; i < n; ++i) {
+ if (getParameterName(i) == s) {
+ setParam(i, val);
+ return false;
+ }
+ }
+ printf("PluginI:setControl(%s, %f) controller not found\n",
+ s.toLatin1().data(), val);
+ return true;
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void PluginI::writeConfiguration(Xml& xml, bool prefader)
+ {
+ writeConfiguration1(xml, prefader);
+ xml.etag("plugin"); // append endtag
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void PluginI::writeConfiguration1(Xml& xml, bool prefader)
+ {
+ xml.stag(QString("plugin pre=\"%1\" file=\"%2\" label=\"%3\" channel=\"%4\"")
+ .arg(prefader)
+ .arg(_plugin->lib())
+ .arg(_plugin->label())
+ .arg(_channel));
+// instances * _plugin->inports());
+ if (_on == false)
+ xml.tag("on", _on);
+ if (guiVisible()) {
+ xml.tag("gui", 1);
+ xml.tag("geometry", _gui);
+ }
+ if (hasNativeGui() && nativeGuiVisible())
+ xml.tag("nativeGui", 1);
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+// return true on error
+//---------------------------------------------------------
+
+bool PluginI::readConfiguration(QDomNode node, bool* prefader)
+ {
+ QDomElement e = node.toElement();
+ QString file = e.attribute("file");
+ QString label = e.attribute("label");
+ _channel = e.attribute("channel").toInt();
+ *prefader = e.attribute("pre", "1").toInt();
+
+ if (_plugin == 0) {
+ // special case: internal plugin Aux
+ if (file.isEmpty() && label == "Aux")
+ _plugin = auxPlugin;
+ else
+ _plugin = plugins.find(file, label);
+ if (_plugin == 0)
+ return true;
+ if (initPluginInstance(_plugin, _channel))
+ return true;
+ }
+ node = node.firstChild();
+ while (!node.isNull()) {
+ e = node.toElement();
+ int i = e.text().toInt();
+ QString tag(e.tagName());
+ if (tag == "on") {
+ bool flag = i;
+ _on = flag;
+ }
+ else if (tag == "gui") {
+ bool flag = i;
+ showGui(flag);
+ }
+ else if (tag == "nativeGui") {
+ bool flag = i;
+ showNativeGui(flag);
+ }
+ else if (tag == "geometry") {
+ QRect r(AL::readGeometry(node));
+ if (_gui) {
+ _gui->resize(r.size());
+ _gui->move(r.topLeft());
+ }
+ }
+ else
+ printf("MusE:PluginI: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ if (_gui)
+ _gui->updateValues();
+ return false;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void PluginI::showGui()
+ {
+ if (_plugin) {
+ if (_gui == 0)
+ makeGui();
+ if (_gui->isVisible())
+ _gui->hide();
+ else
+ _gui->show();
+ }
+ }
+
+void PluginI::showGui(bool flag)
+ {
+ if (_plugin) {
+ if (flag) {
+ if (_gui == 0)
+ makeGui();
+ _gui->show();
+ }
+ else {
+ if (_gui)
+ _gui->hide();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool PluginI::guiVisible() const
+ {
+ return _gui && _gui->isVisible();
+ }
+
+//---------------------------------------------------------
+// makeGui
+//---------------------------------------------------------
+
+void PluginI::makeGui()
+ {
+ _gui = new PluginGui(this);
+ }
+
+//---------------------------------------------------------
+// deactivate
+//---------------------------------------------------------
+
+void PluginI::deactivate()
+ {
+ for (int i = 0; i < instances; ++i) {
+ pif[i]->deactivate();
+ pif[i]->cleanup();
+ }
+ }
+
+//---------------------------------------------------------
+// setParam
+//---------------------------------------------------------
+
+void PluginI::setParam(int idx, double val)
+ {
+ if (_gui)
+ _gui->updateValue(idx, val);
+ for (int i = 0; i < instances; ++i)
+ pif[i]->setParam(idx, val);
+ }
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void PluginI::activate()
+ {
+ for (int i = 0; i < instances; ++i)
+ pif[i]->activate();
+ }
+
diff --git a/muse_qt4_evolution/muse/plugin.h b/muse_qt4_evolution/muse/plugin.h
new file mode 100644
index 00000000..c01a1f18
--- /dev/null
+++ b/muse_qt4_evolution/muse/plugin.h
@@ -0,0 +1,218 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PLUGIN_H__
+#define __PLUGIN_H__
+
+#include "ladspa.h"
+#include "globals.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class PluginIF;
+class PluginGui;
+class PluginI;
+class LadspaPluginIF;
+class AudioTrack;
+class Ctrl;
+
+#define AUDIO_IN (LADSPA_PORT_AUDIO | LADSPA_PORT_INPUT)
+#define AUDIO_OUT (LADSPA_PORT_AUDIO | LADSPA_PORT_OUTPUT)
+
+//---------------------------------------------------------
+// Plugin
+//---------------------------------------------------------
+
+class Plugin {
+
+ protected:
+ int _instances;
+ QFileInfo fi;
+
+ public:
+ Plugin(const QFileInfo* f);
+ virtual ~Plugin() {}
+
+ int instances() const { return _instances; }
+ virtual void incInstances(int val) { _instances += val; }
+
+ QString lib() const { return fi.baseName(); }
+ QString path() const { return fi.absolutePath(); }
+
+ virtual QString label() const { return QString(); }
+ virtual QString name() const { return QString(); }
+ virtual unsigned long id() const { return 0; }
+ virtual QString maker() const { return QString(); }
+ virtual QString copyright() const { return QString(); }
+
+ virtual PluginIF* createPIF(PluginI*) = 0;
+
+ virtual void range(int, double* min, double* max) const {
+ *min = 0.0f;
+ *max = 1.0f;
+ }
+
+ virtual int parameter() const { return 0; }
+ virtual int inports() const { return 0; }
+ virtual int outports() const { return 0; }
+
+ virtual bool inPlaceCapable() const { return false; }
+
+ virtual bool isLog(int) const { return false; }
+ virtual bool isBool(int) const { return false; }
+ virtual bool isInt(int) const { return false; }
+ virtual double defaultValue(int) const { return 0.0f; }
+ };
+
+//---------------------------------------------------------
+// PluginList
+//---------------------------------------------------------
+
+typedef std::list<Plugin*>::iterator iPlugin;
+
+class PluginList : public std::list<Plugin*> {
+ public:
+ Plugin* find(const QString&, const QString&);
+ PluginList() {}
+ };
+
+//---------------------------------------------------------
+// PluginIF
+// plugin instance interface
+//---------------------------------------------------------
+
+class PluginIF {
+ protected:
+ PluginI* pluginI;
+
+ public:
+ PluginIF(PluginI* pi) { pluginI = pi; }
+ virtual ~PluginIF() {}
+
+ PluginI* pluginInstance() { return pluginI; }
+ const PluginI* pluginInstance() const { return pluginI; }
+
+ virtual void apply(unsigned nframes, float** src, float** dst) = 0;
+ virtual void activate() = 0;
+ virtual void deactivate() = 0;
+ virtual void cleanup() = 0;
+ virtual void setParam(int i, double val) = 0;
+ virtual float param(int i) const = 0;
+ virtual const char* getParameterName(int) const { return ""; }
+ virtual const char* getParameterLabel(int) const { return 0; }
+ virtual const char* getParameterDisplay(int, float) const { return 0; }
+ virtual bool hasGui() const { return false; }
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ };
+
+//---------------------------------------------------------
+// PluginI
+// plugin instance
+//---------------------------------------------------------
+
+class PluginI {
+ Plugin* _plugin;
+ AudioTrack* _track;
+
+ int instances;
+ PluginIF** pif;
+
+ int _channel;
+
+ PluginGui* _gui;
+ bool _on;
+
+ QString _name;
+ QString _label;
+
+ std::vector<Ctrl*> controllerList;
+
+ void makeGui();
+
+ protected:
+ bool initControlValues;
+ friend class LadspaPluginIF;
+
+ public:
+ PluginI(AudioTrack*);
+ ~PluginI();
+
+ Plugin* plugin() const { return _plugin; }
+ bool on() const { return _on; }
+ void setOn(bool val) { _on = val; }
+ PluginGui* gui() const { return _gui; }
+
+ bool initPluginInstance(Plugin*, int channels);
+ void setChannels(int);
+ int channel() const { return _channel; }
+ void apply(unsigned nframes, int ports, float** b1, float** b2);
+
+ void activate();
+ void deactivate();
+ QString label() const { return _label; }
+ QString name() const { return _name; }
+ QString lib() const { return _plugin->lib(); }
+
+ AudioTrack* track() const { return _track; }
+
+ void writeConfiguration(Xml&, bool);
+ void writeConfiguration1(Xml&, bool); // without end tag!
+ bool readConfiguration(QDomNode, bool*);
+
+ void showGui();
+ void showGui(bool);
+ bool guiVisible() const;
+
+ bool hasNativeGui() const { return pif[0]->hasGui(); }
+ void showNativeGui(bool f) { return pif[0]->showGui(f); }
+ bool nativeGuiVisible() const { return pif[0]->guiVisible(); }
+
+ void setControllerList(Ctrl* cl) { controllerList.push_back(cl); }
+ Ctrl* controller(int idx) const { return controllerList[idx]; }
+ bool setParameter(const QString& s, double val);
+ void setParam(int i, double val);
+ double param(int i) const { return pif[0]->param(i); }
+
+ const char* getParameterName(int i) const { return pif[0]->getParameterName(i); }
+ const char* getParameterLabel(int i) const { return pif[0]->getParameterLabel(i); }
+ const char* getParameterDisplay(int i, float v) const { return pif[0]->getParameterDisplay(i, v); }
+
+ void range(int i, double* min, double* max) const {
+ _plugin->range(i, min, max);
+ }
+ double defaultValue(int i) const { return _plugin->defaultValue(i); }
+ bool inPlaceCapable() const { return _plugin->inPlaceCapable(); }
+
+ bool isLog(int k) const { return _plugin->isLog(k); }
+ bool isBool(int k) const { return _plugin->isBool(k); }
+ bool isInt(int k) const { return _plugin->isInt(k); }
+
+ PluginIF* pluginIF(int idx) { return pif[idx]; }
+ };
+
+extern void initPlugins();
+extern PluginList plugins;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/plugingui.cpp b/muse_qt4_evolution/muse/plugingui.cpp
new file mode 100644
index 00000000..9f0d1d32
--- /dev/null
+++ b/muse_qt4_evolution/muse/plugingui.cpp
@@ -0,0 +1,770 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "fastlog.h"
+#include "widgets/filedialog.h"
+#include "plugin.h"
+#include "plugingui.h"
+#include "icons.h"
+#include "al/xml.h"
+#include "gui.h"
+
+#include "awl/floatentry.h"
+#include "awl/slider.h"
+#include "awl/checkbox.h"
+#include "awl/combobox.h"
+
+using Awl::FloatEntry;
+using Awl::Slider;
+using Awl::CheckBox;
+using Awl::ComboBox;
+
+static const char* preset_file_pattern[] = {
+ QT_TR_NOOP("presets (*.pre *.pre.gz *.pre.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+
+int PluginDialog::selectedPlugType = SEL_SM;
+QStringList PluginDialog::sortItems = QStringList();
+
+//---------------------------------------------------------
+// PluginDialog
+// select Plugin dialog
+//---------------------------------------------------------
+
+PluginDialog::PluginDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setWindowTitle(tr("MusE: select plugin"));
+ QVBoxLayout* layout = new QVBoxLayout(this);
+
+ pList = new QTreeWidget(this);
+ pList->setColumnCount(11);
+ pList->setSortingEnabled(true);
+ QStringList headerLabels;
+ headerLabels << tr("Lib");
+ headerLabels << tr("Label");
+ headerLabels << tr("Name");
+ headerLabels << tr("AI");
+ headerLabels << tr("AO");
+ headerLabels << tr("CI");
+ headerLabels << tr("CO");
+ headerLabels << tr("IP");
+ headerLabels << tr("id");
+ headerLabels << tr("Maker");
+ headerLabels << tr("Copyright");
+
+ int sizes[] = { 110, 110, 0, 30, 30, 30, 30, 30, 40, 110, 110 };
+ for (int i = 0; i < 11; ++i) {
+ if (sizes[i] == 0) {
+ pList->header()->setResizeMode(i, QHeaderView::Stretch);
+ }
+ else {
+ if (sizes[i] <= 40) // hack alert!
+ pList->header()->setResizeMode(i, QHeaderView::Custom);
+ pList->header()->resizeSection(i, sizes[i]);
+ }
+ }
+
+ pList->setHeaderLabels(headerLabels);
+
+ pList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ pList->setSelectionMode(QAbstractItemView::SingleSelection);
+ pList->setAlternatingRowColors(true);
+
+ fillPlugs(selectedPlugType);
+ layout->addWidget(pList);
+
+ //---------------------------------------------------
+ // Ok/Cancel Buttons
+ //---------------------------------------------------
+
+ QBoxLayout* w5 = new QHBoxLayout;
+ layout->addLayout(w5);
+
+ QPushButton* okB = new QPushButton(tr("Ok"), this);
+ okB->setDefault(true);
+ QPushButton* cancelB = new QPushButton(tr("Cancel"), this);
+ okB->setFixedWidth(80);
+ cancelB->setFixedWidth(80);
+ w5->addWidget(okB);
+ w5->addSpacing(12);
+ w5->addWidget(cancelB);
+
+ QGroupBox* plugSelGroup = new QGroupBox;
+ plugSelGroup->setTitle("Show plugs:");
+ QHBoxLayout* psl = new QHBoxLayout;
+ plugSelGroup->setLayout(psl);
+
+ QButtonGroup* plugSel = new QButtonGroup(plugSelGroup);
+ onlySM = new QRadioButton;
+ onlySM->setText(tr("Mono and Stereo"));
+ onlySM->setCheckable(true);
+ plugSel->addButton(onlySM);
+ psl->addWidget(onlySM);
+ onlyS = new QRadioButton;
+ onlyS->setText(tr("Stereo"));
+ onlyS->setCheckable(true);
+ plugSel->addButton(onlyS);
+ psl->addWidget(onlyS);
+ onlyM = new QRadioButton;
+ onlyM->setText(tr("Mono"));
+ onlyM->setCheckable(true);
+ plugSel->addButton(onlyM);
+ psl->addWidget(onlyM);
+ allPlug = new QRadioButton;
+ allPlug->setText(tr("Show All"));
+ allPlug->setCheckable(true);
+ plugSel->addButton(allPlug);
+ psl->addWidget(allPlug);
+ plugSel->setExclusive(true);
+
+ switch(selectedPlugType) {
+ case SEL_SM: onlySM->setChecked(true); break;
+ case SEL_S: onlyS->setChecked(true); break;
+ case SEL_M: onlyM->setChecked(true); break;
+ case SEL_ALL: allPlug->setChecked(true); break;
+ }
+
+ plugSelGroup->setToolTip(tr("Select which types of plugins should be visible in the list.<br>"
+ "Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.<br>"
+ "Also beware that the 'all' alternative includes plugins that probably not are usable by MusE."));
+
+ w5->addSpacing(12);
+ w5->addWidget(plugSelGroup);
+ w5->addSpacing(12);
+
+ QLabel *sortLabel = new QLabel;
+ sortLabel->setText(tr("Search in 'Label' and 'Name':"));
+ w5->addWidget(sortLabel);
+ w5->addSpacing(2);
+
+ sortBox = new QComboBox(this);
+ sortBox->setEditable(true);
+ if (!sortItems.empty())
+ sortBox->addItems(sortItems);
+
+ sortBox->setMinimumSize(100, 10);
+ w5->addWidget(sortBox);
+ w5->addStretch(-1);
+
+ if (!sortBox->currentText().isEmpty())
+ fillPlugs(sortBox->currentText());
+ else
+ fillPlugs(selectedPlugType);
+
+
+ connect(pList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(accept()));
+ connect(cancelB, SIGNAL(clicked()), SLOT(reject()));
+ connect(okB, SIGNAL(clicked()), SLOT(accept()));
+ connect(plugSel, SIGNAL(buttonClicked(QAbstractButton*)), SLOT(fillPlugs(QAbstractButton*)));
+ connect(sortBox, SIGNAL(editTextChanged(const QString&)),SLOT(fillPlugs(const QString&)));
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void PluginDialog::accept()
+ {
+ if (!sortBox->currentText().isEmpty()) {
+ foreach (QString item, sortItems)
+ if(item == sortBox->currentText()) {
+ QDialog::accept();
+ return;
+ }
+ sortItems.push_front(sortBox->currentText());
+ }
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+Plugin* PluginDialog::value()
+ {
+ QTreeWidgetItem* item = pList->selectedItems().at(0);
+ if (item)
+ return plugins.find(item->text(0), item->text(1));
+printf("plugin not found\n");
+ return 0;
+ }
+
+//---------------------------------------------------------
+// fillPlugs
+//---------------------------------------------------------
+
+void PluginDialog::fillPlugs(QAbstractButton* ab)
+ {
+ if (ab == allPlug)
+ fillPlugs(SEL_ALL);
+ else if (ab == onlyM)
+ fillPlugs(SEL_M);
+ else if (ab == onlyS)
+ fillPlugs(SEL_S);
+ else if (ab == onlySM)
+ fillPlugs(SEL_SM);
+ }
+
+//---------------------------------------------------------
+// fillPlugs int
+//---------------------------------------------------------
+
+void PluginDialog::fillPlugs(int nbr)
+ {
+ pList->clear();
+ for (iPlugin i = plugins.begin(); i != plugins.end(); ++i) {
+ int ai = (*i)->inports();
+ int ao = (*i)->outports();
+ int ci = (*i)->parameter();
+ int co = 0;
+ bool addFlag = false;
+ switch (nbr) {
+ case SEL_SM: // stereo & mono
+ if ((ai == 1 || ai == 2) && (ao == 1 || ao ==2)) {
+ addFlag = true;
+ }
+ break;
+ case SEL_S: // stereo
+ if ((ai == 1 || ai == 2) && ao ==2) {
+ addFlag = true;
+ }
+ break;
+ case SEL_M: // mono
+ if (ai == 1 && ao == 1) {
+ addFlag = true;
+ }
+ break;
+ case SEL_ALL: // all
+ addFlag = true;
+ break;
+ }
+ if (addFlag) {
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setText(0, (*i)->lib());
+ item->setText(1, (*i)->label());
+ item->setText(2, (*i)->name());
+ item->setText(3, QString().setNum(ai));
+ item->setText(4, QString().setNum(ao));
+ item->setText(5, QString().setNum(ci));
+ item->setText(6, QString().setNum(co));
+ item->setText(7, QString().setNum((*i)->inPlaceCapable()));
+ item->setText(8, QString().setNum((*i)->id()));
+ item->setText(9, (*i)->maker());
+ item->setText(10, (*i)->copyright());
+ pList->addTopLevelItem(item);
+ }
+ }
+ selectedPlugType = nbr;
+ }
+
+//---------------------------------------------------------
+// fillPlugs QString
+//---------------------------------------------------------
+
+void PluginDialog::fillPlugs(const QString &sortValue)
+ {
+ pList->clear();
+ for (iPlugin i = plugins.begin(); i != plugins.end(); ++i) {
+ int ai = (*i)->inports();
+ int ao = (*i)->outports();
+ int ci = (*i)->parameter();
+ int co = 0;
+
+ bool addFlag = false;
+
+ if ((*i)->label().toLower().contains(sortValue.toLower()))
+ addFlag = true;
+ else if ((*i)->name().toLower().contains(sortValue.toLower()))
+ addFlag = true;
+ if (addFlag) {
+ QTreeWidgetItem* item = new QTreeWidgetItem;
+ item->setText(0, (*i)->lib());
+ item->setText(1, (*i)->label());
+ item->setText(2, (*i)->name());
+ item->setText(3, QString().setNum(ai));
+ item->setText(4, QString().setNum(ao));
+ item->setText(5, QString().setNum(ci));
+ item->setText(6, QString().setNum(co));
+ item->setText(7, QString().setNum((*i)->inPlaceCapable()));
+ item->setText(8, QString().setNum((*i)->id()));
+ item->setText(9, (*i)->maker());
+ item->setText(10, (*i)->copyright());
+ pList->addTopLevelItem(item);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getPlugin
+//---------------------------------------------------------
+
+Plugin* PluginDialog::getPlugin(QWidget* parent)
+ {
+ PluginDialog* dialog = new PluginDialog(parent);
+ if (dialog->exec())
+ return dialog->value();
+ return 0;
+ }
+
+static const char* presetOpenText = "<img source=\"fileopen\"> "
+ "Click this button to load a saved <em>preset</em>.";
+static const char* presetSaveText = "Click this button to save curent parameter "
+ "settings as a <em>preset</em>. You will be prompted for a file name.";
+static const char* presetBypassText = "Click this button to bypass effect unit";
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+PluginGui::PluginGui(PluginI* p)
+ : QMainWindow(0)
+ {
+ setIconSize(ICON_SIZE);
+ plugin = p;
+ setWindowTitle(plugin->name());
+
+ QToolBar* tools = addToolBar(tr("File Buttons"));
+
+ QAction* fileOpen = tools->addAction(QIcon(*openIcon), tr("Load Preset"),
+ this, SLOT(load()));
+ fileOpen->setWhatsThis(tr(presetOpenText));
+ QAction* fileSave = tools->addAction(QIcon(*saveIcon), tr("Save Preset"),
+ this, SLOT(save()));
+ fileSave->setWhatsThis(tr(presetSaveText));
+
+ tools->addAction(QWhatsThis::createAction(this));
+
+ onOff = tools->addAction(*onOffIcon, tr("bypass plugin"));
+ onOff->setCheckable(true);
+ onOff->setChecked(plugin->on());
+ onOff->setWhatsThis(tr(presetBypassText));
+ connect(onOff, SIGNAL(triggered(bool)), SLOT(bypassToggled(bool)));
+
+ QString id;
+ id.setNum(plugin->plugin()->id());
+ QString name(museGlobalShare + QString("/plugins/") + id + QString(".ui"));
+
+ QWidget* mw; // main widget
+ QFile uifile(name);
+ if (uifile.exists()) {
+ //
+ // construct GUI from *.ui file
+ //
+ QFormBuilder builder;
+ //
+ // HACK:
+ //
+ QString path(museGlobalLib + "/designer");
+printf("build gui from ui <path><%s>\n", path.toLatin1().data());
+ builder.addPluginPath(path);
+
+ uifile.open(QFile::ReadOnly);
+ mw = builder.load(&uifile, this);
+ uifile.close();
+
+ setCentralWidget(mw);
+ connectPrebuiltGui(mw);
+ }
+ else {
+ mw = new QWidget(this);
+ setCentralWidget(mw);
+ QGridLayout* grid = new QGridLayout;
+ mw->setLayout(grid);
+ grid->setSpacing(2);
+
+ int n = plugin->plugin()->parameter();
+ resize(280, n*20+30);
+
+ QFontMetrics fm = fontMetrics();
+ int h = fm.height() + 4;
+
+ for (int i = 0; i < n; ++i) {
+ double lower;
+ double upper;
+ double dlower;
+ double dupper;
+ double val = plugin->param(i);
+ double dval = val;
+
+ plugin->range(i, &lower, &upper);
+ dlower = lower;
+ dupper = upper;
+
+ if (plugin->isLog(i)) {
+ if (lower == 0.0)
+ lower = 0.001;
+ dlower = fast_log10(lower)*20.0;
+ dupper = fast_log10(upper)*20.0;
+ if (val == 0.0f)
+ dval = dlower;
+ else
+ dval = fast_log10(val) * 20.0;
+ }
+ if (plugin->isBool(i)) {
+ CheckBox* cb = new CheckBox(mw);
+ cb->setId(i);
+ cb->setText(QString(plugin->getParameterName(i)));
+ cb->setChecked(plugin->param(i) > 0.0);
+ cb->setFixedHeight(h);
+ cb->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+
+ GuiWidget w;
+ w.widget = cb;
+ w.parameter = i;
+ w.type = GuiWidget::CHECKBOX;
+ gw.push_back(w);
+ grid->addWidget(cb, i, 0, 1, 3);
+ connect(cb, SIGNAL(valueChanged(double,int)), SLOT(setController(double, int)));
+ }
+ else {
+ QLabel* label = new QLabel(QString(plugin->getParameterName(i)), mw);
+ label->setFixedHeight(20);
+ label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ FloatEntry* e = new FloatEntry(mw);
+ e->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ e->setRange(lower, upper);
+ e->setId(i);
+ e->setFixedHeight(h);
+ e->setFrame(true);
+ GuiWidget w;
+ w.widget = e;
+ w.parameter = i;
+ w.type = GuiWidget::FLOAT_ENTRY;
+ gw.push_back(w);
+
+ Slider* s = new Slider(mw);
+ s->setId(i);
+ s->setLog(plugin->isLog(i));
+ s->setOrientation(Qt::Horizontal);
+ s->setFixedHeight(h);
+ s->setRange(dlower, dupper);
+ s->setLineStep((dupper-dlower)/100.0);
+ s->setPageStep((dupper-dlower)/10.0);
+ s->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ w.widget = s;
+ w.parameter = i;
+ w.type = GuiWidget::SLIDER;
+ gw.push_back(w);
+ grid->addWidget(label, i, 0);
+ grid->addWidget(e, i, 1);
+ const char* p = plugin->getParameterLabel(i);
+ if (p) {
+ QLabel* l = new QLabel(mw);
+ l->setFixedHeight(h);
+ l->setText(p);
+ grid->addWidget(l, i, 2);
+ }
+ grid->addWidget(s, i, 3);
+ connect(s, SIGNAL(valueChanged(double,int)), SLOT(setController(double,int)));
+ connect(e, SIGNAL(valueChanged(double,int)), SLOT(setController(double,int)));
+ }
+ updateValue(i, val);
+ }
+ grid->setColumnStretch(3, 10);
+ }
+ connect(plugin->track(), SIGNAL(autoReadChanged(bool)), SLOT(autoChanged()));
+ connect(plugin->track(), SIGNAL(autoWriteChanged(bool)), SLOT(autoChanged()));
+ connect(plugin->track(), SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+ autoChanged();
+ }
+
+
+
+void PluginGui::connectPrebuiltGui(QWidget* wContainer)
+ {
+ QObjectList l = wContainer->children();
+ for (int i = 0; i < l.size(); ++i) {
+
+ QObject* obj = l.at(i);
+
+ const char* name = obj->objectName().toLatin1().data();
+
+ if (strcmp(obj->metaObject()->className(), "QFrame") == 0) {
+ connectPrebuiltGui((QWidget *)obj);
+ }
+ if (*name !='P')
+ continue;
+ GuiWidget w;
+ w.widget = (QWidget*)obj;
+ if (strcmp(obj->metaObject()->className(), "Awl::Slider") == 0) {
+ connect((Slider*)obj, SIGNAL(valueChanged(double,int)), SLOT(setController(double,int)));
+ w.type = GuiWidget::SLIDER;
+ w.parameter = ((Slider*)obj)->id();
+ }
+ else if (strcmp(obj->metaObject()->className(), "Awl::FloatEntry") == 0) {
+ connect((FloatEntry*)obj, SIGNAL(valueChanged(double,int)), SLOT(setController(double,int)));
+ w.type = GuiWidget::FLOAT_ENTRY;
+ w.parameter = ((FloatEntry*)obj)->id();
+ }
+ else if (strcmp(obj->metaObject()->className(), "Awl::CheckBox") == 0) {
+ w.type = GuiWidget::CHECKBOX;
+ w.parameter = ((CheckBox*)obj)->id();
+ connect(obj, SIGNAL(valueChanged(double, int)), SLOT(setController(double, int)));
+ }
+ else if (strcmp(obj->metaObject()->className(), "Awl::ComboBox") == 0) {
+ w.type = GuiWidget::COMBOBOX;
+ w.parameter = ((ComboBox*)obj)->id();
+ connect(obj, SIGNAL(valueChanged(double, int)), SLOT(setController(double,int)));
+ }
+ else {
+ printf("PluginGui::unknown widget class %s\n", obj->metaObject()->className());
+ continue;
+ }
+ gw.push_back(w);
+ }
+}
+
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+PluginGui::~PluginGui()
+ {
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+void PluginGui::setController(double val, int param)
+ {
+ if (plugin->isInt(param))
+ val = rint(val);
+ CVal cval;
+ cval.f = val;
+ song->setControllerVal(plugin->track(), plugin->controller(param), cval);
+ }
+
+//---------------------------------------------------------
+// load
+//---------------------------------------------------------
+
+void PluginGui::load()
+ {
+ QString s("presets/plugins/");
+ s += plugin->plugin()->label();
+ s += "/";
+
+ QStringList pattern;
+ const char** p = preset_file_pattern;
+ while (*p)
+ pattern << *p++;
+ QString fn = getOpenFileName(s, pattern, this, tr("MusE: load preset"));
+ if (fn.isEmpty())
+ return;
+ QFile* qf = fileOpen(this, fn, QString(".pre"), QIODevice::ReadOnly, true);
+ if (qf == 0)
+ return;
+
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(qf, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error reading med file: %s\n", error.toLatin1().data());
+ delete qf;
+ return;
+ }
+ QDomNode node = doc.documentElement();
+
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ // QString version = e.attribute(QString("version"));
+ node = node.firstChild();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ bool prefader;
+ if (e.tagName() == "plugin")
+ plugin->readConfiguration(node.firstChild(), &prefader);
+ else
+ printf("MusE:PluginGui: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+ else
+ printf("MusE: %s not supported\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ qf->close();
+ delete qf;
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void PluginGui::save()
+ {
+ QString s("presets/plugins/");
+ s += plugin->plugin()->label();
+ s += "/";
+
+ QStringList pattern;
+ const char** p = preset_file_pattern;
+ while (*p)
+ pattern << *p++;
+ QString fn = getSaveFileName(s, pattern, this,
+ tr("MusE: save preset"));
+ if (fn.isEmpty())
+ return;
+ QFile* f = fileOpen(this, fn, QString(".pre"), QIODevice::WriteOnly, true);
+ if (f == 0)
+ return;
+ Xml xml(f);
+ xml.header();
+ xml.stag("muse version=\"1.0\"");
+ plugin->writeConfiguration(xml, true);
+ xml.etag("muse");
+ f->close();
+ delete f;
+ }
+
+//---------------------------------------------------------
+// bypassToggled
+//---------------------------------------------------------
+
+void PluginGui::bypassToggled(bool val)
+ {
+ plugin->setOn(val);
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// setOn
+//---------------------------------------------------------
+
+void PluginGui::setOn(bool val)
+ {
+// onOff->blockSignals(true);
+ onOff->setChecked(val);
+// onOff->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// updateValue
+//---------------------------------------------------------
+
+void PluginGui::updateValue(int parameter, double value)
+ {
+ for (std::vector<GuiWidget>::iterator i = gw.begin(); i != gw.end(); ++i) {
+ int idx = i->parameter;
+ if (idx != parameter)
+ continue;
+ switch (i->type) {
+ case GuiWidget::SLIDER:
+ ((Slider*)(i->widget))->setValue(value);
+ break;
+ case GuiWidget::FLOAT_ENTRY:
+ {
+ const char* p = plugin->getParameterDisplay(idx, value);
+ if (p)
+ ((FloatEntry*)(i->widget))->setText(QString(p));
+ else
+ ((FloatEntry*)(i->widget))->setValue(value);
+ }
+ break;
+ case GuiWidget::CHECKBOX:
+ ((CheckBox*)(i->widget))->setValue(value);
+ break;
+ case GuiWidget::COMBOBOX:
+ ((ComboBox*)(i->widget))->setValue(value);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// updateValues
+//---------------------------------------------------------
+
+void PluginGui::updateValues()
+ {
+ int n = plugin->plugin()->parameter();
+ for (int i = 0; i < n; ++i) {
+ double val = plugin->param(i);
+ updateValue(i, val);
+ }
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void PluginGui::controllerChanged(int id)
+ {
+ double value = plugin->track()->ctrlVal(id).f;
+ for (std::vector<GuiWidget>::iterator i = gw.begin(); i != gw.end(); ++i) {
+ int idx = i->parameter;
+ if (plugin->controller(idx)->id() != id)
+ continue;
+ switch (i->type) {
+ case GuiWidget::SLIDER:
+ ((Slider*)(i->widget))->setValue(value);
+ break;
+ case GuiWidget::FLOAT_ENTRY:
+ {
+ const char* p = plugin->getParameterDisplay(idx, value);
+ if (p)
+ ((FloatEntry*)(i->widget))->setText(QString(p));
+ else
+ ((FloatEntry*)(i->widget))->setValue(value);
+ }
+ break;
+ case GuiWidget::CHECKBOX:
+ ((CheckBox*)(i->widget))->setValue(value);
+ break;
+ case GuiWidget::COMBOBOX:
+ ((ComboBox*)(i->widget))->setValue(value);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void PluginGui::autoChanged()
+ {
+ bool ar = plugin->track()->autoRead();
+ bool aw = plugin->track()->autoWrite();
+
+ // controller are enabled if
+ // autoRead is off
+ // autoRead and autoWrite are on (touch mode)
+
+ bool ec = !ar || (ar && aw);
+
+ for (std::vector<GuiWidget>::iterator i = gw.begin(); i != gw.end(); ++i)
+ i->widget->setEnabled(ec);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/plugingui.h b/muse_qt4_evolution/muse/plugingui.h
new file mode 100644
index 00000000..e54e683a
--- /dev/null
+++ b/muse_qt4_evolution/muse/plugingui.h
@@ -0,0 +1,122 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PLUGINGUI_H__
+#define __PLUGINGUI_H__
+
+namespace Awl {
+ class FloatEntry;
+ };
+using Awl::FloatEntry;
+
+class Plugin;
+class PluginI;
+
+//---------------------------------------------------------
+// GuiParam
+//---------------------------------------------------------
+
+struct GuiParam {
+ enum {
+ GUI_SLIDER, GUI_SWITCH
+ };
+ int type;
+ FloatEntry* label;
+ QWidget* actuator; // Slider or Toggle Button (SWITCH)
+ };
+
+//---------------------------------------------------------
+// GuiWidget
+//---------------------------------------------------------
+
+struct GuiWidget {
+ enum {
+ SLIDER, FLOAT_ENTRY, CHECKBOX, COMBOBOX
+ } type;
+ QWidget* widget;
+ int parameter;
+ };
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+class PluginGui : public QMainWindow {
+ Q_OBJECT
+
+ PluginI* plugin; // plugin instance
+ std::vector<GuiWidget> gw;
+
+ QAction* onOff;
+ void connectPrebuiltGui(QWidget* wContainer);
+
+ private slots:
+ void load();
+ void save();
+ void bypassToggled(bool);
+
+ void setController(double, int);
+ void autoChanged();
+
+ public:
+ PluginGui(PluginI*);
+ ~PluginGui();
+ void setOn(bool);
+ void updateValue(int, double);
+ void updateValues();
+
+ public slots:
+ void controllerChanged(int id);
+ };
+
+//---------------------------------------------------------
+// PluginDialog
+//---------------------------------------------------------
+
+enum { SEL_SM, SEL_S, SEL_M, SEL_ALL };
+
+class PluginDialog : public QDialog {
+ QTreeWidget* pList;
+ QRadioButton* allPlug;
+ QRadioButton* onlyM;
+ QRadioButton* onlyS;
+ QRadioButton* onlySM;
+
+ Q_OBJECT
+
+ public:
+ PluginDialog(QWidget* parent=0);
+ static Plugin* getPlugin(QWidget* parent);
+ Plugin* value();
+ void accept();
+
+ public slots:
+ void fillPlugs(QAbstractButton*);
+ void fillPlugs(int i);
+ void fillPlugs(const QString& sortValue);
+
+ private:
+ QComboBox *sortBox;
+ static int selectedPlugType;
+ static QStringList sortItems;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/port.h b/muse_qt4_evolution/muse/port.h
new file mode 100644
index 00000000..d2f83de9
--- /dev/null
+++ b/muse_qt4_evolution/muse/port.h
@@ -0,0 +1,76 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PORT_H__
+#define __PORT_H__
+
+#include <jack/jack.h>
+
+//---------------------------------------------------------
+// Port
+//---------------------------------------------------------
+
+class Port {
+ enum { JACK_TYPE, ALSA_TYPE, ZERO_TYPE } type;
+ union {
+ jack_port_t* _jackPort;
+ struct {
+ unsigned char _alsaPort;
+ unsigned char _alsaClient;
+ };
+ };
+ public:
+ Port() {
+ type = ZERO_TYPE;
+ }
+ Port(jack_port_t* p) {
+ _jackPort = p;
+ type = JACK_TYPE;
+ }
+ Port(unsigned char client, unsigned char port) {
+ _alsaPort = port;
+ _alsaClient = client;
+ type = ALSA_TYPE;
+ }
+ void setZero() { type = ZERO_TYPE; }
+ bool isZero() const { return type == ZERO_TYPE; }
+ bool operator==(const Port& p) const {
+ if (type == JACK_TYPE)
+ return _jackPort == p._jackPort;
+ else if (type == ALSA_TYPE)
+ return _alsaPort == p._alsaPort && _alsaClient == p._alsaClient;
+ else
+ return true;
+ }
+ bool operator<(const Port& p) const {
+ if (type == ALSA_TYPE) {
+ if (_alsaPort != p._alsaPort)
+ return _alsaPort < p._alsaPort;
+ return _alsaClient < p._alsaClient;
+ }
+ return false;
+ }
+ unsigned char alsaPort() const { return _alsaPort; }
+ unsigned char alsaClient() const { return _alsaClient; }
+ jack_port_t* jackPort() const { return _jackPort; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/preferences.cpp b/muse_qt4_evolution/muse/preferences.cpp
new file mode 100644
index 00000000..022a24da
--- /dev/null
+++ b/muse_qt4_evolution/muse/preferences.cpp
@@ -0,0 +1,932 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "icons.h"
+#include "preferences.h"
+#include "track.h"
+#include "muse.h"
+#include "song.h"
+#include "event.h"
+#include "arranger.h"
+#include "widgets/filedialog.h"
+#include "waveedit/waveedit.h"
+#include "globals.h"
+#include "conf.h"
+#include "gconfig.h"
+
+#include "audio.h"
+#include "mixer.h"
+#include "midirc.h"
+#include "instruments/minstrument.h"
+#include "midiedit/pianoroll.h"
+#include "midiedit/drumedit.h"
+
+static int rtcResolutions[] = {
+ 1024, 2048, 4096, 8192
+ };
+static int divisions[] = {
+ 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288
+ };
+
+//---------------------------------------------------------
+// twi
+//---------------------------------------------------------
+
+static QTreeWidgetItem* twi(QTreeWidget* tw, const char* txt, int data)
+ {
+ QTreeWidgetItem* i = new QTreeWidgetItem(tw);
+ i->setText(0, txt);
+ i->setData(0, 1, data);
+ return i;
+ }
+
+static QTreeWidgetItem* twi(QTreeWidgetItem* tw, const char* txt, int data)
+ {
+ QTreeWidgetItem* i = new QTreeWidgetItem(tw);
+ i->setText(0, txt);
+ i->setData(0, 1, data);
+ return i;
+ }
+
+//---------------------------------------------------------
+// PreferencesDialog
+//---------------------------------------------------------
+
+PreferencesDialog::PreferencesDialog(Arranger* a, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ colorframe->setAutoFillBackground(true);
+ palette0->setAutoFillBackground(true);
+ palette1->setAutoFillBackground(true);
+ palette2->setAutoFillBackground(true);
+ palette3->setAutoFillBackground(true);
+ arr = a;
+ color = 0;
+ config = new GlobalConfigValues;
+ resetValues();
+
+ // ARRANGER
+
+ usePixmap->setChecked(config->canvasUseBgPixmap);
+ useColor->setChecked(!config->canvasUseBgPixmap);
+ connect(usePixmap, SIGNAL(toggled(bool)), SLOT(usePixmapToggled(bool)));
+ connect(useColor, SIGNAL(toggled(bool)), SLOT(useColorToggled(bool)));
+
+
+ styleSheetPath->setText(config->styleSheetFile);
+ currentBg = config->canvasBgPixmap;
+ if (currentBg.isEmpty())
+ currentBg = "<none>";
+ else {
+ QBrush b;
+ b.setTexture(QPixmap(currentBg));
+ QPalette p;
+ p.setBrush(QPalette::Window, b);
+ currentBgLabel->setPalette(p);
+ }
+ QPalette p;
+ canvasBackgroundColor->setAutoFillBackground(true);
+ p.setColor(QPalette::Window, config->canvasBgColor);
+ canvasBackgroundColor->setPalette(p);
+
+ currentBgLabel->setAutoFillBackground(true);
+ currentBgLabel->setText(currentBg);
+
+ partShownames->setChecked(config->canvasShowPartType & 1);
+ partShowevents->setChecked(config->canvasShowPartType & 2);
+ partShowCakes->setChecked(!(config->canvasShowPartType & 2));
+
+ eventNoteon->setChecked(config->canvasShowPartEvent & (1 << 0));
+ eventPolypressure->setChecked(config->canvasShowPartEvent & (1 << 1));
+ eventController->setChecked(config->canvasShowPartEvent & (1 << 2));
+ eventProgramchange->setChecked(config->canvasShowPartEvent & (1 << 3));
+ eventAftertouch->setChecked(config->canvasShowPartEvent & (1 << 4));
+ eventPitchbend->setChecked(config->canvasShowPartEvent & (1 << 5));
+ eventSpecial->setChecked(config->canvasShowPartEvent & (1 << 6));
+ eventButtonGroup->setEnabled(config->canvasShowPartType == 2);
+ arrGrid->setChecked(config->canvasShowGrid);
+
+ // COLORS
+ QTreeWidgetItem* id;
+ QTreeWidgetItem* aid;
+ itemList->setSortingEnabled(false);
+ itemList->clear();
+
+ aid = twi(itemList, "Arranger", 0);
+ id = twi(aid, "PartColors", 0);
+ twi(id, "Selected", 0x41d);
+
+ twi(id, "Default", 0x400);
+ twi(id, "Refrain", 0x401);
+ twi(id, "Bridge", 0x402);
+ twi(id, "Intro", 0x403);
+ twi(id, "Coda", 0x404);
+ twi(id, "Chorus", 0x405);
+ twi(id, "Solo", 0x406);
+ twi(id, "Brass", 0x407);
+ twi(id, "Percussion", 0x408);
+ twi(id, "Drums", 0x409);
+ twi(id, "Guitar", 0x40a);
+ twi(id, "Bass", 0x40b);
+ twi(id, "Flute", 0x40c);
+ twi(id, "Strings", 0x40d);
+ twi(id, "Keyboard", 0x40e);
+ twi(id, "Piano", 0x40f);
+ twi(id, "Saxophon", 0x410);
+
+ twi(id, "part canvas background", 0x41c);
+
+ id = twi(aid, "Track List", 0);
+ twi(id, "Audio Output", 0x500 + Track::AUDIO_OUTPUT);
+ twi(id, "Audio Group", 0x500 + Track::AUDIO_GROUP);
+ twi(id, "Wave Track", 0x500 + Track::WAVE);
+ twi(id, "Audio Input", 0x500 + Track::AUDIO_INPUT);
+ twi(id, "Synthesizer", 0x500 + Track::AUDIO_SOFTSYNTH);
+ twi(id, "Midi Track", 0x500 + Track::MIDI);
+ twi(id, "Midi Output", 0x500 + Track::MIDI_OUT);
+ twi(id, "Midi Input", 0x500 + Track::MIDI_IN);
+// twi(id, "Midi Channel", 0x500 + Track::MIDI_CHANNEL);
+ twi(id, "Midi Synti", 0x500 + Track::MIDI_SYNTI);
+
+ id = twi(itemList, "BigTime", 0);
+ twi(id, "background", 0x100);
+ twi(id, "foreground", 0x101);
+
+ id = twi(itemList, "Transport", 0);
+ twi(id, "handle", 0x200);
+
+ id = twi(itemList, "Editor", 0);
+ twi(id, "background", 0x300);
+
+ colorGroup = new QButtonGroup(this);
+ colorGroup->setExclusive(true);
+ colorGroup->addButton(palette0, 0);
+ colorGroup->addButton(palette1, 1);
+ colorGroup->addButton(palette2, 2);
+ colorGroup->addButton(palette3, 3);
+ colorGroup->addButton(palette4, 4);
+ colorGroup->addButton(palette5, 5);
+ colorGroup->addButton(palette6, 6);
+ colorGroup->addButton(palette7, 7);
+ colorGroup->addButton(palette8, 8);
+ colorGroup->addButton(palette9, 9);
+ colorGroup->addButton(palette10, 10);
+ colorGroup->addButton(palette11, 11);
+ colorGroup->addButton(palette12, 12);
+ colorGroup->addButton(palette13, 13);
+ colorGroup->addButton(palette14, 14);
+ colorGroup->addButton(palette15, 15);
+ connect(itemList, SIGNAL(itemSelectionChanged()), SLOT(colorItemSelectionChanged()));
+ connect(colorGroup, SIGNAL(buttonClicked(QAbstractButton*)), SLOT(paletteClicked(QAbstractButton*)));
+ connect(hslider, SIGNAL(valueChanged(int)), SLOT(hsliderChanged(int)));
+ connect(sslider, SIGNAL(valueChanged(int)), SLOT(ssliderChanged(int)));
+ connect(vslider, SIGNAL(valueChanged(int)), SLOT(vsliderChanged(int)));
+
+ connect(addToPalette, SIGNAL(clicked()), SLOT(addToPaletteClicked()));
+
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+ connect(selectCanvasBgPixmap, SIGNAL(clicked()), SLOT(configCanvasBgPixmap()));
+ connect(selectCanvasBgColor, SIGNAL(clicked()), SLOT(configCanvasBgColor()));
+ connect(partShowevents, SIGNAL(toggled(bool)), eventButtonGroup, SLOT(setEnabled(bool)));
+ updateColor();
+
+ for (unsigned i = 0; i < sizeof(rtcResolutions)/sizeof(*rtcResolutions); ++i) {
+ if (rtcResolutions[i] == config->rtcTicks) {
+ rtcResolutionSelect->setCurrentIndex(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(divisions)/sizeof(*divisions); ++i) {
+ if (divisions[i] == config->division) {
+ midiDivisionSelect->setCurrentIndex(i);
+ break;
+ }
+ }
+ int i = 0;
+ for (iMidiInstrument mi = midiInstruments.begin(); mi != midiInstruments.end(); ++mi, ++i) {
+ preferredInstrument->addItem((*mi)->iname());
+ if ((*mi)->iname() == config->defaultMidiInstrument)
+ preferredInstrument->setCurrentIndex(i);
+ }
+
+ connectToAllDevices->setChecked(config->connectToAllMidiDevices);
+ connectToAllTracks->setChecked(config->connectToAllMidiTracks);
+ createDefaultInput->setChecked(config->createDefaultMidiInput);
+
+ guiRefreshSelect->setValue(config->guiRefresh);
+ minSliderSelect->setValue(int(config->minSlider));
+ maxSliderSelect->setValue(int(config->maxSlider));
+ minMeterSelect->setValue(int(config->minMeter));
+ maxMeterSelect->setValue(int(config->maxMeter));
+ peakHoldTime->setValue(config->peakHoldTime);
+ helpBrowser->setText(config->helpBrowser);
+ startProjectEntry->setText(config->startProject);
+
+ startProjectGroup = new QButtonGroup(this);
+ startProjectGroup->addButton(alwaysAsk);
+ startProjectGroup->addButton(startWithLastProject);
+ startProjectGroup->addButton(startWithProject);
+
+ switch(config->startMode) {
+ case START_ASK_FOR_PROJECT:
+ alwaysAsk->setChecked(true);
+ break;
+ case START_LAST_PROJECT:
+ startWithLastProject->setChecked(true);
+ break;
+ case START_START_PROJECT:
+ startWithProject->setChecked(true);
+ break;
+ }
+
+ showTransport->setChecked(config->transportVisible);
+ showBigtime->setChecked(config->bigTimeVisible);
+ showMixer1->setChecked(config->mixer1Visible);
+ showMixer2->setChecked(config->mixer2Visible);
+
+ transportX->setValue(config->geometryTransport.x());
+ transportY->setValue(config->geometryTransport.y());
+
+ bigtimeX->setValue(config->geometryBigTime.x());
+ bigtimeY->setValue(config->geometryBigTime.y());
+ bigtimeW->setValue(config->geometryBigTime.width());
+ bigtimeH->setValue(config->geometryBigTime.height());
+
+ mixerX1->setValue(config->mixer1.geometry.x());
+ mixerY1->setValue(config->mixer1.geometry.y());
+ mixerW1->setValue(config->mixer1.geometry.width());
+ mixerH1->setValue(config->mixer1.geometry.height());
+
+ mixerX2->setValue(config->mixer2.geometry.x());
+ mixerY2->setValue(config->mixer2.geometry.y());
+ mixerW2->setValue(config->mixer2.geometry.width());
+ mixerH2->setValue(config->mixer2.geometry.height());
+
+ setMixerCurrent1->setEnabled(muse->mixer1Window());
+ setMixerCurrent1->setEnabled(muse->mixer2Window());
+
+ setBigtimeCurrent->setEnabled(muse->bigtimeWindow());
+ setTransportCurrent->setEnabled(muse->transportWindow());
+ freewheelMode->setChecked(config->useJackFreewheelMode);
+ showSplash->setChecked(config->showSplashScreen);
+ projectPath->setText(config->projectPath);
+ templatePath->setText(config->templatePath);
+ instrumentPath->setText(config->instrumentPath);
+ midiImportPath->setText(config->importMidiPath);
+ waveImportPath->setText(config->importWavePath);
+
+ stopActive->setChecked(midiRCList.isActive(RC_STOP));
+ playActive->setChecked(midiRCList.isActive(RC_PLAY));
+ gotoLeftMarkActive->setChecked(midiRCList.isActive(RC_GOTO_LEFT_MARK));
+ recordActive->setChecked(midiRCList.isActive(RC_RECORD));
+
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+ connect(setMixerCurrent1, SIGNAL(clicked()), SLOT(mixerCurrent1()));
+ connect(setMixerCurrent2, SIGNAL(clicked()), SLOT(mixerCurrent2()));
+ connect(setBigtimeCurrent, SIGNAL(clicked()), SLOT(bigtimeCurrent()));
+ connect(setArrangerCurrent, SIGNAL(clicked()), SLOT(arrangerCurrent()));
+ connect(setTransportCurrent, SIGNAL(clicked()), SLOT(transportCurrent()));
+
+ recordStop->setChecked(false);
+ recordRecord->setChecked(false);
+ recordGotoLeftMark->setChecked(false);
+ recordPlay->setChecked(false);
+ rcGroup->setChecked(rcEnable);
+
+ pianorollWidth->setValue(PianoRoll::initWidth);
+ pianorollHeight->setValue(PianoRoll::initHeight);
+ pianorollRaster->setRaster(PianoRoll::initRaster);
+ pianorollQuant->setQuant(PianoRoll::initQuant);
+
+ drumEditorWidth->setValue(DrumEdit::initWidth);
+ drumEditorHeight->setValue(DrumEdit::initHeight);
+
+ waveEditorWidth->setValue(WaveEdit::initWidth);
+ waveEditorHeight->setValue(WaveEdit::initHeight);
+
+ connect(recordStop, SIGNAL(clicked(bool)), SLOT(recordStopToggled(bool)));
+ connect(recordRecord, SIGNAL(clicked(bool)), SLOT(recordRecordToggled(bool)));
+ connect(recordGotoLeftMark, SIGNAL(clicked(bool)), SLOT(recordGotoLeftMarkToggled(bool)));
+ connect(recordPlay, SIGNAL(clicked(bool)), SLOT(recordPlayToggled(bool)));
+
+ }
+
+//---------------------------------------------------------
+// setButtonColor
+//---------------------------------------------------------
+
+static void setButtonColor(QAbstractButton* b, const QRgb c)
+ {
+ QPalette p(b->palette());
+ p.setColor(QPalette::Button, QColor(c));
+ p.setColor(b->backgroundRole(), QColor(c));
+ b->setPalette(p);
+ }
+
+//---------------------------------------------------------
+// resetValues
+//---------------------------------------------------------
+
+void PreferencesDialog::resetValues()
+ {
+ *config = ::config; // init with global config values
+
+ setButtonColor(palette0, QColorDialog::customColor(0));
+ setButtonColor(palette1, QColorDialog::customColor(1));
+ setButtonColor(palette2, QColorDialog::customColor(2));
+ setButtonColor(palette3, QColorDialog::customColor(3));
+ setButtonColor(palette4, QColorDialog::customColor(4));
+ setButtonColor(palette5, QColorDialog::customColor(5));
+ setButtonColor(palette6, QColorDialog::customColor(6));
+ setButtonColor(palette7, QColorDialog::customColor(7));
+ setButtonColor(palette8, QColorDialog::customColor(8));
+ setButtonColor(palette9, QColorDialog::customColor(9));
+ setButtonColor(palette10, QColorDialog::customColor(10));
+ setButtonColor(palette11, QColorDialog::customColor(11));
+ setButtonColor(palette12, QColorDialog::customColor(12));
+ setButtonColor(palette13, QColorDialog::customColor(13));
+ setButtonColor(palette14, QColorDialog::customColor(14));
+ }
+
+//---------------------------------------------------------
+// PreferencesDialog
+//---------------------------------------------------------
+
+PreferencesDialog::~PreferencesDialog()
+ {
+ delete config;
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void PreferencesDialog::apply()
+ {
+ ::config.styleSheetFile = styleSheetPath->text();
+ int showPartEvent = 0;
+ int showPartType = 0;
+
+ if (partShownames->isChecked())
+ showPartType |= 1;
+ if (partShowevents->isChecked())
+ showPartType |= 2;
+ if (partShowCakes->isChecked())
+ showPartType |= 4;
+
+ if (eventNoteon->isChecked())
+ showPartEvent |= (1 << 0);
+ if (eventPolypressure->isChecked())
+ showPartEvent |= (1 << 1);
+ if (eventController->isChecked())
+ showPartEvent |= (1 << 2);
+ if (eventProgramchange->isChecked())
+ showPartEvent |= (1 << 3);
+ if (eventAftertouch->isChecked())
+ showPartEvent |= (1 << 4);
+ if (eventPitchbend->isChecked())
+ showPartEvent |= (1 << 5);
+ if (eventSpecial->isChecked())
+ showPartEvent |= (1 << 6);
+
+ config->canvasUseBgPixmap = usePixmap->isChecked();
+ if (currentBg != "<none>")
+ config->canvasBgPixmap = currentBg;
+
+ config->canvasShowGrid = arrGrid->isChecked();
+ // set colors...
+ ::config = *config;
+
+ rcEnable = rcGroup->isChecked();
+ int rtcticks = rtcResolutionSelect->currentIndex();
+ int div = midiDivisionSelect->currentIndex();
+
+ ::config.connectToAllMidiDevices = connectToAllDevices->isChecked();
+ ::config.connectToAllMidiTracks = connectToAllTracks->isChecked();
+ ::config.createDefaultMidiInput = createDefaultInput->isChecked();
+ ::config.defaultMidiInputDevice = preferredInput->currentText();
+ ::config.defaultMidiOutputDevice = preferredOutput->currentText();
+ ::config.defaultMidiInstrument = preferredInstrument->currentText();
+
+ ::config.guiRefresh = guiRefreshSelect->value();
+ ::config.minSlider = minSliderSelect->value();
+ ::config.maxSlider = maxSliderSelect->value();
+ ::config.minMeter = minMeterSelect->value();
+ ::config.maxMeter = maxMeterSelect->value();
+ ::config.peakHoldTime = peakHoldTime->value();
+ ::config.rtcTicks = rtcResolutions[rtcticks];
+ ::config.guiDivision = divisions[div];
+ ::config.helpBrowser = helpBrowser->text();
+ ::config.startProject = startProjectEntry->text();
+
+ if (alwaysAsk->isChecked())
+ ::config.startMode = START_ASK_FOR_PROJECT;
+ else if (startWithLastProject->isChecked())
+ ::config.startMode = START_LAST_PROJECT;
+ else if (startWithProject->isChecked())
+ ::config.startMode = START_START_PROJECT;
+
+ ::config.transportVisible = showTransport->isChecked();
+ ::config.bigTimeVisible = showBigtime->isChecked();
+ ::config.mixer1Visible = showMixer1->isChecked();
+ ::config.mixer2Visible = showMixer2->isChecked();
+
+ ::config.geometryTransport.setX(transportX->value());
+ ::config.geometryTransport.setY(transportY->value());
+ ::config.geometryTransport.setWidth(0);
+ ::config.geometryTransport.setHeight(0);
+
+ ::config.geometryBigTime.setX(bigtimeX->value());
+ ::config.geometryBigTime.setY(bigtimeY->value());
+ ::config.geometryBigTime.setWidth(bigtimeW->value());
+ ::config.geometryBigTime.setHeight(bigtimeH->value());
+
+ ::config.mixer1.geometry.setX(mixerX1->value());
+ ::config.mixer1.geometry.setY(mixerY1->value());
+ ::config.mixer1.geometry.setWidth(mixerW1->value());
+ ::config.mixer1.geometry.setHeight(mixerH1->value());
+
+ ::config.mixer2.geometry.setX(mixerX2->value());
+ ::config.mixer2.geometry.setY(mixerY2->value());
+ ::config.mixer2.geometry.setWidth(mixerW2->value());
+ ::config.mixer2.geometry.setHeight(mixerH2->value());
+
+ ::config.useJackFreewheelMode = freewheelMode->isChecked();
+ ::config.showSplashScreen = showSplash->isChecked();
+
+ ::config.projectPath = projectPath->text();
+ ::config.templatePath = templatePath->text();
+ ::config.instrumentPath = instrumentPath->text();
+ ::config.importMidiPath = midiImportPath->text();
+ ::config.importWavePath = waveImportPath->text();
+
+ lastMidiPath = museUser + "/" + ::config.importMidiPath;
+ lastWavePath = museUser + "/" + ::config.importWavePath;
+
+ PianoRoll::initWidth = pianorollWidth->value();
+ PianoRoll::initHeight = pianorollHeight->value();
+ PianoRoll::initRaster = pianorollRaster->raster();
+ PianoRoll::initQuant = pianorollQuant->quant();
+
+ DrumEdit::initWidth = drumEditorWidth->value();
+ DrumEdit::initHeight = drumEditorHeight->value();
+
+ muse->showMixer1(::config.mixer1Visible);
+ muse->showMixer2(::config.mixer2Visible);
+ muse->showBigtime(::config.bigTimeVisible);
+ muse->showTransport(::config.transportVisible);
+ QWidget* w = muse->transportWindow();
+ if (w) {
+ w->resize(::config.geometryTransport.size());
+ w->move(::config.geometryTransport.topLeft());
+ }
+ w = muse->mixer1Window();
+ if (w) {
+ w->resize(::config.mixer1.geometry.size());
+ w->move(::config.mixer1.geometry.topLeft());
+ }
+ w = muse->mixer2Window();
+ if (w) {
+ w->resize(::config.mixer2.geometry.size());
+ w->move(::config.mixer2.geometry.topLeft());
+ }
+ w = muse->bigtimeWindow();
+ if (w) {
+ w->resize(::config.geometryBigTime.size());
+ w->move(::config.geometryBigTime.topLeft());
+ }
+
+ muse->setHeartBeat(); // set guiRefresh
+ audio->msgSetRtc(); // set midi tick rate
+ muse->changeConfig(true); // save settings
+ }
+
+//---------------------------------------------------------
+// ok
+//---------------------------------------------------------
+
+void PreferencesDialog::ok()
+ {
+ apply();
+ close();
+ }
+
+//---------------------------------------------------------
+// cancel
+//---------------------------------------------------------
+
+void PreferencesDialog::cancel()
+ {
+ close();
+ }
+
+//---------------------------------------------------------
+// configCanvasBgPixmap
+//---------------------------------------------------------
+
+void PreferencesDialog::configCanvasBgPixmap()
+ {
+ QString cur(currentBg);
+ if (cur == "<none>")
+ cur = museGlobalShare + "/wallpapers";
+
+ QStringList pattern;
+ const char** p = image_file_pattern;
+ while(*p)
+ pattern << *p++;
+ QString s = getImageFileName(cur, pattern, this, tr("MusE: load image"));
+ if (!s.isEmpty()) {
+ QBrush b;
+ currentBg = s;
+ b.setTexture(QPixmap(s));
+ QPalette p;
+ p.setBrush(QPalette::Window, b);
+ currentBgLabel->setPalette(p);
+ currentBgLabel->setText(currentBg);
+ }
+ }
+
+//---------------------------------------------------------
+// configCanvasBgColor
+//---------------------------------------------------------
+
+void PreferencesDialog::configCanvasBgColor()
+ {
+ QColor color = QColorDialog::getColor(config->canvasBgColor, this);
+ if (color.isValid()) {
+ config->canvasBgColor = color;
+ QPalette p;
+ p.setColor(QPalette::Window, color);
+ canvasBackgroundColor->setPalette(p);
+ }
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void PreferencesDialog::colorItemSelectionChanged()
+ {
+ QTreeWidgetItem* item = (QTreeWidgetItem*)itemList->selectedItems().at(0);
+ QString txt = item->text(0);
+ int id = item->data(0, 1).toInt();
+ if (id == 0) {
+ color = 0;
+ return;
+ }
+ switch(id) {
+ case 0x400 ... 0x410: // "Default"
+ color = &config->partColors[id & 0xff];
+ break;
+ case 0x100:
+ color = &config->bigTimeBackgroundColor;
+ break;
+ case 0x101:
+ color = &config->bigTimeForegroundColor;
+ break;
+ case 0x200:
+ color = &config->transportHandleColor;
+ break;
+ case 0x300:
+ color = &config->waveEditBackgroundColor;
+ break;
+ case 0x500 ... 0x5ff:
+ color = &config->trackBg[id & 0xff];
+ break;
+ case 0x41c:
+ color = &config->selectPartBg;
+ break;
+ default:
+ color = 0;
+ break;
+ }
+ updateColor();
+ }
+
+//---------------------------------------------------------
+// updateColor
+//---------------------------------------------------------
+
+void PreferencesDialog::updateColor()
+ {
+ hslider->setEnabled(color);
+ sslider->setEnabled(color);
+ vslider->setEnabled(color);
+ if (color == 0)
+ return;
+ QPalette p(colorframe->palette());
+ p.setColor(QPalette::Window, *color);
+ colorframe->setPalette(p);
+ int r, g, b, h, s, v;
+ color->getRgb(&r, &g, &b);
+ color->getHsv(&h, &s, &v);
+
+ hslider->blockSignals(true);
+ sslider->blockSignals(true);
+ vslider->blockSignals(true);
+
+ hslider->setValue(h);
+ sslider->setValue(s);
+ vslider->setValue(v);
+
+ hslider->blockSignals(false);
+ sslider->blockSignals(false);
+ vslider->blockSignals(false);
+ }
+
+void PreferencesDialog::hsliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(val, s, v);
+ }
+ updateColor();
+ }
+
+void PreferencesDialog::ssliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(h, val, v);
+ }
+ updateColor();
+ }
+
+void PreferencesDialog::vsliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(h, s, val);
+ }
+ updateColor();
+ }
+
+//---------------------------------------------------------
+// addToPaletteClicked
+//---------------------------------------------------------
+
+void PreferencesDialog::addToPaletteClicked()
+ {
+ if (!color)
+ return;
+ QAbstractButton* button = colorGroup->checkedButton();
+ int r, g, b;
+ QColor c;
+ if (button) {
+ c = button->palette().color(QPalette::Button);
+ c.getRgb(&r, &g, &b);
+ }
+ if (button == 0 || r != 0xff || g != 0xff || b != 0xff) {
+ for (int i = 0; i < 16; ++i) {
+ button = colorGroup->button(i);
+ c = button->palette().color(QPalette::Button);
+ c.getRgb(&r, &g, &b);
+ if (r == 0xff && g == 0xff && b == 0xff) {
+ // found empty slot
+ button->setChecked(true);
+ break;
+ }
+ }
+ }
+ if (button) {
+ int id = colorGroup->checkedId();
+ QColorDialog::setCustomColor(id, color->rgb());
+ setButtonColor(button, color->rgb());
+ }
+ }
+
+//---------------------------------------------------------
+// paletteClicked
+//---------------------------------------------------------
+
+void PreferencesDialog::paletteClicked(QAbstractButton* button)
+ {
+ if (color == 0)
+ return;
+ QColor c = button->palette().color(QPalette::Button);
+ int r, g, b;
+ c.getRgb(&r, &g, &b);
+ if (r == 0xff && g == 0xff && b == 0xff)
+ return; // interpret palette slot as empty
+ *color = c;
+ updateColor();
+ }
+
+//---------------------------------------------------------
+// usePixmapToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::usePixmapToggled(bool val)
+ {
+ useColor->setChecked(!val);
+ }
+
+//---------------------------------------------------------
+// useColorToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::useColorToggled(bool val)
+ {
+ usePixmap->setChecked(!val);
+ }
+
+//---------------------------------------------------------
+// mixerCurrent1
+//---------------------------------------------------------
+
+void PreferencesDialog::mixerCurrent1()
+ {
+ QWidget* w = muse->mixer1Window();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ mixerX1->setValue(r.x());
+ mixerY1->setValue(r.y());
+ mixerW1->setValue(r.width());
+ mixerH1->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// mixerCurrent2
+//---------------------------------------------------------
+
+void PreferencesDialog::mixerCurrent2()
+ {
+ QWidget* w = muse->mixer2Window();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ mixerX2->setValue(r.x());
+ mixerY2->setValue(r.y());
+ mixerW2->setValue(r.width());
+ mixerH2->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// bigtimeCurrent
+//---------------------------------------------------------
+
+void PreferencesDialog::bigtimeCurrent()
+ {
+ QWidget* w = muse->bigtimeWindow();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ bigtimeX->setValue(r.x());
+ bigtimeY->setValue(r.y());
+ bigtimeW->setValue(r.width());
+ bigtimeH->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// arrangerCurrent
+//---------------------------------------------------------
+
+void PreferencesDialog::arrangerCurrent()
+ {
+ QRect r(muse->frameGeometry());
+ arrangerX->setValue(r.x());
+ arrangerY->setValue(r.y());
+ arrangerW->setValue(r.width());
+ arrangerH->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// transportCurrent
+//---------------------------------------------------------
+
+void PreferencesDialog::transportCurrent()
+ {
+ QWidget* w = muse->transportWindow();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ transportX->setValue(r.x());
+ transportY->setValue(r.y());
+ }
+
+//---------------------------------------------------------
+// recordStopToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::recordStopToggled(bool f)
+ {
+ recordStop->setChecked(!f);
+ if (!f) {
+ recordRecord->setChecked(false);
+ recordGotoLeftMark->setChecked(false);
+ recordPlay->setChecked(false);
+ connect(song, SIGNAL(midiEvent(MidiEvent)), SLOT(midiEventReceived(MidiEvent)));
+ }
+ else
+ disconnect(song, SIGNAL(midiEvent(MidiEvent)), this, SLOT(midiEventReceived(MidiEvent)));
+ }
+
+//---------------------------------------------------------
+// recordRecordToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::recordRecordToggled(bool f)
+ {
+ recordRecord->setChecked(!f);
+ if (!f) {
+ recordStop->setChecked(false);
+ recordGotoLeftMark->setChecked(false);
+ recordPlay->setChecked(false);
+ connect(song, SIGNAL(midiEvent(MidiEvent)), SLOT(midiEventReceived(MidiEvent)));
+ }
+ else
+ disconnect(song, SIGNAL(midiEvent(MidiEvent)), this, SLOT(midiEventReceived(MidiEvent)));
+ }
+
+//---------------------------------------------------------
+// recordGotoLeftMarkToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::recordGotoLeftMarkToggled(bool f)
+ {
+ recordGotoLeftMark->setChecked(!f);
+ if (!f) {
+ recordStop->setChecked(false);
+ recordRecord->setChecked(false);
+ recordPlay->setChecked(false);
+ connect(song, SIGNAL(midiEvent(MidiEvent)), SLOT(midiEventReceived(MidiEvent)));
+ }
+ else
+ disconnect(song, SIGNAL(midiEvent(MidiEvent)), this, SLOT(midiEventReceived(MidiEvent)));
+ }
+
+//---------------------------------------------------------
+// recordPlayToggled
+//---------------------------------------------------------
+
+void PreferencesDialog::recordPlayToggled(bool f)
+ {
+ recordPlay->setChecked(!f);
+ if (!f) {
+ recordStop->setChecked(false);
+ recordRecord->setChecked(false);
+ recordGotoLeftMark->setChecked(false);
+ connect(song, SIGNAL(midiEvent(MidiEvent)), SLOT(midiEventReceived(MidiEvent)));
+ }
+ else
+ disconnect(song, SIGNAL(midiEvent(MidiEvent)), this, SLOT(midiEventReceived(MidiEvent)));
+ }
+
+//---------------------------------------------------------
+// midiEventReceived
+//---------------------------------------------------------
+
+void PreferencesDialog::midiEventReceived(MidiEvent event)
+ {
+ printf("event received\n");
+ if (recordPlay->isChecked()) {
+ recordPlay->setChecked(false);
+ playActive->setChecked(true);
+ midiRCList.setAction(event, RC_PLAY);
+ }
+ else if (recordStop->isChecked()) {
+ recordStop->setChecked(false);
+ stopActive->setChecked(true);
+ midiRCList.setAction(event, RC_STOP);
+ }
+ else if (recordRecord->isChecked()) {
+ recordRecord->setChecked(false);
+ recordActive->setChecked(true);
+ midiRCList.setAction(event, RC_RECORD);
+ }
+ else if (recordGotoLeftMark->isChecked()) {
+ recordGotoLeftMark->setChecked(false);
+ gotoLeftMarkActive->setChecked(true);
+ midiRCList.setAction(event, RC_GOTO_LEFT_MARK);
+ }
+ // only one shot
+ disconnect(song, SIGNAL(midiEvent(MidiEvent)), this, SLOT(midiEventReceived(MidiEvent)));
+ }
+
+
diff --git a/muse_qt4_evolution/muse/preferences.h b/muse_qt4_evolution/muse/preferences.h
new file mode 100644
index 00000000..75cb5754
--- /dev/null
+++ b/muse_qt4_evolution/muse/preferences.h
@@ -0,0 +1,79 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PREFERENCES_H__
+#define __PREFERENCES_H__
+
+#include "ui_preferences.h"
+#include "midievent.h"
+
+class MusE;
+class Arranger;
+class GlobalConfigValues;
+
+//---------------------------------------------------------
+// PreferencesDialog
+//---------------------------------------------------------
+
+class PreferencesDialog : public QDialog, public Ui::PreferencesDialogBase {
+ Q_OBJECT
+
+ Arranger* arr;
+ QColor* color;
+ QString currentBg;
+ GlobalConfigValues* config;
+ QButtonGroup* colorGroup;
+ QButtonGroup* startProjectGroup;
+
+ void updateColor();
+
+ private slots:
+ void apply();
+ void ok();
+ void cancel();
+ void configCanvasBgColor();
+ void configCanvasBgPixmap();
+ void colorItemSelectionChanged();
+ void hsliderChanged(int);
+ void ssliderChanged(int);
+ void vsliderChanged(int);
+ void addToPaletteClicked();
+ void paletteClicked(QAbstractButton*);
+ void useColorToggled(bool);
+ void usePixmapToggled(bool);
+
+ void mixerCurrent1();
+ void mixerCurrent2();
+ void bigtimeCurrent();
+ void arrangerCurrent();
+ void transportCurrent();
+ void recordStopToggled(bool);
+ void recordRecordToggled(bool);
+ void recordGotoLeftMarkToggled(bool);
+ void recordPlayToggled(bool);
+ void midiEventReceived(MidiEvent);
+
+ public:
+ PreferencesDialog(Arranger*, QWidget* parent=0);
+ ~PreferencesDialog();
+ void resetValues();
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/preferences.ui b/muse_qt4_evolution/muse/preferences.ui
new file mode 100644
index 00000000..5417c33c
--- /dev/null
+++ b/muse_qt4_evolution/muse/preferences.ui
@@ -0,0 +1,2400 @@
+<ui version="4.0" >
+ <class>PreferencesDialogBase</class>
+ <widget class="QDialog" name="PreferencesDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>665</width>
+ <height>631</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Application</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_8" >
+ <property name="title" >
+ <string>Style</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="label_41" >
+ <property name="text" >
+ <string>Style Sheet:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="styleSheetPath" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="openStyleSheet" >
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/fileopen.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Start MusE</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="alwaysAsk" >
+ <property name="text" >
+ <string>always ask</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="startWithLastProject" >
+ <property name="text" >
+ <string>start with last project</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="startWithProject" >
+ <property name="text" >
+ <string>start with project:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="startProjectEntry" />
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="showSplash" >
+ <property name="text" >
+ <string>show splash screen</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_7" >
+ <property name="title" >
+ <string>Local Paths</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Projects</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="projectPath" />
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="label_36" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Midi Import</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" colspan="2" >
+ <widget class="QLineEdit" name="midiImportPath" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_35" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Templates</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="templatePath" />
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_37" >
+ <property name="text" >
+ <string>Wave Import</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" colspan="2" >
+ <widget class="QLineEdit" name="waveImportPath" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_38" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Instruments</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLineEdit" name="instrumentPath" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="title" >
+ <string>Views</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>3</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>3</number>
+ </property>
+ <item row="3" column="6" >
+ <widget class="QPushButton" name="setMixerCurrent1" >
+ <property name="text" >
+ <string>Cur</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QCheckBox" name="showMixer1" >
+ <property name="text" >
+ <string>show</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Mixer 1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Big Time</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="6" >
+ <widget class="QPushButton" name="setTransportCurrent" >
+ <property name="text" >
+ <string>Cur</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="6" >
+ <widget class="QPushButton" name="setMixerCurrent2" >
+ <property name="text" >
+ <string>Cur</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6" >
+ <widget class="QPushButton" name="setArrangerCurrent" >
+ <property name="text" >
+ <string>Cur</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="5" >
+ <widget class="QSpinBox" name="mixerH2" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="4" >
+ <widget class="QSpinBox" name="mixerW2" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="5" >
+ <widget class="QSpinBox" name="mixerH1" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="4" >
+ <widget class="QSpinBox" name="mixerW1" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="5" >
+ <widget class="QSpinBox" name="bigtimeH" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="4" >
+ <widget class="QSpinBox" name="bigtimeW" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="arrangerH" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="arrangerW" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="3" >
+ <widget class="QSpinBox" name="mixerY2" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QSpinBox" name="mixerY1" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="bigtimeY" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QSpinBox" name="transportY" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="arrangerY" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2" >
+ <widget class="QSpinBox" name="mixerX1" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="mixerX2" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="bigtimeX" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="transportX" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="arrangerX" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" >
+ <widget class="QCheckBox" name="showMixer2" >
+ <property name="text" >
+ <string>show</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QCheckBox" name="showTransport" >
+ <property name="text" >
+ <string>show</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="label_6" >
+ <property name="text" >
+ <string>Mixer 2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Transport</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Arranger</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QCheckBox" name="showBigtime" >
+ <property name="text" >
+ <string>show</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="6" >
+ <widget class="QPushButton" name="setBigtimeCurrent" >
+ <property name="text" >
+ <string>Cur</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_5" >
+ <attribute name="title" >
+ <string>Editors</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QTabWidget" name="tabWidget2" >
+ <property name="currentIndex" >
+ <number>4</number>
+ </property>
+ <widget class="QWidget" name="tab_61" >
+ <attribute name="title" >
+ <string>Arranger</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="ButtonGroup3" >
+ <property name="title" >
+ <string>Parts</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>11</number>
+ </property>
+ <property name="topMargin" >
+ <number>11</number>
+ </property>
+ <property name="rightMargin" >
+ <number>11</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>11</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="partShownames" >
+ <property name="text" >
+ <string>show names</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="partShowevents" >
+ <property name="text" >
+ <string>show events</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="partShowCakes" >
+ <property name="text" >
+ <string>show Cakewalk Style</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="eventButtonGroup" >
+ <property name="title" >
+ <string>Events</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>11</number>
+ </property>
+ <property name="topMargin" >
+ <number>11</number>
+ </property>
+ <property name="rightMargin" >
+ <number>11</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>11</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="eventNoteon" >
+ <property name="text" >
+ <string>note on</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QCheckBox" name="eventPolypressure" >
+ <property name="text" >
+ <string>poly pressure</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QCheckBox" name="eventController" >
+ <property name="text" >
+ <string>controller</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QCheckBox" name="eventAftertouch" >
+ <property name="text" >
+ <string>aftertouch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QCheckBox" name="eventPitchbend" >
+ <property name="text" >
+ <string>pitch bend</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QCheckBox" name="eventProgramchange" >
+ <property name="text" >
+ <string>program change</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QCheckBox" name="eventSpecial" >
+ <property name="text" >
+ <string>special</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="useCanvasBgPixmap" >
+ <property name="title" >
+ <string>Background</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <property name="checkable" >
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="currentBgLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Minimum" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>bg</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="indent" >
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QRadioButton" name="usePixmap" >
+ <property name="text" >
+ <string>Pixmap</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="canvasBackgroundColor" >
+ <property name="text" >
+ <string>Color</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QRadioButton" name="useColor" >
+ <property name="text" >
+ <string>Color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QToolButton" name="selectCanvasBgColor" >
+ <property name="text" >
+ <string>select...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QToolButton" name="selectCanvasBgPixmap" >
+ <property name="text" >
+ <string>select...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="arrGrid" >
+ <property name="text" >
+ <string>show snap grid</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_6" >
+ <attribute name="title" >
+ <string>Pianoroll</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="3" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>211</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_25" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Quant&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_24" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Raster&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_21" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Geometry&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="label_23" >
+ <property name="text" >
+ <string>height:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_22" >
+ <property name="text" >
+ <string>width:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="pianorollHeight" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="pianorollWidth" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QuantCombo" name="pianorollQuant" />
+ </item>
+ <item row="1" column="1" >
+ <widget class="RasterCombo" name="pianorollRaster" />
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_7" >
+ <attribute name="title" >
+ <string>DrumEditor</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>351</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_27" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Geometry&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="drumEditorWidth" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_28" >
+ <property name="text" >
+ <string>width:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="drumEditorHeight" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="label_26" >
+ <property name="text" >
+ <string>height:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_8" >
+ <attribute name="title" >
+ <string>MasterEditor</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>331</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="masterEditorHeight" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="label_30" >
+ <property name="text" >
+ <string>height:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="masterEditorWidth" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_29" >
+ <property name="text" >
+ <string>width:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_31" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Geometry&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_9" >
+ <attribute name="title" >
+ <string>WaveEditor</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="waveEditorHeight" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="label_34" >
+ <property name="text" >
+ <string>height:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_32" >
+ <property name="text" >
+ <string>width:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_33" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;">Geometry&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="waveEditorWidth" >
+ <property name="minimum" >
+ <number>50</number>
+ </property>
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>351</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_1" >
+ <attribute name="title" >
+ <string>Audio</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_4" >
+ <property name="title" >
+ <string>Mixer</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="text" >
+ <string>Slider Val, Min:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="minSliderSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="minimum" >
+ <number>-100</number>
+ </property>
+ <property name="maximum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>-60</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="label_39" >
+ <property name="text" >
+ <string>Max:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="maxSliderSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="value" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QLabel" name="label_20" >
+ <property name="text" >
+ <string>Peak Hold Time:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="peakHoldTime" >
+ <property name="suffix" >
+ <string>ms</string>
+ </property>
+ <property name="minimum" >
+ <number>20</number>
+ </property>
+ <property name="maximum" >
+ <number>5000</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_8" >
+ <property name="text" >
+ <string>Meter Val, Min:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="minMeterSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="minimum" >
+ <number>-100</number>
+ </property>
+ <property name="maximum" >
+ <number>0</number>
+ </property>
+ <property name="singleStep" >
+ <number>10</number>
+ </property>
+ <property name="value" >
+ <number>-60</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_40" >
+ <property name="text" >
+ <string>Max:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QSpinBox" name="maxMeterSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="maximum" >
+ <number>40</number>
+ </property>
+ <property name="value" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="freewheelMode" >
+ <property name="text" >
+ <string>use JACK freewheel mode if possible</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_2" >
+ <attribute name="title" >
+ <string>Midi</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>8</number>
+ </property>
+ <property name="topMargin" >
+ <number>8</number>
+ </property>
+ <property name="rightMargin" >
+ <number>8</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_5" >
+ <property name="title" >
+ <string>Ticks</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_10" >
+ <property name="text" >
+ <string>Displayed Resolution
+(Ticks/Quarternote)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_9" >
+ <property name="text" >
+ <string>RTC Resolution
+(Ticks/Sec)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="rtcResolutionSelect" >
+ <item>
+ <property name="text" >
+ <string>1024</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>2048</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>4096</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>8172</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="midiDivisionSelect" >
+ <property name="currentIndex" >
+ <number>3</number>
+ </property>
+ <item>
+ <property name="text" >
+ <string>48</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>96</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>192</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>384</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>768</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>1536</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>3072</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>6144</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>12288</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3" >
+ <property name="title" >
+ <string>Input Routing</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>8</number>
+ </property>
+ <property name="topMargin" >
+ <number>8</number>
+ </property>
+ <property name="rightMargin" >
+ <number>8</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>8</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" >
+ <widget class="QCheckBox" name="connectToAllTracks" >
+ <property name="text" >
+ <string>Connect to all Tracks</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QCheckBox" name="connectToAllDevices" >
+ <property name="text" >
+ <string>Connect to all Input Devices</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_17" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Preferred Input Device:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QComboBox" name="preferredInput" />
+ </item>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="createDefaultInput" >
+ <property name="text" >
+ <string>Create Default Input Strip</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_6" >
+ <property name="title" >
+ <string>Output Routing</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>8</number>
+ </property>
+ <property name="topMargin" >
+ <number>8</number>
+ </property>
+ <property name="rightMargin" >
+ <number>8</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>8</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>8</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>8</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_18" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Preferred Output Device:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QComboBox" name="preferredInstrument" />
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="label_19" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Arial; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Preferred Instrument:&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QComboBox" name="preferredOutput" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_3" >
+ <attribute name="title" >
+ <string>GUI</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="helpBrowser" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_12" >
+ <property name="text" >
+ <string>Help Browser</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="guiRefreshSelect" >
+ <property name="suffix" >
+ <string>/sec</string>
+ </property>
+ <property name="minimum" >
+ <number>2</number>
+ </property>
+ <property name="maximum" >
+ <number>100</number>
+ </property>
+ <property name="value" >
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_11" >
+ <property name="text" >
+ <string>GUI Refresh Rate:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_4" >
+ <attribute name="title" >
+ <string>RemoteControl</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="rcGroup" >
+ <property name="toolTip" >
+ <string>enable midi remote control</string>
+ </property>
+ <property name="title" >
+ <string>Midi Remote Control</string>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_14" >
+ <property name="text" >
+ <string>Record</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_15" >
+ <property name="text" >
+ <string>Goto Left Mark</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_13" >
+ <property name="text" >
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_16" >
+ <property name="text" >
+ <string>Play</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="RecordButton" name="recordStop" />
+ </item>
+ <item row="1" column="2" >
+ <widget class="RecordButton" name="recordRecord" />
+ </item>
+ <item row="2" column="2" >
+ <widget class="RecordButton" name="recordGotoLeftMark" />
+ </item>
+ <item row="3" column="2" >
+ <widget class="RecordButton" name="recordPlay" />
+ </item>
+ <item row="0" column="1" >
+ <widget class="GreendotButton" name="stopActive" />
+ </item>
+ <item row="1" column="1" >
+ <widget class="GreendotButton" name="recordActive" />
+ </item>
+ <item row="2" column="1" >
+ <widget class="GreendotButton" name="gotoLeftMarkActive" />
+ </item>
+ <item row="3" column="1" >
+ <widget class="GreendotButton" name="playActive" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_11" >
+ <attribute name="title" >
+ <string>Colors</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="colorPalette" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="title" >
+ <string>Palette</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="4" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QToolButton" name="palette0" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QToolButton" name="palette1" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QToolButton" name="palette2" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QToolButton" name="palette3" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QToolButton" name="palette4" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QToolButton" name="palette8" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QToolButton" name="palette12" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QToolButton" name="palette5" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QToolButton" name="palette9" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QToolButton" name="palette13" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QToolButton" name="palette6" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QToolButton" name="palette7" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QToolButton" name="palette10" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QToolButton" name="palette11" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QToolButton" name="palette14" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QToolButton" name="palette15" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel6_2" >
+ <property name="text" >
+ <string>V</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="vslider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item rowspan="5" row="0" column="0" >
+ <widget class="QTreeWidget" name="itemList" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Items</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QPushButton" name="addToPalette" >
+ <property name="text" >
+ <string>add to palette</string>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="2" row="0" column="2" >
+ <widget class="QFrame" name="colorframe" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel4_2" >
+ <property name="text" >
+ <string>H</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="hslider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel5_2" >
+ <property name="text" >
+ <string>S</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="sslider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="applyButton" >
+ <property name="text" >
+ <string>Apply</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>RecordButton</class>
+ <extends>QToolButton</extends>
+ <header>recordbutton.h</header>
+ </customwidget>
+ <customwidget>
+ <class>RasterCombo</class>
+ <extends>QComboBox</extends>
+ <header>rastercombo.h</header>
+ </customwidget>
+ <customwidget>
+ <class>QuantCombo</class>
+ <extends>QComboBox</extends>
+ <header>quantcombo.h</header>
+ </customwidget>
+ <customwidget>
+ <class>GreendotButton</class>
+ <extends>QToolButton</extends>
+ <header>greendotbutton.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>PreferencesDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>PreferencesDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/projectdialog.cpp b/muse_qt4_evolution/muse/projectdialog.cpp
new file mode 100644
index 00000000..c85b3446
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectdialog.cpp
@@ -0,0 +1,471 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "projectdialog.h"
+#include "gconfig.h"
+#include "song.h"
+#include "icons.h"
+
+//
+// entry types for projectTree tree widget:
+//
+enum { DIR_TYPE, PROJECT_TYPE };
+
+//---------------------------------------------------------
+// ProjectTree
+//---------------------------------------------------------
+
+ProjectTree::ProjectTree(QWidget* parent)
+ : QTreeWidget(parent)
+ {
+ setAcceptDrops(true);
+ }
+
+//---------------------------------------------------------
+// itemPath
+//---------------------------------------------------------
+
+QString ProjectTree::itemPath(QTreeWidgetItem* item) const
+ {
+ QString path;
+ QTreeWidgetItem* ti = item;
+ QStringList dirComponent;
+ do {
+ dirComponent.prepend(ti->text(0));
+ ti = ti->parent();
+ } while (ti);
+ foreach (QString s, dirComponent) {
+ if (!path.isEmpty())
+ path += "/";
+ path += s;
+ }
+ return path;
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void ProjectTree::mousePressEvent(QMouseEvent* event)
+ {
+ dragStartPosition = event->pos();
+ QTreeWidget::mousePressEvent(event);
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void ProjectTree::mouseMoveEvent(QMouseEvent* ev)
+ {
+ QTreeWidgetItem* item = itemAt(ev->pos());
+ if (item == 0 || item->type() != PROJECT_TYPE) // || ev->button() != Qt::LeftButton)
+ return;
+ if ((ev->pos() - dragStartPosition).manhattanLength()
+ < QApplication::startDragDistance())
+ return;
+ QDrag* drag = new QDrag(this);
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setText(itemPath(item));
+ drag->setMimeData(mimeData);
+ drag->setPixmap(style()->standardPixmap(QStyle::SP_FileIcon));
+ Qt::DropAction dropAction = drag->start(Qt::MoveAction);
+ if (dropAction == Qt::IgnoreAction)
+ return;
+ printf("drop action\n");
+ if (dropAction == Qt::MoveAction) {
+ printf("move action\n");
+ }
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void ProjectTree::dragEnterEvent(QDragEnterEvent* event)
+ {
+ if (event->mimeData()->hasFormat("text/plain")) {
+ event->acceptProposedAction();
+ }
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void ProjectTree::dragMoveEvent(QDragMoveEvent* event)
+ {
+ QTreeWidgetItem* item = itemAt(event->pos());
+ event->setAccepted(item && item->type() == DIR_TYPE);
+ }
+
+//---------------------------------------------------------
+// searchItem
+//---------------------------------------------------------
+
+QTreeWidgetItem* ProjectTree::searchItem(const QString& s, QTreeWidgetItem* p)
+ {
+ int n = p->childCount();
+ for (int i = 0; i < n; ++i) {
+ QTreeWidgetItem* item = p->child(i);
+ if (s == itemPath(item))
+ return p->takeChild(i);
+ item = searchItem(s, item);
+ if (item)
+ return item;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void ProjectTree::dropEvent(QDropEvent* event)
+ {
+ QTreeWidgetItem* dstItem = itemAt(event->pos());
+ if (dstItem && dstItem->type() == DIR_TYPE) {
+ QString src = event->mimeData()->text();
+ QTreeWidgetItem* srcItem = 0;
+ int n = topLevelItemCount();
+ for (int i = 0; i < n; ++i) {
+ QTreeWidgetItem* item = topLevelItem(i);
+ if (src == itemPath(item)) {
+ srcItem = takeTopLevelItem(i);
+ break;
+ }
+ srcItem = searchItem(src, item);
+ if (srcItem)
+ break;
+ }
+ if (srcItem == 0) {
+ printf("src item not found\n");
+ return;
+ }
+ QString dst = itemPath(dstItem);
+ dstItem->addChild(srcItem);
+ //
+ // TODO: - actual move project
+ // - look for name conflicts
+ // - do nothing if src==dst
+ //
+ src = QDir::homePath() + "/" + config.projectPath + "/" + src;
+ dst = QDir::homePath() + "/" + config.projectPath + "/" + dst
+ + "/" + srcItem->text(0);
+ if (src != dst) {
+ QDir dir;
+ if (!dir.rename(src, dst)) {
+printf("Rename <%s> -> <%s> failed\n", src.toLatin1().data(), dst.toLatin1().data());
+ event->acceptProposedAction();
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// processSubdirectories
+//---------------------------------------------------------
+
+void ProjectDialog::processSubdir(QTreeWidgetItem* item, const QString& p,
+ const QString& subdir, QTreeWidgetItem** current)
+ {
+ QString path(p + "/" + subdir);
+ QFile pf(path + "/" + subdir + ".med");
+ if (pf.exists()) {
+ QTreeWidgetItem* pi = new QTreeWidgetItem(item, PROJECT_TYPE);
+ pi->setText(0, subdir);
+ pi->setIcon(0, style()->standardIcon(QStyle::SP_FileIcon));
+ if (path == song->absoluteProjectPath())
+ *current = pi;
+ }
+ else {
+ QDir sd(path);
+ QStringList dl = sd.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
+ QTreeWidgetItem* pi = new QTreeWidgetItem(item, DIR_TYPE);
+ pi->setText(0, subdir);
+ itemCollapsed(pi);
+ foreach (QString s, dl)
+ processSubdir(pi, path, s, current);
+ }
+ }
+
+//---------------------------------------------------------
+// ProjectDialog
+//---------------------------------------------------------
+
+ProjectDialog::ProjectDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ projectTree->setSelectionBehavior(QAbstractItemView::SelectRows);
+ projectTree->setSelectionMode(QAbstractItemView::SingleSelection);
+ QDir pd(QDir::homePath() + "/" + config.projectPath);
+ QStringList el = pd.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
+ QTreeWidgetItem* current = 0;
+ foreach (QString s, el) {
+ QString path(QDir::homePath() + "/" + config.projectPath + "/" + s);
+ QFile pf(path + "/" + s + ".med");
+ if (pf.exists()) {
+ QTreeWidgetItem* pi = new QTreeWidgetItem(projectTree, PROJECT_TYPE);
+ pi->setText(0, s);
+ pi->setIcon(0, style()->standardIcon(QStyle::SP_FileIcon));
+ if (path == song->absoluteProjectPath())
+ current = pi;
+ }
+ else {
+ QDir sd(path);
+ QStringList dl = sd.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
+ if (!dl.isEmpty()) {
+ QTreeWidgetItem* pi = new QTreeWidgetItem(projectTree, DIR_TYPE);
+ pi->setText(0, s);
+ itemCollapsed(pi);
+ foreach (QString s, dl) {
+ processSubdir(pi, path, s, &current);
+ }
+ }
+ }
+ }
+ connect(projectTree,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(currentChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ connect(projectTree,
+ SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)),
+ SLOT(itemDoubleClicked(QTreeWidgetItem*, int)));
+ connect(projectTree,
+ SIGNAL(itemCollapsed(QTreeWidgetItem*)),
+ SLOT(itemCollapsed(QTreeWidgetItem*)));
+ connect(projectTree,
+ SIGNAL(itemExpanded(QTreeWidgetItem*)),
+ SLOT(itemExpanded(QTreeWidgetItem*)));
+ connect(projectNameEntry,
+ SIGNAL(textEdited(const QString&)),
+ SLOT(projectNameEdited(const QString&)));
+ connect(newFolder,
+ SIGNAL(clicked()),
+ SLOT(newFolderClicked()));
+
+ if (current)
+ projectTree->setCurrentItem(current);
+ else
+ currentChanged(0, 0);
+ }
+
+//---------------------------------------------------------
+// itemCollapsed
+//---------------------------------------------------------
+
+void ProjectDialog::itemCollapsed(QTreeWidgetItem* item)
+ {
+ item->setIcon(0, style()->standardIcon(QStyle::SP_DirClosedIcon));
+ }
+
+//---------------------------------------------------------
+// itemExpanded
+//---------------------------------------------------------
+
+void ProjectDialog::itemExpanded(QTreeWidgetItem* item)
+ {
+ item->setIcon(0, style()->standardIcon(QStyle::SP_DirOpenIcon));
+ }
+
+//---------------------------------------------------------
+// currentChanged
+//---------------------------------------------------------
+
+void ProjectDialog::currentChanged(QTreeWidgetItem* item, QTreeWidgetItem*)
+ {
+ bool enable = (item != 0) && (item->type() == PROJECT_TYPE);
+ createdDate->setEnabled(enable);
+ modifiedDate->setEnabled(enable);
+ comment->setEnabled(enable);
+ length->setEnabled(enable);
+
+ // newFolder->setEnabled(item == 0 || item->type() == DIR_TYPE);
+ if (!enable)
+ return;
+
+ projectNameEntry->setText(item->text(0));
+ QString pd(QDir::homePath() + "/" + config.projectPath + "/");
+
+ pd += "/" + projectTree->itemPath(item);
+
+ QFileInfo pf(pd + "/" + item->text(0) + ".med");
+ modifiedDate->setDateTime(pf.lastModified());
+
+ QTime time(0, 0, 0);
+ QDateTime date;
+
+ QFile f(pf.filePath());
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(&f, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error reading med file: %s\n", error.toLatin1().data());
+ return;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ QString sversion = e.attribute("version", "1.0");
+ int major=0, minor=0;
+ sscanf(sversion.toLatin1().data(), "%d.%d", &major, &minor);
+ int version = major << 8 + minor;
+ if (version >= 0x200) {
+ for (QDomNode n1 = node.firstChild(); !n1.isNull(); n1 = n1.nextSibling()) {
+ QDomElement e = n1.toElement();
+ if (e.tagName() == "song") {
+ for (QDomNode n2 = n1.firstChild(); !n2.isNull(); n2 = n2.nextSibling()) {
+ QDomElement e = n2.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ if (tag == "comment")
+ comment->setPlainText(s);
+ else if (tag == "createDate")
+ date = QDateTime::fromString(e.text(), Qt::ISODate);
+ else if (tag == "LenInSec") {
+ int sec = s.toInt();
+ time = time.addSecs(sec);
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+ }
+ length->setTime(time);
+ createdDate->setDateTime(date);
+ }
+
+//---------------------------------------------------------
+// projectNameEdited
+//---------------------------------------------------------
+
+void ProjectDialog::projectNameEdited(const QString&)
+ {
+ QTreeWidgetItem* item = projectTree->currentItem();
+ if (item && item->type() == PROJECT_TYPE) {
+ projectTree->setItemSelected(item, false);
+ projectTree->setCurrentItem(0);
+ }
+ }
+
+//---------------------------------------------------------
+// projectPath
+//---------------------------------------------------------
+
+QString ProjectDialog::projectPath() const
+ {
+ QTreeWidgetItem* item = projectTree->currentItem();
+ QString s;
+ if (item) {
+ if (item->type() == PROJECT_TYPE)
+ s = projectTree->itemPath(item);
+ else
+ s = projectTree->itemPath(item) + "/" + projectNameEntry->text();
+ }
+ else
+ s = projectNameEntry->text();
+ return s;
+ }
+
+//---------------------------------------------------------
+// projectName
+//---------------------------------------------------------
+
+QString ProjectDialog::projectName() const
+ {
+ return projectNameEntry->text();
+ }
+
+//---------------------------------------------------------
+// setProjectName
+//---------------------------------------------------------
+
+void ProjectDialog::setProjectName(const QString& name)
+ {
+ projectNameEntry->setText(name);
+ }
+
+//---------------------------------------------------------
+// newFolderClicked
+//---------------------------------------------------------
+
+void ProjectDialog::newFolderClicked()
+ {
+ QString title(tr("MusE: create new folder"));
+ QString folder = QInputDialog::getText(this, title, tr("new folder:"));
+ if (folder.isEmpty())
+ return;
+ QString path;
+ QTreeWidgetItem* item = projectTree->currentItem();
+ if (item) {
+ QStringList sl = projectTree->itemPath(item).split("/");
+ int n = sl.size() - 1;
+ for (int i = 0; i < n; ++i) {
+ if (!path.isEmpty())
+ path += "/";
+ path += sl[i];
+ }
+ if (!path.isEmpty())
+ path += "/";
+ }
+ path += folder;
+
+ QDir d;
+ if (!d.mkpath(QDir::homePath() + "/" + config.projectPath + "/" + path)) {
+ QString s("Creating new project folder <%1> failed");
+ QMessageBox::critical(this, title, s.arg(path));
+ }
+ else {
+ if (item)
+ item = item->parent();
+ QStringList pathElements = folder.split("/");
+ foreach(QString s, pathElements) {
+ QTreeWidgetItem* pi;
+ if (item == 0)
+ pi = new QTreeWidgetItem(projectTree, DIR_TYPE);
+ else
+ pi = new QTreeWidgetItem(item, DIR_TYPE);
+ pi->setText(0, s);
+ itemCollapsed(pi);
+ item = pi;
+ }
+ projectTree->setCurrentItem(item);
+ }
+ }
+
+//---------------------------------------------------------
+// itemDoubleClicked
+//---------------------------------------------------------
+
+void ProjectDialog::itemDoubleClicked(QTreeWidgetItem* item, int)
+ {
+ if (item->type() == PROJECT_TYPE)
+ accept();
+ }
+
diff --git a/muse_qt4_evolution/muse/projectdialog.h b/muse_qt4_evolution/muse/projectdialog.h
new file mode 100644
index 00000000..867ae385
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectdialog.h
@@ -0,0 +1,73 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PROJECT_DIALOG_H__
+#define __PROJECT_DIALOG_H__
+
+//---------------------------------------------------------
+// ProjectTree
+//---------------------------------------------------------
+
+class ProjectTree : public QTreeWidget {
+ Q_OBJECT
+
+ QPoint dragStartPosition;
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void dragEnterEvent(QDragEnterEvent*);
+ virtual void dragMoveEvent(QDragMoveEvent*);
+ virtual void dropEvent(QDropEvent*);
+
+ QTreeWidgetItem* searchItem(const QString&, QTreeWidgetItem*);
+
+ public:
+ ProjectTree(QWidget* parent = 0);
+ QString itemPath(QTreeWidgetItem*) const;
+ };
+
+#include "ui_projectdialog.h"
+
+//---------------------------------------------------------
+// ProjectDialog
+//---------------------------------------------------------
+
+class ProjectDialog : public QDialog, public Ui_ProjectDialogBase {
+ Q_OBJECT
+
+ void processSubdir(QTreeWidgetItem*, const QString&,
+ const QString&, QTreeWidgetItem**);
+
+ private slots:
+ void currentChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void projectNameEdited(const QString&);
+ void itemCollapsed(QTreeWidgetItem*);
+ void itemExpanded(QTreeWidgetItem*);
+ void newFolderClicked();
+ void itemDoubleClicked(QTreeWidgetItem*, int);
+
+ public:
+ ProjectDialog(QWidget* parent = 0);
+ QString projectPath() const;
+ QString projectName() const;
+ void setProjectName(const QString&);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/projectdialog.ui b/muse_qt4_evolution/muse/projectdialog.ui
new file mode 100644
index 00000000..37c08f28
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectdialog.ui
@@ -0,0 +1,269 @@
+<ui version="4.0" >
+ <class>ProjectDialogBase</class>
+ <widget class="QDialog" name="ProjectDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>574</width>
+ <height>385</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Select Project</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>221</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QToolButton" name="newFolder" >
+ <property name="toolTip" >
+ <string>create new project folder</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/folder_new.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="2" row="0" column="2" >
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Properties</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QDateEdit" name="createdDate" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QDateEdit" name="modifiedDate" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QTimeEdit" name="length" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Length:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Modified:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Created:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2" >
+ <widget class="QTextEdit" name="comment" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Project:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="projectNameEntry" >
+ <property name="toolTip" >
+ <string>project name</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="ProjectTree" name="projectTree" >
+ <property name="dragEnabled" >
+ <bool>false</bool>
+ </property>
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="columnCount" >
+ <number>1</number>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Projectlist</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>ProjectTree</class>
+ <extends>QTreeWidget</extends>
+ <header>projectdialog.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>projectNameEntry</tabstop>
+ <tabstop>okButton</tabstop>
+ <tabstop>cancelButton</tabstop>
+ <tabstop>newFolder</tabstop>
+ <tabstop>projectTree</tabstop>
+ </tabstops>
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ProjectDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ProjectDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/projectpropsdialog.cpp b/muse_qt4_evolution/muse/projectpropsdialog.cpp
new file mode 100644
index 00000000..eb983801
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectpropsdialog.cpp
@@ -0,0 +1,64 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "projectpropsdialog.h"
+#include "song.h"
+
+#include "al/al.h"
+#include "al/tempo.h"
+
+//---------------------------------------------------------
+// ProjectPropsDialog
+//---------------------------------------------------------
+
+ProjectPropsDialog::ProjectPropsDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ comment->setPlainText(song->comment());
+ projectName->setText(song->projectName());
+ createdDate->setDateTime(song->createDate());
+ int n = AL::tempomap.tick2frame(song->len()) / AL::sampleRate;
+ QTime time;
+ time = time.addSecs(n);
+ length->setTime(time);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void ProjectPropsDialog::accept()
+ {
+ song->setComment(comment->toPlainText());
+ song->dirty = true;
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void ProjectPropsDialog::reject()
+ {
+ comment->setPlainText(song->comment());
+ QDialog::reject();
+ }
+
diff --git a/muse_qt4_evolution/muse/projectpropsdialog.h b/muse_qt4_evolution/muse/projectpropsdialog.h
new file mode 100644
index 00000000..83b7a511
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectpropsdialog.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __PROJECTPROPS_DIALOG_H__
+#define __PROJECTPROPS_DIALOG_H__
+
+#include "ui_projectpropsdialog.h"
+
+//---------------------------------------------------------
+// ProjectPropsDialog
+//---------------------------------------------------------
+
+class ProjectPropsDialog : public QDialog, public Ui_ProjectPropsDialogBase {
+ Q_OBJECT
+
+ QString projectComment;
+
+ public slots:
+ virtual void accept();
+ virtual void reject();
+
+ public:
+ ProjectPropsDialog(QWidget* parent = 0);
+ };
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/projectpropsdialog.ui b/muse_qt4_evolution/muse/projectpropsdialog.ui
new file mode 100644
index 00000000..f431b602
--- /dev/null
+++ b/muse_qt4_evolution/muse/projectpropsdialog.ui
@@ -0,0 +1,188 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ProjectPropsDialogBase</class>
+ <widget class="QDialog" name="ProjectPropsDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>456</width>
+ <height>382</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Project Properties</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="4" column="0" colspan="4" >
+ <widget class="QTextEdit" name="comment" />
+ </item>
+ <item row="3" column="0" colspan="4" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="sampleRate" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ <property name="suffix" >
+ <string>Hz</string>
+ </property>
+ <property name="maximum" >
+ <number>100000</number>
+ </property>
+ <property name="value" >
+ <number>48000</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Samplerate:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>Length:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QTimeEdit" name="length" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QDateEdit" name="createdDate" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="4" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Created:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_6" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Project:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="3" >
+ <widget class="QLineEdit" name="projectName" />
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ProjectPropsDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ProjectPropsDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/rack.cpp b/muse_qt4_evolution/muse/rack.cpp
new file mode 100644
index 00000000..dbd76804
--- /dev/null
+++ b/muse_qt4_evolution/muse/rack.cpp
@@ -0,0 +1,445 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "rack.h"
+#include "song.h"
+#include "audio.h"
+#include "icons.h"
+#include "gconfig.h"
+#include "pipeline.h"
+#include "auxplugin.h"
+#include "plugingui.h"
+#include "widgets/filedialog.h"
+#include "muse.h"
+#include "gui.h"
+
+static const int PipelineDepth = 4;
+
+//---------------------------------------------------------
+// EffectRack
+//---------------------------------------------------------
+
+EffectRack::EffectRack(QWidget* parent, AudioTrack* t, bool flag)
+ : QListWidget(parent)
+ {
+ setUniformItemSizes(true);
+ setAlternatingRowColors(true);
+ prefader = flag;
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ verticalScrollBar()->setStyle(smallStyle);
+
+ track = t;
+// setFont(config.fonts[1]);
+
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ setSelectionMode(QAbstractItemView::SingleSelection);
+ songChanged(SC_RACK); // force update
+ connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
+ this, SLOT(doubleClicked(QListWidgetItem*)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ setToolTip(tr("effect rack"));
+ setAcceptDrops(true);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize EffectRack::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int h = fm.lineSpacing() * PipelineDepth + 1;
+ return QSize(STRIP_WIDTH, h);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void EffectRack::songChanged(int typ)
+ {
+ if (!(typ & (SC_ROUTE | SC_RACK)))
+ return;
+
+ clear();
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+ foreach (PluginI* plugin, *pipe) {
+ QListWidgetItem* item = new QListWidgetItem(this);
+ item->setText(plugin->name());
+ // tooltip should only be set if name does not fit
+ // (is elided)
+ item->setToolTip(plugin->name());
+ item->setBackgroundColor(plugin->on() ? Qt::white : Qt::gray);
+ }
+ }
+
+//---------------------------------------------------------
+// menuRequested
+//---------------------------------------------------------
+
+void EffectRack::contextMenuEvent(QContextMenuEvent* ev)
+ {
+ QPoint pt(ev->pos());
+ QListWidgetItem* item = itemAt(pt);
+
+ int idx = -1;
+ QString name;
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+
+ QMenu* menu = new QMenu;
+ QAction* upAction = menu->addAction(QIcon(*upIcon), tr("move up"));
+ QAction* downAction = menu->addAction(QIcon(*downIcon), tr("move down"));
+ QAction* removeAction = menu->addAction(tr("remove"));
+ menu->addSeparator();
+ QAction* bypassAction = menu->addAction(tr("bypass"));
+ QAction* showAction = menu->addAction(tr("show gui"));
+ QAction* showCustomAction = menu->addAction(tr("show native gui"));
+ menu->addSeparator();
+ QAction* newAction = menu->addAction(tr("New Plugin"));
+ QAction* auxAction = menu->addAction(tr("New Aux Send"));
+
+ bypassAction->setCheckable(true);
+ showAction->setCheckable(true);
+ showCustomAction->setCheckable(true);
+
+ if (!item) {
+ upAction->setEnabled(false);
+ downAction->setEnabled(false);
+ removeAction->setEnabled(false);
+ bypassAction->setEnabled(false);
+ showAction->setEnabled(false);
+ showCustomAction->setEnabled(false);
+ }
+ else {
+ idx = row(item);
+ upAction->setEnabled(idx != 0);
+ downAction->setEnabled(idx < pipe->size()-1);
+ idx = item->type();
+ showCustomAction->setEnabled(pipe->hasNativeGui(idx));
+ bypassAction->setEnabled(true);
+ showAction->setEnabled(true);
+
+ bypassAction->setChecked(!pipe->isOn(idx));
+ showAction->setChecked(pipe->guiVisible(idx));
+ showCustomAction->setChecked(pipe->nativeGuiVisible(idx));
+ }
+ if (track->type() != Track::WAVE && track->type() != Track::AUDIO_INPUT)
+ auxAction->setEnabled(false);
+
+ QAction* sel = menu->exec(mapToGlobal(pt), newAction);
+ delete menu;
+ if (sel == 0)
+ return;
+
+ if (sel == newAction) {
+ selectNew();
+ return;
+ }
+ if (sel == removeAction) {
+ audio->msgAddPlugin(track, idx, 0, prefader);
+ }
+ else if (sel == bypassAction) {
+ bool flag = !pipe->isOn(idx);
+ pipe->setOn(idx, flag);
+ }
+ else if (sel == showAction) {
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ }
+ else if (sel == showCustomAction) {
+ bool flag = !pipe->nativeGuiVisible(idx);
+ pipe->showNativeGui(idx, flag);
+ }
+ else if (sel == upAction) {
+ if (idx > 0) {
+ setCurrentRow(idx-1);
+ pipe->move(idx, true);
+ }
+ }
+ else if (sel == downAction) {
+ if (idx < (PipelineDepth-1)) {
+ setCurrentRow(idx+1);
+ pipe->move(idx, false);
+ }
+ }
+ else if (sel == auxAction)
+ addPlugin(auxPlugin);
+ song->update(SC_RACK);
+ }
+
+//---------------------------------------------------------
+// doubleClicked
+// toggle gui and open requester if needed.
+//---------------------------------------------------------
+
+void EffectRack::doubleClicked(QListWidgetItem* it)
+ {
+ if (track == 0)
+ return;
+ int idx = row(it);
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void EffectRack::startDrag(int idx)
+ {
+ QString buffer;
+ AL::Xml xml(NULL);
+ xml.setString(&buffer);
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+ if (pipe) {
+ if ((*pipe)[idx] != NULL) {
+ PluginI *plug = (*pipe)[idx];
+ xml.header();
+ xml.stag("muse version=\"1.0\"");
+ // header info
+ plug->writeConfiguration1(xml, prefader); // wC1 does not append endtag
+ // parameters
+ int noParams = plug->plugin()->parameter();
+ for (int i=0;i<noParams;i++) {
+ QString fval;
+ QString name(plug->getParameterName(i));
+ fval.setNum(plug->param(i)); // wierd stuff to avoid localization
+ QString str="<control name=\"" + name + "\" val=\""+ fval+"\" />";
+ xml.put(str.toLatin1().data());
+ printf("%s\n",str.toLatin1().data());
+ }
+ xml.etag("plugin");
+
+ xml.etag("muse");
+ }
+ else {
+ //printf("no plugin!\n");
+ return;
+ }
+ }
+ else {
+ //printf("no pipe!\n");
+ return;
+ }
+ //printf("and i wish you were here: %s\n", xml.readAll().toLatin1().data());
+ QByteArray xmldump = xml.readAll().toLatin1();
+ //printf("xmldump=%s\n",xmldump.data());
+ QDrag *drag = new QDrag(this);
+ QMimeData *mime = new QMimeData();
+ mime->setData("text/x-muse-plugin", xmldump);
+ drag->setMimeData(mime);
+/* Qt::DropAction dropAction =*/ drag->start();
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void EffectRack::dropEvent(QDropEvent *event)
+ {
+ // printf("drop!\n");
+ QString text;
+ QListWidgetItem* i = itemAt( (event->pos()) );
+ int idx = -1;
+ if (i)
+ idx = row(i);
+
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+ if (pipe) {
+ if (i) {
+ if(!QMessageBox::question(this, tr("Replace effect"),tr("Do you really want to replace the effect %1?").arg(pipe->name(idx)),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 ))
+ {
+ audio->msgAddPlugin(track, idx, 0, prefader);
+ song->update(SC_RACK);
+ }
+ else {
+ printf("nothing here\n");
+ return;
+ }
+ }
+ if(event->mimeData()->hasText())
+ {
+ //printf("has text\n");
+ text = event->mimeData()->text().trimmed();
+ if (QString(text).endsWith(".pre"))
+ {
+ QUrl url(text);
+ QString newPath = url.path();
+
+ QFile xmlfile(newPath);
+ xmlfile.open(QIODevice::ReadOnly);
+ QDomDocument doc;
+ doc.setContent(&xmlfile);
+ QDomNode node = doc.documentElement().firstChild();
+ initPlugin(node, idx);
+ }
+ }
+ else if (event->mimeData()->hasFormat("text/x-muse-plugin"))
+ {
+ QByteArray outxml = event->mimeData()->data("text/x-muse-plugin");
+ //printf("DATA:%s\n",outxml.data());
+ QDomDocument doc;
+ doc.setContent(outxml);
+ QDomNode node = doc.documentElement().firstChild();
+
+ initPlugin(node, idx);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+void EffectRack::dragEnterEvent(QDragEnterEvent *event)
+ {
+ //printf("dragEnterEvent\n");
+ //if (event->mimeData()->hasFormat("text/x-muse-plugin"))
+ event->acceptProposedAction();
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+void EffectRack::dragMoveEvent(QDragMoveEvent *event)
+ {
+ //printf("dragMoveEvent\n");
+ //if (event->mimeData()->hasFormat("text/x-muse-plugin"))
+ event->acceptProposedAction();
+ }
+
+//---------------------------------------------------------
+// contentsMousePressEvent
+//---------------------------------------------------------
+void EffectRack::mousePressEvent(QMouseEvent *event)
+ {
+ //printf("mousePressEvent\n");
+ if(event->button() & Qt::LeftButton) {
+ dragPos = event->pos();
+ }
+ QListWidget::mousePressEvent(event);
+ }
+
+//---------------------------------------------------------
+// contentsMouseMoveEvent
+//---------------------------------------------------------
+void EffectRack::mouseMoveEvent(QMouseEvent *event)
+ {
+ if (event->buttons() & Qt::LeftButton) {
+ int distance = (dragPos-event->pos()).manhattanLength();
+ if (distance > QApplication::startDragDistance()) {
+ QListWidgetItem *i = itemAt( event->pos() );
+ int idx = row(i);
+ startDrag(idx);
+ }
+ }
+ QListWidget::mouseMoveEvent(event);
+ }
+
+
+//---------------------------------------------------------
+// initPlugin
+//---------------------------------------------------------
+
+void EffectRack::initPlugin(QDomNode &node, int idx)
+ {
+ QDomElement e = node.toElement();
+ //QString version = e.attribute("version");
+ QString file = e.attribute("file");
+ QString label = e.attribute("label");
+
+ //printf("version=%s file=%s label=%s channel=%d\n",version.toLatin1().data(),file.toLatin1().data(), label.toLatin1().data(), channel);
+
+ //Plugin* plugin = PluginDialog::getPlugin(this);
+ Plugin* plugin = plugins.find(file, label);
+ if (plugin) {
+ PluginI* plugi = new PluginI(track);
+ if (plugi->initPluginInstance(plugin, track->channels())) {
+ printf("cannot instantiate plugin <%s>\n",
+ plugin->name().toLatin1().data());
+ delete plugi;
+ }
+ else {
+ audio->msgAddPlugin(track, idx, plugi, prefader);
+ song->update(SC_RACK);
+ int i = 0;
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e = n.toElement();
+ if (e.nodeName() == "control") {
+ //QString name = e.attribute("name"); // currently this value is just thrown.
+ QString value = e.attribute("val");
+ QLocale::setDefault(QLocale::C);
+ double val = value.toFloat();
+ CVal cval;
+ cval.f = val;
+ song->setControllerVal(plugi->track(), plugi->controller(i), cval);
+ i++;
+ }
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void EffectRack::mouseDoubleClickEvent(QMouseEvent* event)
+ {
+ QListWidgetItem* it = itemAt(event->pos());
+ if (it || (track == 0)) {
+ QListWidget::mouseDoubleClickEvent(event);
+ return;
+ }
+ selectNew();
+ }
+
+//---------------------------------------------------------
+// selectNew
+//---------------------------------------------------------
+
+void EffectRack::selectNew()
+ {
+ Plugin* plugin = PluginDialog::getPlugin(this);
+ addPlugin(plugin);
+ song->update(SC_RACK);
+ }
+
+//---------------------------------------------------------
+// addPlugin
+//---------------------------------------------------------
+
+void EffectRack::addPlugin(Plugin* plugin)
+ {
+ if (plugin == 0)
+ return;
+ PluginI* plugi = new PluginI(track);
+ if (plugi->initPluginInstance(plugin, track->channels())) {
+ printf("cannot instantiate plugin <%s>\n",
+ plugin->name().toLatin1().data());
+ delete plugi;
+ }
+ else
+ audio->msgAddPlugin(track, -1, plugi, prefader);
+ }
+
diff --git a/muse_qt4_evolution/muse/rack.h b/muse_qt4_evolution/muse/rack.h
new file mode 100644
index 00000000..c468d8b9
--- /dev/null
+++ b/muse_qt4_evolution/muse/rack.h
@@ -0,0 +1,66 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __RACK_H__
+#define __RACK_H__
+
+#include <al/xml.h>
+
+class AudioTrack;
+class Plugin;
+
+//---------------------------------------------------------
+// EffectRack
+//---------------------------------------------------------
+
+class EffectRack : public QListWidget {
+ Q_OBJECT
+
+ bool prefader;
+ AudioTrack* track;
+
+ QPoint dragPos;
+
+ virtual void contextMenuEvent(QContextMenuEvent*);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ void selectNew();
+
+ void startDrag(int idx);
+ void initPlugin(QDomNode &node, int idx);
+ void addPlugin(Plugin* plugin);
+
+ private slots:
+ void doubleClicked(QListWidgetItem*);
+ void songChanged(int);
+
+ protected:
+ void dropEvent(QDropEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void dragMoveEvent(QDragMoveEvent *event);
+
+ public:
+ EffectRack(QWidget*, AudioTrack*, bool);
+ QSize sizeHint() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/revision.cpp b/muse_qt4_evolution/muse/revision.cpp
new file mode 100644
index 00000000..a1a32dca
--- /dev/null
+++ b/muse_qt4_evolution/muse/revision.cpp
@@ -0,0 +1,27 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2008 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+
+int revision =
+
+#include "revision.h"
+
+;
+
diff --git a/muse_qt4_evolution/muse/revision.h b/muse_qt4_evolution/muse/revision.h
new file mode 100644
index 00000000..51b40081
--- /dev/null
+++ b/muse_qt4_evolution/muse/revision.h
@@ -0,0 +1 @@
+345
diff --git a/muse_qt4_evolution/muse/route.cpp b/muse_qt4_evolution/muse/route.cpp
new file mode 100644
index 00000000..a529eb9c
--- /dev/null
+++ b/muse_qt4_evolution/muse/route.cpp
@@ -0,0 +1,417 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "route.h"
+#include "audio.h"
+#include "track.h"
+#include "synth.h"
+#include "audiodev.h"
+#include "al/xml.h"
+#include "auxplugin.h"
+
+//---------------------------------------------------------
+// RouteNode
+//---------------------------------------------------------
+
+RouteNode::RouteNode()
+ {
+ track = 0;
+ channel = -1;
+ type = TRACK;
+ }
+
+RouteNode::RouteNode(Port p, int ch, RouteNodeType t)
+ {
+ port = p;
+ channel = ch;
+ type = t;
+ }
+
+RouteNode::RouteNode(Port p, RouteNodeType t)
+ {
+ port = p;
+ channel = -1;
+ type = t;
+ }
+
+RouteNode::RouteNode(Track* tr)
+ {
+ track = tr;
+ channel = -1;
+ type = TRACK;
+ }
+
+RouteNode::RouteNode(AuxPluginIF* p)
+ {
+ plugin = p;
+ channel = -1;
+ type = AUXPLUGIN;
+ }
+
+RouteNode::RouteNode(Track* tr, int ch, RouteNodeType t)
+ {
+ track = tr;
+ channel = ch;
+ type = t;
+ }
+
+//---------------------------------------------------------
+// addRoute
+// return false, if route invalid or cannot be found
+//---------------------------------------------------------
+
+bool addRoute(const Route& r)
+ {
+// printf("addRoute %s.%d:<%s> %s.%d:<%s>\n",
+// r.src.tname(), r.src.channel, r.src.name().toLatin1().data(),
+// r.dst.tname(), r.dst.channel, r.dst.name().toLatin1().data());
+
+ if (r.src.type == RouteNode::AUDIOPORT || r.src.type == RouteNode::JACKMIDIPORT) {
+ if (r.dst.type != RouteNode::TRACK) {
+ fprintf(stderr, "addRoute: bad route 1\n");
+ return false;
+ }
+ if (r.dst.track->type() != Track::AUDIO_INPUT && r.dst.track->type() != Track::MIDI_IN) {
+ fprintf(stderr, "addRoute: bad route 2\n");
+ return false;
+ }
+ RouteList* inRoutes = r.dst.track->inRoutes();
+ if (inRoutes->indexOf(r) != -1) {
+ printf(" route already there 1\n");
+ return true;
+ }
+ inRoutes->push_back(r);
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT || r.dst.type == RouteNode::JACKMIDIPORT) {
+ if (r.src.type != RouteNode::TRACK) {
+ fprintf(stderr, "addRoute: bad route 3\n");
+ return false;
+ }
+ if (r.src.track->type() != Track::AUDIO_OUTPUT && r.src.track->type() != Track::MIDI_OUT) {
+ fprintf(stderr, "addRoute: bad route 4, tracktype %s\n", r.src.track->cname().toLatin1().data());
+ return false;
+ }
+ RouteList* outRoutes = r.src.track->outRoutes();
+ if (outRoutes->indexOf(r) != -1) {
+ printf(" route already there 2\n");
+ return true;
+ }
+ outRoutes->push_back(r);
+ }
+ else if (r.src.type == RouteNode::AUXPLUGIN) {
+ RouteList* inRoutes = r.dst.track->inRoutes();
+ inRoutes->insert(inRoutes->begin(), r);
+ }
+ else {
+ if (r.src.track->outRoutes()->indexOf(r) != -1) {
+ printf(" route already there 3\n");
+ return true;
+ }
+ r.src.track->outRoutes()->push_back(r);
+ r.dst.track->inRoutes()->push_back(r);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// removeRoute
+//---------------------------------------------------------
+
+void removeRoute(const Route& r)
+ {
+// printf("removeRoute %s.%d:<%s> %s.%d:<%s>\n",
+// r.src.tname(), r.src.channel, r.src.name().toLatin1().data(),
+// r.dst.tname(), r.dst.channel, r.dst.name().toLatin1().data());
+ if (r.src.type == RouteNode::AUDIOPORT || r.src.type == RouteNode::JACKMIDIPORT) {
+ if (r.dst.type != RouteNode::TRACK) {
+ fprintf(stderr, "removeRoute: bad route 1\n");
+ goto error;
+ }
+ if (r.dst.track->type() != Track::AUDIO_INPUT
+ && r.dst.track->type() != Track::AUDIO_SOFTSYNTH
+ && r.dst.track->type() != Track::MIDI_IN) {
+ fprintf(stderr, "removeRoute: bad route 2\n");
+ goto error;
+ }
+ RouteList* inRoutes = r.dst.track->inRoutes();
+ iRoute i;
+ for (i = inRoutes->begin(); i != inRoutes->end(); ++i) {
+ if (*i == r) {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT || r.dst.type == RouteNode::JACKMIDIPORT) {
+ if (r.src.type != RouteNode::TRACK) {
+ fprintf(stderr, "removeRoute: bad route 3\n");
+ goto error;
+ }
+ if (r.src.track->type() != Track::AUDIO_OUTPUT && r.src.track->type() != Track::MIDI_OUT) {
+ fprintf(stderr, "removeRoute: bad route 4\n");
+ goto error;
+ }
+ RouteList* outRoutes = r.src.track->outRoutes();
+ iRoute i;
+ for (i = outRoutes->begin(); i != outRoutes->end(); ++i) {
+ if (*i == r) {
+ outRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else if (r.src.type == RouteNode::AUXPLUGIN) {
+ if (r.dst.type != RouteNode::TRACK) {
+ fprintf(stderr, "removeRoute: bad route 5\n");
+ goto error;
+ }
+ RouteList* inRoutes = r.dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i) {
+ if (*i == r) {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else {
+ RouteList* outRoutes = r.src.track->outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i) {
+ if (*i == r) {
+ outRoutes->erase(i);
+ break;
+ }
+ }
+ RouteList* inRoutes = r.dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i) {
+ if (*i == r) {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ return;
+error:
+ printf("removeRoute %s.%d:<%s> %s.%d:<%s>\n",
+ r.src.tname(), r.src.channel, r.src.name().toLatin1().data(),
+ r.dst.tname(), r.dst.channel, r.dst.name().toLatin1().data());
+ abort();
+ }
+
+//---------------------------------------------------------
+// track2name
+// create string name representation for audio node
+//---------------------------------------------------------
+
+static QString track2name(const Track* n)
+ {
+ return n ? n->name() : "None";
+ }
+
+//---------------------------------------------------------
+// name
+// create string name representation for audio node
+//---------------------------------------------------------
+
+QString RouteNode::name() const
+ {
+ switch (type) {
+ case TRACK:
+ return track2name(track);
+ case AUDIOPORT:
+ case JACKMIDIPORT:
+ if (port.isZero())
+ return QString("0");
+ return audioDriver->portName(port);
+ case AUXPLUGIN:
+ return plugin->pluginInstance()->name();
+ }
+ return QString("?");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Song::readRoute(QDomNode n)
+ {
+ RouteNode s, d;
+ for (QDomNode node = n.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "src")
+ s.read(node);
+ else if (e.tagName() == "dst")
+ d.read(node);
+ else
+ printf("MusE:readRoute: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ if (!s.isValid()) { // source port not found?
+ printf("Song::readRoute(): invalid source port: %s.%d:<%s> - %s.%d:<%s>\n",
+ s.tname(), s.channel, s.name().toLatin1().data(),
+ d.tname(), d.channel, d.name().toLatin1().data());
+ return;
+ }
+ if (!d.isValid()) { // destination port not found?
+ printf("Song::readRoute(): invalid destination port: %s.%d:<%s> - %s.%d:<%s>\n",
+ s.tname(), s.channel, s.name().toLatin1().data(),
+ d.tname(), d.channel, d.name().toLatin1().data());
+ return;
+ }
+ Route r(s, d);
+ r.disconnected = true;
+ addRoute(r);
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void RouteNode::dump() const
+ {
+ printf("RouteNode %p dump: <%s> channel %d, type %s\n",
+ track, name().toLatin1().data(), channel, tname());
+ }
+
+//---------------------------------------------------------
+// operator==
+//---------------------------------------------------------
+
+bool RouteNode::operator==(const RouteNode& a) const
+ {
+ if (type != a.type)
+ return false;
+ switch(type) {
+ case TRACK:
+ return (channel == a.channel) && (track == a.track);
+ case JACKMIDIPORT:
+ case AUDIOPORT:
+ return port == a.port;
+ case AUXPLUGIN:
+ return plugin == a.plugin;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// tname
+//---------------------------------------------------------
+
+const char* RouteNode::tname(RouteNodeType t)
+ {
+ static const char* names[] = {
+ "TRACK", "AUDIOPORT", "JACKMIDIPORT", "AUX"
+ };
+ if (t > (int)(sizeof(names)/sizeof(*names)))
+ return "???";
+ return names[t];
+ }
+
+const char* RouteNode::tname() const
+ {
+ return tname(type);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void RouteNode::write(Xml& xml, const char* label) const
+ {
+ if (channel != -1)
+ xml.tagE(QString("%1 type=\"%2\" channel=\"%3\" name=\"%4\"")
+ .arg(label).arg(tname()).arg(channel + 1).arg(name()));
+ else
+ xml.tagE(QString("%1 type=\"%2\" name=\"%3\"")
+ .arg(label).arg(tname()).arg(name()));
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void RouteNode::read(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ channel = e.attribute("channel","0").toInt() - 1;
+ QString s = e.attribute("name");
+ QString st = e.attribute("type", "TRACK");
+
+ if (st == "TRACK") {
+ type = RouteNode::TRACK;
+ track = 0;
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ Track* t = *i;
+ if (t->name() == s) {
+ track = t;
+ break;
+ }
+ }
+ if (track == 0)
+ printf("Route::read(): track <%s> not found\n", s.toLatin1().data());
+ }
+ else if (st == "AUDIOPORT") {
+ type = RouteNode::AUDIOPORT;
+ port = audioDriver->findPort(s);
+ if (port.isZero())
+ printf("Route::read(): audioport <%s> not found\n", s.toLatin1().data());
+ }
+ else if (st == "JACKMIDIPORT") {
+ type = RouteNode::JACKMIDIPORT;
+ port = audioDriver->findPort(s);
+ if (port.isZero())
+ printf("Route::read(): jack midiport <%s> not found\n", s.toLatin1().data());
+ }
+ else if (st == "AUX") {
+ type = RouteNode::AUXPLUGIN;
+ plugin = 0;
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->type() == Track::WAVE || (*i)->type() == Track::AUDIO_INPUT) {
+ AudioTrack* t = (AudioTrack*)*i;
+ QList<AuxPluginIF*> pl = t->preAux();
+ foreach(AuxPluginIF* p, pl) {
+ if (p->pluginInstance()->name() == s) {
+ plugin = p;
+ break;
+ }
+ }
+ if (plugin)
+ break;
+ pl = t->postAux();
+ foreach(AuxPluginIF* p, pl) {
+ if (p->pluginInstance()->name() == s) {
+ plugin = p;
+ break;
+ }
+ }
+ if (plugin)
+ break;
+ }
+ }
+ if (plugin == 0)
+ printf("Route::read(): plugin <%s> not found\n", s.toLatin1().data());
+ }
+ else {
+ printf("Route::read(): unknown type <%s>\n", st.toLatin1().data());
+ type = RouteNode::TRACK;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/route.h b/muse_qt4_evolution/muse/route.h
new file mode 100644
index 00000000..386ea636
--- /dev/null
+++ b/muse_qt4_evolution/muse/route.h
@@ -0,0 +1,108 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ROUTE_H__
+#define __ROUTE_H__
+
+class Track;
+class AuxPluginIF;
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+#include "driver.h"
+
+//---------------------------------------------------------
+// RouteNode
+// this describes one endpoint of a route
+// Track
+// Track/Channel
+// AuxPlugin
+// Port
+//---------------------------------------------------------
+
+struct RouteNode {
+ enum RouteNodeType {
+ TRACK, AUDIOPORT, JACKMIDIPORT, AUXPLUGIN
+ };
+
+ Port port;
+ union {
+ Track* track;
+ AuxPluginIF* plugin;
+ };
+ int channel;
+ RouteNodeType type;
+
+ RouteNode();
+ RouteNode(Port, int, RouteNodeType);
+ RouteNode(Port, RouteNodeType);
+ RouteNode(Track*);
+ RouteNode(Track*, int, RouteNodeType t = TRACK);
+ RouteNode(AuxPluginIF*);
+
+ bool isPortType() const {
+ return type==AUDIOPORT || type == JACKMIDIPORT;
+ }
+ bool isValid() const {
+ return (isPortType() && !port.isZero())
+ || ((type == TRACK) && track)
+ || ((type == AUXPLUGIN) && plugin);
+ }
+ QString name() const;
+ void read(QDomNode node);
+ void write(Xml&, const char* name) const;
+
+ bool operator==(const RouteNode& a) const;
+ void dump() const;
+ const char* tname() const;
+ static const char* tname(RouteNodeType);
+ };
+
+//---------------------------------------------------------
+// Route
+//---------------------------------------------------------
+
+struct Route {
+ RouteNode src;
+ RouteNode dst;
+ bool disconnected; // if true, do not remove route in graphChanged()
+ // or removeConnection()
+
+ Route() { disconnected = false;}
+ Route(const RouteNode& s, const RouteNode& d) : src(s), dst(d) { disconnected = false;}
+ bool operator==(const Route& a) const {
+ return (src==a.src) && (dst==a.dst);
+ }
+ };
+
+Q_DECLARE_METATYPE(struct Route);
+
+typedef QList<Route> RouteList;
+typedef RouteList::iterator iRoute;
+typedef RouteList::const_iterator ciRoute;
+
+extern bool addRoute(const Route&);
+extern void removeRoute(const Route&);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/routedialog.cpp b/muse_qt4_evolution/muse/routedialog.cpp
new file mode 100644
index 00000000..a2f3b584
--- /dev/null
+++ b/muse_qt4_evolution/muse/routedialog.cpp
@@ -0,0 +1,196 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "routedialog.h"
+#include "track.h"
+#include "song.h"
+#include "audio.h"
+#include "jackaudio.h"
+
+//---------------------------------------------------------
+// RouteDialog
+//---------------------------------------------------------
+
+RouteDialog::RouteDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ connect(routeList, SIGNAL(selectionChanged()), SLOT(routeSelectionChanged()));
+ connect(newSrcList, SIGNAL(selectionChanged()), SLOT(srcSelectionChanged()));
+ connect(newDstList, SIGNAL(selectionChanged()), SLOT(dstSelectionChanged()));
+ connect(removeButton, SIGNAL(clicked()), SLOT(removeRoute()));
+ connect(connectButton, SIGNAL(clicked()), SLOT(addRoute()));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ routingChanged();
+ }
+
+//---------------------------------------------------------
+// routingChanged
+//---------------------------------------------------------
+
+void RouteDialog::routingChanged()
+ {
+ //---------------------------------------------------
+ // populate lists
+ //---------------------------------------------------
+
+ routeList->clear();
+ newSrcList->clear();
+ newDstList->clear();
+
+#if 0 //TODO3
+ TrackList* tl = song->tracks();
+ for (ciTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ Track* track = *i;
+ if (track->type() == Track::AUDIO_INPUT) {
+ for (int channel = 0; channel < track->channels(); ++channel)
+ newDstList->insertItem(Route(track, channel).name());
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r) {
+ Route dst(track->name(), r->channel, Route::AUDIOPORT);
+ new QListWidgetItem(routeList, r->name(), dst.name());
+ }
+ }
+ else
+ newDstList->insertItem(Route(track, -1).name());
+ if (track->type() == Track::AUDIO_OUTPUT) {
+ for (int channel = 0; channel < track->channels(); ++channel) {
+ Route r(track, channel);
+ newSrcList->insertItem(r.name());
+ }
+ }
+ else
+ newSrcList->insertItem(Route(track, -1).name());
+
+ const RouteList* rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r) {
+ QString src(track->name());
+ if (track->type() == Track::AUDIO_OUTPUT) {
+ Route s(src, r->channel, Route::AUDIOPORT);
+ src = s.name();
+ }
+ new QListWidgetItem(routeList, src, r->name());
+ }
+ }
+
+ std::list<QString> sl = audioDriver->outputPorts();
+ for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i)
+ newSrcList->insertItem(*i);
+ sl = audioDriver->inputPorts();
+ for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i)
+ newDstList->insertItem(*i);
+#endif
+ routeSelectionChanged(); // init remove button
+ srcSelectionChanged(); // init select button
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void RouteDialog::songChanged(int v)
+ {
+ if (v & (SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_ROUTE)) {
+ routingChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// routeSelectionChanged
+//---------------------------------------------------------
+
+void RouteDialog::routeSelectionChanged()
+ {
+//TD QListWidgetItem* item = routeList->selectedItem();
+// removeButton->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// removeRoute
+//---------------------------------------------------------
+
+void RouteDialog::removeRoute()
+ {
+#if 0 //TD
+ QListWidgetItem* item = routeList->selectedItem();
+ if (item == 0)
+ return;
+ audio->msgRemoveRoute(Route(item->text(0), -1, Route::TRACK), Route(item->text(1), -1, Route::AUDIOPORT));
+ delete item;
+#endif
+ }
+
+//---------------------------------------------------------
+// addRoute
+//---------------------------------------------------------
+
+void RouteDialog::addRoute()
+ {
+#if 0 //TD
+ QListWidgetItem* srcItem = newSrcList->selectedItem();
+ QListWidgetItem* dstItem = newDstList->selectedItem();
+ if (srcItem == 0 || dstItem == 0)
+ return;
+ audio->msgAddRoute(Route(srcItem->text(), -1, Route::TRACK), Route(dstItem->text(), -1, Route::AUDIOPORT));
+ new QListWidgetItem(routeList, srcItem->text(), dstItem->text());
+#endif
+ }
+
+//---------------------------------------------------------
+// srcSelectionChanged
+//---------------------------------------------------------
+
+void RouteDialog::srcSelectionChanged()
+ {
+#if 0 //TD
+ QListWidgetItem* srcItem = newSrcList->selectedItem();
+ QListWidgetItem* dstItem = newDstList->selectedItem();
+ connectButton->setEnabled((srcItem != 0)
+ && (dstItem != 0)
+ && checkRoute(srcItem->text(), dstItem->text()));
+#endif
+ }
+
+//---------------------------------------------------------
+// dstSelectionChanged
+//---------------------------------------------------------
+
+void RouteDialog::dstSelectionChanged()
+ {
+#if 0 //TD
+ QListWidgetItem* dstItem = newDstList->selectedItem();
+ QListWidgetItem* srcItem = newSrcList->selectedItem();
+ connectButton->setEnabled((srcItem != 0)
+ && (dstItem != 0)
+ && checkRoute(srcItem->text(), dstItem->text()));
+#endif
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void RouteDialog::closeEvent(QCloseEvent* e)
+ {
+ emit closed();
+ e->accept();
+ }
diff --git a/muse_qt4_evolution/muse/routedialog.h b/muse_qt4_evolution/muse/routedialog.h
new file mode 100644
index 00000000..2bcbf471
--- /dev/null
+++ b/muse_qt4_evolution/muse/routedialog.h
@@ -0,0 +1,53 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ROUTEDIALOG_H__
+#define __ROUTEDIALOG_H__
+
+#include "ui_routedialog.h"
+
+//---------------------------------------------------------
+// RouteDialog
+//---------------------------------------------------------
+
+class RouteDialog : public QDialog, public Ui::RouteDialogBase {
+ Q_OBJECT
+
+ virtual void closeEvent(QCloseEvent*);
+ void routingChanged();
+
+ private slots:
+ void routeSelectionChanged();
+ void removeRoute();
+ void addRoute();
+ void srcSelectionChanged();
+ void dstSelectionChanged();
+ void songChanged(int);
+
+ signals:
+ void closed();
+
+ public:
+ RouteDialog(QWidget* parent);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/routedialog.ui b/muse_qt4_evolution/muse/routedialog.ui
new file mode 100644
index 00000000..be34c451
--- /dev/null
+++ b/muse_qt4_evolution/muse/routedialog.ui
@@ -0,0 +1,170 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>RouteDialogBase</class>
+ <widget class="QDialog" name="RouteDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>316</width>
+ <height>383</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Routing</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>4</number>
+ </property>
+ <property name="spacing" >
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox4" >
+ <property name="title" >
+ <string>Add Route</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>4</number>
+ </property>
+ <property name="spacing" >
+ <number>4</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Source:</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="newSrcList" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Destination:</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="newDstList" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QToolButton" name="connectButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>connect source to destination</string>
+ </property>
+ <property name="text" >
+ <string>Connect</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox1" >
+ <property name="title" >
+ <string>Current Routes</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>4</number>
+ </property>
+ <property name="spacing" >
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="routeList" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="removeButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>remove selected route</string>
+ </property>
+ <property name="text" >
+ <string>Remove</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/selectfilter.h b/muse_qt4_evolution/muse/selectfilter.h
new file mode 100644
index 00000000..a28e6947
--- /dev/null
+++ b/muse_qt4_evolution/muse/selectfilter.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SELECTFILTER_H__
+#define __SELECTFILTER_H__
+
+//---------------------------------------------------------
+// SelectFilter
+//---------------------------------------------------------
+
+class SelectFilter :public QObject
+ {
+ QWidget* w;
+ Track* t;
+
+ protected:
+ bool eventFilter(QObject*, QEvent* ev)
+ {
+ if (ev->type() == QEvent::MouseButtonPress) {
+ w->setFocus();
+ song->selectTrack(t);
+ }
+ return false;
+ }
+ public:
+ SelectFilter(QObject* parent, QWidget* widget, Track* track)
+ : QObject(parent) {
+ w = widget;
+ t = track;
+ }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/seqmsg.cpp b/muse_qt4_evolution/muse/seqmsg.cpp
new file mode 100644
index 00000000..cbd0d0dd
--- /dev/null
+++ b/muse_qt4_evolution/muse/seqmsg.cpp
@@ -0,0 +1,621 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "instruments/minstrument.h"
+#include "muse.h"
+#include "mixer.h"
+#include "al/tempo.h"
+#include "al/sig.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "audio.h"
+#include "arranger.h"
+#include "plugin.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "midiplugin.h"
+#include "part.h"
+#include "midioutport.h"
+#include "midiinport.h"
+
+//---------------------------------------------------------
+// sendMsg
+//---------------------------------------------------------
+
+void Audio::sendMsg(AudioMsg* m)
+ {
+ if (audioState == AUDIO_RUNNING) {
+ msg = m;
+ char c;
+ int rv = read(fromThreadFdr, &c, 1);
+ if (rv != 1)
+ perror("Audio: read pipe failed");
+ }
+ else {
+ // if audio is not running (during initialization)
+ // process commands immediatly
+ msg = m;
+ processMsg();
+ }
+ }
+
+//---------------------------------------------------------
+// sendMessage
+// send request from gui to sequencer
+// wait until request is processed
+//---------------------------------------------------------
+
+bool Audio::sendMessage(AudioMsg* m, bool doUndo)
+ {
+ if (doUndo)
+ song->startUndo();
+ sendMsg(m);
+ if (doUndo)
+ song->endUndo(0); // song->endMsgCmd();
+ return false;
+ }
+
+//---------------------------------------------------------
+// msgRoute
+//---------------------------------------------------------
+
+extern bool mops;
+
+void Audio::msgRoute(bool add, Route r)
+ {
+ if (add)
+ msgAddRoute(r);
+ else
+ msgRemoveRoute(r);
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// msgRemoveRoute
+//---------------------------------------------------------
+
+void Audio::msgRemoveRoute(Route r)
+ {
+ if (r.src.type == RouteNode::AUDIOPORT) {
+ AudioInput* ai = (AudioInput*)(r.dst.track);
+ audioDriver->disconnect(r.src.port, ai->jackPort(r.dst.channel));
+ }
+ else if (r.src.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->disconnect(r.src.port, ((MidiInPort*)r.dst.track)->jackPort());
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT) {
+ AudioOutput* ai = (AudioOutput*)(r.src.track);
+ audioDriver->disconnect(ai->jackPort(r.src.channel), r.dst.port);
+ }
+ else if (r.dst.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->disconnect(((MidiOutPort*)r.src.track)->jackPort(), r.dst.port);
+ }
+ msgRemoveRoute1(r);
+ }
+
+//---------------------------------------------------------
+// msgRemoveRoute1
+//---------------------------------------------------------
+
+void Audio::msgRemoveRoute1(Route r)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ROUTEREMOVE;
+ msg.route = r;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgAddRoute
+//---------------------------------------------------------
+
+void Audio::msgAddRoute(Route r)
+ {
+ msgAddRoute1(r);
+ if (r.src.type == RouteNode::AUDIOPORT) {
+ AudioInput* ai = (AudioInput*)r.dst.track;
+ audioDriver->connect(r.src.port, ai->jackPort(r.dst.channel));
+ }
+ else if (r.src.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->connect(r.src.port, ((MidiInPort*)r.dst.track)->jackPort());
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT) {
+ AudioOutput* ao = (AudioOutput*)r.src.track;
+printf("msgAddRoute to AUDIPORT %p\n", ao);
+ audioDriver->connect(ao->jackPort(r.src.channel), r.dst.port);
+ }
+ else if (r.dst.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->connect(((MidiOutPort*)r.src.track)->jackPort(), r.dst.port);
+ }
+ }
+
+//---------------------------------------------------------
+// msgAddRoute1
+//---------------------------------------------------------
+
+void Audio::msgAddRoute1(Route r)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ROUTEADD;
+ msg.route = r;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgAddMidiPlugin
+//---------------------------------------------------------
+
+void Audio::msgAddMidiPlugin(MidiTrackBase* track, int idx, MidiPluginI* plugin)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ADDMIDIPLUGIN;
+ msg.track = track;
+ msg.ival = idx;
+ msg.mplugin = plugin;
+ MidiPluginI* oldPlugin = plugin ? 0 : track->plugin(idx);
+ sendMsg(&msg);
+ if (oldPlugin)
+ delete oldPlugin;
+ }
+
+//---------------------------------------------------------
+// msgAddPlugin
+//---------------------------------------------------------
+
+void Audio::msgAddPlugin(AudioTrack* track, int idx, PluginI* plugin,
+ bool prefader)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ADDPLUGIN;
+ msg.track = track;
+ msg.ival = idx;
+ msg.iival = prefader;
+ msg.plugin = plugin;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetChannels
+//---------------------------------------------------------
+
+void Audio::msgSetChannels(AudioTrack* node, int n)
+ {
+ if (n == node->channels())
+ return;
+ QString name = node->name();
+ int mc = std::max(n, node->channels());
+
+ if (!name.isEmpty()) {
+ if (node->type() == Track::AUDIO_INPUT) {
+ AudioInput* ai = (AudioInput*)node;
+ for (int i = 0; i < mc; ++i) {
+ if (i < n && ai->jackPort(i).isZero()) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", name.toLatin1().data(), i);
+ ai->setJackPort(audioDriver->registerInPort(QString(buffer), false), i);
+ }
+ else if ((i >= n) && ai->jackPort(i).isZero()) {
+ RouteList* ir = node->inRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii) {
+ Route r = *ii;
+ if ((r.src.type == RouteNode::AUDIOPORT) && (r.src.channel == i)) {
+ msgRemoveRoute(r);
+ break;
+ }
+ }
+ audioDriver->unregisterPort(ai->jackPort(i));
+ ai->setJackPort(Port(), i);
+ }
+ }
+ }
+ else if (node->type() == Track::AUDIO_OUTPUT) {
+ AudioOutput* ao = (AudioOutput*)node;
+ for (int i = 0; i < mc; ++i) {
+ Port port = ao->jackPort(i);
+ if (i < n && port.isZero()) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", name.toLatin1().data(), i);
+ ao->setJackPort(audioDriver->registerOutPort(QString(buffer), false), i);
+ }
+ else if (i >= n && !port.isZero()) {
+ RouteList* ir = node->outRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii) {
+ Route r = *ii;
+ if ((r.src.type == RouteNode::AUDIOPORT) && (r.src.channel == i)) {
+ msgRemoveRoute(r);
+ break;
+ }
+ }
+ audioDriver->unregisterPort(ao->jackPort(i));
+ ao->setJackPort(Port(), i);
+ }
+ }
+ }
+ }
+ AudioMsg msg;
+ msg.id = AUDIO_SET_CHANNELS;
+ msg.track = node;
+ msg.ival = n;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetSegSize
+//---------------------------------------------------------
+
+void Audio::msgSetSegSize(int bs, int sr)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_SET_SEG_SIZE;
+ msg.ival = bs;
+ msg.iival = sr;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSeek
+//---------------------------------------------------------
+
+void Audio::msgSeek(const Pos& pos)
+ {
+ audioDriver->seekTransport(pos.frame());
+ }
+
+//---------------------------------------------------------
+// msgUndo
+//---------------------------------------------------------
+
+void Audio::msgUndo()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_UNDO;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgRedo
+//---------------------------------------------------------
+
+void Audio::msgRedo()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REDO;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgPlay
+//---------------------------------------------------------
+
+void Audio::msgPlay(bool val)
+ {
+ if (val) {
+ if (audioDriver)
+ audioDriver->startTransport();
+ }
+ else
+ if (audioDriver)
+ audioDriver->stopTransport();
+ }
+
+//---------------------------------------------------------
+// msgRemoveTrack
+//---------------------------------------------------------
+
+void Audio::msgRemoveTrack(Track* track)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_TRACK;
+ msg.track = track;
+ sendMessage(&msg, true);
+ }
+
+//---------------------------------------------------------
+// msgRemoveTracks
+// remove all selected tracks
+//---------------------------------------------------------
+
+void Audio::msgRemoveTracks()
+ {
+ TrackList tl;
+ TrackList* tl2 = song->tracks();
+ for (iTrack t = tl2->begin(); t != tl2->end(); ++t) {
+ if ((*t)->selected())
+ tl.push_back(*t);
+ }
+ for (iTrack t = tl.begin(); t != tl.end(); ++t) {
+ Track* track = *t;
+ int idx = song->tracks()->indexOf(track);
+ song->undoOp(UndoOp::DeleteTrack, idx, track);
+ song->removeTrack1(track);
+ msgRemoveTrack(track);
+ song->removeTrack3(track);
+ }
+ }
+
+//---------------------------------------------------------
+// msgMoveTrack
+//---------------------------------------------------------
+
+void Audio::msgMoveTrack(Track* src, Track* dst)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_MOVE_TRACK;
+ msg.p1 = src;
+ msg.p2 = dst;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgAddEvent
+//---------------------------------------------------------
+
+void Audio::msgAddEvent(const Event& event, Part* part, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_EVENT;
+ msg.ev1 = event;
+ msg.p2 = part;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgAddEvents
+//---------------------------------------------------------
+
+void Audio::msgAddEvents(QList<Event>* el, Part* part)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_EVENTS;
+ msg.el = el;
+ msg.p2 = part;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgDeleteEvent
+//---------------------------------------------------------
+
+void Audio::msgDeleteEvent(const Event& event, Part* part, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_EVENT;
+ msg.ev1 = event;
+ msg.p2 = part;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgChangeEvent
+//---------------------------------------------------------
+
+void Audio::msgChangeEvent(const Event& oe, const Event& ne, Part* part, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_EVENT;
+ msg.ev1 = oe;
+ msg.ev2 = ne;
+ msg.p3 = part;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgAddTempo
+//---------------------------------------------------------
+
+void Audio::msgAddTempo(int tick, int tempo, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_TEMPO;
+ msg.a = tick;
+ msg.b = tempo;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgSetTempo
+//---------------------------------------------------------
+
+void Audio::msgSetTempo(int tick, int tempo, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SET_TEMPO;
+ msg.a = tick;
+ msg.b = tempo;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgSetGlobalTempo
+//---------------------------------------------------------
+
+void Audio::msgSetGlobalTempo(int val)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SET_GLOBAL_TEMPO;
+ msg.a = val;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgDeleteTempo
+//---------------------------------------------------------
+
+void Audio::msgDeleteTempo(int tick, int tempo, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_TEMPO;
+ msg.a = tick;
+ msg.b = tempo;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgAddSig
+//---------------------------------------------------------
+
+void Audio::msgAddSig(int tick, const AL::TimeSignature& sig, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_SIG;
+ msg.a = tick;
+ msg.b = sig.z;
+ msg.c = sig.n;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgRemoveSig
+//! sends remove tempo signature message
+//---------------------------------------------------------
+
+void Audio::msgRemoveSig(int tick, int z, int n, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_SIG;
+ msg.a = tick;
+ msg.b = z;
+ msg.c = n;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgResetMidiDevices
+//---------------------------------------------------------
+
+void Audio::msgResetMidiDevices()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_RESET_DEVICES;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgInitMidiDevices
+//---------------------------------------------------------
+
+void Audio::msgInitMidiDevices()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_INIT_DEVICES;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// panic
+//---------------------------------------------------------
+
+void Audio::msgPanic()
+ {
+ MidiEvent ev1(0, 0, ME_CONTROLLER, CTRL_ALL_SOUNDS_OFF, 0);
+ MidiEvent ev2(0, 0, ME_CONTROLLER, CTRL_RESET_ALL_CTRL, 0);
+
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i) {
+ (*i)->playMidiEvent(&ev1);
+ (*i)->playMidiEvent(&ev2);
+ }
+ }
+
+//---------------------------------------------------------
+// localOff
+//---------------------------------------------------------
+
+void Audio::msgLocalOff()
+ {
+ MidiEvent ev1(0, 0, ME_CONTROLLER, CTRL_LOCAL_OFF, 0);
+
+ MidiTrackList* cl = song->midis();
+ for (iMidiTrack i = cl->begin(); i != cl->end(); ++i)
+ (*i)->playMidiEvent(&ev1);
+ }
+
+//---------------------------------------------------------
+// msgBounce
+// start bounce operation
+//---------------------------------------------------------
+
+void Audio::msgBounce()
+ {
+ _bounce = true;
+ audioDriver->seekTransport(song->lPos().frame());
+ }
+
+//---------------------------------------------------------
+// msgIdle
+//---------------------------------------------------------
+
+void Audio::msgIdle(bool on)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_IDLE;
+ msg.a = on;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgAddController
+// add controller value
+//---------------------------------------------------------
+
+void Audio::msgAddController(Track* track, int id, unsigned time, CVal val)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_CTRL;
+ msg.track = track;
+ msg.a = id;
+ msg.time = time;
+ msg.cval1 = val;
+ song->startUndo();
+ song->undoOp(UndoOp::AddCtrl, track, id, time, val, CVal());
+ sendMessage(&msg, false);
+ song->endUndo(0);
+ }
+
+//---------------------------------------------------------
+// msgRemoveController
+//---------------------------------------------------------
+
+void Audio::msgRemoveController(Track* track, int id, unsigned time)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_CTRL;
+ msg.track = track;
+ msg.a = id;
+ msg.time = time;
+ song->startUndo();
+ CVal a, b;
+ song->undoOp(UndoOp::RemoveCtrl, track, id, time, a, b);
+ sendMessage(&msg, false);
+ song->endUndo(0);
+ }
+
+//---------------------------------------------------------
+// msgSetRtc
+//---------------------------------------------------------
+
+void Audio::msgSetRtc()
+ {
+ AudioMsg msg;
+ msg.id = MS_SET_RTC;
+ sendMsg(&msg);
+ }
+
diff --git a/muse_qt4_evolution/muse/shortcuts.cpp b/muse_qt4_evolution/muse/shortcuts.cpp
new file mode 100644
index 00000000..9a0d6a7f
--- /dev/null
+++ b/muse_qt4_evolution/muse/shortcuts.cpp
@@ -0,0 +1,1169 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Description:
+// Definition of shortcuts used in the application
+//
+// Copyright (C) 2003 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "shortcuts.h"
+#include "widgets/shortcutconfig.h"
+#include "al/xml.h"
+#include "muse.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// shortcut_category
+// These need to be members of ShortcutConfig, otherwise
+// tr() won't play:
+//---------------------------------------------------------
+
+const shortcut_cg ShortcutConfig::shortcut_category[] = {
+ { GLOBAL_SHRT, QT_TR_NOOP("Global") },
+ { ARRANG_SHRT, QT_TR_NOOP("Arranger") },
+ { PROLL_SHRT, QT_TR_NOOP("Pianoroll") },
+ { DEDIT_SHRT, QT_TR_NOOP("Drumeditor") },
+ { LEDIT_SHRT, QT_TR_NOOP("List editor") },
+ { LMEDIT_SHRT, QT_TR_NOOP("List Mastertrack") },
+ { WAVE_SHRT, QT_TR_NOOP("Wave editor") },
+ { ALL_SHRT , QT_TR_NOOP("All categories") }
+ };
+
+QMap<QString, Shortcut*> shortcuts;
+
+Shortcut MuseApplication::sc[] = {
+ Shortcut(
+ "start",
+ QT_TR_NOOP("Transport: Goto Start"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Goto Start"),
+ QT_TR_NOOP("rewind to start position"),
+ ":/xpm/start.xpm"
+ ),
+ Shortcut(
+ "toggle_loop",
+ QT_TR_NOOP("Transport: Toggle Loop section"),
+ GLOBAL_SHRT,
+ 0, // QKeySequence(Qt::Key_Slash),
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Loop"),
+ QT_TR_NOOP("loop between left mark and right mark"),
+ ":/xpm/loop.xpm"
+ ),
+ Shortcut(
+ "play",
+ QT_TR_NOOP("Transport: Start playback from current location"),
+ GLOBAL_SHRT,
+ QKeySequence(Qt::Key_Enter),
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Play"),
+ QT_TR_NOOP("start sequencer play"),
+ ":/xpm/play.xpm"
+ ),
+ Shortcut(
+ "play_toggle",
+ QT_TR_NOOP("Transport: Play, Stop"),
+ GLOBAL_SHRT,
+ Qt::Key_Space,
+ Qt::ApplicationShortcut
+ ),
+ Shortcut(
+ "stop",
+ QT_TR_NOOP("Transport: Stop Playback"),
+ GLOBAL_SHRT,
+ Qt::Key_Insert,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Stop"),
+ QT_TR_NOOP("stop sequencer"),
+ ":/xpm/stop.xpm"
+ ),
+ Shortcut(
+ "goto_left",
+ QT_TR_NOOP("Transport: Goto left marker"),
+ GLOBAL_SHRT,
+ Qt::Key_End
+ ),
+ Shortcut(
+ "goto_right",
+ QT_TR_NOOP("Transport: Goto right marker"),
+ GLOBAL_SHRT,
+ Qt::Key_PageDown
+ ),
+ Shortcut(
+ "toggle_metro",
+ QT_TR_NOOP("Transport: Toggle metronome"),
+ GLOBAL_SHRT,
+ QKeySequence(Qt::Key_C)
+ ),
+ Shortcut(
+ "toggle_rec",
+ QT_TR_NOOP("Transport: Toggle Record"),
+ GLOBAL_SHRT,
+ Qt::Key_Asterisk,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Record"),
+ QT_TR_NOOP("to record press record and then play"),
+ ":/xpm/recordOn.svg",
+ ":/xpm/recordOff.svg"
+ ),
+ Shortcut(
+ "punchin",
+ QT_TR_NOOP("Transport: Punch In"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Punchin"),
+ QT_TR_NOOP("record starts at left mark"),
+ ":/xpm/punchin.xpm"
+ ),
+ Shortcut(
+ "punchout",
+ QT_TR_NOOP("Transport: Punch Out"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Punchout"),
+ QT_TR_NOOP("record stops at right mark"),
+ ":/xpm/punchout.xpm"
+ ),
+ Shortcut(
+ "rewind",
+ QT_TR_NOOP("Transport: Rewind"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("rewind"),
+ QT_TR_NOOP("rewind current position"),
+ ":/xpm/frewind.xpm"
+ ),
+ Shortcut(
+ "forward",
+ QT_TR_NOOP("Transport: Forward"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("forward"),
+ QT_TR_NOOP("move current position"),
+ ":/xpm/fforward.xpm"
+ ),
+ Shortcut(
+ "panic",
+ QT_TR_NOOP("Panic"),
+ GLOBAL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Panic"),
+ QT_TR_NOOP("send note off to all midi channels"),
+ ":/xpm/panic.xpm"
+ ),
+ Shortcut(
+ "undo",
+ QT_TR_NOOP("Edit: Undo"),
+ INVIS_SHRT,
+ Qt::CTRL + Qt::Key_Z,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("undo"),
+ QT_TR_NOOP("undo last change to song"),
+ ":/xpm/undo.xpm"
+ ),
+ Shortcut(
+ "redo",
+ QT_TR_NOOP("Edit: Redo"),
+ INVIS_SHRT,
+ Qt::CTRL + Qt::Key_Y,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("redo"),
+ QT_TR_NOOP("redo last undo"),
+ ":/xpm/redo.xpm"
+ ),
+ Shortcut(
+ "cut",
+ QT_TR_NOOP("Edit: Cut" ),
+ INVIS_SHRT,
+ Qt::CTRL + Qt::Key_X,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Cut"),
+ QT_TR_NOOP("Cut"),
+ ":/xpm/editcut.xpm"
+ ),
+ Shortcut(
+ "copy",
+ QT_TR_NOOP("Edit: Copy"),
+ INVIS_SHRT,
+ Qt::CTRL + Qt::Key_C,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Copy"),
+ QT_TR_NOOP("Copy"),
+ ":/xpm/editcopy.xpm"
+ ),
+ Shortcut(
+ "paste",
+ QT_TR_NOOP("Edit: Paste,"),
+ INVIS_SHRT,
+ Qt::CTRL + Qt::Key_V,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Paste"),
+ QT_TR_NOOP("Paste"),
+ ":/xpm/editpaste.xpm"
+ ),
+ Shortcut(
+ "delete",
+ QT_TR_NOOP("Edit: Delete" ),
+ INVIS_SHRT,
+ Qt::Key_Delete,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Delete"),
+ QT_TR_NOOP("Delete"),
+ ":/xpm/delete.png"
+ ),
+ Shortcut(
+ "open_project",
+ QT_TR_NOOP("Open"),
+ ARRANG_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_O,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("open project"),
+ QT_TR_NOOP("Click this button to select a new project\n"
+ "You can also select the <b>Open command</b> from the Project menu."),
+ ":/xpm/fileopen.png"
+ ),
+ Shortcut(
+ "save_project",
+ QT_TR_NOOP("Save"),
+ ARRANG_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_S,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("save project"),
+ QT_TR_NOOP("Click this button to save the project you are editing.\n"
+ "You can also select the Save command from the Project menu."),
+ ":/xpm/filesave.png"
+ ),
+ Shortcut(
+ "save_project_as",
+ QT_TR_NOOP("File: Save as"),
+ ARRANG_SHRT + DEDIT_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("save project as..."),
+ QT_TR_NOOP("Click this button to save a new copy of the project.\n"
+ ), ":/xpm/filesave.png"
+ ),
+ Shortcut(
+ "save_as_template",
+ QT_TR_NOOP("File: Save as Template"),
+ ARRANG_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("save project as template"),
+ QT_TR_NOOP("Click this button to save the project you are editing\n"
+ "for later use as a template."),
+ ":/xpm/filesave.png"
+ ),
+ Shortcut(
+ "open_recent",
+ QT_TR_NOOP("File: Open recent file"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_1
+ ),
+ Shortcut(
+ "import_midi",
+ QT_TR_NOOP("File: Import midi file"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "export_midi",
+ QT_TR_NOOP("File: Export midi file"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "import_audio",
+ QT_TR_NOOP("File: Import audio file"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "quit",
+ QT_TR_NOOP("File: Quit MusE"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_Q,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Quit MusE"),
+ QT_TR_NOOP("Quit MusE"),
+ ":/xpm/on.svg",
+ ":/xpm/off.svg"
+ ),
+ Shortcut(
+ "select_parts_on_track",
+ QT_TR_NOOP("Edit: Select parts on track"),
+ ARRANG_SHRT,
+ Qt::CTRL+ Qt::ALT + Qt::Key_P,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("All &Parts on Track"),
+ QT_TR_NOOP("All &Parts on Track"),
+ ":/xpm/select_all_parts_on_track.xpm"
+ ),
+ Shortcut(
+ "open_pianoroll",
+ QT_TR_NOOP("Open Pianoroll"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_E,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Pianoroll"),
+ QT_TR_NOOP("Start Pianoroll Editor"),
+ ":/xpm/piano.xpm"
+ ),
+ Shortcut(
+ "open_miditracker",
+ QT_TR_NOOP("Open MidiTracker"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_K,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("MidiTracker"),
+ QT_TR_NOOP("Start Midi Tracker"),
+ ":/xpm/piano.xpm"
+ ),
+ Shortcut(
+ "open_drumedit",
+ QT_TR_NOOP("Open drumeditor"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_D,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Drum Editor"),
+ QT_TR_NOOP("Start Drum Editor"),
+ ":/xpm/edit_drumms.xpm"
+ ),
+ Shortcut(
+ "open_waveedit",
+ QT_TR_NOOP("Open wave editor"),
+ ARRANG_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Wave Editor"),
+ QT_TR_NOOP("Wave Editor"),
+ ":/xpm/wave.xpm"
+ ),
+ Shortcut(
+ "listedit",
+ QT_TR_NOOP("Open listeditor"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_L,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Properties"),
+ QT_TR_NOOP("open Properties Editor"),
+ ":/xmp/edit_list.xpm"
+ ),
+ Shortcut(
+ "open_master",
+ QT_TR_NOOP("Open mastertrack editor"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_M,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Mastertrack (Tempo) Editor"),
+ QT_TR_NOOP("Start Mastertrack (Tempo) Editor"),
+ ":/xpm/edit_mastertrack.xpm"
+ ),
+ Shortcut(
+ "add_midi_track",
+ QT_TR_NOOP("Add midi track"),
+ ARRANG_SHRT,
+ Qt::CTRL + Qt::Key_J
+ ),
+ Shortcut(
+ "add_drum_track",
+ QT_TR_NOOP("Add drum track"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "add_wave_track",
+ QT_TR_NOOP("Add wave track"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "add_audio_output",
+ QT_TR_NOOP("Add audio output"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "add_audio_group",
+ QT_TR_NOOP("Add audio group"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "add_audio_input",
+ QT_TR_NOOP("Add audio input"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "global_cut",
+ QT_TR_NOOP("Structure: Global cut"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "global_insert",
+ QT_TR_NOOP("Structure: Global insert"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "global_split",
+ QT_TR_NOOP("Structure: Global split"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "copy_range",
+ QT_TR_NOOP("Structure: Copy range"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "cut_events",
+ QT_TR_NOOP("Structure: Cut events"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "toggle_mixer1",
+ QT_TR_NOOP("View: Open mixer 1 window"),
+ ARRANG_SHRT,
+ Qt::Key_F10,
+ Qt::ApplicationShortcut,
+ QT_TR_NOOP("Mixer1"),
+ QT_TR_NOOP("Show Mixer 1"),
+ ":/xpm/view_mixer.xpm"
+ ),
+ Shortcut(
+ "toggle_mixer2",
+ QT_TR_NOOP("View: Open mixer 2 window"),
+ ARRANG_SHRT,
+ 0,
+ Qt::ApplicationShortcut,
+ QT_TR_NOOP("Mixer2"),
+ QT_TR_NOOP("Show Mixer 2"),
+ ":/xpm/view_mixer.xpm"
+ ),
+ Shortcut(
+ "toggle_transport",
+ QT_TR_NOOP("View: Toggle transport window"),
+ ARRANG_SHRT,
+ Qt::Key_F11,
+ Qt::ApplicationShortcut,
+ QT_TR_NOOP("Transport"),
+ QT_TR_NOOP("Show Transport Window"),
+ ":/xpm/view_transport_window.xpm"
+ ),
+ Shortcut(
+ "toggle_bigtime",
+ QT_TR_NOOP("View: Toggle bigtime window"),
+ ARRANG_SHRT,
+ Qt::Key_F12,
+ Qt::ApplicationShortcut,
+ QT_TR_NOOP("BigTime"),
+ QT_TR_NOOP("Show BigTime Window"),
+ ":/xpm/view_bigtime_window.xpm"
+ ),
+ Shortcut(
+ "marker_window",
+ QT_TR_NOOP("View: Open marker window"),
+ ARRANG_SHRT,
+ Qt::Key_F9,
+ Qt::ApplicationShortcut,
+ QT_TR_NOOP("Marker"),
+ QT_TR_NOOP("Show Marker List"),
+ ":/xpm/view_marker.xpm"
+ ),
+ Shortcut(
+ "follow_jump",
+ QT_TR_NOOP("Settings: Follow song by page"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "follow_no",
+ QT_TR_NOOP("Settings: Follow song off"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "follow_continuous",
+ QT_TR_NOOP("Settings: Follow song continuous"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_shortcuts",
+ QT_TR_NOOP("Settings: Configure shortcuts"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_metronome",
+ QT_TR_NOOP("Settings: Configure metronome"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_midi_sync",
+ QT_TR_NOOP("Settings: Midi sync configuration"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_midi_file",
+ QT_TR_NOOP("Settings: Midi file export configuration"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_midi_ports",
+ QT_TR_NOOP("Settings: Midi ports / Soft Synth"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "configure_audio_ports",
+ QT_TR_NOOP("Settings: Audio subsystem configuration"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "midi_edit_instruments",
+ QT_TR_NOOP("Midi: Edit midi instruments"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "midi_remote_control",
+ QT_TR_NOOP("Midi: Midi remote control"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "midi_reset",
+ QT_TR_NOOP("Midi: Reset midi"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "midi_init",
+ QT_TR_NOOP("Midi: Init midi"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "midi_local_off",
+ QT_TR_NOOP("Midi: Midi local off"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "audio_bounce_to_track",
+ QT_TR_NOOP("Audio: Bounce audio to track"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "audio_bounce_to_file",
+ QT_TR_NOOP("Audio: Bounce audio to file"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "audio_restart",
+ QT_TR_NOOP("Audio: Restart audio"),
+ ARRANG_SHRT,
+ 0
+ ),
+ Shortcut(
+ "open_help",
+ QT_TR_NOOP("Help: Open Manual"),
+ ARRANG_SHRT,
+ Qt::Key_F1
+ ),
+ Shortcut(
+ "toggle_whatsthis",
+ QT_TR_NOOP("Help: Toggle whatsthis mode"),
+ ARRANG_SHRT,
+ Qt::SHIFT + Qt::Key_F1
+ ),
+ Shortcut(
+ "edit_selected_part",
+ QT_TR_NOOP("Edit: Edit selected part"),
+ ARRANG_SHRT,
+ Qt::Key_Return
+ ),
+ Shortcut(
+ "sel_part_above",
+ QT_TR_NOOP("Edit: Select nearest part on track above"),
+ ARRANG_SHRT,
+ Qt::Key_Up
+ ),
+ Shortcut(
+ "sel_part_above_add",
+ QT_TR_NOOP("Edit: Add nearest part on track above"),
+ ARRANG_SHRT,
+ Qt::SHIFT + Qt::Key_Up
+ ),
+ Shortcut(
+ "sel_part_below",
+ QT_TR_NOOP("Edit: Select nearest part on track below"),
+ ARRANG_SHRT,
+ Qt::Key_Down
+ ),
+ Shortcut(
+ "sel_part_below_add",
+ QT_TR_NOOP("Edit: Add nearest part on track below"),
+ ARRANG_SHRT,
+ Qt::SHIFT + Qt::Key_Down
+ ),
+ Shortcut(
+ "midi_transpose",
+ QT_TR_NOOP("Midi: Transpose"),
+ ARRANG_SHRT + PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Transpose")
+ ),
+ Shortcut(
+ "sel_all",
+ QT_TR_NOOP("Edit: Select all"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_A,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Select All"),
+ QT_TR_NOOP("Select All"),
+ ":/xpm/select_all.xpm"
+ ),
+ Shortcut(
+ "sel_none",
+ QT_TR_NOOP("Edit: Select none"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::SHIFT + Qt::Key_A,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Deselect All"),
+ QT_TR_NOOP("Deselect All"),
+ ":/xpm/select_deselect_all.xpm"
+ ),
+ Shortcut(
+ "sel_inv",
+ QT_TR_NOOP("Edit: Invert selection"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_I,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Invert Selection"),
+ QT_TR_NOOP("Invert Selection"),
+ ":/xpm/select_invert_selection.xpm"
+ ),
+ Shortcut(
+ "sel_ins_loc",
+ QT_TR_NOOP("Edit: Select events/parts inside locators"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Select Inside Loop"),
+ QT_TR_NOOP("Select Inside Loop"),
+ ":/xpm/select_inside_loop.xpm"
+ ),
+ Shortcut(
+ "sel_out_loc",
+ QT_TR_NOOP("Edit: Select events/parts outside locators"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Select Outside Loop"),
+ QT_TR_NOOP("Select Outside Loop"),
+ ":/xpm/select_outside_loop.xpm"
+ ),
+ Shortcut(
+ "sel_left",
+ QT_TR_NOOP("Edit: Select nearest part/event to the left"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_Left
+ ),
+ Shortcut(
+ "sel_left_add",
+ QT_TR_NOOP("Edit: Add nearest part/event to the left to selection"),
+ PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_Left + Qt::SHIFT
+ ),
+ Shortcut(
+ "sel_right",
+ QT_TR_NOOP("Edit: Select nearest part/event to the left"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_Right
+ ),
+ Shortcut(
+ "sel_right_add",
+ QT_TR_NOOP("Edit: Add nearest part/event to the right to selection"),
+ PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_Right + Qt::SHIFT
+ ),
+ Shortcut(
+ "loc_to_sel",
+ QT_TR_NOOP("Edit: Set locators to selection"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::ALT + Qt::Key_P
+ ),
+ Shortcut(
+ "sel_inc_pitch",
+ QT_TR_NOOP("Edit: Increase pitch"),
+ PROLL_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_Up
+ ),
+ Shortcut(
+ "sel_dec_pitch",
+ QT_TR_NOOP("Edit: Decrease pitch"),
+ PROLL_SHRT + DEDIT_SHRT,
+ Qt::CTRL + Qt::Key_Down
+ ),
+ Shortcut(
+ "midi_fixed_len",
+ QT_TR_NOOP("Edit: Set fixed length on midi events"),
+ DEDIT_SHRT,
+ Qt::ALT + Qt::Key_L,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Set fixed length")
+ ),
+ Shortcut(
+ "midi_over_quant",
+ QT_TR_NOOP("Quantize: Over Quantize"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Over Quantize")
+ ),
+ Shortcut(
+ "midi_quant_noteon",
+ QT_TR_NOOP("Quantize: Note On Quantize"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Note On Quantize")
+ ),
+ Shortcut(
+ "midi_quant_noteoff",
+ QT_TR_NOOP("Quantize: Note On/Off Quantize"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Note On/Off Quantize")
+ ),
+ Shortcut(
+ "midi_quant_iterative",
+ QT_TR_NOOP("Quantize: Iterative Quantize"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Iterative Quantize")
+ ),
+ Shortcut(
+ "config_quant",
+ QT_TR_NOOP("Quantize: Configure quant"),
+ PROLL_SHRT,
+ Qt::CTRL + Qt::ALT + Qt::Key_Q
+ ),
+ Shortcut(
+ "midi_mod_gate_time",
+ QT_TR_NOOP("Quantize: Modify Gate Time"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Modify Gate Time")
+ ),
+ Shortcut(
+ "midi_mod_velo",
+ QT_TR_NOOP("Quantize: Modify Velocity"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Modify Velocity")
+ ),
+ Shortcut(
+ "midi_crescendo",
+ QT_TR_NOOP("Edit: Crescendo"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Crescendo")
+ ),
+ Shortcut(
+ "midi_thin_out",
+ QT_TR_NOOP("Edit: Thin Out"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Thin Out")
+ ),
+ Shortcut(
+ "midi_erase_event",
+ QT_TR_NOOP("Edit: Erase Event"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Erase Event")
+ ),
+ Shortcut(
+ "midi_note_shift",
+ QT_TR_NOOP("Edit: Note Shift"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Note Shift")
+ ),
+ Shortcut(
+ "midi_move_clock",
+ QT_TR_NOOP("Edit: Move Clock"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Move Clock")
+ ),
+ Shortcut(
+ "midi_copy_measure",
+ QT_TR_NOOP("Edit: Copy Measure"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Copy Measure")
+ ),
+ Shortcut(
+ "midi_erase_measure",
+ QT_TR_NOOP("Edit: Erase Measure"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Erase Measure")
+ ),
+ Shortcut(
+ "midi_delete_measure",
+ QT_TR_NOOP("Edit: Delete Measure"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Delete Measure")
+ ),
+ Shortcut(
+ "midi_create_measure",
+ QT_TR_NOOP("Edit: Create Measure"),
+ PROLL_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Create Measure")
+ ),
+ Shortcut(
+ "change_event_color",
+ QT_TR_NOOP("Edit: Change event color"),
+ PROLL_SHRT,
+ Qt::Key_E
+ ),
+ Shortcut(
+ "pointer",
+ QT_TR_NOOP("Tool: Pointer"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_A,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Pointer"),
+ QT_TR_NOOP("select Pointer Tool:\n"
+ "with the pointer tool you can:\n"
+ " select parts\n"
+ " move parts\n"
+ " copy parts"),
+ ":/xpm/pointer.xpm"
+ ),
+ Shortcut(
+ "pencil",
+ QT_TR_NOOP("Tool: Pencil"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_D,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Pencil"),
+ QT_TR_NOOP("select Pencil Tool:\n"
+ "with the pencil tool you can:\n"
+ " create new parts\n"
+ " modify length of parts"),
+ ":/xpm/pencil.xpm"
+ ),
+ Shortcut(
+ "eraser",
+ QT_TR_NOOP("Tool: Eraser"),
+ ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,
+ Qt::Key_R,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Eraser"),
+ QT_TR_NOOP("select Delete Tool:\n"
+ "with the delete tool you can delete parts"),
+ ":/xpm/delete.xpm"
+ ),
+ Shortcut(
+ "scissor",
+ QT_TR_NOOP("Tool: Scissor"),
+ ARRANG_SHRT,
+ Qt::Key_S,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Scissor"),
+ QT_TR_NOOP("select Cut Tool:\n"
+ "with the cut tool you can split a part"),
+ ":/xpm/cut.xpm"
+ ),
+ Shortcut(
+ "glue",
+ QT_TR_NOOP("Tool: Glue"),
+ ARRANG_SHRT,
+ Qt::Key_G,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Glue"),
+ QT_TR_NOOP("select Glue Tool:\n"
+ "with the glue tool you can glue two parts"),
+ ":/xpm/glue.xpm"
+ ),
+ Shortcut(
+ "declone",
+ QT_TR_NOOP("Declone"),
+ ARRANG_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Declone")
+ ),
+ Shortcut(
+ "quantize",
+ QT_TR_NOOP("Tool: Quantize"),
+ ARRANG_SHRT,
+ Qt::Key_G,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Quantize"),
+ QT_TR_NOOP("select Quantize Tool:\n"
+ "insert display quantize event"),
+ ":/xpm/quant.xpm"
+ ),
+ Shortcut(
+ "draw",
+ QT_TR_NOOP("Tool: Line Draw"),
+ PROLL_SHRT + DEDIT_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Draw"),
+ QT_TR_NOOP("select Drawing Tool"),
+ ":/xpm/draw.xpm"
+ ),
+ Shortcut(
+ "mute_parts",
+ QT_TR_NOOP("Tool: Mute Parts"),
+ ARRANG_SHRT,
+ 0,
+ Qt::WindowShortcut,
+ QT_TR_NOOP("Mute"),
+ QT_TR_NOOP("select Muting Tool:\n"
+ "click on part to mute/unmute"),
+ ":/xpm/editmute.xpm"
+ ),
+
+ Shortcut(
+ "curpos_increase",
+ QT_TR_NOOP("Transport: Increase current position"),
+ GLOBAL_SHRT,
+ Qt::Key_Plus
+ ),
+ Shortcut(
+ "curpos_decrease",
+ QT_TR_NOOP("Transport: Decrease current position"),
+ GLOBAL_SHRT,
+ Qt::Key_Minus
+ ),
+ Shortcut(
+ "midi_quant_1",
+ QT_TR_NOOP("Quantize: Set quantize to 1/1 note"),
+ PROLL_SHRT,
+ Qt::Key_1
+ ),
+ Shortcut(
+ "midi_quant_2",
+ QT_TR_NOOP("Quantize: Set quantize to 1/2 note"),
+ PROLL_SHRT,
+ Qt::Key_2
+ ),
+ Shortcut(
+ "midi_quant_3",
+ QT_TR_NOOP("Quantize: Set quantize to 1/4 note"),
+ PROLL_SHRT,
+ Qt::Key_3
+ ),
+ Shortcut(
+ "midi_quant_4",
+ QT_TR_NOOP("Quantize: Set quantize to 1/8 note"),
+ PROLL_SHRT,
+ Qt::Key_4
+ ),
+ Shortcut(
+ "midi_quant_5",
+ QT_TR_NOOP("Quantize: Set quantize to 1/16 note"),
+ PROLL_SHRT,
+ Qt::Key_5
+ ),
+ Shortcut(
+ "midi_quant_6",
+ QT_TR_NOOP("Quantize: Set quantize to 1/32 note"),
+ PROLL_SHRT,
+ Qt::Key_6
+ ),
+ Shortcut(
+ "midi_quant_7",
+ QT_TR_NOOP("Quantize: Set quantize to 1/64 note"),
+ PROLL_SHRT,
+ Qt::Key_7
+ ),
+ Shortcut(
+ "midi_quant_triol",
+ QT_TR_NOOP("Quantize: Toggle triol quantization"),
+ PROLL_SHRT,
+ Qt::Key_T
+ ),
+ Shortcut(
+ "midi_quant_punct",
+ QT_TR_NOOP("Quantize: Toggle punctuation quantization"),
+ PROLL_SHRT,
+ Qt::Key_Period
+ ),
+ Shortcut(
+ "midi_quant_punct2",
+ QT_TR_NOOP("Quantize: Toggle punctuation quantization (2)"),
+ PROLL_SHRT,
+ Qt::Key_Comma
+ ),
+ Shortcut(
+ "midi_insert_at_loc",
+ QT_TR_NOOP("Insert"),
+ PROLL_SHRT,
+ Qt::SHIFT + Qt::Key_Right
+ ),
+ Shortcut(
+ "lm_ins_tempo",
+ QT_TR_NOOP("Insert Tempo"),
+ LMEDIT_SHRT,
+ Qt::CTRL + Qt::Key_T
+ ),
+ Shortcut(
+ "lm_ins_sig",
+ QT_TR_NOOP("Insert Signature"),
+ LMEDIT_SHRT,
+ Qt::CTRL + Qt::Key_R
+ ),
+ Shortcut(
+ "lm_edit_beat",
+ QT_TR_NOOP("Change Event Position"),
+ LMEDIT_SHRT,
+ Qt::CTRL + Qt::SHIFT + Qt::Key_E
+ ),
+ Shortcut(
+ "lm_edit_val",
+ QT_TR_NOOP("Edit Event Value"),
+ LMEDIT_SHRT,
+ Qt::CTRL + Qt::Key_E
+ ),
+ Shortcut(0, 0, 0, 0 ),
+ };
+
+KeyboardMovementIndicator shortcutsKbdMovement; //for keeping track of active part selected by kbd
+
+//---------------------------------------------------------
+// writeShortCuts
+//---------------------------------------------------------
+
+void writeShortCuts(Xml& xml)
+ {
+ xml.stag("shortcuts");
+ foreach(Shortcut* s, shortcuts) {
+ //
+ // save only if different from default
+ //
+ for (unsigned i = 0;; ++i) {
+ if (MuseApplication::sc[i].xml == s->xml) {
+ if (MuseApplication::sc[i].key != s->key)
+ xml.tag(s->xml, s->key.toString(QKeySequence::PortableText));
+ break;
+ }
+ }
+ }
+ xml.etag("shortcuts");
+ }
+
+//---------------------------------------------------------
+// readShortCuts
+//---------------------------------------------------------
+
+void readShortCuts(QDomNode node)
+ {
+ for (;!node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ Shortcut* s = shortcuts.value(e.tagName());
+ if (s)
+ s->key = QKeySequence::fromString(e.text(), QKeySequence::PortableText);
+ else
+ printf("MusE:readShortCuts: unknown tag <%s>\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// getAction
+// returns action for shortcut
+//---------------------------------------------------------
+
+QAction* getAction(const char* id, QObject* parent)
+ {
+ Shortcut* s = shortcuts.value(id);
+ if (s == 0) {
+ printf("interanl error: shortcut <%s> not found\n", id);
+ return 0;
+ }
+ if (s->action == 0 || (s->action->parent() != parent)) {
+ s->action = new QAction(s->xml, parent);
+ s->action->setData(s->xml);
+ s->action->setShortcut(s->key);
+ s->action->setShortcutContext(s->context);
+ if (s->help) {
+ s->action->setToolTip(s->help);
+ s->action->setWhatsThis(s->help);
+ }
+ else {
+ s->action->setToolTip(s->descr);
+ s->action->setWhatsThis(s->descr);
+ }
+ if (s->text)
+ s->action->setText(s->text);
+ if (s->iconOn) {
+ QIcon icon;
+ icon.addFile(s->iconOn, ICON_SIZE, QIcon::Normal, QIcon::On);
+ if (s->iconOff)
+ icon.addFile(s->iconOff, ICON_SIZE, QIcon::Normal, QIcon::Off);
+ s->action->setIcon(icon);
+ }
+ }
+// else
+// printf("action <%s> already initialized\n", s->xml);
+ return s->action;
+ }
+
diff --git a/muse_qt4_evolution/muse/shortcuts.h b/muse_qt4_evolution/muse/shortcuts.h
new file mode 100644
index 00000000..d66650e8
--- /dev/null
+++ b/muse_qt4_evolution/muse/shortcuts.h
@@ -0,0 +1,135 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2003 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SHORTCUTS_H__
+#define __SHORTCUTS_H__
+
+class Part;
+class Track;
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+//
+// Shortcut categories
+//
+#define PROLL_SHRT 1 // Pianoroll shortcut
+#define DEDIT_SHRT 2 // Drumedit shortcut
+#define LEDIT_SHRT 4 // Listedit shortcut
+#define SCORE_SHRT 8 // Score shortcut
+#define ARRANG_SHRT 16 // Arrenger shortcut
+#define TRANSP_SHRT 32 // Transport shortcut
+#define WAVE_SHRT 64 // Waveedit shortcut
+#define GLOBAL_SHRT 128 // Global shortcuts
+#define LMEDIT_SHRT 256 // List masteredit
+#define MEDIT_SHRT 512 // Master editor
+#define ALL_SHRT 1023 // All shortcuts
+#define INVIS_SHRT 1024 // Shortcuts not shown in the config-dialog. Hard-coded. To avoid conflicts
+
+#define SHRT_NUM_OF_CATEGORIES 7 //Number of shortcut categories
+
+//---------------------------------------------------------
+// shortcut
+//! Holds the basic values for a configurable shortcut
+//---------------------------------------------------------
+
+struct Shortcut
+ {
+ const char* xml; /*! xml tag name for configuration file */
+ const char* descr; /*! Description of the shortcut, shown in editor */
+ int type; /*! Bitmask category value mapped against
+ PROLL_SHRT, DEDIT_SHRT etc. One shortcut can
+ be a member of many categories */
+ QKeySequence key; /*! shortcut key */
+ Qt::ShortcutContext context;
+ const char* text; /*! action help */
+ const char* help;
+ const char* iconOn;
+ const char* iconOff;
+ QAction* action; /*! cached action, can be updated if user changes
+ shortcut key sequence */
+
+ Shortcut() {
+ xml = 0;
+ descr = 0;
+ type = 0;
+ key = 0;
+ context = Qt::WindowShortcut;
+ text = 0;
+ help = 0;
+ iconOn = 0;
+ iconOff = 0;
+ action = 0;
+ }
+ Shortcut(const char* name, const char* d, int t, const QKeySequence& k,
+ Qt::ShortcutContext cont = Qt::WindowShortcut,
+ const char* txt=0, const char* h=0, const char* ic1=0, const char* ic2=0)
+ : xml(name), descr(d), type(t), key(k), context(cont), text(txt), help(h),
+ iconOn(ic1), iconOff(ic2) {
+ action = 0;
+ }
+ };
+
+//! Describes a shortcut category
+struct shortcut_cg
+ {
+ int id_flag; /*! The category (one of PROLL_SHRT, DEDIT_SHRT etc) */
+ const char* name; /*! Name (shown in editor) */
+ };
+
+//------------------------------------------------------------------------------------------------
+// KeyboardMovementIndicator
+//! Used by Arranger to keep track of which Part is currently active when navigating with keys
+//------------------------------------------------------------------------------------------------
+
+class KeyboardMovementIndicator {
+ //! Left position of the active part, in ticks
+ unsigned lpos;
+ //! Right position of the active part, in ticks
+ unsigned rpos;
+ //! Last selected part (the active part)
+ Part* lastSelectedPart;
+ //! Track the last selected part belongs to
+ Track* lastSelectedTrack;
+
+ public:
+ KeyboardMovementIndicator()
+ { reset(); }
+
+ void setPos(int l, int r) { lpos = l; rpos = r; }
+ void setPart(Part* p) { lastSelectedPart = p; }
+ void setTrack(Track* t) { lastSelectedTrack = t; }
+ unsigned getLpos() { return lpos; }
+ unsigned getRpos() { return rpos; }
+ Part* part() { return lastSelectedPart; }
+ Track* track() { return lastSelectedTrack; }
+ //! Resets the values (equals to no active part)
+ void reset() { lpos = 0; rpos = 0; lastSelectedPart = 0; lastSelectedTrack = 0; }
+ //! Checks if there is any active part
+ bool isValid() { return (lastSelectedPart && lastSelectedTrack); }
+ };
+
+extern KeyboardMovementIndicator shortcutsKbdMovement;
+extern void writeShortCuts(Xml& xml);
+extern void readShortCuts(QDomNode);
+extern QAction* getAction(const char*, QObject* parent);
+extern QMap<QString, Shortcut*> shortcuts;
+#endif
diff --git a/muse_qt4_evolution/muse/song.cpp b/muse_qt4_evolution/muse/song.cpp
new file mode 100644
index 00000000..a1f3bff0
--- /dev/null
+++ b/muse_qt4_evolution/muse/song.cpp
@@ -0,0 +1,1552 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "muse.h"
+#include "song.h"
+#include "track.h"
+#include "undo.h"
+#include "globals.h"
+#include "event.h"
+#include "midiedit/drummap.h"
+#include "audio.h"
+#include "mixer.h"
+#include "audiodev.h"
+#include "gconfig.h"
+#include "al/marker.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+#include "midi.h"
+#include "plugin.h"
+#include "pipeline.h"
+#include "synth.h"
+#include "midiplugin.h"
+#include "midirc.h"
+#include "part.h"
+#include "conf.h"
+#include "midioutport.h"
+#include "midiinport.h"
+#include "instruments/minstrument.h"
+
+Song* song;
+
+//---------------------------------------------------------
+// Song
+//---------------------------------------------------------
+
+Song::Song()
+ :QObject(0)
+ {
+ undoList = new UndoList;
+ redoList = new UndoList;
+ _markerList = new AL::MarkerList;
+ _globalPitchShift = 0;
+ clear(false);
+ }
+
+//---------------------------------------------------------
+// Song
+//---------------------------------------------------------
+
+Song::~Song()
+ {
+ delete undoList;
+ delete redoList;
+ delete _markerList;
+// delete esettingsList;
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+void Song::putEvent(const MidiEvent& event)
+ {
+ eventFifo.put(event);
+ }
+
+//---------------------------------------------------------
+// setTempo
+// public slot
+//---------------------------------------------------------
+
+void Song::setTempo(int newTempo)
+ {
+ audio->msgSetTempo(pos[0].tick(), newTempo, true);
+ }
+
+//---------------------------------------------------------
+// setSig
+// called from transport window
+//---------------------------------------------------------
+
+void Song::setSig(const AL::TimeSignature& sig)
+ {
+ if (_masterFlag) {
+ audio->msgAddSig(pos[0].tick(), sig);
+ }
+ }
+
+//---------------------------------------------------------
+// addEvent
+// return true if event was added
+//---------------------------------------------------------
+
+bool Song::addEvent(const Event& event, Part* part)
+ {
+ if (event.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int tick = event.tick() + part->tick();
+ int cntrl = event.dataA();
+ CVal val;
+ val.i = event.dataB();
+ if (!track->addControllerVal(cntrl, tick, val)) {
+ track->addMidiController(track->instrument(), cntrl);
+ if (!track->addControllerVal(cntrl, tick, val)) {
+ return false;
+ }
+ }
+ }
+ else {
+ part->events()->add(event);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// changeEvent
+//---------------------------------------------------------
+
+void Song::changeEvent(const Event& oldEvent, const Event& newEvent, Part* part)
+ {
+ iEvent i = part->events()->find(oldEvent);
+ if (i == part->events()->end()) {
+ printf("Song::changeEvent(): EVENT not found !! %ld\n", long(part->events()->size()));
+ // abort();
+ return;
+ }
+ part->events()->erase(i);
+ part->events()->add(newEvent);
+
+ if (newEvent.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int tick = newEvent.tick() + part->tick();
+ int cntrl = newEvent.dataA();
+ CVal val;
+ val.i = newEvent.dataB();
+ track->addControllerVal(cntrl, tick, val);
+ }
+ }
+
+//---------------------------------------------------------
+// deleteEvent
+//---------------------------------------------------------
+
+void Song::deleteEvent(const Event& event, Part* part)
+ {
+#if 0 //TODO3
+ if (event.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int ch = track->outChannel();
+ int tick = event.tick() + part->tick();
+ int cntrl = event.dataA();
+ midiPorts[track->outPort()].deleteController(ch, tick, cntrl);
+ }
+#endif
+ iEvent ev = part->events()->find(event);
+ if (ev == part->events()->end()) {
+ printf("event not found in part\n");
+ return;
+ }
+ part->events()->erase(ev);
+ }
+
+//---------------------------------------------------------
+// setLoop
+// set transport loop flag
+//---------------------------------------------------------
+
+void Song::setLoop(bool f)
+ {
+ if (loopFlag != f) {
+ loopFlag = f;
+ loopAction->setChecked(loopFlag);
+ emit loopChanged(loopFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setRecord
+// set record flag
+//---------------------------------------------------------
+
+void Song::setRecord(bool f)
+ {
+ if (recordFlag == f)
+ return;
+ if (muse->playAction->isChecked()) {
+ //
+ // dont allow record state changes when rolling
+ //
+ recordAction->setChecked(!f);
+ return;
+ }
+
+ if (f) {
+ bool alreadyRecEnabled = false;
+ Track *selectedTrack = 0;
+
+ // loop through list and check if any track is rec enabled
+ // if not then rec enable the selected track
+
+ WaveTrackList* wtl = waves();
+ for (iWaveTrack i = wtl->begin(); i != wtl->end(); ++i) {
+ if ((*i)->recordFlag()) {
+ alreadyRecEnabled = true;
+ break;
+ }
+ if ((*i)->selected())
+ selectedTrack = (*i);
+ }
+ if (!alreadyRecEnabled) {
+ MidiTrackList* mtl = midis();
+ for (iMidiTrack it = mtl->begin(); it != mtl->end(); ++it) {
+ if ((*it)->recordFlag()) {
+ alreadyRecEnabled = true;
+ break;
+ }
+ if ((*it)->selected())
+ selectedTrack = (*it);
+ }
+ }
+ if (!alreadyRecEnabled && selectedTrack) {
+ // enable recording on selected track:
+ setRecordFlag(selectedTrack, true);
+ }
+ else {
+ if (!alreadyRecEnabled) {
+ // If there are no tracks, do not enable record.
+ // TODO: This forces the user to first enable record on a track
+ // which probably is a bad thing. Maybe we should warn
+ // only when the user actually starts recording by pressing
+ // play.
+
+ QMessageBox::critical(0, "MusE: Record",
+ "No track(s) enabled for recording");
+ f = false;
+ }
+ }
+ }
+ if (!f)
+ bounceTrack = 0;
+ recordAction->setChecked(f);
+ if (f != recordFlag) {
+ recordFlag = f;
+ emit recordChanged(recordFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setPunchin
+// set punchin flag
+//---------------------------------------------------------
+
+void Song::setPunchin(bool f)
+ {
+ if (punchinFlag != f) {
+ punchinFlag = f;
+ punchinAction->setChecked(punchinFlag);
+ emit punchinChanged(punchinFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setPunchout
+// set punchout flag
+//---------------------------------------------------------
+
+void Song::setPunchout(bool f)
+ {
+ if (punchoutFlag != f) {
+ punchoutFlag = f;
+ punchoutAction->setChecked(punchoutFlag);
+ emit punchoutChanged(punchoutFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setClick
+//---------------------------------------------------------
+
+void Song::setClick(bool val)
+ {
+ if (_click != val) {
+ _click = val;
+ emit clickChanged(_click);
+ }
+ }
+
+//---------------------------------------------------------
+// setQuantize
+//---------------------------------------------------------
+
+void Song::setQuantize(bool val)
+ {
+ if (_quantize != val) {
+ _quantize = val;
+ emit quantizeChanged(_quantize);
+ }
+ }
+
+//---------------------------------------------------------
+// setMasterFlag
+//---------------------------------------------------------
+
+void Song::setMasterFlag(bool val)
+ {
+ _masterFlag = val;
+ if (AL::tempomap.setMasterFlag(cpos(), val)) {
+ emit songChanged(SC_MASTER);
+ emit tempoChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// setPlay
+// set transport play flag
+//---------------------------------------------------------
+
+void Song::setPlay(bool f)
+ {
+ // only allow the user to set the button "on"
+ if (!f) {
+ printf(" setPlay checked\n");
+ muse->playAction->setChecked(true);
+ }
+ else {
+ if (recordAction->isChecked()) {
+ startUndo();
+ MidiTrackList* ml = midis();
+ for (iMidiTrack it = ml->begin(); it != ml->end(); ++it) {
+ if ((*it)->recordFlag())
+ (*it)->startRecording();
+ }
+ WaveTrackList* wl = waves();
+ for (iWaveTrack wt = wl->begin(); wt != wl->end(); ++wt) {
+ if ((*wt)->recordFlag())
+ (*wt)->startRecording();
+ }
+ OutputList* ol = outputs();
+ for (iAudioOutput o = ol->begin(); o != ol->end(); ++o) {
+ if ((*o)->recordFlag())
+ (*o)->startRecording();
+ }
+ }
+ audio->msgPlay(true);
+ }
+ }
+
+//---------------------------------------------------------
+// setStop
+//---------------------------------------------------------
+
+void Song::setStop(bool f)
+ {
+ // only allow the user to set the button "on"
+ if (f)
+ audio->msgPlay(false);
+ else
+ muse->stopAction->setChecked(true);
+ }
+
+//---------------------------------------------------------
+// setStopPlay
+//---------------------------------------------------------
+
+void Song::setStopPlay(bool f)
+ {
+ emit playChanged(f); // signal transport window
+ muse->playAction->setChecked(f);
+ muse->stopAction->setChecked(!f);
+ }
+
+//---------------------------------------------------------
+// swapTracks
+//---------------------------------------------------------
+
+void Song::swapTracks(int i1, int i2)
+ {
+ undoOp(UndoOp::SwapTrack, i1, i2);
+ Track* track = _tracks[i1];
+ _tracks[i1] = _tracks[i2];
+ _tracks[i2] = track;
+ }
+
+//---------------------------------------------------------
+// setTickPos
+//---------------------------------------------------------
+/*
+void Song::setTickPos(int idx, unsigned int tick)
+ {
+ Pos pos(tick);
+ setPos(idx, pos);
+ }
+*/
+//---------------------------------------------------------
+// setPos
+// song->setPos(Song::CPOS, pos, true, true, true);
+//---------------------------------------------------------
+
+void Song::setPos(int idx, const AL::Pos& val)
+ {
+ setPos(idx, val, true, true, false);
+ }
+
+void Song::setPos(int idx, const Pos& val, bool sig, bool isSeek, bool follow)
+ {
+// printf("setPos %d sig=%d,seek=%d,scroll=%d\n",
+// idx, sig, isSeek, follow);
+// val.dump(0);
+// printf("\n");
+
+ if (pos[idx] == val)
+ return;
+ if (idx == CPOS) {
+// _vcpos = val;
+ if (isSeek) {
+ seekInProgress = true;
+ audio->msgSeek(val);
+ return;
+ }
+ }
+ pos[idx] = val;
+ bool swap = pos[LPOS] > pos[RPOS];
+ if (swap) { // swap lpos/rpos if lpos > rpos
+ Pos tmp = pos[LPOS];
+ pos[LPOS] = pos[RPOS];
+ pos[RPOS] = tmp;
+ }
+ if (sig) {
+ if (swap) {
+ emit posChanged(LPOS, pos[LPOS], follow);
+ emit posChanged(RPOS, pos[RPOS], follow);
+ if (idx != LPOS && idx != RPOS)
+ emit posChanged(idx, pos[idx], follow);
+ }
+ else
+ emit posChanged(idx, pos[idx], follow);
+ }
+
+ if (idx == CPOS)
+ updateCurrentMarker();
+ }
+
+//---------------------------------------------------------
+// updateCurrentMarker
+//---------------------------------------------------------
+
+void Song::updateCurrentMarker()
+ {
+ AL::iMarker i1 = _markerList->begin();
+ AL::iMarker i2 = i1;
+ bool currentChanged = false;
+ Pos& val = pos[CPOS];
+ for (; i1 != _markerList->end(); ++i1) {
+ ++i2;
+ if (val.tick() >= i1->first && (i2==_markerList->end() || val.tick() < i2->first)) {
+ if (i1->second.current())
+ return;
+ i1->second.setCurrent(true);
+ if (currentChanged) {
+ emit markerChanged(MARKER_CUR);
+ return;
+ }
+ ++i1;
+ for (; i1 != _markerList->end(); ++i1) {
+ if (i1->second.current())
+ i1->second.setCurrent(false);
+ }
+ emit markerChanged(MARKER_CUR);
+ return;
+ }
+ else {
+ if (i1->second.current()) {
+ currentChanged = true;
+ i1->second.setCurrent(false);
+ }
+ }
+ }
+ if (currentChanged)
+ emit markerChanged(MARKER_CUR);
+ }
+
+//---------------------------------------------------------
+// forward
+// roll forward config.division ticks
+//---------------------------------------------------------
+
+void Song::forward()
+ {
+ unsigned newPos = pos[0].tick() + config.division;
+ audio->msgSeek(Pos(newPos, AL::TICKS));
+ }
+
+//---------------------------------------------------------
+// rewind
+// roll back config.division ticks
+//---------------------------------------------------------
+
+void Song::rewind()
+ {
+ unsigned newPos;
+ if (unsigned(config.division) > pos[0].tick())
+ newPos = 0;
+ else
+ newPos = pos[0].tick() - config.division;
+ audio->msgSeek(Pos(newPos, AL::TICKS));
+ }
+
+//---------------------------------------------------------
+// rewindStart
+//---------------------------------------------------------
+
+void Song::rewindStart()
+ {
+ audio->msgSeek(Pos(0, AL::TICKS));
+ }
+
+//---------------------------------------------------------
+// update
+//---------------------------------------------------------
+
+void Song::update(int flags)
+ {
+ if (flags == 0)
+ return;
+ emit songChanged(flags);
+ if (flags & SC_TEMPO)
+ emit tempoChanged();
+ }
+
+//---------------------------------------------------------
+// updatePos
+//---------------------------------------------------------
+
+void Song::updatePos()
+ {
+ emit posChanged(0, pos[0], false);
+ emit posChanged(1, pos[1], false);
+ emit posChanged(2, pos[2], false);
+ }
+
+//---------------------------------------------------------
+// roundUpBar
+//---------------------------------------------------------
+
+int Song::roundUpBar(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(t, &bar, &beat, &tick);
+ if (beat || tick)
+ return AL::sigmap.bar2tick(bar+1, 0, 0);
+ return t;
+ }
+
+//---------------------------------------------------------
+// roundUpBeat
+//---------------------------------------------------------
+
+int Song::roundUpBeat(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(t, &bar, &beat, &tick);
+ if (tick)
+ return AL::sigmap.bar2tick(bar, beat+1, 0);
+ return t;
+ }
+
+//---------------------------------------------------------
+// roundDownBar
+//---------------------------------------------------------
+
+int Song::roundDownBar(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(t, &bar, &beat, &tick);
+ return AL::sigmap.bar2tick(bar, 0, 0);
+ }
+
+//---------------------------------------------------------
+// dumpMaster
+//---------------------------------------------------------
+
+void Song::dumpMaster()
+ {
+ AL::tempomap.dump();
+ AL::sigmap.dump();
+ }
+
+//---------------------------------------------------------
+// getSelectedParts
+//---------------------------------------------------------
+
+PartList* Song::getSelectedMidiParts() const
+ {
+ PartList* parts = new PartList();
+
+ //------------------------------------------------------
+ // wenn ein Part selektiert ist, diesen editieren
+ // wenn ein Track selektiert ist, den Ersten
+ // Part des Tracks editieren, die restlichen sind
+ // 'ghostparts'
+ // wenn mehrere Parts selektiert sind, dann Ersten
+ // editieren, die restlichen sind 'ghostparts'
+ //
+
+ // collect marked parts
+ for (ciMidiTrack t = _midis.begin(); t != _midis.end(); ++t) {
+ MidiTrack* track = *t;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ if (p->second->selected()) {
+ parts->add(p->second);
+ }
+ }
+ }
+ // if no part is selected, then search for selected track
+ // and collect all parts of this track
+
+ if (parts->empty()) {
+ for (ciMidiTrack t = _midis.begin(); t != _midis.end(); ++t) {
+ if ((*t)->selected()) {
+ MidiTrack* track = *t;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p)
+ parts->add(p->second);
+ break;
+ }
+ }
+ }
+ return parts;
+ }
+
+PartList* Song::getSelectedWaveParts() const
+ {
+ PartList* parts = new PartList();
+
+ //------------------------------------------------------
+ // wenn ein Part selektiert ist, diesen editieren
+ // wenn ein Track selektiert ist, den Ersten
+ // Part des Tracks editieren, die restlichen sind
+ // 'ghostparts'
+ // wenn mehrere Parts selektiert sind, dann Ersten
+ // editieren, die restlichen sind 'ghostparts'
+ //
+
+ // markierte Parts sammeln
+ for (ciWaveTrack t = _waves.begin(); t != _waves.end(); ++t) {
+ WaveTrack* track = *t;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ if (p->second->selected()) {
+ parts->add(p->second);
+ }
+ }
+ }
+ // wenn keine Parts selektiert, dann markierten Track suchen
+ // und alle Parts dieses Tracks zusammensuchen
+
+ if (parts->empty()) {
+ for (ciWaveTrack t = _waves.begin(); t != _waves.end(); ++t) {
+ if ((*t)->selected()) {
+ WaveTrack* track = *t;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p)
+ parts->add(p->second);
+ break;
+ }
+ }
+ }
+ return parts;
+ }
+
+//---------------------------------------------------------
+// beat
+// update gui
+//---------------------------------------------------------
+
+void Song::beat()
+ {
+ updateFlags = 0;
+ if (audio->isPlaying()) {
+ int tick = audio->seqTime()->curTickPos;
+ setPos(0, tick, true, false, true);
+ }
+ if (audio->isRecording()) {
+ MidiTrackList* ml = midis();
+ for (iMidiTrack it = ml->begin(); it != ml->end(); ++it) {
+ MidiTrack* mt = *it;
+ if (mt->recordFlag())
+ mt->recordBeat();
+ }
+ WaveTrackList* wl = waves();
+ for (iWaveTrack wt = wl->begin(); wt != wl->end(); ++wt) {
+ WaveTrack* mt = *wt;
+ if (mt->recordFlag())
+ mt->recordBeat();
+ }
+ }
+ while (!eventFifo.isEmpty()) {
+ MidiEvent event(eventFifo.get());
+ if (rcEnable)
+ midiRCList.doAction(event);
+ emit midiEvent(event);
+ }
+ //
+ // update controller guis
+ //
+ TrackList* tl = tracks();
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ Track* track = *it;
+ if (!track->autoRead())
+ continue;
+ track->updateController();
+ }
+ update(updateFlags);
+ }
+
+//---------------------------------------------------------
+// setLen
+//---------------------------------------------------------
+
+void Song::setLen(int l)
+ {
+ _len = roundUpBar(l);
+ AL::Pos pos(_len);
+ int bar, beat;
+ unsigned tick;
+ AL::sigmap.tickValues(_len, &bar, &beat, &tick);
+ emit measureLenChanged(bar);
+ emit lenChanged(pos);
+ }
+
+//---------------------------------------------------------
+// setMeasureLen
+//---------------------------------------------------------
+
+void Song::setMeasureLen(int b)
+ {
+ setLen(AL::sigmap.bar2tick(b, 0, 0));
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+
+AL::Marker* Song::addMarker(const QString& s, const AL::Pos& pos)
+ {
+ AL::Marker* marker = _markerList->add(s, pos);
+ updateCurrentMarker();
+ emit markerChanged(MARKER_ADD);
+ return marker;
+ }
+
+//---------------------------------------------------------
+// removeMarker
+//---------------------------------------------------------
+
+void Song::removeMarker(AL::Marker* marker)
+ {
+ _markerList->remove(marker);
+ updateCurrentMarker();
+ emit markerChanged(MARKER_REMOVE);
+ }
+
+//---------------------------------------------------------
+// setMarkerName
+//---------------------------------------------------------
+
+AL::Marker* Song::setMarkerName(AL::Marker* m, const QString& s)
+ {
+ m->setName(s);
+ emit markerChanged(MARKER_NAME);
+ return m;
+ }
+
+AL::Marker* Song::setMarkerTick(AL::Marker* m, int t)
+ {
+ AL::Marker mm(*m);
+ _markerList->remove(m);
+ mm.setTick(t);
+ m = _markerList->add(mm);
+ updateCurrentMarker();
+ emit markerChanged(MARKER_TICK);
+ return m;
+ }
+
+AL::Marker* Song::setMarkerLock(AL::Marker* m, bool f)
+ {
+ m->setType(f ? AL::FRAMES : AL::TICKS);
+ updateCurrentMarker();
+ emit markerChanged(MARKER_LOCK);
+ return m;
+ }
+
+//---------------------------------------------------------
+// endMsgCmd
+//---------------------------------------------------------
+
+void Song::endMsgCmd()
+ {
+ redoList->clear(); // TODO: delete elements in list
+ undoAction->setEnabled(true);
+ redoAction->setEnabled(false);
+ update(updateFlags);
+ }
+
+//---------------------------------------------------------
+// undo
+//---------------------------------------------------------
+
+void Song::undo()
+ {
+ updateFlags = 0;
+ if (doUndo1())
+ return;
+ audio->msgUndo();
+ doUndo3();
+ redoAction->setEnabled(true);
+ undoAction->setEnabled(!undoList->empty());
+ if (updateFlags) {
+ emit songChanged(updateFlags);
+ if (updateFlags & SC_TEMPO)
+ emit tempoChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// redo
+//---------------------------------------------------------
+
+void Song::redo()
+ {
+ updateFlags = 0;
+ if (doRedo1())
+ return;
+ audio->msgRedo();
+ doRedo3();
+ undoAction->setEnabled(true);
+ redoAction->setEnabled(!redoList->empty());
+ if (updateFlags) {
+ emit songChanged(updateFlags);
+ if (updateFlags & SC_TEMPO)
+ emit tempoChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// processMsg
+// executed in realtime thread context
+//---------------------------------------------------------
+
+void Song::processMsg(AudioMsg* msg)
+ {
+ switch(msg->id) {
+ case SEQM_UNDO:
+ doUndo2();
+ break;
+ case SEQM_REDO:
+ doRedo2();
+ break;
+
+ case SEQM_ADD_EVENT:
+ updateFlags = SC_EVENT_INSERTED;
+ if (addEvent(msg->ev1, (Part*)(msg->p2))) {
+ undoOp(UndoOp::AddEvent, msg->ev1, (Part*)msg->p2);
+ }
+ else
+ updateFlags = 0;
+ break;
+
+ case SEQM_ADD_EVENTS:
+ updateFlags = SC_EVENT_INSERTED;
+ for (int i = 0; i < msg->el->size(); ++i) {
+ if (addEvent(msg->el->at(i), (Part*)(msg->p2))) {
+ undoOp(UndoOp::AddEvent, msg->el->at(i), (Part*)msg->p2);
+ }
+ }
+ break;
+
+ case SEQM_REMOVE_EVENT:
+ {
+ Event event = msg->ev1;
+ Part* part = (Part*)(msg->p2);
+ Event e;
+ undoOp(UndoOp::DeleteEvent, e, event, part);
+ deleteEvent(event, part);
+ updateFlags = SC_EVENT_REMOVED;
+ }
+ break;
+ case SEQM_CHANGE_EVENT:
+ changeEvent(msg->ev1, msg->ev2, (Part*)(msg->p3));
+ undoOp(UndoOp::ModifyEvent, msg->ev2, msg->ev1, (Part*)msg->p3);
+ updateFlags = SC_EVENT_MODIFIED;
+ break;
+
+ case SEQM_ADD_TEMPO:
+ undoOp(UndoOp::AddTempo, msg->a, msg->b);
+ AL::tempomap.addTempo(msg->a, msg->b);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_SET_TEMPO:
+ undoOp(UndoOp::AddTempo, msg->a, msg->b);
+ AL::tempomap.setTempo(msg->a, msg->b);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_SET_GLOBAL_TEMPO:
+ AL::tempomap.setGlobalTempo(msg->a);
+ break;
+
+ case SEQM_REMOVE_TEMPO:
+ undoOp(UndoOp::DeleteTempo, msg->a, msg->b);
+ AL::tempomap.delTempo(msg->a);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_ADD_SIG:
+ undoOp(UndoOp::AddSig, msg->a, msg->b, msg->c);
+ AL::sigmap.add(msg->a, AL::TimeSignature(msg->b, msg->c));
+ updateFlags = SC_SIG;
+ break;
+
+ case SEQM_REMOVE_SIG:
+ //printf("processMsg (SEQM_REMOVE_SIG) UndoOp::DeleteSig. Deleting AL::sigmap at: %d with z=%d n=%d\n", msg->a, msg->b, msg->c);
+ undoOp(UndoOp::DeleteSig, msg->a, msg->b, msg->c);
+ AL::sigmap.del(msg->a);
+ updateFlags = SC_SIG;
+ break;
+
+ case SEQM_ADD_CTRL:
+ msg->track->addControllerVal(msg->a, msg->time, msg->cval1);
+ break;
+
+ case SEQM_REMOVE_CTRL:
+ msg->track->removeControllerVal(msg->a, msg->time);
+ break;
+
+ case SEQM_ADD_TRACK:
+ insertTrack2(msg->track);
+ break;
+
+ case SEQM_REMOVE_TRACK:
+ removeTrack2(msg->track);
+ break;
+
+ case SEQM_ADD_PART:
+ {
+ Part* part = (Part*)(msg->p1);
+ part->track()->addPart(part);
+ }
+ break;
+
+ case SEQM_REMOVE_PART:
+ {
+ Part* part = (Part*)(msg->p1);
+ Track* track = part->track();
+ track->parts()->remove(part);
+ }
+ break;
+
+ case SEQM_CHANGE_PART:
+ {
+ Part* newPart = (Part*)msg->p2;
+ Part* oldPart = (Part*)msg->p1;
+ Part part = *newPart;
+ *newPart = *oldPart;
+ *oldPart = part;
+ }
+ break;
+
+ case SEQM_MOVE_TRACK:
+ moveTrack((Track*)(msg->p1), (Track*)(msg->p2));
+ break;
+
+ default:
+ printf("unknown seq message %d\n", msg->id);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// panic
+//---------------------------------------------------------
+
+void Song::panic()
+ {
+ audio->msgPanic();
+ }
+
+//---------------------------------------------------------
+// clear
+// signal - emit signals for changes if true
+// called from constructor as clear(false) and
+// from MusE::clearSong() as clear(false)
+//---------------------------------------------------------
+
+void Song::clear(bool signal)
+ {
+ _created = false;
+ _backupWritten = false;
+ dirty = false;
+ _comment = "";
+ _createDate = QDateTime::currentDateTime();
+
+ seekInProgress = false;
+ bounceTrack = 0;
+
+// for (iTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+// (*i)->deactivate();
+
+ _selectedTrack = 0;
+ _tracks.clear();
+
+ qDeleteAll(_midis);
+ _midis.clear();
+
+ qDeleteAll(_waves);
+ _waves.clear();
+
+ qDeleteAll(_inputs); // audio input ports
+ _inputs.clear();
+
+ qDeleteAll(_outputs); // audio output ports
+ _outputs.clear();
+
+ qDeleteAll(_groups); // mixer groups
+ _groups.clear();
+
+ qDeleteAll(_synthIs);
+ _synthIs.clear();
+
+ qDeleteAll(_midiSyntis);
+ _midiSyntis.clear();
+
+ qDeleteAll(_midiOutPorts);
+ _midiOutPorts.clear();
+
+ qDeleteAll(_midiInPorts);
+ _midiInPorts.clear();
+
+ AL::tempomap.clear();
+ AL::sigmap.clear();
+ undoList->clear();
+ redoList->clear();
+ _markerList->clear();
+ pos[0].setTick(0);
+ pos[1].setTick(0);
+ pos[2].setTick(0);
+
+ _masterFlag = true;
+ loopFlag = false;
+ loopFlag = false;
+ punchinFlag = false;
+ punchoutFlag = false;
+ recordFlag = false;
+ soloFlag = false;
+ // seq
+ _recMode = REC_OVERDUP;
+ _cycleMode = CYCLE_NORMAL;
+ _click = false;
+ _quantize = false;
+ _len = 1; // song len in ticks
+ // _tempo = 500000; // default tempo 120
+ if (signal) {
+ emit loopChanged(false);
+ recordChanged(false);
+ }
+ }
+
+//---------------------------------------------------------
+// seqSignal
+// sequencer message to GUI
+// execution environment: gui thread
+//---------------------------------------------------------
+
+void Song::seqSignal(int fd)
+ {
+ char buffer[16];
+
+ int n = ::read(fd, buffer, 16);
+ if (n < 0) {
+ printf("Song: seqSignal(): READ PIPE failed: %s\n",
+ strerror(errno));
+ return;
+ }
+ bool graphChangedCalled = false;
+ bool seekDone = false;
+
+// printf("seqSignal %d\n", n);
+ for (int i = 0; i < n; ++i) {
+// printf(" seqSignal to gui:<%c>\n", buffer[i]);
+ switch(buffer[i]) {
+ case MSG_STOP:
+ stopRolling();
+ break;
+ case MSG_PLAY:
+ setStopPlay(true);
+ break;
+ case MSG_RECORD:
+ setRecord(true);
+ break;
+ case MSG_SEEK:
+ if (!seekDone) {
+ seekDone = true;
+ setPos(0, audio->seqTime()->curTickPos, true, false, !seekInProgress);
+ seekInProgress = false;
+ beat(); // update controller guis
+ }
+ break;
+ case MSG_JACK_SHUTDOWN:
+ restartJack();
+ break;
+
+ case MSG_START_BOUNCE:
+ {
+ bool useFreewheel = config.useJackFreewheelMode;
+ if (useFreewheel) {
+ // check:
+ // we cannot use freewheel, if there are active audio input
+ // strips
+
+ for (iAudioInput ii = _inputs.begin(); ii != _inputs.end(); ++i) {
+ AudioInput* ai = *ii;
+ if (!(ai->mute() || ai->off())) {
+ useFreewheel = false;
+ break;
+ }
+ }
+ if (useFreewheel)
+ audioDriver->setFreewheel(true);
+ }
+ }
+ break;
+
+ case MSG_STOP_BOUNCE:
+ if (audio->freewheel())
+ audioDriver->setFreewheel(false);
+ audio->msgPlay(false);
+ break;
+
+ case MSG_GRAPH_CHANGED:
+ if (!graphChangedCalled) {
+ printf(" graph changed\n");
+ graphChangedCalled = true;
+ audioDriver->graphChanged();
+ }
+ break;
+
+ default:
+ printf("unknown Seq Signal <%c>\n", buffer[i]);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// stopRolling
+//---------------------------------------------------------
+
+void Song::stopRolling()
+ {
+ setStopPlay(false);
+ if (record()) {
+ audio->msgIdle(true); // gain access to all data structures
+
+ WaveTrackList* wl = waves();
+ for (iWaveTrack it = wl->begin(); it != wl->end(); ++it) {
+ WaveTrack* track = *it;
+ if (track->recordFlag() || bounceTrack == track) {
+ track->stopRecording(audio->getStartRecordPos(), audio->getEndRecordPos());
+ }
+ }
+ MidiTrackList* ml = midis();
+ for (iMidiTrack it = ml->begin(); it != ml->end(); ++it) {
+ if ((*it)->recordFlag())
+ (*it)->stopRecording();
+ }
+ OutputList* ol = outputs();
+ for (iAudioOutput io = ol->begin(); io != ol->end(); ++io) {
+ AudioOutput* ao = *io;
+ if (ao->recordFlag())
+ ao->stopRecording(audio->getStartRecordPos(), audio->getEndRecordPos());
+ }
+ audio->msgIdle(false);
+ updateFlags |= SC_PART_MODIFIED;
+ endUndo(updateFlags);
+ setRecord(false);
+ }
+ //
+ // process recorded automation events
+ //
+ for (iTrack it = tracks()->begin(); it != tracks()->end(); ++it) {
+ Track* track = *it;
+ if (!track->autoWrite())
+ continue;
+ CtrlRecList* crl = track->recEvents();
+ CtrlList* cl = track->controller();
+ for (iCtrl icl = cl->begin(); icl != cl->end(); ++icl) {
+ Ctrl* cl = icl->second;
+ int id = cl->id();
+ //
+ // remove old events from record region
+ //
+ bool hasEvents = false;
+// int start = audio->getStartRecordPos().frame();
+// int end = audio->getEndRecordPos().frame();
+// iCtrlVal s = cl->lower_bound(start);
+// iCtrlVal e = cl->lower_bound(end);
+// cl->erase(s, e);
+// }
+
+ for (iCtrlRec icr = crl->begin(); icr != crl->end(); ++icr) {
+ if (icr->id == id && icr->type == 1) {
+ int start = icr->time;
+ ++icr;
+ for (; icr != crl->end(); ++icr) {
+ if (icr->id == id && icr->type == 2) {
+ int end = icr->time;
+ if (track->timeType() == AL::TICKS) {
+ start = AL::tempomap.frame2tick(start);
+ end = AL::tempomap.frame2tick(end);
+ }
+ iCtrlVal s = cl->lowerBound(start);
+ iCtrlVal e = cl->lowerBound(end);
+ while (s != e)
+ cl->erase(s++);
+ hasEvents = true;
+ break;
+ }
+ }
+ if (icr == crl->end())
+ break;
+ }
+ }
+ //
+ // extract all recorded events for controller "id"
+ // from CtrlRecList and put into cl
+ //
+ for (iCtrlRec icr = crl->begin(); icr != crl->end(); ++icr) {
+ if (icr->id == id && icr->type == 0)
+ cl->add(icr->time, icr->val);
+ }
+ track->emitControllerChanged(id);
+ }
+ crl->clear();
+ track->setAutoWrite(false);
+ }
+ }
+
+//---------------------------------------------------------
+// addControllerVal
+// GUI context
+//---------------------------------------------------------
+
+void Song::cmdAddControllerVal(Track* t, int id, const Pos& pos, CVal val)
+ {
+ Ctrl* c = t->getController(id);
+ if (c == 0) {
+ printf("Song::addControllerVal:: no controller %d found\n", id);
+ return;
+ }
+ cmdAddControllerVal(t, c, pos, val);
+ }
+
+void Song::cmdAddControllerVal(Track* t, Ctrl* c, const Pos& p, CVal val)
+ {
+ unsigned time = t->timeType() == AL::FRAMES ? p.frame() : p.tick();
+ iCtrlVal e = c->find(time);
+ if (e == c->end()) {
+ // add new controller event
+ audio->msgAddController(t, c->id(), time, val);
+ }
+ else {
+ //
+ // change controller is handled inline:
+ //
+ CVal oval = c->value(time);
+ startUndo();
+ undoOp(UndoOp::ModifyCtrl, t, c->id(), time, val, oval);
+ c->add(time, val);
+ endUndo(0);
+ }
+ if (!audio->isPlaying() && t->autoRead()) {
+ // current value may have changed
+ unsigned ctime = t->timeType() == AL::FRAMES ? pos[0].frame() : pos[0].tick();
+ CVal cval = c->value(ctime);
+ if (c->curVal().i != cval.i) {
+ if (t->type() == Track::MIDI) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, c->id(), cval.i);
+ ((MidiTrack*)t)->playMidiEvent(&ev);
+ }
+ c->setCurVal(cval);
+ }
+ }
+ t->emitControllerChanged(c->id()); //moved this out here, otherwise canvas is not updated
+ }
+
+//---------------------------------------------------------
+// setControllerVal
+// GUI context
+//---------------------------------------------------------
+
+void Song::setControllerVal(Track* t, int id, CVal val)
+ {
+ Ctrl* c = t->getController(id);
+ if (c == 0) {
+ printf("Song::addControllerVal:: no controller %d found\n", id);
+ return;
+ }
+ setControllerVal(t, c, val);
+ }
+
+void Song::setControllerVal(Track* t, Ctrl* c, CVal val)
+ {
+ if (t->isMidiTrack()) {
+ if (t->type() == Track::MIDI) {
+ MidiTrack* mt = (MidiTrack*)t;
+ MidiEvent ev(0, 0, ME_CONTROLLER, c->id(), val.i);
+ mt->playMidiEvent(&ev);
+ }
+ else if (t->type() == Track::MIDI_OUT) {
+ MidiOutPort* mp = (MidiOutPort*)t;
+ MidiEvent ev(0, 0, ME_CONTROLLER, c->id(), val.i);
+ mp->playMidiEvent(&ev);
+ }
+ }
+ else {
+ c->setCurVal(val);
+ if (c->id() & 0x3ffff000) {
+ // plugin controller
+ AudioTrack* track = (AudioTrack*) t;
+ bool prefader;
+ int pluginIndex, ctrlIndex;
+ getCtrlPlugin(c->id(), &prefader, &pluginIndex, &ctrlIndex);
+ Pipeline* pipe = prefader ? track->prePipe() : track->postPipe();
+ pipe->plugin(pluginIndex)->setParam(ctrlIndex, val.f);
+ }
+ }
+ c->setCurVal(val);
+
+ if (t->autoWrite()) {
+ unsigned time = t->timeType() == AL::FRAMES ? pos[0].frame() : pos[0].tick();
+ if (audio->isPlaying())
+ t->recEvents()->push_back(CtrlRecVal(time, c->id(), val));
+ else {
+ iCtrlVal e = c->find(time);
+ if (e == c->end()) {
+ // add new controller event
+ audio->msgAddController(t, c->id(), time, val);
+ }
+ else {
+ CVal oval = c->value(time);
+ startUndo();
+ undoOp(UndoOp::ModifyCtrl, t, c->id(), time, val, oval);
+ c->add(time, val);
+ endUndo(0);
+ }
+ }
+ }
+ t->emitControllerChanged(c->id());
+ }
+
+//---------------------------------------------------------
+// cmdRemoveControllerVal
+//---------------------------------------------------------
+
+void Song::cmdRemoveControllerVal(Track* t, int id, unsigned time)
+ {
+ audio->msgRemoveController(t, id, time);
+ t->emitControllerChanged(id);
+ }
+
+//---------------------------------------------------------
+// absoluteProjectPath
+//---------------------------------------------------------
+
+QString Song::absoluteProjectPath() const
+ {
+ return QDir::homePath() + "/" + config.projectPath + "/" + _projectPath;
+ }
+
+//---------------------------------------------------------
+// projectPath
+//---------------------------------------------------------
+
+QString Song::projectPath() const
+ {
+ return _projectPath;
+ }
+
+//---------------------------------------------------------
+// projectName
+//---------------------------------------------------------
+
+QString Song::projectName() const
+ {
+ QString name = _projectPath.split("/").last();
+ return name;
+ }
+
+//---------------------------------------------------------
+// setProjectPath
+//---------------------------------------------------------
+
+void Song::setProjectPath(const QString& s)
+ {
+ _projectPath = s;
+ }
+
+//---------------------------------------------------------
+// read
+// return false on error
+//---------------------------------------------------------
+
+bool Song::read(QFile* qf)
+ {
+ QDomDocument doc;
+
+ int line, column;
+ QString err;
+ if (!doc.setContent(qf, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error reading med file: %s\n", error.toLatin1().data());
+ return false;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ QString sversion = e.attribute("version", "1.0");
+ int major=0, minor=0;
+ sscanf(sversion.toLatin1().data(), "%d.%d", &major, &minor);
+ int version = major << 8 + minor;
+ if (version >= 0x201)
+ read30(node.firstChild());
+ else if (version >= 0x200)
+ read20(node);
+ else if (version == 0x100)
+ read10(node.firstChild());
+ else
+ printf("unsupported *.med file version %s\n", sversion.toLatin1().data());
+ }
+ else
+ printf("MusE: %s not supported\n", e.tagName().toLatin1().data());
+ }
+ dirty = false;
+ return true;
+ }
+
+//---------------------------------------------------------
+// read10
+//---------------------------------------------------------
+
+void Song::read10(QDomNode)
+ {
+ printf("reading type 1.0 *.med files not implemented\n");
+ }
+
+//---------------------------------------------------------
+// read30
+//---------------------------------------------------------
+
+void Song::read30(QDomNode node)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "configuration")
+ readConfiguration(node.firstChild());
+ else if (e.tagName() == "song")
+ read(node.firstChild());
+ else if (e.tagName() == "toplevels")
+ muse->readToplevels(node.firstChild());
+ else
+ printf("MusE:read30(): unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// restartJack
+//---------------------------------------------------------
+
+void Song::restartJack()
+ {
+ muse->seqStop();
+ audioState = AUDIO_STOP;
+ for (;;) {
+ // give the user a sensible explanation
+ int btn = QMessageBox::critical( muse, tr("Jack shutdown!"),
+ tr("Jack has detected a performance problem which has lead to\n"
+ "MusE being disconnected.\n"
+ "This could happen due to a number of reasons:\n"
+ "- a performance issue with your particular setup.\n"
+ "- a bug in MusE (or possibly in another connected software).\n"
+ "- a random hiccup which might never occur again.\n"
+ "- jack was voluntary stopped by you or someone else\n"
+ "- jack crashed\n"
+ "If there is a persisting problem you are much welcome to discuss it\n"
+ "on the MusE mailinglist.\n"
+ "(there is information about joining the mailinglist on the MusE\n"
+ " homepage which is available through the help menu)\n"
+ "\n"
+ "To proceed check the status of Jack and try to restart it and then .\n"
+ "click on the Restart button."),
+ "restart", "cancel", "save project"
+ );
+ if (btn == 0) {
+ if (!audioDriver->restart())
+ break;
+ }
+ else if (btn == 2)
+ muse->save();
+ else if (btn == 1)
+ exit(-1);
+ }
+ muse->seqRestart();
+ }
+
+//---------------------------------------------------------
+// routeChanged
+//---------------------------------------------------------
+
+void Song::routeChanged(QAction* a)
+ {
+ audio->msgRoute(a->isChecked(), a->data().value<Route>());
+ }
+
diff --git a/muse_qt4_evolution/muse/song.h b/muse_qt4_evolution/muse/song.h
new file mode 100644
index 00000000..3ad574a0
--- /dev/null
+++ b/muse_qt4_evolution/muse/song.h
@@ -0,0 +1,416 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SONG_H__
+#define __SONG_H__
+
+#include "undo.h"
+#include "midiinport.h"
+#include "midioutport.h"
+#include "miditrack.h"
+#include "midisynti.h"
+#include "wavetrack.h"
+#include "audioinput.h"
+#include "audiooutput.h"
+#include "audiogroup.h"
+#include "synth.h"
+#include "ctrl.h"
+#include "midififo.h"
+
+namespace AL {
+ class Xml;
+ class Marker;
+ class MarkerList;
+ class Pos;
+ };
+
+struct AudioMsg;
+class Event;
+class Track;
+class Part;
+class PartList;
+class Marker;
+class SettingsList;
+
+#define SC_TRACK_INSERTED 1
+#define SC_TRACK_REMOVED 2
+#define SC_TRACK_MODIFIED 4
+#define SC_PART_INSERTED 8
+#define SC_PART_REMOVED 0x10
+#define SC_PART_MODIFIED 0x20
+#define SC_EVENT_INSERTED 0x40
+#define SC_EVENT_REMOVED 0x80
+#define SC_EVENT_MODIFIED 0x100
+#define SC_SIG 0x200 // timing signature
+#define SC_TEMPO 0x400 // tempo map changed
+#define SC_MASTER 0x800 // master flag changed
+#define SC_SELECTION 0x1000
+#define SC_RECFLAG 0x10000
+#define SC_ROUTE 0x20000
+#define SC_CHANNELS 0x40000
+#define SC_CONFIG 0x80000 // midiPort-midiDevice
+#define SC_DRUMMAP 0x100000 // must update drumeditor
+#define SC_AUTOMATION 0x800000
+#define SC_RACK 0x1000000 // mixer rack changed
+#define SC_CLIP_MODIFIED 0x2000000
+
+//---------------------------------------------------------
+// Song
+//---------------------------------------------------------
+
+class Song : public QObject {
+ Q_OBJECT
+
+ public:
+ enum POS { CPOS = 0, LPOS, RPOS };
+ enum FollowMode { NO, JUMP, CONTINUOUS };
+ enum { REC_OVERDUP, REC_REPLACE };
+ enum { CYCLE_NORMAL, CYCLE_MIX, CYCLE_REPLACE };
+ enum { MARKER_CUR, MARKER_ADD, MARKER_REMOVE, MARKER_NAME,
+ MARKER_TICK, MARKER_LOCK };
+
+ private:
+ QString _projectPath;
+ QString _comment;
+ bool _backupWritten; // set after first "save" operation from
+ // user; used to make sure there will
+ // be only one backup for a session
+ bool _created; // project was created in current session
+ QDateTime _createDate;
+
+ MidiFifo eventFifo;
+
+ int updateFlags;
+
+ TrackList _tracks; // tracklist as seen by arranger
+ MidiTrackList _midis;
+ WaveTrackList _waves;
+ InputList _inputs; // audio input ports
+ OutputList _outputs; // audio output ports
+ GroupList _groups; // mixer groups
+ SynthIList _synthIs;
+ MidiSyntiList _midiSyntis;
+ MidiOutPortList _midiOutPorts;
+ MidiInPortList _midiInPorts;
+ Track* _selectedTrack;
+
+ UndoList* undoList;
+ UndoList* redoList;
+ Pos pos[3];
+ AL::MarkerList* _markerList;
+ bool seekInProgress; // user initiated a seek
+
+ bool _masterFlag;
+ bool loopFlag;
+ bool punchinFlag;
+ bool punchoutFlag;
+ bool recordFlag;
+ bool soloFlag;
+ int _recMode;
+ int _cycleMode;
+ bool _click;
+ bool _quantize;
+ unsigned _len; // song len in ticks
+ int _globalPitchShift;
+ void readMarker(QDomNode);
+ void restartJack();
+ void undoPartModify(Part* oPart, Part* nPart, bool undo);
+
+ public slots:
+
+ void undo();
+ void redo();
+
+ void setTempo(int t);
+ void setSig(const AL::TimeSignature&);
+
+ void setMasterFlag(bool flag);
+ void setLoop(bool f);
+ void setRecord(bool f);
+ void setPlay(bool f);
+ void setStop(bool);
+ void forward();
+ void rewindStart();
+ void rewind();
+ void setPunchin(bool f);
+ void setPunchout(bool f);
+ void setClick(bool val);
+ void toggleClick() { setClick(!click()); }
+ void gotoLeftMarker() { setPos(0, lPos()); }
+ void gotoRightMarker() { setPos(0, rPos()); }
+
+ void setQuantize(bool val);
+ void panic();
+ void seqSignal(int fd);
+ Track* addTrack(QAction*);
+ void setMeasureLen(int l);
+ void cmdChangePart(Part*, unsigned, unsigned);
+ void cmdCreateLRPart(Track* track);
+ void setPos(int, const AL::Pos&);
+ void setPos(int, const AL::Pos&, bool sig, bool isSeek = true,
+ bool adjustScrollbar = false);
+ void routeChanged(QAction*);
+
+ signals:
+ void songChanged(int);
+ void posChanged(int, const AL::Pos&, bool);
+ void loopChanged(bool);
+ void recordChanged(bool);
+ void playChanged(bool);
+ void punchinChanged(bool);
+ void punchoutChanged(bool);
+ void clickChanged(bool);
+ void quantizeChanged(bool);
+ void markerChanged(int);
+ void midiPortsChanged();
+ void midiEvent(const MidiEvent&);
+ void trackAdded(Track*, int idx);
+ void trackRemoved(Track*);
+ void lenChanged(const AL::Pos&);
+ void measureLenChanged(int);
+
+ void recordChanged(Track*,bool);
+ void muteChanged(Track*,bool);
+ void soloChanged(Track*,bool);
+ void offChanged(Track*,bool);
+ void autoReadChanged(Track*,bool);
+ void autoWriteChanged(Track*,bool);
+ void trackSelectionChanged(Track*);
+ void tempoChanged();
+
+ public:
+ Song();
+ ~Song();
+
+ void beat();
+ void putEvent(const MidiEvent&);
+ void endMsgCmd();
+ void processMsg(AudioMsg* msg);
+
+ bool dirty;
+ bool backupWritten() const { return _backupWritten; }
+ void setBackupWritten(bool val) { _backupWritten = val; }
+ WaveTrack* bounceTrack;
+
+ void updatePos();
+
+ void read(QDomNode);
+ void write(Xml&) const;
+
+ void clear(bool signal);
+ void update(int flags = -1);
+
+ int globalPitchShift() const { return _globalPitchShift; }
+ void setGlobalPitchShift(int val) { _globalPitchShift = val; }
+
+ //-----------------------------------------
+ // Marker
+ //-----------------------------------------
+
+ AL::MarkerList* marker() const { return _markerList; }
+ AL::Marker* addMarker(const QString& s, const AL::Pos&);
+ void removeMarker(AL::Marker*);
+ AL::Marker* setMarkerName(AL::Marker*, const QString&);
+ AL::Marker* setMarkerTick(AL::Marker*, int);
+ AL::Marker* setMarkerLock(AL::Marker*, bool);
+ void setMarkerCurrent(AL::Marker* m, bool f);
+
+ //-----------------------------------------
+ // transport
+ //-----------------------------------------
+
+ const Pos& cPos() const { return pos[0]; }
+ const Pos& lPos() const { return pos[1]; }
+ const Pos& rPos() const { return pos[2]; }
+ unsigned cpos() const { return pos[0].tick(); }
+ unsigned lpos() const { return pos[1].tick(); }
+ unsigned rpos() const { return pos[2].tick(); }
+
+ bool loop() const { return loopFlag; }
+ bool record() const { return recordFlag; }
+ bool punchin() const { return punchinFlag; }
+ bool punchout() const { return punchoutFlag; }
+ bool masterFlag() const { return _masterFlag; }
+ void setRecMode(int val) { _recMode = val; }
+ int recMode() const { return _recMode; }
+ void setCycleMode(int val) { _cycleMode = val; }
+ int cycleMode() const { return _cycleMode; }
+ bool click() const { return _click; }
+ bool quantize() const { return _quantize; }
+ void setStopPlay(bool);
+ void stopRolling();
+
+ //-----------------------------------------
+ // access tempomap/sigmap (Mastertrack)
+ //-----------------------------------------
+
+ unsigned len() const { return _len; }
+ int roundUpBar(int tick) const;
+ int roundUpBeat(int tick) const;
+ int roundDownBar(int tick) const;
+
+ //-----------------------------------------
+ // event manipulations
+ //-----------------------------------------
+
+ bool addEvent(const Event&, Part*);
+ void changeEvent(const Event&, const Event&, Part*);
+ void deleteEvent(const Event&, Part*);
+ void cmdChangeWave(QString original, QString tmpfile, unsigned sx, unsigned ex);
+
+ //-----------------------------------------
+ // part manipulations
+ //-----------------------------------------
+
+ void cmdAddPart(Part* part);
+ void addPart(Part* part);
+
+ void cmdRemoveParts();
+ void cmdRemovePart(Part* part);
+ void removePart(Part* part);
+
+ void cmdChangePart(Part* oldPart, Part* newPart);
+ void changePart(Part*, Part*);
+
+ void cmdSplitPart(Part* p, const Pos&);
+ void cmdGluePart(Part* p);
+
+ PartList* getSelectedMidiParts() const;
+ PartList* getSelectedWaveParts() const;
+
+ void cmdMovePart(Part*, unsigned, Track*);
+ void cmdLinkPart(Part*, unsigned, Track*);
+ void cmdCopyPart(Part*, unsigned, Track*);
+ void selectPart(Part*, bool add=false);
+
+ //-----------------------------------------
+ // track manipulations
+ //-----------------------------------------
+
+ TrackList* tracks() { return &_tracks; }
+ MidiTrackList* midis() { return &_midis; }
+ WaveTrackList* waves() { return &_waves; }
+ InputList* inputs() { return &_inputs; }
+ OutputList* outputs() { return &_outputs; }
+ GroupList* groups() { return &_groups; }
+ SynthIList* syntis() { return &_synthIs; }
+ MidiOutPortList* midiOutPorts() { return &_midiOutPorts; }
+ MidiSyntiList* midiSyntis() { return &_midiSyntis; }
+ MidiInPortList* midiInPorts() { return &_midiInPorts; }
+
+ bool trackExists(Track*) const;
+ Track* findTrack(const QString& name) const;
+
+ void removeTrack(Track* track);
+ void removeTrack1(Track* track);
+ void removeTrack2(Track* track);
+ void removeTrack3(Track* track);
+ void changeTrackName(Track* track, const QString&);
+
+ void swapTracks(int i1, int i2);
+ void moveTrack(Track*, Track*);
+ void cmdInsertTrack(Track*, int idx);
+ void insertTrack(Track*, int idx);
+
+ void insertTrack0(Track*, int idx);
+ void insertTrack1(Track*, int idx);
+ void insertTrack2(Track*);
+ void readRoute(QDomNode);
+ std::vector<QString>* synthesizer() const;
+
+ void deselectTracks();
+ void selectTrack(Track*);
+
+ Track* selectedTrack() const { return _selectedTrack; }
+ void updateSelectedTrack();
+
+ //-----------------------------------------
+ // undo, redo
+ //-----------------------------------------
+
+ void startUndo();
+ void endUndo(int);
+ void undoOp(UndoOp::UndoType, int, Track*);
+ void undoOp(UndoOp::UndoType, int, int, int = 0);
+ void undoOp(UndoOp::UndoType, Part*);
+ void undoOp(UndoOp::UndoType, const Event& oevent, const Event& nevent, Part*);
+ void undoOp(UndoOp::UndoType type, const Event& nev, Part* part);
+ void undoOp(UndoOp::UndoType, SigEvent* oevent, SigEvent* nevent);
+ void undoOp(UndoOp::UndoType, Part* oPart, Part* nPart);
+ void undoOp(UndoOp::UndoType, Track*, int, unsigned, CVal, CVal);
+ void undoOp(UndoOp::UndoType, Track*, const QString&, const QString&);
+ void undoOp(UndoOp::UndoType type, const char* changedFile, const char* changeData, int startframe, int endframe);
+ bool doUndo1();
+ void doUndo2();
+ void doUndo3();
+ bool doRedo1();
+ void doRedo2();
+ void doRedo3();
+
+ void addUndo(UndoOp& i);
+
+ //-----------------------------------------
+ // Controller
+ //-----------------------------------------
+
+ void cmdAddControllerVal(Track*, Ctrl*, const Pos&, CVal);
+ void cmdAddControllerVal(Track*, int, const Pos&, CVal);
+ void setControllerVal(Track*, Ctrl*, CVal);
+ void setControllerVal(Track*, int, CVal);
+
+ void cmdRemoveControllerVal(Track*,int,unsigned);
+ void setAutoRead(Track*,bool);
+ void setAutoWrite(Track*,bool);
+
+ //-----------------------------------------
+ // Misc/Debug
+ //-----------------------------------------
+
+ void setLen(int);
+ void dumpMaster();
+ void addUpdateFlags(int f) { updateFlags |= f; }
+ bool solo() const { return soloFlag; }
+ void setRecordFlag(Track*, bool);
+ void setMute(Track*,bool);
+ void setMonitor(Track*,bool);
+ void setSolo(Track*,bool);
+ void setOff(Track*,bool);
+
+ QString projectPath() const;
+ QString absoluteProjectPath() const;
+ QString projectName() const;
+ void setProjectPath(const QString&);
+ QString comment() const { return _comment; }
+ void setComment(const QString& s) { _comment = s; }
+ void setCreated(bool val) { _created = val; }
+ bool created() const { return _created; }
+ QDateTime createDate() const { return _createDate; }
+
+ bool read(QFile* qf);
+ void read30(QDomNode node); // muse >= 1.0
+ void read20(QDomNode node); // muse < 1.0
+ void read10(QDomNode);
+ void updateCurrentMarker();
+ };
+
+extern Song* song;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/songfile.cpp b/muse_qt4_evolution/muse/songfile.cpp
new file mode 100644
index 00000000..ff89e41e
--- /dev/null
+++ b/muse_qt4_evolution/muse/songfile.cpp
@@ -0,0 +1,489 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "muse.h"
+#include "song.h"
+#include "arranger.h"
+#include "al/al.h"
+#include "al/xml.h"
+#include "midiedit/drummap.h"
+#include "al/marker.h"
+#include "midictrl.h"
+#include "conf.h"
+#include "al/tempo.h"
+#include "al/sig.h"
+#include "synth.h"
+#include "waveedit/waveedit.h"
+#include "master/masteredit.h"
+#include "midiedit/drumedit.h"
+#include "midiedit/pianoroll.h"
+#include "part.h"
+#include "marker/markerview.h"
+#include "liste/listedit.h"
+
+using namespace AL;
+
+//---------------------------------------------------------
+// readPart
+//---------------------------------------------------------
+
+Part* MusE::readPart(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ Part* part = 0;
+ QString s = e.text();
+ int trackIdx;
+ int partIdx;
+ sscanf(s.toLatin1().data(), "%d:%d", &trackIdx, &partIdx);
+ TrackList* tl = song->tracks();
+ Track* track = song->tracks()->value(trackIdx);
+ if (track) {
+ part = track->parts()->find(partIdx);
+ if (part == 0) {
+ printf("MusE::readPart(): part %d(%d) not found in track <%s>\n",
+ partIdx, track->parts()->size(), track->name().toLatin1().data());
+ }
+ }
+ else {
+ printf("MusE::readPart(): trackIdx >= tl->size %d > %d\n",
+ trackIdx , tl->size());
+ }
+ return part;
+ }
+
+//---------------------------------------------------------
+// readToplevels
+//---------------------------------------------------------
+
+void MusE::readToplevels(QDomNode node)
+ {
+ PartList* pl = new PartList;
+
+ for (;!node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "part") {
+ Part* part = readPart(node);
+ if (part)
+ pl->add(part);
+ else
+ printf("part not found\n");
+ }
+ else if (tag == "PianoRoll") {
+ PianoRoll* pianoroll = new PianoRoll(pl, true);
+// connect(muse, SIGNAL(configChanged()), pianoroll, SLOT(configChanged()));
+ pianoroll->read(node);
+ pianoroll->show();
+ pl = new PartList;
+ }
+ else if (tag == "DrumEdit") {
+ DrumEdit* drumEditor = new DrumEdit(pl, true);
+// connect(muse, SIGNAL(configChanged()), drumEditor, SLOT(configChanged()));
+ drumEditor->read(node);
+ drumEditor->show();
+ pl = new PartList;
+ }
+ else if (tag == "ListEdit") {
+ listEditor = new ListEdit(0);
+ listEditor->show();
+ listEditor->read(node);
+ }
+ else if (tag == "MasterEdit") {
+ MasterEdit* masterEditor = new MasterEdit();
+ masterEditor->show();
+ masterEditor->read(node);
+ }
+ else if (tag == "MarkerView") {
+ showMarker(true);
+ markerView->read(node);
+ }
+ else if (tag == "WaveEdit") {
+ WaveEdit* waveEditor = new WaveEdit(pl, true);
+ waveEditor->read(node);
+ waveEditor->show();
+ connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));
+ pl = new PartList;
+ }
+ else
+ printf("MusE:readToplevels: unknown tag <%s>\n", e.tagName().toLatin1().data());
+ }
+ delete pl;
+ }
+
+//---------------------------------------------------------
+// readMarker
+//---------------------------------------------------------
+
+void Song::readMarker(QDomNode node)
+ {
+ AL::Marker m;
+ m.read(node);
+ _markerList->add(m);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Song::read(QDomNode node)
+ {
+ cloneList.clear();
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ int i = e.text().toInt();
+ if (tag == "configuration")
+ ; // readConfiguration(node.firstChild());
+ else if (tag == "master")
+ setMasterFlag(i);
+ else if (tag == "loop")
+ setLoop(i);
+ else if (tag == "punchin")
+ setPunchin(i);
+ else if (tag == "punchout")
+ setPunchout(i);
+ else if (tag == "record")
+ ; // setRecord(i);
+ else if (tag == "solo")
+ soloFlag = i;
+ else if (tag == "recmode")
+ _recMode = i;
+ else if (tag == "cycle")
+ _cycleMode = i;
+ else if (tag == "click")
+ setClick(i);
+ else if (tag == "quantize")
+ _quantize = i;
+ else if (tag == "len")
+ _len = i;
+ else if (tag == "tempolist")
+ AL::tempomap.read(node);
+ else if (tag == "siglist")
+ AL::sigmap.read(node.firstChild());
+ else if (tag == "miditrack") {
+ MidiTrack* track = new MidiTrack();
+ track->read(node.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (tag == "drumtrack") {
+ MidiTrack* track = new MidiTrack();
+ //TODO track->setUseDrumMap(true);
+ track->read(node.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (tag == "wavetrack") {
+ WaveTrack* track = new WaveTrack();
+ track->read(node.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (tag == "AudioInput") {
+ AudioInput* track = new AudioInput();
+ track->read(node.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (tag == "AudioOutput") {
+ AudioOutput* track = new AudioOutput();
+ track->read(node.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (tag == "AudioGroup") {
+ AudioGroup* track = new AudioGroup();
+ track->read(node.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (tag == "SynthI") {
+ SynthI* track = new SynthI();
+ track->read(node.firstChild());
+ // insertTrack(track, -1);
+ }
+ else if (tag == "MidiOutPort") {
+ MidiOutPort* track = new MidiOutPort();
+ track->read(node.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (tag == "MidiInPort") {
+ MidiInPort* track = new MidiInPort();
+ track->read(node.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (tag == "MidiSynti") {
+ MidiSynti* track = new MidiSynti();
+ track->read(node.firstChild());
+ // insertTrack0(track, -1);
+ }
+ else if (tag == "arranger")
+ muse->arranger->readStatus(node.firstChild());
+ else if (tag == "Route")
+ readRoute(node);
+ else if (tag == "marker")
+ readMarker(node);
+ else if (tag == "globalPitchShift")
+ _globalPitchShift = i;
+ else if (tag == "cpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::CPOS, p, false, false, false);
+ }
+ else if (tag == "lpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::LPOS, p, false, false, false);
+ }
+ else if (tag == "rpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::RPOS, p, false, false, false);
+ }
+ else if (tag == "Pianoroll")
+ PianoRoll::readConfiguration(node);
+ else if (tag == "DrumEdit")
+ DrumEdit::readConfiguration(node);
+ else if (tag == "comment")
+ _comment = e.text();
+ else if (tag == "createDate")
+ _createDate = QDateTime::fromString(e.text(), Qt::ISODate);
+ else if (tag == "LenInSec")
+ ;
+ else
+ printf("MusE:Song: unknown tag %s\n", tag.toLatin1().data());
+ }
+ dirty = false;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Song::write(Xml& xml) const
+ {
+ xml.stag("song");
+ xml.tag("comment", _comment);
+ xml.tag("createDate", _createDate.toString(Qt::ISODate));
+ int n = AL::tempomap.tick2frame(_len);
+ xml.tag("LenInSec", n / AL::sampleRate);
+
+ xml.tag("cpos", cpos());
+ xml.tag("rpos", rpos());
+ xml.tag("lpos", lpos());
+ xml.tag("master", _masterFlag);
+ if (loopFlag)
+ xml.tag("loop", loopFlag);
+ if (punchinFlag)
+ xml.tag("punchin", punchinFlag);
+ if (punchoutFlag)
+ xml.tag("punchout", punchoutFlag);
+ if (soloFlag)
+ xml.tag("solo", soloFlag);
+ if (_recMode != REC_OVERDUP)
+ xml.tag("recmode", _recMode);
+ if (_cycleMode != CYCLE_NORMAL)
+ xml.tag("cycle", _cycleMode);
+ if (_click)
+ xml.tag("click", _click);
+ if (_quantize)
+ xml.tag("quantize", _quantize);
+ xml.tag("len", _len);
+
+ if (_globalPitchShift)
+ xml.tag("globalPitchShift", _globalPitchShift);
+
+ cloneList.clear();
+
+ // write tracks
+ for (ciTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ (*i)->write(xml);
+
+ // write routing
+ for (ciTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ (*i)->writeRouting(xml);
+ muse->arranger->writeStatus(xml);
+
+ AL::tempomap.write(xml);
+ AL::sigmap.write(xml);
+ _markerList->write(xml);
+
+ xml.etag("song");
+ }
+
+//---------------------------------------------------------
+// write
+// write song
+//---------------------------------------------------------
+
+void MusE::write(Xml& xml) const
+ {
+ xml.header();
+
+ xml.stag("muse version=\"3.0\"");
+ writeConfiguration(xml);
+
+ song->write(xml);
+
+ xml.stag("toplevels");
+ foreach(QWidget* w, QApplication::topLevelWidgets()) {
+ if (!w->isVisible())
+ continue;
+ if (strcmp("DrumEdit", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("PianoRoll", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("MasterEdit", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("WaveEdit", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("ListEdit", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("MarkerView", w->metaObject()->className()) == 0)
+ ((TopWin*)w)->write(xml);
+ else if (strcmp("Mixer", w->metaObject()->className()) == 0)
+ ;
+ else if (strcmp("Transport", w->metaObject()->className()) == 0)
+ ;
+ else if (strcmp("MusE", w->metaObject()->className()) == 0)
+ ;
+ else if (strcmp("QDesktopWidget", w->metaObject()->className()) == 0)
+ ;
+ else
+ printf("TopLevel <%s>\n", w->metaObject()->className());
+ }
+ xml.etag("toplevels");
+ xml.etag("muse");
+ }
+
+//---------------------------------------------------------
+// read20
+// read old file versions (muse < 1.0)
+//---------------------------------------------------------
+
+void Song::read20(QDomNode node)
+ {
+ printf("Warning: importing old muse file version\n");
+
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e = n.toElement();
+ if (e.isNull())
+ continue;
+ QString t(e.tagName());
+ if (t == "configuration")
+ readConfiguration(node.firstChild());
+ else if (t == "song") {
+ for (QDomNode n1 = n.firstChild(); !n1.isNull(); n1 = n1.nextSibling()) {
+ QDomElement e = n1.toElement();
+ if (e.isNull())
+ continue;
+ QString t(e.tagName());
+ int i = e.text().toInt();
+ if (t == "automation")
+ ;
+ else if (t == "cpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::CPOS, p, false, false, false);
+ }
+ else if (t == "rpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::RPOS, p, false, false, false);
+ }
+ else if (t == "lpos") {
+ int pos = i;
+ Pos p(pos, AL::TICKS);
+ setPos(Song::LPOS, p, false, false, false);
+ }
+ else if (t == "master")
+ setMasterFlag(i);
+ else if (t == "loop")
+ setLoop(i);
+ else if (t == "punchin")
+ setPunchin(i);
+ else if (t == "punchout")
+ setPunchout(i);
+ else if (t == "record")
+ ;
+ else if (t == "solo")
+ soloFlag = i;
+ else if (t == "type")
+ ;
+ else if (t == "recmode")
+ _recMode = i;
+ else if (t == "cycle")
+ _cycleMode = i;
+ else if (t == "click")
+ setClick(i);
+ else if (t == "quantize")
+ _quantize = i;
+ else if (t == "len")
+ _len = i;
+ else if (t == "follow")
+ ;
+ else if (t == "drummap")
+ ;
+ else if (t == "siglist")
+ AL::sigmap.read(node.firstChild());
+ else if (t == "tempolist")
+ AL::tempomap.read(node);
+ else if (t == "Route")
+ ;
+ else if (t == "AudioAux") {
+ AudioGroup* track = new AudioGroup();
+ track->read(n1.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (t == "AudioInput") {
+ AudioInput* track = new AudioInput();
+ track->read(n1.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (t == "AudioGroup") {
+ AudioGroup* track = new AudioGroup();
+ track->read(n1.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (t == "AudioOutput") {
+ AudioOutput* track = new AudioOutput();
+ track->read(n1.firstChild());
+ insertTrack0(track,-1);
+ }
+ else if (t == "wavetrack") {
+ MidiTrack* track = new MidiTrack();
+ track->read(n1.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (t == "drumtrack") {
+ MidiTrack* track = new MidiTrack();
+ track->read(n1.firstChild());
+ insertTrack0(track, -1);
+ }
+ else if (t == "miditrack") {
+ MidiTrack* track = new MidiTrack();
+ track->read(n1.firstChild());
+ insertTrack0(track, -1);
+ }
+ else
+ domError(n1);
+ }
+ }
+ else if (t == "toplevels") {
+ }
+ else
+ domError(n);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/songpart.cpp b/muse_qt4_evolution/muse/songpart.cpp
new file mode 100644
index 00000000..72faf7f8
--- /dev/null
+++ b/muse_qt4_evolution/muse/songpart.cpp
@@ -0,0 +1,371 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "part.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// cmdAddPart
+// GUI context + startUndo/endUndo
+//---------------------------------------------------------
+
+void Song::cmdAddPart(Part* part)
+ {
+ Track* track = part->track();
+ //
+ // create default name:
+ //
+ for (int i = 1;;++i) {
+ PartList* pl = track->parts();
+ bool found = false;
+ QString name = QString("Part-%1").arg(i);
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ if (name == ip->second->name()) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ part->setName(name);
+ break;
+ }
+ }
+ startUndo();
+ addPart(part);
+ endUndo(0);
+ track->partListChanged();
+ }
+
+//---------------------------------------------------------
+// addPart
+// GUI context
+//---------------------------------------------------------
+
+void Song::addPart(Part* part)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_PART;
+ msg.p1 = part;
+ audio->sendMessage(&msg, false);
+ undoOp(UndoOp::AddPart, part);
+ updateFlags |= SC_PART_INSERTED;
+ if (len() < part->endTick())
+ setLen(part->endTick());
+ }
+
+//---------------------------------------------------------
+// cmdRemovePart
+//---------------------------------------------------------
+
+void Song::cmdRemovePart(Part* part)
+ {
+ startUndo();
+ removePart(part);
+ endUndo(0);
+ }
+
+//---------------------------------------------------------
+// cmdRemoveParts
+// remove selected parts
+//---------------------------------------------------------
+
+void Song::cmdRemoveParts()
+ {
+ TrackList* tl = song->tracks();
+ PartList pl;
+
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ PartList* pl2 = (*it)->parts();
+ for (iPart ip = pl2->begin(); ip != pl2->end(); ++ip) {
+ if (ip->second->selected())
+ pl.add(ip->second);
+ }
+ }
+ startUndo();
+ for (iPart ip = pl.begin(); ip != pl.end(); ++ip)
+ removePart(ip->second);
+ endUndo(0);
+ }
+
+//---------------------------------------------------------
+// removePart
+//---------------------------------------------------------
+
+void Song::removePart(Part* part)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_PART;
+ msg.p1 = part;
+ audio->sendMessage(&msg, false);
+ undoOp(UndoOp::DeletePart, part);
+ updateFlags |= SC_PART_REMOVED;
+ part->deref();
+ part->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdChangePart
+// realtime context
+//---------------------------------------------------------
+
+void Song::cmdChangePart(Part* oldPart, Part* newPart)
+ {
+ startUndo();
+ changePart(oldPart, newPart);
+ endUndo(0);
+ newPart->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// changePart
+//---------------------------------------------------------
+
+void Song::changePart(Part* oldPart, Part* newPart)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_PART;
+ msg.p1 = oldPart;
+ msg.p2 = newPart;
+ audio->sendMessage(&msg, false);
+ undoOp(UndoOp::ModifyPart, oldPart, newPart);
+ updateFlags = SC_PART_MODIFIED;
+ if (len() < newPart->endTick())
+ setLen(newPart->endTick());
+ }
+
+//---------------------------------------------------------
+// cmdChangePart
+// extend/shrink part in front or at end
+//---------------------------------------------------------
+
+void Song::cmdChangePart(Part* oPart, unsigned pos, unsigned len)
+ {
+ startUndo();
+ //
+ // move events so they stay at same position in song
+ //
+ int delta = oPart->tick() - pos;
+ Part* nPart = new Part(*oPart);
+ nPart->clone(new EventList);
+
+ const EventList* s = oPart->events();
+ for (ciEvent ie = s->begin(); ie != s->end(); ++ie) {
+ int tick = ie->first + delta;
+ if (tick >= 0 && tick < int(len)) {
+ Event ev = ie->second.clone();
+ ev.move(delta);
+ nPart->addEvent(ev, unsigned(tick));
+ }
+ }
+ if (oPart->fillLen() > 0 && len < (unsigned)oPart->fillLen())
+ oPart->setFillLen(len);
+ if (oPart->lenTick() < len && oPart->fillLen() > 0) {
+ unsigned loop = oPart->fillLen();
+ unsigned fillLen = len - oPart->lenTick();
+ for (unsigned i = 0; i < fillLen / loop; ++i) {
+ int start = oPart->lenTick() + loop * i;
+ for (ciEvent ie = s->begin(); ie != s->end(); ++ie) {
+ if (ie->first >= loop)
+ break;
+ Event ev = ie->second.clone();
+ ev.move(start);
+ nPart->addEvent(ev, ie->first + start);
+ }
+ }
+ }
+ nPart->setLenTick(len);
+ nPart->setTick(pos);
+ changePart(oPart, nPart);
+ endUndo(0);
+ oPart->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdMovePart
+//---------------------------------------------------------
+
+void Song::cmdMovePart(Part* oPart, unsigned pos, Track* track)
+ {
+ Track* oTrack = oPart->track();
+ Part* nPart = new Part(*oPart);
+ nPart->setTrack(track);
+ nPart->setTick(pos);
+ startUndo();
+ if (oPart->track() != track) {
+ removePart(oPart);
+ addPart(nPart);
+ }
+ else {
+ changePart(oPart, nPart);
+ }
+ endUndo(0);
+ oTrack->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdLinkPart
+//---------------------------------------------------------
+
+void Song::cmdLinkPart(Part* sPart, unsigned pos, Track* track)
+ {
+ Part* dPart = track->newPart(sPart, true);
+ dPart->setTick(pos);
+ cmdAddPart(dPart);
+ sPart->track()->partListChanged();
+ dPart->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdCopyPart
+//---------------------------------------------------------
+
+void Song::cmdCopyPart(Part* sPart, unsigned pos, Track* track)
+ {
+ bool clone = sPart->isClone();
+ Part* dPart = track->newPart(sPart, clone);
+ dPart->setTick(pos);
+ if (!clone) {
+ //
+ // Copy Events
+ //
+ EventList* se = sPart->events();
+ EventList* de = dPart->events();
+ for (iEvent i = se->begin(); i != se->end(); ++i) {
+ Event oldEvent = i->second;
+ Event ev = oldEvent.clone();
+ de->add(ev);
+ }
+ }
+ cmdAddPart(dPart);
+ sPart->track()->partListChanged();
+ dPart->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdCreateLRPart
+//---------------------------------------------------------
+
+void Song::cmdCreateLRPart(Track* track)
+ {
+ Part* part = track->newPart();
+ if (part) {
+ part->setTick(pos[1].tick());
+ part->setLenTick(pos[2].tick()-pos[1].tick());
+ part->setSelected(true);
+ cmdAddPart(part);
+ }
+ }
+
+//---------------------------------------------------------
+// selectPart
+//---------------------------------------------------------
+
+void Song::selectPart(Part* part, bool add)
+ {
+ if (add) {
+ part->setSelected(!part->selected());
+ part->track()->partListChanged();
+ return;
+ }
+ for (iTrack it = _tracks.begin(); it != _tracks.end(); ++it) {
+ PartList* pl = (*it)->parts();
+ bool changed = false;
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ bool f = part == ip->second;
+ if (ip->second->selected() != f) {
+ ip->second->setSelected(f);
+ changed = true;
+ }
+ }
+ if (changed)
+ (*it)->partListChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// cmdSplitPart
+//---------------------------------------------------------
+
+void Song::cmdSplitPart(Part* part, const Pos& pos)
+ {
+ int tick = pos.tick();
+ int l1 = tick - part->tick();
+ int l2 = part->lenTick() - l1;
+ if (l1 <= 0 || l2 <= 0)
+ return;
+ Part* p1;
+ Part* p2;
+ part->track()->splitPart(part, tick, p1, p2);
+
+ startUndo();
+ changePart(part, p1);
+ addPart(p2);
+ endUndo(0);
+ part->track()->partListChanged();
+ }
+
+//---------------------------------------------------------
+// cmdGluePart
+//---------------------------------------------------------
+
+void Song::cmdGluePart(Part* oPart)
+ {
+ Track* track = oPart->track();
+ PartList* pl = track->parts();
+ Part* nextPart = 0;
+
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ if (ip->second == oPart) {
+ ++ip;
+ if (ip == pl->end())
+ return;
+ nextPart = ip->second;
+ break;
+ }
+ }
+
+ Part* nPart = track->newPart(oPart);
+ nPart->setLenTick(nextPart->tick() + nextPart->lenTick() - oPart->tick());
+
+ // populate nPart with Events from oPart and nextPart
+
+ EventList* sl1 = oPart->events();
+ EventList* dl = nPart->events();
+
+ for (iEvent ie = sl1->begin(); ie != sl1->end(); ++ie)
+ dl->add(ie->second);
+
+ EventList* sl2 = nextPart->events();
+ int tickOffset = nextPart->tick() - oPart->tick();
+
+ for (iEvent ie = sl2->begin(); ie != sl2->end(); ++ie) {
+ Event event = ie->second.clone();
+ event.move(tickOffset);
+ dl->add(event);
+ }
+ startUndo();
+ removePart(nextPart);
+ changePart(oPart, nPart);
+ endUndo(0);
+ track->partListChanged();
+ }
+
+
diff --git a/muse_qt4_evolution/muse/songtrack.cpp b/muse_qt4_evolution/muse/songtrack.cpp
new file mode 100644
index 00000000..8a865620
--- /dev/null
+++ b/muse_qt4_evolution/muse/songtrack.cpp
@@ -0,0 +1,715 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "audio.h"
+#include "midiplugin.h"
+#include "audiodev.h"
+#include "muse.h"
+
+//---------------------------------------------------------
+// deselectTracks
+//---------------------------------------------------------
+
+void Song::deselectTracks()
+ {
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t)
+ (*t)->setSelected(false);
+ }
+
+//---------------------------------------------------------
+// selectTrack
+//---------------------------------------------------------
+
+void Song::selectTrack(Track* track)
+ {
+ bool changed = false;
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ bool select = *t == track;
+ if ((*t)->selected() != select) {
+ (*t)->setSelected(select);
+ changed = true;
+ }
+ }
+ if (changed) {
+ updateSelectedTrack();
+ trackSelectionChanged(_selectedTrack);
+ }
+ }
+
+//---------------------------------------------------------
+// updateSelectedTrack
+// set _selectedTrack to first selected track
+//---------------------------------------------------------
+
+void Song::updateSelectedTrack()
+ {
+ _selectedTrack = 0;
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ bool select = (*t)->selected();
+ if (select) {
+ _selectedTrack = *t;
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// addTrack
+// called from GUI context
+//---------------------------------------------------------
+
+Track* Song::addTrack(QAction* action)
+ {
+ int t = action->data().toInt();
+
+ deselectTracks();
+ Track* track = 0;
+
+ Track::TrackType type = (Track::TrackType) t;
+ if (t >= 5000) {
+ int idx = t - 5000;
+ type = Track::MIDI_SYNTI;
+ int k = 0;
+ iMidiPlugin i;
+ for (i = midiPlugins.begin(); i != midiPlugins.end(); ++i) {
+ if ((*i)->type() != MEMPI_GENERATOR)
+ continue;
+ if (k == idx)
+ break;
+ ++k;
+ }
+ if (i == midiPlugins.end()) {
+ fprintf(stderr, "Song::addTrack: midi synti not found\n");
+ return 0;
+ }
+ MidiPlugin* s = *i;
+ MidiSynti* si = new MidiSynti();
+ QString sName(s->name());
+ for (k = s->instances(); k < 1000; ++k) {
+ QString instanceName = (k == 0) ?
+ sName : instanceName.arg(sName).arg(k);
+
+ MidiSyntiList* sl = midiSyntis();
+ iMidiSynti sii;
+ for (sii = sl->begin(); sii != sl->end(); ++sii) {
+ if ((*sii)->name() == instanceName)
+ break;
+ }
+ if (sii == sl->end()) {
+ si->setName(instanceName);
+ break;
+ }
+ }
+ if (si->initInstance(s)) {
+ delete si;
+ return 0;
+ }
+ track = si;
+ }
+ else if (t >= 1000) {
+ type = Track::AUDIO_SOFTSYNTH;
+ QString sclass = synthis[t-1000]->name();
+
+ Synth* s = findSynth(sclass);
+ if (s == 0) {
+ fprintf(stderr, "synthi class <%s> not found\n", sclass.toLatin1().data());
+ return 0;
+ }
+
+ SynthI* si = new SynthI();
+ int i;
+ for (i = s->instances(); i < 1000; ++i) {
+ QString instanceName = (i == 0) ?
+ s->name() : QString("%1-%2").arg(s->name()).arg(i);
+
+ SynthIList* sl = syntis();
+ iSynthI sii;
+ for (sii = sl->begin(); sii != sl->end(); ++sii) {
+ if ((*sii)->name() == instanceName)
+ break;
+ }
+ if (sii == sl->end()) {
+ si->setName(instanceName);
+ break;
+ }
+ }
+ if (si->initInstance(s)) {
+ delete si;
+ return 0;
+ }
+ track = si;
+ }
+ else {
+ switch (type) {
+ case Track::MIDI:
+ track = new MidiTrack();
+ break;
+ case Track::MIDI_OUT:
+ track = new MidiOutPort();
+ break;
+ case Track::MIDI_IN:
+ track = new MidiInPort();
+ break;
+ case Track::WAVE:
+ track = new WaveTrack();
+ break;
+ case Track::AUDIO_OUTPUT:
+ track = new AudioOutput();
+ break;
+ case Track::AUDIO_GROUP:
+ track = new AudioGroup();
+ break;
+ case Track::AUDIO_INPUT:
+ track = new AudioInput();
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ case Track::TRACK_TYPES:
+ default:
+ printf("Song::addTrack() illegal type %d\n", type);
+ abort();
+ }
+ if (track == 0)
+ return 0;
+ }
+ track->setDefaultName();
+ cmdInsertTrack(track, -1);
+ return track;
+ }
+
+//---------------------------------------------------------
+// cmdInsertTrack
+//---------------------------------------------------------
+
+void Song::cmdInsertTrack(Track* track, int idx)
+ {
+ startUndo();
+ insertTrack(track, idx);
+ endUndo(SC_TRACK_INSERTED | SC_ROUTE);
+ selectTrack(track);
+ }
+
+//---------------------------------------------------------
+// insertTrack
+//---------------------------------------------------------
+
+void Song::insertTrack(Track* track, int idx)
+ {
+ //
+ // add default routes
+ //
+ OutputList* ol = outputs();
+ AudioOutput* ao = 0;
+ if (!ol->empty())
+ ao = ol->front();
+
+ switch (track->type()) {
+ case Track::TRACK_TYPES:
+ case Track::MIDI_OUT:
+ {
+#if 0
+ QList<PortName> op = midiDriver->outputPorts(false);
+ if (!op.isEmpty()) {
+ RouteNode src(track);
+ RouteNode dst(op.back().port, -1, RouteNode::MIDIPORT);
+ Route r = Route(src, dst);
+ track->addOutRoute(r);
+ }
+#endif
+ //TODO: autoconnect to JACK midi ports
+ }
+ break;
+
+ case Track::MIDI_IN:
+ {
+#if 0
+ QList<PortName> op = midiDriver->inputPorts(true);
+ if (!op.isEmpty()) {
+ RouteNode src(op.back().port, -1, RouteNode::MIDIPORT);
+ RouteNode dst(track);
+ Route r = Route(src, dst);
+ track->addInRoute(r);
+ }
+#endif
+ //TODO: autoconnect to JACK midi ports
+ }
+ break;
+
+ case Track::MIDI_SYNTI:
+ break;
+ case Track::MIDI:
+ //
+ // connect to first channel of all all midi input ports,
+ // if there is not already a route
+ //
+ if (track->noInRoute()) {
+ MidiInPortList* mi = midiInPorts();
+ RouteNode dst(track);
+ for (iMidiInPort i = mi->begin(); i != mi->end(); ++i) {
+ RouteNode src(*i, 0, RouteNode::TRACK);
+ track->addInRoute(Route(src, dst));
+ }
+ }
+ //
+ // connect to first free input channel in midi output ports
+ //
+ if (track->noOutRoute()) {
+ MidiOutPortList* mo = midiOutPorts();
+ for (iMidiOutPort i = mo->begin(); i != mo->end(); ++i) {
+ RouteList* rl = (*i)->inRoutes();
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ RouteNode src(track);
+ RouteNode dst(*i, ch, RouteNode::TRACK);
+ Route r(src, dst);
+ bool channelUsed = false;
+ for (iRoute ir = rl->begin(); ir != rl->end(); ++ir) {
+ if (ir->dst.channel == ch) {
+ channelUsed = true;
+ break;
+ }
+ }
+ if (!channelUsed) {
+ track->addOutRoute(r);
+ break;
+ }
+ }
+ if (!track->noOutRoute())
+ break;
+ }
+ }
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ if (ao)
+ track->addOutRoute(Route(RouteNode(track), RouteNode(ao)));
+ break;
+
+ case Track::AUDIO_INPUT:
+ {
+ // connect first input channel to first available jack output
+ // etc.
+ QList<PortName> op = audioDriver->outputPorts(false);
+ QList<PortName>::iterator is = op.begin();
+ for (int ch = 0; ch < track->channels(); ++ch) {
+ if (is != op.end()) {
+ RouteNode src(is->port, -1, RouteNode::AUDIOPORT);
+ RouteNode dst(track, ch, RouteNode::TRACK);
+ Route r = Route(src, dst);
+ track->addInRoute(r);
+ ++is;
+ }
+ }
+ }
+ break;
+ case Track::AUDIO_OUTPUT:
+ {
+ QList<PortName> op = audioDriver->inputPorts(false);
+ QList<PortName>::iterator is = op.begin();
+ for (int ch = 0; ch < track->channels(); ++ch) {
+ if (is != op.end()) {
+ RouteNode src(track, ch, RouteNode::TRACK);
+ RouteNode dst(is->port, -1, RouteNode::AUDIOPORT);
+ Route r = Route(src, dst);
+ track->addOutRoute(r);
+ ++is;
+ }
+ }
+ }
+ break;
+ }
+ insertTrack1(track, idx);
+
+ undoOp(UndoOp::AddTrack, idx, track);
+ AudioMsg msg;
+ msg.id = SEQM_ADD_TRACK;
+ msg.track = track;
+ msg.ival = idx;
+ audio->sendMsg(&msg);
+ emit trackAdded(track, idx);
+ }
+
+//---------------------------------------------------------
+// insertTrack0
+// can only be called if sequencer is idle
+// (during song load)
+//---------------------------------------------------------
+
+void Song::insertTrack0(Track* track, int idx)
+ {
+ insertTrack1(track, idx);
+ insertTrack2(track);
+ }
+
+//---------------------------------------------------------
+// insertTrack1
+// non realtime part of insertTrack
+//---------------------------------------------------------
+
+void Song::insertTrack1(Track* track, int idx)
+ {
+ if (idx == -1)
+ idx = _tracks.size();
+ _tracks.insert(idx, track);
+ if (track->type() == Track::AUDIO_SOFTSYNTH) {
+ SynthI* s = (SynthI*)track;
+ Synth* sy = s->synth();
+ if (!s->isActivated())
+ s->initInstance(sy);
+ }
+ if (audioState == AUDIO_RUNNING) {
+ track->activate1();
+ track->activate2();
+ }
+ }
+
+//---------------------------------------------------------
+// insertTrack2
+// realtime part
+//---------------------------------------------------------
+
+void Song::insertTrack2(Track* track)
+ {
+ switch(track->type()) {
+ case Track::MIDI_SYNTI:
+ _midiSyntis.push_back((MidiSynti*)track);
+ break;
+ case Track::MIDI:
+ _midis.push_back((MidiTrack*)track);
+ break;
+ case Track::MIDI_OUT:
+ _midiOutPorts.push_back((MidiOutPort*)track);
+ break;
+ case Track::MIDI_IN:
+ _midiInPorts.push_back((MidiInPort*)track);
+ break;
+ case Track::WAVE:
+ _waves.push_back((WaveTrack*)track);
+ break;
+ case Track::AUDIO_OUTPUT:
+ _outputs.push_back((AudioOutput*)track);
+ break;
+ case Track::AUDIO_GROUP:
+ _groups.push_back((AudioGroup*)track);
+ break;
+ case Track::AUDIO_INPUT:
+ _inputs.push_back((AudioInput*)track);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*)track;
+ midiInstruments.push_back(s->instrument());
+ _synthIs.push_back(s);
+ }
+ break;
+ default:
+ fprintf(stderr, "insertTrack2: unknown track type %d\n", track->type());
+ // abort();
+ return;
+ }
+
+ //
+ // connect routes
+ //
+ if (track->type() == Track::AUDIO_OUTPUT || track->type() == Track::MIDI_OUT) {
+ foreach(Route r, *(track->inRoutes())) {
+ if (r.src.type != RouteNode::AUXPLUGIN) {
+ r.src.track->addOutRoute(r);
+ }
+ }
+ }
+ else if (track->type() == Track::AUDIO_INPUT || track->type() == Track::MIDI_IN) {
+ foreach(Route r, *(track->outRoutes())) {
+ if (r.dst.type != RouteNode::AUXPLUGIN) {
+ r.dst.track->addInRoute(r);
+ }
+ }
+ }
+ else {
+ foreach(Route r, *(track->inRoutes())) {
+ if (r.src.type != RouteNode::AUXPLUGIN) {
+ r.src.track->addOutRoute(r);
+ }
+ }
+ foreach(Route r, *(track->outRoutes())) {
+ if (r.dst.type != RouteNode::AUXPLUGIN) {
+ r.dst.track->addInRoute(r);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// removeTrack
+// called from gui context
+//---------------------------------------------------------
+
+void Song::removeTrack(Track* track)
+ {
+ startUndo();
+ int idx = _tracks.indexOf(track);
+ undoOp(UndoOp::DeleteTrack, idx, track);
+ removeTrack1(track);
+ audio->msgRemoveTrack(track);
+ removeTrack3(track);
+ endUndo(SC_TRACK_REMOVED | SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// removeTrack1
+// non realtime part of removeTrack
+//---------------------------------------------------------
+
+void Song::removeTrack1(Track* track)
+ {
+ track->deactivate();
+ _tracks.removeAt(_tracks.indexOf(track));
+ }
+
+//---------------------------------------------------------
+// removeTrack2
+// called from RT context
+//---------------------------------------------------------
+
+void Song::removeTrack2(Track* track)
+ {
+ switch (track->type()) {
+ case Track::MIDI_SYNTI:
+ _midiSyntis.removeAt(_midiSyntis.indexOf((MidiSynti*)track));
+ break;
+ case Track::MIDI:
+ _midis.removeAt(_midis.indexOf((MidiTrack*)track));
+ break;
+ case Track::MIDI_OUT:
+ _midiOutPorts.removeAt(_midiOutPorts.indexOf((MidiOutPort*)track));
+ break;
+ case Track::MIDI_IN:
+ _midiInPorts.removeAt(_midiInPorts.indexOf((MidiInPort*)track));
+ break;
+ case Track::WAVE:
+ _waves.removeAt(_waves.indexOf((WaveTrack*)track));
+ break;
+ case Track::AUDIO_OUTPUT:
+ _outputs.removeAt(_outputs.indexOf((AudioOutput*)track));
+ break;
+ case Track::AUDIO_INPUT:
+ _inputs.removeAt(_inputs.indexOf((AudioInput*)track));
+ break;
+ case Track::AUDIO_GROUP:
+ _groups.removeAt(_groups.indexOf((AudioGroup*)track));
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*) track;
+ s->deactivate2();
+ _synthIs.removeAt(_synthIs.indexOf(s));
+ }
+ break;
+ case Track::TRACK_TYPES:
+ return;
+ }
+ //
+ // remove routes
+ //
+ foreach (const Route r, *(track->inRoutes())) {
+ if (r.src.type != RouteNode::TRACK)
+ continue;
+ int idx = r.src.track->outRoutes()->indexOf(r);
+ if (idx != -1)
+ r.src.track->outRoutes()->removeAt(idx);
+ else
+ printf("Song::removeTrack2(): input route not found\n");
+ }
+ foreach (const Route r, *(track->outRoutes())) {
+ if (r.dst.type != RouteNode::TRACK)
+ continue;
+ int idx = r.dst.track->inRoutes()->indexOf(r);
+ if (idx != -1)
+ r.dst.track->inRoutes()->removeAt(idx);
+ else {
+ printf("Song::removeTrack2(): output route not found\n");
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// removeTrack3
+// non realtime part of removeTrack
+//---------------------------------------------------------
+
+void Song::removeTrack3(Track* track)
+ {
+ if (track->type() == Track::AUDIO_SOFTSYNTH) {
+ SynthI* s = (SynthI*) track;
+ s->deactivate3();
+ }
+ emit trackRemoved(track);
+ }
+
+//---------------------------------------------------------
+// synthesizer
+//---------------------------------------------------------
+
+std::vector<QString>* Song::synthesizer() const
+ {
+ std::vector<QString>* l = new std::vector<QString>;
+
+ for (std::vector<Synth*>::const_iterator i = synthis.begin();
+ i != synthis.end(); ++i) {
+ l->push_back((*i)->name());
+ }
+ return l;
+ }
+
+//---------------------------------------------------------
+// setRecordFlag
+//---------------------------------------------------------
+
+void Song::setRecordFlag(Track* track, bool val)
+ {
+ if (track->type() == Track::AUDIO_OUTPUT) {
+ if (!val && track->recordFlag() == false) {
+ muse->bounceToFile();
+ }
+ }
+ track->setRecordFlag(val);
+ }
+
+//---------------------------------------------------------
+// setMute
+//---------------------------------------------------------
+
+void Song::setMute(Track* track, bool val)
+ {
+ track->setMute(val);
+ emit muteChanged(track, track->mute());
+ }
+
+//---------------------------------------------------------
+// setMonitor
+//---------------------------------------------------------
+
+void Song::setMonitor(Track* track, bool val)
+ {
+ track->setMonitor(val);
+// emit monitorChanged(track, track->mute());
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+void Song::setOff(Track* track, bool val)
+ {
+ track->setOff(val);
+ emit offChanged(track, track->off());
+ }
+
+//---------------------------------------------------------
+// setAutoRead
+//---------------------------------------------------------
+
+void Song::setAutoRead(Track* track, bool val)
+ {
+ track->setAutoRead(val);
+ emit autoReadChanged(track, track->autoRead());
+ }
+
+//---------------------------------------------------------
+// setAutoWrite
+//---------------------------------------------------------
+
+void Song::setAutoWrite(Track* track, bool val)
+ {
+ track->setAutoWrite(val);
+ emit autoWriteChanged(track, track->autoRead());
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+void Song::setSolo(Track* track, bool val)
+ {
+ if (!track->setSolo(val))
+ return;
+ emit soloChanged(track, track->solo());
+ soloFlag = false;
+ for (iTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+ if ((*i)->solo()) {
+ soloFlag = true;
+ break;
+ }
+ }
+ for (iTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+ (*i)->updateMute();
+ }
+ }
+
+//---------------------------------------------------------
+// moveTrack
+//---------------------------------------------------------
+
+void Song::moveTrack(Track* src, Track* dst)
+ {
+ iTrack si = qFind(_tracks.begin(), _tracks.end(), src);
+ iTrack di = qFind(_tracks.begin(), _tracks.end(), dst);
+ if (si == _tracks.end() || di == _tracks.end()) {
+ printf("Song::moveTrack() track not found\n");
+ return;
+ }
+ _tracks.erase(si);
+ _tracks.insert(di, src);
+ }
+
+//---------------------------------------------------------
+// changeTrackName
+//---------------------------------------------------------
+
+void Song::changeTrackName(Track* t, const QString& s)
+ {
+ startUndo();
+ undoOp(UndoOp::RenameTrack, t, t->name(), s);
+ t->setName(s);
+ endUndo(SC_TRACK_MODIFIED);
+ }
+
+//---------------------------------------------------------
+// trackExists
+//---------------------------------------------------------
+
+bool Song::trackExists(Track* t) const
+ {
+ return findTrack(t->name()) != 0;
+ }
+
+//---------------------------------------------------------
+// findTrack
+//---------------------------------------------------------
+
+Track* Song::findTrack(const QString& name) const
+ {
+ for (int i = 0; i < _tracks.size(); ++i) {
+ if (_tracks[i]->name() == name)
+ return _tracks[i];
+ }
+ return 0;
+ }
+
diff --git a/muse_qt4_evolution/muse/strip.cpp b/muse_qt4_evolution/muse/strip.cpp
new file mode 100644
index 00000000..38519878
--- /dev/null
+++ b/muse_qt4_evolution/muse/strip.cpp
@@ -0,0 +1,123 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "gconfig.h"
+#include "song.h"
+#include "strip.h"
+#include "muse.h"
+#include "widgets/simplebutton.h"
+#include "widgets/utils.h"
+
+//---------------------------------------------------------
+// resetPeaks
+//---------------------------------------------------------
+
+void Strip::resetPeaks()
+ {
+ track->resetPeaks();
+ }
+
+//---------------------------------------------------------
+// updateLabel
+//---------------------------------------------------------
+
+void Strip::updateLabel()
+ {
+ label->setText(track->name());
+ label->setToolTip(track->name());
+ }
+
+//---------------------------------------------------------
+// Strip
+// create mixer strip
+//---------------------------------------------------------
+
+Strip::Strip(Mixer* m, Track* t, bool align)
+ : QFrame()
+ {
+ ar = 0;
+ aw = 0;
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ mixer = m;
+ _align = align;
+ setFrameStyle(QFrame::Panel | QFrame::Raised);
+ setLineWidth(2);
+
+ track = t;
+ grid = new QGridLayout;
+ grid->setMargin(0);
+ grid->setSpacing(0);
+ setLayout(grid);
+
+ //---------------------------------------------
+ // label
+ //---------------------------------------------
+
+ label = new QLabel;
+ label->setObjectName(track->cname());
+ label->setFixedHeight(LABEL_HEIGHT);
+ label->setTextFormat(Qt::PlainText);
+ label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+ label->setLineWidth(2);
+ label->setFrameStyle(QFrame::Sunken | QFrame::StyledPanel);
+ updateLabel();
+ grid->addWidget(label, 0, 0, 1, 2);
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+ }
+
+//---------------------------------------------------------
+// Strip
+//---------------------------------------------------------
+
+Strip::~Strip()
+ {
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void Strip::configChanged()
+ {
+ updateLabel();
+ }
+
+//---------------------------------------------------------
+// addAutomationButtons
+//---------------------------------------------------------
+
+void Strip::addAutomationButtons(int row)
+ {
+ ar = newAutoReadButton();
+ ar->setFixedHeight(BUTTON_HEIGHT);
+ ar->setChecked(track->autoRead());
+ grid->addWidget(ar, row, 0);
+ aw = newAutoWriteButton();
+ aw->setFixedHeight(BUTTON_HEIGHT);
+ aw->setChecked(track->autoWrite());
+ grid->addWidget(aw, row, 1);
+ connect(ar, SIGNAL(clicked(bool)), SLOT(autoReadToggled(bool)));
+ connect(aw, SIGNAL(clicked(bool)), SLOT(autoWriteToggled(bool)));
+ connect(track, SIGNAL(autoReadChanged(bool)), ar, SLOT(setChecked(bool)));
+ connect(track, SIGNAL(autoWriteChanged(bool)), aw, SLOT(setChecked(bool)));
+ }
+
+
diff --git a/muse_qt4_evolution/muse/strip.h b/muse_qt4_evolution/muse/strip.h
new file mode 100644
index 00000000..1e5f7bd4
--- /dev/null
+++ b/muse_qt4_evolution/muse/strip.h
@@ -0,0 +1,75 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __STRIP_H__
+#define __STRIP_H__
+
+#include "globaldefs.h"
+#include "gui.h"
+
+class Track;
+class Meter;
+class SimpleButton;
+class Mixer;
+
+static const QSize entrySize(STRIP_WIDTH/2-2, ENTRY_HEIGHT);
+
+//---------------------------------------------------------
+// Strip
+//---------------------------------------------------------
+
+class Strip : public QFrame {
+ Q_OBJECT
+
+ protected:
+ Mixer* mixer;
+ Track* track;
+ QLabel* label;
+ QGridLayout* grid;
+
+ SimpleButton* solo;
+ SimpleButton* mute;
+ SimpleButton* ar;
+ SimpleButton* aw;
+
+ void updateLabel();
+ bool _align; // align elements for mixer app
+
+ void recordToggled(bool);
+ void addAutomationButtons(int row);
+ void addMidiInPorts(QMenu* menu, Track* dtrack, int channel);
+ void addMidiOutPorts(QMenu* menu, Track* strack, int channel);
+
+ public slots:
+ void resetPeaks();
+ virtual void songChanged(int) = 0;
+ virtual void controllerChanged(int) {}
+ void configChanged();
+
+ public:
+ Strip(Mixer* m, Track* t, bool align);
+ ~Strip();
+ Track* getTrack() const { return track; }
+ virtual void heartBeat() = 0;
+ virtual QSize sizeHint() const { return QSize(STRIP_WIDTH, 80); }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/style.qss b/muse_qt4_evolution/muse/style.qss
new file mode 100644
index 00000000..b62122c5
--- /dev/null
+++ b/muse_qt4_evolution/muse/style.qss
@@ -0,0 +1,66 @@
+/*
+ * this is the MusE application style sheet
+ */
+
+QLabel#midiChannelLabel { font-size: 6pt }
+MidiRack, EffectRack { font-size: 8pt }
+QLabel#trackLabel { font-size: 6pt }
+SimpleButton { font-size: 8pt }
+QToolButton#routeButton { font-size: 8pt }
+QToolButton#preButton { font-size: 8pt }
+
+TimeCanvas {
+ qproperty-fontSize1: 6;
+ qproperty-fontSize2: 8;
+ qproperty-fontSize3: 8
+ }
+
+QLabel#knobLabel { font-size: 8pt }
+Awl--MidiVolEntry { font-size: 5pt }
+Awl--MidiPanEntry { font-size: 5pt }
+Awl--VolEntry { font-size: 5pt }
+Awl--PanEntry { font-size: 5pt }
+
+QLabel#AudioOut {
+ font-size: 7pt;
+ background-color: white;
+ }
+
+QLabel#Group {
+ font-size: 7pt;
+ background-color: yellow;
+ }
+
+QLabel#Wave {
+ font-size: 7pt;
+ background-color: rgb(0,255,0);
+ }
+
+QLabel#AudioIn {
+ font-size: 7pt;
+ background-color: red;
+ }
+
+QLabel#Synth {
+ font-size: 7pt;
+ background-color: blue;
+ }
+
+QLabel#Midi {
+ font-size: 7pt;
+ background-color: gray;
+ }
+
+QLabel#MidiOut {
+ font-size: 7pt;
+ background-color: gray;
+ }
+
+QLabel#MidiIn {
+ font-size: 7pt;
+ background-color: gray;
+ }
+QLabel#M-Synth {
+ font-size: 7pt;
+ background-color: gray;
+ }
diff --git a/muse_qt4_evolution/muse/sync.cpp b/muse_qt4_evolution/muse/sync.cpp
new file mode 100644
index 00000000..c4cb30fc
--- /dev/null
+++ b/muse_qt4_evolution/muse/sync.cpp
@@ -0,0 +1,499 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "sync.h"
+#include "song.h"
+#include "widgets/utils.h"
+#include "globals.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "gconfig.h"
+#include "al/tempo.h"
+#include "al/al.h"
+
+int rxSyncPort = -1; // receive from all ports
+int txSyncPort = 1;
+
+bool debugSync = false;
+MTC mtcOffset;
+bool extSyncFlag = false;
+bool genMTCSync = false; // output MTC Sync
+bool genMCSync = false; // output MidiClock Sync
+bool genMMC = false; // output Midi Machine Control
+bool acceptMTC = false;
+bool acceptMC = true;
+bool acceptMMC = true;
+
+static MTC mtcCurTime;
+// static int mtcState; // 0-7 next expected quarter message
+// static bool mtcValid;
+// static int mtcLost;
+// static bool mtcSync; // receive complete mtc frame?
+
+//static bool mcStart = false;
+//static int mcStartTick;
+
+enum {
+ MMC_STOP = 1,
+ MMC_PLAY = 2,
+ MMC_DEFERRED_PLAY = 3,
+ MMC_FAST_FORWARD = 4,
+ MMC_REWIND = 5,
+ MMC_RECORD_STROBE = 6, // Punch In
+ MMC_RECORD_EXIT = 7, // Punch Out
+ MMC_PAUSE = 9,
+ MMC_RESET = 13,
+ MMC_GOTO = 0x44
+ };
+
+#if 0
+//---------------------------------------------------------
+// mmcInput
+// Midi Machine Control Input received
+//---------------------------------------------------------
+
+void MidiSeq::mmcInput(int id, int cmd, const Pos& pos)
+ {
+#if 0
+ int rxDeviceId = 127;
+
+ if (!extSyncFlag || !acceptMMC || (id != 127 && id != rxDeviceId))
+ return;
+
+ if (debugMsg)
+ printf("mmcInput: id %d cmd %02x %02x\n", id, cmd, cmd);
+
+ switch (cmd) {
+ case MMC_STOP:
+ if (debugSync)
+ printf(" MMC: STOP\n");
+ if (audio->isPlaying())
+ audioDriver->stopTransport();
+ else
+ // reset REC
+ audio->sendMsgToGui(MSG_STOP);
+ break;
+ case MMC_PLAY:
+ case MMC_DEFERRED_PLAY:
+ audioDriver->startTransport();
+ break;
+ case MMC_FAST_FORWARD:
+ printf("MMC: FF not implemented\n");
+ break;
+ case MMC_REWIND:
+ printf("MMC: REWIND not implemented\n");
+ break;
+ case MMC_RECORD_STROBE:
+ printf("MMC: REC STROBE not implemented\n");
+ break;
+ case MMC_RECORD_EXIT:
+ printf("MMC: REC EXIT not implemented\n");
+ break;
+ case MMC_PAUSE:
+ audio->sendMsgToGui(MSG_RECORD);
+ break;
+ case MMC_RESET:
+ printf("MMC: RESET not implemented\n");
+ break;
+
+ case MMC_GOTO:
+ audioDriver->seekTransport(pos.frame());
+ break;
+
+ default:
+ printf("MMC id %x cmd %x, unknown\n", id, cmd);
+ break;
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// mtcInputQuarter
+// process Quarter Frame Message
+//---------------------------------------------------------
+
+void MidiSeq::mtcInputQuarter(int, unsigned char c)
+ {
+#if 0
+ static int hour, min, sec, frame;
+
+ if (!extSyncFlag)
+ return;
+
+ int valL = c & 0xf;
+ int valH = valL << 4;
+
+ int _state = (c & 0x70) >> 4;
+ if (mtcState != _state)
+ mtcLost += _state - mtcState;
+ mtcState = _state + 1;
+
+ switch(_state) {
+ case 7:
+ hour = (hour & 0x0f) | valH;
+ break;
+ case 6:
+ hour = (hour & 0xf0) | valL;
+ break;
+ case 5:
+ min = (min & 0x0f) | valH;
+ break;
+ case 4:
+ min = (min & 0xf0) | valL;
+ break;
+ case 3:
+ sec = (sec & 0x0f) | valH;
+ break;
+ case 2:
+ sec = (sec & 0xf0) | valL;
+ break;
+ case 1:
+ frame = (frame & 0x0f) | valH;
+ break;
+ case 0: frame = (frame & 0xf0) | valL;
+ break;
+ }
+ frame &= 0x1f; // 0-29
+ sec &= 0x3f; // 0-59
+ min &= 0x3f; // 0-59
+ hour &= 0x1f;
+
+ if (mtcState == 8) {
+ mtcValid = (mtcLost == 0);
+ mtcState = 0;
+ mtcLost = 0;
+ if (mtcValid) {
+ mtcCurTime.set(hour, min, sec, frame);
+ mtcSyncMsg(mtcCurTime, !mtcSync);
+ mtcSync = true;
+ }
+ }
+ else if (mtcValid && (mtcLost == 0)) {
+ mtcCurTime.incQuarter();
+ mtcSyncMsg(mtcCurTime, false);
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// mtcInputFull
+// process Frame Message
+//---------------------------------------------------------
+
+void MidiSeq::mtcInputFull(const unsigned char* p, int n)
+ {
+#if 0
+ if (debugSync)
+ printf("mtcInputFull\n");
+ if (!extSyncFlag)
+ return;
+
+ if (p[3] != 1) {
+ if (p[3] != 2) { // silently ignore user bits
+ printf("unknown mtc msg subtype 0x%02x\n", p[3]);
+ dump(p, n);
+ }
+ return;
+ }
+ int hour = p[4];
+ int min = p[5];
+ int sec = p[6];
+ int frame = p[7];
+
+ frame &= 0x1f; // 0-29
+ sec &= 0x3f; // 0-59
+ min &= 0x3f; // 0-59
+// int type = (hour >> 5) & 3;
+ hour &= 0x1f;
+
+ mtcCurTime.set(hour, min, sec, frame);
+ mtcState = 0;
+ mtcValid = true;
+ mtcLost = 0;
+#endif
+ }
+
+//---------------------------------------------------------
+// nonRealtimeSystemSysex
+//---------------------------------------------------------
+
+void MidiSeq::nonRealtimeSystemSysex(const unsigned char* p, int n)
+ {
+#if 0
+// int chan = p[2];
+ switch(p[3]) {
+ case 4:
+ printf("NRT Setup\n");
+ break;
+ default:
+ printf("unknown NRT Msg 0x%02x\n", p[3]);
+ dump(p, n);
+ break;
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// setSongPosition
+// MidiBeat is a 14 Bit value. Each MidiBeat spans
+// 6 MIDI Clocks. Inother words, each MIDI Beat is a
+// 16th note (since there are 24 MIDI Clocks in a
+// quarter note).
+//---------------------------------------------------------
+
+void MidiSeq::setSongPosition(int port, int midiBeat)
+ {
+#if 0
+ if (midiInputTrace)
+ printf("set song position port:%d %d\n", port, midiBeat);
+ if (!extSyncFlag)
+ return;
+ Pos pos((config.division * midiBeat) / 4, AL::TICKS);
+ audioDriver->seekTransport(pos.frame());
+ if (debugSync)
+ printf("setSongPosition %d\n", pos.tick());
+#endif
+ }
+
+//---------------------------------------------------------
+// realtimeSystemInput
+// real time message received
+//---------------------------------------------------------
+
+void MidiSeq::realtimeSystemInput(int port, int c)
+ {
+#if 0
+ if (midiInputTrace)
+ printf("realtimeSystemInput port:%d 0x%x\n", port+1, c);
+
+ if (midiInputTrace && (rxSyncPort != port) && rxSyncPort != -1) {
+ if (debugSync)
+ printf("rxSyncPort configured as %d; received sync from port %d\n",
+ rxSyncPort, port);
+ return;
+ }
+ if (!extSyncFlag)
+ return;
+ switch(c) {
+ case 0xf8: // midi clock (24 ticks / quarter note)
+ {
+ double mclock0 = curTime();
+ // Difference in time last 2 rounds:
+ double tdiff0 = mclock0 - mclock1;
+ double tdiff1 = mclock1 - mclock2;
+ double averagetimediff = 0.0;
+
+ if (mclock1 != 0.0) {
+ if (storedtimediffs < 24)
+ {
+ timediff[storedtimediffs] = mclock0 - mclock1;
+ storedtimediffs++;
+ }
+ else {
+ for (int i=0; i<23; i++) {
+ timediff[i] = timediff[i+1];
+ }
+ timediff[23] = mclock0 - mclock1;
+ }
+ // Calculate average timediff:
+ for (int i=0; i < storedtimediffs; i++) {
+ averagetimediff += timediff[i]/storedtimediffs;
+ }
+ }
+ processMidiClock();
+
+ // Compare w audio if playing:
+ if (audio->isPlaying() /*state == PLAY*/) {
+ //BEGIN standard setup:
+ recTick += config.division / 24; // The one we're syncing to
+ int tempo = AL::tempomap.tempo(0);
+ unsigned curFrame = audio->pos().frame();
+ double songtick = (double(curFrame)/double(AL::sampleRate)) * config.division * 1000000.0 / double(tempo);
+ double scale = tdiff0/averagetimediff;
+ double tickdiff = songtick - ((double) recTick - 24 + scale*24.0);
+
+ //END standard setup
+ if (debugSync) {
+ //
+ // Create debug values for printing out which beat we're at, etc etc... yaddayadda...
+ //
+ int m, b, t;
+ audio->pos().mbt(&m, &b, &t);
+
+ int song_beat = b + m*4; // if the time-signature is different than 4/4, this will be wrong.
+ int sync_beat = recTick/config.division;
+ printf("pT=%.3f rT=%d diff=%.3f songB=%d syncB=%d scale=%.3f", songtick, recTick, tickdiff, song_beat, sync_beat, scale);
+ }
+ //if ((mclock2 !=0.0) && (tdiff1 > 0.0) && tickdiff != 0.0 && lastTempo != 0) {
+ if ((mclock2 !=0.0) && (tdiff1 > 0.0) && fabs(tickdiff) > 2.0 && lastTempo != 0) {
+ // Interpolate:
+ double tickdiff1 = songtick1 - recTick1;
+ double tickdiff2 = songtick2 - recTick2;
+ //double newtickdiff = tickdiff/3.0 + tickdiff1/5.0 + tickdiff2/7.0; //2 min 15 sec, 120BPM, -p 512 jackd
+ //double newtickdiff = tickdiff/4.0 + tickdiff1/4.0 + tickdiff2/4.0; // Not long... :-P
+ //double newtickdiff = tickdiff/5.0 + tickdiff1/8.0 + tickdiff2/12.0; //3,5 mins on 120BPM, -p 512 jackd
+ //double newtickdiff = tickdiff/7.0 + tickdiff1/8.0 + tickdiff2/9.0; //2 min 15 sec, 120BPM, -p 512 jackd
+ //double newtickdiff = tickdiff/5.0 + tickdiff1/8.0 + tickdiff2/16.0; //3,5 mins on 120BPM, -p 512 jackd
+ double newtickdiff = tickdiff/5.0 + tickdiff1/16.0 + tickdiff2/24.0; //5 mins 30 secs on 116BPM, -p 512 jackd
+ //double newtickdiff = tickdiff/5.0 + tickdiff1/23.0 + tickdiff2/31.0; //5 mins on 116BPM, -p 512 jackd
+ //double newtickdiff = tickdiff + tickdiff1/8.0 + tickdiff2/16.0; // Not long...
+
+ if (newtickdiff != 0.0) {
+ int newTempo = AL::tempomap.tempo(0);
+ //newTempo += int(24.0 * newtickdiff * scale);
+ newTempo += int(24.0 * newtickdiff);
+ if (debugSync)
+ printf(" tdiff=%f ntd=%f lt=%d tmpo=%.3f", tdiff0, newtickdiff, lastTempo, (float)((1000000.0 * 60.0)/newTempo));
+ AL::tempomap.setTempo(0,newTempo);
+ }
+ if (debugSync)
+ printf("\n");
+ }
+ else if (debugSync)
+ printf("\n");
+
+ //BEGIN post calc
+ lastTempo = tempo;
+ recTick2 = recTick1;
+ recTick1 = recTick;
+ mclock2 = mclock1;
+ mclock1 = mclock0;
+ songtick2 = songtick1;
+ songtick1 = songtick;
+ //END post calc
+ break;
+ } // END state play
+ //
+ // Pre-sync (when audio is not running)
+ // Calculate tempo depending on time per pulse
+ //
+ if (mclock1 == 0.0) {
+//TODO3 midiPorts[port].device()->discardInput();
+ if (debugSync)
+ printf("Discarding input from port %d\n", port);
+ }
+ if ((mclock2 != 0.0) && (tdiff0 > 0.0)) {
+ int tempo0 = int(24000000.0 * tdiff0 + .5);
+ int tempo1 = int(24000000.0 * tdiff1 + .5);
+ int tempo = AL::tempomap.tempo(0);
+
+ int diff0 = tempo0 - tempo;
+ int diff1 = tempo1 - tempo0;
+ if (diff0) {
+ int newTempo = tempo + diff0/8 + diff1/16;
+ if (debugSync)
+ printf("setting new tempo %d = %f\n", newTempo, (float)((1000000.0 * 60.0)/newTempo));
+ AL::tempomap.setTempo(0, newTempo);
+ }
+ }
+ mclock2 = mclock1;
+ mclock1 = mclock0;
+ }
+ break;
+ case 0xf9: // midi tick (every 10 msec)
+ if (mcStart) {
+ song->setPos(0, mcStartTick);
+ mcStart = false;
+ return;
+ }
+ break;
+ case 0xfa: // start
+ if (debugSync)
+ printf(" start\n");
+ if (!audio->isPlaying() /*state == IDLE*/) {
+ //seek(0);
+ audioDriver->seekTransport(0);
+ unsigned curFrame = audioDriver->framePos();
+ recTick = recTick1 = recTick2 = 0;
+ mclock1 = 0.0; mclock2 = 0.0;
+ songtick1 = songtick2 = 0;
+ if (debugSync)
+ printf(" curFrame: %d curTick: %d tempo: %d\n", curFrame, recTick, AL::tempomap.tempo(0));
+
+ //startPlay();
+ storedtimediffs = 0;
+ for (int i=0; i<24; i++)
+ timediff[i] = 0.0;
+ audio->msgPlay(true);
+ }
+ break;
+ case 0xfb: // continue
+ if (debugSync)
+ printf(" continue\n");
+ if (!audio->isPlaying() /*state == IDLE */) {
+ unsigned curFrame = audioDriver->framePos();
+ recTick = AL::tempomap.frame2tick(curFrame); // don't think this will work... (ml)
+ audio->msgPlay(true);
+ }
+ break;
+ case 0xfc: // stop
+ if (debugSync)
+ printf(" stop\n");
+ if (audio->isPlaying() /*state == PLAY*/)
+ audio->msgPlay(false);
+ break;
+ case 0xfd: // unknown
+ case 0xfe: // active sensing
+ case 0xff: // system reset
+ break;
+ }
+#endif
+
+ }
+
+//---------------------------------------------------------
+// mtcSyncMsg
+// process received mtc Sync
+// seekFlag - first complete mtc frame received after
+// start
+//---------------------------------------------------------
+
+void MidiSeq::mtcSyncMsg(const MTC& /*mtc*/, bool /*seekFlag*/)
+ {
+#if 0
+ double time = mtc.time();
+ if (debugSync)
+ printf("mtcSyncMsg: time %f\n", time);
+
+ if (seekFlag && state == START_PLAY) {
+// int tick = tempomap.time2tick(time);
+ state = PLAY;
+ sendMsgToGui(MSG_PLAY);
+ return;
+ }
+ // double curT = curTime();
+
+ if (tempoSN != tempomap.tempoSN()) {
+ double cpos = tempomap.tick2time(_midiTick, 0);
+ samplePosStart = samplePos - lrint(cpos * sampleRate);
+ rtcTickStart = rtcTick - lrint(cpos * realRtcTicks);
+ tempoSN = tempomap.tempoSN();
+ }
+
+ //
+ // diff is the time in sec MusE is out of sync
+ //
+ double diff = time - (double(samplePosStart)/double(sampleRate));
+ if (debugSync)
+ printf(" state %d diff %f\n", mtcState, diff);
+#endif
+ }
+#endif
+
diff --git a/muse_qt4_evolution/muse/sync.h b/muse_qt4_evolution/muse/sync.h
new file mode 100644
index 00000000..b8d8920b
--- /dev/null
+++ b/muse_qt4_evolution/muse/sync.h
@@ -0,0 +1,37 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SYNC_H__
+#define __SYNC_H__
+
+#include "mtc.h"
+
+extern bool debugSync;
+extern MTC mtcOffset;
+extern bool extSyncFlag;
+extern bool genMTCSync; // output MTC Sync
+extern bool genMCSync; // output MidiClock Sync
+extern bool genMMC; // output Midi Machine Control
+extern bool acceptMTC;
+extern bool acceptMC;
+extern bool acceptMMC;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/synth.cpp b/muse_qt4_evolution/muse/synth.cpp
new file mode 100644
index 00000000..bbec5e34
--- /dev/null
+++ b/muse_qt4_evolution/muse/synth.cpp
@@ -0,0 +1,588 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <dlfcn.h>
+
+#include "al/al.h"
+#include "al/xml.h"
+#include "al/tempo.h"
+#include "muse.h"
+#include "synth.h"
+#include "midi.h"
+#include "synti/libsynti/mess.h"
+#include "song.h"
+#include "audio.h"
+#include "event.h"
+#include "midievent.h"
+#include "audio.h"
+#include "midictrl.h"
+#include "instruments/minstrument.h"
+#include "audiodev.h"
+
+std::vector<Synth*> synthis; // array of available synthis
+
+extern void connectNodes(AudioTrack*, AudioTrack*);
+
+//---------------------------------------------------------
+// description
+//---------------------------------------------------------
+
+const char* MessSynth::description() const
+ {
+ return descr ? descr->description : "";
+ }
+
+//---------------------------------------------------------
+// version
+//---------------------------------------------------------
+
+const char* MessSynth::version() const
+ {
+ return descr ? descr->version : "";
+ }
+
+bool MessSynthIF::guiVisible() const
+ {
+ return _mess ? _mess->guiVisible() : false;
+ }
+
+void MessSynthIF::showGui(bool v)
+ {
+ if (v == guiVisible())
+ return;
+ if (_mess)
+ _mess->showGui(v);
+ }
+
+bool MessSynthIF::hasGui() const
+ {
+ if (_mess)
+ return _mess->hasGui();
+ return false;
+ }
+
+MidiEvent MessSynthIF::receiveEvent()
+ {
+ if (_mess)
+ return _mess->receiveEvent();
+ return MidiEvent();
+ }
+
+int MessSynthIF::eventsPending() const
+ {
+ if (_mess)
+ return _mess->eventsPending();
+ return 0;
+ }
+
+void MessSynthIF::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ if (_mess)
+ _mess->getGeometry(x, y, w, h);
+ }
+
+void MessSynthIF::setGeometry(int x, int y, int w, int h)
+ {
+ if (_mess)
+ _mess->setGeometry(x, y, w, h);
+ }
+
+//---------------------------------------------------------
+// findSynth
+// search for synthesizer base class
+//---------------------------------------------------------
+
+Synth* findSynth(const QString& sclass)
+ {
+ for (std::vector<Synth*>::iterator i = synthis.begin();
+ i != synthis.end(); ++i) {
+ if ((*i)->name() == sclass)
+ return *i;
+ }
+ printf("synthi class <%s> not found\n", sclass.toLatin1().data());
+ return 0;
+ }
+
+//---------------------------------------------------------
+// Synth
+//---------------------------------------------------------
+
+Synth::Synth(const QFileInfo* fi, QString s)
+ : info(*fi), _name(s)
+ {
+ _instances = 0;
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+void* MessSynth::instantiate(const QString& instanceName)
+ {
+ ++_instances;
+ const char* path = strdup(info.filePath().toAscii().data());
+
+ // load Synti dll
+ if (debugMsg)
+ printf(" load synti <%s>\n", path);
+ void* handle = dlopen(path, RTLD_NOW);
+ // void* handle = dlopen(path, RTLD_LAZY);
+ if (handle == 0) {
+ fprintf(stderr, "Synth::instantiate: dlopen(%s) failed: %s\n",
+ path, dlerror());
+ delete path;
+ return 0;
+ }
+ typedef const MESS* (*MESS_Function)();
+ MESS_Function msynth = (MESS_Function)dlsym(handle, "mess_descriptor");
+
+ if (!msynth) {
+ const char *txt = dlerror();
+ if (txt) {
+ fprintf(stderr,
+ "Unable to find msynth_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a MESS plugin file?\n",
+ path, txt);
+ delete path;
+ return 0;
+ }
+ }
+ delete path;
+ descr = msynth();
+ if (descr == 0) {
+ fprintf(stderr, "Synth::instantiate: no MESS descr found\n");
+ return 0;
+ }
+ Mess* mess = descr->instantiate(AL::sampleRate, instanceName.toLatin1().data());
+ return mess;
+ }
+
+//---------------------------------------------------------
+// SynthI
+//---------------------------------------------------------
+
+SynthI::SynthI()
+ : AudioTrack()
+ {
+ track = this;
+ synthesizer = 0;
+ _sif = 0;
+ // setVolume(1.0);
+ // setPan(0.0);
+ setReadonly(true); // midi instrument cannot be edited
+ }
+
+//---------------------------------------------------------
+// ~SynthI
+//---------------------------------------------------------
+
+SynthI::~SynthI()
+ {
+ deactivate2();
+ deactivate3();
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void SynthI::setName(const QString& s)
+ {
+ Track::setName(s);
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool MessSynthIF::init(Synth* s, SynthI* si)
+ {
+ _mess = (Mess*)((MessSynth*)s)->instantiate(si->name());
+ return (_mess == 0);
+ }
+
+//---------------------------------------------------------
+// channels
+//---------------------------------------------------------
+
+int MessSynthIF::channels() const
+ {
+ return _mess->channels();
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+SynthIF* MessSynth::createSIF(SynthI* si)
+ {
+ MessSynthIF* sif = new MessSynthIF(si);
+ sif->init(this, si);
+ return sif;
+ }
+
+//---------------------------------------------------------
+// initInstance
+// returns false on success
+//---------------------------------------------------------
+
+bool SynthI::initInstance(Synth* s)
+ {
+ synthesizer = s;
+ _sif = s->createSIF(this);
+
+ setIName(name()); // set instrument name
+ int n = _sif->channels();
+ AudioTrack::setChannels(n);
+
+ //---------------------------------------------------
+ // read available controller from synti
+ //---------------------------------------------------
+
+ int id = 0;
+ MidiControllerList* cl = MidiInstrument::controller();
+ for (;;) {
+ const char* name;
+ int ctrl;
+ int min;
+ int max;
+ id = _sif->getControllerInfo(id, &name, &ctrl, &min, &max);
+ if (id == 0)
+ break;
+ MidiController* c = new MidiController(QString(name), ctrl, min, max, 0);
+ cl->push_back(c);
+ }
+
+ EventList* iel = midiState();
+ if (!iel->empty()) {
+ for (iEvent i = iel->begin(); i != iel->end(); ++i) {
+ Event ev = i->second;
+ MidiEvent pev(0, 0, ev);
+ if (_sif->putEvent(pev))
+ putFifo.put(pev); // save for later retry
+ }
+ iel->clear();
+ }
+
+ int idx = 0;
+ for (std::vector<float>::iterator i = initParams.begin(); i != initParams.end(); ++i, ++idx)
+ _sif->setParameter(idx, *i);
+ return false;
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+
+int MessSynthIF::getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max)
+ {
+ return _mess->getControllerInfo(id, name, ctrl, min, max);
+ }
+
+//---------------------------------------------------------
+// SynthI::deactivate
+//---------------------------------------------------------
+
+void SynthI::deactivate2()
+ {
+ removeMidiInstrument(this);
+ }
+
+//---------------------------------------------------------
+// deactivate3
+//---------------------------------------------------------
+
+void SynthI::deactivate3()
+ {
+ delete _sif;
+ _sif = 0;
+ synthesizer->incInstances(-1);
+ }
+
+void MessSynthIF::deactivate3()
+ {
+ if (_mess) {
+ delete _mess;
+ _mess = 0;
+ }
+ }
+
+MessSynthIF::~MessSynthIF()
+ {
+ deactivate3();
+ }
+
+//---------------------------------------------------------
+// initMidiSynth
+// search for software synthis and advertise
+//---------------------------------------------------------
+
+void initMidiSynth()
+ {
+ QString s = museGlobalLib + "/synthi";
+
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
+ QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
+ if (debugMsg)
+ printf("searching for software synthesizer in <%s>\n", s.toLatin1().data());
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ synthis.push_back(new MessSynth(&fi));
+ }
+ if (debugMsg)
+ printf("%zd soft synth found\n", synthis.size());
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void SynthI::write(Xml& xml) const
+ {
+ xml.stag("SynthI");
+ AudioTrack::writeProperties(xml);
+ xml.tag("class", synth()->name());
+
+ //---------------------------------------------
+ // if soft synth is attached to a midi port,
+ // write out port number
+ //---------------------------------------------
+
+ if (hasGui()) {
+ xml.tag("guiVisible", guiVisible());
+ int x, y, w, h;
+ w = 0;
+ h = 0;
+ getGeometry(&x, &y, &w, &h);
+ if (h || w)
+ xml.tag("geometry", QRect(x, y, w, h));
+ }
+ _sif->write(xml);
+ xml.etag("SynthI");
+
+ }
+
+void MessSynthIF::write(Xml& xml) const
+ {
+ //---------------------------------------------
+ // dump current state of synth
+ //---------------------------------------------
+
+ int len = 0;
+ const unsigned char* p;
+ _mess->getInitData(&len, &p);
+ if (len) {
+ xml.stag("midistate");
+ xml.stag(QString("event type=\"%1\" datalen=\"%2\"").arg(Sysex).arg(len));
+ xml.dump(len, p);
+ xml.etag("event");
+ xml.etag("midistate");
+ }
+ }
+
+//---------------------------------------------------------
+// SynthI::read
+//---------------------------------------------------------
+
+void SynthI::read(QDomNode node)
+ {
+ QString sclass;
+ int port = -1;
+ bool startGui = false;
+ QRect r;
+
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "class")
+ sclass = e.text();
+ else if (tag == "port")
+ port = e.text().toInt();
+ else if (tag == "guiVisible")
+ startGui = e.text().toInt();
+ else if (tag == "midistate")
+ readMidiState(node.firstChild());
+ else if (tag == "param") {
+ float val = e.text().toFloat();
+ initParams.push_back(val);
+ }
+ else if (tag == "geometry")
+ r = AL::readGeometry(node);
+ else if (AudioTrack::readProperties(node)) {
+ printf("MusE:SynthI: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ }
+ Synth* s = findSynth(sclass);
+ if (s == 0)
+ return;
+ if (initInstance(s))
+ return;
+ song->insertTrack0(this, -1);
+ setGeometry(r.x(), r.y(), r.width(), r.height());
+ showGui(startGui);
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+QString MessSynthIF::getPatchName(int channel, int prog)
+ {
+ if (_mess)
+ return _mess->getPatchName(channel, prog, 0);
+ return "";
+ }
+
+//---------------------------------------------------------
+// populatePatchPopup
+//---------------------------------------------------------
+
+void MessSynthIF::populatePatchPopup(QMenu* menu, int ch)
+ {
+ menu->clear();
+ const MidiPatch* mp = _mess->getPatchInfo(ch, 0);
+ QMenu *hm = NULL, *lm = NULL;
+ while (mp) {
+ switch(mp->typ) {
+ case MP_TYPE_HBANK :
+ hm = menu->addMenu(QString(mp->name));
+ break;
+ case MP_TYPE_LBANK :
+ if(hm) lm = hm->addMenu(QString(mp->name));
+ else lm = menu->addMenu(QString(mp->name));
+ break;
+ default :
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + mp->prog;
+ QAction* a;
+ if(lm) a = lm->addAction(QString(mp->name));
+ else a = menu->addAction(QString(mp->name));
+ a->setData(id);
+ break;
+ }
+ mp = _mess->getPatchInfo(ch, mp);
+ }
+ }
+
+
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+void MessSynthIF::getData(MidiEventList* el, unsigned pos, int ports, unsigned n, float** buffer)
+ {
+ // Reset buffers first
+ for (int port = 0; port < ports; ++port)
+ memset(buffer[port], 0, n * sizeof(float));
+
+ int curPos = pos;
+ int endPos = pos + n;
+
+ while (!synti->putFifo.isEmpty()) {
+ if (putEvent(synti->putFifo.peek()))
+ break;
+ synti->putFifo.remove();
+ }
+
+ // Echo events from Synti back
+ while (_mess->eventsPending())
+ // _mess->processEvent(_mess->receiveEvent());
+ _mess->receiveEvent(); // throw away event
+
+ if (ports >= channels()) {
+ iMidiEvent i = el->begin();
+ for (; i != el->end(); ++i) {
+ int frame = i->time();
+ if (frame >= endPos)
+ break;
+ if (frame > curPos) {
+ // Several following notes during same segmentsize?
+ _mess->process(buffer, curPos-pos, frame - curPos);
+ curPos = frame; // don't process this piece again
+ }
+ if (putEvent(*i))
+ synti->putFifo.put(*i);
+ }
+ if (endPos - curPos > 0)
+ _mess->process(buffer, curPos-pos, endPos - curPos);
+ el->erase(el->begin(), i);
+ }
+ else {
+ // this happens if the synth has stereo and we switch the
+ // channel to mono
+
+ printf("MessSynthIF::getData - ports %d < channels %d\n",
+ ports, channels());
+ }
+ }
+
+//---------------------------------------------------------
+// putEvent
+// return true on error (busy), event will later be
+// resend
+//---------------------------------------------------------
+
+bool MessSynthIF::putEvent(const MidiEvent& ev)
+ {
+ bool rv = true;
+ if (_mess) {
+ rv = _mess->processEvent(ev);
+ if (midiOutputTrace && !rv) {
+ printf("MidiOut<%s>", synti->name().toLatin1().data());
+ ev.dump();
+ }
+ }
+ return rv;
+ }
+
+//---------------------------------------------------------
+// collectInputData
+//---------------------------------------------------------
+
+void SynthI::collectInputData()
+ {
+ bufferEmpty = false;
+ _sif->getData(&_schedEvents, audioDriver->frameTime(), channels(),
+ segmentSize, buffer);
+ }
+
+//-------------------------------------------------------------------
+// process
+// Collect all midi events for the current process cycle and put
+// into _schedEvents queue. For note on events create the proper
+// note off events. The note off events maybe played after the
+// current process cycle.
+//-------------------------------------------------------------------
+
+void SynthI::processMidi(SeqTime* t)
+ {
+ if (mute())
+ return;
+ MidiOut::processMidi(_schedEvents, t);
+ }
+
diff --git a/muse_qt4_evolution/muse/synth.h b/muse_qt4_evolution/muse/synth.h
new file mode 100644
index 00000000..cae9c417
--- /dev/null
+++ b/muse_qt4_evolution/muse/synth.h
@@ -0,0 +1,227 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SYNTH_H__
+#define __SYNTH_H__
+
+#include "globals.h"
+#include "instruments/minstrument.h"
+#include "audiotrack.h"
+#include "midiout.h"
+#include "midififo.h"
+
+class Mess;
+struct MESS;
+
+class SynthI;
+class SynthIF;
+
+//---------------------------------------------------------
+// Synth
+// software synthesizer
+//---------------------------------------------------------
+
+class Synth {
+ protected:
+ QFileInfo info;
+ QString _name;
+ int _instances;
+
+ public:
+ Synth(const QFileInfo* fi, QString label);
+ virtual ~Synth() {}
+ virtual const char* description() const { return ""; }
+ virtual const char* version() const { return ""; }
+
+ int instances() const { return _instances; }
+ virtual void incInstances(int val) { _instances += val; }
+
+ QString name() const { return _name; }
+ QString path() const { return info.absolutePath(); }
+ virtual SynthIF* createSIF(SynthI*) = 0;
+ };
+
+//---------------------------------------------------------
+// MessSynth
+//---------------------------------------------------------
+
+class MessSynth : public Synth {
+ const MESS* descr;
+
+ public:
+ MessSynth(const QFileInfo* fi) : Synth(fi, fi->baseName()) { descr = 0; }
+ virtual ~MessSynth() {}
+ virtual const char* description() const;
+ virtual const char* version() const;
+ virtual void* instantiate(const QString&);
+ virtual SynthIF* createSIF(SynthI*);
+ };
+
+class Mess;
+
+//---------------------------------------------------------
+// SynthIF
+// synth instance interface
+//---------------------------------------------------------
+
+class SynthIF {
+
+ protected:
+ SynthI* synti;
+
+ public:
+ SynthIF(SynthI* s) { synti = s; }
+ virtual ~SynthIF() {}
+
+ virtual bool guiVisible() const = 0;
+ virtual void showGui(bool v) = 0;
+ virtual bool hasGui() const = 0;
+ virtual void getGeometry(int*, int*, int*, int*) const = 0;
+ virtual void setGeometry(int, int, int, int) = 0;
+ virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer) = 0;
+ virtual bool putEvent(const MidiEvent& ev) = 0;
+ virtual MidiEvent receiveEvent() = 0;
+ virtual int eventsPending() const = 0;
+ virtual int channels() const = 0;
+ virtual void deactivate3() = 0;
+ virtual QString getPatchName(int, int) = 0;
+ virtual void populatePatchPopup(QMenu*, int) = 0;
+ virtual void write(Xml& xml) const = 0;
+ virtual void setParameter(int idx, float value) = 0;
+ virtual int getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max) = 0;
+ virtual bool hasAuxSend() const { return true; }
+ };
+
+//---------------------------------------------------------
+// SynthI
+// software synthesizer instance
+// Track
+// MidiInstrument
+//---------------------------------------------------------
+
+class SynthI : public AudioTrack, public MidiOut, public MidiInstrument
+ {
+ Q_OBJECT
+
+ SynthIF* _sif;
+
+ protected:
+ Synth* synthesizer;
+ std::vector<float> initParams;
+ MidiFifo putFifo;
+
+ bool putMidiEvent(const MidiEvent& ev) {
+ return _sif->putEvent(ev);
+ }
+
+ virtual QString open() { return QString("OK");}
+ virtual void close() {}
+ virtual void collectInputData();
+
+ public:
+ friend class SynthIF;
+ friend class MessSynthIF;
+ friend class DssiSynthIF;
+
+ SynthI();
+ virtual ~SynthI();
+ virtual TrackType type() const { return AUDIO_SOFTSYNTH; }
+
+ virtual void setName(const QString& s);
+
+ SynthIF* sif() const { return _sif; }
+ bool initInstance(Synth* s);
+
+ void read(QDomNode);
+ virtual void write(Xml&) const;
+
+ Synth* synth() const { return synthesizer; }
+ virtual bool isSynti() const { return true; }
+
+ virtual QString getPatchName(int ch, int prog) {
+ return _sif ? _sif->getPatchName(ch, prog) : "";
+ }
+ virtual void populatePatchPopup(QMenu* m, int i) {
+ _sif->populatePatchPopup(m, i);
+ }
+
+ void setParameter(const char* name, const char* value) const;
+
+ bool guiVisible() const { return _sif->guiVisible(); }
+ void showGui(bool v) { _sif->showGui(v); }
+ bool hasGui() const { return _sif->hasGui(); }
+ void getGeometry(int* x, int* y, int* w, int* h) const {
+ _sif->getGeometry(x, y, w, h);
+ }
+ void setGeometry(int x, int y, int w, int h) {
+ _sif->setGeometry(x, y, w, h);
+ }
+ MidiEvent receiveEvent() { return _sif->receiveEvent(); }
+ int eventsPending() const { return _sif->eventsPending(); }
+ void deactivate2();
+ void deactivate3();
+ bool isActivated() const { return synthesizer && _sif; }
+ virtual bool hasAuxSend() const { return _sif->hasAuxSend(); }
+ virtual void processMidi(SeqTime*);
+
+ virtual MidiOut* midiOut() { return this; }
+ virtual MidiInstrument* instrument() { return this; }
+ };
+
+//---------------------------------------------------------
+// MessSynthIF
+// mess synthesizer instance
+//---------------------------------------------------------
+
+class MessSynthIF : public SynthIF {
+ Mess* _mess;
+
+ public:
+ MessSynthIF(SynthI* s) : SynthIF(s) { _mess = 0; }
+ virtual ~MessSynthIF();
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool v);
+ virtual bool hasGui() const;
+ virtual void getGeometry(int*, int*, int*, int*) const;
+ virtual void setGeometry(int, int, int, int);
+ virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer);
+ virtual bool putEvent(const MidiEvent& ev);
+ virtual MidiEvent receiveEvent();
+ virtual int eventsPending() const;
+ virtual int channels() const;
+ virtual void deactivate3();
+ virtual QString getPatchName(int, int);
+ virtual void populatePatchPopup(QMenu*, int);
+ virtual void write(Xml& xml) const;
+ virtual void setParameter(int, float) {}
+ virtual int getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max);
+ bool init(Synth* s, SynthI* si);
+ };
+
+typedef QList<SynthI*> SynthIList;
+typedef SynthIList::iterator iSynthI;
+typedef SynthIList::const_iterator ciSynthI;
+
+extern std::vector<Synth*> synthis; // array of available synthis
+extern Synth* findSynth(const QString& sclass);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/templatedialog.cpp b/muse_qt4_evolution/muse/templatedialog.cpp
new file mode 100644
index 00000000..0b655862
--- /dev/null
+++ b/muse_qt4_evolution/muse/templatedialog.cpp
@@ -0,0 +1,259 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "templatedialog.h"
+#include "gconfig.h"
+#include "song.h"
+#include "icons.h"
+
+//
+// entry types for templateTree tree widget:
+//
+enum { DIR_TYPE, LOCAL_TEMPLATE_TYPE, GLOBAL_TEMPLATE_TYPE};
+
+//---------------------------------------------------------
+// processSubdir
+//---------------------------------------------------------
+
+void TemplateDialog::processSubdir(QTreeWidgetItem* item, const QString& p,
+ const QString& subdir, int type)
+ {
+ QDir pd(p + "/" + subdir);
+ pd.setFilter(QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot);
+ pd.setNameFilters(QStringList("*.med"));
+ QFileInfoList el = pd.entryInfoList();
+ foreach (QFileInfo s, el) {
+ QTreeWidgetItem* pi;
+ if (s.isDir()) {
+ pi = new QTreeWidgetItem(item, DIR_TYPE);
+ itemCollapsed(pi);
+ processSubdir(pi, pd.absolutePath(), s.fileName(), type);
+ }
+ else {
+ pi = new QTreeWidgetItem(item, type);
+ pi->setIcon(0, style()->standardIcon(QStyle::SP_FileIcon));
+ }
+ pi->setText(0, s.fileName());
+ }
+ }
+
+//---------------------------------------------------------
+// TemplateDialog
+//---------------------------------------------------------
+
+TemplateDialog::TemplateDialog(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ templateTree->setSelectionBehavior(QAbstractItemView::SelectRows);
+ templateTree->setSelectionMode(QAbstractItemView::SingleSelection);
+
+ //
+ // add global templates to list
+ //
+ QTreeWidgetItem* pi;
+ pi = new QTreeWidgetItem(templateTree, DIR_TYPE);
+ templateTree->setItemExpanded(pi, true);
+ itemExpanded(pi);
+ pi->setText(0, tr("MusE presets"));
+ processSubdir(pi, museGlobalShare, "templates", GLOBAL_TEMPLATE_TYPE);
+
+ //
+ // add local templates to list
+ //
+ pi = new QTreeWidgetItem(templateTree, DIR_TYPE);
+ pi->setIcon(0, style()->standardIcon(QStyle::SP_FileIcon));
+ templateTree->setItemExpanded(pi, true);
+ itemExpanded(pi);
+ pi->setText(0, tr("User presets"));
+ processSubdir(pi, QDir::homePath() + "/" + config.templatePath, ".", LOCAL_TEMPLATE_TYPE);
+
+ connect(templateTree,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ SLOT(currentChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ connect(templateTree,
+ SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)),
+ SLOT(itemDoubleClicked(QTreeWidgetItem*, int)));
+ connect(templateTree,
+ SIGNAL(itemCollapsed(QTreeWidgetItem*)),
+ SLOT(itemCollapsed(QTreeWidgetItem*)));
+ connect(templateTree,
+ SIGNAL(itemExpanded(QTreeWidgetItem*)),
+ SLOT(itemExpanded(QTreeWidgetItem*)));
+
+ currentChanged(0, 0);
+ }
+
+//---------------------------------------------------------
+// itemCollapsed
+//---------------------------------------------------------
+
+void TemplateDialog::itemCollapsed(QTreeWidgetItem* item)
+ {
+ item->setIcon(0, style()->standardIcon(QStyle::SP_DirClosedIcon));
+ }
+
+//---------------------------------------------------------
+// itemExpanded
+//---------------------------------------------------------
+
+void TemplateDialog::itemExpanded(QTreeWidgetItem* item)
+ {
+ item->setIcon(0, style()->standardIcon(QStyle::SP_DirOpenIcon));
+ }
+
+//---------------------------------------------------------
+// itemPath
+//---------------------------------------------------------
+
+QString TemplateDialog::itemPath(QTreeWidgetItem* item) const
+ {
+ QString path;
+ QTreeWidgetItem* ti = item;
+ QStringList dirComponent;
+ do {
+ dirComponent.prepend(ti->text(0));
+ ti = ti->parent();
+ } while (ti);
+ size_t n = dirComponent.size();
+ for (size_t i = 1; i < n; ++i) {
+ if (!path.isEmpty())
+ path += "/";
+ path += dirComponent[i];
+ }
+ return path;
+ }
+
+//---------------------------------------------------------
+// currentChanged
+//---------------------------------------------------------
+
+void TemplateDialog::currentChanged(QTreeWidgetItem* item, QTreeWidgetItem*)
+ {
+ bool enable = (item != 0) &&
+ (
+ (item->type() == LOCAL_TEMPLATE_TYPE)
+ ||
+ (item->type() == GLOBAL_TEMPLATE_TYPE)
+ );
+ createdDate->setEnabled(enable);
+ modifiedDate->setEnabled(enable);
+ comment->setEnabled(enable);
+
+ // newFolder->setEnabled(item == 0 || item->type() == DIR_TYPE);
+ if (!enable)
+ return;
+
+ QString pd;
+ if (item->type() == LOCAL_TEMPLATE_TYPE)
+ pd = QDir::homePath() + "/" + config.templatePath;
+ else
+ pd = museGlobalShare + "/" + "templates";
+
+ pd += "/" + itemPath(item);
+
+ QFileInfo pf(pd);
+ modifiedDate->setDateTime(pf.lastModified());
+
+ QTime time(0, 0, 0);
+ QDateTime date;
+
+ QFile f(pf.filePath());
+ QDomDocument doc;
+ int line, column;
+ QString err;
+ if (!doc.setContent(&f, false, &err, &line, &column)) {
+ QString col, ln, error;
+ col.setNum(column);
+ ln.setNum(line);
+ error = err + "\n at line: " + ln + " col: " + col;
+ printf("error reading med file: %s\n", error.toLatin1().data());
+ return;
+ }
+ for (QDomNode node = doc.documentElement(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "muse") {
+ QString sversion = e.attribute("version", "1.0");
+ int major=0, minor=0;
+ sscanf(sversion.toLatin1().data(), "%d.%d", &major, &minor);
+ int version = major << 8 + minor;
+ if (version >= 0x200) {
+ for (QDomNode n1 = node.firstChild(); !n1.isNull(); n1 = n1.nextSibling()) {
+ QDomElement e = n1.toElement();
+ if (e.tagName() == "song") {
+ for (QDomNode n2 = n1.firstChild(); !n2.isNull(); n2 = n2.nextSibling()) {
+ QDomElement e = n2.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ if (tag == "comment")
+ comment->setPlainText(s);
+ else if (tag == "createDate") {
+ date = QDateTime::fromString(e.text(), Qt::ISODate);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ createdDate->setDateTime(date);
+ }
+
+//---------------------------------------------------------
+// templatePath
+//---------------------------------------------------------
+
+QString TemplateDialog::templatePath() const
+ {
+ QTreeWidgetItem* item = templateTree->currentItem();
+ QString s;
+ if (item) {
+ if (item->type() == LOCAL_TEMPLATE_TYPE)
+ s = QDir::homePath() + "/" + config.templatePath;
+ else
+ s = museGlobalShare + "/" + "templates";
+ s += "/" + itemPath(item);
+ }
+ return s;
+ }
+
+//---------------------------------------------------------
+// setTemplatePath
+//---------------------------------------------------------
+
+void TemplateDialog::setTemplatePath(const QString&)
+ {
+ // TODO
+ }
+
+//---------------------------------------------------------
+// itemDoubleClicked
+//---------------------------------------------------------
+
+void TemplateDialog::itemDoubleClicked(QTreeWidgetItem* item, int)
+ {
+ if ((item->type() == LOCAL_TEMPLATE_TYPE) ||
+ (item->type() == GLOBAL_TEMPLATE_TYPE))
+ accept();
+ }
+
diff --git a/muse_qt4_evolution/muse/templatedialog.h b/muse_qt4_evolution/muse/templatedialog.h
new file mode 100644
index 00000000..4db03286
--- /dev/null
+++ b/muse_qt4_evolution/muse/templatedialog.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TEMPLATE_DIALOG_H__
+#define __TEMPLATE_DIALOG_H__
+
+#include "ui_templatedialog.h"
+
+//---------------------------------------------------------
+// TemplateDialog
+//---------------------------------------------------------
+
+class TemplateDialog : public QDialog, public Ui_TemplateDialogBase {
+ Q_OBJECT
+
+ void processSubdir(QTreeWidgetItem*, const QString&,
+ const QString&, int);
+
+ QString itemPath(QTreeWidgetItem*) const;
+
+ private slots:
+ void currentChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void itemCollapsed(QTreeWidgetItem*);
+ void itemExpanded(QTreeWidgetItem*);
+ void itemDoubleClicked(QTreeWidgetItem*, int);
+
+ public:
+ TemplateDialog(QWidget* parent = 0);
+ QString templatePath() const;
+ void setTemplatePath(const QString&);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/templatedialog.ui b/muse_qt4_evolution/muse/templatedialog.ui
new file mode 100644
index 00000000..cbbc295d
--- /dev/null
+++ b/muse_qt4_evolution/muse/templatedialog.ui
@@ -0,0 +1,188 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>TemplateDialogBase</class>
+ <widget class="QDialog" name="TemplateDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>574</width>
+ <height>385</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Select Template</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string>Properties</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>3</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QDateEdit" name="createdDate" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QDateEdit" name="modifiedDate" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Modified:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Created:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2" >
+ <widget class="QTextEdit" name="comment" >
+ <property name="focusPolicy" >
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QTreeWidget" name="templateTree" >
+ <column>
+ <property name="text" >
+ <string>Templates</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <tabstops>
+ <tabstop>okButton</tabstop>
+ <tabstop>cancelButton</tabstop>
+ <tabstop>templateTree</tabstop>
+ <tabstop>modifiedDate</tabstop>
+ <tabstop>createdDate</tabstop>
+ <tabstop>comment</tabstop>
+ </tabstops>
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>TemplateDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>TemplateDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/thread.cpp b/muse_qt4_evolution/muse/thread.cpp
new file mode 100644
index 00000000..8291613b
--- /dev/null
+++ b/muse_qt4_evolution/muse/thread.cpp
@@ -0,0 +1,354 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <poll.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+
+#include "thread.h"
+#include "globals.h"
+#include "errno.h"
+
+//---------------------------------------------------------
+// Thread
+//---------------------------------------------------------
+
+Thread::~Thread()
+ {
+ }
+
+//---------------------------------------------------------
+// serverloop
+//---------------------------------------------------------
+
+static void* loop(void* mops)
+ {
+ Thread* t = (Thread*) mops;
+ t->loop();
+ return 0;
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+void Thread::start(int prio, void* ptr)
+ {
+ userPtr = ptr;
+ pthread_attr_t* attributes = 0;
+
+ realTimePriority = prio;
+ if (realTimePriority) {
+ attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+ if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+ printf("cannot set FIFO scheduling class for RT thread\n");
+ }
+ if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+ printf("Cannot set scheduling scope for RT thread\n");
+ }
+ if (pthread_attr_setinheritsched(attributes, PTHREAD_EXPLICIT_SCHED)) {
+ printf("Cannot set setinheritsched for RT thread\n");
+ }
+
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = realTimePriority;
+ if (pthread_attr_setschedparam (attributes, &rt_param)) {
+ printf("Cannot set scheduling priority %d for RT thread (%s)\n",
+ realTimePriority, strerror(errno));
+ }
+ }
+
+ int rv;
+ if ((rv = pthread_create(&thread, attributes, ::loop, this))) {
+ fprintf(stderr, "creating thread <%s> failed: %s\n",
+ _name, strerror(rv));
+ thread = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void Thread::stop(bool force)
+ {
+ if (thread == 0)
+ return;
+ if (force) {
+ pthread_cancel(thread);
+ threadStop();
+ }
+ _running = false;
+ if (pthread_join(thread, 0)) {
+ // perror("Failed to join sequencer thread");
+ }
+ }
+
+//---------------------------------------------------------
+// Thread
+// prio = 0 no realtime scheduling
+//---------------------------------------------------------
+
+Thread::Thread(const char* s)
+ {
+ userPtr = 0;
+ _name = s;
+ realTimePriority = 0;
+ pfd = 0;
+ npfd = 0;
+ maxpfd = 0;
+ _running = false;
+ _pollWait = -1;
+ thread = 0;
+ sendSerialNo = 0x00a5a500;
+
+ // create message channels
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("thread:creating pipe4");
+ exit(-1);
+ }
+ toThreadFdr = filedes[0];
+ toThreadFdw = filedes[1];
+ if (fcntl(toThreadFdw, F_SETFL, O_NONBLOCK) == -1)
+ perror("set pipe nonblocking\n");
+
+ if (pipe(filedes) == -1) {
+ perror("thread: creating pipe5");
+ exit(-1);
+ }
+ fromThreadFdr = filedes[0];
+ fromThreadFdw = filedes[1];
+ if (fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK) == -1)
+ perror("set pipe nonblocking\n");
+ }
+
+//---------------------------------------------------------
+// addPollFd
+//---------------------------------------------------------
+
+void Thread::addPollFd(int fd, int action, void (*handler)(void*,void*), void* p, void* q)
+ {
+ if (fd == -1)
+ return;
+ for (iPoll i = plist.begin(); i != plist.end(); ++i) {
+ if ((i->fd == fd) && (i->action == action))
+ return;
+ }
+
+ plist.push_back(Poll(fd, action, handler, p, q));
+
+ if (npfd == maxpfd) {
+ int n = (maxpfd == 0) ? 4 : maxpfd * 2;
+ //TODO: delete old pfd
+ pfd = new struct pollfd[n];
+ maxpfd = n;
+ }
+ ++npfd;
+ int idx = 0;
+ for (iPoll i = plist.begin(); i != plist.end(); ++i, ++idx) {
+ pfd[idx].fd = i->fd;
+ pfd[idx].events = i->action;
+ }
+ }
+
+//---------------------------------------------------------
+// removePollFd
+//---------------------------------------------------------
+
+void Thread::removePollFd(int fd, int action)
+ {
+ for (iPoll i = plist.begin(); i != plist.end(); ++i) {
+ if (i->fd == fd && i->action == action) {
+ plist.erase(i);
+ --npfd;
+ break;
+ }
+ }
+ int idx = 0;
+ for (iPoll i = plist.begin(); i != plist.end(); ++i, ++idx) {
+ pfd[idx].fd = i->fd;
+ pfd[idx].events = i->action;
+ }
+ }
+
+//---------------------------------------------------------
+// loop
+//---------------------------------------------------------
+
+void Thread::loop()
+ {
+ if (!debugMode) {
+ if (mlockall(MCL_CURRENT | MCL_FUTURE))
+ perror("WARNING: Cannot lock memory:");
+ }
+#ifdef __APPLE__
+#define BIG_ENOUGH_STACK (1024*256*1)
+#else
+#define BIG_ENOUGH_STACK (1024*1024*1)
+#endif
+ char buf[BIG_ENOUGH_STACK];
+ for (int i = 0; i < BIG_ENOUGH_STACK; i++)
+ buf[i] = i;
+#undef BIG_ENOUGH_STACK
+
+ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, 0);
+ pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, 0);
+
+ int policy;
+ /*if ((policy = sched_getscheduler (0)) < 0) {
+ printf("Thread: Cannot get current client scheduler: %s\n", strerror(errno));
+ }
+*/
+ if (debugMsg)
+ printf("Thread <%s, id %p> has %s priority %d\n",
+ _name, (void *)pthread_self(), policy == SCHED_FIFO ? "SCHED_FIFO" : "SCHED_OTHER",
+ realTimePriority);
+
+ _running = true;
+
+ threadStart(userPtr);
+ while (_running) {
+ if (debugMode) // DEBUG
+ _pollWait = 10; // ms
+ else
+ _pollWait = -1;
+
+ int n = poll(pfd, npfd, _pollWait);
+ if (n < 0) {
+ if (errno == EINTR)
+ continue;
+ fprintf(stderr, "poll failed: %s\n", strerror(errno));
+ exit(-1);
+ }
+ if (n == 0) { // timeout
+ defaultTick();
+ continue;
+ }
+ struct pollfd* p = &pfd[0];
+ int i = 0;
+ for (iPoll ip = plist.begin(); ip != plist.end(); ++ip, ++p, ++i) {
+ if (ip->action & p->revents) {
+ (ip->handler)(ip->param1, ip->param2);
+ break;
+ }
+ }
+ }
+ threadStop();
+ }
+
+//---------------------------------------------------------
+// sendMsg
+// send request from gui to thread
+// wait until request is processed
+//---------------------------------------------------------
+
+extern const char* seqMsgList[];
+
+bool Thread::sendMsg(const ThreadMsg* m)
+ {
+// fprintf(stderr, "<%s> self: %p sendMsg %d id %s running %d\n",
+// _name,
+// pthread_self(), sendSerialNo, seqMsgList[m->id], _running);
+
+ m->serialNo = sendSerialNo;
+ if (_running) {
+ int rv = write(toThreadFdw, &m, sizeof(ThreadMsg*));
+ if (rv != sizeof(ThreadMsg*)) {
+ perror("Thread::sendMessage(): write pipe failed");
+ return true;
+ }
+
+ // wait for thread to finish operation
+ int c;
+ rv = read(fromThreadFdr, &c, sizeof(c));
+ if (rv != sizeof(c)) {
+ perror("Thread::sendMessage(): read pipe failed");
+ return true;
+ }
+ if (c != sendSerialNo)
+ fprintf(stderr, "%p Thread:sendMsg() serial No mismatch %d - %d\n",
+ this, c, sendSerialNo);
+ }
+ else {
+ // if thread is not running (during initialization)
+ // process commands directly:
+ processMsg(m);
+ }
+ ++sendSerialNo;
+ return false;
+ }
+
+//---------------------------------------------------------
+// sendMsg1
+// send request from gui to thread
+// do __not__ wait until request is processed
+//---------------------------------------------------------
+
+bool Thread::sendMsg1(const void* m, int n)
+ {
+ int rv = write(toThreadFdw, m, n);
+ if (rv != n) {
+ perror("Thread::sendMessage1(): write pipe failed");
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// readMsg
+//---------------------------------------------------------
+
+void Thread::readMsg()
+ {
+ ThreadMsg* p;
+ if (read(toThreadFdr, &p, sizeof(p)) != sizeof(p)) {
+ perror("Thread::readMsg(): read pipe failed");
+ exit(-1);
+ }
+// fprintf(stderr, "%p read msg %d %s\n", this, p->serialNo, seqMsgList[p->id]);
+
+ processMsg(p);
+ int c = p->serialNo;
+ int rv = write(fromThreadFdw, &c, sizeof(c));
+ if (rv != sizeof(c))
+ perror("Thread::readMsg(): write pipe failed");
+ }
+
+//---------------------------------------------------------
+// readMsg
+// sequencer reads one gui message
+//---------------------------------------------------------
+
+void Thread::readMsg1(int size)
+ {
+ char buffer[size];
+ int n = read(toThreadFdr, buffer, size);
+ if (n != size) {
+ fprintf(stderr, "Thread::readMessage1(): read pipe failed, get %d, expected %d: %s\n",
+ n, size, strerror(errno));
+ exit(-1);
+ }
+ processMsg1(buffer);
+ }
+
diff --git a/muse_qt4_evolution/muse/thread.h b/muse_qt4_evolution/muse/thread.h
new file mode 100644
index 00000000..cf7fc40b
--- /dev/null
+++ b/muse_qt4_evolution/muse/thread.h
@@ -0,0 +1,109 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __THREAD_H__
+#define __THREAD_H__
+
+#include <pthread.h>
+
+//---------------------------------------------------------
+// Poll
+//---------------------------------------------------------
+
+struct Poll {
+ int fd;
+ int action;
+ void (*handler)(void*,void*);
+ void* param1;
+ void* param2;
+
+ Poll(int _fd, int _action, void(*_handler)(void*,void*), void* p, void* q) {
+ fd = _fd;
+ action = _action;
+ handler = _handler;
+ param1 = p;
+ param2 = q;
+ }
+ };
+
+typedef std::list<Poll> PollList;
+typedef std::list<Poll>::iterator iPoll;
+
+
+//---------------------------------------------------------
+// ThreadMsg
+//---------------------------------------------------------
+
+struct ThreadMsg {
+ int id;
+ mutable int serialNo; // debug
+ };
+
+//---------------------------------------------------------
+// Thread
+//---------------------------------------------------------
+
+class Thread {
+ const char* _name;
+ volatile bool _running;
+ int _pollWait; // poll timeout in msec (-1 = infinite)
+ int sendSerialNo; // debug
+
+ pthread_t thread;
+
+ int toThreadFdw; // message to thread (app write)
+
+ PollList plist;
+ void* userPtr;
+
+ protected:
+ int realTimePriority;
+ int fromThreadFdr; // message from thread (seq read)
+ int fromThreadFdw; // message from thread (app write)
+ int toThreadFdr; // message to thread (seq read)
+ struct pollfd* pfd; // poll file descriptors
+ int npfd;
+ int maxpfd;
+ virtual void processMsg(const ThreadMsg*) {}
+ virtual void processMsg1(const void *) {}
+ virtual void defaultTick() {}
+
+ public:
+ Thread(const char* name);
+ virtual ~Thread();
+ const char* name() const { return _name; }
+ virtual void start(int priority, void* ptr=0);
+ void stop(bool);
+ void clearPollFd() { plist.clear(); npfd = 0; }
+ void addPollFd(int fd, int action, void (*handler)(void*,void*), void*, void*);
+ void removePollFd(int fd, int action);
+ void loop();
+ void readMsg();
+ void readMsg1(int size);
+ bool sendMsg1(const void* m, int n);
+ bool sendMsg(const ThreadMsg* m);
+ bool isRunning() const { return _running; }
+ void setPollWait(int val) { _pollWait = val; }
+ virtual void threadStart(void*){ } // called from loop
+ virtual void threadStop() { } // called from loop before leaving
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/ticksynth.cpp b/muse_qt4_evolution/muse/ticksynth.cpp
new file mode 100644
index 00000000..861861de
--- /dev/null
+++ b/muse_qt4_evolution/muse/ticksynth.cpp
@@ -0,0 +1,181 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "audio.h"
+#include "ticksynth.h"
+#include "default_click.h"
+
+SynthI* metronome = 0;
+
+class MetronomeSynth;
+static MetronomeSynth* metronomeSynth;
+
+//---------------------------------------------------------
+// MetronomeSynth
+//---------------------------------------------------------
+
+class MetronomeSynth : public Synth {
+ public:
+ MetronomeSynth(const QFileInfo* fi) : Synth(fi, QString("Metronome")) {}
+ virtual ~MetronomeSynth() {}
+ virtual void incInstances(int) {}
+ virtual void* instantiate();
+ virtual SynthIF* createSIF(SynthI*);
+ };
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+void* MetronomeSynth::instantiate()
+ {
+ return 0;
+ }
+
+//---------------------------------------------------------
+// MetronomeSynthIF
+//---------------------------------------------------------
+
+class MetronomeSynthIF : public SynthIF
+ {
+ const float* data;
+ int pos;
+ int len;
+ void process(float** buffer, int offset, int n);
+
+ public:
+ MetronomeSynthIF(SynthI* s) : SynthIF(s) {
+ data = 0;
+ }
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual bool hasGui() const { return false; }
+ virtual void getGeometry(int*, int*, int*, int*) const {}
+ virtual void setGeometry(int, int, int, int) {}
+ virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer);
+ virtual bool putEvent(const MidiEvent& ev);
+ virtual MidiEvent receiveEvent() { return MidiEvent(); }
+ virtual int eventsPending() const { return 0; }
+ virtual int channels() const { return 1; }
+ virtual void deactivate2() {}
+ virtual void deactivate3() {}
+ virtual QString getPatchName(int, int, int) const { return ""; }
+ virtual QString getPatchName(int, int) { return ""; }
+ virtual void populatePatchPopup(QMenu*, int) {};
+ virtual void write(Xml&) const {}
+ virtual void setParameter(int, float) {}
+ virtual int getControllerInfo(int, const char**, int*, int*, int*) { return 0; }
+ virtual bool hasAuxSend() const { return false; }
+ };
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+void MetronomeSynthIF::getData(MidiEventList* el, unsigned pos, int/*ports*/, unsigned n, float** buffer)
+ {
+ unsigned curPos = pos;
+ unsigned endPos = pos + n;
+ unsigned off = pos;
+
+ iMidiEvent i = el->begin();
+ for (; i != el->end(); ++i) {
+ unsigned frame = i->time();
+ if (frame >= endPos)
+ break;
+ if (frame > curPos) {
+ if (frame < pos)
+ printf("should not happen: missed event %d\n", pos -frame);
+ else
+ process(buffer, curPos-pos, frame - curPos);
+ curPos = frame;
+ }
+ putEvent(*i);
+ }
+ if (endPos - curPos)
+ process(buffer, curPos - off, endPos - curPos);
+ el->erase(el->begin(), i);
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool MetronomeSynthIF::putEvent(const MidiEvent& ev)
+ {
+ if (ev.dataA() == 0) {
+ data = defaultClickEmphasis;
+ len = defaultClickEmphasisLength;
+ }
+ else {
+ data = defaultClick;
+ len = defaultClickLength;
+ }
+ pos = 0;
+ return false;
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+SynthIF* MetronomeSynth::createSIF(SynthI* s)
+ {
+ return new MetronomeSynthIF(s);
+ }
+
+//---------------------------------------------------------
+// process
+// synthesize n samples into buffer+offset
+//---------------------------------------------------------
+
+void MetronomeSynthIF::process(float** buffer, int offset, int n)
+ {
+ if (data == 0) {
+ memset(buffer[0], 0, n * sizeof(float));
+ return;
+ }
+ const float* s = data + pos;
+ float* d = *buffer + offset;
+ int l = std::min(n, len);
+ int i;
+ for (i = 0; i < l; ++i)
+ *d++ = *s++;
+ for (; i < n; ++i)
+ *d++ = 0.0f;
+ pos += l;
+ len -= l;
+ if (len <= 0)
+ data = 0;
+ }
+
+//---------------------------------------------------------
+// initMetronome
+//---------------------------------------------------------
+
+void initMetronome()
+ {
+ QFileInfo fi; // dummy
+ metronomeSynth = new MetronomeSynth(&fi);
+ metronome = new SynthI();
+ metronome->setName("metronome");
+ metronome->initInstance(metronomeSynth);
+ }
+
diff --git a/muse_qt4_evolution/muse/ticksynth.h b/muse_qt4_evolution/muse/ticksynth.h
new file mode 100644
index 00000000..d18a483d
--- /dev/null
+++ b/muse_qt4_evolution/muse/ticksynth.h
@@ -0,0 +1,29 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TICKSYNTH_H__
+#define __TICKSYNTH_H__
+
+#include "synth.h"
+extern void initMetronome();
+extern SynthI* metronome;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/tllineedit.cpp b/muse_qt4_evolution/muse/tllineedit.cpp
new file mode 100644
index 00000000..0581b858
--- /dev/null
+++ b/muse_qt4_evolution/muse/tllineedit.cpp
@@ -0,0 +1,70 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tllineedit.h"
+
+//---------------------------------------------------------
+// TLLineEdit
+//---------------------------------------------------------
+
+TLLineEdit::TLLineEdit(const QString& contents, QWidget* parent)
+ : QLineEdit(contents, parent)
+ {
+ setReadOnly(true);
+ setFrame(false);
+ setAlignment(Qt::AlignLeft);
+ setCursorPosition(0);
+ connect(this, SIGNAL(editingFinished()), SLOT(contentHasChanged()));
+ }
+
+//---------------------------------------------------------
+// contentHasChanged
+//---------------------------------------------------------
+
+void TLLineEdit::contentHasChanged()
+ {
+ setReadOnly(true);
+ setFrame(false);
+ if (isModified())
+ emit contentChanged(text());
+ setModified(false);
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void TLLineEdit::mouseDoubleClickEvent(QMouseEvent*)
+ {
+ setReadOnly(false);
+ setFocus();
+ setFrame(true);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void TLLineEdit::mousePressEvent(QMouseEvent* ev)
+ {
+ QLineEdit::mousePressEvent(ev);
+ emit mousePress();
+ }
+
diff --git a/muse_qt4_evolution/muse/tllineedit.h b/muse_qt4_evolution/muse/tllineedit.h
new file mode 100644
index 00000000..56bfdd55
--- /dev/null
+++ b/muse_qt4_evolution/muse/tllineedit.h
@@ -0,0 +1,48 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TLLINEEDIT_H__
+#define __TLLINEEDIT_H__
+
+//---------------------------------------------------------
+// TLLineEdit
+//---------------------------------------------------------
+
+class TLLineEdit : public QLineEdit {
+ Q_OBJECT
+
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+
+ private slots:
+ void contentHasChanged();
+
+ signals:
+ void contentChanged(QString s);
+ void mousePress();
+
+ public:
+ TLLineEdit(const QString& contents, QWidget* parent = 0);
+ };
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/tlswidget.cpp b/muse_qt4_evolution/muse/tlswidget.cpp
new file mode 100644
index 00000000..23b7fbc1
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlswidget.cpp
@@ -0,0 +1,355 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "track.h"
+#include "tlswidget.h"
+#include "tlwlayout.h"
+#include "icons.h"
+#include "arranger.h"
+#include "widgets/simplebutton.h"
+#include "muse.h"
+#include "ctrl/configmidictrl.h"
+#include "ctrl/ctrldialog.h"
+#include "midictrl.h"
+#include "widgets/utils.h"
+
+//---------------------------------------------------------
+// TLSLayout
+//---------------------------------------------------------
+
+class TLSLayout : public QLayout {
+ QList<QLayoutItem*> itemList;
+
+ public:
+ TLSLayout() {}
+ ~TLSLayout();
+
+ void addItem(QLayoutItem* item);
+ void insertWidget(int index, QWidget* item);
+ Qt::Orientations expandingDirections() const { return 0; }
+ bool hasHeightForWidth() const { return false; }
+ int count() const { return itemList.size(); }
+ void setGeometry(const QRect &rect);
+ QSize sizeHint() const { return ((QWidget*)parent())->size(); }
+ QLayoutItem *itemAt(int index) const { return itemList.value(index); }
+ QLayoutItem *takeAt(int idx) {
+ return idx >= 0 && idx < itemList.size() ? itemList.takeAt(idx) : 0;
+ }
+ };
+
+//---------------------------------------------------------
+// TLSLayout
+//---------------------------------------------------------
+
+TLSLayout::~TLSLayout()
+ {
+ QLayoutItem* child;
+ while ((child = takeAt(0)) != 0)
+ delete child;
+ }
+
+//---------------------------------------------------------
+// insertWidget
+//---------------------------------------------------------
+
+void TLSLayout::insertWidget(int index, QWidget* item)
+ {
+ if (item->parent() == 0)
+ item->setParent((QWidget*)parent());
+ itemList.insert(index, new QWidgetItem(item));
+ update();
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void TLSLayout::addItem(QLayoutItem* item)
+ {
+ itemList.append(item);
+ update();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void TLSLayout::setGeometry(const QRect& rect)
+ {
+ static const int labelWidth = 50;
+ int x1 = rect.x() + labelWidth;
+ int y = rect.y();
+ int y2 = y + rect.height();
+
+ QLayoutItem *item = itemList.at(0);
+ QSize size(item->sizeHint());
+ item->widget()->setGeometry(QRect(x1 - 18, y2 - 18-splitWidth, 18, 18));
+
+ item = itemList.at(1);
+ size = item->sizeHint();
+ item->setGeometry(QRect(x1, rect.y(),
+ rect.width() - x1 - 2, trackRowHeight));
+ }
+
+//---------------------------------------------------------
+// TLSWidget
+//---------------------------------------------------------
+
+TLSWidget::TLSWidget(Track* t, ArrangerTrack* atrack, TimeCanvas* timeC)
+ {
+ setAttribute(Qt::WA_NoBackground);
+ setAttribute(Qt::WA_StaticContents);
+ setAutoFillBackground(true);
+
+ setMouseTracking(true);
+ _tc = timeC;
+ state = S_NORMAL;
+
+ at = atrack;
+ _track = t;
+ _ctrlTrack = t;
+
+ TLSLayout* l = new TLSLayout;
+ setLayout(l);
+ //
+ // track type
+ //
+ SimpleButton* minus = newMinusButton();
+ minus->setToolTip(tr("Remove Subtrack"));
+ l->addWidget(minus);
+
+ ctrlList = new QToolButton;
+ ctrlList->setText(tr("Ctrl"));
+
+ connect(ctrlList, SIGNAL(clicked()), SLOT(showControllerList()));
+
+ l->addWidget(ctrlList);
+ ctrlList->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+ connect(_track, SIGNAL(selectionChanged(bool)), SLOT(selectionChanged()));
+ connect(_track, SIGNAL(controllerChanged(int)), SLOT(controllerListChanged(int)));
+ connect(_track, SIGNAL(autoReadChanged(bool)), SLOT(autoReadChanged()));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ connect(minus, SIGNAL(clicked()), SLOT(labelMinusClicked()));
+ configChanged();
+ }
+
+//---------------------------------------------------------
+// ctrl
+//---------------------------------------------------------
+
+Ctrl* TLSWidget::ctrl() const
+ {
+ return at->controller;
+ }
+
+//---------------------------------------------------------
+// height
+//---------------------------------------------------------
+
+int TLSWidget::cheight() const
+ {
+ return at->tw->height() - splitWidth;
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void TLSWidget::selectionChanged()
+ {
+// setFrameShadow(_track->selected() ? QFrame::Sunken : QFrame::Raised);
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void TLSWidget::configChanged()
+ {
+ QColor c(_track->ccolor());
+ QPalette p(palette());
+ p.setColor(QPalette::Background, c.light(100));
+ setPalette(p);
+ }
+
+//---------------------------------------------------------
+// showControllerList
+//---------------------------------------------------------
+
+bool TLSWidget::showControllerList()
+ {
+ Ctrl* c = ctrl();
+ int id;
+ if (c)
+ id = c->id();
+ else
+ id = CTRL_NO_CTRL;
+ for (;;) {
+ CtrlDialog cd(_ctrlTrack, id);
+ int rv = cd.exec();
+ if (rv != 1)
+ return false;
+ id = cd.curId();
+ if (id == CTRL_NO_CTRL)
+ return false;
+ if (id != CTRL_OTHER)
+ break;
+ ConfigMidiCtrl* mce = new ConfigMidiCtrl((MidiTrack*)_track);
+ mce->exec();
+ delete mce;
+ }
+ setCtrl(id);
+ return true;
+ }
+
+//---------------------------------------------------------
+// setCtrl
+//---------------------------------------------------------
+
+bool TLSWidget::setCtrl(int ctrl)
+ {
+ if (ctrl == CTRL_NO_CTRL || ctrl == CTRL_OTHER) {
+ // this controller subtrack is new, ask user for
+ // controller:
+ return showControllerList();
+ }
+
+ if (_ctrlTrack && _ctrlTrack != _track) {
+ disconnect(_ctrlTrack, SIGNAL(controllerChanged(int)), this, SLOT(controllerListChanged(int)));
+ }
+ if (ctrl == CTRL_VELOCITY) {
+ at->controller = &veloList;
+ at->ctrl = CTRL_VELOCITY;
+ ctrlList->setText(tr("Velocity"));
+ _ctrlTrack = _track;
+ emit controllerChanged(at->ctrl);
+ }
+ else {
+ at->ctrl = ctrl;
+ at->controller = _track->getController(ctrl);
+ if (at->controller) {
+ _ctrlTrack = _track;
+ ctrlList->setText(at->controller->name());
+ emit controllerChanged(ctrl);
+ }
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// labelMinusClicked
+//---------------------------------------------------------
+
+void TLSWidget::labelMinusClicked()
+ {
+ emit minusClicked(this);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void TLSWidget::mousePressEvent(QMouseEvent* ev)
+ {
+ if (ev->button() == Qt::RightButton) {
+ QMenu* menu = new QMenu(this);
+ QAction* a = menu->addAction(tr("Delete Controller"));
+ a->setData(0);
+ QAction* rv = menu->exec(ev->globalPos());
+ if (rv == 0)
+ return;
+ emit minusClicked(this);
+ return;
+ }
+ song->selectTrack(_track);
+
+ int y = ev->pos().y();
+ int wh = height();
+ starty = ev->globalPos().y();
+ if (y > (wh - splitWidth)) {
+ state = S_DRAGBOTTOM;
+ emit startDrag(trackIdx);
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void TLSWidget::mouseReleaseEvent(QMouseEvent*)
+ {
+ state = S_NORMAL;
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void TLSWidget::mouseMoveEvent(QMouseEvent* ev)
+ {
+ QPoint pos(ev->pos());
+
+ if (state == S_DRAGTOP)
+ emit drag(trackIdx-1, ev->globalPos().y() - starty);
+ else if (state == S_DRAGBOTTOM)
+ emit drag(trackIdx, ev->globalPos().y() - starty);
+ else {
+ int y = pos.y();
+ int wh = height();
+ if (y > (wh - splitWidth))
+ setCursor(Qt::SizeVerCursor);
+ else
+ setCursor(Qt::ArrowCursor);
+ }
+ }
+
+//---------------------------------------------------------
+// controllerListChanged
+// controller list for controller id changed
+//---------------------------------------------------------
+
+void TLSWidget::controllerListChanged(int id)
+ {
+ if (ctrl()->id() == id)
+ tc()->widget()->update();
+ }
+
+//---------------------------------------------------------
+// autoReadChanged
+//---------------------------------------------------------
+
+void TLSWidget::autoReadChanged()
+ {
+ tc()->widget()->update();
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void TLSWidget::paintEvent(QPaintEvent* ev)
+ {
+ QPainter p(this);
+ QRect r(ev->rect());
+ p.fillRect(r, _track->ccolor());
+ paintHLine(p, r.x(), r.x() + r.width(), height() - splitWidth);
+ }
diff --git a/muse_qt4_evolution/muse/tlswidget.h b/muse_qt4_evolution/muse/tlswidget.h
new file mode 100644
index 00000000..ccdfa3b8
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlswidget.h
@@ -0,0 +1,83 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TLSWIDGET_H__
+#define __TLSWIDGET_H__
+
+class Track;
+class ArrangerTrack;
+class CtrlDialog;
+class TimeCanvas;
+
+#include "ctrl/ctrleditor.h"
+
+//---------------------------------------------------------
+// TLSWidget
+//---------------------------------------------------------
+
+class TLSWidget : public QWidget, public CtrlEditor {
+ Q_OBJECT
+
+ enum { S_NORMAL, S_DRAGTOP, S_DRAGBOTTOM, S_DRAG };
+ int state;
+
+ int trackIdx;
+ int starty;
+ Track* _track; // editor canvas is associated to this track
+ Track* _ctrlTrack; // track were ctrl belongs to
+ TimeCanvas* _tc;
+ QToolButton* ctrlList;
+ QLineEdit* nameEdit;
+ ArrangerTrack* at;
+
+ TimeCanvas* tc() const { return _tc; }
+ Ctrl* ctrl() const;
+ int cheight() const;
+
+ virtual void paintEvent(QPaintEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+
+ private slots:
+ void labelMinusClicked();
+ bool showControllerList();
+ void selectionChanged();
+ void configChanged();
+ void controllerListChanged(int);
+ void autoReadChanged();
+
+ signals:
+ void minusClicked(TLSWidget*);
+ void controllerChanged(int);
+ void startDrag(int idx);
+ void drag(int idx, int);
+
+ public:
+ TLSWidget(Track*, ArrangerTrack*, TimeCanvas* tc);
+ Track* track() const { return _track; }
+ Track* ctrlTrack() const { return _ctrlTrack; }
+ bool setCtrl(int ctrl);
+ void setIdx(int n) { trackIdx = n; }
+ };
+
+#endif
+
+
diff --git a/muse_qt4_evolution/muse/tlwidget.cpp b/muse_qt4_evolution/muse/tlwidget.cpp
new file mode 100644
index 00000000..fdf08d0b
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlwidget.cpp
@@ -0,0 +1,641 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "track.h"
+#include "tlwidget.h"
+#include "tlwlayout.h"
+#include "tllineedit.h"
+#include "icons.h"
+#include "arranger.h"
+#include "widgets/simplebutton.h"
+#include "muse.h"
+#include "trelement.h"
+#include "gconfig.h"
+#include "widgets/utils.h"
+#include "trackdrag.h"
+#include "synth.h"
+#include "widgets/outportcombo.h"
+#include "audio.h"
+#include "midioutport.h"
+#include "instruments/minstrument.h"
+
+//---------------------------------------------------------
+// TLWidget
+//---------------------------------------------------------
+
+TLWidget::TLWidget(Track* t, TrGroupList* tgl)
+ {
+ setAttribute(Qt::WA_OpaquePaintEvent);
+ setAutoFillBackground(true);
+
+ setMouseTracking(true);
+
+ state = S_NORMAL;
+ off = 0;
+ tel = tgl;
+ _track = t;
+ outPort = 0;
+
+ bgColor = _track->ccolor();
+ selectBgColor = bgColor.light();
+
+ QPalette p(palette());
+ p.setColor(QPalette::Window, bgColor);
+ p.setColor(QPalette::Base, bgColor);
+ setPalette(p);
+
+ l = new TLWidgetLayout(this);
+ configChanged();
+
+ connect(_track, SIGNAL(selectionChanged(bool)), SLOT(selectionChanged()));
+ setAcceptDrops(true);
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void TLWidget::selectionChanged()
+ {
+ update();
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void TLWidget::nameChanged(QString s)
+ {
+ song->changeTrackName(_track, s);
+ nameEdit->setCursorPosition(0);
+ }
+
+//---------------------------------------------------------
+// selectTL
+//---------------------------------------------------------
+
+void TLWidget::select()
+ {
+ setFocus();
+ song->selectTrack(_track);
+ }
+
+//---------------------------------------------------------
+// labelPlusClicked
+//---------------------------------------------------------
+
+void TLWidget::labelPlusClicked()
+ {
+ emit plusClicked(this);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void TLWidget::mousePressEvent(QMouseEvent* ev)
+ {
+ enum {
+ CMD_REMOVE_TRACK, CMD_COPY_TRACK, CMD_SHOW_AUDIO_GUI,
+ CMD_SHOW_MIDI_GUI
+ };
+ int button = ev->button();
+ if (button == Qt::RightButton) {
+ QMenu* menu = new QMenu(this);
+ QAction* a = getAction("delete", this);
+ menu->addAction(a);
+ a->setData(CMD_REMOVE_TRACK);
+ if (_track->type() == Track::MIDI || _track->type() == Track::WAVE) {
+ a = menu->addAction(tr("Copy Track"));
+ a->setData(CMD_COPY_TRACK);
+ }
+ if (_track->type() == Track::AUDIO_SOFTSYNTH) {
+ SynthI* s = (SynthI*) _track;
+ if (s->hasGui()) {
+ menu->addSeparator();
+ a = menu->addAction(tr("Show Gui"));
+ a->setData(CMD_SHOW_AUDIO_GUI);
+ a->setCheckable(true);
+ a->setChecked(s->guiVisible());
+ }
+ }
+ else if (_track->type() == Track::MIDI_SYNTI) {
+ MidiSynti* s = (MidiSynti*) _track;
+ if (s->hasGui()) {
+ menu->addSeparator();
+ a = menu->addAction(tr("Show Gui"));
+ a->setData(CMD_SHOW_MIDI_GUI);
+ a->setCheckable(true);
+ a->setChecked(s->guiVisible());
+ }
+ }
+
+ a = menu->exec(ev->globalPos());
+ if (!a)
+ return;
+ int rv = a->data().toInt();
+ switch (rv) {
+ default:
+ break;
+ case CMD_REMOVE_TRACK:
+ song->removeTrack(_track);
+ break;
+ case CMD_COPY_TRACK:
+ {
+ int idx = song->tracks()->indexOf(_track);
+ if (_track->type() == Track::MIDI) {
+ MidiTrack* t = new MidiTrack();
+ t->clone((MidiTrack*)_track);
+ song->cmdInsertTrack(t, idx);
+ }
+ else {
+ WaveTrack* t = new WaveTrack();
+ t->clone((WaveTrack*)_track);
+ song->cmdInsertTrack(t, idx);
+ }
+ }
+ break;
+ case CMD_SHOW_AUDIO_GUI:
+ {
+ SynthI* s = (SynthI*) _track;
+ s->showGui(!s->guiVisible());
+ }
+ break;
+ case CMD_SHOW_MIDI_GUI:
+ {
+ MidiSynti* s = (MidiSynti*) _track;
+ s->showGui(!s->guiVisible());
+ }
+ break;
+ }
+ return;
+ }
+ int y = ev->pos().y();
+ int wh = height();
+ starty = ev->globalPos().y();
+ if (y > (wh - splitWidth)) {
+ state = S_DRAGBOTTOM;
+ emit startDrag(trackIdx);
+ }
+ else {
+ state = S_DRAG;
+ startDragPos = ev->pos();
+ startDragTime = QTime::currentTime();
+ select();
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void TLWidget::mouseReleaseEvent(QMouseEvent*)
+ {
+ state = S_NORMAL;
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void TLWidget::mouseMoveEvent(QMouseEvent* ev)
+ {
+ QPoint pos(ev->pos());
+
+ if (state == S_DRAGBOTTOM)
+ emit drag(trackIdx, ev->globalPos().y() - starty);
+ else if (state == S_DRAG) {
+ int t = startDragTime.msecsTo(QTime::currentTime());
+ bool dragActive = (startDragPos - pos).manhattanLength() >
+ QApplication::startDragDistance()
+ || t > QApplication::startDragTime();
+ if (dragActive) {
+ QDrag* d = new TrackDrag(_track, this);
+ d->start(Qt::MoveAction);
+ state = S_NORMAL;
+ }
+ }
+ else {
+ int y = pos.y();
+ int wh = height();
+ if (y > (wh - splitWidth))
+ setCursor(Qt::SizeVerCursor);
+ else
+ setCursor(Qt::ArrowCursor);
+ }
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void TLWidget::configChanged()
+ {
+ l->clear();
+ wlist.clear();
+ nameEdit = 0;
+ record = 0;
+ off = 0;
+ outChannel = 0;
+ outPort = 0;
+
+ label = new QLabel;
+ label->setObjectName("trackLabel");
+ l->addWidget(label);
+ label->setIndent(3);
+
+ label->setText(_track->cname());
+ label->setFixedHeight(11);
+
+ plus = newPlusButton();
+ l->addWidget(plus);
+ plus->setToolTip(tr("Add Subtrack"));
+ connect(plus, SIGNAL(clicked()), SLOT(labelPlusClicked()));
+
+ for (iTrGroup i = tel->begin(); i != tel->end(); ++i) {
+ TrElementList& el = *i;
+ iTrElement k;
+ for (k = el.begin(); k != el.end(); ++k) {
+ int id = (*k)->id;
+ switch(id) {
+ case TR_NAME:
+ nameEdit = new TLLineEdit(_track->name(), this);
+ nameEdit->setFixedHeight(trackRowHeight);
+ connect(nameEdit, SIGNAL(contentChanged(QString)), SLOT(nameChanged(QString)));
+ connect(nameEdit, SIGNAL(mousePress()), SLOT(select()));
+ connect(_track, SIGNAL(nameChanged(const QString&)), nameEdit, SLOT(setText(const QString&)));
+ nameEdit->setToolTip(_track->clname() + " Name");
+ l->addWidget(nameEdit);
+ wlist.push_back(nameEdit);
+ break;
+
+ case TR_INSTRUMENT:
+ {
+ instrument = new QComboBox(this);
+ instrument->setFixedHeight(trackRowHeight);
+ MidiOutPort* op = (MidiOutPort*)_track;
+ MidiInstrument* mi = op->instrument();
+ int idx = 0;
+ int curIdx = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ instrument->addItem((*i)->iname());
+ if ((*i)->iname() == mi->iname())
+ curIdx = idx;
+ }
+ instrument->setCurrentIndex(curIdx);
+ connect(instrument, SIGNAL(activated(int)), SLOT(instrumentSelected(int)));
+ connect(op, SIGNAL(instrumentChanged()), SLOT(instrumentChanged()));
+ l->addWidget(instrument);
+ wlist.push_back(instrument);
+ }
+ break;
+
+ case TR_PATCH:
+ {
+ // Ctrl* ctrl = _track->getController(CTRL_PROGRAM);
+ }
+ break;
+
+ case TR_OFF:
+ {
+ off = newOffButton();
+ off->setFixedSize(trackRowHeight, trackRowHeight);
+ off->setChecked(_track->off());
+ connect(off, SIGNAL(clicked(bool)), SLOT(offToggled(bool)));
+ connect(_track, SIGNAL(offChanged(bool)), this, SLOT(updateOffState()));
+ l->addWidget(off);
+ wlist.push_back(off);
+ }
+ break;
+
+ case TR_DRUMMAP:
+ {
+ SimpleButton* dm = newDrumMapButton();
+ dm->setFixedSize(trackRowHeight, trackRowHeight);
+ dm->setChecked(((MidiTrack*)_track)->useDrumMap());
+ connect(dm, SIGNAL(clicked(bool)), SLOT(drumMapToggled(bool)));
+ connect(_track, SIGNAL(useDrumMapChanged(bool)), dm, SLOT(setChecked(bool)));
+ l->addWidget(dm);
+ wlist.push_back(dm);
+ }
+ break;
+
+ case TR_MUTE:
+ {
+ SimpleButton* mute = newMuteButton();
+ mute->setFixedSize(trackRowHeight, trackRowHeight);
+ mute->setChecked(_track->isMute());
+ connect(mute, SIGNAL(clicked(bool)), SLOT(muteToggled(bool)));
+ connect(_track, SIGNAL(muteChanged(bool)), mute, SLOT(setChecked(bool)));
+ l->addWidget(mute);
+ wlist.push_back(mute);
+ }
+ break;
+
+ case TR_SOLO:
+ {
+ SimpleButton* solo = newSoloButton();
+ solo->setFixedSize(trackRowHeight, trackRowHeight);
+ solo->setChecked(_track->solo());
+ connect(solo, SIGNAL(clicked(bool)), SLOT(soloToggled(bool)));
+ connect(_track, SIGNAL(soloChanged(bool)), solo, SLOT(setChecked(bool)));
+ l->addWidget(solo);
+ wlist.push_back(solo);
+ }
+ break;
+
+ case TR_MONITOR:
+ {
+ SimpleButton* monitor = newMonitorButton();
+ monitor->setFixedSize(trackRowHeight+4, trackRowHeight);
+ monitor->setChecked(_track->monitor());
+ connect(monitor, SIGNAL(clicked(bool)), SLOT(monitorToggled(bool)));
+ connect(_track, SIGNAL(monitorChanged(bool)), monitor, SLOT(setChecked(bool)));
+ l->addWidget(monitor);
+ wlist.push_back(monitor);
+ }
+ break;
+
+ case TR_RECORD:
+ {
+ record = newRecordButton();
+ record->setFixedSize(trackRowHeight, trackRowHeight);
+ record->setChecked(_track->recordFlag());
+ connect(record, SIGNAL(clicked(bool)), SLOT(recordToggled(bool)));
+ connect(_track, SIGNAL(recordChanged(bool)), record, SLOT(setChecked(bool)));
+ l->addWidget(record);
+ wlist.push_back(record);
+ }
+ break;
+
+ case TR_AREAD:
+ {
+ SimpleButton* b = newAutoReadButton();
+ b->setFixedSize(trackRowHeight, trackRowHeight);
+ b->setChecked(_track->autoRead());
+ connect(b, SIGNAL(clicked(bool)), SLOT(autoReadToggled(bool)));
+ connect(_track, SIGNAL(autoReadChanged(bool)), b, SLOT(setChecked(bool)));
+ l->addWidget(b);
+ wlist.push_back(b);
+ }
+ break;
+
+ case TR_AWRITE:
+ {
+ SimpleButton* b = newAutoWriteButton();
+ b->setFixedSize(trackRowHeight, trackRowHeight);
+ b->setChecked(_track->autoWrite());
+ connect(b, SIGNAL(clicked(bool)), SLOT(autoWriteToggled(bool)));
+ connect(_track, SIGNAL(autoWriteChanged(bool)), b, SLOT(setChecked(bool)));
+ l->addWidget(b);
+ wlist.push_back(b);
+ }
+ break;
+
+ case TR_OCHANNEL:
+ {
+ outChannel = new QSpinBox(this);
+ outChannel->setFixedSize(45, trackRowHeight);
+ outChannel->setRange(1, 16);
+ outChannel->setValue(((MidiTrack*)_track)->channelNo() + 1);
+ outChannel->setToolTip(tr("Midi Output Channel"));
+ l->addWidget(outChannel);
+ wlist.push_back(outChannel);
+ connect(outChannel, SIGNAL(valueChanged(int)), SLOT(setChannel(int)));
+ connect((MidiTrack*)_track, SIGNAL(channelChanged(int)), SLOT(channelChanged(int)));
+ }
+ break;
+
+ default:
+ printf("TLWidget:: unknown element %d\n", id);
+ break;
+ }
+ }
+ }
+ updateOffState();
+ selectionChanged(); // update selection state
+ l->update();
+ }
+
+//---------------------------------------------------------
+// recordToggled
+//---------------------------------------------------------
+
+void TLWidget::recordToggled(bool val)
+ {
+ song->setRecordFlag(_track, !val);
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void TLWidget::muteToggled(bool val)
+ {
+ song->setMute(_track, val);
+ }
+
+//---------------------------------------------------------
+// monitorToggled
+//---------------------------------------------------------
+
+void TLWidget::monitorToggled(bool val)
+ {
+ _track->setMonitor(val);
+ }
+
+//---------------------------------------------------------
+// drumMapToggled
+//---------------------------------------------------------
+
+void TLWidget::drumMapToggled(bool val)
+ {
+ ((MidiTrack*)_track)->setUseDrumMap(val);
+ }
+
+//---------------------------------------------------------
+// offToggled
+//---------------------------------------------------------
+
+void TLWidget::offToggled(bool val)
+ {
+ song->setOff(_track, !val);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void TLWidget::soloToggled(bool val)
+ {
+ song->setSolo(_track, val);
+ }
+
+//---------------------------------------------------------
+// autoReadToggled
+//---------------------------------------------------------
+
+void TLWidget::autoReadToggled(bool val)
+ {
+ song->setAutoRead(_track, val);
+ }
+
+//---------------------------------------------------------
+// autoWriteToggled
+//---------------------------------------------------------
+
+void TLWidget::autoWriteToggled(bool val)
+ {
+ song->setAutoWrite(_track, val);
+ }
+
+//---------------------------------------------------------
+// setOutPort
+//---------------------------------------------------------
+
+void TLWidget::setOutPort(int n)
+ {
+ outPort->setCurrentIndex(n);
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void TLWidget::dragEnterEvent(QDragEnterEvent* event)
+ {
+ if (TrackDrag::canDecode(event))
+ event->acceptProposedAction();
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void TLWidget::dropEvent(QDropEvent* event)
+ {
+ Track* t;
+ TrackDrag::decode(event, t);
+ if (_track != t)
+ emit moveTrack(t, _track);
+ event->acceptProposedAction();
+ }
+
+//---------------------------------------------------------
+// updateOffState
+//---------------------------------------------------------
+
+void TLWidget::updateOffState()
+ {
+ bool val = !_track->off();
+ std::vector<QWidget*>::iterator i = wlist.begin();
+ for (; i != wlist.end(); ++i) {
+ if ((*i) != off)
+ (*i)->setEnabled(val);
+ }
+ if (off)
+ off->setChecked(!val);
+ }
+
+//---------------------------------------------------------
+// instrumentSelected
+//---------------------------------------------------------
+
+void TLWidget::instrumentSelected(int n)
+ {
+ MidiOutPort* op = (MidiOutPort*)_track;
+ int idx = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ if (idx == n) {
+ op->setInstrument(*i);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// instrumentChanged
+//---------------------------------------------------------
+
+void TLWidget::instrumentChanged()
+ {
+ MidiOutPort* op = (MidiOutPort*)_track;
+ MidiInstrument* mi = op->instrument();
+ int idx = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ if (*i == mi) {
+ instrument->setCurrentIndex(idx);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void TLWidget::paintEvent(QPaintEvent* ev)
+ {
+ QPainter p(this);
+ QRect r(ev->rect());
+ QColor color(_track->selected() ? selectBgColor : bgColor);
+ p.fillRect(r, color);
+
+ paintHLine(p, r.x(), r.x() + r.width(), height() - splitWidth);
+ QPalette pl = nameEdit->palette();
+ pl.setColor(QPalette::Window, color);
+ pl.setColor(QPalette::Base, color);
+ nameEdit->setPalette(pl);
+
+ // The selected track will get a 4 pixel red bar to the left
+ if ( _track->selected()) {
+ QColor color(200,10,10);
+ QRect qr(0, 0, 4, r.height()-splitWidth);
+ p.fillRect(qr, color);
+ }
+ }
+
+//---------------------------------------------------------
+// channelChanged
+// SLOT: callend when channel routing of track has
+// changed
+// - channel starts counting at 0
+//---------------------------------------------------------
+
+void TLWidget::channelChanged(int channel)
+ {
+ if (outChannel->value() == channel + 1)
+ return;
+ outChannel->setValue(channel + 1);
+ }
+
+//---------------------------------------------------------
+// setChannel
+// - called when channel spinbox value changed
+// - channel starts counting at 1
+//---------------------------------------------------------
+
+void TLWidget::setChannel(int channel)
+ {
+ ((MidiTrack*)_track)->setChannel(channel - 1);
+ }
+
diff --git a/muse_qt4_evolution/muse/tlwidget.h b/muse_qt4_evolution/muse/tlwidget.h
new file mode 100644
index 00000000..fbe428e2
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlwidget.h
@@ -0,0 +1,105 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TLWIDGET_H__
+#define __TLWIDGET_H__
+
+class Track;
+class TrGroupList;
+class TLWidgetLayout;
+class SimpleButton;
+
+//---------------------------------------------------------
+// TLWidget
+//---------------------------------------------------------
+
+class TLWidget : public QWidget {
+ Q_OBJECT
+
+ enum { S_NORMAL, S_DRAGBOTTOM, S_DRAG };
+ int state;
+
+ int trackIdx;
+ int starty;
+ Track* _track;
+ QColor bgColor;
+ QColor selectBgColor;
+
+ QLineEdit* nameEdit;
+ TLWidgetLayout* l;
+ TrGroupList* tel;
+ QSpinBox* outChannel;
+ QComboBox* outPort;
+ SimpleButton* off;
+ SimpleButton* plus;
+ SimpleButton* record;
+ std::vector<QWidget*> wlist;
+ QComboBox* instrument;
+ QLabel* label;
+
+ QTime startDragTime;
+ QPoint startDragPos;
+
+ virtual void paintEvent(QPaintEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void dragEnterEvent(QDragEnterEvent*);
+ virtual void dropEvent(QDropEvent*);
+
+ signals:
+ void startDrag(int idx);
+ void drag(int idx, int);
+
+ private slots:
+ void nameChanged(QString);
+ void labelPlusClicked();
+ void configChanged();
+ void recordToggled(bool);
+ void muteToggled(bool);
+ void offToggled(bool);
+ void soloToggled(bool);
+ void monitorToggled(bool);
+ void drumMapToggled(bool);
+ void selectionChanged();
+ void setOutPort(int);
+ void autoReadToggled(bool val);
+ void autoWriteToggled(bool val);
+ void instrumentSelected(int);
+ void instrumentChanged();
+ void updateOffState();
+ void channelChanged(int);
+ void setChannel(int);
+
+ public slots:
+ void select();
+
+ signals:
+ void plusClicked(TLWidget*);
+ void moveTrack(Track* src, Track* dst);
+
+ public:
+ TLWidget(Track* t, TrGroupList*);
+ Track* track() const { return _track; }
+ void setIdx(int n) { trackIdx = n; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/tlwlayout.cpp b/muse_qt4_evolution/muse/tlwlayout.cpp
new file mode 100644
index 00000000..076f07cf
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlwlayout.cpp
@@ -0,0 +1,144 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tlwlayout.h"
+#include "arranger.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// TLWidgetLayout
+//---------------------------------------------------------
+
+TLWidgetLayout::TLWidgetLayout(QWidget *parent)
+ : QLayout(parent)
+ {
+ setMargin(0);
+ setSpacing(0);
+ }
+
+TLWidgetLayout::TLWidgetLayout()
+ {
+ setMargin(0);
+ setSpacing(0);
+ }
+
+//---------------------------------------------------------
+// takeAt
+//---------------------------------------------------------
+
+QLayoutItem *TLWidgetLayout::takeAt(int index)
+ {
+ if (index >= 0 && index < itemList.size())
+ return itemList.takeAt(index);
+ else
+ return 0;
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void TLWidgetLayout::setGeometry(const QRect &rect)
+ {
+ int n = itemList.size();
+ if (n < 2)
+ return;
+
+ static const int labelWidth = 50;
+ int x1 = rect.x() + labelWidth;
+ int x2 = rect.x() + rect.width();
+ int y = rect.y() + 1;
+ int y2 = y + rect.height() - splitWidth;
+ int dh = trackRowHeight;
+
+ QLayoutItem* item = itemList.at(0);
+ QSize size(item->sizeHint());
+ item->setGeometry(QRect(rect.x(), rect.y(), size.width(), size.height()));
+
+ item = itemList.at(1);
+ item->setGeometry(QRect(x1 - 18, y2 - 19, 18, 18));
+
+ itemList.at(2)->setGeometry(QRect(x1, y, x2-x1, dh));
+ if (n <= 3)
+ return;
+
+ y += dh;
+ if ((y + itemList.at(3)->sizeHint().height()) > y2) {
+ for (int i = 3; i < n; ++i)
+ itemList.at(i)->setGeometry(QRect(-1000, -1000, 0, 0));
+ return;
+ }
+ int x = x1;
+
+ for (int i = 3; i < n; ++i) {
+ QLayoutItem *item = itemList.at(i);
+ QSize size(item->sizeHint());
+
+ if ((x > x1) && ((x + size.width()) > x2)) {
+ x = x1;
+ y += dh;
+ if ((y + size.height()) > y2) {
+ for (; i < n; ++i)
+ itemList.at(i)->setGeometry(QRect(-1000, -1000, 0, 0));
+ return;
+ }
+ }
+ item->setGeometry(QRect(x, y, size.width(), dh));
+ x += size.width();
+ }
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize TLWidgetLayout::sizeHint() const
+ {
+ return minimumSize();
+ }
+
+//---------------------------------------------------------
+// minimumSize
+//---------------------------------------------------------
+
+QSize TLWidgetLayout::minimumSize() const
+ {
+ QSize size;
+ QLayoutItem *item;
+ foreach (item, itemList)
+ size = size.expandedTo(item->minimumSize());
+
+ size += QSize(2*margin(), 2*margin());
+ return size;
+ }
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void TLWidgetLayout::clear()
+ {
+ QLayoutItem* child;
+ while ((child = takeAt(0)) != 0) {
+ delete child->widget();
+ delete child;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/tlwlayout.h b/muse_qt4_evolution/muse/tlwlayout.h
new file mode 100644
index 00000000..1a9cc914
--- /dev/null
+++ b/muse_qt4_evolution/muse/tlwlayout.h
@@ -0,0 +1,51 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TLWLAYOUT_H__
+#define __TLWLAYOUT_H__
+
+//---------------------------------------------------------
+// TLWidgetLayout
+//---------------------------------------------------------
+
+class TLWidgetLayout : public QLayout {
+ QList<QLayoutItem*> itemList;
+
+ int doLayout(const QRect& rect, bool testOnly) const;
+
+ public:
+ TLWidgetLayout(QWidget* parent);
+ TLWidgetLayout();
+ ~TLWidgetLayout() { clear(); }
+
+ void addItem(QLayoutItem* item) { itemList.append(item); }
+ Qt::Orientations expandingDirections() const { return 0; }
+ bool hasHeightForWidth() const { return false; }
+ int count() const { return itemList.size(); }
+ QSize minimumSize() const;
+ void setGeometry(const QRect &rect);
+ QSize sizeHint() const;
+ QLayoutItem *itemAt(int index) const { return itemList.value(index); }
+ QLayoutItem *takeAt(int index);
+ void clear();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/track.cpp b/muse_qt4_evolution/muse/track.cpp
new file mode 100644
index 00000000..93d92ac1
--- /dev/null
+++ b/muse_qt4_evolution/muse/track.cpp
@@ -0,0 +1,1062 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "track.h"
+#include "song.h"
+#include "al/tempo.h"
+#include "al/xml.h"
+#include "icons.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "midictrl.h"
+#include "part.h"
+#include "gui.h"
+#include "audiodev.h"
+
+// synchronize with TrackType!:
+
+const char* Track::_cname[] = {
+ "AudioOut", "Group", "Wave", "AudioIn",
+ "Synth", "Midi", "MidiOut", "MidiIn", "M-Synth"
+ };
+
+const char* Track::_clname[] = {
+ "Audio Output", "Audio Group", "Wave Track", "Audio Input",
+ "Synti", "Midi Track", "Midi Output", "Midi Input",
+ "Midi Synth"
+ };
+
+//---------------------------------------------------------
+// ArrangerTrack
+//---------------------------------------------------------
+
+ArrangerTrack::ArrangerTrack()
+ {
+ tw = 0;
+ ctrl = -1; // first ctrl in list
+ controller = 0;
+ h = defaultTrackHeight;
+ }
+
+//---------------------------------------------------------
+// ccolor
+// return track specific track background color
+//---------------------------------------------------------
+
+QColor Track::ccolor() const
+ {
+ return config.trackBg[type()];
+ }
+
+//---------------------------------------------------------
+// pixmap
+//---------------------------------------------------------
+
+QPixmap* Track::pixmap(TrackType t)
+ {
+ switch(t) {
+ case AUDIO_OUTPUT: return addtrack_audiooutputIcon;
+ case AUDIO_GROUP: return addtrack_audiogroupIcon;
+ case WAVE: return addtrack_wavetrackIcon;
+ case AUDIO_INPUT: return addtrack_audioinputIcon;
+ case AUDIO_SOFTSYNTH: return addtrack_audioinputIcon; // DEBUG
+ default:
+ case MIDI: return addtrack_addmiditrackIcon;
+ case MIDI_OUT: return addtrack_addmiditrackIcon;
+ case MIDI_IN: return addtrack_addmiditrackIcon;
+ }
+ }
+
+//---------------------------------------------------------
+// Track
+//---------------------------------------------------------
+
+Track::Track()
+ {
+ _tt = AL::TICKS;
+ _recordFlag = false;
+ _monitor = false;
+ _mute = false;
+ _solo = false;
+ _off = false;
+ _channels = 0; // 1 - mono, 2 - stereo
+ _selected = false;
+ _locked = false;
+ _autoRead = autoReadDefault();
+ _autoWrite = autoWriteDefault();
+
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ _meter[i] = 0.0f;
+ _peak[i] = 0.0f;
+ _peakTimer[i] = 0;
+ }
+ _sendSync = false;
+ _deviceId = 127;
+ _parts = new PartList;
+ }
+
+//---------------------------------------------------------
+// ~Track
+//---------------------------------------------------------
+
+Track::~Track()
+ {
+ delete _parts;
+
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+// if (!_alsaPort[i].isZero())
+// midiDriver->unregisterPort(_alsaPort[i]);
+ if (!_jackPort[i].isZero())
+ audioDriver->unregisterPort(_jackPort[i]);
+ }
+
+ }
+
+//---------------------------------------------------------
+// setDefaultName
+// generate unique name for track
+//---------------------------------------------------------
+
+void Track::setDefaultName()
+ {
+ QString base;
+ switch(type()) {
+ case MIDI:
+ case WAVE:
+ base = QString("Track");
+ break;
+ case AUDIO_GROUP:
+ base = QString("Group");
+ break;
+ case AUDIO_SOFTSYNTH:
+ // base = QString("Synth");
+ return;
+ case AUDIO_OUTPUT:
+ case AUDIO_INPUT:
+ case MIDI_OUT:
+ case MIDI_IN:
+ case MIDI_SYNTI:
+ case TRACK_TYPES:
+ base = cname();
+ break;
+ };
+ //
+ // create unique name
+ //
+ for (int i = 1;; ++i) {
+ QString s;
+ if (i == 1)
+ s = base;
+ else
+ s = QString("%1 %2").arg(base).arg(i);
+ bool found = false;
+ TrackList* tl = song->tracks();
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ Track* track = *it;
+ if (track->name() == s) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ setName(s);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Track::dump() const
+ {
+ printf("Track <%s>: typ %d, parts %zd sel %d\n",
+ _name.toLatin1().data(), type(), _parts->size(), _selected);
+ }
+
+//---------------------------------------------------------
+// addPart
+//---------------------------------------------------------
+
+void Track::addPart(Part* p)
+ {
+ p->setTrack(this);
+ _parts->add(p);
+ }
+
+//---------------------------------------------------------
+// findPart
+//---------------------------------------------------------
+
+Part* Track::findPart(unsigned tick)
+ {
+ for (iPart i = _parts->begin(); i != _parts->end(); ++i) {
+ Part* part = i->second;
+ if (tick >= part->tick() && tick < (part->tick()+part->lenTick()))
+ return part;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// Track::writeProperties
+//---------------------------------------------------------
+
+void Track::writeProperties(Xml& xml) const
+ {
+ xml.tag("name", _name);
+ if (!_comment.isEmpty())
+ xml.tag("comment", _comment);
+ if (_recordFlag)
+ xml.tag("record", _recordFlag);
+ if (mute() != muteDefault())
+ xml.tag("mute", mute());
+ if (solo())
+ xml.tag("solo", solo());
+ if (off())
+ xml.tag("off", off());
+ if (_channels)
+ xml.tag("channels", _channels);
+ if (_locked)
+ xml.tag("locked", _locked);
+ if (_monitor)
+ xml.tag("monitor", _monitor);
+ if (_autoRead != autoReadDefault())
+ xml.tag("autoRead", _autoRead);
+ if (_autoWrite != autoWriteDefault())
+ xml.tag("autoWrite", _autoWrite);
+ if (_selected)
+ xml.tag("selected", _selected);
+ for (ciCtrl icl = controller()->begin(); icl != controller()->end(); ++icl)
+ icl->second->write(xml);
+ if (arrangerTrack.tw)
+ xml.tag("height", arrangerTrack.tw->height());
+ for (ciArrangerTrack i = subtracks.begin(); i != subtracks.end(); ++i) {
+ xml.stag("subtrack");
+ xml.tag("height", (*i)->tw->height());
+ xml.tag("ctrl", (*i)->ctrl);
+ xml.etag("subtrack");
+ }
+ }
+
+//---------------------------------------------------------
+// Track::readProperties
+//---------------------------------------------------------
+
+bool Track::readProperties(QDomNode node)
+ {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ QString s(e.text());
+ int i = s.toInt();
+
+ if (tag == "name")
+ setName(s);
+ else if (tag == "comment")
+ _comment = s;
+ else if (tag == "record") {
+ bool recordFlag = i;
+ setRecordFlag(recordFlag);
+ }
+ else if (tag == "mute")
+ _mute = i;
+ else if (tag == "solo")
+ _solo = i;
+ else if (tag == "off")
+ _off = i;
+ else if (tag == "channels")
+ _channels = i;
+ else if (tag == "locked")
+ _locked = i;
+ else if (tag == "monitor")
+ _monitor = i;
+ else if (tag == "selected")
+ _selected = i;
+ else if (tag == "autoRead")
+ _autoRead = i;
+ else if (tag == "autoWrite")
+ _autoWrite = i;
+ else if (tag == "controller") {
+ Ctrl* l = new Ctrl();
+ l->read(node, false);
+
+ iCtrl icl = controller()->find(l->id());
+ if (icl == controller()->end())
+ controller()->add(l);
+ else { //???
+ Ctrl* d = icl->second;
+ for (iCtrlVal i = l->begin(); i != l->end(); ++i)
+ d->insert(i.key(), i.value());
+ d->setCurVal(l->curVal());
+ d->setDefault(l->getDefault());
+ delete l;
+ }
+ }
+ else if (tag == "height")
+ arrangerTrack.h = i < minTrackHeight ? minTrackHeight : i;
+ else if (tag == "subtrack") {
+ ArrangerTrack* st = new ArrangerTrack;
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e = n.toElement();
+ QString tag = e.tagName();
+ QString s = e.text();
+ int i = s.toInt();
+ if (tag == "height")
+ st->h = i;
+ else if (tag == "ctrl") {
+ st->ctrl = i;
+ }
+ else
+ printf("Track::subtrack: unknown tag <%s>\n", tag.toLatin1().data());
+ }
+ subtracks.push_back(st);
+ }
+ else
+ return true;
+ return false;
+ }
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+void Track::addController(Ctrl* list)
+ {
+ iCtrl i = controller()->find(list->id());
+ if (i != controller()->end()) {
+ // printf("%s(%s)::addController(%s): already there 0x%x\n",
+ // cname().toLatin1().data(), name().toLatin1().data(), list->name().toLatin1().data(), list->id());
+ // abort();
+ return;
+ }
+ controller()->add(list);
+ emit clChanged();
+ }
+
+//---------------------------------------------------------
+// addMidiController
+//---------------------------------------------------------
+
+void Track::addMidiController(MidiInstrument* mi, int ctrl)
+ {
+ iCtrl cl = _controller.find(ctrl);
+ if (cl != _controller.end())
+ return;
+
+ MidiController* mc = mi->midiController(ctrl);
+ Ctrl* pvl;
+ if (mc) {
+ pvl = new Ctrl(mc);
+ }
+ else {
+ printf("unknown midi controller %x\n", ctrl);
+ pvl = new Ctrl(ctrl, QString("unknown"));
+ pvl->setCurVal(CTRL_VAL_UNKNOWN);
+ pvl->setType(Ctrl::DISCRETE | Ctrl::INT);
+ }
+ addController(pvl);
+ }
+
+//---------------------------------------------------------
+// removeController
+//---------------------------------------------------------
+
+void Track::removeController(int id)
+ {
+ iCtrl i = controller()->find(id);
+ if (i == controller()->end()) {
+ printf("Track::removeController id 0x%x not found, listsize %zd\n",
+ id, controller()->size());
+ return;
+ }
+ controller()->erase(i);
+ emit clChanged();
+ }
+
+//---------------------------------------------------------
+// changeCtrlName
+//---------------------------------------------------------
+
+void Track::changeCtrlName(Ctrl* c, const QString& s)
+ {
+ c->setName(s);
+ emit clChanged();
+ }
+
+//---------------------------------------------------------
+// addControllerVal
+// return true if new controller value added
+//---------------------------------------------------------
+
+bool Track::addControllerVal(int id, unsigned time, CVal val)
+ {
+ iCtrl i = controller()->find(id);
+ if (i == controller()->end()) {
+ if ((id & 0xf0000) == CTRL_NRPN_OFFSET) {
+ int msb = id & 0xff00;
+ // int lsb = id & 0xff;
+ int nid = CTRL_NRPN_OFFSET + msb + 0xff;
+ i = controller()->find(nid);
+ if (i != controller()->end()) {
+ Ctrl* c = new Ctrl(*(i->second));
+ c->setId(id);
+ addController(c);
+// printf("add pitch ctrl %x\n", id);
+ return c->add(time, val);
+ }
+ }
+ printf("Track::addControllerVal(): id 0x%x not found, listsize %zd\n",
+ id, controller()->size());
+ return false;
+ }
+ return i->second->add(time, val);
+ }
+
+//---------------------------------------------------------
+// removeControllerVal
+//---------------------------------------------------------
+
+void Track::removeControllerVal(int id, unsigned time)
+ {
+ iCtrl i = controller()->find(id);
+ if (i == controller()->end()) {
+ printf("Track::removeControllerVal(): id 0x%x not found, listsize %zd\n",
+ id, controller()->size());
+ return;
+ }
+ i->second->del(time);
+ }
+
+//---------------------------------------------------------
+// getController
+//---------------------------------------------------------
+
+Ctrl* Track::getController(int id) const
+ {
+ ciCtrl i = controller()->find(id);
+ if (i == controller()->end()) {
+// printf("%s(%s)::getController(%d) size %d: not found\n",
+// cname().toLatin1().data(), name().toLatin1().data(), id, controller()->size());
+// const CtrlList* cl = controller();
+// for (ciCtrl i = cl->begin(); i != cl->end(); ++i)
+// printf(" Ctrl %d\n", i->first);
+ return 0;
+ }
+ return i->second;
+ }
+
+//---------------------------------------------------------
+// controllerNames
+//---------------------------------------------------------
+
+ControllerNameList* Track::controllerNames() const
+ {
+ ControllerNameList* l = new ControllerNameList;
+ for (ciCtrl i = controller()->begin(); i != controller()->end(); ++i)
+ l->push_back(ControllerName(i->second->name(), i->second->id()));
+ return l;
+ }
+
+//---------------------------------------------------------
+// setRecordFlag
+//---------------------------------------------------------
+
+void Track::setRecordFlag(bool f)
+ {
+ if (_recordFlag != f) {
+ _recordFlag = f;
+ emit recordChanged(_recordFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setMonitor
+//---------------------------------------------------------
+
+void Track::setMonitor(bool f)
+ {
+ if (_monitor != f) {
+ _monitor = f;
+ emit monitorChanged(_monitor);
+ }
+ }
+
+//---------------------------------------------------------
+// setSelected
+//---------------------------------------------------------
+
+void Track::setSelected(bool f)
+ {
+ if (f != _selected) {
+ _selected = f;
+ emit selectionChanged(_selected);
+// muse->selectionChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// setController
+// called from GUI
+//---------------------------------------------------------
+
+#if 0
+void Track::setController(Pos pos, int id, int v)
+ {
+ CVal val;
+ val.i = v;
+ setController(pos, id, val);
+ }
+
+void Track::setController(Pos pos, int id, double v)
+ {
+ CVal val;
+ val.f = v;
+ setController(pos, id, val);
+ }
+
+void Track::setController(Pos pos, int id, CVal val)
+ {
+ Ctrl* c = getController(id);
+ if (c == 0) {
+ printf("no controller 0x%x %s\n", id, name().toLatin1().data());
+ return;
+ }
+ if (isMidiTrack()) {
+ int port = ((MidiTrack*)this)->outPort();
+ int channel = ((MidiTrack*)this)->outChannel();
+ MidiEvent ev(0, port, channel, ME_CONTROLLER, id, val.i);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else {
+ // non midi controller are current once set
+ c->setCurVal(val);
+ }
+ c->setSchedVal(val);
+ if (autoWrite()) {
+ unsigned time = _tt == AL::FRAMES ? pos.frame() : pos.tick();
+ if (audio->isPlaying())
+ _recEvents.push_back(CtrlRecVal(time, id, val));
+ else
+ song->addControllerVal(this, c, id, time, val);
+ }
+ emit controllerChanged(id);
+ }
+#endif
+
+//---------------------------------------------------------
+// startAutoRecord
+// slider/knob touched
+//---------------------------------------------------------
+
+void Track::startAutoRecord(int n)
+ {
+ Ctrl* ctrl = getController(n);
+ if (ctrl) {
+ ctrl->setTouched(true);
+ if (audio->isPlaying() && autoWrite())
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, 1));
+ }
+ else
+ printf("no ctrl 0x%x\n", n);
+ }
+
+//---------------------------------------------------------
+// stopAutoRecord
+// slider/knob released
+//---------------------------------------------------------
+
+void Track::stopAutoRecord(int n)
+ {
+ Ctrl* ctrl = getController(n);
+ if (ctrl) {
+ ctrl->setTouched(false);
+ if (audio->isPlaying() && autoWrite())
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, 2));
+ }
+ else
+ printf("no ctrl 0x%x\n", n);
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void Track::setName(const QString& s)
+ {
+ _name = s;
+ emit nameChanged(_name);
+ }
+
+//---------------------------------------------------------
+// setAutoRead
+//---------------------------------------------------------
+
+void Track::setAutoRead(bool val)
+ {
+ if (_autoRead != val) {
+ _autoRead = val;
+ emit autoReadChanged(_autoRead);
+ }
+ }
+
+//---------------------------------------------------------
+// setAutoWrite
+//---------------------------------------------------------
+
+void Track::setAutoWrite(bool val)
+ {
+ if (_autoWrite != val) {
+ _autoWrite = val;
+ emit autoWriteChanged(_autoWrite);
+ }
+ }
+
+//---------------------------------------------------------
+// cpos
+//---------------------------------------------------------
+
+unsigned Track::cpos() const
+ {
+ return timeType() == AL::TICKS ? song->cPos().tick() : song->cPos().frame();
+ }
+
+//---------------------------------------------------------
+// updateController
+//---------------------------------------------------------
+
+void Track::updateController()
+ {
+ CtrlList* cl = controller();
+ for (iCtrl i = cl->begin(); i != cl->end(); ++i) {
+ Ctrl* c = i->second;
+ if (c->changed()) {
+ c->setChanged(false);
+ emit controllerChanged(c->id());
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeRouting
+//---------------------------------------------------------
+
+void Track::writeRouting(Xml& xml) const
+ {
+ if (type() == AUDIO_INPUT || type() == MIDI_IN) {
+ foreach(Route r, _inRoutes) {
+ xml.stag("Route");
+ r.src.write(xml, "src");
+ r.dst.write(xml, "dst");
+ xml.etag("Route");
+ }
+ }
+ foreach(Route r, _outRoutes) {
+ xml.stag("Route");
+ r.src.write(xml, "src");
+ r.dst.write(xml, "dst");
+ xml.etag("Route");
+ }
+ }
+
+//---------------------------------------------------------
+// hwCtrlState
+//---------------------------------------------------------
+
+int Track::hwCtrlState(int ctrl) const
+ {
+ ciCtrl cl = _controller.find(ctrl);
+ if (cl == _controller.end()) {
+ if (debugMsg)
+ printf("hwCtrlState: ctrl 0x%x not found\n", ctrl);
+ return CTRL_VAL_UNKNOWN;
+ }
+ Ctrl* vl = cl->second;
+ return vl->curVal().i;
+ }
+
+//---------------------------------------------------------
+// setHwCtrlState
+//---------------------------------------------------------
+
+void Track::setHwCtrlState(int ctrl, int val)
+ {
+ iCtrl cl = _controller.find(ctrl);
+ if (cl == _controller.end()) {
+ // try to add new controller
+ if (debugMsg)
+ printf("setHwCtrlState(0x%x,0x%x): not found\n", ctrl, val);
+ return;
+ }
+ Ctrl* vl = cl->second;
+// printf("setHwCtrlState ctrl %x val %x\n", ctrl, val);
+ vl->setChanged(true);
+ return vl->setCurVal(val);
+ }
+
+//---------------------------------------------------------
+// getCtrl
+//---------------------------------------------------------
+
+int Track::getCtrl(int tick, int ctrl) const
+ {
+ ciCtrl cl = _controller.find(ctrl);
+ if (cl == _controller.end()) {
+ if (debugMsg)
+ printf("getCtrl: controller %d(0x%x) not found %zd\n",
+ ctrl, ctrl, _controller.size());
+ return CTRL_VAL_UNKNOWN;
+ }
+ return cl->second->value(tick).i;
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+bool Track::setSolo(bool val)
+ {
+ if (_solo != val) {
+ _solo = val;
+ emit soloChanged(_solo);
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setMute
+// return true if mute changed
+//---------------------------------------------------------
+
+bool Track::setMute(bool val)
+ {
+ if (_mute != val) {
+ _mute = val;
+ emit muteChanged(_mute);
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setOff
+// return true if state changed
+//---------------------------------------------------------
+
+bool Track::setOff(bool val)
+ {
+ if (_off != val) {
+ _off = val;
+ emit offChanged(_off);
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void Track::setChannels(int n)
+ {
+ _channels = n;
+ for (int i = 0; i < _channels; ++i) {
+ _meter[i] = 0.0f;
+ _peak[i] = 0.0f;
+ }
+ }
+
+//---------------------------------------------------------
+// resetMeter
+//---------------------------------------------------------
+
+void Track::resetMeter()
+ {
+ for (int i = 0; i < _channels; ++i)
+ _meter[i] = 0.0f;
+ }
+
+//---------------------------------------------------------
+// resetPeaks
+//---------------------------------------------------------
+
+void Track::resetPeaks()
+ {
+ for (int i = 0; i < _channels; ++i)
+ _peak[i] = 0;
+ }
+
+//---------------------------------------------------------
+// resetAllMeter
+//---------------------------------------------------------
+
+void Track::resetAllMeter()
+ {
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ (*i)->resetMeter();
+ }
+
+//---------------------------------------------------------
+// activate1
+// register JACK and ALSA ports
+//---------------------------------------------------------
+
+void Track::activate1()
+ {
+ if (isMidiTrack()) {
+ if (!jackPort(0).isZero())
+ printf("Track::activate1() midi: jack port already active!\n");
+ if (type() == MIDI_OUT) {
+ _jackPort[0] = audioDriver->registerOutPort(_name, true);
+ }
+ else if (type() == MIDI_IN) {
+ _jackPort[0] = audioDriver->registerInPort(_name, true);
+ }
+ return;
+ }
+
+ for (int i = 0; i < channels(); ++i) {
+ if (!jackPort(i).isZero())
+ printf("Track<%s>::activate1(): channel %d already active!\n",
+ name().toLatin1().data(), i);
+ else {
+ QString s(QString("%1-%2").arg(_name).arg(i));
+ if (type() == AUDIO_OUTPUT)
+ _jackPort[i] = audioDriver->registerOutPort(s, false);
+ else if (type() == AUDIO_INPUT)
+ _jackPort[i] = audioDriver->registerInPort(s, false);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// activate2
+// connect all JACK/ALSA in/out routes
+// connect to JACK only works if JACK is running
+//---------------------------------------------------------
+
+void Track::activate2()
+ {
+ if (audioState != AUDIO_RUNNING) {
+ printf("Track::activate2(): no audio running !\n");
+ abort();
+ }
+ foreach(Route r, _outRoutes) {
+ if (r.dst.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->connect(_jackPort[0], r.dst.port);
+ r.disconnected = false;
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT) {
+ audioDriver->connect(_jackPort[r.src.channel], r.dst.port);
+ r.disconnected = false;
+ }
+ }
+ foreach(Route r, _inRoutes) {
+ if (r.src.type == RouteNode::JACKMIDIPORT) {
+ audioDriver->connect(r.src.port, _jackPort[0]);
+ r.disconnected = false;
+ }
+ else if (r.src.type == RouteNode::AUDIOPORT) {
+ audioDriver->connect(r.src.port, _jackPort[r.dst.channel]);
+ r.disconnected = false;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// deactivate
+// disconnect and unregister JACK and ALSA ports
+//---------------------------------------------------------
+
+void Track::deactivate()
+ {
+// printf("deactivate<%s>\n", name().toLatin1().data());
+ foreach(Route r, _outRoutes) {
+ if (r.dst.type == RouteNode::JACKMIDIPORT) {
+ r.disconnected = true;
+ audioDriver->disconnect(_jackPort[0], r.dst.port);
+ }
+ else if (r.dst.type == RouteNode::AUDIOPORT) {
+ audioDriver->disconnect(_jackPort[r.src.channel], r.dst.port);
+ r.disconnected = true;
+ }
+ }
+ foreach(Route r, _inRoutes) {
+ if (r.src.type == RouteNode::JACKMIDIPORT) {
+ r.disconnected = true;
+ audioDriver->disconnect(r.src.port, _jackPort[0]);
+ }
+ else if (r.src.type == RouteNode::AUDIOPORT) {
+ r.disconnected = true;
+ audioDriver->disconnect(r.src.port, _jackPort[r.dst.channel]);
+ }
+ }
+ for (int i = 0; i < channels(); ++i) {
+ if (!_jackPort[i].isZero()) {
+ audioDriver->unregisterPort(_jackPort[i]);
+ _jackPort[i].setZero();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setSendSync
+//---------------------------------------------------------
+
+void Track::setSendSync(bool val)
+ {
+ _sendSync = val;
+ emit sendSyncChanged(val);
+ }
+
+//---------------------------------------------------------
+// splitPart
+// split part "part" at "tick" position
+// create two new parts p1 and p2
+//---------------------------------------------------------
+
+void Track::splitPart(Part* part, int tickpos, Part*& p1, Part*& p2)
+ {
+ int l1 = 0; // len of first new part (ticks or samples)
+ int l2 = 0; // len of second new part
+
+ int samplepos = AL::tempomap.tick2frame(tickpos);
+
+ switch (type()) {
+ case WAVE:
+ l1 = samplepos - part->frame();
+ l2 = part->lenFrame() - l1;
+ break;
+ case MIDI:
+ l1 = tickpos - part->tick();
+ l2 = part->lenTick() - l1;
+ break;
+ default:
+ return;
+ }
+
+ if (l1 <= 0 || l2 <= 0)
+ return;
+
+ p1 = newPart(part); // new left part
+ p2 = newPart(part); // new right part
+
+ switch (type()) {
+ case WAVE:
+ p1->setLenFrame(l1);
+ p2->setFrame(samplepos);
+ p2->setLenFrame(l2);
+ break;
+ case MIDI:
+ p1->setLenTick(l1);
+ p2->setTick(tickpos);
+ p2->setLenTick(l2);
+ break;
+ default:
+ break;
+ }
+
+ EventList* se = part->events();
+ EventList* de1 = p1->events();
+ EventList* de2 = p2->events();
+
+ if (type() == WAVE) {
+ int ps = part->frame();
+ int d1p1 = p1->frame();
+ int d2p1 = p1->endFrame();
+ int d1p2 = p2->frame();
+ int d2p2 = p2->endFrame();
+ for (iEvent ie = se->begin(); ie != se->end(); ++ie) {
+ Event event = ie->second;
+ int s1 = event.frame() + ps;
+ int s2 = event.endFrame() + ps;
+
+ if ((s2 > d1p1) && (s1 < d2p1)) {
+ Event si = event.mid(d1p1 - ps, d2p1 - ps);
+ de1->add(si);
+ }
+ if ((s2 > d1p2) && (s1 < d2p2)) {
+ Event si = event.mid(d1p2 - ps, d2p2 - ps);
+ si.setFrame(si.frame() - l1); //??
+ si.setFrame(0); //??
+ de2->add(si);
+ }
+ }
+ }
+ else {
+ for (iEvent ie = se->begin(); ie != se->end(); ++ie) {
+ Event event = ie->second.clone();
+ int t = event.tick();
+ if (t >= l1) {
+ event.move(-l1);
+ de2->add(event);
+ }
+ else
+ de1->add(event);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// addInRoute
+//---------------------------------------------------------
+
+void Track::addInRoute(const Route& r)
+ {
+ if (_inRoutes.indexOf(r) != -1) {
+ printf("Track::addInRoute: route already there\n");
+ return;
+ }
+ _inRoutes.push_back(r);
+ }
+
+//---------------------------------------------------------
+// addOutRoute
+//---------------------------------------------------------
+
+void Track::addOutRoute(const Route& r)
+ {
+ if (_outRoutes.indexOf(r) != -1) {
+ printf("Track::addOutRoute: route already there\n");
+ return;
+ }
+ _outRoutes.push_back(r);
+ }
+
+//---------------------------------------------------------
+// inRouteExists
+//---------------------------------------------------------
+
+bool Track::inRouteExists(const Route& r) const
+ {
+ return _inRoutes.indexOf(r) != -1;
+ }
+
+//---------------------------------------------------------
+// outRouteExists
+//---------------------------------------------------------
+
+bool Track::outRouteExists(const Route& r) const
+ {
+ return _outRoutes.indexOf(r) != -1;
+ }
+
diff --git a/muse_qt4_evolution/muse/track.h b/muse_qt4_evolution/muse/track.h
new file mode 100644
index 00000000..1afa3cc2
--- /dev/null
+++ b/muse_qt4_evolution/muse/track.h
@@ -0,0 +1,345 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRACK_H__
+#define __TRACK_H__
+
+#include "port.h"
+#include "al/pos.h"
+#include "route.h"
+#include "ctrl.h"
+#include "globaldefs.h"
+
+namespace AL {
+ class Xml;
+ enum TType;
+ };
+using AL::Xml;
+using AL::TType;
+
+class DrumMap;
+class MidiPipeline;
+class MidiEvent;
+class MidiEventList;
+class SynthI;
+class MidiPlugin;
+class MidiPluginI;
+class MidiInstrument;
+class PartList;
+class Part;
+class MidiOutPort;
+class MidiInPort;
+class MidiOut;
+
+//---------------------------------------------------------
+// ArrangerTrack
+//---------------------------------------------------------
+
+struct ArrangerTrack {
+ QWidget* tw; // tracklist widget
+ int ctrl;
+ int h; // tmp val used by readProperties()
+ Ctrl* controller;
+
+ ArrangerTrack();
+ };
+
+typedef std::list<ArrangerTrack*> ArrangerTrackList;
+typedef ArrangerTrackList::iterator iArrangerTrack;
+typedef ArrangerTrackList::const_iterator ciArrangerTrack;
+
+//---------------------------------------------------------
+// Track
+//---------------------------------------------------------
+
+class Track : public QObject {
+ Q_OBJECT
+
+ public:
+ enum TrackType {
+ AUDIO_OUTPUT,
+ AUDIO_GROUP,
+ WAVE,
+ AUDIO_INPUT,
+ AUDIO_SOFTSYNTH,
+ MIDI,
+ MIDI_OUT,
+ MIDI_IN,
+ MIDI_SYNTI,
+ TRACK_TYPES
+ };
+ enum {
+ M_AUDIO_OUTPUT = 1 << AUDIO_OUTPUT,
+ M_AUDIO_GROUP = 1 << AUDIO_GROUP,
+ M_WAVE = 1 << WAVE,
+ M_AUDIO_INPUT = 1 << AUDIO_INPUT,
+ M_AUDIO_SOFTSYNTH = 1 << AUDIO_SOFTSYNTH,
+ M_MIDI = 1 << MIDI,
+ M_MIDI_OUT = 1 << MIDI_OUT,
+ M_MIDI_IN = 1 << MIDI_IN,
+ M_MIDI_SYNTI = 1 << MIDI_SYNTI
+ };
+
+ private:
+ QString _comment;
+ PartList* _parts;
+ Port _jackPort[MAX_CHANNELS];
+ bool _sendSync; // this port sends mtc/mmc events
+ int _deviceId; // midi device id: 0-126; 127 == all
+
+ protected:
+ TType _tt; // time type
+ QString _name;
+ bool _recordFlag;
+ bool _mute;
+ bool _solo;
+ bool _off;
+ bool _monitor;
+ int _channels; // 1 - mono, 2 - stereo
+ // Note: midi out/in tracks have
+ // 1 channel
+ CtrlRecList _recEvents; // recorded automation events
+ double _meter[MAX_CHANNELS];
+ double _peak[MAX_CHANNELS];
+ int _peakTimer[MAX_CHANNELS];
+ bool _locked; // true if parts are locked to frames
+ bool _selected;
+
+ RouteList _inRoutes, _outRoutes;
+ CtrlList _controller;
+
+ bool _autoRead, _autoWrite;
+
+ bool readProperties(QDomNode);
+ void writeProperties(Xml& xml) const;
+
+ virtual bool setMute(bool val);
+ virtual bool setOff(bool val);
+ virtual bool setSolo(bool val);
+
+ signals:
+ void recordChanged(bool);
+ void autoReadChanged(bool);
+ void autoWriteChanged(bool);
+ void clChanged();
+ void controllerChanged(int id);
+ void selectionChanged(bool);
+ void muteChanged(bool);
+ void soloChanged(bool);
+ void monitorChanged(bool);
+ void offChanged(bool);
+ void partsChanged();
+ void nameChanged(const QString&);
+ void routeChanged();
+ void sendSyncChanged(bool);
+
+ private slots:
+ void setAutoRead(bool);
+ void setAutoWrite(bool);
+
+ public:
+ Track();
+ virtual ~Track();
+
+ static const char* _cname[];
+ static const char* _clname[];
+
+ QString comment() const { return _comment; }
+ void setComment(const QString& s) { _comment = s; }
+ TType timeType() const { return _tt; }
+ void setTimeType(TType t) { _tt = t; }
+
+ QString cname() const {
+ int t = type();
+ return QString(_cname[t]);
+ }
+ QString clname() const { return QString(_clname[type()]); }
+
+ //
+ // called before and after use
+ // (undo/redo)
+ // connects/reconnects to the outside world
+ //
+ void activate1();
+ void activate2();
+ void deactivate();
+
+ //----------------------------------------------------------
+ // controller handling
+ //----------------------------------------------------------
+
+ CtrlList* controller() { return &_controller; }
+ const CtrlList* controller() const { return &_controller; }
+
+ ControllerNameList* controllerNames() const;
+ void addController(Ctrl*);
+ void addMidiController(MidiInstrument*, int ctrl);
+ void removeController(int id);
+ Ctrl* getController(int id) const;
+
+ int hwCtrlState(int ctrl) const;
+ void setHwCtrlState(int ctrl, int val);
+
+ // current value:
+ CVal ctrlVal(int id) { return getController(id)->curVal(); }
+
+ // editor interface:
+ bool addControllerVal(int id, unsigned pos, CVal);
+ void removeControllerVal(int id, unsigned pos);
+ int getCtrl(int tick, int ctrl) const;
+
+ // signal interface:
+ virtual void emitControllerChanged(int id) { emit controllerChanged(id); }
+ void updateController();
+ void changeCtrlName(Ctrl* c, const QString& s);
+
+ // automation
+ void startAutoRecord(int);
+ void stopAutoRecord(int);
+ CtrlRecList* recEvents() { return &_recEvents; }
+ //----------------------------------------------------------
+
+ QColor ccolor() const;
+ QPixmap* pixmap() const { return pixmap(type()); }
+ static QPixmap* pixmap(TrackType);
+
+ bool selected() const { return _selected; }
+ void setSelected(bool f);
+
+ bool locked() const { return _locked; }
+ void setLocked(bool b) { _locked = b; }
+
+ QString name() const { return _name; }
+ virtual void setName(const QString& s);
+
+ virtual TrackType type() const = 0;
+
+ PartList* parts() const { return _parts; }
+
+ Part* findPart(unsigned tick);
+ void addPart(Part* p);
+
+ virtual void write(Xml&) const = 0;
+
+ void setRecordFlag(bool);
+ virtual Part* newPart(Part*p=0, bool clone = false) = 0;
+ void dump() const;
+ virtual void splitPart(Part*, int, Part*&, Part*&);
+
+ void setMonitor(bool val);
+ virtual bool isMute() const = 0;
+
+ bool monitor() const { return _monitor; }
+ bool solo() const { return _solo; }
+ bool mute() const { return _mute; }
+ bool off() const { return _off; }
+ bool recordFlag() const { return _recordFlag; }
+
+ void resetMeter();
+ void resetPeaks();
+ static void resetAllMeter();
+ double meter(int ch) const { return _meter[ch]; }
+ void addMidiMeter(int velo) {
+ _meter[0] += velo/5;
+ if (_meter[0] > 127.0f)
+ _meter[0] = 127.0f;
+ }
+ double peak(int ch) const { return _peak[ch]; }
+ void setPeak(int ch, double v) { _peak[ch] = v; }
+ void resetPeak(int ch) {
+ _peak[ch] = 0;
+ _peakTimer[ch] = 0;
+ }
+ int peakTimer(int ch) const { return _peakTimer[ch]; }
+ void setPeakTimer(int ch, int v) { _peakTimer[ch] = v; }
+ void setMeter(int ch, double v) {
+ _meter[ch] = v;
+ if (v > _peak[ch]) {
+ _peak[ch] = v;
+ _peakTimer[ch] = 0;
+ }
+ }
+
+ void setDefaultName();
+ int channels() const { return _channels; }
+ virtual void setChannels(int n);
+ bool isMidiTrack() const {
+ return type() == MIDI
+ || type() == MIDI_IN
+ || type() == MIDI_OUT
+ || type() == MIDI_SYNTI;
+ }
+ virtual bool canRecord() const { return false; }
+
+ bool autoRead() const { return _autoRead; }
+ bool autoWrite() const { return _autoWrite; }
+
+ void partListChanged() { emit partsChanged(); }
+ void updateMute() { emit muteChanged(isMute()); }
+ unsigned cpos() const;
+
+ //----------------------------------------------------------
+ // routing
+ //----------------------------------------------------------
+
+ RouteList* inRoutes() { return &_inRoutes; }
+ RouteList* outRoutes() { return &_outRoutes; }
+ bool noInRoute() const { return _inRoutes.empty(); }
+ bool noOutRoute() const { return _outRoutes.empty(); }
+ void addInRoute(const Route& r);
+ void addOutRoute(const Route& r);
+ void writeRouting(Xml&) const;
+ bool inRouteExists(const Route& r) const;
+ bool outRouteExists(const Route& r) const;
+
+ Port jackPort(int channel = 0) const { return _jackPort[channel]; }
+
+ void setJackPort(const Port& port, int channel = 0) {
+ _jackPort[channel] = port;
+ }
+
+ struct ArrangerTrack arrangerTrack;
+ ArrangerTrackList subtracks;
+
+ friend class Song;
+
+ virtual void routeEvent(const MidiEvent&) {}
+ bool sendSync() const { return _sendSync; }
+ void setSendSync(bool val);
+ int deviceId() const { return _deviceId; }
+ void setDeviceId(int val) { _deviceId = val; }
+
+ virtual bool muteDefault() const { return false; }
+ virtual bool autoReadDefault() const { return false; }
+ virtual bool autoWriteDefault() const { return false; }
+
+ virtual MidiOut* midiOut() { return 0; }
+ virtual MidiInstrument* instrument() { return 0; }
+ };
+
+Q_DECLARE_METATYPE(class Track*);
+
+typedef QList<Track*> TrackList;
+typedef TrackList::iterator iTrack;
+typedef TrackList::const_iterator ciTrack;
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/trackdrag.cpp b/muse_qt4_evolution/muse/trackdrag.cpp
new file mode 100644
index 00000000..beab87dd
--- /dev/null
+++ b/muse_qt4_evolution/muse/trackdrag.cpp
@@ -0,0 +1,61 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "trackdrag.h"
+
+class Track;
+const char TrackDrag::type[] = "application/muse/track";
+
+//---------------------------------------------------------
+// TrackDrag
+//---------------------------------------------------------
+
+TrackDrag::TrackDrag(Track* track, QWidget* src)
+ : QDrag(src)
+ {
+ QByteArray a((char*)&track, sizeof(track));
+ QMimeData* mimeData = new QMimeData;
+ mimeData->setData(type, a);
+ setMimeData(mimeData);
+ }
+
+//---------------------------------------------------------
+// canDecode
+//---------------------------------------------------------
+
+bool TrackDrag::canDecode(const QMimeSource* s)
+ {
+ return !strcmp(s->format(0), type);
+ }
+
+//---------------------------------------------------------
+// decode
+//---------------------------------------------------------
+
+bool TrackDrag::decode(const QMimeSource* s, Track*& p)
+ {
+ QByteArray a = s->encodedData(type);
+ p = (Track*)((a[0] & 0xff)
+ | (a[1] & 0xff) << 8
+ | (a[2] & 0xff) << 16
+ | (a[3] & 0xff) << 24);
+ return true;
+ }
+
diff --git a/muse_qt4_evolution/muse/trackdrag.h b/muse_qt4_evolution/muse/trackdrag.h
new file mode 100644
index 00000000..083a94b3
--- /dev/null
+++ b/muse_qt4_evolution/muse/trackdrag.h
@@ -0,0 +1,42 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRACKDRAG_H__
+#define __TRACKDRAG_H__
+
+class Track;
+
+//---------------------------------------------------------
+// TrackDrag
+//---------------------------------------------------------
+
+class TrackDrag : public QDrag {
+ static const char type[];
+ Q_OBJECT
+
+ public:
+ TrackDrag(Track*, QWidget* src);
+ static bool canDecode(const QMimeSource*);
+ static bool decode(const QMimeSource* s, Track*& p);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/trackinfo.cpp b/muse_qt4_evolution/muse/trackinfo.cpp
new file mode 100644
index 00000000..1a62b1c0
--- /dev/null
+++ b/muse_qt4_evolution/muse/trackinfo.cpp
@@ -0,0 +1,553 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "arranger.h"
+#include "widgets/outportcombo.h"
+#include "instruments/minstrument.h"
+#include "midiedit/drummap.h"
+#include "midictrl.h"
+#include "song.h"
+#include "trackinfo.h"
+#include "synth.h"
+#include "tllineedit.h"
+#include "audio.h"
+#include "gui.h"
+#include "midioutport.h"
+#include "midiinport.h"
+
+static QColor labelColor(140, 140, 255);
+
+//---------------------------------------------------------
+// createTrackInfo
+//---------------------------------------------------------
+
+TrackInfo* Arranger::createTrackInfo()
+ {
+ Track::TrackType t = _curTrack->type();
+ switch (t) {
+ case Track::MIDI: return new MidiTrackInfo();
+ case Track::AUDIO_OUTPUT: return new AudioOutputInfo();
+ case Track::AUDIO_GROUP: return new AudioGroupInfo();
+ case Track::WAVE: return new WaveTrackInfo();
+ case Track::AUDIO_INPUT: return new AudioInputInfo();
+ case Track::AUDIO_SOFTSYNTH: return new SynthIInfo();
+ case Track::MIDI_OUT: return new MidiOutPortInfo();
+ case Track::MIDI_IN: return new MidiInPortInfo();
+ case Track::MIDI_SYNTI: return new MidiSynthIInfo();
+ default:
+ printf("Arranger::createTrackInfo: type %d\n", t);
+ abort();
+ }
+ }
+
+//---------------------------------------------------------
+// TrackInfo
+//---------------------------------------------------------
+
+TrackInfo::TrackInfo()
+ : QWidget()
+ {
+ track = 0;
+ label = new QLabel;
+ label->setToolTip(tr("Track Type"));
+ label->setLineWidth(2);
+ label->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ label->setAutoFillBackground(true);
+ QPalette p = label->palette();
+ p.setColor(QPalette::Background, labelColor);
+ label->setPalette(p);
+
+ name = new TLLineEdit("");
+ name->setToolTip(tr("Track Name"));
+ name->setMaximumHeight(24);
+
+ grid = new QGridLayout;
+ grid->setMargin(0);
+ grid->setSpacing(0);
+ setLayout(grid);
+
+ grid->addWidget(label, 0, 0, 1, 2);
+ grid->addWidget(name, 1, 0, 1, 2);
+ connect(name, SIGNAL(contentChanged(QString)), SLOT(nameChanged(QString)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+// resize(QSize(infoWidth, height()));
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void TrackInfo::nameChanged(QString s)
+ {
+ song->changeTrackName(track, s);
+ name->setCursorPosition(0);
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void TrackInfo::init(Track* t)
+ {
+ track = t;
+ if (t == 0)
+ return;
+ label->setText(track->clname());
+ name->setText(track->name());
+ connect(track, SIGNAL(nameChanged(const QString&)), name, SLOT(setText(const QString&)));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void TrackInfo::songChanged(int val)
+ {
+ if ((val & SC_ROUTE) && track)
+ init(track);
+ }
+
+//---------------------------------------------------------
+// MidiTrackInfo
+//---------------------------------------------------------
+
+MidiTrackInfo::MidiTrackInfo()
+ : TrackInfo()
+ {
+ QWidget* midiTrackInfo = new QWidget;
+ mt.setupUi(midiTrackInfo);
+
+ QWidget* midiPortInfo = new QWidget;
+ mp.setupUi(midiPortInfo);
+
+ grid->addWidget(midiTrackInfo, 2, 0, 1, 2);
+
+ channel = new QComboBox;
+ channel->setMaximumHeight(24);
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch)
+ channel->addItem(tr("Channel %1").arg(ch+1), ch);
+ grid->addWidget(channel, 3, 0, 1, 2);
+
+ QLabel* label = new QLabel;
+ label->setText(tr("Midi Port"));
+ label->setLineWidth(2);
+ label->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ label->setAutoFillBackground(true);
+ QPalette p = label->palette();
+ p.setColor(QPalette::Background, labelColor);
+ label->setPalette(p);
+ grid->addWidget(label, 4, 0, 1, 2);
+
+ port = new QComboBox;
+ port->setMaximumHeight(24);
+ grid->addWidget(port, 5, 0, 1, 2);
+ grid->addWidget(midiPortInfo, 6, 0, 1, 2);
+ grid->setRowStretch(grid->rowCount(), 100);
+
+ pop = new QMenu(mt.patch);
+
+ connect(mt.transposition, SIGNAL(valueChanged(int)), SLOT(transpositionChanged(int)));
+ connect(mt.velocity, SIGNAL(valueChanged(int)), SLOT(velocityChanged(int)));
+ connect(mt.delay, SIGNAL(valueChanged(int)), SLOT(delayChanged(int)));
+ connect(mt.length, SIGNAL(valueChanged(int)), SLOT(lenChanged(int)));
+ connect(mt.compression, SIGNAL(valueChanged(int)), SLOT(iKomprChanged(int)));
+ connect(mt.patch, SIGNAL(clicked()), SLOT(patchClicked()));
+ connect(port, SIGNAL(activated(int)), SLOT(portSelected(int)));
+ connect(mp.instrument, SIGNAL(activated(int)), SLOT(instrumentSelected(int)));
+ connect(mp.deviceId, SIGNAL(valueChanged(int)), SLOT(deviceIdChanged(int)));
+ connect(song, SIGNAL(autoReadChanged(Track*,bool)), SLOT(autoChanged(Track*,bool)));
+ connect(song, SIGNAL(autoWriteChanged(Track*,bool)), SLOT(autoChanged(Track*,bool)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MidiTrackInfo::init(Track* t)
+ {
+ MidiTrack* midiTrack = (MidiTrack*)&*t;
+ if (t != track) {
+ if (track) {
+ disconnect(channel, 0, track, 0);
+ disconnect(track, 0, channel, 0);
+ }
+ connect(channel, SIGNAL(activated(int)), midiTrack, SLOT(setChannel(int)));
+ connect(midiTrack,SIGNAL(channelChanged(int)), channel, SLOT(setCurrentIndex(int)));
+ }
+
+ TrackInfo::init(t);
+ mt.transposition->setValue(midiTrack->transposition());
+ mt.delay->setValue(midiTrack->delay());
+ mt.length->setValue(midiTrack->len());
+ mt.velocity->setValue(midiTrack->velocity());
+ mt.compression->setValue(midiTrack->compression());
+
+ mp.instrument->clear();
+ foreach(MidiInstrument* mi, midiInstruments)
+ mp.instrument->addItem(mi->iname());
+
+ RouteList* rl = track->outRoutes();
+ Track* outputTrack = 0;
+ if (!rl->isEmpty())
+ outputTrack = (*rl)[0].dst.track;
+
+ port->clear();
+ port->addItem("---", QVariant::fromValue<void*>(0));
+ foreach(MidiOutPort* mp, *(song->midiOutPorts()))
+ port->addItem(mp->name(), QVariant::fromValue<void*>(mp));
+ foreach(SynthI* s, *(song->syntis()))
+ port->addItem(s->name(), QVariant::fromValue<void*>(s));
+ if (outputTrack) {
+ int idx = port->findText(outputTrack->name());
+ port->setCurrentIndex(idx == -1 ? 0 : idx);
+ }
+
+ channel->setCurrentIndex(midiTrack->channelNo());
+
+ connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
+ if (outputTrack && outputTrack->type() == Track::MIDI_OUT)
+ connect(outputTrack, SIGNAL(instrumentChanged()), SLOT(instrumentChanged()));
+
+ instrumentChanged(); // setup instrument
+
+ // enable instrument selection only for tracks routed to a
+ // midi out port:
+ mp.instrument->setEnabled(outputTrack && (outputTrack->type() == Track::MIDI_OUT));
+
+ if (!rl->isEmpty()) {
+ mp.deviceId->setValue(midiTrack->deviceId());
+ autoChanged(track, false); // update enable
+ int val = midiTrack->ctrlVal(CTRL_PROGRAM).i;
+ int channelno = midiTrack->channelNo();
+ mt.patch->setText(midiTrack->instrument()->getPatchName(channelno, val));
+ }
+ else {
+ channel->setCurrentIndex(0);
+ port->setCurrentIndex(0);
+ mp.instrument->addItem("--");
+ mp.instrument->setCurrentIndex(0);
+ mt.patch->setText("--");
+ }
+ }
+
+//---------------------------------------------------------
+// portSelected
+//---------------------------------------------------------
+
+void MidiTrackInfo::portSelected(int idx)
+ {
+ QVariant v(port->itemData(idx));
+ Track* outputTrack = (Track*)v.value<void*>();
+ if (outputTrack == 0)
+ return;
+ RouteList* rl = track->outRoutes();
+ if (rl->isEmpty())
+ return;
+ Route r = (*rl)[0];
+ audio->msgRemoveRoute(r);
+ r.dst.track = outputTrack;
+ audio->msgAddRoute(r);
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::controllerChanged(int id)
+ {
+ if (id == CTRL_PROGRAM) {
+ MidiInstrument* mi = track->instrument();
+ int val = track->ctrlVal(id).i;
+ mt.patch->setText(mi->getPatchName(((MidiTrack*)&*track)->channelNo(), val));
+ }
+ }
+
+//---------------------------------------------------------
+// instrumentChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::instrumentChanged()
+ {
+ MidiInstrument* mi = track->instrument();
+ mp.instrument->setCurrentIndex(midiInstruments.indexOf(mi));
+ }
+
+//---------------------------------------------------------
+// autoChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::autoChanged(Track* t, bool)
+ {
+ if (t != track)
+ return;
+ bool ar = t->autoRead();
+ bool aw = t->autoWrite();
+ bool en = !ar || (ar && aw);
+ mt.patch->setEnabled(en);
+ }
+
+//---------------------------------------------------------
+// transpositionChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::transpositionChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setTransposition(val);
+ }
+
+//---------------------------------------------------------
+// patchClicked
+//---------------------------------------------------------
+
+void MidiTrackInfo::patchClicked()
+ {
+ MidiInstrument* mi = track->instrument();
+ mi->populatePatchPopup(pop, 0);
+
+ QAction* rv = pop->exec(mt.patch->mapToGlobal(QPoint(10,5)));
+ if (rv != 0) {
+ CVal cval;
+ cval.i = rv->data().toInt();
+ song->setControllerVal(track, CTRL_PROGRAM, cval);
+ }
+ }
+
+//---------------------------------------------------------
+// instrumentSelected
+//---------------------------------------------------------
+
+void MidiTrackInfo::instrumentSelected(int n)
+ {
+ RouteList* rl = track->outRoutes();
+ if (rl->isEmpty())
+ return;
+ Track* outTrack = (*rl)[0].dst.track;
+ if (outTrack->type() == Track::MIDI_OUT)
+ ((MidiOutPort*)outTrack)->setInstrument(midiInstruments[n]);
+ }
+
+//---------------------------------------------------------
+// velocityChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::velocityChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setVelocity(val);
+ }
+
+//---------------------------------------------------------
+// delayChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::delayChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setDelay(val);
+ }
+
+//---------------------------------------------------------
+// lenChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::lenChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setLen(val);
+ }
+
+//---------------------------------------------------------
+// iKomprChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::iKomprChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setCompression(val);
+ }
+
+//---------------------------------------------------------
+// deviceIdChanged
+//---------------------------------------------------------
+
+void MidiTrackInfo::deviceIdChanged(int val)
+ {
+ ((MidiTrack*)&*track)->setDeviceId(val);
+ }
+
+//---------------------------------------------------------
+// AudioOutputInfo
+//---------------------------------------------------------
+
+AudioOutputInfo::AudioOutputInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// AudioInputInfo
+//---------------------------------------------------------
+
+AudioInputInfo::AudioInputInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// AudioGroupInfo
+//---------------------------------------------------------
+
+AudioGroupInfo::AudioGroupInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// AudioAuxInfo
+//---------------------------------------------------------
+
+AudioAuxInfo::AudioAuxInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// WaveTrackInfo
+//---------------------------------------------------------
+
+WaveTrackInfo::WaveTrackInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// SynthIInfo
+//---------------------------------------------------------
+
+SynthIInfo::SynthIInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// MidiSynthIInfo
+//---------------------------------------------------------
+
+MidiSynthIInfo::MidiSynthIInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
+//---------------------------------------------------------
+// MidiOutPortInfo
+//---------------------------------------------------------
+
+MidiOutPortInfo::MidiOutPortInfo()
+ : TrackInfo()
+ {
+ QWidget* midiPortInfo = new QWidget;
+ mp.setupUi(midiPortInfo);
+ grid->addWidget(midiPortInfo, 2, 0, 1, 2);
+
+ grid->setRowStretch(grid->rowCount(), 100);
+
+ connect(mp.instrument, SIGNAL(activated(int)), SLOT(instrumentSelected(int)));
+ connect(mp.deviceId, SIGNAL(valueChanged(int)), SLOT(deviceIdChanged(int)));
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MidiOutPortInfo::init(Track* t)
+ {
+ TrackInfo::init(t);
+
+ MidiOutPort* op = (MidiOutPort*)&*track;
+ MidiInstrument* mi = op->instrument();
+ int idx = 0;
+ int curIdx = 0;
+ mp.instrument->clear();
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ mp.instrument->addItem((*i)->iname());
+ if ((*i)->iname() == mi->iname())
+ curIdx = idx;
+ }
+ mp.instrument->setCurrentIndex(curIdx);
+ mp.deviceId->setValue(op->deviceId());
+ connect(t, SIGNAL(instrumentChanged()), SLOT(instrumentChanged()));
+ }
+
+//---------------------------------------------------------
+// deviceIdChanged
+//---------------------------------------------------------
+
+void MidiOutPortInfo::deviceIdChanged(int val)
+ {
+ ((MidiOutPort*)&*track)->setDeviceId(val);
+ }
+
+//---------------------------------------------------------
+// instrumentChanged
+//---------------------------------------------------------
+
+void MidiOutPortInfo::instrumentChanged()
+ {
+ MidiOutPort* op = (MidiOutPort*)&*track;
+ MidiInstrument* mi = op->instrument();
+ int idx = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ if (*i == mi) {
+ mp.instrument->setCurrentIndex(idx);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// instrumentSelected
+//---------------------------------------------------------
+
+void MidiOutPortInfo::instrumentSelected(int n)
+ {
+ MidiOutPort* op = (MidiOutPort*)&*track;
+ int idx = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
+ if (idx == n) {
+ op->setInstrument(*i);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// MidiInPortInfo
+//---------------------------------------------------------
+
+MidiInPortInfo::MidiInPortInfo()
+ : TrackInfo()
+ {
+ grid->setRowStretch(grid->rowCount(), 100);
+ }
+
diff --git a/muse_qt4_evolution/muse/trackinfo.h b/muse_qt4_evolution/muse/trackinfo.h
new file mode 100644
index 00000000..bea98d70
--- /dev/null
+++ b/muse_qt4_evolution/muse/trackinfo.h
@@ -0,0 +1,203 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRACKINFO_H__
+#define __TRACKINFO_H__
+
+#include "ui_miditrackinfo.h"
+#include "ui_midiportinfo.h"
+
+class Track;
+class MidiTrack;
+class AudioOutput;
+class AudioInput;
+class AudioGroup;
+class AudioAux;
+class SynthI;
+class MidiInPort;
+class MidiOutPort;
+class MidiChannel;
+class WaveTrack;
+class TLLineEdit;
+
+//---------------------------------------------------------
+// TrackInfo
+//---------------------------------------------------------
+
+class TrackInfo : public QWidget {
+ Q_OBJECT
+
+ QLabel* label;
+ TLLineEdit* name;
+
+ protected:
+ QGridLayout* grid;
+ QPointer<Track> track;
+
+ private slots:
+ void nameChanged(QString s);
+ void songChanged(int);
+
+ public:
+ TrackInfo();
+ virtual void init(Track*);
+ };
+
+//---------------------------------------------------------
+// MidiTrackInfo
+//---------------------------------------------------------
+
+class MidiTrackInfo : public TrackInfo {
+ Q_OBJECT
+
+ Ui::MidiTrackInfoBase mt;
+ Ui::MidiPortInfoBase mp;
+ QComboBox* port;
+ QComboBox* channel;
+ QMenu* pop;
+
+ private slots:
+ void transpositionChanged(int val);
+ void velocityChanged(int val);
+ void delayChanged(int val);
+ void lenChanged(int val);
+ void iKomprChanged(int val);
+ void patchClicked();
+ void instrumentSelected(int);
+ void instrumentChanged();
+ void autoChanged(Track*,bool);
+ void controllerChanged(int);
+ void portSelected(int);
+ void deviceIdChanged(int);
+
+ public:
+ MidiTrackInfo();
+ virtual void init(Track*);
+ };
+
+//---------------------------------------------------------
+// AudioOutputInfo
+//---------------------------------------------------------
+
+class AudioOutputInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ AudioOutputInfo();
+ };
+
+//---------------------------------------------------------
+// AudioInputInfo
+//---------------------------------------------------------
+
+class AudioInputInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ AudioInputInfo();
+ };
+
+//---------------------------------------------------------
+// AudioGroupInfo
+//---------------------------------------------------------
+
+class AudioGroupInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ AudioGroupInfo();
+ };
+
+//---------------------------------------------------------
+// AudioAuxInfo
+//---------------------------------------------------------
+
+class AudioAuxInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ AudioAuxInfo();
+ };
+
+//---------------------------------------------------------
+// WaveTrackInfo
+//---------------------------------------------------------
+
+class WaveTrackInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ WaveTrackInfo();
+ };
+
+//---------------------------------------------------------
+// SynthIInfo
+//---------------------------------------------------------
+
+class SynthIInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ SynthIInfo();
+ };
+
+//---------------------------------------------------------
+// MidiSynthIInfo
+//---------------------------------------------------------
+
+class MidiSynthIInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ MidiSynthIInfo();
+ };
+
+//---------------------------------------------------------
+// MidiOutPortInfo
+//---------------------------------------------------------
+
+class MidiOutPortInfo : public TrackInfo {
+ Q_OBJECT
+
+ Ui::MidiPortInfoBase mp;
+
+ private slots:
+ void instrumentSelected(int);
+ void instrumentChanged();
+ void deviceIdChanged(int);
+
+ public:
+ MidiOutPortInfo();
+ virtual void init(Track*);
+ };
+
+//---------------------------------------------------------
+// MidiInPortInfo
+//---------------------------------------------------------
+
+class MidiInPortInfo : public TrackInfo {
+ Q_OBJECT
+
+ public:
+ MidiInPortInfo();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/transport.cpp b/muse_qt4_evolution/muse/transport.cpp
new file mode 100644
index 00000000..aa8fcc7c
--- /dev/null
+++ b/muse_qt4_evolution/muse/transport.cpp
@@ -0,0 +1,411 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "song.h"
+#include "transport.h"
+#include "widgets/doublelabel.h"
+#include "widgets/siglabel.h"
+#include "globals.h"
+#include "icons.h"
+#include "awl/posedit.h"
+#include "sync.h"
+#include "shortcuts.h"
+#include "gconfig.h"
+#include "muse.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+
+static const char* recordTransportText = QT_TR_NOOP("Click this button to enable recording");
+static const char* stopTransportText = QT_TR_NOOP("Click this button to stop playback");
+static const char* playTransportText = QT_TR_NOOP("Click this button to start playback");
+static const char* startTransportText = QT_TR_NOOP("Click this button to rewind to start position");
+static const char* frewindTransportText = QT_TR_NOOP("Click this button to rewind");
+static const char* fforwardTransportText = QT_TR_NOOP("Click this button to forward current play position");
+
+//---------------------------------------------------------
+// Transport
+//---------------------------------------------------------
+
+Transport::Transport()
+ {
+ setupUi(this);
+
+ connect(recMode, SIGNAL(activated(int)), SLOT(setRecMode(int)));
+ connect(cycleMode, SIGNAL(activated(int)), SLOT(setCycleMode(int)));
+
+ //-----------------------------------------------------
+ // loop flags
+ //-----------------------------------------------------
+
+ connect(punchinButton, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool)));
+ connect(punchoutButton, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));
+ connect(loopButton, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool)));
+
+ connect(song, SIGNAL(punchinChanged(bool)), punchinButton, SLOT(setChecked(bool)));
+ connect(song, SIGNAL(punchoutChanged(bool)), punchoutButton, SLOT(setChecked(bool)));
+ connect(song, SIGNAL(loopChanged(bool)), loopButton, SLOT(setChecked(bool)));
+
+ //-----------------------------------------------------
+ // Transport Buttons
+ //-----------------------------------------------------
+
+ time2->setSmpte(true);
+
+ buttons[0] = tb1;
+ tb1->setWhatsThis(tr(startTransportText));
+
+ buttons[1] = tb2;
+ tb2->setAutoRepeat(true);
+ tb2->setWhatsThis(tr(frewindTransportText));
+
+ buttons[2] = tb3;
+ tb3->setAutoRepeat(true);
+ tb3->setWhatsThis(tr(fforwardTransportText));
+
+ buttons[3] = tb4;
+ tb4->setChecked(true); // set STOP
+ tb4->setWhatsThis(tr(stopTransportText));
+
+ buttons[4] = tb5;
+ tb5->setWhatsThis(tr(playTransportText));
+
+ buttons[5] = tb6;
+ tb6->setIcon(*recordIcon);
+ tb6->setWhatsThis(tr(recordTransportText));
+
+ connect(buttons[0], SIGNAL(clicked()), song, SLOT(rewindStart()));
+ connect(buttons[1], SIGNAL(clicked()), song, SLOT(rewind()));
+ connect(buttons[2], SIGNAL(clicked()), song, SLOT(forward()));
+ connect(buttons[3], SIGNAL(clicked(bool)), SLOT(stopToggled(bool)));
+ connect(buttons[4], SIGNAL(clicked(bool)), SLOT(playToggled(bool)));
+ connect(buttons[5], SIGNAL(clicked(bool)), song, SLOT(setRecord(bool)));
+
+ connect(song, SIGNAL(recordChanged(bool)), SLOT(setRecord(bool)));
+
+ //-----------------------------------------------------
+ // AQ - Click - Sync
+ //-----------------------------------------------------
+
+//TODOB clickButton->setShortcut(shortcuts[SHRT_TOGGLE_METRO].key);
+
+ connect(quantizeButton, SIGNAL(clicked(bool)), song, SLOT(setQuantize(bool)));
+ connect(clickButton, SIGNAL(clicked(bool)), song, SLOT(setClick(bool)));
+ connect(syncButton, SIGNAL(clicked(bool)), SLOT(syncButtonClicked(bool)));
+//TD connect(&extSyncFlag, SIGNAL(valueChanged(bool)), SLOT(syncChanged(bool)));
+
+ connect(song, SIGNAL(quantizeChanged(bool)), this, SLOT(setQuantizeFlag(bool)));
+ connect(song, SIGNAL(clickChanged(bool)), clickButton, SLOT(setChecked(bool)));
+
+ //-----------------------------------------------------
+ // Tempo/Sig
+ //-----------------------------------------------------
+
+ connect(masterButton, SIGNAL(clicked(bool)), song, SLOT(setMasterFlag(bool)));
+
+ //-----------------------------------------------------
+
+ connect(tl1, SIGNAL(valueChanged(const Pos&)), SLOT(lposChanged(const Pos&)));
+ connect(tl2, SIGNAL(valueChanged(const Pos&)), SLOT(rposChanged(const Pos&)));
+ connect(time1, SIGNAL(valueChanged(const Pos&)), SLOT(cposChanged(const Pos&)));
+ connect(time2, SIGNAL(valueChanged(const Pos&)), SLOT(cposChanged(const Pos&)));
+
+ slider->setRange(0, song->len());
+ connect(song, SIGNAL(lenChanged(const AL::Pos&)), SLOT(setLen(const AL::Pos&)));
+ connect(slider,SIGNAL(sliderMoved(int)), SLOT(cposChanged(int)));
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&, bool)), SLOT(setPos(int,const AL::Pos&)));
+ connect(tempo, SIGNAL(tempoChanged(int)), song, SLOT(setTempo(int)));
+ connect(song, SIGNAL(playChanged(bool)), SLOT(setPlay(bool)));
+ connect(song, SIGNAL(songChanged(int)), this, SLOT(songChanged(int)));
+ setValues();
+ }
+
+//---------------------------------------------------------
+// setValues
+//---------------------------------------------------------
+
+void Transport::setValues()
+ {
+ punchinButton->setChecked(song->punchin());
+ loopButton->setChecked(song->loop());
+ punchoutButton->setChecked(song->punchout());
+ quantizeButton->setChecked(song->quantize());
+ clickButton->setChecked(song->click());
+ syncButton->setChecked(extSyncFlag);
+ setPos(0, song->cpos());
+ setPos(1, song->lpos());
+ setPos(2, song->rpos());
+ }
+
+//---------------------------------------------------------
+// setLen
+// song len changed
+//---------------------------------------------------------
+
+void Transport::setLen(const AL::Pos& len)
+ {
+ slider->setRange(0, len.tick());
+ }
+
+//---------------------------------------------------------
+// setTimesig
+//---------------------------------------------------------
+
+void Transport::setTimesig(int /*z*/, int /*n*/)
+ {
+//TD tempo->setTimesig(z, n);
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void Transport::setPos(int idx, const AL::Pos& pos)
+ {
+ switch (idx) {
+ case 0:
+ time1->setValue(pos);
+ time2->setValue(pos);
+ slider->setValue(pos.tick());
+ {
+ int tp = AL::tempomap.tempo(pos.tick());
+ AL::TimeSignature sig = AL::sigmap.timesig(pos.tick());
+ int z = sig.z;
+ int n = sig.n;
+ setTimesig(z, n);
+ tempo->setTempo(tp);
+ }
+ break;
+ case 1:
+ tl1->setValue(pos);
+ break;
+ case 2:
+ tl2->setValue(pos);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// cposChanged
+//---------------------------------------------------------
+
+void Transport::cposChanged(int tick)
+ {
+ song->setPos(0, tick);
+ }
+
+//---------------------------------------------------------
+// cposChanged
+//---------------------------------------------------------
+
+void Transport::cposChanged(const Pos& pos)
+ {
+ song->setPos(0, pos.tick());
+ }
+
+//---------------------------------------------------------
+// lposChanged
+//---------------------------------------------------------
+
+void Transport::lposChanged(const Pos& pos)
+ {
+ song->setPos(1, pos.tick());
+ }
+
+//---------------------------------------------------------
+// rposChanged
+//---------------------------------------------------------
+
+void Transport::rposChanged(const Pos& pos)
+ {
+ song->setPos(2, pos.tick());
+ }
+
+//---------------------------------------------------------
+// setPlay
+//---------------------------------------------------------
+
+void Transport::setPlay(bool f)
+ {
+ buttons[3]->setChecked(!f);
+ buttons[4]->setChecked(f);
+ }
+
+//---------------------------------------------------------
+// setMasterFlag
+//---------------------------------------------------------
+
+void Transport::setMasterFlag(bool f)
+ {
+ masterButton->setChecked(f);
+ }
+
+//---------------------------------------------------------
+// setQuantizeFlag
+//---------------------------------------------------------
+
+void Transport::setQuantizeFlag(bool f)
+ {
+ quantizeButton->setChecked(f);
+ }
+
+//---------------------------------------------------------
+// setSyncFlag
+//---------------------------------------------------------
+
+void Transport::setSyncFlag(bool f)
+ {
+ syncButton->setChecked(f);
+ }
+
+//---------------------------------------------------------
+// toggleRecMode
+//---------------------------------------------------------
+
+void Transport::setRecMode(int id)
+ {
+ song->setRecMode(id);
+ }
+
+//---------------------------------------------------------
+// toggleCycleMode
+//---------------------------------------------------------
+
+void Transport::setCycleMode(int id)
+ {
+ song->setCycleMode(id);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void Transport::songChanged(int flags)
+ {
+ int cpos = song->cpos();
+ if (flags & (SC_MASTER | SC_TEMPO)) {
+ if (extSyncFlag) {
+ tempo->setTempo(0);
+ }
+ else {
+ int t = AL::tempomap.tempo(cpos);
+ tempo->setTempo(t);
+ }
+ }
+ if (flags & SC_SIG) {
+ AL::TimeSignature sig = AL::sigmap.timesig(cpos);
+ int z = sig.z;
+ int n = sig.n;
+ setTimesig(z, n);
+ }
+ if (flags & SC_MASTER)
+ masterButton->setChecked(song->masterFlag());
+ }
+
+//---------------------------------------------------------
+// syncChanged
+//---------------------------------------------------------
+
+void Transport::syncChanged(bool flag)
+ {
+ syncButton->setChecked(flag);
+ buttons[0]->setEnabled(!flag); // goto start
+ buttons[1]->setEnabled(!flag); // rewind
+ buttons[2]->setEnabled(!flag); // forward
+ buttons[3]->setEnabled(!flag); // stop
+ buttons[4]->setEnabled(!flag); // play
+ slider->setEnabled(!flag);
+ masterButton->setEnabled(!flag);
+ if (flag) {
+ masterButton->setChecked(false);
+ song->setMasterFlag(false);
+ tempo->setValue(0); // slave mode: show "extern"
+ }
+ else
+ tempo->setValue(AL::tempomap.tempo(song->cpos()));
+ muse->playAction->setEnabled(!flag);
+ muse->startAction->setEnabled(!flag);
+ muse->stopAction->setEnabled(!flag);
+ muse->rewindAction->setEnabled(!flag);
+ muse->forwardAction->setEnabled(!flag);
+ }
+
+//---------------------------------------------------------
+// stopToggled
+//---------------------------------------------------------
+
+void Transport::stopToggled(bool val)
+ {
+ if (val)
+ song->setStop(true);
+ else {
+ buttons[3]->setChecked(true);
+ }
+ }
+
+//---------------------------------------------------------
+// playToggled
+//---------------------------------------------------------
+
+void Transport::playToggled(bool val)
+ {
+ if (val)
+ song->setPlay(true);
+ else {
+ buttons[4]->setChecked(true);
+ }
+ }
+
+//---------------------------------------------------------
+// setRecord
+//---------------------------------------------------------
+
+void Transport::setRecord(bool flag)
+ {
+ buttons[5]->setChecked(flag);
+ }
+
+//---------------------------------------------------------
+// syncButtonClicked
+//---------------------------------------------------------
+
+void Transport::syncButtonClicked(bool flag)
+ {
+ extSyncFlag = flag;
+ }
+
+//---------------------------------------------------------
+// syncChanged
+//---------------------------------------------------------
+
+void Transport::syncChanged()
+ {
+ syncButton->setChecked(extSyncFlag);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void Transport::closeEvent(QCloseEvent *ev)
+ {
+ emit closed();
+ QWidget::closeEvent(ev);
+ }
+
diff --git a/muse_qt4_evolution/muse/transport.h b/muse_qt4_evolution/muse/transport.h
new file mode 100644
index 00000000..43acef24
--- /dev/null
+++ b/muse_qt4_evolution/muse/transport.h
@@ -0,0 +1,74 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRANSPORT_H__
+#define __TRANSPORT_H__
+
+#include "ui_transport.h"
+
+namespace AL {
+ class Pos;
+ };
+using AL::Pos;
+
+//---------------------------------------------------------
+// Transport
+//---------------------------------------------------------
+
+class Transport : public QWidget, public Ui::TransportBase
+ {
+ QToolButton* buttons[6]; // transport buttons
+ Q_OBJECT
+
+ virtual void closeEvent(QCloseEvent*);
+
+ private slots:
+ void cposChanged(const Pos&);
+ void cposChanged(int);
+ void lposChanged(const Pos&);
+ void rposChanged(const Pos&);
+ void setRecMode(int);
+ void setCycleMode(int);
+ void songChanged(int);
+ void syncChanged(bool);
+ void setRecord(bool flag);
+ void stopToggled(bool);
+ void playToggled(bool);
+ void setLen(const AL::Pos& len);
+
+ public slots:
+ void setTimesig(int a, int b);
+ void setPos(int idx, const AL::Pos& pos);
+ void setMasterFlag(bool);
+ void setQuantizeFlag(bool);
+ void setSyncFlag(bool);
+ void setPlay(bool f);
+ void syncButtonClicked(bool);
+ void syncChanged();
+
+ signals:
+ void closed();
+
+ public:
+ Transport();
+ void setValues();
+ };
+#endif
+
diff --git a/muse_qt4_evolution/muse/transport.ui b/muse_qt4_evolution/muse/transport.ui
new file mode 100644
index 00000000..a70992e9
--- /dev/null
+++ b/muse_qt4_evolution/muse/transport.ui
@@ -0,0 +1,856 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>TransportBase</class>
+ <widget class="QWidget" name="TransportBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>636</width>
+ <height>99</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Transport Panel</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>1</number>
+ </property>
+ <property name="spacing" >
+ <number>1</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="recMode" >
+ <item>
+ <property name="text" >
+ <string>Overdub</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Replace</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>6</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Rec Mode</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cycleMode" >
+ <item>
+ <property name="text" >
+ <string>Normal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Mix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Replace</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>6</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Cycle Rec</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="punchinButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/punchin.xpm</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="loopButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/loop.xpm</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="punchoutButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/punchout.xpm</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="toolButtonStyle" >
+ <enum>Qt::ToolButtonTextOnly</enum>
+ </property>
+ <property name="arrowType" >
+ <enum>Qt::NoArrow</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="Awl::PosEdit" name="tl1" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>6</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Left Loc</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::PosEdit" name="tl2" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>6</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Right Loc</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="Awl::PosEdit" name="time1" />
+ </item>
+ <item>
+ <widget class="Awl::PosEdit" name="time2" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QSlider" name="slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>3</number>
+ </property>
+ <property name="spacing" >
+ <number>1</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="tb1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>rewind to start</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/start.xpm</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tb2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>rewind</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/frewind.xpm</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tb3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>forward</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/fforward.xpm</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tb4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>stop</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/stop.xpm</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tb5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>play</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="muse.qrc" >:/xpm/play.xpm</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tb6" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>record</string>
+ </property>
+ <property name="text" >
+ <string>...</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="quantizeButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>AC</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="clickButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Click</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="syncButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Sync</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>5</number>
+ </property>
+ <property name="spacing" >
+ <number>1</number>
+ </property>
+ <item>
+ <widget class="QFrame" name="frame" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>1</number>
+ </property>
+ <property name="spacing" >
+ <number>1</number>
+ </property>
+ <item>
+ <widget class="Awl::TempoEdit" name="tempo" />
+ </item>
+ <item>
+ <widget class="SigLabel" name="sig" >
+ <property name="palette" >
+ <palette>
+ <active>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>86</red>
+ <green>117</green>
+ <blue>148</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ <color>
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </active>
+ <inactive>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>86</red>
+ <green>117</green>
+ <blue>148</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ <color>
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </inactive>
+ <disabled>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>221</red>
+ <green>223</green>
+ <blue>228</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>85</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>199</red>
+ <green>199</green>
+ <blue>199</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>86</red>
+ <green>117</green>
+ <blue>148</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>238</blue>
+ </color>
+ <color>
+ <red>82</red>
+ <green>24</green>
+ <blue>139</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </disabled>
+ </palette>
+ </property>
+ <property name="text" >
+ <string>4/4</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="masterButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>use tempo map</string>
+ </property>
+ <property name="text" >
+ <string>Tempomap</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Awl::PosEdit</class>
+ <extends>QWidget</extends>
+ <header>awl/posedit.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>SigLabel</class>
+ <extends>QLabel</extends>
+ <header>widgets/siglabel.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::TempoEdit</class>
+ <extends>QWidget</extends>
+ <header>awl/tempoedit.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="muse.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/transpose.cpp b/muse_qt4_evolution/muse/transpose.cpp
new file mode 100644
index 00000000..73edb05a
--- /dev/null
+++ b/muse_qt4_evolution/muse/transpose.cpp
@@ -0,0 +1,92 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "transpose.h"
+#include "track.h"
+#include "song.h"
+#include "event.h"
+#include "audio.h"
+#include "part.h"
+
+//---------------------------------------------------------
+// Transpose
+//---------------------------------------------------------
+
+Transpose::Transpose(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ if (song->lpos() != song->rpos()) {
+ time_selected->setChecked(true);
+ }
+ else {
+// time_all->setChecked(true);
+ ButtonGroup1->setEnabled(false);
+ }
+// parts_all->setSelected(true);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void Transpose::accept()
+ {
+ int left = 0, right = 0;
+ int dv = delta->value();
+
+ TrackList *tracks = song->tracks();
+
+ if (time_selected->isChecked()) {
+ left = song->lpos();
+ right = song->rpos();
+ }
+ else {
+ left = 0;
+ right = song->len();
+ }
+
+ song->startUndo();
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ if (((*t)->type() != Track::MIDI)
+ || !(parts_all->isChecked() || (*t)->selected()))
+ continue;
+
+ PartList *pl = (*t)->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ Part *mp = p->second;
+ EventList* el = mp->events();
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event oe = i->second;
+ int tick = oe.tick();
+ if (tick > right)
+ break;
+ if (tick < left)
+ continue;
+ Event ne = oe.clone();
+ ne.setA(oe.dataA() + dv );
+ audio->msgChangeEvent(oe, ne, mp, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ close();
+ }
+
diff --git a/muse_qt4_evolution/muse/transpose.h b/muse_qt4_evolution/muse/transpose.h
new file mode 100644
index 00000000..31b73865
--- /dev/null
+++ b/muse_qt4_evolution/muse/transpose.h
@@ -0,0 +1,40 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TRANSPOSE_H__
+#define __TRANSPOSE_H__
+
+#include "ui_transpose.h"
+
+//---------------------------------------------------------
+// transpose widget
+//---------------------------------------------------------
+
+class Transpose : public QDialog, public Ui::TransposeDialogBase {
+ Q_OBJECT
+
+ private slots:
+ virtual void accept();
+
+ public:
+ Transpose(QWidget* parent=0);
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/transpose.ui b/muse_qt4_evolution/muse/transpose.ui
new file mode 100644
index 00000000..de0bfe2e
--- /dev/null
+++ b/muse_qt4_evolution/muse/transpose.ui
@@ -0,0 +1,193 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>TransposeDialogBase</class>
+ <widget class="QDialog" name="TransposeDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>289</width>
+ <height>317</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Transpose</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="GroupBox1" >
+ <property name="title" >
+ <string>Value</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSpinBox" name="delta" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimum" >
+ <number>-99</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>halftones</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="ButtonGroup1" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="time_all" >
+ <property name="text" >
+ <string>all</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="time_selected" >
+ <property name="text" >
+ <string>between markers</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="ButtonGroup2" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="parts_all" >
+ <property name="text" >
+ <string>all</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="parts_selected" >
+ <property name="windowTitle" >
+ <string/>
+ </property>
+ <property name="text" >
+ <string>all in selected tracks</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>false</bool>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/trelement.h b/muse_qt4_evolution/muse/trelement.h
new file mode 100644
index 00000000..4c702ae2
--- /dev/null
+++ b/muse_qt4_evolution/muse/trelement.h
@@ -0,0 +1,63 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TR_ELEMENT_H__
+#define __TR_ELEMENT_H__
+
+#include "track.h"
+
+//---------------------------------------------------------
+// TrElement
+// describes a configurable gui element of the
+// track list
+//---------------------------------------------------------
+
+enum {
+ TR_NAME, TR_MUTE, TR_OFF, TR_SOLO, TR_RECORD, TR_AREAD, TR_AWRITE,
+ TR_OCHANNEL, TR_MONITOR, TR_DRUMMAP, TR_INSTRUMENT, TR_PATCH
+ };
+
+struct TrElement {
+ int id;
+ int grp; // default group
+ const char* name;
+ int trackMask;
+
+ TrElement(int i, int g, const char* s, int m)
+ : id(i), grp(g), name(s), trackMask(m) {}
+ };
+
+//---------------------------------------------------------
+// TrGroup
+// TrElements are grouped
+//---------------------------------------------------------
+
+typedef std::list<const TrElement*> TrElementList;
+typedef TrElementList::iterator iTrElement;
+
+class TrGroupList : public std::list<TrElementList> {
+ };
+typedef TrGroupList::iterator iTrGroup;
+
+extern const TrElement trElements[];
+extern const int nTrElements;
+extern TrGroupList glist[Track::TRACK_TYPES];
+
+#endif
diff --git a/muse_qt4_evolution/muse/undo.cpp b/muse_qt4_evolution/muse/undo.cpp
new file mode 100644
index 00000000..383f7d33
--- /dev/null
+++ b/muse_qt4_evolution/muse/undo.cpp
@@ -0,0 +1,614 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "undo.h"
+#include "song.h"
+#include "globals.h"
+#include "al/tempo.h"
+#include "al/sig.h"
+#include "al/sig.h"
+#include "part.h"
+
+// iundo points to last Undo() in Undo-list
+
+static bool undoMode = false; // for debugging
+std::list<QString> temporaryWavFiles;
+
+//---------------------------------------------------------
+// typeName
+//---------------------------------------------------------
+
+const char* UndoOp::typeName()
+ {
+ static const char* name[] = {
+ "AddTrack", "DeleteTrack", "RenameTrack",
+ "AddPart", "DeletePart", "ModifyPart",
+ "AddEvent", "DeleteEvent", "ModifyEvent",
+ "AddTempo", "DeleteTempo",
+ "AddSig", "DeleteSig",
+ "SwapTrack",
+ "ModifyClip",
+ "AddCtrl", "RemoveCtrl", "ModifyCtrl"
+ };
+ return name[type];
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void UndoOp::dump()
+ {
+ printf("UndoOp: %s\n ", typeName());
+ switch(type) {
+ case AddTrack:
+ case DeleteTrack:
+ printf("%d %s\n", id, track->name().toLatin1().data());
+ break;
+ case AddPart:
+ case DeletePart:
+ case ModifyPart:
+ break;
+ case AddEvent:
+ case DeleteEvent:
+ printf("old event:\n");
+ oEvent.dump(5);
+ printf(" new event:\n");
+ nEvent.dump(5);
+ printf(" Part:\n");
+ if (part)
+ part->dump(5);
+ break;
+ case ModifyEvent:
+ case AddTempo:
+ case DeleteTempo:
+ case AddSig:
+ case DeleteSig:
+ case SwapTrack:
+ case AddCtrl:
+ case RemoveCtrl:
+ case ModifyCtrl:
+ case RenameTrack:
+ case ModifyClip:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// startUndo
+//---------------------------------------------------------
+
+void Song::startUndo()
+ {
+ undoList->push_back(Undo());
+ updateFlags = 0;
+ undoMode = true;
+ }
+
+//---------------------------------------------------------
+// endUndo
+//---------------------------------------------------------
+
+void Song::endUndo(int flags)
+ {
+ updateFlags |= flags;
+ endMsgCmd();
+ undoMode = false;
+ }
+
+//---------------------------------------------------------
+// doUndo2
+// real time part
+//---------------------------------------------------------
+
+void Song::doUndo2()
+ {
+ Undo& u = undoList->back();
+
+// printf("doUndo2\n");
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+// printf(" doUndo2 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack2(i->track);
+ updateFlags |= SC_TRACK_REMOVED;
+ break;
+ case UndoOp::DeleteTrack:
+ insertTrack2(i->track);
+ updateFlags |= SC_TRACK_INSERTED;
+ break;
+ case UndoOp::SwapTrack:
+ {
+ updateFlags |= SC_TRACK_MODIFIED;
+ Track* track = _tracks[i->a];
+ _tracks[i->a] = _tracks[i->b];
+ _tracks[i->b] = track;
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ break;
+ case UndoOp::RenameTrack:
+ i->track->setName(*(i->os));
+ break;
+ case UndoOp::AddPart:
+ {
+ Part* part = i->oPart;
+ part->track()->parts()->remove(part);
+ updateFlags |= SC_PART_REMOVED;
+ part->deref();
+ }
+ break;
+ case UndoOp::DeletePart:
+ i->oPart->track()->addPart(i->oPart);
+ updateFlags |= SC_PART_INSERTED;
+ i->oPart->ref();
+ break;
+ case UndoOp::ModifyPart:
+ {
+ Part* oldPart = i->oPart;
+ Part* newPart = i->nPart;
+ Part part = *newPart;
+ *newPart = *oldPart;
+ *oldPart = part;
+// oldPart->deref();
+// newPart->ref();
+ updateFlags |= SC_PART_MODIFIED;
+ }
+ break;
+ case UndoOp::AddEvent:
+ deleteEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_REMOVED;
+ break;
+ case UndoOp::DeleteEvent:
+ addEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_INSERTED;
+ break;
+ case UndoOp::ModifyEvent:
+ updateFlags |= SC_EVENT_MODIFIED;
+ changeEvent(i->oEvent, i->nEvent, i->part);
+ break;
+ case UndoOp::AddTempo:
+ AL::tempomap.delTempo(i->a);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::DeleteTempo:
+ AL::tempomap.addTempo(i->a, i->b);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::AddSig:
+ AL::sigmap.del(i->a);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::DeleteSig:
+ AL::sigmap.add(i->a, AL::TimeSignature(i->b, i->c));
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::AddCtrl:
+ i->track->removeControllerVal(i->id, i->time);
+ break;
+ case UndoOp::RemoveCtrl:
+ i->track->addControllerVal(i->id, i->time, i->cval1);
+ break;
+ case UndoOp::ModifyCtrl:
+ i->track->addControllerVal(i->id, i->time, i->cval2);
+ break;
+ case UndoOp::ModifyClip:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// Song::doRedo2
+//---------------------------------------------------------
+
+void Song::doRedo2()
+ {
+ Undo& u = redoList->back();
+// printf("doRedo2\n");
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+// printf(" doRedo2 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ insertTrack2(i->track);
+ updateFlags |= SC_TRACK_INSERTED;
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack2(i->track);
+ updateFlags |= SC_TRACK_REMOVED;
+ break;
+ case UndoOp::SwapTrack:
+ {
+ Track* track = _tracks[i->a];
+ _tracks[i->a] = _tracks[i->b];
+ _tracks[i->b] = track;
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ break;
+ case UndoOp::RenameTrack:
+ i->track->setName(*(i->ns));
+ break;
+ case UndoOp::AddPart:
+ i->oPart->track()->addPart(i->oPart);
+ updateFlags |= SC_PART_INSERTED;
+ i->oPart->ref();
+ break;
+ case UndoOp::DeletePart:
+ {
+ Part* part = i->oPart;
+ part->track()->parts()->remove(part);
+ updateFlags |= SC_PART_REMOVED;
+ part->deref();
+ }
+ break;
+ case UndoOp::ModifyPart:
+ {
+ Part* oldPart = i->oPart;
+ Part* newPart = i->nPart;
+ Part part = *newPart;
+ *newPart = *oldPart;
+ *oldPart = part;
+ updateFlags |= SC_PART_MODIFIED;
+// oldPart->ref();
+// newPart->deref();
+ }
+ break;
+ case UndoOp::AddEvent:
+ addEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_INSERTED;
+ break;
+ case UndoOp::DeleteEvent:
+ deleteEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_REMOVED;
+ break;
+ case UndoOp::ModifyEvent:
+ changeEvent(i->nEvent, i->oEvent, i->part);
+ updateFlags |= SC_EVENT_MODIFIED;
+ break;
+ case UndoOp::AddTempo:
+ AL::tempomap.addTempo(i->a, i->b);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::DeleteTempo:
+ AL::tempomap.delTempo(i->a);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::AddSig:
+ AL::sigmap.add(i->a, AL::TimeSignature(i->b, i->c));
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::DeleteSig:
+ //printf("doRedo: UndoOp::DeleteSig. Deleting sigmap at: %d, z=%d n=%d\n", i->a, i->b, i->c);
+ AL::sigmap.del(i->a);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::AddCtrl:
+ i->track->addControllerVal(i->id, i->time, i->cval1);
+ break;
+ case UndoOp::RemoveCtrl:
+ i->track->removeControllerVal(i->id, i->time);
+ break;
+ case UndoOp::ModifyCtrl:
+ i->track->addControllerVal(i->id, i->time, i->cval1);
+ break;
+ case UndoOp::ModifyClip:
+ break;
+ }
+ }
+ }
+
+void Song::undoOp(UndoOp::UndoType type, int a, int b, int c)
+ {
+ UndoOp i;
+ i.type = type;
+ i.a = a;
+ i.b = b;
+ i.c = c;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, int n, Track* track)
+ {
+ UndoOp i;
+ i.type = type;
+ i.id = n;
+ i.track = track;
+ if (type == UndoOp::AddTrack)
+ updateFlags |= SC_TRACK_INSERTED;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Part* part)
+ {
+ UndoOp i;
+ i.type = type;
+ i.oPart = part;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, const Event& oev, const Event& nev, Part* part)
+ {
+ UndoOp i;
+ i.type = type;
+ i.nEvent = nev;
+ i.oEvent = oev;
+ i.part = part;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, const Event& nev, Part* part)
+ {
+ UndoOp i;
+ i.type = type;
+ i.nEvent = nev;
+ i.part = part;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Part* oPart, Part* nPart)
+ {
+ UndoOp i;
+ i.type = type;
+ i.oPart = nPart;
+ i.nPart = oPart;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, SigEvent* oevent, SigEvent* nevent)
+ {
+ UndoOp i;
+ i.type = type;
+ i.oSignature = oevent;
+ i.nSignature = nevent;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Track* t, int id, unsigned time, CVal nval, CVal oval)
+ {
+ UndoOp i;
+ i.type = type;
+ i.track = t;
+ i.id = id;
+ i.time = time;
+ i.cval1 = nval;
+ i.cval2 = oval;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Track* t, const QString& s1, const QString& s2)
+ {
+ UndoOp i;
+ i.type = type;
+ i.track = t;
+ i.os = new QString(s1);
+ i.ns = new QString(s2);
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, const char* changedFile, const char* changeData, int startframe, int endframe)
+ {
+ UndoOp i;
+ i.type = type;
+ i.filename = changedFile;
+ i.tmpwavfile = changeData;
+ i.startframe = startframe;
+ i.endframe = endframe;
+ addUndo(i);
+ temporaryWavFiles.push_back(QString(changeData));
+
+ printf("Adding ModifyClip undo-operation: origfile=%s tmpfile=%s sf=%d ef=%d\n", changedFile, changeData, startframe, endframe);
+ }
+
+//---------------------------------------------------------
+// addUndo
+//---------------------------------------------------------
+
+void Song::addUndo(UndoOp& i)
+ {
+ if (!undoMode) {
+ printf("internal error: undoOp without startUndo()\n");
+abort();
+ return;
+ }
+ undoList->back().push_back(i);
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// doUndo1
+// non realtime context
+// return true if nothing to do
+//---------------------------------------------------------
+
+bool Song::doUndo1()
+ {
+ if (undoList->empty())
+ return true;
+// printf("doUndo1\n");
+ Undo& u = undoList->back();
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+// printf(" doUndo1 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack1(i->track);
+ break;
+ case UndoOp::DeleteTrack:
+ insertTrack1(i->track, i->id);
+ break;
+ case UndoOp::ModifyClip:
+ SndFile::applyUndoFile(i->filename, i->tmpwavfile, i->startframe, i->endframe);
+ break;
+ default:
+ break;
+ }
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// doUndo3
+// non realtime context after realtime operation
+//---------------------------------------------------------
+
+void Song::doUndo3()
+ {
+// printf("doUndo3\n");
+ Undo& u = undoList->back();
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+// printf(" doUndo3 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack3(i->track);
+ break;
+ case UndoOp::DeleteTrack:
+ emit trackAdded(i->track, i->id);
+ if (i->track->selected()) {
+ i->track->setSelected(false);
+ selectTrack(i->track);
+ }
+ break;
+ case UndoOp::ModifyPart:
+ undoPartModify(i->oPart, i->nPart, true);
+
+ case UndoOp::AddPart:
+ case UndoOp::DeletePart:
+ i->oPart->track()->partListChanged();
+ break;
+ case UndoOp::AddCtrl:
+ case UndoOp::RemoveCtrl:
+ case UndoOp::ModifyCtrl:
+ i->track->emitControllerChanged(i->id);
+ break;
+ default:
+ break;
+ }
+ }
+ redoList->push_back(u); // put item on redo list
+ undoList->pop_back();
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// doRedo1
+// non realtime context
+// return true if nothing to do
+//---------------------------------------------------------
+
+bool Song::doRedo1()
+ {
+ if (redoList->empty())
+ return true;
+// printf("doRedo1\n");
+ Undo& u = redoList->back();
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+// printf(" doRedo1 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ insertTrack1(i->track, i->id);
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack1(i->track);
+ break;
+ case UndoOp::ModifyClip:
+ SndFile::applyUndoFile(i->filename, i->tmpwavfile, i->startframe, i->endframe);
+ break;
+ case UndoOp::AddCtrl:
+ case UndoOp::RemoveCtrl:
+ default:
+ break;
+ }
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// doRedo3
+// non realtime context
+//---------------------------------------------------------
+
+void Song::doRedo3()
+ {
+// printf("doRedo3\n");
+ Undo& u = redoList->back();
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+// printf(" doRedo3 %s\n", i->typeName());
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ emit trackAdded(i->track, i->id);
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack3(i->track);
+ break;
+ case UndoOp::ModifyPart:
+ undoPartModify(i->oPart, i->nPart, false);
+
+ case UndoOp::AddPart:
+ case UndoOp::DeletePart:
+ i->oPart->track()->partListChanged();
+ break;
+ case UndoOp::AddCtrl:
+ case UndoOp::RemoveCtrl:
+ case UndoOp::ModifyCtrl:
+ i->track->emitControllerChanged(i->id);
+ break;
+ default:
+ break;
+ }
+ }
+ undoList->push_back(u); // put item on undo list
+ redoList->pop_back();
+ dirty = true;
+ }
+
+//---------------------------------------------------------
+// undoPartModify
+//---------------------------------------------------------
+
+void Song::undoPartModify(Part* oPart, Part* nPart, bool undo)
+ {
+ if (oPart->track() != nPart->track())
+ nPart->track()->partListChanged();
+ //
+ // look for cloned part
+ //
+ for (iMidiTrack i = _midis.begin(); i != _midis.end(); ++i) {
+ PartList* pl = (*i)->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* p = ip->second;
+ if (undo) {
+ if (p == nPart)
+ continue;
+ if (p->events() == nPart->events()) {
+ // this is a cloned Part
+ p->ref();
+ return;
+ }
+ }
+ else {
+ if (p == oPart)
+ continue;
+ if (p->events() == oPart->events()) {
+ p->deref();
+ return;
+ }
+ }
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/undo.h b/muse_qt4_evolution/muse/undo.h
new file mode 100644
index 00000000..620199bb
--- /dev/null
+++ b/muse_qt4_evolution/muse/undo.h
@@ -0,0 +1,103 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __UNDO_H__
+#define __UNDO_H__
+
+#include "event.h"
+#include "ctrl.h"
+
+class Track;
+class TEvent;
+class SigEvent;
+class Part;
+
+extern std::list<QString> temporaryWavFiles; //!< Used for storing all tmp-files, for cleanup on shutdown
+
+//---------------------------------------------------------
+// UndoOp
+//---------------------------------------------------------
+
+struct UndoOp {
+ enum UndoType {
+ AddTrack, DeleteTrack, RenameTrack,
+ AddPart, DeletePart, ModifyPart,
+ AddEvent, DeleteEvent, ModifyEvent,
+ AddTempo, DeleteTempo,
+ AddSig, DeleteSig,
+ SwapTrack,
+ ModifyClip,
+ AddCtrl, RemoveCtrl, ModifyCtrl
+ };
+ UndoType type;
+
+ union {
+ struct {
+ int a;
+ int b;
+ int c;
+ };
+ struct {
+ Part* oPart;
+ Part* nPart;
+ };
+ struct {
+ Part* part;
+ };
+ struct {
+ SigEvent* nSignature;
+ SigEvent* oSignature;
+ };
+ struct {
+ int startframe; //!< Start frame of changed data
+ int endframe; //!< End frame of changed data
+ const char* filename; //!< The file that is changed
+ const char* tmpwavfile; //!< The file with the changed data
+ };
+ struct {
+ Track* track;
+ int id;
+ unsigned time;
+ CVal cval1, cval2;
+ QString* os;
+ QString* ns;
+ };
+ };
+ Event oEvent;
+ Event nEvent;
+ const char* typeName();
+ void dump();
+ };
+
+class Undo : public std::list<UndoOp> {
+ void undoOp(UndoOp::UndoType, int data);
+ };
+
+typedef Undo::iterator iUndoOp;
+typedef Undo::reverse_iterator riUndoOp;
+
+class UndoList : public std::list<Undo> {
+ public:
+ };
+
+typedef UndoList::iterator iUndo;
+
+
+#endif // __UNDO_H__
diff --git a/muse_qt4_evolution/muse/value.cpp b/muse_qt4_evolution/muse/value.cpp
new file mode 100644
index 00000000..9434d192
--- /dev/null
+++ b/muse_qt4_evolution/muse/value.cpp
@@ -0,0 +1,73 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "value.h"
+#include "al/xml.h"
+
+IValue::IValue(QObject* parent, const char* name)
+ : QObject(parent)
+ {
+ setObjectName(name);
+ }
+BValue::BValue(QObject* parent, const char* name)
+ : QObject(parent)
+ {
+ setObjectName(name);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void BValue::save(Xml& xml)
+ {
+ xml.intTag(objectName().toLatin1().data(), val);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void IValue::save(Xml& xml)
+ {
+ xml.intTag(objectName().toLatin1().data(), val);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void BValue::setValue(bool v)
+ {
+ if (val != v) {
+ val = v;
+ emit valueChanged(val);
+ emit valueChanged(int(val));
+ }
+ }
+
+void IValue::setValue(int v)
+ {
+ if (val != v) {
+ val = v;
+ emit valueChanged(val);
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/vst.cpp b/muse_qt4_evolution/muse/vst.cpp
new file mode 100644
index 00000000..f91d1322
--- /dev/null
+++ b/muse_qt4_evolution/muse/vst.cpp
@@ -0,0 +1,1063 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+// This code is based on jack_fst:
+// Copyright (C) 2004 Paul Davis <paul@linuxaudiosystems.com>
+// Torben Hohn <torbenh@informatik.uni-bremen.de>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "config.h"
+
+#ifdef VST_SUPPORT
+
+#include "al/al.h"
+#include <fst.h>
+#include <vst/aeffectx.h>
+#include <jack/jack.h>
+
+#include "vst.h"
+#include "globals.h"
+#include "synth.h"
+#include "jackaudio.h"
+#include "midi.h"
+#include "al/xml.h"
+#include "song.h"
+#include "audio.h"
+#include "widgets/utils.h"
+
+extern "C" void fst_error(const char *fmt, ...);
+extern JackAudio* jackAudio;
+
+//---------------------------------------------------------
+// jfstReserveMem
+//---------------------------------------------------------
+
+static void jfstReserveMem(int size)
+ {
+ char buf[size];
+
+ for (int i = 0; i < size; ++i)
+ buf[i] = (char)(i % 256);
+ }
+
+//---------------------------------------------------------
+// vstHostCallback
+//---------------------------------------------------------
+
+static long vstHostCallback(AEffect* effect,
+ long opcode, long index, long value, void* ptr, float opt)
+ {
+ static VstTimeInfo _timeInfo;
+
+ VstPluginIF* pluginIF = effect ? (VstPluginIF*) effect->user : 0;
+
+ jack_position_t jack_pos;
+ jack_transport_state_t tstate;
+
+ switch (opcode) {
+ case audioMasterAutomate:
+ // index, value, returns 0
+ if (pluginIF) {
+ PluginI* pi = pluginIF->pluginInstance();
+ // pi->setParam(index, opt);
+ CVal cval;
+ cval.f = opt;
+ song->setControllerVal(pi->track(), pi->controller(index), cval);
+ }
+ return 0;
+
+ case audioMasterVersion:
+ // vst version, currently 2 (0 for older)
+ return 2200;
+
+ case audioMasterCurrentId:
+ // returns the unique id of a plug that's currently
+ // loading
+ return 0;
+
+ case audioMasterIdle:
+ // call application idle routine (this will
+ // call effEditIdle for all open editors too)
+ effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f);
+ return 0;
+
+ case audioMasterPinConnected:
+ // inquire if an input or output is beeing connected;
+ // index enumerates input or output counting from zero:
+ // value is 0 for input and != 0 otherwise. note: the
+ // return value is 0 for <true> such that older versions
+ // will always return true.
+ return 1;
+
+ case audioMasterWantMidi:
+ // <value> is a filter which is currently ignored
+ return 0;
+
+ case audioMasterGetTime:
+ // returns const VstTimeInfo* (or 0 if not supported)
+ // <value> should contain a mask indicating which fields are required
+ // (see valid masks above), as some items may require extensive
+ // conversions
+
+ memset(&_timeInfo, 0, sizeof(_timeInfo));
+
+ if (effect) {
+ tstate = jackAudio->transportQuery(&jack_pos);
+
+ _timeInfo.samplePos = jack_pos.frame;
+ _timeInfo.sampleRate = jack_pos.frame_rate;
+ _timeInfo.flags = 0;
+
+ if ((value & (kVstBarsValid|kVstTempoValid)) && (jack_pos.valid & JackPositionBBT)) {
+ _timeInfo.tempo = jack_pos.beats_per_minute;
+ _timeInfo.timeSigNumerator = (long) floor (jack_pos.beats_per_bar);
+ _timeInfo.timeSigDenominator = (long) floor (jack_pos.beat_type);
+ _timeInfo.flags |= (kVstBarsValid|kVstTempoValid);
+ }
+ if (tstate == JackTransportRolling) {
+ _timeInfo.flags |= kVstTransportPlaying;
+ }
+ }
+ else {
+ _timeInfo.samplePos = 0;
+ _timeInfo.sampleRate = AL::sampleRate;
+ }
+ return (long)&_timeInfo;
+
+ case audioMasterProcessEvents:
+ // VstEvents* in <ptr>
+ return 0;
+
+ case audioMasterSetTime:
+ // VstTimenfo* in <ptr>, filter in <value>, not supported
+
+ case audioMasterTempoAt:
+ // returns tempo (in bpm * 10000) at sample frame location passed in <value>
+ return 0;
+
+ case audioMasterGetNumAutomatableParameters:
+ return 0;
+
+ case audioMasterGetParameterQuantization:
+ // returns the integer value for +1.0 representation,
+ // or 1 if full single float precision is maintained
+ // in automation. parameter index in <value> (-1: all, any)
+ return 0;
+
+ case audioMasterIOChanged:
+ // numInputs and/or numOutputs has changed
+ return 0;
+
+ case audioMasterNeedIdle:
+ // plug needs idle calls (outside its editor window)
+ return 0;
+
+ case audioMasterSizeWindow:
+ // index: width, value: height
+ return 0;
+
+ case audioMasterGetSampleRate:
+ return 0;
+
+ case audioMasterGetBlockSize:
+ return 0;
+
+ case audioMasterGetInputLatency:
+ return 0;
+
+ case audioMasterGetOutputLatency:
+ return 0;
+
+ case audioMasterGetPreviousPlug:
+ // input pin in <value> (-1: first to come), returns cEffect*
+ return 0;
+
+ case audioMasterGetNextPlug:
+ // output pin in <value> (-1: first to come), returns cEffect*
+
+ case audioMasterWillReplaceOrAccumulate:
+ // returns: 0: not supported, 1: replace, 2: accumulate
+ return 0;
+
+ case audioMasterGetCurrentProcessLevel:
+ // returns: 0: not supported,
+ // 1: currently in user thread (gui)
+ // 2: currently in audio thread (where process is called)
+ // 3: currently in 'sequencer' thread (midi, timer etc)
+ // 4: currently offline processing and thus in user thread
+ // other: not defined, but probably pre-empting user thread.
+ return 0;
+
+ case audioMasterGetAutomationState:
+ // returns 0: not supported, 1: off, 2:read, 3:write, 4:read/write
+ // offline
+ return 0;
+
+ case audioMasterOfflineStart:
+ case audioMasterOfflineRead:
+ // ptr points to offline structure, see below. return 0: error, 1 ok
+ return 0;
+
+ case audioMasterOfflineWrite:
+ // same as read
+ return 0;
+
+ case audioMasterOfflineGetCurrentPass:
+ case audioMasterOfflineGetCurrentMetaPass:
+ return 0;
+
+ case audioMasterSetOutputSampleRate:
+ // for variable i/o, sample rate in <opt>
+ return 0;
+
+ case audioMasterGetSpeakerArrangement:
+ // (long)input in <value>, output in <ptr>
+ return 0;
+
+ case audioMasterGetVendorString:
+ // fills <ptr> with a string identifying the vendor (max 64 char)
+ strcpy ((char*) ptr, "LAD");
+ return 0;
+
+ case audioMasterGetProductString:
+ // fills <ptr> with a string with product name (max 64 char)
+ strcpy ((char*) ptr, "FreeST");
+
+ case audioMasterGetVendorVersion:
+ // returns vendor-specific version
+ return 1000;
+
+ case audioMasterVendorSpecific:
+ // no definition, vendor specific handling
+ return 0;
+
+ case audioMasterSetIcon:
+ // void* in <ptr>, format not defined yet
+ return 0;
+
+ case audioMasterCanDo:
+ // string in ptr, see below
+ return 0;
+
+ case audioMasterGetLanguage:
+ // see enum
+ return 0;
+
+ case audioMasterOpenWindow:
+ // returns platform specific ptr
+ return 0;
+
+ case audioMasterCloseWindow:
+ // close window, platform specific handle in <ptr>
+ return 0;
+
+ case audioMasterGetDirectory:
+ // get plug directory, FSSpec on MAC, else char*
+ return 0;
+
+ case audioMasterUpdateDisplay:
+ // something has changed, update 'multi-fx' display
+ effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f);
+ return 0;
+
+ case audioMasterBeginEdit:
+ // begin of automation session (when mouse down), parameter index in <index>
+ return 0;
+
+ case audioMasterEndEdit:
+ // end of automation session (when mouse up), parameter index in <index>
+ return 0;
+
+ case audioMasterOpenFileSelector:
+ // open a fileselector window with VstFileSelect* in <ptr>
+ return 0;
+
+ default:
+ break;
+ }
+ return 0;
+ }
+
+
+//---------------------------------------------------------
+// FstPlugin
+//---------------------------------------------------------
+
+FstPlugin::FstPlugin()
+ {
+ _fst = 0;
+ }
+
+//---------------------------------------------------------
+// ~FstPlugin
+//---------------------------------------------------------
+
+FstPlugin::~FstPlugin()
+ {
+ if (_fst) {
+ destroyEditor();
+ fst_close(_fst);
+ _fst = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+void FstPlugin::instantiate(FSTHandle* fstHandle, void* p)
+ {
+ _fst = fst_instantiate(fstHandle, vstHostCallback, p);
+ if (_fst == 0) {
+ printf("FstPlugin::instantiate:: cannot instantiate plugin\n");
+ return;
+ }
+ AEffect* plugin = _fst->plugin;
+ version = plugin->dispatcher (plugin, effGetVstVersion, 0, 0, 0, 0.0f);
+ }
+
+//---------------------------------------------------------
+// numInputs
+//---------------------------------------------------------
+
+int FstPlugin::numInputs() const
+ {
+ return _fst->plugin->numInputs;
+ }
+
+//---------------------------------------------------------
+// numOutputs
+//---------------------------------------------------------
+
+int FstPlugin::numOutputs() const
+ {
+ return _fst->plugin->numOutputs;
+ }
+
+//---------------------------------------------------------
+// numParameter
+//---------------------------------------------------------
+
+int FstPlugin::numParameter() const
+ {
+ return _fst->plugin->numParams;
+ }
+
+//---------------------------------------------------------
+// setSampleRate
+//---------------------------------------------------------
+
+void FstPlugin::setSampleRate(float sr)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->dispatcher(plugin, effSetSampleRate, 0, 0, 0, sr);
+ }
+
+//---------------------------------------------------------
+// setBlockSize
+//---------------------------------------------------------
+
+void FstPlugin::setBlockSize(int bs)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->dispatcher(plugin, effSetBlockSize, 0, bs, 0, 0.0f);
+ }
+
+//---------------------------------------------------------
+// mainsChanged
+//---------------------------------------------------------
+
+void FstPlugin::mainsChanged(bool on)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->dispatcher(plugin, effMainsChanged, 0, on, 0, 0.0f);
+ }
+
+//---------------------------------------------------------
+// setProgram
+//---------------------------------------------------------
+
+void FstPlugin::setProgram(int p)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->dispatcher(plugin, effSetProgram, 0, p, 0, 0.0f);
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool FstPlugin::hasGui() const
+ {
+ return _fst->plugin->flags & effFlagsHasEditor;
+ }
+
+//---------------------------------------------------------
+// canReplacing
+//---------------------------------------------------------
+
+bool FstPlugin::canReplacing()
+ {
+ return _fst->plugin->flags & effFlagsCanReplacing;
+ }
+
+//---------------------------------------------------------
+// runEditor
+//---------------------------------------------------------
+
+bool FstPlugin::runEditor()
+ {
+ return fst_run_editor(_fst);
+ }
+
+//---------------------------------------------------------
+// destroyEditor
+//---------------------------------------------------------
+
+void FstPlugin::destroyEditor()
+ {
+ fst_destroy_editor(_fst);
+ }
+
+//---------------------------------------------------------
+// getVstVersion
+//---------------------------------------------------------
+
+int FstPlugin::getVstVersion()
+ {
+ return version;
+ }
+
+//---------------------------------------------------------
+// setParameter
+//---------------------------------------------------------
+
+void FstPlugin::setParameter(int idx, float value)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->setParameter(plugin, idx, value);
+ }
+
+//---------------------------------------------------------
+// getParameter
+//---------------------------------------------------------
+
+float FstPlugin::getParameter(int idx)
+ {
+ AEffect* plugin = _fst->plugin;
+ return plugin->getParameter(plugin, idx);
+ }
+
+//---------------------------------------------------------
+// processReplacing
+//---------------------------------------------------------
+
+void FstPlugin::processReplacing(float** ins, float** outs, int n)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->processReplacing(plugin, ins, outs, n);
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void FstPlugin::process(float** ins, float** outs, int n)
+ {
+ AEffect* plugin = _fst->plugin;
+ plugin->process(plugin, ins, outs, n);
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+void FstPlugin::putEvent(const MidiEvent& ev)
+ {
+ AEffect* plugin = _fst->plugin;
+ static struct VstEvents events;
+ static struct VstMidiEvent event;
+ events.numEvents = 1;
+ events.reserved = 0;
+ events.events[0] = (VstEvent*)(&event);
+
+ event.type = kVstMidiType;
+ event.byteSize = 24;
+ event.deltaFrames = 0;
+ event.flags = 0;
+ event.detune = 0;
+ event.noteLength = 0;
+ event.noteOffset = 0;
+ event.reserved1 = 0;
+ event.reserved2 = 0;
+ event.noteOffVelocity = 0;
+ switch (ev.type()) {
+ case ME_PITCHBEND:
+ {
+ int a = ev.dataA() + 8192;
+ int b = a >> 7;
+ event.midiData[0] = (ev.type() | ev.channel()) & 0xff;
+ event.midiData[1] = a & 0x7f;
+ event.midiData[2] = b & 0x7f;
+ event.midiData[3] = 0;
+ }
+ break;
+
+ case ME_CONTROLLER:
+ case ME_NOTEON:
+ default:
+ event.midiData[0] = (ev.type() | ev.channel()) & 0xff;
+ event.midiData[1] = ev.dataA() & 0xff;
+ event.midiData[2] = ev.dataB() & 0xff;
+ event.midiData[3] = 0;
+ break;
+ }
+ plugin->dispatcher(plugin, effProcessEvents, 0, 0, &events, 0.0f);
+ }
+
+//---------------------------------------------------------
+// getParameterName
+//---------------------------------------------------------
+
+const char* FstPlugin::getParameterName(int idx) const
+ {
+ static char dsp[8];
+ dsp[0] = 0;
+ AEffect* effect = _fst->plugin;
+ effect->dispatcher(effect, effGetParamName, idx, 0, &dsp, 0.0f);
+ return dsp;
+ }
+
+//---------------------------------------------------------
+// getParameterLabel
+//---------------------------------------------------------
+
+const char* FstPlugin::getParameterLabel(int idx) const
+ {
+ static char dsp[8];
+ dsp[0] = 0;
+ AEffect* effect = _fst->plugin;
+ effect->dispatcher(effect, effGetParamLabel, idx, 0, &dsp, 0.0f);
+ return dsp;
+ }
+
+//---------------------------------------------------------
+// getParameterDisplay
+//---------------------------------------------------------
+
+const char* FstPlugin::getParameterDisplay(int idx, float val) const
+ {
+ static char dsp[8];
+ dsp[0] = 0;
+ AEffect* effect = _fst->plugin;
+ effect->dispatcher(effect, effGetParamDisplay, idx, 0, &dsp, val);
+ return dsp;
+ }
+
+//---------------------------------------------------------
+// scanVstDir
+//---------------------------------------------------------
+
+static void scanVstDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan vst plugin dir <%s>\n", s.toLatin1().data());
+ QDir pluginDir(s, QString("*.dll"), QDir::Unsorted, QDir::Files);
+ if (pluginDir.exists()) {
+ const QFileInfoList list = pluginDir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fi = list.at(i);
+ char* path = strdup(fi.filePath().toLatin1().data());
+ FSTInfo* info = fst_get_info(path);
+ if (info) {
+ //
+ // simple hack:
+ // plugins with no inputs are treated
+ // as software synthesizer
+ //
+ // if (info->wantEvents && info->numOutputs) {
+ if (info->numInputs == 0 && info->numOutputs) {
+ if (debugMsg)
+ printf(" add vsti synti <%s>\n", fi.fileName().toLatin1().data());
+ synthis.push_back(new VstSynth(&fi));
+ fst_free_info(info);
+ }
+ else if (info->numInputs && info->numOutputs) {
+ if (debugMsg)
+ printf(" add vst plugin <%s>\n", fi.fileName().toLatin1().data());
+ plugins.push_back(new VstPlugin(&fi, info));
+ }
+ }
+ free(path);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// fstSignalHandler
+//---------------------------------------------------------
+
+static void fstSignalHandler(int sig, siginfo_t* /*info*/, void* /*context*/)
+ {
+ fst_error("fst signal handler %d, thread = 0x%x", sig, pthread_self ());
+ //if (sig == SIGSEGV || sig == SIGABRT) {
+ char*p = 0;
+ *p = 0;
+// }
+ fatalError("fst signal");
+ }
+
+//---------------------------------------------------------
+// initVST
+//---------------------------------------------------------
+
+void initVST()
+ {
+ jfstReserveMem(1000000);
+
+ if (fst_init(fstSignalHandler)) {
+ printf("initVST failed\n");
+ return;
+ }
+ char* vstPath = getenv("VST_PATH");
+ if (vstPath == 0)
+ vstPath = "/usr/lib/vst:/usr/local/lib/vst";
+
+ char* p = vstPath;
+ while (*p != '\0') {
+ char* pe = p;
+ while (*pe != ':' && *pe != '\0')
+ pe++;
+
+ int n = pe - p;
+ if (n) {
+ char* buffer = new char[n + 1];
+ strncpy(buffer, p, n);
+ buffer[n] = '\0';
+ scanVstDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool VstSynthIF::guiVisible() const
+ {
+ return _guiVisible;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void VstSynthIF::showGui(bool v)
+ {
+ if (v == guiVisible())
+ return;
+ if (v)
+ _fst->runEditor();
+ else
+ _fst->destroyEditor();
+ _guiVisible = v;
+ }
+
+//---------------------------------------------------------
+// receiveEvent
+//---------------------------------------------------------
+
+MidiEvent VstSynthIF::receiveEvent()
+ {
+ return MidiEvent();
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool VstSynthIF::hasGui() const
+ {
+ return _fst->hasGui();
+ }
+
+//---------------------------------------------------------
+// incInstances
+//---------------------------------------------------------
+
+void VstSynth::incInstances(int val)
+ {
+ _instances += val;
+ if (_instances == 0 && fstHandle) {
+ fst_unload(fstHandle);
+ fstHandle = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool VstSynthIF::init(FSTHandle* h)
+ {
+ _fst = new FstPlugin();
+ _fst->instantiate(h, 0);
+ _fst->setSampleRate(AL::sampleRate);
+ _fst->setBlockSize(segmentSize);
+ _fst->mainsChanged(true);
+ _fst->setProgram(0);
+ return true;
+ }
+
+//---------------------------------------------------------
+// channels
+//---------------------------------------------------------
+
+int VstSynthIF::channels() const
+ {
+ return _fst->numOutputs();
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+SynthIF* VstSynth::createSIF(SynthI* s)
+ {
+ VstSynthIF* sif = new VstSynthIF(s);
+ ++_instances;
+ const char* path = info.filePath().toLatin1().data();
+
+ if (fstHandle == 0) {
+ fstHandle = fst_load(path);
+ if (fstHandle == 0) {
+ printf("SynthIF:: cannot load vst plugin %s\n", path);
+ return 0;
+ }
+ }
+ sif->init(fstHandle);
+ return sif;
+ }
+
+//---------------------------------------------------------
+// deactivate3
+//---------------------------------------------------------
+
+void VstSynthIF::deactivate3()
+ {
+ if (_fst) {
+ delete _fst;
+ _fst = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// ~VstSynthIF
+//---------------------------------------------------------
+
+VstSynthIF::~VstSynthIF()
+ {
+ deactivate3();
+ }
+
+//---------------------------------------------------------
+// setParameter
+//---------------------------------------------------------
+
+void VstSynthIF::setParameter(int idx, float value)
+ {
+ _fst->setParameter(idx, value);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void VstSynthIF::write(Xml& xml) const
+ {
+ //---------------------------------------------
+ // dump current state of synth
+ //---------------------------------------------
+
+ int params = _fst->numParameter();
+ for (int i = 0; i < params; ++i) {
+ float f = _fst->getParameter(i);
+ xml.tag("param", f);
+ }
+ }
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+void VstSynthIF::getData(MidiEventList* el, unsigned pos, int ports, unsigned n, float** buffer)
+ {
+ unsigned int endPos = pos + n;
+ iMidiEvent i = el->begin();
+ for (; i != el->end(); ++i) {
+ if (i->time() >= endPos)
+ break;
+ putEvent(*i);
+ }
+ el->erase(el->begin(), i);
+
+ int outputs = _fst->numOutputs();
+ if (ports < outputs) {
+ float* ob[outputs];
+ float fp[n * (outputs-ports)]; // dummy output buffer
+ for (int i = 0; i < outputs; ++i) {
+ if (i < ports)
+ ob[i] = buffer[i];
+ else
+ ob[i] = fp + n * (i-ports);
+ }
+ if (_fst->canReplacing())
+ _fst->processReplacing(0, ob, n);
+ else {
+ for (int i = 0; i < outputs; ++i)
+ memset(ob[i], 0, n * sizeof(float));
+ _fst->process(0, ob, n);
+ }
+ }
+ else {
+ if (_fst->canReplacing())
+ _fst->processReplacing(0, buffer, n);
+ else {
+ for (int i = 0; i < outputs; ++i)
+ memset(buffer[i], 0, n * sizeof(float));
+ _fst->process(0, buffer, n);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool VstSynthIF::putEvent(const MidiEvent& ev)
+ {
+ if (midiOutputTrace)
+ ev.dump();
+ _fst->putEvent(ev);
+ return false;
+ }
+
+//---------------------------------------------------------
+// VstPlugin
+//---------------------------------------------------------
+
+VstPlugin::VstPlugin(const QFileInfo* fi, FSTInfo* i)
+ : Plugin(fi)
+ {
+ info = i;
+ fstHandle = 0;
+ }
+
+//---------------------------------------------------------
+// VstPlugin
+//---------------------------------------------------------
+
+VstPlugin::~VstPlugin()
+ {
+ fst_free_info(info);
+ }
+
+//---------------------------------------------------------
+// createPIF
+//---------------------------------------------------------
+
+PluginIF* VstPlugin::createPIF(PluginI* pi)
+ {
+ VstPluginIF* pif = new VstPluginIF(pi);
+ ++_instances;
+ const char* path = fi.filePath().toLatin1().data();
+
+ if (fstHandle == 0) {
+ fstHandle = fst_load(path);
+ if (fstHandle == 0) {
+ printf("SynthIF:: cannot load vst plugin %s\n", path);
+ return 0;
+ }
+ }
+ pif->init(fstHandle);
+ return pif;
+ }
+
+//---------------------------------------------------------
+// parameter
+//---------------------------------------------------------
+
+int VstPlugin::parameter() const
+ {
+ return info->numParams;
+ }
+
+//---------------------------------------------------------
+// inports
+//---------------------------------------------------------
+
+int VstPlugin::inports() const
+ {
+ return info->numInputs;
+ }
+
+//---------------------------------------------------------
+// outports
+//---------------------------------------------------------
+
+int VstPlugin::outports() const
+ {
+ return info->numOutputs;
+ }
+
+//---------------------------------------------------------
+// id
+//---------------------------------------------------------
+
+unsigned long VstPlugin::id() const
+ {
+ return info->UniqueID;
+ }
+
+//---------------------------------------------------------
+// VstPluginIF
+//---------------------------------------------------------
+
+VstPluginIF::VstPluginIF(PluginI* pi)
+ : PluginIF(pi)
+ {
+ _fst = 0;
+ _guiVisible = false;
+ }
+
+VstPluginIF::~VstPluginIF()
+ {
+ if (_fst == 0)
+ return;
+ delete _fst;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool VstPluginIF::init(FSTHandle* h)
+ {
+ _fst = new FstPlugin();
+ _fst->instantiate(h, this);
+ _fst->setSampleRate(AL::sampleRate);
+ _fst->setBlockSize(segmentSize);
+ _fst->mainsChanged(true);
+ _fst->setProgram(0);
+ return true;
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool VstPluginIF::hasGui() const
+ {
+ return _fst->hasGui();
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void VstPluginIF::showGui(bool v)
+ {
+ if (v == guiVisible())
+ return;
+ if (v)
+ _fst->runEditor();
+ else
+ _fst->destroyEditor();
+ _guiVisible = v;
+ }
+
+//---------------------------------------------------------
+// getParameterName
+//---------------------------------------------------------
+
+const char* VstPluginIF::getParameterName(int idx) const
+ {
+ return _fst->getParameterName(idx);
+ }
+
+//---------------------------------------------------------
+// getParameterLabel
+//---------------------------------------------------------
+
+const char* VstPluginIF::getParameterLabel(int idx) const
+ {
+ return _fst->getParameterLabel(idx);
+ }
+
+//---------------------------------------------------------
+// getParameterDisplay
+//---------------------------------------------------------
+
+const char* VstPluginIF::getParameterDisplay(int idx, float val) const
+ {
+ return _fst->getParameterDisplay(idx, val);
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void VstPluginIF::apply(unsigned nframes, float** src, float** dst)
+ {
+ if (_fst->canReplacing())
+ _fst->processReplacing(src, dst, nframes);
+ else {
+ int n = _fst->numOutputs();
+
+ for (int i = 0; i < n; ++i)
+ memset(dst[i], 0, sizeof(float) * nframes);
+ _fst->process(src, dst, nframes);
+ }
+ }
+
+//---------------------------------------------------------
+// setParam
+//---------------------------------------------------------
+
+void VstPluginIF::setParam(int i, double val)
+ {
+ _fst->setParameter(i, val);
+ }
+
+//---------------------------------------------------------
+// param
+//---------------------------------------------------------
+
+float VstPluginIF::param(int i) const
+ {
+ return _fst->getParameter(i);
+ }
+
+#else
+void initVST() {}
+#endif
+
diff --git a/muse_qt4_evolution/muse/vst.h b/muse_qt4_evolution/muse/vst.h
new file mode 100644
index 00000000..0ecea974
--- /dev/null
+++ b/muse_qt4_evolution/muse/vst.h
@@ -0,0 +1,172 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __VST_H__
+#define __VST_H__
+
+#include "synth.h"
+#include "plugin.h"
+
+struct _FSTHandle;
+struct _FST;
+class VstPluginIF;
+
+//---------------------------------------------------------
+// FstPlugin
+//---------------------------------------------------------
+
+class FstPlugin {
+ _FST* _fst;
+ int version;
+
+ public:
+ FstPlugin();
+ ~FstPlugin();
+ void instantiate(FSTHandle* s, void*);
+ int numInputs() const;
+ int numOutputs() const;
+ int numParameter() const;
+ void setProgram(int p);
+ void mainsChanged(bool on);
+ void setBlockSize(int bs);
+ void setSampleRate(float sr);
+ bool runEditor();
+ void destroyEditor();
+ int getVstVersion();
+ bool hasGui() const;
+ bool canReplacing();
+ void setParameter(int idx, float value);
+ float getParameter(int idx);
+ void processReplacing(float**, float**, int);
+ void process(float**, float**, int);
+ void putEvent(const MidiEvent& ev);
+ const char* getParameterName(int idx) const;
+ const char* getParameterLabel(int idx) const;
+ const char* getParameterDisplay(int idx, float val) const;
+ };
+
+//---------------------------------------------------------
+// VstSynth
+//---------------------------------------------------------
+
+class VstSynth : public Synth {
+ _FSTHandle* fstHandle;
+ int vstVersion;
+
+ public:
+ VstSynth(const QFileInfo* fi) : Synth(fi, fi->baseName()) {
+ fstHandle = 0;
+ }
+ virtual ~VstSynth() {}
+ virtual void incInstances(int val);
+ virtual SynthIF* createSIF(SynthI*);
+ };
+
+//---------------------------------------------------------
+// VstSynthIF
+// VSTi synthesizer instance
+//---------------------------------------------------------
+
+class VstSynthIF : public SynthIF
+ {
+ FstPlugin* _fst;
+ bool _guiVisible;
+
+ public:
+ VstSynthIF(SynthI* s) : SynthIF(s) {
+ _fst = 0;
+ _guiVisible = false;
+ }
+ virtual ~VstSynthIF();
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool v);
+ virtual bool hasGui() const;
+ virtual void getGeometry(int*, int*, int*, int*) const {}
+ virtual void setGeometry(int, int, int, int) {}
+ virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer) ;
+ virtual bool putEvent(const MidiEvent& ev);
+ virtual MidiEvent receiveEvent();
+ virtual int eventsPending() const { return 0; }
+ virtual int channels() const;
+ virtual void deactivate3();
+ virtual QString getPatchName(int, int) { return QString(""); }
+ virtual void populatePatchPopup(QMenu*, int) {};
+ virtual void write(Xml& xml) const;
+ virtual void setParameter(int idx, float value);
+ virtual int getControllerInfo(int, const char**, int*, int*, int*) { return 0; }
+ bool init(FSTHandle*);
+ };
+
+//---------------------------------------------------------
+// VstPlugin
+//---------------------------------------------------------
+
+class VstPlugin : public Plugin {
+ _FSTHandle* fstHandle;
+ FSTInfo* info;
+
+ protected:
+ int vstVersion;
+ friend class VstPluginIF;
+
+ public:
+ VstPlugin(const QFileInfo* fi, FSTInfo* i);
+ virtual ~VstPlugin();
+ virtual PluginIF* createPIF(PluginI*);
+ virtual QString name() const { return QString(info->name); }
+ virtual QString label() const { return QString(info->name); }
+
+ virtual int parameter() const;
+ virtual int inports() const;
+ virtual int outports() const;
+ virtual unsigned long id() const;
+ };
+
+//---------------------------------------------------------
+// VstPluginIF
+// Vst plugin instance interface
+//---------------------------------------------------------
+
+class VstPluginIF : public PluginIF {
+ FstPlugin* _fst;
+ bool _guiVisible;
+
+ public:
+ VstPluginIF(PluginI*);
+ virtual ~VstPluginIF();
+
+ virtual void apply(unsigned nframes, float** src, float** dst);
+ virtual void activate() {}
+ virtual void deactivate() {}
+ virtual void cleanup() {}
+ virtual void setParam(int i, double val);
+ virtual float param(int i) const;
+ virtual const char* getParameterName(int k) const;
+ virtual const char* getParameterLabel(int) const;
+ virtual const char* getParameterDisplay(int, float) const;
+ virtual bool hasGui() const;
+ virtual bool guiVisible() const { return _guiVisible; }
+ virtual void showGui(bool f);
+ bool init(FSTHandle*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/wave.cpp b/muse_qt4_evolution/muse/wave.cpp
new file mode 100644
index 00000000..dca9843b
--- /dev/null
+++ b/muse_qt4_evolution/muse/wave.cpp
@@ -0,0 +1,1087 @@
+ //=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <samplerate.h>
+
+#include "al/xml.h"
+#include "al/al.h"
+#include "song.h"
+#include "wave.h"
+#include "muse.h"
+#include "widgets/filedialog.h"
+#include "arranger.h"
+#include "globals.h"
+#include "event.h"
+#include "audio.h"
+#include "part.h"
+
+const char* audioFilePattern[] = {
+ "Wave/Binary (*.wav *.bin)",
+ "Wave (*.wav)",
+ "Binary (*.bin)",
+ "All Files (*)",
+ 0
+ };
+const int cacheMag = 128;
+
+QHash<QString, SndFile*> SndFile::sndFiles;
+QList<SndFile*> SndFile::createdFiles;
+int SndFile::recFileNumber;
+
+//---------------------------------------------------------
+// copyWaveFileToProject
+// - copy wave file to project directory
+// - do sample rate conversion
+//
+// return false on error
+//---------------------------------------------------------
+
+static bool copyWaveFileToProject(const QString& path)
+ {
+ QFile srcFile(path);
+ QFileInfo srcInfo(srcFile);
+
+ QString dst(song->absoluteProjectPath());
+ QFile dstFile(dst + "/" + srcInfo.fileName());
+ if (dstFile.exists()) {
+ // TODO: rename file or check for identity
+ // we cannot easily check for identity if destination
+ // file is sample rate converted
+ //
+ // for now we assume that the file has already
+ // be imported:
+ //
+ printf("File already exists\n");
+ return true;
+ }
+
+ SF_INFO sfinfoSrc;
+ memset(&sfinfoSrc, 0, sizeof(SF_INFO));
+ SNDFILE* sfSrc = sf_open(path.toLatin1().data(), SFM_READ, &sfinfoSrc);
+ if (sfSrc == 0) {
+ printf("Cannot open source file: %s\n", strerror(errno));
+ return false;
+ }
+ int channels = sfinfoSrc.channels;
+ sf_count_t size = sfinfoSrc.frames;
+
+ SF_INFO sfinfoDst;
+ memset(&sfinfoDst, 0, sizeof(SF_INFO));
+ sfinfoDst.samplerate = AL::sampleRate;
+ sfinfoDst.channels = channels;
+ sfinfoDst.format = SF_FORMAT_WAV | SF_FORMAT_FLOAT;
+ SNDFILE* sfDst = sf_open(dstFile.fileName().toLatin1().data(),
+ SFM_WRITE, &sfinfoDst);
+ if (sfDst == 0) {
+ printf("Cannot open destination file<%s>: %s\n",
+ dstFile.fileName().toLatin1().data(), strerror(errno));
+ return false;
+ }
+
+ bool showProgress = size > (1024LL * 1024LL * 8LL);
+ QProgressDialog* progress = 0;
+ if (showProgress) {
+ QString label(QWidget::tr("copy \n %1\nto\n %2"));
+ label = label.arg(path).arg(dst);
+ if (sfinfoSrc.samplerate != AL::sampleRate) {
+ QString cs(QWidget::tr("\nconverting sample rate\n"
+ "from %1 to %2"));
+ label += cs.arg(sfinfoSrc.samplerate).arg(AL::sampleRate);
+ }
+ int csize = size / 1024;
+ progress = new QProgressDialog(label, QWidget::tr("Abort"), 0, csize);
+ progress->setValue(0);
+ progress->setWindowTitle("MusE");
+ progress->raise();
+ progress->show();
+ qApp->processEvents();
+ }
+ sf_count_t inSize = 1024LL * 64LL;
+ sf_count_t samplesWritten = 0LL;
+
+ bool returnValue = true;
+ if (sfinfoSrc.samplerate != AL::sampleRate) {
+ // TODO: convertsample rate
+ printf("wave file has samplerate of %d, our project has %d\n",
+ sfinfoSrc.samplerate,AL::sampleRate);
+
+ int srcType = SRC_SINC_MEDIUM_QUALITY;
+ int error;
+ SRC_STATE* src = src_new(srcType, channels, &error);
+ if (src == 0) {
+ printf("creating sample rate converter failed: error %d\n",
+ error);
+ return false;
+ }
+ double ratio = double(AL::sampleRate) / double(sfinfoSrc.samplerate);
+ src_set_ratio(src, ratio);
+ sf_count_t outSize = int(inSize * ratio) + 1;
+ float inBuffer[inSize * channels];
+ float* inPtr = inBuffer;
+ while (size) {
+ float outBuffer[outSize * channels];
+
+ // read buffer
+ sf_count_t framesToRead = (inBuffer + inSize) - inPtr;
+ if (framesToRead > size)
+ framesToRead = size;
+ sf_count_t nr = sf_readf_float(sfSrc, inPtr, framesToRead);
+ if (nr != framesToRead) {
+ printf("sound file read failed\n");
+ src_delete(src);
+ returnValue = false;
+ break;
+ }
+
+ // convert
+ SRC_DATA data;
+ data.data_in = inBuffer;
+ data.data_out = outBuffer;
+ data.input_frames = inSize;
+ data.output_frames = outSize;
+ data.end_of_input = framesToRead == size;
+ data.src_ratio = ratio;
+
+ int rv = src_process(src, &data);
+ if (rv > 0) {
+ printf("error sampe rate conversion: %s\n",
+ src_strerror(rv));
+ src_delete(src);
+ returnValue = false;
+ break;
+ }
+
+ // write buffer
+ sf_count_t n = sf_writef_float(sfDst, outBuffer, data.output_frames_gen);
+ if (n != data.output_frames_gen) {
+ printf("sound write failed: returns %lld, should return %ld\n",
+ n, data.output_frames_gen);
+ returnValue = false;
+ break;
+ }
+
+ int rest = (inPtr + nr - inBuffer) - data.input_frames_used;
+ rest *= (sizeof(float) * channels);
+ if (rest > 0)
+ memcpy(inBuffer, inBuffer + data.input_frames_used, rest);
+
+ inPtr += framesToRead;
+ inPtr -= data.input_frames_used;
+ if (data.input_frames_used > size)
+ size = 0;
+ else
+ size -= data.input_frames_used;
+ framesToRead = data.input_frames_used;
+ samplesWritten += data.input_frames_used;
+
+ if (framesToRead > size)
+ framesToRead = size;
+ if (showProgress) {
+ progress->setValue(samplesWritten / 1024LL);
+ progress->raise();
+ qApp->processEvents();
+ if (progress->wasCanceled()) {
+ returnValue = false;
+ break;
+ }
+ }
+ }
+ src_delete(src);
+ }
+ else {
+ while (size) {
+ float buffer[inSize * channels];
+
+ sf_count_t n = inSize > size ? size : inSize;
+ sf_count_t nn = sf_readf_float(sfSrc, buffer, n);
+
+ if (nn != n) {
+ printf("sound file read failed\n");
+ returnValue = false;
+ break;
+ }
+ // write buffer
+ nn = sf_writef_float(sfDst, buffer, n);
+ if (n != nn) {
+ printf("sound write failed: returns %lld, should return %lld\n",
+ nn, n);
+ returnValue = false;
+ break;
+ }
+ size -= n;
+ samplesWritten += n;
+ if (showProgress) {
+ progress->setValue(samplesWritten / 1024LL);
+ progress->raise();
+ qApp->processEvents();
+ if (progress->wasCanceled()) {
+ returnValue = false;
+ break;
+ }
+ }
+ }
+ }
+ if (progress)
+ delete progress;
+ sf_close(sfSrc);
+ sf_close(sfDst);
+ return returnValue;
+ }
+
+//---------------------------------------------------------
+// SndFile
+//---------------------------------------------------------
+
+SndFile::SndFile(const QString& name)
+ {
+ refCount = 0;
+ _finfo.setFile(name);
+ sfRT = 0;
+ sfUI = 0;
+ csize = 0;
+ cache = 0;
+ openFlag = false;
+ sndFiles[_finfo.absoluteFilePath()] = this;
+ }
+
+SndFile::~SndFile()
+ {
+ if (openFlag)
+ close();
+ sndFiles.remove(_finfo.absoluteFilePath());
+ if (cache) {
+ for (unsigned i = 0; i < channels(); ++i)
+ delete cache[i];
+ delete[] cache;
+ cache = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// openRead
+//---------------------------------------------------------
+
+bool SndFile::openRead()
+ {
+ if (openFlag) {
+ printf("SndFile:: alread open\n");
+ return false;
+ }
+ QString p = _finfo.absoluteFilePath();
+ sfinfo.format = 0;
+ sfUI = sf_open(p.toAscii().data(), SFM_READ, &sfinfo);
+ sfinfo.format = 0;
+ sfRT = sf_open(p.toAscii().data(), SFM_READ, &sfinfo);
+ if (sfUI == 0 || sfRT == 0) {
+ printf("SndFile::openRead(): failed\n");
+ return true;
+ }
+ writeFlag = false;
+ openFlag = true;
+ QString cacheName = _finfo.absolutePath() + QString("/") + _finfo.baseName() + QString(".wca");
+ readCache(cacheName, true);
+ return false;
+ }
+
+//---------------------------------------------------------
+// update
+// called after recording to file
+//---------------------------------------------------------
+
+void SndFile::update()
+ {
+ close();
+
+ // force recreation of wca data
+ QString cacheName = _finfo.absolutePath() +
+ QString("/") + _finfo.baseName() + QString(".wca");
+ ::remove(cacheName.toLatin1().data());
+ if (openRead()) {
+ printf("SndFile::openRead(%s) failed: %s\n", _finfo.filePath().toLatin1().data(), strerror().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// readCache
+//---------------------------------------------------------
+
+void SndFile::readCache(const QString& path, bool showProgress)
+ {
+// printf("readCache %s for %d samples channel %d\n",
+// path.toLatin1().data(), samples(), channels());
+
+ if (cache) {
+ for (unsigned i = 0; i < channels(); ++i)
+ delete cache[i];
+ delete[] cache;
+ }
+ if (samples() == 0) {
+// printf("SndFile::readCache: file empty\n");
+ return;
+ }
+ csize = (samples() + cacheMag - 1)/cacheMag;
+ cache = new SampleV*[channels()];
+ for (unsigned ch = 0; ch < channels(); ++ch)
+ cache[ch] = new SampleV[csize];
+
+ FILE* cfile = fopen(path.toAscii().data(), "r");
+ if (cfile) {
+ for (unsigned ch = 0; ch < channels(); ++ch)
+ fread(cache[ch], csize * sizeof(SampleV), 1, cfile);
+ fclose(cfile);
+ return;
+ }
+
+ //---------------------------------------------------
+ // create cache
+ //---------------------------------------------------
+
+ QProgressDialog* progress = 0;
+ if (showProgress) {
+ QString label(QWidget::tr("create peakfile for "));
+ label += _finfo.baseName();
+ progress = new QProgressDialog(label, "Abort", 0, csize, 0);
+ qApp->processEvents();
+ }
+ float data[channels()][cacheMag];
+ float* fp[channels()];
+ for (unsigned k = 0; k < channels(); ++k)
+ fp[k] = &data[k][0];
+ int interval = csize / 10;
+ for (int i = 0; i < csize; i++) {
+ if (showProgress && ((i % interval) == 0)) {
+ progress->setValue(i);
+ progress->raise();
+ qApp->processEvents();
+ if (progress->wasCanceled()) {
+ // TODO
+ }
+ }
+ seek(i * cacheMag);
+ read(channels(), fp, cacheMag);
+ for (unsigned ch = 0; ch < channels(); ++ch) {
+ float rms = 0.0;
+ cache[ch][i].peak = 0;
+ for (int n = 0; n < cacheMag; n++) {
+ float fd = data[ch][n];
+ rms += fd * fd;
+ int idata = lrint(fd * 255.0);
+ if (idata < 0)
+ idata = -idata;
+ if (idata > 255)
+ idata = 255;
+ if (cache[ch][i].peak < idata)
+ cache[ch][i].peak = idata;
+ }
+ // amplify rms value +12dB
+ int rmsValue = lrint((sqrt(rms/cacheMag) * 255.0));
+ if (rmsValue > 255)
+ rmsValue = 255;
+ cache[ch][i].rms = rmsValue;
+ }
+ }
+ if (showProgress) {
+ progress->setValue(csize);
+ qApp->processEvents();
+ }
+ writeCache(path);
+ if (showProgress)
+ delete progress;
+ }
+
+//---------------------------------------------------------
+// writeCache
+//---------------------------------------------------------
+
+void SndFile::writeCache(const QString& path)
+ {
+ FILE* cfile = fopen(path.toLatin1().data(), "w");
+ if (cfile == 0)
+ return;
+ for (unsigned ch = 0; ch < channels(); ++ch)
+ fwrite(cache[ch], csize * sizeof(SampleV), 1, cfile);
+ fclose(cfile);
+ }
+
+//---------------------------------------------------------
+// read
+// integrate "mag" samples, starting at position "pos"
+// into "s"
+//---------------------------------------------------------
+
+void SndFile::read(SampleV* s, int mag, unsigned pos)
+ {
+ for (unsigned ch = 0; ch < channels(); ++ch) {
+ s[ch].peak = 0;
+ s[ch].rms = 0;
+ }
+ if (pos > samples())
+ return;
+
+ if (mag < cacheMag) {
+ float data[channels()][mag];
+ float* fp[channels()];
+ for (unsigned i = 0; i < channels(); ++i)
+ fp[i] = &data[i][0];
+ sf_seek(sfUI, pos, SEEK_SET);
+ {
+ int srcChannels = channels();
+ int dstChannels = sfinfo.channels;
+ float** dst = fp;
+ float buffer[mag * dstChannels];
+ size_t rn = sf_readf_float(sfUI, buffer, mag);
+ float* src = buffer;
+
+ if (srcChannels == dstChannels) {
+ for (size_t i = 0; i < rn; ++i) {
+ for (int ch = 0; ch < srcChannels; ++ch)
+ *(dst[ch]+i) = *src++;
+ }
+ }
+ else if ((srcChannels == 1) && (dstChannels == 2)) {
+ // stereo to mono
+ for (size_t i = 0; i < rn; ++i)
+ *(dst[0] + i) = src[i + i] + src[i + i + 1];
+ }
+ else if ((srcChannels == 2) && (dstChannels == 1)) {
+ // mono to stereo
+ for (size_t i = 0; i < rn; ++i) {
+ float data = *src++;
+ *(dst[0]+i) = data;
+ *(dst[1]+i) = data;
+ }
+ }
+ }
+
+ for (unsigned ch = 0; ch < channels(); ++ch) {
+ s[ch].peak = 0;
+ float rms = 0.0;
+ for (int i = 0; i < mag; i++) {
+ float fd = data[ch][i];
+ rms += fd;
+ int idata = int(fd * 255.0);
+ if (idata < 0)
+ idata = -idata;
+ if (s[ch].peak < idata)
+ s[ch].peak = idata;
+ }
+ s[ch].rms = 0; // TODO rms / mag;
+ }
+ }
+ else {
+ mag /= cacheMag;
+ int rest = csize - (pos/cacheMag);
+ int end = mag;
+ if (rest < mag)
+ end = rest;
+
+ for (unsigned ch = 0; ch < channels(); ++ch) {
+ int rms = 0;
+ int off = pos/cacheMag;
+ for (int offset = off; offset < off+end; offset++) {
+ rms += cache[ch][offset].rms;
+ if (s[ch].peak < cache[ch][offset].peak)
+ s[ch].peak = cache[ch][offset].peak;
+ }
+ s[ch].rms = rms / mag;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// openWrite
+//---------------------------------------------------------
+
+bool SndFile::openWrite()
+ {
+ if (openFlag) {
+ printf("SndFile:: alread open\n");
+ return false;
+ }
+ QString p = _finfo.filePath();
+ sfRT = sf_open(p.toLatin1().data(), SFM_RDWR, &sfinfo);
+ sfUI = 0;
+ if (sfRT) {
+ openFlag = true;
+ writeFlag = true;
+ QString cacheName = _finfo.absolutePath() +
+ QString("/") + _finfo.baseName() + QString(".wca");
+ readCache(cacheName, true);
+ }
+ return sfRT == 0;
+ }
+
+//---------------------------------------------------------
+// close
+//---------------------------------------------------------
+
+void SndFile::close()
+ {
+ if (!openFlag) {
+ printf("SndFile:: alread closed\n");
+ return;
+ }
+ sf_close(sfRT);
+ if (sfUI)
+ sf_close(sfUI);
+ openFlag = false;
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void SndFile::remove()
+ {
+ if (openFlag)
+ close();
+ QString cacheName = _finfo.absolutePath() + QString("/") + _finfo.baseName() + QString(".wca");
+ // QFile::remove(_finfo.filePath());
+ // QFile::remove(cacheName);
+ // DEBUG:
+ QFile::rename(_finfo.filePath(), _finfo.filePath() + ".del");
+ QFile::rename(cacheName, cacheName + ".del");
+ }
+
+//---------------------------------------------------------
+// samples
+//---------------------------------------------------------
+
+unsigned SndFile::samples() const
+ {
+ return sfinfo.frames;
+ }
+
+//---------------------------------------------------------
+// channels
+//---------------------------------------------------------
+
+unsigned SndFile::channels() const
+ {
+ return sfinfo.channels;
+ }
+
+//---------------------------------------------------------
+// samplerate
+//---------------------------------------------------------
+
+unsigned SndFile::samplerate() const
+ {
+ return sfinfo.samplerate;
+ }
+
+//---------------------------------------------------------
+// format
+//---------------------------------------------------------
+
+unsigned SndFile::format() const
+ {
+ return sfinfo.format;
+ }
+
+//---------------------------------------------------------
+// setFormat
+//---------------------------------------------------------
+
+void SndFile::setFormat(int fmt, int ch, int rate)
+ {
+ sfinfo.samplerate = rate;
+ sfinfo.channels = ch;
+ sfinfo.format = fmt;
+ sfinfo.seekable = true;
+ sfinfo.frames = 0;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+size_t SndFile::read(int srcChannels, float** dst, size_t n)
+ {
+ float buffer[n * sfinfo.channels];
+ size_t rn = sf_readf_float(sfRT, buffer, n);
+
+ float* src = buffer;
+ int dstChannels = sfinfo.channels;
+
+ if (srcChannels == dstChannels) {
+ for (size_t i = 0; i < rn; ++i) {
+ for (int ch = 0; ch < srcChannels; ++ch)
+ *(dst[ch]+i) = *src++;
+ }
+ }
+ else if ((srcChannels == 1) && (dstChannels == 2)) {
+ // stereo to mono
+ for (size_t i = 0; i < rn; ++i)
+ *(dst[0] + i) = src[i + i] + src[i + i + 1];
+ }
+ else if ((srcChannels == 2) && (dstChannels == 1)) {
+ // mono to stereo
+ for (size_t i = 0; i < rn; ++i) {
+ float data = *src++;
+ *(dst[0]+i) = data;
+ *(dst[1]+i) = data;
+ }
+ }
+ else {
+ printf("SndFile:read channel mismatch %d -> %d\n",
+ srcChannels, dstChannels);
+ }
+ return rn;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+size_t SndFile::write(int srcChannels, float** src, size_t n)
+ {
+ int dstChannels = sfinfo.channels;
+ float buffer[n * dstChannels];
+ float* dst = buffer;
+
+ if (srcChannels == dstChannels) {
+ for (size_t i = 0; i < n; ++i) {
+ for (int ch = 0; ch < dstChannels; ++ch)
+ *dst++ = *(src[ch]+i);
+ }
+ }
+ else if ((srcChannels == 1) && (dstChannels == 2)) {
+ // mono to stereo
+ for (size_t i = 0; i < n; ++i) {
+ float data = *(src[0]+i);
+ *dst++ = data;
+ *dst++ = data;
+ }
+ }
+ else if ((srcChannels == 2) && (dstChannels == 1)) {
+ // stereo to mono
+ for (size_t i = 0; i < n; ++i)
+ *dst++ = *(src[0]+i) + *(src[1]+i);
+ }
+ else {
+ printf("SndFile:write channel mismatch %d -> %d\n",
+ srcChannels, dstChannels);
+ return 0;
+ }
+ return sf_writef_float(sfRT, buffer, n) ;
+ }
+
+//---------------------------------------------------------
+// seek
+//---------------------------------------------------------
+
+off_t SndFile::seek(off_t frames)
+ {
+ return sf_seek(sfRT, frames, SEEK_SET);
+ }
+
+//---------------------------------------------------------
+// strerror
+//---------------------------------------------------------
+
+QString SndFile::strerror() const
+ {
+ char buffer[128];
+ buffer[0] = 0;
+ sf_error_str(sfRT, buffer, 128);
+ return QString(buffer);
+ }
+
+//---------------------------------------------------------
+// getWave
+//---------------------------------------------------------
+
+SndFile* SndFile::getWave(const QString& inName, bool writeFlag)
+ {
+ QString name = song->absoluteProjectPath() + "/" + inName;
+
+ SndFile* f = sndFiles.value(name);
+// printf("SndFile::getWave: %p writeFlag %d %s %s\n", f, writeFlag, inName.toLatin1().data(), name.toLatin1().data());
+ if (f == 0) {
+ if (!QFile::exists(name)) {
+ fprintf(stderr, "wave file <%s> not found\n",
+ name.toLatin1().data());
+ return 0;
+ }
+ f = new SndFile(name);
+ bool error;
+ if (writeFlag)
+ error = f->openWrite();
+ else
+ error = f->openRead();
+ if (error) {
+ fprintf(stderr, "open wave file(%s) for %s failed: %s\n",
+ name.toLatin1().data(),
+ writeFlag ? "writing" : "reading",
+ f->strerror().toLatin1().data());
+ delete f;
+ f = 0;
+ }
+ }
+ else {
+ if (writeFlag && ! f->isWritable()) {
+ if (f->isOpen())
+ f->close();
+ f->openWrite();
+ }
+ }
+ return f;
+ }
+
+//---------------------------------------------------------
+// applyUndoFile
+//---------------------------------------------------------
+
+void SndFile::applyUndoFile(const QString& original, const QString& tmpfile, unsigned startframe, unsigned endframe)
+ {
+ // This one is called on both undo and redo of a wavfile
+ // For redo to be called, undo must have been called first, and we don't store both the original data and the modified data in separate
+ // files. Thus, each time this function is called the data in the "original"-file will be written to the tmpfile, after the data
+ // from the tmpfile has been applied.
+ //
+ // F.ex. if mute has been made on part of a wavfile, the unmuted data is stored in the tmpfile when
+ // the undo operation occurs. The unmuted data is then written back to the original file, and the mute data will be
+ // put in the tmpfile, and when redo is eventually called the data is switched again (causing the muted data to be written to the "original"
+ // file. The data is merely switched.
+
+ //printf("Applying undofile: orig=%s tmpfile=%s startframe=%d endframe=%d\n", original.toLatin1().data(), tmpfile.toLatin1().data(), startframe, endframe);
+ SndFile* orig = sndFiles.value(original);
+ SndFile tmp = SndFile(tmpfile);
+ if (!orig) {
+ printf("Internal error: could not find original file: %s in filelist - Aborting\n", original.toLatin1().data());
+ return;
+ }
+
+ if (!orig->isOpen()) {
+ if (orig->openRead()) {
+ printf("Cannot open original file %s for reading - cannot undo! Aborting\n", original.toLatin1().data());
+ return;
+ }
+ }
+
+ if (!tmp.isOpen()) {
+ if (tmp.openRead()) {
+ printf("Could not open temporary file %s for writing - cannot undo! Aborting\n", tmpfile.toLatin1().data());
+ return;
+ }
+ }
+
+ audio->msgIdle(true);
+ tmp.setFormat(orig->format(), orig->channels(), orig->samplerate());
+
+ // Read data in original file to memory before applying tmpfile to original
+ unsigned file_channels = orig->channels();
+ unsigned tmpdatalen = endframe - startframe;
+ float* data2beoverwritten[file_channels];
+
+ for (unsigned i=0; i<file_channels; i++) {
+ data2beoverwritten[i] = new float[tmpdatalen];
+ }
+ orig->seek(startframe);
+ orig->read(file_channels, data2beoverwritten, tmpdatalen);
+
+ orig->close();
+
+ // Read data from temporary file to memory
+ float* tmpfiledata[file_channels];
+ for (unsigned i=0; i<file_channels; i++) {
+ tmpfiledata[i] = new float[tmpdatalen];
+ }
+ tmp.seek(0);
+ tmp.read(file_channels, tmpfiledata, tmpdatalen);
+ tmp.close();
+
+ // Write temporary data to original file:
+ if (orig->openWrite()) {
+ printf("Cannot open orig for write - aborting.\n");
+ return;
+ }
+
+ orig->seek(startframe);
+ orig->write(file_channels, tmpfiledata, tmpdatalen);
+
+ // Delete dataholder for temporary file
+ for (unsigned i=0; i<file_channels; i++) {
+ delete[] tmpfiledata[i];
+ }
+
+ // Write the overwritten data to the tmpfile
+ if (tmp.openWrite()) {
+ printf("Cannot open tmpfile for writing - redo operation of this file won't be possible. Aborting.\n");
+ audio->msgIdle(false);
+ return;
+ }
+ tmp.seek(0);
+ tmp.write(file_channels, data2beoverwritten, tmpdatalen);
+ tmp.close();
+
+ // Delete dataholder for replaced original file
+ for (unsigned i=0; i<file_channels; i++) {
+ delete[] data2beoverwritten[i];
+ }
+
+ orig->close();
+ orig->openRead();
+ orig->update();
+ audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// importAudio
+//---------------------------------------------------------
+
+void MusE::importWave()
+ {
+ Track* track = arranger->curTrack();
+ if (track == 0 || track->type() != Track::WAVE) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("to import a audio file you have first to select"
+ "a wave track"));
+ return;
+ }
+ QStringList pattern;
+ const char** p = audioFilePattern;
+ while (*p)
+ pattern << *p++;
+ QString fn = getOpenFileName(lastWavePath, pattern, this,
+ tr("Import Wave File"));
+ if (!fn.isEmpty()) {
+ QFileInfo qf(fn);
+ lastWavePath = qf.path();
+ importWave(fn);
+ }
+ }
+
+//---------------------------------------------------------
+// importWave
+//---------------------------------------------------------
+
+bool MusE::importWave(const QString& name)
+ {
+ return importWaveToTrack(name, (WaveTrack*)(arranger->curTrack()),
+ song->cPos());
+ }
+
+//---------------------------------------------------------
+// importWaveToTrack
+//---------------------------------------------------------
+
+bool MusE::importWaveToTrack(const QString& wave, Track* track, const Pos& pos)
+ {
+ if (!copyWaveFileToProject(wave))
+ return true;
+ QFileInfo srcInfo(wave);
+ SndFile* f = SndFile::getWave(srcInfo.fileName(), false);
+
+ if (f == 0) {
+ printf("import audio file failed\n");
+ return true;
+ }
+ int samples = f->samples();
+ track->setChannels(f->channels());
+
+ Part* part = new Part((WaveTrack *)track);
+ part->ref();
+ part->setType(AL::FRAMES);
+ part->setTick(pos.tick());
+ part->setLenFrame(samples);
+
+ Event event(Wave);
+ SndFileR sf(f);
+ event.setSndFile(sf);
+ event.setSpos(0);
+ event.setLenFrame(samples);
+ part->addEvent(event);
+
+ part->setName(srcInfo.baseName());
+ song->cmdAddPart(part);
+ unsigned endTick = part->tick() + part->lenTick();
+ if (song->len() < endTick)
+ song->setLen(endTick);
+ return false;
+ }
+
+//---------------------------------------------------------
+// cmdChangeWave
+// called from GUI context
+//---------------------------------------------------------
+
+void Song::cmdChangeWave(QString original, QString tmpfile, unsigned sx, unsigned ex)
+ {
+ char* original_charstr = new char[original.length() + 1];
+ char* tmpfile_charstr = new char[tmpfile.length() + 1];
+ strcpy(original_charstr, original.toLatin1().data());
+ strcpy(tmpfile_charstr, tmpfile.toLatin1().data());
+ song->undoOp(UndoOp::ModifyClip, original_charstr, tmpfile_charstr, sx, ex);
+ }
+
+//---------------------------------------------------------
+// SndFileR
+//---------------------------------------------------------
+
+SndFileR::SndFileR(SndFile* _sf)
+ {
+ sf = _sf;
+ if (sf)
+ (sf->refCount)++;
+ }
+
+SndFileR::SndFileR(const SndFileR& ed)
+ {
+ sf = ed.sf;
+ if (sf)
+ (sf->refCount)++;
+ }
+
+//---------------------------------------------------------
+// operator=
+//---------------------------------------------------------
+
+SndFileR& SndFileR::operator=(const SndFileR& ed)
+ {
+ if (sf == ed.sf)
+ return *this;
+ if (sf && --(sf->refCount) == 0)
+ delete sf;
+ sf = ed.sf;
+ if (sf)
+ (sf->refCount)++;
+ return *this;
+ }
+
+//---------------------------------------------------------
+// ~SndFileR
+//---------------------------------------------------------
+
+SndFileR::~SndFileR()
+ {
+ if (sf && --(sf->refCount) <= 0)
+ delete sf;
+ }
+
+//---------------------------------------------------------
+// createRecFile
+// create soundfile for recording
+//---------------------------------------------------------
+
+SndFile* SndFile::createRecFile(int channels)
+ {
+ QString fileName("%1/rec%2.wav");
+ QFileInfo fi;
+ do {
+ fi.setFile(fileName.arg(song->absoluteProjectPath()).arg(recFileNumber));
+ ++recFileNumber;
+ } while (fi.exists());
+ SndFile* recFile = new SndFile(fi.absoluteFilePath());
+ recFile->setFormat(SF_FORMAT_WAV | SF_FORMAT_FLOAT, channels,
+ AL::sampleRate);
+ createdFiles.append(recFile);
+ return recFile;
+ }
+
+//---------------------------------------------------------
+// cleanupRecFiles
+// remove all record files which are not referenced
+// any more
+// this is called on exit
+//---------------------------------------------------------
+
+void SndFile::cleanupRecFiles(bool removeAll)
+ {
+ QList<SndFile*>* fl;
+ QList<SndFile*> removeFiles;
+
+ if (removeAll)
+ fl = &createdFiles;
+ else {
+ foreach (SndFile* s, createdFiles) {
+ bool remove = true;
+ WaveTrackList* wt = song->waves();
+ for (iWaveTrack iwt = wt->begin(); iwt != wt->end(); ++iwt) {
+ WaveTrack* t = *iwt;
+ PartList* parts = t->parts();
+ for (iPart ip = parts->begin(); ip != parts->end(); ++ip) {
+ Part* part = ip->second;
+ EventList* events = part->events();
+ for (iEvent ie = events->begin(); ie != events->end(); ++ie) {
+ if (ie->second.sndFile() == s) {
+ remove = false;
+ break;
+ }
+ }
+ }
+ if (t->recFile() && t->recFile()->samples() == 0) {
+ t->recFile()->remove();
+ }
+ }
+ if (remove)
+ removeFiles.append(s);
+ }
+ fl = &removeFiles;
+ }
+ foreach (SndFile* sf, *fl) {
+ printf("cleanup rec file <%s>\n", sf->finfo()->absoluteFilePath().toLatin1().data());
+ sf->remove();
+ }
+ createdFiles.clear();
+ }
+
+//---------------------------------------------------------
+// updateRecFiles
+// this is called on "save"
+// remove all saved wave files from list of potentially
+// to delete files
+//---------------------------------------------------------
+
+void SndFile::updateRecFiles()
+ {
+ QList<SndFile*> removeFiles;
+
+ foreach (SndFile* s, createdFiles) {
+ bool remove = true;
+ WaveTrackList* wt = song->waves();
+ for (iWaveTrack iwt = wt->begin(); iwt != wt->end(); ++iwt) {
+ WaveTrack* t = *iwt;
+ PartList* parts = t->parts();
+ for (iPart ip = parts->begin(); ip != parts->end(); ++ip) {
+ Part* part = ip->second;
+ EventList* events = part->events();
+ for (iEvent ie = events->begin(); ie != events->end(); ++ie) {
+ if (ie->second.sndFile() == s) {
+ remove = false;
+ break;
+ }
+ }
+ if (!remove)
+ break;
+ }
+ if (t->recFile() && t->recFile()->samples() == 0) {
+ t->recFile()->remove();
+ }
+ if (!remove)
+ break;
+ }
+ if (remove)
+ removeFiles.append(s);
+ }
+ createdFiles = removeFiles;
+ }
+
diff --git a/muse_qt4_evolution/muse/wave.h b/muse_qt4_evolution/muse/wave.h
new file mode 100644
index 00000000..42054f87
--- /dev/null
+++ b/muse_qt4_evolution/muse/wave.h
@@ -0,0 +1,162 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __WAVE_H__
+#define __WAVE_H__
+
+#include <sndfile.h>
+
+//---------------------------------------------------------
+// SampleV
+// peak file value
+//---------------------------------------------------------
+
+struct SampleV {
+ unsigned char peak;
+ unsigned char rms;
+ };
+
+class SndFile;
+
+class SndFileList : public QHash<QString, SndFile*> {
+ public:
+ SndFile* search(const QString& name) { return (*this)[name]; }
+ };
+
+//---------------------------------------------------------
+// SndFile
+//---------------------------------------------------------
+
+class SndFile {
+ static QHash<QString, SndFile*> sndFiles;
+ static QList<SndFile*> createdFiles;
+ static int recFileNumber;
+
+ QFileInfo _finfo;
+ SNDFILE* sfRT; // used by rt process (prefetch)
+ SNDFILE* sfUI; // used by ui process
+ SF_INFO sfinfo;
+ SampleV** cache;
+ int csize; // frames in cache
+
+ void readCache(const QString& path, bool progress);
+ void writeCache(const QString& path);
+
+ bool openFlag;
+ bool writeFlag;
+
+ protected:
+ int refCount;
+
+ public:
+ SndFile(const QString& name);
+ ~SndFile();
+
+ static void applyUndoFile(const QString& original, const QString& tmpfile, unsigned sx, unsigned ex);
+
+ bool openRead(); // return true on error
+ bool openWrite(); // return true on error
+ void close();
+ void remove();
+
+ bool isOpen() const { return openFlag; }
+ bool isWritable() const { return writeFlag; }
+ void update();
+
+ QFileInfo* finfo() { return &_finfo; }
+
+ unsigned samples() const;
+ unsigned channels() const;
+ unsigned samplerate() const;
+ unsigned format() const;
+ int sampleBits() const;
+ void setFormat(int fmt, int ch, int rate);
+
+ size_t read(int channel, float**, size_t);
+ size_t write(int channel, float**, size_t);
+
+ off_t seek(off_t frames);
+ void read(SampleV* s, int mag, unsigned pos);
+ QString strerror() const;
+
+ static SndFile* createRecFile(int);
+ static void cleanupRecFiles(bool);
+ static void updateRecFiles();
+ static SndFile* search(const QString& name);
+ static SndFile* getWave(const QString& inName, bool writeFlag);
+
+ friend class SndFileR;
+ };
+
+//---------------------------------------------------------
+// SndFileR
+// SndFile with reference count
+//---------------------------------------------------------
+
+class SndFileR {
+ SndFile* sf;
+
+ public:
+ SndFileR() { sf = 0; }
+ SndFileR(SndFile* _sf);
+ SndFileR(const SndFileR& ed);
+ SndFileR& operator=(const SndFileR& ed);
+ bool operator==(const SndFileR& c) const { return sf == c.sf; }
+ bool operator==(SndFile* c) const { return sf == c; }
+ ~SndFileR();
+ int getRefCount() const { return sf->refCount; }
+ bool isNull() const { return sf == 0; }
+
+ bool openRead() { return sf->openRead(); }
+ bool openWrite() { return sf->openWrite(); }
+ void close() { sf->close(); }
+ void remove() { sf->remove(); }
+
+ bool isOpen() const { return sf->isOpen(); }
+ bool isWritable() const { return sf->isWritable(); }
+ void update() { sf->update(); }
+ QFileInfo* finfo() { return sf->finfo(); }
+ const QFileInfo* finfo() const { return sf->finfo(); }
+
+ unsigned samples() const { return sf->samples(); }
+ unsigned channels() const { return sf->channels(); }
+ unsigned samplerate() const { return sf->samplerate(); }
+ unsigned format() const { return sf->format(); }
+ int sampleBits() const { return sf->sampleBits(); }
+ void setFormat(int fmt, int ch, int rate) {
+ sf->setFormat(fmt, ch, rate);
+ }
+ size_t read(int channel, float** f, size_t n) {
+ return sf->read(channel, f, n);
+ }
+ size_t write(int channel, float** f, size_t n) {
+ return sf->write(channel, f, n);
+ }
+ off_t seek(off_t frames) {
+ return sf->seek(frames);
+ }
+ void read(SampleV* s, int mag, unsigned pos) {
+ sf->read(s, mag, pos);
+ }
+ QString strerror() const { return sf->strerror(); }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/waveedit/CMakeLists.txt b/muse_qt4_evolution/muse/waveedit/CMakeLists.txt
new file mode 100644
index 00000000..69ff19e3
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveedit/CMakeLists.txt
@@ -0,0 +1,34 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( waveedit_mocs
+ waveedit.h
+ waveview.h
+ )
+
+add_library ( waveedit STATIC
+ ${waveedit_mocs}
+ waveedit.cpp
+ waveview.cpp
+ )
+
+set_target_properties( waveedit
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
diff --git a/muse_qt4_evolution/muse/waveedit/waveedit.cpp b/muse_qt4_evolution/muse/waveedit/waveedit.cpp
new file mode 100644
index 00000000..3bfbbe40
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveedit/waveedit.cpp
@@ -0,0 +1,289 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2000-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "waveedit.h"
+#include "waveview.h"
+#include "song.h"
+#include "awl/poslabel.h"
+#include "esettings.h"
+#include "al/tempo.h"
+#include "icons.h"
+#include "shortcuts.h"
+#include "wave.h"
+#include "part.h"
+#include "muse.h"
+
+int WaveEdit::initWidth = WaveEdit::INIT_WIDTH;
+int WaveEdit::initHeight = WaveEdit::INIT_HEIGHT;
+
+//---------------------------------------------------------
+// WaveEdit
+//---------------------------------------------------------
+
+WaveEdit::WaveEdit(PartList* pl, bool init)
+ : Editor()
+ {
+ _parts = pl;
+ selPart = 0;
+
+ //---------Pulldown Menu----------------------------
+ QMenuBar* mb = menuBar();
+ QAction* a;
+
+ QMenu* menuFile = mb->addMenu(tr("&File"));
+ QMenu* menuEdit = mb->addMenu(tr("&Edit"));
+ menuFunctions = mb->addMenu(tr("Func&tions"));
+
+ menuGain = menuFunctions->addMenu(tr("&Gain"));
+ a = menuGain->addAction(tr("200%"));
+ a->setData("gain200");
+ a = menuGain->addAction(tr("150%"));
+ a->setData("gain150");
+ a = menuGain->addAction(tr("75%"));
+ a->setData("gain75");
+ a = menuGain->addAction(tr("50%"));
+ a->setData("gain50");
+ a = menuGain->addAction(tr("25%"));
+ a->setData("gain25");
+ a = menuGain->addAction(tr("Other"));
+ a->setData("gain_free");
+ a = menuFunctions->addSeparator();
+
+ a = menuEdit->addAction(tr("Edit in E&xternal Editor"));
+ a->setData("exit_external");
+ a = menuFunctions->addAction(tr("Mute Selection"));
+ a->setData("mute");
+ a = menuFunctions->addAction(tr("Normalize Selection"));
+ a->setData("normalize");
+ a = menuFunctions->addAction(tr("Fade In Selection"));
+ a->setData("fade_in");
+ a = menuFunctions->addAction(tr("Fade Out Selection"));
+ a->setData("fade_out");
+ a = menuFunctions->addAction(tr("Reverse Selection"));
+ a->setData("reverse");
+
+ select = menuEdit->addMenu(QIcon(*selectIcon), tr("Select"));
+ select->addAction(getAction("sel_all", this));
+ select->addAction(getAction("sel_none", this));
+
+ connect(menuFunctions, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(menuFile, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(select, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(menuGain, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+ connect(menuEdit, SIGNAL(triggered(QAction*)), SLOT(cmd(QAction*)));
+
+ //---------ToolBar----------------------------------
+ tools = addToolBar(tr("waveedit-tools"));
+ tools->addAction(undoAction);
+ tools->addAction(redoAction);
+
+ const int waveeditTools = PointerTool | PencilTool
+ | RubberTool | DrawTool;
+ EditToolBar* tools2 = new EditToolBar(this, waveeditTools);
+ addToolBar(tools2);
+
+ //--------------------------------------------------
+ // Transport Bar
+ QToolBar* transport = addToolBar(tr("Transport"));
+ muse->setupTransportToolbar(transport);
+
+ //--------------------------------------------------
+ // ToolBar: Solo Cursor1 Cursor2
+
+ addToolBarBreak();
+ tb1 = addToolBar(tr("pianoroll-tools"));
+ solo = tb1->addAction(tr("Solo"));
+ solo->setCheckable(true);
+ connect(solo, SIGNAL(toggled(bool)), SLOT(soloChanged(bool)));
+
+ tb1->addWidget(new QLabel(tr("Cursor")));
+ pos1 = new PosLabel;
+ pos2 = new PosLabel;
+ pos2->setSmpte(true);
+ tb1->addWidget(pos1);
+ tb1->addWidget(pos2);
+
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+// if (!parts()->empty()) { // Roughly match total size of part
+// Part* firstPart = parts()->begin()->second;
+// xscale = 0 - firstPart->lenFrame()/_widthInit;
+// }
+
+ view = new WaveView(this);
+ view->setRaster(0);
+ view->setFollow(INIT_FOLLOW);
+
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), view, SLOT(setLocatorPos(int,const AL::Pos&,bool)));
+ view->setLocatorPos(0, song->cpos(), true);
+ view->setLocatorPos(1, song->lpos(), false);
+ view->setLocatorPos(2, song->rpos(), false);
+// connect(view, SIGNAL(cursorPos(unsigned)), SIGNAL(setTime(unsigned)));
+ connect(view, SIGNAL(posChanged(int,const AL::Pos&)), song, SLOT(setPos(int,const AL::Pos&)));
+
+ setCentralWidget(view);
+ view->setCornerWidget(new QSizeGrip(view));
+ setWindowTitle(view->getCaption());
+
+ Pos p1(0, AL::FRAMES), p2(0, AL::FRAMES);
+ view->range(p1, p2);
+ p2 += AL::sigmap.ticksMeasure(p2.tick()); // show one more measure
+ view->setTimeRange(p1, p2);
+
+ connect(view, SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ connect(tools2, SIGNAL(toolChanged(int)), view, SLOT(setTool(int)));
+
+// view->selectFirst();
+ configChanged();
+ if (init)
+ ; // initFromPart();
+ else {
+ resize(initWidth, initHeight);
+ }
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void WaveEdit::configChanged()
+ {
+// view->setBg(config.waveEditBackgroundColor);
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void WaveEdit::setTime(unsigned samplepos)
+ {
+// printf("setTime %d %x\n", samplepos, samplepos);
+ unsigned tick = AL::tempomap.frame2tick(samplepos);
+ pos1->setValue(tick, true);
+ pos2->setValue(tick, true);
+// time->setPos(3, tick, false);
+ }
+
+//---------------------------------------------------------
+// ~WaveEdit
+//---------------------------------------------------------
+
+WaveEdit::~WaveEdit()
+ {
+// undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void WaveEdit::cmd(QAction* a)
+ {
+ view->cmd(a->data().toString());
+ }
+
+//---------------------------------------------------------
+// soloChanged
+// signal from "song"
+//---------------------------------------------------------
+
+void WaveEdit::soloChanged(SNode*/* s*/)
+ {
+ Part* part = parts()->begin()->second;
+ solo->setChecked(part->track()->solo());
+ }
+
+//---------------------------------------------------------
+// soloChanged
+// signal from solo button
+//---------------------------------------------------------
+
+void WaveEdit::soloChanged(bool flag)
+ {
+ Part* part = parts()->begin()->second;
+ song->setSolo(part->track(), flag);
+ }
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void WaveEdit::keyPressEvent(QKeyEvent* event)
+ {
+ int key = event->key();
+ if (key == Qt::Key_Escape) {
+ close();
+ return;
+ }
+ else {
+ event->ignore();
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void WaveEdit::read(QDomNode node)
+ {
+ for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ QString tag(e.tagName());
+ if (tag == "CtrlEdit") {
+ int id = e.attribute("id","0").toInt();
+ int h = e.attribute("h","50").toInt();
+ view->addController(id, h);
+ }
+ else
+ AL::readProperties(this, node);
+ }
+ view->layout1();
+ }
+
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void WaveEdit::write(Xml& xml) const
+ {
+ for (ciPart p = _parts->begin(); p != _parts->end(); ++p) {
+ Part* part = p->second;
+ Track* track = part->track();
+ int trkIdx = song->tracks()->indexOf(track);
+ int partIdx = track->parts()->index(part);
+ xml.stag("part");
+ xml.put(QString("%1:%2").arg(trkIdx).arg(partIdx));
+ xml.etag("part");
+ }
+ xml.stag(metaObject()->className());
+ xml.writeProperties(this);
+ const CtrlEditList* el = view->getCtrlEditors();
+ for (ciCtrlEdit i = el->begin(); i != el->end(); ++i) {
+ xml.tagE(QString("CtrlEdit h=\"%1\" id=\"%2\"")
+ .arg((*i)->height()).arg((*i)->ctrl()->id()));
+ }
+ xml.etag(metaObject()->className());
+ }
+
+
diff --git a/muse_qt4_evolution/muse/waveedit/waveedit.h b/muse_qt4_evolution/muse/waveedit/waveedit.h
new file mode 100644
index 00000000..f861587d
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveedit/waveedit.h
@@ -0,0 +1,88 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __WAVE_EDIT_H__
+#define __WAVE_EDIT_H__
+
+#include "midiedit/midieditor.h"
+
+class PartList;
+class WaveView;
+class ScrollScale;
+class SNode;
+
+namespace Awl {
+ class PosLabel;
+ };
+using Awl::PosLabel;
+
+
+//---------------------------------------------------------
+// WaveEdit
+//---------------------------------------------------------
+
+class WaveEdit : public Editor {
+ Q_OBJECT
+
+ PartList* _parts;
+ Part* selPart;
+
+ WaveView* view;
+ QToolBar* tools;
+ QToolBar* tb1;
+ QAction* solo;
+ PosLabel* pos1;
+ PosLabel* pos2;
+
+ static int _widthInit, _heightInit;
+
+ virtual void keyPressEvent(QKeyEvent*);
+
+ QMenu* menuFunctions, *select, *menuGain;
+
+ private slots:
+ void cmd(QAction*);
+ void setTime(unsigned t);
+ void soloChanged(SNode* s);
+ void soloChanged(bool flag);
+
+ public slots:
+ void configChanged();
+
+ public:
+ WaveEdit(PartList*, bool);
+ ~WaveEdit();
+ PartList* parts() const { return _parts; }
+ void read(QDomNode node);
+ void write(Xml& xml) const;
+
+ enum { CMD_MUTE=0, CMD_NORMALIZE, CMD_FADE_IN, CMD_FADE_OUT, CMD_REVERSE,
+ CMD_GAIN_FREE, CMD_GAIN_200, CMD_GAIN_150, CMD_GAIN_75, CMD_GAIN_50, CMD_GAIN_25,
+ CMD_EDIT_EXTERNAL,
+ CMD_SELECT_ALL, CMD_SELECT_NONE };
+ static int initWidth, initHeight;
+ static const int INIT_WIDTH = 650;
+ static const int INIT_HEIGHT = 450;
+ };
+
+static const bool INIT_FOLLOW = false;
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/waveedit/waveview.cpp b/muse_qt4_evolution/muse/waveedit/waveview.cpp
new file mode 100644
index 00000000..eb5a744d
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveedit/waveview.cpp
@@ -0,0 +1,1124 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <sys/wait.h>
+
+#include "waveview.h"
+#include "song.h"
+#include "midiedit/midieditor.h"
+#include "al/tempo.h"
+#include "event.h"
+#include "globals.h"
+#include "waveedit.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "part.h"
+#include "widgets/simplebutton.h"
+#include "utils.h"
+
+static const int partLabelHeight = 13;
+
+//---------------------------------------------------------
+// WaveView
+//---------------------------------------------------------
+
+WaveView::WaveView(WaveEdit* pr)
+ : TimeCanvas(TIME_CANVAS_WAVEEDIT)
+ {
+ setMarkerList(song->marker());
+ curSplitter = -1;
+ dragSplitter = false;
+ selectionStart = 0;
+ selectionStop = 0;
+ lastGainvalue = 100;
+ editor = pr;
+
+ curPart = editor->parts()->begin()->second;
+ setMouseTracking(true);
+
+ songChanged(SC_TRACK_INSERTED);
+ }
+
+//---------------------------------------------------------
+// drawWavePart
+// y0 - start of track
+// th - track height
+// from - x pixel coordinate start drawing
+// to - x end drawing
+//
+// redraw area is QRect(from, y0, to-from, th)
+//---------------------------------------------------------
+
+void WaveView::drawWavePart(QPainter& p, Part* wp, int y0, int th, int from, int to)
+ {
+ int h = th/2;
+ int y = y0 + 1 + h;
+ int cc = th % 2 ? 0 : 1;
+
+ const Pos pos(pix2pos(from));
+ EventList* el = wp->events();
+ for (iEvent e = el->begin(); e != el->end(); ++e) {
+ Event event = e->second;
+ SndFileR f = event.sndFile();
+ if (f.isNull())
+ continue;
+ unsigned channels = f.channels();
+ if (channels == 0) {
+ printf("drawWavePart: channels==0! %s\n", f.finfo()->fileName().toLatin1().data());
+ continue;
+ }
+
+ int x1 = pos2pix(event.pos() + *wp);
+ int x2 = pos2pix(event.end() + *wp);
+ int w = x2 - x1;
+ if (w == 0)
+ continue;
+
+ int samples = event.lenFrame();
+ int xScale = (samples + w/2)/w;
+ int frame = pos.frame() - wp->frame()
+ - event.pos().frame() + event.spos();
+
+ if (h < 20) {
+ //
+ // combine multi channels into one waveform
+ //
+ for (int i = from; i < to; i++) {
+ SampleV sa[channels];
+ f.read(sa, xScale, frame);
+ frame += xScale;
+ int peak = 0;
+ int rms = 0;
+ for (unsigned k = 0; k < channels; ++k) {
+ if (sa[k].peak > peak)
+ peak = sa[k].peak;
+ rms += sa[k].rms;
+ }
+ rms /= channels;
+ peak = (peak * (th-2)) >> 9;
+ rms = (rms * (th-2)) >> 9;
+ p.setPen(QColor(Qt::darkGray));
+ p.drawLine(i, y - peak - cc, i, y + peak);
+ p.setPen(QColor(Qt::black));
+ p.drawLine(i, y - rms - cc, i, y + rms);
+ }
+ }
+ else {
+ //
+ // multi channel display
+ //
+ h = th / (channels * 2);
+ int cc = th % (channels * 2) ? 0 : 1;
+ for (int i = from; i < to; i++) {
+ y = y0 + 1 + h;
+ SampleV sa[channels];
+ f.read(sa, xScale, frame);
+ frame += xScale;
+ for (unsigned k = 0; k < channels; ++k) {
+ int peak = (sa[k].peak * (h - 1)) >> 8;
+ int rms = (sa[k].rms * (h - 1)) >> 8;
+ p.setPen(QColor(Qt::darkGray));
+ p.drawLine(i, y - peak - cc, i, y + peak);
+ p.setPen(QColor(Qt::black));
+ p.drawLine(i, y - rms - cc, i, y + rms);
+ y += 2 * h;
+ }
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void WaveView::paint(QPainter& p, QRect r)
+ {
+ QFont f = font();
+ f.setPointSize(8);
+ p.setFont(f);
+
+ int from = r.x();
+ int to = from + r.width();
+
+ PartList* pl = editor->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+ int x1 = pos2pix(*part);
+ int x2 = pos2pix(part->end());
+ int len = x2 - x1;
+
+ if (x2 <= from)
+ continue;
+ if (x1 > to)
+ break;
+
+ int h = rCanvasA.height();
+ int xx1 = x1;
+ if (xx1 < from)
+ xx1 = from;
+ int xx2 = x2;
+ if (xx2 > to)
+ xx2 = to;
+ drawWavePart(p, part, 0, h, xx1, xx2);
+ int yy = h - partLabelHeight;
+ p.drawText(x1 + 3, yy, len - 6,
+ partLabelHeight-1, Qt::AlignVCenter | Qt::AlignLeft,
+ part->name());
+ }
+ }
+
+//---------------------------------------------------------
+// getCaption
+//---------------------------------------------------------
+
+QString WaveView::getCaption() const
+ {
+ QString caption("MusE: WaveEditor");
+ if (curPart)
+ return caption + QString(": ") + curPart->name();
+ return caption;
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void WaveView::songChanged(int flags)
+ {
+ if (flags & ~SC_SELECTION) {
+ startFrame = MAXINT;
+ endFrame = 0;
+ for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {
+ Part* part = p->second;
+ int sframe = part->frame();
+ int eframe = sframe + part->lenFrame();
+ if (sframe < startFrame)
+ startFrame = sframe;
+ if (eframe > endFrame)
+ endFrame = eframe;
+ }
+ }
+// if (flags & SC_CLIP_MODIFIED) {
+// update(); // Boring, but the only thing possible to do
+// }
+ setPart(*curPart, curPart->end());
+ widget()->update();
+ }
+
+//---------------------------------------------------------
+// mousePress
+//---------------------------------------------------------
+
+void WaveView::mousePress(QMouseEvent* me)
+ {
+ QPoint pos(me->pos());
+
+ if (rCanvasA.contains(pos)) {
+// mousePressCanvasA(me);
+ return;
+ }
+ if (curSplitter != -1) {
+ dragSplitter = true;
+ splitterY = pos.y();
+ return;
+ }
+
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mousePress(pos - r.topLeft(), me);
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void WaveView::mouseRelease(QMouseEvent* me)
+ {
+ if (dragSplitter) {
+ dragSplitter = false;
+ return;
+ }
+ QPoint pos(me->pos());
+ if (rCanvasA.contains(pos)) {
+ // mouseReleaseCanvasA(me);
+ return;
+ }
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mouseRelease();
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMove
+//---------------------------------------------------------
+
+void WaveView::mouseMove(QPoint pos)
+ {
+ if (dragSplitter) {
+ int deltaY = pos.y() - splitterY;
+
+ iCtrlEdit i = ctrlEditList.begin();
+ int y = 0;
+ if (curSplitter > 0) {
+ int k = 0;
+ CtrlEdit* c = 0;
+ for (; i != ctrlEditList.end(); ++i, ++k) {
+ c = *i;
+ y += c->height();
+ if ((k+1) == curSplitter)
+ break;
+ }
+ if (i == ctrlEditList.end()) {
+ printf("unexpected edit list end, curSplitter %d\n", curSplitter);
+ return;
+ }
+ if (c->height() + deltaY < splitWidth)
+ deltaY = splitWidth - c->height();
+ ++i;
+ int rest = 0;
+ for (iCtrlEdit ii = i; ii != ctrlEditList.end(); ++ii)
+ rest += (*ii)->cheight();
+ if (rest < deltaY)
+ deltaY = rest;
+ c->setHeight(c->height() + deltaY);
+ layoutPanelB(c);
+ y += deltaY;
+ }
+ //
+ // layout rest, add deltaY vertical
+ //
+ int rest = 0;
+ for (iCtrlEdit ii = i; ii != ctrlEditList.end(); ++ii) {
+ CtrlEdit* c = *ii;
+ rest += c->cheight();
+ }
+ if (rest < deltaY)
+ deltaY = rest;
+ rest = deltaY;
+ for (; i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ int d = c->cheight();
+ if (d > deltaY)
+ d = deltaY;
+ c->setHeight(c->height() - d);
+ c->y = y;
+ layoutPanelB(c);
+ y += c->height();
+ deltaY -= d;
+ if (deltaY == 0)
+ break;
+ }
+ if (i != ctrlEditList.end())
+ ++i;
+ for (; i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ y += c->height();
+ }
+ if (curSplitter == 0)
+ resizeController(ctrlHeight - rest);
+ else
+ widget()->update(rPanelB | rCanvasB);
+ splitterY = pos.y();
+ updatePartControllerList();
+ return;
+ }
+ if (rCanvasA.contains(pos)) {
+ // mouseMoveCanvasA(pos - rCanvasA.topLeft());
+ return;
+ }
+ if (button == 0) {
+ if (rPanelB.contains(pos) || rCanvasB.contains(pos)) {
+ int y = pos.y() - rPanelB.y();
+ int k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ CtrlEdit* c = *i;
+ if (y >= c->y && y < (c->y + splitWidth)) {
+ curSplitter = k;
+ setCursor();
+ return;
+ }
+ int ypos = y - c->y - splitWidth;
+ if (ypos >= 0)
+ emit yChanged(c->pixel2val(ypos));
+ }
+ }
+ if (curSplitter != -1) {
+ curSplitter = -1;
+ setCursor();
+ }
+ return;
+ }
+ if (rCanvasB.contains(pos)) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ QRect r(rCanvasB.x(), rCanvasB.y() + c->y + splitWidth,
+ rCanvasB.width(), c->cheight());
+ if (r.contains(pos)) {
+ c->mouseMove(pos - r.topLeft());
+ break;
+ }
+ }
+ }
+
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void WaveView::cmd(const QString&)
+ {
+#if 0
+ int modifyoperation = -1;
+ double paramA = 0.0;
+
+ switch(n) {
+ case WaveEdit::CMD_SELECT_ALL:
+ if (!editor->parts()->empty()) {
+ iPart iBeg = editor->parts()->begin();
+ iPart iEnd = editor->parts()->end();
+ iEnd--;
+ Part* beg = iBeg->second;
+ Part* end = iEnd->second;
+ selectionStart = beg->frame();
+ selectionStop = end->frame() + end->lenFrame();
+ update();
+ }
+ break;
+
+ case WaveEdit::CMD_EDIT_EXTERNAL:
+ modifyoperation = EDIT_EXTERNAL;
+ break;
+
+ case WaveEdit::CMD_SELECT_NONE:
+ selectionStart = selectionStop = 0;
+ update();
+ break;
+
+ case WaveEdit::CMD_MUTE:
+ modifyoperation = MUTE;
+ break;
+
+ case WaveEdit::CMD_NORMALIZE:
+ modifyoperation = NORMALIZE;
+ break;
+
+ case WaveEdit::CMD_FADE_IN:
+ modifyoperation = FADE_IN;
+ break;
+
+ case WaveEdit::CMD_FADE_OUT:
+ modifyoperation = FADE_OUT;
+ break;
+
+ case WaveEdit::CMD_REVERSE:
+ modifyoperation = REVERSE;
+ break;
+
+ case WaveEdit::CMD_GAIN_FREE: {
+ /*
+ EditGain* editGain = new EditGain(this, lastGainvalue);
+ if (editGain->exec() == QDialog::Accepted) {
+ lastGainvalue = editGain->getGain();
+ modifyoperation = GAIN;
+ paramA = (double)lastGainvalue / 100.0;
+ }
+ delete editGain;
+ */
+ printf("Free gain - todo!\n");
+ }
+ break;
+
+ case WaveEdit::CMD_GAIN_200:
+ modifyoperation = GAIN;
+ paramA = 2.0;
+ break;
+
+ case WaveEdit::CMD_GAIN_150:
+ modifyoperation = GAIN;
+ paramA = 1.5;
+ break;
+
+ case WaveEdit::CMD_GAIN_75:
+ modifyoperation = GAIN;
+ paramA = 0.75;
+ break;
+
+ case WaveEdit::CMD_GAIN_50:
+ modifyoperation = GAIN;
+ paramA = 0.5;
+ break;
+
+ case WaveEdit::CMD_GAIN_25:
+ modifyoperation = GAIN;
+ paramA = 0.25;
+ break;
+
+ default:
+ break;
+ }
+
+ if (modifyoperation != -1) {
+ if (selectionStart == selectionStop) {
+ printf("No selection. Ignoring\n"); //@!TODO: Disable menu options when no selection
+ return;
+ }
+ modifySelection(modifyoperation, selectionStart, selectionStop, paramA);
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// getSelection
+//---------------------------------------------------------
+
+WaveSelectionList WaveView::getSelection(unsigned /*startpos*/, unsigned /*stoppos*/)
+ {
+ WaveSelectionList selection;
+#if 0
+ for (iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip) {
+ Part* wp = ip->second;
+ unsigned part_offset = wp->frame();
+ EventList* el = wp->events();
+
+ for (iEvent e = el->begin(); e != el->end(); ++e) {
+ Event event = e->second;
+ if (event.empty())
+ continue;
+ SndFileR file = event.sndFile();
+ if (file.isNull())
+ continue;
+
+ unsigned event_offset = event.frame() + part_offset;
+ unsigned event_startpos = event.spos();
+ unsigned event_length = event.lenFrame() + event.spos();
+ unsigned event_end = event_offset + event_length;
+ //printf("startpos=%d stoppos=%d part_offset=%d event_offset=%d event_startpos=%d event_length=%d event_end=%d\n", startpos, stoppos, part_offset, event_offset, event_startpos, event_length, event_end);
+
+ if (!(event_end <= startpos || event_offset >= stoppos)) {
+ int tmp_sx = startpos - event_offset + event_startpos;
+ int tmp_ex = stoppos - event_offset + event_startpos;
+ unsigned sx;
+ unsigned ex;
+
+ tmp_sx < (int)event_startpos ? sx = event_startpos : sx = tmp_sx;
+ tmp_ex > (int)event_length ? ex = event_length : ex = tmp_ex;
+
+ //printf("Event data affected: %d->%d filename:%s\n", sx, ex, file.name().toLatin1().data());
+ WaveEventSelection s;
+ s.file = file;
+ s.startframe = sx;
+ s.endframe = ex;
+ selection.push_back(s);
+ }
+ }
+ }
+#endif
+ return selection;
+ }
+
+//---------------------------------------------------------
+// modifySelection
+//---------------------------------------------------------
+
+void WaveView::modifySelection(int /*operation*/, unsigned /*startpos*/, unsigned /*stoppos*/, double /*paramA*/)
+ {
+#if 0
+ song->startUndo();
+
+ WaveSelectionList selection = getSelection(startpos, stoppos);
+ for (iWaveSelection i = selection.begin(); i != selection.end(); i++) {
+ WaveEventSelection w = *i;
+ SndFileR& file = w.file;
+ unsigned sx = w.startframe;
+ unsigned ex = w.endframe;
+ unsigned file_channels = file.channels();
+
+ QString tmpWavFile = QString::null;
+ if (!getUniqueTmpfileName(tmpWavFile)) {
+ break;
+ }
+
+ audio->msgIdle(true); // Not good with playback during operations
+ SndFile tmpFile(tmpWavFile);
+ tmpFile.setFormat(file.format(), file_channels, file.samplerate());
+ if (tmpFile.openWrite()) {
+ audio->msgIdle(false);
+ printf("Could not open temporary file...\n");
+ break;
+ }
+
+ //
+ // Write out data that will be changed to temp file
+ //
+ unsigned tmpdatalen = ex - sx;
+ off_t tmpdataoffset = sx;
+ float* tmpdata[file_channels];
+
+ for (unsigned i=0; i<file_channels; i++) {
+ tmpdata[i] = new float[tmpdatalen];
+ }
+
+ file.seek(tmpdataoffset, 0);
+ file.read(file_channels, tmpdata, tmpdatalen);
+ file.close();
+ tmpFile.write(file_channels, tmpdata, tmpdatalen);
+ tmpFile.close();
+
+ switch(operation)
+ {
+ case MUTE:
+ muteSelection(file_channels, tmpdata, tmpdatalen);
+ break;
+
+ case NORMALIZE:
+ normalizeSelection(file_channels, tmpdata, tmpdatalen);
+ break;
+
+ case FADE_IN:
+ fadeInSelection(file_channels, tmpdata, tmpdatalen);
+ break;
+
+ case FADE_OUT:
+ fadeOutSelection(file_channels, tmpdata, tmpdatalen);
+ break;
+
+ case REVERSE:
+ reverseSelection(file_channels, tmpdata, tmpdatalen);
+ break;
+
+ case GAIN:
+ applyGain(file_channels, tmpdata, tmpdatalen, paramA);
+ break;
+
+ case EDIT_EXTERNAL:
+ editExternal(file.format(), file.samplerate(), file_channels, tmpdata, tmpdatalen);
+ break;
+
+ default:
+ printf("Error: Default state reached in modifySelection\n");
+ break;
+
+ }
+
+ file.openWrite();
+ file.seek(tmpdataoffset, 0);
+ file.write(file_channels, tmpdata, tmpdatalen);
+ file.update();
+ file.close();
+ file.openRead();
+
+ for (unsigned i=0; i<file_channels; i++) {
+ delete[] tmpdata[i];
+ }
+
+ // Undo handling
+ song->cmdChangeWave(file.dirPath() + "/" + file.name(), tmpWavFile, sx, ex);
+ audio->msgIdle(false); // Not good with playback during operations
+ }
+ song->endUndo(SC_CLIP_MODIFIED);
+ update();
+#endif
+ }
+
+//---------------------------------------------------------
+// muteSelection
+//---------------------------------------------------------
+
+void WaveView::muteSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)
+ {
+#if 0
+ // Set everything to 0!
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ data[i][j] = 0;
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// normalizeSelection
+//---------------------------------------------------------
+
+void WaveView::normalizeSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)
+ {
+#if 0
+ float loudest = 0.0;
+
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ if (data[i][j] > loudest)
+ loudest = data[i][j];
+ }
+ }
+
+ double scale = 0.99 / (double)loudest;
+
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ data[i][j] = (float) ((double)data[i][j] * scale);
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// fadeInSelection
+//---------------------------------------------------------
+
+void WaveView::fadeInSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)
+ {
+#if 0
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ double scale = (double) j / (double)length ;
+ data[i][j] = (float) ((double)data[i][j] * scale);
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// fadeOutSelection
+//---------------------------------------------------------
+
+void WaveView::fadeOutSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)
+ {
+#if 0
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ double scale = (double) (length - j) / (double)length ;
+ data[i][j] = (float) ((double)data[i][j] * scale);
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// reverseSelection
+//---------------------------------------------------------
+
+void WaveView::reverseSelection(unsigned channels, float** data, unsigned length)
+ {
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length/2; j++) {
+ float tmpl = data[i][j];
+ float tmpr = data[i][length - j];
+ data[i][j] = tmpr;
+ data[i][length - j] = tmpl;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// applyGain
+//---------------------------------------------------------
+
+void WaveView::applyGain(unsigned channels, float** data, unsigned length, double gain)
+ {
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ data[i][j] = (float) ((double)data[i][j] * gain);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// editExternal
+//---------------------------------------------------------
+
+void WaveView::editExternal(unsigned file_format, unsigned file_samplerate, unsigned file_channels, float** tmpdata, unsigned tmpdatalen)
+ {
+ // Create yet another tmp-file
+ QString exttmpFileName;
+ if (!getUniqueTmpfileName(exttmpFileName)) {
+ printf("Could not create temp file - aborting...\n");
+ return;
+ }
+
+ SndFile exttmpFile(exttmpFileName);
+ exttmpFile.setFormat(file_format, file_channels, file_samplerate);
+ if (exttmpFile.openWrite()) {
+ printf("Could not open temporary file...\n");
+ return;
+ }
+ // Write out change-data to this file:
+ exttmpFile.write(file_channels, tmpdata, tmpdatalen);
+ exttmpFile.close();
+
+ // Forkaborkabork
+ int pid = vfork();
+ if (pid == 0) {
+ if (execlp(config.externalWavEditor.toLatin1().data(), "", exttmpFileName.toLatin1().data(), NULL) == -1) {
+ perror("Failed to launch external editor");
+ // Get out of here
+ exit(-1);
+ }
+ //@!TODO: Handle unsuccessful attempts
+ }
+ else if (pid == -1) {
+ perror("fork failed");
+ }
+ else {
+ waitpid(pid, 0, 0);
+ if (exttmpFile.openRead()) {
+ printf("Could not reopen temporary file again!\n");
+ }
+ else {
+ // Re-read file again
+ exttmpFile.seek(0);
+ size_t sz = exttmpFile.read(file_channels, tmpdata, tmpdatalen);
+ if (sz != tmpdatalen) {
+ // File must have been shrunken - not good. Alert user.
+ QMessageBox::critical(this, tr("MusE - file size changed"),
+ tr("When editing in external editor - you should not change the filesize\nsince it must fit the selected region.\n\nMissing data is muted"));
+ for (unsigned i=0; i<file_channels; i++) {
+ for (unsigned j=sz; j<tmpdatalen; j++) {
+ tmpdata[i][j] = 0;
+ }
+ }
+ }
+ }
+ QDir dir = exttmpFile.finfo()->absolutePath();
+ dir.remove(exttmpFileName);
+ dir.remove(exttmpFile.finfo()->baseName() + ".wca");
+ }
+ }
+
+//---------------------------------------------------------
+// getUniqueTmpfileName
+//---------------------------------------------------------
+
+bool WaveView::getUniqueTmpfileName(QString& newFilename)
+ {
+ // Check if tmp-directory exists under project path
+ QString tmpWavDir = song->absoluteProjectPath() + "/tmp_musewav"; //!@TODO: Don't hardcode like this
+ QFileInfo tmpdirfi(tmpWavDir);
+ if (!tmpdirfi.isDir()) {
+ // Try to create a tmpdir
+ QDir projdir(song->absoluteProjectPath());
+ if (!projdir.mkdir("tmp_musewav")) {
+ printf("Could not create undo dir!\n");
+ return false;
+ }
+ }
+
+
+ tmpdirfi.setFile(tmpWavDir);
+
+ if (!tmpdirfi.isWritable()) {
+ printf("Temp directory is not writable - aborting\n");
+ return false;
+ }
+
+ QDir tmpdir = tmpdirfi.dir();
+
+ // Find a new filename
+ for (int i=0; i<10000; i++) {
+ QString filename = "muse_tmp";
+ filename.append(QString::number(i));
+ filename.append(".wav");
+
+ if (!tmpdir.exists(tmpWavDir +"/" + filename)) {
+ newFilename = tmpWavDir + "/" + filename;
+ return true;
+ }
+ }
+
+ printf("Could not find a suitable tmpfilename (more than 10000 tmpfiles in tmpdir - clean up!\n");
+ return false;
+ }
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void WaveView::range(AL::Pos& s, AL::Pos& e) const
+ {
+ s.setFrame(startFrame);
+ e.setFrame(endFrame);
+ }
+
+//---------------------------------------------------------
+// layout
+//---------------------------------------------------------
+
+void WaveView::layout()
+ {
+ int n = ctrlEditList.size();
+ if (n == 0)
+ return;
+ if (ctrlHeight == 0) {
+ int wh = widget()->height();
+ resizeController(wh < 120 ? wh / 2 : 100);
+ }
+ // check, if layout is ok already; this happens after
+ // song load
+ int h = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ h += c->height();
+ }
+ if (h == ctrlHeight) {
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i)
+ layoutPanelB(*i);
+ return;
+ }
+ int y = 0;
+ int sch = ctrlHeight / n;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ c->setHeight(sch);
+ layoutPanelB(c);
+ y += sch;
+ }
+ }
+
+//---------------------------------------------------------
+// layout1
+//---------------------------------------------------------
+
+void WaveView::layout1()
+ {
+ int n = ctrlEditList.size();
+ if (n == 0)
+ return;
+ int y = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ c->y = y;
+ y += c->height();
+ }
+ resizeController(y);
+ }
+
+//---------------------------------------------------------
+// layoutPanelB
+//---------------------------------------------------------
+
+void WaveView::layoutPanelB(CtrlEdit* c)
+ {
+ int y = c->y;
+ int h = c->height();
+ int bx = rPanelB.x() + rPanelB.width() - 23;
+ int by = rPanelB.y() + y + h - 19;
+ c->minus->setGeometry(bx, by, 18, 18);
+ bx = rPanelB.x() + 1;
+ by = rPanelB.y() + y + 5;
+ c->sel->setGeometry(bx, by, rPanelB.width() - 5, 18);
+ }
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+void WaveView::addController()
+ {
+ int n = ctrlEditList.size();
+ CtrlEdit* ce = new CtrlEdit(widget(), this, curPart->track());
+ ce->setHeight(50);
+ ctrlEditList.push_back(ce);
+
+ ce->minus->defaultAction()->setData(n);
+ connect(ce->minus, SIGNAL(triggered(QAction*)), SLOT(removeController(QAction*)));
+ ce->minus->show();
+ ce->sel->show();
+
+ layout();
+ widget()->update();
+ updatePartControllerList();
+ }
+
+void WaveView::addController(int id, int h)
+ {
+ ctrlHeight += h;
+ int n = ctrlEditList.size();
+
+ CtrlEdit* ce = new CtrlEdit(widget(), this, curPart->track());
+ ce->setHeight(h);
+ ce->setCtrl(id);
+ ctrlEditList.push_back(ce);
+
+ ce->minus->defaultAction()->setData(n);
+ connect(ce->minus, SIGNAL(triggered(QAction*)), SLOT(removeController(QAction*)));
+ }
+
+//---------------------------------------------------------
+// removeController
+//---------------------------------------------------------
+
+void WaveView::removeController(QAction* a)
+ {
+ int id = a->data().toInt();
+
+ int k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ if (k == id) {
+ CtrlEdit* c = *i;
+ delete c;
+ ctrlEditList.erase(i);
+ break;
+ }
+ }
+ k = 0;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i, ++k) {
+ CtrlEdit* c = *i;
+ c->minus->defaultAction()->setData(k);
+ }
+
+ if (ctrlEditList.empty())
+ resizeController(0);
+ else
+ layout();
+ widget()->update();
+ updatePartControllerList();
+ }
+
+//---------------------------------------------------------
+// updatePartControllerList
+//---------------------------------------------------------
+
+void WaveView::updatePartControllerList()
+ {
+ if (curPart == 0)
+ return;
+ CtrlCanvasList* cl = curPart->getCtrlCanvasList();
+ cl->clear();
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlCanvas cc;
+ cc.ctrlId = (*i)->ctrlId;
+ cc.height = (*i)->height();
+ cl->push_back(cc);
+ }
+ }
+
+//---------------------------------------------------------
+// paintControllerCanvas
+// r(0, 0) is PanelB topLeft()
+//---------------------------------------------------------
+
+void WaveView::paintControllerCanvas(QPainter& p, QRect r)
+ {
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+
+ int xx2 = rCanvasB.width();
+ if (xx2 >= x2)
+ x2 = xx2 - 2;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ int y = c->y;
+ paintHLine(p, x1, x2, y);
+ p.setPen(lineColor[0]);
+ p.drawLine(xx2-1, 1, xx2-1, splitWidth-2);
+
+ QRect rc(0, y + splitWidth, rCanvasB.width(), c->cheight());
+ QPoint pt(rc.topLeft());
+ rc &= r;
+ if (!rc.isEmpty()) {
+ p.translate(pt);
+ c->paint(p, rc.translated(-pt));
+ p.translate(-pt);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paintControllerPanel
+// panelB
+//---------------------------------------------------------
+
+void WaveView::paintControllerPanel(QPainter& p, QRect r)
+ {
+ p.fillRect(r, QColor(0xe0, 0xe0, 0xe0));
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+
+ paintVLine(p, r.y() + splitWidth, r.y() + r.height(),
+ rPanelB.x() + rPanelB.width());
+
+ if (x1 == 0)
+ x1 = 1;
+ for (iCtrlEdit i = ctrlEditList.begin(); i != ctrlEditList.end(); ++i) {
+ CtrlEdit* c = *i;
+ paintHLine(p, x1, x2, c->y);
+ p.setPen(lineColor[0]);
+ p.drawLine(0, 1, 0, splitWidth-2);
+ }
+ }
+
+//---------------------------------------------------------
+// setCursor
+//---------------------------------------------------------
+
+void WaveView::setCursor()
+ {
+ if (curSplitter != -1) {
+ widget()->setCursor(Qt::SplitVCursor);
+ return;
+ }
+ TimeCanvas::setCursor();
+ }
+
+//---------------------------------------------------------
+// enterB
+//---------------------------------------------------------
+
+void WaveView::enterB()
+ {
+ if ((button == 0) && curSplitter != -1) {
+ curSplitter = -1;
+ setCursor();
+ }
+ }
+
+//---------------------------------------------------------
+// leaveB
+//---------------------------------------------------------
+
+void WaveView::leaveB()
+ {
+ if ((button == 0) && (curSplitter != -1)) {
+ curSplitter = -1;
+ setCursor();
+ }
+ }
+
+
diff --git a/muse_qt4_evolution/muse/waveedit/waveview.h b/muse_qt4_evolution/muse/waveedit/waveview.h
new file mode 100644
index 00000000..462ce26d
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveedit/waveview.h
@@ -0,0 +1,127 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef WAVE_VIEW_H
+#define WAVE_VIEW_H
+
+#include "al/pos.h"
+#include "wave.h"
+#include "awl/tcanvas.h"
+#include "ctrl/ctrledit.h"
+
+class PartList;
+class QPainter;
+class QRect;
+class Part;
+class WaveEdit;
+class GraphMidiEditor;
+
+//---------------------------------------------------------
+// WaveEventSelection
+//---------------------------------------------------------
+
+struct WaveEventSelection {
+ SndFileR file;
+ unsigned startframe;
+ unsigned endframe;
+ };
+
+typedef std::list<WaveEventSelection> WaveSelectionList;
+typedef std::list<WaveEventSelection>::iterator iWaveSelection;
+
+//---------------------------------------------------------
+// WaveView
+//---------------------------------------------------------
+
+class WaveView : public TimeCanvas {
+ Q_OBJECT
+
+ WaveEdit* editor;
+ CtrlEditList ctrlEditList;
+
+ int startFrame;
+ int endFrame;
+
+ Part* curPart;
+
+ enum { NORMAL, DRAG } mode;
+ enum { MUTE = 0, NORMALIZE, FADE_IN, FADE_OUT, REVERSE, GAIN, EDIT_EXTERNAL }; //!< Modify operations
+
+ unsigned selectionStart, selectionStop, dragstartx;
+ int curSplitter; // -1 mouse not in splitter
+ bool dragSplitter;
+ int splitterY;
+
+ virtual void paint(QPainter&, QRect);
+ virtual void mousePress(QMouseEvent*);
+ virtual void mouseMove(QPoint);
+ virtual void enterB();
+ virtual void leaveB();
+ virtual void mouseRelease(QMouseEvent*);
+
+ bool getUniqueTmpfileName(QString& newFilename); //!< Generates unique filename for temporary SndFile
+ WaveSelectionList getSelection(unsigned startpos, unsigned stoppos);
+
+ int lastGainvalue; //!< Stores the last used gainvalue when specifiying gain value in the editgain dialog
+ void modifySelection(int operation, unsigned startpos, unsigned stoppos, double paramA); //!< Modifies selection
+
+ void muteSelection(unsigned channels, float** data, unsigned length); //!< Mutes selection
+ void normalizeSelection(unsigned channels, float** data, unsigned length); //!< Normalizes selection
+ void fadeInSelection(unsigned channels, float** data, unsigned length); //!< Linear fade in of selection
+ void fadeOutSelection(unsigned channels, float** data, unsigned length); //!< Linear fade out of selection
+ void reverseSelection(unsigned channels, float** data, unsigned length); //!< Reverse selection
+ void applyGain(unsigned channels, float** data, unsigned length, double gain); //!< Apply gain to selection
+
+ void editExternal(unsigned file_format, unsigned file_samplerate, unsigned channels, float** data, unsigned length);
+
+ //void applyLadspa(unsigned channels, float** data, unsigned length); //!< Apply LADSPA plugin on selection
+
+ void drawWavePart(QPainter& p, Part* wp, int y0, int th, int from, int to);
+ virtual void addController();
+ virtual void layout();
+ void layoutPanelB(CtrlEdit*);
+ void updatePartControllerList();
+
+ virtual void paintControllerCanvas(QPainter&, QRect);
+ virtual void paintControllerPanel(QPainter&, QRect);
+
+ void setCursor();
+
+ private slots:
+ void removeController(QAction*);
+
+ public slots:
+ void songChanged(int type);
+
+ signals:
+ void yChanged(int); // emitted from mouseMove in controller canvas
+
+ public:
+ WaveView(WaveEdit*);
+ QString getCaption() const;
+ void cmd(const QString&);
+ void range(AL::Pos&, AL::Pos&) const;
+ void addController(int id, int h);
+ void layout1();
+ const CtrlEditList* getCtrlEditors() const { return &ctrlEditList; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/waveevent.cpp b/muse_qt4_evolution/muse/waveevent.cpp
new file mode 100644
index 00000000..4aff6a47
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveevent.cpp
@@ -0,0 +1,137 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+#include "event.h"
+#include "waveevent.h"
+#include "al/xml.h"
+#include "wave.h"
+
+//---------------------------------------------------------
+// WaveEvent
+//---------------------------------------------------------
+
+WaveEventBase::WaveEventBase(EventType t)
+ : EventBase(t)
+ {
+ deleted = false;
+ }
+
+//---------------------------------------------------------
+// WaveEvent::mid
+//---------------------------------------------------------
+
+EventBase* WaveEventBase::mid(unsigned b, unsigned e)
+ {
+ WaveEventBase* ev = new WaveEventBase(*this);
+
+ int offset = b - frame();
+ unsigned end = endFrame();
+ if (e < end)
+ end = e;
+
+ int len = end - b;
+ ev->setFrame(b);
+ ev->setLenFrame(len);
+ ev->setSpos(spos() + offset);
+ return ev;
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void WaveEventBase::dump(int n) const
+ {
+ EventBase::dump(n);
+ }
+
+//---------------------------------------------------------
+// WaveEventBase::read
+//---------------------------------------------------------
+
+void WaveEventBase::read(QDomNode node)
+ {
+ node = node.firstChild();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "poslen")
+ PosLen::read(node);
+ else if (e.tagName() == "frame")
+ _spos = e.text().toInt();
+ else if (e.tagName() == "file") {
+ SndFile* wf = SndFile::getWave(e.text(), false);
+ if (wf)
+ f = SndFileR(wf);
+ }
+ else
+ printf("MusE:WaveEventBase: unknown tag %s\n", e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ Pos::setType(AL::FRAMES);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void WaveEventBase::write(Xml& xml, const Pos& offset) const
+ {
+ if (f.isNull())
+ return;
+ xml.stag("event");
+ PosLen wpos(*this);
+ wpos += offset;
+// if (offset)
+// wpos.setTick(wpos.tick() + offset);
+ wpos.write(xml, "poslen");
+ xml.tag("frame", _spos); // offset in wave file
+ xml.tag("file", f.finfo()->fileName());
+ xml.etag("event");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void WaveEventBase::read(unsigned offset, float** buffer, int channel, int n)
+ {
+ if (f.isNull())
+ return;
+ f.seek(offset + _spos);
+ f.read(channel, buffer, n);
+ }
+
+//---------------------------------------------------------
+// WaveEventBase::operator==
+//---------------------------------------------------------
+
+bool WaveEventBase::operator==(const EventBase& ev) const {
+
+ const WaveEventBase* pev = dynamic_cast<const WaveEventBase*>(&ev);
+
+ if(pev) return operator==(*pev);
+ else return false;
+}
+
+bool WaveEventBase::operator==(const WaveEventBase& /*ev*/) const {
+ //TODO
+ return false;
+}
diff --git a/muse_qt4_evolution/muse/waveevent.h b/muse_qt4_evolution/muse/waveevent.h
new file mode 100644
index 00000000..476b3a03
--- /dev/null
+++ b/muse_qt4_evolution/muse/waveevent.h
@@ -0,0 +1,61 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __WAVE_EVENT_H__
+#define __WAVE_EVENT_H__
+
+#include "eventbase.h"
+
+//---------------------------------------------------------
+// WaveEvent
+//---------------------------------------------------------
+
+class WaveEventBase : public EventBase {
+ QString _name;
+ SndFileR f;
+ int _spos; // start sample position in WaveFile
+ bool deleted;
+
+ virtual EventBase* clone() const { return new WaveEventBase(*this); }
+
+ public:
+ WaveEventBase(EventType t);
+ virtual ~WaveEventBase() {}
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&, const Pos& offset) const;
+ virtual EventBase* mid(unsigned, unsigned);
+ virtual void dump(int n = 0) const;
+
+
+ virtual const QString name() const { return _name; }
+ virtual void setName(const QString& s) { _name = s; }
+ virtual int spos() const { return _spos; }
+ virtual void setSpos(int s) { _spos = s; }
+ virtual SndFileR sndFile() const { return f; }
+ virtual void setSndFile(SndFileR& sf) { f = sf; }
+ virtual void read(unsigned offset, float** bpp, int channels, int nn);
+
+ virtual bool operator==(const EventBase&) const;
+ virtual bool operator==(const WaveEventBase&) const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/wavetrack.cpp b/muse_qt4_evolution/muse/wavetrack.cpp
new file mode 100644
index 00000000..e796c3f3
--- /dev/null
+++ b/muse_qt4_evolution/muse/wavetrack.cpp
@@ -0,0 +1,427 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "wavetrack.h"
+#include "event.h"
+#include "audio.h"
+#include "wave.h"
+#include "al/xml.h"
+#include "al/dsp.h"
+#include "song.h"
+#include "globals.h"
+#include "part.h"
+#include "audiowriteback.h"
+#include "muse.h"
+#include "audioprefetch.h"
+
+bool WaveTrack::firstWaveTrack = true;
+
+//---------------------------------------------------------
+// WaveTrack
+//---------------------------------------------------------
+
+WaveTrack::WaveTrack()
+ : AudioTrack()
+ {
+ //
+ // allocate prefetch buffer
+ //
+ float* p = new float[FIFO_BUFFER * segmentSize * MAX_CHANNELS];
+ float** pp = new float*[FIFO_BUFFER * MAX_CHANNELS];
+
+ for (int i = 0; i < FIFO_BUFFER; ++i) {
+ readBuffer[i] = pp;
+ for (int k = 0; k < MAX_CHANNELS; ++k) {
+ *pp = p;
+ p += segmentSize;
+ ++pp;
+ }
+ }
+
+ recordPart = 0; // part we are recording into
+ }
+
+//---------------------------------------------------------
+// WaveTrack
+//---------------------------------------------------------
+
+WaveTrack::~WaveTrack()
+ {
+ delete[] *readBuffer[0];
+ delete[] readBuffer[0];
+ }
+
+//---------------------------------------------------------
+// fetchData
+// called from prefetch thread
+//---------------------------------------------------------
+
+void WaveTrack::fetchData(unsigned pos, unsigned samples, int widx)
+ {
+ float** bp = readBuffer[widx];
+ for (int i = 0; i < channels(); ++i)
+ memset(bp[i], 0, samples * sizeof(float));
+
+ PartList* pl = parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* part = ip->second;
+
+ if (part->mute())
+ continue;
+ unsigned p_spos = part->frame();
+ if (pos + samples <= p_spos)
+ break;
+ unsigned p_epos = p_spos + part->lenFrame();
+ if (pos >= p_epos)
+ continue;
+
+ EventList* events = part->events();
+ for (iEvent ie = events->begin(); ie != events->end(); ++ie) {
+ Event& event = ie->second;
+
+ unsigned e_spos = event.frame() + p_spos;
+ if (pos + samples <= e_spos)
+ break;
+ unsigned nn = event.lenFrame();
+ unsigned e_epos = e_spos + nn;
+ if (pos >= e_epos)
+ continue;
+
+ int offset = e_spos - pos;
+
+ unsigned srcOffset, dstOffset;
+ if (offset > 0) {
+ nn = samples - offset;
+ srcOffset = 0;
+ dstOffset = offset;
+ }
+ else {
+ srcOffset = -offset;
+ dstOffset = 0;
+ nn -= offset;
+ if (nn > samples)
+ nn = samples;
+ }
+ if (dstOffset) {
+ float* bpp[channels()];
+ for (int i = 0; i < channels(); ++i)
+ bpp[i] = bp[i] + dstOffset;
+ event.read(srcOffset, bpp, channels(), nn);
+ }
+ else
+ event.read(srcOffset, bp, channels(), nn);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void WaveTrack::write(Xml& xml) const
+ {
+ xml.stag("wavetrack");
+ AudioTrack::writeProperties(xml);
+ const PartList* pl = parts();
+ for (ciPart p = pl->begin(); p != pl->end(); ++p)
+ p->second->write(xml);
+ xml.etag("wavetrack");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void WaveTrack::read(QDomNode node)
+ {
+ for (; !node.isNull(); node = node.nextSibling()) {
+ QDomElement e = node.toElement();
+ if (e.tagName() == "part") {
+ Part* p = newPart();
+ p->read(node, false);
+ parts()->add(p);
+ }
+ else if (AudioTrack::readProperties(node))
+ printf("MusE:WaveTrack: unknown tag %s\n", e.tagName().toLatin1().data());
+ }
+ }
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* WaveTrack::newPart(Part*p, bool clone)
+ {
+ Part* part = new Part(this);
+ if (p) {
+ if (clone)
+ part->clone(p->events());
+ else
+ part->ref();
+ part->setName(p->name());
+ part->setColorIndex(p->colorIndex());
+
+ *(AL::PosLen*)part = *(AL::PosLen*)p;
+ part->setMute(p->mute());
+ }
+ else
+ part->ref();
+ return part;
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void WaveTrack::setChannels(int n)
+ {
+ AudioTrack::setChannels(n);
+ SndFile* sf = recFile();
+ if (sf) {
+ if (sf->samples() == 0) {
+ sf->remove();
+ sf->setFormat(sf->format(), _channels,
+ sf->samplerate());
+ sf->openWrite();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// startRecording
+// gui context
+//---------------------------------------------------------
+
+void WaveTrack::startRecording()
+ {
+ AudioTrack::startRecording(); // create file
+ partCreated = false;
+ AL::Pos start = song->punchin() ? song->lPos() : song->cPos();
+
+ // search for recordPart
+ recordPart = 0;
+ for (iPart ip = parts()->begin(); ip != parts()->end(); ++ip) {
+ Part* part = ip->second;
+ unsigned partStart = part->tick();
+ unsigned partEnd = partStart + part->lenTick();
+ if (start.tick() >= partStart && start.tick() < partEnd) {
+ recordPart = part;
+ break;
+ }
+ }
+ if (recordPart == 0) {
+ //
+ // create new part for recording
+ //
+ recordPart = new Part(this);
+ recordPart->ref();
+ recordPart->setType(AL::FRAMES);
+ Pos spos(start.downSnaped(muse->raster()));
+ Pos epos(start.upSnaped(muse->raster()));
+ recordPart->setPos(spos);
+ recordPart->setLenTick(epos.tick() - spos.tick());
+ recordPart->setName(name());
+ song->addPart(recordPart);
+ partCreated = true;
+ emit partsChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// recordBeat
+// gui context
+// update current recording
+//---------------------------------------------------------
+
+void WaveTrack::recordBeat()
+ {
+ if (partCreated) {
+ int cpos = song->cpos();
+ int ptick = recordPart->tick();
+ recordPart->setLenTick(cpos - ptick);
+ song->addUpdateFlags(SC_PART_MODIFIED);
+ }
+ }
+
+//---------------------------------------------------------
+// stopRecording
+// gui context
+//---------------------------------------------------------
+
+void WaveTrack::stopRecording(const Pos& s, const Pos& e)
+ {
+ int updateFlags = 0;
+
+ while(audioWriteback->active())
+ sleep(1);
+ _recFile->update();
+
+ // create Event
+ Event event(Wave);
+ SndFileR sf(_recFile);
+ event.setSndFile(sf);
+ event.setPos(s - *recordPart);
+ event.setSpos(0);
+ event.setLenFrame(e.frame() - s.frame());
+ // recordPart->addEvent(event);
+ audio->msgAddEvent(event, recordPart, false);
+
+ _recFile = 0;
+
+ //
+ // adjust part len && song len
+ //
+ unsigned etick = e.upSnaped(muse->raster()).tick();
+ unsigned len = etick - recordPart->tick();
+
+ if (recordPart->lenTick() < len) {
+ recordPart->setLenTick(len);
+ updateFlags |= SC_PART_MODIFIED;
+ }
+
+ if (song->len() < etick)
+ song->setLen(etick);
+ song->update(updateFlags);
+ }
+
+//---------------------------------------------------------
+// canEnableRecord
+//---------------------------------------------------------
+
+bool WaveTrack::canEnableRecord() const
+ {
+ return (!noInRoute() || (this == song->bounceTrack));
+ }
+
+//---------------------------------------------------------
+// collectInputData
+//---------------------------------------------------------
+
+void WaveTrack::collectInputData()
+ {
+ bufferEmpty = false;
+ if (recordFlag() && (audio->isRecording() || !audio->isPlaying())) {
+ if (song->bounceTrack == this && audio->isPlaying()) {
+ OutputList* ol = song->outputs();
+ if (!ol->empty()) {
+//TODO AudioOutput* out = ol->front();
+ }
+ }
+ else
+ AudioTrack::collectInputData();
+ return;
+ }
+ if (!audio->isPlaying()) {
+ for (int i = 0; i < channels(); ++i)
+ memset(buffer[i], 0, sizeof(float) * segmentSize);
+ return;
+ }
+
+ if (audio->freewheel()) {
+ // when freewheeling, read data direct from file:
+ // TODO: fetchData(framePos, segmentSize, buffer);
+ }
+ else {
+ int idx = audio->curReadIndex();
+ if (idx == -1) {
+ for (int i = 0; i < channels(); ++i)
+ memset(buffer[i], 0, sizeof(float) * segmentSize);
+ }
+ else {
+ float** bpp = readBuffer[idx];
+ for (int i = 0; i < channels(); ++i)
+ AL::dsp->cpy(buffer[i], bpp[i], segmentSize);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void WaveTrack::process()
+ {
+ AudioTrack::process();
+
+ //
+ // record collected data for track
+ //
+ if (recordFlag() && audio->isRecording() && recFile()) {
+ unsigned framePos = audio->seqTime()->pos.frame();
+ if (audio->freewheel()) {
+ // write data directly to file
+ _recFile->write(channels(), buffer, framePos);
+ }
+ else {
+ if (fifo.put(channels(), segmentSize, buffer, framePos)) {
+ printf("WaveTrack(%s)::getData: fifo overrun\n",
+ name().toLatin1().data());
+ }
+ }
+ if (!_monitor) {
+ //
+ // end data processing here if monitor is not on
+ //
+ bufferEmpty = true;
+ }
+ return;
+ }
+ if (!audio->isPlaying() && !_monitor)
+ bufferEmpty = true;
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+void WaveTrack::clone(WaveTrack* t)
+ {
+ QString name;
+ for (int i = 1; ; ++i) {
+ name.sprintf("%s-%d", t->name().toLatin1().data(), i);
+ TrackList* tl = song->tracks();
+ bool found = false;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ if ((*it)->name() == name) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+ setName(name);
+
+ _recordFlag = t->_recordFlag;
+ _mute = t->_mute;
+ _solo = t->_solo;
+ _off = t->_off;
+ _monitor = t->_monitor;
+ _channels = t->_channels;
+ _locked = t->_locked;
+ _inRoutes = t->_inRoutes;
+ _outRoutes = t->_outRoutes;
+ _controller = t->_controller;
+ _autoRead = t->_autoRead;
+ _autoWrite = t->_autoWrite;
+ setPrefader(t->prefader());
+ }
+
+
diff --git a/muse_qt4_evolution/muse/wavetrack.h b/muse_qt4_evolution/muse/wavetrack.h
new file mode 100644
index 00000000..0e195ddb
--- /dev/null
+++ b/muse_qt4_evolution/muse/wavetrack.h
@@ -0,0 +1,84 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __WAVETRACK_H__
+#define __WAVETRACK_H__
+
+#include "audiotrack.h"
+
+namespace AL {
+ class Pos;
+ };
+
+class Part;
+
+//---------------------------------------------------------
+// WaveTrack
+//---------------------------------------------------------
+
+class WaveTrack : public AudioTrack {
+ Q_OBJECT
+
+ float** readBuffer[FIFO_BUFFER];
+
+ Part* recordPart; // part we are recording into
+ bool partCreated;
+
+ void getDummyInput(int, unsigned);
+
+ protected:
+ virtual void collectInputData();
+
+ public:
+ static bool firstWaveTrack;
+
+ WaveTrack();
+ ~WaveTrack();
+ virtual TrackType type() const { return WAVE; }
+
+ void clone(WaveTrack*);
+
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ virtual void read(QDomNode);
+ virtual void write(Xml&) const;
+
+ virtual void fetchData(unsigned pos, unsigned frames, int);
+
+ virtual void setChannels(int n);
+ virtual bool hasAuxSend() const { return true; }
+ bool canEnableRecord() const;
+ virtual bool canRecord() const { return true; }
+
+ virtual void startRecording();
+ void recordBeat();
+ virtual void stopRecording(const AL::Pos&, const AL::Pos&);
+ virtual void process();
+ };
+
+
+typedef QList<WaveTrack*> WaveTrackList;
+typedef WaveTrackList::iterator iWaveTrack;
+typedef WaveTrackList::const_iterator ciWaveTrack;
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/widgets/CMakeLists.txt b/muse_qt4_evolution/muse/widgets/CMakeLists.txt
new file mode 100644
index 00000000..03866a0c
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/CMakeLists.txt
@@ -0,0 +1,88 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP (widget_mocs
+ doublelabel.h
+ noteinfo.h
+ dentry.h
+ siglabel.h
+ simplebutton.h
+ tb1.h
+ tools.h
+ fontsel.h
+ ctrlcombo.h
+ filedialog.h
+ outportcombo.h splitter.h
+ quantcombo.h rastercombo.h
+ comboQuant.h bigtime.h
+ midisync.h
+ mixdowndialog.h
+ comment.h
+ shortcutconfig.h
+ shortcutcapturedialog.h
+ greendotbutton.h recordbutton.h
+ )
+
+QT4_WRAP_UI (widget_ui_headers
+ comment.ui
+ midisync.ui
+ mixdowndialog.ui
+ shortcutcapturedialog.ui
+ shortcutconfig.ui
+ )
+
+# add_custom_command(OUTPUT ui_midisync.h
+# COMMAND ${QT_UIC_EXECUTABLE}
+# ARGS -o ${CMAKE_CURRENT_BINARY_DIR}/ui_midisync.h ${CMAKE_CURRENT_SOURCE_DIR}/midisync.ui
+# DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/midisync.ui
+# )
+
+# ADD_FILE_DEPENDENCIES(moc_midisync.cxx ${CMAKE_CURRENT_BINARY_DIR}/ui_midisync.h)
+
+add_library ( widgets STATIC
+ ${widget_ui_headers}
+ ${widget_mocs}
+
+ utils.cpp
+ shortcutconfig.cpp
+ shortcutconfig.h
+ shortcutcapturedialog.cpp
+ midisync.cpp
+ comment.cpp
+ mixdowndialog.cpp
+ tools.cpp
+ doublelabel.cpp
+ noteinfo.cpp
+ dentry.cpp
+ siglabel.cpp
+ simplebutton.cpp
+ tb1.cpp
+ fontsel.cpp
+ ctrlcombo.cpp
+ filedialog.cpp
+ outportcombo.cpp splitter.cpp
+ quantcombo.cpp rastercombo.cpp
+ comboQuant.cpp bigtime.cpp
+ )
+
+set_target_properties( widgets
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ )
+
diff --git a/muse_qt4_evolution/muse/widgets/action.h b/muse_qt4_evolution/muse/widgets/action.h
new file mode 100644
index 00000000..c71ac1bb
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/action.h
@@ -0,0 +1,42 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __ACTION_H__
+#define __ACTION_H__
+
+//---------------------------------------------------------
+// Action
+//---------------------------------------------------------
+
+class Action : public QAction {
+ int _id;
+
+ public:
+ Action(QObject* parent, int i, const char* name = 0, bool toggle = false)
+ : QAction(parent, name, toggle) {
+ _id = i;
+ }
+ void setId(int i) { _id = i; }
+ int id() const { return _id; }
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/bigtime.cpp b/muse_qt4_evolution/muse/widgets/bigtime.cpp
new file mode 100644
index 00000000..3d1c7b21
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/bigtime.cpp
@@ -0,0 +1,267 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "globals.h"
+#include "bigtime.h"
+#include "song.h"
+#include "gconfig.h"
+
+#include "al/al.h"
+#include "al/sig.h"
+#include "al/tempo.h"
+
+//
+// the bigtime widget
+// display is split into several parts to avoid flickering.
+//
+
+//---------------------------------------------------------
+// BigTime
+//---------------------------------------------------------
+
+BigTime::BigTime(QWidget* parent)
+ : QWidget(parent)
+ {
+ setWindowFlags(Qt::WindowStaysOnTopHint);
+
+ barLabel = new QLabel(this);
+ beatLabel = new QLabel(this);
+ tickLabel = new QLabel(this);
+ hourLabel = new QLabel(this);
+ minLabel = new QLabel(this);
+ secLabel = new QLabel(this);
+ frameLabel = new QLabel(this);
+ sep1 = new QLabel(QString("."), this);
+ sep2 = new QLabel(QString("."), this);
+ sep3 = new QLabel(QString(":"), this);
+ sep4 = new QLabel(QString(":"), this);
+ sep5 = new QLabel(QString(":"), this);
+
+ oldbar = oldbeat = oldtick = oldhour = oldmin = oldsec = oldframe = -1;
+
+ setString(song->cPos());
+
+ configChanged();
+
+ QFont f(QString("Courier"));
+ f.setPixelSize(10);
+ setFont(f);
+ setWindowTitle(tr("MusE: Bigtime"));
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void BigTime::configChanged()
+ {
+ setBgColor(config.bigTimeBackgroundColor);
+ setFgColor(config.bigTimeForegroundColor);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void BigTime::closeEvent(QCloseEvent *ev)
+ {
+ emit closed();
+ QWidget::closeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool BigTime::setString(AL::Pos pos)
+ {
+ int bar, beat, tick;
+ pos.mbt(&bar, &beat, &tick);
+ int min, sec, hour, frame, subframe;
+ pos.msf(&min, &sec, &frame, &subframe);
+
+ hour = min / 60;
+ min %= 60;
+
+ QString s;
+
+ if(oldbar != bar) {
+ s.sprintf("%04d", bar+1);
+ barLabel->setText(s);
+ oldbar = bar;
+ }
+
+ if(oldbeat != beat) {
+ s.sprintf("%02d", beat+1);
+ beatLabel->setText(s);
+ oldbeat = beat;
+ }
+
+ if(oldtick != tick) {
+ s.sprintf("%03d", tick);
+ tickLabel->setText(s);
+ oldtick = tick;
+ }
+
+ if(oldhour != hour) {
+ s.sprintf("%02d", hour);
+ hourLabel->setText(s);
+ oldhour = hour;
+ }
+
+ if(oldmin != min) {
+ s.sprintf("%02d", min);
+ minLabel->setText(s);
+ oldmin = min;
+ }
+
+ if(oldsec != sec) {
+ s.sprintf("%02d", sec);
+ secLabel->setText(s);
+ oldsec = sec;
+ }
+
+ if(oldframe != frame) {
+ s.sprintf("%02d", frame);
+ frameLabel->setText(s);
+ oldframe = frame;
+ }
+
+ return false;
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void BigTime::setPos(int idx, AL::Pos pos, bool)
+ {
+ if (idx == 0)
+ setString(pos);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void BigTime::resizeEvent(QResizeEvent *ev)
+ {
+ QFont f = font();
+ QFontMetrics fm(f);
+ int fs = f.pixelSize();
+ int hspace = 20;
+ int tw = fm.width(QString("00:00:00:00"));
+ fs = ((ev->size().width() - hspace*2)*fs) / tw;
+
+// printf("resize BigTime %d -> %d, w %d\n", fs, nfs, ev->size().width());
+
+ // set min/max
+ if (fs < 10)
+ fs = 10;
+ else if (fs > 256)
+ fs = 256;
+ f.setPixelSize(fs);
+ setFont(f);
+
+ int digitWidth = fontMetrics().width(QString("0"));
+
+ int vspace = (ev->size().height() - (fs*2)) / 3;
+ int tickY = vspace;
+ int timeY = vspace*2 + fs;
+
+ barLabel->resize(digitWidth*4, fs);
+ beatLabel->resize(digitWidth*2, fs);
+ tickLabel->resize(digitWidth*3, fs);
+ hourLabel->resize(digitWidth*2, fs);
+ minLabel->resize(digitWidth*2, fs);
+ secLabel->resize(digitWidth*2, fs);
+ frameLabel->resize(digitWidth*2, fs);
+
+ sep1->resize(digitWidth, fs);
+ sep2->resize(digitWidth, fs);
+ sep3->resize(digitWidth, fs);
+ sep4->resize(digitWidth, fs);
+ sep5->resize(digitWidth, fs);
+
+ barLabel->move( hspace + (digitWidth*0), tickY);
+ sep1->move( hspace + (digitWidth*4), tickY);
+ beatLabel->move( hspace + (digitWidth*5), tickY);
+ sep2->move( hspace + (digitWidth*7), tickY);
+ tickLabel->move( hspace + (digitWidth*8), tickY);
+
+ hourLabel->move( hspace + (digitWidth*0), timeY);
+ sep3->move( hspace + (digitWidth*2), timeY);
+ minLabel->move( hspace + (digitWidth*3), timeY);
+ sep4->move( hspace + (digitWidth*5), timeY);
+ secLabel->move( hspace + (digitWidth*6), timeY);
+ sep5->move( hspace + (digitWidth*8), timeY);
+ frameLabel->move( hspace + (digitWidth*9), timeY);
+ }
+
+//---------------------------------------------------------
+// setForegroundColor
+//---------------------------------------------------------
+
+void BigTime::setFgColor(QColor c)
+ {
+ QPalette cg = palette();
+ cg.setColor(QPalette::Foreground, c);
+ setPalette(cg);
+
+ barLabel->setPalette(cg);
+ beatLabel->setPalette(cg);
+ tickLabel->setPalette(cg);
+ hourLabel->setPalette(cg);
+ minLabel->setPalette(cg);
+ secLabel->setPalette(cg);
+ frameLabel->setPalette(cg);
+
+ sep1->setPalette(cg);
+ sep2->setPalette(cg);
+ sep3->setPalette(cg);
+ sep4->setPalette(cg);
+ sep5->setPalette(cg);
+ }
+
+//---------------------------------------------------------
+// setBackgroundColor
+//---------------------------------------------------------
+
+void BigTime::setBgColor(QColor c)
+ {
+ QPalette cg = palette();
+ cg.setColor(QPalette::Background, c);
+ setPalette(cg);
+
+ barLabel->setPalette(cg);
+ beatLabel->setPalette(cg);
+ tickLabel->setPalette(cg);
+ hourLabel->setPalette(cg);
+ minLabel->setPalette(cg);
+ secLabel->setPalette(cg);
+ frameLabel->setPalette(cg);
+
+ sep1->setPalette(cg);
+ sep2->setPalette(cg);
+ sep3->setPalette(cg);
+ sep4->setPalette(cg);
+ sep5->setPalette(cg);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/bigtime.h b/muse_qt4_evolution/muse/widgets/bigtime.h
new file mode 100644
index 00000000..82b054bf
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/bigtime.h
@@ -0,0 +1,64 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __BIGTIME_H__
+#define __BIGTIME_H__
+
+#include "al/pos.h"
+
+class MusE;
+class AL::Pos;
+
+//---------------------------------------------------------
+// BigTime
+//---------------------------------------------------------
+
+class BigTime : public QWidget {
+ bool tickmode;
+ MusE* seq;
+ Q_OBJECT
+
+ bool setString(AL::Pos);
+
+ QLabel *barLabel, *beatLabel, *tickLabel,
+ *hourLabel, *minLabel, *secLabel, *frameLabel,
+ *sep1, *sep2, *sep3, *sep4, *sep5;
+ int oldbar, oldbeat, oldhour, oldmin, oldsec, oldframe;
+ int oldtick;
+
+ void setFgColor(QColor c);
+ void setBgColor(QColor c);
+
+ protected:
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void closeEvent(QCloseEvent*);
+
+ public slots:
+ void setPos(int, AL::Pos, bool);
+ void configChanged();
+
+ signals:
+ void closed();
+
+ public:
+ BigTime(QWidget* parent);
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/widgets/cliplisteditorbase.h b/muse_qt4_evolution/muse/widgets/cliplisteditorbase.h
new file mode 100644
index 00000000..789edac6
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/cliplisteditorbase.h
@@ -0,0 +1,138 @@
+#ifndef CLIPLISTEDITORBASE_H
+#define CLIPLISTEDITORBASE_H
+
+#include <qvariant.h>
+
+
+#include <Qt3Support/Q3GroupBox>
+#include <Qt3Support/Q3Header>
+#include <Qt3Support/Q3ListView>
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+#include "awl/posedit.h"
+#include <awl::posedit.h>
+#include <Qt3Support/Q3MimeSourceFactory>
+
+class Ui_ClipListEditorBase
+{
+public:
+ QVBoxLayout *vboxLayout;
+ Q3ListView *view;
+ Q3GroupBox *GroupBox1;
+ QHBoxLayout *hboxLayout;
+ QLabel *TextLabel1;
+ Awl::PosEdit *start;
+ QLabel *TextLabel2;
+ Awl::PosEdit *len;
+ QSpacerItem *spacerItem;
+
+ void setupUi(QWidget *ClipListEditorBase)
+ {
+ ClipListEditorBase->setObjectName(QString::fromUtf8("ClipListEditorBase"));
+ ClipListEditorBase->resize(QSize(600, 480).expandedTo(ClipListEditorBase->minimumSizeHint()));
+ vboxLayout = new QVBoxLayout(ClipListEditorBase);
+ vboxLayout->setSpacing(6);
+ vboxLayout->setMargin(11);
+ vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
+ view = new Q3ListView(ClipListEditorBase);
+ view->addColumn(QApplication::translate("ClipListEditorBase", "Name", 0, QApplication::UnicodeUTF8));
+ view->header()->setClickEnabled(true, view->header()->count() - 1);
+ view->addColumn(QApplication::translate("ClipListEditorBase", "Refs", 0, QApplication::UnicodeUTF8));
+ view->header()->setClickEnabled(true, view->header()->count() - 1);
+ view->addColumn(QApplication::translate("ClipListEditorBase", "Start", 0, QApplication::UnicodeUTF8));
+ view->header()->setClickEnabled(true, view->header()->count() - 1);
+ view->addColumn(QApplication::translate("ClipListEditorBase", "Len", 0, QApplication::UnicodeUTF8));
+ view->header()->setClickEnabled(true, view->header()->count() - 1);
+ view->addColumn(QApplication::translate("ClipListEditorBase", "Data", 0, QApplication::UnicodeUTF8));
+ view->header()->setClickEnabled(true, view->header()->count() - 1);
+ view->setObjectName(QString::fromUtf8("view"));
+ view->setAllColumnsShowFocus(true);
+ view->setRootIsDecorated(true);
+
+ vboxLayout->addWidget(view);
+
+ GroupBox1 = new Q3GroupBox(ClipListEditorBase);
+ GroupBox1->setObjectName(QString::fromUtf8("GroupBox1"));
+ GroupBox1->setColumnLayout(0, Qt::Vertical);
+ GroupBox1->layout()->setSpacing(6);
+ GroupBox1->layout()->setMargin(11);
+ hboxLayout = new QHBoxLayout(GroupBox1->layout());
+ hboxLayout->setAlignment(Qt::AlignTop);
+ hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+ hboxLayout->setMargin(11);
+ hboxLayout->setSpacing(6);
+ TextLabel1 = new QLabel(GroupBox1);
+ TextLabel1->setObjectName(QString::fromUtf8("TextLabel1"));
+
+ hboxLayout->addWidget(TextLabel1);
+
+ start = new Awl::PosEdit(GroupBox1);
+ start->setObjectName(QString::fromUtf8("start"));
+ start->setSmpte(true);
+
+ hboxLayout->addWidget(start);
+
+ TextLabel2 = new QLabel(GroupBox1);
+ TextLabel2->setObjectName(QString::fromUtf8("TextLabel2"));
+
+ hboxLayout->addWidget(TextLabel2);
+
+ len = new Awl::PosEdit(GroupBox1);
+ len->setObjectName(QString::fromUtf8("len"));
+ len->setSmpte(true);
+
+ hboxLayout->addWidget(len);
+
+ spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ hboxLayout->addItem(spacerItem);
+
+
+ vboxLayout->addWidget(GroupBox1);
+
+ retranslateUi(ClipListEditorBase);
+
+ QMetaObject::connectSlotsByName(ClipListEditorBase);
+ } // setupUi
+
+ void retranslateUi(QWidget *ClipListEditorBase)
+ {
+ ClipListEditorBase->setWindowTitle(QApplication::translate("ClipListEditorBase", "MusE: ClipList", 0, QApplication::UnicodeUTF8));
+ view->header()->setLabel(0, QApplication::translate("ClipListEditorBase", "Name", 0, QApplication::UnicodeUTF8));
+ view->header()->setLabel(1, QApplication::translate("ClipListEditorBase", "Refs", 0, QApplication::UnicodeUTF8));
+ view->header()->setLabel(2, QApplication::translate("ClipListEditorBase", "Start", 0, QApplication::UnicodeUTF8));
+ view->header()->setLabel(3, QApplication::translate("ClipListEditorBase", "Len", 0, QApplication::UnicodeUTF8));
+ view->header()->setLabel(4, QApplication::translate("ClipListEditorBase", "Data", 0, QApplication::UnicodeUTF8));
+ GroupBox1->setTitle(QApplication::translate("ClipListEditorBase", "Clip Properties", 0, QApplication::UnicodeUTF8));
+ TextLabel1->setText(QApplication::translate("ClipListEditorBase", "Pos:", 0, QApplication::UnicodeUTF8));
+ TextLabel2->setText(QApplication::translate("ClipListEditorBase", "Len:", 0, QApplication::UnicodeUTF8));
+ Q_UNUSED(ClipListEditorBase);
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class ClipListEditorBase: public Ui_ClipListEditorBase {};
+} // namespace Ui
+
+class ClipListEditorBase : public QWidget, public Ui::ClipListEditorBase
+{
+ Q_OBJECT
+
+public:
+ ClipListEditorBase(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = 0);
+ ~ClipListEditorBase();
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // CLIPLISTEDITORBASE_H
diff --git a/muse_qt4_evolution/muse/widgets/cliplisteditorbase.ui b/muse_qt4_evolution/muse/widgets/cliplisteditorbase.ui
new file mode 100644
index 00000000..0dab43be
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/cliplisteditorbase.ui
@@ -0,0 +1,146 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ClipListEditorBase</class>
+ <widget class="QWidget" name="ClipListEditorBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>480</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: ClipList</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Q3ListView" name="view" >
+ <property name="allColumnsShowFocus" >
+ <bool>true</bool>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Refs</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Start</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Len</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Data</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <widget class="Q3GroupBox" name="GroupBox1" >
+ <property name="title" >
+ <string>Clip Properties</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Pos:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::PosEdit" name="start" />
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Len:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::PosEdit" name="len" />
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Q3ListView</class>
+ <extends></extends>
+ <header>q3listview.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Q3GroupBox</class>
+ <extends></extends>
+ <header>Qt3Support/Q3GroupBox</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::PosEdit</class>
+ <extends>QWidget</extends>
+ <header>awl::posedit.h</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <includes>
+ <include location="local" >awl/posedit.h</include>
+ </includes>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/comboQuant.cpp b/muse_qt4_evolution/muse/widgets/comboQuant.cpp
new file mode 100644
index 00000000..1a95e3b6
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/comboQuant.cpp
@@ -0,0 +1,69 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "comboQuant.h"
+
+static int quantTable[] = {
+ 1, 16, 32, 64, 128, 256, 512, 1024,
+ 1, 24, 48, 96, 192, 384, 768, 1536,
+ 1, 36, 72, 144, 288, 576, 1152, 2304
+ };
+
+static const char* quantStrings[] = {
+ QT_TR_NOOP("Off"), "64T", "32T", "16T", "8T", "4T", "2T", "1T",
+ QT_TR_NOOP("Off"), "64", "32", "16", "8", "4", "2", "1",
+ QT_TR_NOOP("Off"), "64.", "32.", "16.", "8.", "4.", "2.", "1."
+ };
+
+//---------------------------------------------------------
+// ComboQuant
+//---------------------------------------------------------
+
+ComboQuant::ComboQuant(QWidget* parent)
+ : QComboBox(parent)
+ {
+ for (int i = 0; i < 24; i++)
+ addItem(tr(quantStrings[i]), i);
+ connect(this, SIGNAL(activated(int)), SLOT(activated(int)));
+ }
+
+//---------------------------------------------------------
+// activated
+//---------------------------------------------------------
+
+void ComboQuant::activated(int index)
+ {
+ emit valueChanged(quantTable[index]);
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void ComboQuant::setValue(int val)
+ {
+ for (int i = 0; i < 24; i++) {
+ if (val == quantTable[i]) {
+ setCurrentIndex(i);
+ return;
+ }
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/comboQuant.h b/muse_qt4_evolution/muse/widgets/comboQuant.h
new file mode 100644
index 00000000..de2a8d82
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/comboQuant.h
@@ -0,0 +1,43 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __COMBOQUANT_H__
+#define __COMBOQUANT_H__
+
+//---------------------------------------------------------
+// ComboQuant
+//---------------------------------------------------------
+
+class ComboQuant : public QComboBox {
+ Q_OBJECT
+
+ private slots:
+ void activated(int);
+
+ signals:
+ void valueChanged(int);
+
+ public:
+ ComboQuant(QWidget* parent = 0);
+ void setValue(int val);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/combobox.cpp b/muse_qt4_evolution/muse/widgets/combobox.cpp
new file mode 100644
index 00000000..8b6a5ea2
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/combobox.cpp
@@ -0,0 +1,81 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "combobox.h"
+
+//---------------------------------------------------------
+// ComboBox
+//---------------------------------------------------------
+
+ComboBox::ComboBox(QWidget* parent, const char* name)
+ : QLabel(parent, name)
+ {
+ _currentItem = 0;
+ _id = -1;
+ list = new Q3PopupMenu(0, "comboPopup");
+ connect(list, SIGNAL(activated(int)), SLOT(activatedIntern(int)));
+ setFrameStyle(Q3Frame::Panel | Q3Frame::Raised);
+ setLineWidth(2);
+ }
+
+ComboBox::~ComboBox()
+ {
+ delete list;
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void ComboBox::mousePressEvent(QMouseEvent*)
+ {
+ list->exec(QCursor::pos());
+ }
+
+//---------------------------------------------------------
+// activated
+//---------------------------------------------------------
+
+void ComboBox::activatedIntern(int n)
+ {
+ _currentItem = n;
+ emit activated(n, _id);
+ setText(list->text(_currentItem));
+ }
+
+//---------------------------------------------------------
+// setCurrentItem
+//---------------------------------------------------------
+
+void ComboBox::setCurrentItem(int i)
+ {
+ _currentItem = i;
+ setText(list->text(list->idAt(_currentItem)));
+ }
+
+//---------------------------------------------------------
+// insertItem
+//---------------------------------------------------------
+
+void ComboBox::insertItem(const QString& s, int id, int idx)
+ {
+ list->insertItem(s, id, idx);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/combobox.h b/muse_qt4_evolution/muse/widgets/combobox.h
new file mode 100644
index 00000000..70d71030
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/combobox.h
@@ -0,0 +1,57 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __COMBOBOX_H__
+#define __COMBOBOX_H__
+
+class Q3PopupMenu;
+
+//---------------------------------------------------------
+// ComboBox
+//---------------------------------------------------------
+
+class ComboBox : public QLabel {
+ Q_OBJECT
+ Q_PROPERTY(int id READ id WRITE setId)
+
+ int _id;
+ int _currentItem;
+ Q3PopupMenu* list;
+ virtual void mousePressEvent(QMouseEvent*);
+
+ private slots:
+ void activatedIntern(int);
+
+ signals:
+ void activated(int val, int id);
+
+ public:
+ ComboBox(QWidget* parent, const char* name = 0);
+ ~ComboBox();
+ void setCurrentItem(int);
+ void insertItem(const QString& s, int id = -1, int idx=-1);
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/muse/widgets/comment.cpp b/muse_qt4_evolution/muse/widgets/comment.cpp
new file mode 100644
index 00000000..2bb981eb
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/comment.cpp
@@ -0,0 +1,91 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "comment.h"
+#include "song.h"
+#include "track.h"
+
+//---------------------------------------------------------
+// Comment
+//---------------------------------------------------------
+
+Comment::Comment(QWidget* parent)
+ : QWidget(parent)
+ {
+ setupUi(this);
+ }
+
+//---------------------------------------------------------
+// textChanged
+//---------------------------------------------------------
+
+void Comment::textChanged()
+ {
+ setText(textentry->document()->toPlainText());
+ }
+
+//---------------------------------------------------------
+// TrackComment
+//---------------------------------------------------------
+
+TrackComment::TrackComment(Track* t, QWidget* parent)
+ : Comment(parent)
+ {
+ setWindowTitle(tr("MusE: Track Comment"));
+ track = t;
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ textentry->setPlainText(track->comment());
+ connect(textentry, SIGNAL(textChanged()), SLOT(textChanged()));
+ label1->setText(tr("Track Comment:"));
+ label2->setText(track->name());
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void TrackComment::songChanged(int flags)
+ {
+ if ((flags & (SC_TRACK_INSERTED|SC_TRACK_REMOVED|SC_TRACK_MODIFIED)) == 0)
+ return;
+ if (!song->trackExists(track)) {
+ close();
+ return;
+ }
+ label2->setText(track->name());
+ QString txt(textentry->document()->toPlainText());
+ if (track->comment() != txt) {
+ disconnect(textentry, SIGNAL(textChanged()), this, SLOT(textChanged()));
+ textentry->setPlainText(track->comment());
+// textentry->setCursorPosition(1000, 1000);
+ connect(textentry, SIGNAL(textChanged()), this, SLOT(textChanged()));
+ }
+ }
+
+//---------------------------------------------------------
+// setText
+//---------------------------------------------------------
+
+void TrackComment::setText(const QString& s)
+ {
+ track->setComment(s);
+ song->update(SC_TRACK_MODIFIED);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/comment.h b/muse_qt4_evolution/muse/widgets/comment.h
new file mode 100644
index 00000000..9d356d7a
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/comment.h
@@ -0,0 +1,69 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __COMMENT_H__
+#define __COMMENT_H__
+
+#include "ui_comment.h"
+
+namespace AL {
+ class Xml;
+ };
+using AL::Xml;
+
+class Track;
+
+//---------------------------------------------------------
+// Comment
+//---------------------------------------------------------
+
+class Comment : public QWidget, public Ui::CommentBase {
+ Q_OBJECT
+
+ private:
+ virtual void setText(const QString& s) = 0;
+
+ private slots:
+ void textChanged();
+
+ public:
+ Comment(QWidget* parent);
+ };
+
+//---------------------------------------------------------
+// TrackComment
+//---------------------------------------------------------
+
+class TrackComment : public Comment {
+ Track* track;
+ Q_OBJECT
+
+ private:
+ virtual void setText(const QString& s);
+
+ private slots:
+ void songChanged(int);
+
+ public:
+ TrackComment(Track*, QWidget*);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/comment.ui b/muse_qt4_evolution/muse/widgets/comment.ui
new file mode 100644
index 00000000..fc1b8d64
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/comment.ui
@@ -0,0 +1,97 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>CommentBase</class>
+ <widget class="QWidget" name="CommentBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>387</width>
+ <height>205</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form1</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Track Comment</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label2" >
+ <property name="font" >
+ <font>
+ <family>Arial</family>
+ <pointsize>12</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="midLineWidth" >
+ <number>1</number>
+ </property>
+ <property name="text" >
+ <string>Track 1</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="textentry" >
+ <property name="font" >
+ <font>
+ <family>Arial</family>
+ <pointsize>12</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/ctrlcombo.cpp b/muse_qt4_evolution/muse/widgets/ctrlcombo.cpp
new file mode 100644
index 00000000..3139265a
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/ctrlcombo.cpp
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "ctrlcombo.h"
+
+//---------------------------------------------------------
+// CtrlComboBox
+//---------------------------------------------------------
+
+CtrlComboBox::CtrlComboBox(QWidget* parent)
+ : QComboBox(parent)
+ {
+ const char* ctxt[] = {
+ "No Ctrl", "BankSelMSB", "Modulation", "BreathCtrl",
+ "Control 3", "Foot Ctrl", "Porta Time", "DataEntMSB",
+ "MainVolume", "Balance", "Control 9", "Pan",
+ "Expression", "Control 12", "Control 13", "Control 14",
+ "Control 15", "Gen.Purp.1", "Gen.Purp.2", "Gen.Purp.3",
+ "Gen.Purp.4", "Control 20", "Control 21", "Control 22",
+ "Control 23", "Control 24", "Control 25", "Control 26",
+ "Control 27", "Control 28", "Control 29", "Control 30",
+ "Control 31", "BankSelLSB", "Modul. LSB", "BrthCt.LSB",
+ "Control 35", "FootCt.LSB", "Port.T LSB", "DataEntLSB",
+ "MainVolLSB", "BalanceLSB", "Control 41", "Pan LSB",
+ "Expr. LSB", "Control 44", "Control 45", "Control 46",
+ "Control 47", "Gen.P.1LSB", "Gen.P.2LSB", "Gen.P.3LSB",
+ "Gen.P.4LSB", "Control 52", "Control 53", "Control 54",
+ "Control 55", "Control 56", "Control 57", "Control 58",
+ "Control 59", "Control 60", "Control 61", "Control 62",
+ "Control 63", "Sustain", "Porta Ped", "Sostenuto",
+ "Soft Pedal", "Control 68", "Hold 2", "Control 70",
+ "HarmonicCo", "ReleaseTime", "Attack Time", "Brightness",
+ "Control 75", "Control 76", "Control 77", "Control 78",
+ "Control 79", "Gen.Purp.5", "Gen.Purp.6", "Gen.Purp.7",
+ "Gen.Purp.8", "Porta Ctrl", "Control 85", "Control 86",
+ "Control 87", "Control 88", "Control 89", "Control 90",
+ "Effect1Dep", "Effect2Dep", "Effect3Dep", "Effect4Dep",
+ "Phaser Dep", "Data Incr", "Data Decr", "NRPN LSB",
+ "NRPN MSB", "RPN LSB", "RPN MSB", "Control102",
+ "Control103", "Control104", "Control105", "Control106",
+ "Control107", "Control108", "Control109", "Control110",
+ "Control111", "Control112", "Control113", "Control114",
+ "Control115", "Control116", "Control117", "Control118",
+ "Control119", "AllSndOff", "Reset Ctrl", "Local Ctrl",
+ "AllNoteOff", "OmniModOff", "OmniModeOn", "MonoModeOn",
+ "PolyModeOn"
+ };
+ for (unsigned int i = 0; i < sizeof(ctxt)/sizeof(*ctxt); ++i)
+ addItem(QString(ctxt[i]));
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/ctrlcombo.h b/muse_qt4_evolution/muse/widgets/ctrlcombo.h
new file mode 100644
index 00000000..1eb59ab0
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/ctrlcombo.h
@@ -0,0 +1,32 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __CTRLGRP_H__
+#define __CTRLGRP_H__
+
+class CtrlComboBox : public QComboBox {
+ Q_OBJECT
+ public:
+ CtrlComboBox(QWidget* parent);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/dentry.cpp b/muse_qt4_evolution/muse/widgets/dentry.cpp
new file mode 100644
index 00000000..b52d4363
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/dentry.cpp
@@ -0,0 +1,208 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "dentry.h"
+#include "globals.h"
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+//---------------------------------------------------------
+// Dentry
+// lineedit double values
+//---------------------------------------------------------
+
+Dentry::Dentry(QWidget* parent)
+ : QLineEdit(parent)
+ {
+ _id = -1;
+ drawFrame = false;
+ QLineEdit::setFrame(drawFrame);
+ timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), SLOT(repeat()));
+ val = 0.01;
+ connect(this, SIGNAL(returnPressed()), SLOT(endEdit()));
+ setCursor(QCursor(Qt::ArrowCursor));
+ evx = 1.0;
+ }
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void Dentry::setFrame(bool flag)
+ {
+ drawFrame = flag;
+ QLineEdit::setFrame(drawFrame);
+ update();
+ }
+
+//---------------------------------------------------------
+// endEdit
+//---------------------------------------------------------
+
+void Dentry::endEdit()
+ {
+ if (isModified()) {
+ if (setSValue(text())) {
+ setString(val);
+ return;
+ }
+ }
+ setString(val);
+ clearFocus();
+ if (!drawFrame)
+ QLineEdit::setFrame(false);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void Dentry::mousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ starty = event->y();
+ evx = double(event->x());
+ timecount = 0;
+ repeat();
+ timer->start(TIMER1);
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void Dentry::wheelEvent(QWheelEvent* event)
+ {
+ int delta = event->delta();
+
+ if (delta < 0)
+ decValue(-1.0);
+ else if (delta > 0)
+ incValue(1.0);
+ }
+
+//---------------------------------------------------------
+// repeat
+//---------------------------------------------------------
+
+void Dentry::repeat()
+ {
+ if (timecount == 1) {
+ ++timecount;
+ timer->stop();
+ timer->start(TIMER2);
+ return;
+ }
+ ++timecount;
+ if (timecount == TIMEC) {
+ timer->stop();
+ timer->start(TIMER3);
+ }
+ if (timecount == TIMEC2) {
+ timer->stop();
+ timer->start(TIMER4);
+ }
+
+ switch (button) {
+ case Qt::LeftButton:
+ return;
+ case Qt::MidButton:
+ decValue(evx);
+ break;
+ case Qt::RightButton:
+ incValue(evx);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void Dentry::mouseReleaseEvent(QMouseEvent*)
+ {
+ button = Qt::NoButton;
+ timer->stop();
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void Dentry::mouseMoveEvent(QMouseEvent*)
+ {
+ switch (button) {
+ case Qt::LeftButton:
+ break;
+ case Qt::MidButton:
+ break;
+ case Qt::RightButton:
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void Dentry::mouseDoubleClickEvent(QMouseEvent* event)
+ {
+ if (event->button() != Qt::LeftButton) {
+ mousePressEvent(event);
+ return;
+ }
+ setFocus();
+ QLineEdit::setFrame(true);
+ update();
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void Dentry::setValue(double v)
+ {
+ if (v == val)
+ return;
+ setString(v);
+#if 0
+ if (setString(v)) {
+ clearFocus();
+ if (!drawFrame)
+ QLineEdit::setFrame(false);
+ setEnabled(false);
+ }
+ else {
+ setEnabled(true);
+ }
+#endif
+ val = v;
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/dentry.h b/muse_qt4_evolution/muse/widgets/dentry.h
new file mode 100644
index 00000000..5e2ba724
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/dentry.h
@@ -0,0 +1,79 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DENTRY_H__
+#define __DENTRY_H__
+
+class QTimer;
+
+//---------------------------------------------------------
+// Dentry
+//---------------------------------------------------------
+
+class Dentry : public QLineEdit {
+ Q_OBJECT
+
+ Q_PROPERTY( int id READ id WRITE setId )
+ Q_PROPERTY( double value READ value WRITE setValue )
+ Q_PROPERTY( bool frame READ frame WRITE setFrame )
+
+ int button;
+ int starty;
+ bool drawFrame;
+ QTimer* timer;
+ double evx;
+ int timecount;
+
+ virtual void wheelEvent(QWheelEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+
+ protected:
+ int _id;
+ double val;
+
+ virtual void incValue(double x) = 0;
+ virtual void decValue(double x) = 0;
+ virtual bool setString(double) = 0;
+ virtual bool setSValue(const QString&) = 0;
+
+ private slots:
+ void repeat();
+
+ protected slots:
+ void endEdit();
+
+ signals:
+ void valueChanged(double, int);
+
+ public slots:
+ virtual void setValue(double);
+
+ public:
+ Dentry(QWidget* parent = 0);
+ double value() const { return val; }
+ bool frame() const { return drawFrame; }
+ void setFrame(bool);
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+#endif
diff --git a/muse_qt4_evolution/muse/widgets/doublelabel.cpp b/muse_qt4_evolution/muse/widgets/doublelabel.cpp
new file mode 100644
index 00000000..4026800b
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/doublelabel.cpp
@@ -0,0 +1,144 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "doublelabel.h"
+#include "utils.h"
+
+//---------------------------------------------------------
+// DoubleLabel
+//---------------------------------------------------------
+
+DoubleLabel::DoubleLabel(QWidget* parent)
+ : Dentry(parent), _specialText("---")
+ {
+ min = 0.0;
+ max = 1.0;
+ _precision = 3;
+ setValue(0.0);
+ }
+
+DoubleLabel::DoubleLabel(double _val, double m, double mx, QWidget* parent)
+ : Dentry(parent), _specialText("---")
+ {
+ min = m;
+ max = mx;
+ _precision = 3;
+ setValue(_val);
+ }
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool DoubleLabel::setString(double v)
+ {
+ QString s;
+ if (v < min || v > max) {
+ setText(_specialText);
+ return true;
+ }
+ s.setNum(v, 'f', _precision);
+ if (!_suffix.isEmpty()) {
+ s += " ";
+ s += _suffix;
+ }
+
+ setText(s);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setSValue
+//---------------------------------------------------------
+
+bool DoubleLabel::setSValue(const QString& s)
+ {
+ bool ok;
+ double v = s.toDouble(&ok);
+ if (ok && (v != val)) {
+ if (v < min)
+ v = min;
+ if (v > max)
+ v = max;
+ setValue(v);
+ emit valueChanged(val, _id);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void DoubleLabel::incValue(double)
+ {
+ if (val + 1.0 < max) {
+ setValue(val + 1.0);
+ emit valueChanged(val, _id);
+ }
+ }
+
+//---------------------------------------------------------
+// decValue
+//---------------------------------------------------------
+
+void DoubleLabel::decValue(double)
+ {
+ if (val - 1.0 > min) {
+ setValue(val - 1.0);
+ emit valueChanged(val, _id);
+ }
+ }
+
+//---------------------------------------------------------
+// setPrecision
+//---------------------------------------------------------
+
+void DoubleLabel::setPrecision(int v)
+ {
+ _precision = v;
+ setString(val);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize DoubleLabel::sizeHint() const
+ {
+ QFontMetrics fm = fontMetrics();
+ int h = fm.height() + 4;
+ int n = _precision + 3;
+#if 0
+ double aval = fabs(val);
+ if (aval >= 10.0)
+ ++n;
+ if (aval >= 100.0)
+ ++n;
+ if (aval >= 1000.0)
+ ++n;
+ if (aval >= 10000.0)
+ ++n;
+ if (aval >= 100000.0)
+ ++n;
+#endif
+ int w = fm.width(QString("-0.")) + fm.width('0') * n + 6;
+ return QSize(w, h);
+ }
diff --git a/muse_qt4_evolution/muse/widgets/doublelabel.h b/muse_qt4_evolution/muse/widgets/doublelabel.h
new file mode 100644
index 00000000..0ed72514
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/doublelabel.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __DOUBLELABEL_H__
+#define __DOUBLELABEL_H__
+
+#include "dentry.h"
+
+//---------------------------------------------------------
+// DoubleLabel
+//---------------------------------------------------------
+
+class DoubleLabel : public Dentry {
+ Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
+ Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
+ Q_PROPERTY( QString specialText READ specialText WRITE setSpecialText )
+ Q_PROPERTY( QString suffix READ suffix WRITE setSuffix )
+ Q_PROPERTY( int precision READ precision WRITE setPrecision )
+
+ double min, max;
+ QString _specialText; // text to show if value outside min,max
+ QString _suffix;
+ int _precision;
+ Q_OBJECT
+
+ virtual bool setSValue(const QString&);
+ virtual bool setString(double val);
+ virtual void incValue(double);
+ virtual void decValue(double);
+
+ public:
+ DoubleLabel(QWidget* parent = 0);
+ DoubleLabel(double val, double min, double max, QWidget*);
+ virtual QSize sizeHint() const;
+ double minValue() const { return min; }
+ double maxValue() const { return max; }
+ void setMinValue(double v) { min = v; }
+ void setMaxValue(double v) { max = v; }
+ void setRange(double a, double b) { min = a; max = b; }
+ int precision() const { return _precision; }
+ void setPrecision(int val);
+ QString specialText() const { return _specialText; }
+ void setSpecialText(const QString& s) {
+ _specialText = s;
+ update();
+ }
+ QString suffix() const { return _suffix; }
+ void setSuffix(const QString& s) { _suffix = s; }
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/widgets/editmetadialogbase.cpp b/muse_qt4_evolution/muse/widgets/editmetadialogbase.cpp
new file mode 100644
index 00000000..0bbe8dd1
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/editmetadialogbase.cpp
@@ -0,0 +1,110 @@
+#include "editmetadialogbase.h"
+
+#include <qvariant.h>
+#include <awl/posedit.h>
+/*
+ * Constructs a EditMetaDialogBase as a child of 'parent', with the
+ * name 'name' and widget flags set to 'f'.
+ *
+ * The dialog will by default be modeless, unless you set 'modal' to
+ * true to construct a modal dialog.
+ */
+EditMetaDialogBase::EditMetaDialogBase(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
+ : QDialog(parent, name, modal, fl)
+{
+ setupUi(this);
+
+
+ // signals and slots connections
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
+}
+
+/*
+ * Destroys the object and frees any allocated resources
+ */
+EditMetaDialogBase::~EditMetaDialogBase()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ * Sets the strings of the subwidgets using the current
+ * language.
+ */
+void EditMetaDialogBase::languageChange()
+{
+ retranslateUi(this);
+}
+
+/****************************************************************************
+** Meta object code from reading C++ file 'editmetadialogbase.h'
+**
+** Created: Fri Sep 23 12:43:18 2005
+** by: The Qt Meta Object Compiler version 58 (Qt 4.0.1)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "editmetadialogbase.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'editmetadialogbase.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 58
+#error "This file was generated using the moc from 4.0.1. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+static const uint qt_meta_data_EditMetaDialogBase[] = {
+
+ // content:
+ 1, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 1, 10, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+
+ // slots: signature, parameters, type, tag, flags
+ 20, 19, 19, 19, 0x09,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_EditMetaDialogBase[] = {
+ "EditMetaDialogBase\0\0languageChange()\0"
+};
+
+const QMetaObject EditMetaDialogBase::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_EditMetaDialogBase,
+ qt_meta_data_EditMetaDialogBase, 0 }
+};
+
+const QMetaObject *EditMetaDialogBase::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *EditMetaDialogBase::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_EditMetaDialogBase))
+ return static_cast<void*>(const_cast<EditMetaDialogBase*>(this));
+ if (!strcmp(_clname, "Ui::EditMetaDialogBase"))
+ return static_cast<Ui::EditMetaDialogBase*>(const_cast<EditMetaDialogBase*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int EditMetaDialogBase::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: languageChange(); break;
+ }
+ _id -= 1;
+ }
+ return _id;
+}
diff --git a/muse_qt4_evolution/muse/widgets/editmetadialogbase.ui b/muse_qt4_evolution/muse/widgets/editmetadialogbase.ui
new file mode 100644
index 00000000..3f5730de
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/editmetadialogbase.ui
@@ -0,0 +1,137 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>EditMetaDialogBase</class>
+ <widget class="QDialog" name="EditMetaDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Dialog</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="3" column="0" colspan="3" >
+ <widget class="QTextEdit" name="textEdit" />
+ </item>
+ <item row="4" column="0" colspan="3" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>131</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="spinBox" />
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="spinBox_2" />
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QCheckBox" name="checkBox" >
+ <property name="text" >
+ <string>Enter Hex</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Meta Type:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Time Position:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>EditMetaDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>278</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>254</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>EditMetaDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>369</x>
+ <y>253</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>179</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/fdialogbuttons.ui b/muse_qt4_evolution/muse/widgets/fdialogbuttons.ui
new file mode 100644
index 00000000..9d46cb59
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/fdialogbuttons.ui
@@ -0,0 +1,167 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>FileDialogButtons</class>
+ <widget class="QWidget" name="FileDialogButtons" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>175</width>
+ <height>438</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>Form1</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Q3ButtonGroup" name="pathGroup" >
+ <property name="title" >
+ <string/>
+ </property>
+ <property name="flat" >
+ <bool>true</bool>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="exclusive" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="globalButton" >
+ <property name="text" >
+ <string>Global</string>
+ </property>
+ <property name="icon" >
+ <iconset>image0</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="userButton" >
+ <property name="text" >
+ <string>User</string>
+ </property>
+ <property name="icon" >
+ <iconset>image1</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="projectButton" >
+ <property name="text" >
+ <string>Project</string>
+ </property>
+ <property name="icon" >
+ <iconset>image2</iconset>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>60</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="Q3ButtonGroup" name="loadAllGroup" >
+ <property name="title" >
+ <string>Load:</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="exclusive" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="loadAllButton" >
+ <property name="text" >
+ <string>Songdata +
+Cofiguration</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="loadSongButton" >
+ <property name="text" >
+ <string>only
+Songdata</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Q3ButtonGroup</class>
+ <extends></extends>
+ <header>Qt3Support/Q3ButtonGroup</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/filedialog.cpp b/muse_qt4_evolution/muse/widgets/filedialog.cpp
new file mode 100644
index 00000000..eec678f5
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/filedialog.cpp
@@ -0,0 +1,193 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "filedialog.h"
+#include "../globals.h"
+
+//---------------------------------------------------------
+// MFileDialog
+//---------------------------------------------------------
+
+MFileDialog::MFileDialog(const QString& dir,
+ const QString& filter, QWidget* parent, bool /*writeFlag*/)
+ : QFileDialog(parent, QString(), dir, filter)
+ {
+ }
+
+//---------------------------------------------------------
+// getOpenFileName
+//---------------------------------------------------------
+
+QString getOpenFileName(const QString &startWith,
+ const QStringList& filters, QWidget* parent, const QString& name)
+ {
+ MFileDialog *dlg = new MFileDialog(startWith, QString::null, parent);
+ dlg->setFilters(filters);
+ dlg->setWindowTitle(name);
+ dlg->setFileMode(QFileDialog::ExistingFile);
+ QString result;
+ if (dlg->exec() == QDialog::Accepted) {
+ QStringList sl = dlg->selectedFiles();
+ result = sl.at(0);
+ }
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// getSaveFileName
+//---------------------------------------------------------
+
+QString getSaveFileName(const QString &startWith,
+ const QStringList& filters, QWidget* parent, const QString& name)
+ {
+ MFileDialog *dlg = new MFileDialog(startWith, QString::null, parent, true);
+ dlg->setFilters(filters);
+ dlg->setWindowTitle(name);
+ dlg->setFileMode(QFileDialog::AnyFile);
+ QString result;
+ if (dlg->exec() == QDialog::Accepted) {
+ QStringList sl = dlg->selectedFiles();
+ result = sl.at(0);
+ }
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// getImageFileName
+//---------------------------------------------------------
+
+QString getImageFileName(const QString& startWith,
+ const QStringList& filters, QWidget* parent, const QString& name)
+ {
+ QString initialSelection;
+ QString* workingDirectory = new QString(QDir::current().absolutePath());
+ if (!startWith.isEmpty() ) {
+ QFileInfo fi(startWith);
+ if (fi.exists() && fi.isDir()) {
+ *workingDirectory = startWith;
+ }
+ else if (fi.exists() && fi.isFile()) {
+ *workingDirectory = fi.absolutePath();
+ initialSelection = fi.absolutePath();
+ }
+ }
+ MFileDialog *dlg = new MFileDialog(*workingDirectory, QString::null,
+ parent);
+
+//TD dlg->setContentsPreviewEnabled(true);
+// ContentsPreview* preview = new ContentsPreview(dlg);
+// dlg->setContentsPreview(preview, preview);
+// dlg->setPreviewMode(QFileDialog::Contents);
+
+ dlg->setWindowTitle(name);
+ dlg->setFilters(filters);
+ dlg->setFileMode(QFileDialog::ExistingFile);
+ QString result;
+ if (!initialSelection.isEmpty())
+ dlg->selectFile(initialSelection);
+ if (dlg->exec() == QDialog::Accepted) {
+ QStringList sl = dlg->selectedFiles();
+ result = sl.at(0);
+ }
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// fileOpen
+// opens file "name" with extension "ext" in mode "mode"
+//
+// mode = "r" or "w"
+// noError show no error if file was not found in "r"
+// mode. Has no effect in "w" mode
+// overwriteWarning
+// warn in "w" mode, if file exists
+//---------------------------------------------------------
+
+QFile* fileOpen(QWidget* parent, QString name, const QString& ext,
+ QIODevice::OpenMode mode, bool overwriteWarning)
+ {
+ QFileInfo info(name);
+
+ if (info.completeSuffix() == "") {
+ name += ext;
+ info.setFile(name);
+ }
+ if (mode == QIODevice::WriteOnly && overwriteWarning && info.exists()) {
+ QString s(QWidget::tr("File\n") + name + QWidget::tr("\nexists"));
+ int rv = QMessageBox::warning(parent,
+ QWidget::tr("MusE: write"),
+ s,
+ QWidget::tr("Overwrite"),
+ QWidget::tr("Quit"), QString::null, 0, 1);
+ switch(rv) {
+ case 0: // overwrite
+ break;
+ case 1: // quit
+ return 0;
+ }
+ }
+ QFile* file = new QFile(name);
+ if (!file->open(mode)) {
+ QString s(QWidget::tr("Open File\n") + name + QWidget::tr("\nfailed: ")
+ + QString(strerror(errno)));
+ QMessageBox::critical(parent, QWidget::tr("MusE: Open File"), s);
+ }
+ return file;
+ }
+
+//---------------------------------------------------------
+// MFile
+//---------------------------------------------------------
+
+MFile::MFile(const QString& _path, const QString& _ext)
+ : path(_path), ext(_ext)
+ {
+ f = 0;
+ }
+
+MFile::~MFile()
+ {
+ if (f) {
+ f->close();
+ delete f;
+ }
+ }
+
+//---------------------------------------------------------
+// open
+//---------------------------------------------------------
+
+QFile* MFile::open(QIODevice::OpenMode mode, const QStringList& pattern,
+ QWidget* parent, bool warnIfOverwrite, const QString& caption)
+ {
+ QString name;
+ if (mode == QIODevice::ReadOnly)
+ name = getOpenFileName(path, pattern, parent, caption);
+ else
+ name = getSaveFileName(path, pattern, parent, caption);
+ if (name.isEmpty())
+ return 0;
+ f = fileOpen(parent, name, ext, mode, warnIfOverwrite);
+ return f;
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/filedialog.h b/muse_qt4_evolution/muse/widgets/filedialog.h
new file mode 100644
index 00000000..cb906e00
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/filedialog.h
@@ -0,0 +1,65 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+class FileDialogButtons;
+
+//---------------------------------------------------------
+// MFileDialog
+//---------------------------------------------------------
+
+class MFileDialog : public QFileDialog {
+ bool showButtons;
+ QString baseDir;
+ Q_OBJECT
+
+ public:
+ MFileDialog(const QString& dir, const QString& filter = QString::null,
+ QWidget* parent = 0, bool writeFlag = false);
+ };
+
+QString getSaveFileName(const QString& startWidth, const QStringList& filter,
+ QWidget* parent, const QString& name);
+QString getOpenFileName(const QString& startWidth, const QStringList& filter,
+ QWidget* parent, const QString& name);
+QString getImageFileName(const QString& startWith, const QStringList& filter,
+ QWidget* parent, const QString& name);
+
+QFile* fileOpen(QWidget*, QString, const QString&,
+ QIODevice::OpenMode, bool = false);
+
+
+//---------------------------------------------------------
+// MFile
+// "Muse" File
+//---------------------------------------------------------
+
+class MFile {
+ QFile* f;
+ QString path;
+ QString ext;
+
+ public:
+ MFile(const QString& path, const QString& ext);
+ ~MFile();
+ QFile* open(QIODevice::OpenMode, const QStringList& pattern,
+ QWidget* parent,
+ bool warnIfOverwrite, const QString& caption);
+ };
+
diff --git a/muse_qt4_evolution/muse/widgets/floatlabel.cpp b/muse_qt4_evolution/muse/widgets/floatlabel.cpp
new file mode 100644
index 00000000..75e81419
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/floatlabel.cpp
@@ -0,0 +1,144 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "doublelabel.h"
+#include "utils.h"
+
+//---------------------------------------------------------
+// DoubleLabel
+//---------------------------------------------------------
+
+DoubleLabel::DoubleLabel(QWidget* parent, const char* name)
+ : Dentry(parent, name), _specialText("---")
+ {
+ min = 0.0;
+ max = 1.0;
+ _precision = 3;
+ setValue(0.0);
+ }
+
+DoubleLabel::DoubleLabel(double _val, double m, double mx, QWidget* parent)
+ : Dentry(parent), _specialText("---")
+ {
+ min = m;
+ max = mx;
+ _precision = 3;
+ setValue(_val);
+ }
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool DoubleLabel::setString(double v)
+ {
+ QString s;
+ if (v < min || v > max) {
+ setText(_specialText);
+ return true;
+ }
+ s.setNum(v, 'f', _precision);
+ if (!_suffix.isEmpty()) {
+ s += " ";
+ s += _suffix;
+ }
+
+ setText(s);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setSValue
+//---------------------------------------------------------
+
+bool DoubleLabel::setSValue(const QString& s)
+ {
+ bool ok;
+ double v = s.toDouble(&ok);
+ if (ok && (v != val)) {
+ if (v < min)
+ v = min;
+ if (v > max)
+ v = max;
+ setValue(v);
+ emit valueChanged(val, _id);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void DoubleLabel::incValue(double)
+ {
+ if (val + 1.0 < max) {
+ setValue(val + 1.0);
+ emit valueChanged(val, _id);
+ }
+ }
+
+//---------------------------------------------------------
+// decValue
+//---------------------------------------------------------
+
+void DoubleLabel::decValue(double)
+ {
+ if (val - 1.0 > min) {
+ setValue(val - 1.0);
+ emit valueChanged(val, _id);
+ }
+ }
+
+//---------------------------------------------------------
+// setPrecision
+//---------------------------------------------------------
+
+void DoubleLabel::setPrecision(int v)
+ {
+ _precision = v;
+ setString(val);
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize DoubleLabel::sizeHint() const
+ {
+ QFontMetrics fm = fontMetrics();
+ int h = fm.height() + 4;
+ int n = _precision + 3;
+#if 0
+ double aval = fabs(val);
+ if (aval >= 10.0)
+ ++n;
+ if (aval >= 100.0)
+ ++n;
+ if (aval >= 1000.0)
+ ++n;
+ if (aval >= 10000.0)
+ ++n;
+ if (aval >= 100000.0)
+ ++n;
+#endif
+ int w = fm.width(QString("-0.")) + fm.width('0') * n + 6;
+ return QSize(w, h);
+ }
diff --git a/muse_qt4_evolution/muse/widgets/floatlabel.h b/muse_qt4_evolution/muse/widgets/floatlabel.h
new file mode 100644
index 00000000..9f51d7d4
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/floatlabel.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __FLOATLABEL_H__
+#define __FLOATLABEL_H__
+
+#include "dentry.h"
+
+//---------------------------------------------------------
+// FloatLabel
+//---------------------------------------------------------
+
+class FloatLabel : public Dentry {
+ Q_PROPERTY(float minValue READ minValue WRITE setMinValue )
+ Q_PROPERTY(float maxValue READ maxValue WRITE setMaxValue )
+ Q_PROPERTY(QString specialText READ specialText WRITE setSpecialText )
+ Q_PROPERTY(QString suffix READ suffix WRITE setSuffix )
+ Q_PROPERTY(int precision READ precision WRITE setPrecision )
+
+ float min, max;
+ QString _specialText; // text to show if value outside min,max
+ QString _suffix;
+ int _precision;
+ Q_OBJECT
+
+ virtual bool setSValue(const QString&);
+ virtual bool setString(double val);
+ virtual void incValue(double);
+ virtual void decValue(double);
+
+ public:
+ DoubleLabel(QWidget*, const char* name = 0);
+ DoubleLabel(double val, double min, double max, QWidget*);
+ virtual QSize sizeHint() const;
+ double minValue() const { return min; }
+ double maxValue() const { return max; }
+ void setMinValue(double v) { min = v; }
+ void setMaxValue(double v) { max = v; }
+ void setRange(double a, double b) { min = a; max = b; }
+ int precision() const { return _precision; }
+ void setPrecision(int val);
+ QString specialText() const { return _specialText; }
+ void setSpecialText(const QString& s) {
+ _specialText = s;
+ update();
+ }
+ QString suffix() const { return _suffix; }
+ void setSuffix(const QString& s) { _suffix = s; }
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/widgets/fontsel.cpp b/muse_qt4_evolution/muse/widgets/fontsel.cpp
new file mode 100644
index 00000000..b0d6c95b
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/fontsel.cpp
@@ -0,0 +1,138 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "icons.h"
+#include "fontsel.h"
+
+//---------------------------------------------------------
+// FontSel
+//---------------------------------------------------------
+
+FontSel::FontSel(QWidget* parent, const QFont& f, const QString& name)
+ : QWidget(parent)
+ {
+ _font = f;
+ QHBoxLayout* box = new QHBoxLayout(this);
+
+ cb = new QComboBox(this);
+ cb->setFixedWidth(80);
+ cb->addItem(QString("arial"));
+ cb->addItem(QString("avantgarde"));
+ cb->addItem(QString("charter"));
+ cb->addItem(QString("garamond"));
+ cb->addItem(QString("gillsans"));
+ cb->addItem(QString("helvetica"));
+ cb->addItem(QString("times"));
+ cb->addItem(QString("terminal"));
+ cb->addItem(QString("utopia"));
+ cb->addItem(QString("new century schoolbook"));
+
+ QLabel* l1 = new QLabel(tr("Size:"), this);
+ s1 = new QSpinBox(this);
+ s1->setRange(8, 48);
+
+ fcb1 = new QToolButton(this);
+ fcb1->setCheckable(true);
+ fcb1->setIcon(*boldIcon);
+
+ fcb2 = new QToolButton(this);
+ fcb2->setCheckable(true);
+ fcb2->setIcon(*italicIcon);
+
+ fcb3 = new QToolButton(this);
+ fcb3->setCheckable(true);
+ fcb3->setIcon(*underlinedIcon);
+
+ QToolButton* pb = new QToolButton(this);
+ connect(pb, SIGNAL(pressed()), SLOT(fontSelect()));
+ pb->setText(QString("??"));
+
+ QLabel* l2 = new QLabel(name, this);
+
+ box->addWidget(cb);
+ box->addSpacing(8);
+ box->addWidget(l1);
+ box->addSpacing(5);
+ box->addWidget(s1);
+ box->addSpacing(5);
+ box->addWidget(fcb1);
+ box->addWidget(fcb2);
+ box->addWidget(fcb3);
+ box->addSpacing(2);
+ box->addWidget(pb);
+ box->addSpacing(5);
+ box->addWidget(l2);
+ box->addStretch(100);
+ setFixedHeight(18);
+ setFont();
+ }
+
+//---------------------------------------------------------
+// fontSelect
+//---------------------------------------------------------
+
+void FontSel::fontSelect()
+ {
+ bool ok;
+ QFont f = QFontDialog::getFont(&ok, _font, this);
+ if (ok) {
+ _font = f;
+ setFont();
+ }
+ }
+
+//---------------------------------------------------------
+// setFont
+//---------------------------------------------------------
+
+void FontSel::setFont()
+ {
+ s1->setValue(_font.pointSize());
+ fcb1->setChecked(_font.weight() == QFont::Bold);
+ fcb2->setChecked(_font.italic());
+ fcb3->setChecked(_font.underline());
+ int i;
+ for (i = 0; i < cb->count(); ++i) {
+ QString s = cb->itemText(i);
+ if (s == _font.family()) {
+ cb->setCurrentIndex(i);
+ break;
+ }
+ }
+ if (i == cb->count()) {
+ cb->addItem(_font.family());
+ cb->setCurrentIndex(i);
+ }
+ }
+
+//---------------------------------------------------------
+// font
+//---------------------------------------------------------
+
+const QFont& FontSel::font()
+ {
+ _font.setPointSize(s1->value());
+ _font.setWeight(fcb1->isChecked() ? QFont::Bold : QFont::Normal);
+ _font.setItalic(fcb2->isChecked());
+ _font.setUnderline(fcb3->isChecked());
+ _font.setFamily(cb->currentText());
+ return _font;
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/fontsel.h b/muse_qt4_evolution/muse/widgets/fontsel.h
new file mode 100644
index 00000000..92d076b6
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/fontsel.h
@@ -0,0 +1,57 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __FONTSEL_H__
+#define __FONTSEL_H__
+
+#include "song.h"
+
+class QFont;
+class QSpinBox;
+class QToolButton;
+class QComboBox;
+
+//---------------------------------------------------------
+// FontSel
+//---------------------------------------------------------
+
+class FontSel : public QWidget {
+ QFont _font;
+ QSpinBox* s1;
+ QToolButton* fcb1;
+ QToolButton* fcb2;
+ QToolButton* fcb3;
+ QComboBox* cb;
+
+ Q_OBJECT
+
+ void setFont();
+
+ private slots:
+ void fontSelect();
+
+ public:
+ FontSel(QWidget* parent, const QFont&, const QString&);
+ const QFont& font();
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/greendotbutton.h b/muse_qt4_evolution/muse/widgets/greendotbutton.h
new file mode 100644
index 00000000..84bfab96
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/greendotbutton.h
@@ -0,0 +1,38 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __GREENDOTBUTTON_H__
+#define __GREENDOTBUTTON_H__
+
+#include "simplebutton.h"
+
+//---------------------------------------------------------
+// GreendotButton
+//---------------------------------------------------------
+
+class GreendotButton : public SimpleButton {
+ Q_OBJECT
+
+ public:
+ GreendotButton(QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/intlabel.h b/muse_qt4_evolution/muse/widgets/intlabel.h
new file mode 100644
index 00000000..c8919735
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/intlabel.h
@@ -0,0 +1,56 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __INTLABEL_H__
+#define __INTLABEL_H__
+
+#include "nentry.h"
+
+class QString;
+
+//---------------------------------------------------------
+// IntLabel
+//---------------------------------------------------------
+
+class IntLabel : public Nentry {
+ int min, max, off;
+ QString suffix;
+ QString specialValue;
+ Q_OBJECT
+
+ void init();
+
+ virtual bool setSValue(const QString&);
+ virtual bool setString(int val, bool editable = false);
+ virtual void incValue(int);
+ virtual void decValue(int);
+
+ signals:
+ void valueChanged(int);
+
+ public:
+ IntLabel(int, int, int, QWidget*, int _off = MAXINT,
+ const QString& = QString(""), int lpos = 0);
+ void setOff(int v);
+ void setSuffix(const QString& s) { suffix = s; }
+ void setSpecialValueText(const QString& s);
+ };
+
+#endif
diff --git a/muse_qt4_evolution/muse/widgets/menutitle.cpp b/muse_qt4_evolution/muse/widgets/menutitle.cpp
new file mode 100644
index 00000000..0dd7ddab
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/menutitle.cpp
@@ -0,0 +1,50 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "menutitle.h"
+
+//---------------------------------------------------------
+// MenuTitleItem
+//---------------------------------------------------------
+
+MenuTitleItem::MenuTitleItem(QString ss)
+ : s(ss)
+ {
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize MenuTitleItem::sizeHint()
+ {
+ return QSize(60, 20);
+ }
+
+//---------------------------------------------------------
+// drawItem
+//---------------------------------------------------------
+
+void MenuTitleItem::paint(QPainter* p, const QColorGroup&, bool,
+ bool, int x, int y, int w, int h)
+ {
+ p->fillRect(x, y, w, h, QBrush(lightGray));
+ p->drawText(x, y, w, h, AlignCenter, s);
+ }
diff --git a/muse_qt4_evolution/muse/widgets/menutitle.h b/muse_qt4_evolution/muse/widgets/menutitle.h
new file mode 100644
index 00000000..f3e85849
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/menutitle.h
@@ -0,0 +1,41 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MENUTITLE_H__
+#define __MENUTITLE_H__
+
+//---------------------------------------------------------
+// MenuTitleItem
+//---------------------------------------------------------
+
+class MenuTitleItem : public QCustomMenuItem {
+ QString s;
+ virtual bool fullSpan() const { return true; }
+ virtual bool isSeparator() const { return true; }
+ virtual void paint(QPainter* p, const QColorGroup& cg, bool act,
+ bool, int, int, int, int);
+ virtual QSize sizeHint();
+
+ public:
+ MenuTitleItem(QString s);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/midisync.cpp b/muse_qt4_evolution/muse/widgets/midisync.cpp
new file mode 100644
index 00000000..7b6f69df
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/midisync.cpp
@@ -0,0 +1,128 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "midisync.h"
+#include "sync.h"
+
+//---------------------------------------------------------
+// MidiSyncConfig
+// Midi Sync Config
+//---------------------------------------------------------
+
+MidiSyncConfig::MidiSyncConfig(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+
+ connect(syncMaster, SIGNAL(toggled(bool)), SLOT(syncMasterChanged(bool)));
+ connect(syncSlave, SIGNAL(toggled(bool)), SLOT(syncSlaveChanged(bool)));
+
+// dstDevId->setValue(txDeviceId);
+// srcDevId->setValue(rxDeviceId);
+
+ mtcSync->setChecked(genMTCSync);
+ mcSync->setChecked(genMCSync);
+ midiMachineControl->setChecked(genMMC);
+
+ acceptMTCCheckbox->setChecked(acceptMTC);
+ acceptMCCheckbox->setChecked(acceptMC);
+ acceptMMCCheckbox->setChecked(acceptMMC);
+
+ mtcSyncType->setCurrentIndex(AL::mtcType);
+
+ mtcOffH->setValue(mtcOffset.h());
+ mtcOffM->setValue(mtcOffset.m());
+ mtcOffS->setValue(mtcOffset.s());
+ mtcOffF->setValue(mtcOffset.f());
+ mtcOffSf->setValue(mtcOffset.sf());
+
+ syncSlaveChanged(extSyncFlag);
+ }
+
+//---------------------------------------------------------
+// ok Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::ok()
+ {
+ apply();
+ cancel();
+ }
+
+//---------------------------------------------------------
+// cancel Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::cancel()
+ {
+ close();
+ }
+
+//---------------------------------------------------------
+// apply Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::apply()
+ {
+// txDeviceId = dstDevId->value();
+// rxDeviceId = srcDevId->value();
+
+ genMTCSync = mtcSync->isChecked();
+ genMCSync = mcSync->isChecked();
+ genMMC = midiMachineControl->isChecked();
+
+ AL::mtcType = mtcSyncType->currentIndex();
+ extSyncFlag = syncSlave->isChecked();
+
+ mtcOffset.setH(mtcOffH->value());
+ mtcOffset.setM(mtcOffM->value());
+ mtcOffset.setS(mtcOffS->value());
+ mtcOffset.setF(mtcOffF->value());
+ mtcOffset.setSf(mtcOffSf->value());
+
+ acceptMC = acceptMCCheckbox->isChecked();
+ acceptMMC = acceptMMCCheckbox->isChecked();
+ acceptMTC = acceptMTCCheckbox->isChecked();
+ emit syncChanged();
+ }
+
+//---------------------------------------------------------
+// syncMasterChanged
+//---------------------------------------------------------
+
+void MidiSyncConfig::syncMasterChanged(bool val)
+ {
+ syncSlave->setChecked(!val);
+ }
+
+//---------------------------------------------------------
+// syncSlaveChanged
+//---------------------------------------------------------
+
+void MidiSyncConfig::syncSlaveChanged(bool val)
+ {
+ syncMaster->setChecked(!val);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/widgets/midisync.h b/muse_qt4_evolution/muse/widgets/midisync.h
new file mode 100644
index 00000000..c1db5fdd
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/midisync.h
@@ -0,0 +1,49 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIDISYNC_H__
+#define __MIDISYNC_H__
+
+#include "ui_midisync.h"
+
+//---------------------------------------------------------
+// MidiSyncConfig
+//---------------------------------------------------------
+
+class MidiSyncConfig : public QDialog, private Ui::MidiSyncConfigBase {
+ Q_OBJECT
+
+ private slots:
+ void syncMasterChanged(bool);
+ void syncSlaveChanged(bool);
+ void ok();
+ void cancel();
+ void apply();
+
+ signals:
+ void syncChanged();
+
+ public:
+ MidiSyncConfig(QWidget* parent=0);
+ MidiSyncConfig();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/midisync.ui b/muse_qt4_evolution/muse/widgets/midisync.ui
new file mode 100644
index 00000000..6ea9ef1a
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/midisync.ui
@@ -0,0 +1,711 @@
+<ui version="4.0" >
+ <author>werner schweer</author>
+ <comment>midi sync
+configuration dialog</comment>
+ <exportmacro></exportmacro>
+ <class>MidiSyncConfigBase</class>
+ <widget class="QDialog" name="MidiSyncConfigBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>530</width>
+ <height>359</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Sync</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="syncMaster" >
+ <property name="title" >
+ <string>Master</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="mtcSync" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Midi Time Code (MTC)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="mcSync" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Midi Clock</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="midiMachineControl" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Midi Machine Control (MMC)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel7" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Id:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="dstDevId" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>device id</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Preferred</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>30</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="syncSlave" >
+ <property name="title" >
+ <string>Slave</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="acceptMTCCheckbox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>accept MTC</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="acceptMCCheckbox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>accept Midi Clock</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="acceptMMCCheckbox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>accept MMC</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel7_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Id:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="srcDevId" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>device id</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="value" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="applyButton" >
+ <property name="text" >
+ <string>Apply</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>Ok</string>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QGroupBox" name="GroupBox13" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>MTC</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Type:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="mtcSyncType" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text" >
+ <string>24</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>25</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>30D</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>30N</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>407</width>
+ <height>69</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1" >
+ <property name="text" >
+ <string>Offset:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="mtcOffH" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>hour</string>
+ </property>
+ <property name="maximum" >
+ <number>23</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>h</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="mtcOffM" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>minute</string>
+ </property>
+ <property name="maximum" >
+ <number>59</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>m</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="mtcOffS" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>second</string>
+ </property>
+ <property name="maximum" >
+ <number>59</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel4" >
+ <property name="text" >
+ <string>s</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="mtcOffF" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>frame</string>
+ </property>
+ <property name="maximum" >
+ <number>30</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel5" >
+ <property name="text" >
+ <string>f</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="mtcOffSf" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>subframe</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+ <tabstop>acceptMTCCheckbox</tabstop>
+ <tabstop>acceptMCCheckbox</tabstop>
+ <tabstop>mtcSync</tabstop>
+ <tabstop>mcSync</tabstop>
+ <tabstop>midiMachineControl</tabstop>
+ <tabstop>dstDevId</tabstop>
+ <tabstop>mtcOffH</tabstop>
+ <tabstop>mtcOffM</tabstop>
+ <tabstop>mtcOffS</tabstop>
+ <tabstop>mtcOffF</tabstop>
+ <tabstop>mtcOffSf</tabstop>
+ <tabstop>applyButton</tabstop>
+ <tabstop>okButton</tabstop>
+ <tabstop>cancelButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>syncSlave</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>acceptMTCCheckbox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>377</x>
+ <y>79</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>341</x>
+ <y>67</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncSlave</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>acceptMCCheckbox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>365</x>
+ <y>102</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>361</x>
+ <y>94</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncSlave</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>acceptMMCCheckbox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>392</x>
+ <y>132</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>328</x>
+ <y>121</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncSlave</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>srcDevId</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>366</x>
+ <y>103</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>375</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mcSync</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>mcSync</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>255</x>
+ <y>94</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>255</x>
+ <y>94</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mtcSync</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>mtcSync</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>255</x>
+ <y>67</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>255</x>
+ <y>67</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncMaster</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>midiMachineControl</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>268</x>
+ <y>131</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>255</x>
+ <y>121</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncMaster</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>dstDevId</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>268</x>
+ <y>129</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>175</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncMaster</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>mtcSync</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>268</x>
+ <y>40</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>255</x>
+ <y>67</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>syncMaster</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>GroupBox13</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>53</x>
+ <y>17</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>41</x>
+ <y>256</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/mittransposebase.h b/muse_qt4_evolution/muse/widgets/mittransposebase.h
new file mode 100644
index 00000000..531cb200
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/mittransposebase.h
@@ -0,0 +1,111 @@
+#ifndef MITTRANSPOSEBASE_H
+#define MITTRANSPOSEBASE_H
+
+#include <qvariant.h>
+
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QCheckBox>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QWidget>
+#include "awl/pitchedit.h"
+#include <awl::pitchedit.h>
+#include <Qt3Support/Q3MimeSourceFactory>
+
+class Ui_MITTransposeBase
+{
+public:
+ QHBoxLayout *hboxLayout;
+ QCheckBox *onCheckBox;
+ QLabel *TextLabel1;
+ Awl::PitchEdit *triggerKeySpinBox;
+ QLabel *TextLabel2;
+ QLabel *transposeLabel;
+
+ void setupUi(QWidget *MITTransposeBase)
+ {
+ MITTransposeBase->setObjectName(QString::fromUtf8("MITTransposeBase"));
+ MITTransposeBase->resize(QSize(423, 50).expandedTo(MITTransposeBase->minimumSizeHint()));
+ hboxLayout = new QHBoxLayout(MITTransposeBase);
+ hboxLayout->setSpacing(6);
+ hboxLayout->setMargin(11);
+ hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+ onCheckBox = new QCheckBox(MITTransposeBase);
+ onCheckBox->setObjectName(QString::fromUtf8("onCheckBox"));
+
+ hboxLayout->addWidget(onCheckBox);
+
+ TextLabel1 = new QLabel(MITTransposeBase);
+ TextLabel1->setObjectName(QString::fromUtf8("TextLabel1"));
+ TextLabel1->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
+ TextLabel1->setIndent(5);
+
+ hboxLayout->addWidget(TextLabel1);
+
+ triggerKeySpinBox = new Awl::PitchEdit(MITTransposeBase);
+ triggerKeySpinBox->setObjectName(QString::fromUtf8("triggerKeySpinBox"));
+
+ hboxLayout->addWidget(triggerKeySpinBox);
+
+ TextLabel2 = new QLabel(MITTransposeBase);
+ TextLabel2->setObjectName(QString::fromUtf8("TextLabel2"));
+ TextLabel2->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
+ TextLabel2->setIndent(5);
+
+ hboxLayout->addWidget(TextLabel2);
+
+ transposeLabel = new QLabel(MITTransposeBase);
+ transposeLabel->setObjectName(QString::fromUtf8("transposeLabel"));
+ QSizePolicy sizePolicy((QSizePolicy::Policy)5, (QSizePolicy::Policy)0);
+ sizePolicy.setHorizontalStretch(0);
+ sizePolicy.setVerticalStretch(0);
+ sizePolicy.setHeightForWidth(transposeLabel->sizePolicy().hasHeightForWidth());
+ transposeLabel->setSizePolicy(sizePolicy);
+ transposeLabel->setFrameShape(QFrame::Panel);
+ transposeLabel->setLineWidth(2);
+ transposeLabel->setMargin(2);
+ transposeLabel->setMidLineWidth(2);
+ transposeLabel->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
+ transposeLabel->setIndent(5);
+
+ hboxLayout->addWidget(transposeLabel);
+
+ retranslateUi(MITTransposeBase);
+
+ QMetaObject::connectSlotsByName(MITTransposeBase);
+ } // setupUi
+
+ void retranslateUi(QWidget *MITTransposeBase)
+ {
+ MITTransposeBase->setWindowTitle(QApplication::translate("MITTransposeBase", "MusE: Midi Input Plugin: Transpose", 0, QApplication::UnicodeUTF8));
+ onCheckBox->setText(QApplication::translate("MITTransposeBase", "On", 0, QApplication::UnicodeUTF8));
+ TextLabel1->setText(QApplication::translate("MITTransposeBase", "TriggerKey", 0, QApplication::UnicodeUTF8));
+ TextLabel2->setText(QApplication::translate("MITTransposeBase", "Transpose:", 0, QApplication::UnicodeUTF8));
+ transposeLabel->setText(QApplication::translate("MITTransposeBase", "+0", 0, QApplication::UnicodeUTF8));
+ Q_UNUSED(MITTransposeBase);
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class MITTransposeBase: public Ui_MITTransposeBase {};
+} // namespace Ui
+
+class MITTransposeBase : public QWidget, public Ui::MITTransposeBase
+{
+ Q_OBJECT
+
+public:
+ MITTransposeBase(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = 0);
+ ~MITTransposeBase();
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // MITTRANSPOSEBASE_H
diff --git a/muse_qt4_evolution/muse/widgets/mittransposebase.ui b/muse_qt4_evolution/muse/widgets/mittransposebase.ui
new file mode 100644
index 00000000..c1aad75a
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/mittransposebase.ui
@@ -0,0 +1,112 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>MITTransposeBase</class>
+ <widget class="QWidget" name="MITTransposeBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>423</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Input Plugin: Transpose</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="onCheckBox" >
+ <property name="text" >
+ <string>On</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>TriggerKey</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="indent" >
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::PitchEdit" name="triggerKeySpinBox" />
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Transpose:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="indent" >
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="transposeLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::Panel</enum>
+ </property>
+ <property name="lineWidth" >
+ <number>2</number>
+ </property>
+ <property name="midLineWidth" >
+ <number>2</number>
+ </property>
+ <property name="text" >
+ <string>+0</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="margin" >
+ <number>2</number>
+ </property>
+ <property name="indent" >
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Awl::PitchEdit</class>
+ <extends>QWidget</extends>
+ <header>awl::pitchedit.h</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <includes>
+ <include location="local" >awl/pitchedit.h</include>
+ </includes>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/mixdowndialog.cpp b/muse_qt4_evolution/muse/widgets/mixdowndialog.cpp
new file mode 100644
index 00000000..ac517d30
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/mixdowndialog.cpp
@@ -0,0 +1,133 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "al/al.h"
+#include "mixdowndialog.h"
+#include "globals.h"
+#include "wave.h"
+#include "song.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// sndFileOpen
+// sf - old soundfile, used to preset file parameters
+//---------------------------------------------------------
+
+SndFile* getSndFile(SndFile* sf, QWidget* parent)
+ {
+ MixdownFileDialog* dialog = new MixdownFileDialog(sf, parent);
+ dialog->exec();
+ SndFile* sndFile = dialog->sndFile();
+ delete dialog;
+ return sndFile;
+ }
+
+//---------------------------------------------------------
+// MixdownFileDialog
+//---------------------------------------------------------
+
+MixdownFileDialog::MixdownFileDialog(SndFile* _sf, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ sf = 0;
+ connect(buttonPath, SIGNAL(clicked()), SLOT(fdialog()));
+ if (_sf) {
+ int channels = _sf->channels();
+ int format = _sf->format();
+ switch(channels) {
+ case 1: channels = 1; break;
+ case 2: channels = 0; break;
+ case 6: channels = 2; break;
+ }
+ editPath->setText(_sf->finfo()->filePath());
+ comboChannel->setCurrentIndex(channels);
+ comboFormat->setCurrentIndex(format);
+ }
+ else {
+ // create unique mixdown file path
+ QString path = QDir::homePath() + "/" + config.projectPath + "/" + song->projectPath();
+
+ QDir dir(path);
+ for (int i = 1; i < 1000; ++i) {
+ QString fp = QString("md%2.wav").arg(i);
+ if (!dir.exists(fp)) {
+ path = dir.filePath(fp);
+ break;
+ }
+ }
+ editPath->setText(path);
+ }
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MixdownFileDialog::accept()
+ {
+ QString oldpath;
+ unsigned channel = comboChannel->currentIndex();
+ unsigned format = comboFormat->currentIndex();
+ switch (channel) {
+ case 0: channel = 2; break;
+ case 1: channel = 1; break;
+ case 2: channel = 6; break; // not implemented!
+ }
+ switch (format) {
+ case 0: // 16 bit wave
+ format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
+ break;
+ case 1: // 24 bit wave
+ format = SF_FORMAT_WAV | SF_FORMAT_PCM_24;
+ break;
+ case 2: // 32 bit float wave
+ format = SF_FORMAT_WAV | SF_FORMAT_FLOAT;
+ break;
+ }
+ QString path = editPath->text();
+ if (path.isEmpty()) {
+ sf = 0;
+ reject();
+ return;
+ }
+ if (path.right(4) != ".wav")
+ path += ".wav";
+ sf = new SndFile(path);
+ sf->setFormat(format, channel, AL::sampleRate);
+ done(1);
+ }
+
+//---------------------------------------------------------
+// fdialog
+//---------------------------------------------------------
+
+void MixdownFileDialog::fdialog()
+ {
+ QString path = QFileDialog::getSaveFileName(
+ this,
+ tr("MusE: set mixdown file name"),
+ editPath->text(),
+ tr("Wave Files (*.wav);;All Files (*)")
+ );
+ if (!path.isEmpty())
+ editPath->setText(path);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/mixdowndialog.h b/muse_qt4_evolution/muse/widgets/mixdowndialog.h
new file mode 100644
index 00000000..58d1b970
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/mixdowndialog.h
@@ -0,0 +1,48 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __MIXDOWNDIALOG_H__
+#define __MIXDOWNDIALOG_H__
+
+#include "ui_mixdowndialog.h"
+
+class SndFile;
+
+extern SndFile* getSndFile(SndFile* sf, QWidget* parent);
+
+//---------------------------------------------------------
+// MixdownFileDialog
+//---------------------------------------------------------
+
+class MixdownFileDialog : public QDialog, private Ui::MixdownFileDialogBase {
+ Q_OBJECT
+ SndFile* sf;
+
+ private slots:
+ void fdialog();
+ virtual void accept();
+
+ public:
+ MixdownFileDialog(SndFile* f, QWidget* parent = 0);
+ SndFile* sndFile() { return sf; }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/mixdowndialog.ui b/muse_qt4_evolution/muse/widgets/mixdowndialog.ui
new file mode 100644
index 00000000..c1c3d4fa
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/mixdowndialog.ui
@@ -0,0 +1,212 @@
+<ui version="4.0" >
+ <class>MixdownFileDialogBase</class>
+ <widget class="QDialog" name="MixdownFileDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>381</width>
+ <height>116</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Set Mixdown Wavefile</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" colspan="5" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonCancel" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>File Path</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Channel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="4" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="editPath" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="buttonPath" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="../muse.qrc" >:/xpm/fileopen.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="comboChannel" >
+ <item>
+ <property name="text" >
+ <string>Stereo</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Mono</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>5.1</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QComboBox" name="comboFormat" >
+ <item>
+ <property name="text" >
+ <string>wav,16 Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>wav, 24 Bit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>wav, 32 Bit (float)</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Format</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources>
+ <include location="../muse.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MixdownFileDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>93</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>99</x>
+ <y>89</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MixdownFileDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>318</x>
+ <y>94</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>170</x>
+ <y>105</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/noteinfo.cpp b/muse_qt4_evolution/muse/widgets/noteinfo.cpp
new file mode 100644
index 00000000..9ae02ab0
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/noteinfo.cpp
@@ -0,0 +1,207 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "noteinfo.h"
+#include "song.h"
+#include "globals.h"
+#include "awl/posedit.h"
+#include "awl/pitchedit.h"
+
+//---------------------------------------------------
+// NoteInfo
+// ToolBar
+// Start, Len, Note, Velo on, Velo off, Channel
+//---------------------------------------------------
+
+NoteInfo::NoteInfo(QMainWindow* parent)
+ : QToolBar(tr("Note Info"), parent)
+ {
+ deltaMode = false;
+
+ QLabel* label = new QLabel(tr("Start"));
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ addWidget(label);
+
+ selTime = new Awl::PosEdit;
+ selTime->setFixedHeight(24);
+ addWidget(selTime);
+
+ label = new QLabel(tr("Len"), this);
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ addWidget(label);
+
+ selLen = new QSpinBox(this);
+ selLen->setRange(0, 100000);
+ selLen->setFixedHeight(24);
+ addWidget(selLen);
+
+ label = new QLabel(tr("Pitch"), this);
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ addWidget(label);
+ selPitch = new Awl::PitchEdit(this);
+ selPitch->setFixedHeight(24);
+ addWidget(selPitch);
+
+ label = new QLabel(tr("Velo On"), this);
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ addWidget(label);
+ selVelOn = new QSpinBox(this);
+ selVelOn->setRange(0, 127);
+ selVelOn->setFixedHeight(24);
+ addWidget(selVelOn);
+
+ label = new QLabel(tr("Velo Off"), this);
+ label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+ label->setIndent(3);
+ addWidget(label);
+ selVelOff = new QSpinBox(this);
+ selVelOff->setRange(0, 127);
+ selVelOff->setFixedHeight(24);
+ addWidget(selVelOff);
+
+ connect(selLen, SIGNAL(valueChanged(int)), SLOT(lenChanged(int)));
+ connect(selPitch, SIGNAL(valueChanged(int)), SLOT(pitchChanged(int)));
+ connect(selVelOn, SIGNAL(valueChanged(int)), SLOT(velOnChanged(int)));
+ connect(selVelOff, SIGNAL(valueChanged(int)), SLOT(velOffChanged(int)));
+ connect(selTime, SIGNAL(valueChanged(const Pos&)), SLOT(timeChanged(const Pos&)));
+ }
+
+//---------------------------------------------------------
+// setDeltaMode
+//---------------------------------------------------------
+
+void NoteInfo::setDeltaMode(bool val)
+ {
+ deltaMode = val;
+ selPitch->setDeltaMode(val);
+ if (val) {
+ selLen->setRange(-100000, 100000);
+ selVelOn->setRange(-127, 127);
+ selVelOff->setRange(-127, 127);
+ }
+ else {
+ selLen->setRange(0, 100000);
+ selVelOn->setRange(0, 127);
+ selVelOff->setRange(0, 127);
+ }
+ }
+
+//---------------------------------------------------------
+// lenChanged
+//---------------------------------------------------------
+
+void NoteInfo::lenChanged(int val)
+ {
+ if (!signalsBlocked())
+ emit valueChanged(VAL_LEN, val);
+ }
+
+//---------------------------------------------------------
+// velOnChanged
+//---------------------------------------------------------
+
+void NoteInfo::velOnChanged(int val)
+ {
+ if (!signalsBlocked())
+ emit valueChanged(VAL_VELON, val);
+ }
+
+//---------------------------------------------------------
+// velOffChanged
+//---------------------------------------------------------
+
+void NoteInfo::velOffChanged(int val)
+ {
+ if (!signalsBlocked())
+ emit valueChanged(VAL_VELOFF, val);
+ }
+
+//---------------------------------------------------------
+// pitchChanged
+//---------------------------------------------------------
+
+void NoteInfo::pitchChanged(int val)
+ {
+ if (!signalsBlocked())
+ emit valueChanged(VAL_PITCH, val);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void NoteInfo::setValue(ValType type, int val)
+ {
+ blockSignals(true);
+ switch(type) {
+ case VAL_TIME:
+ selTime->setValue(val);
+ break;
+ case VAL_LEN:
+ selLen->setValue(val);
+ break;
+ case VAL_VELON:
+ selVelOn->setValue(val);
+ break;
+ case VAL_VELOFF:
+ selVelOff->setValue(val);
+ break;
+ case VAL_PITCH:
+ selPitch->setValue(val);
+ break;
+ }
+ blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void NoteInfo::setValues(unsigned tick, int val2, int val3, int val4,
+ int val5)
+ {
+ blockSignals(true);
+ if (selTime->pos().tick() != tick)
+ selTime->setValue(tick);
+ if (selLen->value() != val2)
+ selLen->setValue(val2);
+ if (selPitch->value() != val3)
+ selPitch->setValue(val3);
+ if (selVelOn->value() != val4)
+ selVelOn->setValue(val4);
+ if (selVelOff->value() != val5)
+ selVelOff->setValue(val5);
+ blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// timeChanged
+//---------------------------------------------------------
+
+void NoteInfo::timeChanged(const Pos& pos)
+ {
+ if (!signalsBlocked())
+ emit valueChanged(VAL_TIME, pos.tick());
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/noteinfo.h b/muse_qt4_evolution/muse/widgets/noteinfo.h
new file mode 100644
index 00000000..afcb6d1f
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/noteinfo.h
@@ -0,0 +1,68 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __NOTE_INFO_H__
+#define __NOTE_INFO_H__
+
+namespace Awl {
+ class PosEdit;
+ class PitchEdit;
+ };
+namespace AL {
+ class Pos;
+ }
+
+using AL::Pos;
+
+//---------------------------------------------------------
+// NoteInfo
+//---------------------------------------------------------
+
+class NoteInfo : public QToolBar {
+ Awl::PosEdit* selTime;
+ QSpinBox* selLen;
+ Awl::PitchEdit* selPitch;
+ QSpinBox* selVelOn;
+ QSpinBox* selVelOff;
+ bool deltaMode;
+
+ Q_OBJECT
+
+ public:
+ enum ValType {VAL_TIME, VAL_LEN, VAL_VELON, VAL_VELOFF, VAL_PITCH };
+ NoteInfo(QMainWindow* parent);
+ void setValues(unsigned, int, int, int, int);
+ void setDeltaMode(bool);
+
+ private slots:
+ void lenChanged(int);
+ void velOnChanged(int);
+ void velOffChanged(int);
+ void pitchChanged(int);
+ void timeChanged(const Pos&);
+
+ public slots:
+ void setValue(ValType, int);
+
+ signals:
+ void valueChanged(NoteInfo::ValType, int);
+ };
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/outportcombo.cpp b/muse_qt4_evolution/muse/widgets/outportcombo.cpp
new file mode 100644
index 00000000..a3e55adc
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/outportcombo.cpp
@@ -0,0 +1,52 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "outportcombo.h"
+#include "song.h"
+#include "midioutport.h"
+
+//---------------------------------------------------------
+// OutportCombo
+//---------------------------------------------------------
+
+OutportCombo::OutportCombo(QWidget* parent)
+ : QComboBox(parent)
+ {
+ setToolTip(tr("Midi Output Port"));
+ populate();
+ // midiPort names may change, when inserting/deleting syntis
+ connect(song, SIGNAL(trackAdded(Track*,int)), SLOT(populate()));
+ connect(song, SIGNAL(trackRemoved(Track*)), SLOT(populate()));
+ }
+
+//---------------------------------------------------------
+// populate
+//---------------------------------------------------------
+
+void OutportCombo::populate()
+ {
+ int cur = currentIndex();
+ clear();
+ MidiOutPortList* mpl = song->midiOutPorts();
+ for (iMidiOutPort i = mpl->begin(); i != mpl->end(); ++i)
+ addItem((*i)->name());
+ setCurrentIndex(cur);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/outportcombo.h b/muse_qt4_evolution/muse/widgets/outportcombo.h
new file mode 100644
index 00000000..8a49fc53
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/outportcombo.h
@@ -0,0 +1,39 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __OUTPORTCOMBO_H__
+#define __OUTPORTCOMBO_H__
+
+//---------------------------------------------------------
+// OutportCombo
+//---------------------------------------------------------
+
+class OutportCombo : public QComboBox {
+ Q_OBJECT
+
+ private slots:
+ void populate();
+
+ public:
+ OutportCombo(QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/quantcombo.cpp b/muse_qt4_evolution/muse/widgets/quantcombo.cpp
new file mode 100644
index 00000000..89cd27fc
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/quantcombo.cpp
@@ -0,0 +1,80 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "quantcombo.h"
+
+static int quantTable[] = {
+ 1, 24, 48, 96, 192, 384, 768, 1536,
+ 16, 32, 64, 128, 256, 512, 1024,
+ 36, 72, 144, 288, 576, 1152, 2304
+ };
+
+static const char* quantStrings[] = {
+ QT_TR_NOOP("Off"), "64", "32", "16", "8", "4", "2", "1",
+ "64T", "32T", "16T", "8T", "4T", "2T", "1T",
+ "64.", "32.", "16.", "8.", "4.", "2.", "1."
+ };
+
+//---------------------------------------------------------
+// QuantCombo
+//---------------------------------------------------------
+
+QuantCombo::QuantCombo(QWidget* parent)
+ : QComboBox(parent)
+ {
+ for (unsigned i = 0; i < sizeof(quantStrings)/sizeof(*quantStrings); i++)
+ addItem(tr(quantStrings[i]), i);
+ connect(this, SIGNAL(activated(int)), SLOT(_quantChanged(int)));
+ }
+
+//---------------------------------------------------------
+// _quantChanged
+//---------------------------------------------------------
+
+void QuantCombo::_quantChanged(int idx)
+ {
+ emit quantChanged(quantTable[idx]);
+ }
+
+//---------------------------------------------------------
+// quant
+//---------------------------------------------------------
+
+int QuantCombo::quant() const
+ {
+ return quantTable[currentIndex()];
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void QuantCombo::setQuant(int val)
+ {
+ for (unsigned i = 0; i < sizeof(quantTable)/sizeof(*quantTable); i++) {
+ if (val == quantTable[i]) {
+ setCurrentIndex(i);
+ return;
+ }
+ }
+ printf("setQuant(%d) not defined\n", val);
+abort();
+ setCurrentIndex(0);
+ }
diff --git a/muse_qt4_evolution/muse/widgets/quantcombo.h b/muse_qt4_evolution/muse/widgets/quantcombo.h
new file mode 100644
index 00000000..6cdfb69d
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/quantcombo.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __QUANTCOMBO_H__
+#define __QUANTCOMBO_H__
+
+//---------------------------------------------------------
+// QuantCombo
+//---------------------------------------------------------
+
+class QuantCombo : public QComboBox {
+ Q_OBJECT
+
+ private slots:
+ void _quantChanged(int);
+
+ public slots:
+ void setQuant(int);
+
+ signals:
+ void quantChanged(int);
+
+ public:
+ QuantCombo(QWidget* parent = 0);
+ int quant() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/rastercombo.cpp b/muse_qt4_evolution/muse/widgets/rastercombo.cpp
new file mode 100644
index 00000000..f5b3c7e6
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/rastercombo.cpp
@@ -0,0 +1,82 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "rastercombo.h"
+
+static int rasterTable[] = {
+ //------ 8 4 2
+ 1, 6, 12, 24, 48, 96, 192, 384, 768, 1536,
+ 4, 8, 16, 32, 64, 128, 256, 512, 1024,
+ 9, 18, 36, 72, 144, 288, 576, 1152, 2304
+ };
+
+static const char* rasterStrings[] = {
+ QT_TR_NOOP("Off"), "3pp", "6pp", "64", "32", "16", "8", "4", "2", "1",
+ "2pp", "5pp", "64T", "32T", "16T", "8T", "4T", "2T", "1T",
+ "4pp", "7pp", "64.", "32.", "16.", "8.", "4.", "2.", "1."
+ };
+
+//---------------------------------------------------------
+// RasterCombo
+//---------------------------------------------------------
+
+RasterCombo::RasterCombo(QWidget* parent)
+ : QComboBox(parent)
+ {
+ for (unsigned i = 0; i < sizeof(rasterStrings)/sizeof(*rasterStrings); i++)
+ addItem(tr(rasterStrings[i]), i);
+ connect(this, SIGNAL(activated(int)), SLOT(_rasterChanged(int)));
+ }
+
+//---------------------------------------------------------
+// _rasterChanged
+//---------------------------------------------------------
+
+void RasterCombo::_rasterChanged(int idx)
+ {
+ emit rasterChanged(rasterTable[idx]);
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+
+int RasterCombo::raster() const
+ {
+ return rasterTable[currentIndex()];
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void RasterCombo::setRaster(int val)
+ {
+ for (unsigned i = 0; i < sizeof(rasterTable)/sizeof(*rasterTable); i++) {
+ if (val == rasterTable[i]) {
+ setCurrentIndex(i);
+ return;
+ }
+ }
+ printf("setRaster(%d) not defined\n", val);
+ setCurrentIndex(0);
+ }
+
+
diff --git a/muse_qt4_evolution/muse/widgets/rastercombo.h b/muse_qt4_evolution/muse/widgets/rastercombo.h
new file mode 100644
index 00000000..9ae48ba6
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/rastercombo.h
@@ -0,0 +1,46 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __RASTERCOMBO_H__
+#define __RASTERCOMBO_H__
+
+//---------------------------------------------------------
+// RasterCombo
+//---------------------------------------------------------
+
+class RasterCombo : public QComboBox {
+ Q_OBJECT
+
+ private slots:
+ void _rasterChanged(int);
+
+ public slots:
+ void setRaster(int);
+
+ signals:
+ void rasterChanged(int);
+
+ public:
+ RasterCombo(QWidget* parent = 0);
+ int raster() const;
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/recordbutton.h b/muse_qt4_evolution/muse/widgets/recordbutton.h
new file mode 100644
index 00000000..9b30de01
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/recordbutton.h
@@ -0,0 +1,38 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __RECORDBUTTON_H__
+#define __RCORDBUTTON_H__
+
+#include "simplebutton.h"
+
+//---------------------------------------------------------
+// RecordButton
+//---------------------------------------------------------
+
+class RecordButton : public SimpleButton {
+ Q_OBJECT
+
+ public:
+ RecordButton(QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.cpp b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.cpp
new file mode 100644
index 00000000..dab3330f
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.cpp
@@ -0,0 +1,97 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2003 Mathias Lundgren (lunar_shuttle@users.sourceforge.net)
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "shortcutcapturedialog.h"
+#include "shortcuts.h"
+
+//---------------------------------------------------------
+// ShortcutCaptureDialog
+//---------------------------------------------------------
+
+ShortcutCaptureDialog::ShortcutCaptureDialog(Shortcut* _s, QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ s = _s;
+
+ oshrtLabel->setText(s->key.toString(QKeySequence::NativeText));
+ connect(clearButton, SIGNAL(clicked()), SLOT(clearClicked()));
+ clearClicked();
+ grabKeyboard();
+ }
+
+//---------------------------------------------------------
+// ShortcutCaptureDialog
+//---------------------------------------------------------
+
+ShortcutCaptureDialog::~ShortcutCaptureDialog()
+ {
+ releaseKeyboard();
+ }
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+
+void ShortcutCaptureDialog::keyPressEvent(QKeyEvent* e)
+ {
+ if (key.count() >= 4)
+ return;
+ int k = e->key();
+ if (k == 0 || k == Qt::Key_Shift || k == Qt::Key_Control ||
+ k == Qt::Key_Meta || k == Qt::Key_Alt || k == Qt::Key_AltGr
+ || k == Qt::Key_CapsLock || k == Qt::Key_NumLock
+ || k == Qt::Key_ScrollLock)
+ return;
+
+ k += e->modifiers();
+ switch(key.count()) {
+ case 0: key = QKeySequence(k); break;
+ case 1: key = QKeySequence(key[0], k); break;
+ case 2: key = QKeySequence(key[0], key[1], k); break;
+ case 3: key = QKeySequence(key[0], key[1], key[2], k); break;
+ }
+
+ // Check against conflicting shortcuts
+ bool conflict = false;
+ QString msgString;
+ foreach (Shortcut* ss, shortcuts) {
+ if ((s != ss) && (ss->key == key)
+ && (ss->type & (s->type | GLOBAL_SHRT | INVIS_SHRT))) {
+ msgString = tr("Shortcut conflicts with ") + ss->descr;
+ conflict = true;
+ break;
+ }
+ }
+ messageLabel->setText(msgString);
+ okButton->setEnabled(conflict == false);
+ nshrtLabel->setText(key.toString(QKeySequence::NativeText));
+ }
+
+//---------------------------------------------------------
+// clearClicked
+//---------------------------------------------------------
+
+void ShortcutCaptureDialog::clearClicked()
+ {
+ nshrtLabel->setText(tr("Undefined"));
+ key = 0;
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.h b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.h
new file mode 100644
index 00000000..4c2b5b6c
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.h
@@ -0,0 +1,52 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2003 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+//
+// C++ Interface: shortcutcapturedialog
+//
+// Description:
+// Dialog window for capturing keyboard shortcuts
+//
+
+#include "shortcuts.h"
+#include "filedialog.h"
+#include "ui_shortcutcapturedialog.h"
+
+//---------------------------------------------------------
+// ShortcutCaptureDialog
+//---------------------------------------------------------
+
+class ShortcutCaptureDialog : public QDialog, public Ui::ShortcutCaptureDialogBase
+ {
+ Q_OBJECT
+ private:
+ Shortcut* s;
+ void keyPressEvent(QKeyEvent* e);
+ QKeySequence key;
+
+ private slots:
+ void clearClicked();
+
+ public:
+ ShortcutCaptureDialog(Shortcut* s = 0, QWidget* parent = 0);
+ ~ShortcutCaptureDialog();
+ QKeySequence getKey() const { return key; }
+ };
+
diff --git a/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.ui b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.ui
new file mode 100644
index 00000000..0df2338f
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutcapturedialog.ui
@@ -0,0 +1,162 @@
+<ui version="4.0" >
+ <class>ShortcutCaptureDialogBase</class>
+ <widget class="QDialog" name="ShortcutCaptureDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>461</width>
+ <height>214</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Enter shortcut sequence</string>
+ </property>
+ <property name="modal" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="descrLabel" >
+ <property name="text" >
+ <string>Press up to 4 keys to enter shortcut sequence!</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QLabel" name="messageLabel" >
+ <property name="text" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="oshrtTextLabel" >
+ <property name="text" >
+ <string>Old shortcut:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLineEdit" name="oshrtLabel" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="nshrtTextLabel" >
+ <property name="text" >
+ <string>New shortcut:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QLineEdit" name="nshrtLabel" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="clearButton" >
+ <property name="text" >
+ <string>Clear</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>OK</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ShortcutCaptureDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>337</x>
+ <y>189</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>242</x>
+ <y>194</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>ShortcutCaptureDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>425</x>
+ <y>194</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>350</x>
+ <y>153</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/shortcutconfig.cpp b/muse_qt4_evolution/muse/widgets/shortcutconfig.cpp
new file mode 100644
index 00000000..025f1494
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutconfig.cpp
@@ -0,0 +1,167 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2003 Mathias Lundgren (lunar_shuttle@users.sourceforge.net)
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "shortcutconfig.h"
+#include "shortcutcapturedialog.h"
+#include "shortcuts.h"
+
+//---------------------------------------------------------
+// ShortcutConfig
+//---------------------------------------------------------
+
+ShortcutConfig::ShortcutConfig(QWidget* parent)
+ : QDialog(parent)
+ {
+ setupUi(this);
+ connect(cgListView, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ this, SLOT(categorySelChanged(QTreeWidgetItem*)));
+ connect(scListView, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ this, SLOT(shortcutSelChanged(QTreeWidgetItem*)));
+ connect(defineButton, SIGNAL(pressed()), this, SLOT(assignShortcut()));
+ connect(clearButton, SIGNAL(pressed()), this, SLOT(clearShortcut()));
+ connect(applyButton, SIGNAL(pressed()), this, SLOT(assignAll()));
+ connect(scListView, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(assignShortcut()));
+
+ current_category = ALL_SHRT;
+//TD cgListView->setSorting(SHRT_CATEGORY_COL, -1);
+ _config_changed = false;
+
+ //Fill up category listview:
+ for (int i=0; i < SHRT_NUM_OF_CATEGORIES; i++) {
+ QTreeWidgetItem* newItem = new QTreeWidgetItem;
+ newItem->setText(SHRT_CATEGORY_COL, tr(shortcut_category[i].name));
+ newItem->setData(0, Qt::UserRole, i);
+ cgListView->addTopLevelItem(newItem);
+ }
+ updateSCListView();
+ }
+
+//---------------------------------------------------------
+// updateSCListView
+//---------------------------------------------------------
+
+void ShortcutConfig::updateSCListView(int category)
+ {
+ scListView->clear();
+ foreach (Shortcut* s, shortcuts) {
+ if (s && (s->type & category)) {
+ QTreeWidgetItem* newItem;
+ newItem = new QTreeWidgetItem;
+ newItem->setText(SHRT_DESCR_COL, tr(s->descr));
+ QKeySequence seq = s->key;
+ newItem->setText(SHRT_SHRTCUT_COL, s->key.toString(QKeySequence::NativeText));
+ newItem->setData(0, Qt::UserRole, s->xml);
+ scListView->addTopLevelItem(newItem);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// assignShortcut
+//---------------------------------------------------------
+
+void ShortcutConfig::assignShortcut()
+ {
+ QTreeWidgetItem* active = scListView->currentItem();
+ Shortcut* s = shortcuts[active->data(0, Qt::UserRole).toString()];
+ ShortcutCaptureDialog sc(s, this);
+ if (sc.exec()) {
+ s->key = sc.getKey();
+ active->setText(SHRT_SHRTCUT_COL, s->key.toString(QKeySequence::NativeText));
+ _config_changed = true;
+ }
+ clearButton->setEnabled(true);
+ }
+
+//---------------------------------------------------------
+// clearShortcut
+//---------------------------------------------------------
+
+void ShortcutConfig::clearShortcut()
+ {
+ QTreeWidgetItem* active = scListView->currentItem();
+ Shortcut* s = shortcuts[active->data(0, Qt::UserRole).toString()];
+ s->key = 0;
+ active->setText(SHRT_SHRTCUT_COL, "");
+ clearButton->setEnabled(false);
+ _config_changed = true;
+ }
+
+//---------------------------------------------------------
+// categorySelChanged
+//---------------------------------------------------------
+
+void ShortcutConfig::categorySelChanged(QTreeWidgetItem* i)
+ {
+ int idx = i->data(0, Qt::UserRole).toInt();
+ current_category = shortcut_category[idx].id_flag;
+ updateSCListView(current_category);
+ }
+
+//---------------------------------------------------------
+// shortcutSelChanged
+//---------------------------------------------------------
+
+void ShortcutConfig::shortcutSelChanged(QTreeWidgetItem* active)
+ {
+ defineButton->setEnabled(active != 0);
+ if (active == 0) {
+ clearButton->setEnabled(false);
+ return;
+ }
+ Shortcut* s = shortcuts[active->data(0, Qt::UserRole).toString()];
+ clearButton->setEnabled(s && !s->key.isEmpty());
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void ShortcutConfig::closeEvent(QCloseEvent*)
+ {
+ done(_config_changed);
+ }
+
+//---------------------------------------------------------
+// assignAll
+//---------------------------------------------------------
+
+void ShortcutConfig::assignAll()
+ {
+ foreach(QWidget* w, QApplication::allWidgets()) {
+ foreach(QAction* a, w->actions()) {
+ QVariant v(a->data());
+ if (v.type() == QVariant::String) {
+ QString name = v.toString();
+ foreach (Shortcut* s, shortcuts) {
+ if (s->xml == name) {
+ if (a->shortcut() != s->key) {
+ printf("shortcut <%s> changed\n", s->xml);
+ a->setShortcuts(QList<QKeySequence>());
+ a->setShortcut(s->key);
+ }
+ }
+ }
+ }
+ }
+ }
+ done(_config_changed);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/shortcutconfig.h b/muse_qt4_evolution/muse/widgets/shortcutconfig.h
new file mode 100644
index 00000000..0e9e24b2
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutconfig.h
@@ -0,0 +1,50 @@
+//
+// C++ Interface: shortcutconfig
+//
+// Description:
+// Dialog for configuring keyboard shortcuts
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sourceforge.net>, (C) 2003
+//
+// Copyright: Mathias Lundgren (lunar_shuttle@users.sourceforge.net) (C) 2003
+//
+//
+#ifndef __SHORTCUTCONFIG_H
+#define __SHORTCUTCONFIG_H
+
+#include "ui_shortcutconfig.h"
+#include "shortcuts.h"
+
+#define SHRT_CATEGORY_COL 0
+enum {
+ SHRT_DESCR_COL = 0,
+ SHRT_SHRTCUT_COL
+ };
+
+//---------------------------------------------------------
+// ShortcutConfig
+//---------------------------------------------------------
+
+class ShortcutConfig : public QDialog, public Ui::ShortcutConfigBase {
+ Q_OBJECT
+ private:
+ int current_category;
+ void updateSCListView(int category);
+ void updateSCListView() { updateSCListView(current_category); }
+ void closeEvent(QCloseEvent *e);
+
+ private slots:
+ void categorySelChanged(QTreeWidgetItem*);
+ void shortcutSelChanged(QTreeWidgetItem*);
+ void assignShortcut();
+ void clearShortcut();
+ void assignAll();
+
+ public:
+ ShortcutConfig(QWidget* parent = 0);
+ bool _config_changed;
+ static const shortcut_cg shortcut_category[];
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/shortcutconfig.ui b/muse_qt4_evolution/muse/widgets/shortcutconfig.ui
new file mode 100644
index 00000000..901e2cac
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/shortcutconfig.ui
@@ -0,0 +1,180 @@
+<ui version="4.0" >
+ <class>ShortcutConfigBase</class>
+ <widget class="QDialog" name="ShortcutConfigBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>661</width>
+ <height>403</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Configure Keyboard Shortcuts</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTreeWidget" name="cgListView" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>105</width>
+ <height>200</height>
+ </size>
+ </property>
+ <property name="indentation" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="sortingEnabled" >
+ <bool>true</bool>
+ </property>
+ <property name="columnCount" >
+ <number>1</number>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Category</string>
+ </property>
+ </column>
+ </widget>
+ <widget class="QTreeWidget" name="scListView" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>170</width>
+ <height>230</height>
+ </size>
+ </property>
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="indentation" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="sortingEnabled" >
+ <bool>true</bool>
+ </property>
+ <property name="allColumnsShowFocus" >
+ <bool>true</bool>
+ </property>
+ <property name="columnCount" >
+ <number>2</number>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Description</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Shortcut</string>
+ </property>
+ </column>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="clearButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>&amp;Clear</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="defineButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>&amp;Define</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>30</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="applyButton" >
+ <property name="text" >
+ <string>Ok</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/siglabel.cpp b/muse_qt4_evolution/muse/widgets/siglabel.cpp
new file mode 100644
index 00000000..2f8d3e84
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/siglabel.cpp
@@ -0,0 +1,165 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "siglabel.h"
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+#include "globals.h"
+
+//---------------------------------------------------------
+// SigLabel
+// edit Signature Values (4/4)
+//---------------------------------------------------------
+
+SigLabel::SigLabel(QWidget* parent)
+ : QLabel(parent)
+ {
+ z = n = 0;
+ setFocusPolicy(Qt::NoFocus);
+ setAlignment(Qt::AlignCenter);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void SigLabel::mousePressEvent(QMouseEvent* event)
+ {
+ int button = event->button();
+ bool zaehler = event->x() < width() /2;
+
+ int zz = z, nn = n;
+ switch (button) {
+ case Qt::LeftButton:
+ return;
+ case Qt::MidButton:
+ incValue(zaehler, false, zz, nn);
+ break;
+ case Qt::RightButton:
+ incValue(zaehler, true, zz, nn);
+ break;
+ default:
+ break;
+ }
+ if ((zz != z) || (nn != n)) {
+ setValue(zz, nn);
+ emit valueChanged(zz, nn);
+ }
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void SigLabel::incValue(bool zaehler, bool up, int& zz, int& nn)
+ {
+ if (!up) {
+ if (zaehler) {
+ --zz;
+ if (zz < 1)
+ zz = 1;
+ }
+ else {
+ switch (nn) {
+ case 1: break;
+ case 2: nn = 1; break;
+ case 4: nn = 2; break;
+ case 8: nn = 4; break;
+ case 16: nn = 8; break;
+ case 32: nn = 16; break;
+ case 64: nn = 32; break;
+ case 128: nn = 64; break;
+ }
+ }
+ }
+ else {
+ if (zaehler) {
+ ++zz;
+ if (zz > 16)
+ zz = 16;
+ }
+ else {
+ switch (nn) {
+ case 1: nn = 2; break;
+ case 2: nn = 4; break;
+ case 4: nn = 8; break;
+ case 8: nn = 16; break;
+ case 16: nn = 32; break;
+ case 32: nn = 64; break;
+ case 64: nn = 128; break;
+ case 128: break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void SigLabel::wheelEvent(QWheelEvent* event)
+ {
+ bool zaehler = event->x() < width() /2;
+ int delta = event->delta();
+ int zz = z, nn = n;
+
+ bool inc = delta >= 0;
+ incValue(zaehler, inc, zz, nn);
+ if ((zz != z) || (nn != n)) {
+ setValue(zz, nn);
+ emit valueChanged(zz, nn);
+ }
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void SigLabel::setValue(int a, int b)
+ {
+ if (a == z && b == n)
+ return;
+ z = a;
+ n = b;
+ QString sa;
+ sa.setNum(a);
+
+ QString sb;
+ sb.setNum(b);
+
+ QString s = sa + QString("/") + sb;
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void SigLabel::setFrame(bool flag)
+ {
+ setFrameStyle(flag ? Panel | Sunken : NoFrame);
+ setLineWidth(2);
+ }
diff --git a/muse_qt4_evolution/muse/widgets/siglabel.h b/muse_qt4_evolution/muse/widgets/siglabel.h
new file mode 100644
index 00000000..8ffa317e
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/siglabel.h
@@ -0,0 +1,50 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SIGLABEL_H__
+#define __SIGLABEL_H__
+
+//---------------------------------------------------------
+// SigLabel
+// show/edit time signature
+//---------------------------------------------------------
+
+class SigLabel : public QLabel {
+ Q_OBJECT
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void wheelEvent(QWheelEvent*);
+ void incValue(bool zaehler, bool inc, int&, int&);
+
+ protected:
+ int z, n;
+
+ signals:
+ void valueChanged(int, int);
+
+ public slots:
+ virtual void setValue(int, int);
+
+ public:
+ SigLabel(QWidget* parent = 0);
+ void value(int& a, int& b) const { a = z; b = n; }
+ void setFrame(bool);
+ };
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/simplebutton.cpp b/muse_qt4_evolution/muse/widgets/simplebutton.cpp
new file mode 100644
index 00000000..36ab7097
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/simplebutton.cpp
@@ -0,0 +1,65 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "simplebutton.h"
+#include "gui.h"
+
+//---------------------------------------------------------
+// SimpleButton
+//---------------------------------------------------------
+
+SimpleButton::SimpleButton(const QString& on, const QString& off, QWidget* parent)
+ : QToolButton(parent)
+ {
+ setAutoRaise(true);
+ QIcon icon;
+ icon.addFile(on, ICON_SIZE, QIcon::Normal, QIcon::On);
+ icon.addFile(off, ICON_SIZE, QIcon::Normal, QIcon::Off);
+ QAction* a = new QAction(this);
+ a->setIcon(icon);
+ setDefaultAction(a);
+ }
+
+//---------------------------------------------------------
+// SimpleButton
+//---------------------------------------------------------
+
+SimpleButton::SimpleButton(QPixmap* on, QPixmap* off, QWidget* parent)
+ : QToolButton(parent)
+ {
+ setAutoRaise(true);
+ QIcon icon(*off);
+ icon.addPixmap(*on, QIcon::Normal, QIcon::On);
+ QAction* a = new QAction(this);
+ a->setIcon(icon);
+ setDefaultAction(a);
+ }
+
+//---------------------------------------------------------
+// SimpleButton
+//---------------------------------------------------------
+
+SimpleButton::SimpleButton(const QString& s, QWidget* parent)
+ : QToolButton(parent)
+ {
+ setAutoRaise(false);
+ setText(s);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/simplebutton.h b/muse_qt4_evolution/muse/widgets/simplebutton.h
new file mode 100644
index 00000000..469767ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/simplebutton.h
@@ -0,0 +1,41 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SIMPLE_BUTTON_H__
+#define __SIMPLE_BUTTON_H__
+
+//---------------------------------------------------------
+// SimpleButton
+//---------------------------------------------------------
+
+class SimpleButton : public QToolButton {
+ Q_OBJECT
+
+ int _id;
+ virtual QSize minimumSizeHint() const { return QSize(0, 0); }
+
+ public:
+ SimpleButton(QPixmap* on, QPixmap* off, QWidget* parent = 0);
+ SimpleButton(const QString& on, const QString& off, QWidget* parent = 0);
+ SimpleButton(const QString& s, QWidget* parent = 0);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/splitter.cpp b/muse_qt4_evolution/muse/widgets/splitter.cpp
new file mode 100644
index 00000000..b95750ab
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/splitter.cpp
@@ -0,0 +1,107 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "splitter.h"
+#include "utils.h"
+#include "al/xml.h"
+
+//---------------------------------------------------------
+// SplitterHandle
+//---------------------------------------------------------
+
+void SplitterHandle::paintEvent(QPaintEvent* ev)
+ {
+ QPainter p(this);
+ QRect r(ev->rect());
+ if (orientation() == Qt::Horizontal) {
+ int x = 0;
+ int y1 = r.y();
+ int y2 = y1 + r.height();
+ if (y1 == 0)
+ y1 = 1;
+ if (y2 == height())
+ y2 = height() - 2;
+ for (int i = 0; i < splitWidth; ++i) {
+ p.setPen(lineColor[i]);
+ p.drawLine(x, y1, x, y2);
+ ++x;
+ }
+ p.setPen(lineColor[0]);
+ p.drawLine(1, 0, splitWidth - 2, 0);
+ p.drawLine(1, height()-1, splitWidth - 2, height()-1);
+ }
+ else {
+ int y = 0;
+ int x1 = r.x();
+ int x2 = x1 + r.width();
+ for (int i = 0; i < splitWidth; ++i) {
+ p.setPen(lineColor[i]);
+ p.drawLine(x1, y, x2, y);
+ ++y;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// Splitter
+//---------------------------------------------------------
+
+Splitter::Splitter(Qt::Orientation o)
+ : QSplitter(o)
+ {
+ setHandleWidth(splitWidth);
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void Splitter::writeStatus(const char* name, Xml& xml)
+ {
+ QList<int> sl = sizes();
+ xml.stag(name);
+ int n = sl.size();
+ for (int i = 0; i < n; ++i) {
+ int n = sl.at(i);
+ xml.tag("size", n);
+ }
+ xml.etag(name);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void Splitter::readStatus(QDomNode node)
+ {
+ QList<int> sl;
+ for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
+ QDomElement e = n.toElement();
+ QString tag(e.tagName());
+ int i = e.text().toInt();
+ if (tag == "size") {
+ sl.push_back(i);
+ }
+ else
+ printf("Splitter::unknown tag <%s>\n", tag.toLatin1().data());
+ }
+ setSizes(sl);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/splitter.h b/muse_qt4_evolution/muse/widgets/splitter.h
new file mode 100644
index 00000000..238031c3
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/splitter.h
@@ -0,0 +1,62 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __SPLITTER_H__
+#define __SPLITTER_H__
+
+namespace AL {
+ class Xml;
+ };
+
+using AL::Xml;
+
+//---------------------------------------------------------
+// SplitterHandle
+//---------------------------------------------------------
+
+class SplitterHandle : public QSplitterHandle {
+ Q_OBJECT
+ virtual void paintEvent(QPaintEvent*);
+
+ public:
+ SplitterHandle(Qt::Orientation o, QSplitter* parent)
+ : QSplitterHandle(o, parent) {
+ }
+ };
+
+//---------------------------------------------------------
+// Splitter
+//---------------------------------------------------------
+
+class Splitter : public QSplitter {
+ Q_OBJECT
+
+ protected:
+ virtual QSplitterHandle* createHandle() {
+ return new SplitterHandle(orientation(), this);
+ }
+ public:
+ Splitter(Qt::Orientation);
+ void writeStatus(const char* name, Xml&);
+ void readStatus(QDomNode node);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/synthwizardbase.h b/muse_qt4_evolution/muse/widgets/synthwizardbase.h
new file mode 100644
index 00000000..590ff789
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/synthwizardbase.h
@@ -0,0 +1,58 @@
+/****************************************************************************
+** Form interface generated from reading ui file 'synthwizardbase.ui'
+**
+** Created: Wed Nov 12 10:38:24 2003
+** by: The User Interface Compiler ($Id: synthwizardbase.h,v 1.6 2005/09/22 20:13:39 wschweer Exp $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef SYNTHCONFIGBASE_H
+#define SYNTHCONFIGBASE_H
+
+#include <qvariant.h>
+#include <q3wizard.h>
+//Added by qt3to4:
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QGridLayout>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QWidget;
+class Q3GroupBox;
+class Q3ListView;
+class Q3ListViewItem;
+class QPushButton;
+
+class SynthConfigBase : public Q3Wizard
+{
+ Q_OBJECT
+
+public:
+ SynthConfigBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
+ ~SynthConfigBase();
+
+ QWidget* WizardPage;
+ Q3GroupBox* GroupBox2;
+ Q3ListView* synthList;
+ QPushButton* addInstance;
+ Q3GroupBox* GroupBox3;
+ Q3ListView* instanceList;
+ QPushButton* removeInstance;
+ QWidget* WizardPage_2;
+
+protected:
+ QVBoxLayout* WizardPageLayout;
+ QVBoxLayout* GroupBox2Layout;
+ QHBoxLayout* Layout1;
+ QVBoxLayout* GroupBox3Layout;
+ QHBoxLayout* Layout3;
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // SYNTHCONFIGBASE_H
diff --git a/muse_qt4_evolution/muse/widgets/tb1.cpp b/muse_qt4_evolution/muse/widgets/tb1.cpp
new file mode 100644
index 00000000..33400420
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/tb1.cpp
@@ -0,0 +1,180 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tb1.h"
+#include "globals.h"
+#include "awl/poslabel.h"
+#include "awl/pitchlabel.h"
+#include "rastercombo.h"
+#include "quantcombo.h"
+
+//---------------------------------------------------------
+// genToolbar
+// solo time pitch raster quant
+//---------------------------------------------------------
+
+Toolbar1::Toolbar1(int r, int q, bool showPitch)
+ {
+ solo = new QToolButton;
+ solo->setText(tr("Solo"));
+ solo->setCheckable(true);
+ addWidget(solo);
+
+ //---------------------------------------------------
+ // Cursor Position
+ //---------------------------------------------------
+
+ QLabel* label = new QLabel;
+ label->setText(tr("Cursor"));
+ label->setIndent(3);
+ addWidget(label);
+ pos = new Awl::PosLabel;
+ pos->setFixedHeight(24);
+ addWidget(pos);
+ if (showPitch) {
+ pitch = new Awl::PitchLabel;
+ pitch->setEnabled(false);
+ pitch->setFixedHeight(24);
+ addWidget(pitch);
+ }
+ else
+ pitch = 0;
+
+ //---------------------------------------------------
+ // Raster, Quant.
+ //---------------------------------------------------
+
+ QLabel* l = new QLabel(tr("Snap"));
+ l->setIndent(5);
+ addWidget(l);
+ raster = new RasterCombo;
+ addWidget(raster);
+
+ l = new QLabel(tr("Quantize"));
+ l->setIndent(5);
+ addWidget(l);
+ quant = new QuantCombo;
+ addWidget(quant);
+
+ raster->setFixedHeight(24);
+ quant->setFixedHeight(24);
+
+ setRaster(r);
+ setQuant(q);
+
+ //---------------------------------------------------
+ // To Menu
+ //---------------------------------------------------
+
+ addWidget(new QLabel(tr("To")));
+ toList = new QComboBox;
+ toList->setFixedHeight(24);
+ addWidget(toList);
+ toList->addItem(tr("All Events"), RANGE_ALL);
+ toList->addItem(tr("Looped Ev."), RANGE_LOOPED);
+ toList->addItem(tr("Selected Ev."), RANGE_SELECTED);
+ toList->addItem(tr("Looped+Sel."), RANGE_LOOPED | RANGE_SELECTED);
+
+ connect(raster, SIGNAL(rasterChanged(int)), SIGNAL(rasterChanged(int)));
+ connect(quant, SIGNAL(quantChanged(int)), SIGNAL(quantChanged(int)));
+ connect(toList, SIGNAL(activated(int)), SIGNAL(toChanged(int)));
+ connect(solo, SIGNAL(toggled(bool)), SIGNAL(soloChanged(bool)));
+ pos->setEnabled(false);
+ }
+
+//---------------------------------------------------------
+// setApplyTo
+//---------------------------------------------------------
+
+void Toolbar1::setApplyTo(int val)
+ {
+ toList->setCurrentIndex(toList->findData(val));
+ }
+
+//---------------------------------------------------------
+// setPitch
+//---------------------------------------------------------
+
+void Toolbar1::setPitch(int val)
+ {
+ if (pitch) {
+ pitch->setEnabled(val != -1);
+ pitch->setPitch(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setInt
+//---------------------------------------------------------
+
+void Toolbar1::setInt(int val)
+ {
+ if (pitch) {
+ pitch->setEnabled(val != -1);
+ pitch->setInt(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void Toolbar1::setTime(const AL::Pos& val, bool enable)
+ {
+ pos->setValue(val, enable);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void Toolbar1::setRaster(int val)
+ {
+ raster->setRaster(val);
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void Toolbar1::setQuant(int val)
+ {
+ quant->setQuant(val);
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+void Toolbar1::setSolo(bool flag)
+ {
+ solo->setChecked(flag);
+ }
+
+//---------------------------------------------------------
+// setPitchMode
+//---------------------------------------------------------
+
+void Toolbar1::setPitchMode(bool flag)
+ {
+ if (pitch)
+ pitch->setPitchMode(flag);
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/tb1.h b/muse_qt4_evolution/muse/widgets/tb1.h
new file mode 100644
index 00000000..e10884d2
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/tb1.h
@@ -0,0 +1,71 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TB1_H__
+#define __TB1_H__
+
+namespace Awl {
+ class PosLabel;
+ class PitchLabel;
+ };
+namespace AL {
+ class Pos;
+ };
+
+class RasterCombo;
+class QuantCombo;
+
+enum { RANGE_ALL, RANGE_SELECTED, RANGE_LOOPED };
+
+//---------------------------------------------------------
+// Toolbar1
+//---------------------------------------------------------
+
+class Toolbar1 : public QToolBar {
+ QToolButton* solo;
+ Awl::PosLabel* pos;
+ Awl::PitchLabel* pitch;
+ QuantCombo* quant;
+ QComboBox* toList;
+ RasterCombo* raster;
+ Q_OBJECT
+
+ public slots:
+ void setTime(const AL::Pos&, bool);
+ void setPitch(int);
+ void setInt(int);
+ void setRaster(int);
+ void setQuant(int);
+
+ signals:
+ void rasterChanged(int);
+ void quantChanged(int);
+ void soloChanged(bool);
+ void toChanged(int);
+
+ public:
+ Toolbar1(int r=96, int q=96, bool showPitch=true);
+ void setSolo(bool val);
+ void setPitchMode(bool flag);
+ void setApplyTo(int);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/tools.cpp b/muse_qt4_evolution/muse/widgets/tools.cpp
new file mode 100644
index 00000000..39d7aa4d
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/tools.cpp
@@ -0,0 +1,100 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "tools.h"
+#include "icons.h"
+#include "shortcuts.h"
+
+const char* toolList[TOOLS] = {
+ "pointer", "pencil", "eraser", "scissor", "glue",
+ "quantize", "draw", "mute_parts"
+ };
+
+//---------------------------------------------------------
+// EditToolBar
+//---------------------------------------------------------
+
+EditToolBar::EditToolBar(QMainWindow* parent, int tools)
+ : QToolBar(tr("Edit Tools"))
+ {
+ actionGroup = new QActionGroup(parent);
+ actionGroup->setExclusive(true);
+
+ bool first = true;
+ for (unsigned i = 0; i < sizeof(toolList)/sizeof(*toolList); ++i) {
+ if ((tools & (1 << i))==0)
+ continue;
+ QAction* a = getAction(toolList[i], this);
+ a->setData(1 << i);
+ a->setCheckable(true);
+ actionGroup->addAction(a);
+ addAction(a);
+ if (first) {
+ a->setChecked(true);
+ first = false;
+ }
+ }
+ connect(actionGroup, SIGNAL(triggered(QAction*)), SLOT(toolChanged(QAction*)));
+ }
+
+//---------------------------------------------------------
+// toolChanged
+//---------------------------------------------------------
+
+void EditToolBar::toolChanged(QAction* action)
+ {
+ emit toolChanged(action->data().toInt());
+ }
+
+//---------------------------------------------------------
+// set
+//---------------------------------------------------------
+
+void EditToolBar::set(int id)
+ {
+ QList<QAction*> actions = actionGroup->actions();
+ int n = actions.size();
+
+ for (int i = 0; i < n; ++i) {
+ QAction* action = actions.at(i);
+ if (action->data().toInt() == id) {
+ action->setChecked(true);
+ return;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// curTool
+//---------------------------------------------------------
+
+int EditToolBar::curTool()
+ {
+ QList<QAction*> actions = actionGroup->actions();
+ int n = actions.size();
+
+ for (int i = 0; i < n; ++i) {
+ QAction* a = actions.at(i);
+ if (a->isChecked())
+ return a->data().toInt();
+ }
+ return -1;
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/tools.h b/muse_qt4_evolution/muse/widgets/tools.h
new file mode 100644
index 00000000..f05e1095
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/tools.h
@@ -0,0 +1,58 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __TOOLS_H__
+#define __TOOLS_H__
+
+class Action;
+
+#include "awl/tcanvas.h"
+
+const int arrangerTools = PointerTool | PencilTool | RubberTool | DrawTool
+ | CutTool | GlueTool | MuteTool;
+
+const int TOOLS = 8;
+
+//---------------------------------------------------------
+// EditToolBar
+//---------------------------------------------------------
+
+class EditToolBar : public QToolBar {
+ Q_OBJECT
+ QActionGroup* actionGroup;
+
+ private slots:
+ void toolChanged(QAction* action);
+
+ signals:
+ void toolChanged(int);
+
+ public slots:
+ void set(int id);
+
+ public:
+ EditToolBar(QMainWindow*, int);
+ int curTool();
+ };
+
+extern const char* toolList[];
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/transformbase.ui b/muse_qt4_evolution/muse/widgets/transformbase.ui
new file mode 100644
index 00000000..1365a0c9
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/transformbase.ui
@@ -0,0 +1,993 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>MidiTransformDialogBase</class>
+ <widget class="QDialog" name="MidiTransformDialogBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>843</width>
+ <height>659</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Midi Transformator</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="3" column="0" colspan="2" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="buttonNew" >
+ <property name="text" >
+ <string>&amp;New</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonDelete" >
+ <property name="text" >
+ <string>&amp;Delete</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonApply" >
+ <property name="text" >
+ <string>&amp;Apply</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ <property name="default" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonCancel" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item rowspan="3" row="0" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel1_2" >
+ <property name="text" >
+ <string>PresetList</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Q3ListBox" name="presetList" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <widget class="Q3GroupBox" name="GroupBox5" >
+ <property name="title" >
+ <string>Processing</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel5" >
+ <property name="text" >
+ <string>Event Type</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QComboBox" name="procEventOp" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QComboBox" name="procType" >
+ <item>
+ <property name="text" >
+ <string>Note</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Poly Pressure</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Control Change</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Aftertouch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pitch Bend</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>RPN</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="procVal1Op" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>ScaleMap</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Flip</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Dyn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Random</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="TextLabel6" >
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="TextLabel7" >
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="TextLabel10_2" >
+ <property name="text" >
+ <string>Length</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QLabel" name="TextLabel12" >
+ <property name="text" >
+ <string>Position</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QComboBox" name="procVal2Op" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Dyn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Random</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QComboBox" name="procLenOp" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Fix</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="procVal1b" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="procVal2b" >
+ <property name="maximum" >
+ <number>9999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QDoubleSpinBox" name="procVal1a" />
+ </item>
+ <item row="1" column="4" >
+ <widget class="QComboBox" name="procPosOp" >
+ <item>
+ <property name="text" >
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Minus</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Multiply</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Divide</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QDoubleSpinBox" name="procVal2a" />
+ </item>
+ <item row="2" column="3" >
+ <widget class="QDoubleSpinBox" name="procLenA" />
+ </item>
+ <item row="2" column="4" >
+ <widget class="QDoubleSpinBox" name="procPosA" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Q3GroupBox" name="GroupBox3" >
+ <property name="title" >
+ <string>Filter</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QComboBox" name="selEventOp" >
+ <item>
+ <property name="text" >
+ <string>All</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QComboBox" name="selType" >
+ <item>
+ <property name="text" >
+ <string>Note</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Control Change</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Sysex</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Poly Pressure</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Aftertouch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Meta</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Value 2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="TextLabel2" >
+ <property name="text" >
+ <string>Value 1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Event Type</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="selVal1Op" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="TextLabel10" >
+ <property name="text" >
+ <string>Length</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QLabel" name="TextLabel11" >
+ <property name="text" >
+ <string>Bar Range</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QComboBox" name="selVal2Op" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QComboBox" name="selLenOp" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QComboBox" name="selRangeOp" >
+ <item>
+ <property name="text" >
+ <string>Ignore</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Equal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Unequal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Higher</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Inside</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Outside</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSpinBox" name="selVal1b" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="selLenA" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QSpinBox" name="selLenB" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="selVal2a" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="selVal2b" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="selVal1a" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="4" >
+ <widget class="QDoubleSpinBox" name="selBarB" />
+ </item>
+ <item row="2" column="4" >
+ <widget class="QDoubleSpinBox" name="selBarA" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Q3GroupBox" name="GroupBox6_2" >
+ <property name="title" >
+ <string>Preset</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel13_2" >
+ <property name="text" >
+ <string>Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="nameEntry" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel14_2" >
+ <property name="text" >
+ <string>Comment:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Q3MultiLineEdit" name="commentEntry" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="Q3GroupBox" name="GroupBox5_2" >
+ <property name="title" >
+ <string>Range</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="processAll" >
+ <property name="text" >
+ <string>process all events</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="selectedTracks" >
+ <property name="text" >
+ <string>selected tracks</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="insideLoop" >
+ <property name="text" >
+ <string>inside loop</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="Q3GroupBox" name="GroupBox7_2" >
+ <property name="title" >
+ <string>Function</string>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="funcOp" >
+ <item>
+ <property name="text" >
+ <string>Select</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Quantize</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Transform</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Insert</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Copy</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Extract</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel9_2" >
+ <property name="text" >
+ <string>Quantize Value</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="ComboQuant" name="funcQuantVal" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Q3GroupBox</class>
+ <extends></extends>
+ <header>Qt3Support/Q3GroupBox</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Q3MultiLineEdit</class>
+ <extends>QWidget</extends>
+ <header>q3multilineedit.h</header>
+ <container>1</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>ComboQuant</class>
+ <extends></extends>
+ <header>comboQuant.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Q3ListBox</class>
+ <extends></extends>
+ <header>q3listbox.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>selEventOp</tabstop>
+ <tabstop>selType</tabstop>
+ <tabstop>selVal1Op</tabstop>
+ <tabstop>selVal1a</tabstop>
+ <tabstop>selVal1b</tabstop>
+ <tabstop>selVal2Op</tabstop>
+ <tabstop>selVal2a</tabstop>
+ <tabstop>selVal2b</tabstop>
+ <tabstop>selLenOp</tabstop>
+ <tabstop>selLenA</tabstop>
+ <tabstop>selLenB</tabstop>
+ <tabstop>selRangeOp</tabstop>
+ <tabstop>procEventOp</tabstop>
+ <tabstop>procType</tabstop>
+ <tabstop>procVal1Op</tabstop>
+ <tabstop>procVal1b</tabstop>
+ <tabstop>procVal2Op</tabstop>
+ <tabstop>procVal2b</tabstop>
+ <tabstop>procLenOp</tabstop>
+ <tabstop>procPosOp</tabstop>
+ <tabstop>nameEntry</tabstop>
+ <tabstop>commentEntry</tabstop>
+ <tabstop>processAll</tabstop>
+ <tabstop>selectedTracks</tabstop>
+ <tabstop>insideLoop</tabstop>
+ <tabstop>funcOp</tabstop>
+ <tabstop>presetList</tabstop>
+ <tabstop>buttonNew</tabstop>
+ <tabstop>buttonDelete</tabstop>
+ <tabstop>buttonApply</tabstop>
+ <tabstop>buttonOk</tabstop>
+ <tabstop>buttonCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/widgets/utils.cpp b/muse_qt4_evolution/muse/widgets/utils.cpp
new file mode 100644
index 00000000..b7fd9cee
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/utils.cpp
@@ -0,0 +1,451 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <sys/time.h>
+#include "utils.h"
+#include "icons.h"
+#include "gconfig.h"
+#include "greendotbutton.h"
+#include "recordbutton.h"
+
+static const int BFONT = 4; // simple button font
+
+//---------------------------------------------------------
+// RecordButton
+//---------------------------------------------------------
+
+RecordButton::RecordButton(QWidget* parent)
+ : SimpleButton(":/xpm/recordOn.svg", ":/xpm/recordOff.svg", parent)
+ {
+ setCheckable(true);
+ setToolTip(tr("record"));
+ }
+
+//---------------------------------------------------------
+// GreendotButton
+//---------------------------------------------------------
+
+GreendotButton::GreendotButton(QWidget* parent)
+ : SimpleButton(":/xpm/greendot.svg", ":/xpm/darkgreendot.svg", parent)
+ {
+ setCheckable(true);
+ setToolTip(tr("record"));
+ }
+
+//---------------------------------------------------------
+// curTime
+//---------------------------------------------------------
+
+double curTime()
+ {
+ struct timeval t;
+ gettimeofday(&t, 0);
+ return (double)((double)t.tv_sec + (t.tv_usec / 1000000.0));
+ }
+
+//---------------------------------------------------------
+// dump
+// simple debug output
+//---------------------------------------------------------
+
+void dump(const unsigned char* p, int n)
+ {
+ printf("dump %d\n", n);
+ for (int i = 0; i < n; ++i) {
+ printf("%02x ", *p++);
+ if ((i > 0) && (i % 16 == 0) && (i+1 < n))
+ printf("\n");
+ }
+ printf("\n");
+ }
+
+//---------------------------------------------------------
+// num2cols
+//---------------------------------------------------------
+
+int num2cols(int min, int max)
+ {
+ int amin = abs(min);
+ int amax = abs(max);
+ int l = amin > amax ? amin : amax;
+ return int(log10(l)) + 1;
+ }
+
+//---------------------------------------------------------
+// hLine
+//---------------------------------------------------------
+
+QFrame* hLine(QWidget* w)
+ {
+ QFrame* delim = new QFrame(w);
+ delim->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+ return delim;
+ }
+
+//---------------------------------------------------------
+// vLine
+//---------------------------------------------------------
+
+QFrame* vLine(QWidget* w)
+ {
+ QFrame* delim = new QFrame(w);
+ delim->setFrameStyle(QFrame::VLine | QFrame::Sunken);
+ return delim;
+ }
+
+//---------------------------------------------------------
+// bitmap2String
+// 5c -> 1-4 1-6
+//
+// 01011100
+//
+//---------------------------------------------------------
+
+QString bitmap2String(int bm)
+ {
+ QString s;
+//printf("bitmap2string: bm %04x", bm);
+ if (bm == 0xffff)
+ s = "all";
+ else if (bm == 0)
+ s = "none";
+ else {
+ bool range = false;
+ int first = 0;
+ bool needSpace = false;
+ bm &= 0xffff;
+ for (int i = 0; i < 17; ++i) {
+ if ((1 << i) & bm) {
+ if (!range) {
+ range = true;
+ first = i;
+ }
+ }
+ else {
+ if (range) {
+ if (needSpace)
+ s += " ";
+ QString ns;
+ if (first == i-1)
+ ns.sprintf("%d", first+1);
+ else
+ ns.sprintf("%d-%d", first+1, i);
+ s += ns;
+ needSpace = true;
+ }
+ range = false;
+ }
+ }
+ }
+//printf(" -> <%s>\n", s.toLatin1().data());
+ return s;
+ }
+
+//---------------------------------------------------------
+// string2bitmap
+//---------------------------------------------------------
+
+int string2bitmap(const QString& str)
+ {
+ int val = 0;
+ QString ss(str.simplified());
+ const char* s = ss.toLatin1().data();
+//printf("string2bitmap <%s>\n", s);
+
+ if (s == 0)
+ return 0;
+ if (strcmp(s, "all") == 0)
+ return 0xffff;
+ if (strcmp(s, "none") == 0)
+ return 0;
+// printf("str2bitmap: <%s> ", str.toLatin1().data());
+ int tval = 0;
+ bool range = false;
+ int sval = 0;
+ while (*s == ' ')
+ ++s;
+ while (*s) {
+ if (*s >= '0' && *s <= '9') {
+ tval *= 10;
+ tval += *s - '0';
+ }
+ else if (*s == ' ' || *s == ',') {
+ if (range) {
+ for (int i = sval-1; i < tval; ++i)
+ val |= (1 << i);
+ range = false;
+ }
+ else {
+ val |= (1 << (tval-1));
+ }
+ tval = 0;
+ }
+ else if (*s == '-') {
+ range = true;
+ sval = tval;
+ tval = 0;
+ }
+ ++s;
+ }
+ if (range && tval) {
+ for (int i = sval-1; i < tval; ++i)
+ val |= (1 << i);
+ }
+ else if (tval) {
+ val |= (1 << (tval-1));
+ }
+ return val & 0xffff;
+ }
+
+//---------------------------------------------------------
+// muteButton
+//---------------------------------------------------------
+
+SimpleButton* newMuteButton()
+ {
+ // SimpleButton* mute = new SimpleButton(parent, muteIconOff, muteIconOn);
+ SimpleButton* mute = new SimpleButton(QT_TR_NOOP("m"));
+ mute->setCheckable(true);
+ mute->setToolTip(QT_TR_NOOP("mute"));
+ mute->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ return mute;
+ }
+
+//---------------------------------------------------------
+// soloButton
+//---------------------------------------------------------
+
+SimpleButton* newSoloButton()
+ {
+// SimpleButton* solo = new SimpleButton(parent, soloIconOn, soloIconOff);
+ SimpleButton* solo = new SimpleButton(QT_TR_NOOP("s"));
+ solo->setCheckable(true);
+ solo->setToolTip(QT_TR_NOOP("solo"));
+ solo->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ return solo;
+ }
+
+//---------------------------------------------------------
+// monitorButton
+//---------------------------------------------------------
+
+SimpleButton* newMonitorButton()
+ {
+ SimpleButton* monitor = new SimpleButton(QT_TR_NOOP("Mo"));
+ monitor->setCheckable(true);
+ monitor->setToolTip(QT_TR_NOOP("monitor"));
+ monitor->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ return monitor;
+ }
+
+//---------------------------------------------------------
+// drumMapButton
+//---------------------------------------------------------
+
+SimpleButton* newDrumMapButton()
+ {
+ SimpleButton* dm = new SimpleButton(QT_TR_NOOP("Dr"));
+ dm->setCheckable(true);
+ dm->setToolTip(QT_TR_NOOP("use drum map"));
+ return dm;
+ }
+
+//---------------------------------------------------------
+// newOffButton
+//---------------------------------------------------------
+
+SimpleButton* newOffButton()
+ {
+ SimpleButton* off = new SimpleButton(":/xpm/off.svg", ":/xpm/on.svg");
+ off->setCheckable(true);
+ off->setToolTip(QT_TR_NOOP("off"));
+ return off;
+ }
+
+//---------------------------------------------------------
+// newRecordButton
+//---------------------------------------------------------
+
+SimpleButton* newRecordButton()
+ {
+ SimpleButton* record = new RecordButton();
+ record->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ return record;
+ }
+
+//---------------------------------------------------------
+// newAutoReadButton
+//---------------------------------------------------------
+
+SimpleButton* newAutoReadButton()
+ {
+ SimpleButton* ar = new SimpleButton(QT_TR_NOOP("aR"));
+ ar->setCheckable(true);
+ ar->setToolTip(QT_TR_NOOP("automation read"));
+ return ar;
+ }
+
+//---------------------------------------------------------
+// newAutoWriteButton
+//---------------------------------------------------------
+
+SimpleButton* newAutoWriteButton()
+ {
+ SimpleButton* aw = new SimpleButton(QT_TR_NOOP("aW"));
+ aw->setCheckable(true);
+ aw->setToolTip(QT_TR_NOOP("automation write"));
+ return aw;
+ }
+
+//---------------------------------------------------------
+// syncButton
+//---------------------------------------------------------
+
+SimpleButton* newSyncButton()
+ {
+ SimpleButton* sync = new SimpleButton(QT_TR_NOOP("sync"));
+ sync->setCheckable(true);
+ sync->setToolTip(QT_TR_NOOP("send sync events"));
+ return sync;
+ }
+
+//---------------------------------------------------------
+// newMinusButton
+//---------------------------------------------------------
+
+SimpleButton* newMinusButton()
+ {
+ return new SimpleButton(minusIcon, minusIcon);
+ }
+
+//---------------------------------------------------------
+// newPlusButton
+//---------------------------------------------------------
+
+SimpleButton* newPlusButton()
+ {
+ SimpleButton* sync = new SimpleButton(plusIcon, plusIcon);
+ return sync;
+ }
+
+//---------------------------------------------------------
+// newStereoButton
+//---------------------------------------------------------
+
+SimpleButton* newStereoButton()
+ {
+ SimpleButton* stereo = new SimpleButton(":/xpm/stereo.svg", ":/xpm/mono.svg");
+ stereo->setCheckable(true);
+ stereo->setToolTip(QT_TR_NOOP("1/2 channel"));
+ return stereo;
+ }
+
+//---------------------------------------------------------
+// newOutRouteButton
+//---------------------------------------------------------
+
+QToolButton* newOutRouteButton()
+ {
+ QToolButton* oR = new QToolButton;
+ oR->setObjectName("routeButton");
+ oR->setFixedHeight(BUTTON_HEIGHT);
+ oR->setText(QT_TR_NOOP("oR"));
+ oR->setCheckable(false);
+ oR->setToolTip(QT_TR_NOOP("output routing"));
+ oR->setMenu(new QMenu);
+ oR->setPopupMode(QToolButton::InstantPopup);
+ oR->menu()->setSeparatorsCollapsible(false);
+ oR->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ return oR;
+ }
+
+//---------------------------------------------------------
+// newInRouteButton
+//---------------------------------------------------------
+
+QToolButton* newInRouteButton()
+ {
+ QToolButton* iR = new QToolButton;
+ iR->setObjectName("routeButton");
+ iR->setFixedHeight(BUTTON_HEIGHT);
+ iR->setText(QT_TR_NOOP("iR"));
+ iR->setCheckable(false);
+ iR->setToolTip(QT_TR_NOOP("input routing"));
+ iR->setMenu(new QMenu);
+ iR->setPopupMode(QToolButton::InstantPopup);
+ iR->menu()->setSeparatorsCollapsible(false);
+ iR->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ return iR;
+ }
+
+//---------------------------------------------------------
+// fatalError
+//---------------------------------------------------------
+
+void fatalError(const char* s)
+ {
+ fprintf(stderr, "%s\n", s);
+ exit(-1);
+ }
+
+//---------------------------------------------------------
+// lineColor
+//---------------------------------------------------------
+
+QColor lineColor[splitWidth] = {
+ QColor(0x55, 0x55, 0x52),
+ QColor(0xc6, 0xc6, 0xbf),
+ QColor(0xee, 0xee, 0xe6),
+ QColor(0xff, 0xff, 0xfc),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0x55, 0x55, 0x52),
+ };
+
+//---------------------------------------------------------
+// paintHLine
+//---------------------------------------------------------
+
+void paintHLine(QPainter& p, int x1, int x2, int y)
+ {
+ for (int i = 0; i < splitWidth; ++i) {
+ p.setPen(lineColor[i]);
+ p.drawLine(x1, y, x2, y);
+ ++y;
+ }
+ }
+
+//---------------------------------------------------------
+// paintVLine
+//---------------------------------------------------------
+
+void paintVLine(QPainter& p, int y1, int y2, int x)
+ {
+ static QColor color[splitWidth] = {
+ QColor(0x55, 0x55, 0x52),
+ QColor(0xff, 0xff, 0xff),
+ };
+ x -= 2;
+ for (int i = 0; i < 2; ++i) {
+ p.setPen(color[i]);
+ p.drawLine(x, y1, x, y2);
+ ++x;
+ }
+ }
+
diff --git a/muse_qt4_evolution/muse/widgets/utils.h b/muse_qt4_evolution/muse/widgets/utils.h
new file mode 100644
index 00000000..360dd28e
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/utils.h
@@ -0,0 +1,58 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __UTILS_H__
+#define __UTILS_H__
+
+#include "gui.h"
+
+class SimpleButton;
+
+extern QString bitmap2String(int bm);
+extern int string2bitmap(const QString& str);
+
+extern int num2cols(int min, int max);
+extern QFrame* hLine(QWidget* parent);
+extern QFrame* vLine(QWidget* parent);
+extern void dump(const unsigned char* p, int n);
+extern double curTime();
+extern SimpleButton* newMuteButton();
+extern SimpleButton* newSoloButton();
+extern SimpleButton* newMonitorButton();
+extern SimpleButton* newDrumMapButton();
+extern SimpleButton* newOffButton();
+extern SimpleButton* newRecordButton();
+extern SimpleButton* newAutoWriteButton();
+extern SimpleButton* newAutoReadButton();
+extern SimpleButton* newSyncButton();
+extern SimpleButton* newPlusButton();
+extern SimpleButton* newMinusButton();
+extern SimpleButton* newStereoButton();
+QToolButton* newOutRouteButton();
+QToolButton* newInRouteButton();
+
+extern void fatalError(const char*);
+
+extern QColor lineColor[splitWidth];
+extern void paintHLine(QPainter& p, int x1, int x2, int y);
+extern void paintVLine(QPainter& p, int y1, int y2, int x);
+
+#endif
+
diff --git a/muse_qt4_evolution/muse/widgets/wtrackinfobase.ui b/muse_qt4_evolution/muse/widgets/wtrackinfobase.ui
new file mode 100644
index 00000000..da341c74
--- /dev/null
+++ b/muse_qt4_evolution/muse/widgets/wtrackinfobase.ui
@@ -0,0 +1,166 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>WaveTrackInfoBase</class>
+ <widget class="QWidget" name="WaveTrackInfoBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>129</width>
+ <height>548</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: TrackInfo</string>
+ </property>
+ <property name="toolTip" >
+ <string/>
+ </property>
+ <property name="whatsThis" >
+ <string/>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>1</number>
+ </property>
+ <property name="spacing" >
+ <number>1</number>
+ </property>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::WinPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="lineWidth" >
+ <number>1</number>
+ </property>
+ <property name="midLineWidth" >
+ <number>0</number>
+ </property>
+ <property name="text" >
+ <string>Track Info</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QLineEdit" name="iName" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>Track Name</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Track Name</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>30</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QSpinBox" name="delay" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>Track Delay (ticks)</string>
+ </property>
+ <property name="specialValueText" >
+ <string>off</string>
+ </property>
+ <property name="maximum" >
+ <number>1000</number>
+ </property>
+ <property name="minimum" >
+ <number>-1000</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="TextLabel10" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>Delay (Frames)</string>
+ </property>
+ <property name="text" >
+ <string>Delay</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+ <tabstop>iName</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/muse/xpm/activeoff.svg b/muse_qt4_evolution/muse/xpm/activeoff.svg
new file mode 100644
index 00000000..8449f988
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/activeoff.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="20"
+ height="10"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="activeoff.svg"
+ version="1.0">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#1a561c;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="11.149585"
+ inkscape:cy="3.4613455"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1680"
+ inkscape:window-height="996"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ width="20px"
+ height="10px" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.301701,0,0,0.625509,0.41813,0.413925)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/activeon.svg b/muse_qt4_evolution/muse/xpm/activeon.svg
new file mode 100644
index 00000000..c6426e54
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/activeon.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="20"
+ height="11"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="activeon.svg"
+ version="1.0">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#11ff00;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="14.970261"
+ inkscape:cy="4.476661"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1680"
+ inkscape:window-height="996"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ width="20px"
+ height="11px" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.29863,0,0,0.691167,0.440736,0.432544)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_addmiditrack.xpm b/muse_qt4_evolution/muse/xpm/addtrack_addmiditrack.xpm
new file mode 100644
index 00000000..cfeb255b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_addmiditrack.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char *addtrack_addmiditrack_xpm[]={
+"16 16 7 1",
+"a c #000000",
+"e c #404000",
+". c #800000",
+"c c #808080",
+"b c #c00000",
+"d c #dcdcdc",
+"# c #ffffff",
+".......##aa###..",
+".bbbbb###aaa#bb.",
+".b#######aaaa#b.",
+".b#######a#aa#b.",
+".bc#c#c#dad#a#b.",
+".eeeeeeedadeeee.",
+".bc#c#c#dad#c#b.",
+".bc#c#c#dad#c#b.",
+".bc#c#d#dad#c#b.",
+".bc#c#aaaad#c#b.",
+".eeedaaaaadeeee.",
+".bc#caaaaa##c#b.",
+".b####aaa#####b.",
+".b############b.",
+".bbbbbbbbbbbbbb.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_audiogroup.xpm b/muse_qt4_evolution/muse/xpm/addtrack_audiogroup.xpm
new file mode 100644
index 00000000..52a0b082
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_audiogroup.xpm
@@ -0,0 +1,35 @@
+/* XPM */
+static const char * addtrack_audiogroup_xpm[] = {
+"16 16 16 1",
+" c None",
+". c #800000",
+"+ c #C20000",
+"@ c #FFFFFF",
+"# c #363736",
+"$ c #000100",
+"% c #616161",
+"& c #DBDDDA",
+"* c #828282",
+"= c #313231",
+"- c #222322",
+"; c #545454",
+"> c #4E4F4E",
+", c #323332",
+"' c #454645",
+") c #2E2F2E",
+"................",
+".++@@##$$$#@@++.",
+".+@@#%@@@@#$&@+.",
+".@@##@@@@@@##@@.",
+"&&@$@@&@&@@@$@&&",
+"@@***@@&@&@***@@",
+"@*%$%@&&&@@%$$*@",
+"*=-$*@@&&@@;$$$%",
+">$#$#@&@&@@,$#$#",
+"'$#$#@@&@@@#$#$#",
+"*)$$%@@@&@@%$$$*",
+"@*%$%@&&&@@*$$*@",
+".@***@&&@&@***@.",
+".+@@@@@@&&@@@@+.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_audioinput.xpm b/muse_qt4_evolution/muse/xpm/addtrack_audioinput.xpm
new file mode 100644
index 00000000..1f5cfd9a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_audioinput.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * addtrack_audioinput_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #800000",
+"+ c #DBDDDA",
+"@ c #555652",
+"# c #FEFFFC",
+"$ c #8D8E88",
+"% c #9FA19E",
+"& c #FCFCF5",
+"* c #C2C4C0",
+"= c #C20000",
+"- c #313230",
+"; c #BEBFBA",
+"> c #000100",
+", c #565856",
+".+@##....###@+#.",
+".#$%+#####+%$##.",
+".+#@%@&##*%@+#=.",
+".####++##+####=.",
+".######-######=.",
+"###+$$+-#+$%+##.",
+"#+#$;##-##%$%##.",
+"##$;+##-###+$%#.",
+".#@###>>>######.",
+".#####>>>#+####.",
+".=####>>>##+##+#",
+".=##+#>>>#######",
+".=#+###,###+#,,,",
+".=###+#,####,,##",
+".==####,,##,,#=.",
+"......##,,,,#..."};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_audiooutput.xpm b/muse_qt4_evolution/muse/xpm/addtrack_audiooutput.xpm
new file mode 100644
index 00000000..9b3780c6
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_audiooutput.xpm
@@ -0,0 +1,44 @@
+/* XPM */
+static const char * addtrack_audiooutput_xpm[] = {
+"16 16 25 1",
+" c None",
+". c #800000",
+"+ c #FEFFFC",
+"@ c #C20000",
+"# c #DBDDDA",
+"$ c #656664",
+"% c #FDF7F6",
+"& c #545654",
+"* c #626361",
+"= c #767775",
+"- c #000100",
+"; c #7B7C7A",
+"> c #7C7D7A",
+", c #838481",
+"' c #D8D9D7",
+") c #CFD0CE",
+"! c #D6D8D5",
+"~ c #FBFCF9",
+"{ c #C0C1BE",
+"] c #E7E8E5",
+"^ c #F3F4F1",
+"/ c #B7B8B6",
+"( c #F8FEFF",
+"_ c #B4B5B3",
+": c #B3B0AF",
+"................",
+".+@@@@@@@@@@@@@.",
+"##+$$$$$$$$$$#@.",
+"$$$$++#++++#$$+.",
+"$++++++++++%#$#.",
+"++++++&*&++%=$+.",
+"##+&*&---;>,=++.",
+".++'''---)!=~+#.",
+".@++##{{'##=#++.",
+".@#+%+#+]-;=+++.",
+".@++++%^---+++@.",
+".@++++^---/++(@.",
+".@++++*--_%++%@.",
+".@+++&-:_++++(@.",
+".@@@#-#%++@@@@@.",
+"....+#+........."};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_auxsend.xpm b/muse_qt4_evolution/muse/xpm/addtrack_auxsend.xpm
new file mode 100644
index 00000000..d3528418
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_auxsend.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * addtrack_auxsend_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #FFFFFF",
+"+ c #F4F4F4",
+"@ c #9FA19E",
+"# c #797D7C",
+"$ c #DEDFDE",
+"% c #000000",
+"& c #C9CAC8",
+"* c #F1F1F1",
+".+@..........@+.",
+"+#$.+@....@..$#+",
+"#%$+#$....$#.$%#",
+"%&.#%$....$%#.&%",
+"%$+%........%.$%",
+"%$#%.$@..@$.%#$%",
+"%$%$.#$..$#.$%$%",
+"%$%$.#.%%.#.$%$%",
+"%$%$.#$%%$#.$%$%",
+"%$%$.#$.%$#.$%$%",
+"%$#%.$@.%@$.%#$%",
+"%$+%....%...%.$%",
+"%&.#%$..%.$%#.&%",
+"#%$+#$..%.$#.$##",
+"+#$.*@..%.@..$%+",
+"..@.....%....@+."};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_drumtrack.xpm b/muse_qt4_evolution/muse/xpm/addtrack_drumtrack.xpm
new file mode 100644
index 00000000..a2841740
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_drumtrack.xpm
@@ -0,0 +1,41 @@
+/* XPM */
+static const char * addtrack_drumtrack_xpm[] = {
+"16 16 22 1",
+" c None",
+". c #800000",
+"+ c #000100",
+"@ c #C20000",
+"# c #9FA19E",
+"$ c #F8FEFF",
+"% c #A29FA3",
+"& c #FDF7F6",
+"* c #FEFFFC",
+"= c #2F312E",
+"- c #797D7C",
+"; c #FBF5F4",
+"> c #C2C4C0",
+", c #DBDDDA",
+"' c #ACA5B1",
+") c #DDE2E5",
+"! c #D3D8DA",
+"~ c #7F817E",
+"{ c #E0CEC3",
+"] c #F0F5F8",
+"^ c #DEE0DD",
+"/ c #CED7DF",
+"...........+....",
+".@@@@@@@@@++#@@.",
+".@$$$$$$$++%%$+.",
+".@&&&&&&++##*++.",
+".@*****++%%$++#.",
+".$*==+++==*++#%.",
+"&*+-&++;;+++%#@.",
+"*=>&,*--+++##$@.",
+"&==->>>-++=%&$@.",
+"&='=====++=%**$*",
+"&=%))&)),%+++++*",
+".=%-;);!%++>#>~+",
+".&=){]^,~=+->>++",
+".@/======%++++++",
+".@@&'%%%%%+%~~+*",
+"........**&+++**"};
diff --git a/muse_qt4_evolution/muse/xpm/addtrack_wavetrack.xpm b/muse_qt4_evolution/muse/xpm/addtrack_wavetrack.xpm
new file mode 100644
index 00000000..c67befb9
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/addtrack_wavetrack.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static const char * addtrack_wavetrack_xpm[] = {
+"16 16 17 1",
+" c None",
+". c #800000",
+"+ c #FEFFFC",
+"@ c #FDF7F6",
+"# c #A29FA3",
+"$ c #9FA19E",
+"% c #C20000",
+"& c #F9FBF8",
+"* c #C2C4C0",
+"= c #BAC5C6",
+"- c #7F817E",
+"; c #FFFFFF",
+"> c #F8FEFF",
+", c #000100",
+"' c #797D7C",
+") c #DBDDDA",
+"! c #DDE2E5",
+".........+++@#$#",
+".%%%%%%%+++@+++#",
+".%++&&&&++*=#-++",
+".;>>>++,>@@@@$@+",
+">>+@@+,,+=**@$++",
+"+,,+,,,,++@#@-@+",
+"+,,+,,+,**+#+'-@",
+"+,,+,++,+#@-+@'@",
+"+,,+,++,+$+'@+'@",
+"+,,+,,+,**@$@--@",
+"+,,+,,,,@@+#+#@+",
+"++++)),,+***+*++",
+".+)+@!),+@@@+*@+",
+".%+@+@)!;+**#'@$",
+".%%%%%%%;+@@+@+#",
+".........@@+++$$"};
diff --git a/muse_qt4_evolution/muse/xpm/audio_bounce_to_file.xpm b/muse_qt4_evolution/muse/xpm/audio_bounce_to_file.xpm
new file mode 100644
index 00000000..ee645fdc
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/audio_bounce_to_file.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char * audio_bounce_to_file_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #000000",
+"+ c #C3C3C3",
+"@ c #DCDCDC",
+"# c #A0A0A0",
+" ... ",
+" ..+.. ",
+" ..+@@.. ",
+" ..+@#@@.. ",
+" ..+@###@@.. ",
+" ..+@####+@+.. ",
+"..@@###+@+@.... ",
+".+@###+@++.##...",
+"..+##@@++.####..",
+" ..++@++.###### ",
+" ..+++..##### ",
+" ..+.##.### ",
+" ....##.# ",
+" ....## ",
+" ... ",
+" . "};
diff --git a/muse_qt4_evolution/muse/xpm/audio_bounce_to_track.xpm b/muse_qt4_evolution/muse/xpm/audio_bounce_to_track.xpm
new file mode 100644
index 00000000..3708b6bf
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/audio_bounce_to_track.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * audio_bounce_to_track_xpm[] = {
+"16 16 8 1",
+" c None",
+". c #CECECE",
+"+ c #FB0000",
+"@ c #8A5C04",
+"# c #9E772E",
+"$ c #000000",
+"% c #AE8E51",
+"& c #2B2B2B",
+" .++ ",
+" .++ ",
+" ...++ ",
+" .++++++ ",
+" ..++++ . ",
+" ..++ . ",
+" .... ",
+" ",
+" ",
+" @# @# @# @# ",
+"$$$$$$$$$$$$$$$$",
+"@#. @%..@#..@#. ",
+"#. @%..@#..@#. @",
+". ##. @#. @#. @#",
+"$$$$$$$&$$$$$$$$",
+" @#. @#. @#. @# "};
diff --git a/muse_qt4_evolution/muse/xpm/audio_restartaudio.xpm b/muse_qt4_evolution/muse/xpm/audio_restartaudio.xpm
new file mode 100644
index 00000000..f74a3050
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/audio_restartaudio.xpm
@@ -0,0 +1,69 @@
+/* XPM */
+static const char * audio_restartaudio_xpm[] = {
+"16 16 50 1",
+" c None",
+". c #F5A630",
+"+ c #F8B657",
+"@ c #A98F5C",
+"# c #F2B64F",
+"$ c #BBBBBB",
+"% c #323232",
+"& c #0A0A0A",
+"* c #D2D2D2",
+"= c #292929",
+"- c #101010",
+"; c #191916",
+"> c #B6B1AF",
+", c #5C5C5C",
+"' c #1C1C1D",
+") c #C4C4C5",
+"! c #B0B0B0",
+"~ c #DADADA",
+"{ c #C9C9C9",
+"] c #808080",
+"^ c #5A5A5A",
+"/ c #3A3A3B",
+"( c #929292",
+"_ c #A4A4A4",
+": c #949494",
+"< c #39393B",
+"[ c #1F1E22",
+"} c #5A5A59",
+"| c #3E3E3D",
+"1 c #353537",
+"2 c #18171B",
+"3 c #060606",
+"4 c #363636",
+"5 c #393939",
+"6 c #272727",
+"7 c #29292B",
+"8 c #141417",
+"9 c #0B0B0B",
+"0 c #1C1C1C",
+"a c #252527",
+"b c #2E2D2F",
+"c c #262628",
+"d c #1D1D1E",
+"e c #19191B",
+"f c #0A0A0B",
+"g c #111114",
+"h c #0F0F13",
+"i c #0F0E11",
+"j c #0E0E10",
+"k c #0D0D0F",
+" .. + ",
+" ++...+++ ",
+" ++.++ ",
+" ++++@+#++ ",
+" $%&&+ ++ ",
+" * = -;>++ ",
+" * ,'' ) + ",
+" * ! ''&!+ ",
+"* ~ {]^/'& ",
+" (_: <[&& ",
+"= }|123& ",
+"=45 6789( ",
+"!&0abcdef9! ",
+" !&ghijk&! ",
+" !&&&&&! ",
+" !&& ! "};
diff --git a/muse_qt4_evolution/muse/xpm/back.xpm b/muse_qt4_evolution/muse/xpm/back.xpm
new file mode 100644
index 00000000..917213c0
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/back.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*back_xpm[]={
+"16 16 5 1",
+"# c #000000",
+"a c #ffffff",
+"c c #808080",
+"b c #c0c0c0",
+". c None",
+"................",
+".......#........",
+"......##........",
+".....#a#........",
+"....#aa########.",
+"...#aabaaaaaaa#.",
+"..#aabbbbbbbbb#.",
+"...#abbbbbbbbb#.",
+"...c#ab########.",
+"....c#a#ccccccc.",
+".....c##c.......",
+"......c#c.......",
+".......cc.......",
+"........c.......",
+"................",
+"......................"};
+
diff --git a/muse_qt4_evolution/muse/xpm/bold.xpm b/muse_qt4_evolution/muse/xpm/bold.xpm
new file mode 100644
index 00000000..b5d786ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/bold.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * bold_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" ",
+" ....... ",
+" .. ... ",
+" .. .. ",
+" .. .. ",
+" ..... ",
+" .. ... ",
+" .. .. ",
+" .. ... ",
+" ....... ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/buttondown.xpm b/muse_qt4_evolution/muse/xpm/buttondown.xpm
new file mode 100644
index 00000000..a8cff668
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/buttondown.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * buttondown_xpm[] = {
+"16 18 6 1",
+" c None",
+". c #F0F0F0",
+"+ c #000000",
+"@ c #F8FCF8",
+"# c #484C48",
+"$ c #D8DCD8",
+"...............+",
+".@@@@@@@@@@@@@#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$+++++++$$$#+",
+".@$$$+++++$$$$#+",
+".@$$$$+++$$$$$#+",
+".@$$$$$+$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".@$$$$$$$$$$$$#+",
+".##############+",
+"++++++++++++++++"};
diff --git a/muse_qt4_evolution/muse/xpm/cafter.xpm b/muse_qt4_evolution/muse/xpm/cafter.xpm
new file mode 100644
index 00000000..3ab12692
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/cafter.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char *cafter_xpm[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"######################",
+"##...................#",
+"#.#..................#",
+"#..#.................#",
+"#...#................#",
+"#....#...............#",
+"#.....#..............#",
+"#......#.............#",
+"#.......#............#",
+"#........#...........#",
+"#.........#..........#",
+"#..........#.........#",
+"#...........#........#",
+"#............#.......#",
+"#.............#......#",
+"#..............#.....#",
+"#...............#....#",
+"#................#...#",
+"#.................#..#",
+"#..................#.#",
+"#...................##",
+"######################"
+};
+
diff --git a/muse_qt4_evolution/muse/xpm/cliplistS.xpm b/muse_qt4_evolution/muse/xpm/cliplistS.xpm
new file mode 100644
index 00000000..6ba516fc
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/cliplistS.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char *cliplistS_xpm[]={
+"16 16 9 1",
+"# c #000000",
+"f c #585858",
+"e c #808080",
+"d c #a0a0a0",
+"c c #c000c0",
+"g c #c3c3c3",
+"a c #dcdcdc",
+". c #ff00ff",
+"b c #ffffff",
+"................",
+"..############..",
+"..#aaaaaaaaaa#..",
+"..#abbbbbbbba#c.",
+"..#bbdeeeedbb#c.",
+"..#bdbbbbbbdb#c.",
+"..#bbbdffdbbb#c.",
+"..#bbbbbbbbbb#c.",
+"..#b#gggggg#b#c.",
+"..#bb######gb#c.",
+"..#bbb####gbb#c.",
+"..#bbbb##gbbb#c.",
+"..#bbbbggbbbb#c.",
+"..############c.",
+"....ccccccccccc.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/cmark.xpm b/muse_qt4_evolution/muse/xpm/cmark.xpm
new file mode 100644
index 00000000..5c8cf1fc
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/cmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* cmark_xpm[]={
+"18 18 2 1",
+"# c #ff0000",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"##################",
+".################.",
+"..##############..",
+"...############...",
+"....##########....",
+".....########.....",
+"......######......",
+".......####.......",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse_qt4_evolution/muse/xpm/config.xpm b/muse_qt4_evolution/muse/xpm/config.xpm
new file mode 100644
index 00000000..727c4095
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/config.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static const char * config_xpm[] = {
+"16 16 17 1",
+" c None",
+". c #000000",
+"+ c #808080",
+"@ c #646464",
+"# c #DCDCDC",
+"$ c #C3C3C3",
+"% c #A0A0A0",
+"& c #B8B8B8",
+"* c #787878",
+"= c #FFFFFF",
+"- c #EDEDED",
+"; c #585858",
+"> c #C2C2C2",
+", c #B7B7B7",
+"' c #E7E7E7",
+") c #303030",
+"! c #CFCFCF",
+" ...... ",
+" .+@#$%.. ",
+" .&*@#$%. ",
+"... ..&@#$. ",
+".=$.. .@##%. ",
+".=-#$.;@>##,. ",
+".@=-######'$%.. ",
+")=@*=--##'$!$%%.",
+".$#=@@@*%$-#!$,%",
+" ..$#$$$*@*=-#!$",
+" ...%#$$%@*=-#",
+" ....-#%@*=",
+" ..-#%@",
+" ..-#",
+" ..",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/configure.xpm b/muse_qt4_evolution/muse/xpm/configure.xpm
new file mode 100644
index 00000000..5bcb079f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/configure.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static const char * configure_xpm[] = {
+"16 16 17 1",
+" c None",
+". c #000000",
+"+ c #808080",
+"@ c #646464",
+"# c #DCDCDC",
+"$ c #C3C3C3",
+"% c #A0A0A0",
+"& c #B8B8B8",
+"* c #787878",
+"= c #FFFFFF",
+"- c #EDEDED",
+"; c #585858",
+"> c #C2C2C2",
+", c #B7B7B7",
+"' c #E7E7E7",
+") c #303030",
+"! c #CFCFCF",
+" ...... ",
+" .+@#$%.. ",
+" .&*@#$%. ",
+"... ..&@#$. ",
+".=$.. .@##%. ",
+".=-#$.;@>##,. ",
+".@=-######'$%.. ",
+")=@*=--##'$!$%%.",
+".$#=@@@*%$-#!$,%",
+" ..$#$$$*@*=-#!$",
+" ...%#$$%@*=-#",
+" ....-#%@*=",
+" ..-#%@",
+" ..-#",
+" ..",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/ctrl.xpm b/muse_qt4_evolution/muse/xpm/ctrl.xpm
new file mode 100644
index 00000000..01124b02
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/ctrl.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * ctrl_xpm[] = {
+"22 22 2 1",
+" c #FFFFFFFFFFFF",
+". c #000000000000",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ... . .. ",
+" .. .. . ",
+" . . . . ",
+" . ..... .. . ",
+" . . .. . ",
+" . . . . ",
+" . . . . . ",
+" .. .. . . . ",
+" .... ..... ... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/cut.xpm b/muse_qt4_evolution/muse/xpm/cut.xpm
new file mode 100644
index 00000000..b104bd1c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/cut.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char*cut_xpm[]={
+"18 18 7 1",
+"# c #a0a0a4",
+"a c #585858",
+"b c #303030",
+"d c #dcdcdc",
+"e c #ffffff",
+"c c #c0c0c0",
+". c None",
+"..................",
+"..................",
+"..#aba#...........",
+"..bccca#.....ab#..",
+"..accccb...#abaa#.",
+"..#aacaa..#aba#...",
+"...#bab#.#ab#.....",
+".....#aaaba#......",
+"aaaaaaaada#aaaaaa.",
+".....#baaaaeeeeed.",
+"...#aaa#.#dd#.....",
+"..#abcba..daba#...",
+"..accccb..e#abab#.",
+"..bccca#.....aa#..",
+"..#aba#...........",
+"..................",
+"..................",
+".................."};
+
diff --git a/muse_qt4_evolution/muse/xpm/darkgreendot.svg b/muse_qt4_evolution/muse/xpm/darkgreendot.svg
new file mode 100644
index 00000000..b673f1ae
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/darkgreendot.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="darkgreendot.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#1a561c;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="8"
+ inkscape:cy="9.5532385"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1913"
+ inkscape:window-height="1135"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.020974,0,0,1.028955,0.484572,0.453358)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/delete.xpm b/muse_qt4_evolution/muse/xpm/delete.xpm
new file mode 100644
index 00000000..7c337199
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/delete.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char* delete_xpm[]={
+"18 18 5 1",
+"# c #000000",
+"a c #ffffff",
+"b c #a0a0a4",
+"c c #dcdcdc",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"........########..",
+".......#aaaaaa##b.",
+"......#aaaaaa#c#b.",
+".....#aaaaaa#cc#b.",
+"....#aaaaaa#cc#bb.",
+"...#aaaaaa#cc#bb..",
+"..#aaaaaa#cc#bb...",
+".########cc#bb....",
+".#cccccc#c#bb.....",
+".#cccccc##bb......",
+".########bb.......",
+"..bbbbbbbb........",
+"..................",
+".................."};
+
diff --git a/muse_qt4_evolution/muse/xpm/down.xpm b/muse_qt4_evolution/muse/xpm/down.xpm
new file mode 100644
index 00000000..9ac9f1f9
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/down.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char* down_xpm[]={
+"14 10 2 1",
+"# c #000000",
+". c None",
+"..............",
+"......##......",
+"......##......",
+"......##......",
+"......##......",
+"...##.##.##...",
+"....######....",
+".....####.....",
+"......##......",
+".............."};
diff --git a/muse_qt4_evolution/muse/xpm/draw.xpm b/muse_qt4_evolution/muse/xpm/draw.xpm
new file mode 100644
index 00000000..5bb771a3
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/draw.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *draw_xpm[]={
+"18 18 4 1",
+". c None",
+"# c #000040",
+"b c #c3c3c3",
+"a c #ffffff",
+"..................",
+"..........###.....",
+"..........#a#.....",
+".........####.....",
+"........#b..#.....",
+".......#b....#....",
+"......#b.....#....",
+".....#bb......#...",
+"....#bb.......###.",
+".###bb........#a#.",
+".#a#b.........###.",
+".###b.............",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+".................."};
diff --git a/muse_qt4_evolution/muse/xpm/edit_drumms.xpm b/muse_qt4_evolution/muse/xpm/edit_drumms.xpm
new file mode 100644
index 00000000..8738f267
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_drumms.xpm
@@ -0,0 +1,45 @@
+/* XPM */
+static const char * edit_drumms_xpm[] = {
+"16 16 26 1",
+" c None",
+". c #13A913",
+"+ c #000100",
+"@ c #0AD700",
+"# c #496447",
+"$ c #FEFFFC",
+"% c #F8FEFF",
+"& c #A29FA3",
+"* c #9FA19E",
+"= c #FDF7F6",
+"- c #2F312E",
+"; c #797D7C",
+"> c #FBF5F4",
+", c #C2C4C0",
+"' c #DBDDDA",
+") c #F9FBF8",
+"! c #ACA5B1",
+"~ c #DDE2E5",
+"{ c #D3D8DA",
+"] c #7F817E",
+"^ c #E0CEC3",
+"/ c #F0F5F8",
+"( c #DEE0DD",
+"_ c #CED7DF",
+": c #078002",
+"< c #00C100",
+"...........+....",
+".@@@@@@@@@++#@@.",
+".@$$$$$$%++&*%+.",
+".@======++**%++.",
+".@%$%$%++&&$++*.",
+".@$--+++--$++**.",
+".@+;=++>>+++&&@.",
+".-,='$;;+++**)@.",
+".--;,,,;++-&%$@.",
+".-!-----++-&%=@.",
+".-&~~=~~'&+++++.",
+".-&;>~>{&++,&,]+",
+".@-~^/(']-+],,++",
+".@_------&++++++",
+".@@@::::::+*]]+.",
+"...........+++<."};
diff --git a/muse_qt4_evolution/muse/xpm/edit_list.xpm b/muse_qt4_evolution/muse/xpm/edit_list.xpm
new file mode 100644
index 00000000..19b62b41
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_list.xpm
@@ -0,0 +1,31 @@
+/* XPM */
+static const char * edit_list_xpm[] = {
+"16 16 12 1",
+" c None",
+". c #13A913",
+"+ c #0AD700",
+"@ c #000100",
+"# c #DBDDDA",
+"$ c #FDF7F6",
+"% c #D3D8DA",
+"& c #078002",
+"* c #F9FBF8",
+"= c #F8FEFF",
+"- c #DDE2E5",
+"; c #DEE0DD",
+"................",
+".+@@@@@@@@@@@@+.",
+".+@##########@+.",
+".+@$@$@$@$@$%@&.",
+".+@*=@=@=@=@#@&.",
+".+@$$*$*$*$$%@&.",
+".+@=@-@-@-@;#@&.",
+".+@**@#@-@#@%@&.",
+".+@$*$*$*$$$#@&.",
+".+@=@-@#@-@#-@&.",
+".+@**@#@#@-@#@&.",
+".+@$$*$*$$$$%@&.",
+".+@=$=$==*=$#@&.",
+".+@@@@@@@@@@@@&.",
+".+++&&&&&&&&&&&.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/edit_mastertrack.xpm b/muse_qt4_evolution/muse/xpm/edit_mastertrack.xpm
new file mode 100644
index 00000000..e4f1a948
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_mastertrack.xpm
@@ -0,0 +1,38 @@
+/* XPM */
+static const char * edit_mastertrack_xpm[] = {
+"16 16 19 1",
+" c None",
+". c #13A913",
+"+ c #000100",
+"@ c #0AD700",
+"# c #F9FBF8",
+"$ c #F8FEFF",
+"% c #FEFFFC",
+"& c #FDF7F6",
+"* c #ED9E9D",
+"= c #EA8B8B",
+"- c #5B6062",
+"; c #D78080",
+"> c #EC9594",
+", c #DA8A8A",
+"' c #797D7C",
+") c #747573",
+"! c #FF9797",
+"~ c #1C1D1C",
+"{ c #C2C4C0",
+"................",
+"++@@@@@@@@@@@@@.",
+".++##$%#%$%%&%@.",
+".@++&&&&&&&&$&@.",
+".@&++$**%$$%$%@.",
+".@%%++%=*%%%$&@.",
+".@%%%+-;;==++++.",
+".@%%%%>,;;;+'++.",
+".@%&&%%*=;;++++.",
+".@%$%$%)*=!++++.",
+".@%%&%$%%~$++++.",
+".@%%%%%%%%%{{{{.",
+".@%%%%%%%%&&&&@.",
+".@%%%%%%%%%%%%@.",
+".@@@@@@@@@@@@@@.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/edit_midi.xpm b/muse_qt4_evolution/muse/xpm/edit_midi.xpm
new file mode 100644
index 00000000..3c7071c0
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_midi.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char * edit_midi_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #57A8FE",
+"+ c #A6DDFD",
+"@ c #000100",
+"# c #FDF7F6",
+"$ c #2F312E",
+"% c #FEFFFC",
+"................",
+".++++@@@@@@++++.",
+".+##@$$$$$$@##+.",
+".+%@$######$@#+.",
+".+@$#%%$$%#%$@+.",
+".@$#%%#$$%%%#$@.",
+".@$%$$###%$$#$@.",
+".@$#$$%%%#$$#$@.",
+".@$###%%%####$@.",
+".@$%$$%%%%$$#$@.",
+".@$#$$#%%#$$#$@.",
+".+@$##%%%###$@+.",
+".+#@$%%%%%%$@#+.",
+".+%%@$$$$$$@%#+.",
+".++++@@@@@@++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/edit_pianoroll.xpm b/muse_qt4_evolution/muse/xpm/edit_pianoroll.xpm
new file mode 100644
index 00000000..c2672271
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_pianoroll.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * edit_pianoroll_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #13A913",
+"+ c #0AD700",
+"@ c #000100",
+"# c #F8FEFF",
+"$ c #FDF7F6",
+"% c #FEFFFC",
+"& c #DBDDDA",
+"* c #006B00",
+"................",
+".++++++++++++++.",
+".+@@@@@@@@@###+.",
+".+@@@@@@@@@$$$+.",
+".+%&&&&&&&&&%#+.",
+".+@@@@@@@@@$%$+.",
+".+@@@@@@@@@%%%+.",
+".+%&&&&&&&&&#$+.",
+".+@@@@@@@@@%##+.",
+".+@@@@@@@@@%%$+.",
+".+%&&&&&&&&&%%+.",
+".+%$$$$$$$$$#$+.",
+".+@@@@@@@@@%#%+.",
+".+@@@@@@@@@%#$+.",
+".++*********+++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/edit_track_add.xpm b/muse_qt4_evolution/muse/xpm/edit_track_add.xpm
new file mode 100644
index 00000000..6f659f7f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_track_add.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *edit_track_add_xpm[]={
+"16 16 5 1",
+"c c #404000",
+". c #800000",
+"b c #808080",
+"# c #c00000",
+"a c #ffffff",
+"................",
+".##############.",
+".#aaaaaaaaaaaa#.",
+".#aaaaaaaaaaaa#.",
+".#babababababa#.",
+".cccccccccccccc.",
+".#babababababa#.",
+".#babababababa#.",
+".#babababababa#.",
+".#babababababa#.",
+".cccccccccccccc.",
+".#babababababa#.",
+".#aaaaaaaaaaaa#.",
+".#aaaaaaaaaaaa#.",
+".##############.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/edit_track_del.xpm b/muse_qt4_evolution/muse/xpm/edit_track_del.xpm
new file mode 100644
index 00000000..4ead97ff
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/edit_track_del.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * edit_track_del_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #800000",
+"+ c #C00000",
+"@ c #FFFFFF",
+"# c #808080",
+"$ c #404000",
+"................",
+".++++++++++++++.",
+".+++@@@@@@@@@@+.",
+".++++@@@@@@@@@+.",
+".+#+++#@#@#@#@+.",
+".$$$+++$$$$$$$$.",
+".+#@#+++#@#@#@+.",
+".+#@#@+++@#@#@+.",
+".+#@#@#+++#@#@+.",
+".+#@#@#@+++@#@+.",
+".$$$$$$$$+++$$$.",
+".+#@#@#@#@+++@+.",
+".+@@@@@@@@@++++.",
+".+@@@@@@@@@@+++.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/editcopy.xpm b/muse_qt4_evolution/muse/xpm/editcopy.xpm
new file mode 100644
index 00000000..7823c06b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/editcopy.xpm
@@ -0,0 +1,102 @@
+/* XPM */
+static const char * editcopy_xpm[] = {
+"22 22 77 1",
+" c None",
+". c #121212",
+"+ c #FFFFFF",
+"@ c #313131",
+"# c #898989",
+"$ c #3C3B3C",
+"% c #C9C9C9",
+"& c #828282",
+"* c #C6C6C6",
+"= c #474646",
+"- c #5C5B5B",
+"; c #FEFCFB",
+"> c #A4A4A4",
+", c #747474",
+"' c #FDFBF9",
+") c #FCF7F3",
+"! c #FAF4EE",
+"~ c #F0EAE6",
+"{ c #C1BAB3",
+"] c #C3C3C3",
+"^ c #5A5552",
+"/ c #7E7873",
+"( c #9F958D",
+"_ c #7D746E",
+": c #D8D0C8",
+"< c #FCF8F5",
+"[ c #FBF5F0",
+"} c #F9F1EA",
+"| c #F8EEE5",
+"1 c #F7EADF",
+"2 c #F5E7DA",
+"3 c #D6CABF",
+"4 c #5B5959",
+"5 c #C4C0BD",
+"6 c #807C79",
+"7 c #5A5653",
+"8 c #C0B5AC",
+"9 c #998778",
+"0 c #7B6F65",
+"a c #7A6D62",
+"b c #D3C3B4",
+"c c #FBF6F2",
+"d c #FAF2EC",
+"e c #F9EFE7",
+"f c #F7EBE1",
+"g c #F6E8DC",
+"h c #F4E4D6",
+"i c #F3E0D0",
+"j c #F2DDCB",
+"k c #D1BCAA",
+"l c #4D4D4D",
+"m c #7F7A76",
+"n c #595551",
+"o c #7B6F64",
+"p c #564C45",
+"q c #786A5C",
+"r c #CEB6A0",
+"s c #F8EDE3",
+"t c #F6E9DD",
+"u c #F5E5D8",
+"v c #F3E2D2",
+"w c #F2DECD",
+"x c #F1DAC7",
+"y c #EFD7C2",
+"z c #EED3BC",
+"A c #CCAF97",
+"B c #DEDEDE",
+"C c #D7CCC1",
+"D c #D5C7BA",
+"E c #D3C2B3",
+"F c #D1BEAC",
+"G c #CFB9A5",
+"H c #CEB49F",
+"I c #CCB097",
+"J c #CAAB90",
+"K c #C9A88C",
+"L c #000000",
+" ",
+" ......... ",
+" .++++++@#. ",
+" .++++++$+%. ",
+" .+&%&*+=%+#. ",
+" .++++++==$@. ",
+" .+&-%&%;*>,...... ",
+" .+++++')!~{.]++@#. ",
+" .+-&*&^/(_:.]++$+%. ",
+" .++;<[}|123.&*+=%+#. ",
+" .+4567890ab.]++==$@. ",
+" .+cdefghijk.l&%+*>&. ",
+" .+mn89op9qr.]+++++*. ",
+" .+stuvwxyzA.>&-&>&B. ",
+" .:CDEFGHIJK.]+++++B. ",
+" ..........LL&-*>&&B. ",
+" .]]]]+++++B. ",
+" .+&-*>&->&B. ",
+" .+++++++++B. ",
+" .BBBBBBBBBB. ",
+" ............ ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/editcut.xpm b/muse_qt4_evolution/muse/xpm/editcut.xpm
new file mode 100644
index 00000000..4efcb43c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/editcut.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * editcut_xpm[] = {
+"22 22 8 1",
+" c None",
+". c #000000",
+"+ c #080203",
+"@ c #FFFFFF",
+"# c #C3C3C3",
+"$ c #010101",
+"% c #A0A0A0",
+"& c #303030",
+" ",
+" ",
+" ..+. ",
+" ... .. ... ",
+" .. .. .@@#. ",
+" .. .. .@@#. ",
+" .. . .@@#. ",
+" ... .. .@@#. ",
+" ....$ .@@#. ",
+" .....@@#. ",
+" %.@@#. ",
+" .@&#. ",
+" ....@.#. ",
+" ....$..@@#. ",
+" ... .. .@@#. ",
+" .. . .@@#. ",
+" .. .. .@@#. ",
+" .. .. .@@#. ",
+" .. .. .@@#. ",
+" ..+. ... ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/editcutS.xpm b/muse_qt4_evolution/muse/xpm/editcutS.xpm
new file mode 100644
index 00000000..06031f4a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/editcutS.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char * editcutS_xpm[] = {
+"16 16 5 1",
+" g None",
+". g #000000",
+"+ g #FFFFFF",
+"@ g #DCDCDC",
+"# g #808080",
+" ",
+" .... .. ",
+".. .. .+@.",
+".. .. .+@. ",
+" .. . .+@. ",
+" ...... .+@. ",
+" .....+@. ",
+" ..+@. ",
+" .+@.. ",
+" .....#@. ",
+" ...... .+@. ",
+" .. . .+@. ",
+".. .. .+@. ",
+".. .. .+@.",
+" .... .. ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/editmute.xpm b/muse_qt4_evolution/muse/xpm/editmute.xpm
new file mode 100644
index 00000000..ff0e22ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/editmute.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * editmute_xpm[] = {
+"22 22 8 1",
+" c None",
+". c #000000",
+"+ c #080203",
+"@ c #FFFFFF",
+"# c #C3C3C3",
+"$ c #010101",
+"% c #A0A0A0",
+"& c #303030",
+" ",
+" ",
+" ",
+" ... ... ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#..@@#. ",
+" .@@@@@#. ",
+" .#&&#. ",
+" .@@@@@#. ",
+" .@@#..@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" .@@#. .@@#. ",
+" ... ... ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/editpaste.xpm b/muse_qt4_evolution/muse/xpm/editpaste.xpm
new file mode 100644
index 00000000..8793a955
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/editpaste.xpm
@@ -0,0 +1,210 @@
+/* XPM */
+static const char * editpaste_xpm[] = {
+"22 22 185 2",
+" c None",
+". c #161616",
+"+ c #3A3616",
+"@ c #6F681E",
+"# c #625607",
+"$ c #575006",
+"% c #020202",
+"& c #060A06",
+"* c #262206",
+"= c #807529",
+"- c #FEFEFD",
+"; c #CAC682",
+"> c #A69E62",
+", c #362E16",
+"' c #EAEAEA",
+") c #EEEEEE",
+"! c #574D0A",
+"~ c #FFFFFF",
+"{ c #F6F6DE",
+"] c #EEEECA",
+"^ c #CECA96",
+"/ c #9E964A",
+"( c #4A462E",
+"_ c #C5C5C5",
+": c #C9C9C9",
+"< c #CCCCCC",
+"[ c #D4D4D4",
+"} c #DBDBDB",
+"| c #3A3636",
+"1 c #D6D6D6",
+"2 c #A6A6A6",
+"3 c #989898",
+"4 c #D6D29E",
+"5 c #CAC686",
+"6 c #B6B26A",
+"7 c #AAA65A",
+"8 c #7E721E",
+"9 c #818181",
+"0 c #888885",
+"a c #8C8C8C",
+"b c #262626",
+"c c #DADADA",
+"d c #A2A2A2",
+"e c #A9A9A9",
+"f c #B2B6B6",
+"g c #3E3A32",
+"h c #2E2E26",
+"i c #26261A",
+"j c #22221A",
+"k c #222216",
+"l c #161612",
+"m c #626266",
+"n c #727272",
+"o c #6E6E6E",
+"p c #7A7A7A",
+"q c #222222",
+"r c #D5D5D5",
+"s c #999999",
+"t c #9E9E9E",
+"u c #AAAAAA",
+"v c #BEBEBE",
+"w c #9A9A9A",
+"x c #828282",
+"y c #6C6C6C",
+"z c #5E5E5E",
+"A c #656565",
+"B c #5B5B5B",
+"C c #2E2E2E",
+"D c #B5B5B1",
+"E c #AFAFAF",
+"F c #9A9E9E",
+"G c #969696",
+"H c #7E7E7E",
+"I c #432E1A",
+"J c #372617",
+"K c #2C1F14",
+"L c #201711",
+"M c #15110D",
+"N c #1B1B1B",
+"O c #1E1E1E",
+"P c #939393",
+"Q c #9F9F9F",
+"R c #A4A4A4",
+"S c #A2A29E",
+"T c #313131",
+"U c #898989",
+"V c #121212",
+"W c #B6B6B6",
+"X c #9F9FA3",
+"Y c #979797",
+"Z c #8A8A8A",
+"` c #797979",
+" . c #676767",
+".. c #3C3B3C",
+"+. c #AEAEAE",
+"@. c #949494",
+"#. c #C6C6C6",
+"$. c #474646",
+"%. c #8E8E8E",
+"&. c #D2D2D2",
+"*. c #A2A2A6",
+"=. c #868686",
+"-. c #717171",
+";. c #5C5B5B",
+">. c #FEFCFB",
+",. c #747474",
+"'. c #868682",
+"). c #FDFBF9",
+"!. c #FCF7F3",
+"~. c #FAF4EE",
+"{. c #F0EAE6",
+"]. c #C1BAB3",
+"^. c #CACACA",
+"/. c #6A6A6A",
+"(. c #3A2818",
+"_. c #5A5552",
+":. c #7E7873",
+"<. c #9F958D",
+"[. c #7D746E",
+"}. c #D8D0C8",
+"|. c #CECECE",
+"1. c #767676",
+"2. c #636363",
+"3. c #322316",
+"4. c #FCF8F5",
+"5. c #FBF5F0",
+"6. c #F9F1EA",
+"7. c #F8EEE5",
+"8. c #F7EADF",
+"9. c #F5E7DA",
+"0. c #D6CABF",
+"a. c #2A1E14",
+"b. c #5B5959",
+"c. c #C4C0BD",
+"d. c #807C79",
+"e. c #5A5653",
+"f. c #C0B5AC",
+"g. c #998778",
+"h. c #7B6F65",
+"i. c #7A6D62",
+"j. c #D3C3B4",
+"k. c #707070",
+"l. c #595959",
+"m. c #221811",
+"n. c #FBF6F2",
+"o. c #FAF2EC",
+"p. c #F9EFE7",
+"q. c #F7EBE1",
+"r. c #F6E8DC",
+"s. c #F4E4D6",
+"t. c #F3E0D0",
+"u. c #F2DDCB",
+"v. c #D1BCAA",
+"w. c #808080",
+"x. c #4F4F4F",
+"y. c #19140F",
+"z. c #7F7A76",
+"A. c #595551",
+"B. c #7B6F64",
+"C. c #564C45",
+"D. c #786A5C",
+"E. c #CEB6A0",
+"F. c #6A6666",
+"G. c #565656",
+"H. c #494949",
+"I. c #120F0C",
+"J. c #F8EDE3",
+"K. c #F6E9DD",
+"L. c #F5E5D8",
+"M. c #F3E2D2",
+"N. c #F2DECD",
+"O. c #F1DAC7",
+"P. c #EFD7C2",
+"Q. c #EED3BC",
+"R. c #CCAF97",
+"S. c #D7CCC1",
+"T. c #D5C7BA",
+"U. c #D3C2B3",
+"V. c #D1BEAC",
+"W. c #CFB9A5",
+"X. c #CEB49F",
+"Y. c #CCB097",
+"Z. c #CAAB90",
+"`. c #C9A88C",
+" + c #000000",
+" . + @ # $ ",
+" % % % % % & * = - ; > , % % % % % % ",
+"% ' ) ) ) ) ) ! ~ { ] ^ / ( _ : < [ } | ",
+"% 1 2 2 2 3 = ~ 4 5 6 7 / 8 ( 9 0 9 a b ",
+"% c d e f 2 g h i i j i j k l m n o p q ",
+"% r s t u v u w x y z A B A z B A y w C ",
+"% 1 D E u F t G H I I I J K L M N N y O ",
+"% r P Q R S w G H I ~ ~ ~ ~ ~ ~ T U V O ",
+"% 1 W u X Y Z ` .I ~ ~ ~ ~ ~ ~ ..~ : V ",
+"% 1 G t t u +.@.x I ~ x : x #.~ $.: ~ U V ",
+"% 1 w 2 t %.x x o I ~ ~ ~ ~ ~ ~ $.$...T V ",
+"% &.%.G w 2 *.=.-.I ~ x ;.: x : >.#.R ,.V ",
+"% &.2 u 2 '.=.=.-.I ~ ~ ~ ~ ~ ).!.~.{.].V ",
+"% ^.H =.Z w G H /.(.~ ;.x #.x _.:.<.[.}.V ",
+"% |.w G =.H p 1.2.3.~ ~ >.4.5.6.7.8.9.0.V ",
+"% ^.=.%.%.=.x p .a.~ b.c.d.e.f.g.h.i.j.V ",
+"% ^.H x H p k./.l.m.~ n.o.p.q.r.s.t.u.v.V ",
+"% #.x =.=.w.w.z x.y.~ z.A.f.g.B.C.g.D.E.V ",
+"% u o o o o F.G.H.I.~ J.K.L.M.N.O.P.Q.R.V ",
+" % % % % % % % V N }.S.T.U.V.W.X.Y.Z.`.V ",
+" V V V V V V V V V V + + ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/fforward.xpm b/muse_qt4_evolution/muse/xpm/fforward.xpm
new file mode 100644
index 00000000..11bf7523
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/fforward.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * fforward_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" . . ",
+" ... ... ",
+" ... ... ",
+" .... .... ",
+" .... .... ",
+" ..... ..... ",
+" ..... ..... ",
+" .... .... ",
+" .... .... ",
+" ... ... ",
+" ... ... ",
+" . . "};
diff --git a/muse_qt4_evolution/muse/xpm/filenew.png b/muse_qt4_evolution/muse/xpm/filenew.png
new file mode 100644
index 00000000..1214837b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/filenew.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/filenewS.xpm b/muse_qt4_evolution/muse/xpm/filenewS.xpm
new file mode 100644
index 00000000..1980070a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/filenewS.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char * filenewS_xpm[] = {
+"16 16 10 1",
+" c None",
+". c #000000",
+"+ c #303030",
+"@ c #DCDCDC",
+"# c #C3C3C3",
+"$ c #FFFFFF",
+"% c #585858",
+"& c #A0A0A0",
+"* c #FFFFC0",
+"= c #400000",
+" ..+...+.. ",
+" +@@@@@#+#. ",
+" .@$$$$$%$@. ",
+" .@$$$$$%@$#. ",
+" .@$$$$$%%%+. ",
+" .@$$$$$$@#&. ",
+" .@$$$$$$*$@. ",
+" .@$$$$$$$$$. ",
+" .@$$$$*$*$*. ",
+" .@$$$$$$$*$. ",
+" .@$$*$*$*$*. ",
+" .@$$$$$*$*$. ",
+" +@*$*$*$*$*. ",
+" .@$$$*$*$**. ",
+" .@*$*$*$***. ",
+" ......=..+.. "};
diff --git a/muse_qt4_evolution/muse/xpm/fileopen.png b/muse_qt4_evolution/muse/xpm/fileopen.png
new file mode 100644
index 00000000..bb35ee03
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/fileopen.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/filesave.png b/muse_qt4_evolution/muse/xpm/filesave.png
new file mode 100644
index 00000000..d69158ee
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/filesave.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/flag.xpm b/muse_qt4_evolution/muse/xpm/flag.xpm
new file mode 100644
index 00000000..f8bcf244
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/flag.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char* flag_xpm[] = {
+"22 22 3 1",
+". c None",
+"+ c #000000",
+"@ c #00FF00",
+"......................",
+"......................",
+"......................",
+"......................",
+"........++............",
+"........+@++..........",
+"........+@@@+.........",
+"........+@@@@+........",
+"........+@@@@@+.......",
+"........+@@@@+........",
+"........+@@@+.........",
+"........+@++..........",
+"........++............",
+"........+.............",
+"........+.............",
+"........+.............",
+"........+.............",
+"........+.............",
+"........+.............",
+"......................",
+"......................",
+"......................"};
diff --git a/muse_qt4_evolution/muse/xpm/flagS.xpm b/muse_qt4_evolution/muse/xpm/flagS.xpm
new file mode 100644
index 00000000..741528e1
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/flagS.xpm
@@ -0,0 +1,19 @@
+/* XPM */
+static const char* flagS_xpm[] = {
+"8 12 3 1",
+". c None",
+"+ c #000000",
+"@ c #00FF00",
+"+.......",
+"+@+.....",
+"+@@@+...",
+"+@@@@@+.",
+"+@@@@+..",
+"+@@@+...",
+"+@+.....",
+"+.......",
+"+.......",
+"+.......",
+"+.......",
+"+......."};
+
diff --git a/muse_qt4_evolution/muse/xpm/folder_new.png b/muse_qt4_evolution/muse/xpm/folder_new.png
new file mode 100644
index 00000000..1277281f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/folder_new.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/forward.xpm b/muse_qt4_evolution/muse/xpm/forward.xpm
new file mode 100644
index 00000000..c2104314
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/forward.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*forward_xpm[]={
+"16 16 5 1",
+"# c #000000",
+"a c #ffffff",
+"c c #808080",
+"b c #c0c0c0",
+". c None",
+"................",
+"................",
+".........#......",
+".........##.....",
+".........#a#....",
+"..########aa#...",
+"..#aaaaaaabaa#..",
+"..#bbbbbbbbbaa#.",
+"..#bbbbbbbbba#..",
+"..########ba#c..",
+"..ccccccc#a#c...",
+"........c##c....",
+"........c#c.....",
+"........cc......",
+"........c.......",
+"................",
+"................"};
+
diff --git a/muse_qt4_evolution/muse/xpm/frewind.xpm b/muse_qt4_evolution/muse/xpm/frewind.xpm
new file mode 100644
index 00000000..8c11fc3a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/frewind.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * frewind_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" . . ",
+" ... ... ",
+" ... ... ",
+" .... .... ",
+" .... .... ",
+" ..... ..... ",
+" ..... ..... ",
+" .... .... ",
+" .... .... ",
+" ... ... ",
+" ... ... ",
+" . . "};
diff --git a/muse_qt4_evolution/muse/xpm/glue.xpm b/muse_qt4_evolution/muse/xpm/glue.xpm
new file mode 100644
index 00000000..caff2484
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/glue.xpm
@@ -0,0 +1,49 @@
+/* XPM */
+static const char * glue_xpm[] = {
+"22 22 24 1",
+" c None",
+". c #A0A0A4",
+"+ c #8C9BBA",
+"@ c #BBC4D6",
+"# c #7C8BAA",
+"$ c #A3ACBE",
+"% c #7D8EAE",
+"& c #98A6C0",
+"* c #8895B0",
+"= c #4F6693",
+"- c #0D1628",
+"; c #7586A6",
+"> c #4A566E",
+", c #000000",
+"' c #6D7FA2",
+") c #63779D",
+"! c #9B9B9F",
+"~ c #6A7A99",
+"{ c #687B9F",
+"] c #374664",
+"^ c #424F6A",
+"/ c #5C7199",
+"( c #3B4967",
+"_ c #3E4C68",
+" ",
+" ",
+" . ",
+" . ",
+" .+. ",
+" .+.. ",
+" .@+#. ",
+" .@+#.. ",
+" .@@@$#. ",
+" .@@@@@##. ",
+" .@@@@@$%.. ",
+" .&@@@@$*#=- ",
+" .&@@@@$;#>,. ",
+" .'*@@@*;'),. ",
+" !~;$$*{')],. ",
+" ,^;{*//(,.. ",
+" ,_#))_,.. ",
+" ,,,,,.. ",
+" ..... ",
+" ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/greendot.svg b/muse_qt4_evolution/muse/xpm/greendot.svg
new file mode 100644
index 00000000..823240de
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/greendot.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="greendot.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#11ff00;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="8"
+ inkscape:cy="9.5532385"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1913"
+ inkscape:window-height="1135"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.020974,0,0,1.028955,0.484572,0.453358)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/gv.xpm b/muse_qt4_evolution/muse/xpm/gv.xpm
new file mode 100644
index 00000000..cf4a2ed1
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/gv.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char * gv_xpm[] = {
+"16 16 4 1",
+" g None",
+". g #000000",
+"+ g #FFFFFF",
+"@ g #C0C0C0",
+" ........... ",
+".+++++++++++. ",
+".+@@@@+@@@++. ",
+".+++++++++++. ",
+".+@++@...@++. ",
+".+++@.+++.@+. ",
+".+@+.++@++.+. ",
+".+++.++@@+.+. ",
+".+++.+++++.+. ",
+".+++@.+++..+. ",
+".@@+@@....+.. ",
+".@+@@@++++.+. ",
+".@@++@+++++.+. ",
+".@+@@+++++++.+. ",
+" ........... .+.",
+" . "};
diff --git a/muse_qt4_evolution/muse/xpm/home.xpm b/muse_qt4_evolution/muse/xpm/home.xpm
new file mode 100644
index 00000000..de96eea3
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/home.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char *home_xpm[]={
+"16 16 4 1",
+"# c #000000",
+"a c #ffffff",
+"b c #c0c0c0",
+". c None",
+"........... ....",
+" ....##.......",
+"..#...####......",
+"..#..#aabb#.....",
+"..#.#aaaabb#....",
+"..##aaaaaabb#...",
+"..#aaaaaaaabb#..",
+".#aaaaaaaaabbb#.",
+"###aaaaaaaabb###",
+"..#aaaaaaaabb#..",
+"..#aaa###aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#aaa#.#aabb#..",
+"..#####.######..",
+"................"};
+
diff --git a/muse_qt4_evolution/muse/xpm/initS.xpm b/muse_qt4_evolution/muse/xpm/initS.xpm
new file mode 100644
index 00000000..998b02fe
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/initS.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char * initS_xpm[] = {
+"16 16 4 1",
+" c None",
+". c #C00000",
+"+ c #FFFFFF",
+"@ c #000000",
+"................",
+"................",
+"..++++++++++++..",
+"..+@@++++++@@+..",
+"..+@@@++++@@@+..",
+"..++@@@++@@@++..",
+"..+++@@@@@@+++..",
+"..++++@@@@++++..",
+"..++++@@@@++++..",
+"..+++@@@@@@+++..",
+"..++@@@++@@@++..",
+"..+@@@++++@@@+..",
+"..+@@++++++@@+..",
+"..++++++++++++..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/inputpluginS.xpm b/muse_qt4_evolution/muse/xpm/inputpluginS.xpm
new file mode 100644
index 00000000..33e8e578
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/inputpluginS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *inputpluginS_xpm[]={
+"16 16 3 1",
+"a c #000000",
+". c #00ff00",
+"# c #ffffff",
+"................",
+"................",
+"..############..",
+"..#aaaaa######a.",
+".aaaaaaaaaa##a.a",
+"a.#aaaaa######a.",
+"..############..",
+"..#aaaaa######a.",
+"aaaaaaaaaaa##a.a",
+"..#aaaaa######a.",
+"..############..",
+"a.#aaaaa######a.",
+".aaaaaaaaaa##a.a",
+"..#aaaaa######a.",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/italic.xpm b/muse_qt4_evolution/muse/xpm/italic.xpm
new file mode 100644
index 00000000..e21ebbff
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/italic.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * italic_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" ",
+" .... ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .... ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/listS.xpm b/muse_qt4_evolution/muse/xpm/listS.xpm
new file mode 100644
index 00000000..cc561f06
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/listS.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char *listS_xpm[]={
+"16 16 7 1",
+"# c #000000",
+"e c #008000",
+". c #00ff00",
+"b c #dbdbdb",
+"a c #dcdcdc",
+"d c #fafafa",
+"c c #fbfbfb",
+"................",
+"..############..",
+"..#aaaaaaaabb#..",
+"..#c#c#c#c#db#e.",
+"..#cc#c#c#c#b#e.",
+"..#cccccccccb#e.",
+"..#c#a#a#a#ab#e.",
+"..#cc#a#a#a#b#e.",
+"..#cccccccccb#e.",
+"..#c#a#a#a#ab#e.",
+"..#cc#a#a#a#b#e.",
+"..#cccccccccb#e.",
+"..#cccccccccb#e.",
+"..############e.",
+"....eeeeeeeeeee.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/lmark.xpm b/muse_qt4_evolution/muse/xpm/lmark.xpm
new file mode 100644
index 00000000..2da119b9
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/lmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* lmark_xpm[]={
+"18 18 2 1",
+"# c #0000ff",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"##########........",
+".#########........",
+"..########........",
+"...#######........",
+"....######........",
+".....#####........",
+"......####........",
+".......###........",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse_qt4_evolution/muse/xpm/localoffS.xpm b/muse_qt4_evolution/muse/xpm/localoffS.xpm
new file mode 100644
index 00000000..312793a5
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/localoffS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *localoffS_xpm[]={
+"16 16 3 1",
+"a c #000000",
+". c #c00000",
+"# c #ffffff",
+"................",
+"................",
+"..############..",
+"..############..",
+"..####aaaa####..",
+"..##aaaaaaaa##..",
+"..##aaaaaaaa##..",
+"..############..",
+"..############..",
+"..##aaaaaaaa##..",
+"..##aaaaaaaa##..",
+"..####aaaa####..",
+"..############..",
+"..############..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/lock.xpm b/muse_qt4_evolution/muse/xpm/lock.xpm
new file mode 100644
index 00000000..9c38103b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/lock.xpm
@@ -0,0 +1,86 @@
+/* XPM */
+static const char * lock_xpm[] = {
+"15 15 68 1",
+" c None",
+". c #747474",
+"+ c #838383",
+"@ c #727272",
+"# c #808080",
+"$ c #929292",
+"% c #7F7F7F",
+"& c #7A7A7A",
+"* c #6A6A6A",
+"= c #8C8C8C",
+"- c #F3F3F3",
+"; c #DEDEDE",
+"> c #2F2F2F",
+", c #2C2C2C",
+"' c #191919",
+") c #242424",
+"! c #3A3A3A",
+"~ c #6D6D6D",
+"{ c #CBCBCB",
+"] c #212121",
+"^ c #B6B6B6",
+"/ c #D1D1D1",
+"( c #C6C6C6",
+"_ c #1D1D1D",
+": c #787878",
+"< c #C1C1C1",
+"[ c #757575",
+"} c #1F1F1F",
+"| c #404040",
+"1 c #BDBDBD",
+"2 c #878787",
+"3 c #CFCFCF",
+"4 c #282828",
+"5 c #1C1C1C",
+"6 c #DCDCDC",
+"7 c #7C7C7C",
+"8 c #B5B5B5",
+"9 c #262626",
+"0 c #202020",
+"a c #232323",
+"b c #A3A3A3",
+"c c #2D2D2D",
+"d c #C4C4C4",
+"e c #1E1E1E",
+"f c #D8D8D8",
+"g c #272727",
+"h c #292929",
+"i c #E3E3E3",
+"j c #D4D4D4",
+"k c #B8B8B8",
+"l c #EBEBEB",
+"m c #444444",
+"n c #323232",
+"o c #3B3B3B",
+"p c #414141",
+"q c #383838",
+"r c #434343",
+"s c #EFEFEF",
+"t c #ABABAB",
+"u c #E7E7E7",
+"v c #A0A0A0",
+"w c #353535",
+"x c #363636",
+"y c #373737",
+"z c #C3C3C3",
+"A c #969696",
+"B c #1B1B1B",
+"C c #8F8F8F",
+".+@#$.@%&+%%@+*",
+"=--;;>,')!;;--$",
+"~{;;]!^;/(_;{/:",
+"=<;)[^}_)/+|1<2",
+"&3/41);;;56}(/%",
+"73;)89;;;06_(/+",
+"2(5abc;;;]d)e/%",
+"7f5)90g]g0ahe3+",
+"+;ai<(j(<<k6]l@",
+"@;9bmncopqr1)-%",
+"+i4stui({(b;}l:",
+"2;}v|w>x|yp(g-+",
+".jn6z6uk<u<8]u#",
+"Aie9B4]a455>eiC",
+"@%@%=22@@%&+#=~"};
diff --git a/muse_qt4_evolution/muse/xpm/loop.xpm b/muse_qt4_evolution/muse/xpm/loop.xpm
new file mode 100644
index 00000000..acd999c8
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/loop.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static char *loop[]={
+"22 22 4 1",
+". c None",
+"a c #000000",
+"b c #7f7f7f",
+"# c #ffffff",
+"......................",
+"......................",
+".......########.......",
+"......#aaaaaaaab......",
+".....#abbbbbbbbab.....",
+"....#ab........#ab....",
+"....#ab........#ab....",
+"....#ab........#ab....",
+"....#ab.......#aaa....",
+"....#ab.......#aaab...",
+"....#ab......#aaaaa...",
+"....#ab......#aaaaa...",
+"....#ab......#ababa...",
+"....#ab........bab....",
+"....#ab........#ab....",
+"....#ab........#ab....",
+"....#ab........#ab....",
+".....ba......##ab.....",
+"......baaaaaaaab......",
+"........bbbbbbb.......",
+"......................",
+"......................"};
diff --git a/muse_qt4_evolution/muse/xpm/master.xpm b/muse_qt4_evolution/muse/xpm/master.xpm
new file mode 100644
index 00000000..8d241c9f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/master.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char*master_xpm[]={
+"10 10 2 1",
+"# c #000000",
+". c None",
+"..........",
+".#.,....#.",
+".##....##.",
+".###..###.",
+".########.",
+".##.##.##.",
+".##....##.",
+".##....##.",
+".##....##.",
+".........."};
diff --git a/muse_qt4_evolution/muse/xpm/mastertrackS.xpm b/muse_qt4_evolution/muse/xpm/mastertrackS.xpm
new file mode 100644
index 00000000..3f1dfcb9
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mastertrackS.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *mastertrackS_xpm[]={
+"16 16 6 1",
+"# c #000000",
+". c #00ff00",
+"c c #808080",
+"d c #c3c3c3",
+"b c #ffc0c0",
+"a c #ffffff",
+"................",
+"................",
+"..#aaaaaaaaaaa..",
+"..##aaaaaaaaaa..",
+"..a##abbaaaaaa..",
+"..aa##abbaaaaa..",
+"..aaa#cbbbb####.",
+"..aaaabcbbb#c##.",
+"..aaaaabbbb####.",
+"..aaaaacbbb####.",
+"..aaaaaaa#a####.",
+"..aaaaaaaaadddd.",
+"..aaaaaaaaaaaa..",
+"..aaaaaaaaaaaa..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/mastertrack_graphic.xpm b/muse_qt4_evolution/muse/xpm/mastertrack_graphic.xpm
new file mode 100644
index 00000000..0651619c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mastertrack_graphic.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * mastertrack_graphic_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #13A913",
+"+ c #0AD700",
+"@ c #800000",
+"# c #FEFFFC",
+"$ c #C2C4C0",
+"% c #C20000",
+"& c #FF0000",
+"* c #078002",
+"................",
+".++@@++++++++++.",
+".+#@@$########+.",
+".+#%%$########+.",
+".+#%%$########+.",
+".+#&&$#@@#####+.",
+".+#&&$#@@####@@.",
+".@@&&$#%%####@@*",
+".@@&&@@%%$###%%*",
+".%%&&@@&&@@##%%*",
+".%%&&%%&&@@@@&&*",
+".&&&&%%&&%%@@&&*",
+".&&&&&&&&%%%%&&*",
+".&&&&&&&&&&%%&&*",
+".+**************",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/mastertrack_list.xpm b/muse_qt4_evolution/muse/xpm/mastertrack_list.xpm
new file mode 100644
index 00000000..e8ed00db
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mastertrack_list.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * mastertrack_list_xpm[] = {
+"16 16 8 1",
+" c None",
+". c #13A913",
+"+ c #0AD700",
+"@ c #000100",
+"# c #FEFFFC",
+"$ c #DBDDDA",
+"% c #078002",
+"& c #C2C4C0",
+"................",
+".+@@@@@@@@@@@@+.",
+".+@#$$$####$$@%.",
+".+@$@&@&@&@&#@%.",
+".+@##@&@&@&@#@%.",
+".+@#$##$#####@%.",
+".+@$@@#@#@#@#@%.",
+".+@$@@#$@#@##@%.",
+".+@$$##$#####@%.",
+".+@#@@#@$@#@#@%.",
+".+@#@@##@$@##@%.",
+".+@$#@@#@#@##@%.",
+".+@#@##@@#@@#@%.",
+".+@$#####$$#$@%.",
+".+@@@@@@@@@@@@%.",
+"...%%%%%%%%%%%%."};
diff --git a/muse_qt4_evolution/muse/xpm/meta.xpm b/muse_qt4_evolution/muse/xpm/meta.xpm
new file mode 100644
index 00000000..c424c23c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/meta.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * meta_xpm[] = {
+"22 22 2 1",
+" c #FFFFFFFFFFFF",
+". c #000000000000",
+" ",
+" ",
+" ",
+" ",
+" ........ .... ",
+" .. .. .. .. .. ",
+" .. .. .. ...... ",
+" .. .. .. .. ",
+" .. .. .. .. . ",
+" ... .. ... .... ",
+" ",
+" ",
+" .. ",
+" .. ",
+" .... .... ",
+" .. .. ",
+" .. ..... ",
+" .. .. .. ",
+" .. .. .. ",
+" ... ....... ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/midi_edit_instrument.xpm b/muse_qt4_evolution/muse/xpm/midi_edit_instrument.xpm
new file mode 100644
index 00000000..90e3df49
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_edit_instrument.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * midi_edit_instrument_xpm[] = {
+"16 16 8 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #FF0000",
+"# c #A0A0A0",
+"$ c #808000",
+"% c #404000",
+"& c #585858",
+" ",
+" ........... ",
+" .+++++++++. @@",
+" .+########.@@@",
+" .+++++++++$%@ ",
+" .+#######$%$ ",
+" .+++++++$%$ ",
+" .+####+$%$. ",
+" .+++++$%$+. ",
+" .+#++$%$++. ",
+" .+++&$$+++. ",
+" .+++&&++++. ",
+" .+++++++++. ",
+" .+#######+. ",
+" .+++++++++. ",
+" ........... "};
diff --git a/muse_qt4_evolution/muse/xpm/midi_init_instr.xpm b/muse_qt4_evolution/muse/xpm/midi_init_instr.xpm
new file mode 100644
index 00000000..a64dc56f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_init_instr.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * midi_init_instr_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #800000",
+"+ c #C00000",
+"@ c #E1DDDA",
+"# c #C7C0BB",
+"$ c #FFFFFF",
+"% c #0E0702",
+"& c #080401",
+"* c #000000",
+"................",
+".++++++++++++++.",
+".+@###$$$$@##$+.",
+".+@%&#@$$##&&#+.",
+".+@%*&#@@@&*&#+.",
+".+@#&*&#@&**##+.",
+".+@$#&*&*&%@@@+.",
+".+@$$#&***#@@@+.",
+".+@$$#****#@$@+.",
+".+@@#%*%&&%#@@+.",
+".+@#&*%#@&*&#@+.",
+".+#&*%##$@**%#+.",
+".+#%%#@$$@#%%#+.",
+".+@@@@$$$$$##$+.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/midi_local_off.xpm b/muse_qt4_evolution/muse/xpm/midi_local_off.xpm
new file mode 100644
index 00000000..80dd1268
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_local_off.xpm
@@ -0,0 +1,105 @@
+/* XPM */
+static const char * midi_local_off_xpm[] = {
+"16 16 86 1",
+" c None",
+". c #800000",
+"+ c #C00000",
+"@ c #FFFFFF",
+"# c #F2F2F2",
+"$ c #3D3D3D",
+"% c #414141",
+"& c #FEFEFE",
+"* c #F1F1F1",
+"= c #BFBFBF",
+"- c #E7E7E7",
+"; c #EEEEEE",
+"> c #363636",
+", c #353535",
+"' c #D1D1D1",
+") c #B5B5B5",
+"! c #FAFAFA",
+"~ c #878787",
+"{ c #040404",
+"] c #636363",
+"^ c #E9E9E9",
+"/ c #6B6B6B",
+"( c #0E0E0E",
+"_ c #999999",
+": c #C4C4C4",
+"< c #1E1E1E",
+"[ c #1C1C1C",
+"} c #B7B7B7",
+"| c #ECECEC",
+"1 c #F7F7F7",
+"2 c #9E9E9E",
+"3 c #121212",
+"4 c #2E2E2E",
+"5 c #DFDFDF",
+"6 c #535353",
+"7 c #070707",
+"8 c #EFEFEF",
+"9 c #E5E5E5",
+"0 c #4C4C4C",
+"a c #0A0A0A",
+"b c #949494",
+"c c #212121",
+"d c #B8B8B8",
+"e c #979797",
+"f c #454545",
+"g c #171717",
+"h c #3C3C3C",
+"i c #DADADA",
+"j c #494949",
+"k c #BEBEBE",
+"l c #292929",
+"m c #242424",
+"n c #101010",
+"o c #A8A8A8",
+"p c #4B4B4B",
+"q c #FDFDFD",
+"r c #868686",
+"s c #373737",
+"t c #828282",
+"u c #090909",
+"v c #5C5C5C",
+"w c #F0F0F0",
+"x c #F4F4F4",
+"y c #FBFBFB",
+"z c #404040",
+"A c #0F0F0F",
+"B c #A5A5A5",
+"C c #111111",
+"D c #4E4E4E",
+"E c #B4B4B4",
+"F c #EBEBEB",
+"G c #ACACAC",
+"H c #464646",
+"I c #E8E8E8",
+"J c #131313",
+"K c #484848",
+"L c #2D2D2D",
+"M c #0D0D0D",
+"N c #5A5A5A",
+"O c #CECECE",
+"P c #FCFCFC",
+"Q c #CCCCCC",
+"R c #7F7F7F",
+"S c #262626",
+"T c #A7A7A7",
+"U c #E2E2E2",
+"................",
+".++++++++++++++.",
+".+@@@@#$%&@@@@+.",
+".+@*=-;>,&')!@+.",
+".+!~{]^>,^/(_@+.",
+".+:<[}|>,12345+.",
+".+67/8;>,&90ab+.",
+".+<cd@;>,&@eaf+.",
+".+ghi@;>j&@k<l+.",
+".+mno&8pj&qr{s+.",
+".+tuv9qwxyizAB+.",
+".+'%CDEF-GHA6I+.",
+".+qkf7JKLM7NO@+.",
+".+@PQRSCC/TU@@+.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/midi_plugS.xpm b/muse_qt4_evolution/muse/xpm/midi_plugS.xpm
new file mode 100644
index 00000000..330a4b35
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_plugS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *midi_plugS_xpm[]={
+"16 16 3 1",
+". c #00ff00",
+"a c #303030",
+"# c #ffffff",
+"................",
+"................",
+"..###aaaaaa###..",
+"..##a######a##..",
+"..#a###aa###a#..",
+"..a####aa####a..",
+"..a#aa####aa#a..",
+"..a#aa####aa#a..",
+"..a##########a..",
+"..a#aa####aa#a..",
+"..a#aa####aa#a..",
+"..#a########a#..",
+"..##a######a##..",
+"..###aaaaaa###..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/midi_reset_instr.xpm b/muse_qt4_evolution/muse/xpm/midi_reset_instr.xpm
new file mode 100644
index 00000000..9460fd41
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_reset_instr.xpm
@@ -0,0 +1,55 @@
+/* XPM */
+static const char * midi_reset_instr_xpm[] = {
+"16 16 36 1",
+" c None",
+". c #800000",
+"+ c #C00000",
+"@ c #FFFFFF",
+"# c #D4D4D4",
+"$ c #606060",
+"% c #000000",
+"& c #F8F8F8",
+"* c #DDDDDD",
+"= c #272727",
+"- c #E0E0E0",
+"; c #757575",
+"> c #E1E1E1",
+", c #AE0000",
+"' c #A3A3A3",
+") c #909090",
+"! c #474747",
+"~ c #D1D1D1",
+"{ c #E6E6E6",
+"] c #B3B3B3",
+"^ c #B0B0B0",
+"/ c #C0C0C0",
+"( c #CBCBCB",
+"_ c #B5B5B5",
+": c #DCDCDC",
+"< c #DBDBDB",
+"[ c #E4E4E4",
+"} c #2A2A2A",
+"| c #1E1E1E",
+"1 c #C2C2C2",
+"2 c #D3D3D3",
+"3 c #4E4E4E",
+"4 c #252525",
+"5 c #EAEAEA",
+"6 c #D7D7D7",
+"7 c #CCCCCC",
+"................",
+".++++++++++++++.",
+".+@@@@#$#@@@@@+.",
+".+@@@#%%#@@@@@+.",
+".+&@#%%%#####@+.",
+".+&*%%%%%%=$#@+.",
+".+&-%%%%%%%%;>,.",
+".+@@#%%%');%!~,.",
+".+@@{]%%']^%%]+.",
+".+@@@@]$/(_=%/+.",
+".+@@@:<]##;%=@+.",
+".+@@[}|%%%%=!1+.",
+".+@@234%%!$$]@+.",
+".+@@@5677777@{+.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/midi_transform.xpm b/muse_qt4_evolution/muse/xpm/midi_transform.xpm
new file mode 100644
index 00000000..d354191f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_transform.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static const char * midi_transform_xpm[] = {
+"16 16 11 1",
+" c None",
+". c #58A8FF",
+"+ c #A8DCFF",
+"@ c #363636",
+"# c #FFFFFF",
+"$ c #CACACA",
+"% c #626262",
+"& c #000000",
+"* c #85AECA",
+"= c #010101",
+"- c #4685CA",
+"................",
+".+++++++++@@+++.",
+".+##@#####@@##+.",
+".+##@$####@@##+.",
+".+##@$####@@##+.",
+".+#%&%##%@&&@%+.",
+".+#%&%$#%@&&@%*.",
+".+#%&%$#%@&&@%*.",
+".+#%&%$#%@&&@%*.",
+".+##&$$#%@&&@%*.",
+".+#&=$##%@&&@%*.",
+".+&&$$###$=&$$*.",
+".&&$$####&&&$#+.",
+"&&$$####&&&$$#+.",
+"&**++++&&&**+++.",
+"--....&&&--....."};
diff --git a/muse_qt4_evolution/muse/xpm/midi_transpose.xpm b/muse_qt4_evolution/muse/xpm/midi_transpose.xpm
new file mode 100644
index 00000000..0fdf5ac0
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midi_transpose.xpm
@@ -0,0 +1,31 @@
+/* XPM */
+static const char * midi_transpose_xpm[] = {
+"16 16 12 1",
+" c None",
+". c #58A8FF",
+"+ c #000000",
+"@ c #A8DCFF",
+"# c #FFFFFF",
+"$ c #CACACA",
+"% c #797C7E",
+"& c #808080",
+"* c #545454",
+"= c #7E7F7F",
+"- c #6F91A8",
+"; c #3A6FA8",
+"......+.........",
+".@@@@++@@@@@@@@.",
+".@##+++#######@.",
+".@#++$+$######@.",
+".@#+$$+$##++##@.",
+".@##$#+$#++++#@.",
+".%&&&&+*&++++*=.",
+".@####+$#+++$$@.",
+".@##+++$#+$$$#@.",
+".@#++++$#+$###@.",
+".&&++++*&+*&&&&.",
+".@##++$$#+$#+#@.",
+".@###$$##+$++$@.",
+".@#######+++$$@.",
+".@@@@@@@@++--@@.",
+".........+;;...."};
diff --git a/muse_qt4_evolution/muse/xpm/midiin.xpm b/muse_qt4_evolution/muse/xpm/midiin.xpm
new file mode 100644
index 00000000..15b906ac
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/midiin.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* midiin_xpm[] ={
+"18 18 2 1",
+". c None",
+"# c #000000",
+"......#####.......",
+"....##.....##.....",
+"...#...##....#....",
+"..#....##.....#...",
+".#..##.....##..#..",
+".#..##.....##..#..",
+"#...............#.",
+"#...............#.",
+"#..##.......##..#.",
+"#..##.......##..#.",
+"#...............#.",
+".#....#####....#..",
+".#....#####....#..",
+"..#...##.##...#...",
+"...#.........#....",
+"....##.....##.....",
+"......#####.......",
+".................."};
diff --git a/muse_qt4_evolution/muse/xpm/miditransformS.xpm b/muse_qt4_evolution/muse/xpm/miditransformS.xpm
new file mode 100644
index 00000000..3e43e097
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/miditransformS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *miditransformS_xpm[]={
+"16 16 3 1",
+"a c #303030",
+". c #58a8ff",
+"# c #ffffff",
+"................",
+"................",
+"..###aaaaaa###..",
+"..##a######a##..",
+"..#a###aa###a#..",
+"..a####aa####a..",
+"..a#aa####aa#a..",
+"..a#aa####aa#a..",
+"..a##########a..",
+"..a#aa####aa#a..",
+"..a#aa####aa#a..",
+"..#a########a#..",
+"..##a######a##..",
+"..###aaaaaa###..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/miditransposeS.xpm b/muse_qt4_evolution/muse/xpm/miditransposeS.xpm
new file mode 100644
index 00000000..fa4593f4
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/miditransposeS.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *miditransposeS_xpm[]={
+"16 16 6 1",
+"a c #303030",
+". c #58a8ff",
+"c c #800000",
+"b c #ff0000",
+"d c #ffc0c0",
+"# c #ffffff",
+"................",
+"................",
+"..###aaaaab###..",
+"..##a#####bb##..",
+"..#a###aa#bbb#..",
+"..a####aa#bbbb..",
+"..a#aabbbbccbbb.",
+"..a#aabbbbccbbb.",
+"..a###bb##bbbbd.",
+"..a#aabb##ccbd..",
+"..a#aabb##ccda..",
+"..#a##bb##bda#..",
+"..##a#bb##da##..",
+"..###abbaaa###..",
+"......bb........",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/minus.xpm b/muse_qt4_evolution/muse/xpm/minus.xpm
new file mode 100644
index 00000000..7533722a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/minus.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char * minus_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #DCDCDC",
+"# c #A0A0A4",
+" ",
+" ..... ",
+" ..+++++.. ",
+" .++@@@@@@@. ",
+" .+@@@@@@@@. ",
+" .+@@@@@@@@@#. ",
+" .+@@@@@@@@@#. ",
+" .+@.......@#. ",
+" .+@@@@@@@@@#. ",
+" .+@@@@@@@@@#. ",
+" .@@@@@@@@#. ",
+" .@@@@@@@##. ",
+" ..#####.. ",
+" ..... ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/mixerS.xpm b/muse_qt4_evolution/muse/xpm/mixerS.xpm
new file mode 100644
index 00000000..b7b19735
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mixerS.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char * mixerS_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #000000",
+" ",
+" ",
+" ",
+" . . . . ",
+" ... . ... . ",
+" ... . ... . ",
+" . . . . ",
+" . . . ... ",
+" . . . ... ",
+" . . . . ",
+" . . . . ",
+" . ... . . ",
+" . ... . . ",
+" ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/mixeraudioS.xpm b/muse_qt4_evolution/muse/xpm/mixeraudioS.xpm
new file mode 100644
index 00000000..bc02fc72
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mixeraudioS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *mixerAudioS_xpm[]={
+"16 16 3 1",
+"a c #000000",
+". c #ff00ff",
+"# c #ffffff",
+"................",
+"................",
+"..############..",
+"..#a##a##a##a#..",
+"..aaa#a#aaa#a#..",
+"..aaa#a#aaa#a#..",
+"..#a##a##a##a#..",
+"..#a##a##a#aaa..",
+"..#a##a##a#aaa..",
+"..#a##a##a##a#..",
+"..#a#aaa#a##a#..",
+"..#a#aaa#a##a#..",
+"..############..",
+"..############..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/mono.svg b/muse_qt4_evolution/muse/xpm/mono.svg
new file mode 100644
index 00000000..ac764181
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mono.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ version="1.0"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="mono.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs1309" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="18.7"
+ inkscape:cx="16.5"
+ inkscape:cy="10"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="907"
+ inkscape:window-height="591"
+ inkscape:window-x="608"
+ inkscape:window-y="401"
+ width="16px"
+ height="16px" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ transform="translate(-7.6895154,-1)">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:0;stroke:#3e3e3e;stroke-width:2.26799989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2192"
+ sodipodi:cx="12.245989"
+ sodipodi:cy="10.374331"
+ sodipodi:rx="7.4331551"
+ sodipodi:ry="6.3547478"
+ d="M 19.679144 10.374331 A 7.4331551 6.3547478 0 1 1 4.8128338,10.374331 A 7.4331551 6.3547478 0 1 1 19.679144 10.374331 z"
+ transform="matrix(0.7216721,0,0,0.8227871,6.6137967,0.5665679)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/muse_icon.xpm b/muse_qt4_evolution/muse/xpm/muse_icon.xpm
new file mode 100644
index 00000000..a7621e34
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/muse_icon.xpm
@@ -0,0 +1,411 @@
+/* XPM */
+static const char * muse_icon_xpm[] = {
+"32 32 376 2",
+" c None",
+". c #616161",
+"+ c #626262",
+"@ c #8E4B33",
+"# c #7C7B65",
+"$ c #C6C4A3",
+"% c #9F984E",
+"& c #B46C17",
+"* c #E6A34D",
+"= c #EBB268",
+"- c #E59F3C",
+"; c #BC7A1B",
+"> c #AB741E",
+", c #B6AB8B",
+"' c #E5E3B8",
+") c #C4C07B",
+"! c #BAAC17",
+"~ c #778E33",
+"{ c #87877C",
+"] c #DA9235",
+"^ c #E9B168",
+"/ c #E9B97A",
+"( c #E9AD5E",
+"_ c #E8A855",
+": c #E08B1D",
+"< c #75584E",
+"[ c #636363",
+"} c #BF8E48",
+"| c #EBDEB6",
+"1 c #ECE9BB",
+"2 c #C4BC75",
+"3 c #D2981B",
+"4 c #B57614",
+"5 c #6C6C6C",
+"6 c #6B6B6B",
+"7 c #979560",
+"8 c #FAFADD",
+"9 c #F7F6E4",
+"0 c #E3DAC2",
+"a c #CEBC9F",
+"b c #D59E56",
+"c c #E69E41",
+"d c #E0A045",
+"e c #9D794A",
+"f c #6A6A6A",
+"g c #696969",
+"h c #666666",
+"i c #646464",
+"j c #BE791F",
+"k c #D2BF9B",
+"l c #FDF9CE",
+"m c #E2E0B1",
+"n c #C2BC5D",
+"o c #C6941B",
+"p c #D1821C",
+"q c #B76F1A",
+"r c #6D6D6D",
+"s c #A7A164",
+"t c #C7C38F",
+"u c #C5C074",
+"v c #C5C06E",
+"w c #C5C380",
+"x c #CDCAA2",
+"y c #C9C09E",
+"z c #C5A772",
+"A c #E29A3D",
+"B c #E1AA5C",
+"C c #C89347",
+"D c #6F6A68",
+"E c #957548",
+"F c #C4A471",
+"G c #F6EBC1",
+"H c #F3F1C2",
+"I c #CDCB9C",
+"J c #C6BE3B",
+"K c #B8C300",
+"L c #CA8119",
+"M c #D4831B",
+"N c #BC7315",
+"O c #6E6E6E",
+"P c #6F6F6F",
+"Q c #717171",
+"R c #B7B342",
+"S c #E5DD18",
+"T c #EBE30C",
+"U c #E2DA11",
+"V c #E3DB0E",
+"W c #E0D521",
+"X c #CBC650",
+"Y c #C6C38D",
+"Z c #C7C19F",
+"` c #C29B63",
+" . c #E0A44F",
+".. c #DEAA5F",
+"+. c #D8953F",
+"@. c #CEA25D",
+"#. c #E7D7AC",
+"$. c #F7F4C8",
+"%. c #DDDAAA",
+"&. c #B5AE36",
+"*. c #6A6D62",
+"=. c #8C643D",
+"-. c #DA8B1B",
+";. c #727272",
+">. c #737373",
+",. c #A69F55",
+"'. c #BDB53E",
+"). c #EAE30F",
+"!. c #C1BB16",
+"~. c #7C784F",
+"{. c #ABA13C",
+"]. c #CEC533",
+"^. c #DDDBB0",
+"/. c #E0DBBD",
+"(. c #E6DBBB",
+"_. c #F2E9C5",
+":. c #FAFACF",
+"<. c #E3E0B0",
+"[. c #C5C180",
+"}. c #CCC333",
+"|. c #8F8B4E",
+"1. c #686868",
+"2. c #A8702D",
+"3. c #D7861E",
+"4. c #CC7F1B",
+"5. c #B77813",
+"6. c #747474",
+"7. c #AEAA3F",
+"8. c #B7AA10",
+"9. c #9F9C48",
+"0. c #C3BC4C",
+"a. c #D0CD9D",
+"b. c #CDCA9A",
+"c. c #CFC634",
+"d. c #A8A23D",
+"e. c #B17126",
+"f. c #CE7C1B",
+"g. c #C07719",
+"h. c #AF5A16",
+"i. c #BFB730",
+"j. c #D5CF28",
+"k. c #A6411D",
+"l. c #777664",
+"m. c #7C7C7C",
+"n. c #7B7B7B",
+"o. c #797979",
+"p. c #777777",
+"q. c #8A8761",
+"r. c #A39E4A",
+"s. c #A5A148",
+"t. c #91915A",
+"u. c #73746F",
+"v. c #9F692A",
+"w. c #B77210",
+"x. c #C13200",
+"y. c #C9C430",
+"z. c #C4BB31",
+"A. c #A7621E",
+"B. c #8D8A5C",
+"C. c #7A7A7A",
+"D. c #787878",
+"E. c #757575",
+"F. c #C6801D",
+"G. c #CCC337",
+"H. c #BDAF34",
+"I. c #B2771B",
+"J. c #928E63",
+"K. c #767676",
+"L. c #707070",
+"M. c #8D734E",
+"N. c #C2B669",
+"O. c #BDB048",
+"P. c #A29B45",
+"Q. c #968E3B",
+"R. c #7F7248",
+"S. c #CCC43B",
+"T. c #C2B635",
+"U. c #BF971E",
+"V. c #81826D",
+"W. c #BC9E4D",
+"X. c #C8C25D",
+"Y. c #CFC746",
+"Z. c #DFD424",
+"`. c #D6CB1F",
+" + c #6B754E",
+".+ c #CDC538",
+"++ c #C9BA36",
+"@+ c #BF9D28",
+"#+ c #997448",
+"$+ c #C0B65F",
+"%+ c #CEC949",
+"&+ c #D9CF30",
+"*+ c #EADD0B",
+"=+ c #A49D2B",
+"-+ c #CFC632",
+";+ c #CDC13C",
+">+ c #BF9B2C",
+",+ c #B29743",
+"'+ c #CAC355",
+")+ c #D4CE3B",
+"!+ c #E7E016",
+"~+ c #EEE609",
+"{+ c #C2BC19",
+"]+ c #CDC42E",
+"^+ c #CEC343",
+"/+ c #C09B2B",
+"(+ c #95764A",
+"_+ c #C6B44F",
+":+ c #D1C840",
+"<+ c #DDD328",
+"[+ c #D9D110",
+"}+ c #656565",
+"|+ c #C5BC2E",
+"1+ c #D3CA3C",
+"2+ c #C6A32B",
+"3+ c #7C7B5F",
+"4+ c #BA9337",
+"5+ c #CDC54A",
+"6+ c #D8CE31",
+"7+ c #E7DF0A",
+"8+ c #867C47",
+"9+ c #B7AC34",
+"0+ c #D8D231",
+"a+ c #C8AA2F",
+"b+ c #8B8754",
+"c+ c #676767",
+"d+ c #9D7940",
+"e+ c #C6B949",
+"f+ c #D6CC35",
+"g+ c #E5D918",
+"h+ c #ABA32C",
+"i+ c #9E9945",
+"j+ c #CFBB34",
+"k+ c #977F46",
+"l+ c #837056",
+"m+ c #B99A3C",
+"n+ c #D2C93F",
+"o+ c #DFD824",
+"p+ c #CCC617",
+"q+ c #7C7C5B",
+"r+ c #E4D819",
+"s+ c #D4CB37",
+"t+ c #B27A2B",
+"u+ c #A47A39",
+"v+ c #CCC441",
+"w+ c #DAD02D",
+"x+ c #DED20F",
+"y+ c #756E58",
+"z+ c #D8CD17",
+"A+ c #DCD629",
+"B+ c #C99F2C",
+"C+ c #80744D",
+"D+ c #976E3E",
+"E+ c #C0AF3B",
+"F+ c #E8DB15",
+"G+ c #EAE20B",
+"H+ c #989B34",
+"I+ c #BFB622",
+"J+ c #E5D91A",
+"K+ c #D4BE2D",
+"L+ c #BC7C21",
+"M+ c #73625C",
+"N+ c #AF8E36",
+"O+ c #D3CA3A",
+"P+ c #BFBA1E",
+"Q+ c #847C4B",
+"R+ c #E7DB10",
+"S+ c #DCD129",
+"T+ c #C89025",
+"U+ c #AB742C",
+"V+ c #A1793A",
+"W+ c #E0D523",
+"X+ c #EADD0F",
+"Y+ c #D3CD16",
+"Z+ c #D3C812",
+"`+ c #E8DB13",
+" @ c #CD7F1A",
+".@ c #A78034",
+"+@ c #6A6D60",
+"@@ c #8A7451",
+"#@ c #C4B941",
+"$@ c #E8E013",
+"%@ c #77755E",
+"&@ c #89864A",
+"*@ c #E9DC0E",
+"=@ c #C4AC57",
+"-@ c #DD8E28",
+";@ c #C3A358",
+">@ c #ADA86E",
+",@ c #8F8E78",
+"'@ c #8C7E69",
+")@ c #BEB591",
+"!@ c #DBD8A8",
+"~@ c #DCD127",
+"{@ c #95944A",
+"]@ c #B7AF30",
+"^@ c #DDD728",
+"/@ c #C6C06B",
+"(@ c #C7B17C",
+"_@ c #DC963B",
+":@ c #D99A38",
+"<@ c #B6AC75",
+"[@ c #BDB592",
+"}@ c #E8E6B5",
+"|@ c #D8D6A7",
+"1@ c #C6C367",
+"2@ c #AFA946",
+"3@ c #6F716A",
+"4@ c #CCC625",
+"5@ c #D5CF38",
+"6@ c #C5C384",
+"7@ c #DBD0A4",
+"8@ c #D3A966",
+"9@ c #C3AF7A",
+"0@ c #DCD9AB",
+"a@ c #C3BB3E",
+"b@ c #757671",
+"c@ c #7E7E7E",
+"d@ c #7F7F7F",
+"e@ c #7D7D7D",
+"f@ c #717467",
+"g@ c #D4C521",
+"h@ c #C5C288",
+"i@ c #EFECC6",
+"j@ c #EFEED0",
+"k@ c #C2C0A1",
+"l@ c #B4AE6F",
+"m@ c #C4A92F",
+"n@ c #A77D3A",
+"o@ c #837766",
+"p@ c #818181",
+"q@ c #838383",
+"r@ c #707366",
+"s@ c #D0C621",
+"t@ c #C5C078",
+"u@ c #E1DEB2",
+"v@ c #C6BBA1",
+"w@ c #DA9945",
+"x@ c #DE9639",
+"y@ c #E19426",
+"z@ c #D4881B",
+"A@ c #937C5E",
+"B@ c #808080",
+"C@ c #858585",
+"D@ c #888888",
+"E@ c #696D5C",
+"F@ c #D0C50B",
+"G@ c #D8D21F",
+"H@ c #B2A945",
+"I@ c #AB7622",
+"J@ c #A57536",
+"K@ c #746863",
+"L@ c #848484",
+"M@ c #828282",
+"N@ c #8B8B8B",
+"O@ c #8E8E8E",
+"P@ c #919191",
+"Q@ c #959595",
+"R@ c #979797",
+"S@ c #898989",
+"T@ c #878787",
+"U@ c #868686",
+"V@ c #8C8C8C",
+"W@ c #9A9A9A",
+"X@ c #9E9E9E",
+"Y@ c #A3A3A3",
+"Z@ c #A8A8A8",
+"`@ c #ABABAB",
+" # c #A0A0A0",
+".# c #989898",
+"+# c #9C9C9C",
+"@# c #969696",
+"## c #949494",
+"$# c #939393",
+"%# c #9B9B9B",
+"&# c #8F8F8F",
+". . . . . . . . . . . . . . . . . . . . . . . . . . + + . . . . ",
+". . . . . . . . @ . . . . . . . . . . . . . . . . # $ % . . . . ",
+". . . . . . & * = - ; . . . . . . . . . . . . > , ' ) ! . . . . ",
+". . . . ~ { ] ^ / ( _ : < [ [ + . . . . . . } | 1 2 3 4 . . . . ",
+"5 5 5 6 7 8 9 0 a b c * d e 5 6 f g h i j k l m n o p q . . . . ",
+"r r r 5 s t u v w x y z A B C D 5 f E F G H I J K L M N . . . . ",
+"O O P Q R S T U V W X Y Z ` ...+.@.#.$.%.v &.*.=.-.p q . . . . ",
+"P ;.;.>.,.'.).!.. ~.{.].u ^./.(._.:.<.[.}.|.1.5 2.3.4.5.. . . . ",
+"Q ;.;.>.6.7.S 8.i ;.Q Q 9.0.[.a.b.u c.d.*.r r 5 e.f.g.h.. . . . ",
+"Q ;.;.>.6.i.j.k.l.m.n.n.o.p.q.r.s.t.u.P r O 5 6 v.N w.x.+ + . . ",
+"Q ;.;.>.6.y.z.A.B.m.m.C.n.o.D.p.E.6.;.;.Q P r 6 F.A.. + + + + + ",
+"Q Q ;.;.>.G.H.I.J.C.o.n.o.D.p.K.E.6.;.Q L.P r M.N.O.P.Q.R.+ + + ",
+"Q Q Q ;.;.S.T.U.V.D.o.p.o.p.K.E.6.>.;.Q P 5 5 W.X.Y.Z.S `. ++ + ",
+"L.L.Q Q Q .+++@+>.>.;.>.>.K.K.6.>.;.Q P O 5 #+$+%+&+T *+=+[ + + ",
+"P P L.Q Q -+;+>+Q 5 Q Q ;.Q ;.>.;.Q L.P O r ,+'+)+!+~+{+i i [ + ",
+"P P P P L.]+^+/+O g 5 L.P Q L.L.Q L.P O r (+_+:+<+~+[+}+i i [ [ ",
+"P O O P P |+1+2+3+1.g O P P P O O P O r D 4+5+6+).7+8+}+i i i [ ",
+"O r O O O 9+0+a+b+c+1.f 5 O O r 5 5 r 5 d+e+f+g+~+h+}+}+i i [ [ ",
+"O 5 r r r i+<+j+k+c+c+g f f 5 5 5 6 6 l+m+n+o+~+p+h }+}+i i [ [ ",
+"r 5 5 5 5 q+r+s+t+c+c+c+g g g g f f f u+v+w+).x+y+}+}+i i [ [ [ ",
+"r 6 6 6 5 g z+A+B+C+h h 1.1.g 1.c+c+D+E+6+F+G+H+i i i [ i i i i ",
+"5 f f f 6 1.I+J+K+L+}+}+h 1.c+c+c+M+N+O+W ~+P+h c+c+c+c+c+h h }+",
+"5 g f f f 1.Q+R+S+T+U+}+}+c+c+h c+V+;+W+X+Y+g f f f f g g 1.c+c+",
+"5 g g g f c+c+Z+`+K+ @.@+@g f 5 @@#@S+$@V %@f f g f 6 6 f g g 1.",
+"6 1.1.g g c+h &@*@6+=@-@;@>@,@'@)@!@[.~@{@r 5 r 5 5 O O 6 6 f f ",
+"6 f 5 P Q O 5 5 ]@^@/@(@_@:@<@[@}@|@1@2@>.;.;.Q ;.O O f f f f f ",
+"K.D.p.p.D.K.5 O 3@4@5@6@7@8@9@m 0@[.a@b@K.6.6.;.;.L.O 5 6 f f g ",
+"D.n.c@d@c@e@K.O 5 f@g@:+h@i@j@k@l@m@n@o@>.6.6.6.6.;.Q L.P P 6 f ",
+"p.o.n.c@p@q@p@n.E.P r@s@5@t@u@v@w@x@y@z@A@B@d@n.D.K.6.;.Q L.O r ",
+"C.m.c@B@q@C@D@D@q@o.Q E@F@G@H@I@L J@K@;.6.o.L@d@d@m.m.n.o.o.p.K.",
+"e@d@M@L@D@N@O@P@Q@R@P@S@m.5 + g [ h ;.m.p@T@N@S@D@U@L@p@d@m.n.o.",
+"B@q@U@S@V@P@Q@W@X@Y@Z@`@Z@ #.#+#.#@###$#W@%#.#$#&#N@D@L@M@d@e@n."};
diff --git a/muse_qt4_evolution/muse/xpm/muse_icon_64x64.png b/muse_qt4_evolution/muse/xpm/muse_icon_64x64.png
new file mode 100644
index 00000000..5a1acb96
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/muse_icon_64x64.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/mutebutton_off.xpm b/muse_qt4_evolution/muse/xpm/mutebutton_off.xpm
new file mode 100644
index 00000000..37c50f1c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mutebutton_off.xpm
@@ -0,0 +1,165 @@
+/* XPM */
+static const char * mutebutton_off_xpm[] = {
+"22 22 140 2",
+" c #000000",
+". c #720000",
+"+ c #7B0000",
+"@ c #810000",
+"# c #840000",
+"$ c #870000",
+"% c #8D0000",
+"& c #930000",
+"* c #980000",
+"= c #9C0000",
+"- c #9B0000",
+"; c #970000",
+"> c #900000",
+", c #8C0000",
+"' c #850000",
+") c #800000",
+"! c #760000",
+"~ c #730000",
+"{ c #710000",
+"] c #770000",
+"^ c #A10000",
+"/ c #A90000",
+"( c #AE0000",
+"_ c #B10000",
+": c #B60000",
+"< c #B50000",
+"[ c #B30000",
+"} c #AC0000",
+"| c #A70000",
+"1 c #9E0000",
+"2 c #8F0000",
+"3 c #890000",
+"4 c #7F0000",
+"5 c #7A0000",
+"6 c #7C0000",
+"7 c #8E0000",
+"8 c #A00000",
+"9 c #AD0000",
+"0 c #B80000",
+"a c #C00000",
+"b c #C60000",
+"c c #C80000",
+"d c #CB0000",
+"e c #C70000",
+"f c #BB0000",
+"g c #B20000",
+"h c #A30000",
+"i c #960000",
+"j c #860000",
+"k c #920000",
+"l c #BA0000",
+"m c #C50000",
+"n c #CE0000",
+"o c #D40000",
+"p c #D80000",
+"q c #D70000",
+"r c #DA0000",
+"s c #D10000",
+"t c #C90000",
+"u c #C30000",
+"v c #B40000",
+"w c #A40000",
+"x c #910000",
+"y c #7D0000",
+"z c #950000",
+"A c #AB0000",
+"B c #BD0000",
+"C c #CC0000",
+"D c #D60000",
+"E c #DF0000",
+"F c #E30000",
+"G c #E10000",
+"H c #DC0000",
+"I c #D00000",
+"J c #C20000",
+"K c #BC0000",
+"L c #A50000",
+"M c #AF0000",
+"N c #E40000",
+"O c #E70000",
+"P c #E60000",
+"Q c #3F3F3F",
+"R c #DD0200",
+"S c #D90300",
+"T c #D40200",
+"U c #CD0000",
+"V c #B90000",
+"W c #AA0000",
+"X c #9A0000",
+"Y c #D20000",
+"Z c #D90000",
+"` c #DE0000",
+" . c #E20000",
+".. c #3B3B3B",
+"+. c #313131",
+"@. c #E00300",
+"#. c #DD0300",
+"$. c #D10100",
+"%. c #A80000",
+"&. c #880000",
+"*. c #C40000",
+"=. c #454545",
+"-. c #E40200",
+";. c #E10300",
+">. c #DC0100",
+",. c #D50100",
+"'. c #D50000",
+"). c #121212",
+"!. c #E90000",
+"~. c #CA0000",
+"{. c #4C4C4C",
+"]. c #525252",
+"^. c #1E0700",
+"/. c #E80000",
+"(. c #BE0000",
+"_. c #030A1D",
+":. c #000F00",
+"<. c #7E0000",
+"[. c #CF0000",
+"}. c #DB0000",
+"|. c #0B0017",
+"1. c #000700",
+"2. c #BF0000",
+"3. c #DD0000",
+"4. c #D30000",
+"5. c #990000",
+"6. c #B00000",
+"7. c #C10000",
+"8. c #E00000",
+"9. c #940000",
+"0. c #7A0100",
+"a. c #A60000",
+"b. c #9D0000",
+"c. c #9D0101",
+"d. c #7B0200",
+"e. c #8C0100",
+"f. c #9E0101",
+"g. c #8F0101",
+"h. c #7F0101",
+"i. c #720101",
+" ",
+" . + @ # $ % & & * = - ; > , ' ) + ! ~ { ",
+" ] $ & - ^ / ( _ : < [ } | 1 * 2 3 # 4 5 ",
+" 6 7 8 9 0 a b b c d e a f g / h - i 7 j ",
+" 6 k | l m n o p q r q s t u f v 9 w - x ",
+" y z A B C D r E F F G H q I d J K g L z ",
+" ) * M J n D H E N O P Q R S T U m V W i ",
+" # X _ u C Y Z ` .P ..+.@.#.S $.t f %.& ",
+" &.8 : *.n Y p r E Q =. -.;.>.,.C f L % ",
+" % L l c n '.Z r Q Q ). !.P F q d 0 ^ 3 ",
+" > / K ~.s p Q {.].).^. /./.F p ~.< - @ ",
+" > / (.U q H Q +. _.:. P /. .Z t g X <. ",
+" x %.(.[.q }.+. |.1. E F ` p t [ i 6 ",
+" 2 %.2.U '.}. 3.3.}.q c _ i y ",
+" % w f d 4.p }.D r H 3.q t g i <. ",
+" &.8 : c I 4.D 4.s H E ` D e g ; <. ",
+" # 5.6.7.~.U n n U n H 8.3.o e 6.; <. ",
+" 4 & / l a J m e t c n r }.Z n J 9 9.y ",
+" 0.x h g l f 2.(.a m t U 4.4.I c f a.> + ",
+" 0.% b.W M [ [ v 0 f 2.u e b u l 6.c.$ ! ",
+" d.e.5.8 a.L L a.W A 6.[ < v M %.f.g.h.i. ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/mutebutton_on.xpm b/muse_qt4_evolution/muse/xpm/mutebutton_on.xpm
new file mode 100644
index 00000000..d66647d5
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/mutebutton_on.xpm
@@ -0,0 +1,352 @@
+/* XPM */
+static const char * mutebutton_on_xpm[] = {
+"22 22 327 2",
+" c #000000",
+". c #066714",
+"+ c #056613",
+"@ c #076915",
+"# c #076A15",
+"$ c #076A16",
+"% c #086B17",
+"& c #096C18",
+"* c #066B15",
+"= c #066B14",
+"- c #076F17",
+"; c #0C751C",
+"> c #107B20",
+", c #0F7C1F",
+"' c #0D791D",
+") c #097318",
+"! c #066E15",
+"~ c #066C14",
+"{ c #066814",
+"] c #086B16",
+"^ c #0A6F19",
+"/ c #0B711A",
+"( c #0B721B",
+"_ c #0C731C",
+": c #0C731B",
+"< c #0A731A",
+"[ c #097219",
+"} c #077318",
+"| c #0A781B",
+"1 c #0E7E1F",
+"2 c #118522",
+"3 c #128722",
+"4 c #0F8321",
+"5 c #0B7D1B",
+"6 c #077517",
+"7 c #067016",
+"8 c #056713",
+"9 c #066914",
+"0 c #086D17",
+"a c #0A721A",
+"b c #0F771E",
+"c c #107A20",
+"d c #117D21",
+"e c #127E21",
+"f c #117F21",
+"g c #0E7D1F",
+"h c #0D801E",
+"i c #0F8620",
+"j c #128F25",
+"k c #159627",
+"l c #169828",
+"m c #159427",
+"n c #0F8B21",
+"o c #0B821C",
+"p c #087718",
+"q c #086E17",
+"r c #0B731A",
+"s c #0F791F",
+"t c #138223",
+"u c #168727",
+"v c #188A29",
+"w c #178D28",
+"x c #168D27",
+"y c #158C26",
+"z c #128D25",
+"A c #129125",
+"B c #313131",
+"C c #17A22B",
+"D c #19AA2D",
+"E c #1AAC2E",
+"F c #19A82C",
+"G c #159E29",
+"H c #119122",
+"I c #0C831D",
+"J c #066D15",
+"K c #0A7119",
+"L c #0C7A1D",
+"M c #118323",
+"N c #178D29",
+"O c #1B952E",
+"P c #1B9C2E",
+"Q c #1A9E2E",
+"R c #199C2B",
+"S c #3F3F3F",
+"T c #189E2B",
+"U c #17A32C",
+"V c #18AC2E",
+"W c #222222",
+"X c #1CC033",
+"Y c #1DC334",
+"Z c #1BBE32",
+"` c #18B22F",
+" . c #16A22A",
+".. c #129025",
+"+. c #097519",
+"@. c #0F801F",
+"#. c #158E27",
+"$. c #1A992E",
+"%. c #1DA633",
+"&. c #1EAD35",
+"*. c #1CAE32",
+"=. c #3B3B3B",
+"-. c #19AF2F",
+";. c #1ABE32",
+">. c #1CC835",
+",. c #1DD537",
+"'. c #1DCF37",
+"). c #1CC335",
+"!. c #19B130",
+"~. c #179C2A",
+"{. c #067015",
+"]. c #097A1A",
+"^. c #108922",
+"/. c #17982A",
+"(. c #1CA831",
+"_. c #1DB636",
+":. c #1DBB35",
+"<. c #454545",
+"[. c #1ABD31",
+"}. c #1AC332",
+"|. c #1BD435",
+"1. c #1BDE37",
+"2. c #1CDA38",
+"3. c #1DD038",
+"4. c #1BB832",
+"5. c #19A22D",
+"6. c #067215",
+"7. c #0A7F1B",
+"8. c #119124",
+"9. c #18A22D",
+"0. c #1BB635",
+"a. c #1BC336",
+"b. c #121212",
+"c. c #18C833",
+"d. c #18CC33",
+"e. c #19D934",
+"f. c #1AE236",
+"g. c #1BDF37",
+"h. c #1CD136",
+"i. c #1CBD35",
+"j. c #19A42E",
+"k. c #087618",
+"l. c #0B821D",
+"m. c #129725",
+"n. c #4C4C4C",
+"o. c #525252",
+"p. c #1E0700",
+"q. c #19CE33",
+"r. c #17D232",
+"s. c #18DA34",
+"t. c #19E036",
+"u. c #070707",
+"v. c #19DB36",
+"w. c #1ACF36",
+"x. c #1BBB33",
+"y. c #1AA22E",
+"z. c #087818",
+"A. c #0C861E",
+"B. c #129B26",
+"C. c #18B12F",
+"D. c #030A1D",
+"E. c #000F00",
+"F. c #17D231",
+"G. c #17D733",
+"H. c #18DB35",
+"I. c #19D534",
+"J. c #1ACB34",
+"K. c #1AB832",
+"L. c #199F2D",
+"M. c #087918",
+"N. c #0D891F",
+"O. c #129C26",
+"P. c #17B22F",
+"Q. c #0B0017",
+"R. c #000700",
+"S. c #16D230",
+"T. c #16D531",
+"U. c #16D731",
+"V. c #010101",
+"W. c #19D034",
+"X. c #18C432",
+"Y. c #19B230",
+"Z. c #169A2A",
+"`. c #087A19",
+" + c #0D881F",
+".+ c #139C27",
+"++ c #17AF2D",
+"@+ c #17CF30",
+"#+ c #14CF2F",
+"$+ c #14D130",
+"%+ c #15D330",
+"&+ c #16CC31",
+"*+ c #18C132",
+"=+ c #18B02E",
+"-+ c #159828",
+";+ c #0A7A1A",
+">+ c #149C27",
+",+ c #17AE2D",
+"'+ c #18BB31",
+")+ c #18C232",
+"!+ c #16CD31",
+"~+ c #14CC2F",
+"{+ c #14CE30",
+"]+ c #14CD2F",
+"^+ c #17CA31",
+"/+ c #15BF2F",
+"(+ c #15AE2B",
+"_+ c #129624",
+":+ c #0E8821",
+"<+ c #17AD2E",
+"[+ c #18BA31",
+"}+ c #19C331",
+"|+ c #17C730",
+"1+ c #15CC30",
+"2+ c #15CA30",
+"3+ c #14CB2E",
+"4+ c #15CD2F",
+"5+ c #14C72E",
+"6+ c #14BD2C",
+"7+ c #11AD29",
+"8+ c #0F9423",
+"9+ c #0B7B1A",
+"0+ c #0F8720",
+"a+ c #139B26",
+"b+ c #16AA2B",
+"c+ c #17B82D",
+"d+ c #17C130",
+"e+ c #17C72F",
+"f+ c #15CB30",
+"g+ c #16C730",
+"h+ c #15C82F",
+"i+ c #12C82B",
+"j+ c #11C52C",
+"k+ c #10BA29",
+"l+ c #0FA825",
+"m+ c #0C9020",
+"n+ c #0B791C",
+"o+ c #0D871F",
+"p+ c #119625",
+"q+ c #15A82A",
+"r+ c #16B52C",
+"s+ c #17C12E",
+"t+ c #16C82E",
+"u+ c #14CA30",
+"v+ c #15C92F",
+"w+ c #15C52F",
+"x+ c #14C42F",
+"y+ c #10C32A",
+"z+ c #10C02A",
+"A+ c #0EB526",
+"B+ c #0DA322",
+"C+ c #0A8D1D",
+"D+ c #097419",
+"E+ c #0E9121",
+"F+ c #11A126",
+"G+ c #14AF29",
+"H+ c #14BC2C",
+"I+ c #14C12D",
+"J+ c #14C32D",
+"K+ c #13C32E",
+"L+ c #14C22D",
+"M+ c #13C12D",
+"N+ c #13BA2B",
+"O+ c #10B928",
+"P+ c #10B828",
+"Q+ c #0EB426",
+"R+ c #0DAA23",
+"S+ c #0B9A20",
+"T+ c #08871B",
+"U+ c #077217",
+"V+ c #0A871D",
+"W+ c #0D9521",
+"X+ c #10A425",
+"Y+ c #11AE27",
+"Z+ c #11B228",
+"`+ c #12B529",
+" @ c #11B628",
+".@ c #10B429",
+"+@ c #10B227",
+"@@ c #10AF27",
+"#@ c #10AC27",
+"$@ c #0FAB26",
+"%@ c #0EA824",
+"&@ c #0DA624",
+"*@ c #0CA221",
+"=@ c #0B9C20",
+"-@ c #088F1C",
+";@ c #068018",
+">@ c #056D13",
+",@ c #057214",
+"'@ c #067A17",
+")@ c #09841B",
+"!@ c #0C911E",
+"~@ c #0D9921",
+"{@ c #0E9F22",
+"]@ c #0EA123",
+"^@ c #0DA222",
+"/@ c #0DA123",
+"(@ c #0C9C21",
+"_@ c #0B981F",
+":@ c #0C971F",
+"<@ c #0C951F",
+"[@ c #0B931F",
+"}@ c #0A911E",
+"|@ c #088E1C",
+"1@ c #07891A",
+"2@ c #058218",
+"3@ c #047715",
+"4@ c #036812",
+"5@ c #046C12",
+"6@ c #047014",
+"7@ c #057615",
+"8@ c #077D19",
+"9@ c #09831B",
+"0@ c #09871C",
+"a@ c #08891C",
+"b@ c #088A1B",
+"c@ c #078619",
+"d@ c #078419",
+"e@ c #078018",
+"f@ c #067D18",
+"g@ c #067C18",
+"h@ c #067D17",
+"i@ c #057B16",
+"j@ c #047815",
+"k@ c #037313",
+"l@ c #036D12",
+" ",
+" . + + . @ # $ % & % * = - ; > , ' ) ! ~ ",
+" . + { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 ",
+" 8 9 0 a b c d e f g 1 h i j k l m n o p ",
+" { q r s t u v w x y z A B C D E F G H I ",
+" J K L M N O P Q R S T U V W X Y Z ` ... ",
+" J +.@.#.$.%.&.*.=.B -.B ;.>.B ,.'.).!.~. ",
+" {.].^./.(._.:.S <. [.}.S |.1.B 2.3.4.5. ",
+" 6.7.8.9.0.a.S S b. c.d.W e.f. g.h.i.j. ",
+" k.l.m.V S n.o.b.p. q.r. s.t.u.v.w.x.y. ",
+" z.A.B.C.S B D.E. r.F. G.H. I.J.K.L. ",
+" M.N.O.P.B Q.R. F.S. T.U.V.W.X.Y.Z. ",
+" `. +.+++ @+#+ $+%+ &+*+=+-+ ",
+" ;+N.>+,+'+)+ !+~+ {+]+ ^+/+(+_+ ",
+" ;+:+>+<+[+}+|+ 1+2+ 3+4+ 5+6+7+8+ ",
+" 9+0+a+b+c+d+e+f+ 2+ g+h+ i+j+k+l+m+ ",
+" n+o+p+q+r+s+t+u+v+ v+w+x+ j+y+z+A+B+C+ ",
+" D+l.E+F+G+H+I+J+K+L+M+6+ N+O+P+Q+R+S+T+ ",
+" U+`.V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@ ",
+" >@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@ ",
+" 4@5@6@7@8@9@0@a@b@1@c@d@e@f@g@h@i@j@k@l@ ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/newmutebutton.xpm b/muse_qt4_evolution/muse/xpm/newmutebutton.xpm
new file mode 100644
index 00000000..994e3321
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/newmutebutton.xpm
@@ -0,0 +1,69 @@
+/* XPM */
+static const char * newmutebutton_xpm[] = {
+"22 22 44 1",
+" c None",
+". c #000000",
+"+ c #313131",
+"@ c #E5141A",
+"# c #E1180D",
+"$ c #3F3F3F",
+"% c #222222",
+"& c #9E000D",
+"* c #FB1300",
+"= c #E91900",
+"- c #3B3B3B",
+"; c #EB1420",
+"> c #A9010C",
+", c #454545",
+"' c #E10E08",
+") c #DD1F0F",
+"! c #121212",
+"~ c #ED0014",
+"{ c #FF0603",
+"] c #F7001C",
+"^ c #4C4C4C",
+"/ c #525252",
+"( c #1E0700",
+"_ c #ED021A",
+": c #F00018",
+"< c #E21C19",
+"[ c #070707",
+"} c #030A1D",
+"| c #000F00",
+"1 c #E90412",
+"2 c #0B0017",
+"3 c #000700",
+"4 c #010101",
+"5 c #EC141D",
+"6 c #EA0900",
+"7 c #DE0B09",
+"8 c #E01000",
+"9 c #E81400",
+"0 c #F10E1C",
+"a c #EE0E16",
+"b c #E50300",
+"c c #FF0316",
+"d c #E70816",
+"e c #FF1901",
+"......................",
+". .",
+". .",
+". .",
+". + @# .",
+". $ %&*= .",
+". -+ + ;+> .",
+". $,. $')+ .",
+". $$!. ~%{]. .",
+". $^/!(._:.< [ .",
+". $+.}|.'1. . .",
+". +..23.{]. 4 .",
+". ......< . . .",
+". .... . . .",
+". 56... . . .",
+". 7890.. . . .",
+". abcd . . .",
+". 6e~ . .",
+". .",
+". .",
+". .",
+"......................"};
diff --git a/muse_qt4_evolution/muse/xpm/off.svg b/muse_qt4_evolution/muse/xpm/off.svg
new file mode 100644
index 00000000..7b24c60c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/off.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="off.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#11ff00;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="14.928528"
+ inkscape:cx="8"
+ inkscape:cy="7.5226075"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1294"
+ inkscape:window-height="1027"
+ inkscape:window-x="619"
+ inkscape:window-y="66" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:0;fill-rule:evenodd;stroke:#646464;stroke-width:2.72968221;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1314"
+ sodipodi:cx="8.7697878"
+ sodipodi:cy="7.8774762"
+ sodipodi:rx="6.3837962"
+ sodipodi:ry="6.1680417"
+ d="M 15.153584,7.8774762 A 6.3837962,6.1680417 0 1 1 8.7708891,1.7094346"
+ transform="matrix(-0.727929,-0.732179,0.762556,-0.743756,8.334611,20.30045)"
+ sodipodi:start="0"
+ sodipodi:end="4.7125615"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:2.26799989;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 0.13399994,7.8236671 C 2.7476675,7.8489703 5.8595881,7.8713382 10.154827,7.8648734"
+ id="path1316"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/off.xpm b/muse_qt4_evolution/muse/xpm/off.xpm
new file mode 100644
index 00000000..64ddd452
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/off.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * off_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #DCDCDC",
+"# c #A0A0A4",
+"$ c #808080",
+" ",
+" ..... ",
+" ..+++++.. ",
+" .++@@@@@@@. ",
+" .+@@@.@@@@. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .@@@@.@@@#.$ ",
+" .@@@@@@@##. ",
+" ..#####.. ",
+" ..... ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/on.svg b/muse_qt4_evolution/muse/xpm/on.svg
new file mode 100644
index 00000000..5bb8ef4e
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/on.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="on.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#11ff00;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="14.928528"
+ inkscape:cx="8"
+ inkscape:cy="7.5226075"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1294"
+ inkscape:window-height="1027"
+ inkscape:window-x="619"
+ inkscape:window-y="66" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:0;fill-rule:evenodd;stroke:#646464;stroke-width:2.72968221;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1314"
+ sodipodi:cx="8.7697878"
+ sodipodi:cy="7.8774762"
+ sodipodi:rx="6.3837962"
+ sodipodi:ry="6.1680417"
+ d="M 15.153584,7.8774762 A 6.3837962,6.1680417 0 1 1 8.7708891,1.7094346"
+ transform="matrix(0.732179,-0.727929,0.743756,0.762556,-4.280292,8.334699)"
+ sodipodi:start="0"
+ sodipodi:end="4.7125615"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:2.268;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0255001,-0.012957598 C 8.0001969,2.60071 7.977829,5.7126306 7.9842938,10.007869"
+ id="path1316"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/pafter.xpm b/muse_qt4_evolution/muse/xpm/pafter.xpm
new file mode 100644
index 00000000..a39ed901
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/pafter.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char *pafter_xpm[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"######################",
+"##...................#",
+"#.#..................#",
+"#..#.................#",
+"#...#................#",
+"#....#...............#",
+"#.....#..............#",
+"#......#.............#",
+"#.......#............#",
+"#........#...........#",
+"#.........#..........#",
+"#..........#.........#",
+"#...........#........#",
+"#............#.......#",
+"#.............#......#",
+"#..............#.....#",
+"#...............#....#",
+"#................#...#",
+"#.................#..#",
+"#..................#.#",
+"#...................##",
+"######################"
+};
+
diff --git a/muse_qt4_evolution/muse/xpm/panic.xpm b/muse_qt4_evolution/muse/xpm/panic.xpm
new file mode 100644
index 00000000..9b8f937c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/panic.xpm
@@ -0,0 +1,50 @@
+/* XPM */
+static const char * panic_xpm[] = {
+"18 18 29 1",
+" c None",
+". c #F7001C",
+"+ c #EB1420",
+"@ c #FB1300",
+"# c #E10E08",
+"$ c #E21C19",
+"% c #DD1F0F",
+"& c #313131",
+"* c #ED0014",
+"= c #FF0603",
+"- c #F00018",
+"; c #3F3F3F",
+"> c #222222",
+", c #ED021A",
+"' c #3B3B3B",
+") c #E90412",
+"! c #454545",
+"~ c #000000",
+"{ c #525252",
+"] c #121212",
+"^ c #4C4C4C",
+"/ c #1E0700",
+"( c #070707",
+"_ c #030A1D",
+": c #0B0017",
+"< c #000700",
+"[ c #010101",
+"} c #E1180D",
+"| c #E50300",
+".. +@",
+"#.$ +#%",
+"$... & *#=.",
+" .-$ ; >#-=$ ",
+" #,. '& & .&) ",
+" # ;!~ ;#=& ",
+" {;]~ > ~ ",
+" ;^{~/~ ~ ( ",
+" ;&~_~~ ~ ~ ",
+" &~~:<~ ~ [ ",
+" ~~~~~~ ~ ~ ",
+" ~~~~ ~ ~ ",
+" }~~~ ~##~ ",
+" #% ~~ ~ #~# ",
+" *|$ ~ ~#$. ",
+" ,-% ~ $... ",
+"*$). $$$.",
+"-$. .$$"};
diff --git a/muse_qt4_evolution/muse/xpm/pencil.xpm b/muse_qt4_evolution/muse/xpm/pencil.xpm
new file mode 100644
index 00000000..16c06603
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/pencil.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char*pencil_xpm[]={
+"18 18 5 1",
+"# c #000000",
+"c c #ffffff",
+"b c #a0a0a4",
+"a c #dcdcdc",
+". c None",
+"..................",
+"........####......",
+"........#aaa#.....",
+".......#aaaa#b....",
+".......##aa#bb....",
+"......#cc###b.....",
+"......#caa#bb.....",
+".....#ccaa#b......",
+".....#caa#bb......",
+"....#ccaa#b.......",
+"....#caa#bb.......",
+"....##aa#b........",
+"....####bb........",
+"....###bb.........",
+"....##bb..........",
+"....#bb...........",
+".....b............",
+".................."};
+
diff --git a/muse_qt4_evolution/muse/xpm/piano.xpm b/muse_qt4_evolution/muse/xpm/piano.xpm
new file mode 100644
index 00000000..3649919e
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/piano.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *pianoS_xpm[]={
+"16 16 5 1",
+"# c #000000",
+"c c #00c000",
+". c #00ff00",
+"b c #dcdcdc",
+"a c #ffffff",
+"................",
+"................",
+"..#########aaa..",
+"..#########aaa..",
+"..abbbbbbbbaaa..",
+"..#########aaa..",
+"..#########aaa..",
+"..abbbbbbbbaaa..",
+"..#########aaa..",
+"..#########aaa..",
+"..abbbbbbbbaaa..",
+"..aaaaaaaaaaaa..",
+"..#########aaa..",
+"..#########aaa..",
+"...ccccccccc....",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/pitch.xpm b/muse_qt4_evolution/muse/xpm/pitch.xpm
new file mode 100644
index 00000000..e8f67efb
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/pitch.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char *pitch_xpm[]={
+"22 22 3 1",
+"a c #303030",
+"# c #808080",
+". c None",
+"..............#..#....",
+"...............#..#...",
+"................#.#...",
+".......a......a.#.#...",
+".......a......a.#.#...",
+".......a......a.#.#...",
+".......a......a.#.#...",
+".......a......a.#.#...",
+".......a......a#..#...",
+".......a......a..#....",
+"........a....a..#.....",
+".........aaaa.........",
+"..........aa..........",
+"..........aa..........",
+"..........aa..........",
+".........aaaa.........",
+"........aaaaaa........",
+"........aaaaaa........",
+".........aaaa.........",
+"..........aa..........",
+"......................",
+"......................"};
diff --git a/muse_qt4_evolution/muse/xpm/play.xpm b/muse_qt4_evolution/muse/xpm/play.xpm
new file mode 100644
index 00000000..b38afc78
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/play.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * play_xpm[] = {
+"12 12 2 1",
+" c None",
+". c #000000",
+" . ",
+" ... ",
+" ... ",
+" .... ",
+" .... ",
+" ..... ",
+" ..... ",
+" .... ",
+" .... ",
+" ... ",
+" ... ",
+" . "};
diff --git a/muse_qt4_evolution/muse/xpm/plus.xpm b/muse_qt4_evolution/muse/xpm/plus.xpm
new file mode 100644
index 00000000..e68e8db2
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/plus.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char * plus_xpm[] = {
+"13 13 5 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #DCDCDC",
+"# c #A0A0A4",
+" ..... ",
+" ..+++++.. ",
+" .++@@@@@@@. ",
+" .+@@@.@@@@. ",
+".+@@@@.@@@@#.",
+".+@@@@.@@@@#.",
+".+@.......@#.",
+".+@@@@.@@@@#.",
+".+@@@@.@@@@#.",
+" .@@@@.@@@#. ",
+" .@@@@@@@##. ",
+" ..#####.. ",
+" ..... " };
diff --git a/muse_qt4_evolution/muse/xpm/pointer.xpm b/muse_qt4_evolution/muse/xpm/pointer.xpm
new file mode 100644
index 00000000..87801aa7
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/pointer.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*pointer_xpm[]={
+"18 18 4 1",
+"# c #000000",
+"a c #000080",
+"b c #808080",
+". c None",
+"..................",
+"..................",
+".....#............",
+".....##...........",
+".....###..........",
+".....####.........",
+".....#####........",
+".....######.......",
+".....#######......",
+".....########.....",
+".....#####........",
+".....##.##........",
+".....#...##.......",
+".........##.......",
+"..........##......",
+"..........##......",
+"..................",
+".................."};
+
diff --git a/muse_qt4_evolution/muse/xpm/punchin.xpm b/muse_qt4_evolution/muse/xpm/punchin.xpm
new file mode 100644
index 00000000..2bd3ce7f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/punchin.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static char *punchin[]={
+"12 12 2 1",
+". c None",
+"# c #000000",
+"............",
+"####........",
+"######......",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"....########",
+"......######",
+"............",
+"............"};
diff --git a/muse_qt4_evolution/muse/xpm/punchout.xpm b/muse_qt4_evolution/muse/xpm/punchout.xpm
new file mode 100644
index 00000000..d176ed5d
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/punchout.xpm
@@ -0,0 +1,18 @@
+/* XPM */
+static const char* punchout_xpm[]={
+"12 12 3 1",
+"a c #c0c0c0",
+"# c #000000",
+". c None",
+"............",
+"............",
+"......######",
+"....########",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"######......",
+"####........",
+"............",
+"............"};
diff --git a/muse_qt4_evolution/muse/xpm/quant.xpm b/muse_qt4_evolution/muse/xpm/quant.xpm
new file mode 100644
index 00000000..70d763dd
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/quant.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char* quant_xpm[]={
+"22 22 2 1",
+"x c #000000",
+". c None",
+"......................",
+"......................",
+"......................",
+".........xxxx.........",
+".......xx....xx.......",
+".....xx........xx.....",
+"....x............x....",
+"...x..............x...",
+"...x..............x...",
+"..x................x..",
+"..x................x..",
+"..x................x..",
+"..x................x..",
+"...x..............x...",
+"...x.......x......x...",
+"....x.......x....x....",
+".....xx......x.xx.....",
+".......xx....xx.......",
+".........xxxx..x......",
+"................x.....",
+"......................",
+"......................"};
+
diff --git a/muse_qt4_evolution/muse/xpm/recordOff.svg b/muse_qt4_evolution/muse/xpm/recordOff.svg
new file mode 100644
index 00000000..05c88a04
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/recordOff.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="recordOff.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#561a1a;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="8"
+ inkscape:cy="9.5532385"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1913"
+ inkscape:window-height="1135"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.020974,0,0,1.028955,0.484572,0.453358)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/recordOn.svg b/muse_qt4_evolution/muse/xpm/recordOn.svg
new file mode 100644
index 00000000..d97f8249
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/recordOn.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:docname="recordOn.svg">
+ <defs
+ id="defs1309">
+ <linearGradient
+ id="linearGradient1319">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1321" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:1;"
+ offset="1"
+ id="stop1323" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1370">
+ <stop
+ style="stop-color:#ff271f;stop-opacity:1;"
+ offset="0"
+ id="stop1372" />
+ <stop
+ style="stop-color:#ff0000;stop-opacity:0;"
+ offset="1"
+ id="stop1374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1376"
+ x1="-5.6423869"
+ y1="-5.6206923"
+ x2="8.5200005"
+ y2="8.4349537"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1370"
+ id="linearGradient1315"
+ gradientUnits="userSpaceOnUse"
+ x1="-1.8582375"
+ y1="-0.071628742"
+ x2="3.8178029"
+ y2="2.5516095" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1319"
+ id="radialGradient1325"
+ cx="18.5282"
+ cy="0.093760476"
+ fx="18.5282"
+ fy="0.093760476"
+ r="7.8356543"
+ gradientTransform="matrix(-0.515305,-0.68232,0.563264,-0.418808,19.85983,21.47543)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="39.396621"
+ inkscape:cx="8"
+ inkscape:cy="9.5532385"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1913"
+ inkscape:window-height="1135"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1312">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1325);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1317"
+ sodipodi:cx="7.3610373"
+ sodipodi:cy="7.3317437"
+ sodipodi:rx="7.3356543"
+ sodipodi:ry="7.2721972"
+ d="M 14.696692 7.3317437 A 7.3356543 7.2721972 0 1 1 0.025382996,7.3317437 A 7.3356543 7.2721972 0 1 1 14.696692 7.3317437 z"
+ transform="matrix(1.020974,0,0,1.028955,0.484572,0.453358)" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/redo.xpm b/muse_qt4_evolution/muse/xpm/redo.xpm
new file mode 100644
index 00000000..24771785
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/redo.xpm
@@ -0,0 +1,92 @@
+/* XPM */
+static const char * redo_xpm[] = {
+"22 22 67 1",
+" c None",
+". c #275F0B",
+"+ c #9AC589",
+"@ c #CDE2C1",
+"# c #E5EEDF",
+"$ c #FFFFFF",
+"% c #91D56B",
+"& c #79BE53",
+"* c #C7E0BA",
+"= c #F5F9F4",
+"- c #1C4408",
+"; c #47AB29",
+"> c #3FA21C",
+", c #4AA721",
+"' c #87C86A",
+") c #C8E1BE",
+"! c #000000",
+"~ c #020202",
+"{ c #53B529",
+"] c #5BC930",
+"^ c #6FD63D",
+"/ c #8AC963",
+"( c #35691B",
+"_ c #2B6A0E",
+": c #E4ECDF",
+"< c #79B658",
+"[ c #41821F",
+"} c #0E2005",
+"| c #060D03",
+"1 c #102806",
+"2 c #42A01E",
+"3 c #A7C49A",
+"4 c #7FAA67",
+"5 c #3A8816",
+"6 c #1C4508",
+"7 c #0B1B05",
+"8 c #72C24F",
+"9 c #7FCC67",
+"0 c #67A050",
+"a c #40A513",
+"b c #275E0D",
+"c c #122B06",
+"d c #469D24",
+"e c #51B929",
+"f c #38AA18",
+"g c #3F9524",
+"h c #173807",
+"i c #081204",
+"j c #63C53E",
+"k c #41AE20",
+"l c #48B227",
+"m c #53A82F",
+"n c #071003",
+"o c #5B973A",
+"p c #50932F",
+"q c #4A8D2D",
+"r c #428727",
+"s c #428525",
+"t c #15260E",
+"u c #070D04",
+"v c #0F1C09",
+"w c #102009",
+"x c #12230A",
+"y c #13250A",
+"z c #234413",
+"A c #15270C",
+"B c #13200C",
+" ",
+" ",
+" ..... ",
+" ..+@#@+.. ",
+" .+$%&&&&*=-- ",
+" .#%;>>>>,,')=! ~ ",
+" .+%>{]^^^^]>,/=! -! ",
+" .$>{(_!!!!{^]>/=!-:! ",
+"-+<[_}| 1!{^2/3:4! ",
+"-$567 !{^2890! ",
+"-abc !de2fg! ",
+" -hi -:jklm! ",
+" !-n -:opqrs! ",
+" -t ~!!!!!!!! ",
+" u-v ",
+" w-x ",
+" yzA ",
+" !-B ",
+" !!! ",
+" ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/resetS.xpm b/muse_qt4_evolution/muse/xpm/resetS.xpm
new file mode 100644
index 00000000..261af17e
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/resetS.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *resetS_xpm[]={
+"16 16 3 1",
+"a c #000000",
+". c #c00000",
+"# c #ffffff",
+"................",
+"................",
+"..############..",
+"..####aa######..",
+"..###aaa######..",
+"..##aaaaaaaa##..",
+"..##aaaaaaaaa#..",
+"..###aaa##aaa#..",
+"..####aa###aa#..",
+"..#########aa#..",
+"..########aaa#..",
+"..##aaaaaaaaa#..",
+"..##aaaaaaaa##..",
+"..############..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/rmark.xpm b/muse_qt4_evolution/muse/xpm/rmark.xpm
new file mode 100644
index 00000000..c0dbd780
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/rmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* rmark_xpm[]={
+"18 18 2 1",
+"# c #0000ff",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"........##########",
+"........#########.",
+"........########..",
+"........#######...",
+"........######....",
+"........#####.....",
+"........####......",
+"........###.......",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse_qt4_evolution/muse/xpm/select.xpm b/muse_qt4_evolution/muse/xpm/select.xpm
new file mode 100644
index 00000000..a29f3370
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_xpm[]={
+"16 16 2 1",
+". c #000000",
+"# c #ffffff",
+"..#..#..#..#..#.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".#..#..#..#..#.."};
diff --git a/muse_qt4_evolution/muse/xpm/select_all.xpm b/muse_qt4_evolution/muse/xpm/select_all.xpm
new file mode 100644
index 00000000..b0133636
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_all.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_all_xpm[]={
+"16 16 2 1",
+". c #000000",
+"# c #ffffff",
+"..#..#..#..#..#.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".#..#..#..#..#.."};
diff --git a/muse_qt4_evolution/muse/xpm/select_all_parts_on_track.xpm b/muse_qt4_evolution/muse/xpm/select_all_parts_on_track.xpm
new file mode 100644
index 00000000..4761a256
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_all_parts_on_track.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static const char * select_all_parts_on_track_xpm[] = {
+"16 16 20 1",
+" c None",
+". c #000100",
+"+ c #FEFFFC",
+"@ c #FDF7F6",
+"# c #FFFFFF",
+"$ c #F8FEFF",
+"% c #F4F1E9",
+"& c #AA8747",
+"* c #9E772E",
+"= c #8A5C04",
+"- c #0F0F0F",
+"; c #000000",
+"> c #95702B",
+", c #CECECE",
+"' c #F3F3F3",
+") c #AE8E51",
+"! c #FDFDFD",
+"~ c #FCFCFC",
+"{ c #926716",
+"] c #2B2B2B",
+"..+..+..+..+..+.",
+"+++++++++++++++.",
+".@#############+",
+".+#############.",
+"$%#############.",
+".&*##=*##=*##=*#",
+"-;;;;;;;;;;;;;;;",
+">*,'=),,=*,,=*,#",
+"*,!=),,=*,,=*,#=",
+",~{*,#=*,#=*##=;",
+";;;;;;;];;;;;;;;",
+"#=*,#=*,#=*##=*#",
+".##############;",
+"###############;",
+".###############",
+".+..+..+..+..+.."};
diff --git a/muse_qt4_evolution/muse/xpm/select_deselect_all.xpm b/muse_qt4_evolution/muse/xpm/select_deselect_all.xpm
new file mode 100644
index 00000000..d3a9bce9
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_deselect_all.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *select_deselect_all[]={
+"16 16 3 1",
+". c #000000",
+"a c #ff0000",
+"# c #ffffff",
+"..#..#..#..#..#.",
+"###############.",
+".#aa########aa##",
+".#aaa######aaa#.",
+"###aaa####aaa##.",
+".###aaa##aaa####",
+".####aaaaaa####.",
+"######aaaa#####.",
+".#####aaaa######",
+".####aaaaaa####.",
+"####aaa##aaa###.",
+".##aaa####aaa###",
+".#aaa######aaa#.",
+"##aa########aa#.",
+".###############",
+".#..#..#..#..#.."};
diff --git a/muse_qt4_evolution/muse/xpm/select_inside_loop.xpm b/muse_qt4_evolution/muse/xpm/select_inside_loop.xpm
new file mode 100644
index 00000000..46d57b28
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_inside_loop.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_inside_loop_xpm[]={
+"16 16 2 1",
+". c #000000",
+"# c #ffffff",
+"................",
+"................",
+"....########....",
+"....#......#....",
+"....#......#....",
+".#######...#....",
+"..#####....#....",
+"...###.....#....",
+"....#.....###...",
+"....#....#####..",
+"....#...#######.",
+"....#......#....",
+"....#......#....",
+"....########....",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/select_invert_selection.xpm b/muse_qt4_evolution/muse/xpm/select_invert_selection.xpm
new file mode 100644
index 00000000..c2f11b55
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_invert_selection.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_invert_selection[]={
+"16 16 2 1",
+". c #000000",
+"# c #ffffff",
+"................",
+"...............#",
+"..............##",
+"......#####..###",
+".....#######.###",
+"....#######..###",
+"...#######....##",
+"...######.....##",
+"...#####......##",
+"...####.......##",
+"...###........##",
+"....#........###",
+"............####",
+"...###.....#####",
+"..##############",
+".###############"};
diff --git a/muse_qt4_evolution/muse/xpm/select_outside_loop.xpm b/muse_qt4_evolution/muse/xpm/select_outside_loop.xpm
new file mode 100644
index 00000000..555b6157
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/select_outside_loop.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_outside_loop_xpm[]={
+"16 16 2 1",
+"# c #000000",
+". c #ffffff",
+"................",
+"................",
+"....########....",
+"....#......#....",
+"....#......#....",
+".#######...#....",
+"..#####....#....",
+"...###.....#....",
+"....#.....###...",
+"....#....#####..",
+"....#...#######.",
+"....#......#....",
+"....#......#....",
+"....########....",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/settings_appearance_settings.xpm b/muse_qt4_evolution/muse/xpm/settings_appearance_settings.xpm
new file mode 100644
index 00000000..46dcc335
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_appearance_settings.xpm
@@ -0,0 +1,66 @@
+/* XPM */
+static const char * settings_appearance_settings_xpm[] = {
+"16 16 47 1",
+" c None",
+". c #000000",
+"+ c #A80000",
+"@ c #B60000",
+"# c #D40000",
+"$ c #93440B",
+"% c #A44C0C",
+"& c #B7550D",
+"* c #E56A10",
+"= c #CD5F0E",
+"- c #C9CC00",
+"; c #FCFF00",
+"> c #B4B600",
+", c #A1A300",
+"' c #CC0000",
+") c #E40000",
+"! c #E1E400",
+"~ c #909200",
+"{ c #4E8F00",
+"] c #61B300",
+"^ c #57A000",
+"/ c #B000B6",
+"( c #6CC800",
+"_ c #79E000",
+": c #DC00E4",
+"< c #C500CC",
+"[ c #9D00A3",
+"} c #009836",
+"| c #468000",
+"1 c #7D0083",
+"2 c #1B687D",
+"3 c #008830",
+"4 c #22829D",
+"5 c #00D44B",
+"6 c #00AA3C",
+"7 c #250492",
+"8 c #3304CB",
+"9 c #2E04B6",
+"0 c #3905E3",
+"a c #2904A3",
+"b c #2691B0",
+"c c #2AA2C5",
+"d c #00ED54",
+"e c #00BE43",
+"f c #2FB5DC",
+"g c #185D70",
+"h c #1E748C",
+"................",
+".+@#.$%&*=.-;>,.",
+".'').==*=.--!->.",
+".')).===.~!-!;-.",
+".))).=&.........",
+"..)'.&....{]^]{.",
+"./.).......((_].",
+".:<.........(((.",
+".:::.........]^.",
+"./[::.......}.|.",
+".1<:<[....2.}3..",
+".........44.556.",
+".78908a.bbc.d5e.",
+".88888.4fbc.6de.",
+".aa09.ghcc4.3e6.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/settings_configureshortcuts.xpm b/muse_qt4_evolution/muse/xpm/settings_configureshortcuts.xpm
new file mode 100644
index 00000000..bd858629
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_configureshortcuts.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static const char *settings_configureshortcuts_xpm[] = {
+"16 16 17 1",
+" c None",
+". c #000000",
+"+ c #808080",
+"@ c #646464",
+"# c #DCDCDC",
+"$ c #C3C3C3",
+"% c #A0A0A0",
+"& c #B8B8B8",
+"* c #787878",
+"= c #FFFFFF",
+"- c #EDEDED",
+"; c #585858",
+"> c #C2C2C2",
+", c #B7B7B7",
+"' c #E7E7E7",
+") c #303030",
+"! c #CFCFCF",
+" ...... ",
+" .+@#$%.. ",
+" .&*@#$%. ",
+"... ..&@#$. ",
+".=$.. .@##%. ",
+".=-#$.;@>##,. ",
+".@=-######'$%.. ",
+")=@*=--##'$!$%%.",
+".$#=@@@*%$-#!$,%",
+" ..$#$$$*@*=-#!$",
+" ...%#$$%@*=-#",
+" ....-#%@*=",
+" ..-#%@",
+" ..-#",
+" ..",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/settings_follow_song.xpm b/muse_qt4_evolution/muse/xpm/settings_follow_song.xpm
new file mode 100644
index 00000000..9a066715
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_follow_song.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static const char * settings_follow_song_xpm[] = {
+"16 16 11 1",
+" c None",
+". c #545454",
+"+ c #202020",
+"@ c #696969",
+"# c #7C7C7C",
+"$ c #000000",
+"% c #3C3C3C",
+"& c #C3C3C3",
+"* c #CBCBCB",
+"= c #8C8C8C",
+"- c #DCDCDC",
+" ",
+" .+@ ",
+" #$+%& ",
+" .$$+&#%% ",
+" .$$+&@$.. ",
+" .$$$&%$+@& ",
+" +$$$&%$+%& ",
+" $$$$&$$+%& ",
+" $$$+&+$$$& ",
+" $+@&++$$& ",
+" **&+$$$& ",
+" .$@&=.+&& ",
+" +$$& &&& ",
+" &&&.$@ ",
+" -- $++ ",
+" --- -- "};
diff --git a/muse_qt4_evolution/muse/xpm/settings_globalsettings.xpm b/muse_qt4_evolution/muse/xpm/settings_globalsettings.xpm
new file mode 100644
index 00000000..2593ee83
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_globalsettings.xpm
@@ -0,0 +1,89 @@
+/* XPM */
+static const char * settings_globalsettings_xpm[] = {
+"16 16 70 1",
+" c None",
+". c #BDBDBD",
+"+ c #000000",
+"@ c #B0B0B0",
+"# c #ABABAB",
+"$ c #CAC8C1",
+"% c #B5B5B5",
+"& c #EBEBE8",
+"* c #D7D7D7",
+"= c #D8D8D8",
+"- c #C4C4C4",
+"; c #F9F8F8",
+"> c #BBBBBB",
+", c #828282",
+"' c #D2D0CC",
+") c #F7F7F7",
+"! c #DEDBD6",
+"~ c #9C9C9C",
+"{ c #7B7B7B",
+"] c #7D7D7D",
+"^ c #D2D2D2",
+"/ c #D3D2CF",
+"( c #E3E2E1",
+"_ c #DFDEDC",
+": c #DBDAD7",
+"< c #A4A19C",
+"[ c #5F5F5F",
+"} c #292929",
+"| c #D3D3D3",
+"1 c #1C1C1C",
+"2 c #D2D1D0",
+"3 c #50504F",
+"4 c #101010",
+"5 c #3A3A3A",
+"6 c #494746",
+"7 c #D1D1D1",
+"8 c #DADADA",
+"9 c #363636",
+"0 c #C8C7C6",
+"a c #6C6967",
+"b c #CCCCCC",
+"c c #708295",
+"d c #CFD6DD",
+"e c #7C91A7",
+"f c #D6D5D5",
+"g c #8A8784",
+"h c #C9C9C9",
+"i c #7D8C9C",
+"j c #788DA4",
+"k c #7F99B3",
+"l c #1F272F",
+"m c #ECEBEA",
+"n c #72706D",
+"o c #CBCBCB",
+"p c #8D99A5",
+"q c #748AA2",
+"r c #849EB9",
+"s c #4D5F73",
+"t c #D5D4D3",
+"u c #6B6A69",
+"v c #7D91A7",
+"w c #849EBA",
+"x c #D6D6D6",
+"y c #525252",
+"z c #717171",
+"A c #484848",
+"B c #66798F",
+"C c #CACACA",
+"D c #6F6F6F",
+"E c #8D8D8D",
+" ",
+" .+@ #+#",
+" +$+# #+%+",
+" +&+* +=+#",
+" -+ +;+> ,++# ",
+" +'++)!+~ {+] ",
+" ^+/(_:<+[}{ ",
+" |+1++23+[ ",
+" 456+78 ",
+" +++9+0a+b ",
+" +cde+ +fg+h8 ",
+" +idjkl -+mn+o ",
+" +pdqrs+ +tu+b",
+" +dvws+^ x+2yz",
+" AvBs+C ++D",
+" EA++> "};
diff --git a/muse_qt4_evolution/muse/xpm/settings_metronome.xpm b/muse_qt4_evolution/muse/xpm/settings_metronome.xpm
new file mode 100644
index 00000000..985b1910
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_metronome.xpm
@@ -0,0 +1,99 @@
+/* XPM */
+static const char * settings_metronome_xpm[] = {
+"16 16 80 1",
+" c None",
+". c #C4B71A",
+"+ c #BAAE17",
+"@ c #B4AA40",
+"# c #D1C440",
+"$ c #E0D123",
+"% c #87824B",
+"& c #E9D926",
+"* c #F8E407",
+"= c #F9E60D",
+"- c #752D08",
+"; c #9D3D0B",
+"> c #82330A",
+", c #6D2B08",
+"' c #FCEE4E",
+") c #612607",
+"! c #813308",
+"~ c #DCD05F",
+"{ c #EADC49",
+"] c #933A09",
+"^ c #712D07",
+"/ c #6F5E58",
+"( c #2A1006",
+"_ c #C04B0C",
+": c #FCEB2D",
+"< c #6D2B07",
+"[ c #4E3826",
+"} c #FCEF5D",
+"| c #F7EA49",
+"1 c #470A31",
+"2 c #7A3108",
+"3 c #752F07",
+"4 c #704517",
+"5 c #F1E132",
+"6 c #FBED4A",
+"7 c #F1E141",
+"8 c #7C3B3A",
+"9 c #BC6130",
+"0 c #7F3F0A",
+"a c #482B0E",
+"b c #F5E537",
+"c c #ECDB33",
+"d c #51142E",
+"e c #8E5C41",
+"f c #A8420A",
+"g c #612D07",
+"h c #43260A",
+"i c #50350F",
+"j c #673013",
+"k c #A95A2E",
+"l c #693208",
+"m c #281003",
+"n c #341403",
+"o c #C1500D",
+"p c #B9541A",
+"q c #B85C29",
+"r c #706914",
+"s c #120803",
+"t c #331608",
+"u c #774A33",
+"v c #62290A",
+"w c #B6AA20",
+"x c #131307",
+"y c #2C1103",
+"z c #662F12",
+"A c #743008",
+"B c #7D3E1B",
+"C c #251309",
+"D c #331809",
+"E c #BA6334",
+"F c #B75D2C",
+"G c #73300B",
+"H c #793A17",
+"I c #7F3208",
+"J c #903909",
+"K c #883609",
+"L c #622809",
+"M c #371908",
+"N c #4D2108",
+"O c #722E07",
+" .+ ",
+" @#$% ",
+" &*=& ",
+" -;;> ",
+" ,'') ",
+" !,~{]^ /( ",
+" ^_:~_< [}|1",
+" 2^_{~_345678",
+" ^]9{{_0abcd ",
+" e;_f'{_ghid ",
+" jf_k{:lmno ",
+" j_pq_{rstq_u ",
+" vf_f_wxy]f_z ",
+" AApqpBCDEFpqGA ",
+" HHIJKLMNOOO^HH ",
+" aaaaaaaaaaaaaa"};
diff --git a/muse_qt4_evolution/muse/xpm/settings_midifileexport.xpm b/muse_qt4_evolution/muse/xpm/settings_midifileexport.xpm
new file mode 100644
index 00000000..ec65b59d
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_midifileexport.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static const char * settings_midifileexport_xpm[] = {
+"16 16 11 1",
+" c None",
+". c #292929",
+"+ c #000000",
+"@ c #676767",
+"# c #C9C9C9",
+"$ c #793C11",
+"% c #994C15",
+"& c #C2611B",
+"* c #4F270B",
+"= c #371B07",
+"- c #5F2F0D",
+" ",
+" . ",
+" ++ ",
+" +@+ ",
+" +#+# ",
+" +### ",
+" +# ++++++++",
+" +# +$%&&%$++",
+" +# +$%&&%$+$+",
+" +++#++++++++$$+",
+"++++#+$$%&%$+%&+",
+"++++#+*$$$$%+&$+",
+" ####+&$$=$%+$+#",
+" +$$%&%-++##",
+" ++++++++## ",
+" ######## "};
diff --git a/muse_qt4_evolution/muse/xpm/settings_midiport_softsynths.xpm b/muse_qt4_evolution/muse/xpm/settings_midiport_softsynths.xpm
new file mode 100644
index 00000000..b637e5c1
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_midiport_softsynths.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char * settings_midiport_softsynths_xpm[] = {
+"16 16 10 1",
+" c None",
+". c #000000",
+"+ c #CECECE",
+"@ c #313131",
+"# c #939393",
+"$ c #797979",
+"% c #595959",
+"& c #282828",
+"* c #A6A6A6",
+"= c #484848",
+" .... ",
+" . . ",
+" .. ..+ ",
+" @..@+ ",
+" #..$+ ",
+" ...... ",
+" ..+++ ",
+" ..+ ",
+" $$ ..+$$ ",
+" ... ..+ ... ",
+" ..$ ..+ $.. ",
+" $.%.. ..+..$.$ ",
+" $ +&......@++$ ",
+" *=....%++ ",
+" =..=++ ",
+" ++++ "};
diff --git a/muse_qt4_evolution/muse/xpm/settings_midisync.xpm b/muse_qt4_evolution/muse/xpm/settings_midisync.xpm
new file mode 100644
index 00000000..3bfdb180
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/settings_midisync.xpm
@@ -0,0 +1,53 @@
+/* XPM */
+static const char * settings_midisync_xpm[] = {
+"16 16 34 1",
+" c None",
+". c #7C7C7C",
+"+ c #787878",
+"@ c #818181",
+"# c #747474",
+"$ c #757575",
+"% c #000000",
+"& c #636363",
+"* c #8C8C8C",
+"= c #909090",
+"- c #939393",
+"; c #8A8A8A",
+"> c #7F7F7F",
+", c #9A9A9A",
+"' c #777777",
+") c #949494",
+"! c #828282",
+"~ c #9E9E9E",
+"{ c #999999",
+"] c #888888",
+"^ c #979797",
+"/ c #929292",
+"( c #969696",
+"_ c #9B9B9B",
+": c #858585",
+"< c #848484",
+"[ c #898989",
+"} c #7A7A7A",
+"| c #7E7E7E",
+"1 c #808080",
+"2 c #838383",
+"3 c #737373",
+"4 c #6A6A6A",
+"5 c #676767",
+" ",
+" ",
+" .+@#$% ",
+" & **% ",
+" =% ",
+" +% #% ",
+" -;>% >% ",
+" +;,'.% )!-~{)]%",
+"^/(_{-]% :,<[!% ",
+" }@% .|>% ",
+" 12% <% ",
+" }<%% ",
+" 34% 4% ",
+" }55}% ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/solobutton.xpm b/muse_qt4_evolution/muse/xpm/solobutton.xpm
new file mode 100644
index 00000000..e0c1002a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/solobutton.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static const char * solobutton_xpm[] = {
+"22 22 14 1",
+" c None",
+". c #000000",
+"+ c #F10606",
+"@ c #414141",
+"# c #852A2A",
+"$ c #473E3E",
+"% c #723030",
+"& c #CB1212",
+"* c #4E3C3C",
+"= c #E20A0A",
+"- c #A51F1F",
+"; c #9E2121",
+"> c #832A2A",
+", c #9C2222",
+"......................",
+". .",
+". .",
+". .",
+". + .",
+". ++ .",
+". +++ .",
+". @@@@@@@@@#+++ .",
+". $@@@@@@@%++& .",
+". *$ ++=@ .",
+". +- +++;@ .",
+". >++ ++++@@ .",
+". @+++ +++ @@ .",
+". @@+++++++ @@ .",
+". @@ +++++ @@ .",
+". @@ ++++ @@ .",
+". @@ ++ @@ .",
+". @@@@@,+@@@@@ .",
+". @@@@@@@@@@@@ .",
+". .",
+". .",
+"......................"};
diff --git a/muse_qt4_evolution/muse/xpm/solobutton_off.xpm b/muse_qt4_evolution/muse/xpm/solobutton_off.xpm
new file mode 100644
index 00000000..31cc8e5a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/solobutton_off.xpm
@@ -0,0 +1,146 @@
+/* XPM */
+static const char * solobutton_off_xpm[] = {
+"22 22 121 2",
+" c #000000",
+". c #720000",
+"+ c #7B0000",
+"@ c #810000",
+"# c #840000",
+"$ c #870000",
+"% c #8D0000",
+"& c #930000",
+"* c #980000",
+"= c #9C0000",
+"- c #9B0000",
+"; c #970000",
+"> c #900000",
+", c #8C0000",
+"' c #850000",
+") c #800000",
+"! c #760000",
+"~ c #730000",
+"{ c #710000",
+"] c #770000",
+"^ c #A10000",
+"/ c #A90000",
+"( c #AE0000",
+"_ c #B10000",
+": c #B60000",
+"< c #B50000",
+"[ c #B30000",
+"} c #AC0000",
+"| c #A70000",
+"1 c #9E0000",
+"2 c #8F0000",
+"3 c #890000",
+"4 c #7F0000",
+"5 c #7A0000",
+"6 c #7C0000",
+"7 c #8E0000",
+"8 c #A00000",
+"9 c #AD0000",
+"0 c #B80000",
+"a c #C00000",
+"b c #C60000",
+"c c #C80000",
+"d c #CB0000",
+"e c #C70000",
+"f c #BB0000",
+"g c #B20000",
+"h c #A30000",
+"i c #960000",
+"j c #860000",
+"k c #920000",
+"l c #BA0000",
+"m c #C50000",
+"n c #CE0000",
+"o c #D40000",
+"p c #D80000",
+"q c #D70000",
+"r c #DA0000",
+"s c #D10000",
+"t c #C90000",
+"u c #C30000",
+"v c #B40000",
+"w c #A40000",
+"x c #910000",
+"y c #7D0000",
+"z c #950000",
+"A c #AB0000",
+"B c #BD0000",
+"C c #CC0000",
+"D c #D60000",
+"E c #DF0000",
+"F c #E30000",
+"G c #E10000",
+"H c #DC0000",
+"I c #D00000",
+"J c #C20000",
+"K c #BC0000",
+"L c #A50000",
+"M c #AF0000",
+"N c #414141",
+"O c #CD0000",
+"P c #B90000",
+"Q c #AA0000",
+"R c #9A0000",
+"S c #473E3E",
+"T c #D10100",
+"U c #A80000",
+"V c #880000",
+"W c #D20000",
+"X c #E50000",
+"Y c #E80000",
+"Z c #E40200",
+"` c #D50100",
+" . c #D50000",
+".. c #D90000",
+"+. c #DE0000",
+"@. c #E20000",
+"#. c #E40000",
+"$. c #E70000",
+"%. c #E90000",
+"&. c #DB0000",
+"*. c #CA0000",
+"=. c #BE0000",
+"-. c #E00000",
+";. c #E60000",
+">. c #7E0000",
+",. c #DD0000",
+"'. c #BF0000",
+"). c #D30000",
+"!. c #990000",
+"~. c #B00000",
+"{. c #940000",
+"]. c #7A0100",
+"^. c #A60000",
+"/. c #9D0000",
+"(. c #9D0101",
+"_. c #7B0200",
+":. c #8C0100",
+"<. c #9E0101",
+"[. c #8F0101",
+"}. c #7F0101",
+"|. c #720101",
+" ",
+" . + @ # $ % & & * = - ; > , ' ) + ! ~ { ",
+" ] $ & - ^ / ( _ : < [ } | 1 * 2 3 # 4 5 ",
+" 6 7 8 9 0 a b b c d e a f g / h - i 7 j ",
+" 6 k | l m n o p q r q s t u f v 9 w - x ",
+" y z A B C D r E F F G H q I d J K g L z ",
+" ) * M N N N N N N N N N N N N O m P Q i ",
+" # R _ S N N N N N N N N N N N T t f U & ",
+" V 8 : N N W p r E X Y X Z N N ` C f L % ",
+" % L l N N ...r +.@.#.$.%.N N q d 0 ^ 3 ",
+" > / K N N p p r &.+.@.#.Y N N p *.< - @ ",
+" > / =.N N H &.&.&.&.E -.;.N N ..t g R >. ",
+" x U =.N N &.,.&.p ..r H E N N p t [ i 6 ",
+" 2 U '.N N &.+...D . ...,.N N q c _ i y ",
+" % w f N N p &.D ).).). .r N N q t g i >. ",
+" V 8 : N N ).D ).s I ).D H N N D e g ; >. ",
+" # !.~.N N N N N N N N N N N N o e ~.; >. ",
+" 4 & / N N N N N N N N N N N N n J 9 {.y ",
+" ].x h g l f '.=.a m t O ).).I c f ^.> + ",
+" ].% /.Q M [ [ v 0 f '.u e b u l ~.(.$ ! ",
+" _.:.!.8 ^.L L ^.Q A ~.[ < v M U <.[.}.|. ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/solobutton_on.xpm b/muse_qt4_evolution/muse/xpm/solobutton_on.xpm
new file mode 100644
index 00000000..c53e5884
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/solobutton_on.xpm
@@ -0,0 +1,300 @@
+/* XPM */
+static const char * solobutton_on_xpm[] = {
+"22 22 275 2",
+" c #000000",
+". c #066714",
+"+ c #056613",
+"@ c #076915",
+"# c #076A15",
+"$ c #076A16",
+"% c #086B17",
+"& c #096C18",
+"* c #066B15",
+"= c #066B14",
+"- c #076F17",
+"; c #0C751C",
+"> c #107B20",
+", c #0F7C1F",
+"' c #0D791D",
+") c #097318",
+"! c #066E15",
+"~ c #066C14",
+"{ c #066814",
+"] c #086B16",
+"^ c #0A6F19",
+"/ c #0B711A",
+"( c #0B721B",
+"_ c #0C731C",
+": c #0C731B",
+"< c #0A731A",
+"[ c #097219",
+"} c #077318",
+"| c #0A781B",
+"1 c #0E7E1F",
+"2 c #118522",
+"3 c #128722",
+"4 c #0F8321",
+"5 c #0B7D1B",
+"6 c #077517",
+"7 c #067016",
+"8 c #056713",
+"9 c #066914",
+"0 c #086D17",
+"a c #0A721A",
+"b c #0F771E",
+"c c #107A20",
+"d c #117D21",
+"e c #127E21",
+"f c #117F21",
+"g c #0E7D1F",
+"h c #0D801E",
+"i c #0F8620",
+"j c #128F25",
+"k c #159627",
+"l c #169828",
+"m c #159427",
+"n c #F10606",
+"o c #0B821C",
+"p c #087718",
+"q c #086E17",
+"r c #0B731A",
+"s c #0F791F",
+"t c #138223",
+"u c #168727",
+"v c #188A29",
+"w c #178D28",
+"x c #168D27",
+"y c #158C26",
+"z c #128D25",
+"A c #129125",
+"B c #149926",
+"C c #17A22B",
+"D c #19AA2D",
+"E c #1AAC2E",
+"F c #119122",
+"G c #0C831D",
+"H c #066D15",
+"I c #0A7119",
+"J c #0C7A1D",
+"K c #118323",
+"L c #178D29",
+"M c #1B952E",
+"N c #1B9C2E",
+"O c #1A9E2E",
+"P c #199C2B",
+"Q c #189D2B",
+"R c #189E2B",
+"S c #17A32C",
+"T c #18AC2E",
+"U c #19B630",
+"V c #1CC033",
+"W c #16A22A",
+"X c #129025",
+"Y c #097519",
+"Z c #0F801F",
+"` c #158E27",
+" . c #414141",
+".. c #852A2A",
+"+. c #1CC335",
+"@. c #19B130",
+"#. c #179C2A",
+"$. c #067015",
+"%. c #097A1A",
+"&. c #108922",
+"*. c #17982A",
+"=. c #473E3E",
+"-. c #723030",
+";. c #CB1212",
+">. c #1CDA38",
+",. c #1DD038",
+"'. c #1BB832",
+"). c #19A22D",
+"!. c #067215",
+"~. c #0A7F1B",
+"{. c #119124",
+"]. c #18A22D",
+"^. c #4E3C3C",
+"/. c #1BCB35",
+"(. c #1ACD35",
+"_. c #19CB34",
+":. c #1AC932",
+"<. c #18C833",
+"[. c #18CC33",
+"}. c #E20A0A",
+"|. c #1BDF37",
+"1. c #1CD136",
+"2. c #1CBD35",
+"3. c #19A42E",
+"4. c #087618",
+"5. c #0B821D",
+"6. c #129725",
+"7. c #A51F1F",
+"8. c #18D435",
+"9. c #18D433",
+"0. c #18D333",
+"a. c #18D033",
+"b. c #19CE33",
+"c. c #9E2121",
+"d. c #19DB36",
+"e. c #1ACF36",
+"f. c #1BBB33",
+"g. c #1AA22E",
+"h. c #087818",
+"i. c #0C861E",
+"j. c #129B26",
+"k. c #18B12F",
+"l. c #832A2A",
+"m. c #19D833",
+"n. c #17D433",
+"o. c #19D534",
+"p. c #1ACB34",
+"q. c #1AB832",
+"r. c #199F2D",
+"s. c #087918",
+"t. c #0D891F",
+"u. c #129C26",
+"v. c #17B22F",
+"w. c #17D232",
+"x. c #16D531",
+"y. c #19D034",
+"z. c #18C432",
+"A. c #19B230",
+"B. c #169A2A",
+"C. c #087A19",
+"D. c #0D881F",
+"E. c #139C27",
+"F. c #17AF2D",
+"G. c #14D130",
+"H. c #16CC31",
+"I. c #18C132",
+"J. c #18B02E",
+"K. c #159828",
+"L. c #0A7A1A",
+"M. c #149C27",
+"N. c #17AE2D",
+"O. c #16C830",
+"P. c #14CD2E",
+"Q. c #14CE30",
+"R. c #17CA31",
+"S. c #15BF2F",
+"T. c #15AE2B",
+"U. c #129624",
+"V. c #0E8821",
+"W. c #17AD2E",
+"X. c #17C730",
+"Y. c #16CA31",
+"Z. c #15C92E",
+"`. c #14CB2E",
+" + c #14C72E",
+".+ c #14BD2C",
+"++ c #11AD29",
+"@+ c #0F9423",
+"#+ c #0B7B1A",
+"$+ c #0F8720",
+"%+ c #139B26",
+"&+ c #16AA2B",
+"*+ c #17C72F",
+"=+ c #15CB30",
+"-+ c #15CC31",
+";+ c #15C82F",
+">+ c #16C730",
+",+ c #11C52C",
+"'+ c #10BA29",
+")+ c #0FA825",
+"!+ c #0C9020",
+"~+ c #0B791C",
+"{+ c #0D871F",
+"]+ c #119625",
+"^+ c #15A82A",
+"/+ c #9C2222",
+"(+ c #10C02A",
+"_+ c #0EB526",
+":+ c #0DA322",
+"<+ c #0A8D1D",
+"[+ c #097419",
+"}+ c #0E9121",
+"|+ c #11A126",
+"1+ c #0EB426",
+"2+ c #0DAA23",
+"3+ c #0B9A20",
+"4+ c #08871B",
+"5+ c #077217",
+"6+ c #0A871D",
+"7+ c #0D9521",
+"8+ c #10A425",
+"9+ c #11AE27",
+"0+ c #11B228",
+"a+ c #12B529",
+"b+ c #11B628",
+"c+ c #10B429",
+"d+ c #10B227",
+"e+ c #10AF27",
+"f+ c #10AC27",
+"g+ c #0FAB26",
+"h+ c #0EA824",
+"i+ c #0DA624",
+"j+ c #0CA221",
+"k+ c #0B9C20",
+"l+ c #088F1C",
+"m+ c #068018",
+"n+ c #056D13",
+"o+ c #057214",
+"p+ c #067A17",
+"q+ c #09841B",
+"r+ c #0C911E",
+"s+ c #0D9921",
+"t+ c #0E9F22",
+"u+ c #0EA123",
+"v+ c #0DA222",
+"w+ c #0DA123",
+"x+ c #0C9C21",
+"y+ c #0B981F",
+"z+ c #0C971F",
+"A+ c #0C951F",
+"B+ c #0B931F",
+"C+ c #0A911E",
+"D+ c #088E1C",
+"E+ c #07891A",
+"F+ c #058218",
+"G+ c #047715",
+"H+ c #036812",
+"I+ c #046C12",
+"J+ c #047014",
+"K+ c #057615",
+"L+ c #077D19",
+"M+ c #09831B",
+"N+ c #09871C",
+"O+ c #08891C",
+"P+ c #088A1B",
+"Q+ c #078619",
+"R+ c #078419",
+"S+ c #078018",
+"T+ c #067D18",
+"U+ c #067C18",
+"V+ c #067D17",
+"W+ c #057B16",
+"X+ c #047815",
+"Y+ c #037313",
+"Z+ c #036D12",
+" ",
+" . + + . @ # $ % & % * = - ; > , ' ) ! ~ ",
+" . + { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 ",
+" 8 9 0 a b c d e f g 1 h i j k l m n o p ",
+" { q r s t u v w x y z A B C D E n n F G ",
+" H I J K L M N O P Q R S T U V n n n W X ",
+" H Y Z ` . . . . . . . . ...n n n +.@.#. ",
+" $.%.&.*.=. . . . . . . .-.n n ;.>.,.'.). ",
+" !.~.{.].^.=./.(._.:.<.[.n n }. .|.1.2.3. ",
+" 4.5.6.T n 7.8.9.0.a.b.n n n c. .d.e.f.g. ",
+" h.i.j.k.l.n n m.n.0.n n n n . .o.p.q.r. ",
+" s.t.u.v. .n n n w.w.n n n x. . .y.z.A.B. ",
+" C.D.E.F. . .n n n n n n n G. . .H.I.J.K. ",
+" L.t.M.N. . .O.n n n n n P.Q. . .R.S.T.U. ",
+" L.V.M.W. . .X.Y.n n n n Z.`. . . +.+++@+ ",
+" #+$+%+&+ . .*+=+-+n n ;+>+;+ . .,+'+)+!+ ",
+" ~+{+]+^+ . . . . ./+n . . . . .(+_+:+<+ ",
+" [+5.}+|+ . . . . . . . . . . . .1+2+3+4+ ",
+" 5+C.6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+ ",
+" n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+ ",
+" H+I+J+K+L+M+N+O+P+E+Q+R+S+T+U+V+W+X+Y+Z+ ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/speaker.xpm b/muse_qt4_evolution/muse/xpm/speaker.xpm
new file mode 100644
index 00000000..1595e298
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/speaker.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char * speaker_xpm[] = {
+"18 18 2 1",
+" c None",
+". c #000000",
+" ",
+" .. ",
+" . . ",
+" . . ",
+" . . ",
+" ..... . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" ..... . ",
+" . . ",
+" . . ",
+" . . ",
+" .. ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/splash.png b/muse_qt4_evolution/muse/xpm/splash.png
new file mode 100644
index 00000000..077e305e
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/splash.png
Binary files differ
diff --git a/muse_qt4_evolution/muse/xpm/start.xpm b/muse_qt4_evolution/muse/xpm/start.xpm
new file mode 100644
index 00000000..cc5b8f9c
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/start.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * start_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" .... . ",
+" .... ... ",
+" .... ... ",
+" .... .... ",
+" .... .... ",
+" .... ..... ",
+" .... ..... ",
+" .... .... ",
+" .... .... ",
+" .... ... ",
+" .... ... ",
+" .... . "};
diff --git a/muse_qt4_evolution/muse/xpm/steprec.xpm b/muse_qt4_evolution/muse/xpm/steprec.xpm
new file mode 100644
index 00000000..4c606c15
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/steprec.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char* steprec_xpm[]={
+"18 18 3 1",
+". c None",
+"a c #ffffff",
+"# c #ff0000",
+"......#####.......",
+"....##aaaaa##.....",
+"...#aaa####aa#....",
+"..#aa########a#...",
+".#aaa##aaaa##aa#..",
+".#aaa##aaaaaaaa#..",
+"#aaaa##aaaaaaaaa#.",
+"#aaaaa#####aaaaa#.",
+"#aaaaaa#####aaaa#.",
+"#aaaaaaaaaa##aaa#.",
+"#aaaa#aaaaa##aaa#.",
+".#aaa##aaaa##aa#..",
+".#aaaa#######aa#..",
+"..#aaaa#####aa#...",
+"...#aaaaaaaaa#....",
+"....##aaaaa##.....",
+"......#####.......",
+".................."};
diff --git a/muse_qt4_evolution/muse/xpm/stereo.svg b/muse_qt4_evolution/muse/xpm/stereo.svg
new file mode 100644
index 00000000..2d222f61
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/stereo.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="16"
+ height="16"
+ id="svg1307"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ sodipodi:docname="stereo.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:docbase="/home/ws/projects/muse/muse/trunk/muse/muse/xpm"
+ sodipodi:modified="true">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:window-height="591"
+ inkscape:window-width="907"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ width="16px"
+ height="16px"
+ inkscape:zoom="18.9"
+ inkscape:cx="16.5"
+ inkscape:cy="10"
+ inkscape:window-x="20"
+ inkscape:window-y="266"
+ inkscape:current-layer="svg1307" />
+ <defs
+ id="defs1309" />
+ <g
+ id="layer1"
+ transform="matrix(0.6319982,0,0,0.6402952,-2.3836027,1.951611)">
+ <path
+ d="M 16.797341,15.398537 C 13.77507,17.399581 9.4702685,17.114643 6.8442934,14.739737 C 4.2183184,12.364831 4.1274584,8.6743768 6.6342179,6.2071094 C 9.1409773,3.739842 13.427942,3.3002982 16.546025,5.1908488"
+ transform="matrix(1,0,0,1.161391,9.876871e-2,-2.446221)"
+ style="fill:#ff0000;fill-opacity:0;stroke:#3e3e3e;stroke-width:2.26799989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1317" />
+ <path
+ d="M 19.679144,10.374331 C 19.679144,13.883961 16.351207,16.729079 12.245989,16.729079 C 8.1407707,16.729079 4.8128338,13.883961 4.8128338,10.374331 C 4.8128338,6.8647007 8.1407707,4.0195832 12.245989,4.0195832 C 16.351207,4.0195832 19.679144,6.8647007 19.679144,10.374331 z "
+ transform="matrix(1,0,0,1.161391,8.098769,-2.446221)"
+ style="fill:#ff0000;fill-opacity:0;stroke:#3e3e3e;stroke-width:2.26799989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2192" />
+ </g>
+</svg>
diff --git a/muse_qt4_evolution/muse/xpm/stick.xpm b/muse_qt4_evolution/muse/xpm/stick.xpm
new file mode 100644
index 00000000..b5817f1f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/stick.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * stick_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #000100",
+"+ c #9FA19E",
+"@ c #A29FA3",
+"# c #2F312E",
+"$ c #878A8A",
+"% c #ABAFB0",
+"& c #DDE2E5",
+"* c #6D706F",
+"= c #6D6F6C",
+"- c #D3D8DA",
+"; c #C2C4C0",
+"> c #7F817E",
+", c #868885",
+" . ",
+" ..+ ",
+" ..@+ . ",
+" ..++ ..+",
+" ..@@ ..++",
+" ##...## ..++ ",
+" .$%..$$...@@ ",
+" #$%&&&%...++ ",
+" ##$%&%$..#@ ",
+" #*#####..#@ ",
+" #*$&&%$=#..... ",
+" #*%&&&-*..;@;>.",
+" #$&&%,##.>;;..",
+" ###### ......",
+" .+>>. ",
+" ... "};
diff --git a/muse_qt4_evolution/muse/xpm/stop.xpm b/muse_qt4_evolution/muse/xpm/stop.xpm
new file mode 100644
index 00000000..c4c5dbe2
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/stop.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * stop_xpm[] = {
+"12 12 2 1",
+" c None",
+". c #000000",
+" ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/sysex.xpm b/muse_qt4_evolution/muse/xpm/sysex.xpm
new file mode 100644
index 00000000..3cc5734e
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/sysex.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * sysex_xpm[] = {
+"22 22 2 1",
+" c None",
+". c #000000000000",
+" ... . ",
+" . .. ",
+" . . ",
+" .. .. .. ... ",
+" ... . . . . ",
+" .. . .. .. ",
+" . . . . .. ",
+" .. .. .. . . ",
+" . ... . ... ",
+" . ",
+" . ",
+" .. ",
+" ....... ",
+" . . ",
+" . ",
+" . . .. .. ",
+" ..... . . ",
+" . . . ",
+" . . ",
+" . . . . ",
+" ....... .. .. ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/toc.xpm b/muse_qt4_evolution/muse/xpm/toc.xpm
new file mode 100644
index 00000000..e8791dbc
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/toc.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char*toc_xpm[]={
+"18 18 6 1",
+"d c #a0a0a0",
+"# c #c0c0c0",
+"a c #000000",
+". c None",
+"c c #00c000",
+"b c #ffffff",
+"..................",
+"..................",
+".#aaaaaaaaaaa.....",
+".#a...abbba#a#....",
+".#a#c#abbba#.aa#..",
+".#a.c.abbba###a#..",
+".#a.c.abbbaaaaa#..",
+".#a#c#abbbbbbba#..",
+".#a.c.abdddbbba#..",
+".#a.c.abbbbbbba#..",
+".#a#c.abbddddba##.",
+".#a#c.abbbbbbba##.",
+".#a#c.abbbbbbba##.",
+".#a#c.abddddbba##.",
+".#a...abbbbbbba#..",
+".#aaaaaaaaaaaaa#..",
+"..............###.",
+".................."};
diff --git a/muse_qt4_evolution/muse/xpm/track_add.xpm b/muse_qt4_evolution/muse/xpm/track_add.xpm
new file mode 100644
index 00000000..0d78d13b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/track_add.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *track_add_xpm[]={
+"16 16 4 1",
+"b c #404000",
+"a c #808080",
+". c #c00000",
+"# c #ffffff",
+"................",
+"................",
+"..############..",
+"..############..",
+"..a#a#a#a#a#a#..",
+".bbbbbbbbbbbbbb.",
+"..a#a#a#a#a#a#..",
+"..a#a#a#a#a#a#..",
+"..a#a#a#a#a#a#..",
+"..a#a#a#a#a#a#..",
+".bbbbbbbbbbbbbb.",
+"..a#a#a#a#a#a#..",
+"..############..",
+"..############..",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/track_delete.xpm b/muse_qt4_evolution/muse/xpm/track_delete.xpm
new file mode 100644
index 00000000..e8a60338
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/track_delete.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *track_delete_xpm[]={
+"16 16 4 1",
+"b c #404000",
+"a c #808080",
+". c #c00000",
+"# c #ffffff",
+"................",
+"................",
+"....##########..",
+".....#########..",
+"..a...a#a#a#a#..",
+".bbb...bbbbbbbb.",
+"..a#a...a#a#a#..",
+"..a#a#...#a#a#..",
+"..a#a#a...a#a#..",
+"..a#a#a#...#a#..",
+".bbbbbbbb...bbb.",
+"..a#a#a#a#...#..",
+"..#########.....",
+"..##########....",
+"................",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/underlined.xpm b/muse_qt4_evolution/muse/xpm/underlined.xpm
new file mode 100644
index 00000000..a84a1e7d
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/underlined.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * underlined_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" .... ... ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" ... .. ",
+" ..... ",
+" ",
+" ......... "};
diff --git a/muse_qt4_evolution/muse/xpm/undo.xpm b/muse_qt4_evolution/muse/xpm/undo.xpm
new file mode 100644
index 00000000..4ba2b07b
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/undo.xpm
@@ -0,0 +1,93 @@
+/* XPM */
+static const char * undo_xpm[] = {
+"22 22 68 1",
+" c None",
+". c #275F0B",
+"+ c #9AC589",
+"@ c #CDE2C1",
+"# c #E5EEDF",
+"$ c #F5F9F4",
+"% c #C7E0BA",
+"& c #79BE53",
+"* c #91D56B",
+"= c #C8E1BE",
+"- c #87C86A",
+"; c #4AA721",
+"> c #3FA21C",
+", c #47AB29",
+"' c #000000",
+") c #8AC963",
+"! c #5BC930",
+"~ c #6FD63D",
+"{ c #53B529",
+"] c #D4E4CB",
+"^ c #2B6A0E",
+"/ c #35691B",
+"( c #FFFFFF",
+"_ c #E4ECDF",
+": c #A7C49A",
+"< c #42A01E",
+"[ c #102806",
+"} c #060D03",
+"| c #0E2005",
+"1 c #41821F",
+"2 c #79B658",
+"3 c #1C4408",
+"4 c #ECF3E8",
+"5 c #7FCC67",
+"6 c #72C24F",
+"7 c #0B1B05",
+"8 c #1C4508",
+"9 c #3A8816",
+"0 c #38AA18",
+"a c #34A814",
+"b c #51B929",
+"c c #469D24",
+"d c #122B06",
+"e c #275E0D",
+"f c #40A513",
+"g c #CCE5C2",
+"h c #48B227",
+"i c #4BB626",
+"j c #79D54B",
+"k c #081204",
+"l c #173807",
+"m c #88BE71",
+"n c #3F8222",
+"o c #478824",
+"p c #5B923C",
+"q c #3E8320",
+"r c #529033",
+"s c #071003",
+"t c #020202",
+"u c #15260E",
+"v c #0F1C09",
+"w c #070D04",
+"x c #12230A",
+"y c #102009",
+"z c #15270C",
+"A c #234413",
+"B c #13250A",
+"C c #13200C",
+" ",
+" ",
+" ..... ",
+" ..+@#@+.. ",
+" ..$%&&&&*#+. ",
+" . .$=-;;>>>>,*#' ",
+" .. .$);>!~~~~!{>*+' ",
+" .]..$)>!~{''''^/{>(' ",
+" .]_:)<~{'[ }|^12+3",
+" .456<~{' 789(3",
+" .40abc' def3",
+" .ghaij3 kl3 ",
+" .mnopqr3 s3' ",
+" .'''''''t u3 ",
+" v3w ",
+" x3y ",
+" zAB ",
+" C3' ",
+" ''' ",
+" ",
+" ",
+" "};
diff --git a/muse_qt4_evolution/muse/xpm/up.xpm b/muse_qt4_evolution/muse/xpm/up.xpm
new file mode 100644
index 00000000..94ad7cd5
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/up.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char* up_xpm[]={
+"14 10 2 1",
+"# c #000000",
+". c None",
+"..............",
+"......##......",
+".....####.....",
+"....######....",
+"...##.##.##...",
+"......##......",
+"......##......",
+"......##......",
+"......##......",
+".............."};
diff --git a/muse_qt4_evolution/muse/xpm/view_bigtime_window.xpm b/muse_qt4_evolution/muse/xpm/view_bigtime_window.xpm
new file mode 100644
index 00000000..9ff59a5a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/view_bigtime_window.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char * view_bigtime_window_xpm[] = {
+"16 16 3 1",
+" c None",
+". c #D4D4D4",
+"+ c #000000",
+" .++. ",
+" .++..++. ",
+" +. ++ .+ ",
+" +. ++ .+ ",
+" .. ++. .. ",
+" + ++. + ",
+".+ ++. +.",
+"+. ++. .+",
+"+. + .. .+",
+".+ + . +.",
+" + + . + ",
+" ..+ . .. ",
+" +.. .+ ",
+" +. .+ ",
+" .++..++. ",
+" .++. "};
diff --git a/muse_qt4_evolution/muse/xpm/view_cliplist.xpm b/muse_qt4_evolution/muse/xpm/view_cliplist.xpm
new file mode 100644
index 00000000..6217b397
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/view_cliplist.xpm
@@ -0,0 +1,32 @@
+/* XPM */
+static const char * view_cliplist_xpm[] = {
+"16 16 13 1",
+" c None",
+". c #5E2ABF",
+"+ c #945BFD",
+"@ c #000000",
+"# c #DCDCDC",
+"$ c #CACACA",
+"% c #E6E6E6",
+"& c #EAEAEA",
+"* c #FFFFFF",
+"= c #FCFCFC",
+"- c #461F8E",
+"; c #FBFBFB",
+"> c #F9F9F9",
+"................",
+".+@@@@@@@@@@+++.",
+".+@####$###@@++.",
+".+@%&@***@*@@@+.",
+".+@%@@#&@@#*=@-.",
+".+@%@@#*@@#@=@-.",
+".+@;&@#**@#*@@-.",
+".+@;&&#&&*#@=@-.",
+".+@;&@***@*=@@-.",
+".+@%@@#&@@#@>@-.",
+".+@%@@#*@@#=@@-.",
+".+@%%@#;;@#@=@-.",
+".+@;%%#;%;#;#@-.",
+".+@@@@@@@@@@@@-.",
+".++------------.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/view_marker.xpm b/muse_qt4_evolution/muse/xpm/view_marker.xpm
new file mode 100644
index 00000000..26dba09a
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/view_marker.xpm
@@ -0,0 +1,37 @@
+/* XPM */
+static const char * view_marker_xpm[] = {
+"16 16 18 1",
+" c None",
+". c #DCDCDC",
+"+ c #0C0C0C",
+"@ c #253B52",
+"# c #395B7F",
+"$ c #588DC4",
+"% c #531228",
+"& c #C3B2E5",
+"* c #240E16",
+"= c #5F132A",
+"- c #828282",
+"; c #542838",
+"> c #232323",
+", c #020202",
+"' c #BDBDBD",
+") c #4C4C4C",
+"! c #A6A6A6",
+"~ c #331B5F",
+" ... ",
+" ... . ",
+". ++++ . ",
+".+@#$#++. ... ",
+".+#$$$$#+. . ..",
+" ++$$$$#++++++++",
+"..+$$$$#+#$$#++.",
+" .+$$##@%$$++ &",
+" +**+=$$+. . ",
+" +- . *; . ",
+" -> ",
+" ,' ",
+" +) ",
+" !+ ",
+" ++ ",
+" ~ "};
diff --git a/muse_qt4_evolution/muse/xpm/view_mixer.xpm b/muse_qt4_evolution/muse/xpm/view_mixer.xpm
new file mode 100644
index 00000000..ec64f3c8
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/view_mixer.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char * view_mixer_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #5E2ABF",
+"+ c #945BFD",
+"@ c #FFFFFF",
+"# c #000000",
+"$ c #CACACA",
+"% c #5727B0",
+"................",
+".++++++++++++++.",
+".+@@@@@@@@@@@@+.",
+".+@#@@#@@#@@#@+.",
+".+###@#$###@#$+.",
+".+###$#$###$#$+.",
+".+@#$$#$@#$$#$+.",
+".+@#$@#$@#$###+.",
+".+@#$@#$@#$###%.",
+".+@#$@#$@#$@#$%.",
+".+@#$###@#$@#$+.",
+".+@#$###$#$@#$+.",
+".+@@$@@@$@$@@$+.",
+".+@@@@@@@@@@@@+.",
+".++++++++++++++.",
+"................"};
diff --git a/muse_qt4_evolution/muse/xpm/view_transport_window.xpm b/muse_qt4_evolution/muse/xpm/view_transport_window.xpm
new file mode 100644
index 00000000..fba8696f
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/view_transport_window.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char * view_transport_window_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #575757",
+"+ c #000000",
+"@ c #D4D4D4",
+"# c #D1CFD5",
+" .+. ",
+" .+++. ",
+" .+++.@ ",
+" .+.@@ ",
+" ",
+" ",
+" .+++.@ ",
+" .+++++@ ",
+" .@++++@ ",
+" @++.@@ ",
+" ++ ",
+" .++@@ ",
+" +++@++ ",
+" .+++++.@ ",
+" .++++.@# ",
+" @@@@@@ "};
diff --git a/muse_qt4_evolution/muse/xpm/wave.xpm b/muse_qt4_evolution/muse/xpm/wave.xpm
new file mode 100644
index 00000000..f2a93c66
--- /dev/null
+++ b/muse_qt4_evolution/muse/xpm/wave.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * wave_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #828282",
+"+ c #000000",
+"@ c #7F7F7F",
+"# c #8A8A8A",
+"$ c #4B4B4B",
+"% c #444444",
+"& c #E50000",
+"* c #290000",
+"= c #FF0000",
+"- c #1E0000",
+"; c #F20000",
+"> c #1B0000",
+", c #D50000",
+" ",
+" . ",
+" .+. ",
+" @@ #+@+# ",
+" $++$ +@ @+ ",
+" +@@+ + + @",
+" + + + + %",
+" + + + + +",
+" + + + + +",
+" + + + + +",
+"&*==-&;&>,==+;=+",
+"%+ + + + +",
+"+@ +@ @+ + +",
+"% #+@+# +@@+",
+"@ .+. $++$",
+" . @@ "};
diff --git a/muse_qt4_evolution/packaging/muse_icon.png b/muse_qt4_evolution/packaging/muse_icon.png
new file mode 100644
index 00000000..5a1acb96
--- /dev/null
+++ b/muse_qt4_evolution/packaging/muse_icon.png
Binary files differ
diff --git a/muse_qt4_evolution/packaging/muse_mdk.spec b/muse_qt4_evolution/packaging/muse_mdk.spec
new file mode 100755
index 00000000..1a7a68ff
--- /dev/null
+++ b/muse_qt4_evolution/packaging/muse_mdk.spec
@@ -0,0 +1,274 @@
+%define name muse
+%define museversion 0.7.0pre3
+%define release 1thac
+%define alsa_version 0.9.8
+%define jackit_version 0.93.11
+%define libjack0_version 0.93.11
+%define libsndfile1_version 1.0.5
+%define ladspa_version 1.12
+%define glib2_0_version 2.2.3
+%define qtversion 3.2
+%define dssslver 1.78
+%define musever 0.7.0pre3
+%define musedir 0.7.0pre3
+%define capver 1.0
+%define fluidsynth_version 1.0.3
+%define graphviz_version 1.9.0
+%define jade_version 1.3.1
+%define doxy_version 1.2.17
+%define ladccaver 0.4.0
+
+%define major 0
+%define libname %mklibname %name %major
+
+
+Name: %{name}
+Summary: MusE is a MIDI/Audio sequencer with recording and editing capabilities.
+Version: %{museversion}
+Release: %{release}
+URL: http://muse.sourceforge.net/
+Source0: %{name}-%{musever}.tar.bz2
+Source1: %{name}-ardour-tutorial.tar.bz2
+Group: Sound
+BuildRoot: %{_tmppath}/%{name}-buildroot
+License: GPL
+Requires: libqt3 >= %{qtversion}
+Requires: libsndfile1 >= %{libsndfile1_version}
+Requires: libalsa2 >= %{alsa_version}
+Requires: jackit >= %{jackit_version}
+Requires: libjack0 >= %{libjack0_version}
+BuildRequires: graphviz >= %{graphviz_version}
+BuildRequires: libgraphviz7 >= %{graphviz_version}
+BuildRequires: openjade >= %{jade_version}
+BuildRequires: doxygen >= %{doxy_version}
+BuildRequires: libfluidsynth1 >= %{fluidsynth_version}
+BuildRequires: libfluidsynth1-devel >= %{fluidsynth_version}
+BuildRequires: fluidsynth >= %{fluidsynth_version}
+BuildRequires: libalsa2-devel >= %{alsa_version}
+BuildRequires: docbook-style-dsssl >= %{dssslver}
+BuildRequires: libjack0-devel >= %{libjack0_version}
+BuildRequires: libsndfile1-devel >= %{libsndfile1_version}
+BuildRequires: libgraphviz7-devel >= %{graphviz_version}
+BuildRequires: libcap1-devel >= %{capver}
+BuildRequires: ladcca >= %{ladccaver}
+BuildRequires: docbook-dtd41-sgml
+BuildRequires: libext2fs2-devel
+
+%description
+MusE is a MIDI/Audio sequencer with recording and editing capabilities.
+Some Highlights:
+
+ * standard midifile (smf) import-/export
+ * organizes songs in tracks and parts which you can arrange
+ with the part editor
+ * midi editors: pianoroll, drum, list, controller
+ * score editor with high quality postscript printer output
+ * realtime: editing while playing
+ * unlimited number of open editors
+ * unlimited undo/redo
+ * realtime and step-recording
+ * multiple midi devices
+ * unlimited number of tracks
+ * audio playback/recording
+ * Sync to external devices: MTC/MMC, Midi Clock,
+ Master/Slave (currently only partial implemented)
+ * LADSPA host
+ * ALSA and JACK audio driver
+ * uses raw midi devices (ALSA, OSS & serial ports)
+ * XML project file
+ * project file contains complete app state (session data)
+ * Application spanning Cut/Paste Drag/Drop
+ * uses C++, QT2 GUI Library, STL
+ * GPL Licenced
+
+%package -n %libname
+Summary: Main libraries for %name.
+Group: System/Libraries
+
+%description -n %{libname}
+This package contains the dynamic library of plugins from %name.
+
+%package -n %{libname}-static
+Summary: Static libraries for %name plugins.
+Group: System/Libraries
+
+%description -n %{libname}-static
+This package contains the dynamic library of plugins from %name.
+
+
+Group: Development/C++
+%package -n givertcap
+Summary: Give applications real-time capabilities
+Version: %{capver}
+Group: Sound
+URL: http://www.tml.hut.fi/~tilmonen/givertcap/
+
+%description -n givertcap
+Givertcap is a small Linux application that is used to give other
+application real-time capabilities. With the aid of givertcap you can
+run real-time applications (audio and video -processing apps for
+example) with high priority without running the application as root.
+
+%prep
+rm -rf $RPM_BUILD_ROOT
+
+%setup -n %{name}-%{musever} -a 1
+#perl -p -i -e 's|version="3.2.3"|version="3.1"||g' widgets/*.ui
+
+
+%build
+
+export QTDIR=/usr/lib/qt3
+export KDEDIR=%_prefix
+export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
+export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
+
+%configure2_5x --prefix=%{_prefix} --datadir=%{_datadir} --libdir=%{_libdir} --with-jack \
+ --disable-suid-install --disable-suid-build --enable-patchbay --disable-rtcap \
+ --with-docbook-stylesheets=/usr/share/sgml/docbook/dsssl-stylesheets-%{dssslver} \
+ --enable-arch=i586 --enable-laddca
+# --disable-static --enable-shared --disable-qttest
+
+%make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%makeinstall
+
+mkdir -p $RPM_BUILD_ROOT%_menudir
+
+# (mandrake) menu support
+cat << EOF > %{buildroot}%{_menudir}/%{name}
+?package(%{name}): longtitle="MusE audio editor" \
+command="/usr/bin/muse" title="MusE audio editor" needs="x11" \
+section="Multimedia/Sound" \
+icon="sound_section.png"
+EOF
+
+
+%post
+%update_menus
+/sbin/ldconfig
+
+%postun
+%clean_menus
+ /sbin/ldconfig
+
+%post -n %{libname} -p /sbin/ldconfig
+
+%postun -n %{libname} -p /sbin/ldconfig
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,0755)
+%doc AUTHORS COPYING INSTALL ChangeLog NEWS README* SECURITY
+%doc html
+%{_bindir}/muse
+%{_bindir}/grepmidi
+%{_libdir}/%name
+%{_datadir}/%name
+%{_menudir}/*
+
+%files -n %{libname}
+%defattr(-,root,root)
+%{_libdir}/%name/plugins/*.so*
+%{_libdir}/%name/synthi/*.so*
+
+%files -n %{libname}-static
+%defattr(-,root,root)
+%{_libdir}/%name/plugins/*.la
+%{_libdir}/%name/plugins/*.a
+%{_libdir}/%name/synthi/*.a
+%{_libdir}/%name/synthi/*.la
+
+#%files -n givertcap
+#%attr(4755, root, root)
+#%{_bindir}/givertcap
+
+
+
+%changelog
+* Thu May 27 2004 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.7.0pre3-1thac
+- Updated to latest version
+
+* Wed May 05 2004 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.7.0pre2-1thac
+- Updated to latest version
+
+* Tue Apr 20 2004 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.7.0pre1-1thac
+- Updated to latest version
+
+* Tue Apr 20 2004 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.3-2thac
+- Rebuilt against Mandrake 10.0 official
+
+* Mon Jan 12 2004 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.3-1thac
+- Updated to latest version
+
+* Mon Nov 17 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.2-2thac
+- Rebuilt for jackit-0.9.0
+
+* Fri Nov 07 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.2-1thac
+- Rebuilt for Mandrake 9.2
+
+* Thu Oct 30 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.1-1thac
+- Rebuilt for Mandrake 9.2
+
+* Tue Sep 09 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.1-1thac
+- Added muse-softsynth-fix
+ on muse 0.6.1, it results in a dead lock when muse starts a softsynth
+ without RT. the patch is an adhoc fix for this problem.
+- Added jackit 0.80.0 type patch
+- Changed naming to differ from Mandrake cooker
+
+* Fri Jul 25 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.1-1mdk
+- Updated to 0.6.1 final built against fluidsynth-1.0.2
+- Built with qt-3.1.2 patch
+
+* Sat May 17 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0-1mdk
+- Updated to 0.6.0 final built against fluidsynth-1.0.1
+
+* Sat May 03 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre8.3mdk
+- Rebuilt with rpmmacro patch that removes nvidia dependency.
+
+* Tue Apr 22 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre8.2mdk
+- Rebuilt against latest version of jackit 0.67.2
+
+* Fri Apr 04 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre8.1mdk
+- Updated to latest version
+
+* Wed Mar 26 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre7.2mdk
+- Rebuilt for Mandrake 9.1
+
+* Sun Mar 23 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre7.2mdk
+- Updated to latest version
+- Compiled against jackit-0.62.0 and iiwusynth-0.2.5
+
+* Sun Feb 16 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre5.4mdk
+- Recompiled against jackit-0.51.0.
+
+* Fri Feb 14 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre5.3mdk
+- Recompiled against libsndfile-1.0.4.
+
+* Sat Feb 08 2003 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre5.2mdk
+- Recompiled against jack-0.44,graphviz and i586 optimized.
+
+* Wed Dec 11 2002 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre5.1mdk
+- Removed jack dependency again
+
+* Mon Dec 09 2002 Torbjorn Turpeinen <tobbe@nyvalls.se> 0.6.0pre5mdk
+- Rebuilt for Mandrake 9.0
+
+* Fri Nov 15 2002 Lenny Cartier <lenny@mandrakesoft.com> 0.6.0-0.pre3.2mdk
+- remove jack dependency
+
+* Wed Nov 13 2002 Lenny Cartier <lenny@mandrakesoft.com> 0.6.0-0.pre3.1mdk
+- 0.6.0pre3
+- clean filelist
+- disable-suid-build for now
+- from James Gregory <james@james.id.au> :
+ - fixed file locations to use macros rather than absolute paths
+
+* Thu Oct 3 2002 James Gregory <james@james.id.au> 0.6.0-0.pre2.2mdk
+- First version to build.
diff --git a/muse_qt4_evolution/pch.txt b/muse_qt4_evolution/pch.txt
new file mode 100644
index 00000000..11e9ab5f
--- /dev/null
+++ b/muse_qt4_evolution/pch.txt
@@ -0,0 +1,68 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2007 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all.h
+ COMMAND cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all-pic.h
+ COMMAND cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all-pic.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all.h.pch
+ COMMAND ${CMAKE_CXX_COMPILER}
+ -g -Wextra -fno-exceptions -Wall
+ -I${QT_INCLUDE_DIR}
+ -I${QT_QTCORE_INCLUDE_DIR}
+ -I${QT_QTGUI_INCLUDE_DIR}
+ -o all.h.pch all.h
+ DEPENDS ${PROJECT_BINARY_DIR}/all.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+add_custom_command(
+ OUTPUT ${PROJECT_BINARY_DIR}/all-pic.h.pch
+ COMMAND ${CMAKE_CXX_COMPILER}
+ -fPIC
+ -Dawlplugin_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_XML_LIB
+ -DQT_PLUGIN -DQT_SHARED -DQT_NO_DEBUG
+ -g -Wextra -fno-exceptions -Wall
+ -I${QT_INCLUDE_DIR}
+ -I${QT_QTCORE_INCLUDE_DIR}
+ -I${QT_QTGUI_INCLUDE_DIR}
+ -o all-pic.h.pch all-pic.h
+ DEPENDS ${PROJECT_BINARY_DIR}/all-pic.h
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
+set_source_files_properties(
+ ${PROJECT_BINARY_DIR}/all.h
+ ${PROJECT_BINARY_DIR}/all.h.pch
+ ${PROJECT_BINARY_DIR}/all-pic.h.pch
+ PROPERTIES generated true
+ )
+
diff --git a/muse_qt4_evolution/plugins/CMakeLists.txt b/muse_qt4_evolution/plugins/CMakeLists.txt
new file mode 100644
index 00000000..1293902f
--- /dev/null
+++ b/muse_qt4_evolution/plugins/CMakeLists.txt
@@ -0,0 +1,22 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+subdirs( freeverb doublechorus pandelay )
+
diff --git a/muse_qt4_evolution/plugins/doublechorus/CMakeLists.txt b/muse_qt4_evolution/plugins/doublechorus/CMakeLists.txt
new file mode 100644
index 00000000..ecb6dbe0
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/CMakeLists.txt
@@ -0,0 +1,33 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( doublechorus SHARED
+ doublechorus.cpp doublechorusmodel.cpp simplechorusmodel.cpp
+ )
+
+# tell cmake to name the target doublechorus.so instead of
+# libdoublechorus.so
+#
+set_target_properties (doublechorus
+ PROPERTIES PREFIX ""
+ #COMPILE_FLAGS "-O3"
+ )
+
+install_targets ( /lib/${MusE_INSTALL_NAME}/plugins doublechorus)
diff --git a/muse_qt4_evolution/plugins/doublechorus/doublechorus.cpp b/muse_qt4_evolution/plugins/doublechorus/doublechorus.cpp
new file mode 100644
index 00000000..27d84336
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/doublechorus.cpp
@@ -0,0 +1,173 @@
+//=========================================================
+// DoubleChorus for MusE
+//
+// (C) Copyright 2006 Nil Geisweiller
+//=========================================================
+
+#include "doublechorusmodel.h"
+#include <stdio.h>
+
+//---------------------------------------------------------
+// instantiate doublechorus
+// Construct a new plugin instance.
+//---------------------------------------------------------
+
+LADSPA_Handle instantiate(const LADSPA_Descriptor* /*Descriptor*/,
+ unsigned long samplerate)
+{
+ return new DoubleChorusModel(samplerate);
+}
+
+//---------------------------------------------------------
+// connect PortTo doublechorus
+// Connect a port to a data location.
+//---------------------------------------------------------
+
+void connect(LADSPA_Handle Instance, unsigned long port,
+ LADSPA_Data* data)
+{
+ ((DoubleChorusModel *)Instance)->port[port] = data;
+}
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void activate(LADSPA_Handle instance)
+{
+ ((DoubleChorusModel *)instance)->activate();
+}
+
+//---------------------------------------------------------
+// deactivate
+//---------------------------------------------------------
+
+void deactivate(LADSPA_Handle /*Instance*/)
+{
+}
+
+//---------------------------------------------------------
+// run doublechorus
+//---------------------------------------------------------
+
+void run(LADSPA_Handle Instance, unsigned long n)
+{
+ ((DoubleChorusModel *)Instance)->processReplace(n);
+}
+
+//---------------------------------------------------------
+// runAdding doublechorus
+// *ADD* the output to the output buffer.
+//---------------------------------------------------------
+
+void runAdding(LADSPA_Handle Instance, unsigned long n)
+{
+ ((DoubleChorusModel *)Instance)->processMix(n);
+}
+
+//---------------------------------------------------------
+// set doublechorus RunAddingGain
+//---------------------------------------------------------
+
+void setGain(LADSPA_Handle /*Instance*/, LADSPA_Data /*Gain*/)
+{
+ printf("TEST setGain\n");
+ // ((DoubleChorusModel *)Instance)->m_fRunAddingGain = Gain;
+}
+
+//---------------------------------------------------------
+// cleanup doublechorus
+//---------------------------------------------------------
+
+void cleanup(LADSPA_Handle Instance)
+{
+ delete (DoubleChorusModel *)Instance;
+}
+
+static const char* portNames[] = {
+ "Input (Left)",
+ "Input (Right)",
+ "Output (Left)",
+ "Output (Right)",
+ "Pan 1",
+ "LFOFreq 1",
+ "Depth 1",
+ "Pan 2",
+ "LFOFreq 2",
+ "Depth 2",
+ "Dry/Wet"
+};
+
+LADSPA_PortDescriptor portDescriptors[] = {
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL
+};
+
+LADSPA_PortRangeHint portRangeHints[] = {
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_HIGH, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_HIGH, MINFREQ, MAXFREQ },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_LOW, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_LOW, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_MIDDLE, MINFREQ, MAXFREQ },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_LOW, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MIDDLE, 0.0, 1.0 },
+};
+
+LADSPA_Descriptor descriptor = {
+ 1051,
+ "doublechorus1",
+ LADSPA_PROPERTY_HARD_RT_CAPABLE,
+ "DoubleChorus",
+ "Nil Geisweiller",
+ "GPL",
+ NBRPARAM + 4,
+ portDescriptors,
+ portNames,
+ portRangeHints,
+ 0, // impl. data
+ instantiate,
+ connect,
+ activate,
+ run,
+ runAdding,
+ setGain,
+ deactivate,
+ cleanup
+};
+
+//---------------------------------------------------------
+// _init
+// called automatically when the plugin library is first
+// loaded.
+//---------------------------------------------------------
+void _init() {
+}
+
+//---------------------------------------------------------
+// _fini
+// called automatically when the library is unloaded.
+//---------------------------------------------------------
+void _fini() {
+}
+
+//---------------------------------------------------------
+// ladspa_descriptor
+// Return a descriptor of the requested plugin type.
+//---------------------------------------------------------
+const LADSPA_Descriptor* ladspa_descriptor(unsigned long i) {
+ return (i == 0) ? &descriptor : 0;
+}
+
diff --git a/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.cpp b/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.cpp
new file mode 100644
index 00000000..01def026
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.cpp
@@ -0,0 +1,214 @@
+//===========================================================================
+//
+// doublechorusmodel
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "doublechorusmodel.h"
+
+//---------------------------------------------------------
+// DoubleChorusModel
+//---------------------------------------------------------
+
+DoubleChorusModel::DoubleChorusModel(unsigned long samplerate) {
+ _simpleChorus1 = new SimpleChorusModel((float)samplerate);
+ _simpleChorus2 = new SimpleChorusModel((float)samplerate);
+
+ param[0] = getPan1();
+ param[1] = getLFOFreq1();
+ param[2] = getDepth1();
+ param[3] = getPan2();
+ param[4] = getLFOFreq2();
+ param[5] = getDepth2();
+ param[6] = getDryWet();
+}
+
+DoubleChorusModel::~DoubleChorusModel() {
+ delete(_simpleChorus1);
+ delete(_simpleChorus2);
+}
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void DoubleChorusModel::activate() {
+ *port[4] = param[0];
+ *port[5] = param[1];
+ *port[6] = param[2];
+ *port[7] = param[3];
+ *port[8] = param[4];
+ *port[9] = param[5];
+ *port[10] = param[6];
+}
+
+//---------------------------------------------------------
+// processReplace
+//---------------------------------------------------------
+
+void DoubleChorusModel::processReplace(long n) {
+ float tmpLeftOutput1;
+ float tmpRightOutput1;
+ float tmpLeftOutput2;
+ float tmpRightOutput2;
+ //update parameters
+ if (param[0] != *port[4]) {
+ param[0] = *port[4];
+ setPan1(param[0]);
+ }
+ if (param[1] != *port[5]) {
+ param[1] = *port[5];
+ setLFOFreq1(param[1]);
+ }
+ if (param[2] != *port[6]) {
+ param[2] = *port[6];
+ setDepth1(param[2]);
+ }
+ if (param[3] != *port[7]) {
+ param[3] = *port[7];
+ setPan2(param[3]);
+ }
+ if (param[4] != *port[8]) {
+ param[4] = *port[8];
+ setLFOFreq2(param[4]);
+ }
+ if (param[5] != *port[9]) {
+ param[5] = *port[9];
+ setDepth2(param[5]);
+ }
+ if (param[6] != *port[10]) {
+ param[6] = *port[10];
+ setDryWet(param[6]);
+ }
+ //process the effect
+ for (int i = 0; i < n; ++i) {
+ _simpleChorus1->process_chorus(port[0][i], port[1][i],
+ &tmpLeftOutput1, &tmpRightOutput1);
+ _simpleChorus2->process_chorus(port[0][i], port[1][i],
+ &tmpLeftOutput2, &tmpRightOutput2);
+ port[2][i] = _dryWet * (tmpLeftOutput1 + tmpLeftOutput2)
+ + (1.0 - _dryWet) * port[0][i];
+ port[3][i] = _dryWet * (tmpRightOutput1 + tmpRightOutput2)
+ + (1.0 - _dryWet) * port[1][i];
+ }
+}
+
+void DoubleChorusModel::processMix(long n) {
+ float tmpLeftOutput1;
+ float tmpRightOutput1;
+ float tmpLeftOutput2;
+ float tmpRightOutput2;
+ //update parameters
+ if (param[0] != *port[4]) {
+ param[0] = *port[4];
+ setPan1(param[0]);
+ }
+ if (param[1] != *port[5]) {
+ param[1] = *port[5];
+ setLFOFreq1(param[1]);
+ }
+ if (param[2] != *port[6]) {
+ param[2] = *port[6];
+ setDepth1(param[2]);
+ }
+ if (param[3] != *port[7]) {
+ param[3] = *port[7];
+ setPan2(param[3]);
+ }
+ if (param[4] != *port[8]) {
+ param[4] = *port[8];
+ setLFOFreq2(param[4]);
+ }
+ if (param[5] != *port[9]) {
+ param[5] = *port[9];
+ setDepth2(param[5]);
+ }
+ if (param[6] != *port[10]) {
+ param[6] = *port[10];
+ setDryWet(param[6]);
+ }
+ //process the effect
+ for (int i = 0; i < n; ++i) {
+ _simpleChorus1->process_chorus(port[0][i], port[1][i],
+ &tmpLeftOutput1, &tmpRightOutput1);
+ _simpleChorus2->process_chorus(port[0][i], port[1][i],
+ &tmpLeftOutput2, &tmpRightOutput2);
+ port[2][i] += _dryWet * (tmpLeftOutput1 + tmpLeftOutput2)
+ + (1.0 - _dryWet) * port[0][i];
+ port[3][i] += _dryWet * (tmpRightOutput1 + tmpRightOutput2)
+ + (1.0 - _dryWet) * port[1][i];
+ }
+}
+
+//------------------------------------------------------------------
+// set parameters
+//------------------------------------------------------------------
+void DoubleChorusModel::setPan1(float value) {
+ _simpleChorus1->setPan(value);
+}
+void DoubleChorusModel::setLFOFreq1(float value) {
+ _simpleChorus1->setLFOFreq(value);
+}
+void DoubleChorusModel::setDepth1(float value) {
+ _simpleChorus1->setDepth(value);
+}
+void DoubleChorusModel::setPan2(float value) {
+ _simpleChorus2->setPan(value);
+}
+void DoubleChorusModel::setLFOFreq2(float value) {
+ _simpleChorus2->setLFOFreq(value);
+}
+void DoubleChorusModel::setDepth2(float value) {
+ _simpleChorus2->setDepth(value);
+}
+void DoubleChorusModel::setDryWet(float value) {
+ _dryWet = value;
+}
+
+//----------------------------------------------------------------
+// get parameters
+//----------------------------------------------------------------
+float DoubleChorusModel::getPan1() {
+ return _simpleChorus1->getPan();
+}
+float DoubleChorusModel::getLFOFreq1() {
+ return _simpleChorus1->getLFOFreq();
+}
+float DoubleChorusModel::getDepth1() {
+ return _simpleChorus1->getDepth();
+}
+float DoubleChorusModel::getPan2() {
+ return _simpleChorus2->getPan();
+}
+float DoubleChorusModel::getLFOFreq2() {
+ return _simpleChorus2->getLFOFreq();
+}
+float DoubleChorusModel::getDepth2() {
+ return _simpleChorus2->getDepth();
+}
+float DoubleChorusModel::getDryWet() {
+ return _dryWet;
+}
diff --git a/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.h b/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.h
new file mode 100644
index 00000000..40ce9f3f
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/doublechorusmodel.h
@@ -0,0 +1,72 @@
+//===========================================================================
+//
+// doublechorusmodel
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __DOUBLECHORUSMODEL_H
+#define __DOUBLECHORUSMODEL_H
+
+#include "simplechorusmodel.h"
+#include "../../muse/ladspa.h"
+
+#define NBRPARAM 7
+
+class SimpleChorusModel;
+
+class DoubleChorusModel {
+ SimpleChorusModel* _simpleChorus1;
+ SimpleChorusModel* _simpleChorus2;
+
+ float _dryWet; //0.0 : dry, 1.0 : wet
+
+ public:
+ LADSPA_Data* port[NBRPARAM + 4];
+ float param[NBRPARAM];
+
+ DoubleChorusModel(unsigned long samplerate);
+ ~DoubleChorusModel();
+ void processMix(long numsamples);
+ void processReplace(long numsamples);
+ void setPan1(float value);
+ void setLFOFreq1(float value);
+ void setDepth1(float value);
+ void setPan2(float value);
+ void setLFOFreq2(float value);
+ void setDepth2(float value);
+ void setDryWet(float value);
+ float getPan1();
+ float getLFOFreq1();
+ float getDepth1();
+ float getPan2();
+ float getLFOFreq2();
+ float getDepth2();
+ float getDryWet();
+
+ void activate();
+};
+
+#endif
diff --git a/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.cpp b/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.cpp
new file mode 100644
index 00000000..72015465
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.cpp
@@ -0,0 +1,157 @@
+//===========================================================================
+//
+// simplechorus
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "simplechorusmodel.h"
+#include <math.h>
+#include <stdio.h>
+
+#define ABS(x) (x>=0?x:-x)
+
+// Linearly interpolate [ = a * (1 - f) + b * f]
+inline float lin_interp(float f, float a, float b) {
+ return a + f * (b - a);
+}
+
+// Cubic interpolation function
+inline float cube_interp(const float fr,
+ const float inm1,
+ const float in,
+ const float inp1,
+ const float inp2) {
+ return in + 0.5f * fr * (inp1 - inm1 +
+ fr * (4.0f * inp1 + 2.0f * inm1 - 5.0f * in - inp2 +
+ fr * (3.0f * (in - inp1) - inm1 + inp2)));
+}
+
+float SimpleChorusModel::sinus[MAXSINUSRESOLUTION];
+int SimpleChorusModel::useCount = 0;
+
+SimpleChorusModel::SimpleChorusModel(float samplerate) {
+ _sampleRate = samplerate;
+ //sinus
+ if (useCount++ == 0)
+ for(int i = 0; i < MAXSINUSRESOLUTION; i++)
+ sinus[i] = (float)(sin(((double)i * 2.0 * M_PI) /
+ (double)MAXSINUSRESOLUTION));
+ _index = 0.0;
+ //init buffer
+ for(int i = 0; i < MAXBUFFERLENGTH; i++) {
+ _leftBuffer[i] = 0.0;
+ _rightBuffer[i] = 0.0;
+ }
+ _position = 0;
+ //initial parameters
+ _pan = 0.5;
+ _LFOFreq = 1.0;
+ _depth = 0.5;
+ setChorus();
+}
+
+SimpleChorusModel::~SimpleChorusModel() {
+}
+
+void SimpleChorusModel::process_chorus(float leftInput, float rightInput,
+ float* leftOutput, float* rightOutput) {
+ float ocsDiff;
+
+ _ocsDistance = _depthAmp * sinus[(int)_index];
+
+ ocsDiff = _ocsDistance - floorf(_ocsDistance);
+
+ _past_position_left = MAXBUFFERLENGTH //to be sure that _past_position_left>0
+ + _position - _leftMidDistance + (int)_ocsDistance;
+ _past_position_right = MAXBUFFERLENGTH
+ + _position - _rightMidDistance + (int)_ocsDistance;
+
+ *leftOutput = _leftAmp *
+ lin_interp(ocsDiff, _leftBuffer[_past_position_left%MAXBUFFERLENGTH],
+ _leftBuffer[(_past_position_left+1)%MAXBUFFERLENGTH]);
+ *rightOutput = _rightAmp *
+ lin_interp(ocsDiff, _rightBuffer[_past_position_right%MAXBUFFERLENGTH],
+ _rightBuffer[(_past_position_right+1)%MAXBUFFERLENGTH]);
+
+ _leftBuffer[_position] = leftInput;
+ _rightBuffer[_position] = rightInput;
+
+ _position++;
+ _position %= MAXBUFFERLENGTH;
+
+ _index += _inct;
+ _index = (_index<MAXSINUSRESOLUTION?_index:_index-MAXSINUSRESOLUTION);
+}
+
+void SimpleChorusModel::setPan(float p) {
+ _pan = p;
+ setChorus();
+}
+void SimpleChorusModel::setLFOFreq(float l) {
+ _LFOFreq = l;
+ setChorus();
+}
+void SimpleChorusModel::setDepth(float d) {
+ _depth = d;
+ setChorus();
+}
+void SimpleChorusModel::setSampleRate(float s) {
+ _sampleRate = s;
+ setChorus();
+}
+
+float SimpleChorusModel::getPan() {
+ return _pan;
+}
+float SimpleChorusModel::getLFOFreq() {
+ return _LFOFreq;
+}
+float SimpleChorusModel::getDepth() {
+ return _depth;
+}
+
+void SimpleChorusModel::setChorus() {
+ //inct
+ _inct = (float)MAXSINUSRESOLUTION/_sampleRate * _LFOFreq;
+ //left & right amp
+ _leftAmp = lin_interp(1.0 - _pan, 1.0 - PANAMP, 1.0 + PANAMP);
+ _rightAmp = lin_interp(_pan, 1.0 - PANAMP, 1.0 + PANAMP);
+ //left & right midDistance
+ float leftmdm; //left mid distance in meter
+ float rightmdm; //right mid distance in meter
+ leftmdm = MIDSOURCEDISTANCE - EARSDISTANCE * (0.5 - _pan);
+ rightmdm = MIDSOURCEDISTANCE + EARSDISTANCE * (0.5 - _pan);
+
+ _leftMidDistance = (int)(_sampleRate * leftmdm / SOUNDSPEED);
+ _rightMidDistance = (int)(_sampleRate * rightmdm / SOUNDSPEED);
+
+ //depthAmp
+ _depthAmp =
+ _sampleRate * (MAXDEPTH * _depth) /SOUNDSPEED;
+ //filter coef
+ _filterCoef1 = 1 - COEFFILTER;
+ _filterCoef2 = COEFFILTER;
+}
diff --git a/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.h b/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.h
new file mode 100644
index 00000000..797e7030
--- /dev/null
+++ b/muse_qt4_evolution/plugins/doublechorus/simplechorusmodel.h
@@ -0,0 +1,96 @@
+//===========================================================================
+//
+// simplechorus
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __SIMPLECHORUSMODEL_H
+#define __SIMPLECHORUSMODEL_H
+
+#define MAXBUFFERLENGTH 192000
+#define MAXSINUSRESOLUTION 192000
+#define MINFREQ 0.05 //in Hz
+#define MAXFREQ 5.0 //in Hz
+#define EARSDISTANCE 0.12 //in meter
+#define MIDSOURCEDISTANCE 2.0 //in meter
+#define MAXDEPTH 1.0 //in meter, radius
+#define SOUNDSPEED 330.0 //in meter per second
+#define MINDELAYSEC 0.01 //in second
+#define MAXDELAYSEC 1.0 //in second
+#define COEFFILTER 0.97576 //0.26795
+#define PANAMP 0.75
+//with cutoff = samplerate/256
+//following (2-cos(x)) - sqrt((2-cos(x))^2 - 1) with x = 2*pi*cutoff/samplerate
+//#define M_PI 3.14159265358979
+
+class SimpleChorusModel {
+ private :
+ //parameters
+ float _pan;
+ float _LFOFreq;
+ float _depth;
+ //parameter state
+ float _sampleRate;
+ float _depthAmp;
+ float _leftAmp;
+ float _rightAmp;
+ float _filterCoef1;
+ float _filterCoef2;
+ int _leftMidDistance; //distance of the left micro in samples
+ int _rightMidDistance; //distance of the right micro in samples
+ //state
+ float _inct;
+ float _index; //time at the scale of sampleRate
+ float _leftBuffer[MAXBUFFERLENGTH];
+ float _rightBuffer[MAXBUFFERLENGTH];
+ float _ocsDistance; //in sample, distance of the micro with initial position
+ int _past_position_left;
+ int _past_position_right;
+ int _position;
+ public :
+ static int useCount;
+ static float sinus[MAXSINUSRESOLUTION];
+
+
+ void process_chorus(float leftInput, float rightInput,
+ float* leftOutput, float* rightOutput);
+
+ void setPan(float);
+ void setLFOFreq(float);
+ void setDepth(float);
+ void setSampleRate(float);
+ float getPan();
+ float getLFOFreq();
+ float getDepth();
+
+ void setChorus();
+
+ SimpleChorusModel(float samplerate);
+ ~SimpleChorusModel();
+
+};
+
+#endif
diff --git a/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt b/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt
new file mode 100644
index 00000000..0a86454f
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt
@@ -0,0 +1,33 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( freeverb SHARED
+ freeverb.cpp revmodel.cpp
+ )
+
+# tell cmake to name the target freeverb.so instead of
+# libfreeverb.so
+#
+set_target_properties (freeverb
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-O2"
+ )
+
+install_targets ( /lib/${MusE_INSTALL_NAME}/plugins freeverb)
diff --git a/muse_qt4_evolution/plugins/freeverb/allpass.h b/muse_qt4_evolution/plugins/freeverb/allpass.h
new file mode 100644
index 00000000..2f27691e
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/allpass.h
@@ -0,0 +1,47 @@
+// Allpass filter declaration
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// This code is public domain
+
+#ifndef _allpass_
+#define _allpass_
+#include "denormals.h"
+
+//---------------------------------------------------------
+// allpass
+//---------------------------------------------------------
+
+class allpass
+ {
+ float feedback;
+ float *buffer;
+ int bufsize;
+ int bufidx;
+
+ public:
+ allpass() { bufidx = 0; }
+ void setbuffer(float *buf, int size) {
+ buffer = buf;
+ bufsize = size;
+ }
+ float process(float input) {
+ float bufout = buffer[bufidx];
+ undenormalise(bufout);
+ float output = -input + bufout;
+ buffer[bufidx] = input + (bufout*feedback);
+ if (++bufidx >= bufsize)
+ bufidx = 0;
+// bufidx = ++bufidx % bufsize;
+ return output;
+ }
+ void mute() {
+ for (int i=0; i<bufsize; i++)
+ buffer[i]=0;
+ }
+ void setfeedback(float val) { feedback = val; }
+ float getfeedback() { return feedback; }
+ };
+
+
+#endif//_allpass
diff --git a/muse_qt4_evolution/plugins/freeverb/comb.h b/muse_qt4_evolution/plugins/freeverb/comb.h
new file mode 100644
index 00000000..22f5591b
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/comb.h
@@ -0,0 +1,63 @@
+// Comb filter class declaration
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// This code is public domain
+
+#ifndef _comb_
+#define _comb_
+
+#include "denormals.h"
+
+
+//---------------------------------------------------------
+// comb
+//---------------------------------------------------------
+
+class comb
+ {
+ float feedback;
+ float filterstore;
+ float damp1;
+ float damp2;
+ float *buffer;
+ int bufsize;
+ int bufidx;
+
+public:
+ comb() {
+ filterstore = 0;
+ bufidx = 0;
+ }
+ void setbuffer(float *buf, int size) {
+ buffer = buf;
+ bufsize = size;
+ }
+ float process(float input) {
+ float output = buffer[bufidx];
+ undenormalise(output);
+ filterstore = (output*damp2) + (filterstore*damp1);
+ undenormalise(filterstore);
+ buffer[bufidx] = input + (filterstore*feedback);
+ if (++bufidx >= bufsize)
+ bufidx = 0;
+// bufidx = ++bufidx % bufsize;
+ return output;
+ }
+ void mute() {
+ for (int i=0; i<bufsize; i++)
+ buffer[i]=0;
+ }
+ void setdamp(float val) {
+ damp1 = val;
+ damp2 = 1-val;
+ }
+ float getdamp() { return damp1; }
+ void setfeedback(float val) { feedback = val; }
+ float getfeedback() { return feedback; }
+ };
+
+
+#endif //_comb_
+
+//ends
diff --git a/muse_qt4_evolution/plugins/freeverb/denormals.h b/muse_qt4_evolution/plugins/freeverb/denormals.h
new file mode 100644
index 00000000..37d3ed27
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/denormals.h
@@ -0,0 +1,38 @@
+// Macro for killing denormalled numbers
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// Based on IS_DENORMAL macro by Jon Watte
+// This code is public domain
+
+#ifndef _denormals_
+#define _denormals_
+
+// this does not work with at least gcc3.3 and -O2:
+// #define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f
+//
+// from Laurent de Soras Paper: Denormal numbers in floating point
+// signal processing applications
+// (ws)
+
+#if 0
+#define undenormalise(sample) \
+ { \
+ float anti_denormal = 1e-18; \
+ sample += anti_denormal; \
+ sample -= anti_denormal; \
+ }
+#endif
+
+// from beast-0.7.2 (Tim Janik/Stefan Westerfeld):
+
+#define undenormalise(sample) \
+ do { \
+ volatile float __forced_float = 1e-29 + sample; \
+ sample = __forced_float - 1e-29; \
+ } while (0)
+
+#endif//_denormals_
+
+//ends
+
diff --git a/muse_qt4_evolution/plugins/freeverb/freeverb.cpp b/muse_qt4_evolution/plugins/freeverb/freeverb.cpp
new file mode 100644
index 00000000..0385e887
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/freeverb.cpp
@@ -0,0 +1,166 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: freeverb.cpp,v 1.1.1.1 2003/10/27 18:57:03 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "revmodel.h"
+
+//---------------------------------------------------------
+// instantiateFreeverb
+// Construct a new plugin instance.
+//---------------------------------------------------------
+
+LADSPA_Handle instantiate(const LADSPA_Descriptor* /*Descriptor*/,
+ unsigned long /* samplerate*/)
+ {
+ return new Revmodel;
+ }
+
+//---------------------------------------------------------
+// connectPortToFreeverb
+// Connect a port to a data location.
+//---------------------------------------------------------
+
+void connect(LADSPA_Handle Instance, unsigned long port,
+ LADSPA_Data* data)
+ {
+ ((Revmodel *)Instance)->port[port] = data;
+ }
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void activate(LADSPA_Handle instance)
+ {
+ ((Revmodel *)instance)->activate();
+ }
+
+//---------------------------------------------------------
+// deactivate
+//---------------------------------------------------------
+
+void deactivate(LADSPA_Handle /*Instance*/)
+ {
+ }
+
+//---------------------------------------------------------
+// runFreeverb
+//---------------------------------------------------------
+
+void run(LADSPA_Handle Instance, unsigned long n)
+ {
+ ((Revmodel*)Instance)->processreplace(n);
+ }
+
+//---------------------------------------------------------
+// runAddingFreeverb
+// *ADD* the output to the output buffer.
+//---------------------------------------------------------
+
+void runAdding(LADSPA_Handle Instance, unsigned long n)
+ {
+ ((Revmodel*)Instance)->processmix(n);
+ }
+
+//---------------------------------------------------------
+// setFreeverbRunAddingGain
+//---------------------------------------------------------
+
+void setGain(LADSPA_Handle /*Instance*/, LADSPA_Data /*Gain*/)
+ {
+// ((Freeverb *)Instance)->m_fRunAddingGain = Gain;
+ }
+
+//---------------------------------------------------------
+// cleanupFreeverb
+//---------------------------------------------------------
+
+void cleanup(LADSPA_Handle Instance)
+ {
+ delete (Revmodel *)Instance;
+ }
+
+static const char* portNames[] = {
+ "Input (Left)",
+ "Input (Right)",
+ "Output (Left)",
+ "Output (Right)",
+ "Room Size",
+ "Damping",
+ "Wet Level",
+ };
+
+LADSPA_PortDescriptor portDescriptors[] = {
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ };
+
+LADSPA_PortRangeHint portRangeHints[] = {
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC, 0.0, 1.0 },
+ };
+
+LADSPA_Descriptor descriptor = {
+ 1050,
+ "freeverb1",
+ LADSPA_PROPERTY_HARD_RT_CAPABLE,
+ "Freeverb",
+ "Werner Schweer",
+ "None",
+ 7,
+ portDescriptors,
+ portNames,
+ portRangeHints,
+ 0, // impl. data
+ instantiate,
+ connect,
+ activate,
+ run,
+ runAdding,
+ setGain,
+ deactivate,
+ cleanup
+ };
+
+//---------------------------------------------------------
+// _init
+// called automatically when the plugin library is first
+// loaded.
+//---------------------------------------------------------
+
+void _init()
+ {
+ }
+
+//---------------------------------------------------------
+// _fini
+// called automatically when the library is unloaded.
+//---------------------------------------------------------
+
+void _fini()
+ {
+ }
+
+//---------------------------------------------------------
+// ladspa_descriptor
+// Return a descriptor of the requested plugin type.
+//---------------------------------------------------------
+
+const LADSPA_Descriptor* ladspa_descriptor(unsigned long i)
+ {
+ return (i == 0) ? &descriptor : 0;
+ }
+
diff --git a/muse_qt4_evolution/plugins/freeverb/readme.txt b/muse_qt4_evolution/plugins/freeverb/readme.txt
new file mode 100644
index 00000000..2c1349a3
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/readme.txt
@@ -0,0 +1,147 @@
+readme from original freeverb-source:
+==============================================
+
+
+Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
+-----------------------------------------------------------------------
+
+Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
+
+
+Introduction
+------------
+
+Hello.
+
+I'll try to keep this "readme" reasonably small.
+There are few things in the world that I hate more than long "readme" files.
+Except "coding conventions" - but more on that later...
+
+In this zip file you will find two folders of C++ source code:
+
+"Components" - Contains files that should clean-compile
+ ON ANY TYPE OF COMPUTER OR SYSTEM WHATSOEVER. It should not be necessary
+ to make ANY changes to these files to get them to compile, except to make
+ up for inadequacies of certain compilers. These files create three classes
+ - a comb filter, an allpass filter, and a reverb model made up of a number
+ of instances of the filters, with some features to control the filters at
+ a macro level. You will need to link these classes into another program that
+ interfaces with them. The files in the components drawer are completely
+ independant, and can be built without dependancies on anything else.
+ Because of the simple interface, it should be possible to interface
+ these files to any system - VST, DirectX, anything - without changing
+ them AT ALL.
+
+"FreeverbVST" - Contains a Steinberg VST implementation of this version of
+ Freeverb, using the components in (surprise) the components folder.
+ It was built on a PC but may compile properly for the Macintosh with
+ no problems. I don't know - I don't have a Macintosh. If you've
+ figured out how to compile the examples in the Steinberg VST
+ Development Kit, then you should easilly figure out how to bring the
+ files into a project and get it working in a few minutes. It should
+ be very simple.
+
+Note that this version of Freeverb doesn't contain predelay, or any EQ.
+I thought that might make it difficult to understand the "reverb" part of
+the code. Once you figure out how Freeverb works, you should find it trivial
+to add such features with little CPU overhead.
+
+Also, the code in this version of Freeverb has been optimised. This has changed
+the sound *slightly*, but not significantly compared to how much processing
+power it saves.
+
+Finally, note that there is also a built copy of this version of Freeverb called
+"Freeverb3.dll" - this is a VST plugin for the PC. If you want a version for
+the Mac or anything else, then you'll need to build it yourself from the code.
+
+
+Technical Explanation
+---------------------
+
+Freeverb is a simple implementation of the standard Schroeder/Moorer reverb
+model. I guess the only reason why it sounds better than other reverbs,
+is simply because I spent a long while doing listening tests in order to create
+the values found in "tuning.h". It uses 8 comb filters on both the left and right
+channels), and you might possibly be able to get away with less if CPU power
+is a serious constraint for you. It then feeds the result of the reverb through
+4 allpass filters on both the left and right channels. These "smooth" the sound.
+Adding more than four allpasses doesn't seem to add anything significant
+to the sound, and if you use less, the sound gets a bit "grainy".
+The filters on the right channel are slightly detuned compared to the left channel
+in order to create a stereo effect.
+
+Hopefully, you should find the code in the components drawer a model of
+brevity and clarity. Notice that I don't use any "coding conventions".
+Personally, I think that coding conventions suck. They are meant to make
+the code "clearer", but they inevitably do the complete opposite, making
+the code completely unfathomable. Anyone whose done Windows programming
+with its - frankly stupid - "Hungarian notation" will know exactly what
+I mean. Coding conventions typically promote issues that are irrelevant
+up to the status of appearing supremely important. It may have helped back
+people in the days when compilers where somewhat feeble in their type-safety,
+but not in the new millenium with advanced C++ compilers.
+
+Imagine if we rewrote the English language to conform to coding conventions.
+After all, The arguments should be just as valid for the English language as
+they are for a computer language. For example, we could put a lower-case "n"
+in front of every noun, a lower-case "p" in front of a persons name,
+a lower-case "v" in front of every verb, and a lower-case "a" in front
+of every adjective. Can you imagine what the English language would look like?
+All in the name of "clarity". It's just as stupid to do this for computer
+code as it would be to do it for the English language. I hope that the
+code for Freeverb in the components drawer demonstrates this, and helps start
+a movement back towards sanity in coding practices.
+
+
+Background
+----------
+
+Why is the Freeverb code now public domain? Simple. I only intended to create
+Freeverb to provide me and my friends with studio-quality reverb for free.
+I never intended to make any money out of it. However, I simply do not have the
+time to develop it any further. I'm working on a "concept album" at the moment,
+and I'll never finish it if I spend any more time programming.
+
+In any case, I make more far money as a contract programmer - making Mobile
+Internet products - than I ever could writing plugins, so it simply doesn't
+make financial sense for me to spend any more time on it.
+
+Rather than give Freeverb to any particular individual or organisation
+to profit from it, I've decided to give it away to the internet community
+at large, so that quality, FREE (or at the very least, low-cost) reverbs can
+be developed for all platforms.
+
+Feel free to use the source code for Freeverb in any of your own products,
+whether they are also available for free, or even if they are commercial -
+I really don't mind. You may do with the code whatever you wish. If you use
+it in a product (whether commercial or not), it would be very nice of you,
+if you were to send me a copy of your product - although I appreciate that
+this isn't always possible in all circumstances.
+
+HOWEVER, please don't bug me with questions about how to use this code.
+I gave away Freeverb because I don't have time to maintain it. That means
+I *certainly* don't have time to answer questions about the source code, so
+please don't email questions to me. I *will* ignore them. If you can't figure
+the code for Freeverb out - then find somebody who can. I hope that either
+way, you enjoy experimenting with it.
+
+
+Disclaimer
+----------
+
+This software and source code is given away for free, without any warranties
+of any kind. It has been given away to the internet community as a free gift,
+so please treat it in the same spirit.
+
+
+I hope this code is useful and interesting to you all!
+I hope you have lots of fun experimenting with it and make good products!
+
+Very best regards,
+Jezar.
+Technology Consultant
+Dreampoint Design and Engineering
+http://www.dreampoint.co.uk
+
+
+//ends
diff --git a/muse_qt4_evolution/plugins/freeverb/revmodel.cpp b/muse_qt4_evolution/plugins/freeverb/revmodel.cpp
new file mode 100644
index 00000000..c72ee22b
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/revmodel.cpp
@@ -0,0 +1,232 @@
+// Reverb model implementation
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// This code is public domain
+
+#include <stdio.h>
+#include "revmodel.h"
+
+//---------------------------------------------------------
+// Revmodel
+//---------------------------------------------------------
+
+Revmodel::Revmodel()
+ {
+ // Tie the components to their buffers
+ combL[0].setbuffer(bufcombL1,combtuningL1);
+ combR[0].setbuffer(bufcombR1,combtuningR1);
+ combL[1].setbuffer(bufcombL2,combtuningL2);
+ combR[1].setbuffer(bufcombR2,combtuningR2);
+ combL[2].setbuffer(bufcombL3,combtuningL3);
+ combR[2].setbuffer(bufcombR3,combtuningR3);
+ combL[3].setbuffer(bufcombL4,combtuningL4);
+ combR[3].setbuffer(bufcombR4,combtuningR4);
+ combL[4].setbuffer(bufcombL5,combtuningL5);
+ combR[4].setbuffer(bufcombR5,combtuningR5);
+ combL[5].setbuffer(bufcombL6,combtuningL6);
+ combR[5].setbuffer(bufcombR6,combtuningR6);
+ combL[6].setbuffer(bufcombL7,combtuningL7);
+ combR[6].setbuffer(bufcombR7,combtuningR7);
+ combL[7].setbuffer(bufcombL8,combtuningL8);
+ combR[7].setbuffer(bufcombR8,combtuningR8);
+ allpassL[0].setbuffer(bufallpassL1,allpasstuningL1);
+ allpassR[0].setbuffer(bufallpassR1,allpasstuningR1);
+ allpassL[1].setbuffer(bufallpassL2,allpasstuningL2);
+ allpassR[1].setbuffer(bufallpassR2,allpasstuningR2);
+ allpassL[2].setbuffer(bufallpassL3,allpasstuningL3);
+ allpassR[2].setbuffer(bufallpassR3,allpasstuningR3);
+ allpassL[3].setbuffer(bufallpassL4,allpasstuningL4);
+ allpassR[3].setbuffer(bufallpassR4,allpasstuningR4);
+
+ // Set default values
+ allpassL[0].setfeedback(0.5f);
+ allpassR[0].setfeedback(0.5f);
+ allpassL[1].setfeedback(0.5f);
+ allpassR[1].setfeedback(0.5f);
+ allpassL[2].setfeedback(0.5f);
+ allpassR[2].setfeedback(0.5f);
+ allpassL[3].setfeedback(0.5f);
+ allpassR[3].setfeedback(0.5f);
+
+ param[0] = initialroom;
+ param[1] = initialdamp;
+ param[2] = initialwet;
+
+ setroomsize(initialroom);
+ setdamp(initialdamp);
+ setwidth(initialwidth);
+ setmode(initialmode);
+
+ // Buffer will be full of rubbish - so we MUST mute them
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].mute();
+ combR[i].mute();
+ }
+ for (int i=0;i<numallpasses;i++) {
+ allpassL[i].mute();
+ allpassR[i].mute();
+ }
+ }
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void Revmodel::activate()
+ {
+ *port[4] = param[0];
+ *port[5] = param[1];
+ *port[6] = param[2];
+ }
+
+//---------------------------------------------------------
+// processreplace
+//---------------------------------------------------------
+
+void Revmodel::processreplace(long n)
+ {
+ if (param[0] != *port[4]) {
+ param[0] = *port[4];
+ setroomsize(param[0]);
+ }
+ if (param[1] != *port[5]) {
+ param[1] = *port[5];
+ setdamp(param[1]);
+ }
+
+ float wet = (1.0f - *port[6]) * scalewet;
+ float dry = *port[6] * scaledry;
+ float wet1 = wet * (width/2 + 0.5f);
+ float wet2 = wet * ((1-width)/2);
+
+ for (int i = 0; i < n; ++i) {
+ float outL = 0;
+ float outR = 0;
+ float input = (port[0][i] + port[1][i]) * gain;
+
+ // Accumulate comb filters in parallel
+ for (int k = 0; k < numcombs; k++) {
+ outL += combL[k].process(input);
+ outR += combR[k].process(input);
+ }
+
+ // Feed through allpasses in series
+ for (int k=0; k < numallpasses; k++) {
+ outL = allpassL[k].process(outL);
+ outR = allpassR[k].process(outR);
+ }
+
+ // Calculate output REPLACING anything already there
+ port[2][i] = outL*wet1 + outR*wet2 + port[0][i]*dry;
+ port[3][i] = outR*wet1 + outL*wet2 + port[1][i]*dry;
+ }
+ }
+
+void Revmodel::processmix(long n)
+ {
+ if (param[0] != *port[4]) {
+ param[0] = *port[4];
+ setroomsize(param[0]);
+ }
+ if (param[1] != *port[5]) {
+ param[1] = *port[5];
+ setdamp(param[1]);
+ }
+
+ float wet = (1.0f - *port[6]) * scalewet;
+ float dry = *port[6] * scaledry;
+ float wet1 = wet * (width/2 + 0.5f);
+ float wet2 = wet * ((1-width)/2);
+
+ for (int i = 0; i < n; ++i) {
+ float outL = 0;
+ float outR = 0;
+ float input = (port[0][i] + port[1][i]) * gain;
+
+ // Accumulate comb filters in parallel
+ for (int k = 0; k < numcombs; k++) {
+ outL += combL[k].process(input);
+ outR += combR[k].process(input);
+ }
+
+ // Feed through allpasses in series
+ for (int k=0; k < numallpasses; k++) {
+ outL = allpassL[k].process(outL);
+ outR = allpassR[k].process(outR);
+ }
+
+ // Calculate output REPLACING anything already there
+ port[2][i] += outL*wet1 + outR*wet2 + port[0][i]*dry;
+ port[3][i] += outR*wet1 + outL*wet2 + port[1][i]*dry;
+ }
+ }
+
+//---------------------------------------------------------
+// update
+// Recalculate internal values after parameter change
+//---------------------------------------------------------
+
+void Revmodel::update()
+ {
+ if (mode >= freezemode) {
+ roomsize1 = 1;
+ damp1 = 0;
+ gain = muted;
+ }
+ else {
+ roomsize1 = roomsize;
+ damp1 = damp;
+ gain = fixedgain;
+ }
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].setfeedback(roomsize1);
+ combR[i].setfeedback(roomsize1);
+ }
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].setdamp(damp1);
+ combR[i].setdamp(damp1);
+ }
+ }
+
+// The following get/set functions are not inlined, because
+// speed is never an issue when calling them, and also
+// because as you develop the reverb model, you may
+// wish to take dynamic action when they are called.
+
+void Revmodel::setroomsize(float value)
+ {
+ roomsize = (value*scaleroom) + offsetroom;
+ update();
+ }
+
+float Revmodel::getroomsize()
+ {
+ return (roomsize-offsetroom)/scaleroom;
+ }
+
+void Revmodel::setdamp(float value)
+ {
+ damp = value*scaledamp;
+ update();
+ }
+
+void Revmodel::setwidth(float value)
+ {
+ width = value;
+ update();
+ }
+
+void Revmodel::setmode(float value)
+ {
+ mode = value;
+ update();
+ }
+
+float Revmodel::getmode()
+ {
+ return (mode >= freezemode) ? 1 : 0;
+ }
diff --git a/muse_qt4_evolution/plugins/freeverb/revmodel.h b/muse_qt4_evolution/plugins/freeverb/revmodel.h
new file mode 100644
index 00000000..bfa1f0b3
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/revmodel.h
@@ -0,0 +1,79 @@
+// Reverb model declaration
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// This code is public domain
+
+#ifndef _revmodel_
+#define _revmodel_
+
+#include "comb.h"
+#include "allpass.h"
+#include "tuning.h"
+#include "../../muse/ladspa.h"
+
+//---------------------------------------------------------
+// Revmodel
+//---------------------------------------------------------
+
+class Revmodel {
+ float gain;
+ float roomsize,roomsize1;
+ float damp,damp1;
+ float width;
+ float mode;
+
+ // Comb filters
+ comb combL[numcombs];
+ comb combR[numcombs];
+
+ // Allpass filters
+ allpass allpassL[numallpasses];
+ allpass allpassR[numallpasses];
+
+ // Buffers for the combs
+ float bufcombL1[combtuningL1];
+ float bufcombR1[combtuningR1];
+ float bufcombL2[combtuningL2];
+ float bufcombR2[combtuningR2];
+ float bufcombL3[combtuningL3];
+ float bufcombR3[combtuningR3];
+ float bufcombL4[combtuningL4];
+ float bufcombR4[combtuningR4];
+ float bufcombL5[combtuningL5];
+ float bufcombR5[combtuningR5];
+ float bufcombL6[combtuningL6];
+ float bufcombR6[combtuningR6];
+ float bufcombL7[combtuningL7];
+ float bufcombR7[combtuningR7];
+ float bufcombL8[combtuningL8];
+ float bufcombR8[combtuningR8];
+
+ // Buffers for the allpasses
+ float bufallpassL1[allpasstuningL1];
+ float bufallpassR1[allpasstuningR1];
+ float bufallpassL2[allpasstuningL2];
+ float bufallpassR2[allpasstuningR2];
+ float bufallpassL3[allpasstuningL3];
+ float bufallpassR3[allpasstuningR3];
+ float bufallpassL4[allpasstuningL4];
+ float bufallpassR4[allpasstuningR4];
+ void update();
+
+ public:
+ LADSPA_Data* port[7];
+ float param[3];
+
+ Revmodel();
+ void processmix(long numsamples);
+ void processreplace(long numsamples);
+ void setroomsize(float value);
+ float getroomsize();
+ void setdamp(float value);
+ void setwidth(float value);
+ void setmode(float value);
+ float getmode();
+ void activate();
+ };
+
+#endif
diff --git a/muse_qt4_evolution/plugins/freeverb/tuning.h b/muse_qt4_evolution/plugins/freeverb/tuning.h
new file mode 100644
index 00000000..ced89252
--- /dev/null
+++ b/muse_qt4_evolution/plugins/freeverb/tuning.h
@@ -0,0 +1,60 @@
+// Reverb model tuning values
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// This code is public domain
+
+#ifndef _tuning_
+#define _tuning_
+
+const int numcombs = 8;
+const int numallpasses = 4;
+const float muted = 0;
+const float fixedgain = 0.015f;
+const float scalewet = 3;
+const float scaledry = 2;
+const float scaledamp = 0.4f;
+const float scaleroom = 0.28f;
+const float offsetroom = 0.7f;
+const float initialroom = 0.5f;
+const float initialdamp = 0.5f;
+const float initialwet = 1/scalewet;
+const float initialdry = 0;
+const float initialwidth = 1;
+const float initialmode = 0;
+const float freezemode = 0.5f;
+const int stereospread = 23;
+
+// These values assume 44.1KHz sample rate
+// they will probably be OK for 48KHz sample rate
+// but would need scaling for 96KHz (or other) sample rates.
+// The values were obtained by listening tests.
+const int combtuningL1 = 1116;
+const int combtuningR1 = 1116+stereospread;
+const int combtuningL2 = 1188;
+const int combtuningR2 = 1188+stereospread;
+const int combtuningL3 = 1277;
+const int combtuningR3 = 1277+stereospread;
+const int combtuningL4 = 1356;
+const int combtuningR4 = 1356+stereospread;
+const int combtuningL5 = 1422;
+const int combtuningR5 = 1422+stereospread;
+const int combtuningL6 = 1491;
+const int combtuningR6 = 1491+stereospread;
+const int combtuningL7 = 1557;
+const int combtuningR7 = 1557+stereospread;
+const int combtuningL8 = 1617;
+const int combtuningR8 = 1617+stereospread;
+const int allpasstuningL1 = 556;
+const int allpasstuningR1 = 556+stereospread;
+const int allpasstuningL2 = 441;
+const int allpasstuningR2 = 441+stereospread;
+const int allpasstuningL3 = 341;
+const int allpasstuningR3 = 341+stereospread;
+const int allpasstuningL4 = 225;
+const int allpasstuningR4 = 225+stereospread;
+
+#endif//_tuning_
+
+//ends
+
diff --git a/muse_qt4_evolution/plugins/pandelay/CMakeLists.txt b/muse_qt4_evolution/plugins/pandelay/CMakeLists.txt
new file mode 100644
index 00000000..5ebb08a0
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/CMakeLists.txt
@@ -0,0 +1,33 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( pandelay SHARED
+ pandelay.cpp ladspapandelay.cpp pandelaymodel.cpp
+ )
+
+# tell cmake to name the target pandelay.so instead of
+# libpandelay.so
+#
+set_target_properties (pandelay
+ PROPERTIES PREFIX ""
+ #COMPILE_FLAGS "-O3"
+ )
+
+install_targets ( /lib/${MusE_INSTALL_NAME}/plugins pandelay)
diff --git a/muse_qt4_evolution/plugins/pandelay/ladspapandelay.cpp b/muse_qt4_evolution/plugins/pandelay/ladspapandelay.cpp
new file mode 100644
index 00000000..b5680d3e
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/ladspapandelay.cpp
@@ -0,0 +1,100 @@
+//===========================================================================
+//
+// ladspapandelay
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "ladspapandelay.h"
+
+//---------------------------------------------------------
+// PanDelay
+//---------------------------------------------------------
+
+LADSPAPanDelay::LADSPAPanDelay(unsigned long samplerate)
+ : PanDelayModel(samplerate) {
+ //TODO init param
+}
+
+LADSPAPanDelay::~LADSPAPanDelay() {
+}
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void LADSPAPanDelay::activate() {
+ *port[4] = param[0];
+ *port[5] = param[1];
+ *port[6] = param[2];
+ *port[7] = param[3];
+ *port[8] = param[4];
+ *port[9] = param[5];
+}
+
+void LADSPAPanDelay::updateParameters() {
+ if (param[0] != *port[4]) {
+ param[0] = *port[4];
+ setBPM(param[0]);
+ }
+ if (param[1] != *port[5]) {
+ param[1] = *port[5];
+ setBeatRatio(param[1]);
+ }
+ if (param[2] != *port[6]) {
+ param[2] = *port[6];
+ setFeedback(param[2]);
+ }
+ if (param[3] != *port[7]) {
+ param[3] = *port[7];
+ setPanLFOFreq(param[3]);
+ }
+ if (param[4] != *port[8]) {
+ param[4] = *port[8];
+ setPanLFODepth(param[4]);
+ }
+ if (param[5] != *port[9]) {
+ param[5] = *port[9];
+ setDryWet(param[5]);
+ }
+}
+
+//---------------------------------------------------------
+// processReplace
+//---------------------------------------------------------
+
+void LADSPAPanDelay::processReplace(long n) {
+ updateParameters();
+ PanDelayModel::processReplace(port[0], port[1], port[2], port[3], n);
+}
+
+//---------------------------------------------------------
+// processMix
+//---------------------------------------------------------
+
+void LADSPAPanDelay::processMix(long n) {
+ updateParameters();
+ PanDelayModel::processMix(port[0], port[1], port[2], port[3], n);
+}
diff --git a/muse_qt4_evolution/plugins/pandelay/ladspapandelay.h b/muse_qt4_evolution/plugins/pandelay/ladspapandelay.h
new file mode 100644
index 00000000..ab5427a1
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/ladspapandelay.h
@@ -0,0 +1,55 @@
+//===========================================================================
+//
+// ladspapandelay
+//
+// Version 0.0.1
+//
+//
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __LADSPAPANDELAY_H
+#define __LADSPAPANDELAY_H
+
+#include "pandelaymodel.h"
+#include "../../muse/ladspa.h"
+
+#define NBRPARAM 6
+
+class LADSPAPanDelay : public PanDelayModel {
+ private:
+
+ public:
+ LADSPAPanDelay(unsigned long samplerate);
+ ~LADSPAPanDelay();
+
+ LADSPA_Data* port[NBRPARAM + 4];
+ float param[NBRPARAM];
+
+ void updateParameters();
+ void processMix(long numsamples);
+ void processReplace(long numsamples);
+
+ void activate();
+};
+
+#endif
diff --git a/muse_qt4_evolution/plugins/pandelay/pandelay.cpp b/muse_qt4_evolution/plugins/pandelay/pandelay.cpp
new file mode 100644
index 00000000..18ce1a41
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/pandelay.cpp
@@ -0,0 +1,170 @@
+//=========================================================
+// PanDelay for MusE
+//
+// (C) Copyright 2006 Nil Geisweiller
+//=========================================================
+
+#include "ladspapandelay.h"
+#include <stdio.h>
+
+//---------------------------------------------------------
+// instantiate pandelay
+// Construct a new plugin instance.
+//---------------------------------------------------------
+
+LADSPA_Handle instantiate(const LADSPA_Descriptor* /*Descriptor*/,
+ unsigned long samplerate)
+{
+ return new LADSPAPanDelay(samplerate);
+}
+
+//---------------------------------------------------------
+// connect PortTo pandelay
+// Connect a port to a data location.
+//---------------------------------------------------------
+
+void connect(LADSPA_Handle Instance, unsigned long port,
+ LADSPA_Data* data)
+{
+ ((LADSPAPanDelay*)Instance)->port[port] = data;
+}
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void activate(LADSPA_Handle instance)
+{
+ ((LADSPAPanDelay*)instance)->activate();
+}
+
+//---------------------------------------------------------
+// deactivate
+//---------------------------------------------------------
+
+void deactivate(LADSPA_Handle /*Instance*/)
+{
+}
+
+//---------------------------------------------------------
+// run pandelay
+//---------------------------------------------------------
+
+void run(LADSPA_Handle Instance, unsigned long n)
+{
+ ((LADSPAPanDelay*)Instance)->processReplace(n);
+}
+
+//---------------------------------------------------------
+// runAdding pandelay
+// *ADD* the output to the output buffer.
+//---------------------------------------------------------
+
+void runAdding(LADSPA_Handle Instance, unsigned long n)
+{
+ ((LADSPAPanDelay*)Instance)->processMix(n);
+}
+
+//---------------------------------------------------------
+// set pandelay RunAddingGain
+//---------------------------------------------------------
+
+void setGain(LADSPA_Handle /*Instance*/, LADSPA_Data /*Gain*/)
+{
+ printf("TEST setGain\n");
+ // ((LADSPAPanDelay*)Instance)->m_fRunAddingGain = Gain;
+}
+
+//---------------------------------------------------------
+// cleanup pandelay
+//---------------------------------------------------------
+
+void cleanup(LADSPA_Handle Instance)
+{
+ delete (LADSPAPanDelay*)Instance;
+}
+
+static const char* portNames[] = {
+ "Input (Left)",
+ "Input (Right)",
+ "Output (Left)",
+ "Output (Right)",
+ "BMP",
+ "Beat Ratio",
+ "Feedback",
+ "Pan LFO Freq",
+ "Pan LFO Depth",
+ "Dry/Wet"
+};
+
+LADSPA_PortDescriptor portDescriptors[] = {
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL,
+ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL
+};
+
+LADSPA_PortRangeHint portRangeHints[] = {
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { 0, 0.0, 0.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_100, MINBPM, MAXBPM },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_1, MINBEATRATIO, MAXBEATRATIO },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_HIGH, -1.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_HIGH, MINFREQ, MAXFREQ },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_HIGH, 0.0, 1.0 },
+ { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MIDDLE, 0.0, 1.0 }
+};
+
+LADSPA_Descriptor descriptor = {
+ 1052,
+ "pandelay",
+ LADSPA_PROPERTY_HARD_RT_CAPABLE,
+ "PanDelay",
+ "Nil Geisweiller",
+ "GPL",
+ NBRPARAM + 4,
+ portDescriptors,
+ portNames,
+ portRangeHints,
+ 0, // impl. data
+ instantiate,
+ connect,
+ activate,
+ run,
+ runAdding,
+ setGain,
+ deactivate,
+ cleanup
+};
+
+//---------------------------------------------------------
+// _init
+// called automatically when the plugin library is first
+// loaded.
+//---------------------------------------------------------
+void _init() {
+}
+
+//---------------------------------------------------------
+// _fini
+// called automatically when the library is unloaded.
+//---------------------------------------------------------
+void _fini() {
+}
+
+//---------------------------------------------------------
+// ladspa_descriptor
+// Return a descriptor of the requested plugin type.
+//---------------------------------------------------------
+const LADSPA_Descriptor* ladspa_descriptor(unsigned long i) {
+ return (i == 0) ? &descriptor : 0;
+}
+
diff --git a/muse_qt4_evolution/plugins/pandelay/pandelaymodel.cpp b/muse_qt4_evolution/plugins/pandelay/pandelaymodel.cpp
new file mode 100644
index 00000000..ab01ba9f
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/pandelaymodel.cpp
@@ -0,0 +1,154 @@
+//===========================================================================
+//
+// PanDelay, panoramic rotating delay
+//
+// version 0.0.1
+//
+// pandelaymodel.cpp
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "pandelaymodel.h"
+
+PanDelayModel::PanDelayModel(int samplerate) {
+ for(int i = 0; i < MAXBUFFERLENGTH; i++) {
+ _leftBuffer[i] = 0.0;
+ _rightBuffer[i] = 0.0;
+ }
+ _bufferPointer = 0;
+ _inc = 0.0;
+ _l = 1.0;
+ _r = 1.0;
+
+ _samplerate = samplerate;
+ setPanDelay();
+}
+
+PanDelayModel::~PanDelayModel() {
+}
+
+void PanDelayModel::setSamplerate(int sr) {
+ _samplerate = sr;
+ setPanDelay();
+}
+
+void PanDelayModel::setBPM(float bpm) {
+ _BPM = bpm;
+ _delayTime = _beatRatio * 60.0 / _BPM;
+ setPanDelay();
+}
+
+void PanDelayModel::setBeatRatio(float br) {
+ _beatRatio = br;
+ _delayTime = _beatRatio * 60.0 / _BPM;
+ setPanDelay();
+}
+
+void PanDelayModel::setDelayTime(float dt) {
+ if(dt < MINDELAYTIME) _delayTime = MINDELAYTIME;
+ else if(dt > MAXDELAYTIME) _delayTime = MAXDELAYTIME;
+ else _delayTime = dt;
+ setPanDelay();
+}
+
+void PanDelayModel::setFeedback(float fb) {
+ _feedback = fb;
+ setPanDelay();
+}
+
+void PanDelayModel::setPanLFOFreq(float pf) {
+ _panLFOFreq = pf;
+ setPanDelay();
+}
+
+void PanDelayModel::setPanLFODepth(float pd) {
+ _panLFODepth = pd;
+ setPanDelay();
+}
+
+void PanDelayModel::setDryWet(float dw) {
+ _dryWet = dw;
+}
+
+void PanDelayModel::setPanDelay() {
+ float numLFOSample = (1.0/_panLFOFreq) * (float)_samplerate;
+ _inc = 2.0 / numLFOSample;
+ _delaySampleSize = (int)(_delayTime * (float)_samplerate);
+ _lBound = 1.0 - _panLFODepth;
+ _rBound = 1.0 + _panLFODepth;
+}
+
+void PanDelayModel::processMix(float* leftSamplesIn, float* rightSamplesIn,
+ float* leftSamplesOut, float* rightSamplesOut,
+ unsigned n) {
+ float ls, rs, p;
+ p = 1.0 - _dryWet;
+ for(unsigned i = 0; i < n; i++) {
+ //read buffer
+ ls = _leftBuffer[_bufferPointer];
+ rs = _rightBuffer[_bufferPointer];
+ //write buffer
+ _leftBuffer[_bufferPointer] *= _feedback;
+ _leftBuffer[_bufferPointer] += leftSamplesIn[i];
+ _rightBuffer[_bufferPointer] *= _feedback;
+ _rightBuffer[_bufferPointer] += rightSamplesIn[i];
+ //write out
+ leftSamplesOut[i] += _l * _dryWet * ls + p * leftSamplesIn[i];
+ rightSamplesOut[i] += _r * _dryWet * rs + p * rightSamplesIn[i];
+ //update _bufferPointer
+ _bufferPointer++;
+ _bufferPointer%=_delaySampleSize;
+ //update _l _r
+ _r += _inc;
+ _l -= _inc;
+ //update _inc
+ if(_r > _rBound || _r < _lBound) _inc = -_inc;
+ }
+}
+
+void PanDelayModel::processReplace(float* leftSamplesIn, float* rightSamplesIn,
+ float* leftSamplesOut,
+ float* rightSamplesOut, unsigned n) {
+ float ls, rs, p;
+ p = 1.0 - _dryWet;
+ for(unsigned i = 0; i < n; i++) {
+ //read buffer
+ ls = _leftBuffer[_bufferPointer];
+ rs = _rightBuffer[_bufferPointer];
+ //write buffer
+ _leftBuffer[_bufferPointer] *= _feedback;
+ _leftBuffer[_bufferPointer] += leftSamplesIn[i];
+ _rightBuffer[_bufferPointer] *= _feedback;
+ _rightBuffer[_bufferPointer] += rightSamplesIn[i];
+ //write out
+ leftSamplesOut[i] = _l * _dryWet * ls + p * leftSamplesIn[i];
+ rightSamplesOut[i] = _r * _dryWet * rs + p * rightSamplesIn[i];
+ //update _bufferPointer
+ _bufferPointer++;
+ _bufferPointer%=_delaySampleSize;
+ //update _l _r
+ _r += _inc;
+ _l -= _inc;
+ //update _inc
+ if(_r > _rBound || _r < _lBound) _inc = -_inc;
+ }
+}
diff --git a/muse_qt4_evolution/plugins/pandelay/pandelaymodel.h b/muse_qt4_evolution/plugins/pandelay/pandelaymodel.h
new file mode 100644
index 00000000..65983187
--- /dev/null
+++ b/muse_qt4_evolution/plugins/pandelay/pandelaymodel.h
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// PanDelay, panoramic rotating delay
+//
+// version 0.0.1
+//
+// pandelaymodel.h
+//
+//
+// Copyright (c) 2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __PANDELAYMODEL_H
+#define __PANDELAYMODEL_H
+
+#include <math.h>
+
+#define MAXBUFFERLENGTH 192000
+#define MINFREQ 0.1 //in Hz
+#define MAXFREQ 10.0 //in Hz
+#define MINBPM 60.0
+#define MAXBPM 255.0
+#define MINBEATRATIO 0.125
+#define MAXBEATRATIO 2.0
+#define MINDELAYTIME 0.01 //in second
+#define MAXDELAYTIME 2.0 //in second
+
+#define NBRPARAM 5
+
+class PanDelayModel {
+ private:
+ int _samplerate;
+
+ //bool _beatFraction; //if true then the delay is calculated in beat fraction
+ float _BPM;
+ float _beatRatio;
+ float _delayTime; //delay is calculated according to BMP and ratioBMP
+ float _feedback;
+ float _panLFOFreq;
+ float _panLFODepth;
+ float _dryWet; //0.0 : dry, 1.0 : wet
+
+ int _delaySampleSize;
+ float _lBound;
+ float _rBound;
+ float _inc;
+ float _l;
+ float _r;
+
+ float _leftBuffer[MAXBUFFERLENGTH];
+ float _rightBuffer[MAXBUFFERLENGTH];
+ int _bufferPointer;
+
+ public:
+ PanDelayModel(int samplerate);
+ ~PanDelayModel();
+
+ void setSamplerate(int sr);
+ void setBeatRatio(float br);
+ void setBPM(float bpm);
+ void setDelayTime(float dt);
+ void setFeedback(float dt);
+ void setPanLFOFreq(float pf);
+ void setPanLFODepth(float pd);
+ void setDryWet(float dw);
+ void setPanDelay();
+
+ void processMix(float* leftInSamples, float* rightInSamples,
+ float* leftOutSamples, float* rightOutSamples,
+ unsigned n);
+ void processReplace(float* leftInSamples, float* rightInSamples,
+ float* leftOutSamples, float* rightOutSamples,
+ unsigned n);
+};
+
+#endif /* __PANDELAYMODEL_H */
diff --git a/muse_qt4_evolution/share/CMakeLists.txt b/muse_qt4_evolution/share/CMakeLists.txt
new file mode 100644
index 00000000..bd87dd86
--- /dev/null
+++ b/muse_qt4_evolution/share/CMakeLists.txt
@@ -0,0 +1,22 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+subdirs( instruments locale plugins templates wallpapers)
+
diff --git a/muse_qt4_evolution/share/instruments/Access_Virus.idf b/muse_qt4_evolution/share/instruments/Access_Virus.idf
new file mode 100644
index 00000000..e54e57fe
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Access_Virus.idf
@@ -0,0 +1,1045 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Access Virus">
+ <PatchGroup name="Bank A">
+ <Patch name="A 000" prog="000" hbank="0" lbank="0"/>
+ <Patch name="A 001" prog="001" hbank="0" lbank="0"/>
+ <Patch name="A 002" prog="002" hbank="0" lbank="0"/>
+ <Patch name="A 003" prog="003" hbank="0" lbank="0"/>
+ <Patch name="A 004" prog="004" hbank="0" lbank="0"/>
+ <Patch name="A 005" prog="005" hbank="0" lbank="0"/>
+ <Patch name="A 006" prog="006" hbank="0" lbank="0"/>
+ <Patch name="A 007" prog="007" hbank="0" lbank="0"/>
+ <Patch name="A 008" prog="008" hbank="0" lbank="0"/>
+ <Patch name="A 009" prog="009" hbank="0" lbank="0"/>
+ <Patch name="A 010" prog="010" hbank="0" lbank="0"/>
+ <Patch name="A 011" prog="011" hbank="0" lbank="0"/>
+ <Patch name="A 012" prog="012" hbank="0" lbank="0"/>
+ <Patch name="A 013" prog="013" hbank="0" lbank="0"/>
+ <Patch name="A 014" prog="014" hbank="0" lbank="0"/>
+ <Patch name="A 015" prog="015" hbank="0" lbank="0"/>
+ <Patch name="A 016" prog="016" hbank="0" lbank="0"/>
+ <Patch name="A 017" prog="017" hbank="0" lbank="0"/>
+ <Patch name="A 018" prog="018" hbank="0" lbank="0"/>
+ <Patch name="A 019" prog="019" hbank="0" lbank="0"/>
+ <Patch name="A 020" prog="020" hbank="0" lbank="0"/>
+ <Patch name="A 021" prog="021" hbank="0" lbank="0"/>
+ <Patch name="A 022" prog="022" hbank="0" lbank="0"/>
+ <Patch name="A 023" prog="023" hbank="0" lbank="0"/>
+ <Patch name="A 024" prog="024" hbank="0" lbank="0"/>
+ <Patch name="A 025" prog="025" hbank="0" lbank="0"/>
+ <Patch name="A 026" prog="026" hbank="0" lbank="0"/>
+ <Patch name="A 027" prog="027" hbank="0" lbank="0"/>
+ <Patch name="A 028" prog="028" hbank="0" lbank="0"/>
+ <Patch name="A 029" prog="029" hbank="0" lbank="0"/>
+ <Patch name="A 030" prog="030" hbank="0" lbank="0"/>
+ <Patch name="A 031" prog="031" hbank="0" lbank="0"/>
+ <Patch name="A 032" prog="032" hbank="0" lbank="0"/>
+ <Patch name="A 033" prog="033" hbank="0" lbank="0"/>
+ <Patch name="A 034" prog="034" hbank="0" lbank="0"/>
+ <Patch name="A 035" prog="035" hbank="0" lbank="0"/>
+ <Patch name="A 036" prog="036" hbank="0" lbank="0"/>
+ <Patch name="A 037" prog="037" hbank="0" lbank="0"/>
+ <Patch name="A 038" prog="038" hbank="0" lbank="0"/>
+ <Patch name="A 039" prog="039" hbank="0" lbank="0"/>
+ <Patch name="A 040" prog="040" hbank="0" lbank="0"/>
+ <Patch name="A 041" prog="041" hbank="0" lbank="0"/>
+ <Patch name="A 042" prog="042" hbank="0" lbank="0"/>
+ <Patch name="A 043" prog="043" hbank="0" lbank="0"/>
+ <Patch name="A 044" prog="044" hbank="0" lbank="0"/>
+ <Patch name="A 045" prog="045" hbank="0" lbank="0"/>
+ <Patch name="A 046" prog="046" hbank="0" lbank="0"/>
+ <Patch name="A 047" prog="047" hbank="0" lbank="0"/>
+ <Patch name="A 048" prog="048" hbank="0" lbank="0"/>
+ <Patch name="A 049" prog="049" hbank="0" lbank="0"/>
+ <Patch name="A 050" prog="050" hbank="0" lbank="0"/>
+ <Patch name="A 051" prog="051" hbank="0" lbank="0"/>
+ <Patch name="A 052" prog="052" hbank="0" lbank="0"/>
+ <Patch name="A 053" prog="053" hbank="0" lbank="0"/>
+ <Patch name="A 054" prog="054" hbank="0" lbank="0"/>
+ <Patch name="A 055" prog="055" hbank="0" lbank="0"/>
+ <Patch name="A 056" prog="056" hbank="0" lbank="0"/>
+ <Patch name="A 057" prog="057" hbank="0" lbank="0"/>
+ <Patch name="A 058" prog="058" hbank="0" lbank="0"/>
+ <Patch name="A 059" prog="059" hbank="0" lbank="0"/>
+ <Patch name="A 060" prog="060" hbank="0" lbank="0"/>
+ <Patch name="A 061" prog="061" hbank="0" lbank="0"/>
+ <Patch name="A 062" prog="062" hbank="0" lbank="0"/>
+ <Patch name="A 063" prog="063" hbank="0" lbank="0"/>
+ <Patch name="A 064" prog="064" hbank="0" lbank="0"/>
+ <Patch name="A 065" prog="065" hbank="0" lbank="0"/>
+ <Patch name="A 066" prog="066" hbank="0" lbank="0"/>
+ <Patch name="A 067" prog="067" hbank="0" lbank="0"/>
+ <Patch name="A 068" prog="068" hbank="0" lbank="0"/>
+ <Patch name="A 069" prog="069" hbank="0" lbank="0"/>
+ <Patch name="A 070" prog="070" hbank="0" lbank="0"/>
+ <Patch name="A 071" prog="071" hbank="0" lbank="0"/>
+ <Patch name="A 072" prog="072" hbank="0" lbank="0"/>
+ <Patch name="A 073" prog="073" hbank="0" lbank="0"/>
+ <Patch name="A 074" prog="074" hbank="0" lbank="0"/>
+ <Patch name="A 075" prog="075" hbank="0" lbank="0"/>
+ <Patch name="A 076" prog="076" hbank="0" lbank="0"/>
+ <Patch name="A 077" prog="077" hbank="0" lbank="0"/>
+ <Patch name="A 078" prog="078" hbank="0" lbank="0"/>
+ <Patch name="A 079" prog="079" hbank="0" lbank="0"/>
+ <Patch name="A 080" prog="080" hbank="0" lbank="0"/>
+ <Patch name="A 081" prog="081" hbank="0" lbank="0"/>
+ <Patch name="A 082" prog="082" hbank="0" lbank="0"/>
+ <Patch name="A 083" prog="083" hbank="0" lbank="0"/>
+ <Patch name="A 084" prog="084" hbank="0" lbank="0"/>
+ <Patch name="A 085" prog="085" hbank="0" lbank="0"/>
+ <Patch name="A 086" prog="086" hbank="0" lbank="0"/>
+ <Patch name="A 087" prog="087" hbank="0" lbank="0"/>
+ <Patch name="A 088" prog="088" hbank="0" lbank="0"/>
+ <Patch name="A 089" prog="089" hbank="0" lbank="0"/>
+ <Patch name="A 090" prog="090" hbank="0" lbank="0"/>
+ <Patch name="A 091" prog="091" hbank="0" lbank="0"/>
+ <Patch name="A 092" prog="092" hbank="0" lbank="0"/>
+ <Patch name="A 093" prog="093" hbank="0" lbank="0"/>
+ <Patch name="A 094" prog="094" hbank="0" lbank="0"/>
+ <Patch name="A 095" prog="095" hbank="0" lbank="0"/>
+ <Patch name="A 096" prog="096" hbank="0" lbank="0"/>
+ <Patch name="A 097" prog="097" hbank="0" lbank="0"/>
+ <Patch name="A 098" prog="098" hbank="0" lbank="0"/>
+ <Patch name="A 099" prog="099" hbank="0" lbank="0"/>
+ <Patch name="A 100" prog="100" hbank="0" lbank="0"/>
+ <Patch name="A 101" prog="101" hbank="0" lbank="0"/>
+ <Patch name="A 102" prog="102" hbank="0" lbank="0"/>
+ <Patch name="A 103" prog="103" hbank="0" lbank="0"/>
+ <Patch name="A 104" prog="104" hbank="0" lbank="0"/>
+ <Patch name="A 105" prog="105" hbank="0" lbank="0"/>
+ <Patch name="A 106" prog="106" hbank="0" lbank="0"/>
+ <Patch name="A 107" prog="107" hbank="0" lbank="0"/>
+ <Patch name="A 108" prog="108" hbank="0" lbank="0"/>
+ <Patch name="A 109" prog="109" hbank="0" lbank="0"/>
+ <Patch name="A 110" prog="110" hbank="0" lbank="0"/>
+ <Patch name="A 111" prog="111" hbank="0" lbank="0"/>
+ <Patch name="A 112" prog="112" hbank="0" lbank="0"/>
+ <Patch name="A 113" prog="113" hbank="0" lbank="0"/>
+ <Patch name="A 114" prog="114" hbank="0" lbank="0"/>
+ <Patch name="A 115" prog="115" hbank="0" lbank="0"/>
+ <Patch name="A 116" prog="116" hbank="0" lbank="0"/>
+ <Patch name="A 117" prog="117" hbank="0" lbank="0"/>
+ <Patch name="A 118" prog="118" hbank="0" lbank="0"/>
+ <Patch name="A 119" prog="119" hbank="0" lbank="0"/>
+ <Patch name="A 120" prog="120" hbank="0" lbank="0"/>
+ <Patch name="A 121" prog="121" hbank="0" lbank="0"/>
+ <Patch name="A 122" prog="122" hbank="0" lbank="0"/>
+ <Patch name="A 123" prog="123" hbank="0" lbank="0"/>
+ <Patch name="A 124" prog="124" hbank="0" lbank="0"/>
+ <Patch name="A 125" prog="125" hbank="0" lbank="0"/>
+ <Patch name="A 126" prog="126" hbank="0" lbank="0"/>
+ <Patch name="A 127" prog="127" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank B">
+ <Patch name="B 000" prog="000" hbank="0" lbank="1"/>
+ <Patch name="B 001" prog="001" hbank="0" lbank="1"/>
+ <Patch name="B 002" prog="002" hbank="0" lbank="1"/>
+ <Patch name="B 003" prog="003" hbank="0" lbank="1"/>
+ <Patch name="B 004" prog="004" hbank="0" lbank="1"/>
+ <Patch name="B 005" prog="005" hbank="0" lbank="1"/>
+ <Patch name="B 006" prog="006" hbank="0" lbank="1"/>
+ <Patch name="B 007" prog="007" hbank="0" lbank="1"/>
+ <Patch name="B 008" prog="008" hbank="0" lbank="1"/>
+ <Patch name="B 009" prog="009" hbank="0" lbank="1"/>
+ <Patch name="B 010" prog="010" hbank="0" lbank="1"/>
+ <Patch name="B 011" prog="011" hbank="0" lbank="1"/>
+ <Patch name="B 012" prog="012" hbank="0" lbank="1"/>
+ <Patch name="B 013" prog="013" hbank="0" lbank="1"/>
+ <Patch name="B 014" prog="014" hbank="0" lbank="1"/>
+ <Patch name="B 015" prog="015" hbank="0" lbank="1"/>
+ <Patch name="B 016" prog="016" hbank="0" lbank="1"/>
+ <Patch name="B 017" prog="017" hbank="0" lbank="1"/>
+ <Patch name="B 018" prog="018" hbank="0" lbank="1"/>
+ <Patch name="B 019" prog="019" hbank="0" lbank="1"/>
+ <Patch name="B 020" prog="020" hbank="0" lbank="1"/>
+ <Patch name="B 021" prog="021" hbank="0" lbank="1"/>
+ <Patch name="B 022" prog="022" hbank="0" lbank="1"/>
+ <Patch name="B 023" prog="023" hbank="0" lbank="1"/>
+ <Patch name="B 024" prog="024" hbank="0" lbank="1"/>
+ <Patch name="B 025" prog="025" hbank="0" lbank="1"/>
+ <Patch name="B 026" prog="026" hbank="0" lbank="1"/>
+ <Patch name="B 027" prog="027" hbank="0" lbank="1"/>
+ <Patch name="B 028" prog="028" hbank="0" lbank="1"/>
+ <Patch name="B 029" prog="029" hbank="0" lbank="1"/>
+ <Patch name="B 030" prog="030" hbank="0" lbank="1"/>
+ <Patch name="B 031" prog="031" hbank="0" lbank="1"/>
+ <Patch name="B 032" prog="032" hbank="0" lbank="1"/>
+ <Patch name="B 033" prog="033" hbank="0" lbank="1"/>
+ <Patch name="B 034" prog="034" hbank="0" lbank="1"/>
+ <Patch name="B 035" prog="035" hbank="0" lbank="1"/>
+ <Patch name="B 036" prog="036" hbank="0" lbank="1"/>
+ <Patch name="B 037" prog="037" hbank="0" lbank="1"/>
+ <Patch name="B 038" prog="038" hbank="0" lbank="1"/>
+ <Patch name="B 039" prog="039" hbank="0" lbank="1"/>
+ <Patch name="B 040" prog="040" hbank="0" lbank="1"/>
+ <Patch name="B 041" prog="041" hbank="0" lbank="1"/>
+ <Patch name="B 042" prog="042" hbank="0" lbank="1"/>
+ <Patch name="B 043" prog="043" hbank="0" lbank="1"/>
+ <Patch name="B 044" prog="044" hbank="0" lbank="1"/>
+ <Patch name="B 045" prog="045" hbank="0" lbank="1"/>
+ <Patch name="B 046" prog="046" hbank="0" lbank="1"/>
+ <Patch name="B 047" prog="047" hbank="0" lbank="1"/>
+ <Patch name="B 048" prog="048" hbank="0" lbank="1"/>
+ <Patch name="B 049" prog="049" hbank="0" lbank="1"/>
+ <Patch name="B 050" prog="050" hbank="0" lbank="1"/>
+ <Patch name="B 051" prog="051" hbank="0" lbank="1"/>
+ <Patch name="B 052" prog="052" hbank="0" lbank="1"/>
+ <Patch name="B 053" prog="053" hbank="0" lbank="1"/>
+ <Patch name="B 054" prog="054" hbank="0" lbank="1"/>
+ <Patch name="B 055" prog="055" hbank="0" lbank="1"/>
+ <Patch name="B 056" prog="056" hbank="0" lbank="1"/>
+ <Patch name="B 057" prog="057" hbank="0" lbank="1"/>
+ <Patch name="B 058" prog="058" hbank="0" lbank="1"/>
+ <Patch name="B 059" prog="059" hbank="0" lbank="1"/>
+ <Patch name="B 060" prog="060" hbank="0" lbank="1"/>
+ <Patch name="B 061" prog="061" hbank="0" lbank="1"/>
+ <Patch name="B 062" prog="062" hbank="0" lbank="1"/>
+ <Patch name="B 063" prog="063" hbank="0" lbank="1"/>
+ <Patch name="B 064" prog="064" hbank="0" lbank="1"/>
+ <Patch name="B 065" prog="065" hbank="0" lbank="1"/>
+ <Patch name="B 066" prog="066" hbank="0" lbank="1"/>
+ <Patch name="B 067" prog="067" hbank="0" lbank="1"/>
+ <Patch name="B 068" prog="068" hbank="0" lbank="1"/>
+ <Patch name="B 069" prog="069" hbank="0" lbank="1"/>
+ <Patch name="B 070" prog="070" hbank="0" lbank="1"/>
+ <Patch name="B 071" prog="071" hbank="0" lbank="1"/>
+ <Patch name="B 072" prog="072" hbank="0" lbank="1"/>
+ <Patch name="B 073" prog="073" hbank="0" lbank="1"/>
+ <Patch name="B 074" prog="074" hbank="0" lbank="1"/>
+ <Patch name="B 075" prog="075" hbank="0" lbank="1"/>
+ <Patch name="B 076" prog="076" hbank="0" lbank="1"/>
+ <Patch name="B 077" prog="077" hbank="0" lbank="1"/>
+ <Patch name="B 078" prog="078" hbank="0" lbank="1"/>
+ <Patch name="B 079" prog="079" hbank="0" lbank="1"/>
+ <Patch name="B 080" prog="080" hbank="0" lbank="1"/>
+ <Patch name="B 081" prog="081" hbank="0" lbank="1"/>
+ <Patch name="B 082" prog="082" hbank="0" lbank="1"/>
+ <Patch name="B 083" prog="083" hbank="0" lbank="1"/>
+ <Patch name="B 084" prog="084" hbank="0" lbank="1"/>
+ <Patch name="B 085" prog="085" hbank="0" lbank="1"/>
+ <Patch name="B 086" prog="086" hbank="0" lbank="1"/>
+ <Patch name="B 087" prog="087" hbank="0" lbank="1"/>
+ <Patch name="B 088" prog="088" hbank="0" lbank="1"/>
+ <Patch name="B 089" prog="089" hbank="0" lbank="1"/>
+ <Patch name="B 090" prog="090" hbank="0" lbank="1"/>
+ <Patch name="B 091" prog="091" hbank="0" lbank="1"/>
+ <Patch name="B 092" prog="092" hbank="0" lbank="1"/>
+ <Patch name="B 093" prog="093" hbank="0" lbank="1"/>
+ <Patch name="B 094" prog="094" hbank="0" lbank="1"/>
+ <Patch name="B 095" prog="095" hbank="0" lbank="1"/>
+ <Patch name="B 096" prog="096" hbank="0" lbank="1"/>
+ <Patch name="B 097" prog="097" hbank="0" lbank="1"/>
+ <Patch name="B 098" prog="098" hbank="0" lbank="1"/>
+ <Patch name="B 099" prog="099" hbank="0" lbank="1"/>
+ <Patch name="B 100" prog="100" hbank="0" lbank="1"/>
+ <Patch name="B 101" prog="101" hbank="0" lbank="1"/>
+ <Patch name="B 102" prog="102" hbank="0" lbank="1"/>
+ <Patch name="B 103" prog="103" hbank="0" lbank="1"/>
+ <Patch name="B 104" prog="104" hbank="0" lbank="1"/>
+ <Patch name="B 105" prog="105" hbank="0" lbank="1"/>
+ <Patch name="B 106" prog="106" hbank="0" lbank="1"/>
+ <Patch name="B 107" prog="107" hbank="0" lbank="1"/>
+ <Patch name="B 108" prog="108" hbank="0" lbank="1"/>
+ <Patch name="B 109" prog="109" hbank="0" lbank="1"/>
+ <Patch name="B 110" prog="110" hbank="0" lbank="1"/>
+ <Patch name="B 111" prog="111" hbank="0" lbank="1"/>
+ <Patch name="B 112" prog="112" hbank="0" lbank="1"/>
+ <Patch name="B 113" prog="113" hbank="0" lbank="1"/>
+ <Patch name="B 114" prog="114" hbank="0" lbank="1"/>
+ <Patch name="B 115" prog="115" hbank="0" lbank="1"/>
+ <Patch name="B 116" prog="116" hbank="0" lbank="1"/>
+ <Patch name="B 117" prog="117" hbank="0" lbank="1"/>
+ <Patch name="B 118" prog="118" hbank="0" lbank="1"/>
+ <Patch name="B 119" prog="119" hbank="0" lbank="1"/>
+ <Patch name="B 120" prog="120" hbank="0" lbank="1"/>
+ <Patch name="B 121" prog="121" hbank="0" lbank="1"/>
+ <Patch name="B 122" prog="122" hbank="0" lbank="1"/>
+ <Patch name="B 123" prog="123" hbank="0" lbank="1"/>
+ <Patch name="B 124" prog="124" hbank="0" lbank="1"/>
+ <Patch name="B 125" prog="125" hbank="0" lbank="1"/>
+ <Patch name="B 126" prog="126" hbank="0" lbank="1"/>
+ <Patch name="B 127" prog="127" hbank="0" lbank="1"/>
+ </PatchGroup>
+ <PatchGroup name="Bank C">
+ <Patch name="C 000" prog="000" hbank="0" lbank="2"/>
+ <Patch name="C 001" prog="001" hbank="0" lbank="2"/>
+ <Patch name="C 002" prog="002" hbank="0" lbank="2"/>
+ <Patch name="C 003" prog="003" hbank="0" lbank="2"/>
+ <Patch name="C 004" prog="004" hbank="0" lbank="2"/>
+ <Patch name="C 005" prog="005" hbank="0" lbank="2"/>
+ <Patch name="C 006" prog="006" hbank="0" lbank="2"/>
+ <Patch name="C 007" prog="007" hbank="0" lbank="2"/>
+ <Patch name="C 008" prog="008" hbank="0" lbank="2"/>
+ <Patch name="C 009" prog="009" hbank="0" lbank="2"/>
+ <Patch name="C 010" prog="010" hbank="0" lbank="2"/>
+ <Patch name="C 011" prog="011" hbank="0" lbank="2"/>
+ <Patch name="C 012" prog="012" hbank="0" lbank="2"/>
+ <Patch name="C 013" prog="013" hbank="0" lbank="2"/>
+ <Patch name="C 014" prog="014" hbank="0" lbank="2"/>
+ <Patch name="C 015" prog="015" hbank="0" lbank="2"/>
+ <Patch name="C 016" prog="016" hbank="0" lbank="2"/>
+ <Patch name="C 017" prog="017" hbank="0" lbank="2"/>
+ <Patch name="C 018" prog="018" hbank="0" lbank="2"/>
+ <Patch name="C 019" prog="019" hbank="0" lbank="2"/>
+ <Patch name="C 020" prog="020" hbank="0" lbank="2"/>
+ <Patch name="C 021" prog="021" hbank="0" lbank="2"/>
+ <Patch name="C 022" prog="022" hbank="0" lbank="2"/>
+ <Patch name="C 023" prog="023" hbank="0" lbank="2"/>
+ <Patch name="C 024" prog="024" hbank="0" lbank="2"/>
+ <Patch name="C 025" prog="025" hbank="0" lbank="2"/>
+ <Patch name="C 026" prog="026" hbank="0" lbank="2"/>
+ <Patch name="C 027" prog="027" hbank="0" lbank="2"/>
+ <Patch name="C 028" prog="028" hbank="0" lbank="2"/>
+ <Patch name="C 029" prog="029" hbank="0" lbank="2"/>
+ <Patch name="C 030" prog="030" hbank="0" lbank="2"/>
+ <Patch name="C 031" prog="031" hbank="0" lbank="2"/>
+ <Patch name="C 032" prog="032" hbank="0" lbank="2"/>
+ <Patch name="C 033" prog="033" hbank="0" lbank="2"/>
+ <Patch name="C 034" prog="034" hbank="0" lbank="2"/>
+ <Patch name="C 035" prog="035" hbank="0" lbank="2"/>
+ <Patch name="C 036" prog="036" hbank="0" lbank="2"/>
+ <Patch name="C 037" prog="037" hbank="0" lbank="2"/>
+ <Patch name="C 038" prog="038" hbank="0" lbank="2"/>
+ <Patch name="C 039" prog="039" hbank="0" lbank="2"/>
+ <Patch name="C 040" prog="040" hbank="0" lbank="2"/>
+ <Patch name="C 041" prog="041" hbank="0" lbank="2"/>
+ <Patch name="C 042" prog="042" hbank="0" lbank="2"/>
+ <Patch name="C 043" prog="043" hbank="0" lbank="2"/>
+ <Patch name="C 044" prog="044" hbank="0" lbank="2"/>
+ <Patch name="C 045" prog="045" hbank="0" lbank="2"/>
+ <Patch name="C 046" prog="046" hbank="0" lbank="2"/>
+ <Patch name="C 047" prog="047" hbank="0" lbank="2"/>
+ <Patch name="C 048" prog="048" hbank="0" lbank="2"/>
+ <Patch name="C 049" prog="049" hbank="0" lbank="2"/>
+ <Patch name="C 050" prog="050" hbank="0" lbank="2"/>
+ <Patch name="C 051" prog="051" hbank="0" lbank="2"/>
+ <Patch name="C 052" prog="052" hbank="0" lbank="2"/>
+ <Patch name="C 053" prog="053" hbank="0" lbank="2"/>
+ <Patch name="C 054" prog="054" hbank="0" lbank="2"/>
+ <Patch name="C 055" prog="055" hbank="0" lbank="2"/>
+ <Patch name="C 056" prog="056" hbank="0" lbank="2"/>
+ <Patch name="C 057" prog="057" hbank="0" lbank="2"/>
+ <Patch name="C 058" prog="058" hbank="0" lbank="2"/>
+ <Patch name="C 059" prog="059" hbank="0" lbank="2"/>
+ <Patch name="C 060" prog="060" hbank="0" lbank="2"/>
+ <Patch name="C 061" prog="061" hbank="0" lbank="2"/>
+ <Patch name="C 062" prog="062" hbank="0" lbank="2"/>
+ <Patch name="C 063" prog="063" hbank="0" lbank="2"/>
+ <Patch name="C 064" prog="064" hbank="0" lbank="2"/>
+ <Patch name="C 065" prog="065" hbank="0" lbank="2"/>
+ <Patch name="C 066" prog="066" hbank="0" lbank="2"/>
+ <Patch name="C 067" prog="067" hbank="0" lbank="2"/>
+ <Patch name="C 068" prog="068" hbank="0" lbank="2"/>
+ <Patch name="C 069" prog="069" hbank="0" lbank="2"/>
+ <Patch name="C 070" prog="070" hbank="0" lbank="2"/>
+ <Patch name="C 071" prog="071" hbank="0" lbank="2"/>
+ <Patch name="C 072" prog="072" hbank="0" lbank="2"/>
+ <Patch name="C 073" prog="073" hbank="0" lbank="2"/>
+ <Patch name="C 074" prog="074" hbank="0" lbank="2"/>
+ <Patch name="C 075" prog="075" hbank="0" lbank="2"/>
+ <Patch name="C 076" prog="076" hbank="0" lbank="2"/>
+ <Patch name="C 077" prog="077" hbank="0" lbank="2"/>
+ <Patch name="C 078" prog="078" hbank="0" lbank="2"/>
+ <Patch name="C 079" prog="079" hbank="0" lbank="2"/>
+ <Patch name="C 080" prog="080" hbank="0" lbank="2"/>
+ <Patch name="C 081" prog="081" hbank="0" lbank="2"/>
+ <Patch name="C 082" prog="082" hbank="0" lbank="2"/>
+ <Patch name="C 083" prog="083" hbank="0" lbank="2"/>
+ <Patch name="C 084" prog="084" hbank="0" lbank="2"/>
+ <Patch name="C 085" prog="085" hbank="0" lbank="2"/>
+ <Patch name="C 086" prog="086" hbank="0" lbank="2"/>
+ <Patch name="C 087" prog="087" hbank="0" lbank="2"/>
+ <Patch name="C 088" prog="088" hbank="0" lbank="2"/>
+ <Patch name="C 089" prog="089" hbank="0" lbank="2"/>
+ <Patch name="C 090" prog="090" hbank="0" lbank="2"/>
+ <Patch name="C 091" prog="091" hbank="0" lbank="2"/>
+ <Patch name="C 092" prog="092" hbank="0" lbank="2"/>
+ <Patch name="C 093" prog="093" hbank="0" lbank="2"/>
+ <Patch name="C 094" prog="094" hbank="0" lbank="2"/>
+ <Patch name="C 095" prog="095" hbank="0" lbank="2"/>
+ <Patch name="C 096" prog="096" hbank="0" lbank="2"/>
+ <Patch name="C 097" prog="097" hbank="0" lbank="2"/>
+ <Patch name="C 098" prog="098" hbank="0" lbank="2"/>
+ <Patch name="C 099" prog="099" hbank="0" lbank="2"/>
+ <Patch name="C 100" prog="100" hbank="0" lbank="2"/>
+ <Patch name="C 101" prog="101" hbank="0" lbank="2"/>
+ <Patch name="C 102" prog="102" hbank="0" lbank="2"/>
+ <Patch name="C 103" prog="103" hbank="0" lbank="2"/>
+ <Patch name="C 104" prog="104" hbank="0" lbank="2"/>
+ <Patch name="C 105" prog="105" hbank="0" lbank="2"/>
+ <Patch name="C 106" prog="106" hbank="0" lbank="2"/>
+ <Patch name="C 107" prog="107" hbank="0" lbank="2"/>
+ <Patch name="C 108" prog="108" hbank="0" lbank="2"/>
+ <Patch name="C 109" prog="109" hbank="0" lbank="2"/>
+ <Patch name="C 110" prog="110" hbank="0" lbank="2"/>
+ <Patch name="C 111" prog="111" hbank="0" lbank="2"/>
+ <Patch name="C 112" prog="112" hbank="0" lbank="2"/>
+ <Patch name="C 113" prog="113" hbank="0" lbank="2"/>
+ <Patch name="C 114" prog="114" hbank="0" lbank="2"/>
+ <Patch name="C 115" prog="115" hbank="0" lbank="2"/>
+ <Patch name="C 116" prog="116" hbank="0" lbank="2"/>
+ <Patch name="C 117" prog="117" hbank="0" lbank="2"/>
+ <Patch name="C 118" prog="118" hbank="0" lbank="2"/>
+ <Patch name="C 119" prog="119" hbank="0" lbank="2"/>
+ <Patch name="C 120" prog="120" hbank="0" lbank="2"/>
+ <Patch name="C 121" prog="121" hbank="0" lbank="2"/>
+ <Patch name="C 122" prog="122" hbank="0" lbank="2"/>
+ <Patch name="C 123" prog="123" hbank="0" lbank="2"/>
+ <Patch name="C 124" prog="124" hbank="0" lbank="2"/>
+ <Patch name="C 125" prog="125" hbank="0" lbank="2"/>
+ <Patch name="C 126" prog="126" hbank="0" lbank="2"/>
+ <Patch name="C 127" prog="127" hbank="0" lbank="2"/>
+ </PatchGroup>
+ <PatchGroup name="Bank D">
+ <Patch name="D 000" prog="000" hbank="0" lbank="3"/>
+ <Patch name="D 001" prog="001" hbank="0" lbank="3"/>
+ <Patch name="D 002" prog="002" hbank="0" lbank="3"/>
+ <Patch name="D 003" prog="003" hbank="0" lbank="3"/>
+ <Patch name="D 004" prog="004" hbank="0" lbank="3"/>
+ <Patch name="D 005" prog="005" hbank="0" lbank="3"/>
+ <Patch name="D 006" prog="006" hbank="0" lbank="3"/>
+ <Patch name="D 007" prog="007" hbank="0" lbank="3"/>
+ <Patch name="D 008" prog="008" hbank="0" lbank="3"/>
+ <Patch name="D 009" prog="009" hbank="0" lbank="3"/>
+ <Patch name="D 010" prog="010" hbank="0" lbank="3"/>
+ <Patch name="D 011" prog="011" hbank="0" lbank="3"/>
+ <Patch name="D 012" prog="012" hbank="0" lbank="3"/>
+ <Patch name="D 013" prog="013" hbank="0" lbank="3"/>
+ <Patch name="D 014" prog="014" hbank="0" lbank="3"/>
+ <Patch name="D 015" prog="015" hbank="0" lbank="3"/>
+ <Patch name="D 016" prog="016" hbank="0" lbank="3"/>
+ <Patch name="D 017" prog="017" hbank="0" lbank="3"/>
+ <Patch name="D 018" prog="018" hbank="0" lbank="3"/>
+ <Patch name="D 019" prog="019" hbank="0" lbank="3"/>
+ <Patch name="D 020" prog="020" hbank="0" lbank="3"/>
+ <Patch name="D 021" prog="021" hbank="0" lbank="3"/>
+ <Patch name="D 022" prog="022" hbank="0" lbank="3"/>
+ <Patch name="D 023" prog="023" hbank="0" lbank="3"/>
+ <Patch name="D 024" prog="024" hbank="0" lbank="3"/>
+ <Patch name="D 025" prog="025" hbank="0" lbank="3"/>
+ <Patch name="D 026" prog="026" hbank="0" lbank="3"/>
+ <Patch name="D 027" prog="027" hbank="0" lbank="3"/>
+ <Patch name="D 028" prog="028" hbank="0" lbank="3"/>
+ <Patch name="D 029" prog="029" hbank="0" lbank="3"/>
+ <Patch name="D 030" prog="030" hbank="0" lbank="3"/>
+ <Patch name="D 031" prog="031" hbank="0" lbank="3"/>
+ <Patch name="D 032" prog="032" hbank="0" lbank="3"/>
+ <Patch name="D 033" prog="033" hbank="0" lbank="3"/>
+ <Patch name="D 034" prog="034" hbank="0" lbank="3"/>
+ <Patch name="D 035" prog="035" hbank="0" lbank="3"/>
+ <Patch name="D 036" prog="036" hbank="0" lbank="3"/>
+ <Patch name="D 037" prog="037" hbank="0" lbank="3"/>
+ <Patch name="D 038" prog="038" hbank="0" lbank="3"/>
+ <Patch name="D 039" prog="039" hbank="0" lbank="3"/>
+ <Patch name="D 040" prog="040" hbank="0" lbank="3"/>
+ <Patch name="D 041" prog="041" hbank="0" lbank="3"/>
+ <Patch name="D 042" prog="042" hbank="0" lbank="3"/>
+ <Patch name="D 043" prog="043" hbank="0" lbank="3"/>
+ <Patch name="D 044" prog="044" hbank="0" lbank="3"/>
+ <Patch name="D 045" prog="045" hbank="0" lbank="3"/>
+ <Patch name="D 046" prog="046" hbank="0" lbank="3"/>
+ <Patch name="D 047" prog="047" hbank="0" lbank="3"/>
+ <Patch name="D 048" prog="048" hbank="0" lbank="3"/>
+ <Patch name="D 049" prog="049" hbank="0" lbank="3"/>
+ <Patch name="D 050" prog="050" hbank="0" lbank="3"/>
+ <Patch name="D 051" prog="051" hbank="0" lbank="3"/>
+ <Patch name="D 052" prog="052" hbank="0" lbank="3"/>
+ <Patch name="D 053" prog="053" hbank="0" lbank="3"/>
+ <Patch name="D 054" prog="054" hbank="0" lbank="3"/>
+ <Patch name="D 055" prog="055" hbank="0" lbank="3"/>
+ <Patch name="D 056" prog="056" hbank="0" lbank="3"/>
+ <Patch name="D 057" prog="057" hbank="0" lbank="3"/>
+ <Patch name="D 058" prog="058" hbank="0" lbank="3"/>
+ <Patch name="D 059" prog="059" hbank="0" lbank="3"/>
+ <Patch name="D 060" prog="060" hbank="0" lbank="3"/>
+ <Patch name="D 061" prog="061" hbank="0" lbank="3"/>
+ <Patch name="D 062" prog="062" hbank="0" lbank="3"/>
+ <Patch name="D 063" prog="063" hbank="0" lbank="3"/>
+ <Patch name="D 064" prog="064" hbank="0" lbank="3"/>
+ <Patch name="D 065" prog="065" hbank="0" lbank="3"/>
+ <Patch name="D 066" prog="066" hbank="0" lbank="3"/>
+ <Patch name="D 067" prog="067" hbank="0" lbank="3"/>
+ <Patch name="D 068" prog="068" hbank="0" lbank="3"/>
+ <Patch name="D 069" prog="069" hbank="0" lbank="3"/>
+ <Patch name="D 070" prog="070" hbank="0" lbank="3"/>
+ <Patch name="D 071" prog="071" hbank="0" lbank="3"/>
+ <Patch name="D 072" prog="072" hbank="0" lbank="3"/>
+ <Patch name="D 073" prog="073" hbank="0" lbank="3"/>
+ <Patch name="D 074" prog="074" hbank="0" lbank="3"/>
+ <Patch name="D 075" prog="075" hbank="0" lbank="3"/>
+ <Patch name="D 076" prog="076" hbank="0" lbank="3"/>
+ <Patch name="D 077" prog="077" hbank="0" lbank="3"/>
+ <Patch name="D 078" prog="078" hbank="0" lbank="3"/>
+ <Patch name="D 079" prog="079" hbank="0" lbank="3"/>
+ <Patch name="D 080" prog="080" hbank="0" lbank="3"/>
+ <Patch name="D 081" prog="081" hbank="0" lbank="3"/>
+ <Patch name="D 082" prog="082" hbank="0" lbank="3"/>
+ <Patch name="D 083" prog="083" hbank="0" lbank="3"/>
+ <Patch name="D 084" prog="084" hbank="0" lbank="3"/>
+ <Patch name="D 085" prog="085" hbank="0" lbank="3"/>
+ <Patch name="D 086" prog="086" hbank="0" lbank="3"/>
+ <Patch name="D 087" prog="087" hbank="0" lbank="3"/>
+ <Patch name="D 088" prog="088" hbank="0" lbank="3"/>
+ <Patch name="D 089" prog="089" hbank="0" lbank="3"/>
+ <Patch name="D 090" prog="090" hbank="0" lbank="3"/>
+ <Patch name="D 091" prog="091" hbank="0" lbank="3"/>
+ <Patch name="D 092" prog="092" hbank="0" lbank="3"/>
+ <Patch name="D 093" prog="093" hbank="0" lbank="3"/>
+ <Patch name="D 094" prog="094" hbank="0" lbank="3"/>
+ <Patch name="D 095" prog="095" hbank="0" lbank="3"/>
+ <Patch name="D 096" prog="096" hbank="0" lbank="3"/>
+ <Patch name="D 097" prog="097" hbank="0" lbank="3"/>
+ <Patch name="D 098" prog="098" hbank="0" lbank="3"/>
+ <Patch name="D 099" prog="099" hbank="0" lbank="3"/>
+ <Patch name="D 100" prog="100" hbank="0" lbank="3"/>
+ <Patch name="D 101" prog="101" hbank="0" lbank="3"/>
+ <Patch name="D 102" prog="102" hbank="0" lbank="3"/>
+ <Patch name="D 103" prog="103" hbank="0" lbank="3"/>
+ <Patch name="D 104" prog="104" hbank="0" lbank="3"/>
+ <Patch name="D 105" prog="105" hbank="0" lbank="3"/>
+ <Patch name="D 106" prog="106" hbank="0" lbank="3"/>
+ <Patch name="D 107" prog="107" hbank="0" lbank="3"/>
+ <Patch name="D 108" prog="108" hbank="0" lbank="3"/>
+ <Patch name="D 109" prog="109" hbank="0" lbank="3"/>
+ <Patch name="D 110" prog="110" hbank="0" lbank="3"/>
+ <Patch name="D 111" prog="111" hbank="0" lbank="3"/>
+ <Patch name="D 112" prog="112" hbank="0" lbank="3"/>
+ <Patch name="D 113" prog="113" hbank="0" lbank="3"/>
+ <Patch name="D 114" prog="114" hbank="0" lbank="3"/>
+ <Patch name="D 115" prog="115" hbank="0" lbank="3"/>
+ <Patch name="D 116" prog="116" hbank="0" lbank="3"/>
+ <Patch name="D 117" prog="117" hbank="0" lbank="3"/>
+ <Patch name="D 118" prog="118" hbank="0" lbank="3"/>
+ <Patch name="D 119" prog="119" hbank="0" lbank="3"/>
+ <Patch name="D 120" prog="120" hbank="0" lbank="3"/>
+ <Patch name="D 121" prog="121" hbank="0" lbank="3"/>
+ <Patch name="D 122" prog="122" hbank="0" lbank="3"/>
+ <Patch name="D 123" prog="123" hbank="0" lbank="3"/>
+ <Patch name="D 124" prog="124" hbank="0" lbank="3"/>
+ <Patch name="D 125" prog="125" hbank="0" lbank="3"/>
+ <Patch name="D 126" prog="126" hbank="0" lbank="3"/>
+ <Patch name="D 127" prog="127" hbank="0" lbank="3"/>
+ </PatchGroup>
+ <PatchGroup name="Bank E">
+ <Patch name="E 000" prog="000" hbank="0" lbank="4"/>
+ <Patch name="E 001" prog="001" hbank="0" lbank="4"/>
+ <Patch name="E 002" prog="002" hbank="0" lbank="4"/>
+ <Patch name="E 003" prog="003" hbank="0" lbank="4"/>
+ <Patch name="E 004" prog="004" hbank="0" lbank="4"/>
+ <Patch name="E 005" prog="005" hbank="0" lbank="4"/>
+ <Patch name="E 006" prog="006" hbank="0" lbank="4"/>
+ <Patch name="E 007" prog="007" hbank="0" lbank="4"/>
+ <Patch name="E 008" prog="008" hbank="0" lbank="4"/>
+ <Patch name="E 009" prog="009" hbank="0" lbank="4"/>
+ <Patch name="E 010" prog="010" hbank="0" lbank="4"/>
+ <Patch name="E 011" prog="011" hbank="0" lbank="4"/>
+ <Patch name="E 012" prog="012" hbank="0" lbank="4"/>
+ <Patch name="E 013" prog="013" hbank="0" lbank="4"/>
+ <Patch name="E 014" prog="014" hbank="0" lbank="4"/>
+ <Patch name="E 015" prog="015" hbank="0" lbank="4"/>
+ <Patch name="E 016" prog="016" hbank="0" lbank="4"/>
+ <Patch name="E 017" prog="017" hbank="0" lbank="4"/>
+ <Patch name="E 018" prog="018" hbank="0" lbank="4"/>
+ <Patch name="E 019" prog="019" hbank="0" lbank="4"/>
+ <Patch name="E 020" prog="020" hbank="0" lbank="4"/>
+ <Patch name="E 021" prog="021" hbank="0" lbank="4"/>
+ <Patch name="E 022" prog="022" hbank="0" lbank="4"/>
+ <Patch name="E 023" prog="023" hbank="0" lbank="4"/>
+ <Patch name="E 024" prog="024" hbank="0" lbank="4"/>
+ <Patch name="E 025" prog="025" hbank="0" lbank="4"/>
+ <Patch name="E 026" prog="026" hbank="0" lbank="4"/>
+ <Patch name="E 027" prog="027" hbank="0" lbank="4"/>
+ <Patch name="E 028" prog="028" hbank="0" lbank="4"/>
+ <Patch name="E 029" prog="029" hbank="0" lbank="4"/>
+ <Patch name="E 030" prog="030" hbank="0" lbank="4"/>
+ <Patch name="E 031" prog="031" hbank="0" lbank="4"/>
+ <Patch name="E 032" prog="032" hbank="0" lbank="4"/>
+ <Patch name="E 033" prog="033" hbank="0" lbank="4"/>
+ <Patch name="E 034" prog="034" hbank="0" lbank="4"/>
+ <Patch name="E 035" prog="035" hbank="0" lbank="4"/>
+ <Patch name="E 036" prog="036" hbank="0" lbank="4"/>
+ <Patch name="E 037" prog="037" hbank="0" lbank="4"/>
+ <Patch name="E 038" prog="038" hbank="0" lbank="4"/>
+ <Patch name="E 039" prog="039" hbank="0" lbank="4"/>
+ <Patch name="E 040" prog="040" hbank="0" lbank="4"/>
+ <Patch name="E 041" prog="041" hbank="0" lbank="4"/>
+ <Patch name="E 042" prog="042" hbank="0" lbank="4"/>
+ <Patch name="E 043" prog="043" hbank="0" lbank="4"/>
+ <Patch name="E 044" prog="044" hbank="0" lbank="4"/>
+ <Patch name="E 045" prog="045" hbank="0" lbank="4"/>
+ <Patch name="E 046" prog="046" hbank="0" lbank="4"/>
+ <Patch name="E 047" prog="047" hbank="0" lbank="4"/>
+ <Patch name="E 048" prog="048" hbank="0" lbank="4"/>
+ <Patch name="E 049" prog="049" hbank="0" lbank="4"/>
+ <Patch name="E 050" prog="050" hbank="0" lbank="4"/>
+ <Patch name="E 051" prog="051" hbank="0" lbank="4"/>
+ <Patch name="E 052" prog="052" hbank="0" lbank="4"/>
+ <Patch name="E 053" prog="053" hbank="0" lbank="4"/>
+ <Patch name="E 054" prog="054" hbank="0" lbank="4"/>
+ <Patch name="E 055" prog="055" hbank="0" lbank="4"/>
+ <Patch name="E 056" prog="056" hbank="0" lbank="4"/>
+ <Patch name="E 057" prog="057" hbank="0" lbank="4"/>
+ <Patch name="E 058" prog="058" hbank="0" lbank="4"/>
+ <Patch name="E 059" prog="059" hbank="0" lbank="4"/>
+ <Patch name="E 060" prog="060" hbank="0" lbank="4"/>
+ <Patch name="E 061" prog="061" hbank="0" lbank="4"/>
+ <Patch name="E 062" prog="062" hbank="0" lbank="4"/>
+ <Patch name="E 063" prog="063" hbank="0" lbank="4"/>
+ <Patch name="E 064" prog="064" hbank="0" lbank="4"/>
+ <Patch name="E 065" prog="065" hbank="0" lbank="4"/>
+ <Patch name="E 066" prog="066" hbank="0" lbank="4"/>
+ <Patch name="E 067" prog="067" hbank="0" lbank="4"/>
+ <Patch name="E 068" prog="068" hbank="0" lbank="4"/>
+ <Patch name="E 069" prog="069" hbank="0" lbank="4"/>
+ <Patch name="E 070" prog="070" hbank="0" lbank="4"/>
+ <Patch name="E 071" prog="071" hbank="0" lbank="4"/>
+ <Patch name="E 072" prog="072" hbank="0" lbank="4"/>
+ <Patch name="E 073" prog="073" hbank="0" lbank="4"/>
+ <Patch name="E 074" prog="074" hbank="0" lbank="4"/>
+ <Patch name="E 075" prog="075" hbank="0" lbank="4"/>
+ <Patch name="E 076" prog="076" hbank="0" lbank="4"/>
+ <Patch name="E 077" prog="077" hbank="0" lbank="4"/>
+ <Patch name="E 078" prog="078" hbank="0" lbank="4"/>
+ <Patch name="E 079" prog="079" hbank="0" lbank="4"/>
+ <Patch name="E 080" prog="080" hbank="0" lbank="4"/>
+ <Patch name="E 081" prog="081" hbank="0" lbank="4"/>
+ <Patch name="E 082" prog="082" hbank="0" lbank="4"/>
+ <Patch name="E 083" prog="083" hbank="0" lbank="4"/>
+ <Patch name="E 084" prog="084" hbank="0" lbank="4"/>
+ <Patch name="E 085" prog="085" hbank="0" lbank="4"/>
+ <Patch name="E 086" prog="086" hbank="0" lbank="4"/>
+ <Patch name="E 087" prog="087" hbank="0" lbank="4"/>
+ <Patch name="E 088" prog="088" hbank="0" lbank="4"/>
+ <Patch name="E 089" prog="089" hbank="0" lbank="4"/>
+ <Patch name="E 090" prog="090" hbank="0" lbank="4"/>
+ <Patch name="E 091" prog="091" hbank="0" lbank="4"/>
+ <Patch name="E 092" prog="092" hbank="0" lbank="4"/>
+ <Patch name="E 093" prog="093" hbank="0" lbank="4"/>
+ <Patch name="E 094" prog="094" hbank="0" lbank="4"/>
+ <Patch name="E 095" prog="095" hbank="0" lbank="4"/>
+ <Patch name="E 096" prog="096" hbank="0" lbank="4"/>
+ <Patch name="E 097" prog="097" hbank="0" lbank="4"/>
+ <Patch name="E 098" prog="098" hbank="0" lbank="4"/>
+ <Patch name="E 099" prog="099" hbank="0" lbank="4"/>
+ <Patch name="E 100" prog="100" hbank="0" lbank="4"/>
+ <Patch name="E 101" prog="101" hbank="0" lbank="4"/>
+ <Patch name="E 102" prog="102" hbank="0" lbank="4"/>
+ <Patch name="E 103" prog="103" hbank="0" lbank="4"/>
+ <Patch name="E 104" prog="104" hbank="0" lbank="4"/>
+ <Patch name="E 105" prog="105" hbank="0" lbank="4"/>
+ <Patch name="E 106" prog="106" hbank="0" lbank="4"/>
+ <Patch name="E 107" prog="107" hbank="0" lbank="4"/>
+ <Patch name="E 108" prog="108" hbank="0" lbank="4"/>
+ <Patch name="E 109" prog="109" hbank="0" lbank="4"/>
+ <Patch name="E 110" prog="110" hbank="0" lbank="4"/>
+ <Patch name="E 111" prog="111" hbank="0" lbank="4"/>
+ <Patch name="E 112" prog="112" hbank="0" lbank="4"/>
+ <Patch name="E 113" prog="113" hbank="0" lbank="4"/>
+ <Patch name="E 114" prog="114" hbank="0" lbank="4"/>
+ <Patch name="E 115" prog="115" hbank="0" lbank="4"/>
+ <Patch name="E 116" prog="116" hbank="0" lbank="4"/>
+ <Patch name="E 117" prog="117" hbank="0" lbank="4"/>
+ <Patch name="E 118" prog="118" hbank="0" lbank="4"/>
+ <Patch name="E 119" prog="119" hbank="0" lbank="4"/>
+ <Patch name="E 120" prog="120" hbank="0" lbank="4"/>
+ <Patch name="E 121" prog="121" hbank="0" lbank="4"/>
+ <Patch name="E 122" prog="122" hbank="0" lbank="4"/>
+ <Patch name="E 123" prog="123" hbank="0" lbank="4"/>
+ <Patch name="E 124" prog="124" hbank="0" lbank="4"/>
+ <Patch name="E 125" prog="125" hbank="0" lbank="4"/>
+ <Patch name="E 126" prog="126" hbank="0" lbank="4"/>
+ <Patch name="E 127" prog="127" hbank="0" lbank="4"/>
+ </PatchGroup>
+ <PatchGroup name="Bank F">
+ <Patch name="F 000" prog="000" hbank="0" lbank="5"/>
+ <Patch name="F 001" prog="001" hbank="0" lbank="5"/>
+ <Patch name="F 002" prog="002" hbank="0" lbank="5"/>
+ <Patch name="F 003" prog="003" hbank="0" lbank="5"/>
+ <Patch name="F 004" prog="004" hbank="0" lbank="5"/>
+ <Patch name="F 005" prog="005" hbank="0" lbank="5"/>
+ <Patch name="F 006" prog="006" hbank="0" lbank="5"/>
+ <Patch name="F 007" prog="007" hbank="0" lbank="5"/>
+ <Patch name="F 008" prog="008" hbank="0" lbank="5"/>
+ <Patch name="F 009" prog="009" hbank="0" lbank="5"/>
+ <Patch name="F 010" prog="010" hbank="0" lbank="5"/>
+ <Patch name="F 011" prog="011" hbank="0" lbank="5"/>
+ <Patch name="F 012" prog="012" hbank="0" lbank="5"/>
+ <Patch name="F 013" prog="013" hbank="0" lbank="5"/>
+ <Patch name="F 014" prog="014" hbank="0" lbank="5"/>
+ <Patch name="F 015" prog="015" hbank="0" lbank="5"/>
+ <Patch name="F 016" prog="016" hbank="0" lbank="5"/>
+ <Patch name="F 017" prog="017" hbank="0" lbank="5"/>
+ <Patch name="F 018" prog="018" hbank="0" lbank="5"/>
+ <Patch name="F 019" prog="019" hbank="0" lbank="5"/>
+ <Patch name="F 020" prog="020" hbank="0" lbank="5"/>
+ <Patch name="F 021" prog="021" hbank="0" lbank="5"/>
+ <Patch name="F 022" prog="022" hbank="0" lbank="5"/>
+ <Patch name="F 023" prog="023" hbank="0" lbank="5"/>
+ <Patch name="F 024" prog="024" hbank="0" lbank="5"/>
+ <Patch name="F 025" prog="025" hbank="0" lbank="5"/>
+ <Patch name="F 026" prog="026" hbank="0" lbank="5"/>
+ <Patch name="F 027" prog="027" hbank="0" lbank="5"/>
+ <Patch name="F 028" prog="028" hbank="0" lbank="5"/>
+ <Patch name="F 029" prog="029" hbank="0" lbank="5"/>
+ <Patch name="F 030" prog="030" hbank="0" lbank="5"/>
+ <Patch name="F 031" prog="031" hbank="0" lbank="5"/>
+ <Patch name="F 032" prog="032" hbank="0" lbank="5"/>
+ <Patch name="F 033" prog="033" hbank="0" lbank="5"/>
+ <Patch name="F 034" prog="034" hbank="0" lbank="5"/>
+ <Patch name="F 035" prog="035" hbank="0" lbank="5"/>
+ <Patch name="F 036" prog="036" hbank="0" lbank="5"/>
+ <Patch name="F 037" prog="037" hbank="0" lbank="5"/>
+ <Patch name="F 038" prog="038" hbank="0" lbank="5"/>
+ <Patch name="F 039" prog="039" hbank="0" lbank="5"/>
+ <Patch name="F 040" prog="040" hbank="0" lbank="5"/>
+ <Patch name="F 041" prog="041" hbank="0" lbank="5"/>
+ <Patch name="F 042" prog="042" hbank="0" lbank="5"/>
+ <Patch name="F 043" prog="043" hbank="0" lbank="5"/>
+ <Patch name="F 044" prog="044" hbank="0" lbank="5"/>
+ <Patch name="F 045" prog="045" hbank="0" lbank="5"/>
+ <Patch name="F 046" prog="046" hbank="0" lbank="5"/>
+ <Patch name="F 047" prog="047" hbank="0" lbank="5"/>
+ <Patch name="F 048" prog="048" hbank="0" lbank="5"/>
+ <Patch name="F 049" prog="049" hbank="0" lbank="5"/>
+ <Patch name="F 050" prog="050" hbank="0" lbank="5"/>
+ <Patch name="F 051" prog="051" hbank="0" lbank="5"/>
+ <Patch name="F 052" prog="052" hbank="0" lbank="5"/>
+ <Patch name="F 053" prog="053" hbank="0" lbank="5"/>
+ <Patch name="F 054" prog="054" hbank="0" lbank="5"/>
+ <Patch name="F 055" prog="055" hbank="0" lbank="5"/>
+ <Patch name="F 056" prog="056" hbank="0" lbank="5"/>
+ <Patch name="F 057" prog="057" hbank="0" lbank="5"/>
+ <Patch name="F 058" prog="058" hbank="0" lbank="5"/>
+ <Patch name="F 059" prog="059" hbank="0" lbank="5"/>
+ <Patch name="F 060" prog="060" hbank="0" lbank="5"/>
+ <Patch name="F 061" prog="061" hbank="0" lbank="5"/>
+ <Patch name="F 062" prog="062" hbank="0" lbank="5"/>
+ <Patch name="F 063" prog="063" hbank="0" lbank="5"/>
+ <Patch name="F 064" prog="064" hbank="0" lbank="5"/>
+ <Patch name="F 065" prog="065" hbank="0" lbank="5"/>
+ <Patch name="F 066" prog="066" hbank="0" lbank="5"/>
+ <Patch name="F 067" prog="067" hbank="0" lbank="5"/>
+ <Patch name="F 068" prog="068" hbank="0" lbank="5"/>
+ <Patch name="F 069" prog="069" hbank="0" lbank="5"/>
+ <Patch name="F 070" prog="070" hbank="0" lbank="5"/>
+ <Patch name="F 071" prog="071" hbank="0" lbank="5"/>
+ <Patch name="F 072" prog="072" hbank="0" lbank="5"/>
+ <Patch name="F 073" prog="073" hbank="0" lbank="5"/>
+ <Patch name="F 074" prog="074" hbank="0" lbank="5"/>
+ <Patch name="F 075" prog="075" hbank="0" lbank="5"/>
+ <Patch name="F 076" prog="076" hbank="0" lbank="5"/>
+ <Patch name="F 077" prog="077" hbank="0" lbank="5"/>
+ <Patch name="F 078" prog="078" hbank="0" lbank="5"/>
+ <Patch name="F 079" prog="079" hbank="0" lbank="5"/>
+ <Patch name="F 080" prog="080" hbank="0" lbank="5"/>
+ <Patch name="F 081" prog="081" hbank="0" lbank="5"/>
+ <Patch name="F 082" prog="082" hbank="0" lbank="5"/>
+ <Patch name="F 083" prog="083" hbank="0" lbank="5"/>
+ <Patch name="F 084" prog="084" hbank="0" lbank="5"/>
+ <Patch name="F 085" prog="085" hbank="0" lbank="5"/>
+ <Patch name="F 086" prog="086" hbank="0" lbank="5"/>
+ <Patch name="F 087" prog="087" hbank="0" lbank="5"/>
+ <Patch name="F 088" prog="088" hbank="0" lbank="5"/>
+ <Patch name="F 089" prog="089" hbank="0" lbank="5"/>
+ <Patch name="F 090" prog="090" hbank="0" lbank="5"/>
+ <Patch name="F 091" prog="091" hbank="0" lbank="5"/>
+ <Patch name="F 092" prog="092" hbank="0" lbank="5"/>
+ <Patch name="F 093" prog="093" hbank="0" lbank="5"/>
+ <Patch name="F 094" prog="094" hbank="0" lbank="5"/>
+ <Patch name="F 095" prog="095" hbank="0" lbank="5"/>
+ <Patch name="F 096" prog="096" hbank="0" lbank="5"/>
+ <Patch name="F 097" prog="097" hbank="0" lbank="5"/>
+ <Patch name="F 098" prog="098" hbank="0" lbank="5"/>
+ <Patch name="F 099" prog="099" hbank="0" lbank="5"/>
+ <Patch name="F 100" prog="100" hbank="0" lbank="5"/>
+ <Patch name="F 101" prog="101" hbank="0" lbank="5"/>
+ <Patch name="F 102" prog="102" hbank="0" lbank="5"/>
+ <Patch name="F 103" prog="103" hbank="0" lbank="5"/>
+ <Patch name="F 104" prog="104" hbank="0" lbank="5"/>
+ <Patch name="F 105" prog="105" hbank="0" lbank="5"/>
+ <Patch name="F 106" prog="106" hbank="0" lbank="5"/>
+ <Patch name="F 107" prog="107" hbank="0" lbank="5"/>
+ <Patch name="F 108" prog="108" hbank="0" lbank="5"/>
+ <Patch name="F 109" prog="109" hbank="0" lbank="5"/>
+ <Patch name="F 110" prog="110" hbank="0" lbank="5"/>
+ <Patch name="F 111" prog="111" hbank="0" lbank="5"/>
+ <Patch name="F 112" prog="112" hbank="0" lbank="5"/>
+ <Patch name="F 113" prog="113" hbank="0" lbank="5"/>
+ <Patch name="F 114" prog="114" hbank="0" lbank="5"/>
+ <Patch name="F 115" prog="115" hbank="0" lbank="5"/>
+ <Patch name="F 116" prog="116" hbank="0" lbank="5"/>
+ <Patch name="F 117" prog="117" hbank="0" lbank="5"/>
+ <Patch name="F 118" prog="118" hbank="0" lbank="5"/>
+ <Patch name="F 119" prog="119" hbank="0" lbank="5"/>
+ <Patch name="F 120" prog="120" hbank="0" lbank="5"/>
+ <Patch name="F 121" prog="121" hbank="0" lbank="5"/>
+ <Patch name="F 122" prog="122" hbank="0" lbank="5"/>
+ <Patch name="F 123" prog="123" hbank="0" lbank="5"/>
+ <Patch name="F 124" prog="124" hbank="0" lbank="5"/>
+ <Patch name="F 125" prog="125" hbank="0" lbank="5"/>
+ <Patch name="F 126" prog="126" hbank="0" lbank="5"/>
+ <Patch name="F 127" prog="127" hbank="0" lbank="5"/>
+ </PatchGroup>
+ <PatchGroup name="Bank G">
+ <Patch name="G 000" prog="000" hbank="0" lbank="6"/>
+ <Patch name="G 001" prog="001" hbank="0" lbank="6"/>
+ <Patch name="G 002" prog="002" hbank="0" lbank="6"/>
+ <Patch name="G 003" prog="003" hbank="0" lbank="6"/>
+ <Patch name="G 004" prog="004" hbank="0" lbank="6"/>
+ <Patch name="G 005" prog="005" hbank="0" lbank="6"/>
+ <Patch name="G 006" prog="006" hbank="0" lbank="6"/>
+ <Patch name="G 007" prog="007" hbank="0" lbank="6"/>
+ <Patch name="G 008" prog="008" hbank="0" lbank="6"/>
+ <Patch name="G 009" prog="009" hbank="0" lbank="6"/>
+ <Patch name="G 010" prog="010" hbank="0" lbank="6"/>
+ <Patch name="G 011" prog="011" hbank="0" lbank="6"/>
+ <Patch name="G 012" prog="012" hbank="0" lbank="6"/>
+ <Patch name="G 013" prog="013" hbank="0" lbank="6"/>
+ <Patch name="G 014" prog="014" hbank="0" lbank="6"/>
+ <Patch name="G 015" prog="015" hbank="0" lbank="6"/>
+ <Patch name="G 016" prog="016" hbank="0" lbank="6"/>
+ <Patch name="G 017" prog="017" hbank="0" lbank="6"/>
+ <Patch name="G 018" prog="018" hbank="0" lbank="6"/>
+ <Patch name="G 019" prog="019" hbank="0" lbank="6"/>
+ <Patch name="G 020" prog="020" hbank="0" lbank="6"/>
+ <Patch name="G 021" prog="021" hbank="0" lbank="6"/>
+ <Patch name="G 022" prog="022" hbank="0" lbank="6"/>
+ <Patch name="G 023" prog="023" hbank="0" lbank="6"/>
+ <Patch name="G 024" prog="024" hbank="0" lbank="6"/>
+ <Patch name="G 025" prog="025" hbank="0" lbank="6"/>
+ <Patch name="G 026" prog="026" hbank="0" lbank="6"/>
+ <Patch name="G 027" prog="027" hbank="0" lbank="6"/>
+ <Patch name="G 028" prog="028" hbank="0" lbank="6"/>
+ <Patch name="G 029" prog="029" hbank="0" lbank="6"/>
+ <Patch name="G 030" prog="030" hbank="0" lbank="6"/>
+ <Patch name="G 031" prog="031" hbank="0" lbank="6"/>
+ <Patch name="G 032" prog="032" hbank="0" lbank="6"/>
+ <Patch name="G 033" prog="033" hbank="0" lbank="6"/>
+ <Patch name="G 034" prog="034" hbank="0" lbank="6"/>
+ <Patch name="G 035" prog="035" hbank="0" lbank="6"/>
+ <Patch name="G 036" prog="036" hbank="0" lbank="6"/>
+ <Patch name="G 037" prog="037" hbank="0" lbank="6"/>
+ <Patch name="G 038" prog="038" hbank="0" lbank="6"/>
+ <Patch name="G 039" prog="039" hbank="0" lbank="6"/>
+ <Patch name="G 040" prog="040" hbank="0" lbank="6"/>
+ <Patch name="G 041" prog="041" hbank="0" lbank="6"/>
+ <Patch name="G 042" prog="042" hbank="0" lbank="6"/>
+ <Patch name="G 043" prog="043" hbank="0" lbank="6"/>
+ <Patch name="G 044" prog="044" hbank="0" lbank="6"/>
+ <Patch name="G 045" prog="045" hbank="0" lbank="6"/>
+ <Patch name="G 046" prog="046" hbank="0" lbank="6"/>
+ <Patch name="G 047" prog="047" hbank="0" lbank="6"/>
+ <Patch name="G 048" prog="048" hbank="0" lbank="6"/>
+ <Patch name="G 049" prog="049" hbank="0" lbank="6"/>
+ <Patch name="G 050" prog="050" hbank="0" lbank="6"/>
+ <Patch name="G 051" prog="051" hbank="0" lbank="6"/>
+ <Patch name="G 052" prog="052" hbank="0" lbank="6"/>
+ <Patch name="G 053" prog="053" hbank="0" lbank="6"/>
+ <Patch name="G 054" prog="054" hbank="0" lbank="6"/>
+ <Patch name="G 055" prog="055" hbank="0" lbank="6"/>
+ <Patch name="G 056" prog="056" hbank="0" lbank="6"/>
+ <Patch name="G 057" prog="057" hbank="0" lbank="6"/>
+ <Patch name="G 058" prog="058" hbank="0" lbank="6"/>
+ <Patch name="G 059" prog="059" hbank="0" lbank="6"/>
+ <Patch name="G 060" prog="060" hbank="0" lbank="6"/>
+ <Patch name="G 061" prog="061" hbank="0" lbank="6"/>
+ <Patch name="G 062" prog="062" hbank="0" lbank="6"/>
+ <Patch name="G 063" prog="063" hbank="0" lbank="6"/>
+ <Patch name="G 064" prog="064" hbank="0" lbank="6"/>
+ <Patch name="G 065" prog="065" hbank="0" lbank="6"/>
+ <Patch name="G 066" prog="066" hbank="0" lbank="6"/>
+ <Patch name="G 067" prog="067" hbank="0" lbank="6"/>
+ <Patch name="G 068" prog="068" hbank="0" lbank="6"/>
+ <Patch name="G 069" prog="069" hbank="0" lbank="6"/>
+ <Patch name="G 070" prog="070" hbank="0" lbank="6"/>
+ <Patch name="G 071" prog="071" hbank="0" lbank="6"/>
+ <Patch name="G 072" prog="072" hbank="0" lbank="6"/>
+ <Patch name="G 073" prog="073" hbank="0" lbank="6"/>
+ <Patch name="G 074" prog="074" hbank="0" lbank="6"/>
+ <Patch name="G 075" prog="075" hbank="0" lbank="6"/>
+ <Patch name="G 076" prog="076" hbank="0" lbank="6"/>
+ <Patch name="G 077" prog="077" hbank="0" lbank="6"/>
+ <Patch name="G 078" prog="078" hbank="0" lbank="6"/>
+ <Patch name="G 079" prog="079" hbank="0" lbank="6"/>
+ <Patch name="G 080" prog="080" hbank="0" lbank="6"/>
+ <Patch name="G 081" prog="081" hbank="0" lbank="6"/>
+ <Patch name="G 082" prog="082" hbank="0" lbank="6"/>
+ <Patch name="G 083" prog="083" hbank="0" lbank="6"/>
+ <Patch name="G 084" prog="084" hbank="0" lbank="6"/>
+ <Patch name="G 085" prog="085" hbank="0" lbank="6"/>
+ <Patch name="G 086" prog="086" hbank="0" lbank="6"/>
+ <Patch name="G 087" prog="087" hbank="0" lbank="6"/>
+ <Patch name="G 088" prog="088" hbank="0" lbank="6"/>
+ <Patch name="G 089" prog="089" hbank="0" lbank="6"/>
+ <Patch name="G 090" prog="090" hbank="0" lbank="6"/>
+ <Patch name="G 091" prog="091" hbank="0" lbank="6"/>
+ <Patch name="G 092" prog="092" hbank="0" lbank="6"/>
+ <Patch name="G 093" prog="093" hbank="0" lbank="6"/>
+ <Patch name="G 094" prog="094" hbank="0" lbank="6"/>
+ <Patch name="G 095" prog="095" hbank="0" lbank="6"/>
+ <Patch name="G 096" prog="096" hbank="0" lbank="6"/>
+ <Patch name="G 097" prog="097" hbank="0" lbank="6"/>
+ <Patch name="G 098" prog="098" hbank="0" lbank="6"/>
+ <Patch name="G 099" prog="099" hbank="0" lbank="6"/>
+ <Patch name="G 100" prog="100" hbank="0" lbank="6"/>
+ <Patch name="G 101" prog="101" hbank="0" lbank="6"/>
+ <Patch name="G 102" prog="102" hbank="0" lbank="6"/>
+ <Patch name="G 103" prog="103" hbank="0" lbank="6"/>
+ <Patch name="G 104" prog="104" hbank="0" lbank="6"/>
+ <Patch name="G 105" prog="105" hbank="0" lbank="6"/>
+ <Patch name="G 106" prog="106" hbank="0" lbank="6"/>
+ <Patch name="G 107" prog="107" hbank="0" lbank="6"/>
+ <Patch name="G 108" prog="108" hbank="0" lbank="6"/>
+ <Patch name="G 109" prog="109" hbank="0" lbank="6"/>
+ <Patch name="G 110" prog="110" hbank="0" lbank="6"/>
+ <Patch name="G 111" prog="111" hbank="0" lbank="6"/>
+ <Patch name="G 112" prog="112" hbank="0" lbank="6"/>
+ <Patch name="G 113" prog="113" hbank="0" lbank="6"/>
+ <Patch name="G 114" prog="114" hbank="0" lbank="6"/>
+ <Patch name="G 115" prog="115" hbank="0" lbank="6"/>
+ <Patch name="G 116" prog="116" hbank="0" lbank="6"/>
+ <Patch name="G 117" prog="117" hbank="0" lbank="6"/>
+ <Patch name="G 118" prog="118" hbank="0" lbank="6"/>
+ <Patch name="G 119" prog="119" hbank="0" lbank="6"/>
+ <Patch name="G 120" prog="120" hbank="0" lbank="6"/>
+ <Patch name="G 121" prog="121" hbank="0" lbank="6"/>
+ <Patch name="G 122" prog="122" hbank="0" lbank="6"/>
+ <Patch name="G 123" prog="123" hbank="0" lbank="6"/>
+ <Patch name="G 124" prog="124" hbank="0" lbank="6"/>
+ <Patch name="G 125" prog="125" hbank="0" lbank="6"/>
+ <Patch name="G 126" prog="126" hbank="0" lbank="6"/>
+ <Patch name="G 127" prog="127" hbank="0" lbank="6"/>
+ </PatchGroup>
+ <PatchGroup name="Bank H">
+ <Patch name="H 000" prog="000" hbank="0" lbank="7"/>
+ <Patch name="H 001" prog="001" hbank="0" lbank="7"/>
+ <Patch name="H 002" prog="002" hbank="0" lbank="7"/>
+ <Patch name="H 003" prog="003" hbank="0" lbank="7"/>
+ <Patch name="H 004" prog="004" hbank="0" lbank="7"/>
+ <Patch name="H 005" prog="005" hbank="0" lbank="7"/>
+ <Patch name="H 006" prog="006" hbank="0" lbank="7"/>
+ <Patch name="H 007" prog="007" hbank="0" lbank="7"/>
+ <Patch name="H 008" prog="008" hbank="0" lbank="7"/>
+ <Patch name="H 009" prog="009" hbank="0" lbank="7"/>
+ <Patch name="H 010" prog="010" hbank="0" lbank="7"/>
+ <Patch name="H 011" prog="011" hbank="0" lbank="7"/>
+ <Patch name="H 012" prog="012" hbank="0" lbank="7"/>
+ <Patch name="H 013" prog="013" hbank="0" lbank="7"/>
+ <Patch name="H 014" prog="014" hbank="0" lbank="7"/>
+ <Patch name="H 015" prog="015" hbank="0" lbank="7"/>
+ <Patch name="H 016" prog="016" hbank="0" lbank="7"/>
+ <Patch name="H 017" prog="017" hbank="0" lbank="7"/>
+ <Patch name="H 018" prog="018" hbank="0" lbank="7"/>
+ <Patch name="H 019" prog="019" hbank="0" lbank="7"/>
+ <Patch name="H 020" prog="020" hbank="0" lbank="7"/>
+ <Patch name="H 021" prog="021" hbank="0" lbank="7"/>
+ <Patch name="H 022" prog="022" hbank="0" lbank="7"/>
+ <Patch name="H 023" prog="023" hbank="0" lbank="7"/>
+ <Patch name="H 024" prog="024" hbank="0" lbank="7"/>
+ <Patch name="H 025" prog="025" hbank="0" lbank="7"/>
+ <Patch name="H 026" prog="026" hbank="0" lbank="7"/>
+ <Patch name="H 027" prog="027" hbank="0" lbank="7"/>
+ <Patch name="H 028" prog="028" hbank="0" lbank="7"/>
+ <Patch name="H 029" prog="029" hbank="0" lbank="7"/>
+ <Patch name="H 030" prog="030" hbank="0" lbank="7"/>
+ <Patch name="H 031" prog="031" hbank="0" lbank="7"/>
+ <Patch name="H 032" prog="032" hbank="0" lbank="7"/>
+ <Patch name="H 033" prog="033" hbank="0" lbank="7"/>
+ <Patch name="H 034" prog="034" hbank="0" lbank="7"/>
+ <Patch name="H 035" prog="035" hbank="0" lbank="7"/>
+ <Patch name="H 036" prog="036" hbank="0" lbank="7"/>
+ <Patch name="H 037" prog="037" hbank="0" lbank="7"/>
+ <Patch name="H 038" prog="038" hbank="0" lbank="7"/>
+ <Patch name="H 039" prog="039" hbank="0" lbank="7"/>
+ <Patch name="H 040" prog="040" hbank="0" lbank="7"/>
+ <Patch name="H 041" prog="041" hbank="0" lbank="7"/>
+ <Patch name="H 042" prog="042" hbank="0" lbank="7"/>
+ <Patch name="H 043" prog="043" hbank="0" lbank="7"/>
+ <Patch name="H 044" prog="044" hbank="0" lbank="7"/>
+ <Patch name="H 045" prog="045" hbank="0" lbank="7"/>
+ <Patch name="H 046" prog="046" hbank="0" lbank="7"/>
+ <Patch name="H 047" prog="047" hbank="0" lbank="7"/>
+ <Patch name="H 048" prog="048" hbank="0" lbank="7"/>
+ <Patch name="H 049" prog="049" hbank="0" lbank="7"/>
+ <Patch name="H 050" prog="050" hbank="0" lbank="7"/>
+ <Patch name="H 051" prog="051" hbank="0" lbank="7"/>
+ <Patch name="H 052" prog="052" hbank="0" lbank="7"/>
+ <Patch name="H 053" prog="053" hbank="0" lbank="7"/>
+ <Patch name="H 054" prog="054" hbank="0" lbank="7"/>
+ <Patch name="H 055" prog="055" hbank="0" lbank="7"/>
+ <Patch name="H 056" prog="056" hbank="0" lbank="7"/>
+ <Patch name="H 057" prog="057" hbank="0" lbank="7"/>
+ <Patch name="H 058" prog="058" hbank="0" lbank="7"/>
+ <Patch name="H 059" prog="059" hbank="0" lbank="7"/>
+ <Patch name="H 060" prog="060" hbank="0" lbank="7"/>
+ <Patch name="H 061" prog="061" hbank="0" lbank="7"/>
+ <Patch name="H 062" prog="062" hbank="0" lbank="7"/>
+ <Patch name="H 063" prog="063" hbank="0" lbank="7"/>
+ <Patch name="H 064" prog="064" hbank="0" lbank="7"/>
+ <Patch name="H 065" prog="065" hbank="0" lbank="7"/>
+ <Patch name="H 066" prog="066" hbank="0" lbank="7"/>
+ <Patch name="H 067" prog="067" hbank="0" lbank="7"/>
+ <Patch name="H 068" prog="068" hbank="0" lbank="7"/>
+ <Patch name="H 069" prog="069" hbank="0" lbank="7"/>
+ <Patch name="H 070" prog="070" hbank="0" lbank="7"/>
+ <Patch name="H 071" prog="071" hbank="0" lbank="7"/>
+ <Patch name="H 072" prog="072" hbank="0" lbank="7"/>
+ <Patch name="H 073" prog="073" hbank="0" lbank="7"/>
+ <Patch name="H 074" prog="074" hbank="0" lbank="7"/>
+ <Patch name="H 075" prog="075" hbank="0" lbank="7"/>
+ <Patch name="H 076" prog="076" hbank="0" lbank="7"/>
+ <Patch name="H 077" prog="077" hbank="0" lbank="7"/>
+ <Patch name="H 078" prog="078" hbank="0" lbank="7"/>
+ <Patch name="H 079" prog="079" hbank="0" lbank="7"/>
+ <Patch name="H 080" prog="080" hbank="0" lbank="7"/>
+ <Patch name="H 081" prog="081" hbank="0" lbank="7"/>
+ <Patch name="H 082" prog="082" hbank="0" lbank="7"/>
+ <Patch name="H 083" prog="083" hbank="0" lbank="7"/>
+ <Patch name="H 084" prog="084" hbank="0" lbank="7"/>
+ <Patch name="H 085" prog="085" hbank="0" lbank="7"/>
+ <Patch name="H 086" prog="086" hbank="0" lbank="7"/>
+ <Patch name="H 087" prog="087" hbank="0" lbank="7"/>
+ <Patch name="H 088" prog="088" hbank="0" lbank="7"/>
+ <Patch name="H 089" prog="089" hbank="0" lbank="7"/>
+ <Patch name="H 090" prog="090" hbank="0" lbank="7"/>
+ <Patch name="H 091" prog="091" hbank="0" lbank="7"/>
+ <Patch name="H 092" prog="092" hbank="0" lbank="7"/>
+ <Patch name="H 093" prog="093" hbank="0" lbank="7"/>
+ <Patch name="H 094" prog="094" hbank="0" lbank="7"/>
+ <Patch name="H 095" prog="095" hbank="0" lbank="7"/>
+ <Patch name="H 096" prog="096" hbank="0" lbank="7"/>
+ <Patch name="H 097" prog="097" hbank="0" lbank="7"/>
+ <Patch name="H 098" prog="098" hbank="0" lbank="7"/>
+ <Patch name="H 099" prog="099" hbank="0" lbank="7"/>
+ <Patch name="H 100" prog="100" hbank="0" lbank="7"/>
+ <Patch name="H 101" prog="101" hbank="0" lbank="7"/>
+ <Patch name="H 102" prog="102" hbank="0" lbank="7"/>
+ <Patch name="H 103" prog="103" hbank="0" lbank="7"/>
+ <Patch name="H 104" prog="104" hbank="0" lbank="7"/>
+ <Patch name="H 105" prog="105" hbank="0" lbank="7"/>
+ <Patch name="H 106" prog="106" hbank="0" lbank="7"/>
+ <Patch name="H 107" prog="107" hbank="0" lbank="7"/>
+ <Patch name="H 108" prog="108" hbank="0" lbank="7"/>
+ <Patch name="H 109" prog="109" hbank="0" lbank="7"/>
+ <Patch name="H 110" prog="110" hbank="0" lbank="7"/>
+ <Patch name="H 111" prog="111" hbank="0" lbank="7"/>
+ <Patch name="H 112" prog="112" hbank="0" lbank="7"/>
+ <Patch name="H 113" prog="113" hbank="0" lbank="7"/>
+ <Patch name="H 114" prog="114" hbank="0" lbank="7"/>
+ <Patch name="H 115" prog="115" hbank="0" lbank="7"/>
+ <Patch name="H 116" prog="116" hbank="0" lbank="7"/>
+ <Patch name="H 117" prog="117" hbank="0" lbank="7"/>
+ <Patch name="H 118" prog="118" hbank="0" lbank="7"/>
+ <Patch name="H 119" prog="119" hbank="0" lbank="7"/>
+ <Patch name="H 120" prog="120" hbank="0" lbank="7"/>
+ <Patch name="H 121" prog="121" hbank="0" lbank="7"/>
+ <Patch name="H 122" prog="122" hbank="0" lbank="7"/>
+ <Patch name="H 123" prog="123" hbank="0" lbank="7"/>
+ <Patch name="H 124" prog="124" hbank="0" lbank="7"/>
+ <Patch name="H 125" prog="125" hbank="0" lbank="7"/>
+ <Patch name="H 126" prog="126" hbank="0" lbank="7"/>
+ <Patch name="H 127" prog="127" hbank="0" lbank="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Alesis-Ion.idf b/muse_qt4_evolution/share/instruments/Alesis-Ion.idf
new file mode 100644
index 00000000..a7ce3695
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Alesis-Ion.idf
@@ -0,0 +1,731 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Alesis Ion">
+ <Init>
+ </Init>
+
+ <PatchGroup name="Red">
+ <Patch name="Red 000" hbank="0" lbank="0" prog="0" />
+ <Patch name="Red 001" hbank="0" lbank="0" prog="1" />
+ <Patch name="Red 002" hbank="0" lbank="0" prog="2" />
+ <Patch name="Red 003" hbank="0" lbank="0" prog="3" />
+ <Patch name="Red 004" hbank="0" lbank="0" prog="4" />
+ <Patch name="Red 005" hbank="0" lbank="0" prog="5" />
+ <Patch name="Red 006" hbank="0" lbank="0" prog="6" />
+ <Patch name="Red 007" hbank="0" lbank="0" prog="7" />
+ <Patch name="Red 008" hbank="0" lbank="0" prog="8" />
+ <Patch name="Red 009" hbank="0" lbank="0" prog="9" />
+ <Patch name="Red 010" hbank="0" lbank="0" prog="10" />
+ <Patch name="Red 011" hbank="0" lbank="0" prog="11" />
+ <Patch name="Red 012" hbank="0" lbank="0" prog="12" />
+ <Patch name="Red 013" hbank="0" lbank="0" prog="13" />
+ <Patch name="Red 014" hbank="0" lbank="0" prog="14" />
+ <Patch name="Red 015" hbank="0" lbank="0" prog="15" />
+ <Patch name="Red 016" hbank="0" lbank="0" prog="16" />
+ <Patch name="Red 017" hbank="0" lbank="0" prog="17" />
+ <Patch name="Red 018" hbank="0" lbank="0" prog="18" />
+ <Patch name="Red 019" hbank="0" lbank="0" prog="19" />
+ <Patch name="Red 020" hbank="0" lbank="0" prog="20" />
+ <Patch name="Red 021" hbank="0" lbank="0" prog="21" />
+ <Patch name="Red 022" hbank="0" lbank="0" prog="22" />
+ <Patch name="Red 023" hbank="0" lbank="0" prog="23" />
+ <Patch name="Red 024" hbank="0" lbank="0" prog="24" />
+ <Patch name="Red 025" hbank="0" lbank="0" prog="25" />
+ <Patch name="Red 026" hbank="0" lbank="0" prog="26" />
+ <Patch name="Red 027" hbank="0" lbank="0" prog="27" />
+ <Patch name="Red 028" hbank="0" lbank="0" prog="28" />
+ <Patch name="Red 029" hbank="0" lbank="0" prog="29" />
+ <Patch name="Red 030" hbank="0" lbank="0" prog="30" />
+ <Patch name="Red 031" hbank="0" lbank="0" prog="31" />
+ <Patch name="Red 032" hbank="0" lbank="0" prog="32" />
+ <Patch name="Red 033" hbank="0" lbank="0" prog="33" />
+ <Patch name="Red 034" hbank="0" lbank="0" prog="34" />
+ <Patch name="Red 035" hbank="0" lbank="0" prog="35" />
+ <Patch name="Red 036" hbank="0" lbank="0" prog="36" />
+ <Patch name="Red 037" hbank="0" lbank="0" prog="37" />
+ <Patch name="Red 038" hbank="0" lbank="0" prog="38" />
+ <Patch name="Red 039" hbank="0" lbank="0" prog="39" />
+ <Patch name="Red 040" hbank="0" lbank="0" prog="40" />
+ <Patch name="Red 041" hbank="0" lbank="0" prog="41" />
+ <Patch name="Red 042" hbank="0" lbank="0" prog="42" />
+ <Patch name="Red 043" hbank="0" lbank="0" prog="43" />
+ <Patch name="Red 044" hbank="0" lbank="0" prog="44" />
+ <Patch name="Red 045" hbank="0" lbank="0" prog="45" />
+ <Patch name="Red 046" hbank="0" lbank="0" prog="46" />
+ <Patch name="Red 047" hbank="0" lbank="0" prog="47" />
+ <Patch name="Red 048" hbank="0" lbank="0" prog="48" />
+ <Patch name="Red 049" hbank="0" lbank="0" prog="49" />
+ <Patch name="Red 050" hbank="0" lbank="0" prog="50" />
+ <Patch name="Red 051" hbank="0" lbank="0" prog="51" />
+ <Patch name="Red 052" hbank="0" lbank="0" prog="52" />
+ <Patch name="Red 053" hbank="0" lbank="0" prog="53" />
+ <Patch name="Red 054" hbank="0" lbank="0" prog="54" />
+ <Patch name="Red 055" hbank="0" lbank="0" prog="55" />
+ <Patch name="Red 056" hbank="0" lbank="0" prog="56" />
+ <Patch name="Red 057" hbank="0" lbank="0" prog="57" />
+ <Patch name="Red 058" hbank="0" lbank="0" prog="58" />
+ <Patch name="Red 059" hbank="0" lbank="0" prog="59" />
+ <Patch name="Red 060" hbank="0" lbank="0" prog="60" />
+ <Patch name="Red 061" hbank="0" lbank="0" prog="61" />
+ <Patch name="Red 062" hbank="0" lbank="0" prog="62" />
+ <Patch name="Red 063" hbank="0" lbank="0" prog="63" />
+ <Patch name="Red 064" hbank="0" lbank="0" prog="64" />
+ <Patch name="Red 065" hbank="0" lbank="0" prog="65" />
+ <Patch name="Red 066" hbank="0" lbank="0" prog="66" />
+ <Patch name="Red 067" hbank="0" lbank="0" prog="67" />
+ <Patch name="Red 068" hbank="0" lbank="0" prog="68" />
+ <Patch name="Red 069" hbank="0" lbank="0" prog="69" />
+ <Patch name="Red 070" hbank="0" lbank="0" prog="70" />
+ <Patch name="Red 071" hbank="0" lbank="0" prog="71" />
+ <Patch name="Red 072" hbank="0" lbank="0" prog="72" />
+ <Patch name="Red 073" hbank="0" lbank="0" prog="73" />
+ <Patch name="Red 074" hbank="0" lbank="0" prog="74" />
+ <Patch name="Red 075" hbank="0" lbank="0" prog="75" />
+ <Patch name="Red 076" hbank="0" lbank="0" prog="76" />
+ <Patch name="Red 077" hbank="0" lbank="0" prog="77" />
+ <Patch name="Red 078" hbank="0" lbank="0" prog="78" />
+ <Patch name="Red 079" hbank="0" lbank="0" prog="79" />
+ <Patch name="Red 080" hbank="0" lbank="0" prog="80" />
+ <Patch name="Red 081" hbank="0" lbank="0" prog="81" />
+ <Patch name="Red 082" hbank="0" lbank="0" prog="82" />
+ <Patch name="Red 083" hbank="0" lbank="0" prog="83" />
+ <Patch name="Red 084" hbank="0" lbank="0" prog="84" />
+ <Patch name="Red 085" hbank="0" lbank="0" prog="85" />
+ <Patch name="Red 086" hbank="0" lbank="0" prog="86" />
+ <Patch name="Red 087" hbank="0" lbank="0" prog="87" />
+ <Patch name="Red 088" hbank="0" lbank="0" prog="88" />
+ <Patch name="Red 089" hbank="0" lbank="0" prog="89" />
+ <Patch name="Red 090" hbank="0" lbank="0" prog="90" />
+ <Patch name="Red 091" hbank="0" lbank="0" prog="91" />
+ <Patch name="Red 092" hbank="0" lbank="0" prog="92" />
+ <Patch name="Red 093" hbank="0" lbank="0" prog="93" />
+ <Patch name="Red 094" hbank="0" lbank="0" prog="94" />
+ <Patch name="Red 095" hbank="0" lbank="0" prog="95" />
+ <Patch name="Red 096" hbank="0" lbank="0" prog="96" />
+ <Patch name="Red 097" hbank="0" lbank="0" prog="97" />
+ <Patch name="Red 098" hbank="0" lbank="0" prog="98" />
+ <Patch name="Red 099" hbank="0" lbank="0" prog="99" />
+ <Patch name="Red 100" hbank="0" lbank="0" prog="100" />
+ <Patch name="Red 101" hbank="0" lbank="0" prog="101" />
+ <Patch name="Red 102" hbank="0" lbank="0" prog="102" />
+ <Patch name="Red 103" hbank="0" lbank="0" prog="103" />
+ <Patch name="Red 104" hbank="0" lbank="0" prog="104" />
+ <Patch name="Red 105" hbank="0" lbank="0" prog="105" />
+ <Patch name="Red 106" hbank="0" lbank="0" prog="106" />
+ <Patch name="Red 107" hbank="0" lbank="0" prog="107" />
+ <Patch name="Red 108" hbank="0" lbank="0" prog="108" />
+ <Patch name="Red 109" hbank="0" lbank="0" prog="109" />
+ <Patch name="Red 110" hbank="0" lbank="0" prog="110" />
+ <Patch name="Red 111" hbank="0" lbank="0" prog="111" />
+ <Patch name="Red 112" hbank="0" lbank="0" prog="112" />
+ <Patch name="Red 113" hbank="0" lbank="0" prog="113" />
+ <Patch name="Red 114" hbank="0" lbank="0" prog="114" />
+ <Patch name="Red 115" hbank="0" lbank="0" prog="115" />
+ <Patch name="Red 116" hbank="0" lbank="0" prog="116" />
+ <Patch name="Red 117" hbank="0" lbank="0" prog="117" />
+ <Patch name="Red 118" hbank="0" lbank="0" prog="118" />
+ <Patch name="Red 119" hbank="0" lbank="0" prog="119" />
+ <Patch name="Red 120" hbank="0" lbank="0" prog="120" />
+ <Patch name="Red 121" hbank="0" lbank="0" prog="121" />
+ <Patch name="Red 122" hbank="0" lbank="0" prog="122" />
+ <Patch name="Red 123" hbank="0" lbank="0" prog="123" />
+ <Patch name="Red 124" hbank="0" lbank="0" prog="124" />
+ <Patch name="Red 125" hbank="0" lbank="0" prog="125" />
+ <Patch name="Red 126" hbank="0" lbank="0" prog="126" />
+ <Patch name="Red 127" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+
+ <PatchGroup name="Green">
+ <Patch name="Green 000" hbank="1" lbank="0" prog="0" />
+ <Patch name="Green 001" hbank="1" lbank="0" prog="1" />
+ <Patch name="Green 002" hbank="1" lbank="0" prog="2" />
+ <Patch name="Green 003" hbank="1" lbank="0" prog="3" />
+ <Patch name="Green 004" hbank="1" lbank="0" prog="4" />
+ <Patch name="Green 005" hbank="1" lbank="0" prog="5" />
+ <Patch name="Green 006" hbank="1" lbank="0" prog="6" />
+ <Patch name="Green 007" hbank="1" lbank="0" prog="7" />
+ <Patch name="Green 008" hbank="1" lbank="0" prog="8" />
+ <Patch name="Green 009" hbank="1" lbank="0" prog="9" />
+ <Patch name="Green 010" hbank="1" lbank="0" prog="10" />
+ <Patch name="Green 011" hbank="1" lbank="0" prog="11" />
+ <Patch name="Green 012" hbank="1" lbank="0" prog="12" />
+ <Patch name="Green 013" hbank="1" lbank="0" prog="13" />
+ <Patch name="Green 014" hbank="1" lbank="0" prog="14" />
+ <Patch name="Green 015" hbank="1" lbank="0" prog="15" />
+ <Patch name="Green 016" hbank="1" lbank="0" prog="16" />
+ <Patch name="Green 017" hbank="1" lbank="0" prog="17" />
+ <Patch name="Green 018" hbank="1" lbank="0" prog="18" />
+ <Patch name="Green 019" hbank="1" lbank="0" prog="19" />
+ <Patch name="Green 020" hbank="1" lbank="0" prog="20" />
+ <Patch name="Green 021" hbank="1" lbank="0" prog="21" />
+ <Patch name="Green 022" hbank="1" lbank="0" prog="22" />
+ <Patch name="Green 023" hbank="1" lbank="0" prog="23" />
+ <Patch name="Green 024" hbank="1" lbank="0" prog="24" />
+ <Patch name="Green 025" hbank="1" lbank="0" prog="25" />
+ <Patch name="Green 026" hbank="1" lbank="0" prog="26" />
+ <Patch name="Green 027" hbank="1" lbank="0" prog="27" />
+ <Patch name="Green 028" hbank="1" lbank="0" prog="28" />
+ <Patch name="Green 029" hbank="1" lbank="0" prog="29" />
+ <Patch name="Green 030" hbank="1" lbank="0" prog="30" />
+ <Patch name="Green 031" hbank="1" lbank="0" prog="31" />
+ <Patch name="Green 032" hbank="1" lbank="0" prog="32" />
+ <Patch name="Green 033" hbank="1" lbank="0" prog="33" />
+ <Patch name="Green 034" hbank="1" lbank="0" prog="34" />
+ <Patch name="Green 035" hbank="1" lbank="0" prog="35" />
+ <Patch name="Green 036" hbank="1" lbank="0" prog="36" />
+ <Patch name="Green 037" hbank="1" lbank="0" prog="37" />
+ <Patch name="Green 038" hbank="1" lbank="0" prog="38" />
+ <Patch name="Green 039" hbank="1" lbank="0" prog="39" />
+ <Patch name="Green 040" hbank="1" lbank="0" prog="40" />
+ <Patch name="Green 041" hbank="1" lbank="0" prog="41" />
+ <Patch name="Green 042" hbank="1" lbank="0" prog="42" />
+ <Patch name="Green 043" hbank="1" lbank="0" prog="43" />
+ <Patch name="Green 044" hbank="1" lbank="0" prog="44" />
+ <Patch name="Green 045" hbank="1" lbank="0" prog="45" />
+ <Patch name="Green 046" hbank="1" lbank="0" prog="46" />
+ <Patch name="Green 047" hbank="1" lbank="0" prog="47" />
+ <Patch name="Green 048" hbank="1" lbank="0" prog="48" />
+ <Patch name="Green 049" hbank="1" lbank="0" prog="49" />
+ <Patch name="Green 050" hbank="1" lbank="0" prog="50" />
+ <Patch name="Green 051" hbank="1" lbank="0" prog="51" />
+ <Patch name="Green 052" hbank="1" lbank="0" prog="52" />
+ <Patch name="Green 053" hbank="1" lbank="0" prog="53" />
+ <Patch name="Green 054" hbank="1" lbank="0" prog="54" />
+ <Patch name="Green 055" hbank="1" lbank="0" prog="55" />
+ <Patch name="Green 056" hbank="1" lbank="0" prog="56" />
+ <Patch name="Green 057" hbank="1" lbank="0" prog="57" />
+ <Patch name="Green 058" hbank="1" lbank="0" prog="58" />
+ <Patch name="Green 059" hbank="1" lbank="0" prog="59" />
+ <Patch name="Green 060" hbank="1" lbank="0" prog="60" />
+ <Patch name="Green 061" hbank="1" lbank="0" prog="61" />
+ <Patch name="Green 062" hbank="1" lbank="0" prog="62" />
+ <Patch name="Green 063" hbank="1" lbank="0" prog="63" />
+ <Patch name="Green 064" hbank="1" lbank="0" prog="64" />
+ <Patch name="Green 065" hbank="1" lbank="0" prog="65" />
+ <Patch name="Green 066" hbank="1" lbank="0" prog="66" />
+ <Patch name="Green 067" hbank="1" lbank="0" prog="67" />
+ <Patch name="Green 068" hbank="1" lbank="0" prog="68" />
+ <Patch name="Green 069" hbank="1" lbank="0" prog="69" />
+ <Patch name="Green 070" hbank="1" lbank="0" prog="70" />
+ <Patch name="Green 071" hbank="1" lbank="0" prog="71" />
+ <Patch name="Green 072" hbank="1" lbank="0" prog="72" />
+ <Patch name="Green 073" hbank="1" lbank="0" prog="73" />
+ <Patch name="Green 074" hbank="1" lbank="0" prog="74" />
+ <Patch name="Green 075" hbank="1" lbank="0" prog="75" />
+ <Patch name="Green 076" hbank="1" lbank="0" prog="76" />
+ <Patch name="Green 077" hbank="1" lbank="0" prog="77" />
+ <Patch name="Green 078" hbank="1" lbank="0" prog="78" />
+ <Patch name="Green 079" hbank="1" lbank="0" prog="79" />
+ <Patch name="Green 080" hbank="1" lbank="0" prog="80" />
+ <Patch name="Green 081" hbank="1" lbank="0" prog="81" />
+ <Patch name="Green 082" hbank="1" lbank="0" prog="82" />
+ <Patch name="Green 083" hbank="1" lbank="0" prog="83" />
+ <Patch name="Green 084" hbank="1" lbank="0" prog="84" />
+ <Patch name="Green 085" hbank="1" lbank="0" prog="85" />
+ <Patch name="Green 086" hbank="1" lbank="0" prog="86" />
+ <Patch name="Green 087" hbank="1" lbank="0" prog="87" />
+ <Patch name="Green 088" hbank="1" lbank="0" prog="88" />
+ <Patch name="Green 089" hbank="1" lbank="0" prog="89" />
+ <Patch name="Green 090" hbank="1" lbank="0" prog="90" />
+ <Patch name="Green 091" hbank="1" lbank="0" prog="91" />
+ <Patch name="Green 092" hbank="1" lbank="0" prog="92" />
+ <Patch name="Green 093" hbank="1" lbank="0" prog="93" />
+ <Patch name="Green 094" hbank="1" lbank="0" prog="94" />
+ <Patch name="Green 095" hbank="1" lbank="0" prog="95" />
+ <Patch name="Green 096" hbank="1" lbank="0" prog="96" />
+ <Patch name="Green 097" hbank="1" lbank="0" prog="97" />
+ <Patch name="Green 098" hbank="1" lbank="0" prog="98" />
+ <Patch name="Green 099" hbank="1" lbank="0" prog="99" />
+ <Patch name="Green 100" hbank="1" lbank="0" prog="100" />
+ <Patch name="Green 101" hbank="1" lbank="0" prog="101" />
+ <Patch name="Green 102" hbank="1" lbank="0" prog="102" />
+ <Patch name="Green 103" hbank="1" lbank="0" prog="103" />
+ <Patch name="Green 104" hbank="1" lbank="0" prog="104" />
+ <Patch name="Green 105" hbank="1" lbank="0" prog="105" />
+ <Patch name="Green 106" hbank="1" lbank="0" prog="106" />
+ <Patch name="Green 107" hbank="1" lbank="0" prog="107" />
+ <Patch name="Green 108" hbank="1" lbank="0" prog="108" />
+ <Patch name="Green 109" hbank="1" lbank="0" prog="109" />
+ <Patch name="Green 110" hbank="1" lbank="0" prog="110" />
+ <Patch name="Green 111" hbank="1" lbank="0" prog="111" />
+ <Patch name="Green 112" hbank="1" lbank="0" prog="112" />
+ <Patch name="Green 113" hbank="1" lbank="0" prog="113" />
+ <Patch name="Green 114" hbank="1" lbank="0" prog="114" />
+ <Patch name="Green 115" hbank="1" lbank="0" prog="115" />
+ <Patch name="Green 116" hbank="1" lbank="0" prog="116" />
+ <Patch name="Green 117" hbank="1" lbank="0" prog="117" />
+ <Patch name="Green 118" hbank="1" lbank="0" prog="118" />
+ <Patch name="Green 119" hbank="1" lbank="0" prog="119" />
+ <Patch name="Green 120" hbank="1" lbank="0" prog="120" />
+ <Patch name="Green 121" hbank="1" lbank="0" prog="121" />
+ <Patch name="Green 122" hbank="1" lbank="0" prog="122" />
+ <Patch name="Green 123" hbank="1" lbank="0" prog="123" />
+ <Patch name="Green 124" hbank="1" lbank="0" prog="124" />
+ <Patch name="Green 125" hbank="1" lbank="0" prog="125" />
+ <Patch name="Green 126" hbank="1" lbank="0" prog="126" />
+ <Patch name="Green 127" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+
+ <PatchGroup name="Blue">
+ <Patch name="Blue 000" hbank="2" lbank="0" prog="0" />
+ <Patch name="Blue 001" hbank="2" lbank="0" prog="1" />
+ <Patch name="Blue 002" hbank="2" lbank="0" prog="2" />
+ <Patch name="Blue 003" hbank="2" lbank="0" prog="3" />
+ <Patch name="Blue 004" hbank="2" lbank="0" prog="4" />
+ <Patch name="Blue 005" hbank="2" lbank="0" prog="5" />
+ <Patch name="Blue 006" hbank="2" lbank="0" prog="6" />
+ <Patch name="Blue 007" hbank="2" lbank="0" prog="7" />
+ <Patch name="Blue 008" hbank="2" lbank="0" prog="8" />
+ <Patch name="Blue 009" hbank="2" lbank="0" prog="9" />
+ <Patch name="Blue 010" hbank="2" lbank="0" prog="10" />
+ <Patch name="Blue 011" hbank="2" lbank="0" prog="11" />
+ <Patch name="Blue 012" hbank="2" lbank="0" prog="12" />
+ <Patch name="Blue 013" hbank="2" lbank="0" prog="13" />
+ <Patch name="Blue 014" hbank="2" lbank="0" prog="14" />
+ <Patch name="Blue 015" hbank="2" lbank="0" prog="15" />
+ <Patch name="Blue 016" hbank="2" lbank="0" prog="16" />
+ <Patch name="Blue 017" hbank="2" lbank="0" prog="17" />
+ <Patch name="Blue 018" hbank="2" lbank="0" prog="18" />
+ <Patch name="Blue 019" hbank="2" lbank="0" prog="19" />
+ <Patch name="Blue 020" hbank="2" lbank="0" prog="20" />
+ <Patch name="Blue 021" hbank="2" lbank="0" prog="21" />
+ <Patch name="Blue 022" hbank="2" lbank="0" prog="22" />
+ <Patch name="Blue 023" hbank="2" lbank="0" prog="23" />
+ <Patch name="Blue 024" hbank="2" lbank="0" prog="24" />
+ <Patch name="Blue 025" hbank="2" lbank="0" prog="25" />
+ <Patch name="Blue 026" hbank="2" lbank="0" prog="26" />
+ <Patch name="Blue 027" hbank="2" lbank="0" prog="27" />
+ <Patch name="Blue 028" hbank="2" lbank="0" prog="28" />
+ <Patch name="Blue 029" hbank="2" lbank="0" prog="29" />
+ <Patch name="Blue 030" hbank="2" lbank="0" prog="30" />
+ <Patch name="Blue 031" hbank="2" lbank="0" prog="31" />
+ <Patch name="Blue 032" hbank="2" lbank="0" prog="32" />
+ <Patch name="Blue 033" hbank="2" lbank="0" prog="33" />
+ <Patch name="Blue 034" hbank="2" lbank="0" prog="34" />
+ <Patch name="Blue 035" hbank="2" lbank="0" prog="35" />
+ <Patch name="Blue 036" hbank="2" lbank="0" prog="36" />
+ <Patch name="Blue 037" hbank="2" lbank="0" prog="37" />
+ <Patch name="Blue 038" hbank="2" lbank="0" prog="38" />
+ <Patch name="Blue 039" hbank="2" lbank="0" prog="39" />
+ <Patch name="Blue 040" hbank="2" lbank="0" prog="40" />
+ <Patch name="Blue 041" hbank="2" lbank="0" prog="41" />
+ <Patch name="Blue 042" hbank="2" lbank="0" prog="42" />
+ <Patch name="Blue 043" hbank="2" lbank="0" prog="43" />
+ <Patch name="Blue 044" hbank="2" lbank="0" prog="44" />
+ <Patch name="Blue 045" hbank="2" lbank="0" prog="45" />
+ <Patch name="Blue 046" hbank="2" lbank="0" prog="46" />
+ <Patch name="Blue 047" hbank="2" lbank="0" prog="47" />
+ <Patch name="Blue 048" hbank="2" lbank="0" prog="48" />
+ <Patch name="Blue 049" hbank="2" lbank="0" prog="49" />
+ <Patch name="Blue 050" hbank="2" lbank="0" prog="50" />
+ <Patch name="Blue 051" hbank="2" lbank="0" prog="51" />
+ <Patch name="Blue 052" hbank="2" lbank="0" prog="52" />
+ <Patch name="Blue 053" hbank="2" lbank="0" prog="53" />
+ <Patch name="Blue 054" hbank="2" lbank="0" prog="54" />
+ <Patch name="Blue 055" hbank="2" lbank="0" prog="55" />
+ <Patch name="Blue 056" hbank="2" lbank="0" prog="56" />
+ <Patch name="Blue 057" hbank="2" lbank="0" prog="57" />
+ <Patch name="Blue 058" hbank="2" lbank="0" prog="58" />
+ <Patch name="Blue 059" hbank="2" lbank="0" prog="59" />
+ <Patch name="Blue 060" hbank="2" lbank="0" prog="60" />
+ <Patch name="Blue 061" hbank="2" lbank="0" prog="61" />
+ <Patch name="Blue 062" hbank="2" lbank="0" prog="62" />
+ <Patch name="Blue 063" hbank="2" lbank="0" prog="63" />
+ <Patch name="Blue 064" hbank="2" lbank="0" prog="64" />
+ <Patch name="Blue 065" hbank="2" lbank="0" prog="65" />
+ <Patch name="Blue 066" hbank="2" lbank="0" prog="66" />
+ <Patch name="Blue 067" hbank="2" lbank="0" prog="67" />
+ <Patch name="Blue 068" hbank="2" lbank="0" prog="68" />
+ <Patch name="Blue 069" hbank="2" lbank="0" prog="69" />
+ <Patch name="Blue 070" hbank="2" lbank="0" prog="70" />
+ <Patch name="Blue 071" hbank="2" lbank="0" prog="71" />
+ <Patch name="Blue 072" hbank="2" lbank="0" prog="72" />
+ <Patch name="Blue 073" hbank="2" lbank="0" prog="73" />
+ <Patch name="Blue 074" hbank="2" lbank="0" prog="74" />
+ <Patch name="Blue 075" hbank="2" lbank="0" prog="75" />
+ <Patch name="Blue 076" hbank="2" lbank="0" prog="76" />
+ <Patch name="Blue 077" hbank="2" lbank="0" prog="77" />
+ <Patch name="Blue 078" hbank="2" lbank="0" prog="78" />
+ <Patch name="Blue 079" hbank="2" lbank="0" prog="79" />
+ <Patch name="Blue 080" hbank="2" lbank="0" prog="80" />
+ <Patch name="Blue 081" hbank="2" lbank="0" prog="81" />
+ <Patch name="Blue 082" hbank="2" lbank="0" prog="82" />
+ <Patch name="Blue 083" hbank="2" lbank="0" prog="83" />
+ <Patch name="Blue 084" hbank="2" lbank="0" prog="84" />
+ <Patch name="Blue 085" hbank="2" lbank="0" prog="85" />
+ <Patch name="Blue 086" hbank="2" lbank="0" prog="86" />
+ <Patch name="Blue 087" hbank="2" lbank="0" prog="87" />
+ <Patch name="Blue 088" hbank="2" lbank="0" prog="88" />
+ <Patch name="Blue 089" hbank="2" lbank="0" prog="89" />
+ <Patch name="Blue 090" hbank="2" lbank="0" prog="90" />
+ <Patch name="Blue 091" hbank="2" lbank="0" prog="91" />
+ <Patch name="Blue 092" hbank="2" lbank="0" prog="92" />
+ <Patch name="Blue 093" hbank="2" lbank="0" prog="93" />
+ <Patch name="Blue 094" hbank="2" lbank="0" prog="94" />
+ <Patch name="Blue 095" hbank="2" lbank="0" prog="95" />
+ <Patch name="Blue 096" hbank="2" lbank="0" prog="96" />
+ <Patch name="Blue 097" hbank="2" lbank="0" prog="97" />
+ <Patch name="Blue 098" hbank="2" lbank="0" prog="98" />
+ <Patch name="Blue 099" hbank="2" lbank="0" prog="99" />
+ <Patch name="Blue 100" hbank="2" lbank="0" prog="100" />
+ <Patch name="Blue 101" hbank="2" lbank="0" prog="101" />
+ <Patch name="Blue 102" hbank="2" lbank="0" prog="102" />
+ <Patch name="Blue 103" hbank="2" lbank="0" prog="103" />
+ <Patch name="Blue 104" hbank="2" lbank="0" prog="104" />
+ <Patch name="Blue 105" hbank="2" lbank="0" prog="105" />
+ <Patch name="Blue 106" hbank="2" lbank="0" prog="106" />
+ <Patch name="Blue 107" hbank="2" lbank="0" prog="107" />
+ <Patch name="Blue 108" hbank="2" lbank="0" prog="108" />
+ <Patch name="Blue 109" hbank="2" lbank="0" prog="109" />
+ <Patch name="Blue 110" hbank="2" lbank="0" prog="110" />
+ <Patch name="Blue 111" hbank="2" lbank="0" prog="111" />
+ <Patch name="Blue 112" hbank="2" lbank="0" prog="112" />
+ <Patch name="Blue 113" hbank="2" lbank="0" prog="113" />
+ <Patch name="Blue 114" hbank="2" lbank="0" prog="114" />
+ <Patch name="Blue 115" hbank="2" lbank="0" prog="115" />
+ <Patch name="Blue 116" hbank="2" lbank="0" prog="116" />
+ <Patch name="Blue 117" hbank="2" lbank="0" prog="117" />
+ <Patch name="Blue 118" hbank="2" lbank="0" prog="118" />
+ <Patch name="Blue 119" hbank="2" lbank="0" prog="119" />
+ <Patch name="Blue 120" hbank="2" lbank="0" prog="120" />
+ <Patch name="Blue 121" hbank="2" lbank="0" prog="121" />
+ <Patch name="Blue 122" hbank="2" lbank="0" prog="122" />
+ <Patch name="Blue 123" hbank="2" lbank="0" prog="123" />
+ <Patch name="Blue 124" hbank="2" lbank="0" prog="124" />
+ <Patch name="Blue 125" hbank="2" lbank="0" prog="125" />
+ <Patch name="Blue 126" hbank="2" lbank="0" prog="126" />
+ <Patch name="Blue 127" hbank="2" lbank="0" prog="127" />
+ </PatchGroup>
+
+ <PatchGroup name="User">
+ <Patch name="User 000" hbank="3" lbank="0" prog="0" />
+ <Patch name="User 001" hbank="3" lbank="0" prog="1" />
+ <Patch name="User 002" hbank="3" lbank="0" prog="2" />
+ <Patch name="User 003" hbank="3" lbank="0" prog="3" />
+ <Patch name="User 004" hbank="3" lbank="0" prog="4" />
+ <Patch name="User 005" hbank="3" lbank="0" prog="5" />
+ <Patch name="User 006" hbank="3" lbank="0" prog="6" />
+ <Patch name="User 007" hbank="3" lbank="0" prog="7" />
+ <Patch name="User 008" hbank="3" lbank="0" prog="8" />
+ <Patch name="User 009" hbank="3" lbank="0" prog="9" />
+ <Patch name="User 010" hbank="3" lbank="0" prog="10" />
+ <Patch name="User 011" hbank="3" lbank="0" prog="11" />
+ <Patch name="User 012" hbank="3" lbank="0" prog="12" />
+ <Patch name="User 013" hbank="3" lbank="0" prog="13" />
+ <Patch name="User 014" hbank="3" lbank="0" prog="14" />
+ <Patch name="User 015" hbank="3" lbank="0" prog="15" />
+ <Patch name="User 016" hbank="3" lbank="0" prog="16" />
+ <Patch name="User 017" hbank="3" lbank="0" prog="17" />
+ <Patch name="User 018" hbank="3" lbank="0" prog="18" />
+ <Patch name="User 019" hbank="3" lbank="0" prog="19" />
+ <Patch name="User 020" hbank="3" lbank="0" prog="20" />
+ <Patch name="User 021" hbank="3" lbank="0" prog="21" />
+ <Patch name="User 022" hbank="3" lbank="0" prog="22" />
+ <Patch name="User 023" hbank="3" lbank="0" prog="23" />
+ <Patch name="User 024" hbank="3" lbank="0" prog="24" />
+ <Patch name="User 025" hbank="3" lbank="0" prog="25" />
+ <Patch name="User 026" hbank="3" lbank="0" prog="26" />
+ <Patch name="User 027" hbank="3" lbank="0" prog="27" />
+ <Patch name="User 028" hbank="3" lbank="0" prog="28" />
+ <Patch name="User 029" hbank="3" lbank="0" prog="29" />
+ <Patch name="User 030" hbank="3" lbank="0" prog="30" />
+ <Patch name="User 031" hbank="3" lbank="0" prog="31" />
+ <Patch name="User 032" hbank="3" lbank="0" prog="32" />
+ <Patch name="User 033" hbank="3" lbank="0" prog="33" />
+ <Patch name="User 034" hbank="3" lbank="0" prog="34" />
+ <Patch name="User 035" hbank="3" lbank="0" prog="35" />
+ <Patch name="User 036" hbank="3" lbank="0" prog="36" />
+ <Patch name="User 037" hbank="3" lbank="0" prog="37" />
+ <Patch name="User 038" hbank="3" lbank="0" prog="38" />
+ <Patch name="User 039" hbank="3" lbank="0" prog="39" />
+ <Patch name="User 040" hbank="3" lbank="0" prog="40" />
+ <Patch name="User 041" hbank="3" lbank="0" prog="41" />
+ <Patch name="User 042" hbank="3" lbank="0" prog="42" />
+ <Patch name="User 043" hbank="3" lbank="0" prog="43" />
+ <Patch name="User 044" hbank="3" lbank="0" prog="44" />
+ <Patch name="User 045" hbank="3" lbank="0" prog="45" />
+ <Patch name="User 046" hbank="3" lbank="0" prog="46" />
+ <Patch name="User 047" hbank="3" lbank="0" prog="47" />
+ <Patch name="User 048" hbank="3" lbank="0" prog="48" />
+ <Patch name="User 049" hbank="3" lbank="0" prog="49" />
+ <Patch name="User 050" hbank="3" lbank="0" prog="50" />
+ <Patch name="User 051" hbank="3" lbank="0" prog="51" />
+ <Patch name="User 052" hbank="3" lbank="0" prog="52" />
+ <Patch name="User 053" hbank="3" lbank="0" prog="53" />
+ <Patch name="User 054" hbank="3" lbank="0" prog="54" />
+ <Patch name="User 055" hbank="3" lbank="0" prog="55" />
+ <Patch name="User 056" hbank="3" lbank="0" prog="56" />
+ <Patch name="User 057" hbank="3" lbank="0" prog="57" />
+ <Patch name="User 058" hbank="3" lbank="0" prog="58" />
+ <Patch name="User 059" hbank="3" lbank="0" prog="59" />
+ <Patch name="User 060" hbank="3" lbank="0" prog="60" />
+ <Patch name="User 061" hbank="3" lbank="0" prog="61" />
+ <Patch name="User 062" hbank="3" lbank="0" prog="62" />
+ <Patch name="User 063" hbank="3" lbank="0" prog="63" />
+ <Patch name="User 064" hbank="3" lbank="0" prog="64" />
+ <Patch name="User 065" hbank="3" lbank="0" prog="65" />
+ <Patch name="User 066" hbank="3" lbank="0" prog="66" />
+ <Patch name="User 067" hbank="3" lbank="0" prog="67" />
+ <Patch name="User 068" hbank="3" lbank="0" prog="68" />
+ <Patch name="User 069" hbank="3" lbank="0" prog="69" />
+ <Patch name="User 070" hbank="3" lbank="0" prog="70" />
+ <Patch name="User 071" hbank="3" lbank="0" prog="71" />
+ <Patch name="User 072" hbank="3" lbank="0" prog="72" />
+ <Patch name="User 073" hbank="3" lbank="0" prog="73" />
+ <Patch name="User 074" hbank="3" lbank="0" prog="74" />
+ <Patch name="User 075" hbank="3" lbank="0" prog="75" />
+ <Patch name="User 076" hbank="3" lbank="0" prog="76" />
+ <Patch name="User 077" hbank="3" lbank="0" prog="77" />
+ <Patch name="User 078" hbank="3" lbank="0" prog="78" />
+ <Patch name="User 079" hbank="3" lbank="0" prog="79" />
+ <Patch name="User 080" hbank="3" lbank="0" prog="80" />
+ <Patch name="User 081" hbank="3" lbank="0" prog="81" />
+ <Patch name="User 082" hbank="3" lbank="0" prog="82" />
+ <Patch name="User 083" hbank="3" lbank="0" prog="83" />
+ <Patch name="User 084" hbank="3" lbank="0" prog="84" />
+ <Patch name="User 085" hbank="3" lbank="0" prog="85" />
+ <Patch name="User 086" hbank="3" lbank="0" prog="86" />
+ <Patch name="User 087" hbank="3" lbank="0" prog="87" />
+ <Patch name="User 088" hbank="3" lbank="0" prog="88" />
+ <Patch name="User 089" hbank="3" lbank="0" prog="89" />
+ <Patch name="User 090" hbank="3" lbank="0" prog="90" />
+ <Patch name="User 091" hbank="3" lbank="0" prog="91" />
+ <Patch name="User 092" hbank="3" lbank="0" prog="92" />
+ <Patch name="User 093" hbank="3" lbank="0" prog="93" />
+ <Patch name="User 094" hbank="3" lbank="0" prog="94" />
+ <Patch name="User 095" hbank="3" lbank="0" prog="95" />
+ <Patch name="User 096" hbank="3" lbank="0" prog="96" />
+ <Patch name="User 097" hbank="3" lbank="0" prog="97" />
+ <Patch name="User 098" hbank="3" lbank="0" prog="98" />
+ <Patch name="User 099" hbank="3" lbank="0" prog="99" />
+ <Patch name="User 100" hbank="3" lbank="0" prog="100" />
+ <Patch name="User 101" hbank="3" lbank="0" prog="101" />
+ <Patch name="User 102" hbank="3" lbank="0" prog="102" />
+ <Patch name="User 103" hbank="3" lbank="0" prog="103" />
+ <Patch name="User 104" hbank="3" lbank="0" prog="104" />
+ <Patch name="User 105" hbank="3" lbank="0" prog="105" />
+ <Patch name="User 106" hbank="3" lbank="0" prog="106" />
+ <Patch name="User 107" hbank="3" lbank="0" prog="107" />
+ <Patch name="User 108" hbank="3" lbank="0" prog="108" />
+ <Patch name="User 109" hbank="3" lbank="0" prog="109" />
+ <Patch name="User 110" hbank="3" lbank="0" prog="110" />
+ <Patch name="User 111" hbank="3" lbank="0" prog="111" />
+ <Patch name="User 112" hbank="3" lbank="0" prog="112" />
+ <Patch name="User 113" hbank="3" lbank="0" prog="113" />
+ <Patch name="User 114" hbank="3" lbank="0" prog="114" />
+ <Patch name="User 115" hbank="3" lbank="0" prog="115" />
+ <Patch name="User 116" hbank="3" lbank="0" prog="116" />
+ <Patch name="User 117" hbank="3" lbank="0" prog="117" />
+ <Patch name="User 118" hbank="3" lbank="0" prog="118" />
+ <Patch name="User 119" hbank="3" lbank="0" prog="119" />
+ <Patch name="User 120" hbank="3" lbank="0" prog="120" />
+ <Patch name="User 121" hbank="3" lbank="0" prog="121" />
+ <Patch name="User 122" hbank="3" lbank="0" prog="122" />
+ <Patch name="User 123" hbank="3" lbank="0" prog="123" />
+ <Patch name="User 124" hbank="3" lbank="0" prog="124" />
+ <Patch name="User 125" hbank="3" lbank="0" prog="125" />
+ <Patch name="User 126" hbank="3" lbank="0" prog="126" />
+ <Patch name="User 127" hbank="3" lbank="0" prog="127" />
+ </PatchGroup>
+
+
+ <!-- Standard Controllers -->
+ <Controller name="CC 1" type="Control" l="1" />
+ <Controller name="CC 2" type="Control" l="2" />
+ <Controller name="CC 3" type="Control" l="3" />
+ <Controller name="CC 4" type="Control" l="4" />
+ <Controller name="CC 5" type="Control" l="5" />
+ <Controller name="CC 6" type="Control" l="6" />
+ <Controller name="CC 7" type="Control" l="7" />
+ <Controller name="CC 8" type="Control" l="8" />
+ <Controller name="CC 9" type="Control" l="9" />
+ <Controller name="CC 10" type="Control" l="10" />
+ <Controller name="CC 11" type="Control" l="11" />
+ <Controller name="CC 12" type="Control" l="12" />
+ <Controller name="CC 13" type="Control" l="13" />
+ <Controller name="CC 14" type="Control" l="14" />
+ <Controller name="CC 15" type="Control" l="15" />
+ <Controller name="CC 16" type="Control" l="16" />
+ <Controller name="CC 17" type="Control" l="17" />
+ <Controller name="CC 18" type="Control" l="18" />
+ <Controller name="CC 19" type="Control" l="19" />
+ <Controller name="CC 20" type="Control" l="20" />
+ <Controller name="CC 21" type="Control" l="21" />
+ <Controller name="CC 22" type="Control" l="22" />
+ <Controller name="CC 23" type="Control" l="23" />
+ <Controller name="CC 24" type="Control" l="24" />
+ <Controller name="CC 25" type="Control" l="25" />
+ <Controller name="CC 26" type="Control" l="26" />
+ <Controller name="CC 27" type="Control" l="27" />
+ <Controller name="CC 28" type="Control" l="28" />
+ <Controller name="CC 29" type="Control" l="29" />
+ <Controller name="CC 30" type="Control" l="30" />
+ <Controller name="CC 31" type="Control" l="31" />
+ <Controller name="CC 32" type="Control" l="32" />
+ <Controller name="CC 33" type="Control" l="33" />
+ <Controller name="CC 34" type="Control" l="34" />
+ <Controller name="CC 35" type="Control" l="35" />
+ <Controller name="CC 36" type="Control" l="36" />
+ <Controller name="CC 37" type="Control" l="37" />
+ <Controller name="CC 38" type="Control" l="38" />
+ <Controller name="CC 39" type="Control" l="39" />
+ <Controller name="CC 40" type="Control" l="40" />
+ <Controller name="CC 41" type="Control" l="41" />
+ <Controller name="CC 42" type="Control" l="42" />
+ <Controller name="CC 43" type="Control" l="43" />
+ <Controller name="CC 44" type="Control" l="44" />
+ <Controller name="CC 45" type="Control" l="45" />
+ <Controller name="CC 46" type="Control" l="46" />
+ <Controller name="CC 47" type="Control" l="47" />
+ <Controller name="CC 48" type="Control" l="48" />
+ <Controller name="CC 49" type="Control" l="49" />
+ <Controller name="CC 50" type="Control" l="50" />
+ <Controller name="CC 51" type="Control" l="51" />
+ <Controller name="CC 52" type="Control" l="52" />
+ <Controller name="CC 53" type="Control" l="53" />
+ <Controller name="CC 54" type="Control" l="54" />
+ <Controller name="CC 55" type="Control" l="55" />
+ <Controller name="CC 56" type="Control" l="56" />
+ <Controller name="CC 57" type="Control" l="57" />
+ <Controller name="CC 58" type="Control" l="58" />
+ <Controller name="CC 59" type="Control" l="59" />
+ <Controller name="CC 60" type="Control" l="60" />
+ <Controller name="CC 61" type="Control" l="61" />
+ <Controller name="CC 62" type="Control" l="62" />
+ <Controller name="CC 63" type="Control" l="63" />
+ <Controller name="CC 64" type="Control" l="64" />
+ <Controller name="CC 65" type="Control" l="65" />
+ <Controller name="CC 66" type="Control" l="66" />
+ <Controller name="CC 67" type="Control" l="67" />
+ <Controller name="CC 68" type="Control" l="68" />
+ <Controller name="CC 69" type="Control" l="69" />
+ <Controller name="CC 70" type="Control" l="70" />
+ <Controller name="CC 71" type="Control" l="71" />
+ <Controller name="CC 72" type="Control" l="72" />
+ <Controller name="CC 73" type="Control" l="73" />
+ <Controller name="CC 74" type="Control" l="74" />
+ <Controller name="CC 75" type="Control" l="75" />
+ <Controller name="CC 76" type="Control" l="76" />
+ <Controller name="CC 77" type="Control" l="77" />
+ <Controller name="CC 78" type="Control" l="78" />
+ <Controller name="CC 79" type="Control" l="79" />
+ <Controller name="CC 80" type="Control" l="80" />
+ <Controller name="CC 81" type="Control" l="81" />
+ <Controller name="CC 82" type="Control" l="82" />
+ <Controller name="CC 83" type="Control" l="83" />
+ <Controller name="CC 84" type="Control" l="84" />
+ <Controller name="CC 85" type="Control" l="85" />
+ <Controller name="CC 86" type="Control" l="86" />
+ <Controller name="CC 87" type="Control" l="87" />
+ <Controller name="CC 88" type="Control" l="88" />
+ <Controller name="CC 89" type="Control" l="89" />
+ <Controller name="CC 90" type="Control" l="90" />
+ <Controller name="CC 91" type="Control" l="91" />
+ <Controller name="CC 92" type="Control" l="92" />
+ <Controller name="CC 93" type="Control" l="93" />
+ <Controller name="CC 94" type="Control" l="94" />
+ <Controller name="CC 95" type="Control" l="95" />
+ <Controller name="CC 96" type="Control" l="96" />
+ <Controller name="CC 97" type="Control" l="97" />
+ <Controller name="CC 98" type="Control" l="98" />
+ <Controller name="CC 99" type="Control" l="99" />
+ <Controller name="CC 100" type="Control" l="100" />
+ <Controller name="CC 101" type="Control" l="101" />
+ <Controller name="CC 102" type="Control" l="102" />
+ <Controller name="CC 103" type="Control" l="103" />
+ <Controller name="CC 104" type="Control" l="104" />
+ <Controller name="CC 105" type="Control" l="105" />
+ <Controller name="CC 106" type="Control" l="106" />
+ <Controller name="CC 107" type="Control" l="107" />
+ <Controller name="CC 108" type="Control" l="108" />
+ <Controller name="CC 109" type="Control" l="109" />
+ <Controller name="CC 110" type="Control" l="110" />
+ <Controller name="CC 111" type="Control" l="111" />
+ <Controller name="CC 112" type="Control" l="112" />
+ <Controller name="CC 113" type="Control" l="113" />
+ <Controller name="CC 114" type="Control" l="114" />
+ <Controller name="CC 115" type="Control" l="115" />
+ <Controller name="CC 116" type="Control" l="116" />
+ <Controller name="CC 117" type="Control" l="117" />
+ <Controller name="CC 118" type="Control" l="118" />
+ <Controller name="CC 119" type="Control" l="119" />
+
+ <Controller name="Modulation MW1" type="Control" l="1" />
+
+ <!-- LFO -->
+ <Controller name="LFO1 Rate Synced" type="NRPN14" h="2" l="0" min="0" max="24" />
+ <Controller name="LFO1 Rate" type="NRPN14" h="2" l="1" min="0" max="1023" />
+ <Controller name="LFO2 Rate Synced" type="NRPN14" h="2" l="2" min="0" max="24" />
+ <Controller name="LFO2 Rate" type="NRPN14" h="2" l="3" min="0" max="1023" />
+ <Controller name="S/H Rate Synced" type="NRPN14" h="2" l="4" min="0" max="24" />
+ <Controller name="S/H Rate" type="NRPN14" h="2" l="5" min="0" max="1023" />
+
+ <!-- Tempo -->
+ <Controller name="Tempo" type="NRPN14" h="4" l="8" min="500" max="2500" />
+
+ <!-- OSC -->
+ <Controller name="OSC1 Waveform" type="NRPN14" h="6" l="12" min="0" max="2" />
+ <Controller name="OSC1 Shape" type="NRPN14" h="6" l="6" min="-100" max="100" />
+ <Controller name="OSC1 Octave" type="NRPN14" h="6" l="9" min="-3" max="3" />
+
+ <Controller name="OSC2 Waveform" type="NRPN14" h="6" l="13" min="0" max="2" />
+ <Controller name="OSC2 Shape" type="NRPN14" h="6" l="7" min="-100" max="100" />
+ <Controller name="OSC2 Pitch" type="NRPN14" h="6" l="4" min="-995" max="995" />
+ <Controller name="OSC2 Octave" type="NRPN14" h="6" l="10" min="-3" max="3" />
+
+ <Controller name="OSC3 Waveform" type="NRPN14" h="6" l="14" min="0" max="2" />
+ <Controller name="OSC3 Shape" type="NRPN14" h="6" l="8" min="-100" max="100" />
+ <Controller name="OSC3 Pitch" type="NRPN14" h="6" l="5" min="-995" max="995" />
+ <Controller name="OSC3 Octave" type="NRPN14" h="6" l="11" min="-3" max="3" />
+
+ <Controller name="FM" type="NRPN14" h="6" l="22" min="0" max="1000" />
+
+ <!-- Pre Filter Mix -->
+ <Controller name="OSC1 Level" type="NRPN14" h="8" l="0" min="0" max="100" />
+ <Controller name="OSC2 Level" type="NRPN14" h="8" l="1" min="0" max="100" />
+ <Controller name="OSC3 Level" type="NRPN14" h="8" l="2" min="0" max="100" />
+ <Controller name="Noise Level" type="NRPN14" h="8" l="5" min="0" max="100" />
+ <Controller name="External Level" type="NRPN14" h="8" l="4" min="0" max="100" />
+ <Controller name="RingMod Level" type="NRPN14" h="8" l="3" min="0" max="100" />
+
+ <!-- Filter -->
+ <Controller name="Filter1 Freq" type="NRPN14" h="14" l="0" min="0" max="1023" />
+ <Controller name="Filter1 Res" type="NRPN14" h="14" l="6" min="0" max="100" />
+ <Controller name="Filter1 Env Amt" type="NRPN14" h="14" l="8" min="-100" max="100" />
+
+ <Controller name="Filter2 Freq" type="NRPN14" h="14" l="1" min="0" max="1023" />
+ <Controller name="Filter2 Freq Octave (Offset)" type="NRPN14" h="14" l="2" min="0" max="1023" />
+ <Controller name="Filter2 Res" type="NRPN14" h="14" l="7" min="0" max="100" />
+ <Controller name="Filter2 Env Amt" type="NRPN14" h="14" l="9" min="-100" max="100" />
+
+ <!-- Post Filter Mix -->
+ <Controller name="Filter1 Level" type="NRPN14" h="16" l="0" min="0" max="100" />
+ <Controller name="Filter2 Level" type="NRPN14" h="16" l="1" min="0" max="100" />
+ <Controller name="Prefilter Level" type="NRPN14" h="16" l="2" min="0" max="100" />
+
+ <!-- Env -->
+ <Controller name="Amp Attack" type="NRPN14" h="12" l="0" min="0" max="255" />
+ <Controller name="Amp Decay" type="NRPN14" h="12" l="3" min="0" max="255" />
+ <Controller name="Amp Sust Level" type="NRPN14" h="12" l="6" min="0" max="100" />
+ <Controller name="Amp Sust Time" type="NRPN14" h="12" l="9" min="0" max="256" />
+ <Controller name="Amp Release" type="NRPN14" h="12" l="12" min="0" max="256" />
+
+ <Controller name="Filter Attack" type="NRPN14" h="12" l="1" min="0" max="255" />
+ <Controller name="Filter Decay" type="NRPN14" h="12" l="4" min="0" max="255" />
+ <Controller name="Filter Sust Level" type="NRPN14" h="12" l="7" min="-100" max="100" />
+ <Controller name="Filter Sust Time" type="NRPN14" h="12" l="10" min="0" max="256" />
+ <Controller name="Filter Release" type="NRPN14" h="12" l="13" min="0" max="256" />
+
+ <Controller name="Pitch/Mod Attack" type="NRPN14" h="12" l="2" min="0" max="255" />
+ <Controller name="Pitch/Mod Decay" type="NRPN14" h="12" l="5" min="0" max="255" />
+ <Controller name="Pitch/Mod Sust Level" type="NRPN14" h="12" l="8" min="-100" max="100" />
+ <Controller name="Pitch/Mod Sust Time" type="NRPN14" h="12" l="11" min="0" max="256" />
+ <Controller name="Pitch/Mod Release" type="NRPN14" h="12" l="14" min="0" max="256" />
+
+ <!-- Output -->
+ <Controller name="Drive Level" type="NRPN14" h="18" l="0" min="0" max="100" />
+ <Controller name="Effects Dry/Wet Mix" type="NRPN14" h="20" l="2" min="-100" max="100" />
+ <Controller name="Program Level" type="NRPN14" h="18" l="1" min="0" max="100" />
+
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Alesis-QS-78R.idf b/muse_qt4_evolution/share/instruments/Alesis-QS-78R.idf
new file mode 100644
index 00000000..bfc474fb
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Alesis-QS-78R.idf
@@ -0,0 +1,700 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Alesis QS7, QS8 &amp; QSR">
+ <PatchGroup name="General Midi">
+ <Patch name="Acoustic Grand Piano" prog="0" hbank="4" lbank="32"/>
+ <Patch name="Bright Acoustic Piano" prog="1" hbank="4" lbank="32"/>
+ <Patch name="Electric Grand Piano" prog="2" hbank="4" lbank="32"/>
+ <Patch name="Honky-tonk Piano" prog="3" hbank="4" lbank="32"/>
+ <Patch name="Electric Piano 1" prog="4" hbank="4" lbank="32"/>
+ <Patch name="Electric Piano 2" prog="5" hbank="4" lbank="32"/>
+ <Patch name="Harpsichord" prog="6" hbank="4" lbank="32"/>
+ <Patch name="Clavi" prog="7" hbank="4" lbank="32"/>
+ <Patch name="Celesta" prog="8" hbank="4" lbank="32"/>
+ <Patch name="Glockenspiel" prog="9" hbank="4" lbank="32"/>
+ <Patch name="Music Box" prog="10" hbank="4" lbank="32"/>
+ <Patch name="Vibraphone" prog="11" hbank="4" lbank="32"/>
+ <Patch name="Marimba" prog="12" hbank="4" lbank="32"/>
+ <Patch name="Xylophone" prog="13" hbank="4" lbank="32"/>
+ <Patch name="Tubular Bells" prog="14" hbank="4" lbank="32"/>
+ <Patch name="Dulcimer" prog="15" hbank="4" lbank="32"/>
+ <Patch name="Drawbar Organ" prog="16" hbank="4" lbank="32"/>
+ <Patch name="Percussive Organ" prog="17" hbank="4" lbank="32"/>
+ <Patch name="Rock Organ" prog="18" hbank="4" lbank="32"/>
+ <Patch name="Church Organ" prog="19" hbank="4" lbank="32"/>
+ <Patch name="Reed Organ" prog="20" hbank="4" lbank="32"/>
+ <Patch name="Accordion" prog="21" hbank="4" lbank="32"/>
+ <Patch name="Harmonica" prog="22" hbank="4" lbank="32"/>
+ <Patch name="Tango Accordion" prog="23" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Guitar (nylon)" prog="24" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Guitar (steel)" prog="25" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (jazz)" prog="26" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (clean)" prog="27" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (muted)" prog="28" hbank="4" lbank="32"/>
+ <Patch name="Overdriven Guitar" prog="29" hbank="4" lbank="32"/>
+ <Patch name="Distortion Guitar" prog="30" hbank="4" lbank="32"/>
+ <Patch name="Guitar harmonics" prog="31" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Bass" prog="32" hbank="4" lbank="32"/>
+ <Patch name="Fingered Bass" prog="33" hbank="4" lbank="32"/>
+ <Patch name="Picked Bass" prog="34" hbank="4" lbank="32"/>
+ <Patch name="Fretless Bass" prog="35" hbank="4" lbank="32"/>
+ <Patch name="Slap Bass 1" prog="36" hbank="4" lbank="32"/>
+ <Patch name="Slap Bass 2" prog="37" hbank="4" lbank="32"/>
+ <Patch name="Synth Bass 1" prog="38" hbank="4" lbank="32"/>
+ <Patch name="Synth Bass 2" prog="39" hbank="4" lbank="32"/>
+ <Patch name="Violin" prog="40" hbank="4" lbank="32"/>
+ <Patch name="Viola" prog="41" hbank="4" lbank="32"/>
+ <Patch name="Cello" prog="42" hbank="4" lbank="32"/>
+ <Patch name="Contrabass" prog="43" hbank="4" lbank="32"/>
+ <Patch name="Tremolo Strings" prog="44" hbank="4" lbank="32"/>
+ <Patch name="Pizzicato Strings" prog="45" hbank="4" lbank="32"/>
+ <Patch name="Orchestral Harp" prog="46" hbank="4" lbank="32"/>
+ <Patch name="Timpani" prog="47" hbank="4" lbank="32"/>
+ <Patch name="String Ensemble 1" prog="48" hbank="4" lbank="32"/>
+ <Patch name="String Ensemble 2" prog="49" hbank="4" lbank="32"/>
+ <Patch name="SynthStrings 1" prog="50" hbank="4" lbank="32"/>
+ <Patch name="SynthStrings 2" prog="51" hbank="4" lbank="32"/>
+ <Patch name="Choir Aahs" prog="52" hbank="4" lbank="32"/>
+ <Patch name="Voice Oohs" prog="53" hbank="4" lbank="32"/>
+ <Patch name="Synth Voice" prog="54" hbank="4" lbank="32"/>
+ <Patch name="Orchestra Hit" prog="55" hbank="4" lbank="32"/>
+ <Patch name="Trumpet" prog="56" hbank="4" lbank="32"/>
+ <Patch name="Trombone" prog="57" hbank="4" lbank="32"/>
+ <Patch name="Tuba" prog="58" hbank="4" lbank="32"/>
+ <Patch name="Muted Trumpet" prog="59" hbank="4" lbank="32"/>
+ <Patch name="French Horn" prog="60" hbank="4" lbank="32"/>
+ <Patch name="Brass Section" prog="61" hbank="4" lbank="32"/>
+ <Patch name="SynthBrass 1" prog="62" hbank="4" lbank="32"/>
+ <Patch name="SynthBrass 2" prog="63" hbank="4" lbank="32"/>
+ <Patch name="Soprano Sax" prog="64" hbank="4" lbank="32"/>
+ <Patch name="Alto Sax" prog="65" hbank="4" lbank="32"/>
+ <Patch name="Tenor Sax" prog="66" hbank="4" lbank="32"/>
+ <Patch name="Baritone Sax" prog="67" hbank="4" lbank="32"/>
+ <Patch name="Oboe" prog="68" hbank="4" lbank="32"/>
+ <Patch name="English Horn" prog="69" hbank="4" lbank="32"/>
+ <Patch name="Bassoon" prog="70" hbank="4" lbank="32"/>
+ <Patch name="Clarinet" prog="71" hbank="4" lbank="32"/>
+ <Patch name="Piccolo" prog="72" hbank="4" lbank="32"/>
+ <Patch name="Flute" prog="73" hbank="4" lbank="32"/>
+ <Patch name="Recorder" prog="74" hbank="4" lbank="32"/>
+ <Patch name="Pan Flute" prog="75" hbank="4" lbank="32"/>
+ <Patch name="Blown Bottle" prog="76" hbank="4" lbank="32"/>
+ <Patch name="Shakuhachi" prog="77" hbank="4" lbank="32"/>
+ <Patch name="Whistle" prog="78" hbank="4" lbank="32"/>
+ <Patch name="Ocarina" prog="79" hbank="4" lbank="32"/>
+ <Patch name="Lead 1 (square)" prog="80" hbank="4" lbank="32"/>
+ <Patch name="Lead 2 (sawtooth)" prog="81" hbank="4" lbank="32"/>
+ <Patch name="Lead 3 (calliope)" prog="82" hbank="4" lbank="32"/>
+ <Patch name="Lead 4 (chiff)" prog="83" hbank="4" lbank="32"/>
+ <Patch name="Lead 5 (charang)" prog="84" hbank="4" lbank="32"/>
+ <Patch name="Lead 6 (voice)" prog="85" hbank="4" lbank="32"/>
+ <Patch name="Lead 7 (fifths)" prog="86" hbank="4" lbank="32"/>
+ <Patch name="Lead 8 (bass + lead)" prog="87" hbank="4" lbank="32"/>
+ <Patch name="Pad 1 (new age)" prog="88" hbank="4" lbank="32"/>
+ <Patch name="Pad 2 (warm)" prog="89" hbank="4" lbank="32"/>
+ <Patch name="Pad 3 (polysynth)" prog="90" hbank="4" lbank="32"/>
+ <Patch name="Pad 4 (choir)" prog="91" hbank="4" lbank="32"/>
+ <Patch name="Pad 5 (bowed)" prog="92" hbank="4" lbank="32"/>
+ <Patch name="Pad 6 (metallic)" prog="93" hbank="4" lbank="32"/>
+ <Patch name="Pad 7 (halo)" prog="94" hbank="4" lbank="32"/>
+ <Patch name="Pad 8 (sweep)" prog="95" hbank="4" lbank="32"/>
+ <Patch name="FX 1 (rain)" prog="96" hbank="4" lbank="32"/>
+ <Patch name="FX 2 (soundtrack)" prog="97" hbank="4" lbank="32"/>
+ <Patch name="FX 3 (crystal)" prog="98" hbank="4" lbank="32"/>
+ <Patch name="FX 4 (atmosphere)" prog="99" hbank="4" lbank="32"/>
+ <Patch name="FX 5 (brightness)" prog="100" hbank="4" lbank="32"/>
+ <Patch name="FX 6 (goblins)" prog="101" hbank="4" lbank="32"/>
+ <Patch name="FX 7 (echoes)" prog="102" hbank="4" lbank="32"/>
+ <Patch name="FX 8 (sci-fi)" prog="103" hbank="4" lbank="32"/>
+ <Patch name="Sitar" prog="104" hbank="4" lbank="32"/>
+ <Patch name="Banjo" prog="105" hbank="4" lbank="32"/>
+ <Patch name="Shamisen" prog="106" hbank="4" lbank="32"/>
+ <Patch name="Koto" prog="107" hbank="4" lbank="32"/>
+ <Patch name="Kalimba" prog="108" hbank="4" lbank="32"/>
+ <Patch name="Bag pipe" prog="109" hbank="4" lbank="32"/>
+ <Patch name="Fiddle" prog="110" hbank="4" lbank="32"/>
+ <Patch name="Shanai" prog="111" hbank="4" lbank="32"/>
+ <Patch name="Tinkle Bell" prog="112" hbank="4" lbank="32"/>
+ <Patch name="Agogo" prog="113" hbank="4" lbank="32"/>
+ <Patch name="Steel Drums" prog="114" hbank="4" lbank="32"/>
+ <Patch name="Woodblock" prog="115" hbank="4" lbank="32"/>
+ <Patch name="Taiko Drum" prog="116" hbank="4" lbank="32"/>
+ <Patch name="Melodic Tom" prog="117" hbank="4" lbank="32"/>
+ <Patch name="Synth Drum" prog="118" hbank="4" lbank="32"/>
+ <Patch name="Reverse Cymbal" prog="119" hbank="4" lbank="32"/>
+ <Patch name="Guitar Fret Noise" prog="120" hbank="4" lbank="32"/>
+ <Patch name="Breath Noise" prog="121" hbank="4" lbank="32"/>
+ <Patch name="Seashore" prog="122" hbank="4" lbank="32"/>
+ <Patch name="Bird Tweet" prog="123" hbank="4" lbank="32"/>
+ <Patch name="Telephone Ring" prog="124" hbank="4" lbank="32"/>
+ <Patch name="Helicopter" prog="125" hbank="4" lbank="32"/>
+ <Patch name="Applause" prog="126" hbank="4" lbank="32"/>
+ <Patch name="Gunshot" prog="127" hbank="4" lbank="32"/>
+ </PatchGroup>
+
+
+
+
+ <PatchGroup name="Pianos">
+ <Patch name="True Stereo" prog="0" hbank="1" lbank="32"/>
+ <Patch name="DarkClascl" prog="0" hbank="2" lbank="32"/>
+ <Patch name="64 Grand" prog="0" hbank="3" lbank="32"/>
+ <Patch name="PureStereo" prog="0" hbank="0" lbank="32"/>
+ <Patch name="Titanium88" prog="1" hbank="1" lbank="32"/>
+ <Patch name="InThePiano" prog="1" hbank="2" lbank="32"/>
+ <Patch name="HyperPiano" prog="1" hbank="3" lbank="32"/>
+ <Patch name="Rave Knave" prog="1" hbank="0" lbank="32"/>
+ <Patch name="OctavPiano" prog="2" hbank="1" lbank="32"/>
+ <Patch name="Player Pno" prog="2" hbank="2" lbank="32"/>
+ <Patch name="HousePiano" prog="2" hbank="3" lbank="32"/>
+ <Patch name="AntiquePno" prog="2" hbank="0" lbank="32"/>
+ <Patch name="PianoMorph" prog="3" hbank="1" lbank="32"/>
+ <Patch name="PianoStrng" prog="3" hbank="2" lbank="32"/>
+ <Patch name="Piano Pad" prog="3" hbank="3" lbank="32"/>
+ <Patch name="Pianooohs" prog="3" hbank="0" lbank="32"/>
+ <Patch name="BellPianah" prog="4" hbank="1" lbank="32"/>
+ <Patch name="EP &amp; String" prog="4" hbank="2" lbank="32"/>
+ <Patch name="EP &amp; Oohs" prog="4" hbank="3" lbank="32"/>
+ <Patch name="LA Studio" prog="4" hbank="0" lbank="32"/>
+ <Patch name="Rayz Roadz" prog="5" hbank="1" lbank="32"/>
+ <Patch name="Hard Roads" prog="5" hbank="2" lbank="32"/>
+ <Patch name="SuperRoadz" prog="5" hbank="3" lbank="32"/>
+ <Patch name="No Quarter" prog="5" hbank="0" lbank="32"/>
+ <Patch name="QS Tines" prog="6" hbank="1" lbank="32"/>
+ <Patch name="Suitcase" prog="6" hbank="2" lbank="32"/>
+ <Patch name="SoftSuitcs" prog="6" hbank="3" lbank="32"/>
+ <Patch name="Fat Roadz" prog="6" hbank="0" lbank="32"/>
+ <Patch name="ClascWurly" prog="7" hbank="1" lbank="32"/>
+ <Patch name="DirtyWurly" prog="7" hbank="2" lbank="32"/>
+ <Patch name="TrampWurly" prog="7" hbank="3" lbank="32"/>
+ <Patch name="Whirl Lee" prog="7" hbank="0" lbank="32"/>
+ <Patch name="FM E Piano" prog="8" hbank="1" lbank="32"/>
+ <Patch name="Soft FM EP" prog="8" hbank="2" lbank="32"/>
+ <Patch name="Crysalis" prog="8" hbank="3" lbank="32"/>
+ <Patch name="Mars E Pno" prog="8" hbank="0" lbank="32"/>
+ <Patch name="Wave Piano" prog="9" hbank="1" lbank="32"/>
+ <Patch name="Toy Grand" prog="9" hbank="2" lbank="32"/>
+ <Patch name="PnoStrVox" prog="9" hbank="3" lbank="32"/>
+ <Patch name="TineString" prog="9" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Chromatic">
+ <Patch name="Clavitube" prog="10" hbank="1" lbank="32"/>
+ <Patch name="Quack Clav" prog="10" hbank="2" lbank="32"/>
+ <Patch name="LiquidClav" prog="10" hbank="3" lbank="32"/>
+ <Patch name="Clavislap" prog="10" hbank="0" lbank="32"/>
+ <Patch name="Real Clav" prog="11" hbank="1" lbank="32"/>
+ <Patch name="Clavatar" prog="11" hbank="2" lbank="32"/>
+ <Patch name="ProfitClav" prog="11" hbank="3" lbank="32"/>
+ <Patch name="Digi Clav" prog="11" hbank="0" lbank="32"/>
+ <Patch name="TrueHarpsi" prog="12" hbank="1" lbank="32"/>
+ <Patch name="Harpsifunk" prog="12" hbank="2" lbank="32"/>
+ <Patch name="8'4'Harpsi" prog="12" hbank="3" lbank="32"/>
+ <Patch name="Ana Harpsi" prog="12" hbank="0" lbank="32"/>
+ <Patch name="Cool Vibes" prog="13" hbank="1" lbank="32"/>
+ <Patch name="Mad Vibes" prog="13" hbank="2" lbank="32"/>
+ <Patch name="Rezophone" prog="13" hbank="3" lbank="32"/>
+ <Patch name="Toy Hammer" prog="13" hbank="0" lbank="32"/>
+ <Patch name="BriteMarim" prog="14" hbank="1" lbank="32"/>
+ <Patch name="Woody Xylo" prog="14" hbank="2" lbank="32"/>
+ <Patch name="Yanklungs" prog="14" hbank="3" lbank="32"/>
+ <Patch name="Chasers" prog="14" hbank="0" lbank="32"/>
+ <Patch name="Kalimba MW" prog="15" hbank="1" lbank="32"/>
+ <Patch name="Potsticker" prog="15" hbank="2" lbank="32"/>
+ <Patch name="Roundup" prog="15" hbank="3" lbank="32"/>
+ <Patch name="Sebastian" prog="15" hbank="0" lbank="32"/>
+ <Patch name="Brake Drum" prog="16" hbank="1" lbank="32"/>
+ <Patch name="Watercan" prog="16" hbank="2" lbank="32"/>
+ <Patch name="AlloyGlock" prog="16" hbank="3" lbank="32"/>
+ <Patch name="Met Talls" prog="16" hbank="0" lbank="32"/>
+ <Patch name="St. Thomas" prog="17" hbank="1" lbank="32"/>
+ <Patch name="AttakOfice" prog="17" hbank="2" lbank="32"/>
+ <Patch name="FairyBellz" prog="17" hbank="3" lbank="32"/>
+ <Patch name="GlassBells" prog="17" hbank="0" lbank="32"/>
+ <Patch name="Basic Bell" prog="18" hbank="1" lbank="32"/>
+ <Patch name="BlkBoxBell" prog="18" hbank="2" lbank="32"/>
+ <Patch name="Ice Bell" prog="18" hbank="3" lbank="32"/>
+ <Patch name="MorphBells" prog="18" hbank="0" lbank="32"/>
+ <Patch name="ClockTower" prog="19" hbank="1" lbank="32"/>
+ <Patch name="Tacko Bell" prog="19" hbank="2" lbank="32"/>
+ <Patch name="Waterphone" prog="19" hbank="3" lbank="32"/>
+ <Patch name="MW RvrsBel" prog="19" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Organ">
+ <Patch name="Real Prc B" prog="20" hbank="1" lbank="32"/>
+ <Patch name="AmericaOrg" prog="20" hbank="2" lbank="32"/>
+ <Patch name="3Draw Rock" prog="20" hbank="3" lbank="32"/>
+ <Patch name="4Draw Rock" prog="20" hbank="0" lbank="32"/>
+ <Patch name="High Life" prog="21" hbank="1" lbank="32"/>
+ <Patch name="BluesOrgan" prog="21" hbank="2" lbank="32"/>
+ <Patch name="KeyClikOrg" prog="21" hbank="3" lbank="32"/>
+ <Patch name="DrawbarCtl" prog="21" hbank="0" lbank="32"/>
+ <Patch name="Grit Organ" prog="22" hbank="1" lbank="32"/>
+ <Patch name="Purple B" prog="22" hbank="2" lbank="32"/>
+ <Patch name="Rockin' B3" prog="22" hbank="3" lbank="32"/>
+ <Patch name="Keith's C3" prog="22" hbank="0" lbank="32"/>
+ <Patch name="ABCDrawbar" prog="23" hbank="1" lbank="32"/>
+ <Patch name="Jazz Prc B" prog="23" hbank="2" lbank="32"/>
+ <Patch name="GospelOrgn" prog="23" hbank="3" lbank="32"/>
+ <Patch name="Ballad B" prog="23" hbank="0" lbank="32"/>
+ <Patch name="WhitrShade" prog="24" hbank="1" lbank="32"/>
+ <Patch name="Survival" prog="24" hbank="2" lbank="32"/>
+ <Patch name="MetalOrgan" prog="24" hbank="3" lbank="32"/>
+ <Patch name="LFO Lezly" prog="24" hbank="0" lbank="32"/>
+ <Patch name="Toccata&amp;Fg" prog="25" hbank="1" lbank="32"/>
+ <Patch name="High Mass" prog="25" hbank="2" lbank="32"/>
+ <Patch name="Full Ranks" prog="25" hbank="3" lbank="32"/>
+ <Patch name="PhantomOrg" prog="25" hbank="0" lbank="32"/>
+ <Patch name="KingsCourt" prog="26" hbank="1" lbank="32"/>
+ <Patch name="SftPipeOrg" prog="26" hbank="2" lbank="32"/>
+ <Patch name="Communion" prog="26" hbank="3" lbank="32"/>
+ <Patch name="PositivPuff" prog="26" hbank="0" lbank="32"/>
+ <Patch name="3rdHarmPerc" prog="27" hbank="1" lbank="32"/>
+ <Patch name="2 Drawbars" prog="27" hbank="2" lbank="32"/>
+ <Patch name="KiknPedals" prog="27" hbank="3" lbank="32"/>
+ <Patch name="Eng Organ" prog="27" hbank="0" lbank="32"/>
+ <Patch name="FrAccrdion" prog="28" hbank="1" lbank="32"/>
+ <Patch name="WrmAcrdion" prog="28" hbank="2" lbank="32"/>
+ <Patch name="Surf Organ" prog="28" hbank="3" lbank="32"/>
+ <Patch name="Gypsies" prog="28" hbank="0" lbank="32"/>
+ <Patch name="WhammerJmr" prog="29" hbank="1" lbank="32"/>
+ <Patch name="JazzHrmnca" prog="29" hbank="2" lbank="32"/>
+ <Patch name="Synthonica" prog="29" hbank="3" lbank="32"/>
+ <Patch name="JamHarmnca" prog="29" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Guitar">
+ <Patch name="Steel Ride" prog="30" hbank="1" lbank="32"/>
+ <Patch name="LegatoAGtr" prog="30" hbank="2" lbank="32"/>
+ <Patch name="SteelHorse" prog="30" hbank="3" lbank="32"/>
+ <Patch name="Quiet Time" prog="30" hbank="0" lbank="32"/>
+ <Patch name="GuildedAge" prog="31" hbank="1" lbank="32"/>
+ <Patch name="Big Body12" prog="31" hbank="2" lbank="32"/>
+ <Patch name="TuesdayAft" prog="31" hbank="3" lbank="32"/>
+ <Patch name="FolkBarGtr" prog="31" hbank="0" lbank="32"/>
+ <Patch name="Gitarala" prog="32" hbank="1" lbank="32"/>
+ <Patch name="GuitarsOoh" prog="32" hbank="2" lbank="32"/>
+ <Patch name="Dulcioto" prog="32" hbank="3" lbank="32"/>
+ <Patch name="GuitarPoem" prog="32" hbank="0" lbank="32"/>
+ <Patch name="ThickNylon" prog="33" hbank="1" lbank="32"/>
+ <Patch name="AcHarmonic" prog="33" hbank="2" lbank="32"/>
+ <Patch name="ElHarmonic" prog="33" hbank="3" lbank="32"/>
+ <Patch name="SteelNylon" prog="33" hbank="0" lbank="32"/>
+ <Patch name="Fat Strat" prog="34" hbank="1" lbank="32"/>
+ <Patch name="818 Guitar" prog="34" hbank="2" lbank="32"/>
+ <Patch name="PassGuitar" prog="34" hbank="3" lbank="32"/>
+ <Patch name="InstntEdge" prog="34" hbank="0" lbank="32"/>
+ <Patch name="TreMellow" prog="35" hbank="1" lbank="32"/>
+ <Patch name="Silvertone" prog="35" hbank="2" lbank="32"/>
+ <Patch name="PedalSteel" prog="35" hbank="3" lbank="32"/>
+ <Patch name="PulpGuuitar" prog="35" hbank="0" lbank="32"/>
+ <Patch name="Total Chug" prog="36" hbank="1" lbank="32"/>
+ <Patch name="Chunky" prog="36" hbank="2" lbank="32"/>
+ <Patch name="Hyperdrivr" prog="36" hbank="3" lbank="32"/>
+ <Patch name="Hard 5ths" prog="36" hbank="0" lbank="32"/>
+ <Patch name="FacePlantr" prog="37" hbank="1" lbank="32"/>
+ <Patch name="Fuzzhead" prog="37" hbank="2" lbank="32"/>
+ <Patch name="HeroHarmnx" prog="37" hbank="3" lbank="32"/>
+ <Patch name="Feedbacker" prog="37" hbank="0" lbank="32"/>
+ <Patch name="WorldSitar" prog="38" hbank="1" lbank="32"/>
+ <Patch name="CaralLezli" prog="38" hbank="2" lbank="32"/>
+ <Patch name="Dulcimer" prog="38" hbank="3" lbank="32"/>
+ <Patch name="Ethnoba" prog="38" hbank="0" lbank="32"/>
+ <Patch name="Koto Pluck" prog="39" hbank="1" lbank="32"/>
+ <Patch name="Spamisen" prog="39" hbank="2" lbank="32"/>
+ <Patch name="Mando Trem" prog="39" hbank="3" lbank="32"/>
+ <Patch name="kotobaba" prog="39" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+ <PatchGroup name="Bass">
+ <Patch name="BigUpright" prog="40" hbank="1" lbank="32"/>
+ <Patch name="FatUpright" prog="40" hbank="2" lbank="32"/>
+ <Patch name="SharpStick" prog="40" hbank="3" lbank="32"/>
+ <Patch name="Dance X" prog="40" hbank="0" lbank="32"/>
+ <Patch name="QS Bass" prog="41" hbank="1" lbank="32"/>
+ <Patch name="Face Bass" prog="41" hbank="2" lbank="32"/>
+ <Patch name="Deep Bass" prog="41" hbank="3" lbank="32"/>
+ <Patch name="PsychoBass" prog="41" hbank="0" lbank="32"/>
+ <Patch name="007 Bass" prog="42" hbank="1" lbank="32"/>
+ <Patch name="Heavy Bass" prog="42" hbank="2" lbank="32"/>
+ <Patch name="Roundwound" prog="42" hbank="3" lbank="32"/>
+ <Patch name="Space Bass" prog="42" hbank="0" lbank="32"/>
+ <Patch name="Slap It!" prog="43" hbank="1" lbank="32"/>
+ <Patch name="GothamBass" prog="43" hbank="2" lbank="32"/>
+ <Patch name="Pop'n Bass" prog="43" hbank="3" lbank="32"/>
+ <Patch name="House Bass" prog="43" hbank="0" lbank="32"/>
+ <Patch name="VolumeKnob" prog="44" hbank="1" lbank="32"/>
+ <Patch name="No Frets!" prog="44" hbank="2" lbank="32"/>
+ <Patch name="Octaver" prog="44" hbank="3" lbank="32"/>
+ <Patch name="Jazzy Bass" prog="44" hbank="0" lbank="32"/>
+ <Patch name="Fat Mini" prog="45" hbank="1" lbank="32"/>
+ <Patch name="FM Pluxx" prog="45" hbank="2" lbank="32"/>
+ <Patch name="FunkSnapBs" prog="45" hbank="3" lbank="32"/>
+ <Patch name="Lately Bass" prog="45" hbank="0" lbank="32"/>
+ <Patch name="Filter Wow" prog="46" hbank="1" lbank="32"/>
+ <Patch name="Touch Bass" prog="46" hbank="2" lbank="32"/>
+ <Patch name="Funky Acid" prog="46" hbank="3" lbank="32"/>
+ <Patch name="SynAtkBass" prog="46" hbank="0" lbank="32"/>
+ <Patch name="IndustryRez" prog="47" hbank="1" lbank="32"/>
+ <Patch name="Buzzz Base" prog="47" hbank="2" lbank="32"/>
+ <Patch name="MellowBass" prog="47" hbank="3" lbank="32"/>
+ <Patch name="Quack" prog="47" hbank="0" lbank="32"/>
+ <Patch name="DeutschBas" prog="48" hbank="1" lbank="32"/>
+ <Patch name="TranceBass" prog="48" hbank="2" lbank="32"/>
+ <Patch name="ArndsHouse" prog="48" hbank="3" lbank="32"/>
+ <Patch name="Trick Bass" prog="48" hbank="0" lbank="32"/>
+ <Patch name="CyberBass" prog="49" hbank="1" lbank="32"/>
+ <Patch name="Dist Bass" prog="49" hbank="2" lbank="32"/>
+ <Patch name="BassHarmnc" prog="49" hbank="3" lbank="32"/>
+ <Patch name="DanceGlide" prog="49" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Strings">
+ <Patch name="Violinist" prog="50" hbank="1" lbank="32"/>
+ <Patch name="MI Viola" prog="50" hbank="2" lbank="32"/>
+ <Patch name="Solo Cello" prog="50" hbank="3" lbank="32"/>
+ <Patch name="ContraBass" prog="50" hbank="0" lbank="32"/>
+ <Patch name="MedSection" prog="51" hbank="1" lbank="32"/>
+ <Patch name="SmlSection" prog="51" hbank="2" lbank="32"/>
+ <Patch name="Solodious" prog="51" hbank="3" lbank="32"/>
+ <Patch name="DSP Violin" prog="51" hbank="0" lbank="32"/>
+ <Patch name="StringVox" prog="52" hbank="1" lbank="32"/>
+ <Patch name="LushStrngs" prog="52" hbank="2" lbank="32"/>
+ <Patch name="RichString" prog="52" hbank="3" lbank="32"/>
+ <Patch name="DiamondStr" prog="52" hbank="0" lbank="32"/>
+ <Patch name="LA Phil" prog="53" hbank="1" lbank="32"/>
+ <Patch name="Violin Orc" prog="53" hbank="2" lbank="32"/>
+ <Patch name="Film Score" prog="53" hbank="3" lbank="32"/>
+ <Patch name="SynthEnsmb" prog="53" hbank="0" lbank="32"/>
+ <Patch name="Arco Ens" prog="54" hbank="1" lbank="32"/>
+ <Patch name="OctaString" prog="54" hbank="2" lbank="32"/>
+ <Patch name="HugeString" prog="54" hbank="3" lbank="32"/>
+ <Patch name="Syn Arcos" prog="54" hbank="0" lbank="32"/>
+ <Patch name="Bali Hai" prog="55" hbank="1" lbank="32"/>
+ <Patch name="Pit String" prog="55" hbank="2" lbank="32"/>
+ <Patch name="Strng&amp;Perc" prog="55" hbank="3" lbank="32"/>
+ <Patch name="StarDustMW" prog="55" hbank="0" lbank="32"/>
+ <Patch name="Obersphere" prog="56" hbank="1" lbank="32"/>
+ <Patch name="Tron Mood" prog="56" hbank="2" lbank="32"/>
+ <Patch name="True Tron" prog="56" hbank="3" lbank="32"/>
+ <Patch name="DreamStrgs" prog="56" hbank="0" lbank="32"/>
+ <Patch name="J Strings" prog="57" hbank="1" lbank="32"/>
+ <Patch name="SE Flange" prog="57" hbank="2" lbank="32"/>
+ <Patch name="StrgMachin" prog="57" hbank="3" lbank="32"/>
+ <Patch name="Ana String" prog="57" hbank="0" lbank="32"/>
+ <Patch name="Pizz Pluck" prog="58" hbank="1" lbank="32"/>
+ <Patch name="Pitzi" prog="58" hbank="2" lbank="32"/>
+ <Patch name="PizzViolin" prog="58" hbank="3" lbank="32"/>
+ <Patch name="SpacePluck" prog="58" hbank="0" lbank="32"/>
+ <Patch name="Harp Pluck" prog="59" hbank="1" lbank="32"/>
+ <Patch name="HeavenHarp" prog="59" hbank="2" lbank="32"/>
+ <Patch name="Harp Gliss" prog="59" hbank="3" lbank="32"/>
+ <Patch name="Waterfalls" prog="59" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Brass">
+ <Patch name="FlugelSolo" prog="60" hbank="1" lbank="32"/>
+ <Patch name="Bone-afied" prog="60" hbank="2" lbank="32"/>
+ <Patch name="Francaise" prog="60" hbank="3" lbank="32"/>
+ <Patch name="SmokeyRoom" prog="60" hbank="0" lbank="32"/>
+ <Patch name="ClsclTrmpt" prog="61" hbank="1" lbank="32"/>
+ <Patch name="Jazz Mute" prog="61" hbank="2" lbank="32"/>
+ <Patch name="Orch Mutes" prog="61" hbank="3" lbank="32"/>
+ <Patch name="MW Mute TP" prog="61" hbank="0" lbank="32"/>
+ <Patch name="Solo Tromb" prog="62" hbank="1" lbank="32"/>
+ <Patch name="RegalBones" prog="62" hbank="2" lbank="32"/>
+ <Patch name="Tromb Ens" prog="62" hbank="3" lbank="32"/>
+ <Patch name="Hard Tuba" prog="62" hbank="0" lbank="32"/>
+ <Patch name="Dual Horns" prog="63" hbank="1" lbank="32"/>
+ <Patch name="Ooh Horns" prog="63" hbank="2" lbank="32"/>
+ <Patch name="3rdImpTrpt" prog="63" hbank="3" lbank="32"/>
+ <Patch name="FusionHorn" prog="63" hbank="0" lbank="32"/>
+ <Patch name="Real Brass" prog="64" hbank="1" lbank="32"/>
+ <Patch name="ClsclHorns" prog="64" hbank="2" lbank="32"/>
+ <Patch name="TrumpetEns" prog="64" hbank="3" lbank="32"/>
+ <Patch name="Vivaldian" prog="64" hbank="0" lbank="32"/>
+ <Patch name="Pop Brass" prog="65" hbank="1" lbank="32"/>
+ <Patch name="Gold Brass" prog="65" hbank="2" lbank="32"/>
+ <Patch name="Four Horns" prog="65" hbank="3" lbank="32"/>
+ <Patch name="BigBrsSect" prog="65" hbank="0" lbank="32"/>
+ <Patch name="Bigg Brass" prog="66" hbank="1" lbank="32"/>
+ <Patch name="BeBopHorns" prog="66" hbank="2" lbank="32"/>
+ <Patch name="Dixi Brass" prog="66" hbank="3" lbank="32"/>
+ <Patch name="ButtahHrns" prog="66" hbank="0" lbank="32"/>
+ <Patch name="Brass Pump" prog="67" hbank="1" lbank="32"/>
+ <Patch name="Sfz Brass" prog="67" hbank="2" lbank="32"/>
+ <Patch name="HornExpans" prog="67" hbank="3" lbank="32"/>
+ <Patch name="TrumpletMW" prog="67" hbank="0" lbank="32"/>
+ <Patch name="ClassBrass" prog="68" hbank="1" lbank="32"/>
+ <Patch name="Orchestral" prog="68" hbank="2" lbank="32"/>
+ <Patch name="GhostHorns" prog="68" hbank="3" lbank="32"/>
+ <Patch name="SkyWatcher" prog="68" hbank="0" lbank="32"/>
+ <Patch name="Ohbe Brass" prog="69" hbank="1" lbank="32"/>
+ <Patch name="ClscSynBrs" prog="69" hbank="2" lbank="32"/>
+ <Patch name="OB Horns" prog="69" hbank="3" lbank="32"/>
+ <Patch name="Mighty5th" prog="69" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Winds">
+ <Patch name="Lyric Flute" prog="70" hbank="1" lbank="32"/>
+ <Patch name="SingleFlut" prog="70" hbank="2" lbank="32"/>
+ <Patch name="Hard Flute" prog="70" hbank="3" lbank="32"/>
+ <Patch name="ChiffFlute" prog="70" hbank="0" lbank="32"/>
+ <Patch name="TronFlutes" prog="71" hbank="1" lbank="32"/>
+ <Patch name="SpaceFlute" prog="71" hbank="2" lbank="32"/>
+ <Patch name="Mutablow" prog="71" hbank="3" lbank="32"/>
+ <Patch name="TalkinPipe" prog="71" hbank="0" lbank="32"/>
+ <Patch name="PanPeople" prog="72" hbank="1" lbank="32"/>
+ <Patch name="Hard Pipes" prog="72" hbank="2" lbank="32"/>
+ <Patch name="PetersPipe" prog="72" hbank="3" lbank="32"/>
+ <Patch name="PanBristle" prog="72" hbank="0" lbank="32"/>
+ <Patch name="Bottle Pad" prog="73" hbank="1" lbank="32"/>
+ <Patch name="Tripan" prog="73" hbank="2" lbank="32"/>
+ <Patch name="Minotaur" prog="73" hbank="3" lbank="32"/>
+ <Patch name="BlowDeTune" prog="73" hbank="0" lbank="32"/>
+ <Patch name="Wind Ensmb" prog="74" hbank="1" lbank="32"/>
+ <Patch name="Wind Orch" prog="74" hbank="2" lbank="32"/>
+ <Patch name="Dark Winds" prog="74" hbank="3" lbank="32"/>
+ <Patch name="Wind Woods" prog="74" hbank="0" lbank="32"/>
+ <Patch name="SoloBasoon" prog="75" hbank="1" lbank="32"/>
+ <Patch name="Oboe Blow" prog="75" hbank="2" lbank="32"/>
+ <Patch name="G. Soprano" prog="75" hbank="3" lbank="32"/>
+ <Patch name="Croccodile" prog="75" hbank="0" lbank="32"/>
+ <Patch name="Tenor Solo" prog="76" hbank="1" lbank="32"/>
+ <Patch name="Brite Alto" prog="76" hbank="2" lbank="32"/>
+ <Patch name="Sax Touch" prog="76" hbank="3" lbank="32"/>
+ <Patch name="BreathySax" prog="76" hbank="0" lbank="32"/>
+ <Patch name="ThoseSaxes" prog="77" hbank="1" lbank="32"/>
+ <Patch name="Big Band" prog="77" hbank="2" lbank="32"/>
+ <Patch name="Sax Mass" prog="77" hbank="3" lbank="32"/>
+ <Patch name="SprnoRcrdr" prog="77" hbank="0" lbank="32"/>
+ <Patch name="Nautical" prog="78" hbank="1" lbank="32"/>
+ <Patch name="Wistelaan" prog="78" hbank="2" lbank="32"/>
+ <Patch name="Transformr" prog="78" hbank="3" lbank="32"/>
+ <Patch name="HybridBlow" prog="78" hbank="0" lbank="32"/>
+ <Patch name="FantaFlute" prog="79" hbank="1" lbank="32"/>
+ <Patch name="Shamanixst" prog="79" hbank="2" lbank="32"/>
+ <Patch name="1001Nights" prog="79" hbank="3" lbank="32"/>
+ <Patch name="Cartoonin'" prog="79" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Synth 1">
+ <Patch name="Ooh Choir" prog="80" hbank="1" lbank="32"/>
+ <Patch name="Oohzee" prog="80" hbank="2" lbank="32"/>
+ <Patch name="VelOooz&amp;Aaz" prog="80" hbank="3" lbank="32"/>
+ <Patch name="PavlovsDog" prog="80" hbank="0" lbank="32"/>
+ <Patch name="Ahh Choir" prog="81" hbank="1" lbank="32"/>
+ <Patch name="Glory Ahhs" prog="81" hbank="2" lbank="32"/>
+ <Patch name="Voxalon" prog="81" hbank="3" lbank="32"/>
+ <Patch name="MorphChoir" prog="81" hbank="0" lbank="32"/>
+ <Patch name="Sunsrizer" prog="82" hbank="1" lbank="32"/>
+ <Patch name="Dead Sea" prog="82" hbank="2" lbank="32"/>
+ <Patch name="Final Dawn" prog="82" hbank="3" lbank="32"/>
+ <Patch name="Air Pad MW" prog="82" hbank="0" lbank="32"/>
+ <Patch name="Afterglow" prog="83" hbank="1" lbank="32"/>
+ <Patch name="Anasthesia" prog="83" hbank="2" lbank="32"/>
+ <Patch name="1stContact" prog="83" hbank="3" lbank="32"/>
+ <Patch name="GlideVoxMW" prog="83" hbank="0" lbank="32"/>
+ <Patch name="TyrellCorp" prog="84" hbank="1" lbank="32"/>
+ <Patch name="Sparks" prog="84" hbank="2" lbank="32"/>
+ <Patch name="Applewine" prog="84" hbank="3" lbank="32"/>
+ <Patch name="JoshuaTree" prog="84" hbank="0" lbank="32"/>
+ <Patch name="MindSweep" prog="85" hbank="1" lbank="32"/>
+ <Patch name="Hol&amp;Sampl" prog="85" hbank="2" lbank="32"/>
+ <Patch name="Shiftaling" prog="85" hbank="3" lbank="32"/>
+ <Patch name="Metal Wash" prog="85" hbank="0" lbank="32"/>
+ <Patch name="GenesisWav" prog="86" hbank="1" lbank="32"/>
+ <Patch name="Dew Drops" prog="86" hbank="2" lbank="32"/>
+ <Patch name="Comet Rain" prog="86" hbank="3" lbank="32"/>
+ <Patch name="HeavenCent" prog="86" hbank="0" lbank="32"/>
+ <Patch name="Rainforest" prog="87" hbank="1" lbank="32"/>
+ <Patch name="Outland" prog="87" hbank="2" lbank="32"/>
+ <Patch name="7th Wave" prog="87" hbank="3" lbank="32"/>
+ <Patch name="Ocean Mood" prog="87" hbank="0" lbank="32"/>
+ <Patch name="Sahara Sun" prog="88" hbank="1" lbank="32"/>
+ <Patch name="Emperor" prog="88" hbank="2" lbank="32"/>
+ <Patch name="Eno Pad" prog="88" hbank="3" lbank="32"/>
+ <Patch name="MoonRise" prog="88" hbank="0" lbank="32"/>
+ <Patch name="Water!!!" prog="89" hbank="1" lbank="32"/>
+ <Patch name="Ascent" prog="89" hbank="2" lbank="32"/>
+ <Patch name="Tsynami" prog="89" hbank="3" lbank="32"/>
+ <Patch name="InnerPhase" prog="89" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Synth 2">
+ <Patch name="Quadatix" prog="90" hbank="1" lbank="32"/>
+ <Patch name="Fanfare GX" prog="90" hbank="2" lbank="32"/>
+ <Patch name="Touch &amp; Go" prog="90" hbank="3" lbank="32"/>
+ <Patch name="TicSawlead" prog="90" hbank="0" lbank="32"/>
+ <Patch name="VoltagePad" prog="91" hbank="1" lbank="32"/>
+ <Patch name="PowerChirp" prog="91" hbank="2" lbank="32"/>
+ <Patch name="EmersonSaw" prog="91" hbank="3" lbank="32"/>
+ <Patch name="Spaceport" prog="91" hbank="0" lbank="32"/>
+ <Patch name="Xpando Pad" prog="92" hbank="1" lbank="32"/>
+ <Patch name="BladeRunnr" prog="92" hbank="2" lbank="32"/>
+ <Patch name="Fluid Pad" prog="92" hbank="3" lbank="32"/>
+ <Patch name="FlashBack" prog="92" hbank="0" lbank="32"/>
+ <Patch name="Scarlamare" prog="93" hbank="1" lbank="32"/>
+ <Patch name="Distance" prog="93" hbank="2" lbank="32"/>
+ <Patch name="Vector Pad" prog="93" hbank="3" lbank="32"/>
+ <Patch name="VintageRez" prog="93" hbank="0" lbank="32"/>
+ <Patch name="A/V Pad" prog="94" hbank="1" lbank="32"/>
+ <Patch name="Angelsynth" prog="94" hbank="2" lbank="32"/>
+ <Patch name="Fuzz Choir" prog="94" hbank="3" lbank="32"/>
+ <Patch name="Mink Pad" prog="94" hbank="0" lbank="32"/>
+ <Patch name="AirLAYER" prog="95" hbank="1" lbank="32"/>
+ <Patch name="HighGlissz" prog="95" hbank="2" lbank="32"/>
+ <Patch name="Hihowareya" prog="95" hbank="3" lbank="32"/>
+ <Patch name="Cromaphon" prog="95" hbank="0" lbank="32"/>
+ <Patch name="Kalimpanad" prog="96" hbank="1" lbank="32"/>
+ <Patch name="Delectea" prog="96" hbank="2" lbank="32"/>
+ <Patch name="Scientific" prog="96" hbank="3" lbank="32"/>
+ <Patch name="Amakudari" prog="96" hbank="0" lbank="32"/>
+ <Patch name="Blacksmith" prog="97" hbank="1" lbank="32"/>
+ <Patch name="PatchCords" prog="97" hbank="2" lbank="32"/>
+ <Patch name="Pop Out" prog="97" hbank="3" lbank="32"/>
+ <Patch name="RubberMetl" prog="97" hbank="0" lbank="32"/>
+ <Patch name="Digidee" prog="98" hbank="1" lbank="32"/>
+ <Patch name="Silk&amp;Satin" prog="98" hbank="2" lbank="32"/>
+ <Patch name="Voice Bell" prog="98" hbank="3" lbank="32"/>
+ <Patch name="TinSynLead" prog="98" hbank="0" lbank="32"/>
+ <Patch name="Marburg" prog="99" hbank="1" lbank="32"/>
+ <Patch name="FuzzyGlass" prog="99" hbank="2" lbank="32"/>
+ <Patch name="PebbleBell" prog="99" hbank="3" lbank="32"/>
+ <Patch name="Marimpanad" prog="99" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Synth 3">
+ <Patch name="Porta Lead" prog="100" hbank="1" lbank="32"/>
+ <Patch name="FmDBgining" prog="100" hbank="2" lbank="32"/>
+ <Patch name="Fast Sync" prog="100" hbank="3" lbank="32"/>
+ <Patch name="Zoo Lead" prog="100" hbank="0" lbank="32"/>
+ <Patch name="ClassicSqr" prog="101" hbank="1" lbank="32"/>
+ <Patch name="EPROM Boy" prog="101" hbank="2" lbank="32"/>
+ <Patch name="Spork Boy" prog="101" hbank="3" lbank="32"/>
+ <Patch name="Spring Boy" prog="101" hbank="0" lbank="32"/>
+ <Patch name="Triangular" prog="102" hbank="1" lbank="32"/>
+ <Patch name="EmoL7 Lead" prog="102" hbank="2" lbank="32"/>
+ <Patch name="Tri Lead" prog="102" hbank="3" lbank="32"/>
+ <Patch name="3oh3 SawMW" prog="102" hbank="0" lbank="32"/>
+ <Patch name="Maze Lead" prog="103" hbank="1" lbank="32"/>
+ <Patch name="DiodeDoodl" prog="103" hbank="2" lbank="32"/>
+ <Patch name="Beta Lead" prog="103" hbank="3" lbank="32"/>
+ <Patch name="3oh3 SqrMW" prog="103" hbank="0" lbank="32"/>
+ <Patch name="BPF Lead" prog="104" hbank="1" lbank="32"/>
+ <Patch name="MellowGold" prog="104" hbank="2" lbank="32"/>
+ <Patch name="WhstleLead" prog="104" hbank="3" lbank="32"/>
+ <Patch name="HiPassCtrl" prog="104" hbank="0" lbank="32"/>
+ <Patch name="Screamer!" prog="105" hbank="1" lbank="32"/>
+ <Patch name="PortaWheel" prog="105" hbank="2" lbank="32"/>
+ <Patch name="Alpha Lead" prog="105" hbank="3" lbank="32"/>
+ <Patch name="'74 Square" prog="105" hbank="0" lbank="32"/>
+ <Patch name="ShineOn..." prog="106" hbank="1" lbank="32"/>
+ <Patch name="Sweet Lead" prog="106" hbank="2" lbank="32"/>
+ <Patch name="Rezzathing" prog="106" hbank="3" lbank="32"/>
+ <Patch name="RaveSaw QS" prog="106" hbank="0" lbank="32"/>
+ <Patch name="Touchsaw" prog="107" hbank="1" lbank="32"/>
+ <Patch name="Brassy 5th" prog="107" hbank="2" lbank="32"/>
+ <Patch name="Trilogy Ld" prog="107" hbank="3" lbank="32"/>
+ <Patch name="RaveSqr QS" prog="107" hbank="0" lbank="32"/>
+ <Patch name="Fuzz Box" prog="108" hbank="1" lbank="32"/>
+ <Patch name="SuperNova" prog="108" hbank="2" lbank="32"/>
+ <Patch name="Hazy Lead" prog="108" hbank="3" lbank="32"/>
+ <Patch name="Buzz Clip" prog="108" hbank="0" lbank="32"/>
+ <Patch name="AquaTarkus" prog="109" hbank="1" lbank="32"/>
+ <Patch name="AbdnsTriad" prog="109" hbank="2" lbank="32"/>
+ <Patch name="The Sage" prog="109" hbank="3" lbank="32"/>
+ <Patch name="SyncNSaws!" prog="109" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Rhythm/FX">
+ <Patch name="Synergy MW" prog="110" hbank="1" lbank="32"/>
+ <Patch name="Transcope" prog="110" hbank="2" lbank="32"/>
+ <Patch name="Pitch-Bot" prog="110" hbank="3" lbank="32"/>
+ <Patch name="Wormholes" prog="110" hbank="0" lbank="32"/>
+ <Patch name="Discotron" prog="111" hbank="1" lbank="32"/>
+ <Patch name="Groovy-bot" prog="111" hbank="2" lbank="32"/>
+ <Patch name="Disco Boy" prog="111" hbank="3" lbank="32"/>
+ <Patch name="Bonk" prog="111" hbank="0" lbank="32"/>
+ <Patch name="Bhangra" prog="112" hbank="1" lbank="32"/>
+ <Patch name="Yonderland" prog="112" hbank="2" lbank="32"/>
+ <Patch name="Braveheart" prog="112" hbank="3" lbank="32"/>
+ <Patch name="No Age" prog="112" hbank="0" lbank="32"/>
+ <Patch name="Randomania" prog="113" hbank="1" lbank="32"/>
+ <Patch name="Robotechno" prog="113" hbank="2" lbank="32"/>
+ <Patch name="NineIncher" prog="113" hbank="3" lbank="32"/>
+ <Patch name="Funkngruvn" prog="113" hbank="0" lbank="32"/>
+ <Patch name="Pop Thing" prog="114" hbank="1" lbank="32"/>
+ <Patch name="JungleGruv" prog="114" hbank="2" lbank="32"/>
+ <Patch name="TheSandMan" prog="114" hbank="3" lbank="32"/>
+ <Patch name="New Waves" prog="114" hbank="0" lbank="32"/>
+ <Patch name="Loop-O-Mat" prog="115" hbank="1" lbank="32"/>
+ <Patch name="WhereDrums" prog="115" hbank="2" lbank="32"/>
+ <Patch name="ConsumRism" prog="115" hbank="3" lbank="32"/>
+ <Patch name="Pss Roll" prog="115" hbank="0" lbank="32"/>
+ <Patch name="Clockwork" prog="116" hbank="1" lbank="32"/>
+ <Patch name="Sardauker" prog="116" hbank="2" lbank="32"/>
+ <Patch name="Fanfare" prog="116" hbank="3" lbank="32"/>
+ <Patch name="TseTse Fly" prog="116" hbank="0" lbank="32"/>
+ <Patch name="Heartbeat" prog="117" hbank="1" lbank="32"/>
+ <Patch name="Circles" prog="117" hbank="2" lbank="32"/>
+ <Patch name="Big Sur" prog="117" hbank="3" lbank="32"/>
+ <Patch name="DogsInSpac" prog="117" hbank="0" lbank="32"/>
+ <Patch name="Nanites" prog="118" hbank="1" lbank="32"/>
+ <Patch name="T-Minus 1" prog="118" hbank="2" lbank="32"/>
+ <Patch name="BubbleHead" prog="118" hbank="3" lbank="32"/>
+ <Patch name="Insectagon" prog="118" hbank="0" lbank="32"/>
+ <Patch name="MonstrMash" prog="119" hbank="1" lbank="32"/>
+ <Patch name="Creeps" prog="119" hbank="2" lbank="32"/>
+ <Patch name="Hyperspace" prog="119" hbank="3" lbank="32"/>
+ <Patch name="Laboratory" prog="119" hbank="0" lbank="32"/>
+ </PatchGroup>
+
+
+ <PatchGroup name="Drums/Percussion">
+ <Patch name="DM5 Drums" prog="120" hbank="1" lbank="32"/>
+ <Patch name="Pop Up Kit" prog="120" hbank="2" lbank="32"/>
+ <Patch name="CountryKit" prog="120" hbank="3" lbank="32"/>
+ <Patch name="Real Rock" prog="120" hbank="0" lbank="32"/>
+ <Patch name="Straight 8" prog="121" hbank="1" lbank="32"/>
+ <Patch name="9 Time" prog="121" hbank="2" lbank="32"/>
+ <Patch name="See our 78" prog="121" hbank="3" lbank="32"/>
+ <Patch name="Asylum Kit" prog="121" hbank="0" lbank="32"/>
+ <Patch name="Industro" prog="122" hbank="1" lbank="32"/>
+ <Patch name="HardcoreKit" prog="122" hbank="2" lbank="32"/>
+ <Patch name="Groovy Lube" prog="122" hbank="3" lbank="32"/>
+ <Patch name="Harlem Tek" prog="122" hbank="0" lbank="32"/>
+ <Patch name="StreetBeat" prog="123" hbank="1" lbank="32"/>
+ <Patch name="UrbanBliss" prog="123" hbank="2" lbank="32"/>
+ <Patch name="Disco Kit" prog="123" hbank="3" lbank="32"/>
+ <Patch name="15ips Kit" prog="123" hbank="0" lbank="32"/>
+ <Patch name="Outer Kit" prog="124" hbank="1" lbank="32"/>
+ <Patch name="GuessTrips" prog="124" hbank="2" lbank="32"/>
+ <Patch name="UFO Drums" prog="124" hbank="3" lbank="32"/>
+ <Patch name="GuessDrums" prog="124" hbank="0" lbank="32"/>
+ <Patch name="AfricaPerc" prog="125" hbank="1" lbank="32"/>
+ <Patch name="India Perc" prog="125" hbank="2" lbank="32"/>
+ <Patch name="Asia Perc" prog="125" hbank="3" lbank="32"/>
+ <Patch name="VocoderKit" prog="125" hbank="0" lbank="32"/>
+ <Patch name="Marktree" prog="126" hbank="1" lbank="32"/>
+ <Patch name="TimpaniHit" prog="126" hbank="2" lbank="32"/>
+ <Patch name="Doom Toms" prog="126" hbank="3" lbank="32"/>
+ <Patch name="Rainstick" prog="126" hbank="0" lbank="32"/>
+ <Patch name="Orch Hits" prog="127" hbank="1" lbank="32"/>
+ <Patch name="Danz Hitz" prog="127" hbank="2" lbank="32"/>
+ <Patch name="Film Hit" prog="127" hbank="3" lbank="32"/>
+ <Patch name="Deja Hitz" prog="127" hbank="0" lbank="32"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/AlesisQS6.idf b/muse_qt4_evolution/share/instruments/AlesisQS6.idf
new file mode 100644
index 00000000..d10177b1
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/AlesisQS6.idf
@@ -0,0 +1,658 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="AlesisQS6">
+ <PatchGroup name="General Midi">
+ <Patch name="Acoustic Grand Piano" prog="0" hbank="4" lbank="32"/>
+ <Patch name="Bright Acoustic Piano" prog="1" hbank="4" lbank="32"/>
+ <Patch name="Electric Grand Piano" prog="2" hbank="4" lbank="32"/>
+ <Patch name="Honky-tonk Piano" prog="3" hbank="4" lbank="32"/>
+ <Patch name="Electric Piano 1" prog="4" hbank="4" lbank="32"/>
+ <Patch name="Electric Piano 2" prog="5" hbank="4" lbank="32"/>
+ <Patch name="Harpsichord" prog="6" hbank="4" lbank="32"/>
+ <Patch name="Clavi" prog="7" hbank="4" lbank="32"/>
+ <Patch name="Celesta" prog="8" hbank="4" lbank="32"/>
+ <Patch name="Glockenspiel" prog="9" hbank="4" lbank="32"/>
+ <Patch name="Music Box" prog="10" hbank="4" lbank="32"/>
+ <Patch name="Vibraphone" prog="11" hbank="4" lbank="32"/>
+ <Patch name="Marimba" prog="12" hbank="4" lbank="32"/>
+ <Patch name="Xylophone" prog="13" hbank="4" lbank="32"/>
+ <Patch name="Tubular Bells" prog="14" hbank="4" lbank="32"/>
+ <Patch name="Dulcimer" prog="15" hbank="4" lbank="32"/>
+ <Patch name="Drawbar Organ" prog="16" hbank="4" lbank="32"/>
+ <Patch name="Percussive Organ" prog="17" hbank="4" lbank="32"/>
+ <Patch name="Rock Organ" prog="18" hbank="4" lbank="32"/>
+ <Patch name="Church Organ" prog="19" hbank="4" lbank="32"/>
+ <Patch name="Reed Organ" prog="20" hbank="4" lbank="32"/>
+ <Patch name="Accordion" prog="21" hbank="4" lbank="32"/>
+ <Patch name="Harmonica" prog="22" hbank="4" lbank="32"/>
+ <Patch name="Tango Accordion" prog="23" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Guitar (nylon)" prog="24" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Guitar (steel)" prog="25" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (jazz)" prog="26" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (clean)" prog="27" hbank="4" lbank="32"/>
+ <Patch name="Electric Guitar (muted)" prog="28" hbank="4" lbank="32"/>
+ <Patch name="Overdriven Guitar" prog="29" hbank="4" lbank="32"/>
+ <Patch name="Distortion Guitar" prog="30" hbank="4" lbank="32"/>
+ <Patch name="Guitar harmonics" prog="31" hbank="4" lbank="32"/>
+ <Patch name="Acoustic Bass" prog="32" hbank="4" lbank="32"/>
+ <Patch name="Fingered Bass" prog="33" hbank="4" lbank="32"/>
+ <Patch name="Picked Bass" prog="34" hbank="4" lbank="32"/>
+ <Patch name="Fretless Bass" prog="35" hbank="4" lbank="32"/>
+ <Patch name="Slap Bass 1" prog="36" hbank="4" lbank="32"/>
+ <Patch name="Slap Bass 2" prog="37" hbank="4" lbank="32"/>
+ <Patch name="Synth Bass 1" prog="38" hbank="4" lbank="32"/>
+ <Patch name="Synth Bass 2" prog="39" hbank="4" lbank="32"/>
+ <Patch name="Violin" prog="40" hbank="4" lbank="32"/>
+ <Patch name="Viola" prog="41" hbank="4" lbank="32"/>
+ <Patch name="Cello" prog="42" hbank="4" lbank="32"/>
+ <Patch name="Contrabass" prog="43" hbank="4" lbank="32"/>
+ <Patch name="Tremolo Strings" prog="44" hbank="4" lbank="32"/>
+ <Patch name="Pizzicato Strings" prog="45" hbank="4" lbank="32"/>
+ <Patch name="Orchestral Harp" prog="46" hbank="4" lbank="32"/>
+ <Patch name="Timpani" prog="47" hbank="4" lbank="32"/>
+ <Patch name="String Ensemble 1" prog="48" hbank="4" lbank="32"/>
+ <Patch name="String Ensemble 2" prog="49" hbank="4" lbank="32"/>
+ <Patch name="SynthStrings 1" prog="50" hbank="4" lbank="32"/>
+ <Patch name="SynthStrings 2" prog="51" hbank="4" lbank="32"/>
+ <Patch name="Choir Aahs" prog="52" hbank="4" lbank="32"/>
+ <Patch name="Voice Oohs" prog="53" hbank="4" lbank="32"/>
+ <Patch name="Synth Voice" prog="54" hbank="4" lbank="32"/>
+ <Patch name="Orchestra Hit" prog="55" hbank="4" lbank="32"/>
+ <Patch name="Trumpet" prog="56" hbank="4" lbank="32"/>
+ <Patch name="Trombone" prog="57" hbank="4" lbank="32"/>
+ <Patch name="Tuba" prog="58" hbank="4" lbank="32"/>
+ <Patch name="Muted Trumpet" prog="59" hbank="4" lbank="32"/>
+ <Patch name="French Horn" prog="60" hbank="4" lbank="32"/>
+ <Patch name="Brass Section" prog="61" hbank="4" lbank="32"/>
+ <Patch name="SynthBrass 1" prog="62" hbank="4" lbank="32"/>
+ <Patch name="SynthBrass 2" prog="63" hbank="4" lbank="32"/>
+ <Patch name="Soprano Sax" prog="64" hbank="4" lbank="32"/>
+ <Patch name="Alto Sax" prog="65" hbank="4" lbank="32"/>
+ <Patch name="Tenor Sax" prog="66" hbank="4" lbank="32"/>
+ <Patch name="Baritone Sax" prog="67" hbank="4" lbank="32"/>
+ <Patch name="Oboe" prog="68" hbank="4" lbank="32"/>
+ <Patch name="English Horn" prog="69" hbank="4" lbank="32"/>
+ <Patch name="Bassoon" prog="70" hbank="4" lbank="32"/>
+ <Patch name="Clarinet" prog="71" hbank="4" lbank="32"/>
+ <Patch name="Piccolo" prog="72" hbank="4" lbank="32"/>
+ <Patch name="Flute" prog="73" hbank="4" lbank="32"/>
+ <Patch name="Recorder" prog="74" hbank="4" lbank="32"/>
+ <Patch name="Pan Flute" prog="75" hbank="4" lbank="32"/>
+ <Patch name="Blown Bottle" prog="76" hbank="4" lbank="32"/>
+ <Patch name="Shakuhachi" prog="77" hbank="4" lbank="32"/>
+ <Patch name="Whistle" prog="78" hbank="4" lbank="32"/>
+ <Patch name="Ocarina" prog="79" hbank="4" lbank="32"/>
+ <Patch name="Lead 1 (square)" prog="80" hbank="4" lbank="32"/>
+ <Patch name="Lead 2 (sawtooth)" prog="81" hbank="4" lbank="32"/>
+ <Patch name="Lead 3 (calliope)" prog="82" hbank="4" lbank="32"/>
+ <Patch name="Lead 4 (chiff)" prog="83" hbank="4" lbank="32"/>
+ <Patch name="Lead 5 (charang)" prog="84" hbank="4" lbank="32"/>
+ <Patch name="Lead 6 (voice)" prog="85" hbank="4" lbank="32"/>
+ <Patch name="Lead 7 (fifths)" prog="86" hbank="4" lbank="32"/>
+ <Patch name="Lead 8 (bass + lead)" prog="87" hbank="4" lbank="32"/>
+ <Patch name="Pad 1 (new age)" prog="88" hbank="4" lbank="32"/>
+ <Patch name="Pad 2 (warm)" prog="89" hbank="4" lbank="32"/>
+ <Patch name="Pad 3 (polysynth)" prog="90" hbank="4" lbank="32"/>
+ <Patch name="Pad 4 (choir)" prog="91" hbank="4" lbank="32"/>
+ <Patch name="Pad 5 (bowed)" prog="92" hbank="4" lbank="32"/>
+ <Patch name="Pad 6 (metallic)" prog="93" hbank="4" lbank="32"/>
+ <Patch name="Pad 7 (halo)" prog="94" hbank="4" lbank="32"/>
+ <Patch name="Pad 8 (sweep)" prog="95" hbank="4" lbank="32"/>
+ <Patch name="FX 1 (rain)" prog="96" hbank="4" lbank="32"/>
+ <Patch name="FX 2 (soundtrack)" prog="97" hbank="4" lbank="32"/>
+ <Patch name="FX 3 (crystal)" prog="98" hbank="4" lbank="32"/>
+ <Patch name="FX 4 (atmosphere)" prog="99" hbank="4" lbank="32"/>
+ <Patch name="FX 5 (brightness)" prog="100" hbank="4" lbank="32"/>
+ <Patch name="FX 6 (goblins)" prog="101" hbank="4" lbank="32"/>
+ <Patch name="FX 7 (echoes)" prog="102" hbank="4" lbank="32"/>
+ <Patch name="FX 8 (sci-fi)" prog="103" hbank="4" lbank="32"/>
+ <Patch name="Sitar" prog="104" hbank="4" lbank="32"/>
+ <Patch name="Banjo" prog="105" hbank="4" lbank="32"/>
+ <Patch name="Shamisen" prog="106" hbank="4" lbank="32"/>
+ <Patch name="Koto" prog="107" hbank="4" lbank="32"/>
+ <Patch name="Kalimba" prog="108" hbank="4" lbank="32"/>
+ <Patch name="Bag pipe" prog="109" hbank="4" lbank="32"/>
+ <Patch name="Fiddle" prog="110" hbank="4" lbank="32"/>
+ <Patch name="Shanai" prog="111" hbank="4" lbank="32"/>
+ <Patch name="Tinkle Bell" prog="112" hbank="4" lbank="32"/>
+ <Patch name="Agogo" prog="113" hbank="4" lbank="32"/>
+ <Patch name="Steel Drums" prog="114" hbank="4" lbank="32"/>
+ <Patch name="Woodblock" prog="115" hbank="4" lbank="32"/>
+ <Patch name="Taiko Drum" prog="116" hbank="4" lbank="32"/>
+ <Patch name="Melodic Tom" prog="117" hbank="4" lbank="32"/>
+ <Patch name="Synth Drum" prog="118" hbank="4" lbank="32"/>
+ <Patch name="Reverse Cymbal" prog="119" hbank="4" lbank="32"/>
+ <Patch name="Guitar Fret Noise" prog="120" hbank="4" lbank="32"/>
+ <Patch name="Breath Noise" prog="121" hbank="4" lbank="32"/>
+ <Patch name="Seashore" prog="122" hbank="4" lbank="32"/>
+ <Patch name="Bird Tweet" prog="123" hbank="4" lbank="32"/>
+ <Patch name="Telephone Ring" prog="124" hbank="4" lbank="32"/>
+ <Patch name="Helicopter" prog="125" hbank="4" lbank="32"/>
+ <Patch name="Applause" prog="126" hbank="4" lbank="32"/>
+ <Patch name="Gunshot" prog="127" hbank="4" lbank="32"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset1 Programs">
+ <Patch name="GrandPiano" prog="0" hbank="1" lbank="32"/>
+ <Patch name="PianoMorph" prog="1" hbank="1" lbank="32"/>
+ <Patch name="HyperPiano" prog="2" hbank="1" lbank="32"/>
+ <Patch name="Rayz Rhodz" prog="3" hbank="1" lbank="32"/>
+ <Patch name="61 Tines" prog="4" hbank="1" lbank="32"/>
+ <Patch name="FM E Piano" prog="5" hbank="1" lbank="32"/>
+ <Patch name="EP &amp; Oohs" prog="6" hbank="1" lbank="32"/>
+ <Patch name="Wave Piano" prog="7" hbank="1" lbank="32"/>
+ <Patch name="ClascWurly" prog="8" hbank="1" lbank="32"/>
+ <Patch name="Jazz Duo" prog="9" hbank="1" lbank="32"/>
+ <Patch name="Clavitube" prog="10" hbank="1" lbank="32"/>
+ <Patch name="Real Clav" prog="11" hbank="1" lbank="32"/>
+ <Patch name="TrueHarpsi" prog="12" hbank="1" lbank="32"/>
+ <Patch name="Cool Vibes" prog="13" hbank="1" lbank="32"/>
+ <Patch name="BriteMarim" prog="14" hbank="1" lbank="32"/>
+ <Patch name="Kalimba MW" prog="15" hbank="1" lbank="32"/>
+ <Patch name="Brake Drum" prog="16" hbank="1" lbank="32"/>
+ <Patch name="St. Thomas" prog="17" hbank="1" lbank="32"/>
+ <Patch name="Basic Bell" prog="18" hbank="1" lbank="32"/>
+ <Patch name="ClockTower" prog="19" hbank="1" lbank="32"/>
+ <Patch name="Real Prc B" prog="20" hbank="1" lbank="32"/>
+ <Patch name="High Life" prog="21" hbank="1" lbank="32"/>
+ <Patch name="Grit Organ" prog="22" hbank="1" lbank="32"/>
+ <Patch name="HoedownOrg" prog="23" hbank="1" lbank="32"/>
+ <Patch name="Purple B" prog="24" hbank="1" lbank="32"/>
+ <Patch name="Toccata&amp;Fg" prog="25" hbank="1" lbank="32"/>
+ <Patch name="High Mass" prog="26" hbank="1" lbank="32"/>
+ <Patch name="Communion" prog="27" hbank="1" lbank="32"/>
+ <Patch name="FrAccrdion" prog="28" hbank="1" lbank="32"/>
+ <Patch name="WhammerJmr" prog="29" hbank="1" lbank="32"/>
+ <Patch name="SteelHorse" prog="30" hbank="1" lbank="32"/>
+ <Patch name="GuildedAge" prog="31" hbank="1" lbank="32"/>
+ <Patch name="Gitarala" prog="32" hbank="1" lbank="32"/>
+ <Patch name="Nylon&amp;Oohs" prog="33" hbank="1" lbank="32"/>
+ <Patch name="TreMellow" prog="34" hbank="1" lbank="32"/>
+ <Patch name="TurboSlidr" prog="35" hbank="1" lbank="32"/>
+ <Patch name="Total Chug" prog="36" hbank="1" lbank="32"/>
+ <Patch name="Feebacker" prog="37" hbank="1" lbank="32"/>
+ <Patch name="WorldSitar" prog="38" hbank="1" lbank="32"/>
+ <Patch name="Koto Pluck" prog="39" hbank="1" lbank="32"/>
+ <Patch name="BigUpright" prog="40" hbank="1" lbank="32"/>
+ <Patch name="QS Bass" prog="41" hbank="1" lbank="32"/>
+ <Patch name="007 Bass" prog="42" hbank="1" lbank="32"/>
+ <Patch name="Slap It!" prog="43" hbank="1" lbank="32"/>
+ <Patch name="VolumeKnob" prog="44" hbank="1" lbank="32"/>
+ <Patch name="Fat Mini" prog="45" hbank="1" lbank="32"/>
+ <Patch name="Filter Wow" prog="46" hbank="1" lbank="32"/>
+ <Patch name="IndustryRez" prog="47" hbank="1" lbank="32"/>
+ <Patch name="DeutschBas" prog="48" hbank="1" lbank="32"/>
+ <Patch name="CyberBass" prog="49" hbank="1" lbank="32"/>
+ <Patch name="Stradivari" prog="50" hbank="1" lbank="32"/>
+ <Patch name="SmlSection" prog="51" hbank="1" lbank="32"/>
+ <Patch name="MedSection" prog="52" hbank="1" lbank="32"/>
+ <Patch name="FireStrngs" prog="53" hbank="1" lbank="32"/>
+ <Patch name="ArcoStrngs" prog="54" hbank="1" lbank="32"/>
+ <Patch name="Pit String" prog="55" hbank="1" lbank="32"/>
+ <Patch name="Obersphere" prog="56" hbank="1" lbank="32"/>
+ <Patch name="J Strings" prog="57" hbank="1" lbank="32"/>
+ <Patch name="PizzViolin" prog="58" hbank="1" lbank="32"/>
+ <Patch name="Harp Pluck" prog="59" hbank="1" lbank="32"/>
+ <Patch name="FlugelSolo" prog="60" hbank="1" lbank="32"/>
+ <Patch name="Jazz Mute" prog="61" hbank="1" lbank="32"/>
+ <Patch name="Solor Tromb" prog="62" hbank="1" lbank="32"/>
+ <Patch name="FHrn Ens" prog="63" hbank="1" lbank="32"/>
+ <Patch name="BriteBass" prog="64" hbank="1" lbank="32"/>
+ <Patch name="Ohbe Brass" prog="65" hbank="1" lbank="32"/>
+ <Patch name="Stab Brass" prog="66" hbank="1" lbank="32"/>
+ <Patch name="Brass Pump" prog="67" hbank="1" lbank="32"/>
+ <Patch name="Big Brass" prog="68" hbank="1" lbank="32"/>
+ <Patch name="Orchestral" prog="69" hbank="1" lbank="32"/>
+ <Patch name="Lyric Flute" prog="70" hbank="1" lbank="32"/>
+ <Patch name="TronFlutes" prog="71" hbank="1" lbank="32"/>
+ <Patch name="PanPeople" prog="72" hbank="1" lbank="32"/>
+ <Patch name="Velo Shaku" prog="73" hbank="1" lbank="32"/>
+ <Patch name="Wind Ensmb" prog="74" hbank="1" lbank="32"/>
+ <Patch name="SoloBasoon" prog="75" hbank="1" lbank="32"/>
+ <Patch name="Tenor Solo" prog="76" hbank="1" lbank="32"/>
+ <Patch name="ThoseSaxes" prog="77" hbank="1" lbank="32"/>
+ <Patch name="Nautical" prog="78" hbank="1" lbank="32"/>
+ <Patch name="MagicFlute" prog="79" hbank="1" lbank="32"/>
+ <Patch name="Air Choir" prog="80" hbank="1" lbank="32"/>
+ <Patch name="Ooh LaLa" prog="81" hbank="1" lbank="32"/>
+ <Patch name="Sunsrizer" prog="82" hbank="1" lbank="32"/>
+ <Patch name="Afterglow" prog="83" hbank="1" lbank="32"/>
+ <Patch name="Meditation" prog="84" hbank="1" lbank="32"/>
+ <Patch name="Marburg" prog="85" hbank="1" lbank="32"/>
+ <Patch name="Kalimpanad" prog="86" hbank="1" lbank="32"/>
+ <Patch name="Ocean Mood" prog="87" hbank="1" lbank="32"/>
+ <Patch name="Bali Hai" prog="88" hbank="1" lbank="32"/>
+ <Patch name="StaticMing" prog="89" hbank="1" lbank="32"/>
+ <Patch name="Scientific" prog="90" hbank="1" lbank="32"/>
+ <Patch name="Digidee" prog="91" hbank="1" lbank="32"/>
+ <Patch name="Technoids" prog="92" hbank="1" lbank="32"/>
+ <Patch name="C Quenced" prog="93" hbank="1" lbank="32"/>
+ <Patch name="Dew Drops" prog="94" hbank="1" lbank="32"/>
+ <Patch name="GldnFleece" prog="95" hbank="1" lbank="32"/>
+ <Patch name="Dreamscape" prog="96" hbank="1" lbank="32"/>
+ <Patch name="HighGlissz" prog="97" hbank="1" lbank="32"/>
+ <Patch name="Shiftaling" prog="98" hbank="1" lbank="32"/>
+ <Patch name="GenesisWav" prog="99" hbank="1" lbank="32"/>
+ <Patch name="Quadratix" prog="100" hbank="1" lbank="32"/>
+ <Patch name="Analogist" prog="101" hbank="1" lbank="32"/>
+ <Patch name="Scarlamare" prog="102" hbank="1" lbank="32"/>
+ <Patch name="ShineOn..." prog="103" hbank="1" lbank="32"/>
+ <Patch name="ClassicSqr" prog="104" hbank="1" lbank="32"/>
+ <Patch name="Porta Lead" prog="105" hbank="1" lbank="32"/>
+ <Patch name="FatAnaLead" prog="106" hbank="1" lbank="32"/>
+ <Patch name="Screamer!" prog="107" hbank="1" lbank="32"/>
+ <Patch name="Fuzz Box" prog="108" hbank="1" lbank="32"/>
+ <Patch name="Transformr" prog="109" hbank="1" lbank="32"/>
+ <Patch name="AutoBahn" prog="110" hbank="1" lbank="32"/>
+ <Patch name="ThrobPants" prog="111" hbank="1" lbank="32"/>
+ <Patch name="EkectriKyv" prog="112" hbank="1" lbank="32"/>
+ <Patch name="TheBeatnik" prog="113" hbank="1" lbank="32"/>
+ <Patch name="ShakYerLup" prog="114" hbank="1" lbank="32"/>
+ <Patch name="Raga No.1" prog="115" hbank="1" lbank="32"/>
+ <Patch name="T I M E !" prog="116" hbank="1" lbank="32"/>
+ <Patch name="Heartbeat" prog="117" hbank="1" lbank="32"/>
+ <Patch name="Amazonia" prog="118" hbank="1" lbank="32"/>
+ <Patch name="Nanites" prog="119" hbank="1" lbank="32"/>
+ <Patch name="Basic Kit" prog="120" hbank="1" lbank="32"/>
+ <Patch name="Straight 8" prog="121" hbank="1" lbank="32"/>
+ <Patch name="Club Kit" prog="123" hbank="1" lbank="32"/>
+ <Patch name="T Funk Era" prog="124" hbank="1" lbank="32"/>
+ <Patch name="IsmellFUNK" prog="125" hbank="1" lbank="32"/>
+ <Patch name="Chimes" prog="126" hbank="1" lbank="32"/>
+ <Patch name="Orch Hits" prog="127" hbank="1" lbank="32"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset2 Programs">
+ <Patch name="Solo Piano" prog="0" hbank="2" lbank="32"/>
+ <Patch name="Pno&amp;Strngs" prog="1" hbank="2" lbank="32"/>
+ <Patch name="Pno&amp;Roadz" prog="2" hbank="2" lbank="32"/>
+ <Patch name="Hard Roads" prog="3" hbank="2" lbank="32"/>
+ <Patch name="Suitcase" prog="4" hbank="2" lbank="32"/>
+ <Patch name="Soft FM EP" prog="5" hbank="2" lbank="32"/>
+ <Patch name="EP &amp; String" prog="6" hbank="2" lbank="32"/>
+ <Patch name="Glassworks" prog="7" hbank="2" lbank="32"/>
+ <Patch name="DirtyWurly" prog="8" hbank="2" lbank="32"/>
+ <Patch name="Stik&amp;Tines" prog="9" hbank="2" lbank="32"/>
+ <Patch name="Clavicomp" prog="10" hbank="2" lbank="32"/>
+ <Patch name="Clavatar" prog="11" hbank="2" lbank="32"/>
+ <Patch name="Harpsifunk" prog="12" hbank="2" lbank="32"/>
+ <Patch name="Mad Vibes" prog="13" hbank="2" lbank="32"/>
+ <Patch name="Woody Xylo" prog="14" hbank="2" lbank="32"/>
+ <Patch name="Potsticker" prog="15" hbank="2" lbank="32"/>
+ <Patch name="Watercan" prog="16" hbank="2" lbank="32"/>
+ <Patch name="Chiff Bell" prog="17" hbank="2" lbank="32"/>
+ <Patch name="Toy Bell" prog="18" hbank="2" lbank="32"/>
+ <Patch name="Tacko Bell" prog="19" hbank="2" lbank="32"/>
+ <Patch name="WhitrShade" prog="20" hbank="2" lbank="32"/>
+ <Patch name="BluesOrgan" prog="21" hbank="2" lbank="32"/>
+ <Patch name="GreasyOrgan" prog="22" hbank="2" lbank="32"/>
+ <Patch name="Organ 66" prog="23" hbank="2" lbank="32"/>
+ <Patch name="MetalOrgan" prog="24" hbank="2" lbank="32"/>
+ <Patch name="Full Ranks" prog="25" hbank="2" lbank="32"/>
+ <Patch name="SftPipeOrg" prog="26" hbank="2" lbank="32"/>
+ <Patch name="2 Drawbars" prog="27" hbank="2" lbank="32"/>
+ <Patch name="WrmAcrdion" prog="28" hbank="2" lbank="32"/>
+ <Patch name="JazzHrmnca" prog="29" hbank="2" lbank="32"/>
+ <Patch name="Acous6strg" prog="30" hbank="2" lbank="32"/>
+ <Patch name="Big Body12" prog="31" hbank="2" lbank="32"/>
+ <Patch name="Guitar Poem" prog="32" hbank="2" lbank="32"/>
+ <Patch name="ThickNylon" prog="33" hbank="2" lbank="32"/>
+ <Patch name="Silvertone" prog="34" hbank="2" lbank="32"/>
+ <Patch name="818 Guitar" prog="35" hbank="2" lbank="32"/>
+ <Patch name="Chunky" prog="36" hbank="2" lbank="32"/>
+ <Patch name="Rock Lead" prog="37" hbank="2" lbank="32"/>
+ <Patch name="CaralLezli" prog="38" hbank="2" lbank="32"/>
+ <Patch name="Ethnoplukk" prog="39" hbank="2" lbank="32"/>
+ <Patch name="FatUpright" prog="40" hbank="2" lbank="32"/>
+ <Patch name="Face Bass" prog="41" hbank="2" lbank="32"/>
+ <Patch name="Heavy Bass" prog="42" hbank="2" lbank="32"/>
+ <Patch name="GothamBass" prog="43" hbank="2" lbank="32"/>
+ <Patch name="No Frets!" prog="44" hbank="2" lbank="32"/>
+ <Patch name="House Bass" prog="45" hbank="2" lbank="32"/>
+ <Patch name="Rezzo Baze" prog="46" hbank="2" lbank="32"/>
+ <Patch name="StreetBass" prog="47" hbank="2" lbank="32"/>
+ <Patch name="TranceBass" prog="48" hbank="2" lbank="32"/>
+ <Patch name="Dist Bass" prog="49" hbank="2" lbank="32"/>
+ <Patch name="2 Violins" prog="50" hbank="2" lbank="32"/>
+ <Patch name="Violin Orc" prog="51" hbank="2" lbank="32"/>
+ <Patch name="Concerto" prog="52" hbank="2" lbank="32"/>
+ <Patch name="StringAura" prog="53" hbank="2" lbank="32"/>
+ <Patch name="OctaString" prog="54" hbank="2" lbank="32"/>
+ <Patch name="Strng&amp;Timp" prog="55" hbank="2" lbank="32"/>
+ <Patch name="SE Flange" prog="56" hbank="2" lbank="32"/>
+ <Patch name="SynStrings" prog="57" hbank="2" lbank="32"/>
+ <Patch name="Cello/Pizz" prog="58" hbank="2" lbank="32"/>
+ <Patch name="HeavenHarp" prog="59" hbank="2" lbank="32"/>
+ <Patch name="UseMWandAT" prog="60" hbank="2" lbank="32"/>
+ <Patch name="Mute&amp;Flute" prog="61" hbank="2" lbank="32"/>
+ <Patch name="RegalBones" prog="62" hbank="2" lbank="32"/>
+ <Patch name="Fhorn&amp;Bssn" prog="63" hbank="2" lbank="32"/>
+ <Patch name="ClsclHorns" prog="64" hbank="2" lbank="32"/>
+ <Patch name="ClscSynBrs" prog="65" hbank="2" lbank="32"/>
+ <Patch name="BrassTouch" prog="66" hbank="2" lbank="32"/>
+ <Patch name="Sfz Brass" prog="67" hbank="2" lbank="32"/>
+ <Patch name="BeBopHorns" prog="68" hbank="2" lbank="32"/>
+ <Patch name="Orchestra2" prog="69" hbank="2" lbank="32"/>
+ <Patch name="SingleFlut" prog="70" hbank="2" lbank="32"/>
+ <Patch name="Bottle Pad" prog="71" hbank="2" lbank="32"/>
+ <Patch name="PetersPipe" prog="72" hbank="2" lbank="32"/>
+ <Patch name="Hard Pipes" prog="73" hbank="2" lbank="32"/>
+ <Patch name="Wind Orch" prog="74" hbank="2" lbank="32"/>
+ <Patch name="VeryEnglsh" prog="75" hbank="2" lbank="32"/>
+ <Patch name="Brite Alto" prog="76" hbank="2" lbank="32"/>
+ <Patch name="Sax ouch" prog="77" hbank="2" lbank="32"/>
+ <Patch name="Wistelaan" prog="78" hbank="2" lbank="32"/>
+ <Patch name="Shamanixst" prog="79" hbank="2" lbank="32"/>
+ <Patch name="Nice Voice" prog="80" hbank="2" lbank="32"/>
+ <Patch name="Glory Ahhs" prog="81" hbank="2" lbank="32"/>
+ <Patch name="Dead Sea" prog="82" hbank="2" lbank="32"/>
+ <Patch name="Anasthesia" prog="83" hbank="2" lbank="32"/>
+ <Patch name="Sparks" prog="84" hbank="2" lbank="32"/>
+ <Patch name="Rain Pad" prog="85" hbank="2" lbank="32"/>
+ <Patch name="Pluck Pad" prog="86" hbank="2" lbank="32"/>
+ <Patch name="Outland" prog="87" hbank="2" lbank="32"/>
+ <Patch name="Swell Pad" prog="88" hbank="2" lbank="32"/>
+ <Patch name="Mirage" prog="89" hbank="2" lbank="32"/>
+ <Patch name="Blacksmith" prog="90" hbank="2" lbank="32"/>
+ <Patch name="Silk&amp;Satin" prog="91" hbank="2" lbank="32"/>
+ <Patch name="Synctax" prog="92" hbank="2" lbank="32"/>
+ <Patch name="Delecea" prog="93" hbank="2" lbank="32"/>
+ <Patch name="Comet Rain" prog="94" hbank="2" lbank="32"/>
+ <Patch name="Nitrous" prog="95" hbank="2" lbank="32"/>
+ <Patch name="Rez Blastz" prog="96" hbank="2" lbank="32"/>
+ <Patch name="Intertwine" prog="97" hbank="2" lbank="32"/>
+ <Patch name="Hold&amp;Sampl" prog="98" hbank="2" lbank="32"/>
+ <Patch name="Serengeti" prog="99" hbank="2" lbank="32"/>
+ <Patch name="VoltagePad" prog="100" hbank="2" lbank="32"/>
+ <Patch name="Taurus III" prog="101" hbank="2" lbank="32"/>
+ <Patch name="BladeRunnr" prog="102" hbank="2" lbank="32"/>
+ <Patch name="SynTrumpet" prog="103" hbank="2" lbank="32"/>
+ <Patch name="Triangular" prog="104" hbank="2" lbank="32"/>
+ <Patch name="PortaWheel" prog="105" hbank="2" lbank="32"/>
+ <Patch name="DiodeDoodl" prog="106" hbank="2" lbank="32"/>
+ <Patch name="SuperNova" prog="107" hbank="2" lbank="32"/>
+ <Patch name="Buzz Clip" prog="108" hbank="2" lbank="32"/>
+ <Patch name="Angelsynth" prog="109" hbank="2" lbank="32"/>
+ <Patch name="NineIncher" prog="110" hbank="2" lbank="32"/>
+ <Patch name="Wonderland" prog="111" hbank="2" lbank="32"/>
+ <Patch name="SyncoPress" prog="112" hbank="2" lbank="32"/>
+ <Patch name="Disco Boy" prog="113" hbank="2" lbank="32"/>
+ <Patch name="CrazyHorse" prog="114" hbank="2" lbank="32"/>
+ <Patch name="TheSandMan" prog="115" hbank="2" lbank="32"/>
+ <Patch name="OnionClock" prog="116" hbank="2" lbank="32"/>
+ <Patch name="RoboShop" prog="117" hbank="2" lbank="32"/>
+ <Patch name="TseTse Fly" prog="118" hbank="2" lbank="32"/>
+ <Patch name="Bat Cave" prog="119" hbank="2" lbank="32"/>
+ <Patch name="Pop Up Kit" prog="120" hbank="2" lbank="32"/>
+ <Patch name="UrbanBliss" prog="121" hbank="2" lbank="32"/>
+ <Patch name="Harlem Tek" prog="122" hbank="2" lbank="32"/>
+ <Patch name="Techno Kit" prog="123" hbank="2" lbank="32"/>
+ <Patch name="Dry70&apos;sKit" prog="124" hbank="2" lbank="32"/>
+ <Patch name="Gruvy Lube" prog="125" hbank="2" lbank="32"/>
+ <Patch name="Marktree" prog="126" hbank="2" lbank="32"/>
+ <Patch name="Danz Hitz" prog="127" hbank="2" lbank="32"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset3 Programs">
+ <Patch name="Stoneway" prog="0" hbank="3" lbank="32"/>
+ <Patch name="Piano&amp;Pad" prog="1" hbank="3" lbank="32"/>
+ <Patch name="Player Ori" prog="2" hbank="3" lbank="32"/>
+ <Patch name="SuperRoadz" prog="3" hbank="3" lbank="32"/>
+ <Patch name="SoftSuitcs" prog="4" hbank="3" lbank="32"/>
+ <Patch name="FM Tines" prog="5" hbank="3" lbank="32"/>
+ <Patch name="Balladeer" prog="6" hbank="3" lbank="32"/>
+ <Patch name="Electratak" prog="7" hbank="3" lbank="32"/>
+ <Patch name="TrampWurly" prog="8" hbank="3" lbank="32"/>
+ <Patch name="Bass&amp;Roadz" prog="9" hbank="3" lbank="32"/>
+ <Patch name="LiquidClav" prog="10" hbank="3" lbank="32"/>
+ <Patch name="ProfitClav" prog="11" hbank="3" lbank="32"/>
+ <Patch name="8&apos;4&apos;Harpsi" prog="12" hbank="3" lbank="32"/>
+ <Patch name="Elf Hammer" prog="13" hbank="3" lbank="32"/>
+ <Patch name="Strukit" prog="14" hbank="3" lbank="32"/>
+ <Patch name="Roundup" prog="15" hbank="3" lbank="32"/>
+ <Patch name="AlloyGlock" prog="16" hbank="3" lbank="32"/>
+ <Patch name="FairyBellz" prog="17" hbank="3" lbank="32"/>
+ <Patch name="Ice Bell" prog="18" hbank="3" lbank="32"/>
+ <Patch name="Waterphone" prog="19" hbank="3" lbank="32"/>
+ <Patch name="BigBadPerc" prog="20" hbank="3" lbank="32"/>
+ <Patch name="KeyClikOrg" prog="21" hbank="3" lbank="32"/>
+ <Patch name="Dist Organ" prog="22" hbank="3" lbank="32"/>
+ <Patch name="Survival" prog="23" hbank="3" lbank="32"/>
+ <Patch name="LFO Lezly" prog="24" hbank="3" lbank="32"/>
+ <Patch name="BritePipes" prog="25" hbank="3" lbank="32"/>
+ <Patch name="Gothic Org" prog="26" hbank="3" lbank="32"/>
+ <Patch name="KingsCourt" prog="27" hbank="3" lbank="32"/>
+ <Patch name="ClrAcrdion" prog="28" hbank="3" lbank="32"/>
+ <Patch name="PocketHarp" prog="29" hbank="3" lbank="32"/>
+ <Patch name="AcHarmonic" prog="30" hbank="3" lbank="32"/>
+ <Patch name="Gut Strung" prog="31" hbank="3" lbank="32"/>
+ <Patch name="Dulcioto" prog="32" hbank="3" lbank="32"/>
+ <Patch name="Steel Ride" prog="33" hbank="3" lbank="32"/>
+ <Patch name="PedalSteel" prog="34" hbank="3" lbank="32"/>
+ <Patch name="PassGuitar" prog="35" hbank="3" lbank="32"/>
+ <Patch name="PowerSplit" prog="36" hbank="3" lbank="32"/>
+ <Patch name="HeroHarmnx" prog="37" hbank="3" lbank="32"/>
+ <Patch name="Ethnoba" prog="38" hbank="3" lbank="32"/>
+ <Patch name="Ethnotal" prog="39" hbank="3" lbank="32"/>
+ <Patch name="SharpStick" prog="40" hbank="3" lbank="32"/>
+ <Patch name="Deep Bass" prog="41" hbank="3" lbank="32"/>
+ <Patch name="Roundwound" prog="42" hbank="3" lbank="32"/>
+ <Patch name="NuStudioBs" prog="43" hbank="3" lbank="32"/>
+ <Patch name="Octaver" prog="44" hbank="3" lbank="32"/>
+ <Patch name="SynAtkBass" prog="45" hbank="3" lbank="32"/>
+ <Patch name="Funky Acid" prog="46" hbank="3" lbank="32"/>
+ <Patch name="Dunce Biss" prog="47" hbank="3" lbank="32"/>
+ <Patch name="ArndsHouse" prog="48" hbank="3" lbank="32"/>
+ <Patch name="BassHarmnc" prog="49" hbank="3" lbank="32"/>
+ <Patch name="Dark Cello" prog="50" hbank="3" lbank="32"/>
+ <Patch name="Celli" prog="51" hbank="3" lbank="32"/>
+ <Patch name="RichString" prog="52" hbank="3" lbank="32"/>
+ <Patch name="SynthEnsmb" prog="53" hbank="3" lbank="32"/>
+ <Patch name="HugeString" prog="54" hbank="3" lbank="32"/>
+ <Patch name="Strng&amp;Perc" prog="55" hbank="3" lbank="32"/>
+ <Patch name="LushStrings" prog="56" hbank="3" lbank="32"/>
+ <Patch name="Ana String" prog="57" hbank="3" lbank="32"/>
+ <Patch name="Pizz Pluck" prog="58" hbank="3" lbank="32"/>
+ <Patch name="Harp Gliss" prog="59" hbank="3" lbank="32"/>
+ <Patch name="TrumpetEns" prog="60" hbank="3" lbank="32"/>
+ <Patch name="Orch Mutes" prog="61" hbank="3" lbank="32"/>
+ <Patch name="Tromb Ens" prog="62" hbank="3" lbank="32"/>
+ <Patch name="Ooh Horns" prog="63" hbank="3" lbank="32"/>
+ <Patch name="Hard Tuba" prog="64" hbank="3" lbank="32"/>
+ <Patch name="Matrix Brs" prog="65" hbank="3" lbank="32"/>
+ <Patch name="EssexBrass" prog="66" hbank="3" lbank="32"/>
+ <Patch name="HornExpans" prog="67" hbank="3" lbank="32"/>
+ <Patch name="Sax&amp;Brass" prog="68" hbank="3" lbank="32"/>
+ <Patch name="Fanfare" prog="69" hbank="3" lbank="32"/>
+ <Patch name="Hard Flute" prog="70" hbank="3" lbank="32"/>
+ <Patch name="Mutablow" prog="71" hbank="3" lbank="32"/>
+ <Patch name="PanBristle" prog="72" hbank="3" lbank="32"/>
+ <Patch name="Pastorale" prog="73" hbank="3" lbank="32"/>
+ <Patch name="Dark Winds" prog="74" hbank="3" lbank="32"/>
+ <Patch name="SprnoRcrdr" prog="75" hbank="3" lbank="32"/>
+ <Patch name="G. Soprano" prog="76" hbank="3" lbank="32"/>
+ <Patch name="BreathySax" prog="77" hbank="3" lbank="32"/>
+ <Patch name="Maze Lead" prog="78" hbank="3" lbank="32"/>
+ <Patch name="1001Nights" prog="79" hbank="3" lbank="32"/>
+ <Patch name="VelOooz&amp;Aaz" prog="80" hbank="3" lbank="32"/>
+ <Patch name="Atlantis" prog="81" hbank="3" lbank="32"/>
+ <Patch name="Hen-Ya" prog="82" hbank="3" lbank="32"/>
+ <Patch name="1stContact" prog="83" hbank="3" lbank="32"/>
+ <Patch name="Applewine" prog="84" hbank="3" lbank="32"/>
+ <Patch name="Amakudari" prog="85" hbank="3" lbank="32"/>
+ <Patch name="ChirpPluck" prog="86" hbank="3" lbank="32"/>
+ <Patch name="7th Wave" prog="87" hbank="3" lbank="32"/>
+ <Patch name="Tidal Wave" prog="88" hbank="3" lbank="32"/>
+ <Patch name="Nostromo" prog="89" hbank="3" lbank="32"/>
+ <Patch name="Chromaphon" prog="90" hbank="3" lbank="32"/>
+ <Patch name="Voice Bell" prog="91" hbank="3" lbank="32"/>
+ <Patch name="TinSynLead" prog="92" hbank="3" lbank="32"/>
+ <Patch name="Xpando Pad" prog="93" hbank="3" lbank="32"/>
+ <Patch name="HeavenCent" prog="94" hbank="3" lbank="32"/>
+ <Patch name="ShimmerPad" prog="95" hbank="3" lbank="32"/>
+ <Patch name="Laboratory" prog="96" hbank="3" lbank="32"/>
+ <Patch name="Red Aurora" prog="97" hbank="3" lbank="32"/>
+ <Patch name="Helical" prog="98" hbank="3" lbank="32"/>
+ <Patch name="Ice Forest" prog="99" hbank="3" lbank="32"/>
+ <Patch name="Synth Bite" prog="100" hbank="3" lbank="32"/>
+ <Patch name="Quentex" prog="101" hbank="3" lbank="32"/>
+ <Patch name="Zalfous" prog="102" hbank="3" lbank="32"/>
+ <Patch name="Brassy 5th" prog="103" hbank="3" lbank="32"/>
+ <Patch name="Alpha Lead" prog="104" hbank="3" lbank="32"/>
+ <Patch name="HighFunkLd" prog="105" hbank="3" lbank="32"/>
+ <Patch name="BriteRezzo" prog="106" hbank="3" lbank="32"/>
+ <Patch name="Wicked Owl" prog="107" hbank="3" lbank="32"/>
+ <Patch name="Zip Lead" prog="108" hbank="3" lbank="32"/>
+ <Patch name="T-Minus 1" prog="109" hbank="3" lbank="32"/>
+ <Patch name="New Waves" prog="110" hbank="3" lbank="32"/>
+ <Patch name="Rhythm X" prog="111" hbank="3" lbank="32"/>
+ <Patch name="Insta-Gig" prog="112" hbank="3" lbank="32"/>
+ <Patch name="Lung Gravy" prog="113" hbank="3" lbank="32"/>
+ <Patch name="Spec Perc" prog="114" hbank="3" lbank="32"/>
+ <Patch name="The Rat" prog="115" hbank="3" lbank="32"/>
+ <Patch name="Teknologiz" prog="116" hbank="3" lbank="32"/>
+ <Patch name="Gutteral" prog="117" hbank="3" lbank="32"/>
+ <Patch name="VoodooBeat" prog="118" hbank="3" lbank="32"/>
+ <Patch name="Final Dawn" prog="119" hbank="3" lbank="32"/>
+ <Patch name="Ambi Rock" prog="120" hbank="3" lbank="32"/>
+ <Patch name="Trash Canz" prog="121" hbank="3" lbank="32"/>
+ <Patch name="Destructo!" prog="122" hbank="3" lbank="32"/>
+ <Patch name="VocoderKit" prog="123" hbank="3" lbank="32"/>
+ <Patch name="15ips Kit" prog="124" hbank="3" lbank="32"/>
+ <Patch name="Trashy Kit" prog="125" hbank="3" lbank="32"/>
+ <Patch name="Rainstick" prog="126" hbank="3" lbank="32"/>
+ <Patch name="Hitz Peak" prog="127" hbank="3" lbank="32"/>
+ </PatchGroup>
+
+ <PatchGroup name="User Programs">
+ <Patch name="1" prog="0" hbank="0" lbank="32"/>
+ <Patch name="2" prog="1" hbank="0" lbank="32"/>
+ <Patch name="3" prog="2" hbank="0" lbank="32"/>
+ <Patch name="4" prog="3" hbank="0" lbank="32"/>
+ <Patch name="5" prog="4" hbank="0" lbank="32"/>
+ <Patch name="6" prog="5" hbank="0" lbank="32"/>
+ <Patch name="7" prog="6" hbank="0" lbank="32"/>
+ <Patch name="8" prog="7" hbank="0" lbank="32"/>
+ <Patch name="9" prog="8" hbank="0" lbank="32"/>
+ <Patch name="10" prog="9" hbank="0" lbank="32"/>
+ <Patch name="11" prog="10" hbank="0" lbank="32"/>
+ <Patch name="12" prog="11" hbank="0" lbank="32"/>
+ <Patch name="13" prog="12" hbank="0" lbank="32"/>
+ <Patch name="14" prog="13" hbank="0" lbank="32"/>
+ <Patch name="15" prog="14" hbank="0" lbank="32"/>
+ <Patch name="16" prog="15" hbank="0" lbank="32"/>
+ <Patch name="17" prog="16" hbank="0" lbank="32"/>
+ <Patch name="18" prog="17" hbank="0" lbank="32"/>
+ <Patch name="19" prog="18" hbank="0" lbank="32"/>
+ <Patch name="20" prog="19" hbank="0" lbank="32"/>
+ <Patch name="21" prog="20" hbank="0" lbank="32"/>
+ <Patch name="22" prog="21" hbank="0" lbank="32"/>
+ <Patch name="23" prog="22" hbank="0" lbank="32"/>
+ <Patch name="24" prog="23" hbank="0" lbank="32"/>
+ <Patch name="25" prog="24" hbank="0" lbank="32"/>
+ <Patch name="26" prog="25" hbank="0" lbank="32"/>
+ <Patch name="27" prog="26" hbank="0" lbank="32"/>
+ <Patch name="28" prog="27" hbank="0" lbank="32"/>
+ <Patch name="29" prog="28" hbank="0" lbank="32"/>
+ <Patch name="30" prog="29" hbank="0" lbank="32"/>
+ <Patch name="31" prog="30" hbank="0" lbank="32"/>
+ <Patch name="32" prog="31" hbank="0" lbank="32"/>
+ <Patch name="33" prog="32" hbank="0" lbank="32"/>
+ <Patch name="34" prog="33" hbank="0" lbank="32"/>
+ <Patch name="35" prog="34" hbank="0" lbank="32"/>
+ <Patch name="36" prog="35" hbank="0" lbank="32"/>
+ <Patch name="37" prog="36" hbank="0" lbank="32"/>
+ <Patch name="38" prog="37" hbank="0" lbank="32"/>
+ <Patch name="39" prog="38" hbank="0" lbank="32"/>
+ <Patch name="40" prog="39" hbank="0" lbank="32"/>
+ <Patch name="41" prog="40" hbank="0" lbank="32"/>
+ <Patch name="42" prog="41" hbank="0" lbank="32"/>
+ <Patch name="43" prog="42" hbank="0" lbank="32"/>
+ <Patch name="44" prog="43" hbank="0" lbank="32"/>
+ <Patch name="45" prog="44" hbank="0" lbank="32"/>
+ <Patch name="46" prog="45" hbank="0" lbank="32"/>
+ <Patch name="47" prog="46" hbank="0" lbank="32"/>
+ <Patch name="48" prog="47" hbank="0" lbank="32"/>
+ <Patch name="49" prog="48" hbank="0" lbank="32"/>
+ <Patch name="50" prog="49" hbank="0" lbank="32"/>
+ <Patch name="51" prog="50" hbank="0" lbank="32"/>
+ <Patch name="52" prog="51" hbank="0" lbank="32"/>
+ <Patch name="53" prog="52" hbank="0" lbank="32"/>
+ <Patch name="54" prog="53" hbank="0" lbank="32"/>
+ <Patch name="55" prog="54" hbank="0" lbank="32"/>
+ <Patch name="56" prog="55" hbank="0" lbank="32"/>
+ <Patch name="57" prog="56" hbank="0" lbank="32"/>
+ <Patch name="58" prog="57" hbank="0" lbank="32"/>
+ <Patch name="59" prog="58" hbank="0" lbank="32"/>
+ <Patch name="60" prog="59" hbank="0" lbank="32"/>
+ <Patch name="61" prog="60" hbank="0" lbank="32"/>
+ <Patch name="62" prog="61" hbank="0" lbank="32"/>
+ <Patch name="63" prog="62" hbank="0" lbank="32"/>
+ <Patch name="64" prog="63" hbank="0" lbank="32"/>
+ <Patch name="65" prog="64" hbank="0" lbank="32"/>
+ <Patch name="66" prog="65" hbank="0" lbank="32"/>
+ <Patch name="67" prog="66" hbank="0" lbank="32"/>
+ <Patch name="68" prog="67" hbank="0" lbank="32"/>
+ <Patch name="69" prog="68" hbank="0" lbank="32"/>
+ <Patch name="70" prog="69" hbank="0" lbank="32"/>
+ <Patch name="71" prog="70" hbank="0" lbank="32"/>
+ <Patch name="72" prog="71" hbank="0" lbank="32"/>
+ <Patch name="73" prog="72" hbank="0" lbank="32"/>
+ <Patch name="74" prog="73" hbank="0" lbank="32"/>
+ <Patch name="75" prog="74" hbank="0" lbank="32"/>
+ <Patch name="76" prog="75" hbank="0" lbank="32"/>
+ <Patch name="77" prog="76" hbank="0" lbank="32"/>
+ <Patch name="78" prog="77" hbank="0" lbank="32"/>
+ <Patch name="79" prog="78" hbank="0" lbank="32"/>
+ <Patch name="80" prog="79" hbank="0" lbank="32"/>
+ <Patch name="81" prog="80" hbank="0" lbank="32"/>
+ <Patch name="82" prog="81" hbank="0" lbank="32"/>
+ <Patch name="83" prog="82" hbank="0" lbank="32"/>
+ <Patch name="84" prog="83" hbank="0" lbank="32"/>
+ <Patch name="85" prog="84" hbank="0" lbank="32"/>
+ <Patch name="86" prog="85" hbank="0" lbank="32"/>
+ <Patch name="87" prog="86" hbank="0" lbank="32"/>
+ <Patch name="88" prog="87" hbank="0" lbank="32"/>
+ <Patch name="89" prog="88" hbank="0" lbank="32"/>
+ <Patch name="90" prog="89" hbank="0" lbank="32"/>
+ <Patch name="91" prog="90" hbank="0" lbank="32"/>
+ <Patch name="92" prog="91" hbank="0" lbank="32"/>
+ <Patch name="93" prog="92" hbank="0" lbank="32"/>
+ <Patch name="94" prog="93" hbank="0" lbank="32"/>
+ <Patch name="95" prog="94" hbank="0" lbank="32"/>
+ <Patch name="96" prog="95" hbank="0" lbank="32"/>
+ <Patch name="97" prog="96" hbank="0" lbank="32"/>
+ <Patch name="98" prog="97" hbank="0" lbank="32"/>
+ <Patch name="99" prog="98" hbank="0" lbank="32"/>
+ <Patch name="100" prog="99" hbank="0" lbank="32"/>
+ <Patch name="101" prog="100" hbank="0" lbank="32"/>
+ <Patch name="102" prog="101" hbank="0" lbank="32"/>
+ <Patch name="103" prog="102" hbank="0" lbank="32"/>
+ <Patch name="104" prog="103" hbank="0" lbank="32"/>
+ <Patch name="105" prog="104" hbank="0" lbank="32"/>
+ <Patch name="106" prog="105" hbank="0" lbank="32"/>
+ <Patch name="107" prog="106" hbank="0" lbank="32"/>
+ <Patch name="108" prog="107" hbank="0" lbank="32"/>
+ <Patch name="109" prog="108" hbank="0" lbank="32"/>
+ <Patch name="110" prog="109" hbank="0" lbank="32"/>
+ <Patch name="111" prog="110" hbank="0" lbank="32"/>
+ <Patch name="112" prog="111" hbank="0" lbank="32"/>
+ <Patch name="113" prog="112" hbank="0" lbank="32"/>
+ <Patch name="114" prog="113" hbank="0" lbank="32"/>
+ <Patch name="115" prog="114" hbank="0" lbank="32"/>
+ <Patch name="116" prog="115" hbank="0" lbank="32"/>
+ <Patch name="117" prog="116" hbank="0" lbank="32"/>
+ <Patch name="118" prog="117" hbank="0" lbank="32"/>
+ <Patch name="119" prog="118" hbank="0" lbank="32"/>
+ <Patch name="120" prog="119" hbank="0" lbank="32"/>
+ <Patch name="121" prog="120" hbank="0" lbank="32"/>
+ <Patch name="122" prog="121" hbank="0" lbank="32"/>
+ <Patch name="123" prog="122" hbank="0" lbank="32"/>
+ <Patch name="124" prog="123" hbank="0" lbank="32"/>
+ <Patch name="125" prog="124" hbank="0" lbank="32"/>
+ <Patch name="126" prog="125" hbank="0" lbank="32"/>
+ <Patch name="127" prog="126" hbank="0" lbank="32"/>
+ <Patch name="128" prog="127" hbank="0" lbank="32"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/CMakeLists.txt b/muse_qt4_evolution/share/instruments/CMakeLists.txt
new file mode 100644
index 00000000..64eb89ac
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/CMakeLists.txt
@@ -0,0 +1,22 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+install_files( /share/${MusE_INSTALL_NAME}/instruments .*\\.idf )
+
diff --git a/muse_qt4_evolution/share/instruments/Hammond_XB-1.idf b/muse_qt4_evolution/share/instruments/Hammond_XB-1.idf
new file mode 100644
index 00000000..6ac9b951
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Hammond_XB-1.idf
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Hammond XB-1">
+ <PatchGroup name="Cancel">
+ <Patch name="Cancel" prog="000" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank A">
+ <Patch name="A-1" prog="001" hbank="0" lbank="0"/>
+ <Patch name="A-2" prog="002" hbank="0" lbank="0"/>
+ <Patch name="A-3" prog="003" hbank="0" lbank="0"/>
+ <Patch name="A-4" prog="004" hbank="0" lbank="0"/>
+ <Patch name="A-5" prog="005" hbank="0" lbank="0"/>
+ <Patch name="A-6" prog="006" hbank="0" lbank="0"/>
+ <Patch name="A-7" prog="007" hbank="0" lbank="0"/>
+ <Patch name="A-8" prog="008" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank B">
+ <Patch name="B-1" prog="009" hbank="0" lbank="0"/>
+ <Patch name="B-2" prog="010" hbank="0" lbank="0"/>
+ <Patch name="B-3" prog="011" hbank="0" lbank="0"/>
+ <Patch name="B-4" prog="012" hbank="0" lbank="0"/>
+ <Patch name="B-5" prog="013" hbank="0" lbank="0"/>
+ <Patch name="B-6" prog="014" hbank="0" lbank="0"/>
+ <Patch name="B-7" prog="015" hbank="0" lbank="0"/>
+ <Patch name="B-8" prog="016" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank C">
+ <Patch name="C-1" prog="017" hbank="0" lbank="0"/>
+ <Patch name="C-2" prog="018" hbank="0" lbank="0"/>
+ <Patch name="C-3" prog="019" hbank="0" lbank="0"/>
+ <Patch name="C-4" prog="020" hbank="0" lbank="0"/>
+ <Patch name="C-5" prog="021" hbank="0" lbank="0"/>
+ <Patch name="C-6" prog="022" hbank="0" lbank="0"/>
+ <Patch name="C-7" prog="023" hbank="0" lbank="0"/>
+ <Patch name="C-8" prog="024" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank D">
+ <Patch name="D-1" prog="025" hbank="0" lbank="0"/>
+ <Patch name="D-2" prog="026" hbank="0" lbank="0"/>
+ <Patch name="D-3" prog="027" hbank="0" lbank="0"/>
+ <Patch name="D-4" prog="028" hbank="0" lbank="0"/>
+ <Patch name="D-5" prog="029" hbank="0" lbank="0"/>
+ <Patch name="D-6" prog="030" hbank="0" lbank="0"/>
+ <Patch name="D-7" prog="031" hbank="0" lbank="0"/>
+ <Patch name="D-8" prog="032" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank E">
+ <Patch name="E-1" prog="033" hbank="0" lbank="0"/>
+ <Patch name="E-2" prog="034" hbank="0" lbank="0"/>
+ <Patch name="E-3" prog="035" hbank="0" lbank="0"/>
+ <Patch name="E-4" prog="036" hbank="0" lbank="0"/>
+ <Patch name="E-5" prog="037" hbank="0" lbank="0"/>
+ <Patch name="E-6" prog="038" hbank="0" lbank="0"/>
+ <Patch name="E-7" prog="039" hbank="0" lbank="0"/>
+ <Patch name="E-8" prog="040" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank F">
+ <Patch name="F-1" prog="041" hbank="0" lbank="0"/>
+ <Patch name="F-2" prog="042" hbank="0" lbank="0"/>
+ <Patch name="F-3" prog="043" hbank="0" lbank="0"/>
+ <Patch name="F-4" prog="044" hbank="0" lbank="0"/>
+ <Patch name="F-5" prog="045" hbank="0" lbank="0"/>
+ <Patch name="F-6" prog="046" hbank="0" lbank="0"/>
+ <Patch name="F-7" prog="047" hbank="0" lbank="0"/>
+ <Patch name="F-8" prog="048" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank G">
+ <Patch name="G-1" prog="049" hbank="0" lbank="0"/>
+ <Patch name="G-2" prog="050" hbank="0" lbank="0"/>
+ <Patch name="G-3" prog="051" hbank="0" lbank="0"/>
+ <Patch name="G-4" prog="052" hbank="0" lbank="0"/>
+ <Patch name="G-5" prog="053" hbank="0" lbank="0"/>
+ <Patch name="G-6" prog="054" hbank="0" lbank="0"/>
+ <Patch name="G-7" prog="055" hbank="0" lbank="0"/>
+ <Patch name="G-8" prog="056" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Bank H">
+ <Patch name="H-1" prog="057" hbank="0" lbank="0"/>
+ <Patch name="H-2" prog="058" hbank="0" lbank="0"/>
+ <Patch name="H-3" prog="059" hbank="0" lbank="0"/>
+ <Patch name="H-4" prog="060" hbank="0" lbank="0"/>
+ <Patch name="H-5" prog="061" hbank="0" lbank="0"/>
+ <Patch name="H-6" prog="062" hbank="0" lbank="0"/>
+ <Patch name="H-7" prog="063" hbank="0" lbank="0"/>
+ <Patch name="H-8" prog="064" hbank="0" lbank="0"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/MC303.idf b/muse_qt4_evolution/share/instruments/MC303.idf
new file mode 100644
index 00000000..308e897c
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/MC303.idf
@@ -0,0 +1,528 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="MC303">
+ <PatchGroup name="Bank 01 Synthesizer">
+ <Patch name="Lead TB 1" hbank="64" lbank="0" prog="0"/>
+ <Patch name="Lead TB 2" hbank="65" lbank="0" prog="0"/>
+ <Patch name="Wow TB" hbank="66" lbank="0" prog="0"/>
+ <Patch name="Lead TB 3" hbank="67" lbank="0" prog="0"/>
+ <Patch name="MG Saw" hbank="64" lbank="0" prog="1"/>
+ <Patch name="Voc.Saw" hbank="65" lbank="0" prog="1"/>
+ <Patch name="Cheese Saw" hbank="66" lbank="0" prog="1"/>
+ <Patch name="Saw Lead" hbank="67" lbank="0" prog="1"/>
+ <Patch name="Calc.Saw" hbank="68" lbank="0" prog="1"/>
+ <Patch name="OB2 Saw 1" hbank="69" lbank="0" prog="1"/>
+ <Patch name="Juno6 Saw" hbank="70" lbank="0" prog="1"/>
+ <Patch name="JP8 Pls 1" hbank="71" lbank="0" prog="1"/>
+ <Patch name="MG Pls 1" hbank="72" lbank="0" prog="1"/>
+ <Patch name="Flicker Pls" hbank="73" lbank="0" prog="1"/>
+ <Patch name="Tri Lead 1" hbank="64" lbank="0" prog="2"/>
+ <Patch name="Tri Lead 2" hbank="65" lbank="0" prog="2"/>
+ <Patch name="PR5 Squ.1" hbank="66" lbank="0" prog="2"/>
+ <Patch name="JU2 SubOsc" hbank="64" lbank="0" prog="3"/>
+ <Patch name="Frog Wave" hbank="65" lbank="0" prog="3"/>
+ <Patch name="Seq.Synth" hbank="64" lbank="0" prog="4"/>
+ <Patch name="PolySynth" hbank="65" lbank="0" prog="4"/>
+ <Patch name="JP8 Pls.2" hbank="66" lbank="0" prog="4"/>
+ <Patch name="JP8 Squ" hbank="67" lbank="0" prog="4"/>
+ <Patch name="260 Pls.90" hbank="68" lbank="0" prog="4"/>
+ <Patch name="Reso.Pls" hbank="69" lbank="0" prog="4"/>
+ <Patch name="Reso.Stack" hbank="70" lbank="0" prog="4"/>
+ <Patch name="Soft Lead" hbank="64" lbank="0" prog="5"/>
+ <Patch name="8DV Saw 1" hbank="65" lbank="0" prog="5"/>
+ <Patch name="PR5 Saw 1" hbank="66" lbank="0" prog="5"/>
+ <Patch name="D50 Saw" hbank="67" lbank="0" prog="5"/>
+ <Patch name="MG Sweep" hbank="64" lbank="0" prog="6"/>
+ <Patch name="Sweep Lead" hbank="65" lbank="0" prog="6"/>
+ <Patch name="Vocoderman" hbank="66" lbank="0" prog="6"/>
+ <Patch name="4th Lead 1" hbank="64" lbank="0" prog="7"/>
+ <Patch name="4th Lead 2" hbank="65" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Bass">
+ <Patch name="Normal TB" hbank="64" lbank="0" prog="8"/>
+ <Patch name="Dist.TB 1" hbank="65" lbank="0" prog="8"/>
+ <Patch name="Dist.TB 2" hbank="66" lbank="0" prog="8"/>
+ <Patch name="Acid TB 1" hbank="67" lbank="0" prog="8"/>
+ <Patch name="Acid TB 2" hbank="68" lbank="0" prog="8"/>
+ <Patch name="Acid TB 3" hbank="69" lbank="0" prog="8"/>
+ <Patch name="Acid TB 4" hbank="70" lbank="0" prog="8"/>
+ <Patch name="101 Bass 1" hbank="64" lbank="0" prog="9"/>
+ <Patch name="101 Bass 2" hbank="65" lbank="0" prog="9"/>
+ <Patch name="101 Bass 3" hbank="66" lbank="0" prog="9"/>
+ <Patch name="House Bass" hbank="67" lbank="0" prog="9"/>
+ <Patch name="Sine Bass" hbank="68" lbank="0" prog="9"/>
+ <Patch name="Dub Bass" hbank="69" lbank="0" prog="9"/>
+ <Patch name="Pizz.Bass" hbank="64" lbank="0" prog="10"/>
+ <Patch name="MG Bass 1" hbank="64" lbank="0" prog="11"/>
+ <Patch name="MG Bass 2" hbank="65" lbank="0" prog="11"/>
+ <Patch name="MG Bass 3" hbank="66" lbank="0" prog="11"/>
+ <Patch name="MG Bass 4" hbank="67" lbank="0" prog="11"/>
+ <Patch name="FM Super Bs" hbank="68" lbank="0" prog="11"/>
+ <Patch name="Cheese Bass" hbank="69" lbank="0" prog="11"/>
+ <Patch name="Syn.SB Bass" hbank="70" lbank="0" prog="11"/>
+ <Patch name="Blip Bass" hbank="64" lbank="0" prog="12"/>
+ <Patch name="KGP Bass" hbank="65" lbank="0" prog="12"/>
+ <Patch name="TBMG Bass 1" hbank="66" lbank="0" prog="12"/>
+ <Patch name="MG Bass5" hbank="67" lbank="0" prog="12"/>
+ <Patch name="JPMG Bass" hbank="68" lbank="0" prog="12"/>
+ <Patch name="Click Bass" hbank="69" lbank="0" prog="12"/>
+ <Patch name="KMP Bass" hbank="70" lbank="0" prog="12"/>
+ <Patch name="Osc.Bass" hbank="71" lbank="0" prog="12"/>
+ <Patch name="Reso.Bass" hbank="64" lbank="0" prog="13"/>
+ <Patch name="Wow MG Bass" hbank="65" lbank="0" prog="13"/>
+ <Patch name="Wow 101 Bass" hbank="66" lbank="0" prog="13"/>
+ <Patch name="Sweep Wow Bass" hbank="67" lbank="0" prog="13"/>
+ <Patch name="MG 5th Bass" hbank="68" lbank="0" prog="13"/>
+ <Patch name="Doom Bass" hbank="69" lbank="0" prog="13"/>
+ <Patch name="Rubber Bass 1" hbank="70" lbank="0" prog="13"/>
+ <Patch name="Rubber Bass 2" hbank="71" lbank="0" prog="13"/>
+ <Patch name="Acid Bass" hbank="64" lbank="0" prog="14"/>
+ <Patch name="Bubble Bass" hbank="65" lbank="0" prog="14"/>
+ <Patch name="Organ Bass" hbank="64" lbank="0" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Bass Guitar">
+ <Patch name="Ac.Bass 1" hbank="64" lbank="0" prog="16"/>
+ <Patch name="AC.Bass 2" hbank="65" lbank="0" prog="16"/>
+ <Patch name="Fingered Bs 1" hbank="64" lbank="0" prog="17"/>
+ <Patch name="Fingered Bs 2" hbank="65" lbank="0" prog="17"/>
+ <Patch name="Picked Bass 1" hbank="64" lbank="0" prog="18"/>
+ <Patch name="Dust Pick Bass" hbank="65" lbank="0" prog="18"/>
+ <Patch name="Picked Bass 2" hbank="66" lbank="0" prog="18"/>
+ <Patch name="Fretless Bass" hbank="64" lbank="0" prog="19"/>
+ <Patch name="Slap Bass 1" hbank="64" lbank="0" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Stack">
+ <Patch name="Syn.Stack 1" hbank="64" lbank="0" prog="21"/>
+ <Patch name="Oct.Stack" hbank="65" lbank="0" prog="21"/>
+ <Patch name="Syn.Stack 2" hbank="66" lbank="0" prog="21"/>
+ <Patch name="Saw Stack" hbank="67" lbank="0" prog="21"/>
+ <Patch name="Syn.SB 1" hbank="64" lbank="0" prog="22"/>
+ <Patch name="Syn.SB 2" hbank="65" lbank="0" prog="22"/>
+ <Patch name="Brass Perc." hbank="66" lbank="0" prog="22"/>
+ <Patch name="Dirty SB" hbank="67" lbank="0" prog="22"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="Atmosphere" hbank="64" lbank="0" prog="23"/>
+ <Patch name="Feedback Wave" hbank="65" lbank="0" prog="23"/>
+ <Patch name="X-MOD" hbank="66" lbank="0" prog="23"/>
+ <Patch name="Pacifica" hbank="67" lbank="0" prog="23"/>
+ <Patch name="7th Atom" hbank="68" lbank="0" prog="23"/>
+ <Patch name="Outer Space" hbank="69" lbank="0" prog="23"/>
+ <Patch name="Rev.Atom" hbank="70" lbank="0" prog="23"/>
+ <Patch name="2.2 Pad" hbank="64" lbank="0" prog="24"/>
+ <Patch name="Jungle Pad" hbank="65" lbank="0" prog="24"/>
+ <Patch name="Psycho Pad" hbank="66" lbank="0" prog="24"/>
+ <Patch name="Pipe Pad" hbank="67" lbank="0" prog="24"/>
+ <Patch name="Ambient Pad" hbank="68" lbank="0" prog="24"/>
+ <Patch name="Flanger Pad" hbank="69" lbank="0" prog="24"/>
+ <Patch name="Bell Pad" hbank="64" lbank="0" prog="25"/>
+ <Patch name="7th Bell Pad" hbank="65" lbank="0" prog="25"/>
+ <Patch name="Fantasia" hbank="66" lbank="0" prog="25"/>
+ <Patch name="Crystal" hbank="67" lbank="0" prog="25"/>
+ <Patch name="Exo.Bell Pad" hbank="68" lbank="0" prog="25"/>
+ <Patch name="Echo Bell" hbank="69" lbank="0" prog="25"/>
+ <Patch name="Warm Pad" hbank="64" lbank="0" prog="26"/>
+ <Patch name="Soundtrack" hbank="65" lbank="0" prog="26"/>
+ <Patch name="Oct.Pad" hbank="66" lbank="0" prog="26"/>
+ <Patch name="OB Str. Pad" hbank="67" lbank="0" prog="26"/>
+ <Patch name="X-MOD Pad" hbank="68" lbank="0" prog="26"/>
+ <Patch name="Sweep Pad 1" hbank="69" lbank="0" prog="26"/>
+ <Patch name="Sweep Pad 2" hbank="70" lbank="0" prog="26"/>
+ <Patch name="OB Soft Pad" hbank="71" lbank="0" prog="26"/>
+ <Patch name="Goblin" hbank="72" lbank="0" prog="26"/>
+ <Patch name="Echo Drops" hbank="73" lbank="0" prog="26"/>
+ <Patch name="Random Pad" hbank="64" lbank="0" prog="27"/>
+ <Patch name="LFO Sweep" hbank="65" lbank="0" prog="27"/>
+ <Patch name="Horror Pad" hbank="66" lbank="0" prog="27"/>
+ <Patch name="Pulse Key Pad" hbank="67" lbank="0" prog="27"/>
+ </PatchGroup>
+ <PatchGroup name="Strings">
+ <Patch name="Real Strings 1" hbank="64" lbank="0" prog="28"/>
+ <Patch name="Real Strings 2" hbank="65" lbank="0" prog="28"/>
+ <Patch name="Auh Strings" hbank="64" lbank="0" prog="29"/>
+ <Patch name="Hi Strings" hbank="65" lbank="0" prog="29"/>
+ <Patch name="Syn.Strings 1" hbank="66" lbank="0" prog="29"/>
+ <Patch name="Syn.Strings 2" hbank="67" lbank="0" prog="29"/>
+ <Patch name="Syn.Strings 3" hbank="68" lbank="0" prog="29"/>
+ <Patch name="Noise Strings" hbank="64" lbank="0" prog="30"/>
+ <Patch name="RND Strings" hbank="65" lbank="0" prog="30"/>
+ <Patch name="LFO Strings" hbank="66" lbank="0" prog="30"/>
+ <Patch name="Slow Strings" hbank="64" lbank="0" prog="31"/>
+ <Patch name="Slow SynStr" hbank="65" lbank="0" prog="31"/>
+ <Patch name="Pizzicato Str" hbank="64" lbank="0" prog="32"/>
+ </PatchGroup>
+ <PatchGroup name="Voice">
+ <Patch name="Choir Auhs" hbank="64" lbank="0" prog="33"/>
+ <Patch name="Space Voice" hbank="64" lbank="0" prog="34"/>
+ <Patch name="Sweepvox" hbank="65" lbank="0" prog="34"/>
+ <Patch name="Synthvox 1" hbank="66" lbank="0" prog="34"/>
+ <Patch name="Auhs" hbank="67" lbank="0" prog="34"/>
+ <Patch name="Synthvox 2" hbank="68" lbank="0" prog="34"/>
+ <Patch name="Leadvox" hbank="69" lbank="0" prog="34"/>
+ <Patch name="Auh Auh" hbank="70" lbank="0" prog="34"/>
+ <Patch name="Sky Vox" hbank="71" lbank="0" prog="34"/>
+ <Patch name="Auhbient" hbank="72" lbank="0" prog="34"/>
+ <Patch name="Vibravox" hbank="73" lbank="0" prog="34"/>
+ <Patch name="Noisevox" hbank="74" lbank="0" prog="34"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="UFO FX" hbank="64" lbank="0" prog="35"/>
+ <Patch name="Saw in Saw" hbank="65" lbank="0" prog="35"/>
+ <Patch name="Feed Bell" hbank="66" lbank="0" prog="35"/>
+ <Patch name="Abduction" hbank="67" lbank="0" prog="35"/>
+ <Patch name="Loop Sweep" hbank="68" lbank="0" prog="35"/>
+ <Patch name="UP FX" hbank="69" lbank="0" prog="35"/>
+ <Patch name="Robocoder" hbank="70" lbank="0" prog="35"/>
+ <Patch name="Noise Grow" hbank="71" lbank="0" prog="35"/>
+ <Patch name="LFO Techno" hbank="64" lbank="0" prog="36"/>
+ <Patch name="Calculating" hbank="65" lbank="0" prog="36"/>
+ <Patch name="Emergency!" hbank="66" lbank="0" prog="36"/>
+ <Patch name="FX Beats" hbank="67" lbank="0" prog="36"/>
+ <Patch name="Analog FX" hbank="68" lbank="0" prog="36"/>
+ <Patch name="Transformer" hbank="69" lbank="0" prog="36"/>
+ <Patch name="Dusty Scratch" hbank="70" lbank="0" prog="36"/>
+ <Patch name="Space Worms" hbank="71" lbank="0" prog="36"/>
+ <Patch name="Winky Worms" hbank="72" lbank="0" prog="36"/>
+ </PatchGroup>
+ <PatchGroup name="Noise">
+ <Patch name="PR5 Noise1" hbank="64" lbank="0" prog="37"/>
+ <Patch name="PR5 Noise2" hbank="65" lbank="0" prog="37"/>
+ <Patch name="Pink Noice" hbank="66" lbank="0" prog="37"/>
+ <Patch name="White Noise" hbank="67" lbank="0" prog="37"/>
+ <Patch name="Bomb Wind" hbank="64" lbank="0" prog="38"/>
+ <Patch name="Syn.Wind" hbank="65" lbank="0" prog="38"/>
+ <Patch name="Vinyl Noise" hbank="66" lbank="0" prog="38"/>
+ <Patch name="Noise Snare" hbank="67" lbank="0" prog="38"/>
+ <Patch name="Explanation" hbank="64" lbank="0" prog="39"/>
+ <Patch name="Pink Bomb" hbank="65" lbank="0" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Piano">
+ <Patch name="Ac.Piano" hbank="64" lbank="0" prog="40"/>
+ <Patch name="Bright Piano" hbank="65" lbank="0" prog="40"/>
+ <Patch name="E.Piano 1" hbank="64" lbank="0" prog="41"/>
+ <Patch name="E.Piano 2" hbank="65" lbank="0" prog="41"/>
+ <Patch name="E.Piano 3" hbank="66" lbank="0" prog="41"/>
+ <Patch name="E.Piano 4" hbank="67" lbank="0" prog="41"/>
+ <Patch name="Org.E.Piano" hbank="64" lbank="0" prog="42"/>
+ <Patch name="Noise Piano" hbank="65" lbank="0" prog="42"/>
+ <Patch name="Clav" hbank="64" lbank="0" prog="43"/>
+ <Patch name="Ana.Clav" hbank="65" lbank="0" prog="43"/>
+ <Patch name="Digi.Clav" hbank="66" lbank="0" prog="43"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Organ 1" hbank="64" lbank="0" prog="44"/>
+ <Patch name="Lp-Hp Organ" hbank="65" lbank="0" prog="44"/>
+ <Patch name="Organ 2" hbank="64" lbank="0" prog="45"/>
+ <Patch name="Percsv Organ" hbank="65" lbank="0" prog="45"/>
+ <Patch name="Slow Organ" hbank="64" lbank="0" prog="46"/>
+ <Patch name="Smokey Org.Chrd" hbank="64" lbank="0" prog="47"/>
+ <Patch name="Organ Chord" hbank="65" lbank="0" prog="47"/>
+ <Patch name="'60s Organ" hbank="64" lbank="0" prog="48"/>
+ <Patch name="Dist.Organ" hbank="64" lbank="0" prog="49"/>
+ <Patch name="Church Org.1" hbank="64" lbank="0" prog="50"/>
+ <Patch name="Organ Loop" hbank="64" lbank="0" prog="51"/>
+ <Patch name="LF-Organ" hbank="65" lbank="0" prog="51"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Percussion">
+ <Patch name="Glockenspiel" hbank="64" lbank="0" prog="52"/>
+ <Patch name="Vibraphone" hbank="65" lbank="0" prog="52"/>
+ <Patch name="Beat Glocken" hbank="66" lbank="0" prog="52"/>
+ <Patch name="Marimba" hbank="67" lbank="0" prog="52"/>
+ <Patch name="Timpani" hbank="64" lbank="0" prog="53"/>
+ <Patch name="Steel Drums" hbank="65" lbank="0" prog="53"/>
+ <Patch name="Sqr. Perc." hbank="64" lbank="0" prog="54"/>
+ <Patch name="Juno Bell" hbank="65" lbank="0" prog="54"/>
+ <Patch name="MG Perc" hbank="66" lbank="0" prog="54"/>
+ <Patch name="Perc.Glass" hbank="67" lbank="0" prog="54"/>
+ </PatchGroup>
+ <PatchGroup name="Bell">
+ <Patch name="Tubular Bell" hbank="64" lbank="0" prog="55"/>
+ <Patch name="Vib. Bell" hbank="65" lbank="0" prog="55"/>
+ <Patch name="7th Bells" hbank="64" lbank="0" prog="56"/>
+ <Patch name="Ring Bell" hbank="65" lbank="0" prog="56"/>
+ <Patch name="Digi.Bell 1" hbank="66" lbank="0" prog="56"/>
+ <Patch name="Ring Mod" hbank="67" lbank="0" prog="56"/>
+ <Patch name="Digi.Bell 2" hbank="68" lbank="0" prog="56"/>
+ <Patch name="Dirty Bell 1" hbank="69" lbank="0" prog="56"/>
+ <Patch name="Dirty Bell 2" hbank="70" lbank="0" prog="56"/>
+ <Patch name="Digi.Bell 3" hbank="71" lbank="0" prog="56"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Steel Str.Gt" hbank="64" lbank="0" prog="57"/>
+ <Patch name="12str.Guitar" hbank="65" lbank="0" prog="57"/>
+ <Patch name="Jazz Guitar" hbank="64" lbank="0" prog="58"/>
+ <Patch name="Clean Guitar" hbank="65" lbank="0" prog="58"/>
+ <Patch name="Distortion Guitar" hbank="66" lbank="0" prog="58"/>
+ <Patch name="Gt.Harmonics" hbank="67" lbank="0" prog="58"/>
+ <Patch name="Acid Guitar 1" hbank="64" lbank="0" prog="59"/>
+ <Patch name="Acid Guitar 2" hbank="65" lbank="0" prog="59"/>
+ <Patch name="Jazz Steel Guitar" hbank="66" lbank="0" prog="59"/>
+ <Patch name="Sitar Guitar" hbank="67" lbank="0" prog="59"/>
+ <Patch name="Wah Guitar" hbank="68" lbank="0" prog="59"/>
+ </PatchGroup>
+ <PatchGroup name="Brass Section">
+ <Patch name="Brass 1" hbank="64" lbank="0" prog="61"/>
+ <Patch name="Bright Brass 1" hbank="65" lbank="0" prog="61"/>
+ <Patch name="Bright Brass 2" hbank="66" lbank="0" prog="61"/>
+ <Patch name="Brass&amp;Strings" hbank="64" lbank="0" prog="62"/>
+ <Patch name="SB Brass Sect." hbank="65" lbank="0" prog="62"/>
+ <Patch name="ST Brass Sect." hbank="66" lbank="0" prog="62"/>
+ <Patch name="OB Brass Sect." hbank="64" lbank="0" prog="63"/>
+ <Patch name="Hybrid Brs." hbank="65" lbank="0" prog="63"/>
+ <Patch name="4th Brass" hbank="64" lbank="0" prog="64"/>
+ </PatchGroup>
+ <PatchGroup name="Brass/Pipe">
+ <Patch name="Synth Brass 1" hbank="64" lbank="0" prog="65"/>
+ <Patch name="Synth Brass 2" hbank="65" lbank="0" prog="65"/>
+ <Patch name="Bright Syn.Brs 1" hbank="66" lbank="0" prog="65"/>
+ <Patch name="Bright Syn.Brs 2" hbank="67" lbank="0" prog="65"/>
+ <Patch name="Warm Brass 1" hbank="68" lbank="0" prog="65"/>
+ <Patch name="Stack Brass 1" hbank="69" lbank="0" prog="65"/>
+ <Patch name="Warm Brass 2" hbank="70" lbank="0" prog="65"/>
+ <Patch name="Strings Brass" hbank="71" lbank="0" prog="65"/>
+ <Patch name="Warm Brass 3" hbank="72" lbank="0" prog="65"/>
+ <Patch name="Stack Brass 2" hbank="73" lbank="0" prog="65"/>
+ <Patch name="Trumpet" hbank="64" lbank="0" prog="66"/>
+ <Patch name="Muted Trumpet" hbank="65" lbank="0" prog="66"/>
+ <Patch name="Sax&amp;Trumpet" hbank="66" lbank="0" prog="66"/>
+ <Patch name="Alto Sax" hbank="64" lbank="0" prog="67"/>
+ <Patch name="Baritone Sax" hbank="65" lbank="0" prog="67"/>
+ <Patch name="Bright Sax" hbank="66" lbank="0" prog="67"/>
+ <Patch name="Flute" hbank="64" lbank="0" prog="68"/>
+ <Patch name="Pan Flute" hbank="64" lbank="0" prog="69"/>
+ <Patch name="Afro Flute" hbank="65" lbank="0" prog="69"/>
+ <Patch name="Pipe Lead 1" hbank="66" lbank="0" prog="69"/>
+ <Patch name="Pipe Lead 2" hbank="67" lbank="0" prog="69"/>
+ <Patch name="Shakuhachi" hbank="64" lbank="0" prog="70"/>
+ </PatchGroup>
+ <PatchGroup name="Ethik">
+ <Patch name="Sitar 1" hbank="64" lbank="0" prog="71"/>
+ <Patch name="Sitar 2" hbank="65" lbank="0" prog="71"/>
+ <Patch name="Kalimba" hbank="64" lbank="0" prog="72"/>
+ <Patch name="Bagpipe" hbank="64" lbank="0" prog="73"/>
+ </PatchGroup>
+ <PatchGroup name="Hit">
+ <Patch name="MG Blip 1" hbank="64" lbank="0" prog="75"/>
+ <Patch name="Rev.Blip" hbank="65" lbank="0" prog="75"/>
+ <Patch name="MG Blip 2" hbank="66" lbank="0" prog="75"/>
+ <Patch name="Syn.Perc" hbank="67" lbank="0" prog="75"/>
+ <Patch name="Powa" hbank="68" lbank="0" prog="75"/>
+ <Patch name="Douby" hbank="69" lbank="0" prog="75"/>
+ <Patch name="P-MOD Perc" hbank="70" lbank="0" prog="75"/>
+ <Patch name="Bam Hit" hbank="64" lbank="0" prog="76"/>
+ <Patch name="Bit Hit" hbank="65" lbank="0" prog="76"/>
+ <Patch name="Orch. Hit" hbank="66" lbank="0" prog="76"/>
+ <Patch name="BF Hit" hbank="67" lbank="0" prog="76"/>
+ <Patch name="Organ Hit" hbank="68" lbank="0" prog="76"/>
+ <Patch name="Bim Hit" hbank="69" lbank="0" prog="76"/>
+ <Patch name="Dist.Hit" hbank="70" lbank="0" prog="76"/>
+ <Patch name="Brass Fall" hbank="71" lbank="0" prog="76"/>
+ <Patch name="Strings Hit" hbank="72" lbank="0" prog="76"/>
+ <Patch name="Space Frog" hbank="73" lbank="0" prog="76"/>
+ <Patch name="Hoo!" hbank="64" lbank="0" prog="77"/>
+ <Patch name="Ha!" hbank="65" lbank="0" prog="77"/>
+ <Patch name="Afro Feet" hbank="66" lbank="0" prog="77"/>
+ <Patch name="Breath 3" hbank="67" lbank="0" prog="77"/>
+ <Patch name="Scratch Rwnd" hbank="64" lbank="0" prog="78"/>
+ <Patch name="Scratch Push" hbank="65" lbank="0" prog="78"/>
+ <Patch name="Scratch Pull" hbank="66" lbank="0" prog="78"/>
+ <Patch name="Tape Rewind" hbank="64" lbank="0" prog="79"/>
+ <Patch name="Vinyl Stop" hbank="65" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="SFX">
+ <Patch name="Starship" hbank="64" lbank="0" prog="80"/>
+ <Patch name="Burst Noise" hbank="65" lbank="0" prog="80"/>
+ <Patch name="Laser-gun" hbank="66" lbank="0" prog="80"/>
+ <Patch name="Seashore" hbank="64" lbank="0" prog="81"/>
+ <Patch name="Rain" hbank="65" lbank="0" prog="81"/>
+ <Patch name="Thunder" hbank="66" lbank="0" prog="81"/>
+ <Patch name="Wind" hbank="67" lbank="0" prog="81"/>
+ <Patch name="Stream" hbank="68" lbank="0" prog="81"/>
+ <Patch name="Bubble" hbank="69" lbank="0" prog="81"/>
+ <Patch name="Bird" hbank="64" lbank="0" prog="82"/>
+ <Patch name="Low Bird" hbank="65" lbank="0" prog="82"/>
+ <Patch name="Telefon" hbank="64" lbank="0" prog="83"/>
+ <Patch name="Gun Shot" hbank="65" lbank="0" prog="83"/>
+ <Patch name="Machine-gun" hbank="66" lbank="0" prog="83"/>
+ <Patch name="Car-Pass" hbank="64" lbank="0" prog="84"/>
+ <Patch name="Car-Crash" hbank="65" lbank="0" prog="84"/>
+ <Patch name="Siren" hbank="66" lbank="0" prog="84"/>
+ <Patch name="Jetplane" hbank="67" lbank="0" prog="84"/>
+ <Patch name="Helicopter" hbank="68" lbank="0" prog="84"/>
+ <Patch name="Laughting" hbank="64" lbank="0" prog="85"/>
+ <Patch name="Screaming" hbank="65" lbank="0" prog="85"/>
+ <Patch name="Punch" hbank="66" lbank="0" prog="85"/>
+ <Patch name="Heart Beat" hbank="67" lbank="0" prog="85"/>
+ <Patch name="Applause" hbank="68" lbank="0" prog="85"/>
+ </PatchGroup>
+ <PatchGroup name="Drum Percussion">
+ <Patch name="909 Tom" hbank="64" lbank="0" prog="86"/>
+ <Patch name="Synth Tom" hbank="65" lbank="0" prog="86"/>
+ <Patch name="808 Tom" hbank="66" lbank="0" prog="86"/>
+ <Patch name="Elec. Tom" hbank="67" lbank="0" prog="86"/>
+ <Patch name="Ac.Tom" hbank="68" lbank="0" prog="86"/>
+ <Patch name="78 Tom" hbank="69" lbank="0" prog="86"/>
+ <Patch name="Hi Bongo Mute" hbank="64" lbank="0" prog="87"/>
+ <Patch name="Hi Bongo Open" hbank="65" lbank="0" prog="87"/>
+ <Patch name="Lo Bongo Mute" hbank="66" lbank="0" prog="87"/>
+ <Patch name="Lo Bongo Open" hbank="67" lbank="0" prog="87"/>
+ <Patch name="Hi Conga Slap" hbank="64" lbank="0" prog="88"/>
+ <Patch name="Hi Conga Mute" hbank="65" lbank="0" prog="88"/>
+ <Patch name="Hi Conga Open" hbank="66" lbank="0" prog="88"/>
+ <Patch name="Hi Conga Mute" hbank="67" lbank="0" prog="88"/>
+ <Patch name="Hi Conga Open" hbank="68" lbank="0" prog="88"/>
+ <Patch name="808 Conga" hbank="69" lbank="0" prog="88"/>
+ <Patch name="Mute Surdo" hbank="64" lbank="0" prog="89"/>
+ <Patch name="Open Surdo" hbank="65" lbank="0" prog="89"/>
+ <Patch name="Open Pandeiro" hbank="64" lbank="0" prog="90"/>
+ <Patch name="Mute Pandeiro" hbank="65" lbank="0" prog="90"/>
+ <Patch name="Mute Cuica" hbank="64" lbank="0" prog="91"/>
+ <Patch name="Open Cuica" hbank="65" lbank="0" prog="91"/>
+ <Patch name="Timbale" hbank="64" lbank="0" prog="92"/>
+ <Patch name="Tablabaya" hbank="64" lbank="0" prog="93"/>
+ <Patch name="Udo" hbank="65" lbank="0" prog="93"/>
+ <Patch name="Latin menu *1" hbank="64" lbank="0" prog="94"/>
+ </PatchGroup>
+ <PatchGroup name="Metal Percusion">
+ <Patch name="Jungle Tamb." hbank="64" lbank="0" prog="95"/>
+ <Patch name="Tamburine" hbank="65" lbank="0" prog="95"/>
+ <Patch name="Hit Tamburine" hbank="66" lbank="0" prog="95"/>
+ <Patch name="Shake Tamb." hbank="67" lbank="0" prog="95"/>
+ <Patch name="78 Tamb" hbank="68" lbank="0" prog="95"/>
+ <Patch name="Cowbell" hbank="64" lbank="0" prog="96"/>
+ <Patch name="808 Cowbell" hbank="65" lbank="0" prog="96"/>
+ <Patch name="78 Cowbell" hbank="66" lbank="0" prog="96"/>
+ <Patch name="Mute Triangle" hbank="64" lbank="0" prog="97"/>
+ <Patch name="Open Triangle" hbank="65" lbank="0" prog="97"/>
+ <Patch name="Agogo" hbank="64" lbank="0" prog="98"/>
+ <Patch name="78 Metal Beat" hbank="65" lbank="0" prog="98"/>
+ <Patch name="Jingle Bell" hbank="64" lbank="0" prog="99"/>
+ <Patch name="Bell Time" hbank="65" lbank="0" prog="99"/>
+ <Patch name="Wind-chime" hbank="66" lbank="0" prog="99"/>
+ </PatchGroup>
+ <PatchGroup name="Other Percussion">
+ <Patch name="Maracas" hbank="64" lbank="0" prog="100"/>
+ <Patch name="808 Maracas" hbank="65" lbank="0" prog="100"/>
+ <Patch name="Cabasa Up" hbank="64" lbank="0" prog="101"/>
+ <Patch name="Cabasa Down" hbank="65" lbank="0" prog="101"/>
+ <Patch name="626 Shaker" hbank="64" lbank="0" prog="102"/>
+ <Patch name="Short Whistle" hbank="64" lbank="0" prog="103"/>
+ <Patch name="Long Whistle" hbank="65" lbank="0" prog="103"/>
+ <Patch name="Short Guiro" hbank="64" lbank="0" prog="104"/>
+ <Patch name="Long Guiro" hbank="65" lbank="0" prog="104"/>
+ <Patch name="78 Guiro" hbank="66" lbank="0" prog="104"/>
+ <Patch name="Click Noise" hbank="64" lbank="0" prog="105"/>
+ <Patch name="909 Rim Shot" hbank="64" lbank="0" prog="106"/>
+ <Patch name="808 Rim Shot" hbank="65" lbank="0" prog="106"/>
+ <Patch name="Rim Shot" hbank="66" lbank="0" prog="106"/>
+ <Patch name="Hyoshigi" hbank="64" lbank="0" prog="107"/>
+ <Patch name="Claves" hbank="65" lbank="0" prog="107"/>
+ <Patch name="808 Claves" hbank="66" lbank="0" prog="107"/>
+ <Patch name="Wood Block" hbank="67" lbank="0" prog="107"/>
+ <Patch name="Vibra-slap" hbank="64" lbank="0" prog="108"/>
+ </PatchGroup>
+ <PatchGroup name="Hi-Hat">
+ <Patch name="Real CH 1" hbank="64" lbank="0" prog="109"/>
+ <Patch name="Real PH 1" hbank="65" lbank="0" prog="109"/>
+ <Patch name="Real OH 1" hbank="66" lbank="0" prog="109"/>
+ <Patch name="Room CH" hbank="67" lbank="0" prog="109"/>
+ <Patch name="Room OH" hbank="68" lbank="0" prog="109"/>
+ <Patch name="Real CH 2" hbank="69" lbank="0" prog="109"/>
+ <Patch name="Real PH 2" hbank="70" lbank="0" prog="109"/>
+ <Patch name="Real OH 2" hbank="71" lbank="0" prog="109"/>
+ <Patch name="808 CH" hbank="64" lbank="0" prog="110"/>
+ <Patch name="808 OH" hbank="65" lbank="0" prog="110"/>
+ <Patch name="78 CH" hbank="66" lbank="0" prog="110"/>
+ <Patch name="78 OH" hbank="67" lbank="0" prog="110"/>
+ <Patch name="707 CH" hbank="68" lbank="0" prog="110"/>
+ <Patch name="707 OH" hbank="69" lbank="0" prog="110"/>
+ <Patch name="606 CH" hbank="70" lbank="0" prog="110"/>
+ <Patch name="909 CH 1" hbank="71" lbank="0" prog="110"/>
+ <Patch name="909 CH 2" hbank="72" lbank="0" prog="110"/>
+ <Patch name="909 OH" hbank="73" lbank="0" prog="110"/>
+ <Patch name="909 Dist.OH" hbank="74" lbank="0" prog="110"/>
+ </PatchGroup>
+ <PatchGroup name="Cymbal">
+ <Patch name="909 Crash" hbank="64" lbank="0" prog="111"/>
+ <Patch name="808 Cymbal" hbank="65" lbank="0" prog="111"/>
+ <Patch name="909 Ride Cym." hbank="64" lbank="0" prog="112"/>
+ <Patch name="Ride Cymbal" hbank="65" lbank="0" prog="112"/>
+ <Patch name="Ride Bell" hbank="64" lbank="0" prog="113"/>
+ <Patch name="Asian Gong" hbank="64" lbank="0" prog="114"/>
+ <Patch name="Reverse Cymbal" hbank="64" lbank="0" prog="115"/>
+ </PatchGroup>
+ <PatchGroup name="Clap">
+ <Patch name="808 Clap" hbank="64" lbank="0" prog="116"/>
+ <Patch name="Finger Snap" hbank="65" lbank="0" prog="116"/>
+ <Patch name="Hip Clap" hbank="66" lbank="0" prog="116"/>
+ <Patch name="Shape &amp; Light Clap *2" hbank="64" lbank="0" prog="117"/>
+ <Patch name="Rap &amp; Real Clap *2" hbank="65" lbank="0" prog="117"/>
+ <Patch name="909 &amp; Hard Clap *2" hbank="66" lbank="0" prog="117"/>
+ <Patch name="HC2 &amp; 707 Clap *2" hbank="67" lbank="0" prog="117"/>
+ </PatchGroup>
+ <PatchGroup name="Snare Drum(Single)">
+ <Patch name="Funky Ghost" hbank="64" lbank="0" prog="118"/>
+ <Patch name="Clap SD" hbank="65" lbank="0" prog="118"/>
+ <Patch name="Fat SD" hbank="66" lbank="0" prog="118"/>
+ <Patch name="Tight SD" hbank="67" lbank="0" prog="118"/>
+ <Patch name="909 SD" hbank="64" lbank="0" prog="119"/>
+ <Patch name="808 SD" hbank="65" lbank="0" prog="119"/>
+ <Patch name="Elec.SD" hbank="66" lbank="0" prog="119"/>
+ <Patch name="80809 SD" hbank="67" lbank="0" prog="119"/>
+ <Patch name="Slap" hbank="68" lbank="0" prog="119"/>
+ <Patch name="Blip SD" hbank="69" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Snare Drum(Kit)">
+ <Patch name="Rim SD Kit *2" hbank="64" lbank="0" prog="120"/>
+ <Patch name="Jngl SD Kit 1 *2" hbank="65" lbank="0" prog="120"/>
+ <Patch name="Jngl SD Kit 2 *2" hbank="66" lbank="0" prog="120"/>
+ <Patch name="Mute SD Kit *2" hbank="67" lbank="0" prog="120"/>
+ <Patch name="Funky SD Kit *2" hbank="68" lbank="0" prog="120"/>
+ <Patch name="Rap SD Kit *2" hbank="69" lbank="0" prog="120"/>
+ <Patch name="Dry SD Kit *2" hbank="70" lbank="0" prog="120"/>
+ <Patch name="Brush Tap *2" hbank="64" lbank="0" prog="121"/>
+ <Patch name="Brush Slap *2" hbank="65" lbank="0" prog="121"/>
+ <Patch name="Brush Swirl *2" hbank="66" lbank="0" prog="121"/>
+ <Patch name="909 SD Kit *2" hbank="64" lbank="0" prog="122"/>
+ <Patch name="808 SD Kit 1 *2" hbank="65" lbank="0" prog="122"/>
+ <Patch name="Hyper SD Kit *2" hbank="66" lbank="0" prog="122"/>
+ <Patch name="FX SD Kit *2" hbank="67" lbank="0" prog="122"/>
+ <Patch name="808 SD Kit 2 *2" hbank="68" lbank="0" prog="122"/>
+ <Patch name="606 SD Kit *2" hbank="69" lbank="0" prog="122"/>
+ </PatchGroup>
+ <PatchGroup name="Bass Drum (Single)">
+ <Patch name="Blip BD" hbank="64" lbank="0" prog="124"/>
+ <Patch name="Cave BD" hbank="65" lbank="0" prog="124"/>
+ <Patch name="808 BD 1" hbank="66" lbank="0" prog="124"/>
+ <Patch name="808 BD 2" hbank="67" lbank="0" prog="124"/>
+ <Patch name="Elec.BD" hbank="68" lbank="0" prog="124"/>
+ <Patch name="Afro Feet BD" hbank="69" lbank="0" prog="124"/>
+ </PatchGroup>
+ <PatchGroup name="Bank 29">
+ <Patch name="Dist.BD Kit *2" hbank="64" lbank="0" prog="126"/>
+ <Patch name="Jngl.BD Kit *2" hbank="65" lbank="0" prog="126"/>
+ <Patch name="909 BD Kit 1 *2" hbank="66" lbank="0" prog="126"/>
+ <Patch name="909 BD Kit 2 *2" hbank="67" lbank="0" prog="126"/>
+ <Patch name="909 BD Kit 3 *2" hbank="68" lbank="0" prog="126"/>
+ <Patch name="Dry BD Kit *2" hbank="69" lbank="0" prog="126"/>
+ <Patch name="606 BD Kit *2" hbank="70" lbank="0" prog="126"/>
+ </PatchGroup>
+ <PatchGroup name="Drum 303">
+ <Patch name="909" hbank="64" lbank="0" prog="0"/>
+ <Patch name="808" hbank="64" lbank="0" prog="8"/>
+ <Patch name="C78" hbank="64" lbank="0" prog="16"/>
+ <Patch name="JAZZ" hbank="64" lbank="0" prog="24"/>
+ <Patch name="BR5" hbank="64" lbank="0" prog="25"/>
+ <Patch name="JUNGLE" hbank="64" lbank="0" prog="32"/>
+ <Patch name="HOUSE" hbank="64" lbank="0" prog="40"/>
+ <Patch name="TC1" hbank="64" lbank="0" prog="48"/>
+ <Patch name="TC2" hbank="64" lbank="0" prog="56"/>
+ <Patch name="TC3" hbank="64" lbank="0" prog="64"/>
+ <Patch name="ABT" hbank="64" lbank="0" prog="72"/>
+ <Patch name="HIP HOP" hbank="64" lbank="0" prog="80"/>
+ </PatchGroup>
+
+ </MidiInstrument>
+ </muse>
+
+
diff --git a/muse_qt4_evolution/share/instruments/MC505.idf b/muse_qt4_evolution/share/instruments/MC505.idf
new file mode 100644
index 00000000..cced8ffa
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/MC505.idf
@@ -0,0 +1,560 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="MC505">
+
+<PatchGroup name="Preset A">
+<Patch name="Lead TB 1" hbank="81" lbank="0" prog="1"/>
+<Patch name="Dist TB 1" hbank="81" lbank="0" prog="2"/>
+<Patch name="Dist Sqr TB" hbank="81" lbank="0" prog="3"/>
+<Patch name="Dist TB 2" hbank="81" lbank="0" prog="4"/>
+<Patch name="Dist TB 3" hbank="81" lbank="0" prog="5"/>
+<Patch name="TB + Voco" hbank="81" lbank="0" prog="6"/>
+<Patch name="Dist TB 4" hbank="81" lbank="0" prog="7"/>
+<Patch name="Lead TB 2" hbank="81" lbank="0" prog="8"/>
+<Patch name="Devil TB " hbank="81" lbank="0" prog="9"/>
+<Patch name="Dual TB" hbank="81" lbank="0" prog="10"/>
+<Patch name="HiLo303ModSw" hbank="81" lbank="0" prog="11"/>
+<Patch name="Arpness TB " hbank="81" lbank="0" prog="12"/>
+<Patch name="Acid Line" hbank="81" lbank="0" prog="13"/>
+<Patch name="Dist TB 5" hbank="81" lbank="0" prog="14"/>
+<Patch name="Lead TB 3" hbank="81" lbank="0" prog="15"/>
+<Patch name="Lead TB 4" hbank="81" lbank="0" prog="16"/>
+<Patch name="TB Tra Bass" hbank="81" lbank="0" prog="17"/>
+<Patch name="Acid TB" hbank="81" lbank="0" prog="18"/>
+<Patch name="Psyche-TB" hbank="81" lbank="0" prog="19"/>
+<Patch name="TB + Sine" hbank="81" lbank="0" prog="20"/>
+<Patch name="Hi-Pass TB " hbank="81" lbank="0" prog="21"/>
+<Patch name="Moog Saw " hbank="81" lbank="0" prog="22"/>
+<Patch name="OB Saw" hbank="81" lbank="0" prog="23"/>
+<Patch name="MG Lead" hbank="81" lbank="0" prog="24"/>
+<Patch name="Poly Key " hbank="81" lbank="0" prog="25"/>
+<Patch name="Synth Pulse" hbank="81" lbank="0" prog="26"/>
+<Patch name="Dual Profs " hbank="81" lbank="0" prog="27"/>
+<Patch name="Axe of 80" hbank="81" lbank="0" prog="28"/>
+<Patch name="MG Square" hbank="81" lbank="0" prog="29"/>
+<Patch name="Square Lead1" hbank="81" lbank="0" prog="30"/>
+<Patch name="Square Lead2" hbank="81" lbank="0" prog="31"/>
+<Patch name="Square Lead3" hbank="81" lbank="0" prog="32"/>
+<Patch name="Lucky" hbank="81" lbank="0" prog="33"/>
+<Patch name="Synth Lead 1" hbank="81" lbank="0" prog="34"/>
+<Patch name="Moon Lead" hbank="81" lbank="0" prog="35"/>
+<Patch name="Rezo SynLead" hbank="81" lbank="0" prog="36"/>
+<Patch name="Wspy Synth" hbank="81" lbank="0" prog="37"/>
+<Patch name="Enorjizor" hbank="81" lbank="0" prog="38"/>
+<Patch name="JP8 Sprang " hbank="81" lbank="0" prog="39"/>
+<Patch name="PortaSynLead" hbank="81" lbank="0" prog="40"/>
+<Patch name="Wah Lead " hbank="81" lbank="0" prog="41"/>
+<Patch name="Beep Mod " hbank="81" lbank="0" prog="42"/>
+<Patch name="Dist Lead 1" hbank="81" lbank="0" prog="43"/>
+<Patch name="Freaky Fry " hbank="81" lbank="0" prog="44"/>
+<Patch name="JU2 SubOsc 1" hbank="81" lbank="0" prog="45"/>
+<Patch name="JU2 SubOsc 2" hbank="81" lbank="0" prog="46"/>
+<Patch name="Froggy" hbank="81" lbank="0" prog="47"/>
+<Patch name="Synth Lead 2" hbank="81" lbank="0" prog="48"/>
+<Patch name="Singin' MINI" hbank="81" lbank="0" prog="49"/>
+<Patch name="Plastic Tone" hbank="81" lbank="0" prog="50"/>
+<Patch name="SinusoidRave" hbank="81" lbank="0" prog="51"/>
+<Patch name="Sine Me Up " hbank="81" lbank="0" prog="52"/>
+<Patch name="Spooky Sine" hbank="81" lbank="0" prog="53"/>
+<Patch name="Sine Tone" hbank="81" lbank="0" prog="54"/>
+<Patch name="D50 Saw Lead" hbank="81" lbank="0" prog="55"/>
+<Patch name="Dst Syn Lead" hbank="81" lbank="0" prog="56"/>
+<Patch name="Big Up Massv" hbank="81" lbank="0" prog="57"/>
+<Patch name="Warm SawLead" hbank="81" lbank="0" prog="58"/>
+<Patch name="Hartnoll Era" hbank="81" lbank="0" prog="59"/>
+<Patch name="Skegness 97" hbank="81" lbank="0" prog="60"/>
+<Patch name="Simply June" hbank="81" lbank="0" prog="61"/>
+<Patch name="The Brothers" hbank="81" lbank="0" prog="62"/>
+<Patch name="Dist Lead 2" hbank="81" lbank="0" prog="63"/>
+<Patch name="Dark SawLead" hbank="81" lbank="0" prog="64"/>
+<Patch name="Dist Lead 3" hbank="81" lbank="0" prog="65"/>
+<Patch name="Mosquito" hbank="81" lbank="0" prog="66"/>
+<Patch name="Phazyn Vox" hbank="81" lbank="0" prog="67"/>
+<Patch name="Voc Saw" hbank="81" lbank="0" prog="68"/>
+<Patch name="VT Vox" hbank="81" lbank="0" prog="69"/>
+<Patch name="Pure Voice" hbank="81" lbank="0" prog="70"/>
+<Patch name="Robo Vox" hbank="81" lbank="0" prog="71"/>
+<Patch name="Hallucinate" hbank="81" lbank="0" prog="72"/>
+<Patch name="Seq.Synth" hbank="81" lbank="0" prog="73"/>
+<Patch name="Analog Seq " hbank="81" lbank="0" prog="74"/>
+<Patch name="Ana Punch" hbank="81" lbank="0" prog="75"/>
+<Patch name="Atom Brain" hbank="81" lbank="0" prog="76"/>
+<Patch name="Fooled MC" hbank="81" lbank="0" prog="77"/>
+<Patch name="101 Bass 1 " hbank="81" lbank="0" prog="78"/>
+<Patch name="House Bass " hbank="81" lbank="0" prog="79"/>
+<Patch name="101 Bass 2 " hbank="81" lbank="0" prog="80"/>
+<Patch name="202 Bass " hbank="81" lbank="0" prog="81"/>
+<Patch name="Psycho Funk" hbank="81" lbank="0" prog="82"/>
+<Patch name="Talking Line" hbank="81" lbank="0" prog="83"/>
+<Patch name="Inside Bass" hbank="81" lbank="0" prog="84"/>
+<Patch name="Bubble Bass" hbank="81" lbank="0" prog="85"/>
+<Patch name="Bass Bleep " hbank="81" lbank="0" prog="86"/>
+<Patch name="Wiggle Bass" hbank="81" lbank="0" prog="87"/>
+<Patch name="Twist Bass" hbank="81" lbank="0" prog="88"/>
+<Patch name="Octa Bass" hbank="81" lbank="0" prog="89"/>
+<Patch name="BT's Sticky" hbank="81" lbank="0" prog="90"/>
+<Patch name="MG Bass" hbank="81" lbank="0" prog="91"/>
+<Patch name="FM Super Bs" hbank="81" lbank="0" prog="92"/>
+<Patch name="Solid Bass " hbank="81" lbank="0" prog="93"/>
+<Patch name="T Nite Bass" hbank="81" lbank="0" prog="94"/>
+<Patch name="Front 505" hbank="81" lbank="0" prog="95"/>
+<Patch name="Def Bass 1 " hbank="81" lbank="0" prog="96"/>
+<Patch name="Def Bass 2" hbank="81" lbank="0" prog="97"/>
+<Patch name="Sine Bass 1" hbank="81" lbank="0" prog="98"/>
+<Patch name="Sine Bass 2" hbank="81" lbank="0" prog="99"/>
+<Patch name="RollModRezBs" hbank="81" lbank="0" prog="100"/>
+<Patch name="Gate Me Buzz" hbank="81" lbank="0" prog="101"/>
+<Patch name="System Bass" hbank="81" lbank="0" prog="102"/>
+<Patch name="Spike Bass " hbank="81" lbank="0" prog="103"/>
+<Patch name="Solid Goa" hbank="81" lbank="0" prog="104"/>
+<Patch name="Rezo Bass" hbank="81" lbank="0" prog="105"/>
+<Patch name="Blip Bass" hbank="81" lbank="0" prog="106"/>
+<Patch name="Pizz Bass" hbank="81" lbank="0" prog="107"/>
+<Patch name="Voco Bass" hbank="81" lbank="0" prog="108"/>
+<Patch name="VoCoRoBo" hbank="81" lbank="0" prog="109"/>
+<Patch name="Dust Bass" hbank="81" lbank="0" prog="110"/>
+<Patch name="ArtCore Bass" hbank="81" lbank="0" prog="111"/>
+<Patch name="NU-NRG Bass" hbank="81" lbank="0" prog="112"/>
+<Patch name="TalkBox Bass" hbank="81" lbank="0" prog="113"/>
+<Patch name="Incontinence" hbank="81" lbank="0" prog="114"/>
+<Patch name="Bari Voice" hbank="81" lbank="0" prog="115"/>
+<Patch name="Ac.Bass" hbank="81" lbank="0" prog="116"/>
+<Patch name="E.Ac.Bass" hbank="81" lbank="0" prog="117"/>
+<Patch name="Acid Jazz Bs" hbank="81" lbank="0" prog="118"/>
+<Patch name="Soup's Bass" hbank="81" lbank="0" prog="119"/>
+<Patch name="Fingered Bs" hbank="81" lbank="0" prog="120"/>
+<Patch name="FingBsVeloSw" hbank="81" lbank="0" prog="121"/>
+<Patch name="PickedBass 1" hbank="81" lbank="0" prog="122"/>
+<Patch name="PickedBass 2" hbank="81" lbank="0" prog="123"/>
+<Patch name="Fretless Bs" hbank="81" lbank="0" prog="124"/>
+<Patch name="Phot Bass" hbank="81" lbank="0" prog="125"/>
+<Patch name="Slap Bass" hbank="81" lbank="0" prog="126"/>
+<Patch name="R&amp;B B-Slides " hbank="81" lbank="0" prog="127"/>
+<Patch name="Syn Stack 1" hbank="81" lbank="0" prog="128"/>
+</PatchGroup>
+
+<PatchGroup name="Preset B">
+<Patch name="Strong Brass" hbank="82" lbank="0" prog="1"/>
+<Patch name="You Can Fly" hbank="82" lbank="0" prog="2"/>
+<Patch name="Syn stack 2 " hbank="82" lbank="0" prog="3"/>
+<Patch name="Dawn Of Man" hbank="82" lbank="0" prog="4"/>
+<Patch name="Saw Stack 1 " hbank="82" lbank="0" prog="5"/>
+<Patch name="Saw Stack 2 " hbank="82" lbank="0" prog="6"/>
+<Patch name="DLM Stack " hbank="82" lbank="0" prog="7"/>
+<Patch name="DOC Stack " hbank="82" lbank="0" prog="8"/>
+<Patch name="LN2 Stack " hbank="82" lbank="0" prog="9"/>
+<Patch name="Bend Stack" hbank="82" lbank="0" prog="10"/>
+<Patch name="Freedom" hbank="82" lbank="0" prog="11"/>
+<Patch name="Good Bean " hbank="82" lbank="0" prog="12"/>
+<Patch name="JP8000 5th" hbank="82" lbank="0" prog="13"/>
+<Patch name="Mega 5th " hbank="82" lbank="0" prog="14"/>
+<Patch name="5th Saw " hbank="82" lbank="0" prog="15"/>
+<Patch name="4th Saw" hbank="82" lbank="0" prog="16"/>
+<Patch name="Soundtrack" hbank="82" lbank="0" prog="17"/>
+<Patch name="Rise Pad " hbank="82" lbank="0" prog="18"/>
+<Patch name="Warm Pad " hbank="82" lbank="0" prog="19"/>
+<Patch name="JP + OB Pad " hbank="82" lbank="0" prog="20"/>
+<Patch name="Planet " hbank="82" lbank="0" prog="21"/>
+<Patch name="Additive " hbank="82" lbank="0" prog="22"/>
+<Patch name="Noise Pad" hbank="82" lbank="0" prog="23"/>
+<Patch name="Sweep Pad 1 " hbank="82" lbank="0" prog="24"/>
+<Patch name="Sweep Pad 2" hbank="82" lbank="0" prog="25"/>
+<Patch name="Alles Padde " hbank="82" lbank="0" prog="26"/>
+<Patch name="Sky Light " hbank="82" lbank="0" prog="27"/>
+<Patch name="Stargate MC " hbank="82" lbank="0" prog="28"/>
+<Patch name="Middle Grow " hbank="82" lbank="0" prog="29"/>
+<Patch name="AiRye Bread-" hbank="82" lbank="0" prog="30"/>
+<Patch name="NU-NRG Org" hbank="82" lbank="0" prog="31"/>
+<Patch name="Halo Pad " hbank="82" lbank="0" prog="32"/>
+<Patch name="Str/Brs Pad " hbank="82" lbank="0" prog="33"/>
+<Patch name="Syn Brs Pad " hbank="82" lbank="0" prog="34"/>
+<Patch name="Simple Pad" hbank="82" lbank="0" prog="35"/>
+<Patch name="OB Rezo Pad " hbank="82" lbank="0" prog="36"/>
+<Patch name="Sweet Vocode" hbank="82" lbank="0" prog="37"/>
+<Patch name="Thin Pad " hbank="82" lbank="0" prog="38"/>
+<Patch name="Attack Pad" hbank="82" lbank="0" prog="39"/>
+<Patch name="Metal Pad " hbank="82" lbank="0" prog="40"/>
+<Patch name="Atmosphere" hbank="82" lbank="0" prog="41"/>
+<Patch name="Fantasia " hbank="82" lbank="0" prog="42"/>
+<Patch name="Feedbackwave" hbank="82" lbank="0" prog="43"/>
+<Patch name="Pacifica " hbank="82" lbank="0" prog="44"/>
+<Patch name="Atmosphere 2" hbank="82" lbank="0" prog="45"/>
+<Patch name="Sub Atmosphe" hbank="82" lbank="0" prog="46"/>
+<Patch name="Machine Pad " hbank="82" lbank="0" prog="47"/>
+<Patch name="Detuned Pad " hbank="82" lbank="0" prog="48"/>
+<Patch name="Scoop Pad " hbank="82" lbank="0" prog="49"/>
+<Patch name="Psycho Trevor " hbank="82" lbank="0" prog="50"/>
+<Patch name="Floating Pad" hbank="82" lbank="0" prog="51"/>
+<Patch name="Fancy Pad " hbank="82" lbank="0" prog="52"/>
+<Patch name="Strings 1 " hbank="82" lbank="0" prog="53"/>
+<Patch name="Strings 2 " hbank="82" lbank="0" prog="54"/>
+<Patch name="Old StringSW" hbank="82" lbank="0" prog="55"/>
+<Patch name="Swim Strings" hbank="82" lbank="0" prog="56"/>
+<Patch name="Eclip-Str" hbank="82" lbank="0" prog="57"/>
+<Patch name="Slow Strings" hbank="82" lbank="0" prog="58"/>
+<Patch name="OB Slow Str " hbank="82" lbank="0" prog="59"/>
+<Patch name="Syn.Strings1" hbank="82" lbank="0" prog="60"/>
+<Patch name="Syn.Strings2" hbank="82" lbank="0" prog="61"/>
+<Patch name="OB Strings" hbank="82" lbank="0" prog="62"/>
+<Patch name="Rhap Strings" hbank="82" lbank="0" prog="63"/>
+<Patch name="Banded Jupe" hbank="82" lbank="0" prog="64"/>
+<Patch name="NU-NRG Str" hbank="82" lbank="0" prog="65"/>
+<Patch name="Violin " hbank="82" lbank="0" prog="66"/>
+<Patch name="Contrabass" hbank="82" lbank="0" prog="67"/>
+<Patch name="Tremolo Str " hbank="82" lbank="0" prog="68"/>
+<Patch name="Pizzicato 1 " hbank="82" lbank="0" prog="69"/>
+<Patch name="Pizzicato 2 " hbank="82" lbank="0" prog="70"/>
+<Patch name="Pizz It " hbank="82" lbank="0" prog="71"/>
+<Patch name="Guardians" hbank="82" lbank="0" prog="72"/>
+<Patch name="Gat Passion " hbank="82" lbank="0" prog="73"/>
+<Patch name="Syn Harp " hbank="82" lbank="0" prog="74"/>
+<Patch name="Voice Oohs" hbank="82" lbank="0" prog="75"/>
+<Patch name="Solo Vox " hbank="82" lbank="0" prog="76"/>
+<Patch name="Syn Vox " hbank="82" lbank="0" prog="77"/>
+<Patch name="Choir Aahs" hbank="82" lbank="0" prog="78"/>
+<Patch name="Space Voice " hbank="82" lbank="0" prog="79"/>
+<Patch name="Star Voice" hbank="82" lbank="0" prog="80"/>
+<Patch name="Brightness" hbank="82" lbank="0" prog="81"/>
+<Patch name="Vox Lead " hbank="82" lbank="0" prog="82"/>
+<Patch name="Auhbient " hbank="82" lbank="0" prog="83"/>
+<Patch name="Auh Luv Rave" hbank="82" lbank="0" prog="84"/>
+<Patch name="PCM Life " hbank="82" lbank="0" prog="85"/>
+<Patch name="Noisevox " hbank="82" lbank="0" prog="86"/>
+<Patch name="Trance Voice" hbank="82" lbank="0" prog="87"/>
+<Patch name="Effect Acer " hbank="82" lbank="0" prog="88"/>
+<Patch name="Alternative " hbank="82" lbank="0" prog="89"/>
+<Patch name="Hard Pure " hbank="82" lbank="0" prog="90"/>
+<Patch name="Metal EF " hbank="82" lbank="0" prog="91"/>
+<Patch name="Dly Tone " hbank="82" lbank="0" prog="92"/>
+<Patch name="Osci Frog " hbank="82" lbank="0" prog="93"/>
+<Patch name="Cal + After " hbank="82" lbank="0" prog="94"/>
+<Patch name="8b Pad " hbank="82" lbank="0" prog="95"/>
+<Patch name="SpaceHighway" hbank="82" lbank="0" prog="96"/>
+<Patch name="Trek Storm" hbank="82" lbank="0" prog="97"/>
+<Patch name="Abduction " hbank="82" lbank="0" prog="98"/>
+<Patch name="1st Contact " hbank="82" lbank="0" prog="99"/>
+<Patch name="Ice Cave " hbank="82" lbank="0" prog="100"/>
+<Patch name="Rev Cord " hbank="82" lbank="0" prog="101"/>
+<Patch name="Blue Random " hbank="82" lbank="0" prog="102"/>
+<Patch name="Sync Tone" hbank="82" lbank="0" prog="103"/>
+<Patch name="Seq Up " hbank="82" lbank="0" prog="104"/>
+<Patch name="SawLFOSaw " hbank="82" lbank="0" prog="105"/>
+<Patch name="Calculating" hbank="82" lbank="0" prog="106"/>
+<Patch name="Touch EF " hbank="82" lbank="0" prog="107"/>
+<Patch name="Welding " hbank="82" lbank="0" prog="108"/>
+<Patch name="Press Machin" hbank="82" lbank="0" prog="109"/>
+<Patch name="EF Tribe " hbank="82" lbank="0" prog="110"/>
+<Patch name="Scratch Alt " hbank="82" lbank="0" prog="111"/>
+<Patch name="Analog FX " hbank="82" lbank="0" prog="112"/>
+<Patch name="Non TB " hbank="82" lbank="0" prog="113"/>
+<Patch name="Nasty Filt" hbank="82" lbank="0" prog="114"/>
+<Patch name="Psy-Ence" hbank="82" lbank="0" prog="115"/>
+<Patch name="Music Hi " hbank="82" lbank="0" prog="116"/>
+<Patch name="Uber Zone " hbank="82" lbank="0" prog="117"/>
+<Patch name="Down Gown " hbank="82" lbank="0" prog="118"/>
+<Patch name="For Giving" hbank="82" lbank="0" prog="119"/>
+<Patch name="Sound Alarm " hbank="82" lbank="0" prog="120"/>
+<Patch name="Acid Drone" hbank="82" lbank="0" prog="121"/>
+<Patch name="X-Mod" hbank="82" lbank="0" prog="122"/>
+<Patch name="X-FM/Org " hbank="82" lbank="0" prog="123"/>
+<Patch name="X-FM Bass " hbank="82" lbank="0" prog="124"/>
+<Patch name="Hard BD? " hbank="82" lbank="0" prog="125"/>
+<Patch name="S&amp;H Voc " hbank="82" lbank="0" prog="126"/>
+<Patch name="X-TlkBxBass " hbank="82" lbank="0" prog="127"/>
+<Patch name="X-Kick/TB" hbank="82" lbank="0" prog="128"/>
+</PatchGroup>
+
+<PatchGroup name="Preset C">
+<Patch name="X-Org/Nz " hbank="83" lbank="0" prog="1"/>
+<Patch name="X-Pizz/Rng" hbank="83" lbank="0" prog="2"/>
+<Patch name="White Noise" hbank="83" lbank="0" prog="3"/>
+<Patch name="Pink Noise " hbank="83" lbank="0" prog="4"/>
+<Patch name="P5 Noise " hbank="83" lbank="0" prog="5"/>
+<Patch name="Toy Noise " hbank="83" lbank="0" prog="6"/>
+<Patch name="Rezo Noise " hbank="83" lbank="0" prog="7"/>
+<Patch name="Vinyl Noise" hbank="83" lbank="0" prog="8"/>
+<Patch name="Tornado Jet" hbank="83" lbank="0" prog="9"/>
+<Patch name="Smooth Jet " hbank="83" lbank="0" prog="10"/>
+<Patch name="Sweep Noise" hbank="83" lbank="0" prog="11"/>
+<Patch name="ModWhtSweep" hbank="83" lbank="0" prog="12"/>
+<Patch name="Perk Breath" hbank="83" lbank="0" prog="13"/>
+<Patch name="Pink Bomb " hbank="83" lbank="0" prog="14"/>
+<Patch name="64voicePiano" hbank="83" lbank="0" prog="15"/>
+<Patch name="Ac.Piano 1 " hbank="83" lbank="0" prog="16"/>
+<Patch name="Ac.Piano 2 " hbank="83" lbank="0" prog="17"/>
+<Patch name="Epic House " hbank="83" lbank="0" prog="18"/>
+<Patch name="Hush Piano " hbank="83" lbank="0" prog="19"/>
+<Patch name="Happy Piano" hbank="83" lbank="0" prog="20"/>
+<Patch name="BPF Piano " hbank="83" lbank="0" prog="21"/>
+<Patch name="Honky-tonk " hbank="83" lbank="0" prog="22"/>
+<Patch name="NY Piano+Str" hbank="83" lbank="0" prog="23"/>
+<Patch name="Voice Piano" hbank="83" lbank="0" prog="24"/>
+<Patch name="Old E.Piano" hbank="83" lbank="0" prog="25"/>
+<Patch name="E.Piano 1 " hbank="83" lbank="0" prog="26"/>
+<Patch name="E.Piano 2 " hbank="83" lbank="0" prog="27"/>
+<Patch name="Cool Rhodes" hbank="83" lbank="0" prog="28"/>
+<Patch name="Psycho EP " hbank="83" lbank="0" prog="29"/>
+<Patch name="Trip E.Piano" hbank="83" lbank="0" prog="30"/>
+<Patch name="Rotary Rhode" hbank="83" lbank="0" prog="31"/>
+<Patch name="EP-Organ " hbank="83" lbank="0" prog="32"/>
+<Patch name="Harpsichord" hbank="83" lbank="0" prog="33"/>
+<Patch name="Clavi" hbank="83" lbank="0" prog="34"/>
+<Patch name="Digi Clavi " hbank="83" lbank="0" prog="35"/>
+<Patch name="FM Clavi " hbank="83" lbank="0" prog="36"/>
+<Patch name="AnalogClavi1" hbank="83" lbank="0" prog="37"/>
+<Patch name="AnalogClavi2" hbank="83" lbank="0" prog="38"/>
+<Patch name="Funky Clavi" hbank="83" lbank="0" prog="39"/>
+<Patch name="RotaryOrg Sl" hbank="83" lbank="0" prog="40"/>
+<Patch name="RotaryOrg Fs" hbank="83" lbank="0" prog="41"/>
+<Patch name="Gospel Spin" hbank="83" lbank="0" prog="42"/>
+<Patch name="L Org F " hbank="83" lbank="0" prog="43"/>
+<Patch name="Organ 1 " hbank="83" lbank="0" prog="44"/>
+<Patch name="Lp-Hp Organ" hbank="83" lbank="0" prog="45"/>
+<Patch name="Organ 2 " hbank="83" lbank="0" prog="46"/>
+<Patch name="Percsv Organ" hbank="83" lbank="0" prog="47"/>
+<Patch name="Ballad B " hbank="83" lbank="0" prog="48"/>
+<Patch name="FM Club Org" hbank="83" lbank="0" prog="49"/>
+<Patch name="Pop Organ " hbank="83" lbank="0" prog="50"/>
+<Patch name="Cheese Organ" hbank="83" lbank="0" prog="51"/>
+<Patch name="Reed Organ " hbank="83" lbank="0" prog="52"/>
+<Patch name="Telstar" hbank="83" lbank="0" prog="53"/>
+<Patch name="Church Org " hbank="83" lbank="0" prog="54"/>
+<Patch name="Organ Bass" hbank="83" lbank="0" prog="55"/>
+<Patch name="Strict Organ" hbank="83" lbank="0" prog="56"/>
+<Patch name="SmkyChrd Org" hbank="83" lbank="0" prog="57"/>
+<Patch name="Sweep Organ" hbank="83" lbank="0" prog="58"/>
+<Patch name="Accordion " hbank="83" lbank="0" prog="59"/>
+<Patch name="Vibraphone " hbank="83" lbank="0" prog="60"/>
+<Patch name="FM Marimba " hbank="83" lbank="0" prog="61"/>
+<Patch name="Marimba " hbank="83" lbank="0" prog="62"/>
+<Patch name="Xylophone " hbank="83" lbank="0" prog="63"/>
+<Patch name="Balaphone " hbank="83" lbank="0" prog="64"/>
+<Patch name="Timpani " hbank="83" lbank="0" prog="65"/>
+<Patch name="Steel Drum " hbank="83" lbank="0" prog="66"/>
+<Patch name="Digi Bell " hbank="83" lbank="0" prog="67"/>
+<Patch name="Acid Perc" hbank="83" lbank="0" prog="68"/>
+<Patch name="MetaL-SD" hbank="83" lbank="0" prog="69"/>
+<Patch name="Classy Pulse" hbank="83" lbank="0" prog="70"/>
+<Patch name="Glockenspiel" hbank="83" lbank="0" prog="71"/>
+<Patch name="Fanta Bell " hbank="83" lbank="0" prog="72"/>
+<Patch name="Crystal " hbank="83" lbank="0" prog="73"/>
+<Patch name="Tubular-Bell" hbank="83" lbank="0" prog="74"/>
+<Patch name="Shank Bells" hbank="83" lbank="0" prog="75"/>
+<Patch name="MKS-30 Melts" hbank="83" lbank="0" prog="76"/>
+<Patch name="Trip Lead " hbank="83" lbank="0" prog="77"/>
+<Patch name="Steel-Str.Gt" hbank="83" lbank="0" prog="78"/>
+<Patch name="Clean Gtr " hbank="83" lbank="0" prog="79"/>
+<Patch name="Jazz Gtr 1 " hbank="83" lbank="0" prog="80"/>
+<Patch name="Jazz Gtr 2 " hbank="83" lbank="0" prog="81"/>
+<Patch name="Muted Gtr " hbank="83" lbank="0" prog="82"/>
+<Patch name="Lo-Fi Gtr " hbank="83" lbank="0" prog="83"/>
+<Patch name="Terror Dome" hbank="83" lbank="0" prog="84"/>
+<Patch name="Psycho-G" hbank="83" lbank="0" prog="85"/>
+<Patch name="Dist Gtr Chd" hbank="83" lbank="0" prog="86"/>
+<Patch name="Going Bald " hbank="83" lbank="0" prog="87"/>
+<Patch name="Gt.Harmonic1" hbank="83" lbank="0" prog="88"/>
+<Patch name="Gt.Harmonic2" hbank="83" lbank="0" prog="89"/>
+<Patch name="Shafted Gtr" hbank="83" lbank="0" prog="90"/>
+<Patch name="WahGT 2 Menu" hbank="83" lbank="0" prog="91"/>
+<Patch name="Gtr Up" hbank="83" lbank="0" prog="92"/>
+<Patch name="Gtr Down " hbank="83" lbank="0" prog="93"/>
+<Patch name="Gtr Sweep " hbank="83" lbank="0" prog="94"/>
+<Patch name="Orch Gtr" hbank="83" lbank="0" prog="95"/>
+<Patch name="Brass" hbank="83" lbank="0" prog="96"/>
+<Patch name="Bright Brass" hbank="83" lbank="0" prog="97"/>
+<Patch name="Hush Brass " hbank="83" lbank="0" prog="98"/>
+<Patch name="Synth Brass1" hbank="83" lbank="0" prog="99"/>
+<Patch name="Synth Brass2" hbank="83" lbank="0" prog="100"/>
+<Patch name="Synth Brass3" hbank="83" lbank="0" prog="101"/>
+<Patch name="Syn Brs Lead" hbank="83" lbank="0" prog="102"/>
+<Patch name="Obilator " hbank="83" lbank="0" prog="103"/>
+<Patch name="OpenUp Brass" hbank="83" lbank="0" prog="104"/>
+<Patch name="Brass Fall " hbank="83" lbank="0" prog="105"/>
+<Patch name="Trumpet " hbank="83" lbank="0" prog="106"/>
+<Patch name="MutedTrumpet" hbank="83" lbank="0" prog="107"/>
+<Patch name="Soprano Sax" hbank="83" lbank="0" prog="108"/>
+<Patch name="Alto Sax " hbank="83" lbank="0" prog="109"/>
+<Patch name="Baritone Sax" hbank="83" lbank="0" prog="110"/>
+<Patch name="SlideBiteSax" hbank="83" lbank="0" prog="111"/>
+<Patch name="Sax &amp; Tp " hbank="83" lbank="0" prog="112"/>
+<Patch name="Tuba" hbank="83" lbank="0" prog="113"/>
+<Patch name="Syn F.Horn " hbank="83" lbank="0" prog="114"/>
+<Patch name="Oboe" hbank="83" lbank="0" prog="115"/>
+<Patch name="Whistle " hbank="83" lbank="0" prog="116"/>
+<Patch name="Ocarina " hbank="83" lbank="0" prog="117"/>
+<Patch name="Recorder " hbank="83" lbank="0" prog="118"/>
+<Patch name="Jazz SynLead" hbank="83" lbank="0" prog="119"/>
+<Patch name="Solo Flute " hbank="83" lbank="0" prog="120"/>
+<Patch name="Pan Flute " hbank="83" lbank="0" prog="121"/>
+<Patch name="Bottle Blow" hbank="83" lbank="0" prog="122"/>
+<Patch name="Funky Pipe " hbank="83" lbank="0" prog="123"/>
+<Patch name="Breath Noise" hbank="83" lbank="0" prog="124"/>
+<Patch name="Shakuhachi " hbank="83" lbank="0" prog="125"/>
+<Patch name="Sitar 1 " hbank="83" lbank="0" prog="126"/>
+<Patch name="Sitar 2 " hbank="83" lbank="0" prog="127"/>
+<Patch name="Santur" hbank="83" lbank="0" prog="128"/>
+</PatchGroup>
+
+<PatchGroup name="Preset D">
+<Patch name="Kalimba" hbank="84" lbank="0" prog="1"/>
+<Patch name="Bagpipes" hbank="84" lbank="0" prog="2"/>
+<Patch name="PnoBendM7-m7" hbank="84" lbank="0" prog="3"/>
+<Patch name="Org Chd m7" hbank="84" lbank="0" prog="4"/>
+<Patch name="BalapChd 9th" hbank="84" lbank="0" prog="5"/>
+<Patch name="Wah Gtr Hit" hbank="84" lbank="0" prog="6"/>
+<Patch name="Orch Hit 1" hbank="84" lbank="0" prog="7"/>
+<Patch name="Orch Hit 2" hbank="84" lbank="0" prog="8"/>
+<Patch name="Rave-X-Tasy" hbank="84" lbank="0" prog="9"/>
+<Patch name="Philly Hit 1" hbank="84" lbank="0" prog="10"/>
+<Patch name="Philly Hit 2" hbank="84" lbank="0" prog="11"/>
+<Patch name="Attack Hit" hbank="84" lbank="0" prog="12"/>
+<Patch name="Funky Hit" hbank="84" lbank="0" prog="13"/>
+<Patch name="Tekno ChdHit" hbank="84" lbank="0" prog="14"/>
+<Patch name="Dist Hit" hbank="84" lbank="0" prog="15"/>
+<Patch name="Glasgow Hit" hbank="84" lbank="0" prog="16"/>
+<Patch name="Happy Hit" hbank="84" lbank="0" prog="17"/>
+<Patch name="Scene Hit 1" hbank="84" lbank="0" prog="18"/>
+<Patch name="Scene Hit 2" hbank="84" lbank="0" prog="19"/>
+<Patch name="Drill Hit" hbank="84" lbank="0" prog="20"/>
+<Patch name="Gaia Message" hbank="84" lbank="0" prog="21"/>
+<Patch name="Rezo Perc" hbank="84" lbank="0" prog="22"/>
+<Patch name="Syn Perc" hbank="84" lbank="0" prog="23"/>
+<Patch name="MG Blip" hbank="84" lbank="0" prog="24"/>
+<Patch name="Rev Blip" hbank="84" lbank="0" prog="25"/>
+<Patch name="Air Blip" hbank="84" lbank="0" prog="26"/>
+<Patch name="Radical Perc" hbank="84" lbank="0" prog="27"/>
+<Patch name="Machine" hbank="84" lbank="0" prog="28"/>
+<Patch name="Metal Hit" hbank="84" lbank="0" prog="29"/>
+<Patch name="Tanz Devil" hbank="84" lbank="0" prog="30"/>
+<Patch name="Headz Direkt" hbank="84" lbank="0" prog="31"/>
+<Patch name="ShoppingCart" hbank="84" lbank="0" prog="32"/>
+<Patch name="Noisy Drill" hbank="84" lbank="0" prog="33"/>
+<Patch name="Thump Bounce" hbank="84" lbank="0" prog="34"/>
+<Patch name="Tape Rewind" hbank="84" lbank="0" prog="35"/>
+<Patch name="Stop" hbank="84" lbank="0" prog="36"/>
+<Patch name="Ao!" hbank="84" lbank="0" prog="37"/>
+<Patch name="Ha!" hbank="84" lbank="0" prog="38"/>
+<Patch name="Seashore" hbank="84" lbank="0" prog="39"/>
+<Patch name="Bird" hbank="84" lbank="0" prog="40"/>
+<Patch name="Telephone" hbank="84" lbank="0" prog="41"/>
+<Patch name="Helicopter" hbank="84" lbank="0" prog="42"/>
+<Patch name="Applause" hbank="84" lbank="0" prog="43"/>
+<Patch name="Gun Shot" hbank="84" lbank="0" prog="44"/>
+<Patch name="Machine Gun" hbank="84" lbank="0" prog="45"/>
+<Patch name="Laser Gun" hbank="84" lbank="0" prog="46"/>
+<Patch name="Sci-Fi Laser" hbank="84" lbank="0" prog="47"/>
+<Patch name="Breath" hbank="84" lbank="0" prog="48"/>
+<Patch name="Rain" hbank="84" lbank="0" prog="49"/>
+<Patch name="Siren" hbank="84" lbank="0" prog="50"/>
+<Patch name="TR909 Tom" hbank="84" lbank="0" prog="51"/>
+<Patch name="TR808 Tom" hbank="84" lbank="0" prog="52"/>
+<Patch name="Syn Tom 1" hbank="84" lbank="0" prog="53"/>
+<Patch name="Syn Tom 2" hbank="84" lbank="0" prog="54"/>
+<Patch name="Old Syn Tom" hbank="84" lbank="0" prog="55"/>
+<Patch name="Taiko" hbank="84" lbank="0" prog="56"/>
+<Patch name="Slow Down" hbank="84" lbank="0" prog="57"/>
+<Patch name="Boom Drop" hbank="84" lbank="0" prog="58"/>
+<Patch name="B-Tom-D" hbank="84" lbank="0" prog="59"/>
+<Patch name="Mr.Bong Bass" hbank="84" lbank="0" prog="60"/>
+<Patch name="Friends of 0" hbank="84" lbank="0" prog="61"/>
+<Patch name="Latin Perc" hbank="84" lbank="0" prog="62"/>
+<Patch name="Bongo Fury" hbank="84" lbank="0" prog="63"/>
+<Patch name="High Timbale" hbank="84" lbank="0" prog="64"/>
+<Patch name="MutePandeiro" hbank="84" lbank="0" prog="65"/>
+<Patch name="Open Surdo" hbank="84" lbank="0" prog="66"/>
+<Patch name="Brazil Perc" hbank="84" lbank="0" prog="67"/>
+<Patch name="Tablabaya" hbank="84" lbank="0" prog="68"/>
+<Patch name="Mute Cuica" hbank="84" lbank="0" prog="69"/>
+<Patch name="Long Whistle" hbank="84" lbank="0" prog="70"/>
+<Patch name="Agogo" hbank="84" lbank="0" prog="71"/>
+<Patch name="Short Tamb" hbank="84" lbank="0" prog="72"/>
+<Patch name="808 Cowbell" hbank="84" lbank="0" prog="73"/>
+<Patch name="CR78 Cowbell" hbank="84" lbank="0" prog="74"/>
+<Patch name="CR78 Beat" hbank="84" lbank="0" prog="75"/>
+<Patch name="Wind-Chime" hbank="84" lbank="0" prog="76"/>
+<Patch name="Rim Shot" hbank="84" lbank="0" prog="77"/>
+<Patch name="TR909 Rim" hbank="84" lbank="0" prog="78"/>
+<Patch name="Hyoshigi" hbank="84" lbank="0" prog="79"/>
+<Patch name="TR626 Shaker" hbank="84" lbank="0" prog="80"/>
+<Patch name="727 Quijada" hbank="84" lbank="0" prog="81"/>
+<Patch name="Real CH" hbank="84" lbank="0" prog="82"/>
+<Patch name="TR909 OH" hbank="84" lbank="0" prog="83"/>
+<Patch name="Syn OH" hbank="84" lbank="0" prog="84"/>
+<Patch name="TR909 Crash" hbank="84" lbank="0" prog="85"/>
+<Patch name="Reverse Cym." hbank="84" lbank="0" prog="86"/>
+<Patch name="Asian Gong" hbank="84" lbank="0" prog="87"/>
+<Patch name="TR808 Clap" hbank="84" lbank="0" prog="88"/>
+<Patch name="Down Clap" hbank="84" lbank="0" prog="89"/>
+<Patch name="Clap Tail" hbank="84" lbank="0" prog="90"/>
+<Patch name="Rap&amp;Real Clp" hbank="84" lbank="0" prog="91"/>
+<Patch name="Maddening" hbank="84" lbank="0" prog="92"/>
+<Patch name="TR909 Snare" hbank="84" lbank="0" prog="93"/>
+<Patch name="TR808 Snare" hbank="84" lbank="0" prog="94"/>
+<Patch name="House Snare" hbank="84" lbank="0" prog="95"/>
+<Patch name="Jungle Snr 1" hbank="84" lbank="0" prog="96"/>
+<Patch name="Jungle Snr 2" hbank="84" lbank="0" prog="97"/>
+<Patch name="TR808 Kick" hbank="84" lbank="0" prog="98"/>
+<Patch name="Plastic BD" hbank="84" lbank="0" prog="99"/>
+<Patch name="Gate Kick" hbank="84" lbank="0" prog="100"/>
+<Patch name="Jungle Kick" hbank="84" lbank="0" prog="101"/>
+<Patch name="Scrtch/Vo Mn" hbank="84" lbank="0" prog="102"/>
+<Patch name="Flexi Vox Mn" hbank="84" lbank="0" prog="103"/>
+<Patch name="Hit Menu" hbank="84" lbank="0" prog="104"/>
+<Patch name="Indust Menu" hbank="84" lbank="0" prog="105"/>
+<Patch name="Tom Menu" hbank="84" lbank="0" prog="106"/>
+<Patch name="Percus1 Menu" hbank="84" lbank="0" prog="107"/>
+<Patch name="Percus2 Menu" hbank="84" lbank="0" prog="108"/>
+<Patch name="Cowbell Menu" hbank="84" lbank="0" prog="109"/>
+<Patch name="Shaker+ Menu" hbank="84" lbank="0" prog="110"/>
+<Patch name="Rim Menu" hbank="84" lbank="0" prog="111"/>
+<Patch name="Cymbal Menu" hbank="84" lbank="0" prog="112"/>
+<Patch name="CHH 1 Menu" hbank="84" lbank="0" prog="113"/>
+<Patch name="CHH 2 Menu" hbank="84" lbank="0" prog="114"/>
+<Patch name="PHH Menu" hbank="84" lbank="0" prog="115"/>
+<Patch name="OHH 1 Menu" hbank="84" lbank="0" prog="116"/>
+<Patch name="OHH 2 Menu" hbank="84" lbank="0" prog="117"/>
+<Patch name="Clap 1 Menu" hbank="84" lbank="0" prog="118"/>
+<Patch name="Clap 2 Menu" hbank="84" lbank="0" prog="119"/>
+<Patch name="Snare 1 Menu" hbank="84" lbank="0" prog="120"/>
+<Patch name="Snare 2 Menu" hbank="84" lbank="0" prog="121"/>
+<Patch name="Snare 3 Menu" hbank="84" lbank="0" prog="122"/>
+<Patch name="Snare 4 Menu" hbank="84" lbank="0" prog="123"/>
+<Patch name="Snare 5 Menu" hbank="84" lbank="0" prog="124"/>
+<Patch name="Snare 6 Menu" hbank="84" lbank="0" prog="125"/>
+<Patch name="Kick 1 Menu" hbank="84" lbank="0" prog="126"/>
+<Patch name="Kick 2 Menu" hbank="84" lbank="0" prog="127"/>
+<Patch name="Kick 3 Menu" hbank="84" lbank="0" prog="128"/>
+</PatchGroup>
+
+<PatchGroup name="Drum 505">
+<Patch name="TR-909" hbank="81" lbank="0" prog="1"/>
+<Patch name="TR-808" hbank="81" lbank="0" prog="2"/>
+<Patch name="TR-606" hbank="81" lbank="0" prog="3"/>
+<Patch name="CR78&amp;Cheaps" hbank="81" lbank="0" prog="4"/>
+<Patch name="Techno 1" hbank="81" lbank="0" prog="5"/>
+<Patch name="Techno 2" hbank="81" lbank="0" prog="6"/>
+<Patch name="Techno 3" hbank="81" lbank="0" prog="7"/>
+<Patch name="Hardcore" hbank="81" lbank="0" prog="8"/>
+<Patch name="Ambient" hbank="81" lbank="0" prog="9"/>
+<Patch name="House 1" hbank="81" lbank="0" prog="10"/>
+<Patch name="House 2" hbank="81" lbank="0" prog="11"/>
+<Patch name="Jungle" hbank="81" lbank="0" prog="12"/>
+<Patch name="Drum n bass 1" hbank="81" lbank="0" prog="13"/>
+<Patch name="Drum n bass 2" hbank="81" lbank="0" prog="14"/>
+<Patch name="Hip-Hop 1" hbank="81" lbank="0" prog="15"/>
+<Patch name="Hip-Hop 2" hbank="81" lbank="0" prog="16"/>
+<Patch name="Funk" hbank="81" lbank="0" prog="17"/>
+<Patch name="Electro" hbank="81" lbank="0" prog="18"/>
+<Patch name="Jazz" hbank="81" lbank="0" prog="19"/>
+<Patch name="Brush" hbank="81" lbank="0" prog="20"/>
+<Patch name="Disco" hbank="81" lbank="0" prog="21"/>
+<Patch name="Ragga" hbank="81" lbank="0" prog="22"/>
+<Patch name="Rock" hbank="81" lbank="0" prog="23"/>
+<Patch name="Industrial" hbank="81" lbank="0" prog="24"/>
+<Patch name="Ethnic" hbank="81" lbank="0" prog="25"/>
+<Patch name="Reverse" hbank="81" lbank="0" prog="26"/>
+</PatchGroup>
+
+
+ </MidiInstrument>
+ </muse>
diff --git a/muse_qt4_evolution/share/instruments/Quasimidi-Sirius.idf b/muse_qt4_evolution/share/instruments/Quasimidi-Sirius.idf
new file mode 100644
index 00000000..35e3ea3a
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Quasimidi-Sirius.idf
@@ -0,0 +1,735 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Quasimidi Sirius">
+ <PatchGroup name="Kick">
+ <Patch name="606Kick" hbank="0" lbank="1" prog="1"/>
+ <Patch name="808 High" hbank="0" lbank="1" prog="2"/>
+ <Patch name="808 Kic2" hbank="0" lbank="1" prog="3"/>
+ <Patch name="808Kick1" hbank="0" lbank="1" prog="4"/>
+ <Patch name="808XFett" hbank="0" lbank="1" prog="5"/>
+ <Patch name="909" hbank="0" lbank="1" prog="6"/>
+ <Patch name="909 2" hbank="0" lbank="1" prog="7"/>
+ <Patch name="909 3" hbank="0" lbank="1" prog="8"/>
+ <Patch name="909 4" hbank="0" lbank="1" prog="9"/>
+ <Patch name="909 5" hbank="0" lbank="1" prog="10"/>
+ <Patch name="AttackBD" hbank="0" lbank="1" prog="11"/>
+ <Patch name="AW-Brain" hbank="0" lbank="1" prog="12"/>
+ <Patch name="Basket" hbank="0" lbank="1" prog="13"/>
+ <Patch name="Big \\" hbank="0" lbank="1" prog="14"/>
+ <Patch name="Big 808" hbank="0" lbank="1" prog="15"/>
+ <Patch name="BigDirty" hbank="0" lbank="1" prog="16"/>
+ <Patch name="Big Kick" hbank="0" lbank="1" prog="17"/>
+ <Patch name="BIgPitch" hbank="0" lbank="1" prog="18"/>
+ <Patch name="Big Tom" hbank="0" lbank="1" prog="19"/>
+ <Patch name="BlamKick" hbank="0" lbank="1" prog="20"/>
+ <Patch name="Boom" hbank="0" lbank="1" prog="21"/>
+ <Patch name="BuckHard" hbank="0" lbank="1" prog="22"/>
+ <Patch name="Bumpi" hbank="0" lbank="1" prog="23"/>
+ <Patch name="Calculat" hbank="0" lbank="1" prog="24"/>
+ <Patch name="CallKick" hbank="0" lbank="1" prog="25"/>
+ <Patch name="Cascade" hbank="0" lbank="1" prog="26"/>
+ <Patch name="Classic" hbank="0" lbank="1" prog="27"/>
+ <Patch name="Clean808" hbank="0" lbank="1" prog="28"/>
+ <Patch name="ClipKick" hbank="0" lbank="1" prog="29"/>
+ <Patch name="C.P.808" hbank="0" lbank="1" prog="30"/>
+ <Patch name="Daftkick" hbank="0" lbank="1" prog="31"/>
+ <Patch name="DancKick" hbank="0" lbank="1" prog="32"/>
+ <Patch name="Deep808" hbank="0" lbank="1" prog="33"/>
+ <Patch name="DeepEnou" hbank="0" lbank="1" prog="34"/>
+ <Patch name="Deeper" hbank="0" lbank="1" prog="35"/>
+ <Patch name="DeepKick" hbank="0" lbank="1" prog="36"/>
+ <Patch name="Dindada" hbank="0" lbank="1" prog="37"/>
+ <Patch name="Dirty" hbank="0" lbank="1" prog="38"/>
+ <Patch name="Dirty 2" hbank="0" lbank="1" prog="39"/>
+ <Patch name="Dirty909" hbank="0" lbank="1" prog="40"/>
+ <Patch name="DirtySFX" hbank="0" lbank="1" prog="41"/>
+ <Patch name="Discus" hbank="0" lbank="1" prog="42"/>
+ <Patch name="Dist-808" hbank="0" lbank="1" prog="43"/>
+ <Patch name="Dutch" hbank="0" lbank="1" prog="44"/>
+ <Patch name="ElectroK" hbank="0" lbank="1" prog="45"/>
+ <Patch name="ElekSHot" hbank="0" lbank="1" prog="46"/>
+ <Patch name="Far Noiz" hbank="0" lbank="1" prog="47"/>
+ <Patch name="Fluf808K" hbank="0" lbank="1" prog="48"/>
+ <Patch name="FootKick" hbank="0" lbank="1" prog="49"/>
+ <Patch name="Formant" hbank="0" lbank="1" prog="50"/>
+ <Patch name="GlideKick" hbank="0" lbank="1" prog="51"/>
+ <Patch name="Gummm808" hbank="0" lbank="1" prog="52"/>
+ <Patch name="HardAttk" hbank="0" lbank="1" prog="53"/>
+ <Patch name="HerzShlg" hbank="0" lbank="1" prog="54"/>
+ <Patch name="HiLo" hbank="0" lbank="1" prog="55"/>
+ <Patch name="HipKick" hbank="0" lbank="1" prog="56"/>
+ <Patch name="House 1" hbank="0" lbank="1" prog="57"/>
+ <Patch name="HouseKic" hbank="0" lbank="1" prog="58"/>
+ <Patch name="Knall:-)" hbank="0" lbank="1" prog="59"/>
+ <Patch name="LAVAsse" hbank="0" lbank="1" prog="60"/>
+ <Patch name="Litf-Off" hbank="0" lbank="1" prog="61"/>
+ <Patch name="LogiKick" hbank="0" lbank="1" prog="62"/>
+ <Patch name="Medium" hbank="0" lbank="1" prog="63"/>
+ <Patch name="MelloKck" hbank="0" lbank="1" prog="64"/>
+ <Patch name="Mod 909" hbank="0" lbank="1" prog="65"/>
+ <Patch name="ModoKic" hbank="0" lbank="1" prog="66"/>
+ <Patch name="Modular" hbank="0" lbank="1" prog="67"/>
+ <Patch name="NL-Kick" hbank="0" lbank="1" prog="68"/>
+ <Patch name="NormalKc" hbank="0" lbank="1" prog="69"/>
+ <Patch name="Pitch" hbank="0" lbank="1" prog="70"/>
+ <Patch name="Pitcher" hbank="0" lbank="1" prog="71"/>
+ <Patch name="PitchKic" hbank="0" lbank="1" prog="72"/>
+ <Patch name="PlusKlas" hbank="0" lbank="1" prog="73"/>
+ <Patch name="Pump909" hbank="0" lbank="1" prog="74"/>
+ <Patch name="Pump It" hbank="0" lbank="1" prog="75"/>
+ <Patch name="PunchKic" hbank="0" lbank="1" prog="76"/>
+ <Patch name="RaffKick" hbank="0" lbank="1" prog="77"/>
+ <Patch name="Rat!" hbank="0" lbank="1" prog="78"/>
+ <Patch name="ReverbKk" hbank="0" lbank="1" prog="79"/>
+ <Patch name="RockKick" hbank="0" lbank="1" prog="80"/>
+ <Patch name="SFX-Kick" hbank="0" lbank="1" prog="81"/>
+ <Patch name="SlamKick" hbank="0" lbank="1" prog="82"/>
+ <Patch name="Special" hbank="0" lbank="1" prog="83"/>
+ <Patch name="Splatt" hbank="0" lbank="1" prog="84"/>
+ <Patch name="Staub" hbank="0" lbank="1" prog="85"/>
+ <Patch name="Staubig" hbank="0" lbank="1" prog="86"/>
+ <Patch name="Stopped" hbank="0" lbank="1" prog="87"/>
+ <Patch name="SuperDry" hbank="0" lbank="1" prog="88"/>
+ <Patch name="TAmmBD" hbank="0" lbank="1" prog="89"/>
+ <Patch name="The Grid" hbank="0" lbank="1" prog="90"/>
+ <Patch name="ToneKick" hbank="0" lbank="1" prog="91"/>
+ <Patch name="Ultra!" hbank="0" lbank="1" prog="92"/>
+ <Patch name="UltraDry" hbank="0" lbank="1" prog="93"/>
+ <Patch name="WetKick" hbank="0" lbank="1" prog="94"/>
+ <Patch name="ZannZ BD" hbank="0" lbank="1" prog="95"/>
+ <Patch name="ZunchKic" hbank="0" lbank="1" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Snare">
+ <Patch name="16 Toms" hbank="0" lbank="1" prog="1"/>
+ <Patch name="1943" hbank="0" lbank="1" prog="2"/>
+ <Patch name="606 Snar" hbank="0" lbank="1" prog="3"/>
+ <Patch name="606 Snar2" hbank="0" lbank="1" prog="4"/>
+ <Patch name="808" hbank="0" lbank="1" prog="5"/>
+ <Patch name="808 2" hbank="0" lbank="1" prog="6"/>
+ <Patch name="808 3" hbank="0" lbank="1" prog="7"/>
+ <Patch name="808Bottm" hbank="0" lbank="1" prog="8"/>
+ <Patch name="808HiPas" hbank="0" lbank="1" prog="9"/>
+ <Patch name="808HiPas2" hbank="0" lbank="1" prog="10"/>
+ <Patch name="808 HP" hbank="0" lbank="1" prog="11"/>
+ <Patch name="808Snapp" hbank="0" lbank="1" prog="12"/>
+ <Patch name="808Snar1" hbank="0" lbank="1" prog="13"/>
+ <Patch name="808Snar2" hbank="0" lbank="1" prog="14"/>
+ <Patch name="808Snar3" hbank="0" lbank="1" prog="15"/>
+ <Patch name="808Snar4" hbank="0" lbank="1" prog="16"/>
+ <Patch name="808Velo" hbank="0" lbank="1" prog="17"/>
+ <Patch name="909" hbank="0" lbank="1" prog="18"/>
+ <Patch name="909 2" hbank="0" lbank="1" prog="19"/>
+ <Patch name="909 High" hbank="0" lbank="1" prog="20"/>
+ <Patch name="909 High2" hbank="0" lbank="1" prog="21"/>
+ <Patch name="909 Snd" hbank="0" lbank="1" prog="22"/>
+ <Patch name="BadTuned" hbank="0" lbank="1" prog="23"/>
+ <Patch name="Blood" hbank="0" lbank="1" prog="24"/>
+ <Patch name="Carpt909" hbank="0" lbank="1" prog="25"/>
+ <Patch name="Clear" hbank="0" lbank="1" prog="26"/>
+ <Patch name="ClickSnar" hbank="0" lbank="1" prog="27"/>
+ <Patch name="DanceSnd" hbank="0" lbank="1" prog="28"/>
+ <Patch name="DB Snare" hbank="0" lbank="1" prog="29"/>
+ <Patch name="DeepTras" hbank="0" lbank="1" prog="30"/>
+ <Patch name="Delayed" hbank="0" lbank="1" prog="31"/>
+ <Patch name="Delayed2" hbank="0" lbank="1" prog="32"/>
+ <Patch name="DeppTund" hbank="0" lbank="1" prog="33"/>
+ <Patch name="DirtySht" hbank="0" lbank="1" prog="34"/>
+ <Patch name="Djacka" hbank="0" lbank="1" prog="35"/>
+ <Patch name="DrMnBsSD" hbank="0" lbank="1" prog="36"/>
+ <Patch name="DropjeBB" hbank="0" lbank="1" prog="37"/>
+ <Patch name="DryDrop" hbank="0" lbank="1" prog="38"/>
+ <Patch name="DryLow" hbank="0" lbank="1" prog="39"/>
+ <Patch name="Effector" hbank="0" lbank="1" prog="40"/>
+ <Patch name="Egon Hal" hbank="0" lbank="1" prog="41"/>
+ <Patch name="Electro" hbank="0" lbank="1" prog="42"/>
+ <Patch name="Eventtic" hbank="0" lbank="1" prog="43"/>
+ <Patch name="Fats" hbank="0" lbank="1" prog="44"/>
+ <Patch name="FilterVL" hbank="0" lbank="1" prog="45"/>
+ <Patch name="Hallsnd" hbank="0" lbank="1" prog="46"/>
+ <Patch name="HighEnd" hbank="0" lbank="1" prog="47"/>
+ <Patch name="HipHopSD" hbank="0" lbank="1" prog="48"/>
+ <Patch name="HipSnare" hbank="0" lbank="1" prog="49"/>
+ <Patch name="Hi Snare" hbank="0" lbank="1" prog="50"/>
+ <Patch name="HouseSnd" hbank="0" lbank="1" prog="51"/>
+ <Patch name="HughSnar" hbank="0" lbank="1" prog="52"/>
+ <Patch name="Hypasnar" hbank="0" lbank="1" prog="53"/>
+ <Patch name="Linn1" hbank="0" lbank="1" prog="54"/>
+ <Patch name="LinnReso" hbank="0" lbank="1" prog="55"/>
+ <Patch name="LoFiSnar" hbank="0" lbank="1" prog="56"/>
+ <Patch name="MAchine" hbank="0" lbank="1" prog="57"/>
+ <Patch name="MelloSnd" hbank="0" lbank="1" prog="58"/>
+ <Patch name="MellwSnd" hbank="0" lbank="1" prog="59"/>
+ <Patch name="MetaLead" hbank="0" lbank="1" prog="60"/>
+ <Patch name="Modulate" hbank="0" lbank="1" prog="61"/>
+ <Patch name="MouthSnd" hbank="0" lbank="1" prog="62"/>
+ <Patch name="MS202 Sna" hbank="0" lbank="1" prog="63"/>
+ <Patch name="NatSnare" hbank="0" lbank="1" prog="64"/>
+ <Patch name="NoFiSnar" hbank="0" lbank="1" prog="65"/>
+ <Patch name="NoiseMod" hbank="0" lbank="1" prog="66"/>
+ <Patch name="NoiseSnr" hbank="0" lbank="1" prog="67"/>
+ <Patch name="Noise Snr" hbank="0" lbank="1" prog="68"/>
+ <Patch name="Noizclap" hbank="0" lbank="1" prog="69"/>
+ <Patch name="Noname" hbank="0" lbank="1" prog="70"/>
+ <Patch name="NoSense" hbank="0" lbank="1" prog="71"/>
+ <Patch name="Pactroni" hbank="0" lbank="1" prog="72"/>
+ <Patch name="PCM Sna1" hbank="0" lbank="1" prog="73"/>
+ <Patch name="Pitch EG" hbank="0" lbank="1" prog="74"/>
+ <Patch name="Pitch EG2" hbank="0" lbank="1" prog="75"/>
+ <Patch name="QM-High" hbank="0" lbank="1" prog="76"/>
+ <Patch name="RachgSnd" hbank="0" lbank="1" prog="77"/>
+ <Patch name="Reso 909" hbank="0" lbank="1" prog="78"/>
+ <Patch name="Reverb" hbank="0" lbank="1" prog="79"/>
+ <Patch name="Reverse" hbank="0" lbank="1" prog="80"/>
+ <Patch name="RollSnar" hbank="0" lbank="1" prog="81"/>
+ <Patch name="Scratch!" hbank="0" lbank="1" prog="82"/>
+ <Patch name="Short909" hbank="0" lbank="1" prog="83"/>
+ <Patch name="ShortBig" hbank="0" lbank="1" prog="84"/>
+ <Patch name="ShortSnr" hbank="0" lbank="1" prog="85"/>
+ <Patch name="Shorty" hbank="0" lbank="1" prog="86"/>
+ <Patch name="Short@@YY" hbank="0" lbank="1" prog="87"/>
+ <Patch name="SniffSnd" hbank="0" lbank="1" prog="88"/>
+ <Patch name="SnipSnar" hbank="0" lbank="1" prog="89"/>
+ <Patch name="Stopped" hbank="0" lbank="1" prog="90"/>
+ <Patch name="Sweepeea" hbank="0" lbank="1" prog="91"/>
+ <Patch name="Ticker" hbank="0" lbank="1" prog="92"/>
+ <Patch name="UniVox" hbank="0" lbank="1" prog="93"/>
+ <Patch name="Velo 909" hbank="0" lbank="1" prog="94"/>
+ <Patch name="WindSnar" hbank="0" lbank="1" prog="95"/>
+ <Patch name="WirbelXT" hbank="0" lbank="1" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="HH">
+ <Patch name="808 ??" hbank="0" lbank="1" prog="1"/>
+ <Patch name="808 1" hbank="0" lbank="1" prog="2"/>
+ <Patch name="808 2" hbank="0" lbank="1" prog="3"/>
+ <Patch name="808Tickl" hbank="0" lbank="1" prog="4"/>
+ <Patch name="8.8 mono" hbank="0" lbank="1" prog="5"/>
+ <Patch name="909**_**" hbank="0" lbank="1" prog="6"/>
+ <Patch name="909CutEG" hbank="0" lbank="1" prog="7"/>
+ <Patch name="909 Hatt" hbank="0" lbank="1" prog="8"/>
+ <Patch name="909 High" hbank="0" lbank="1" prog="9"/>
+ <Patch name="909HP+" hbank="0" lbank="1" prog="10"/>
+ <Patch name="909itsch" hbank="0" lbank="1" prog="11"/>
+ <Patch name="909 mono" hbank="0" lbank="1" prog="12"/>
+ <Patch name="Agressiv" hbank="0" lbank="1" prog="13"/>
+ <Patch name="Aua-HH" hbank="0" lbank="1" prog="14"/>
+ <Patch name="Bad 808" hbank="0" lbank="1" prog="15"/>
+ <Patch name="Blech" hbank="0" lbank="1" prog="16"/>
+ <Patch name="Blech HH" hbank="0" lbank="1" prog="17"/>
+ <Patch name="Bubbles" hbank="0" lbank="1" prog="18"/>
+ <Patch name="ButterHH" hbank="0" lbank="1" prog="19"/>
+ <Patch name="CR-808" hbank="0" lbank="1" prog="20"/>
+ <Patch name="Crackle" hbank="0" lbank="1" prog="21"/>
+ <Patch name="DanceHH" hbank="0" lbank="1" prog="22"/>
+ <Patch name="Delay808" hbank="0" lbank="1" prog="23"/>
+ <Patch name="DirtEcho" hbank="0" lbank="1" prog="24"/>
+ <Patch name="Dirty" hbank="0" lbank="1" prog="25"/>
+ <Patch name="DirtyHH1" hbank="0" lbank="1" prog="26"/>
+ <Patch name="DJ Best" hbank="0" lbank="1" prog="27"/>
+ <Patch name="DynaLinn" hbank="0" lbank="1" prog="28"/>
+ <Patch name="Glitsch" hbank="0" lbank="1" prog="29"/>
+ <Patch name="God-HH" hbank="0" lbank="1" prog="30"/>
+ <Patch name="Gogo" hbank="0" lbank="1" prog="31"/>
+ <Patch name="Gongs" hbank="0" lbank="1" prog="32"/>
+ <Patch name="HAT LFO1" hbank="0" lbank="1" prog="33"/>
+ <Patch name="HAT LFO2" hbank="0" lbank="1" prog="34"/>
+ <Patch name="HAT mono" hbank="0" lbank="1" prog="35"/>
+ <Patch name="HighEcho" hbank="0" lbank="1" prog="36"/>
+ <Patch name="Higher" hbank="0" lbank="1" prog="37"/>
+ <Patch name="HighPas1" hbank="0" lbank="1" prog="38"/>
+ <Patch name="HighPas2" hbank="0" lbank="1" prog="39"/>
+ <Patch name="HighPas3" hbank="0" lbank="1" prog="40"/>
+ <Patch name="HighPas4" hbank="0" lbank="1" prog="41"/>
+ <Patch name="HipHop" hbank="0" lbank="1" prog="42"/>
+ <Patch name="Indust" hbank="0" lbank="1" prog="43"/>
+ <Patch name="JazHat" hbank="0" lbank="1" prog="44"/>
+ <Patch name="LFO" hbank="0" lbank="1" prog="45"/>
+ <Patch name="LFO-Hatt" hbank="0" lbank="1" prog="46"/>
+ <Patch name="Lofihat" hbank="0" lbank="1" prog="47"/>
+ <Patch name="LongMS" hbank="0" lbank="1" prog="48"/>
+ <Patch name="LusChig" hbank="0" lbank="1" prog="49"/>
+ <Patch name="Mad HH" hbank="0" lbank="1" prog="50"/>
+ <Patch name="MayBeam" hbank="0" lbank="1" prog="51"/>
+ <Patch name="Mean HH" hbank="0" lbank="1" prog="52"/>
+ <Patch name="MesserHH" hbank="0" lbank="1" prog="53"/>
+ <Patch name="Metalic" hbank="0" lbank="1" prog="54"/>
+ <Patch name="Modulat2" hbank="0" lbank="1" prog="55"/>
+ <Patch name="Modulat2" hbank="0" lbank="1" prog="56"/>
+ <Patch name="Modulate" hbank="0" lbank="1" prog="57"/>
+ <Patch name="Modulate" hbank="0" lbank="1" prog="58"/>
+ <Patch name="Modulate" hbank="0" lbank="1" prog="59"/>
+ <Patch name="ModulSnd" hbank="0" lbank="1" prog="60"/>
+ <Patch name="MS 20" hbank="0" lbank="1" prog="61"/>
+ <Patch name="MS 20Pit" hbank="0" lbank="1" prog="62"/>
+ <Patch name="NatHi-Hat" hbank="0" lbank="1" prog="63"/>
+ <Patch name="Natura" hbank="0" lbank="1" prog="64"/>
+ <Patch name="Naturell" hbank="0" lbank="1" prog="65"/>
+ <Patch name="NHi-Hat-1" hbank="0" lbank="1" prog="66"/>
+ <Patch name="NoizeHat" hbank="0" lbank="1" prog="67"/>
+ <Patch name="Norm-909" hbank="0" lbank="1" prog="68"/>
+ <Patch name="PingPong" hbank="0" lbank="1" prog="69"/>
+ <Patch name="PitchChg" hbank="0" lbank="1" prog="70"/>
+ <Patch name="Pitch EG" hbank="0" lbank="1" prog="71"/>
+ <Patch name="Pitch EG2" hbank="0" lbank="1" prog="72"/>
+ <Patch name="Pitch EG3" hbank="0" lbank="1" prog="73"/>
+ <Patch name="Pitch EG4" hbank="0" lbank="1" prog="74"/>
+ <Patch name="Q Wa Dis" hbank="0" lbank="1" prog="75"/>
+ <Patch name="Remix" hbank="0" lbank="1" prog="76"/>
+ <Patch name="Resonance" hbank="0" lbank="1" prog="77"/>
+ <Patch name="RockHiHat" hbank="0" lbank="1" prog="78"/>
+ <Patch name="RoqueY" hbank="0" lbank="1" prog="79"/>
+ <Patch name="Short 808" hbank="0" lbank="1" prog="80"/>
+ <Patch name="Short909" hbank="0" lbank="1" prog="81"/>
+ <Patch name="ShortTac" hbank="0" lbank="1" prog="82"/>
+ <Patch name="Shorty" hbank="0" lbank="1" prog="83"/>
+ <Patch name="Sirius" hbank="0" lbank="1" prog="84"/>
+ <Patch name="Slitsch" hbank="0" lbank="1" prog="85"/>
+ <Patch name="SwiftHH" hbank="0" lbank="1" prog="86"/>
+ <Patch name="TakeThis" hbank="0" lbank="1" prog="87"/>
+ <Patch name="Thor" hbank="0" lbank="1" prog="88"/>
+ <Patch name="TinHiHat" hbank="0" lbank="1" prog="89"/>
+ <Patch name="Tricky" hbank="0" lbank="1" prog="90"/>
+ <Patch name="Unikat" hbank="0" lbank="1" prog="91"/>
+ <Patch name="UniVox" hbank="0" lbank="1" prog="92"/>
+ <Patch name="VinylHat" hbank="0" lbank="1" prog="93"/>
+ <Patch name="WolligHH" hbank="0" lbank="1" prog="94"/>
+ <Patch name="Worm-909" hbank="0" lbank="1" prog="95"/>
+ <Patch name="Zippi" hbank="0" lbank="1" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Perc">
+ <Patch name="808 Set" hbank="0" lbank="1" prog="1"/>
+ <Patch name="Aborigin" hbank="0" lbank="1" prog="2"/>
+ <Patch name="Animals?" hbank="0" lbank="1" prog="3"/>
+ <Patch name="ARPEG-DR" hbank="0" lbank="1" prog="4"/>
+ <Patch name="Attack1" hbank="0" lbank="1" prog="5"/>
+ <Patch name="Attack2" hbank="0" lbank="1" prog="6"/>
+ <Patch name="Be Fxed" hbank="0" lbank="1" prog="7"/>
+ <Patch name="Bingo" hbank="0" lbank="1" prog="8"/>
+ <Patch name="ClapClap" hbank="0" lbank="1" prog="9"/>
+ <Patch name="Condensed" hbank="0" lbank="1" prog="10"/>
+ <Patch name="Cut This" hbank="0" lbank="1" prog="11"/>
+ <Patch name="Daft1Set" hbank="0" lbank="1" prog="12"/>
+ <Patch name="Daft2Set" hbank="0" lbank="1" prog="13"/>
+ <Patch name="Dance" hbank="0" lbank="1" prog="14"/>
+ <Patch name="DanceSet" hbank="0" lbank="1" prog="15"/>
+ <Patch name="DeepNois" hbank="0" lbank="1" prog="16"/>
+ <Patch name="Distor2" hbank="0" lbank="1" prog="17"/>
+ <Patch name="Distorto" hbank="0" lbank="1" prog="18"/>
+ <Patch name="DrmBass1" hbank="0" lbank="1" prog="19"/>
+ <Patch name="E-D-S" hbank="0" lbank="1" prog="20"/>
+ <Patch name="Effekted" hbank="0" lbank="1" prog="21"/>
+ <Patch name="Electro" hbank="0" lbank="1" prog="22"/>
+ <Patch name="Electro2" hbank="0" lbank="1" prog="23"/>
+ <Patch name="FatePerc" hbank="0" lbank="1" prog="24"/>
+ <Patch name="FilterIt" hbank="0" lbank="1" prog="25"/>
+ <Patch name="GatePerc" hbank="0" lbank="1" prog="26"/>
+ <Patch name="Good For" hbank="0" lbank="1" prog="27"/>
+ <Patch name="GrooveDT" hbank="0" lbank="1" prog="28"/>
+ <Patch name="Groov Fx" hbank="0" lbank="1" prog="29"/>
+ <Patch name="Groov HP" hbank="0" lbank="1" prog="30"/>
+ <Patch name="GroovSet" hbank="0" lbank="1" prog="31"/>
+ <Patch name="GroovSet" hbank="0" lbank="1" prog="32"/>
+ <Patch name="Help!" hbank="0" lbank="1" prog="33"/>
+ <Patch name="HiFreq 8" hbank="0" lbank="1" prog="34"/>
+ <Patch name="HiFreq 9" hbank="0" lbank="1" prog="35"/>
+ <Patch name="HopSet1" hbank="0" lbank="1" prog="36"/>
+ <Patch name="HouseSet" hbank="0" lbank="1" prog="37"/>
+ <Patch name="Lambura" hbank="0" lbank="1" prog="38"/>
+ <Patch name="Latin" hbank="0" lbank="1" prog="39"/>
+ <Patch name="Linn 2" hbank="0" lbank="1" prog="40"/>
+ <Patch name="LinnShrt" hbank="0" lbank="1" prog="41"/>
+ <Patch name="Lirasis" hbank="0" lbank="1" prog="42"/>
+ <Patch name="LoFi 1" hbank="0" lbank="1" prog="43"/>
+ <Patch name="LoFi 2" hbank="0" lbank="1" prog="44"/>
+ <Patch name="Lofi 808" hbank="0" lbank="1" prog="45"/>
+ <Patch name="Lofi 909" hbank="0" lbank="1" prog="46"/>
+ <Patch name="LoFiPerc" hbank="0" lbank="1" prog="47"/>
+ <Patch name="L-R-U-D" hbank="0" lbank="1" prog="48"/>
+ <Patch name="MAD-Perc" hbank="0" lbank="1" prog="49"/>
+ <Patch name="MahaMono" hbank="0" lbank="1" prog="50"/>
+ <Patch name="Maharish" hbank="0" lbank="1" prog="51"/>
+ <Patch name="Mega-Pec" hbank="0" lbank="1" prog="52"/>
+ <Patch name="Mfc" hbank="0" lbank="1" prog="53"/>
+ <Patch name="MindBurn" hbank="0" lbank="1" prog="54"/>
+ <Patch name="Minn Set" hbank="0" lbank="1" prog="55"/>
+ <Patch name="Modul" hbank="0" lbank="1" prog="56"/>
+ <Patch name="MoreFun!" hbank="0" lbank="1" prog="57"/>
+ <Patch name="Muffelig" hbank="0" lbank="1" prog="58"/>
+ <Patch name="Newkits" hbank="0" lbank="1" prog="59"/>
+ <Patch name="Percus1" hbank="0" lbank="1" prog="60"/>
+ <Patch name="Perfect" hbank="0" lbank="1" prog="61"/>
+ <Patch name="Pitched" hbank="0" lbank="1" prog="62"/>
+ <Patch name="Pitching" hbank="0" lbank="1" prog="63"/>
+ <Patch name="Plucked" hbank="0" lbank="1" prog="64"/>
+ <Patch name="Poona" hbank="0" lbank="1" prog="65"/>
+ <Patch name="Power" hbank="0" lbank="1" prog="66"/>
+ <Patch name="PowerTom" hbank="0" lbank="1" prog="67"/>
+ <Patch name="Quasar" hbank="0" lbank="1" prog="68"/>
+ <Patch name="ResPerc" hbank="0" lbank="1" prog="69"/>
+ <Patch name="Reverse" hbank="0" lbank="1" prog="70"/>
+ <Patch name="SatePerc" hbank="0" lbank="1" prog="71"/>
+ <Patch name="Shatter" hbank="0" lbank="1" prog="72"/>
+ <Patch name="Short808" hbank="0" lbank="1" prog="73"/>
+ <Patch name="Short909" hbank="0" lbank="1" prog="74"/>
+ <Patch name="Short HP" hbank="0" lbank="1" prog="75"/>
+ <Patch name="ShortSet" hbank="0" lbank="1" prog="76"/>
+ <Patch name="Sir^ius" hbank="0" lbank="1" prog="77"/>
+ <Patch name="SomeFunk" hbank="0" lbank="1" prog="78"/>
+ <Patch name="Sritshi" hbank="0" lbank="1" prog="79"/>
+ <Patch name="Standard" hbank="0" lbank="1" prog="80"/>
+ <Patch name="Strange" hbank="0" lbank="1" prog="81"/>
+ <Patch name="SuperFX1" hbank="0" lbank="1" prog="82"/>
+ <Patch name="SuperFX2" hbank="0" lbank="1" prog="83"/>
+ <Patch name="SuperFX3" hbank="0" lbank="1" prog="84"/>
+ <Patch name="Swishi" hbank="0" lbank="1" prog="85"/>
+ <Patch name="Tablatoi" hbank="0" lbank="1" prog="86"/>
+ <Patch name="Tanz-Set" hbank="0" lbank="1" prog="87"/>
+ <Patch name="TotalCon" hbank="0" lbank="1" prog="88"/>
+ <Patch name="Vari FX1" hbank="0" lbank="1" prog="89"/>
+ <Patch name="Vari FX2" hbank="0" lbank="1" prog="90"/>
+ <Patch name="Waves" hbank="0" lbank="1" prog="91"/>
+ <Patch name="WestBam" hbank="0" lbank="1" prog="92"/>
+ <Patch name="WierdPec" hbank="0" lbank="1" prog="93"/>
+ <Patch name="X_Trans" hbank="0" lbank="1" prog="94"/>
+ <Patch name="Y_Transf" hbank="0" lbank="1" prog="95"/>
+ <Patch name="ZipZap" hbank="0" lbank="1" prog="96"/>
+ </PatchGroup>
+<PatchGroup name="Bass">
+ <Patch name="202 Bass" hbank="0" lbank="3" prog="14"/>
+ <Patch name="Acid Mod" hbank="0" lbank="3" prog="3"/>
+ <Patch name="*Atom*" hbank="0" lbank="1" prog="10"/>
+ <Patch name="CoolBass" hbank="0" lbank="1" prog="3"/>
+ <Patch name="DA Hool" hbank="0" lbank="2" prog="10"/>
+ <Patch name="D+BASS" hbank="0" lbank="3" prog="4"/>
+ <Patch name="DeepBass" hbank="0" lbank="1" prog="16"/>
+ <Patch name="DeepHaus" hbank="0" lbank="3" prog="7"/>
+ <Patch name="DiscoBas" hbank="0" lbank="1" prog="9"/>
+ <Patch name="DiscoBas2" hbank="0" lbank="2" prog="9"/>
+ <Patch name="FatBoy" hbank="0" lbank="1" prog="6"/>
+ <Patch name="FatBoy2" hbank="0" lbank="2" prog="6"/>
+ <Patch name="Filter!" hbank="0" lbank="1" prog="14"/>
+ <Patch name="Filter!2" hbank="0" lbank="2" prog="14"/>
+ <Patch name="Frogger" hbank="0" lbank="3" prog="9"/>
+ <Patch name="Funk-Man" hbank="0" lbank="3" prog="8"/>
+ <Patch name="Funky HK" hbank="0" lbank="3" prog="13"/>
+ <Patch name="Glider" hbank="0" lbank="3" prog="2"/>
+ <Patch name="Junky CP" hbank="0" lbank="3" prog="1"/>
+ <Patch name="MKS-50Bs" hbank="0" lbank="3" prog="11"/>
+ <Patch name="Mod2bass" hbank="0" lbank="1" prog="5"/>
+ <Patch name="Mod&amp;apos Bass" hbank="0" lbank="3" prog="16"/>
+ <Patch name="Mod Bass" hbank="0" lbank="2" prog="5"/>
+ <Patch name="ModuloBX" hbank="0" lbank="1" prog="4"/>
+ <Patch name="ModuloBX2" hbank="0" lbank="2" prog="4"/>
+ <Patch name="OffBeat" hbank="0" lbank="3" prog="6"/>
+ <Patch name="PercBass" hbank="0" lbank="2" prog="8"/>
+ <Patch name="PercSine" hbank="0" lbank="1" prog="11"/>
+ <Patch name="PhaseBas" hbank="0" lbank="3" prog="10"/>
+ <Patch name="PizzaBss" hbank="0" lbank="3" prog="5"/>
+ <Patch name="ResoBass" hbank="0" lbank="1" prog="12"/>
+ <Patch name="SineBass" hbank="0" lbank="1" prog="2"/>
+ <Patch name="SineBass2" hbank="0" lbank="2" prog="11"/>
+ <Patch name="SlfoBass" hbank="0" lbank="3" prog="15"/>
+ <Patch name="Stopped" hbank="0" lbank="2" prog="16"/>
+ <Patch name="TranceBS" hbank="0" lbank="1" prog="13"/>
+ <Patch name="TranceBS2" hbank="0" lbank="2" prog="13"/>
+ <Patch name="Trancer" hbank="0" lbank="2" prog="2"/>
+ <Patch name="UmtraBas" hbank="0" lbank="3" prog="12"/>
+ <Patch name="WaveBass" hbank="0" lbank="1" prog="15"/>
+ <Patch name="WaveBass2" hbank="0" lbank="2" prog="15"/>
+ <Patch name="Wet&amp;amp Bass" hbank="0" lbank="1" prog="8"/>
+ <Patch name="Wetbass" hbank="0" lbank="2" prog="1"/>
+ <Patch name="WetBass2" hbank="0" lbank="1" prog="1"/>
+ <Patch name="WetFiltr" hbank="0" lbank="2" prog="3"/>
+ <Patch name="Wetlong" hbank="0" lbank="1" prog="7"/>
+ <Patch name="WetLong2" hbank="0" lbank="2" prog="7"/>
+ <Patch name="XenoBass" hbank="0" lbank="2" prog="12"/>
+</PatchGroup>
+<PatchGroup name="Dirty bass">
+ <Patch name="303like" hbank="0" lbank="3" prog="26"/>
+ <Patch name="303Velo" hbank="0" lbank="1" prog="21"/>
+ <Patch name="303Velo2" hbank="0" lbank="2" prog="21"/>
+ <Patch name="309 Bass" hbank="0" lbank="3" prog="32"/>
+ <Patch name="80s Bass" hbank="0" lbank="3" prog="22"/>
+ <Patch name="80s Lead" hbank="0" lbank="3" prog="19"/>
+ <Patch name="Bass ???" hbank="0" lbank="3" prog="30"/>
+ <Patch name="Bassline" hbank="0" lbank="3" prog="31"/>
+ <Patch name="Bi-Bass" hbank="0" lbank="3" prog="24"/>
+ <Patch name="Bitterfd" hbank="0" lbank="2" prog="27"/>
+ <Patch name="Board" hbank="0" lbank="3" prog="20"/>
+ <Patch name="Classic!" hbank="0" lbank="2" prog="31"/>
+ <Patch name="Classic2" hbank="0" lbank="2" prog="32"/>
+ <Patch name="Detune!" hbank="0" lbank="2" prog="22"/>
+ <Patch name="DirSynt" hbank="0" lbank="1" prog="17"/>
+ <Patch name="Dirt309" hbank="0" lbank="1" prog="18"/>
+ <Patch name="DownSwep" hbank="0" lbank="2" prog="17"/>
+ <Patch name="Eraser" hbank="0" lbank="2" prog="28"/>
+ <Patch name="FatDirty" hbank="0" lbank="1" prog="27"/>
+ <Patch name="Forte" hbank="0" lbank="2" prog="18"/>
+ <Patch name="GuitarBs" hbank="0" lbank="1" prog="25"/>
+ <Patch name="Instable" hbank="0" lbank="3" prog="29"/>
+ <Patch name="IntroBas" hbank="0" lbank="2" prog="30"/>
+ <Patch name="JenY?" hbank="0" lbank="2" prog="26"/>
+ <Patch name="LuckyBas" hbank="0" lbank="1" prog="19"/>
+ <Patch name="LuckyBas2" hbank="0" lbank="2" prog="19"/>
+ <Patch name="Masse X" hbank="0" lbank="3" prog="25"/>
+ <Patch name="MixBass" hbank="0" lbank="2" prog="23"/>
+ <Patch name="MixOct" hbank="0" lbank="1" prog="23"/>
+ <Patch name="NovaBass" hbank="0" lbank="3" prog="18"/>
+ <Patch name="Pad-Bass" hbank="0" lbank="3" prog="23"/>
+ <Patch name="PPG-Bass" hbank="0" lbank="1" prog="30"/>
+ <Patch name="REBIRTH" hbank="0" lbank="3" prog="27"/>
+ <Patch name="REBIRTH2" hbank="0" lbank="3" prog="21"/>
+ <Patch name="SaverSex" hbank="0" lbank="1" prog="20"/>
+ <Patch name="SaverSex2" hbank="0" lbank="2" prog="20"/>
+ <Patch name="SawBass" hbank="0" lbank="1" prog="29"/>
+ <Patch name="S-Faster" hbank="0" lbank="1" prog="26"/>
+ <Patch name="ShortBas" hbank="0" lbank="1" prog="24"/>
+ <Patch name="ShortBas2" hbank="0" lbank="2" prog="24"/>
+ <Patch name="SH-X" hbank="0" lbank="3" prog="17"/>
+ <Patch name="StringBS" hbank="0" lbank="1" prog="32"/>
+ <Patch name="Synced!" hbank="0" lbank="2" prog="25"/>
+ <Patch name="VeryDirt" hbank="0" lbank="1" prog="22"/>
+ <Patch name="VoiceBas" hbank="0" lbank="2" prog="29"/>
+ <Patch name="WeichBas" hbank="0" lbank="3" prog="28"/>
+ <Patch name="WetMoog!" hbank="0" lbank="1" prog="31"/>
+ <Patch name="ZapBass" hbank="0" lbank="1" prog="28"/>
+</PatchGroup>
+<PatchGroup name="Pad">
+ <Patch name="AntiSwep" hbank="0" lbank="2" prog="37"/>
+ <Patch name="Big Pad" hbank="0" lbank="1" prog="48"/>
+ <Patch name="BigWsep" hbank="0" lbank="2" prog="39"/>
+ <Patch name="BrightPd" hbank="0" lbank="1" prog="35"/>
+ <Patch name="Chor" hbank="0" lbank="1" prog="37"/>
+ <Patch name="Deep Pad" hbank="0" lbank="1" prog="46"/>
+ <Patch name="Deep Pad2" hbank="0" lbank="3" prog="39"/>
+ <Patch name="D.I.Auge" hbank="0" lbank="3" prog="38"/>
+ <Patch name="Digichor" hbank="0" lbank="3" prog="48"/>
+ <Patch name="Digistrx" hbank="0" lbank="3" prog="47"/>
+ <Patch name="DunePad1" hbank="0" lbank="3" prog="42"/>
+ <Patch name="Enfrhmki" hbank="0" lbank="3" prog="36"/>
+ <Patch name="FastStrg" hbank="0" lbank="2" prog="44"/>
+ <Patch name="Fat Pad" hbank="0" lbank="2" prog="34"/>
+ <Patch name="Feel It!" hbank="0" lbank="3" prog="43"/>
+ <Patch name="GateSynt" hbank="0" lbank="1" prog="43"/>
+ <Patch name="HighSwep" hbank="0" lbank="2" prog="38"/>
+ <Patch name="HighSynth" hbank="0" lbank="2" prog="45"/>
+ <Patch name="Histring" hbank="0" lbank="3" prog="45"/>
+ <Patch name="Hohner" hbank="0" lbank="2" prog="36"/>
+ <Patch name="Jet Pad1" hbank="0" lbank="1" prog="47"/>
+ <Patch name="Juno-Org" hbank="0" lbank="3" prog="44"/>
+ <Patch name="Koyaa" hbank="0" lbank="3" prog="34"/>
+ <Patch name="Long Pad" hbank="0" lbank="2" prog="46"/>
+ <Patch name="LushSpec" hbank="0" lbank="2" prog="35"/>
+ <Patch name="Mellotrn" hbank="0" lbank="1" prog="38"/>
+ <Patch name="Mod Pad1" hbank="0" lbank="2" prog="47"/>
+ <Patch name="Orchestr" hbank="0" lbank="1" prog="45"/>
+ <Patch name="PolySynt" hbank="0" lbank="2" prog="43"/>
+ <Patch name="Portella" hbank="0" lbank="3" prog="46"/>
+ <Patch name="Rel-Pad1" hbank="0" lbank="3" prog="37"/>
+ <Patch name="Rising" hbank="0" lbank="2" prog="48"/>
+ <Patch name="Sentinel" hbank="0" lbank="1" prog="39"/>
+ <Patch name="SeqPad" hbank="0" lbank="2" prog="41"/>
+ <Patch name="Shimmer" hbank="0" lbank="1" prog="36"/>
+ <Patch name="Shine On" hbank="0" lbank="1" prog="33"/>
+ <Patch name="Spectral" hbank="0" lbank="1" prog="42"/>
+ <Patch name="Stoffich" hbank="0" lbank="3" prog="40"/>
+ <Patch name="StrangeP" hbank="0" lbank="3" prog="35"/>
+ <Patch name="Strings" hbank="0" lbank="2" prog="40"/>
+ <Patch name="Swallow" hbank="0" lbank="1" prog="44"/>
+ <Patch name="Tangram" hbank="0" lbank="2" prog="42"/>
+ <Patch name="TecPad" hbank="0" lbank="1" prog="41"/>
+ <Patch name="TubularP" hbank="0" lbank="1" prog="40"/>
+ <Patch name="VS Chor" hbank="0" lbank="1" prog="34"/>
+ <Patch name="VS Spect" hbank="0" lbank="2" prog="33"/>
+ <Patch name="WunderPD" hbank="0" lbank="3" prog="41"/>
+ <Patch name="X-Voice" hbank="0" lbank="3" prog="33"/>
+</PatchGroup>
+<PatchGroup name="Plucked">
+ <Patch name="AmbienT" hbank="0" lbank="1" prog="62"/>
+ <Patch name="Ancient" hbank="0" lbank="2" prog="64"/>
+ <Patch name="Banjojo" hbank="0" lbank="3" prog="62"/>
+ <Patch name="Bells" hbank="0" lbank="2" prog="51"/>
+ <Patch name="Block C" hbank="0" lbank="1" prog="55"/>
+ <Patch name="Bottom" hbank="0" lbank="1" prog="59"/>
+ <Patch name="ChorSeq!" hbank="0" lbank="1" prog="63"/>
+ <Patch name="Clavinet" hbank="0" lbank="2" prog="50"/>
+ <Patch name="Clavity" hbank="0" lbank="3" prog="64"/>
+ <Patch name="Clavonit" hbank="0" lbank="1" prog="50"/>
+ <Patch name="DigiDrm" hbank="0" lbank="3" prog="55"/>
+ <Patch name="Edgard F" hbank="0" lbank="2" prog="49"/>
+ <Patch name="Floating" hbank="0" lbank="1" prog="51"/>
+ <Patch name="HouseOg1" hbank="0" lbank="3" prog="53"/>
+ <Patch name="HouseOg2" hbank="0" lbank="3" prog="54"/>
+ <Patch name="InMotio2" hbank="0" lbank="2" prog="62"/>
+ <Patch name="InMotion" hbank="0" lbank="2" prog="61"/>
+ <Patch name="Into Spa" hbank="0" lbank="1" prog="61"/>
+ <Patch name="Kraftwer" hbank="0" lbank="2" prog="59"/>
+ <Patch name="MadSeq" hbank="0" lbank="3" prog="52"/>
+ <Patch name="Mellows" hbank="0" lbank="3" prog="51"/>
+ <Patch name="ModPluck" hbank="0" lbank="2" prog="54"/>
+ <Patch name="ModSequa" hbank="0" lbank="1" prog="54"/>
+ <Patch name="OrbitPno" hbank="0" lbank="3" prog="57"/>
+ <Patch name="|P|C|B|" hbank="0" lbank="2" prog="55"/>
+ <Patch name="PercoChd" hbank="0" lbank="2" prog="56"/>
+ <Patch name="Perco" hbank="0" lbank="1" prog="56"/>
+ <Patch name="Percular" hbank="0" lbank="1" prog="58"/>
+ <Patch name="Percuter" hbank="0" lbank="2" prog="58"/>
+ <Patch name="Picant" hbank="0" lbank="1" prog="49"/>
+ <Patch name="PKS-50Bs" hbank="0" lbank="3" prog="60"/>
+ <Patch name="Psycorg2" hbank="0" lbank="3" prog="49"/>
+ <Patch name="Psycorg" hbank="0" lbank="3" prog="63"/>
+ <Patch name="Quintchd" hbank="0" lbank="1" prog="52"/>
+ <Patch name="SequBell" hbank="0" lbank="3" prog="61"/>
+ <Patch name="Sequent" hbank="0" lbank="2" prog="52"/>
+ <Patch name="Sequenz" hbank="0" lbank="2" prog="60"/>
+ <Patch name="Sequenz2" hbank="0" lbank="2" prog="63"/>
+ <Patch name="SequenzC" hbank="0" lbank="1" prog="60"/>
+ <Patch name="Shibuya" hbank="0" lbank="3" prog="56"/>
+ <Patch name="ShortSeq" hbank="0" lbank="1" prog="53"/>
+ <Patch name="SoftSeq1" hbank="0" lbank="2" prog="53"/>
+ <Patch name="Spectacu" hbank="0" lbank="1" prog="57"/>
+ <Patch name="Spectral" hbank="0" lbank="2" prog="57"/>
+ <Patch name="&lt;SynthiY" hbank="0" lbank="1" prog="64"/>
+ <Patch name="Tadavoc" hbank="0" lbank="3" prog="50"/>
+ <Patch name="Trancer" hbank="0" lbank="3" prog="58"/>
+ <Patch name="WaterSyn" hbank="0" lbank="3" prog="59"/>
+</PatchGroup>
+<PatchGroup name="Solo">
+ <Patch name="AngelVox" hbank="0" lbank="3" prog="71"/>
+ <Patch name="Arpeggi2" hbank="0" lbank="1" prog="68"/>
+ <Patch name="Arpeggio" hbank="0" lbank="1" prog="65"/>
+ <Patch name="Bigsolo" hbank="0" lbank="3" prog="66"/>
+ <Patch name="Cosmic B" hbank="0" lbank="3" prog="69"/>
+ <Patch name="DA Cool" hbank="0" lbank="2" prog="73"/>
+ <Patch name="DirtySol" hbank="0" lbank="2" prog="80"/>
+ <Patch name="Eastbam" hbank="0" lbank="2" prog="70"/>
+ <Patch name="Eastbam2" hbank="0" lbank="2" prog="71"/>
+ <Patch name="Eastbam3" hbank="0" lbank="2" prog="72"/>
+ <Patch name="FatSolo" hbank="0" lbank="2" prog="78"/>
+ <Patch name="FilterS1" hbank="0" lbank="1" prog="74"/>
+ <Patch name="Filt Sol" hbank="0" lbank="2" prog="66"/>
+ <Patch name="Flange" hbank="0" lbank="3" prog="78"/>
+ <Patch name="FluteSol" hbank="0" lbank="2" prog="67"/>
+ <Patch name="FSOLseq" hbank="0" lbank="3" prog="76"/>
+ <Patch name="Goa!" hbank="0" lbank="1" prog="67"/>
+ <Patch name="HardSeq!" hbank="0" lbank="1" prog="70"/>
+ <Patch name="HighSeq1" hbank="0" lbank="2" prog="74"/>
+ <Patch name="HighSeq2" hbank="0" lbank="1" prog="75"/>
+ <Patch name="Hot Fat" hbank="0" lbank="3" prog="67"/>
+ <Patch name="LuckySol" hbank="0" lbank="2" prog="65"/>
+ <Patch name="MindSolo" hbank="0" lbank="3" prog="74"/>
+ <Patch name="OrbiBell" hbank="0" lbank="3" prog="73"/>
+ <Patch name="OrcSolo" hbank="0" lbank="1" prog="79"/>
+ <Patch name="OrcSolo2" hbank="0" lbank="2" prog="79"/>
+ <Patch name="Orgelton" hbank="0" lbank="1" prog="78"/>
+ <Patch name="PulsSolo" hbank="0" lbank="1" prog="80"/>
+ <Patch name="Quintor" hbank="0" lbank="3" prog="77"/>
+ <Patch name="ResoLead" hbank="0" lbank="3" prog="79"/>
+ <Patch name="SequenzA" hbank="0" lbank="1" prog="72"/>
+ <Patch name="SinSequ" hbank="0" lbank="2" prog="68"/>
+ <Patch name="Solojam" hbank="0" lbank="3" prog="65"/>
+ <Patch name="Syncer" hbank="0" lbank="1" prog="77"/>
+ <Patch name="Syncer2" hbank="0" lbank="2" prog="77"/>
+ <Patch name="Syncline" hbank="0" lbank="3" prog="80"/>
+ <Patch name="SyncSynt" hbank="0" lbank="1" prog="71"/>
+ <Patch name="SynSequ" hbank="0" lbank="2" prog="75"/>
+ <Patch name="Techno!" hbank="0" lbank="1" prog="73"/>
+ <Patch name="TechSeq" hbank="0" lbank="3" prog="72"/>
+ <Patch name="TecnoSyn" hbank="0" lbank="3" prog="70"/>
+ <Patch name="Trancer 3" hbank="0" lbank="1" prog="69"/>
+ <Patch name="Trancer" hbank="0" lbank="1" prog="66"/>
+ <Patch name="UpperCls" hbank="0" lbank="1" prog="76"/>
+ <Patch name="UpSync" hbank="0" lbank="2" prog="76"/>
+ <Patch name="VCASolo" hbank="0" lbank="3" prog="75"/>
+ <Patch name="Westwoop" hbank="0" lbank="2" prog="69"/>
+ <Patch name="Wheel it" hbank="0" lbank="3" prog="68"/>
+</PatchGroup>
+<PatchGroup name="Effect">
+ <Patch name="Atmo" hbank="0" lbank="1" prog="90"/>
+ <Patch name="Atmo2" hbank="0" lbank="2" prog="90"/>
+ <Patch name="AtomOrc" hbank="0" lbank="1" prog="92"/>
+ <Patch name="AtomOrc2" hbank="0" lbank="2" prog="92"/>
+ <Patch name="Crazykor" hbank="0" lbank="3" prog="84"/>
+ <Patch name="Cult" hbank="0" lbank="1" prog="96"/>
+ <Patch name="Dreams" hbank="0" lbank="1" prog="91"/>
+ <Patch name="Dreams2" hbank="0" lbank="2" prog="91"/>
+ <Patch name="Effector" hbank="0" lbank="2" prog="81"/>
+ <Patch name="Fat-Guit" hbank="0" lbank="3" prog="91"/>
+ <Patch name="FilterEG" hbank="0" lbank="3" prog="81"/>
+ <Patch name="Filter^!" hbank="0" lbank="1" prog="82"/>
+ <Patch name="Filter^!2" hbank="0" lbank="2" prog="82"/>
+ <Patch name="ForceMa" hbank="0" lbank="2" prog="93"/>
+ <Patch name="FSOLbell" hbank="0" lbank="3" prog="87"/>
+ <Patch name="Funky FX" hbank="0" lbank="3" prog="94"/>
+ <Patch name="FuturSir" hbank="0" lbank="2" prog="96"/>
+ <Patch name="FXPad" hbank="0" lbank="1" prog="86"/>
+ <Patch name="FXPad2" hbank="0" lbank="2" prog="86"/>
+ <Patch name="Galactic" hbank="0" lbank="3" prog="82"/>
+ <Patch name="GoaFix" hbank="0" lbank="3" prog="96"/>
+ <Patch name="GuitarBs" hbank="0" lbank="2" prog="87"/>
+ <Patch name="Kotzrobb" hbank="0" lbank="3" prog="83"/>
+ <Patch name="LFOitsch" hbank="0" lbank="3" prog="95"/>
+ <Patch name="LFO Noiz" hbank="0" lbank="3" prog="93"/>
+ <Patch name="LFO-Pad" hbank="0" lbank="3" prog="86"/>
+ <Patch name="LophoLFO" hbank="0" lbank="3" prog="89"/>
+ <Patch name="LushPad" hbank="0" lbank="1" prog="88"/>
+ <Patch name="LushPad2" hbank="0" lbank="2" prog="88"/>
+ <Patch name="Mello up" hbank="0" lbank="1" prog="95"/>
+ <Patch name="Mello up2" hbank="0" lbank="2" prog="95"/>
+ <Patch name="Organ 1" hbank="0" lbank="2" prog="84"/>
+ <Patch name="Pre Nat" hbank="0" lbank="1" prog="94"/>
+ <Patch name="Pre Nat2" hbank="0" lbank="2" prog="94"/>
+ <Patch name="Psychoa" hbank="0" lbank="1" prog="93"/>
+ <Patch name="Psychos*" hbank="0" lbank="1" prog="87"/>
+ <Patch name="RhythmFX" hbank="0" lbank="1" prog="89"/>
+ <Patch name="RythmFX" hbank="0" lbank="2" prog="89"/>
+ <Patch name="SpaceAmb" hbank="0" lbank="3" prog="90"/>
+ <Patch name="SpaceChr" hbank="0" lbank="3" prog="85"/>
+ <Patch name="Swallow" hbank="0" lbank="1" prog="85"/>
+ <Patch name="Swallow2" hbank="0" lbank="2" prog="85"/>
+ <Patch name="TinyDirt" hbank="0" lbank="1" prog="84"/>
+ <Patch name="UFO-Fly" hbank="0" lbank="3" prog="88"/>
+ <Patch name="UFOworld" hbank="0" lbank="3" prog="92"/>
+ <Patch name="VocoderC" hbank="0" lbank="1" prog="81"/>
+ <Patch name="Zipper" hbank="0" lbank="1" prog="83"/>
+ <Patch name="Zipper2" hbank="0" lbank="2" prog="83"/>
+</PatchGroup>
+ <!-- Controllers -->
+ <Controller name="1 Modulation wheel" type="Control" min="0" max="127" l="1"/>
+ <Controller name="2 Glide" type="Control" min="0" max="127" l="5"/>
+ <Controller name="3 Volume" type="Control" min="0" max="127" l="7"/>
+ <Controller name="4 Pan" type="Control" min="0" max="127" l="10"/>
+ <Controller name="5 VCA Level" type="Control" min="0" max="127" l="11"/>
+ <Controller name="6 Wave Macro" type="Control" min="0" max="127" l="12"/>
+ <Controller name="7 Octave Transpose" type="Control" min="0" max="127" l="13"/>
+ <Controller name="8 Detune" type="Control" min="0" max="24" l="14"/>
+ <Controller name="9 Input Overdrive" type="Control" min="0" max="127" l="15"/>
+ <Controller name="10 Filter Cutt Off" type="Control" min="0" max="127" l="16"/>
+ <Controller name="15 EG1 release" type="Control" min="0" max="127" l="21"/>
+ <Controller name="29 EG2 Release" type="Control" min="0" max="127" l="36"/>
+ <Controller name="11 Reso (QFactor)" type="Control" min="0" max="127" l="17"/>
+ <Controller name="12 EG1 Attack (VCA)" type="Control" min="0" max="127" l="18"/>
+ <Controller name="13 EG1 decay" type="Control" min="0" max="127" l="19"/>
+ <Controller name="14 EG1 Sustain" type="Control" min="0" max="127" l="20"/>
+ <Controller name="16 Keyboard Tracking" type="Control" min="0" max="127" l="22"/>
+ <Controller name="17 EG FC amount (env. mod)" type="Control" min="0" max="127" l="23"/>
+ <Controller name="18 Dyn FC Amount" type="Control" min="0" max="127" l="24"/>
+ <Controller name="19 Dyn VCA On/Off" type="Control" min="0" max="127" l="25"/>
+ <Controller name="20 LFO Depth" type="Control" min="0" max="127" l="26"/>
+ <Controller name="21 LFO Wave" type="Control" min="0" max="127" l="27"/>
+ <Controller name="22 LFO Rate" type="Control" min="0" max="10" l="28"/>
+ <Controller name="23 LFO Pitch" type="Control" min="0" max="127" l="29"/>
+ <Controller name="24 LFO VCF" type="Control" min="0" max="127" l="30"/>
+ <Controller name="25 LFO VCA" type="Control" min="0" max="127" l="31"/>
+ <Controller name="26 EG2 - attack (VCF)" type="Control" min="0" max="127" l="33"/>
+ <Controller name="27 EG2 Decay" type="Control" min="0" max="127" l="34"/>
+ <Controller name="28 EG2 sustain" type="Control" min="0" max="127" l="35"/>
+ <Controller name="30 EG3 attack (pitch)" type="Control" min="0" max="127" l="37"/>
+ <Controller name="31 EG3 Decay" type="Control" min="0" max="127" l="38"/>
+ <Controller name="32 EG3 pitch" type="Control" min="0" max="127" l="39"/>
+ <Controller name="33 pitchbend sensitivity" type="Control" min="0" max="127" l="40"/>
+ <Controller name="34 filtre (24db,12db...)" type="Control" min="0" max="2" l="41"/>
+ <Controller name="35 Hold Pedal" type="Control" min="0" max="127" l="64"/>
+ <Controller name="36 FX1 - reverb" type="Control" min="0" max="127" l="91"/>
+ <Controller name="37 FX2 delay" type="Control" min="0" max="127" l="93"/>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Roland-E28.idf b/muse_qt4_evolution/share/instruments/Roland-E28.idf
new file mode 100644
index 00000000..da93682f
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-E28.idf
@@ -0,0 +1,320 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland E-28">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Piano 1" hbank="0" lbank="0" prog="0"/>
+ <Patch name="Piano 1w" hbank="8" lbank="0" prog="0"/>
+ <Patch name="Piano 1d" hbank="16" lbank="0" prog="0"/>
+ <Patch name="Piano 2" hbank="0" lbank="0" prog="1"/>
+ <Patch name="Piano 2w" hbank="8" lbank="0" prog="1"/>
+ <Patch name="Piano 3" hbank="0" lbank="0" prog="2"/>
+ <Patch name="Piano 3w" hbank="8" lbank="0" prog="2"/>
+ <Patch name="Honky-tonk" hbank="0" lbank="0" prog="3"/>
+ <Patch name="Honky-tonk w" hbank="8" lbank="0" prog="3"/>
+ <Patch name="E.Piano 1" hbank="0" lbank="0" prog="4"/>
+ <Patch name="Detuned EP 1" hbank="8" lbank="0" prog="4"/>
+ <Patch name="E.Piano 1v" hbank="16" lbank="0" prog="4"/>
+ <Patch name="60's E.Piano" hbank="24" lbank="0" prog="4"/>
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5"/>
+ <Patch name="Detuned EP 2" hbank="8" lbank="0" prog="5"/>
+ <Patch name="E.Piano 2v" hbank="16" lbank="0" prog="5"/>
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Coupled Hps." hbank="8" lbank="0" prog="6"/>
+ <Patch name="Harpsi. w" hbank="16" lbank="0" prog="6"/>
+ <Patch name="Harpsi. o" hbank="24" lbank="0" prog="6"/>
+ <Patch name="Clav." hbank="0" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc">
+ <Patch name="Celesta" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Vibraphone" hbank="0" lbank="0" prog="11"/>
+ <Patch name="Vibraphone w" hbank="8" lbank="0" prog="11"/>
+ <Patch name="Marimba" hbank="0" lbank="0" prog="12"/>
+ <Patch name="Marimba w" hbank="8" lbank="0" prog="12"/>
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Tubular Bells" hbank="0" lbank="0" prog="14"/>
+ <Patch name="Church Bell" hbank="8" lbank="0" prog="14"/>
+ <Patch name="Carillon" hbank="9" lbank="0" prog="14"/>
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Organ 1" hbank="0" lbank="0" prog="16"/>
+ <Patch name="Detuned organ 1" hbank="8" lbank="0" prog="16"/>
+ <Patch name="60's organ 1" hbank="16" lbank="0" prog="16"/>
+ <Patch name="Organ 4" hbank="32" lbank="0" prog="16"/>
+ <Patch name="Organ 2" hbank="0" lbank="0" prog="17"/>
+ <Patch name="Detuned organ 2" hbank="8" lbank="0" prog="17"/>
+ <Patch name="Organ 5" hbank="32" lbank="0" prog="17"/>
+ <Patch name="Organ 3" hbank="0" lbank="0" prog="18"/>
+ <Patch name="Church Organ 1" hbank="0" lbank="0" prog="19"/>
+ <Patch name="Church Organ 2" hbank="8" lbank="0" prog="19"/>
+ <Patch name="Church Organ 3" hbank="16" lbank="0" prog="19"/>
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="20"/>
+ <Patch name="Accordion Fr" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Accordian It" hbank="8" lbank="0" prog="21"/>
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Bandoneon" hbank="0" lbank="0" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon-str Gtr" hbank="0" lbank="0" prog="24"/>
+ <Patch name="Ukulele" hbank="8" lbank="0" prog="24"/>
+ <Patch name="Nylon Gtr o" hbank="16" lbank="0" prog="24"/>
+ <Patch name="Nylon Gtr 2" hbank="32" lbank="0" prog="24"/>
+ <Patch name="Steel-str Gtr" hbank="0" lbank="0" prog="25"/>
+ <Patch name="12-string Gtr" hbank="8" lbank="0" prog="25"/>
+ <Patch name="Mandolin" hbank="16" lbank="0" prog="25"/>
+ <Patch name="Jazz Guitar" hbank="0" lbank="0" prog="26"/>
+ <Patch name="Hawaiian Gtr" hbank="8" lbank="0" prog="26"/>
+ <Patch name="Clean Guitar" hbank="0" lbank="0" prog="27"/>
+ <Patch name="Chorus Guitar" hbank="8" lbank="0" prog="27"/>
+ <Patch name="Muted Guitar" hbank="0" lbank="0" prog="28"/>
+ <Patch name="Funk Guitar" hbank="8" lbank="0" prog="28"/>
+ <Patch name="Funk Guitar 2" hbank="16" lbank="0" prog="28"/>
+ <Patch name="Overdrive Gtr" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Distortion Gtr" hbank="0" lbank="0" prog="30"/>
+ <Patch name="Feedback Gtr" hbank="8" lbank="0" prog="30"/>
+ <Patch name="Gtr. Harmonics" hbank="0" lbank="0" prog="31"/>
+ <Patch name="Gtr. Feedback" hbank="8" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" hbank="0" lbank="0" prog="32"/>
+ <Patch name="Fingered Bass" hbank="0" lbank="0" prog="33"/>
+ <Patch name="Picked Bass" hbank="0" lbank="0" prog="34"/>
+ <Patch name="Fretless Bass" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Slap Bass 1" hbank="0" lbank="0" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="0" lbank="0" prog="37"/>
+ <Patch name="Synth Bass 1" hbank="0" lbank="0" prog="38"/>
+ <Patch name="Synth Bass 101" hbank="1" lbank="0" prog="38"/>
+ <Patch name="Synth Bass 3" hbank="8" lbank="0" prog="38"/>
+ <Patch name="Synth Bass 2" hbank="0" lbank="0" prog="39"/>
+ <Patch name="Synth Bass 4" hbank="8" lbank="0" prog="39"/>
+ <Patch name="Rubber Bass" hbank="16" lbank="0" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings/Orch">
+ <Patch name="Violin" hbank="0" lbank="0" prog="40"/>
+ <Patch name="Slow violin" hbank="8" lbank="0" prog="40"/>
+ <Patch name="Viola" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Cello" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Tremolo Str." hbank="0" lbank="0" prog="44"/>
+ <Patch name="Pizzicato Str." hbank="0" lbank="0" prog="45"/>
+ <Patch name="Harp" hbank="0" lbank="0" prog="46"/>
+ <Patch name="Timpani" hbank="0" lbank="0" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings 1" hbank="0" lbank="0" prog="48"/>
+ <Patch name="Orchestra" hbank="8" lbank="0" prog="48"/>
+ <Patch name="Slow strings" hbank="0" lbank="0" prog="49"/>
+ <Patch name="Syn. Strings 1" hbank="0" lbank="0" prog="50"/>
+ <Patch name="Syn. Strings 3" hbank="8" lbank="0" prog="50"/>
+ <Patch name="Syn. Strings 2" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Choir Aahs" hbank="0" lbank="0" prog="52"/>
+ <Patch name="Choir Aahs 2" hbank="32" lbank="0" prog="52"/>
+ <Patch name="Voice Oohs" hbank="0" lbank="0" prog="53"/>
+ <Patch name="Synth Voice" hbank="0" lbank="0" prog="54"/>
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trombone" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Trombone 2" hbank="1" lbank="0" prog="57"/>
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58"/>
+ <Patch name="Muted Trumpet" hbank="0" lbank="0" prog="59"/>
+ <Patch name="French Horn" hbank="0" lbank="0" prog="60"/>
+ <Patch name="French Horn 2" hbank="1" lbank="0" prog="60"/>
+ <Patch name="Brass Section 1" hbank="0" lbank="0" prog="61"/>
+ <Patch name="Brass Section 2" hbank="8" lbank="0" prog="61"/>
+ <Patch name="Synth Brass 1" hbank="0" lbank="0" prog="62"/>
+ <Patch name="Synth Brass 3" hbank="8" lbank="0" prog="62"/>
+ <Patch name="Analog Brass 1" hbank="16" lbank="0" prog="62"/>
+ <Patch name="Synth Brass 2" hbank="0" lbank="0" prog="63"/>
+ <Patch name="Synth Brass 4" hbank="8" lbank="0" prog="63"/>
+ <Patch name="Analog Brass 2" hbank="16" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Sax" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65"/>
+ <Patch name="Tenor Sax" hbank="0" lbank="0" prog="66"/>
+ <Patch name="Baritone Sax" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68"/>
+ <Patch name="English Horn" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" hbank="0" lbank="0" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" hbank="0" lbank="0" prog="75"/>
+ <Patch name="Blown Bottle" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" hbank="0" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Square" hbank="1" lbank="0" prog="80"/>
+ <Patch name="Sine wave" hbank="8" lbank="0" prog="80"/>
+ <Patch name="Saw Wave" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Saw" hbank="1" lbank="0" prog="81"/>
+ <Patch name="Doctor Solo" hbank="8" lbank="0" prog="81"/>
+ <Patch name="Synth Calliope" hbank="0" lbank="0" prog="82"/>
+ <Patch name="Chiffer Lead" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Charang" hbank="0" lbank="0" prog="84"/>
+ <Patch name="Solo Vox" hbank="0" lbank="0" prog="85"/>
+ <Patch name="Fifth Saw Wave" hbank="0" lbank="0" prog="86"/>
+ <Patch name="Bass and Lead" hbank="0" lbank="0" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="Fantasia" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89"/>
+ <Patch name="Polysynth Pad" hbank="0" lbank="0" prog="90"/>
+ <Patch name="Space voice" hbank="0" lbank="0" prog="91"/>
+ <Patch name="Bowed Pad" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Metallic Pad" hbank="0" lbank="0" prog="93"/>
+ <Patch name="Halo Pad" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" hbank="0" lbank="0" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="Ice Rain" hbank="0" lbank="0" prog="96"/>
+ <Patch name="Soundtrack" hbank="0" lbank="0" prog="97"/>
+ <Patch name="Crystal" hbank="0" lbank="0" prog="98"/>
+ <Patch name="Synth Mallet" hbank="1" lbank="0" prog="98"/>
+ <Patch name="Atmosphere" hbank="0" lbank="0" prog="99"/>
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100"/>
+ <Patch name="Goblins" hbank="0" lbank="0" prog="101"/>
+ <Patch name="Echo drops" hbank="0" lbank="0" prog="102"/>
+ <Patch name="Echo bell" hbank="1" lbank="0" prog="102"/>
+ <Patch name="Echo pan" hbank="2" lbank="0" prog="102"/>
+ <Patch name="Star Theme" hbank="0" lbank="0" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar" hbank="0" lbank="0" prog="104"/>
+ <Patch name="Sitar 2" hbank="1" lbank="0" prog="104"/>
+ <Patch name="Banjo" hbank="0" lbank="0" prog="105"/>
+ <Patch name="Shamisen" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Koto" hbank="0" lbank="0" prog="107"/>
+ <Patch name="Taisho Koto" hbank="8" lbank="0" prog="107"/>
+ <Patch name="Kalimba" hbank="0" lbank="0" prog="108"/>
+ <Patch name="Bagpipe" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" hbank="0" lbank="0" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinkle Bell" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Steel Drums" hbank="0" lbank="0" prog="114"/>
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115"/>
+ <Patch name="Castanets" hbank="8" lbank="0" prog="115"/>
+ <Patch name="Taiko Drum" hbank="0" lbank="0" prog="116"/>
+ <Patch name="Concert BD" hbank="8" lbank="0" prog="116"/>
+ <Patch name="Melodic Drum 1" hbank="0" lbank="0" prog="117"/>
+ <Patch name="Melodic Drum 2" hbank="8" lbank="0" prog="117"/>
+ <Patch name="Synth Drum" hbank="0" lbank="0" prog="118"/>
+ <Patch name="808 Tom" hbank="8" lbank="0" prog="118"/>
+ <Patch name="Elec Perc" hbank="9" lbank="0" prog="119"/>
+ <Patch name="Rev. Cymbal" hbank="0" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="Gtr Fret Noise" hbank="0" lbank="0" prog="120"/>
+ <Patch name="Gtr Cut Noise" hbank="1" lbank="0" prog="120"/>
+ <Patch name="String slap" hbank="2" lbank="0" prog="120"/>
+ <Patch name="Breath Noise" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Flute key click" hbank="1" lbank="0" prog="121"/>
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Rain" hbank="1" lbank="0" prog="122"/>
+ <Patch name="Thunder" hbank="2" lbank="0" prog="122"/>
+ <Patch name="Wind" hbank="3" lbank="0" prog="122"/>
+ <Patch name="Stream" hbank="4" lbank="0" prog="122"/>
+ <Patch name="Bubble" hbank="5" lbank="0" prog="122"/>
+ <Patch name="Bird" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Dog" hbank="1" lbank="0" prog="123"/>
+ <Patch name="Horse-Gallop" hbank="2" lbank="0" prog="123"/>
+ <Patch name="Bird 2" hbank="3" lbank="0" prog="123"/>
+ <Patch name="Telephone 1" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Telephone 2" hbank="1" lbank="0" prog="124"/>
+ <Patch name="Door creaking" hbank="2" lbank="0" prog="124"/>
+ <Patch name="Door" hbank="3" lbank="0" prog="124"/>
+ <Patch name="Scratch" hbank="4" lbank="0" prog="124"/>
+ <Patch name="Helicopter" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Car engine" hbank="1" lbank="0" prog="125"/>
+ <Patch name="Car stopping" hbank="2" lbank="0" prog="125"/>
+ <Patch name="Car pass" hbank="3" lbank="0" prog="125"/>
+ <Patch name="Car crash" hbank="4" lbank="0" prog="125"/>
+ <Patch name="Siren" hbank="5" lbank="0" prog="125"/>
+ <Patch name="Train" hbank="6" lbank="0" prog="125"/>
+ <Patch name="Jet plane" hbank="7" lbank="0" prog="125"/>
+ <Patch name="Starship" hbank="8" lbank="0" prog="125"/>
+ <Patch name="Burst noise" hbank="9" lbank="0" prog="125"/>
+ <Patch name="Applause" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Screaming" hbank="2" lbank="0" prog="126"/>
+ <Patch name="Punch" hbank="3" lbank="0" prog="126"/>
+ <Patch name="Heart beat" hbank="4" lbank="0" prog="126"/>
+ <Patch name="Footsteps" hbank="5" lbank="0" prog="126"/>
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127"/>
+ <Patch name="Machine gun" hbank="1" lbank="0" prog="127"/>
+ <Patch name="Laser gun" hbank="2" lbank="0" prog="127"/>
+ <Patch name="Explosion" hbank="3" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard" hbank="0" lbank="0" prog="0"/>
+ <Patch name="Room" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Power" hbank="0" lbank="0" prog="16"/>
+ <Patch name="Electric" hbank="0" lbank="0" prog="24"/>
+ <Patch name="808" hbank="0" lbank="0" prog="25"/>
+ <Patch name="Jazz" hbank="0" lbank="0" prog="32"/>
+ <Patch name="Brush" hbank="0" lbank="0" prog="40"/>
+ <Patch name="Orchestra" hbank="0" lbank="0" prog="48"/>
+ <Patch name="SFX" hbank="0" lbank="0" prog="56"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="0x01" />
+ <Controller name="PortamentoTime" type="Control" l="0x05" />
+ <Controller name="MainVolume" type="Control" l="0x07" />
+ <Controller name="Pan" type="Control" l="0x0a" />
+ <Controller name="Expression" type="Control" l="0x0b" />
+ <Controller name="Sustain" type="Control" l="0x40" />
+ <Controller name="Portamento" type="Control" l="0x41" />
+ <Controller name="Sostenuto" type="Control" l="0x42" />
+ <Controller name="SoftPedal" type="Control" l="0x43" />
+ <Controller name="PortamentoControl" type="Control" l="0x54" />
+ <Controller name="Effect1Depth" type="Control" l="0x5b" />
+ <Controller name="Effect3Depth" type="Control" l="0x5d" />
+ <Controller name="AllSoundsOff" type="Control" l="0x78" min="0" max="0"/>
+ <Controller name="ResetAllController" type="Control" l="0x79" min="0" max="0"/>
+ <Controller name="AllNotesOff" type="Control" l="0x7b" min="0" max="0"/>
+ <Controller name="Omni off" type="Control" l="0x7c" min="0" max="0"/>
+ <Controller name="Mono" type="Control" l="0x7e" min="0" max="0"/>
+ <Controller name="Poly" type="Control" l="0x7f" min="0" max="0"/>
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+ <Controller name="CourseTuning" type="RPN" l="2" min="-24" max="24" />
+ <Controller name="RPN null" type="RPN" h="0x7f" l="0x7f" min="0" max="0" />
+
+ <!-- NPN's -->
+ <Controller name="VibratoRate" type="NRPN" h="0x01" l="0x08" />
+ <Controller name="VibratoDepth" type="NRPN" h="0x01" l="0x09" />
+ <Controller name="VibratoDelay" type="NRPN" h="0x01" l="0x0a" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="0x01" l="0x20" />
+ <Controller name="FilterResonance" type="NRPN" h="0x01" l="0x21" />
+ <Controller name="AttackRate" type="NRPN" h="0x01" l="0x63" />
+ <Controller name="DecayRate" type="NRPN" h="0x01" l="0x64" />
+ <Controller name="ReleaseRate" type="NRPN" h="0x01" l="0x66" />
+ <Controller name="DrumPitchCoarseTune" type="NRPN" h="0x18" l="pitch" />
+ <Controller name="DrumLevel" type="NRPN" h="0x1a" l="pitch" />
+ <Controller name="DrumPanpot" type="NRPN" h="0x1c" l="pitch" />
+ <Controller name="DrumReverbSend" type="NRPN" h="0x1d" l="pitch" />
+ <Controller name="DrumChorusSend" type="NRPN" h="0x1e" l="pitch" />
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/Roland-JV-1010-All.idf b/muse_qt4_evolution/share/instruments/Roland-JV-1010-All.idf
new file mode 100644
index 00000000..7fe65137
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-JV-1010-All.idf
@@ -0,0 +1,1502 @@
+<?xml version="1.0" encoding="utf-8"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland JV-1010 All">
+ <Init>
+ </Init>
+ <PatchGroup name="Patches_Acoustic Piano">
+ <Patch name="St.Concert" hbank="84" lbank="0" prog="0"/>
+ <Patch name="9ft.Grand 1" hbank="84" lbank="0" prog="1"/>
+ <Patch name="9ft.Grand 2" hbank="84" lbank="0" prog="2"/>
+ <Patch name="Euro Classic" hbank="84" lbank="0" prog="3"/>
+ <Patch name="DEMO Piano1" hbank="84" lbank="1" prog="102"/>
+ <Patch name="DEMO Piano2" hbank="84" lbank="1" prog="103"/>
+ <Patch name="64voicePiano" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Bright Piano" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Classique" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Nice Piano" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Piano Thang" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Power Grand" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Piano 1" hbank="81" lbank="3" prog="0"/>
+ <Patch name="Piano 2" hbank="81" lbank="3" prog="1"/>
+ <Patch name="Piano 3" hbank="81" lbank="3" prog="2"/>
+ <Patch name="Compress Pno" hbank="84" lbank="0" prog="5"/>
+ <Patch name="Honky-tonk" hbank="81" lbank="3" prog="3"/>
+ <Patch name="Echo Piano" hbank="81" lbank="4" prog="0"/>
+ <Patch name="Upright Pno" hbank="81" lbank="4" prog="1"/>
+ <Patch name="St.Pno &amp; Str" hbank="84" lbank="0" prog="4"/>
+ <Patch name="PianoStrings" hbank="81" lbank="0" prog="11"/>
+ <Patch name="DEMO PnoVox" hbank="84" lbank="1" prog="104"/>
+ <Patch name="LA Session" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Piano Blend" hbank="81" lbank="0" prog="9"/>
+ <Patch name="Water Piano" hbank="84" lbank="0" prog="7"/>
+ <Patch name="RD-1000" hbank="81" lbank="4" prog="2"/>
+ <Patch name="MIDIed Grand" hbank="81" lbank="0" prog="8"/>
+ <Patch name="E.Grand" hbank="81" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Piano">
+ <Patch name="SA Rhodes 1" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Stiky Rhodes" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Dig Rhodes" hbank="81" lbank="0" prog="18"/>
+ <Patch name="SA Rhodes 2" hbank="81" lbank="0" prog="16"/>
+ <Patch name="E.Piano 1" hbank="81" lbank="3" prog="4"/>
+ <Patch name="S.A.E.P." hbank="81" lbank="0" prog="14"/>
+ <Patch name="MK-80 Rhodes" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Players EP" hbank="81" lbank="4" prog="3"/>
+ <Patch name="Rhodes Mix" hbank="81" lbank="0" prog="21"/>
+ <Patch name="Octa Rhodes1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Octa Rhodes2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Waterhodes" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Tremo Rhodes" hbank="81" lbank="0" prog="23"/>
+ <Patch name="PsychoRhodes" hbank="81" lbank="0" prog="22"/>
+ <Patch name="MK-80 Phaser" hbank="81" lbank="0" prog="25"/>
+ <Patch name="E.Piano 2" hbank="81" lbank="3" prog="5"/>
+ <Patch name="Delicate EP" hbank="81" lbank="0" prog="26"/>
+ <Patch name="FM BellPiano" hbank="81" lbank="4" prog="8"/>
+ <Patch name="West Coast" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Mr.Mellow" hbank="81" lbank="0" prog="31"/>
+ <Patch name="JV Rhodes+" hbank="81" lbank="0" prog="29"/>
+ <Patch name="EP+Mod Pad" hbank="81" lbank="0" prog="30"/>
+ <Patch name="D-50 Rhodes" hbank="81" lbank="4" prog="4"/>
+ <Patch name="Innocent EP" hbank="81" lbank="4" prog="5"/>
+ <Patch name="Echo Rhodes" hbank="81" lbank="4" prog="6"/>
+ <Patch name="See-Thru EP" hbank="81" lbank="4" prog="7"/>
+ <Patch name="Ring E.Piano" hbank="81" lbank="4" prog="9"/>
+ <Patch name="Stack Rhodes" hbank="84" lbank="0" prog="9"/>
+ <Patch name="Nylon EPiano" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Nylon Rhodes" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Vibra Rhodes" hbank="84" lbank="0" prog="8"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Keyboards">
+ <Patch name="Comp Clav" hbank="81" lbank="0" prog="32"/>
+ <Patch name="Clav." hbank="81" lbank="3" prog="7"/>
+ <Patch name="Chorus Clav" hbank="81" lbank="0" prog="38"/>
+ <Patch name="Clavicembalo" hbank="81" lbank="0" prog="41"/>
+ <Patch name="Klavinet" hbank="81" lbank="0" prog="33"/>
+ <Patch name="Metal Clav" hbank="81" lbank="0" prog="44"/>
+ <Patch name="Harpsy Clav" hbank="81" lbank="4" prog="16"/>
+ <Patch name="Winger Clav" hbank="81" lbank="0" prog="34"/>
+ <Patch name="Phaze Clav 1" hbank="81" lbank="0" prog="35"/>
+ <Patch name="Phaze Clav 2" hbank="81" lbank="0" prog="36"/>
+ <Patch name="Phuzz Clav" hbank="81" lbank="0" prog="37"/>
+ <Patch name="PieceOfChee" hbank="81" lbank="4" prog="15"/>
+ <Patch name="Claviduck" hbank="81" lbank="0" prog="39"/>
+ <Patch name="Velo-Rez Clv" hbank="81" lbank="0" prog="40"/>
+ <Patch name="Analog Clav1" hbank="81" lbank="0" prog="42"/>
+ <Patch name="Analog Clav2" hbank="81" lbank="0" prog="43"/>
+ <Patch name="Celesta" hbank="81" lbank="3" prog="8"/>
+ <Patch name="Harpsichord" hbank="81" lbank="3" prog="6"/>
+ <Patch name="Harpsichoir" hbank="84" lbank="1" prog="12"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bell, Bell Pad">
+ <Patch name="Pretty Bells" hbank="81" lbank="0" prog="87"/>
+ <Patch name="Wave Bells" hbank="81" lbank="0" prog="83"/>
+ <Patch name="Music Bells" hbank="81" lbank="0" prog="86"/>
+ <Patch name="Beauty Bells" hbank="81" lbank="0" prog="85"/>
+ <Patch name="Tria Bells" hbank="81" lbank="0" prog="84"/>
+ <Patch name="Crystal" hbank="81" lbank="3" prog="98"/>
+ <Patch name="Tinkle Bell" hbank="81" lbank="3" prog="112"/>
+ <Patch name="Ethno Metals" hbank="81" lbank="0" prog="95"/>
+ <Patch name="Glockenspiel" hbank="81" lbank="3" prog="9"/>
+ <Patch name="Childlike" hbank="81" lbank="0" prog="80"/>
+ <Patch name="Music Box" hbank="81" lbank="0" prog="81"/>
+ <Patch name="Music Box" hbank="81" lbank="3" prog="10"/>
+ <Patch name="Toy Box" hbank="81" lbank="0" prog="82"/>
+ <Patch name="Square Keys" hbank="81" lbank="0" prog="79"/>
+ <Patch name="Vibrolater" hbank="84" lbank="0" prog="113"/>
+ <Patch name="Tubular-bell" hbank="81" lbank="3" prog="14"/>
+ <Patch name="Wide Tubular" hbank="81" lbank="0" prog="89"/>
+ <Patch name="Belfry Chime" hbank="81" lbank="4" prog="21"/>
+ <Patch name="Stacc.Heaven" hbank="81" lbank="4" prog="22"/>
+ <Patch name="D-50 Stack" hbank="81" lbank="0" prog="70"/>
+ <Patch name="Fantasia JV" hbank="81" lbank="0" prog="71"/>
+ <Patch name="Jimmy Dee" hbank="81" lbank="0" prog="72"/>
+ <Patch name="Holiday Cheer" hbank="81" lbank="4" prog="18"/>
+ <Patch name="Morning Lite" hbank="81" lbank="4" prog="19"/>
+ <Patch name="Heavenals" hbank="81" lbank="0" prog="73"/>
+ <Patch name="2.2 Bell Pad" hbank="81" lbank="4" prog="23"/>
+ <Patch name="Mallet Pad" hbank="81" lbank="0" prog="74"/>
+ <Patch name="JD-800 Nomad" hbank="84" lbank="0" prog="112"/>
+ <Patch name="Huff N Stuff" hbank="81" lbank="0" prog="75"/>
+ <Patch name="BellVox 1080" hbank="81" lbank="0" prog="77"/>
+ <Patch name="Celestial" hbank="84" lbank="0" prog="110"/>
+ <Patch name="Fantasy Vox" hbank="81" lbank="0" prog="78"/>
+ <Patch name="Heavenly Eko" hbank="84" lbank="0" prog="111"/>
+ <Patch name="Tarlia" hbank="84" lbank="0" prog="119"/>
+ <Patch name="MartianChime" hbank="84" lbank="0" prog="114"/>
+ <Patch name="Hammer Bell" hbank="81" lbank="1" prog="60"/>
+ <Patch name="Big Wet Blip" hbank="84" lbank="0" prog="115"/>
+ <Patch name="Prefab Chime" hbank="81" lbank="4" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Mallet">
+ <Patch name="Warm Vibes" hbank="81" lbank="0" prog="91"/>
+ <Patch name="SA Vibe" hbank="84" lbank="1" prog="92"/>
+ <Patch name="Vibraphone" hbank="81" lbank="3" prog="11"/>
+ <Patch name="VSw Vibrafon" hbank="84" lbank="1" prog="91"/>
+ <Patch name="Rich Vibes" hbank="84" lbank="1" prog="93"/>
+ <Patch name="AmbienceVibe" hbank="81" lbank="0" prog="90"/>
+ <Patch name="SpaceGamelan" hbank="84" lbank="1" prog="94"/>
+ <Patch name="Toy Vibe" hbank="84" lbank="1" prog="95"/>
+ <Patch name="Exotic Velo" hbank="81" lbank="4" prog="17"/>
+ <Patch name="Dyna Marimba" hbank="81" lbank="0" prog="92"/>
+ <Patch name="Bass Marimba" hbank="81" lbank="0" prog="93"/>
+ <Patch name="Marimba" hbank="81" lbank="3" prog="12"/>
+ <Patch name="Nomad Perc" hbank="81" lbank="0" prog="94"/>
+ <Patch name="Xylophone" hbank="81" lbank="3" prog="13"/>
+ <Patch name="Steel Drums" hbank="81" lbank="0" prog="98"/>
+ <Patch name="Steel Drums" hbank="81" lbank="3" prog="114"/>
+ <Patch name="Islands Mlt" hbank="81" lbank="0" prog="96"/>
+ <Patch name="Steelin Key" hbank="81" lbank="0" prog="97"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric and Church Organ">
+ <Patch name="Full Stops" hbank="81" lbank="0" prog="45"/>
+ <Patch name="Roller Spin" hbank="81" lbank="0" prog="52"/>
+ <Patch name="Gospel Spin" hbank="81" lbank="0" prog="51"/>
+ <Patch name="Ballad B" hbank="81" lbank="0" prog="46"/>
+ <Patch name="Mellow Bars" hbank="81" lbank="0" prog="47"/>
+ <Patch name="Organ 1" hbank="81" lbank="3" prog="16"/>
+ <Patch name="Organ 2" hbank="81" lbank="3" prog="17"/>
+ <Patch name="AugerMentive" hbank="81" lbank="0" prog="48"/>
+ <Patch name="Perky B" hbank="81" lbank="0" prog="49"/>
+ <Patch name="The Big Spin" hbank="81" lbank="0" prog="50"/>
+ <Patch name="Rocker Spin" hbank="81" lbank="0" prog="53"/>
+ <Patch name="Tone Wh.Solo" hbank="81" lbank="0" prog="54"/>
+ <Patch name="Dirty Organ" hbank="81" lbank="4" prog="11"/>
+ <Patch name="Organ 3" hbank="81" lbank="3" prog="18"/>
+ <Patch name="B3 Filth" hbank="84" lbank="1" prog="89"/>
+ <Patch name="Purple Spin" hbank="81" lbank="0" prog="55"/>
+ <Patch name="60's LeadORG" hbank="81" lbank="0" prog="56"/>
+ <Patch name="Assalt Organ" hbank="81" lbank="0" prog="57"/>
+ <Patch name="D-50 Organ" hbank="81" lbank="0" prog="58"/>
+ <Patch name="Surf's Up" hbank="81" lbank="4" prog="12"/>
+ <Patch name="Soap Opera" hbank="81" lbank="4" prog="10"/>
+ <Patch name="Phazed Organ" hbank="84" lbank="1" prog="90"/>
+ <Patch name="Cathedral" hbank="81" lbank="0" prog="59"/>
+ <Patch name="Church Pipes" hbank="81" lbank="0" prog="60"/>
+ <Patch name="Church Org.1" hbank="81" lbank="3" prog="19"/>
+ <Patch name="Organesque" hbank="81" lbank="4" prog="13"/>
+ <Patch name="pp Harmonium" hbank="81" lbank="4" prog="14"/>
+ <Patch name="Reed Organ" hbank="81" lbank="3" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Accordian">
+ <Patch name="Montmartre" hbank="84" lbank="0" prog="61"/>
+ <Patch name="Acc.de Paris" hbank="84" lbank="0" prog="58"/>
+ <Patch name="Fr.Accordion" hbank="84" lbank="0" prog="63"/>
+ <Patch name="Paris 50's" hbank="84" lbank="0" prog="59"/>
+ <Patch name="Fr.Accord 2" hbank="84" lbank="0" prog="64"/>
+ <Patch name="Bandoneon" hbank="81" lbank="3" prog="23"/>
+ <Patch name="Accordian Fr" hbank="81" lbank="3" prog="21"/>
+ <Patch name="Musette Ens" hbank="84" lbank="0" prog="60"/>
+ <Patch name="Sad Akordion" hbank="84" lbank="0" prog="62"/>
+ <Patch name="Squeeze Box1" hbank="84" lbank="3" prog="105"/>
+ <Patch name="Squeeze Box2" hbank="84" lbank="3" prog="106"/>
+ <Patch name="Velo Squeeze" hbank="84" lbank="3" prog="107"/>
+ <Patch name="Squeeze Box3" hbank="84" lbank="3" prog="108"/>
+ <Patch name="Squeeze Box4" hbank="84" lbank="3" prog="109"/>
+ <Patch name="Accord Split" hbank="84" lbank="3" prog="110"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Harmonica, Blues Harp">
+ <Patch name="Harmonica" hbank="81" lbank="1" prog="118"/>
+ <Patch name="Harmonica" hbank="81" lbank="3" prog="22"/>
+ <Patch name="Harmo Blues" hbank="81" lbank="1" prog="119"/>
+ <Patch name="Blues Harp" hbank="81" lbank="1" prog="120"/>
+ <Patch name="CountryHarp1" hbank="84" lbank="3" prog="97"/>
+ <Patch name="F# Harp" hbank="84" lbank="3" prog="98"/>
+ <Patch name="CountryHarp2" hbank="84" lbank="3" prog="99"/>
+ <Patch name="Country Harp" hbank="84" lbank="3" prog="100"/>
+ <Patch name="Suck'n'Blow" hbank="84" lbank="3" prog="101"/>
+ <Patch name="Harmo Blues" hbank="84" lbank="3" prog="102"/>
+ <Patch name="Ghostrider" hbank="84" lbank="3" prog="103"/>
+ <Patch name="Harp Choir" hbank="84" lbank="3" prog="104"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Guitar">
+ <Patch name="SessionNylon" hbank="84" lbank="0" prog="66"/>
+ <Patch name="Nylon Gtr" hbank="81" lbank="0" prog="107"/>
+ <Patch name="Nylon-str.Gt" hbank="81" lbank="3" prog="24"/>
+ <Patch name="DEMO Nylon" hbank="84" lbank="1" prog="115"/>
+ <Patch name="Solo Nylon 1" hbank="84" lbank="0" prog="67"/>
+ <Patch name="Solo Nylon 2" hbank="84" lbank="0" prog="68"/>
+ <Patch name="Nylon &amp; Str" hbank="84" lbank="0" prog="69"/>
+ <Patch name="Gtr Strings" hbank="81" lbank="0" prog="108"/>
+ <Patch name="Nylon &amp; Flt" hbank="84" lbank="0" prog="70"/>
+ <Patch name="DesertCrystl" hbank="81" lbank="4" prog="30"/>
+ <Patch name="Nylon Chord" hbank="84" lbank="0" prog="71"/>
+ <Patch name="Deletex" hbank="84" lbank="0" prog="118"/>
+ <Patch name="Steel Away" hbank="81" lbank="0" prog="109"/>
+ <Patch name="Steel-str.Gt" hbank="81" lbank="3" prog="25"/>
+ <Patch name="Solo Steel" hbank="81" lbank="4" prog="29"/>
+ <Patch name="12str Gtr 1" hbank="81" lbank="0" prog="111"/>
+ <Patch name="12str Gtr 2" hbank="81" lbank="0" prog="112"/>
+ <Patch name="Heavenly Gtr" hbank="81" lbank="0" prog="110"/>
+ <Patch name="Atmosphere" hbank="81" lbank="3" prog="99"/>
+ <Patch name="Gt.FretNoise" hbank="81" lbank="3" prog="120"/>
+ <Patch name="Troubadour" hbank="84" lbank="0" prog="65"/>
+ <Patch name="Ac.Guitars" hbank="84" lbank="2" prog="10"/>
+ <Patch name="Bright Gtrs" hbank="84" lbank="2" prog="11"/>
+ <Patch name="Sensible Gtr" hbank="84" lbank="2" prog="12"/>
+ <Patch name="Countryside" hbank="84" lbank="2" prog="13"/>
+ <Patch name="AcGtrStereo1" hbank="84" lbank="2" prog="14"/>
+ <Patch name="AcGtrDuo VSW" hbank="84" lbank="2" prog="15"/>
+ <Patch name="Real AcGtr 1" hbank="84" lbank="2" prog="16"/>
+ <Patch name="Real AcGtr 2" hbank="84" lbank="2" prog="17"/>
+ <Patch name="DynoAcoustic" hbank="84" lbank="2" prog="18"/>
+ <Patch name="AcGtrDeluxe" hbank="84" lbank="2" prog="19"/>
+ <Patch name="AcGtrStereo2" hbank="84" lbank="2" prog="20"/>
+ <Patch name="Bright Pick2" hbank="84" lbank="2" prog="21"/>
+ <Patch name="Compres'd AG" hbank="84" lbank="2" prog="22"/>
+ <Patch name="Two Brothers" hbank="84" lbank="2" prog="23"/>
+ <Patch name="AcGtr VSW" hbank="84" lbank="2" prog="24"/>
+ <Patch name="Steel Touch" hbank="84" lbank="2" prog="25"/>
+ <Patch name="Cowboy Gtr" hbank="84" lbank="2" prog="26"/>
+ <Patch name="Noizy Picker" hbank="84" lbank="2" prog="27"/>
+ <Patch name="Stereo Touch" hbank="84" lbank="2" prog="28"/>
+ <Patch name="AcGtr Dual" hbank="84" lbank="2" prog="29"/>
+ <Patch name="AcGtr Finger" hbank="84" lbank="2" prog="30"/>
+ <Patch name="AcGtr Pick" hbank="84" lbank="2" prog="31"/>
+ <Patch name="Pick Solo 1T" hbank="84" lbank="2" prog="32"/>
+ <Patch name="LA Folk" hbank="84" lbank="2" prog="33"/>
+ <Patch name="AcGtr Slide" hbank="84" lbank="2" prog="34"/>
+ <Patch name="Acoustic Wah" hbank="84" lbank="2" prog="35"/>
+ <Patch name="Shadow Gtr" hbank="84" lbank="2" prog="36"/>
+ <Patch name="12 Strings" hbank="84" lbank="2" prog="37"/>
+ <Patch name="Riverside" hbank="84" lbank="2" prog="38"/>
+ <Patch name="MelanCoustic" hbank="84" lbank="2" prog="39"/>
+ <Patch name="Voxy Twelve" hbank="84" lbank="2" prog="40"/>
+ <Patch name="Guitar Song" hbank="84" lbank="2" prog="41"/>
+ <Patch name="Ac. Ballad" hbank="84" lbank="2" prog="42"/>
+ <Patch name="Resonant Duo" hbank="84" lbank="2" prog="43"/>
+ <Patch name="ResonatorGT4" hbank="84" lbank="2" prog="44"/>
+ <Patch name="BlugrasSlide" hbank="84" lbank="2" prog="45"/>
+ <Patch name="VelBendReso." hbank="84" lbank="2" prog="46"/>
+ <Patch name="Velo Reso." hbank="84" lbank="2" prog="47"/>
+ <Patch name="Reso.Guitar2" hbank="84" lbank="2" prog="48"/>
+ <Patch name="Reso.Ballad" hbank="84" lbank="2" prog="49"/>
+ <Patch name="Reso. Pick 1" hbank="84" lbank="2" prog="50"/>
+ <Patch name="Reso. Touch" hbank="84" lbank="2" prog="51"/>
+ <Patch name="Reso.Guitar3" hbank="84" lbank="2" prog="52"/>
+ <Patch name="Reso.Gtr VSW" hbank="84" lbank="2" prog="53"/>
+ <Patch name="Reso. Pick 2" hbank="84" lbank="2" prog="54"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Guitar">
+ <Patch name="Clean Tele" hbank="84" lbank="0" prog="73"/>
+ <Patch name="Jz Gtr Hall" hbank="81" lbank="0" prog="113"/>
+ <Patch name="LetterFrmPat" hbank="81" lbank="0" prog="114"/>
+ <Patch name="Jazz Gt." hbank="81" lbank="3" prog="26"/>
+ <Patch name="Jazz Scat" hbank="81" lbank="0" prog="115"/>
+ <Patch name="Clear Guitar" hbank="81" lbank="4" prog="31"/>
+ <Patch name="Nashville" hbank="84" lbank="0" prog="74"/>
+ <Patch name="Super Trem" hbank="84" lbank="0" prog="75"/>
+ <Patch name="SpaghettiGtr" hbank="84" lbank="0" prog="76"/>
+ <Patch name="Duanne'sTone" hbank="84" lbank="0" prog="77"/>
+ <Patch name="JC Strat" hbank="81" lbank="0" prog="117"/>
+ <Patch name="Twin Strats" hbank="81" lbank="0" prog="118"/>
+ <Patch name="Stratar" hbank="84" lbank="0" prog="72"/>
+ <Patch name="Solo Strat" hbank="81" lbank="4" prog="32"/>
+ <Patch name="JV Strat" hbank="81" lbank="0" prog="119"/>
+ <Patch name="Clean Gt." hbank="81" lbank="3" prog="27"/>
+ <Patch name="Syn Strat" hbank="81" lbank="0" prog="120"/>
+ <Patch name="Rotary Gtr" hbank="81" lbank="0" prog="121"/>
+ <Patch name="Muted Gtr" hbank="81" lbank="0" prog="122"/>
+ <Patch name="SwitchOnMute" hbank="81" lbank="0" prog="123"/>
+ <Patch name="Muted Gt." hbank="81" lbank="3" prog="28"/>
+ <Patch name="Gt.Harmonics" hbank="81" lbank="3" prog="31"/>
+ <Patch name="Velo-Wah Gtr" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Wah Wah BPM" hbank="84" lbank="0" prog="90"/>
+ <Patch name="Reso Tele" hbank="84" lbank="0" prog="89"/>
+ <Patch name="DEMO PhaseGt" hbank="84" lbank="1" prog="116"/>
+ <Patch name="DEMO Strat" hbank="84" lbank="1" prog="119"/>
+ <Patch name="GtrFX Menu" hbank="84" lbank="2" prog="8"/>
+ <Patch name="Country Efx" hbank="84" lbank="2" prog="9"/>
+ <Patch name="Tele Frnt PU" hbank="84" lbank="2" prog="98"/>
+ <Patch name="Tele Rear PU" hbank="84" lbank="2" prog="99"/>
+ <Patch name="Terry Rear" hbank="84" lbank="2" prog="100"/>
+ <Patch name="Terry Front" hbank="84" lbank="2" prog="101"/>
+ <Patch name="Tell-A-Castr" hbank="84" lbank="2" prog="102"/>
+ <Patch name="Mello Tele" hbank="84" lbank="2" prog="103"/>
+ <Patch name="DynaChrsTele" hbank="84" lbank="2" prog="104"/>
+ <Patch name="SwitchinTele" hbank="84" lbank="2" prog="105"/>
+ <Patch name="Slow Rotary" hbank="84" lbank="2" prog="106"/>
+ <Patch name="Peaks Gtr" hbank="84" lbank="2" prog="107"/>
+ <Patch name="Aerial Guitr" hbank="84" lbank="2" prog="108"/>
+ <Patch name="Mellow Peaks" hbank="84" lbank="2" prog="109"/>
+ <Patch name="SDE2000 Tele" hbank="84" lbank="2" prog="110"/>
+ <Patch name="GlossyStrata" hbank="84" lbank="2" prog="111"/>
+ <Patch name="Clean Strat" hbank="84" lbank="2" prog="112"/>
+ <Patch name="Dyna Strat" hbank="84" lbank="2" prog="113"/>
+ <Patch name="Chunky Strat" hbank="84" lbank="2" prog="114"/>
+ <Patch name="Stumpy Strat" hbank="84" lbank="2" prog="115"/>
+ <Patch name="Strat Rear" hbank="84" lbank="2" prog="116"/>
+ <Patch name="Strat Comp" hbank="84" lbank="2" prog="117"/>
+ <Patch name="Crying ja" hbank="84" lbank="2" prog="118"/>
+ <Patch name="Wild Pikker" hbank="84" lbank="2" prog="119"/>
+ <Patch name="Electric 12" hbank="84" lbank="2" prog="120"/>
+ <Patch name="Country 12Gt" hbank="84" lbank="2" prog="121"/>
+ <Patch name="Touch Driver" hbank="84" lbank="2" prog="122"/>
+ <Patch name="My 335 No.1" hbank="84" lbank="2" prog="123"/>
+ <Patch name="Root 335" hbank="84" lbank="2" prog="124"/>
+ <Patch name="335 Pick" hbank="84" lbank="2" prog="125"/>
+ <Patch name="Velo 335" hbank="84" lbank="2" prog="126"/>
+ <Patch name="Plugged Gtr" hbank="84" lbank="2" prog="127"/>
+ <Patch name="T-Arm Vib Gt" hbank="84" lbank="3" prog="0"/>
+ <Patch name="EG DynaPick1" hbank="84" lbank="3" prog="1"/>
+ <Patch name="EG DynaPick2" hbank="84" lbank="3" prog="2"/>
+ <Patch name="Tremolo Less" hbank="84" lbank="3" prog="3"/>
+ <Patch name="LP Gtr" hbank="84" lbank="3" prog="4"/>
+ <Patch name="Backing EG" hbank="84" lbank="3" prog="5"/>
+ <Patch name="Snappy EG" hbank="84" lbank="3" prog="6"/>
+ <Patch name="Pick Wah" hbank="84" lbank="3" prog="7"/>
+ <Patch name="Fast Rotary" hbank="84" lbank="3" prog="8"/>
+ <Patch name="Riff it!" hbank="84" lbank="3" prog="9"/>
+ <Patch name="E.Gtr Mute" hbank="84" lbank="3" prog="10"/>
+ <Patch name="Mute Pop Gtr" hbank="84" lbank="3" prog="11"/>
+ <Patch name="EGuitarTouch" hbank="84" lbank="3" prog="12"/>
+ <Patch name="StereoMuters" hbank="84" lbank="3" prog="13"/>
+ <Patch name="Rocky Peaks" hbank="84" lbank="3" prog="14"/>
+ <Patch name="Sweet Mute" hbank="84" lbank="3" prog="15"/>
+ <Patch name="335 VeloMute" hbank="84" lbank="3" prog="16"/>
+ <Patch name="335PhaseMute" hbank="84" lbank="3" prog="17"/>
+ <Patch name="335Mute/Pick" hbank="84" lbank="3" prog="18"/>
+ <Patch name="335MuteSlap" hbank="84" lbank="3" prog="19"/>
+ <Patch name="Oct Mute Vel" hbank="84" lbank="3" prog="20"/>
+ <Patch name="Other Mutes" hbank="84" lbank="3" prog="21"/>
+ <Patch name="Pure Steel" hbank="84" lbank="3" prog="22"/>
+ <Patch name="MeloPdlSteel" hbank="84" lbank="3" prog="23"/>
+ <Patch name="Bright Steel" hbank="84" lbank="3" prog="24"/>
+ <Patch name="St.Steel" hbank="84" lbank="3" prog="25"/>
+ <Patch name="PedalSteel 5" hbank="84" lbank="3" prog="26"/>
+ <Patch name="PedalSteel 6" hbank="84" lbank="3" prog="27"/>
+ <Patch name="PedalSteel 7" hbank="84" lbank="3" prog="28"/>
+ <Patch name="Steel Again" hbank="84" lbank="3" prog="29"/>
+ <Patch name="Pink Guitar" hbank="84" lbank="3" prog="30"/>
+ <Patch name="Delay Slide1" hbank="84" lbank="3" prog="31"/>
+ <Patch name="AutoPdlSteel" hbank="84" lbank="3" prog="32"/>
+ <Patch name="Delay Slide2" hbank="84" lbank="3" prog="33"/>
+ <Patch name="AutoBndSteel" hbank="84" lbank="3" prog="34"/>
+ <Patch name="PdlStl Vel 1" hbank="84" lbank="3" prog="35"/>
+ <Patch name="PdlStl Vel 2" hbank="84" lbank="3" prog="36"/>
+ <Patch name="PdlStl Vel 3" hbank="84" lbank="3" prog="37"/>
+ <Patch name="Hicksville" hbank="84" lbank="3" prog="38"/>
+ <Patch name="Patsy EGuitr" hbank="84" lbank="3" prog="39"/>
+ <Patch name="PedalMajor 1" hbank="84" lbank="3" prog="40"/>
+ <Patch name="PedalMajor 2" hbank="84" lbank="3" prog="41"/>
+ <Patch name="Steel Heaven" hbank="84" lbank="3" prog="42"/>
+ <Patch name="LoneStar" hbank="84" lbank="3" prog="43"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Distortion Guitar">
+ <Patch name="Big Hair Ld" hbank="84" lbank="0" prog="78"/>
+ <Patch name="Metal Solo" hbank="84" lbank="0" prog="79"/>
+ <Patch name="Feed Me!" hbank="81" lbank="4" prog="33"/>
+ <Patch name="DEMO DistGt1" hbank="84" lbank="1" prog="117"/>
+ <Patch name="DEMO DistGt2" hbank="84" lbank="1" prog="118"/>
+ <Patch name="Neil's Rust" hbank="84" lbank="0" prog="84"/>
+ <Patch name="Crunch Tone" hbank="84" lbank="0" prog="80"/>
+ <Patch name="Tube Smoke" hbank="81" lbank="4" prog="34"/>
+ <Patch name="Overdriven" hbank="84" lbank="0" prog="81"/>
+ <Patch name="Dist Gtr 1" hbank="81" lbank="1" prog="0"/>
+ <Patch name="Dist Gtr 2" hbank="81" lbank="1" prog="1"/>
+ <Patch name="RockYurSocks" hbank="81" lbank="0" prog="127"/>
+ <Patch name="Creamy" hbank="81" lbank="4" prog="35"/>
+ <Patch name="Blusey OD" hbank="81" lbank="4" prog="36"/>
+ <Patch name="Blues Tele" hbank="84" lbank="0" prog="82"/>
+ <Patch name="Grindstone" hbank="81" lbank="4" prog="37"/>
+ <Patch name="Rezodrive" hbank="81" lbank="0" prog="126"/>
+ <Patch name="Tube Double" hbank="84" lbank="0" prog="83"/>
+ <Patch name="OD 5th" hbank="81" lbank="4" prog="38"/>
+ <Patch name="Overdrive Gt" hbank="81" lbank="3" prog="29"/>
+ <Patch name="DistortionGt" hbank="81" lbank="3" prog="30"/>
+ <Patch name="R&amp;R Chunk" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Velo Power" hbank="84" lbank="0" prog="87"/>
+ <Patch name="Short Crunch" hbank="84" lbank="0" prog="85"/>
+ <Patch name="X-Fade Metal" hbank="84" lbank="0" prog="86"/>
+ <Patch name="Phazy Chunk" hbank="84" lbank="0" prog="88"/>
+ <Patch name="Power Trip" hbank="81" lbank="0" prog="124"/>
+ <Patch name="Crunch Split" hbank="81" lbank="0" prog="125"/>
+ <Patch name="Phripphu" hbank="81" lbank="1" prog="3"/>
+ <Patch name="Grungeroni" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Black Widow" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Mod-Wah Gtr" hbank="81" lbank="1" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic &amp; Electric Bass">
+ <Patch name="Rock P.Bass1" hbank="84" lbank="0" prog="91"/>
+ <Patch name="Rock P.Bass2" hbank="84" lbank="0" prog="92"/>
+ <Patch name="Rock P.Bass3" hbank="84" lbank="0" prog="93"/>
+ <Patch name="Big Jazz Bs" hbank="84" lbank="0" prog="94"/>
+ <Patch name="BriteJazz Bs" hbank="84" lbank="0" prog="95"/>
+ <Patch name="Finger Bass" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Fingered Bs." hbank="81" lbank="3" prog="33"/>
+ <Patch name="Mellow Jz Bs" hbank="84" lbank="0" prog="97"/>
+ <Patch name="Ch.Jazz Bs" hbank="84" lbank="0" prog="96"/>
+ <Patch name="Octabahn Bs" hbank="84" lbank="0" prog="99"/>
+ <Patch name="Pick Bass" hbank="81" lbank="1" prog="8"/>
+ <Patch name="Picked Bs." hbank="81" lbank="3" prog="34"/>
+ <Patch name="Hip Bass" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Mute E.Bs" hbank="84" lbank="0" prog="98"/>
+ <Patch name="Perc.Bass" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Homey Bass" hbank="81" lbank="1" prog="11"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="1" prog="18"/>
+ <Patch name="Slap Bass 3" hbank="81" lbank="1" prog="19"/>
+ <Patch name="Slap Bass 4" hbank="81" lbank="1" prog="20"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="3" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="3" prog="37"/>
+ <Patch name="Fretls Dry" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Fretless Bs." hbank="81" lbank="3" prog="35"/>
+ <Patch name="Wet Fretls" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Nylon Bass" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Ac.Upright" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Acoustic Bs." hbank="81" lbank="3" prog="32"/>
+ <Patch name="DEMO P.Bass" hbank="84" lbank="1" prog="121"/>
+ <Patch name="DEMO SlapBs" hbank="84" lbank="1" prog="120"/>
+ <Patch name="6Strings Bs1" hbank="84" lbank="3" prog="44"/>
+ <Patch name="Processed Bs" hbank="84" lbank="3" prog="45"/>
+ <Patch name="MetalStr Bs1" hbank="84" lbank="3" prog="46"/>
+ <Patch name="6Strings Bs2" hbank="84" lbank="3" prog="47"/>
+ <Patch name="Pick Bs Hard" hbank="84" lbank="3" prog="48"/>
+ <Patch name="6StrBs Mt/Pk" hbank="84" lbank="3" prog="49"/>
+ <Patch name="6Strings Bs3" hbank="84" lbank="3" prog="50"/>
+ <Patch name="Picked Bass1" hbank="84" lbank="3" prog="51"/>
+ <Patch name="Picked Bass2" hbank="84" lbank="3" prog="52"/>
+ <Patch name="Finger Bass2" hbank="84" lbank="3" prog="53"/>
+ <Patch name="Finger Bass3" hbank="84" lbank="3" prog="54"/>
+ <Patch name="Finger Bass4" hbank="84" lbank="3" prog="55"/>
+ <Patch name="CmpFingerBs1" hbank="84" lbank="3" prog="56"/>
+ <Patch name="CmpFingerBs2" hbank="84" lbank="3" prog="57"/>
+ <Patch name="DynoFngrBass" hbank="84" lbank="3" prog="58"/>
+ <Patch name="Strong Bass" hbank="84" lbank="3" prog="59"/>
+ <Patch name="Super 6 Bass" hbank="84" lbank="3" prog="60"/>
+ <Patch name="Finger Bass5" hbank="84" lbank="3" prog="61"/>
+ <Patch name="8Strings Bs" hbank="84" lbank="3" prog="62"/>
+ <Patch name="MetalStr Bs2" hbank="84" lbank="3" prog="63"/>
+ <Patch name="Muted Bass 1" hbank="84" lbank="3" prog="64"/>
+ <Patch name="DynoMuteBass" hbank="84" lbank="3" prog="65"/>
+ <Patch name="Muted Bass 2" hbank="84" lbank="3" prog="66"/>
+ <Patch name="WWWBass" hbank="84" lbank="3" prog="67"/>
+ <Patch name="Muted Bass 3" hbank="84" lbank="3" prog="68"/>
+ <Patch name="Bassy Muters" hbank="84" lbank="3" prog="69"/>
+ <Patch name="Wah Bass" hbank="84" lbank="3" prog="70"/>
+ <Patch name="Tub Mix Bass" hbank="84" lbank="3" prog="71"/>
+ <Patch name="Washtub Bass" hbank="84" lbank="3" prog="72"/>
+ <Patch name="Tub.Bass" hbank="84" lbank="3" prog="73"/>
+ <Patch name="Showdown" hbank="84" lbank="3" prog="74"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Bass">
+ <Patch name="4 Pole Bass" hbank="81" lbank="1" prog="21"/>
+ <Patch name="Tick Bass" hbank="81" lbank="1" prog="22"/>
+ <Patch name="House Bass" hbank="81" lbank="1" prog="23"/>
+ <Patch name="Mondo Bass" hbank="81" lbank="1" prog="24"/>
+ <Patch name="2pole Bass" hbank="81" lbank="4" prog="44"/>
+ <Patch name="4pole Bass" hbank="81" lbank="4" prog="45"/>
+ <Patch name="Wonder Bass" hbank="81" lbank="1" prog="38"/>
+ <Patch name="Rubber Bass" hbank="81" lbank="1" prog="36"/>
+ <Patch name="Stereoww Bs" hbank="81" lbank="1" prog="37"/>
+ <Patch name="Clk AnalogBs" hbank="81" lbank="1" prog="25"/>
+ <Patch name="Bass In Face" hbank="81" lbank="1" prog="26"/>
+ <Patch name="101 Bass" hbank="81" lbank="1" prog="27"/>
+ <Patch name="Noiz Bass" hbank="81" lbank="1" prog="28"/>
+ <Patch name="Occitan Bass" hbank="81" lbank="1" prog="30"/>
+ <Patch name="Super Jup Bs" hbank="81" lbank="1" prog="29"/>
+ <Patch name="Hugo Bass" hbank="81" lbank="1" prog="31"/>
+ <Patch name="Untamed Bass" hbank="81" lbank="1" prog="35"/>
+ <Patch name="CheepEcho Bs" hbank="84" lbank="0" prog="106"/>
+ <Patch name="Slobbery Bs" hbank="84" lbank="0" prog="100"/>
+ <Patch name="Euro Rave Bs" hbank="84" lbank="0" prog="102"/>
+ <Patch name="Multi Bass" hbank="81" lbank="1" prog="32"/>
+ <Patch name="Moist Bass" hbank="81" lbank="1" prog="33"/>
+ <Patch name="Bad Acid Bs" hbank="84" lbank="0" prog="105"/>
+ <Patch name="Acid TB" hbank="81" lbank="4" prog="48"/>
+ <Patch name="Synth Bass 1" hbank="81" lbank="3" prog="38"/>
+ <Patch name="BritelowBass" hbank="81" lbank="1" prog="34"/>
+ <Patch name="Deep Bass" hbank="81" lbank="1" prog="39"/>
+ <Patch name="Super JX Bs" hbank="81" lbank="1" prog="40"/>
+ <Patch name="W&lt;RED&gt;-Bass" hbank="81" lbank="1" prog="41"/>
+ <Patch name="Synth Bass 2" hbank="81" lbank="3" prog="39"/>
+ <Patch name="Tech NoBase" hbank="84" lbank="0" prog="104"/>
+ <Patch name="HI-Ring Bass" hbank="81" lbank="1" prog="42"/>
+ <Patch name="Euro Bass" hbank="81" lbank="1" prog="43"/>
+ <Patch name="SinusoidRave" hbank="81" lbank="1" prog="44"/>
+ <Patch name="202 Rude Bass" hbank="81" lbank="4" prog="43"/>
+ <Patch name="Pumpin' Bs" hbank="84" lbank="0" prog="103"/>
+ <Patch name="Phaser MC" hbank="81" lbank="4" prog="46"/>
+ <Patch name="MiniPhaser" hbank="81" lbank="4" prog="47"/>
+ <Patch name="Phase Worm" hbank="84" lbank="0" prog="101"/>
+ <Patch name="Manic Bs" hbank="84" lbank="0" prog="107"/>
+ <Patch name="DEMO SynBs" hbank="84" lbank="1" prog="122"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Strings">
+ <Patch name="Str Adagio" hbank="84" lbank="0" prog="12"/>
+ <Patch name="ArcoEnsemble" hbank="84" lbank="0" prog="10"/>
+ <Patch name="Vienna Strgs" hbank="84" lbank="0" prog="11"/>
+ <Patch name="Oct Strings" hbank="84" lbank="0" prog="13"/>
+ <Patch name="Soft Strings" hbank="84" lbank="0" prog="15"/>
+ <Patch name="GiantStrings" hbank="84" lbank="0" prog="17"/>
+ <Patch name="St.Strings" hbank="81" lbank="2" prog="34"/>
+ <Patch name="Warm Strings" hbank="81" lbank="2" prog="35"/>
+ <Patch name="Somber Str" hbank="81" lbank="2" prog="36"/>
+ <Patch name="Marcato" hbank="81" lbank="2" prog="37"/>
+ <Patch name="Bright Str" hbank="81" lbank="2" prog="38"/>
+ <Patch name="String Ens" hbank="81" lbank="2" prog="39"/>
+ <Patch name="DEMO Str 1" hbank="84" lbank="1" prog="105"/>
+ <Patch name="Strings" hbank="81" lbank="3" prog="48"/>
+ <Patch name="Chambers" hbank="81" lbank="2" prog="41"/>
+ <Patch name="SlowStr.Sect" hbank="84" lbank="0" prog="16"/>
+ <Patch name="Silky Filter" hbank="84" lbank="0" prog="14"/>
+ <Patch name="Slow Strings" hbank="81" lbank="3" prog="49"/>
+ <Patch name="Film Octaves" hbank="81" lbank="2" prog="44"/>
+ <Patch name="DEMO Str 2" hbank="84" lbank="1" prog="106"/>
+ <Patch name="DEMO Str 3" hbank="84" lbank="1" prog="107"/>
+ <Patch name="TremoloStrng" hbank="81" lbank="2" prog="40"/>
+ <Patch name="Tremolo Str" hbank="81" lbank="3" prog="44"/>
+ <Patch name="Str+Choir 1" hbank="84" lbank="0" prog="18"/>
+ <Patch name="Str+Choir 2" hbank="84" lbank="0" prog="19"/>
+ <Patch name="PizzicatoStr" hbank="81" lbank="3" prog="45"/>
+ <Patch name="Bass Pi" hbank="81" lbank="2" prog="46"/>
+ <Patch name="Real Pi" hbank="81" lbank="2" prog="47"/>
+ <Patch name="Voicey Pi" hbank="81" lbank="0" prog="99"/>
+ <Patch name="Violin" hbank="81" lbank="3" prog="40"/>
+ <Patch name="Fiddle" hbank="81" lbank="3" prog="110"/>
+ <Patch name="ViolinCello" hbank="81" lbank="2" prog="42"/>
+ <Patch name="Viola" hbank="81" lbank="3" prog="41"/>
+ <Patch name="Cello" hbank="81" lbank="3" prog="42"/>
+ <Patch name="Contrabass" hbank="81" lbank="3" prog="43"/>
+ <Patch name="JP-8 Str 1" hbank="81" lbank="2" prog="50"/>
+ <Patch name="JP-8 Str 2" hbank="81" lbank="2" prog="51"/>
+ <Patch name="JP-8 Str 3" hbank="81" lbank="2" prog="53"/>
+ <Patch name="Deep Strings" hbank="81" lbank="2" prog="60"/>
+ <Patch name="FiddleFXmenu" hbank="84" lbank="2" prog="6"/>
+ <Patch name="Fiddle Split" hbank="84" lbank="3" prog="75"/>
+ <Patch name="Fiddle Duo" hbank="84" lbank="3" prog="76"/>
+ <Patch name="Fiddler 1" hbank="84" lbank="3" prog="77"/>
+ <Patch name="Fiddler 2" hbank="84" lbank="3" prog="78"/>
+ <Patch name="2 Fiddles" hbank="84" lbank="3" prog="79"/>
+ <Patch name="Stac Fiddle" hbank="84" lbank="3" prog="80"/>
+ <Patch name="Fddl+Violins" hbank="84" lbank="3" prog="81"/>
+ <Patch name="Fiddlers" hbank="84" lbank="3" prog="82"/>
+ <Patch name="Let's Jig!" hbank="84" lbank="3" prog="83"/>
+ <Patch name="Fiddlee Dee" hbank="84" lbank="3" prog="84"/>
+ <Patch name="FiddleSect'n" hbank="84" lbank="3" prog="85"/>
+ <Patch name="Fiddle Spice" hbank="84" lbank="3" prog="86"/>
+ <Patch name="FiddlePizz 1" hbank="84" lbank="3" prog="87"/>
+ <Patch name="FiddlePizz 2" hbank="84" lbank="3" prog="88"/>
+ <Patch name="FiddlePizz 3" hbank="84" lbank="3" prog="89"/>
+ <Patch name="FiddlePizz 4" hbank="84" lbank="3" prog="90"/>
+ <Patch name="FiddlePizz 5" hbank="84" lbank="3" prog="91"/>
+ <Patch name="Oct Pi" hbank="84" lbank="3" prog="92"/>
+ <Patch name="FidpizBounce" hbank="84" lbank="3" prog="93"/>
+ <Patch name="FiddleFilter" hbank="84" lbank="3" prog="94"/>
+ <Patch name="Promenade" hbank="84" lbank="3" prog="95"/>
+ <Patch name="Fiddle About" hbank="84" lbank="3" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Ensemble">
+ <Patch name="Symphonique" hbank="81" lbank="2" prog="43"/>
+ <Patch name="Film Layers" hbank="81" lbank="2" prog="45"/>
+ <Patch name="Full Orchest" hbank="81" lbank="4" prog="49"/>
+ <Patch name="Str + Winds" hbank="81" lbank="4" prog="50"/>
+ <Patch name="Film Orch" hbank="81" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Hit, Hit">
+ <Patch name="OrchestraHit" hbank="81" lbank="3" prog="55"/>
+ <Patch name="Impact" hbank="81" lbank="1" prog="70"/>
+ <Patch name="Phase Hit" hbank="81" lbank="1" prog="71"/>
+ <Patch name="Reverse Hit" hbank="81" lbank="1" prog="75"/>
+ <Patch name="Tekno Hit 1" hbank="81" lbank="1" prog="72"/>
+ <Patch name="Tekno Hit 2" hbank="81" lbank="1" prog="73"/>
+ <Patch name="Tekno Hit 3" hbank="81" lbank="1" prog="74"/>
+ <Patch name="Euro Hit 1" hbank="84" lbank="1" prog="6"/>
+ <Patch name="Euro Hit 2" hbank="84" lbank="1" prog="7"/>
+ <Patch name="Rave Slice" hbank="84" lbank="1" prog="8"/>
+ <Patch name="Blow Hit" hbank="81" lbank="1" prog="59"/>
+ <Patch name="4 Hits 4 You" hbank="81" lbank="1" prog="69"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Winds">
+ <Patch name="Oboe mf" hbank="81" lbank="1" prog="102"/>
+ <Patch name="Oboe Express" hbank="81" lbank="1" prog="103"/>
+ <Patch name="Oboe" hbank="81" lbank="3" prog="68"/>
+ <Patch name="English Horn" hbank="81" lbank="3" prog="69"/>
+ <Patch name="Bassoon" hbank="81" lbank="3" prog="70"/>
+ <Patch name="Clarinet mp" hbank="81" lbank="1" prog="104"/>
+ <Patch name="ClariExpress" hbank="81" lbank="1" prog="105"/>
+ <Patch name="Clarinet" hbank="81" lbank="3" prog="71"/>
+ <Patch name="ChamberWinds" hbank="81" lbank="1" prog="107"/>
+ <Patch name="ChamberWoods" hbank="81" lbank="1" prog="108"/>
+ <Patch name="Mitzva Spit" hbank="81" lbank="1" prog="106"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Flute, Piccolo">
+ <Patch name="Legato Flute" hbank="84" lbank="0" prog="49"/>
+ <Patch name="Flute" hbank="81" lbank="1" prog="94"/>
+ <Patch name="Flute" hbank="81" lbank="3" prog="73"/>
+ <Patch name="Flute 2080" hbank="81" lbank="4" prog="51"/>
+ <Patch name="Touch Flute" hbank="84" lbank="0" prog="50"/>
+ <Patch name="DEMO Flute" hbank="84" lbank="1" prog="114"/>
+ <Patch name="Fifth Flute" hbank="84" lbank="0" prog="56"/>
+ <Patch name="Piccolo" hbank="81" lbank="1" prog="95"/>
+ <Patch name="Piccolo" hbank="81" lbank="3" prog="72"/>
+ <Patch name="Pan Pipes" hbank="81" lbank="1" prog="98"/>
+ <Patch name="Pan Flute" hbank="81" lbank="3" prog="75"/>
+ <Patch name="Bottle Blow" hbank="81" lbank="3" prog="76"/>
+ <Patch name="Air Lead" hbank="81" lbank="1" prog="97"/>
+ <Patch name="Recorder" hbank="81" lbank="3" prog="74"/>
+ <Patch name="Ocarina" hbank="81" lbank="3" prog="79"/>
+ <Patch name="Whistle" hbank="81" lbank="3" prog="78"/>
+ <Patch name="VOX Flute" hbank="81" lbank="1" prog="96"/>
+ <Patch name="Scat Flute" hbank="81" lbank="4" prog="52"/>
+ <Patch name="NewAge Flute" hbank="84" lbank="0" prog="51"/>
+ <Patch name="Cosmic Flute" hbank="84" lbank="0" prog="57"/>
+ <Patch name="Flute inMist" hbank="84" lbank="0" prog="52"/>
+ <Patch name="Flute &amp; Cla" hbank="84" lbank="0" prog="54"/>
+ <Patch name="Hybrid Flute" hbank="84" lbank="0" prog="53"/>
+ <Patch name="ChristmasFlt" hbank="84" lbank="0" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Brass">
+ <Patch name="SessionBrass" hbank="84" lbank="0" prog="33"/>
+ <Patch name="E.Coast Brs" hbank="84" lbank="0" prog="37"/>
+ <Patch name="R&amp;R Brass" hbank="84" lbank="0" prog="35"/>
+ <Patch name="Port.Tpts" hbank="84" lbank="0" prog="34"/>
+ <Patch name="Brass Sect" hbank="81" lbank="2" prog="3"/>
+ <Patch name="Tpt Sect" hbank="81" lbank="1" prog="126"/>
+ <Patch name="Brass 1" hbank="81" lbank="3" prog="61"/>
+ <Patch name="DEMO Brass" hbank="84" lbank="1" prog="111"/>
+ <Patch name="Echo Brass" hbank="84" lbank="0" prog="36"/>
+ <Patch name="Royale" hbank="81" lbank="4" prog="56"/>
+ <Patch name="Sm.Brass Grp" hbank="81" lbank="4" prog="55"/>
+ <Patch name="Tp&amp;Sax Sect" hbank="81" lbank="2" prog="1"/>
+ <Patch name="Sax+Tp+Tb" hbank="81" lbank="2" prog="2"/>
+ <Patch name="Hybrid Bones" hbank="81" lbank="2" prog="5"/>
+ <Patch name="Bop Soli" hbank="84" lbank="0" prog="38"/>
+ <Patch name="Orchestral" hbank="84" lbank="0" prog="40"/>
+ <Patch name="Noble Horns" hbank="81" lbank="2" prog="6"/>
+ <Patch name="Horn Swell" hbank="81" lbank="2" prog="8"/>
+ <Patch name="Massed Horns" hbank="81" lbank="2" prog="7"/>
+ <Patch name="French Horn" hbank="81" lbank="3" prog="60"/>
+ <Patch name="Majetic Tpt" hbank="81" lbank="1" prog="123"/>
+ <Patch name="Voluntare" hbank="81" lbank="1" prog="124"/>
+ <Patch name="Tpt Soloist" hbank="84" lbank="0" prog="42"/>
+ <Patch name="Legato Tpt" hbank="84" lbank="0" prog="43"/>
+ <Patch name="Dyno Trumpet" hbank="84" lbank="0" prog="44"/>
+ <Patch name="DEMO Tpt" hbank="84" lbank="1" prog="113"/>
+ <Patch name="Trumpet" hbank="81" lbank="3" prog="56"/>
+ <Patch name="Ballad Trump" hbank="81" lbank="4" prog="54"/>
+ <Patch name="2Trumpets" hbank="81" lbank="1" prog="125"/>
+ <Patch name="Ethno-Trumps" hbank="84" lbank="0" prog="45"/>
+ <Patch name="Harmon Mute" hbank="81" lbank="2" prog="0"/>
+ <Patch name="Mute TP mod" hbank="81" lbank="1" prog="127"/>
+ <Patch name="MutedTrumpet" hbank="81" lbank="3" prog="59"/>
+ <Patch name="Brass Mutes" hbank="81" lbank="4" prog="57"/>
+ <Patch name="Trombone" hbank="81" lbank="2" prog="4"/>
+ <Patch name="Trombone" hbank="81" lbank="3" prog="57"/>
+ <Patch name="Tuba" hbank="81" lbank="3" prog="58"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Brass">
+ <Patch name="3 Osc Brass" hbank="81" lbank="4" prog="59"/>
+ <Patch name="Poly Brass" hbank="81" lbank="0" prog="67"/>
+ <Patch name="P5 Polymod" hbank="81" lbank="4" prog="60"/>
+ <Patch name="Brass It!" hbank="81" lbank="2" prog="9"/>
+ <Patch name="Brass Attack" hbank="81" lbank="2" prog="10"/>
+ <Patch name="Archimede" hbank="81" lbank="2" prog="11"/>
+ <Patch name="Synergy Brs" hbank="84" lbank="1" prog="24"/>
+ <Patch name="Rugby Horn" hbank="81" lbank="2" prog="12"/>
+ <Patch name="MKS-80 Brass" hbank="81" lbank="2" prog="13"/>
+ <Patch name="Synth Brass1" hbank="81" lbank="3" prog="62"/>
+ <Patch name="Synth Brass2" hbank="81" lbank="3" prog="63"/>
+ <Patch name="True ANALOG" hbank="81" lbank="2" prog="14"/>
+ <Patch name="Afro Horns" hbank="81" lbank="2" prog="66"/>
+ <Patch name="Breathy Brs" hbank="81" lbank="4" prog="58"/>
+ <Patch name="Triumph Brs" hbank="81" lbank="4" prog="61"/>
+ <Patch name="Octalog Hrn" hbank="84" lbank="0" prog="41"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sax">
+ <Patch name="Soprano Sax" hbank="81" lbank="3" prog="64"/>
+ <Patch name="Sop.Sax mf" hbank="81" lbank="1" prog="110"/>
+ <Patch name="Alto Sax" hbank="81" lbank="1" prog="111"/>
+ <Patch name="AltoLead Sax" hbank="81" lbank="1" prog="112"/>
+ <Patch name="Alto Sax" hbank="81" lbank="3" prog="65"/>
+ <Patch name="Super Tenor" hbank="84" lbank="0" prog="46"/>
+ <Patch name="TenorExpress" hbank="84" lbank="0" prog="47"/>
+ <Patch name="T.Sax f" hbank="84" lbank="0" prog="48"/>
+ <Patch name="DEMO Tenor" hbank="84" lbank="1" prog="112"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="1" prog="113"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="3" prog="66"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="1" prog="114"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="3" prog="67"/>
+ <Patch name="Soft Saxes" hbank="84" lbank="0" prog="39"/>
+ <Patch name="Sax Section" hbank="81" lbank="1" prog="116"/>
+ <Patch name="Bigband Sax" hbank="81" lbank="1" prog="117"/>
+ <Patch name="Take A Tenor" hbank="81" lbank="1" prog="115"/>
+ <Patch name="Sax Choir" hbank="81" lbank="4" prog="53"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Hard Synth Lead">
+ <Patch name="Pulse Lead 1" hbank="81" lbank="1" prog="88"/>
+ <Patch name="Little Devil" hbank="81" lbank="1" prog="90"/>
+ <Patch name="Square Wave" hbank="81" lbank="3" prog="80"/>
+ <Patch name="Sawteeth" hbank="81" lbank="1" prog="84"/>
+ <Patch name="FXM Saw Lead" hbank="81" lbank="1" prog="83"/>
+ <Patch name="Saw Wave" hbank="81" lbank="3" prog="81"/>
+ <Patch name="Loud SynLead" hbank="81" lbank="1" prog="91"/>
+ <Patch name="5th Saw Wave" hbank="81" lbank="3" prog="86"/>
+ <Patch name="MG Solo" hbank="81" lbank="1" prog="82"/>
+ <Patch name="MG Interval" hbank="81" lbank="1" prog="87"/>
+ <Patch name="Eurotek Clav" hbank="84" lbank="0" prog="121"/>
+ <Patch name="Progresso Ld" hbank="81" lbank="4" prog="88"/>
+ <Patch name="Trangoa Wave" hbank="84" lbank="1" prog="1"/>
+ <Patch name="Raw PWM" hbank="84" lbank="1" prog="84"/>
+ <Patch name="5th Lead" hbank="81" lbank="1" prog="93"/>
+ <Patch name="Wormy Lead" hbank="84" lbank="1" prog="80"/>
+ <Patch name="Tweedles" hbank="84" lbank="1" prog="83"/>
+ <Patch name="Edye Boost" hbank="81" lbank="1" prog="81"/>
+ <Patch name="Adrenaline" hbank="81" lbank="4" prog="89"/>
+ <Patch name="Analog Lead" hbank="81" lbank="1" prog="92"/>
+ <Patch name="Bu" hbank="84" lbank="0" prog="124"/>
+ <Patch name="On the move!" hbank="84" lbank="1" prog="43"/>
+ <Patch name="Dirty Lead" hbank="84" lbank="1" prog="86"/>
+ <Patch name="Charang" hbank="81" lbank="3" prog="84"/>
+ <Patch name="Bass &amp; Lead" hbank="81" lbank="3" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Synth Lead">
+ <Patch name="SquareLead 1" hbank="81" lbank="1" prog="76"/>
+ <Patch name="Syn.Calliope" hbank="81" lbank="3" prog="82"/>
+ <Patch name="X..? Whistle" hbank="81" lbank="4" prog="86"/>
+ <Patch name="Solo Vox" hbank="81" lbank="3" prog="85"/>
+ <Patch name="Caliolead" hbank="84" lbank="1" prog="82"/>
+ <Patch name="SquareLead 2" hbank="81" lbank="1" prog="77"/>
+ <Patch name="Warm Pipe" hbank="81" lbank="4" prog="83"/>
+ <Patch name="Atmo Lead" hbank="84" lbank="1" prog="81"/>
+ <Patch name="Pure Pipe" hbank="81" lbank="4" prog="84"/>
+ <Patch name="WhistlinAtom" hbank="81" lbank="1" prog="80"/>
+ <Patch name="Belly Lead" hbank="81" lbank="1" prog="79"/>
+ <Patch name="Smoothe" hbank="81" lbank="1" prog="85"/>
+ <Patch name="You and Luck" hbank="81" lbank="1" prog="78"/>
+ <Patch name="Pulse Lead 2" hbank="81" lbank="1" prog="89"/>
+ <Patch name="MG Lead" hbank="81" lbank="1" prog="86"/>
+ <Patch name="Chiffer Lead" hbank="81" lbank="3" prog="83"/>
+ <Patch name="SH-2000" hbank="81" lbank="4" prog="85"/>
+ <Patch name="Jay Vee Solo" hbank="81" lbank="4" prog="87"/>
+ <Patch name="Voc Solo 5th" hbank="84" lbank="1" prog="85"/>
+ <Patch name="DEMO SynLead" hbank="84" lbank="1" prog="123"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Techno Synth">
+ <Patch name="Raver Circus" hbank="84" lbank="1" prog="33"/>
+ <Patch name="Eurotek Brs" hbank="84" lbank="1" prog="23"/>
+ <Patch name="DanceStack 1" hbank="84" lbank="1" prog="15"/>
+ <Patch name="DanceStack 2" hbank="84" lbank="1" prog="16"/>
+ <Patch name="DanceStack 3" hbank="84" lbank="1" prog="17"/>
+ <Patch name="DanceStack 4" hbank="84" lbank="1" prog="18"/>
+ <Patch name="DanceStack 5" hbank="84" lbank="1" prog="19"/>
+ <Patch name="DanceStack 6" hbank="84" lbank="1" prog="20"/>
+ <Patch name="DanceStack 7" hbank="84" lbank="1" prog="21"/>
+ <Patch name="DanceStack 8" hbank="84" lbank="1" prog="22"/>
+ <Patch name="Big BPF" hbank="81" lbank="2" prog="102"/>
+ <Patch name="Systekno" hbank="84" lbank="1" prog="42"/>
+ <Patch name="B'on d'moov!" hbank="81" lbank="4" prog="75"/>
+ <Patch name="Mental Chord" hbank="81" lbank="4" prog="65"/>
+ <Patch name="House Chord" hbank="81" lbank="4" prog="66"/>
+ <Patch name="Auto TB-303" hbank="81" lbank="1" prog="47"/>
+ <Patch name="Dist TB-303" hbank="81" lbank="4" prog="76"/>
+ <Patch name="Resojuice" hbank="81" lbank="4" prog="74"/>
+ <Patch name="Keep :-)" hbank="81" lbank="4" prog="73"/>
+ <Patch name="Dope Resoclv" hbank="84" lbank="0" prog="122"/>
+ <Patch name="Rezoid" hbank="81" lbank="1" prog="57"/>
+ <Patch name="Tekno Juno" hbank="84" lbank="0" prog="123"/>
+ <Patch name="Phazerave" hbank="84" lbank="1" prog="14"/>
+ <Patch name="Tekno Square" hbank="84" lbank="1" prog="30"/>
+ <Patch name="Raverborg" hbank="81" lbank="1" prog="58"/>
+ <Patch name="Airplaane" hbank="81" lbank="1" prog="99"/>
+ <Patch name="Trance VoXxX" hbank="84" lbank="1" prog="31"/>
+ <Patch name="TeknoSoloVox" hbank="81" lbank="1" prog="66"/>
+ <Patch name="Random Rave" hbank="84" lbank="1" prog="32"/>
+ <Patch name="Resorave" hbank="84" lbank="1" prog="34"/>
+ <Patch name="Pick It" hbank="81" lbank="1" prog="63"/>
+ <Patch name="House Piano" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Velo Tekno 2" hbank="81" lbank="1" prog="56"/>
+ <Patch name="Analog Seq" hbank="81" lbank="1" prog="64"/>
+ <Patch name="Sequalog" hbank="81" lbank="4" prog="67"/>
+ <Patch name="Intentions" hbank="81" lbank="1" prog="62"/>
+ <Patch name="Seq Mallet" hbank="81" lbank="1" prog="61"/>
+ <Patch name="Plik-Plok" hbank="81" lbank="4" prog="70"/>
+ <Patch name="Booster Bips" hbank="81" lbank="4" prog="68"/>
+ <Patch name="VintagePlunk" hbank="81" lbank="4" prog="69"/>
+ <Patch name="RingSequence" hbank="81" lbank="4" prog="71"/>
+ <Patch name="Cyber Swing" hbank="81" lbank="4" prog="72"/>
+ <Patch name="Hihat Tekno" hbank="81" lbank="1" prog="48"/>
+ <Patch name="Impact Vox" hbank="81" lbank="1" prog="65"/>
+ <Patch name="Techno Dream" hbank="81" lbank="4" prog="62"/>
+ <Patch name="Organizer" hbank="81" lbank="4" prog="63"/>
+ <Patch name="Civilization" hbank="81" lbank="4" prog="64"/>
+ <Patch name="Velo Tekno 1" hbank="81" lbank="1" prog="49"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Pulsating Synth">
+ <Patch name="Alternative" hbank="81" lbank="1" prog="45"/>
+ <Patch name="Acid Line" hbank="81" lbank="1" prog="46"/>
+ <Patch name="Raggatronic" hbank="81" lbank="1" prog="50"/>
+ <Patch name="Blade Racer" hbank="81" lbank="1" prog="51"/>
+ <Patch name="S&amp;H Pad" hbank="81" lbank="1" prog="52"/>
+ <Patch name="Happy LFOs" hbank="84" lbank="1" prog="77"/>
+ <Patch name="Syncrosonix" hbank="81" lbank="1" prog="53"/>
+ <Patch name="Fooled Again" hbank="81" lbank="1" prog="54"/>
+ <Patch name="Aero Insect" hbank="84" lbank="1" prog="78"/>
+ <Patch name="Beat Sweeper" hbank="84" lbank="1" prog="79"/>
+ <Patch name="Alive" hbank="81" lbank="1" prog="55"/>
+ <Patch name="DEMO Insect" hbank="84" lbank="1" prog="124"/>
+ <Patch name="X-Mod Man" hbank="81" lbank="1" prog="67"/>
+ <Patch name="Paz &lt;==&gt; Zap" hbank="81" lbank="1" prog="68"/>
+ <Patch name="Flying Walt" hbank="81" lbank="2" prog="98"/>
+ <Patch name="Strobe Mode" hbank="81" lbank="2" prog="92"/>
+ <Patch name="Albion" hbank="81" lbank="2" prog="93"/>
+ <Patch name="Planet Asia" hbank="81" lbank="4" prog="78"/>
+ <Patch name="Afterlife" hbank="81" lbank="4" prog="79"/>
+ <Patch name="Running Pad" hbank="81" lbank="2" prog="94"/>
+ <Patch name="Pulsatronic" hbank="81" lbank="4" prog="81"/>
+ <Patch name="Trancing Pad" hbank="81" lbank="4" prog="80"/>
+ <Patch name="LFO Vox" hbank="81" lbank="2" prog="33"/>
+ <Patch name="Cyber Dreams" hbank="81" lbank="4" prog="82"/>
+ <Patch name="Stepped Pad" hbank="81" lbank="2" prog="95"/>
+ <Patch name="Random Pad" hbank="81" lbank="2" prog="96"/>
+ <Patch name="SoundtrkDANC" hbank="81" lbank="2" prog="97"/>
+ <Patch name="Phazweep" hbank="81" lbank="2" prog="101"/>
+ <Patch name="Goblin" hbank="81" lbank="3" prog="101"/>
+ <Patch name="Temple of JV" hbank="81" lbank="4" prog="77"/>
+ <Patch name="XP'ration" hbank="84" lbank="1" prog="44"/>
+ <Patch name="DEMO SynPuls" hbank="84" lbank="1" prog="108"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth FX">
+ <Patch name="Vanishing" hbank="81" lbank="2" prog="99"/>
+ <Patch name="Shining Veil" hbank="84" lbank="1" prog="72"/>
+ <Patch name="Vektogram" hbank="81" lbank="2" prog="108"/>
+ <Patch name="Cascade" hbank="81" lbank="2" prog="111"/>
+ <Patch name="Shattered" hbank="81" lbank="2" prog="112"/>
+ <Patch name="Pure Tibet" hbank="81" lbank="2" prog="114"/>
+ <Patch name="Sands ofTime" hbank="81" lbank="2" prog="106"/>
+ <Patch name="NextFrontier" hbank="81" lbank="2" prog="113"/>
+ <Patch name="Inertia" hbank="81" lbank="2" prog="107"/>
+ <Patch name="RiversOfTime" hbank="81" lbank="4" prog="116"/>
+ <Patch name="Atlantis 2" hbank="84" lbank="1" prog="65"/>
+ <Patch name="Rize Mass" hbank="84" lbank="1" prog="51"/>
+ <Patch name="Glistening" hbank="81" lbank="4" prog="120"/>
+ <Patch name="Perelandra" hbank="84" lbank="1" prog="66"/>
+ <Patch name="Stepflanger" hbank="84" lbank="1" prog="76"/>
+ <Patch name="Plutonium" hbank="84" lbank="1" prog="67"/>
+ <Patch name="Metal Dreams" hbank="84" lbank="1" prog="69"/>
+ <Patch name="Glass Clouds" hbank="84" lbank="1" prog="70"/>
+ <Patch name="Portent" hbank="84" lbank="1" prog="52"/>
+ <Patch name="Big Vectors" hbank="84" lbank="1" prog="56"/>
+ <Patch name="DCO Sweeper" hbank="84" lbank="1" prog="53"/>
+ <Patch name="Sweep Rain" hbank="84" lbank="1" prog="54"/>
+ <Patch name="Sweep Stack" hbank="84" lbank="1" prog="55"/>
+ <Patch name="Alchemy" hbank="84" lbank="1" prog="58"/>
+ <Patch name="Striking 5th" hbank="84" lbank="1" prog="74"/>
+ <Patch name="Meow 5ths" hbank="84" lbank="1" prog="75"/>
+ <Patch name="Ethereal JX" hbank="84" lbank="1" prog="73"/>
+ <Patch name="Harmonicloud" hbank="84" lbank="1" prog="71"/>
+ <Patch name="Feedback VOX" hbank="81" lbank="2" prog="110"/>
+ <Patch name="Chime Wash" hbank="81" lbank="2" prog="115"/>
+ <Patch name="Nautilus" hbank="84" lbank="1" prog="68"/>
+ <Patch name="Creation" hbank="84" lbank="1" prog="98"/>
+ <Patch name="Phobos" hbank="81" lbank="4" prog="117"/>
+ <Patch name="Terminate" hbank="81" lbank="2" prog="127"/>
+ <Patch name="2 0 8 0" hbank="81" lbank="4" prog="118"/>
+ <Patch name="Crash Pad" hbank="81" lbank="2" prog="109"/>
+ <Patch name="Tortured" hbank="81" lbank="2" prog="117"/>
+ <Patch name="O-Zu-Nu" hbank="84" lbank="1" prog="36"/>
+ <Patch name="Sci-Fi Str" hbank="81" lbank="4" prog="121"/>
+ <Patch name="DelaySession" hbank="84" lbank="0" prog="117"/>
+ <Patch name="Night Shade" hbank="81" lbank="2" prog="116"/>
+ <Patch name="Unearthly" hbank="81" lbank="4" prog="119"/>
+ <Patch name="Dunes" hbank="81" lbank="2" prog="119"/>
+ <Patch name="Ice Hall" hbank="81" lbank="2" prog="124"/>
+ <Patch name="Cyber Space" hbank="81" lbank="2" prog="121"/>
+ <Patch name="Dissimilate" hbank="81" lbank="2" prog="118"/>
+ <Patch name="Ocean Floor" hbank="81" lbank="2" prog="120"/>
+ <Patch name="Helium Queen" hbank="81" lbank="4" prog="123"/>
+ <Patch name="Shadows" hbank="81" lbank="4" prog="122"/>
+ <Patch name="Boostweeper1" hbank="84" lbank="1" prog="87"/>
+ <Patch name="Boostweeper2" hbank="84" lbank="1" prog="88"/>
+ <Patch name="Biosphere" hbank="81" lbank="2" prog="122"/>
+ <Patch name="Computer Room" hbank="81" lbank="2" prog="125"/>
+ <Patch name="Cyberjunkie" hbank="84" lbank="1" prog="99"/>
+ <Patch name="Sci-Fi FX x4" hbank="81" lbank="4" prog="124"/>
+ <Patch name="Shine on" hbank="84" lbank="1" prog="101"/>
+ <Patch name="Variable Run" hbank="81" lbank="2" prog="123"/>
+ <Patch name="Sci-Fi Bells" hbank="84" lbank="1" prog="100"/>
+ <Patch name="Inverted" hbank="81" lbank="2" prog="126"/>
+ <Patch name="Breath Noise" hbank="81" lbank="3" prog="121"/>
+ <Patch name="BootScootin'" hbank="84" lbank="3" prog="111"/>
+ <Patch name="BootScootin2" hbank="84" lbank="3" prog="112"/>
+ <Patch name="CanynCascade" hbank="84" lbank="3" prog="113"/>
+ <Patch name="GoodMornin'" hbank="84" lbank="3" prog="114"/>
+ <Patch name="Skyline" hbank="84" lbank="3" prog="115"/>
+ <Patch name="TwangWahEcho" hbank="84" lbank="3" prog="116"/>
+ <Patch name="FunkyResonic" hbank="84" lbank="3" prog="117"/>
+ <Patch name="Shiloh" hbank="84" lbank="3" prog="122"/>
+ <Patch name="Durango" hbank="84" lbank="3" prog="123"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Poly Synth">
+ <Patch name="Poly Key" hbank="81" lbank="0" prog="61"/>
+ <Patch name="Poly Saws" hbank="81" lbank="0" prog="62"/>
+ <Patch name="Polysynth" hbank="81" lbank="3" prog="90"/>
+ <Patch name="Poly Pulse" hbank="81" lbank="0" prog="63"/>
+ <Patch name="Dual Profs" hbank="81" lbank="0" prog="64"/>
+ <Patch name="Saw Mass" hbank="81" lbank="0" prog="65"/>
+ <Patch name="Big Mess Pad" hbank="84" lbank="1" prog="11"/>
+ <Patch name="Poly Split" hbank="81" lbank="0" prog="66"/>
+ <Patch name="Poly Rock" hbank="81" lbank="0" prog="69"/>
+ <Patch name="Puff 1080" hbank="81" lbank="0" prog="76"/>
+ <Patch name="Stackoid" hbank="81" lbank="0" prog="68"/>
+ <Patch name="Echo Juno" hbank="84" lbank="1" prog="13"/>
+ <Patch name="Pulse Key" hbank="81" lbank="0" prog="88"/>
+ <Patch name="Wire Pad" hbank="81" lbank="4" prog="25"/>
+ <Patch name="Juno Harpsi" hbank="84" lbank="1" prog="10"/>
+ <Patch name="PhaseBlipper" hbank="81" lbank="4" prog="26"/>
+ <Patch name="Sweep Clav" hbank="81" lbank="4" prog="27"/>
+ <Patch name="Isn't Pretty" hbank="84" lbank="0" prog="126"/>
+ <Patch name="Polywasp" hbank="84" lbank="0" prog="127"/>
+ <Patch name="Slop-a-rama" hbank="84" lbank="0" prog="125"/>
+ <Patch name="Glider" hbank="81" lbank="4" prog="28"/>
+ <Patch name="Spiked Chee" hbank="84" lbank="1" prog="2"/>
+ <Patch name="Glassy Chee" hbank="84" lbank="1" prog="3"/>
+ <Patch name="Lazerette" hbank="84" lbank="1" prog="46"/>
+ <Patch name="Quixelate" hbank="84" lbank="1" prog="0"/>
+ <Patch name="Super 808Cow" hbank="84" lbank="1" prog="4"/>
+ <Patch name="Arpeggiatoid" hbank="84" lbank="1" prog="5"/>
+ <Patch name="Brightness" hbank="81" lbank="3" prog="100"/>
+ <Patch name="Fantasia" hbank="81" lbank="3" prog="88"/>
+ <Patch name="Ice Rain" hbank="81" lbank="3" prog="96"/>
+ <Patch name="JP6 Sqr Key" hbank="84" lbank="0" prog="108"/>
+ <Patch name="Square drops" hbank="84" lbank="0" prog="109"/>
+ <Patch name="Amazing Echo" hbank="84" lbank="0" prog="116"/>
+ <Patch name="Str Torture" hbank="84" lbank="1" prog="9"/>
+ <Patch name="PortaSynthex" hbank="84" lbank="1" prog="25"/>
+ <Patch name="Razor VCOs" hbank="84" lbank="1" prog="26"/>
+ <Patch name="Big PWM" hbank="84" lbank="1" prog="27"/>
+ <Patch name="Flutey Stack" hbank="84" lbank="1" prog="28"/>
+ <Patch name="Wobbly 5th" hbank="84" lbank="1" prog="29"/>
+ <Patch name="Flangomatic" hbank="84" lbank="1" prog="35"/>
+ <Patch name="Sub Divided" hbank="84" lbank="1" prog="37"/>
+ <Patch name="Fat Flange" hbank="84" lbank="1" prog="39"/>
+ <Patch name="Phaze NRG" hbank="84" lbank="1" prog="40"/>
+ <Patch name="Big Ensemble" hbank="84" lbank="1" prog="45"/>
+ <Patch name="Soli-na" hbank="84" lbank="1" prog="59"/>
+ <Patch name="90s Str Mach" hbank="84" lbank="1" prog="60"/>
+ <Patch name="Ancient Sqr" hbank="84" lbank="1" prog="38"/>
+ <Patch name="Progressive" hbank="84" lbank="1" prog="63"/>
+ <Patch name="Build-Up Syn" hbank="84" lbank="1" prog="64"/>
+ <Patch name="DEMO Bu" hbank="84" lbank="1" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bright Pad Synth">
+ <Patch name="Phazeslopad" hbank="84" lbank="1" prog="50"/>
+ <Patch name="Jet Stack" hbank="84" lbank="1" prog="49"/>
+ <Patch name="Combing Slow" hbank="84" lbank="1" prog="48"/>
+ <Patch name="Spectrum Mod" hbank="81" lbank="4" prog="108"/>
+ <Patch name="Stringsheen" hbank="81" lbank="4" prog="109"/>
+ <Patch name="Mod DirtyWav" hbank="81" lbank="4" prog="111"/>
+ <Patch name="Echo Drops" hbank="81" lbank="3" prog="102"/>
+ <Patch name="5th Sweep" hbank="81" lbank="2" prog="100"/>
+ <Patch name="Greek Power" hbank="81" lbank="2" prog="63"/>
+ <Patch name="MG Sweep" hbank="81" lbank="2" prog="103"/>
+ <Patch name="GR500 TmpDly" hbank="81" lbank="4" prog="110"/>
+ <Patch name="Silicon Str" hbank="81" lbank="4" prog="112"/>
+ <Patch name="Vintage Orch" hbank="81" lbank="2" prog="54"/>
+ <Patch name="Gigantalog" hbank="81" lbank="2" prog="56"/>
+ <Patch name="PWM Strings" hbank="81" lbank="2" prog="57"/>
+ <Patch name="Ultra Chee" hbank="84" lbank="1" prog="61"/>
+ <Patch name="JUNO Strings" hbank="81" lbank="2" prog="55"/>
+ <Patch name="Juno Power!" hbank="81" lbank="4" prog="107"/>
+ <Patch name="Pivotal Pad" hbank="81" lbank="2" prog="79"/>
+ <Patch name="Fantawine" hbank="81" lbank="2" prog="81"/>
+ <Patch name="Metal Pad" hbank="81" lbank="3" prog="93"/>
+ <Patch name="Star Theme" hbank="81" lbank="3" prog="103"/>
+ <Patch name="Harmonicum" hbank="81" lbank="2" prog="64"/>
+ <Patch name="D-50 Heaven" hbank="81" lbank="2" prog="65"/>
+ <Patch name="D50FantaPerc" hbank="81" lbank="4" prog="113"/>
+ <Patch name="Heirborne" hbank="81" lbank="2" prog="72"/>
+ <Patch name="Hush Pad" hbank="81" lbank="2" prog="73"/>
+ <Patch name="Halo Pad" hbank="81" lbank="3" prog="94"/>
+ <Patch name="RotoDreams" hbank="81" lbank="4" prog="114"/>
+ <Patch name="Mahoroba" hbank="84" lbank="0" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Pad Synth">
+ <Patch name="Earth Blow" hbank="81" lbank="4" prog="92"/>
+ <Patch name="Square Pad" hbank="81" lbank="2" prog="69"/>
+ <Patch name="JX SqrCarpet" hbank="81" lbank="4" prog="93"/>
+ <Patch name="JP-8 Hollow" hbank="81" lbank="2" prog="70"/>
+ <Patch name="JP-8Haunting" hbank="81" lbank="2" prog="71"/>
+ <Patch name="Silky Way" hbank="81" lbank="4" prog="98"/>
+ <Patch name="Rich Dynapad" hbank="81" lbank="4" prog="97"/>
+ <Patch name="Warm Pad" hbank="81" lbank="3" prog="89"/>
+ <Patch name="Warmth" hbank="81" lbank="2" prog="58"/>
+ <Patch name="Pop Pad" hbank="81" lbank="2" prog="67"/>
+ <Patch name="Gluey Pad" hbank="81" lbank="4" prog="99"/>
+ <Patch name="ORBit Pad" hbank="81" lbank="2" prog="59"/>
+ <Patch name="Syn.Strings1" hbank="81" lbank="3" prog="50"/>
+ <Patch name="Syn.Strings2" hbank="81" lbank="3" prog="51"/>
+ <Patch name="Juno-60 Pad" hbank="84" lbank="1" prog="62"/>
+ <Patch name="OctaPad" hbank="81" lbank="4" prog="106"/>
+ <Patch name="Poly Swell" hbank="84" lbank="1" prog="57"/>
+ <Patch name="E-Motion Pad" hbank="81" lbank="2" prog="52"/>
+ <Patch name="Translucence" hbank="81" lbank="4" prog="102"/>
+ <Patch name="Glassy Pad" hbank="81" lbank="2" prog="82"/>
+ <Patch name="Glass Blower" hbank="81" lbank="4" prog="91"/>
+ <Patch name="Dreamesque" hbank="81" lbank="2" prog="68"/>
+ <Patch name="Moving Glass" hbank="81" lbank="2" prog="83"/>
+ <Patch name="D'light" hbank="81" lbank="4" prog="104"/>
+ <Patch name="Glasswaves" hbank="81" lbank="2" prog="84"/>
+ <Patch name="ShiftedGlass" hbank="81" lbank="2" prog="86"/>
+ <Patch name="Bowed Glass" hbank="81" lbank="3" prog="92"/>
+ <Patch name="December Sky" hbank="81" lbank="4" prog="105"/>
+ <Patch name="Pulse Pad" hbank="81" lbank="2" prog="62"/>
+ <Patch name="Pulsify" hbank="81" lbank="2" prog="61"/>
+ <Patch name="Shiny Pad" hbank="81" lbank="2" prog="85"/>
+ <Patch name="Analog Drama" hbank="81" lbank="4" prog="96"/>
+ <Patch name="BandPass Mod" hbank="81" lbank="4" prog="100"/>
+ <Patch name="Dimensional" hbank="81" lbank="4" prog="94"/>
+ <Patch name="Phaze Str" hbank="81" lbank="2" prog="77"/>
+ <Patch name="Jupiterings" hbank="81" lbank="4" prog="95"/>
+ <Patch name="Fazed String" hbank="84" lbank="1" prog="47"/>
+ <Patch name="Jet Str Ens" hbank="81" lbank="2" prog="78"/>
+ <Patch name="Phaze Pad" hbank="81" lbank="2" prog="76"/>
+ <Patch name="Jet Pad 1" hbank="81" lbank="2" prog="74"/>
+ <Patch name="Jet Pad 2" hbank="81" lbank="2" prog="75"/>
+ <Patch name="Sweep Pad" hbank="81" lbank="3" prog="95"/>
+ <Patch name="3D Flanged" hbank="81" lbank="2" prog="80"/>
+ <Patch name="Dawn 2 Dusk" hbank="81" lbank="2" prog="90"/>
+ <Patch name="Aurora" hbank="81" lbank="2" prog="91"/>
+ <Patch name="Chime Pad" hbank="81" lbank="2" prog="87"/>
+ <Patch name="Spin Pad" hbank="81" lbank="2" prog="88"/>
+ <Patch name="Rotary Pad" hbank="81" lbank="2" prog="89"/>
+ <Patch name="Soundtrack" hbank="81" lbank="3" prog="97"/>
+ <Patch name="Soundtraque" hbank="81" lbank="4" prog="101"/>
+ <Patch name="Darkshine" hbank="81" lbank="4" prog="103"/>
+ <Patch name="DEMO 5thPad" hbank="84" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Vox, Choir">
+ <Patch name="Dark Vox" hbank="81" lbank="2" prog="15"/>
+ <Patch name="Angels Sing" hbank="81" lbank="2" prog="17"/>
+ <Patch name="Beauty Vox" hbank="81" lbank="2" prog="21"/>
+ <Patch name="Pvox Oooze" hbank="81" lbank="2" prog="18"/>
+ <Patch name="Dream Voices" hbank="84" lbank="0" prog="22"/>
+ <Patch name="SynVox" hbank="81" lbank="3" prog="54"/>
+ <Patch name="RandomVowels" hbank="81" lbank="2" prog="16"/>
+ <Patch name="Choir Aahs" hbank="81" lbank="3" prog="52"/>
+ <Patch name="Enlighten" hbank="81" lbank="4" prog="90"/>
+ <Patch name="Longing..." hbank="81" lbank="2" prog="19"/>
+ <Patch name="Arasian Morn" hbank="81" lbank="2" prog="20"/>
+ <Patch name="Mary-AnneVox" hbank="81" lbank="2" prog="22"/>
+ <Patch name="Belltree Vox" hbank="81" lbank="2" prog="23"/>
+ <Patch name="Vox Panner" hbank="81" lbank="2" prog="24"/>
+ <Patch name="Glass Voices" hbank="81" lbank="2" prog="26"/>
+ <Patch name="Tubular Vox" hbank="81" lbank="2" prog="27"/>
+ <Patch name="Space Voice" hbank="81" lbank="3" prog="91"/>
+ <Patch name="PercussiVox" hbank="84" lbank="0" prog="28"/>
+ <Patch name="Wavox" hbank="81" lbank="2" prog="29"/>
+ <Patch name="Velo Voxx" hbank="81" lbank="2" prog="28"/>
+ <Patch name="Vocal Ooh" hbank="81" lbank="2" prog="32"/>
+ <Patch name="Spaced Voxx" hbank="81" lbank="2" prog="25"/>
+ <Patch name="Phase Mmhs" hbank="84" lbank="0" prog="30"/>
+ <Patch name="Mysteriouso" hbank="84" lbank="0" prog="29"/>
+ <Patch name="Ivory Mist" hbank="84" lbank="0" prog="27"/>
+ <Patch name="AmbientStory" hbank="84" lbank="0" prog="31"/>
+ <Patch name="Venus" hbank="84" lbank="0" prog="32"/>
+ <Patch name="Phase Vox" hbank="84" lbank="1" prog="41"/>
+ <Patch name="Doos" hbank="81" lbank="2" prog="30"/>
+ <Patch name="Voice Oohs" hbank="81" lbank="3" prog="53"/>
+ <Patch name="Synvox Comps" hbank="81" lbank="2" prog="31"/>
+ <Patch name="Chorale" hbank="84" lbank="0" prog="24"/>
+ <Patch name="Str+Choir3" hbank="84" lbank="0" prog="20"/>
+ <Patch name="Space Men" hbank="84" lbank="0" prog="25"/>
+ <Patch name="DEMO Choir" hbank="84" lbank="1" prog="110"/>
+ <Patch name="Breathy Hum" hbank="84" lbank="0" prog="21"/>
+ <Patch name="Mmmms" hbank="84" lbank="0" prog="23"/>
+ <Patch name="Choir Mm+Aah" hbank="84" lbank="0" prog="26"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Plucked">
+ <Patch name="Sitar" hbank="81" lbank="0" prog="100"/>
+ <Patch name="Drone Split" hbank="81" lbank="0" prog="101"/>
+ <Patch name="Sitar" hbank="81" lbank="3" prog="104"/>
+ <Patch name="Dulcimer" hbank="81" lbank="0" prog="104"/>
+ <Patch name="Santur" hbank="81" lbank="3" prog="15"/>
+ <Patch name="East Europe" hbank="81" lbank="4" prog="39"/>
+ <Patch name="Dulcitar" hbank="81" lbank="4" prog="40"/>
+ <Patch name="Harp On It" hbank="81" lbank="2" prog="48"/>
+ <Patch name="Harp" hbank="81" lbank="2" prog="49"/>
+ <Patch name="Harp" hbank="81" lbank="3" prog="46"/>
+ <Patch name="Atmos Harp" hbank="81" lbank="4" prog="41"/>
+ <Patch name="Shamisen" hbank="81" lbank="3" prog="106"/>
+ <Patch name="Jamisen" hbank="81" lbank="0" prog="103"/>
+ <Patch name="Koto" hbank="81" lbank="3" prog="107"/>
+ <Patch name="Ethnopluck" hbank="81" lbank="0" prog="102"/>
+ <Patch name="Kalimba" hbank="81" lbank="3" prog="108"/>
+ <Patch name="Pilgrimage" hbank="81" lbank="4" prog="42"/>
+ <Patch name="GentlDulzouk" hbank="84" lbank="2" prog="94"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Ethnic">
+ <Patch name="Shakuhachi" hbank="81" lbank="3" prog="77"/>
+ <Patch name="Taj Mahal" hbank="81" lbank="1" prog="100"/>
+ <Patch name="Raya Shaku" hbank="81" lbank="1" prog="101"/>
+ <Patch name="Shanai" hbank="81" lbank="3" prog="111"/>
+ <Patch name="Bag Pipe" hbank="81" lbank="3" prog="109"/>
+ <Patch name="French Bags" hbank="81" lbank="1" prog="122"/>
+ <Patch name="East Melody" hbank="81" lbank="0" prog="105"/>
+ <Patch name="Far East" hbank="81" lbank="4" prog="24"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Fretted Inst">
+ <Patch name="MandolinTrem" hbank="81" lbank="0" prog="106"/>
+ <Patch name="Banjo" hbank="81" lbank="3" prog="105"/>
+ <Patch name="3Chd Strum" hbank="84" lbank="2" prog="7"/>
+ <Patch name="Banjo 2" hbank="84" lbank="2" prog="55"/>
+ <Patch name="Banjo 3" hbank="84" lbank="2" prog="56"/>
+ <Patch name="Banjo 4" hbank="84" lbank="2" prog="57"/>
+ <Patch name="Deliverance1" hbank="84" lbank="2" prog="58"/>
+ <Patch name="Banjo Pick" hbank="84" lbank="2" prog="59"/>
+ <Patch name="Banjo 5" hbank="84" lbank="2" prog="60"/>
+ <Patch name="Deliverance2" hbank="84" lbank="2" prog="61"/>
+ <Patch name="Banjo Small" hbank="84" lbank="2" prog="62"/>
+ <Patch name="Banjo Large" hbank="84" lbank="2" prog="63"/>
+ <Patch name="Velo Banjo" hbank="84" lbank="2" prog="64"/>
+ <Patch name="St. Banjo" hbank="84" lbank="2" prog="65"/>
+ <Patch name="Dyno Mandoln" hbank="84" lbank="2" prog="66"/>
+ <Patch name="Mandolin 5" hbank="84" lbank="2" prog="67"/>
+ <Patch name="Mandolin VSW" hbank="84" lbank="2" prog="68"/>
+ <Patch name="Mandolin Dwn" hbank="84" lbank="2" prog="69"/>
+ <Patch name="Mandolin Up" hbank="84" lbank="2" prog="70"/>
+ <Patch name="Mndln Up&amp;Dwn" hbank="84" lbank="2" prog="71"/>
+ <Patch name="Mdln Oct Ens" hbank="84" lbank="2" prog="72"/>
+ <Patch name="MandolnTrm 1" hbank="84" lbank="2" prog="73"/>
+ <Patch name="Mandoln Solo" hbank="84" lbank="2" prog="74"/>
+ <Patch name="Mandoln Trio" hbank="84" lbank="2" prog="75"/>
+ <Patch name="Mdln Trem St" hbank="84" lbank="2" prog="76"/>
+ <Patch name="MandoPlayers" hbank="84" lbank="2" prog="77"/>
+ <Patch name="MandoSection" hbank="84" lbank="2" prog="78"/>
+ <Patch name="MandolnTrm 2" hbank="84" lbank="2" prog="79"/>
+ <Patch name="Mndln Strum1" hbank="84" lbank="2" prog="80"/>
+ <Patch name="Mndln Strum2" hbank="84" lbank="2" prog="81"/>
+ <Patch name="MandolnTrm 3" hbank="84" lbank="2" prog="82"/>
+ <Patch name="MandolnTrm 4" hbank="84" lbank="2" prog="83"/>
+ <Patch name="MandoStrings" hbank="84" lbank="2" prog="84"/>
+ <Patch name="Mand SlowPad" hbank="84" lbank="2" prog="85"/>
+ <Patch name="The Vatican" hbank="84" lbank="2" prog="86"/>
+ <Patch name="Plato'sDream" hbank="84" lbank="2" prog="87"/>
+ <Patch name="Mandoswell" hbank="84" lbank="2" prog="88"/>
+ <Patch name="Circle Pick" hbank="84" lbank="2" prog="89"/>
+ <Patch name="Bouzouki 3" hbank="84" lbank="2" prog="90"/>
+ <Patch name="Bouzouki 4" hbank="84" lbank="2" prog="91"/>
+ <Patch name="StereoBouzki" hbank="84" lbank="2" prog="92"/>
+ <Patch name="BouzokiSplit" hbank="84" lbank="2" prog="93"/>
+ <Patch name="Bouzki&amp;Strum" hbank="84" lbank="2" prog="95"/>
+ <Patch name="Le G String" hbank="84" lbank="2" prog="96"/>
+ <Patch name="Country Pi" hbank="84" lbank="2" prog="97"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Percussion">
+ <Patch name="CeremonyTimp" hbank="81" lbank="2" prog="104"/>
+ <Patch name="Timpani" hbank="81" lbank="3" prog="47"/>
+ <Patch name="Dyno Toms" hbank="81" lbank="2" prog="105"/>
+ <Patch name="Melo. Tom 1" hbank="81" lbank="3" prog="117"/>
+ <Patch name="Taiko" hbank="81" lbank="3" prog="116"/>
+ <Patch name="Agogo" hbank="81" lbank="3" prog="113"/>
+ <Patch name="Woodblock" hbank="81" lbank="3" prog="115"/>
+ <Patch name="Synth Drum" hbank="81" lbank="3" prog="118"/>
+ <Patch name="Reverse Cym." hbank="81" lbank="3" prog="119"/>
+ <Patch name="Perky Noize" hbank="81" lbank="4" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sound Effects">
+ <Patch name="Seashore" hbank="81" lbank="3" prog="122"/>
+ <Patch name="Seashore 2" hbank="84" lbank="1" prog="97"/>
+ <Patch name="Bird" hbank="81" lbank="3" prog="123"/>
+ <Patch name="Telephone 1" hbank="81" lbank="3" prog="124"/>
+ <Patch name="Helicopter" hbank="81" lbank="3" prog="125"/>
+ <Patch name="Applause" hbank="81" lbank="3" prog="126"/>
+ <Patch name="DEMO Crowd" hbank="84" lbank="1" prog="126"/>
+ <Patch name="Gun Shot" hbank="81" lbank="3" prog="127"/>
+ <Patch name="Droplet" hbank="81" lbank="4" prog="126"/>
+ <Patch name="Rain Forest" hbank="81" lbank="4" prog="127"/>
+ <Patch name="Analog Bomb" hbank="84" lbank="1" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Beat and Groove">
+ <Patch name="Banjo Phrs" hbank="84" lbank="2" prog="0"/>
+ <Patch name="Guitar Phrs1" hbank="84" lbank="2" prog="1"/>
+ <Patch name="Guitar Phrs2" hbank="84" lbank="2" prog="2"/>
+ <Patch name="MiddleCRiff" hbank="84" lbank="2" prog="3"/>
+ <Patch name="12 Bar Riff" hbank="84" lbank="2" prog="4"/>
+ <Patch name="PdlStl Phrs" hbank="84" lbank="2" prog="5"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Drum Set">
+ <Patch name="CountryDrum1" hbank="84" lbank="3" prog="124"/>
+ <Patch name="CountryDrum2" hbank="84" lbank="3" prog="125"/>
+ <Patch name="CountryDrum3" hbank="84" lbank="3" prog="126"/>
+ <Patch name="CountryDrum4" hbank="84" lbank="3" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Combination">
+ <Patch name="Blue Notes" hbank="81" lbank="4" prog="115"/>
+ <Patch name="Lounge Gig" hbank="81" lbank="0" prog="116"/>
+ <Patch name="Bs/Pno+Brs" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Hillbillys" hbank="81" lbank="1" prog="121"/>
+ <Patch name="CntryBallad1" hbank="84" lbank="3" prog="118"/>
+ <Patch name="CntryBallad2" hbank="84" lbank="3" prog="119"/>
+ <Patch name="Country Ens" hbank="84" lbank="3" prog="120"/>
+ <Patch name="Fiddle &amp; PNO" hbank="84" lbank="3" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 001-032">
+ <Patch name="Tremendously" hbank="80" lbank="0" prog="0"/>
+ <Patch name="St.Concert" hbank="80" lbank="0" prog="1"/>
+ <Patch name="CyberTrance2" hbank="80" lbank="0" prog="2"/>
+ <Patch name="SessionNyln2" hbank="80" lbank="0" prog="3"/>
+ <Patch name="ViennaStrgs3" hbank="80" lbank="0" prog="4"/>
+ <Patch name="R&amp;R Brass" hbank="80" lbank="0" prog="5"/>
+ <Patch name="Velo Power" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Super Tenor" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Breathy Hum" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Ow Bass" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Dunes" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Celestial 2" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Tone Wh.Solo" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Poly Brs" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Combing Slow" hbank="80" lbank="0" prog="14"/>
+ <Patch name="SA Rhodes 5" hbank="80" lbank="0" prog="15"/>
+ <Patch name="Adrenaline" hbank="80" lbank="0" prog="16"/>
+ <Patch name="DanceStack 1" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Flying Walt" hbank="80" lbank="0" prog="18"/>
+ <Patch name="East Europe" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Silky Way" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Techno Dream" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Raverborg" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Pan Pipes" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Pretty Bells" hbank="80" lbank="0" prog="24"/>
+ <Patch name="Glistening" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Metal Solo" hbank="80" lbank="0" prog="26"/>
+ <Patch name="StateXLChrd2" hbank="80" lbank="0" prog="27"/>
+ <Patch name="Raggatronic" hbank="80" lbank="0" prog="28"/>
+ <Patch name="ChristmasFlt" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Acc.de Paris" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Dream Voices2" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 033-064">
+ <Patch name="VintageCall2" hbank="80" lbank="0" prog="32"/>
+ <Patch name="Trancing Pad" hbank="80" lbank="0" prog="33"/>
+ <Patch name="OldiesOrgan2" hbank="80" lbank="0" prog="34"/>
+ <Patch name="X..? Whistle" hbank="80" lbank="0" prog="35"/>
+ <Patch name="Analog Drama" hbank="80" lbank="0" prog="36"/>
+ <Patch name="BPF Lead" hbank="80" lbank="0" prog="37"/>
+ <Patch name="Clean Tele" hbank="80" lbank="0" prog="38"/>
+ <Patch name="Earth Blow" hbank="80" lbank="0" prog="39"/>
+ <Patch name="Pulsatronic" hbank="80" lbank="0" prog="40"/>
+ <Patch name="Funky Slap" hbank="80" lbank="0" prog="41"/>
+ <Patch name="Echo Rhodes" hbank="80" lbank="0" prog="42"/>
+ <Patch name="pp Harmonium" hbank="80" lbank="0" prog="43"/>
+ <Patch name="Blue Notes" hbank="80" lbank="0" prog="44"/>
+ <Patch name="Aurora" hbank="80" lbank="0" prog="45"/>
+ <Patch name="Breathy Brs" hbank="80" lbank="0" prog="46"/>
+ <Patch name="Enlighten" hbank="80" lbank="0" prog="47"/>
+ <Patch name="Tube Smoke" hbank="80" lbank="0" prog="48"/>
+ <Patch name="Perelandra" hbank="80" lbank="0" prog="49"/>
+ <Patch name="SquareLead 2" hbank="80" lbank="0" prog="50"/>
+ <Patch name="Shadows" hbank="80" lbank="0" prog="51"/>
+ <Patch name="Organizer" hbank="80" lbank="0" prog="52"/>
+ <Patch name="Full Orchest" hbank="80" lbank="0" prog="53"/>
+ <Patch name="B'on d'moov!" hbank="80" lbank="0" prog="54"/>
+ <Patch name="Sugar Bell 2" hbank="80" lbank="0" prog="55"/>
+ <Patch name="Player's EP" hbank="80" lbank="0" prog="56"/>
+ <Patch name="4pole Bass" hbank="80" lbank="0" prog="57"/>
+ <Patch name="Octapad" hbank="80" lbank="0" prog="58"/>
+ <Patch name="Tria Bells" hbank="80" lbank="0" prog="59"/>
+ <Patch name="Wire Pad" hbank="80" lbank="0" prog="60"/>
+ <Patch name="Singin'Mini" hbank="80" lbank="0" prog="61"/>
+ <Patch name="Heirborne" hbank="80" lbank="0" prog="62"/>
+ <Patch name="Trumpet" hbank="80" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 065-096">
+ <Patch name="Steel Away" hbank="80" lbank="0" prog="64"/>
+ <Patch name="D-50 Stack" hbank="80" lbank="0" prog="65"/>
+ <Patch name="Solo Strat" hbank="80" lbank="0" prog="66"/>
+ <Patch name="Soap Opera" hbank="80" lbank="0" prog="67"/>
+ <Patch name="Sop.Sax mf" hbank="80" lbank="0" prog="68"/>
+ <Patch name="Dimensional" hbank="80" lbank="0" prog="69"/>
+ <Patch name="Blusey OD" hbank="80" lbank="0" prog="70"/>
+ <Patch name="Stacc.Heaven" hbank="80" lbank="0" prog="71"/>
+ <Patch name="PhaseBlipper" hbank="80" lbank="0" prog="72"/>
+ <Patch name="Pure Tibet" hbank="80" lbank="0" prog="73"/>
+ <Patch name="Afterlife" hbank="80" lbank="0" prog="74"/>
+ <Patch name="Perky B" hbank="80" lbank="0" prog="75"/>
+ <Patch name="Juno Power!" hbank="80" lbank="0" prog="76"/>
+ <Patch name="SessionBrass" hbank="80" lbank="0" prog="77"/>
+ <Patch name="JX SqrCarpet" hbank="80" lbank="0" prog="78"/>
+ <Patch name="Phaser MC" hbank="80" lbank="0" prog="79"/>
+ <Patch name="Sweep Clav 2" hbank="80" lbank="0" prog="80"/>
+ <Patch name="BluesHarp" hbank="80" lbank="0" prog="81"/>
+ <Patch name="Scat Flute" hbank="80" lbank="0" prog="82"/>
+ <Patch name="5thPad 2" hbank="80" lbank="0" prog="83"/>
+ <Patch name="Belfry Chime" hbank="80" lbank="0" prog="84"/>
+ <Patch name="Atmos Harp" hbank="80" lbank="0" prog="85"/>
+ <Patch name="DesertCrystl" hbank="80" lbank="0" prog="86"/>
+ <Patch name="December Sky" hbank="80" lbank="0" prog="87"/>
+ <Patch name="Upright Pno" hbank="80" lbank="0" prog="88"/>
+ <Patch name="Darkshine" hbank="80" lbank="0" prog="89"/>
+ <Patch name="Exotic Velo" hbank="80" lbank="0" prog="90"/>
+ <Patch name="Atlantis 2" hbank="80" lbank="0" prog="91"/>
+ <Patch name="Creamy" hbank="80" lbank="0" prog="92"/>
+ <Patch name="Morning Lite" hbank="80" lbank="0" prog="93"/>
+ <Patch name="DanceStack 5" hbank="80" lbank="0" prog="94"/>
+ <Patch name="D50FantaPerc" hbank="80" lbank="0" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 097-128">
+ <Patch name="Resojuice" hbank="80" lbank="0" prog="96"/>
+ <Patch name="Silicon Str" hbank="80" lbank="0" prog="97"/>
+ <Patch name="Keep :-)" hbank="80" lbank="0" prog="98"/>
+ <Patch name="Sm.Brass Grp" hbank="80" lbank="0" prog="99"/>
+ <Patch name="Echo Piano" hbank="80" lbank="0" prog="100"/>
+ <Patch name="Heavenly Pad" hbank="80" lbank="0" prog="101"/>
+ <Patch name="Sequalog" hbank="80" lbank="0" prog="102"/>
+ <Patch name="Solo Steel" hbank="80" lbank="0" prog="103"/>
+ <Patch name="Spectrum Mod" hbank="80" lbank="0" prog="104"/>
+ <Patch name="Delicate EP" hbank="80" lbank="0" prog="105"/>
+ <Patch name="Triumph Brs" hbank="80" lbank="0" prog="106"/>
+ <Patch name="Flute" hbank="80" lbank="0" prog="107"/>
+ <Patch name="2.2 Bell Pad" hbank="80" lbank="0" prog="108"/>
+ <Patch name="JustLovely 2" hbank="80" lbank="0" prog="109"/>
+ <Patch name="GR500 TmpDly" hbank="80" lbank="0" prog="110"/>
+ <Patch name="Dawn 2 Dusk" hbank="80" lbank="0" prog="111"/>
+ <Patch name="Gluey Pad" hbank="80" lbank="0" prog="112"/>
+ <Patch name="SquareKeys 3" hbank="80" lbank="0" prog="113"/>
+ <Patch name="Arasian Morn" hbank="80" lbank="0" prog="114"/>
+ <Patch name="D'light" hbank="80" lbank="0" prog="115"/>
+ <Patch name="Perky Noize" hbank="80" lbank="0" prog="116"/>
+ <Patch name="Mod DirtyWav" hbank="80" lbank="0" prog="117"/>
+ <Patch name="Moving Glass" hbank="80" lbank="0" prog="118"/>
+ <Patch name="Sci-Fi Str" hbank="80" lbank="0" prog="119"/>
+ <Patch name="OD 5ths" hbank="80" lbank="0" prog="120"/>
+ <Patch name="Far East" hbank="80" lbank="0" prog="121"/>
+ <Patch name="Phobos" hbank="80" lbank="0" prog="122"/>
+ <Patch name="Cyber Dreams" hbank="80" lbank="0" prog="123"/>
+ <Patch name="Cave 2" hbank="80" lbank="0" prog="124"/>
+ <Patch name="Helium Queen" hbank="80" lbank="0" prog="125"/>
+ <Patch name="Rain Forest" hbank="80" lbank="0" prog="126"/>
+ <Patch name="Crowds" hbank="80" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_USER">
+ <Patch name="EasternSplit" hbank="80" lbank="0" prog="0"/>
+ <Patch name="Opening Orch" hbank="80" lbank="0" prog="1"/>
+ <Patch name="Feedback EP" hbank="80" lbank="0" prog="2"/>
+ <Patch name="Humming Vox" hbank="80" lbank="0" prog="3"/>
+ <Patch name="Tekno Loop 1" hbank="80" lbank="0" prog="4"/>
+ <Patch name="Fr.Horn Sect" hbank="80" lbank="0" prog="5"/>
+ <Patch name="SpaceCarrier" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Orchestral" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Nebular Vox" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Terminator" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Flying Ja" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Sweeper" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Rave Split" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Multi Sax" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Cosmic Dawn" hbank="80" lbank="0" prog="14"/>
+ <Patch name="Bass / Lead" hbank="80" lbank="0" prog="15"/>
+ <Patch name="S&amp;H / Pad" hbank="80" lbank="0" prog="16"/>
+ <Patch name="AcPiano+Pad" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Kicks Attack" hbank="80" lbank="0" prog="18"/>
+ <Patch name="Step Brass" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Drone / Pipe" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Chime Dreams" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Tekno Loop 2" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Big Band" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Labyrinth" hbank="80" lbank="0" prog="24"/>
+ <Patch name="White Hole" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Cyber Sweep" hbank="80" lbank="0" prog="26"/>
+ <Patch name="Tekno Asia" hbank="80" lbank="0" prog="27"/>
+ <Patch name="1080 Fantasy" hbank="80" lbank="0" prog="28"/>
+ <Patch name="Pop Ballad" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Rhythmatic" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Power JV" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-A">
+ <Patch name="House Set" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Analectro" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Anatronic" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Tekno Pop 1" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Tekno Pop 2" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Hard Core" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Hi Energy" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Pop Dance" hbank="81" lbank="0" prog="7"/>
+ <Patch name="Acid Set" hbank="81" lbank="0" prog="8"/>
+ <Patch name="Ambient Set" hbank="81" lbank="0" prog="9"/>
+ <Patch name="Electro Pop" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Pop Set 1" hbank="81" lbank="0" prog="11"/>
+ <Patch name="Pop Set 2" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Pop Set 3" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Pop Set 4" hbank="81" lbank="0" prog="14"/>
+ <Patch name="L.A. Ballad" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Hip Hop Set" hbank="81" lbank="0" prog="16"/>
+ <Patch name="Funk Rock" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Funk Fusion" hbank="81" lbank="0" prog="18"/>
+ <Patch name="Heavy Metal" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Heavy Kids" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Latin Set" hbank="81" lbank="0" prog="21"/>
+ <Patch name="BrazilianSet" hbank="81" lbank="0" prog="22"/>
+ <Patch name="New Age 1" hbank="81" lbank="0" prog="23"/>
+ <Patch name="New Age 2" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Orchestra" hbank="81" lbank="0" prog="25"/>
+ <Patch name="Concerto" hbank="81" lbank="0" prog="26"/>
+ <Patch name="Film Score 1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Film Score 2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Symphonic" hbank="81" lbank="0" prog="29"/>
+ <Patch name="Chamber Set" hbank="81" lbank="0" prog="30"/>
+ <Patch name="Baroque Set" hbank="81" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-B">
+ <Patch name="Africa" hbank="81" lbank="1" prog="0"/>
+ <Patch name="World Ethnic" hbank="81" lbank="1" prog="1"/>
+ <Patch name="Asian Ethnic" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Asian Band" hbank="81" lbank="1" prog="3"/>
+ <Patch name="60's Set" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Blues Band" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Country Band" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Folk Set" hbank="81" lbank="1" prog="7"/>
+ <Patch name="Reggae Band" hbank="81" lbank="1" prog="8"/>
+ <Patch name="FunkWah Band" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Funkin'Phaze" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Zydeco Band" hbank="81" lbank="1" prog="11"/>
+ <Patch name="New Orleans" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Dixieland" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Big Band Set" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Cont.Jazz 1" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Cont.Jazz 2" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Ac.Jazz Set" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Gospel Set" hbank="81" lbank="1" prog="18"/>
+ <Patch name="All Strings" hbank="81" lbank="1" prog="19"/>
+ <Patch name="All Brass" hbank="81" lbank="1" prog="20"/>
+ <Patch name="All Piano 1" hbank="81" lbank="1" prog="21"/>
+ <Patch name="All Piano 2" hbank="81" lbank="1" prog="22"/>
+ <Patch name="All Keyboard" hbank="81" lbank="1" prog="23"/>
+ <Patch name="All Organ" hbank="81" lbank="1" prog="24"/>
+ <Patch name="All Winds" hbank="81" lbank="1" prog="25"/>
+ <Patch name="All Bells" hbank="81" lbank="1" prog="26"/>
+ <Patch name="Mlt &amp; Perc" hbank="81" lbank="1" prog="27"/>
+ <Patch name="All Seq" hbank="81" lbank="1" prog="28"/>
+ <Patch name="All Bass" hbank="81" lbank="1" prog="29"/>
+ <Patch name="All Pad" hbank="81" lbank="1" prog="30"/>
+ <Patch name="All FX" hbank="81" lbank="1" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="HouseDrumSet" hbank="80" lbank="0" prog="0"/>
+ <Patch name="JazzDrumSet1" hbank="80" lbank="0" prog="1"/>
+ <Patch name="PopDrumSet 1" hbank="81" lbank="0" prog="0"/>
+ <Patch name="PopDrumSet 2" hbank="81" lbank="0" prog="1"/>
+ <Patch name="PowerDrumSet" hbank="81" lbank="1" prog="0"/>
+ <Patch name="RaveDrumSet" hbank="81" lbank="1" prog="1"/>
+ <Patch name="JazzDrumSet2" hbank="81" lbank="2" prog="0"/>
+ <Patch name="OrchDrumSet" hbank="81" lbank="2" prog="1"/>
+ <Patch name="GM Drum Set" hbank="81" lbank="3" prog="0"/>
+ <Patch name="BrushDrumSet" hbank="81" lbank="3" prog="1"/>
+ <Patch name="PowerDrmSet2" hbank="81" lbank="4" prog="0"/>
+ <Patch name="PowerRaveSet" hbank="81" lbank="4" prog="1"/>
+ <Patch name="SessionSet 1" hbank="84" lbank="0" prog="0"/>
+ <Patch name="SessionSet 2" hbank="84" lbank="0" prog="1"/>
+ <Patch name="SessionSet 3" hbank="84" lbank="0" prog="2"/>
+ <Patch name="SessionSet 4" hbank="84" lbank="0" prog="3"/>
+ <Patch name="SessionSet 5" hbank="84" lbank="0" prog="4"/>
+ <Patch name="SessionSet 6" hbank="84" lbank="0" prog="5"/>
+ <Patch name="SessionSet 7" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Demo Drum" hbank="84" lbank="0" prog="7"/>
+ <Patch name="CountrySet1" hbank="84" lbank="2" prog="0"/>
+ <Patch name="CountrySet2" hbank="84" lbank="2" prog="1"/>
+ <Patch name="CountrySet3" hbank="84" lbank="2" prog="2"/>
+ <Patch name="CountrySet4" hbank="84" lbank="2" prog="3"/>
+ <Patch name="Brush Set" hbank="84" lbank="2" prog="4"/>
+ <Patch name="CntryOldySet" hbank="84" lbank="2" prog="5"/>
+ <Patch name="CntryPopSet1" hbank="84" lbank="2" prog="6"/>
+ <Patch name="CntryPopSet2" hbank="84" lbank="2" prog="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse> \ No newline at end of file
diff --git a/muse_qt4_evolution/share/instruments/Roland-JV-1010-Catagory.idf b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Catagory.idf
new file mode 100644
index 00000000..a64c7507
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Catagory.idf
@@ -0,0 +1,1234 @@
+<?xml version="1.0" encoding="utf-8"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland JV-1010 Catagory">
+ <Init>
+ </Init>
+ <PatchGroup name="Patches_Acoustic Piano">
+ <Patch name="St.Concert" hbank="84" lbank="0" prog="0"/>
+ <Patch name="9ft.Grand 1" hbank="84" lbank="0" prog="1"/>
+ <Patch name="9ft.Grand 2" hbank="84" lbank="0" prog="2"/>
+ <Patch name="Euro Classic" hbank="84" lbank="0" prog="3"/>
+ <Patch name="DEMO Piano1" hbank="84" lbank="1" prog="102"/>
+ <Patch name="DEMO Piano2" hbank="84" lbank="1" prog="103"/>
+ <Patch name="64voicePiano" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Bright Piano" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Classique" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Nice Piano" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Piano Thang" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Power Grand" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Piano 1" hbank="81" lbank="3" prog="0"/>
+ <Patch name="Piano 2" hbank="81" lbank="3" prog="1"/>
+ <Patch name="Piano 3" hbank="81" lbank="3" prog="2"/>
+ <Patch name="Compress Pno" hbank="84" lbank="0" prog="5"/>
+ <Patch name="Honky-tonk" hbank="81" lbank="3" prog="3"/>
+ <Patch name="Echo Piano" hbank="81" lbank="4" prog="0"/>
+ <Patch name="Upright Pno" hbank="81" lbank="4" prog="1"/>
+ <Patch name="St.Pno &amp; Str" hbank="84" lbank="0" prog="4"/>
+ <Patch name="PianoStrings" hbank="81" lbank="0" prog="11"/>
+ <Patch name="DEMO PnoVox" hbank="84" lbank="1" prog="104"/>
+ <Patch name="LA Session" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Piano Blend" hbank="81" lbank="0" prog="9"/>
+ <Patch name="Water Piano" hbank="84" lbank="0" prog="7"/>
+ <Patch name="RD-1000" hbank="81" lbank="4" prog="2"/>
+ <Patch name="MIDIed Grand" hbank="81" lbank="0" prog="8"/>
+ <Patch name="E.Grand" hbank="81" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Piano">
+ <Patch name="SA Rhodes 1" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Stiky Rhodes" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Dig Rhodes" hbank="81" lbank="0" prog="18"/>
+ <Patch name="SA Rhodes 2" hbank="81" lbank="0" prog="16"/>
+ <Patch name="E.Piano 1" hbank="81" lbank="3" prog="4"/>
+ <Patch name="S.A.E.P." hbank="81" lbank="0" prog="14"/>
+ <Patch name="MK-80 Rhodes" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Players EP" hbank="81" lbank="4" prog="3"/>
+ <Patch name="Rhodes Mix" hbank="81" lbank="0" prog="21"/>
+ <Patch name="Octa Rhodes1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Octa Rhodes2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Waterhodes" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Tremo Rhodes" hbank="81" lbank="0" prog="23"/>
+ <Patch name="PsychoRhodes" hbank="81" lbank="0" prog="22"/>
+ <Patch name="MK-80 Phaser" hbank="81" lbank="0" prog="25"/>
+ <Patch name="E.Piano 2" hbank="81" lbank="3" prog="5"/>
+ <Patch name="Delicate EP" hbank="81" lbank="0" prog="26"/>
+ <Patch name="FM BellPiano" hbank="81" lbank="4" prog="8"/>
+ <Patch name="West Coast" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Mr.Mellow" hbank="81" lbank="0" prog="31"/>
+ <Patch name="JV Rhodes+" hbank="81" lbank="0" prog="29"/>
+ <Patch name="EP+Mod Pad" hbank="81" lbank="0" prog="30"/>
+ <Patch name="D-50 Rhodes" hbank="81" lbank="4" prog="4"/>
+ <Patch name="Innocent EP" hbank="81" lbank="4" prog="5"/>
+ <Patch name="Echo Rhodes" hbank="81" lbank="4" prog="6"/>
+ <Patch name="See-Thru EP" hbank="81" lbank="4" prog="7"/>
+ <Patch name="Ring E.Piano" hbank="81" lbank="4" prog="9"/>
+ <Patch name="Stack Rhodes" hbank="84" lbank="0" prog="9"/>
+ <Patch name="Nylon EPiano" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Nylon Rhodes" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Vibra Rhodes" hbank="84" lbank="0" prog="8"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Keyboards">
+ <Patch name="Comp Clav" hbank="81" lbank="0" prog="32"/>
+ <Patch name="Clav." hbank="81" lbank="3" prog="7"/>
+ <Patch name="Chorus Clav" hbank="81" lbank="0" prog="38"/>
+ <Patch name="Clavicembalo" hbank="81" lbank="0" prog="41"/>
+ <Patch name="Klavinet" hbank="81" lbank="0" prog="33"/>
+ <Patch name="Metal Clav" hbank="81" lbank="0" prog="44"/>
+ <Patch name="Harpsy Clav" hbank="81" lbank="4" prog="16"/>
+ <Patch name="Winger Clav" hbank="81" lbank="0" prog="34"/>
+ <Patch name="Phaze Clav 1" hbank="81" lbank="0" prog="35"/>
+ <Patch name="Phaze Clav 2" hbank="81" lbank="0" prog="36"/>
+ <Patch name="Phuzz Clav" hbank="81" lbank="0" prog="37"/>
+ <Patch name="PieceOfChee" hbank="81" lbank="4" prog="15"/>
+ <Patch name="Claviduck" hbank="81" lbank="0" prog="39"/>
+ <Patch name="Velo-Rez Clv" hbank="81" lbank="0" prog="40"/>
+ <Patch name="Analog Clav1" hbank="81" lbank="0" prog="42"/>
+ <Patch name="Analog Clav2" hbank="81" lbank="0" prog="43"/>
+ <Patch name="Celesta" hbank="81" lbank="3" prog="8"/>
+ <Patch name="Harpsichord" hbank="81" lbank="3" prog="6"/>
+ <Patch name="Harpsichoir" hbank="84" lbank="1" prog="12"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bell, Bell Pad">
+ <Patch name="Pretty Bells" hbank="81" lbank="0" prog="87"/>
+ <Patch name="Wave Bells" hbank="81" lbank="0" prog="83"/>
+ <Patch name="Music Bells" hbank="81" lbank="0" prog="86"/>
+ <Patch name="Beauty Bells" hbank="81" lbank="0" prog="85"/>
+ <Patch name="Tria Bells" hbank="81" lbank="0" prog="84"/>
+ <Patch name="Crystal" hbank="81" lbank="3" prog="98"/>
+ <Patch name="Tinkle Bell" hbank="81" lbank="3" prog="112"/>
+ <Patch name="Ethno Metals" hbank="81" lbank="0" prog="95"/>
+ <Patch name="Glockenspiel" hbank="81" lbank="3" prog="9"/>
+ <Patch name="Childlike" hbank="81" lbank="0" prog="80"/>
+ <Patch name="Music Box" hbank="81" lbank="0" prog="81"/>
+ <Patch name="Music Box" hbank="81" lbank="3" prog="10"/>
+ <Patch name="Toy Box" hbank="81" lbank="0" prog="82"/>
+ <Patch name="Square Keys" hbank="81" lbank="0" prog="79"/>
+ <Patch name="Vibrolater" hbank="84" lbank="0" prog="113"/>
+ <Patch name="Tubular-bell" hbank="81" lbank="3" prog="14"/>
+ <Patch name="Wide Tubular" hbank="81" lbank="0" prog="89"/>
+ <Patch name="Belfry Chime" hbank="81" lbank="4" prog="21"/>
+ <Patch name="Stacc.Heaven" hbank="81" lbank="4" prog="22"/>
+ <Patch name="D-50 Stack" hbank="81" lbank="0" prog="70"/>
+ <Patch name="Fantasia JV" hbank="81" lbank="0" prog="71"/>
+ <Patch name="Jimmy Dee" hbank="81" lbank="0" prog="72"/>
+ <Patch name="Holiday Cheer" hbank="81" lbank="4" prog="18"/>
+ <Patch name="Morning Lite" hbank="81" lbank="4" prog="19"/>
+ <Patch name="Heavenals" hbank="81" lbank="0" prog="73"/>
+ <Patch name="2.2 Bell Pad" hbank="81" lbank="4" prog="23"/>
+ <Patch name="Mallet Pad" hbank="81" lbank="0" prog="74"/>
+ <Patch name="JD-800 Nomad" hbank="84" lbank="0" prog="112"/>
+ <Patch name="Huff N Stuff" hbank="81" lbank="0" prog="75"/>
+ <Patch name="BellVox 1080" hbank="81" lbank="0" prog="77"/>
+ <Patch name="Celestial" hbank="84" lbank="0" prog="110"/>
+ <Patch name="Fantasy Vox" hbank="81" lbank="0" prog="78"/>
+ <Patch name="Heavenly Eko" hbank="84" lbank="0" prog="111"/>
+ <Patch name="Tarlia" hbank="84" lbank="0" prog="119"/>
+ <Patch name="MartianChime" hbank="84" lbank="0" prog="114"/>
+ <Patch name="Hammer Bell" hbank="81" lbank="1" prog="60"/>
+ <Patch name="Big Wet Blip" hbank="84" lbank="0" prog="115"/>
+ <Patch name="Prefab Chime" hbank="81" lbank="4" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Mallet">
+ <Patch name="Warm Vibes" hbank="81" lbank="0" prog="91"/>
+ <Patch name="SA Vibe" hbank="84" lbank="1" prog="92"/>
+ <Patch name="Vibraphone" hbank="81" lbank="3" prog="11"/>
+ <Patch name="VSw Vibrafon" hbank="84" lbank="1" prog="91"/>
+ <Patch name="Rich Vibes" hbank="84" lbank="1" prog="93"/>
+ <Patch name="AmbienceVibe" hbank="81" lbank="0" prog="90"/>
+ <Patch name="SpaceGamelan" hbank="84" lbank="1" prog="94"/>
+ <Patch name="Toy Vibe" hbank="84" lbank="1" prog="95"/>
+ <Patch name="Exotic Velo" hbank="81" lbank="4" prog="17"/>
+ <Patch name="Dyna Marimba" hbank="81" lbank="0" prog="92"/>
+ <Patch name="Bass Marimba" hbank="81" lbank="0" prog="93"/>
+ <Patch name="Marimba" hbank="81" lbank="3" prog="12"/>
+ <Patch name="Nomad Perc" hbank="81" lbank="0" prog="94"/>
+ <Patch name="Xylophone" hbank="81" lbank="3" prog="13"/>
+ <Patch name="Steel Drums" hbank="81" lbank="0" prog="98"/>
+ <Patch name="Steel Drums" hbank="81" lbank="3" prog="114"/>
+ <Patch name="Islands Mlt" hbank="81" lbank="0" prog="96"/>
+ <Patch name="Steelin Key" hbank="81" lbank="0" prog="97"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric and Church Organ">
+ <Patch name="Full Stops" hbank="81" lbank="0" prog="45"/>
+ <Patch name="Roller Spin" hbank="81" lbank="0" prog="52"/>
+ <Patch name="Gospel Spin" hbank="81" lbank="0" prog="51"/>
+ <Patch name="Ballad B" hbank="81" lbank="0" prog="46"/>
+ <Patch name="Mellow Bars" hbank="81" lbank="0" prog="47"/>
+ <Patch name="Organ 1" hbank="81" lbank="3" prog="16"/>
+ <Patch name="Organ 2" hbank="81" lbank="3" prog="17"/>
+ <Patch name="AugerMentive" hbank="81" lbank="0" prog="48"/>
+ <Patch name="Perky B" hbank="81" lbank="0" prog="49"/>
+ <Patch name="The Big Spin" hbank="81" lbank="0" prog="50"/>
+ <Patch name="Rocker Spin" hbank="81" lbank="0" prog="53"/>
+ <Patch name="Tone Wh.Solo" hbank="81" lbank="0" prog="54"/>
+ <Patch name="Dirty Organ" hbank="81" lbank="4" prog="11"/>
+ <Patch name="Organ 3" hbank="81" lbank="3" prog="18"/>
+ <Patch name="B3 Filth" hbank="84" lbank="1" prog="89"/>
+ <Patch name="Purple Spin" hbank="81" lbank="0" prog="55"/>
+ <Patch name="60's LeadORG" hbank="81" lbank="0" prog="56"/>
+ <Patch name="Assalt Organ" hbank="81" lbank="0" prog="57"/>
+ <Patch name="D-50 Organ" hbank="81" lbank="0" prog="58"/>
+ <Patch name="Surf's Up" hbank="81" lbank="4" prog="12"/>
+ <Patch name="Soap Opera" hbank="81" lbank="4" prog="10"/>
+ <Patch name="Phazed Organ" hbank="84" lbank="1" prog="90"/>
+ <Patch name="Cathedral" hbank="81" lbank="0" prog="59"/>
+ <Patch name="Church Pipes" hbank="81" lbank="0" prog="60"/>
+ <Patch name="Church Org.1" hbank="81" lbank="3" prog="19"/>
+ <Patch name="Organesque" hbank="81" lbank="4" prog="13"/>
+ <Patch name="pp Harmonium" hbank="81" lbank="4" prog="14"/>
+ <Patch name="Reed Organ" hbank="81" lbank="3" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Accordian">
+ <Patch name="Montmartre" hbank="84" lbank="0" prog="61"/>
+ <Patch name="Acc.de Paris" hbank="84" lbank="0" prog="58"/>
+ <Patch name="Fr.Accordion" hbank="84" lbank="0" prog="63"/>
+ <Patch name="Paris 50's" hbank="84" lbank="0" prog="59"/>
+ <Patch name="Fr.Accord 2" hbank="84" lbank="0" prog="64"/>
+ <Patch name="Bandoneon" hbank="81" lbank="3" prog="23"/>
+ <Patch name="Accordian Fr" hbank="81" lbank="3" prog="21"/>
+ <Patch name="Musette Ens" hbank="84" lbank="0" prog="60"/>
+ <Patch name="Sad Akordion" hbank="84" lbank="0" prog="62"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Harmonica, Blues Harp">
+ <Patch name="Harmonica" hbank="81" lbank="1" prog="118"/>
+ <Patch name="Harmonica" hbank="81" lbank="3" prog="22"/>
+ <Patch name="Harmo Blues" hbank="81" lbank="1" prog="119"/>
+ <Patch name="Blues Harp" hbank="81" lbank="1" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Guitar">
+ <Patch name="SessionNylon" hbank="84" lbank="0" prog="66"/>
+ <Patch name="Nylon Gtr" hbank="81" lbank="0" prog="107"/>
+ <Patch name="Nylon-str.Gt" hbank="81" lbank="3" prog="24"/>
+ <Patch name="DEMO Nylon" hbank="84" lbank="1" prog="115"/>
+ <Patch name="Solo Nylon 1" hbank="84" lbank="0" prog="67"/>
+ <Patch name="Solo Nylon 2" hbank="84" lbank="0" prog="68"/>
+ <Patch name="Nylon &amp; Str" hbank="84" lbank="0" prog="69"/>
+ <Patch name="Gtr Strings" hbank="81" lbank="0" prog="108"/>
+ <Patch name="Nylon &amp; Flt" hbank="84" lbank="0" prog="70"/>
+ <Patch name="DesertCrystl" hbank="81" lbank="4" prog="30"/>
+ <Patch name="Nylon Chord" hbank="84" lbank="0" prog="71"/>
+ <Patch name="Deletex" hbank="84" lbank="0" prog="118"/>
+ <Patch name="Steel Away" hbank="81" lbank="0" prog="109"/>
+ <Patch name="Steel-str.Gt" hbank="81" lbank="3" prog="25"/>
+ <Patch name="Solo Steel" hbank="81" lbank="4" prog="29"/>
+ <Patch name="12str Gtr 1" hbank="81" lbank="0" prog="111"/>
+ <Patch name="12str Gtr 2" hbank="81" lbank="0" prog="112"/>
+ <Patch name="Heavenly Gtr" hbank="81" lbank="0" prog="110"/>
+ <Patch name="Atmosphere" hbank="81" lbank="3" prog="99"/>
+ <Patch name="Gt.FretNoise" hbank="81" lbank="3" prog="120"/>
+ <Patch name="Troubadour" hbank="84" lbank="0" prog="65"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Guitar">
+ <Patch name="Clean Tele" hbank="84" lbank="0" prog="73"/>
+ <Patch name="Jz Gtr Hall" hbank="81" lbank="0" prog="113"/>
+ <Patch name="LetterFrmPat" hbank="81" lbank="0" prog="114"/>
+ <Patch name="Jazz Gt." hbank="81" lbank="3" prog="26"/>
+ <Patch name="Jazz Scat" hbank="81" lbank="0" prog="115"/>
+ <Patch name="Clear Guitar" hbank="81" lbank="4" prog="31"/>
+ <Patch name="Nashville" hbank="84" lbank="0" prog="74"/>
+ <Patch name="Super Trem" hbank="84" lbank="0" prog="75"/>
+ <Patch name="SpaghettiGtr" hbank="84" lbank="0" prog="76"/>
+ <Patch name="Duanne'sTone" hbank="84" lbank="0" prog="77"/>
+ <Patch name="JC Strat" hbank="81" lbank="0" prog="117"/>
+ <Patch name="Twin Strats" hbank="81" lbank="0" prog="118"/>
+ <Patch name="Stratar" hbank="84" lbank="0" prog="72"/>
+ <Patch name="Solo Strat" hbank="81" lbank="4" prog="32"/>
+ <Patch name="JV Strat" hbank="81" lbank="0" prog="119"/>
+ <Patch name="Clean Gt." hbank="81" lbank="3" prog="27"/>
+ <Patch name="Syn Strat" hbank="81" lbank="0" prog="120"/>
+ <Patch name="Rotary Gtr" hbank="81" lbank="0" prog="121"/>
+ <Patch name="Muted Gtr" hbank="81" lbank="0" prog="122"/>
+ <Patch name="SwitchOnMute" hbank="81" lbank="0" prog="123"/>
+ <Patch name="Muted Gt." hbank="81" lbank="3" prog="28"/>
+ <Patch name="Gt.Harmonics" hbank="81" lbank="3" prog="31"/>
+ <Patch name="Velo-Wah Gtr" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Wah Wah BPM" hbank="84" lbank="0" prog="90"/>
+ <Patch name="Reso Tele" hbank="84" lbank="0" prog="89"/>
+ <Patch name="DEMO PhaseGt" hbank="84" lbank="1" prog="116"/>
+ <Patch name="DEMO Strat" hbank="84" lbank="1" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Distortion Guitar">
+ <Patch name="Big Hair Ld" hbank="84" lbank="0" prog="78"/>
+ <Patch name="Metal Solo" hbank="84" lbank="0" prog="79"/>
+ <Patch name="Feed Me!" hbank="81" lbank="4" prog="33"/>
+ <Patch name="DEMO DistGt1" hbank="84" lbank="1" prog="117"/>
+ <Patch name="DEMO DistGt2" hbank="84" lbank="1" prog="118"/>
+ <Patch name="Neil's Rust" hbank="84" lbank="0" prog="84"/>
+ <Patch name="Crunch Tone" hbank="84" lbank="0" prog="80"/>
+ <Patch name="Tube Smoke" hbank="81" lbank="4" prog="34"/>
+ <Patch name="Overdriven" hbank="84" lbank="0" prog="81"/>
+ <Patch name="Dist Gtr 1" hbank="81" lbank="1" prog="0"/>
+ <Patch name="Dist Gtr 2" hbank="81" lbank="1" prog="1"/>
+ <Patch name="RockYurSocks" hbank="81" lbank="0" prog="127"/>
+ <Patch name="Creamy" hbank="81" lbank="4" prog="35"/>
+ <Patch name="Blusey OD" hbank="81" lbank="4" prog="36"/>
+ <Patch name="Blues Tele" hbank="84" lbank="0" prog="82"/>
+ <Patch name="Grindstone" hbank="81" lbank="4" prog="37"/>
+ <Patch name="Rezodrive" hbank="81" lbank="0" prog="126"/>
+ <Patch name="Tube Double" hbank="84" lbank="0" prog="83"/>
+ <Patch name="OD 5th" hbank="81" lbank="4" prog="38"/>
+ <Patch name="Overdrive Gt" hbank="81" lbank="3" prog="29"/>
+ <Patch name="DistortionGt" hbank="81" lbank="3" prog="30"/>
+ <Patch name="R&amp;R Chunk" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Velo Power" hbank="84" lbank="0" prog="87"/>
+ <Patch name="Short Crunch" hbank="84" lbank="0" prog="85"/>
+ <Patch name="X-Fade Metal" hbank="84" lbank="0" prog="86"/>
+ <Patch name="Phazy Chunk" hbank="84" lbank="0" prog="88"/>
+ <Patch name="Power Trip" hbank="81" lbank="0" prog="124"/>
+ <Patch name="Crunch Split" hbank="81" lbank="0" prog="125"/>
+ <Patch name="Phripphu" hbank="81" lbank="1" prog="3"/>
+ <Patch name="Grungeroni" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Black Widow" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Mod-Wah Gtr" hbank="81" lbank="1" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic &amp; Electric Bass">
+ <Patch name="Rock P.Bass1" hbank="84" lbank="0" prog="91"/>
+ <Patch name="Rock P.Bass2" hbank="84" lbank="0" prog="92"/>
+ <Patch name="Rock P.Bass3" hbank="84" lbank="0" prog="93"/>
+ <Patch name="Big Jazz Bs" hbank="84" lbank="0" prog="94"/>
+ <Patch name="BriteJazz Bs" hbank="84" lbank="0" prog="95"/>
+ <Patch name="Finger Bass" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Fingered Bs." hbank="81" lbank="3" prog="33"/>
+ <Patch name="Mellow Jz Bs" hbank="84" lbank="0" prog="97"/>
+ <Patch name="Ch.Jazz Bs" hbank="84" lbank="0" prog="96"/>
+ <Patch name="Octabahn Bs" hbank="84" lbank="0" prog="99"/>
+ <Patch name="Pick Bass" hbank="81" lbank="1" prog="8"/>
+ <Patch name="Picked Bs." hbank="81" lbank="3" prog="34"/>
+ <Patch name="Hip Bass" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Mute E.Bs" hbank="84" lbank="0" prog="98"/>
+ <Patch name="Perc.Bass" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Homey Bass" hbank="81" lbank="1" prog="11"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="1" prog="18"/>
+ <Patch name="Slap Bass 3" hbank="81" lbank="1" prog="19"/>
+ <Patch name="Slap Bass 4" hbank="81" lbank="1" prog="20"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="3" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="3" prog="37"/>
+ <Patch name="Fretls Dry" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Fretless Bs." hbank="81" lbank="3" prog="35"/>
+ <Patch name="Wet Fretls" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Nylon Bass" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Ac.Upright" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Acoustic Bs." hbank="81" lbank="3" prog="32"/>
+ <Patch name="DEMO P.Bass" hbank="84" lbank="1" prog="121"/>
+ <Patch name="DEMO SlapBs" hbank="84" lbank="1" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Bass">
+ <Patch name="4 Pole Bass" hbank="81" lbank="1" prog="21"/>
+ <Patch name="Tick Bass" hbank="81" lbank="1" prog="22"/>
+ <Patch name="House Bass" hbank="81" lbank="1" prog="23"/>
+ <Patch name="Mondo Bass" hbank="81" lbank="1" prog="24"/>
+ <Patch name="2pole Bass" hbank="81" lbank="4" prog="44"/>
+ <Patch name="4pole Bass" hbank="81" lbank="4" prog="45"/>
+ <Patch name="Wonder Bass" hbank="81" lbank="1" prog="38"/>
+ <Patch name="Rubber Bass" hbank="81" lbank="1" prog="36"/>
+ <Patch name="Stereoww Bs" hbank="81" lbank="1" prog="37"/>
+ <Patch name="Clk AnalogBs" hbank="81" lbank="1" prog="25"/>
+ <Patch name="Bass In Face" hbank="81" lbank="1" prog="26"/>
+ <Patch name="101 Bass" hbank="81" lbank="1" prog="27"/>
+ <Patch name="Noiz Bass" hbank="81" lbank="1" prog="28"/>
+ <Patch name="Occitan Bass" hbank="81" lbank="1" prog="30"/>
+ <Patch name="Super Jup Bs" hbank="81" lbank="1" prog="29"/>
+ <Patch name="Hugo Bass" hbank="81" lbank="1" prog="31"/>
+ <Patch name="Untamed Bass" hbank="81" lbank="1" prog="35"/>
+ <Patch name="CheepEcho Bs" hbank="84" lbank="0" prog="106"/>
+ <Patch name="Slobbery Bs" hbank="84" lbank="0" prog="100"/>
+ <Patch name="Euro Rave Bs" hbank="84" lbank="0" prog="102"/>
+ <Patch name="Multi Bass" hbank="81" lbank="1" prog="32"/>
+ <Patch name="Moist Bass" hbank="81" lbank="1" prog="33"/>
+ <Patch name="Bad Acid Bs" hbank="84" lbank="0" prog="105"/>
+ <Patch name="Acid TB" hbank="81" lbank="4" prog="48"/>
+ <Patch name="Synth Bass 1" hbank="81" lbank="3" prog="38"/>
+ <Patch name="BritelowBass" hbank="81" lbank="1" prog="34"/>
+ <Patch name="Deep Bass" hbank="81" lbank="1" prog="39"/>
+ <Patch name="Super JX Bs" hbank="81" lbank="1" prog="40"/>
+ <Patch name="W&lt;RED&gt;-Bass" hbank="81" lbank="1" prog="41"/>
+ <Patch name="Synth Bass 2" hbank="81" lbank="3" prog="39"/>
+ <Patch name="Tech NoBase" hbank="84" lbank="0" prog="104"/>
+ <Patch name="HI-Ring Bass" hbank="81" lbank="1" prog="42"/>
+ <Patch name="Euro Bass" hbank="81" lbank="1" prog="43"/>
+ <Patch name="SinusoidRave" hbank="81" lbank="1" prog="44"/>
+ <Patch name="202 Rude Bass" hbank="81" lbank="4" prog="43"/>
+ <Patch name="Pumpin' Bs" hbank="84" lbank="0" prog="103"/>
+ <Patch name="Phaser MC" hbank="81" lbank="4" prog="46"/>
+ <Patch name="MiniPhaser" hbank="81" lbank="4" prog="47"/>
+ <Patch name="Phase Worm" hbank="84" lbank="0" prog="101"/>
+ <Patch name="Manic Bs" hbank="84" lbank="0" prog="107"/>
+ <Patch name="DEMO SynBs" hbank="84" lbank="1" prog="122"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Strings">
+ <Patch name="Str Adagio" hbank="84" lbank="0" prog="12"/>
+ <Patch name="ArcoEnsemble" hbank="84" lbank="0" prog="10"/>
+ <Patch name="Vienna Strgs" hbank="84" lbank="0" prog="11"/>
+ <Patch name="Oct Strings" hbank="84" lbank="0" prog="13"/>
+ <Patch name="Soft Strings" hbank="84" lbank="0" prog="15"/>
+ <Patch name="GiantStrings" hbank="84" lbank="0" prog="17"/>
+ <Patch name="St.Strings" hbank="81" lbank="2" prog="34"/>
+ <Patch name="Warm Strings" hbank="81" lbank="2" prog="35"/>
+ <Patch name="Somber Str" hbank="81" lbank="2" prog="36"/>
+ <Patch name="Marcato" hbank="81" lbank="2" prog="37"/>
+ <Patch name="Bright Str" hbank="81" lbank="2" prog="38"/>
+ <Patch name="String Ens" hbank="81" lbank="2" prog="39"/>
+ <Patch name="DEMO Str 1" hbank="84" lbank="1" prog="105"/>
+ <Patch name="Strings" hbank="81" lbank="3" prog="48"/>
+ <Patch name="Chambers" hbank="81" lbank="2" prog="41"/>
+ <Patch name="SlowStr.Sect" hbank="84" lbank="0" prog="16"/>
+ <Patch name="Silky Filter" hbank="84" lbank="0" prog="14"/>
+ <Patch name="Slow Strings" hbank="81" lbank="3" prog="49"/>
+ <Patch name="Film Octaves" hbank="81" lbank="2" prog="44"/>
+ <Patch name="DEMO Str 2" hbank="84" lbank="1" prog="106"/>
+ <Patch name="DEMO Str 3" hbank="84" lbank="1" prog="107"/>
+ <Patch name="TremoloStrng" hbank="81" lbank="2" prog="40"/>
+ <Patch name="Tremolo Str" hbank="81" lbank="3" prog="44"/>
+ <Patch name="Str+Choir 1" hbank="84" lbank="0" prog="18"/>
+ <Patch name="Str+Choir 2" hbank="84" lbank="0" prog="19"/>
+ <Patch name="PizzicatoStr" hbank="81" lbank="3" prog="45"/>
+ <Patch name="Bass Pi" hbank="81" lbank="2" prog="46"/>
+ <Patch name="Real Pi" hbank="81" lbank="2" prog="47"/>
+ <Patch name="Voicey Pi" hbank="81" lbank="0" prog="99"/>
+ <Patch name="Violin" hbank="81" lbank="3" prog="40"/>
+ <Patch name="Fiddle" hbank="81" lbank="3" prog="110"/>
+ <Patch name="ViolinCello" hbank="81" lbank="2" prog="42"/>
+ <Patch name="Viola" hbank="81" lbank="3" prog="41"/>
+ <Patch name="Cello" hbank="81" lbank="3" prog="42"/>
+ <Patch name="Contrabass" hbank="81" lbank="3" prog="43"/>
+ <Patch name="JP-8 Str 1" hbank="81" lbank="2" prog="50"/>
+ <Patch name="JP-8 Str 2" hbank="81" lbank="2" prog="51"/>
+ <Patch name="JP-8 Str 3" hbank="81" lbank="2" prog="53"/>
+ <Patch name="Deep Strings" hbank="81" lbank="2" prog="60"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Ensemble">
+ <Patch name="Symphonique" hbank="81" lbank="2" prog="43"/>
+ <Patch name="Film Layers" hbank="81" lbank="2" prog="45"/>
+ <Patch name="Full Orchest" hbank="81" lbank="4" prog="49"/>
+ <Patch name="Str + Winds" hbank="81" lbank="4" prog="50"/>
+ <Patch name="Film Orch" hbank="81" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Hit, Hit">
+ <Patch name="OrchestraHit" hbank="81" lbank="3" prog="55"/>
+ <Patch name="Impact" hbank="81" lbank="1" prog="70"/>
+ <Patch name="Phase Hit" hbank="81" lbank="1" prog="71"/>
+ <Patch name="Reverse Hit" hbank="81" lbank="1" prog="75"/>
+ <Patch name="Tekno Hit 1" hbank="81" lbank="1" prog="72"/>
+ <Patch name="Tekno Hit 2" hbank="81" lbank="1" prog="73"/>
+ <Patch name="Tekno Hit 3" hbank="81" lbank="1" prog="74"/>
+ <Patch name="Euro Hit 1" hbank="84" lbank="1" prog="6"/>
+ <Patch name="Euro Hit 2" hbank="84" lbank="1" prog="7"/>
+ <Patch name="Rave Slice" hbank="84" lbank="1" prog="8"/>
+ <Patch name="Blow Hit" hbank="81" lbank="1" prog="59"/>
+ <Patch name="4 Hits 4 You" hbank="81" lbank="1" prog="69"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Winds">
+ <Patch name="Oboe mf" hbank="81" lbank="1" prog="102"/>
+ <Patch name="Oboe Express" hbank="81" lbank="1" prog="103"/>
+ <Patch name="Oboe" hbank="81" lbank="3" prog="68"/>
+ <Patch name="English Horn" hbank="81" lbank="3" prog="69"/>
+ <Patch name="Bassoon" hbank="81" lbank="3" prog="70"/>
+ <Patch name="Clarinet mp" hbank="81" lbank="1" prog="104"/>
+ <Patch name="ClariExpress" hbank="81" lbank="1" prog="105"/>
+ <Patch name="Clarinet" hbank="81" lbank="3" prog="71"/>
+ <Patch name="ChamberWinds" hbank="81" lbank="1" prog="107"/>
+ <Patch name="ChamberWoods" hbank="81" lbank="1" prog="108"/>
+ <Patch name="Mitzva Spit" hbank="81" lbank="1" prog="106"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Flute, Piccolo">
+ <Patch name="Legato Flute" hbank="84" lbank="0" prog="49"/>
+ <Patch name="Flute" hbank="81" lbank="1" prog="94"/>
+ <Patch name="Flute" hbank="81" lbank="3" prog="73"/>
+ <Patch name="Flute 2080" hbank="81" lbank="4" prog="51"/>
+ <Patch name="Touch Flute" hbank="84" lbank="0" prog="50"/>
+ <Patch name="DEMO Flute" hbank="84" lbank="1" prog="114"/>
+ <Patch name="Fifth Flute" hbank="84" lbank="0" prog="56"/>
+ <Patch name="Piccolo" hbank="81" lbank="1" prog="95"/>
+ <Patch name="Piccolo" hbank="81" lbank="3" prog="72"/>
+ <Patch name="Pan Pipes" hbank="81" lbank="1" prog="98"/>
+ <Patch name="Pan Flute" hbank="81" lbank="3" prog="75"/>
+ <Patch name="Bottle Blow" hbank="81" lbank="3" prog="76"/>
+ <Patch name="Air Lead" hbank="81" lbank="1" prog="97"/>
+ <Patch name="Recorder" hbank="81" lbank="3" prog="74"/>
+ <Patch name="Ocarina" hbank="81" lbank="3" prog="79"/>
+ <Patch name="Whistle" hbank="81" lbank="3" prog="78"/>
+ <Patch name="VOX Flute" hbank="81" lbank="1" prog="96"/>
+ <Patch name="Scat Flute" hbank="81" lbank="4" prog="52"/>
+ <Patch name="NewAge Flute" hbank="84" lbank="0" prog="51"/>
+ <Patch name="Cosmic Flute" hbank="84" lbank="0" prog="57"/>
+ <Patch name="Flute inMist" hbank="84" lbank="0" prog="52"/>
+ <Patch name="Flute &amp; Cla" hbank="84" lbank="0" prog="54"/>
+ <Patch name="Hybrid Flute" hbank="84" lbank="0" prog="53"/>
+ <Patch name="ChristmasFlt" hbank="84" lbank="0" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Brass">
+ <Patch name="SessionBrass" hbank="84" lbank="0" prog="33"/>
+ <Patch name="E.Coast Brs" hbank="84" lbank="0" prog="37"/>
+ <Patch name="R&amp;R Brass" hbank="84" lbank="0" prog="35"/>
+ <Patch name="Port.Tpts" hbank="84" lbank="0" prog="34"/>
+ <Patch name="Brass Sect" hbank="81" lbank="2" prog="3"/>
+ <Patch name="Tpt Sect" hbank="81" lbank="1" prog="126"/>
+ <Patch name="Brass 1" hbank="81" lbank="3" prog="61"/>
+ <Patch name="DEMO Brass" hbank="84" lbank="1" prog="111"/>
+ <Patch name="Echo Brass" hbank="84" lbank="0" prog="36"/>
+ <Patch name="Royale" hbank="81" lbank="4" prog="56"/>
+ <Patch name="Sm.Brass Grp" hbank="81" lbank="4" prog="55"/>
+ <Patch name="Tp&amp;Sax Sect" hbank="81" lbank="2" prog="1"/>
+ <Patch name="Sax+Tp+Tb" hbank="81" lbank="2" prog="2"/>
+ <Patch name="Hybrid Bones" hbank="81" lbank="2" prog="5"/>
+ <Patch name="Bop Soli" hbank="84" lbank="0" prog="38"/>
+ <Patch name="Orchestral" hbank="84" lbank="0" prog="40"/>
+ <Patch name="Noble Horns" hbank="81" lbank="2" prog="6"/>
+ <Patch name="Horn Swell" hbank="81" lbank="2" prog="8"/>
+ <Patch name="Massed Horns" hbank="81" lbank="2" prog="7"/>
+ <Patch name="French Horn" hbank="81" lbank="3" prog="60"/>
+ <Patch name="Majetic Tpt" hbank="81" lbank="1" prog="123"/>
+ <Patch name="Voluntare" hbank="81" lbank="1" prog="124"/>
+ <Patch name="Tpt Soloist" hbank="84" lbank="0" prog="42"/>
+ <Patch name="Legato Tpt" hbank="84" lbank="0" prog="43"/>
+ <Patch name="Dyno Trumpet" hbank="84" lbank="0" prog="44"/>
+ <Patch name="DEMO Tpt" hbank="84" lbank="1" prog="113"/>
+ <Patch name="Trumpet" hbank="81" lbank="3" prog="56"/>
+ <Patch name="Ballad Trump" hbank="81" lbank="4" prog="54"/>
+ <Patch name="2Trumpets" hbank="81" lbank="1" prog="125"/>
+ <Patch name="Ethno-Trumps" hbank="84" lbank="0" prog="45"/>
+ <Patch name="Harmon Mute" hbank="81" lbank="2" prog="0"/>
+ <Patch name="Mute TP mod" hbank="81" lbank="1" prog="127"/>
+ <Patch name="MutedTrumpet" hbank="81" lbank="3" prog="59"/>
+ <Patch name="Brass Mutes" hbank="81" lbank="4" prog="57"/>
+ <Patch name="Trombone" hbank="81" lbank="2" prog="4"/>
+ <Patch name="Trombone" hbank="81" lbank="3" prog="57"/>
+ <Patch name="Tuba" hbank="81" lbank="3" prog="58"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Brass">
+ <Patch name="3 Osc Brass" hbank="81" lbank="4" prog="59"/>
+ <Patch name="Poly Brass" hbank="81" lbank="0" prog="67"/>
+ <Patch name="P5 Polymod" hbank="81" lbank="4" prog="60"/>
+ <Patch name="Brass It!" hbank="81" lbank="2" prog="9"/>
+ <Patch name="Brass Attack" hbank="81" lbank="2" prog="10"/>
+ <Patch name="Archimede" hbank="81" lbank="2" prog="11"/>
+ <Patch name="Synergy Brs" hbank="84" lbank="1" prog="24"/>
+ <Patch name="Rugby Horn" hbank="81" lbank="2" prog="12"/>
+ <Patch name="MKS-80 Brass" hbank="81" lbank="2" prog="13"/>
+ <Patch name="Synth Brass1" hbank="81" lbank="3" prog="62"/>
+ <Patch name="Synth Brass2" hbank="81" lbank="3" prog="63"/>
+ <Patch name="True ANALOG" hbank="81" lbank="2" prog="14"/>
+ <Patch name="Afro Horns" hbank="81" lbank="2" prog="66"/>
+ <Patch name="Breathy Brs" hbank="81" lbank="4" prog="58"/>
+ <Patch name="Triumph Brs" hbank="81" lbank="4" prog="61"/>
+ <Patch name="Octalog Hrn" hbank="84" lbank="0" prog="41"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sax">
+ <Patch name="Soprano Sax" hbank="81" lbank="3" prog="64"/>
+ <Patch name="Sop.Sax mf" hbank="81" lbank="1" prog="110"/>
+ <Patch name="Alto Sax" hbank="81" lbank="1" prog="111"/>
+ <Patch name="AltoLead Sax" hbank="81" lbank="1" prog="112"/>
+ <Patch name="Alto Sax" hbank="81" lbank="3" prog="65"/>
+ <Patch name="Super Tenor" hbank="84" lbank="0" prog="46"/>
+ <Patch name="TenorExpress" hbank="84" lbank="0" prog="47"/>
+ <Patch name="T.Sax f" hbank="84" lbank="0" prog="48"/>
+ <Patch name="DEMO Tenor" hbank="84" lbank="1" prog="112"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="1" prog="113"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="3" prog="66"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="1" prog="114"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="3" prog="67"/>
+ <Patch name="Soft Saxes" hbank="84" lbank="0" prog="39"/>
+ <Patch name="Sax Section" hbank="81" lbank="1" prog="116"/>
+ <Patch name="Bigband Sax" hbank="81" lbank="1" prog="117"/>
+ <Patch name="Take A Tenor" hbank="81" lbank="1" prog="115"/>
+ <Patch name="Sax Choir" hbank="81" lbank="4" prog="53"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Hard Synth Lead">
+ <Patch name="Pulse Lead 1" hbank="81" lbank="1" prog="88"/>
+ <Patch name="Little Devil" hbank="81" lbank="1" prog="90"/>
+ <Patch name="Square Wave" hbank="81" lbank="3" prog="80"/>
+ <Patch name="Sawteeth" hbank="81" lbank="1" prog="84"/>
+ <Patch name="FXM Saw Lead" hbank="81" lbank="1" prog="83"/>
+ <Patch name="Saw Wave" hbank="81" lbank="3" prog="81"/>
+ <Patch name="Loud SynLead" hbank="81" lbank="1" prog="91"/>
+ <Patch name="5th Saw Wave" hbank="81" lbank="3" prog="86"/>
+ <Patch name="MG Solo" hbank="81" lbank="1" prog="82"/>
+ <Patch name="MG Interval" hbank="81" lbank="1" prog="87"/>
+ <Patch name="Eurotek Clav" hbank="84" lbank="0" prog="121"/>
+ <Patch name="Progresso Ld" hbank="81" lbank="4" prog="88"/>
+ <Patch name="Trangoa Wave" hbank="84" lbank="1" prog="1"/>
+ <Patch name="Raw PWM" hbank="84" lbank="1" prog="84"/>
+ <Patch name="5th Lead" hbank="81" lbank="1" prog="93"/>
+ <Patch name="Wormy Lead" hbank="84" lbank="1" prog="80"/>
+ <Patch name="Tweedles" hbank="84" lbank="1" prog="83"/>
+ <Patch name="Edye Boost" hbank="81" lbank="1" prog="81"/>
+ <Patch name="Adrenaline" hbank="81" lbank="4" prog="89"/>
+ <Patch name="Analog Lead" hbank="81" lbank="1" prog="92"/>
+ <Patch name="Bu" hbank="84" lbank="0" prog="124"/>
+ <Patch name="On the move!" hbank="84" lbank="1" prog="43"/>
+ <Patch name="Dirty Lead" hbank="84" lbank="1" prog="86"/>
+ <Patch name="Charang" hbank="81" lbank="3" prog="84"/>
+ <Patch name="Bass &amp; Lead" hbank="81" lbank="3" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Synth Lead">
+ <Patch name="SquareLead 1" hbank="81" lbank="1" prog="76"/>
+ <Patch name="Syn.Calliope" hbank="81" lbank="3" prog="82"/>
+ <Patch name="X..? Whistle" hbank="81" lbank="4" prog="86"/>
+ <Patch name="Solo Vox" hbank="81" lbank="3" prog="85"/>
+ <Patch name="Caliolead" hbank="84" lbank="1" prog="82"/>
+ <Patch name="SquareLead 2" hbank="81" lbank="1" prog="77"/>
+ <Patch name="Warm Pipe" hbank="81" lbank="4" prog="83"/>
+ <Patch name="Atmo Lead" hbank="84" lbank="1" prog="81"/>
+ <Patch name="Pure Pipe" hbank="81" lbank="4" prog="84"/>
+ <Patch name="WhistlinAtom" hbank="81" lbank="1" prog="80"/>
+ <Patch name="Belly Lead" hbank="81" lbank="1" prog="79"/>
+ <Patch name="Smoothe" hbank="81" lbank="1" prog="85"/>
+ <Patch name="You and Luck" hbank="81" lbank="1" prog="78"/>
+ <Patch name="Pulse Lead 2" hbank="81" lbank="1" prog="89"/>
+ <Patch name="MG Lead" hbank="81" lbank="1" prog="86"/>
+ <Patch name="Chiffer Lead" hbank="81" lbank="3" prog="83"/>
+ <Patch name="SH-2000" hbank="81" lbank="4" prog="85"/>
+ <Patch name="Jay Vee Solo" hbank="81" lbank="4" prog="87"/>
+ <Patch name="Voc Solo 5th" hbank="84" lbank="1" prog="85"/>
+ <Patch name="DEMO SynLead" hbank="84" lbank="1" prog="123"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Techno Synth">
+ <Patch name="Raver Circus" hbank="84" lbank="1" prog="33"/>
+ <Patch name="Eurotek Brs" hbank="84" lbank="1" prog="23"/>
+ <Patch name="DanceStack 1" hbank="84" lbank="1" prog="15"/>
+ <Patch name="DanceStack 2" hbank="84" lbank="1" prog="16"/>
+ <Patch name="DanceStack 3" hbank="84" lbank="1" prog="17"/>
+ <Patch name="DanceStack 4" hbank="84" lbank="1" prog="18"/>
+ <Patch name="DanceStack 5" hbank="84" lbank="1" prog="19"/>
+ <Patch name="DanceStack 6" hbank="84" lbank="1" prog="20"/>
+ <Patch name="DanceStack 7" hbank="84" lbank="1" prog="21"/>
+ <Patch name="DanceStack 8" hbank="84" lbank="1" prog="22"/>
+ <Patch name="Big BPF" hbank="81" lbank="2" prog="102"/>
+ <Patch name="Systekno" hbank="84" lbank="1" prog="42"/>
+ <Patch name="B'on d'moov!" hbank="81" lbank="4" prog="75"/>
+ <Patch name="Mental Chord" hbank="81" lbank="4" prog="65"/>
+ <Patch name="House Chord" hbank="81" lbank="4" prog="66"/>
+ <Patch name="Auto TB-303" hbank="81" lbank="1" prog="47"/>
+ <Patch name="Dist TB-303" hbank="81" lbank="4" prog="76"/>
+ <Patch name="Resojuice" hbank="81" lbank="4" prog="74"/>
+ <Patch name="Keep :-)" hbank="81" lbank="4" prog="73"/>
+ <Patch name="Dope Resoclv" hbank="84" lbank="0" prog="122"/>
+ <Patch name="Rezoid" hbank="81" lbank="1" prog="57"/>
+ <Patch name="Tekno Juno" hbank="84" lbank="0" prog="123"/>
+ <Patch name="Phazerave" hbank="84" lbank="1" prog="14"/>
+ <Patch name="Tekno Square" hbank="84" lbank="1" prog="30"/>
+ <Patch name="Raverborg" hbank="81" lbank="1" prog="58"/>
+ <Patch name="Airplaane" hbank="81" lbank="1" prog="99"/>
+ <Patch name="Trance VoXxX" hbank="84" lbank="1" prog="31"/>
+ <Patch name="TeknoSoloVox" hbank="81" lbank="1" prog="66"/>
+ <Patch name="Random Rave" hbank="84" lbank="1" prog="32"/>
+ <Patch name="Resorave" hbank="84" lbank="1" prog="34"/>
+ <Patch name="Pick It" hbank="81" lbank="1" prog="63"/>
+ <Patch name="House Piano" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Velo Tekno 2" hbank="81" lbank="1" prog="56"/>
+ <Patch name="Analog Seq" hbank="81" lbank="1" prog="64"/>
+ <Patch name="Sequalog" hbank="81" lbank="4" prog="67"/>
+ <Patch name="Intentions" hbank="81" lbank="1" prog="62"/>
+ <Patch name="Seq Mallet" hbank="81" lbank="1" prog="61"/>
+ <Patch name="Plik-Plok" hbank="81" lbank="4" prog="70"/>
+ <Patch name="Booster Bips" hbank="81" lbank="4" prog="68"/>
+ <Patch name="VintagePlunk" hbank="81" lbank="4" prog="69"/>
+ <Patch name="RingSequence" hbank="81" lbank="4" prog="71"/>
+ <Patch name="Cyber Swing" hbank="81" lbank="4" prog="72"/>
+ <Patch name="Hihat Tekno" hbank="81" lbank="1" prog="48"/>
+ <Patch name="Impact Vox" hbank="81" lbank="1" prog="65"/>
+ <Patch name="Techno Dream" hbank="81" lbank="4" prog="62"/>
+ <Patch name="Organizer" hbank="81" lbank="4" prog="63"/>
+ <Patch name="Civilization" hbank="81" lbank="4" prog="64"/>
+ <Patch name="Velo Tekno 1" hbank="81" lbank="1" prog="49"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Pulsating Synth">
+ <Patch name="Alternative" hbank="81" lbank="1" prog="45"/>
+ <Patch name="Acid Line" hbank="81" lbank="1" prog="46"/>
+ <Patch name="Raggatronic" hbank="81" lbank="1" prog="50"/>
+ <Patch name="Blade Racer" hbank="81" lbank="1" prog="51"/>
+ <Patch name="S&amp;H Pad" hbank="81" lbank="1" prog="52"/>
+ <Patch name="Happy LFOs" hbank="84" lbank="1" prog="77"/>
+ <Patch name="Syncrosonix" hbank="81" lbank="1" prog="53"/>
+ <Patch name="Fooled Again" hbank="81" lbank="1" prog="54"/>
+ <Patch name="Aero Insect" hbank="84" lbank="1" prog="78"/>
+ <Patch name="Beat Sweeper" hbank="84" lbank="1" prog="79"/>
+ <Patch name="Alive" hbank="81" lbank="1" prog="55"/>
+ <Patch name="DEMO Insect" hbank="84" lbank="1" prog="124"/>
+ <Patch name="X-Mod Man" hbank="81" lbank="1" prog="67"/>
+ <Patch name="Paz &lt;==&gt; Zap" hbank="81" lbank="1" prog="68"/>
+ <Patch name="Flying Walt" hbank="81" lbank="2" prog="98"/>
+ <Patch name="Strobe Mode" hbank="81" lbank="2" prog="92"/>
+ <Patch name="Albion" hbank="81" lbank="2" prog="93"/>
+ <Patch name="Planet Asia" hbank="81" lbank="4" prog="78"/>
+ <Patch name="Afterlife" hbank="81" lbank="4" prog="79"/>
+ <Patch name="Running Pad" hbank="81" lbank="2" prog="94"/>
+ <Patch name="Pulsatronic" hbank="81" lbank="4" prog="81"/>
+ <Patch name="Trancing Pad" hbank="81" lbank="4" prog="80"/>
+ <Patch name="LFO Vox" hbank="81" lbank="2" prog="33"/>
+ <Patch name="Cyber Dreams" hbank="81" lbank="4" prog="82"/>
+ <Patch name="Stepped Pad" hbank="81" lbank="2" prog="95"/>
+ <Patch name="Random Pad" hbank="81" lbank="2" prog="96"/>
+ <Patch name="SoundtrkDANC" hbank="81" lbank="2" prog="97"/>
+ <Patch name="Phazweep" hbank="81" lbank="2" prog="101"/>
+ <Patch name="Goblin" hbank="81" lbank="3" prog="101"/>
+ <Patch name="Temple of JV" hbank="81" lbank="4" prog="77"/>
+ <Patch name="XP'ration" hbank="84" lbank="1" prog="44"/>
+ <Patch name="DEMO SynPuls" hbank="84" lbank="1" prog="108"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth FX">
+ <Patch name="Vanishing" hbank="81" lbank="2" prog="99"/>
+ <Patch name="Shining Veil" hbank="84" lbank="1" prog="72"/>
+ <Patch name="Vektogram" hbank="81" lbank="2" prog="108"/>
+ <Patch name="Cascade" hbank="81" lbank="2" prog="111"/>
+ <Patch name="Shattered" hbank="81" lbank="2" prog="112"/>
+ <Patch name="Pure Tibet" hbank="81" lbank="2" prog="114"/>
+ <Patch name="Sands ofTime" hbank="81" lbank="2" prog="106"/>
+ <Patch name="NextFrontier" hbank="81" lbank="2" prog="113"/>
+ <Patch name="Inertia" hbank="81" lbank="2" prog="107"/>
+ <Patch name="RiversOfTime" hbank="81" lbank="4" prog="116"/>
+ <Patch name="Atlantis 2" hbank="84" lbank="1" prog="65"/>
+ <Patch name="Rize Mass" hbank="84" lbank="1" prog="51"/>
+ <Patch name="Glistening" hbank="81" lbank="4" prog="120"/>
+ <Patch name="Perelandra" hbank="84" lbank="1" prog="66"/>
+ <Patch name="Stepflanger" hbank="84" lbank="1" prog="76"/>
+ <Patch name="Plutonium" hbank="84" lbank="1" prog="67"/>
+ <Patch name="Metal Dreams" hbank="84" lbank="1" prog="69"/>
+ <Patch name="Glass Clouds" hbank="84" lbank="1" prog="70"/>
+ <Patch name="Portent" hbank="84" lbank="1" prog="52"/>
+ <Patch name="Big Vectors" hbank="84" lbank="1" prog="56"/>
+ <Patch name="DCO Sweeper" hbank="84" lbank="1" prog="53"/>
+ <Patch name="Sweep Rain" hbank="84" lbank="1" prog="54"/>
+ <Patch name="Sweep Stack" hbank="84" lbank="1" prog="55"/>
+ <Patch name="Alchemy" hbank="84" lbank="1" prog="58"/>
+ <Patch name="Striking 5th" hbank="84" lbank="1" prog="74"/>
+ <Patch name="Meow 5ths" hbank="84" lbank="1" prog="75"/>
+ <Patch name="Ethereal JX" hbank="84" lbank="1" prog="73"/>
+ <Patch name="Harmonicloud" hbank="84" lbank="1" prog="71"/>
+ <Patch name="Feedback VOX" hbank="81" lbank="2" prog="110"/>
+ <Patch name="Chime Wash" hbank="81" lbank="2" prog="115"/>
+ <Patch name="Nautilus" hbank="84" lbank="1" prog="68"/>
+ <Patch name="Creation" hbank="84" lbank="1" prog="98"/>
+ <Patch name="Phobos" hbank="81" lbank="4" prog="117"/>
+ <Patch name="Terminate" hbank="81" lbank="2" prog="127"/>
+ <Patch name="2 0 8 0" hbank="81" lbank="4" prog="118"/>
+ <Patch name="Crash Pad" hbank="81" lbank="2" prog="109"/>
+ <Patch name="Tortured" hbank="81" lbank="2" prog="117"/>
+ <Patch name="O-Zu-Nu" hbank="84" lbank="1" prog="36"/>
+ <Patch name="Sci-Fi Str" hbank="81" lbank="4" prog="121"/>
+ <Patch name="DelaySession" hbank="84" lbank="0" prog="117"/>
+ <Patch name="Night Shade" hbank="81" lbank="2" prog="116"/>
+ <Patch name="Unearthly" hbank="81" lbank="4" prog="119"/>
+ <Patch name="Dunes" hbank="81" lbank="2" prog="119"/>
+ <Patch name="Ice Hall" hbank="81" lbank="2" prog="124"/>
+ <Patch name="Cyber Space" hbank="81" lbank="2" prog="121"/>
+ <Patch name="Dissimilate" hbank="81" lbank="2" prog="118"/>
+ <Patch name="Ocean Floor" hbank="81" lbank="2" prog="120"/>
+ <Patch name="Helium Queen" hbank="81" lbank="4" prog="123"/>
+ <Patch name="Shadows" hbank="81" lbank="4" prog="122"/>
+ <Patch name="Boostweeper1" hbank="84" lbank="1" prog="87"/>
+ <Patch name="Boostweeper2" hbank="84" lbank="1" prog="88"/>
+ <Patch name="Biosphere" hbank="81" lbank="2" prog="122"/>
+ <Patch name="Computer Room" hbank="81" lbank="2" prog="125"/>
+ <Patch name="Cyberjunkie" hbank="84" lbank="1" prog="99"/>
+ <Patch name="Sci-Fi FX x4" hbank="81" lbank="4" prog="124"/>
+ <Patch name="Shine on" hbank="84" lbank="1" prog="101"/>
+ <Patch name="Variable Run" hbank="81" lbank="2" prog="123"/>
+ <Patch name="Sci-Fi Bells" hbank="84" lbank="1" prog="100"/>
+ <Patch name="Inverted" hbank="81" lbank="2" prog="126"/>
+ <Patch name="Breath Noise" hbank="81" lbank="3" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Poly Synth">
+ <Patch name="Poly Key" hbank="81" lbank="0" prog="61"/>
+ <Patch name="Poly Saws" hbank="81" lbank="0" prog="62"/>
+ <Patch name="Polysynth" hbank="81" lbank="3" prog="90"/>
+ <Patch name="Poly Pulse" hbank="81" lbank="0" prog="63"/>
+ <Patch name="Dual Profs" hbank="81" lbank="0" prog="64"/>
+ <Patch name="Saw Mass" hbank="81" lbank="0" prog="65"/>
+ <Patch name="Big Mess Pad" hbank="84" lbank="1" prog="11"/>
+ <Patch name="Poly Split" hbank="81" lbank="0" prog="66"/>
+ <Patch name="Poly Rock" hbank="81" lbank="0" prog="69"/>
+ <Patch name="Puff 1080" hbank="81" lbank="0" prog="76"/>
+ <Patch name="Stackoid" hbank="81" lbank="0" prog="68"/>
+ <Patch name="Echo Juno" hbank="84" lbank="1" prog="13"/>
+ <Patch name="Pulse Key" hbank="81" lbank="0" prog="88"/>
+ <Patch name="Wire Pad" hbank="81" lbank="4" prog="25"/>
+ <Patch name="Juno Harpsi" hbank="84" lbank="1" prog="10"/>
+ <Patch name="PhaseBlipper" hbank="81" lbank="4" prog="26"/>
+ <Patch name="Sweep Clav" hbank="81" lbank="4" prog="27"/>
+ <Patch name="Isn't Pretty" hbank="84" lbank="0" prog="126"/>
+ <Patch name="Polywasp" hbank="84" lbank="0" prog="127"/>
+ <Patch name="Slop-a-rama" hbank="84" lbank="0" prog="125"/>
+ <Patch name="Glider" hbank="81" lbank="4" prog="28"/>
+ <Patch name="Spiked Chee" hbank="84" lbank="1" prog="2"/>
+ <Patch name="Glassy Chee" hbank="84" lbank="1" prog="3"/>
+ <Patch name="Lazerette" hbank="84" lbank="1" prog="46"/>
+ <Patch name="Quixelate" hbank="84" lbank="1" prog="0"/>
+ <Patch name="Super 808Cow" hbank="84" lbank="1" prog="4"/>
+ <Patch name="Arpeggiatoid" hbank="84" lbank="1" prog="5"/>
+ <Patch name="Brightness" hbank="81" lbank="3" prog="100"/>
+ <Patch name="Fantasia" hbank="81" lbank="3" prog="88"/>
+ <Patch name="Ice Rain" hbank="81" lbank="3" prog="96"/>
+ <Patch name="JP6 Sqr Key" hbank="84" lbank="0" prog="108"/>
+ <Patch name="Square drops" hbank="84" lbank="0" prog="109"/>
+ <Patch name="Amazing Echo" hbank="84" lbank="0" prog="116"/>
+ <Patch name="Str Torture" hbank="84" lbank="1" prog="9"/>
+ <Patch name="PortaSynthex" hbank="84" lbank="1" prog="25"/>
+ <Patch name="Razor VCOs" hbank="84" lbank="1" prog="26"/>
+ <Patch name="Big PWM" hbank="84" lbank="1" prog="27"/>
+ <Patch name="Flutey Stack" hbank="84" lbank="1" prog="28"/>
+ <Patch name="Wobbly 5th" hbank="84" lbank="1" prog="29"/>
+ <Patch name="Flangomatic" hbank="84" lbank="1" prog="35"/>
+ <Patch name="Sub Divided" hbank="84" lbank="1" prog="37"/>
+ <Patch name="Fat Flange" hbank="84" lbank="1" prog="39"/>
+ <Patch name="Phaze NRG" hbank="84" lbank="1" prog="40"/>
+ <Patch name="Big Ensemble" hbank="84" lbank="1" prog="45"/>
+ <Patch name="Soli-na" hbank="84" lbank="1" prog="59"/>
+ <Patch name="90s Str Mach" hbank="84" lbank="1" prog="60"/>
+ <Patch name="Ancient Sqr" hbank="84" lbank="1" prog="38"/>
+ <Patch name="Progressive" hbank="84" lbank="1" prog="63"/>
+ <Patch name="Build-Up Syn" hbank="84" lbank="1" prog="64"/>
+ <Patch name="DEMO Bu" hbank="84" lbank="1" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bright Pad Synth">
+ <Patch name="Phazeslopad" hbank="84" lbank="1" prog="50"/>
+ <Patch name="Jet Stack" hbank="84" lbank="1" prog="49"/>
+ <Patch name="Combing Slow" hbank="84" lbank="1" prog="48"/>
+ <Patch name="Spectrum Mod" hbank="81" lbank="4" prog="108"/>
+ <Patch name="Stringsheen" hbank="81" lbank="4" prog="109"/>
+ <Patch name="Mod DirtyWav" hbank="81" lbank="4" prog="111"/>
+ <Patch name="Echo Drops" hbank="81" lbank="3" prog="102"/>
+ <Patch name="5th Sweep" hbank="81" lbank="2" prog="100"/>
+ <Patch name="Greek Power" hbank="81" lbank="2" prog="63"/>
+ <Patch name="MG Sweep" hbank="81" lbank="2" prog="103"/>
+ <Patch name="GR500 TmpDly" hbank="81" lbank="4" prog="110"/>
+ <Patch name="Silicon Str" hbank="81" lbank="4" prog="112"/>
+ <Patch name="Vintage Orch" hbank="81" lbank="2" prog="54"/>
+ <Patch name="Gigantalog" hbank="81" lbank="2" prog="56"/>
+ <Patch name="PWM Strings" hbank="81" lbank="2" prog="57"/>
+ <Patch name="Ultra Chee" hbank="84" lbank="1" prog="61"/>
+ <Patch name="JUNO Strings" hbank="81" lbank="2" prog="55"/>
+ <Patch name="Juno Power!" hbank="81" lbank="4" prog="107"/>
+ <Patch name="Pivotal Pad" hbank="81" lbank="2" prog="79"/>
+ <Patch name="Fantawine" hbank="81" lbank="2" prog="81"/>
+ <Patch name="Metal Pad" hbank="81" lbank="3" prog="93"/>
+ <Patch name="Star Theme" hbank="81" lbank="3" prog="103"/>
+ <Patch name="Harmonicum" hbank="81" lbank="2" prog="64"/>
+ <Patch name="D-50 Heaven" hbank="81" lbank="2" prog="65"/>
+ <Patch name="D50FantaPerc" hbank="81" lbank="4" prog="113"/>
+ <Patch name="Heirborne" hbank="81" lbank="2" prog="72"/>
+ <Patch name="Hush Pad" hbank="81" lbank="2" prog="73"/>
+ <Patch name="Halo Pad" hbank="81" lbank="3" prog="94"/>
+ <Patch name="RotoDreams" hbank="81" lbank="4" prog="114"/>
+ <Patch name="Mahoroba" hbank="84" lbank="0" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Pad Synth">
+ <Patch name="Earth Blow" hbank="81" lbank="4" prog="92"/>
+ <Patch name="Square Pad" hbank="81" lbank="2" prog="69"/>
+ <Patch name="JX SqrCarpet" hbank="81" lbank="4" prog="93"/>
+ <Patch name="JP-8 Hollow" hbank="81" lbank="2" prog="70"/>
+ <Patch name="JP-8Haunting" hbank="81" lbank="2" prog="71"/>
+ <Patch name="Silky Way" hbank="81" lbank="4" prog="98"/>
+ <Patch name="Rich Dynapad" hbank="81" lbank="4" prog="97"/>
+ <Patch name="Warm Pad" hbank="81" lbank="3" prog="89"/>
+ <Patch name="Warmth" hbank="81" lbank="2" prog="58"/>
+ <Patch name="Pop Pad" hbank="81" lbank="2" prog="67"/>
+ <Patch name="Gluey Pad" hbank="81" lbank="4" prog="99"/>
+ <Patch name="ORBit Pad" hbank="81" lbank="2" prog="59"/>
+ <Patch name="Syn.Strings1" hbank="81" lbank="3" prog="50"/>
+ <Patch name="Syn.Strings2" hbank="81" lbank="3" prog="51"/>
+ <Patch name="Juno-60 Pad" hbank="84" lbank="1" prog="62"/>
+ <Patch name="OctaPad" hbank="81" lbank="4" prog="106"/>
+ <Patch name="Poly Swell" hbank="84" lbank="1" prog="57"/>
+ <Patch name="E-Motion Pad" hbank="81" lbank="2" prog="52"/>
+ <Patch name="Translucence" hbank="81" lbank="4" prog="102"/>
+ <Patch name="Glassy Pad" hbank="81" lbank="2" prog="82"/>
+ <Patch name="Glass Blower" hbank="81" lbank="4" prog="91"/>
+ <Patch name="Dreamesque" hbank="81" lbank="2" prog="68"/>
+ <Patch name="Moving Glass" hbank="81" lbank="2" prog="83"/>
+ <Patch name="D'light" hbank="81" lbank="4" prog="104"/>
+ <Patch name="Glasswaves" hbank="81" lbank="2" prog="84"/>
+ <Patch name="ShiftedGlass" hbank="81" lbank="2" prog="86"/>
+ <Patch name="Bowed Glass" hbank="81" lbank="3" prog="92"/>
+ <Patch name="December Sky" hbank="81" lbank="4" prog="105"/>
+ <Patch name="Pulse Pad" hbank="81" lbank="2" prog="62"/>
+ <Patch name="Pulsify" hbank="81" lbank="2" prog="61"/>
+ <Patch name="Shiny Pad" hbank="81" lbank="2" prog="85"/>
+ <Patch name="Analog Drama" hbank="81" lbank="4" prog="96"/>
+ <Patch name="BandPass Mod" hbank="81" lbank="4" prog="100"/>
+ <Patch name="Dimensional" hbank="81" lbank="4" prog="94"/>
+ <Patch name="Phaze Str" hbank="81" lbank="2" prog="77"/>
+ <Patch name="Jupiterings" hbank="81" lbank="4" prog="95"/>
+ <Patch name="Fazed String" hbank="84" lbank="1" prog="47"/>
+ <Patch name="Jet Str Ens" hbank="81" lbank="2" prog="78"/>
+ <Patch name="Phaze Pad" hbank="81" lbank="2" prog="76"/>
+ <Patch name="Jet Pad 1" hbank="81" lbank="2" prog="74"/>
+ <Patch name="Jet Pad 2" hbank="81" lbank="2" prog="75"/>
+ <Patch name="Sweep Pad" hbank="81" lbank="3" prog="95"/>
+ <Patch name="3D Flanged" hbank="81" lbank="2" prog="80"/>
+ <Patch name="Dawn 2 Dusk" hbank="81" lbank="2" prog="90"/>
+ <Patch name="Aurora" hbank="81" lbank="2" prog="91"/>
+ <Patch name="Chime Pad" hbank="81" lbank="2" prog="87"/>
+ <Patch name="Spin Pad" hbank="81" lbank="2" prog="88"/>
+ <Patch name="Rotary Pad" hbank="81" lbank="2" prog="89"/>
+ <Patch name="Soundtrack" hbank="81" lbank="3" prog="97"/>
+ <Patch name="Soundtraque" hbank="81" lbank="4" prog="101"/>
+ <Patch name="Darkshine" hbank="81" lbank="4" prog="103"/>
+ <Patch name="DEMO 5thPad" hbank="84" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Vox, Choir">
+ <Patch name="Dark Vox" hbank="81" lbank="2" prog="15"/>
+ <Patch name="Angels Sing" hbank="81" lbank="2" prog="17"/>
+ <Patch name="Beauty Vox" hbank="81" lbank="2" prog="21"/>
+ <Patch name="Pvox Oooze" hbank="81" lbank="2" prog="18"/>
+ <Patch name="Dream Voices" hbank="84" lbank="0" prog="22"/>
+ <Patch name="SynVox" hbank="81" lbank="3" prog="54"/>
+ <Patch name="RandomVowels" hbank="81" lbank="2" prog="16"/>
+ <Patch name="Choir Aahs" hbank="81" lbank="3" prog="52"/>
+ <Patch name="Enlighten" hbank="81" lbank="4" prog="90"/>
+ <Patch name="Longing..." hbank="81" lbank="2" prog="19"/>
+ <Patch name="Arasian Morn" hbank="81" lbank="2" prog="20"/>
+ <Patch name="Mary-AnneVox" hbank="81" lbank="2" prog="22"/>
+ <Patch name="Belltree Vox" hbank="81" lbank="2" prog="23"/>
+ <Patch name="Vox Panner" hbank="81" lbank="2" prog="24"/>
+ <Patch name="Glass Voices" hbank="81" lbank="2" prog="26"/>
+ <Patch name="Tubular Vox" hbank="81" lbank="2" prog="27"/>
+ <Patch name="Space Voice" hbank="81" lbank="3" prog="91"/>
+ <Patch name="PercussiVox" hbank="84" lbank="0" prog="28"/>
+ <Patch name="Wavox" hbank="81" lbank="2" prog="29"/>
+ <Patch name="Velo Voxx" hbank="81" lbank="2" prog="28"/>
+ <Patch name="Vocal Ooh" hbank="81" lbank="2" prog="32"/>
+ <Patch name="Spaced Voxx" hbank="81" lbank="2" prog="25"/>
+ <Patch name="Phase Mmhs" hbank="84" lbank="0" prog="30"/>
+ <Patch name="Mysteriouso" hbank="84" lbank="0" prog="29"/>
+ <Patch name="Ivory Mist" hbank="84" lbank="0" prog="27"/>
+ <Patch name="AmbientStory" hbank="84" lbank="0" prog="31"/>
+ <Patch name="Venus" hbank="84" lbank="0" prog="32"/>
+ <Patch name="Phase Vox" hbank="84" lbank="1" prog="41"/>
+ <Patch name="Doos" hbank="81" lbank="2" prog="30"/>
+ <Patch name="Voice Oohs" hbank="81" lbank="3" prog="53"/>
+ <Patch name="Synvox Comps" hbank="81" lbank="2" prog="31"/>
+ <Patch name="Chorale" hbank="84" lbank="0" prog="24"/>
+ <Patch name="Str+Choir3" hbank="84" lbank="0" prog="20"/>
+ <Patch name="Space Men" hbank="84" lbank="0" prog="25"/>
+ <Patch name="DEMO Choir" hbank="84" lbank="1" prog="110"/>
+ <Patch name="Breathy Hum" hbank="84" lbank="0" prog="21"/>
+ <Patch name="Mmmms" hbank="84" lbank="0" prog="23"/>
+ <Patch name="Choir Mm+Aah" hbank="84" lbank="0" prog="26"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Plucked">
+ <Patch name="Sitar" hbank="81" lbank="0" prog="100"/>
+ <Patch name="Drone Split" hbank="81" lbank="0" prog="101"/>
+ <Patch name="Sitar" hbank="81" lbank="3" prog="104"/>
+ <Patch name="Dulcimer" hbank="81" lbank="0" prog="104"/>
+ <Patch name="Santur" hbank="81" lbank="3" prog="15"/>
+ <Patch name="East Europe" hbank="81" lbank="4" prog="39"/>
+ <Patch name="Dulcitar" hbank="81" lbank="4" prog="40"/>
+ <Patch name="Harp On It" hbank="81" lbank="2" prog="48"/>
+ <Patch name="Harp" hbank="81" lbank="2" prog="49"/>
+ <Patch name="Harp" hbank="81" lbank="3" prog="46"/>
+ <Patch name="Atmos Harp" hbank="81" lbank="4" prog="41"/>
+ <Patch name="Shamisen" hbank="81" lbank="3" prog="106"/>
+ <Patch name="Jamisen" hbank="81" lbank="0" prog="103"/>
+ <Patch name="Koto" hbank="81" lbank="3" prog="107"/>
+ <Patch name="Ethnopluck" hbank="81" lbank="0" prog="102"/>
+ <Patch name="Kalimba" hbank="81" lbank="3" prog="108"/>
+ <Patch name="Pilgrimage" hbank="81" lbank="4" prog="42"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Ethnic">
+ <Patch name="Shakuhachi" hbank="81" lbank="3" prog="77"/>
+ <Patch name="Taj Mahal" hbank="81" lbank="1" prog="100"/>
+ <Patch name="Raya Shaku" hbank="81" lbank="1" prog="101"/>
+ <Patch name="Shanai" hbank="81" lbank="3" prog="111"/>
+ <Patch name="Bag Pipe" hbank="81" lbank="3" prog="109"/>
+ <Patch name="French Bags" hbank="81" lbank="1" prog="122"/>
+ <Patch name="East Melody" hbank="81" lbank="0" prog="105"/>
+ <Patch name="Far East" hbank="81" lbank="4" prog="24"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Fretted Inst">
+ <Patch name="MandolinTrem" hbank="81" lbank="0" prog="106"/>
+ <Patch name="Banjo" hbank="81" lbank="3" prog="105"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Percussion">
+ <Patch name="CeremonyTimp" hbank="81" lbank="2" prog="104"/>
+ <Patch name="Timpani" hbank="81" lbank="3" prog="47"/>
+ <Patch name="Dyno Toms" hbank="81" lbank="2" prog="105"/>
+ <Patch name="Melo. Tom 1" hbank="81" lbank="3" prog="117"/>
+ <Patch name="Taiko" hbank="81" lbank="3" prog="116"/>
+ <Patch name="Agogo" hbank="81" lbank="3" prog="113"/>
+ <Patch name="Woodblock" hbank="81" lbank="3" prog="115"/>
+ <Patch name="Synth Drum" hbank="81" lbank="3" prog="118"/>
+ <Patch name="Reverse Cym." hbank="81" lbank="3" prog="119"/>
+ <Patch name="Perky Noize" hbank="81" lbank="4" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sound Effects">
+ <Patch name="Seashore" hbank="81" lbank="3" prog="122"/>
+ <Patch name="Seashore 2" hbank="84" lbank="1" prog="97"/>
+ <Patch name="Bird" hbank="81" lbank="3" prog="123"/>
+ <Patch name="Telephone 1" hbank="81" lbank="3" prog="124"/>
+ <Patch name="Helicopter" hbank="81" lbank="3" prog="125"/>
+ <Patch name="Applause" hbank="81" lbank="3" prog="126"/>
+ <Patch name="DEMO Crowd" hbank="84" lbank="1" prog="126"/>
+ <Patch name="Gun Shot" hbank="81" lbank="3" prog="127"/>
+ <Patch name="Droplet" hbank="81" lbank="4" prog="126"/>
+ <Patch name="Rain Forest" hbank="81" lbank="4" prog="127"/>
+ <Patch name="Analog Bomb" hbank="84" lbank="1" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Combination">
+ <Patch name="Blue Notes" hbank="81" lbank="4" prog="115"/>
+ <Patch name="Lounge Gig" hbank="81" lbank="0" prog="116"/>
+ <Patch name="Bs/Pno+Brs" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Hillbillys" hbank="81" lbank="1" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 001-032">
+ <Patch name="Tremendously" hbank="80" lbank="0" prog="0"/>
+ <Patch name="St.Concert" hbank="80" lbank="0" prog="1"/>
+ <Patch name="CyberTrance2" hbank="80" lbank="0" prog="2"/>
+ <Patch name="SessionNyln2" hbank="80" lbank="0" prog="3"/>
+ <Patch name="ViennaStrgs3" hbank="80" lbank="0" prog="4"/>
+ <Patch name="R&amp;R Brass" hbank="80" lbank="0" prog="5"/>
+ <Patch name="Velo Power" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Super Tenor" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Breathy Hum" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Ow Bass" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Dunes" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Celestial 2" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Tone Wh.Solo" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Poly Brs" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Combing Slow" hbank="80" lbank="0" prog="14"/>
+ <Patch name="SA Rhodes 5" hbank="80" lbank="0" prog="15"/>
+ <Patch name="Adrenaline" hbank="80" lbank="0" prog="16"/>
+ <Patch name="DanceStack 1" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Flying Walt" hbank="80" lbank="0" prog="18"/>
+ <Patch name="East Europe" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Silky Way" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Techno Dream" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Raverborg" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Pan Pipes" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Pretty Bells" hbank="80" lbank="0" prog="24"/>
+ <Patch name="Glistening" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Metal Solo" hbank="80" lbank="0" prog="26"/>
+ <Patch name="StateXLChrd2" hbank="80" lbank="0" prog="27"/>
+ <Patch name="Raggatronic" hbank="80" lbank="0" prog="28"/>
+ <Patch name="ChristmasFlt" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Acc.de Paris" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Dream Voices2" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 033-064">
+ <Patch name="VintageCall2" hbank="80" lbank="0" prog="32"/>
+ <Patch name="Trancing Pad" hbank="80" lbank="0" prog="33"/>
+ <Patch name="OldiesOrgan2" hbank="80" lbank="0" prog="34"/>
+ <Patch name="X..? Whistle" hbank="80" lbank="0" prog="35"/>
+ <Patch name="Analog Drama" hbank="80" lbank="0" prog="36"/>
+ <Patch name="BPF Lead" hbank="80" lbank="0" prog="37"/>
+ <Patch name="Clean Tele" hbank="80" lbank="0" prog="38"/>
+ <Patch name="Earth Blow" hbank="80" lbank="0" prog="39"/>
+ <Patch name="Pulsatronic" hbank="80" lbank="0" prog="40"/>
+ <Patch name="Funky Slap" hbank="80" lbank="0" prog="41"/>
+ <Patch name="Echo Rhodes" hbank="80" lbank="0" prog="42"/>
+ <Patch name="pp Harmonium" hbank="80" lbank="0" prog="43"/>
+ <Patch name="Blue Notes" hbank="80" lbank="0" prog="44"/>
+ <Patch name="Aurora" hbank="80" lbank="0" prog="45"/>
+ <Patch name="Breathy Brs" hbank="80" lbank="0" prog="46"/>
+ <Patch name="Enlighten" hbank="80" lbank="0" prog="47"/>
+ <Patch name="Tube Smoke" hbank="80" lbank="0" prog="48"/>
+ <Patch name="Perelandra" hbank="80" lbank="0" prog="49"/>
+ <Patch name="SquareLead 2" hbank="80" lbank="0" prog="50"/>
+ <Patch name="Shadows" hbank="80" lbank="0" prog="51"/>
+ <Patch name="Organizer" hbank="80" lbank="0" prog="52"/>
+ <Patch name="Full Orchest" hbank="80" lbank="0" prog="53"/>
+ <Patch name="B'on d'moov!" hbank="80" lbank="0" prog="54"/>
+ <Patch name="Sugar Bell 2" hbank="80" lbank="0" prog="55"/>
+ <Patch name="Player's EP" hbank="80" lbank="0" prog="56"/>
+ <Patch name="4pole Bass" hbank="80" lbank="0" prog="57"/>
+ <Patch name="Octapad" hbank="80" lbank="0" prog="58"/>
+ <Patch name="Tria Bells" hbank="80" lbank="0" prog="59"/>
+ <Patch name="Wire Pad" hbank="80" lbank="0" prog="60"/>
+ <Patch name="Singin'Mini" hbank="80" lbank="0" prog="61"/>
+ <Patch name="Heirborne" hbank="80" lbank="0" prog="62"/>
+ <Patch name="Trumpet" hbank="80" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 065-096">
+ <Patch name="Steel Away" hbank="80" lbank="0" prog="64"/>
+ <Patch name="D-50 Stack" hbank="80" lbank="0" prog="65"/>
+ <Patch name="Solo Strat" hbank="80" lbank="0" prog="66"/>
+ <Patch name="Soap Opera" hbank="80" lbank="0" prog="67"/>
+ <Patch name="Sop.Sax mf" hbank="80" lbank="0" prog="68"/>
+ <Patch name="Dimensional" hbank="80" lbank="0" prog="69"/>
+ <Patch name="Blusey OD" hbank="80" lbank="0" prog="70"/>
+ <Patch name="Stacc.Heaven" hbank="80" lbank="0" prog="71"/>
+ <Patch name="PhaseBlipper" hbank="80" lbank="0" prog="72"/>
+ <Patch name="Pure Tibet" hbank="80" lbank="0" prog="73"/>
+ <Patch name="Afterlife" hbank="80" lbank="0" prog="74"/>
+ <Patch name="Perky B" hbank="80" lbank="0" prog="75"/>
+ <Patch name="Juno Power!" hbank="80" lbank="0" prog="76"/>
+ <Patch name="SessionBrass" hbank="80" lbank="0" prog="77"/>
+ <Patch name="JX SqrCarpet" hbank="80" lbank="0" prog="78"/>
+ <Patch name="Phaser MC" hbank="80" lbank="0" prog="79"/>
+ <Patch name="Sweep Clav 2" hbank="80" lbank="0" prog="80"/>
+ <Patch name="BluesHarp" hbank="80" lbank="0" prog="81"/>
+ <Patch name="Scat Flute" hbank="80" lbank="0" prog="82"/>
+ <Patch name="5thPad 2" hbank="80" lbank="0" prog="83"/>
+ <Patch name="Belfry Chime" hbank="80" lbank="0" prog="84"/>
+ <Patch name="Atmos Harp" hbank="80" lbank="0" prog="85"/>
+ <Patch name="DesertCrystl" hbank="80" lbank="0" prog="86"/>
+ <Patch name="December Sky" hbank="80" lbank="0" prog="87"/>
+ <Patch name="Upright Pno" hbank="80" lbank="0" prog="88"/>
+ <Patch name="Darkshine" hbank="80" lbank="0" prog="89"/>
+ <Patch name="Exotic Velo" hbank="80" lbank="0" prog="90"/>
+ <Patch name="Atlantis 2" hbank="80" lbank="0" prog="91"/>
+ <Patch name="Creamy" hbank="80" lbank="0" prog="92"/>
+ <Patch name="Morning Lite" hbank="80" lbank="0" prog="93"/>
+ <Patch name="DanceStack 5" hbank="80" lbank="0" prog="94"/>
+ <Patch name="D50FantaPerc" hbank="80" lbank="0" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 097-128">
+ <Patch name="Resojuice" hbank="80" lbank="0" prog="96"/>
+ <Patch name="Silicon Str" hbank="80" lbank="0" prog="97"/>
+ <Patch name="Keep :-)" hbank="80" lbank="0" prog="98"/>
+ <Patch name="Sm.Brass Grp" hbank="80" lbank="0" prog="99"/>
+ <Patch name="Echo Piano" hbank="80" lbank="0" prog="100"/>
+ <Patch name="Heavenly Pad" hbank="80" lbank="0" prog="101"/>
+ <Patch name="Sequalog" hbank="80" lbank="0" prog="102"/>
+ <Patch name="Solo Steel" hbank="80" lbank="0" prog="103"/>
+ <Patch name="Spectrum Mod" hbank="80" lbank="0" prog="104"/>
+ <Patch name="Delicate EP" hbank="80" lbank="0" prog="105"/>
+ <Patch name="Triumph Brs" hbank="80" lbank="0" prog="106"/>
+ <Patch name="Flute" hbank="80" lbank="0" prog="107"/>
+ <Patch name="2.2 Bell Pad" hbank="80" lbank="0" prog="108"/>
+ <Patch name="JustLovely 2" hbank="80" lbank="0" prog="109"/>
+ <Patch name="GR500 TmpDly" hbank="80" lbank="0" prog="110"/>
+ <Patch name="Dawn 2 Dusk" hbank="80" lbank="0" prog="111"/>
+ <Patch name="Gluey Pad" hbank="80" lbank="0" prog="112"/>
+ <Patch name="SquareKeys 3" hbank="80" lbank="0" prog="113"/>
+ <Patch name="Arasian Morn" hbank="80" lbank="0" prog="114"/>
+ <Patch name="D'light" hbank="80" lbank="0" prog="115"/>
+ <Patch name="Perky Noize" hbank="80" lbank="0" prog="116"/>
+ <Patch name="Mod DirtyWav" hbank="80" lbank="0" prog="117"/>
+ <Patch name="Moving Glass" hbank="80" lbank="0" prog="118"/>
+ <Patch name="Sci-Fi Str" hbank="80" lbank="0" prog="119"/>
+ <Patch name="OD 5ths" hbank="80" lbank="0" prog="120"/>
+ <Patch name="Far East" hbank="80" lbank="0" prog="121"/>
+ <Patch name="Phobos" hbank="80" lbank="0" prog="122"/>
+ <Patch name="Cyber Dreams" hbank="80" lbank="0" prog="123"/>
+ <Patch name="Cave 2" hbank="80" lbank="0" prog="124"/>
+ <Patch name="Helium Queen" hbank="80" lbank="0" prog="125"/>
+ <Patch name="Rain Forest" hbank="80" lbank="0" prog="126"/>
+ <Patch name="Crowds" hbank="80" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_USER">
+ <Patch name="EasternSplit" hbank="80" lbank="0" prog="0"/>
+ <Patch name="Opening Orch" hbank="80" lbank="0" prog="1"/>
+ <Patch name="Feedback EP" hbank="80" lbank="0" prog="2"/>
+ <Patch name="Humming Vox" hbank="80" lbank="0" prog="3"/>
+ <Patch name="Tekno Loop 1" hbank="80" lbank="0" prog="4"/>
+ <Patch name="Fr.Horn Sect" hbank="80" lbank="0" prog="5"/>
+ <Patch name="SpaceCarrier" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Orchestral" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Nebular Vox" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Terminator" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Flying Ja" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Sweeper" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Rave Split" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Multi Sax" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Cosmic Dawn" hbank="80" lbank="0" prog="14"/>
+ <Patch name="Bass / Lead" hbank="80" lbank="0" prog="15"/>
+ <Patch name="S&amp;H / Pad" hbank="80" lbank="0" prog="16"/>
+ <Patch name="AcPiano+Pad" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Kicks Attack" hbank="80" lbank="0" prog="18"/>
+ <Patch name="Step Brass" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Drone / Pipe" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Chime Dreams" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Tekno Loop 2" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Big Band" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Labyrinth" hbank="80" lbank="0" prog="24"/>
+ <Patch name="White Hole" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Cyber Sweep" hbank="80" lbank="0" prog="26"/>
+ <Patch name="Tekno Asia" hbank="80" lbank="0" prog="27"/>
+ <Patch name="1080 Fantasy" hbank="80" lbank="0" prog="28"/>
+ <Patch name="Pop Ballad" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Rhythmatic" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Power JV" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-A">
+ <Patch name="House Set" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Analectro" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Anatronic" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Tekno Pop 1" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Tekno Pop 2" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Hard Core" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Hi Energy" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Pop Dance" hbank="81" lbank="0" prog="7"/>
+ <Patch name="Acid Set" hbank="81" lbank="0" prog="8"/>
+ <Patch name="Ambient Set" hbank="81" lbank="0" prog="9"/>
+ <Patch name="Electro Pop" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Pop Set 1" hbank="81" lbank="0" prog="11"/>
+ <Patch name="Pop Set 2" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Pop Set 3" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Pop Set 4" hbank="81" lbank="0" prog="14"/>
+ <Patch name="L.A. Ballad" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Hip Hop Set" hbank="81" lbank="0" prog="16"/>
+ <Patch name="Funk Rock" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Funk Fusion" hbank="81" lbank="0" prog="18"/>
+ <Patch name="Heavy Metal" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Heavy Kids" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Latin Set" hbank="81" lbank="0" prog="21"/>
+ <Patch name="BrazilianSet" hbank="81" lbank="0" prog="22"/>
+ <Patch name="New Age 1" hbank="81" lbank="0" prog="23"/>
+ <Patch name="New Age 2" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Orchestra" hbank="81" lbank="0" prog="25"/>
+ <Patch name="Concerto" hbank="81" lbank="0" prog="26"/>
+ <Patch name="Film Score 1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Film Score 2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Symphonic" hbank="81" lbank="0" prog="29"/>
+ <Patch name="Chamber Set" hbank="81" lbank="0" prog="30"/>
+ <Patch name="Baroque Set" hbank="81" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-B">
+ <Patch name="Africa" hbank="81" lbank="1" prog="0"/>
+ <Patch name="World Ethnic" hbank="81" lbank="1" prog="1"/>
+ <Patch name="Asian Ethnic" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Asian Band" hbank="81" lbank="1" prog="3"/>
+ <Patch name="60's Set" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Blues Band" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Country Band" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Folk Set" hbank="81" lbank="1" prog="7"/>
+ <Patch name="Reggae Band" hbank="81" lbank="1" prog="8"/>
+ <Patch name="FunkWah Band" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Funkin'Phaze" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Zydeco Band" hbank="81" lbank="1" prog="11"/>
+ <Patch name="New Orleans" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Dixieland" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Big Band Set" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Cont.Jazz 1" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Cont.Jazz 2" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Ac.Jazz Set" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Gospel Set" hbank="81" lbank="1" prog="18"/>
+ <Patch name="All Strings" hbank="81" lbank="1" prog="19"/>
+ <Patch name="All Brass" hbank="81" lbank="1" prog="20"/>
+ <Patch name="All Piano 1" hbank="81" lbank="1" prog="21"/>
+ <Patch name="All Piano 2" hbank="81" lbank="1" prog="22"/>
+ <Patch name="All Keyboard" hbank="81" lbank="1" prog="23"/>
+ <Patch name="All Organ" hbank="81" lbank="1" prog="24"/>
+ <Patch name="All Winds" hbank="81" lbank="1" prog="25"/>
+ <Patch name="All Bells" hbank="81" lbank="1" prog="26"/>
+ <Patch name="Mlt &amp; Perc" hbank="81" lbank="1" prog="27"/>
+ <Patch name="All Seq" hbank="81" lbank="1" prog="28"/>
+ <Patch name="All Bass" hbank="81" lbank="1" prog="29"/>
+ <Patch name="All Pad" hbank="81" lbank="1" prog="30"/>
+ <Patch name="All FX" hbank="81" lbank="1" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="HouseDrumSet" hbank="80" lbank="0" prog="0"/>
+ <Patch name="JazzDrumSet1" hbank="80" lbank="0" prog="1"/>
+ <Patch name="PopDrumSet 1" hbank="81" lbank="0" prog="0"/>
+ <Patch name="PopDrumSet 2" hbank="81" lbank="0" prog="1"/>
+ <Patch name="PowerDrumSet" hbank="81" lbank="1" prog="0"/>
+ <Patch name="RaveDrumSet" hbank="81" lbank="1" prog="1"/>
+ <Patch name="JazzDrumSet2" hbank="81" lbank="2" prog="0"/>
+ <Patch name="OrchDrumSet" hbank="81" lbank="2" prog="1"/>
+ <Patch name="GM Drum Set" hbank="81" lbank="3" prog="0"/>
+ <Patch name="BrushDrumSet" hbank="81" lbank="3" prog="1"/>
+ <Patch name="PowerDrmSet2" hbank="81" lbank="4" prog="0"/>
+ <Patch name="PowerRaveSet" hbank="81" lbank="4" prog="1"/>
+ <Patch name="SessionSet 1" hbank="84" lbank="0" prog="0"/>
+ <Patch name="SessionSet 2" hbank="84" lbank="0" prog="1"/>
+ <Patch name="SessionSet 3" hbank="84" lbank="0" prog="2"/>
+ <Patch name="SessionSet 4" hbank="84" lbank="0" prog="3"/>
+ <Patch name="SessionSet 5" hbank="84" lbank="0" prog="4"/>
+ <Patch name="SessionSet 6" hbank="84" lbank="0" prog="5"/>
+ <Patch name="SessionSet 7" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Demo Drum" hbank="84" lbank="0" prog="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse> \ No newline at end of file
diff --git a/muse_qt4_evolution/share/instruments/Roland-JV-1010-Country.idf b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Country.idf
new file mode 100644
index 00000000..5f8e4a96
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Country.idf
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland JV-1010 Country">
+ <Init>
+ </Init>
+ <PatchGroup name="Patches_Accordian">
+ <Patch name="Squeeze Box1" hbank="84" lbank="3" prog="105"/>
+ <Patch name="Squeeze Box2" hbank="84" lbank="3" prog="106"/>
+ <Patch name="Velo Squeeze" hbank="84" lbank="3" prog="107"/>
+ <Patch name="Squeeze Box3" hbank="84" lbank="3" prog="108"/>
+ <Patch name="Squeeze Box4" hbank="84" lbank="3" prog="109"/>
+ <Patch name="Accord Split" hbank="84" lbank="3" prog="110"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Harmonica, Blues Harp">
+ <Patch name="CountryHarp1" hbank="84" lbank="3" prog="97"/>
+ <Patch name="F# Harp" hbank="84" lbank="3" prog="98"/>
+ <Patch name="CountryHarp2" hbank="84" lbank="3" prog="99"/>
+ <Patch name="Country Harp" hbank="84" lbank="3" prog="100"/>
+ <Patch name="Suck'n'Blow" hbank="84" lbank="3" prog="101"/>
+ <Patch name="Harmo Blues" hbank="84" lbank="3" prog="102"/>
+ <Patch name="Ghostrider" hbank="84" lbank="3" prog="103"/>
+ <Patch name="Harp Choir" hbank="84" lbank="3" prog="104"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Guitar">
+ <Patch name="Ac.Guitars" hbank="84" lbank="2" prog="10"/>
+ <Patch name="Bright Gtrs" hbank="84" lbank="2" prog="11"/>
+ <Patch name="Sensible Gtr" hbank="84" lbank="2" prog="12"/>
+ <Patch name="Countryside" hbank="84" lbank="2" prog="13"/>
+ <Patch name="AcGtrStereo1" hbank="84" lbank="2" prog="14"/>
+ <Patch name="AcGtrDuo VSW" hbank="84" lbank="2" prog="15"/>
+ <Patch name="Real AcGtr 1" hbank="84" lbank="2" prog="16"/>
+ <Patch name="Real AcGtr 2" hbank="84" lbank="2" prog="17"/>
+ <Patch name="DynoAcoustic" hbank="84" lbank="2" prog="18"/>
+ <Patch name="AcGtrDeluxe" hbank="84" lbank="2" prog="19"/>
+ <Patch name="AcGtrStereo2" hbank="84" lbank="2" prog="20"/>
+ <Patch name="Bright Pick2" hbank="84" lbank="2" prog="21"/>
+ <Patch name="Compres'd AG" hbank="84" lbank="2" prog="22"/>
+ <Patch name="Two Brothers" hbank="84" lbank="2" prog="23"/>
+ <Patch name="AcGtr VSW" hbank="84" lbank="2" prog="24"/>
+ <Patch name="Steel Touch" hbank="84" lbank="2" prog="25"/>
+ <Patch name="Cowboy Gtr" hbank="84" lbank="2" prog="26"/>
+ <Patch name="Noizy Picker" hbank="84" lbank="2" prog="27"/>
+ <Patch name="Stereo Touch" hbank="84" lbank="2" prog="28"/>
+ <Patch name="AcGtr Dual" hbank="84" lbank="2" prog="29"/>
+ <Patch name="AcGtr Finger" hbank="84" lbank="2" prog="30"/>
+ <Patch name="AcGtr Pick" hbank="84" lbank="2" prog="31"/>
+ <Patch name="Pick Solo 1T" hbank="84" lbank="2" prog="32"/>
+ <Patch name="LA Folk" hbank="84" lbank="2" prog="33"/>
+ <Patch name="AcGtr Slide" hbank="84" lbank="2" prog="34"/>
+ <Patch name="Acoustic Wah" hbank="84" lbank="2" prog="35"/>
+ <Patch name="Shadow Gtr" hbank="84" lbank="2" prog="36"/>
+ <Patch name="12 Strings" hbank="84" lbank="2" prog="37"/>
+ <Patch name="Riverside" hbank="84" lbank="2" prog="38"/>
+ <Patch name="MelanCoustic" hbank="84" lbank="2" prog="39"/>
+ <Patch name="Voxy Twelve" hbank="84" lbank="2" prog="40"/>
+ <Patch name="Guitar Song" hbank="84" lbank="2" prog="41"/>
+ <Patch name="Ac. Ballad" hbank="84" lbank="2" prog="42"/>
+ <Patch name="Resonant Duo" hbank="84" lbank="2" prog="43"/>
+ <Patch name="ResonatorGT4" hbank="84" lbank="2" prog="44"/>
+ <Patch name="BlugrasSlide" hbank="84" lbank="2" prog="45"/>
+ <Patch name="VelBendReso." hbank="84" lbank="2" prog="46"/>
+ <Patch name="Velo Reso." hbank="84" lbank="2" prog="47"/>
+ <Patch name="Reso.Guitar2" hbank="84" lbank="2" prog="48"/>
+ <Patch name="Reso.Ballad" hbank="84" lbank="2" prog="49"/>
+ <Patch name="Reso. Pick 1" hbank="84" lbank="2" prog="50"/>
+ <Patch name="Reso. Touch" hbank="84" lbank="2" prog="51"/>
+ <Patch name="Reso.Guitar3" hbank="84" lbank="2" prog="52"/>
+ <Patch name="Reso.Gtr VSW" hbank="84" lbank="2" prog="53"/>
+ <Patch name="Reso. Pick 2" hbank="84" lbank="2" prog="54"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Guitar">
+ <Patch name="GtrFX Menu" hbank="84" lbank="2" prog="8"/>
+ <Patch name="Country Efx" hbank="84" lbank="2" prog="9"/>
+ <Patch name="Tele Frnt PU" hbank="84" lbank="2" prog="98"/>
+ <Patch name="Tele Rear PU" hbank="84" lbank="2" prog="99"/>
+ <Patch name="Terry Rear" hbank="84" lbank="2" prog="100"/>
+ <Patch name="Terry Front" hbank="84" lbank="2" prog="101"/>
+ <Patch name="Tell-A-Castr" hbank="84" lbank="2" prog="102"/>
+ <Patch name="Mello Tele" hbank="84" lbank="2" prog="103"/>
+ <Patch name="DynaChrsTele" hbank="84" lbank="2" prog="104"/>
+ <Patch name="SwitchinTele" hbank="84" lbank="2" prog="105"/>
+ <Patch name="Slow Rotary" hbank="84" lbank="2" prog="106"/>
+ <Patch name="Peaks Gtr" hbank="84" lbank="2" prog="107"/>
+ <Patch name="Aerial Guitr" hbank="84" lbank="2" prog="108"/>
+ <Patch name="Mellow Peaks" hbank="84" lbank="2" prog="109"/>
+ <Patch name="SDE2000 Tele" hbank="84" lbank="2" prog="110"/>
+ <Patch name="GlossyStrata" hbank="84" lbank="2" prog="111"/>
+ <Patch name="Clean Strat" hbank="84" lbank="2" prog="112"/>
+ <Patch name="Dyna Strat" hbank="84" lbank="2" prog="113"/>
+ <Patch name="Chunky Strat" hbank="84" lbank="2" prog="114"/>
+ <Patch name="Stumpy Strat" hbank="84" lbank="2" prog="115"/>
+ <Patch name="Strat Rear" hbank="84" lbank="2" prog="116"/>
+ <Patch name="Strat Comp" hbank="84" lbank="2" prog="117"/>
+ <Patch name="Crying ja" hbank="84" lbank="2" prog="118"/>
+ <Patch name="Wild Pikker" hbank="84" lbank="2" prog="119"/>
+ <Patch name="Electric 12" hbank="84" lbank="2" prog="120"/>
+ <Patch name="Country 12Gt" hbank="84" lbank="2" prog="121"/>
+ <Patch name="Touch Driver" hbank="84" lbank="2" prog="122"/>
+ <Patch name="My 335 No.1" hbank="84" lbank="2" prog="123"/>
+ <Patch name="Root 335" hbank="84" lbank="2" prog="124"/>
+ <Patch name="335 Pick" hbank="84" lbank="2" prog="125"/>
+ <Patch name="Velo 335" hbank="84" lbank="2" prog="126"/>
+ <Patch name="Plugged Gtr" hbank="84" lbank="2" prog="127"/>
+ <Patch name="T-Arm Vib Gt" hbank="84" lbank="3" prog="0"/>
+ <Patch name="EG DynaPick1" hbank="84" lbank="3" prog="1"/>
+ <Patch name="EG DynaPick2" hbank="84" lbank="3" prog="2"/>
+ <Patch name="Tremolo Less" hbank="84" lbank="3" prog="3"/>
+ <Patch name="LP Gtr" hbank="84" lbank="3" prog="4"/>
+ <Patch name="Backing EG" hbank="84" lbank="3" prog="5"/>
+ <Patch name="Snappy EG" hbank="84" lbank="3" prog="6"/>
+ <Patch name="Pick Wah" hbank="84" lbank="3" prog="7"/>
+ <Patch name="Fast Rotary" hbank="84" lbank="3" prog="8"/>
+ <Patch name="Riff it!" hbank="84" lbank="3" prog="9"/>
+ <Patch name="E.Gtr Mute" hbank="84" lbank="3" prog="10"/>
+ <Patch name="Mute Pop Gtr" hbank="84" lbank="3" prog="11"/>
+ <Patch name="EGuitarTouch" hbank="84" lbank="3" prog="12"/>
+ <Patch name="StereoMuters" hbank="84" lbank="3" prog="13"/>
+ <Patch name="Rocky Peaks" hbank="84" lbank="3" prog="14"/>
+ <Patch name="Sweet Mute" hbank="84" lbank="3" prog="15"/>
+ <Patch name="335 VeloMute" hbank="84" lbank="3" prog="16"/>
+ <Patch name="335PhaseMute" hbank="84" lbank="3" prog="17"/>
+ <Patch name="335Mute/Pick" hbank="84" lbank="3" prog="18"/>
+ <Patch name="335MuteSlap" hbank="84" lbank="3" prog="19"/>
+ <Patch name="Oct Mute Vel" hbank="84" lbank="3" prog="20"/>
+ <Patch name="Other Mutes" hbank="84" lbank="3" prog="21"/>
+ <Patch name="Pure Steel" hbank="84" lbank="3" prog="22"/>
+ <Patch name="MeloPdlSteel" hbank="84" lbank="3" prog="23"/>
+ <Patch name="Bright Steel" hbank="84" lbank="3" prog="24"/>
+ <Patch name="St.Steel" hbank="84" lbank="3" prog="25"/>
+ <Patch name="PedalSteel 5" hbank="84" lbank="3" prog="26"/>
+ <Patch name="PedalSteel 6" hbank="84" lbank="3" prog="27"/>
+ <Patch name="PedalSteel 7" hbank="84" lbank="3" prog="28"/>
+ <Patch name="Steel Again" hbank="84" lbank="3" prog="29"/>
+ <Patch name="Pink Guitar" hbank="84" lbank="3" prog="30"/>
+ <Patch name="Delay Slide1" hbank="84" lbank="3" prog="31"/>
+ <Patch name="AutoPdlSteel" hbank="84" lbank="3" prog="32"/>
+ <Patch name="Delay Slide2" hbank="84" lbank="3" prog="33"/>
+ <Patch name="AutoBndSteel" hbank="84" lbank="3" prog="34"/>
+ <Patch name="PdlStl Vel 1" hbank="84" lbank="3" prog="35"/>
+ <Patch name="PdlStl Vel 2" hbank="84" lbank="3" prog="36"/>
+ <Patch name="PdlStl Vel 3" hbank="84" lbank="3" prog="37"/>
+ <Patch name="Hicksville" hbank="84" lbank="3" prog="38"/>
+ <Patch name="Patsy EGuitr" hbank="84" lbank="3" prog="39"/>
+ <Patch name="PedalMajor 1" hbank="84" lbank="3" prog="40"/>
+ <Patch name="PedalMajor 2" hbank="84" lbank="3" prog="41"/>
+ <Patch name="Steel Heaven" hbank="84" lbank="3" prog="42"/>
+ <Patch name="LoneStar" hbank="84" lbank="3" prog="43"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic &amp; Electric Bass">
+ <Patch name="6Strings Bs1" hbank="84" lbank="3" prog="44"/>
+ <Patch name="Processed Bs" hbank="84" lbank="3" prog="45"/>
+ <Patch name="MetalStr Bs1" hbank="84" lbank="3" prog="46"/>
+ <Patch name="6Strings Bs2" hbank="84" lbank="3" prog="47"/>
+ <Patch name="Pick Bs Hard" hbank="84" lbank="3" prog="48"/>
+ <Patch name="6StrBs Mt/Pk" hbank="84" lbank="3" prog="49"/>
+ <Patch name="6Strings Bs3" hbank="84" lbank="3" prog="50"/>
+ <Patch name="Picked Bass1" hbank="84" lbank="3" prog="51"/>
+ <Patch name="Picked Bass2" hbank="84" lbank="3" prog="52"/>
+ <Patch name="Finger Bass2" hbank="84" lbank="3" prog="53"/>
+ <Patch name="Finger Bass3" hbank="84" lbank="3" prog="54"/>
+ <Patch name="Finger Bass4" hbank="84" lbank="3" prog="55"/>
+ <Patch name="CmpFingerBs1" hbank="84" lbank="3" prog="56"/>
+ <Patch name="CmpFingerBs2" hbank="84" lbank="3" prog="57"/>
+ <Patch name="DynoFngrBass" hbank="84" lbank="3" prog="58"/>
+ <Patch name="Strong Bass" hbank="84" lbank="3" prog="59"/>
+ <Patch name="Super 6 Bass" hbank="84" lbank="3" prog="60"/>
+ <Patch name="Finger Bass5" hbank="84" lbank="3" prog="61"/>
+ <Patch name="8Strings Bs" hbank="84" lbank="3" prog="62"/>
+ <Patch name="MetalStr Bs2" hbank="84" lbank="3" prog="63"/>
+ <Patch name="Muted Bass 1" hbank="84" lbank="3" prog="64"/>
+ <Patch name="DynoMuteBass" hbank="84" lbank="3" prog="65"/>
+ <Patch name="Muted Bass 2" hbank="84" lbank="3" prog="66"/>
+ <Patch name="WWWBass" hbank="84" lbank="3" prog="67"/>
+ <Patch name="Muted Bass 3" hbank="84" lbank="3" prog="68"/>
+ <Patch name="Bassy Muters" hbank="84" lbank="3" prog="69"/>
+ <Patch name="Wah Bass" hbank="84" lbank="3" prog="70"/>
+ <Patch name="Tub Mix Bass" hbank="84" lbank="3" prog="71"/>
+ <Patch name="Washtub Bass" hbank="84" lbank="3" prog="72"/>
+ <Patch name="Tub.Bass" hbank="84" lbank="3" prog="73"/>
+ <Patch name="Showdown" hbank="84" lbank="3" prog="74"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Strings">
+ <Patch name="FiddleFXmenu" hbank="84" lbank="2" prog="6"/>
+ <Patch name="Fiddle Split" hbank="84" lbank="3" prog="75"/>
+ <Patch name="Fiddle Duo" hbank="84" lbank="3" prog="76"/>
+ <Patch name="Fiddler 1" hbank="84" lbank="3" prog="77"/>
+ <Patch name="Fiddler 2" hbank="84" lbank="3" prog="78"/>
+ <Patch name="2 Fiddles" hbank="84" lbank="3" prog="79"/>
+ <Patch name="Stac Fiddle" hbank="84" lbank="3" prog="80"/>
+ <Patch name="Fddl+Violins" hbank="84" lbank="3" prog="81"/>
+ <Patch name="Fiddlers" hbank="84" lbank="3" prog="82"/>
+ <Patch name="Let's Jig!" hbank="84" lbank="3" prog="83"/>
+ <Patch name="Fiddlee Dee" hbank="84" lbank="3" prog="84"/>
+ <Patch name="FiddleSect'n" hbank="84" lbank="3" prog="85"/>
+ <Patch name="Fiddle Spice" hbank="84" lbank="3" prog="86"/>
+ <Patch name="FiddlePizz 1" hbank="84" lbank="3" prog="87"/>
+ <Patch name="FiddlePizz 2" hbank="84" lbank="3" prog="88"/>
+ <Patch name="FiddlePizz 3" hbank="84" lbank="3" prog="89"/>
+ <Patch name="FiddlePizz 4" hbank="84" lbank="3" prog="90"/>
+ <Patch name="FiddlePizz 5" hbank="84" lbank="3" prog="91"/>
+ <Patch name="Oct Pi" hbank="84" lbank="3" prog="92"/>
+ <Patch name="FidpizBounce" hbank="84" lbank="3" prog="93"/>
+ <Patch name="FiddleFilter" hbank="84" lbank="3" prog="94"/>
+ <Patch name="Promenade" hbank="84" lbank="3" prog="95"/>
+ <Patch name="Fiddle About" hbank="84" lbank="3" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth FX">
+ <Patch name="BootScootin'" hbank="84" lbank="3" prog="111"/>
+ <Patch name="BootScootin2" hbank="84" lbank="3" prog="112"/>
+ <Patch name="CanynCascade" hbank="84" lbank="3" prog="113"/>
+ <Patch name="GoodMornin'" hbank="84" lbank="3" prog="114"/>
+ <Patch name="Skyline" hbank="84" lbank="3" prog="115"/>
+ <Patch name="TwangWahEcho" hbank="84" lbank="3" prog="116"/>
+ <Patch name="FunkyResonic" hbank="84" lbank="3" prog="117"/>
+ <Patch name="Shiloh" hbank="84" lbank="3" prog="122"/>
+ <Patch name="Durango" hbank="84" lbank="3" prog="123"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Plucked">
+ <Patch name="GentlDulzouk" hbank="84" lbank="2" prog="94"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Fretted Inst">
+ <Patch name="3Chd Strum" hbank="84" lbank="2" prog="7"/>
+ <Patch name="Banjo 2" hbank="84" lbank="2" prog="55"/>
+ <Patch name="Banjo 3" hbank="84" lbank="2" prog="56"/>
+ <Patch name="Banjo 4" hbank="84" lbank="2" prog="57"/>
+ <Patch name="Deliverance1" hbank="84" lbank="2" prog="58"/>
+ <Patch name="Banjo Pick" hbank="84" lbank="2" prog="59"/>
+ <Patch name="Banjo 5" hbank="84" lbank="2" prog="60"/>
+ <Patch name="Deliverance2" hbank="84" lbank="2" prog="61"/>
+ <Patch name="Banjo Small" hbank="84" lbank="2" prog="62"/>
+ <Patch name="Banjo Large" hbank="84" lbank="2" prog="63"/>
+ <Patch name="Velo Banjo" hbank="84" lbank="2" prog="64"/>
+ <Patch name="St. Banjo" hbank="84" lbank="2" prog="65"/>
+ <Patch name="Dyno Mandoln" hbank="84" lbank="2" prog="66"/>
+ <Patch name="Mandolin 5" hbank="84" lbank="2" prog="67"/>
+ <Patch name="Mandolin VSW" hbank="84" lbank="2" prog="68"/>
+ <Patch name="Mandolin Dwn" hbank="84" lbank="2" prog="69"/>
+ <Patch name="Mandolin Up" hbank="84" lbank="2" prog="70"/>
+ <Patch name="Mndln Up&amp;Dwn" hbank="84" lbank="2" prog="71"/>
+ <Patch name="Mdln Oct Ens" hbank="84" lbank="2" prog="72"/>
+ <Patch name="MandolnTrm 1" hbank="84" lbank="2" prog="73"/>
+ <Patch name="Mandoln Solo" hbank="84" lbank="2" prog="74"/>
+ <Patch name="Mandoln Trio" hbank="84" lbank="2" prog="75"/>
+ <Patch name="Mdln Trem St" hbank="84" lbank="2" prog="76"/>
+ <Patch name="MandoPlayers" hbank="84" lbank="2" prog="77"/>
+ <Patch name="MandoSection" hbank="84" lbank="2" prog="78"/>
+ <Patch name="MandolnTrm 2" hbank="84" lbank="2" prog="79"/>
+ <Patch name="Mndln Strum1" hbank="84" lbank="2" prog="80"/>
+ <Patch name="Mndln Strum2" hbank="84" lbank="2" prog="81"/>
+ <Patch name="MandolnTrm 3" hbank="84" lbank="2" prog="82"/>
+ <Patch name="MandolnTrm 4" hbank="84" lbank="2" prog="83"/>
+ <Patch name="MandoStrings" hbank="84" lbank="2" prog="84"/>
+ <Patch name="Mand SlowPad" hbank="84" lbank="2" prog="85"/>
+ <Patch name="The Vatican" hbank="84" lbank="2" prog="86"/>
+ <Patch name="Plato'sDream" hbank="84" lbank="2" prog="87"/>
+ <Patch name="Mandoswell" hbank="84" lbank="2" prog="88"/>
+ <Patch name="Circle Pick" hbank="84" lbank="2" prog="89"/>
+ <Patch name="Bouzouki 3" hbank="84" lbank="2" prog="90"/>
+ <Patch name="Bouzouki 4" hbank="84" lbank="2" prog="91"/>
+ <Patch name="StereoBouzki" hbank="84" lbank="2" prog="92"/>
+ <Patch name="BouzokiSplit" hbank="84" lbank="2" prog="93"/>
+ <Patch name="Bouzki&amp;Strum" hbank="84" lbank="2" prog="95"/>
+ <Patch name="Le G String" hbank="84" lbank="2" prog="96"/>
+ <Patch name="Country Pi" hbank="84" lbank="2" prog="97"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Beat and Groove">
+ <Patch name="Banjo Phrs" hbank="84" lbank="2" prog="0"/>
+ <Patch name="Guitar Phrs1" hbank="84" lbank="2" prog="1"/>
+ <Patch name="Guitar Phrs2" hbank="84" lbank="2" prog="2"/>
+ <Patch name="MiddleCRiff" hbank="84" lbank="2" prog="3"/>
+ <Patch name="12 Bar Riff" hbank="84" lbank="2" prog="4"/>
+ <Patch name="PdlStl Phrs" hbank="84" lbank="2" prog="5"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Drum Set">
+ <Patch name="CountryDrum1" hbank="84" lbank="3" prog="124"/>
+ <Patch name="CountryDrum2" hbank="84" lbank="3" prog="125"/>
+ <Patch name="CountryDrum3" hbank="84" lbank="3" prog="126"/>
+ <Patch name="CountryDrum4" hbank="84" lbank="3" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Combination">
+ <Patch name="CntryBallad1" hbank="84" lbank="3" prog="118"/>
+ <Patch name="CntryBallad2" hbank="84" lbank="3" prog="119"/>
+ <Patch name="Country Ens" hbank="84" lbank="3" prog="120"/>
+ <Patch name="Fiddle &amp; PNO" hbank="84" lbank="3" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="CountrySet1" hbank="84" lbank="2" prog="0"/>
+ <Patch name="CountrySet2" hbank="84" lbank="2" prog="1"/>
+ <Patch name="CountrySet3" hbank="84" lbank="2" prog="2"/>
+ <Patch name="CountrySet4" hbank="84" lbank="2" prog="3"/>
+ <Patch name="Brush Set" hbank="84" lbank="2" prog="4"/>
+ <Patch name="CntryOldySet" hbank="84" lbank="2" prog="5"/>
+ <Patch name="CntryPopSet1" hbank="84" lbank="2" prog="6"/>
+ <Patch name="CntryPopSet2" hbank="84" lbank="2" prog="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse> \ No newline at end of file
diff --git a/muse_qt4_evolution/share/instruments/Roland-JV-1010-Presets.idf b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Presets.idf
new file mode 100644
index 00000000..ae5c622e
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Presets.idf
@@ -0,0 +1,971 @@
+<?xml version="1.0" encoding="utf-8"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland JV-1010 Presets">
+ <Init>
+ </Init>
+ <PatchGroup name="Patches_Acoustic Piano">
+ <Patch name="64voicePiano" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Bright Piano" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Classique" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Nice Piano" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Piano Thang" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Power Grand" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Piano 1" hbank="81" lbank="3" prog="0"/>
+ <Patch name="Piano 2" hbank="81" lbank="3" prog="1"/>
+ <Patch name="Piano 3" hbank="81" lbank="3" prog="2"/>
+ <Patch name="Honky-tonk" hbank="81" lbank="3" prog="3"/>
+ <Patch name="Echo Piano" hbank="81" lbank="4" prog="0"/>
+ <Patch name="Upright Pno" hbank="81" lbank="4" prog="1"/>
+ <Patch name="PianoStrings" hbank="81" lbank="0" prog="11"/>
+ <Patch name="Piano Blend" hbank="81" lbank="0" prog="9"/>
+ <Patch name="RD-1000" hbank="81" lbank="4" prog="2"/>
+ <Patch name="MIDIed Grand" hbank="81" lbank="0" prog="8"/>
+ <Patch name="E.Grand" hbank="81" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Piano">
+ <Patch name="SA Rhodes 1" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Stiky Rhodes" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Dig Rhodes" hbank="81" lbank="0" prog="18"/>
+ <Patch name="SA Rhodes 2" hbank="81" lbank="0" prog="16"/>
+ <Patch name="E.Piano 1" hbank="81" lbank="3" prog="4"/>
+ <Patch name="S.A.E.P." hbank="81" lbank="0" prog="14"/>
+ <Patch name="MK-80 Rhodes" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Players EP" hbank="81" lbank="4" prog="3"/>
+ <Patch name="Rhodes Mix" hbank="81" lbank="0" prog="21"/>
+ <Patch name="Octa Rhodes1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Octa Rhodes2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Waterhodes" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Tremo Rhodes" hbank="81" lbank="0" prog="23"/>
+ <Patch name="PsychoRhodes" hbank="81" lbank="0" prog="22"/>
+ <Patch name="MK-80 Phaser" hbank="81" lbank="0" prog="25"/>
+ <Patch name="E.Piano 2" hbank="81" lbank="3" prog="5"/>
+ <Patch name="Delicate EP" hbank="81" lbank="0" prog="26"/>
+ <Patch name="FM BellPiano" hbank="81" lbank="4" prog="8"/>
+ <Patch name="West Coast" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Mr.Mellow" hbank="81" lbank="0" prog="31"/>
+ <Patch name="JV Rhodes+" hbank="81" lbank="0" prog="29"/>
+ <Patch name="EP+Mod Pad" hbank="81" lbank="0" prog="30"/>
+ <Patch name="D-50 Rhodes" hbank="81" lbank="4" prog="4"/>
+ <Patch name="Innocent EP" hbank="81" lbank="4" prog="5"/>
+ <Patch name="Echo Rhodes" hbank="81" lbank="4" prog="6"/>
+ <Patch name="See-Thru EP" hbank="81" lbank="4" prog="7"/>
+ <Patch name="Ring E.Piano" hbank="81" lbank="4" prog="9"/>
+ <Patch name="Nylon EPiano" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Nylon Rhodes" hbank="81" lbank="0" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Keyboards">
+ <Patch name="Comp Clav" hbank="81" lbank="0" prog="32"/>
+ <Patch name="Clav." hbank="81" lbank="3" prog="7"/>
+ <Patch name="Chorus Clav" hbank="81" lbank="0" prog="38"/>
+ <Patch name="Clavicembalo" hbank="81" lbank="0" prog="41"/>
+ <Patch name="Klavinet" hbank="81" lbank="0" prog="33"/>
+ <Patch name="Metal Clav" hbank="81" lbank="0" prog="44"/>
+ <Patch name="Harpsy Clav" hbank="81" lbank="4" prog="16"/>
+ <Patch name="Winger Clav" hbank="81" lbank="0" prog="34"/>
+ <Patch name="Phaze Clav 1" hbank="81" lbank="0" prog="35"/>
+ <Patch name="Phaze Clav 2" hbank="81" lbank="0" prog="36"/>
+ <Patch name="Phuzz Clav" hbank="81" lbank="0" prog="37"/>
+ <Patch name="PieceOfChee" hbank="81" lbank="4" prog="15"/>
+ <Patch name="Claviduck" hbank="81" lbank="0" prog="39"/>
+ <Patch name="Velo-Rez Clv" hbank="81" lbank="0" prog="40"/>
+ <Patch name="Analog Clav1" hbank="81" lbank="0" prog="42"/>
+ <Patch name="Analog Clav2" hbank="81" lbank="0" prog="43"/>
+ <Patch name="Celesta" hbank="81" lbank="3" prog="8"/>
+ <Patch name="Harpsichord" hbank="81" lbank="3" prog="6"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bell, Bell Pad">
+ <Patch name="Pretty Bells" hbank="81" lbank="0" prog="87"/>
+ <Patch name="Wave Bells" hbank="81" lbank="0" prog="83"/>
+ <Patch name="Music Bells" hbank="81" lbank="0" prog="86"/>
+ <Patch name="Beauty Bells" hbank="81" lbank="0" prog="85"/>
+ <Patch name="Tria Bells" hbank="81" lbank="0" prog="84"/>
+ <Patch name="Crystal" hbank="81" lbank="3" prog="98"/>
+ <Patch name="Tinkle Bell" hbank="81" lbank="3" prog="112"/>
+ <Patch name="Ethno Metals" hbank="81" lbank="0" prog="95"/>
+ <Patch name="Glockenspiel" hbank="81" lbank="3" prog="9"/>
+ <Patch name="Childlike" hbank="81" lbank="0" prog="80"/>
+ <Patch name="Music Box" hbank="81" lbank="0" prog="81"/>
+ <Patch name="Music Box" hbank="81" lbank="3" prog="10"/>
+ <Patch name="Toy Box" hbank="81" lbank="0" prog="82"/>
+ <Patch name="Square Keys" hbank="81" lbank="0" prog="79"/>
+ <Patch name="Tubular-bell" hbank="81" lbank="3" prog="14"/>
+ <Patch name="Wide Tubular" hbank="81" lbank="0" prog="89"/>
+ <Patch name="Belfry Chime" hbank="81" lbank="4" prog="21"/>
+ <Patch name="Stacc.Heaven" hbank="81" lbank="4" prog="22"/>
+ <Patch name="D-50 Stack" hbank="81" lbank="0" prog="70"/>
+ <Patch name="Fantasia JV" hbank="81" lbank="0" prog="71"/>
+ <Patch name="Jimmy Dee" hbank="81" lbank="0" prog="72"/>
+ <Patch name="Holiday Cheer" hbank="81" lbank="4" prog="18"/>
+ <Patch name="Morning Lite" hbank="81" lbank="4" prog="19"/>
+ <Patch name="Heavenals" hbank="81" lbank="0" prog="73"/>
+ <Patch name="2.2 Bell Pad" hbank="81" lbank="4" prog="23"/>
+ <Patch name="Mallet Pad" hbank="81" lbank="0" prog="74"/>
+ <Patch name="Huff N Stuff" hbank="81" lbank="0" prog="75"/>
+ <Patch name="BellVox 1080" hbank="81" lbank="0" prog="77"/>
+ <Patch name="Fantasy Vox" hbank="81" lbank="0" prog="78"/>
+ <Patch name="Hammer Bell" hbank="81" lbank="1" prog="60"/>
+ <Patch name="Prefab Chime" hbank="81" lbank="4" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Mallet">
+ <Patch name="Warm Vibes" hbank="81" lbank="0" prog="91"/>
+ <Patch name="Vibraphone" hbank="81" lbank="3" prog="11"/>
+ <Patch name="AmbienceVibe" hbank="81" lbank="0" prog="90"/>
+ <Patch name="Exotic Velo" hbank="81" lbank="4" prog="17"/>
+ <Patch name="Dyna Marimba" hbank="81" lbank="0" prog="92"/>
+ <Patch name="Bass Marimba" hbank="81" lbank="0" prog="93"/>
+ <Patch name="Marimba" hbank="81" lbank="3" prog="12"/>
+ <Patch name="Nomad Perc" hbank="81" lbank="0" prog="94"/>
+ <Patch name="Xylophone" hbank="81" lbank="3" prog="13"/>
+ <Patch name="Steel Drums" hbank="81" lbank="0" prog="98"/>
+ <Patch name="Steel Drums" hbank="81" lbank="3" prog="114"/>
+ <Patch name="Islands Mlt" hbank="81" lbank="0" prog="96"/>
+ <Patch name="Steelin Key" hbank="81" lbank="0" prog="97"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric and Church Organ">
+ <Patch name="Full Stops" hbank="81" lbank="0" prog="45"/>
+ <Patch name="Roller Spin" hbank="81" lbank="0" prog="52"/>
+ <Patch name="Gospel Spin" hbank="81" lbank="0" prog="51"/>
+ <Patch name="Ballad B" hbank="81" lbank="0" prog="46"/>
+ <Patch name="Mellow Bars" hbank="81" lbank="0" prog="47"/>
+ <Patch name="Organ 1" hbank="81" lbank="3" prog="16"/>
+ <Patch name="Organ 2" hbank="81" lbank="3" prog="17"/>
+ <Patch name="AugerMentive" hbank="81" lbank="0" prog="48"/>
+ <Patch name="Perky B" hbank="81" lbank="0" prog="49"/>
+ <Patch name="The Big Spin" hbank="81" lbank="0" prog="50"/>
+ <Patch name="Rocker Spin" hbank="81" lbank="0" prog="53"/>
+ <Patch name="Tone Wh.Solo" hbank="81" lbank="0" prog="54"/>
+ <Patch name="Dirty Organ" hbank="81" lbank="4" prog="11"/>
+ <Patch name="Organ 3" hbank="81" lbank="3" prog="18"/>
+ <Patch name="Purple Spin" hbank="81" lbank="0" prog="55"/>
+ <Patch name="60's LeadORG" hbank="81" lbank="0" prog="56"/>
+ <Patch name="Assalt Organ" hbank="81" lbank="0" prog="57"/>
+ <Patch name="D-50 Organ" hbank="81" lbank="0" prog="58"/>
+ <Patch name="Surf's Up" hbank="81" lbank="4" prog="12"/>
+ <Patch name="Soap Opera" hbank="81" lbank="4" prog="10"/>
+ <Patch name="Cathedral" hbank="81" lbank="0" prog="59"/>
+ <Patch name="Church Pipes" hbank="81" lbank="0" prog="60"/>
+ <Patch name="Church Org.1" hbank="81" lbank="3" prog="19"/>
+ <Patch name="Organesque" hbank="81" lbank="4" prog="13"/>
+ <Patch name="pp Harmonium" hbank="81" lbank="4" prog="14"/>
+ <Patch name="Reed Organ" hbank="81" lbank="3" prog="20"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Accordian">
+ <Patch name="Bandoneon" hbank="81" lbank="3" prog="23"/>
+ <Patch name="Accordian Fr" hbank="81" lbank="3" prog="21"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Harmonica, Blues Harp">
+ <Patch name="Harmonica" hbank="81" lbank="1" prog="118"/>
+ <Patch name="Harmonica" hbank="81" lbank="3" prog="22"/>
+ <Patch name="Harmo Blues" hbank="81" lbank="1" prog="119"/>
+ <Patch name="Blues Harp" hbank="81" lbank="1" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Guitar">
+ <Patch name="Nylon Gtr" hbank="81" lbank="0" prog="107"/>
+ <Patch name="Nylon-str.Gt" hbank="81" lbank="3" prog="24"/>
+ <Patch name="Gtr Strings" hbank="81" lbank="0" prog="108"/>
+ <Patch name="DesertCrystl" hbank="81" lbank="4" prog="30"/>
+ <Patch name="Steel Away" hbank="81" lbank="0" prog="109"/>
+ <Patch name="Steel-str.Gt" hbank="81" lbank="3" prog="25"/>
+ <Patch name="Solo Steel" hbank="81" lbank="4" prog="29"/>
+ <Patch name="12str Gtr 1" hbank="81" lbank="0" prog="111"/>
+ <Patch name="12str Gtr 2" hbank="81" lbank="0" prog="112"/>
+ <Patch name="Heavenly Gtr" hbank="81" lbank="0" prog="110"/>
+ <Patch name="Atmosphere" hbank="81" lbank="3" prog="99"/>
+ <Patch name="Gt.FretNoise" hbank="81" lbank="3" prog="120"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Guitar">
+ <Patch name="Jz Gtr Hall" hbank="81" lbank="0" prog="113"/>
+ <Patch name="LetterFrmPat" hbank="81" lbank="0" prog="114"/>
+ <Patch name="Jazz Gt." hbank="81" lbank="3" prog="26"/>
+ <Patch name="Jazz Scat" hbank="81" lbank="0" prog="115"/>
+ <Patch name="Clear Guitar" hbank="81" lbank="4" prog="31"/>
+ <Patch name="JC Strat" hbank="81" lbank="0" prog="117"/>
+ <Patch name="Twin Strats" hbank="81" lbank="0" prog="118"/>
+ <Patch name="Solo Strat" hbank="81" lbank="4" prog="32"/>
+ <Patch name="JV Strat" hbank="81" lbank="0" prog="119"/>
+ <Patch name="Clean Gt." hbank="81" lbank="3" prog="27"/>
+ <Patch name="Syn Strat" hbank="81" lbank="0" prog="120"/>
+ <Patch name="Rotary Gtr" hbank="81" lbank="0" prog="121"/>
+ <Patch name="Muted Gtr" hbank="81" lbank="0" prog="122"/>
+ <Patch name="SwitchOnMute" hbank="81" lbank="0" prog="123"/>
+ <Patch name="Muted Gt." hbank="81" lbank="3" prog="28"/>
+ <Patch name="Gt.Harmonics" hbank="81" lbank="3" prog="31"/>
+ <Patch name="Velo-Wah Gtr" hbank="81" lbank="1" prog="6"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Distortion Guitar">
+ <Patch name="Feed Me!" hbank="81" lbank="4" prog="33"/>
+ <Patch name="Tube Smoke" hbank="81" lbank="4" prog="34"/>
+ <Patch name="Dist Gtr 1" hbank="81" lbank="1" prog="0"/>
+ <Patch name="Dist Gtr 2" hbank="81" lbank="1" prog="1"/>
+ <Patch name="RockYurSocks" hbank="81" lbank="0" prog="127"/>
+ <Patch name="Creamy" hbank="81" lbank="4" prog="35"/>
+ <Patch name="Blusey OD" hbank="81" lbank="4" prog="36"/>
+ <Patch name="Grindstone" hbank="81" lbank="4" prog="37"/>
+ <Patch name="Rezodrive" hbank="81" lbank="0" prog="126"/>
+ <Patch name="OD 5th" hbank="81" lbank="4" prog="38"/>
+ <Patch name="Overdrive Gt" hbank="81" lbank="3" prog="29"/>
+ <Patch name="DistortionGt" hbank="81" lbank="3" prog="30"/>
+ <Patch name="R&amp;R Chunk" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Power Trip" hbank="81" lbank="0" prog="124"/>
+ <Patch name="Crunch Split" hbank="81" lbank="0" prog="125"/>
+ <Patch name="Phripphu" hbank="81" lbank="1" prog="3"/>
+ <Patch name="Grungeroni" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Black Widow" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Mod-Wah Gtr" hbank="81" lbank="1" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic &amp; Electric Bass">
+ <Patch name="Finger Bass" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Fingered Bs." hbank="81" lbank="3" prog="33"/>
+ <Patch name="Pick Bass" hbank="81" lbank="1" prog="8"/>
+ <Patch name="Picked Bs." hbank="81" lbank="3" prog="34"/>
+ <Patch name="Hip Bass" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Perc.Bass" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Homey Bass" hbank="81" lbank="1" prog="11"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="1" prog="18"/>
+ <Patch name="Slap Bass 3" hbank="81" lbank="1" prog="19"/>
+ <Patch name="Slap Bass 4" hbank="81" lbank="1" prog="20"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="3" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="3" prog="37"/>
+ <Patch name="Fretls Dry" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Fretless Bs." hbank="81" lbank="3" prog="35"/>
+ <Patch name="Wet Fretls" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Nylon Bass" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Ac.Upright" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Acoustic Bs." hbank="81" lbank="3" prog="32"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Bass">
+ <Patch name="4 Pole Bass" hbank="81" lbank="1" prog="21"/>
+ <Patch name="Tick Bass" hbank="81" lbank="1" prog="22"/>
+ <Patch name="House Bass" hbank="81" lbank="1" prog="23"/>
+ <Patch name="Mondo Bass" hbank="81" lbank="1" prog="24"/>
+ <Patch name="2pole Bass" hbank="81" lbank="4" prog="44"/>
+ <Patch name="4pole Bass" hbank="81" lbank="4" prog="45"/>
+ <Patch name="Wonder Bass" hbank="81" lbank="1" prog="38"/>
+ <Patch name="Rubber Bass" hbank="81" lbank="1" prog="36"/>
+ <Patch name="Stereoww Bs" hbank="81" lbank="1" prog="37"/>
+ <Patch name="Clk AnalogBs" hbank="81" lbank="1" prog="25"/>
+ <Patch name="Bass In Face" hbank="81" lbank="1" prog="26"/>
+ <Patch name="101 Bass" hbank="81" lbank="1" prog="27"/>
+ <Patch name="Noiz Bass" hbank="81" lbank="1" prog="28"/>
+ <Patch name="Occitan Bass" hbank="81" lbank="1" prog="30"/>
+ <Patch name="Super Jup Bs" hbank="81" lbank="1" prog="29"/>
+ <Patch name="Hugo Bass" hbank="81" lbank="1" prog="31"/>
+ <Patch name="Untamed Bass" hbank="81" lbank="1" prog="35"/>
+ <Patch name="Multi Bass" hbank="81" lbank="1" prog="32"/>
+ <Patch name="Moist Bass" hbank="81" lbank="1" prog="33"/>
+ <Patch name="Acid TB" hbank="81" lbank="4" prog="48"/>
+ <Patch name="Synth Bass 1" hbank="81" lbank="3" prog="38"/>
+ <Patch name="BritelowBass" hbank="81" lbank="1" prog="34"/>
+ <Patch name="Deep Bass" hbank="81" lbank="1" prog="39"/>
+ <Patch name="Super JX Bs" hbank="81" lbank="1" prog="40"/>
+ <Patch name="W&lt;RED&gt;-Bass" hbank="81" lbank="1" prog="41"/>
+ <Patch name="Synth Bass 2" hbank="81" lbank="3" prog="39"/>
+ <Patch name="HI-Ring Bass" hbank="81" lbank="1" prog="42"/>
+ <Patch name="Euro Bass" hbank="81" lbank="1" prog="43"/>
+ <Patch name="SinusoidRave" hbank="81" lbank="1" prog="44"/>
+ <Patch name="202 Rude Bass" hbank="81" lbank="4" prog="43"/>
+ <Patch name="Phaser MC" hbank="81" lbank="4" prog="46"/>
+ <Patch name="MiniPhaser" hbank="81" lbank="4" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Strings">
+ <Patch name="St.Strings" hbank="81" lbank="2" prog="34"/>
+ <Patch name="Warm Strings" hbank="81" lbank="2" prog="35"/>
+ <Patch name="Somber Str" hbank="81" lbank="2" prog="36"/>
+ <Patch name="Marcato" hbank="81" lbank="2" prog="37"/>
+ <Patch name="Bright Str" hbank="81" lbank="2" prog="38"/>
+ <Patch name="String Ens" hbank="81" lbank="2" prog="39"/>
+ <Patch name="Strings" hbank="81" lbank="3" prog="48"/>
+ <Patch name="Chambers" hbank="81" lbank="2" prog="41"/>
+ <Patch name="Slow Strings" hbank="81" lbank="3" prog="49"/>
+ <Patch name="Film Octaves" hbank="81" lbank="2" prog="44"/>
+ <Patch name="TremoloStrng" hbank="81" lbank="2" prog="40"/>
+ <Patch name="Tremolo Str" hbank="81" lbank="3" prog="44"/>
+ <Patch name="PizzicatoStr" hbank="81" lbank="3" prog="45"/>
+ <Patch name="Bass Pi" hbank="81" lbank="2" prog="46"/>
+ <Patch name="Real Pi" hbank="81" lbank="2" prog="47"/>
+ <Patch name="Voicey Pi" hbank="81" lbank="0" prog="99"/>
+ <Patch name="Violin" hbank="81" lbank="3" prog="40"/>
+ <Patch name="Fiddle" hbank="81" lbank="3" prog="110"/>
+ <Patch name="ViolinCello" hbank="81" lbank="2" prog="42"/>
+ <Patch name="Viola" hbank="81" lbank="3" prog="41"/>
+ <Patch name="Cello" hbank="81" lbank="3" prog="42"/>
+ <Patch name="Contrabass" hbank="81" lbank="3" prog="43"/>
+ <Patch name="JP-8 Str 1" hbank="81" lbank="2" prog="50"/>
+ <Patch name="JP-8 Str 2" hbank="81" lbank="2" prog="51"/>
+ <Patch name="JP-8 Str 3" hbank="81" lbank="2" prog="53"/>
+ <Patch name="Deep Strings" hbank="81" lbank="2" prog="60"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Ensemble">
+ <Patch name="Symphonique" hbank="81" lbank="2" prog="43"/>
+ <Patch name="Film Layers" hbank="81" lbank="2" prog="45"/>
+ <Patch name="Full Orchest" hbank="81" lbank="4" prog="49"/>
+ <Patch name="Str + Winds" hbank="81" lbank="4" prog="50"/>
+ <Patch name="Film Orch" hbank="81" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Hit, Hit">
+ <Patch name="OrchestraHit" hbank="81" lbank="3" prog="55"/>
+ <Patch name="Impact" hbank="81" lbank="1" prog="70"/>
+ <Patch name="Phase Hit" hbank="81" lbank="1" prog="71"/>
+ <Patch name="Reverse Hit" hbank="81" lbank="1" prog="75"/>
+ <Patch name="Tekno Hit 1" hbank="81" lbank="1" prog="72"/>
+ <Patch name="Tekno Hit 2" hbank="81" lbank="1" prog="73"/>
+ <Patch name="Tekno Hit 3" hbank="81" lbank="1" prog="74"/>
+ <Patch name="Blow Hit" hbank="81" lbank="1" prog="59"/>
+ <Patch name="4 Hits 4 You" hbank="81" lbank="1" prog="69"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Winds">
+ <Patch name="Oboe mf" hbank="81" lbank="1" prog="102"/>
+ <Patch name="Oboe Express" hbank="81" lbank="1" prog="103"/>
+ <Patch name="Oboe" hbank="81" lbank="3" prog="68"/>
+ <Patch name="English Horn" hbank="81" lbank="3" prog="69"/>
+ <Patch name="Bassoon" hbank="81" lbank="3" prog="70"/>
+ <Patch name="Clarinet mp" hbank="81" lbank="1" prog="104"/>
+ <Patch name="ClariExpress" hbank="81" lbank="1" prog="105"/>
+ <Patch name="Clarinet" hbank="81" lbank="3" prog="71"/>
+ <Patch name="ChamberWinds" hbank="81" lbank="1" prog="107"/>
+ <Patch name="ChamberWoods" hbank="81" lbank="1" prog="108"/>
+ <Patch name="Mitzva Spit" hbank="81" lbank="1" prog="106"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Flute, Piccolo">
+ <Patch name="Flute" hbank="81" lbank="1" prog="94"/>
+ <Patch name="Flute" hbank="81" lbank="3" prog="73"/>
+ <Patch name="Flute 2080" hbank="81" lbank="4" prog="51"/>
+ <Patch name="Piccolo" hbank="81" lbank="1" prog="95"/>
+ <Patch name="Piccolo" hbank="81" lbank="3" prog="72"/>
+ <Patch name="Pan Pipes" hbank="81" lbank="1" prog="98"/>
+ <Patch name="Pan Flute" hbank="81" lbank="3" prog="75"/>
+ <Patch name="Bottle Blow" hbank="81" lbank="3" prog="76"/>
+ <Patch name="Air Lead" hbank="81" lbank="1" prog="97"/>
+ <Patch name="Recorder" hbank="81" lbank="3" prog="74"/>
+ <Patch name="Ocarina" hbank="81" lbank="3" prog="79"/>
+ <Patch name="Whistle" hbank="81" lbank="3" prog="78"/>
+ <Patch name="VOX Flute" hbank="81" lbank="1" prog="96"/>
+ <Patch name="Scat Flute" hbank="81" lbank="4" prog="52"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Brass">
+ <Patch name="Brass Sect" hbank="81" lbank="2" prog="3"/>
+ <Patch name="Tpt Sect" hbank="81" lbank="1" prog="126"/>
+ <Patch name="Brass 1" hbank="81" lbank="3" prog="61"/>
+ <Patch name="Royale" hbank="81" lbank="4" prog="56"/>
+ <Patch name="Sm.Brass Grp" hbank="81" lbank="4" prog="55"/>
+ <Patch name="Tp&amp;Sax Sect" hbank="81" lbank="2" prog="1"/>
+ <Patch name="Sax+Tp+Tb" hbank="81" lbank="2" prog="2"/>
+ <Patch name="Hybrid Bones" hbank="81" lbank="2" prog="5"/>
+ <Patch name="Noble Horns" hbank="81" lbank="2" prog="6"/>
+ <Patch name="Horn Swell" hbank="81" lbank="2" prog="8"/>
+ <Patch name="Massed Horns" hbank="81" lbank="2" prog="7"/>
+ <Patch name="French Horn" hbank="81" lbank="3" prog="60"/>
+ <Patch name="Majetic Tpt" hbank="81" lbank="1" prog="123"/>
+ <Patch name="Voluntare" hbank="81" lbank="1" prog="124"/>
+ <Patch name="Trumpet" hbank="81" lbank="3" prog="56"/>
+ <Patch name="Ballad Trump" hbank="81" lbank="4" prog="54"/>
+ <Patch name="2Trumpets" hbank="81" lbank="1" prog="125"/>
+ <Patch name="Harmon Mute" hbank="81" lbank="2" prog="0"/>
+ <Patch name="Mute TP mod" hbank="81" lbank="1" prog="127"/>
+ <Patch name="MutedTrumpet" hbank="81" lbank="3" prog="59"/>
+ <Patch name="Brass Mutes" hbank="81" lbank="4" prog="57"/>
+ <Patch name="Trombone" hbank="81" lbank="2" prog="4"/>
+ <Patch name="Trombone" hbank="81" lbank="3" prog="57"/>
+ <Patch name="Tuba" hbank="81" lbank="3" prog="58"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Brass">
+ <Patch name="3 Osc Brass" hbank="81" lbank="4" prog="59"/>
+ <Patch name="Poly Brass" hbank="81" lbank="0" prog="67"/>
+ <Patch name="P5 Polymod" hbank="81" lbank="4" prog="60"/>
+ <Patch name="Brass It!" hbank="81" lbank="2" prog="9"/>
+ <Patch name="Brass Attack" hbank="81" lbank="2" prog="10"/>
+ <Patch name="Archimede" hbank="81" lbank="2" prog="11"/>
+ <Patch name="Rugby Horn" hbank="81" lbank="2" prog="12"/>
+ <Patch name="MKS-80 Brass" hbank="81" lbank="2" prog="13"/>
+ <Patch name="Synth Brass1" hbank="81" lbank="3" prog="62"/>
+ <Patch name="Synth Brass2" hbank="81" lbank="3" prog="63"/>
+ <Patch name="True ANALOG" hbank="81" lbank="2" prog="14"/>
+ <Patch name="Afro Horns" hbank="81" lbank="2" prog="66"/>
+ <Patch name="Breathy Brs" hbank="81" lbank="4" prog="58"/>
+ <Patch name="Triumph Brs" hbank="81" lbank="4" prog="61"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sax">
+ <Patch name="Soprano Sax" hbank="81" lbank="3" prog="64"/>
+ <Patch name="Sop.Sax mf" hbank="81" lbank="1" prog="110"/>
+ <Patch name="Alto Sax" hbank="81" lbank="1" prog="111"/>
+ <Patch name="AltoLead Sax" hbank="81" lbank="1" prog="112"/>
+ <Patch name="Alto Sax" hbank="81" lbank="3" prog="65"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="1" prog="113"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="3" prog="66"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="1" prog="114"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="3" prog="67"/>
+ <Patch name="Sax Section" hbank="81" lbank="1" prog="116"/>
+ <Patch name="Bigband Sax" hbank="81" lbank="1" prog="117"/>
+ <Patch name="Take A Tenor" hbank="81" lbank="1" prog="115"/>
+ <Patch name="Sax Choir" hbank="81" lbank="4" prog="53"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Hard Synth Lead">
+ <Patch name="Pulse Lead 1" hbank="81" lbank="1" prog="88"/>
+ <Patch name="Little Devil" hbank="81" lbank="1" prog="90"/>
+ <Patch name="Square Wave" hbank="81" lbank="3" prog="80"/>
+ <Patch name="Sawteeth" hbank="81" lbank="1" prog="84"/>
+ <Patch name="FXM Saw Lead" hbank="81" lbank="1" prog="83"/>
+ <Patch name="Saw Wave" hbank="81" lbank="3" prog="81"/>
+ <Patch name="Loud SynLead" hbank="81" lbank="1" prog="91"/>
+ <Patch name="5th Saw Wave" hbank="81" lbank="3" prog="86"/>
+ <Patch name="MG Solo" hbank="81" lbank="1" prog="82"/>
+ <Patch name="MG Interval" hbank="81" lbank="1" prog="87"/>
+ <Patch name="Progresso Ld" hbank="81" lbank="4" prog="88"/>
+ <Patch name="5th Lead" hbank="81" lbank="1" prog="93"/>
+ <Patch name="Edye Boost" hbank="81" lbank="1" prog="81"/>
+ <Patch name="Adrenaline" hbank="81" lbank="4" prog="89"/>
+ <Patch name="Analog Lead" hbank="81" lbank="1" prog="92"/>
+ <Patch name="Charang" hbank="81" lbank="3" prog="84"/>
+ <Patch name="Bass &amp; Lead" hbank="81" lbank="3" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Synth Lead">
+ <Patch name="SquareLead 1" hbank="81" lbank="1" prog="76"/>
+ <Patch name="Syn.Calliope" hbank="81" lbank="3" prog="82"/>
+ <Patch name="X..? Whistle" hbank="81" lbank="4" prog="86"/>
+ <Patch name="Solo Vox" hbank="81" lbank="3" prog="85"/>
+ <Patch name="SquareLead 2" hbank="81" lbank="1" prog="77"/>
+ <Patch name="Warm Pipe" hbank="81" lbank="4" prog="83"/>
+ <Patch name="Pure Pipe" hbank="81" lbank="4" prog="84"/>
+ <Patch name="WhistlinAtom" hbank="81" lbank="1" prog="80"/>
+ <Patch name="Belly Lead" hbank="81" lbank="1" prog="79"/>
+ <Patch name="Smoothe" hbank="81" lbank="1" prog="85"/>
+ <Patch name="You and Luck" hbank="81" lbank="1" prog="78"/>
+ <Patch name="Pulse Lead 2" hbank="81" lbank="1" prog="89"/>
+ <Patch name="MG Lead" hbank="81" lbank="1" prog="86"/>
+ <Patch name="Chiffer Lead" hbank="81" lbank="3" prog="83"/>
+ <Patch name="SH-2000" hbank="81" lbank="4" prog="85"/>
+ <Patch name="Jay Vee Solo" hbank="81" lbank="4" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Techno Synth">
+ <Patch name="Big BPF" hbank="81" lbank="2" prog="102"/>
+ <Patch name="B'on d'moov!" hbank="81" lbank="4" prog="75"/>
+ <Patch name="Mental Chord" hbank="81" lbank="4" prog="65"/>
+ <Patch name="House Chord" hbank="81" lbank="4" prog="66"/>
+ <Patch name="Auto TB-303" hbank="81" lbank="1" prog="47"/>
+ <Patch name="Dist TB-303" hbank="81" lbank="4" prog="76"/>
+ <Patch name="Resojuice" hbank="81" lbank="4" prog="74"/>
+ <Patch name="Keep :-)" hbank="81" lbank="4" prog="73"/>
+ <Patch name="Rezoid" hbank="81" lbank="1" prog="57"/>
+ <Patch name="Raverborg" hbank="81" lbank="1" prog="58"/>
+ <Patch name="Airplaane" hbank="81" lbank="1" prog="99"/>
+ <Patch name="TeknoSoloVox" hbank="81" lbank="1" prog="66"/>
+ <Patch name="Pick It" hbank="81" lbank="1" prog="63"/>
+ <Patch name="House Piano" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Velo Tekno 2" hbank="81" lbank="1" prog="56"/>
+ <Patch name="Analog Seq" hbank="81" lbank="1" prog="64"/>
+ <Patch name="Sequalog" hbank="81" lbank="4" prog="67"/>
+ <Patch name="Intentions" hbank="81" lbank="1" prog="62"/>
+ <Patch name="Seq Mallet" hbank="81" lbank="1" prog="61"/>
+ <Patch name="Plik-Plok" hbank="81" lbank="4" prog="70"/>
+ <Patch name="Booster Bips" hbank="81" lbank="4" prog="68"/>
+ <Patch name="VintagePlunk" hbank="81" lbank="4" prog="69"/>
+ <Patch name="RingSequence" hbank="81" lbank="4" prog="71"/>
+ <Patch name="Cyber Swing" hbank="81" lbank="4" prog="72"/>
+ <Patch name="Hihat Tekno" hbank="81" lbank="1" prog="48"/>
+ <Patch name="Impact Vox" hbank="81" lbank="1" prog="65"/>
+ <Patch name="Techno Dream" hbank="81" lbank="4" prog="62"/>
+ <Patch name="Organizer" hbank="81" lbank="4" prog="63"/>
+ <Patch name="Civilization" hbank="81" lbank="4" prog="64"/>
+ <Patch name="Velo Tekno 1" hbank="81" lbank="1" prog="49"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Pulsating Synth">
+ <Patch name="Alternative" hbank="81" lbank="1" prog="45"/>
+ <Patch name="Acid Line" hbank="81" lbank="1" prog="46"/>
+ <Patch name="Raggatronic" hbank="81" lbank="1" prog="50"/>
+ <Patch name="Blade Racer" hbank="81" lbank="1" prog="51"/>
+ <Patch name="S&amp;H Pad" hbank="81" lbank="1" prog="52"/>
+ <Patch name="Syncrosonix" hbank="81" lbank="1" prog="53"/>
+ <Patch name="Fooled Again" hbank="81" lbank="1" prog="54"/>
+ <Patch name="Alive" hbank="81" lbank="1" prog="55"/>
+ <Patch name="X-Mod Man" hbank="81" lbank="1" prog="67"/>
+ <Patch name="Paz &lt;==&gt; Zap" hbank="81" lbank="1" prog="68"/>
+ <Patch name="Flying Walt" hbank="81" lbank="2" prog="98"/>
+ <Patch name="Strobe Mode" hbank="81" lbank="2" prog="92"/>
+ <Patch name="Albion" hbank="81" lbank="2" prog="93"/>
+ <Patch name="Planet Asia" hbank="81" lbank="4" prog="78"/>
+ <Patch name="Afterlife" hbank="81" lbank="4" prog="79"/>
+ <Patch name="Running Pad" hbank="81" lbank="2" prog="94"/>
+ <Patch name="Pulsatronic" hbank="81" lbank="4" prog="81"/>
+ <Patch name="Trancing Pad" hbank="81" lbank="4" prog="80"/>
+ <Patch name="LFO Vox" hbank="81" lbank="2" prog="33"/>
+ <Patch name="Cyber Dreams" hbank="81" lbank="4" prog="82"/>
+ <Patch name="Stepped Pad" hbank="81" lbank="2" prog="95"/>
+ <Patch name="Random Pad" hbank="81" lbank="2" prog="96"/>
+ <Patch name="SoundtrkDANC" hbank="81" lbank="2" prog="97"/>
+ <Patch name="Phazweep" hbank="81" lbank="2" prog="101"/>
+ <Patch name="Goblin" hbank="81" lbank="3" prog="101"/>
+ <Patch name="Temple of JV" hbank="81" lbank="4" prog="77"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth FX">
+ <Patch name="Vanishing" hbank="81" lbank="2" prog="99"/>
+ <Patch name="Vektogram" hbank="81" lbank="2" prog="108"/>
+ <Patch name="Cascade" hbank="81" lbank="2" prog="111"/>
+ <Patch name="Shattered" hbank="81" lbank="2" prog="112"/>
+ <Patch name="Pure Tibet" hbank="81" lbank="2" prog="114"/>
+ <Patch name="Sands ofTime" hbank="81" lbank="2" prog="106"/>
+ <Patch name="NextFrontier" hbank="81" lbank="2" prog="113"/>
+ <Patch name="Inertia" hbank="81" lbank="2" prog="107"/>
+ <Patch name="RiversOfTime" hbank="81" lbank="4" prog="116"/>
+ <Patch name="Glistening" hbank="81" lbank="4" prog="120"/>
+ <Patch name="Feedback VOX" hbank="81" lbank="2" prog="110"/>
+ <Patch name="Chime Wash" hbank="81" lbank="2" prog="115"/>
+ <Patch name="Phobos" hbank="81" lbank="4" prog="117"/>
+ <Patch name="Terminate" hbank="81" lbank="2" prog="127"/>
+ <Patch name="2 0 8 0" hbank="81" lbank="4" prog="118"/>
+ <Patch name="Crash Pad" hbank="81" lbank="2" prog="109"/>
+ <Patch name="Tortured" hbank="81" lbank="2" prog="117"/>
+ <Patch name="Sci-Fi Str" hbank="81" lbank="4" prog="121"/>
+ <Patch name="Night Shade" hbank="81" lbank="2" prog="116"/>
+ <Patch name="Unearthly" hbank="81" lbank="4" prog="119"/>
+ <Patch name="Dunes" hbank="81" lbank="2" prog="119"/>
+ <Patch name="Ice Hall" hbank="81" lbank="2" prog="124"/>
+ <Patch name="Cyber Space" hbank="81" lbank="2" prog="121"/>
+ <Patch name="Dissimilate" hbank="81" lbank="2" prog="118"/>
+ <Patch name="Ocean Floor" hbank="81" lbank="2" prog="120"/>
+ <Patch name="Helium Queen" hbank="81" lbank="4" prog="123"/>
+ <Patch name="Shadows" hbank="81" lbank="4" prog="122"/>
+ <Patch name="Biosphere" hbank="81" lbank="2" prog="122"/>
+ <Patch name="Computer Room" hbank="81" lbank="2" prog="125"/>
+ <Patch name="Sci-Fi FX x4" hbank="81" lbank="4" prog="124"/>
+ <Patch name="Variable Run" hbank="81" lbank="2" prog="123"/>
+ <Patch name="Inverted" hbank="81" lbank="2" prog="126"/>
+ <Patch name="Breath Noise" hbank="81" lbank="3" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Poly Synth">
+ <Patch name="Poly Key" hbank="81" lbank="0" prog="61"/>
+ <Patch name="Poly Saws" hbank="81" lbank="0" prog="62"/>
+ <Patch name="Polysynth" hbank="81" lbank="3" prog="90"/>
+ <Patch name="Poly Pulse" hbank="81" lbank="0" prog="63"/>
+ <Patch name="Dual Profs" hbank="81" lbank="0" prog="64"/>
+ <Patch name="Saw Mass" hbank="81" lbank="0" prog="65"/>
+ <Patch name="Poly Split" hbank="81" lbank="0" prog="66"/>
+ <Patch name="Poly Rock" hbank="81" lbank="0" prog="69"/>
+ <Patch name="Puff 1080" hbank="81" lbank="0" prog="76"/>
+ <Patch name="Stackoid" hbank="81" lbank="0" prog="68"/>
+ <Patch name="Pulse Key" hbank="81" lbank="0" prog="88"/>
+ <Patch name="Wire Pad" hbank="81" lbank="4" prog="25"/>
+ <Patch name="PhaseBlipper" hbank="81" lbank="4" prog="26"/>
+ <Patch name="Sweep Clav" hbank="81" lbank="4" prog="27"/>
+ <Patch name="Glider" hbank="81" lbank="4" prog="28"/>
+ <Patch name="Brightness" hbank="81" lbank="3" prog="100"/>
+ <Patch name="Fantasia" hbank="81" lbank="3" prog="88"/>
+ <Patch name="Ice Rain" hbank="81" lbank="3" prog="96"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bright Pad Synth">
+ <Patch name="Spectrum Mod" hbank="81" lbank="4" prog="108"/>
+ <Patch name="Stringsheen" hbank="81" lbank="4" prog="109"/>
+ <Patch name="Mod DirtyWav" hbank="81" lbank="4" prog="111"/>
+ <Patch name="Echo Drops" hbank="81" lbank="3" prog="102"/>
+ <Patch name="5th Sweep" hbank="81" lbank="2" prog="100"/>
+ <Patch name="Greek Power" hbank="81" lbank="2" prog="63"/>
+ <Patch name="MG Sweep" hbank="81" lbank="2" prog="103"/>
+ <Patch name="GR500 TmpDly" hbank="81" lbank="4" prog="110"/>
+ <Patch name="Silicon Str" hbank="81" lbank="4" prog="112"/>
+ <Patch name="Vintage Orch" hbank="81" lbank="2" prog="54"/>
+ <Patch name="Gigantalog" hbank="81" lbank="2" prog="56"/>
+ <Patch name="PWM Strings" hbank="81" lbank="2" prog="57"/>
+ <Patch name="JUNO Strings" hbank="81" lbank="2" prog="55"/>
+ <Patch name="Juno Power!" hbank="81" lbank="4" prog="107"/>
+ <Patch name="Pivotal Pad" hbank="81" lbank="2" prog="79"/>
+ <Patch name="Fantawine" hbank="81" lbank="2" prog="81"/>
+ <Patch name="Metal Pad" hbank="81" lbank="3" prog="93"/>
+ <Patch name="Star Theme" hbank="81" lbank="3" prog="103"/>
+ <Patch name="Harmonicum" hbank="81" lbank="2" prog="64"/>
+ <Patch name="D-50 Heaven" hbank="81" lbank="2" prog="65"/>
+ <Patch name="D50FantaPerc" hbank="81" lbank="4" prog="113"/>
+ <Patch name="Heirborne" hbank="81" lbank="2" prog="72"/>
+ <Patch name="Hush Pad" hbank="81" lbank="2" prog="73"/>
+ <Patch name="Halo Pad" hbank="81" lbank="3" prog="94"/>
+ <Patch name="RotoDreams" hbank="81" lbank="4" prog="114"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Pad Synth">
+ <Patch name="Earth Blow" hbank="81" lbank="4" prog="92"/>
+ <Patch name="Square Pad" hbank="81" lbank="2" prog="69"/>
+ <Patch name="JX SqrCarpet" hbank="81" lbank="4" prog="93"/>
+ <Patch name="JP-8 Hollow" hbank="81" lbank="2" prog="70"/>
+ <Patch name="JP-8Haunting" hbank="81" lbank="2" prog="71"/>
+ <Patch name="Silky Way" hbank="81" lbank="4" prog="98"/>
+ <Patch name="Rich Dynapad" hbank="81" lbank="4" prog="97"/>
+ <Patch name="Warm Pad" hbank="81" lbank="3" prog="89"/>
+ <Patch name="Warmth" hbank="81" lbank="2" prog="58"/>
+ <Patch name="Pop Pad" hbank="81" lbank="2" prog="67"/>
+ <Patch name="Gluey Pad" hbank="81" lbank="4" prog="99"/>
+ <Patch name="ORBit Pad" hbank="81" lbank="2" prog="59"/>
+ <Patch name="Syn.Strings1" hbank="81" lbank="3" prog="50"/>
+ <Patch name="Syn.Strings2" hbank="81" lbank="3" prog="51"/>
+ <Patch name="OctaPad" hbank="81" lbank="4" prog="106"/>
+ <Patch name="E-Motion Pad" hbank="81" lbank="2" prog="52"/>
+ <Patch name="Translucence" hbank="81" lbank="4" prog="102"/>
+ <Patch name="Glassy Pad" hbank="81" lbank="2" prog="82"/>
+ <Patch name="Glass Blower" hbank="81" lbank="4" prog="91"/>
+ <Patch name="Dreamesque" hbank="81" lbank="2" prog="68"/>
+ <Patch name="Moving Glass" hbank="81" lbank="2" prog="83"/>
+ <Patch name="D'light" hbank="81" lbank="4" prog="104"/>
+ <Patch name="Glasswaves" hbank="81" lbank="2" prog="84"/>
+ <Patch name="ShiftedGlass" hbank="81" lbank="2" prog="86"/>
+ <Patch name="Bowed Glass" hbank="81" lbank="3" prog="92"/>
+ <Patch name="December Sky" hbank="81" lbank="4" prog="105"/>
+ <Patch name="Pulse Pad" hbank="81" lbank="2" prog="62"/>
+ <Patch name="Pulsify" hbank="81" lbank="2" prog="61"/>
+ <Patch name="Shiny Pad" hbank="81" lbank="2" prog="85"/>
+ <Patch name="Analog Drama" hbank="81" lbank="4" prog="96"/>
+ <Patch name="BandPass Mod" hbank="81" lbank="4" prog="100"/>
+ <Patch name="Dimensional" hbank="81" lbank="4" prog="94"/>
+ <Patch name="Phaze Str" hbank="81" lbank="2" prog="77"/>
+ <Patch name="Jupiterings" hbank="81" lbank="4" prog="95"/>
+ <Patch name="Jet Str Ens" hbank="81" lbank="2" prog="78"/>
+ <Patch name="Phaze Pad" hbank="81" lbank="2" prog="76"/>
+ <Patch name="Jet Pad 1" hbank="81" lbank="2" prog="74"/>
+ <Patch name="Jet Pad 2" hbank="81" lbank="2" prog="75"/>
+ <Patch name="Sweep Pad" hbank="81" lbank="3" prog="95"/>
+ <Patch name="3D Flanged" hbank="81" lbank="2" prog="80"/>
+ <Patch name="Dawn 2 Dusk" hbank="81" lbank="2" prog="90"/>
+ <Patch name="Aurora" hbank="81" lbank="2" prog="91"/>
+ <Patch name="Chime Pad" hbank="81" lbank="2" prog="87"/>
+ <Patch name="Spin Pad" hbank="81" lbank="2" prog="88"/>
+ <Patch name="Rotary Pad" hbank="81" lbank="2" prog="89"/>
+ <Patch name="Soundtrack" hbank="81" lbank="3" prog="97"/>
+ <Patch name="Soundtraque" hbank="81" lbank="4" prog="101"/>
+ <Patch name="Darkshine" hbank="81" lbank="4" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Vox, Choir">
+ <Patch name="Dark Vox" hbank="81" lbank="2" prog="15"/>
+ <Patch name="Angels Sing" hbank="81" lbank="2" prog="17"/>
+ <Patch name="Beauty Vox" hbank="81" lbank="2" prog="21"/>
+ <Patch name="Pvox Oooze" hbank="81" lbank="2" prog="18"/>
+ <Patch name="SynVox" hbank="81" lbank="3" prog="54"/>
+ <Patch name="RandomVowels" hbank="81" lbank="2" prog="16"/>
+ <Patch name="Choir Aahs" hbank="81" lbank="3" prog="52"/>
+ <Patch name="Enlighten" hbank="81" lbank="4" prog="90"/>
+ <Patch name="Longing..." hbank="81" lbank="2" prog="19"/>
+ <Patch name="Arasian Morn" hbank="81" lbank="2" prog="20"/>
+ <Patch name="Mary-AnneVox" hbank="81" lbank="2" prog="22"/>
+ <Patch name="Belltree Vox" hbank="81" lbank="2" prog="23"/>
+ <Patch name="Vox Panner" hbank="81" lbank="2" prog="24"/>
+ <Patch name="Glass Voices" hbank="81" lbank="2" prog="26"/>
+ <Patch name="Tubular Vox" hbank="81" lbank="2" prog="27"/>
+ <Patch name="Space Voice" hbank="81" lbank="3" prog="91"/>
+ <Patch name="Wavox" hbank="81" lbank="2" prog="29"/>
+ <Patch name="Velo Voxx" hbank="81" lbank="2" prog="28"/>
+ <Patch name="Vocal Ooh" hbank="81" lbank="2" prog="32"/>
+ <Patch name="Spaced Voxx" hbank="81" lbank="2" prog="25"/>
+ <Patch name="Doos" hbank="81" lbank="2" prog="30"/>
+ <Patch name="Voice Oohs" hbank="81" lbank="3" prog="53"/>
+ <Patch name="Synvox Comps" hbank="81" lbank="2" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Plucked">
+ <Patch name="Sitar" hbank="81" lbank="0" prog="100"/>
+ <Patch name="Drone Split" hbank="81" lbank="0" prog="101"/>
+ <Patch name="Sitar" hbank="81" lbank="3" prog="104"/>
+ <Patch name="Dulcimer" hbank="81" lbank="0" prog="104"/>
+ <Patch name="Santur" hbank="81" lbank="3" prog="15"/>
+ <Patch name="East Europe" hbank="81" lbank="4" prog="39"/>
+ <Patch name="Dulcitar" hbank="81" lbank="4" prog="40"/>
+ <Patch name="Harp On It" hbank="81" lbank="2" prog="48"/>
+ <Patch name="Harp" hbank="81" lbank="2" prog="49"/>
+ <Patch name="Harp" hbank="81" lbank="3" prog="46"/>
+ <Patch name="Atmos Harp" hbank="81" lbank="4" prog="41"/>
+ <Patch name="Shamisen" hbank="81" lbank="3" prog="106"/>
+ <Patch name="Jamisen" hbank="81" lbank="0" prog="103"/>
+ <Patch name="Koto" hbank="81" lbank="3" prog="107"/>
+ <Patch name="Ethnopluck" hbank="81" lbank="0" prog="102"/>
+ <Patch name="Kalimba" hbank="81" lbank="3" prog="108"/>
+ <Patch name="Pilgrimage" hbank="81" lbank="4" prog="42"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Ethnic">
+ <Patch name="Shakuhachi" hbank="81" lbank="3" prog="77"/>
+ <Patch name="Taj Mahal" hbank="81" lbank="1" prog="100"/>
+ <Patch name="Raya Shaku" hbank="81" lbank="1" prog="101"/>
+ <Patch name="Shanai" hbank="81" lbank="3" prog="111"/>
+ <Patch name="Bag Pipe" hbank="81" lbank="3" prog="109"/>
+ <Patch name="French Bags" hbank="81" lbank="1" prog="122"/>
+ <Patch name="East Melody" hbank="81" lbank="0" prog="105"/>
+ <Patch name="Far East" hbank="81" lbank="4" prog="24"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Fretted Inst">
+ <Patch name="MandolinTrem" hbank="81" lbank="0" prog="106"/>
+ <Patch name="Banjo" hbank="81" lbank="3" prog="105"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Percussion">
+ <Patch name="CeremonyTimp" hbank="81" lbank="2" prog="104"/>
+ <Patch name="Timpani" hbank="81" lbank="3" prog="47"/>
+ <Patch name="Dyno Toms" hbank="81" lbank="2" prog="105"/>
+ <Patch name="Melo. Tom 1" hbank="81" lbank="3" prog="117"/>
+ <Patch name="Taiko" hbank="81" lbank="3" prog="116"/>
+ <Patch name="Agogo" hbank="81" lbank="3" prog="113"/>
+ <Patch name="Woodblock" hbank="81" lbank="3" prog="115"/>
+ <Patch name="Synth Drum" hbank="81" lbank="3" prog="118"/>
+ <Patch name="Reverse Cym." hbank="81" lbank="3" prog="119"/>
+ <Patch name="Perky Noize" hbank="81" lbank="4" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sound Effects">
+ <Patch name="Seashore" hbank="81" lbank="3" prog="122"/>
+ <Patch name="Bird" hbank="81" lbank="3" prog="123"/>
+ <Patch name="Telephone 1" hbank="81" lbank="3" prog="124"/>
+ <Patch name="Helicopter" hbank="81" lbank="3" prog="125"/>
+ <Patch name="Applause" hbank="81" lbank="3" prog="126"/>
+ <Patch name="Gun Shot" hbank="81" lbank="3" prog="127"/>
+ <Patch name="Droplet" hbank="81" lbank="4" prog="126"/>
+ <Patch name="Rain Forest" hbank="81" lbank="4" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Combination">
+ <Patch name="Blue Notes" hbank="81" lbank="4" prog="115"/>
+ <Patch name="Lounge Gig" hbank="81" lbank="0" prog="116"/>
+ <Patch name="Bs/Pno+Brs" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Hillbillys" hbank="81" lbank="1" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 001-032">
+ <Patch name="Tremendously" hbank="80" lbank="0" prog="0"/>
+ <Patch name="St.Concert" hbank="80" lbank="0" prog="1"/>
+ <Patch name="CyberTrance2" hbank="80" lbank="0" prog="2"/>
+ <Patch name="SessionNyln2" hbank="80" lbank="0" prog="3"/>
+ <Patch name="ViennaStrgs3" hbank="80" lbank="0" prog="4"/>
+ <Patch name="R&amp;R Brass" hbank="80" lbank="0" prog="5"/>
+ <Patch name="Velo Power" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Super Tenor" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Breathy Hum" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Ow Bass" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Dunes" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Celestial 2" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Tone Wh.Solo" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Poly Brs" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Combing Slow" hbank="80" lbank="0" prog="14"/>
+ <Patch name="SA Rhodes 5" hbank="80" lbank="0" prog="15"/>
+ <Patch name="Adrenaline" hbank="80" lbank="0" prog="16"/>
+ <Patch name="DanceStack 1" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Flying Walt" hbank="80" lbank="0" prog="18"/>
+ <Patch name="East Europe" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Silky Way" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Techno Dream" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Raverborg" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Pan Pipes" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Pretty Bells" hbank="80" lbank="0" prog="24"/>
+ <Patch name="Glistening" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Metal Solo" hbank="80" lbank="0" prog="26"/>
+ <Patch name="StateXLChrd2" hbank="80" lbank="0" prog="27"/>
+ <Patch name="Raggatronic" hbank="80" lbank="0" prog="28"/>
+ <Patch name="ChristmasFlt" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Acc.de Paris" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Dream Voices2" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 033-064">
+ <Patch name="VintageCall2" hbank="80" lbank="0" prog="32"/>
+ <Patch name="Trancing Pad" hbank="80" lbank="0" prog="33"/>
+ <Patch name="OldiesOrgan2" hbank="80" lbank="0" prog="34"/>
+ <Patch name="X..? Whistle" hbank="80" lbank="0" prog="35"/>
+ <Patch name="Analog Drama" hbank="80" lbank="0" prog="36"/>
+ <Patch name="BPF Lead" hbank="80" lbank="0" prog="37"/>
+ <Patch name="Clean Tele" hbank="80" lbank="0" prog="38"/>
+ <Patch name="Earth Blow" hbank="80" lbank="0" prog="39"/>
+ <Patch name="Pulsatronic" hbank="80" lbank="0" prog="40"/>
+ <Patch name="Funky Slap" hbank="80" lbank="0" prog="41"/>
+ <Patch name="Echo Rhodes" hbank="80" lbank="0" prog="42"/>
+ <Patch name="pp Harmonium" hbank="80" lbank="0" prog="43"/>
+ <Patch name="Blue Notes" hbank="80" lbank="0" prog="44"/>
+ <Patch name="Aurora" hbank="80" lbank="0" prog="45"/>
+ <Patch name="Breathy Brs" hbank="80" lbank="0" prog="46"/>
+ <Patch name="Enlighten" hbank="80" lbank="0" prog="47"/>
+ <Patch name="Tube Smoke" hbank="80" lbank="0" prog="48"/>
+ <Patch name="Perelandra" hbank="80" lbank="0" prog="49"/>
+ <Patch name="SquareLead 2" hbank="80" lbank="0" prog="50"/>
+ <Patch name="Shadows" hbank="80" lbank="0" prog="51"/>
+ <Patch name="Organizer" hbank="80" lbank="0" prog="52"/>
+ <Patch name="Full Orchest" hbank="80" lbank="0" prog="53"/>
+ <Patch name="B'on d'moov!" hbank="80" lbank="0" prog="54"/>
+ <Patch name="Sugar Bell 2" hbank="80" lbank="0" prog="55"/>
+ <Patch name="Player's EP" hbank="80" lbank="0" prog="56"/>
+ <Patch name="4pole Bass" hbank="80" lbank="0" prog="57"/>
+ <Patch name="Octapad" hbank="80" lbank="0" prog="58"/>
+ <Patch name="Tria Bells" hbank="80" lbank="0" prog="59"/>
+ <Patch name="Wire Pad" hbank="80" lbank="0" prog="60"/>
+ <Patch name="Singin'Mini" hbank="80" lbank="0" prog="61"/>
+ <Patch name="Heirborne" hbank="80" lbank="0" prog="62"/>
+ <Patch name="Trumpet" hbank="80" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 065-096">
+ <Patch name="Steel Away" hbank="80" lbank="0" prog="64"/>
+ <Patch name="D-50 Stack" hbank="80" lbank="0" prog="65"/>
+ <Patch name="Solo Strat" hbank="80" lbank="0" prog="66"/>
+ <Patch name="Soap Opera" hbank="80" lbank="0" prog="67"/>
+ <Patch name="Sop.Sax mf" hbank="80" lbank="0" prog="68"/>
+ <Patch name="Dimensional" hbank="80" lbank="0" prog="69"/>
+ <Patch name="Blusey OD" hbank="80" lbank="0" prog="70"/>
+ <Patch name="Stacc.Heaven" hbank="80" lbank="0" prog="71"/>
+ <Patch name="PhaseBlipper" hbank="80" lbank="0" prog="72"/>
+ <Patch name="Pure Tibet" hbank="80" lbank="0" prog="73"/>
+ <Patch name="Afterlife" hbank="80" lbank="0" prog="74"/>
+ <Patch name="Perky B" hbank="80" lbank="0" prog="75"/>
+ <Patch name="Juno Power!" hbank="80" lbank="0" prog="76"/>
+ <Patch name="SessionBrass" hbank="80" lbank="0" prog="77"/>
+ <Patch name="JX SqrCarpet" hbank="80" lbank="0" prog="78"/>
+ <Patch name="Phaser MC" hbank="80" lbank="0" prog="79"/>
+ <Patch name="Sweep Clav 2" hbank="80" lbank="0" prog="80"/>
+ <Patch name="BluesHarp" hbank="80" lbank="0" prog="81"/>
+ <Patch name="Scat Flute" hbank="80" lbank="0" prog="82"/>
+ <Patch name="5thPad 2" hbank="80" lbank="0" prog="83"/>
+ <Patch name="Belfry Chime" hbank="80" lbank="0" prog="84"/>
+ <Patch name="Atmos Harp" hbank="80" lbank="0" prog="85"/>
+ <Patch name="DesertCrystl" hbank="80" lbank="0" prog="86"/>
+ <Patch name="December Sky" hbank="80" lbank="0" prog="87"/>
+ <Patch name="Upright Pno" hbank="80" lbank="0" prog="88"/>
+ <Patch name="Darkshine" hbank="80" lbank="0" prog="89"/>
+ <Patch name="Exotic Velo" hbank="80" lbank="0" prog="90"/>
+ <Patch name="Atlantis 2" hbank="80" lbank="0" prog="91"/>
+ <Patch name="Creamy" hbank="80" lbank="0" prog="92"/>
+ <Patch name="Morning Lite" hbank="80" lbank="0" prog="93"/>
+ <Patch name="DanceStack 5" hbank="80" lbank="0" prog="94"/>
+ <Patch name="D50FantaPerc" hbank="80" lbank="0" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_USER 097-128">
+ <Patch name="Resojuice" hbank="80" lbank="0" prog="96"/>
+ <Patch name="Silicon Str" hbank="80" lbank="0" prog="97"/>
+ <Patch name="Keep :-)" hbank="80" lbank="0" prog="98"/>
+ <Patch name="Sm.Brass Grp" hbank="80" lbank="0" prog="99"/>
+ <Patch name="Echo Piano" hbank="80" lbank="0" prog="100"/>
+ <Patch name="Heavenly Pad" hbank="80" lbank="0" prog="101"/>
+ <Patch name="Sequalog" hbank="80" lbank="0" prog="102"/>
+ <Patch name="Solo Steel" hbank="80" lbank="0" prog="103"/>
+ <Patch name="Spectrum Mod" hbank="80" lbank="0" prog="104"/>
+ <Patch name="Delicate EP" hbank="80" lbank="0" prog="105"/>
+ <Patch name="Triumph Brs" hbank="80" lbank="0" prog="106"/>
+ <Patch name="Flute" hbank="80" lbank="0" prog="107"/>
+ <Patch name="2.2 Bell Pad" hbank="80" lbank="0" prog="108"/>
+ <Patch name="JustLovely 2" hbank="80" lbank="0" prog="109"/>
+ <Patch name="GR500 TmpDly" hbank="80" lbank="0" prog="110"/>
+ <Patch name="Dawn 2 Dusk" hbank="80" lbank="0" prog="111"/>
+ <Patch name="Gluey Pad" hbank="80" lbank="0" prog="112"/>
+ <Patch name="SquareKeys 3" hbank="80" lbank="0" prog="113"/>
+ <Patch name="Arasian Morn" hbank="80" lbank="0" prog="114"/>
+ <Patch name="D'light" hbank="80" lbank="0" prog="115"/>
+ <Patch name="Perky Noize" hbank="80" lbank="0" prog="116"/>
+ <Patch name="Mod DirtyWav" hbank="80" lbank="0" prog="117"/>
+ <Patch name="Moving Glass" hbank="80" lbank="0" prog="118"/>
+ <Patch name="Sci-Fi Str" hbank="80" lbank="0" prog="119"/>
+ <Patch name="OD 5ths" hbank="80" lbank="0" prog="120"/>
+ <Patch name="Far East" hbank="80" lbank="0" prog="121"/>
+ <Patch name="Phobos" hbank="80" lbank="0" prog="122"/>
+ <Patch name="Cyber Dreams" hbank="80" lbank="0" prog="123"/>
+ <Patch name="Cave 2" hbank="80" lbank="0" prog="124"/>
+ <Patch name="Helium Queen" hbank="80" lbank="0" prog="125"/>
+ <Patch name="Rain Forest" hbank="80" lbank="0" prog="126"/>
+ <Patch name="Crowds" hbank="80" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_USER">
+ <Patch name="EasternSplit" hbank="80" lbank="0" prog="0"/>
+ <Patch name="Opening Orch" hbank="80" lbank="0" prog="1"/>
+ <Patch name="Feedback EP" hbank="80" lbank="0" prog="2"/>
+ <Patch name="Humming Vox" hbank="80" lbank="0" prog="3"/>
+ <Patch name="Tekno Loop 1" hbank="80" lbank="0" prog="4"/>
+ <Patch name="Fr.Horn Sect" hbank="80" lbank="0" prog="5"/>
+ <Patch name="SpaceCarrier" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Orchestral" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Nebular Vox" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Terminator" hbank="80" lbank="0" prog="9"/>
+ <Patch name="Flying Ja" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Sweeper" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Rave Split" hbank="80" lbank="0" prog="12"/>
+ <Patch name="Multi Sax" hbank="80" lbank="0" prog="13"/>
+ <Patch name="Cosmic Dawn" hbank="80" lbank="0" prog="14"/>
+ <Patch name="Bass / Lead" hbank="80" lbank="0" prog="15"/>
+ <Patch name="S&amp;H / Pad" hbank="80" lbank="0" prog="16"/>
+ <Patch name="AcPiano+Pad" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Kicks Attack" hbank="80" lbank="0" prog="18"/>
+ <Patch name="Step Brass" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Drone / Pipe" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Chime Dreams" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Tekno Loop 2" hbank="80" lbank="0" prog="22"/>
+ <Patch name="Big Band" hbank="80" lbank="0" prog="23"/>
+ <Patch name="Labyrinth" hbank="80" lbank="0" prog="24"/>
+ <Patch name="White Hole" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Cyber Sweep" hbank="80" lbank="0" prog="26"/>
+ <Patch name="Tekno Asia" hbank="80" lbank="0" prog="27"/>
+ <Patch name="1080 Fantasy" hbank="80" lbank="0" prog="28"/>
+ <Patch name="Pop Ballad" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Rhythmatic" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Power JV" hbank="80" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-A">
+ <Patch name="House Set" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Analectro" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Anatronic" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Tekno Pop 1" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Tekno Pop 2" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Hard Core" hbank="81" lbank="0" prog="5"/>
+ <Patch name="Hi Energy" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Pop Dance" hbank="81" lbank="0" prog="7"/>
+ <Patch name="Acid Set" hbank="81" lbank="0" prog="8"/>
+ <Patch name="Ambient Set" hbank="81" lbank="0" prog="9"/>
+ <Patch name="Electro Pop" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Pop Set 1" hbank="81" lbank="0" prog="11"/>
+ <Patch name="Pop Set 2" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Pop Set 3" hbank="81" lbank="0" prog="13"/>
+ <Patch name="Pop Set 4" hbank="81" lbank="0" prog="14"/>
+ <Patch name="L.A. Ballad" hbank="81" lbank="0" prog="15"/>
+ <Patch name="Hip Hop Set" hbank="81" lbank="0" prog="16"/>
+ <Patch name="Funk Rock" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Funk Fusion" hbank="81" lbank="0" prog="18"/>
+ <Patch name="Heavy Metal" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Heavy Kids" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Latin Set" hbank="81" lbank="0" prog="21"/>
+ <Patch name="BrazilianSet" hbank="81" lbank="0" prog="22"/>
+ <Patch name="New Age 1" hbank="81" lbank="0" prog="23"/>
+ <Patch name="New Age 2" hbank="81" lbank="0" prog="24"/>
+ <Patch name="Orchestra" hbank="81" lbank="0" prog="25"/>
+ <Patch name="Concerto" hbank="81" lbank="0" prog="26"/>
+ <Patch name="Film Score 1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Film Score 2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="Symphonic" hbank="81" lbank="0" prog="29"/>
+ <Patch name="Chamber Set" hbank="81" lbank="0" prog="30"/>
+ <Patch name="Baroque Set" hbank="81" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Performances_PRESET-B">
+ <Patch name="Africa" hbank="81" lbank="1" prog="0"/>
+ <Patch name="World Ethnic" hbank="81" lbank="1" prog="1"/>
+ <Patch name="Asian Ethnic" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Asian Band" hbank="81" lbank="1" prog="3"/>
+ <Patch name="60's Set" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Blues Band" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Country Band" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Folk Set" hbank="81" lbank="1" prog="7"/>
+ <Patch name="Reggae Band" hbank="81" lbank="1" prog="8"/>
+ <Patch name="FunkWah Band" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Funkin'Phaze" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Zydeco Band" hbank="81" lbank="1" prog="11"/>
+ <Patch name="New Orleans" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Dixieland" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Big Band Set" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Cont.Jazz 1" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Cont.Jazz 2" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Ac.Jazz Set" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Gospel Set" hbank="81" lbank="1" prog="18"/>
+ <Patch name="All Strings" hbank="81" lbank="1" prog="19"/>
+ <Patch name="All Brass" hbank="81" lbank="1" prog="20"/>
+ <Patch name="All Piano 1" hbank="81" lbank="1" prog="21"/>
+ <Patch name="All Piano 2" hbank="81" lbank="1" prog="22"/>
+ <Patch name="All Keyboard" hbank="81" lbank="1" prog="23"/>
+ <Patch name="All Organ" hbank="81" lbank="1" prog="24"/>
+ <Patch name="All Winds" hbank="81" lbank="1" prog="25"/>
+ <Patch name="All Bells" hbank="81" lbank="1" prog="26"/>
+ <Patch name="Mlt &amp; Perc" hbank="81" lbank="1" prog="27"/>
+ <Patch name="All Seq" hbank="81" lbank="1" prog="28"/>
+ <Patch name="All Bass" hbank="81" lbank="1" prog="29"/>
+ <Patch name="All Pad" hbank="81" lbank="1" prog="30"/>
+ <Patch name="All FX" hbank="81" lbank="1" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="HouseDrumSet" hbank="80" lbank="0" prog="0"/>
+ <Patch name="JazzDrumSet1" hbank="80" lbank="0" prog="1"/>
+ <Patch name="PopDrumSet 1" hbank="81" lbank="0" prog="0"/>
+ <Patch name="PopDrumSet 2" hbank="81" lbank="0" prog="1"/>
+ <Patch name="PowerDrumSet" hbank="81" lbank="1" prog="0"/>
+ <Patch name="RaveDrumSet" hbank="81" lbank="1" prog="1"/>
+ <Patch name="JazzDrumSet2" hbank="81" lbank="2" prog="0"/>
+ <Patch name="OrchDrumSet" hbank="81" lbank="2" prog="1"/>
+ <Patch name="GM Drum Set" hbank="81" lbank="3" prog="0"/>
+ <Patch name="BrushDrumSet" hbank="81" lbank="3" prog="1"/>
+ <Patch name="PowerDrmSet2" hbank="81" lbank="4" prog="0"/>
+ <Patch name="PowerRaveSet" hbank="81" lbank="4" prog="1"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse> \ No newline at end of file
diff --git a/muse_qt4_evolution/share/instruments/Roland-JV-1010-Session.idf b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Session.idf
new file mode 100644
index 00000000..b407d843
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-JV-1010-Session.idf
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="utf-8"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland JV-1010 Session">
+ <Init>
+ </Init>
+ <PatchGroup name="Patches_Acoustic Piano">
+ <Patch name="St.Concert" hbank="84" lbank="0" prog="0"/>
+ <Patch name="9ft.Grand 1" hbank="84" lbank="0" prog="1"/>
+ <Patch name="9ft.Grand 2" hbank="84" lbank="0" prog="2"/>
+ <Patch name="Euro Classic" hbank="84" lbank="0" prog="3"/>
+ <Patch name="St.Pno &amp; Str" hbank="84" lbank="0" prog="4"/>
+ <Patch name="Compress Pno" hbank="84" lbank="0" prog="5"/>
+ <Patch name="LA Session" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Water Piano" hbank="84" lbank="0" prog="7"/>
+ <Patch name="DEMO Piano1" hbank="84" lbank="1" prog="102"/>
+ <Patch name="DEMO Piano2" hbank="84" lbank="1" prog="103"/>
+ <Patch name="DEMO PnoVox" hbank="84" lbank="1" prog="104"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Piano">
+ <Patch name="Vibra Rhodes" hbank="84" lbank="0" prog="8"/>
+ <Patch name="Stack Rhodes" hbank="84" lbank="0" prog="9"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Other Keyboards">
+ <Patch name="Harpsichoir" hbank="84" lbank="1" prog="12"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bell, Bell Pad">
+ <Patch name="Celestial" hbank="84" lbank="0" prog="110"/>
+ <Patch name="Heavenly Eko" hbank="84" lbank="0" prog="111"/>
+ <Patch name="JD-800 Nomad" hbank="84" lbank="0" prog="112"/>
+ <Patch name="Vibrolater" hbank="84" lbank="0" prog="113"/>
+ <Patch name="MartianChime" hbank="84" lbank="0" prog="114"/>
+ <Patch name="Big Wet Blip" hbank="84" lbank="0" prog="115"/>
+ <Patch name="Tarlia" hbank="84" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Mallet">
+ <Patch name="B3 Filth" hbank="84" lbank="1" prog="89"/>
+ <Patch name="Phazed Organ" hbank="84" lbank="1" prog="90"/>
+ <Patch name="VSw Vibrafon" hbank="84" lbank="1" prog="91"/>
+ <Patch name="SA Vibe" hbank="84" lbank="1" prog="92"/>
+ <Patch name="Rich Vibes" hbank="84" lbank="1" prog="93"/>
+ <Patch name="SpaceGamelan" hbank="84" lbank="1" prog="94"/>
+ <Patch name="Toy Vibe" hbank="84" lbank="1" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Accordian">
+ <Patch name="Acc.de Paris" hbank="84" lbank="0" prog="58"/>
+ <Patch name="Paris 50's" hbank="84" lbank="0" prog="59"/>
+ <Patch name="Musette Ens" hbank="84" lbank="0" prog="60"/>
+ <Patch name="Montmartre" hbank="84" lbank="0" prog="61"/>
+ <Patch name="Sad Akordion" hbank="84" lbank="0" prog="62"/>
+ <Patch name="Fr.Accordion" hbank="84" lbank="0" prog="63"/>
+ <Patch name="Fr.Accord 2" hbank="84" lbank="0" prog="64"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Guitar">
+ <Patch name="Troubadour" hbank="84" lbank="0" prog="65"/>
+ <Patch name="SessionNylon" hbank="84" lbank="0" prog="66"/>
+ <Patch name="Solo Nylon 1" hbank="84" lbank="0" prog="67"/>
+ <Patch name="Solo Nylon 2" hbank="84" lbank="0" prog="68"/>
+ <Patch name="Nylon &amp; Str" hbank="84" lbank="0" prog="69"/>
+ <Patch name="Nylon &amp; Flt" hbank="84" lbank="0" prog="70"/>
+ <Patch name="Nylon Chord" hbank="84" lbank="0" prog="71"/>
+ <Patch name="Deletex" hbank="84" lbank="0" prog="118"/>
+ <Patch name="DEMO Nylon" hbank="84" lbank="1" prog="115"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Electric Guitar">
+ <Patch name="Stratar" hbank="84" lbank="0" prog="72"/>
+ <Patch name="Clean Tele" hbank="84" lbank="0" prog="73"/>
+ <Patch name="Nashville" hbank="84" lbank="0" prog="74"/>
+ <Patch name="Super Trem" hbank="84" lbank="0" prog="75"/>
+ <Patch name="SpaghettiGtr" hbank="84" lbank="0" prog="76"/>
+ <Patch name="Duanne'sTone" hbank="84" lbank="0" prog="77"/>
+ <Patch name="Reso Tele" hbank="84" lbank="0" prog="89"/>
+ <Patch name="Wah Wah BPM" hbank="84" lbank="0" prog="90"/>
+ <Patch name="DEMO PhaseGt" hbank="84" lbank="1" prog="116"/>
+ <Patch name="DEMO Strat" hbank="84" lbank="1" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Distortion Guitar">
+ <Patch name="Big Hair Ld" hbank="84" lbank="0" prog="78"/>
+ <Patch name="Metal Solo" hbank="84" lbank="0" prog="79"/>
+ <Patch name="Crunch Tone" hbank="84" lbank="0" prog="80"/>
+ <Patch name="Overdriven" hbank="84" lbank="0" prog="81"/>
+ <Patch name="Blues Tele" hbank="84" lbank="0" prog="82"/>
+ <Patch name="Tube Double" hbank="84" lbank="0" prog="83"/>
+ <Patch name="Neil's Rust" hbank="84" lbank="0" prog="84"/>
+ <Patch name="Short Crunch" hbank="84" lbank="0" prog="85"/>
+ <Patch name="X-Fade Metal" hbank="84" lbank="0" prog="86"/>
+ <Patch name="Velo Power" hbank="84" lbank="0" prog="87"/>
+ <Patch name="Phazy Chunk" hbank="84" lbank="0" prog="88"/>
+ <Patch name="DEMO DistGt1" hbank="84" lbank="1" prog="117"/>
+ <Patch name="DEMO DistGt2" hbank="84" lbank="1" prog="118"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic &amp; Electric Bass">
+ <Patch name="Rock P.Bass1" hbank="84" lbank="0" prog="91"/>
+ <Patch name="Rock P.Bass2" hbank="84" lbank="0" prog="92"/>
+ <Patch name="Rock P.Bass3" hbank="84" lbank="0" prog="93"/>
+ <Patch name="Big Jazz Bs" hbank="84" lbank="0" prog="94"/>
+ <Patch name="BriteJazz Bs" hbank="84" lbank="0" prog="95"/>
+ <Patch name="Ch.Jazz Bs" hbank="84" lbank="0" prog="96"/>
+ <Patch name="Mellow Jz Bs" hbank="84" lbank="0" prog="97"/>
+ <Patch name="Mute E.Bs" hbank="84" lbank="0" prog="98"/>
+ <Patch name="Octabahn Bs" hbank="84" lbank="0" prog="99"/>
+ <Patch name="DEMO SlapBs" hbank="84" lbank="1" prog="120"/>
+ <Patch name="DEMO P.Bass" hbank="84" lbank="1" prog="121"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Bass">
+ <Patch name="Slobbery Bs" hbank="84" lbank="0" prog="100"/>
+ <Patch name="Phase Worm" hbank="84" lbank="0" prog="101"/>
+ <Patch name="Euro Rave Bs" hbank="84" lbank="0" prog="102"/>
+ <Patch name="Pumpin' Bs" hbank="84" lbank="0" prog="103"/>
+ <Patch name="Tech NoBase" hbank="84" lbank="0" prog="104"/>
+ <Patch name="Bad Acid Bs" hbank="84" lbank="0" prog="105"/>
+ <Patch name="CheepEcho Bs" hbank="84" lbank="0" prog="106"/>
+ <Patch name="Manic Bs" hbank="84" lbank="0" prog="107"/>
+ <Patch name="DEMO SynBs" hbank="84" lbank="1" prog="122"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Strings">
+ <Patch name="ArcoEnsemble" hbank="84" lbank="0" prog="10"/>
+ <Patch name="Vienna Strgs" hbank="84" lbank="0" prog="11"/>
+ <Patch name="Str Adagio" hbank="84" lbank="0" prog="12"/>
+ <Patch name="Oct Strings" hbank="84" lbank="0" prog="13"/>
+ <Patch name="Silky Filter" hbank="84" lbank="0" prog="14"/>
+ <Patch name="Soft Strings" hbank="84" lbank="0" prog="15"/>
+ <Patch name="SlowStr.Sect" hbank="84" lbank="0" prog="16"/>
+ <Patch name="GiantStrings" hbank="84" lbank="0" prog="17"/>
+ <Patch name="Str+Choir 1" hbank="84" lbank="0" prog="18"/>
+ <Patch name="Str+Choir 2" hbank="84" lbank="0" prog="19"/>
+ <Patch name="DEMO Str 1" hbank="84" lbank="1" prog="105"/>
+ <Patch name="DEMO Str 2" hbank="84" lbank="1" prog="106"/>
+ <Patch name="DEMO Str 3" hbank="84" lbank="1" prog="107"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Orchestra Hit, Hit">
+ <Patch name="Euro Hit 1" hbank="84" lbank="1" prog="6"/>
+ <Patch name="Euro Hit 2" hbank="84" lbank="1" prog="7"/>
+ <Patch name="Rave Slice" hbank="84" lbank="1" prog="8"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Flute, Piccolo">
+ <Patch name="Legato Flute" hbank="84" lbank="0" prog="49"/>
+ <Patch name="Touch Flute" hbank="84" lbank="0" prog="50"/>
+ <Patch name="NewAge Flute" hbank="84" lbank="0" prog="51"/>
+ <Patch name="Flute inMist" hbank="84" lbank="0" prog="52"/>
+ <Patch name="Hybrid Flute" hbank="84" lbank="0" prog="53"/>
+ <Patch name="Flute &amp; Cla" hbank="84" lbank="0" prog="54"/>
+ <Patch name="ChristmasFlt" hbank="84" lbank="0" prog="55"/>
+ <Patch name="Fifth Flute" hbank="84" lbank="0" prog="56"/>
+ <Patch name="Cosmic Flute" hbank="84" lbank="0" prog="57"/>
+ <Patch name="DEMO Flute" hbank="84" lbank="1" prog="114"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Acoustic Brass">
+ <Patch name="SessionBrass" hbank="84" lbank="0" prog="33"/>
+ <Patch name="Port.Tpts" hbank="84" lbank="0" prog="34"/>
+ <Patch name="R&amp;R Brass" hbank="84" lbank="0" prog="35"/>
+ <Patch name="Echo Brass" hbank="84" lbank="0" prog="36"/>
+ <Patch name="E.Coast Brs" hbank="84" lbank="0" prog="37"/>
+ <Patch name="Bop Soli" hbank="84" lbank="0" prog="38"/>
+ <Patch name="Orchestral" hbank="84" lbank="0" prog="40"/>
+ <Patch name="Tpt Soloist" hbank="84" lbank="0" prog="42"/>
+ <Patch name="Legato Tpt" hbank="84" lbank="0" prog="43"/>
+ <Patch name="Dyno Trumpet" hbank="84" lbank="0" prog="44"/>
+ <Patch name="Ethno-Trumps" hbank="84" lbank="0" prog="45"/>
+ <Patch name="DEMO Brass" hbank="84" lbank="1" prog="111"/>
+ <Patch name="DEMO Tpt" hbank="84" lbank="1" prog="113"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth Brass">
+ <Patch name="Octalog Hrn" hbank="84" lbank="0" prog="41"/>
+ <Patch name="Synergy Brs" hbank="84" lbank="1" prog="24"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sax">
+ <Patch name="Soft Saxes" hbank="84" lbank="0" prog="39"/>
+ <Patch name="Super Tenor" hbank="84" lbank="0" prog="46"/>
+ <Patch name="TenorExpress" hbank="84" lbank="0" prog="47"/>
+ <Patch name="T.Sax f" hbank="84" lbank="0" prog="48"/>
+ <Patch name="DEMO Tenor" hbank="84" lbank="1" prog="112"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Hard Synth Lead">
+ <Patch name="Eurotek Clav" hbank="84" lbank="0" prog="121"/>
+ <Patch name="Bu" hbank="84" lbank="0" prog="124"/>
+ <Patch name="Trangoa Wave" hbank="84" lbank="1" prog="1"/>
+ <Patch name="On the move!" hbank="84" lbank="1" prog="43"/>
+ <Patch name="Wormy Lead" hbank="84" lbank="1" prog="80"/>
+ <Patch name="Tweedles" hbank="84" lbank="1" prog="83"/>
+ <Patch name="Raw PWM" hbank="84" lbank="1" prog="84"/>
+ <Patch name="Dirty Lead" hbank="84" lbank="1" prog="86"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Synth Lead">
+ <Patch name="Atmo Lead" hbank="84" lbank="1" prog="81"/>
+ <Patch name="Caliolead" hbank="84" lbank="1" prog="82"/>
+ <Patch name="Voc Solo 5th" hbank="84" lbank="1" prog="85"/>
+ <Patch name="DEMO SynLead" hbank="84" lbank="1" prog="123"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Techno Synth">
+ <Patch name="Dope Resoclv" hbank="84" lbank="0" prog="122"/>
+ <Patch name="Tekno Juno" hbank="84" lbank="0" prog="123"/>
+ <Patch name="Phazerave" hbank="84" lbank="1" prog="14"/>
+ <Patch name="DanceStack 1" hbank="84" lbank="1" prog="15"/>
+ <Patch name="DanceStack 2" hbank="84" lbank="1" prog="16"/>
+ <Patch name="DanceStack 3" hbank="84" lbank="1" prog="17"/>
+ <Patch name="DanceStack 4" hbank="84" lbank="1" prog="18"/>
+ <Patch name="DanceStack 5" hbank="84" lbank="1" prog="19"/>
+ <Patch name="DanceStack 6" hbank="84" lbank="1" prog="20"/>
+ <Patch name="DanceStack 7" hbank="84" lbank="1" prog="21"/>
+ <Patch name="DanceStack 8" hbank="84" lbank="1" prog="22"/>
+ <Patch name="Eurotek Brs" hbank="84" lbank="1" prog="23"/>
+ <Patch name="Tekno Square" hbank="84" lbank="1" prog="30"/>
+ <Patch name="Trance VoXxX" hbank="84" lbank="1" prog="31"/>
+ <Patch name="Random Rave" hbank="84" lbank="1" prog="32"/>
+ <Patch name="Raver Circus" hbank="84" lbank="1" prog="33"/>
+ <Patch name="Resorave" hbank="84" lbank="1" prog="34"/>
+ <Patch name="Systekno" hbank="84" lbank="1" prog="42"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Pulsating Synth">
+ <Patch name="XP'ration" hbank="84" lbank="1" prog="44"/>
+ <Patch name="Happy LFOs" hbank="84" lbank="1" prog="77"/>
+ <Patch name="Aero Insect" hbank="84" lbank="1" prog="78"/>
+ <Patch name="Beat Sweeper" hbank="84" lbank="1" prog="79"/>
+ <Patch name="DEMO SynPuls" hbank="84" lbank="1" prog="108"/>
+ <Patch name="DEMO Insect" hbank="84" lbank="1" prog="124"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Synth FX">
+ <Patch name="DelaySession" hbank="84" lbank="0" prog="117"/>
+ <Patch name="O-Zu-Nu" hbank="84" lbank="1" prog="36"/>
+ <Patch name="Rize Mass" hbank="84" lbank="1" prog="51"/>
+ <Patch name="Portent" hbank="84" lbank="1" prog="52"/>
+ <Patch name="DCO Sweeper" hbank="84" lbank="1" prog="53"/>
+ <Patch name="Sweep Rain" hbank="84" lbank="1" prog="54"/>
+ <Patch name="Sweep Stack" hbank="84" lbank="1" prog="55"/>
+ <Patch name="Big Vectors" hbank="84" lbank="1" prog="56"/>
+ <Patch name="Alchemy" hbank="84" lbank="1" prog="58"/>
+ <Patch name="Atlantis 2" hbank="84" lbank="1" prog="65"/>
+ <Patch name="Perelandra" hbank="84" lbank="1" prog="66"/>
+ <Patch name="Plutonium" hbank="84" lbank="1" prog="67"/>
+ <Patch name="Nautilus" hbank="84" lbank="1" prog="68"/>
+ <Patch name="Metal Dreams" hbank="84" lbank="1" prog="69"/>
+ <Patch name="Glass Clouds" hbank="84" lbank="1" prog="70"/>
+ <Patch name="Harmonicloud" hbank="84" lbank="1" prog="71"/>
+ <Patch name="Shining Veil" hbank="84" lbank="1" prog="72"/>
+ <Patch name="Ethereal JX" hbank="84" lbank="1" prog="73"/>
+ <Patch name="Striking 5th" hbank="84" lbank="1" prog="74"/>
+ <Patch name="Meow 5ths" hbank="84" lbank="1" prog="75"/>
+ <Patch name="Stepflanger" hbank="84" lbank="1" prog="76"/>
+ <Patch name="Boostweeper1" hbank="84" lbank="1" prog="87"/>
+ <Patch name="Boostweeper2" hbank="84" lbank="1" prog="88"/>
+ <Patch name="Creation" hbank="84" lbank="1" prog="98"/>
+ <Patch name="Cyberjunkie" hbank="84" lbank="1" prog="99"/>
+ <Patch name="Sci-Fi Bells" hbank="84" lbank="1" prog="100"/>
+ <Patch name="Shine on" hbank="84" lbank="1" prog="101"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Poly Synth">
+ <Patch name="JP6 Sqr Key" hbank="84" lbank="0" prog="108"/>
+ <Patch name="Square drops" hbank="84" lbank="0" prog="109"/>
+ <Patch name="Amazing Echo" hbank="84" lbank="0" prog="116"/>
+ <Patch name="Slop-a-rama" hbank="84" lbank="0" prog="125"/>
+ <Patch name="Isn't Pretty" hbank="84" lbank="0" prog="126"/>
+ <Patch name="Polywasp" hbank="84" lbank="0" prog="127"/>
+ <Patch name="Quixelate" hbank="84" lbank="1" prog="0"/>
+ <Patch name="Spiked Chee" hbank="84" lbank="1" prog="2"/>
+ <Patch name="Glassy Chee" hbank="84" lbank="1" prog="3"/>
+ <Patch name="Super 808Cow" hbank="84" lbank="1" prog="4"/>
+ <Patch name="Arpeggiatoid" hbank="84" lbank="1" prog="5"/>
+ <Patch name="Str Torture" hbank="84" lbank="1" prog="9"/>
+ <Patch name="Juno Harpsi" hbank="84" lbank="1" prog="10"/>
+ <Patch name="Big Mess Pad" hbank="84" lbank="1" prog="11"/>
+ <Patch name="Echo Juno" hbank="84" lbank="1" prog="13"/>
+ <Patch name="PortaSynthex" hbank="84" lbank="1" prog="25"/>
+ <Patch name="Razor VCOs" hbank="84" lbank="1" prog="26"/>
+ <Patch name="Big PWM" hbank="84" lbank="1" prog="27"/>
+ <Patch name="Flutey Stack" hbank="84" lbank="1" prog="28"/>
+ <Patch name="Wobbly 5th" hbank="84" lbank="1" prog="29"/>
+ <Patch name="Flangomatic" hbank="84" lbank="1" prog="35"/>
+ <Patch name="Sub Divided" hbank="84" lbank="1" prog="37"/>
+ <Patch name="Ancient Sqr" hbank="84" lbank="1" prog="38"/>
+ <Patch name="Fat Flange" hbank="84" lbank="1" prog="39"/>
+ <Patch name="Phaze NRG" hbank="84" lbank="1" prog="40"/>
+ <Patch name="Big Ensemble" hbank="84" lbank="1" prog="45"/>
+ <Patch name="Lazerette" hbank="84" lbank="1" prog="46"/>
+ <Patch name="Soli-na" hbank="84" lbank="1" prog="59"/>
+ <Patch name="90s Str Mach" hbank="84" lbank="1" prog="60"/>
+ <Patch name="Progressive" hbank="84" lbank="1" prog="63"/>
+ <Patch name="Build-Up Syn" hbank="84" lbank="1" prog="64"/>
+ <Patch name="DEMO Bu" hbank="84" lbank="1" prog="125"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Bright Pad Synth">
+ <Patch name="Mahoroba" hbank="84" lbank="0" prog="120"/>
+ <Patch name="Combing Slow" hbank="84" lbank="1" prog="48"/>
+ <Patch name="Jet Stack" hbank="84" lbank="1" prog="49"/>
+ <Patch name="Phazeslopad" hbank="84" lbank="1" prog="50"/>
+ <Patch name="Ultra Chee" hbank="84" lbank="1" prog="61"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Soft Pad Synth">
+ <Patch name="Fazed String" hbank="84" lbank="1" prog="47"/>
+ <Patch name="Poly Swell" hbank="84" lbank="1" prog="57"/>
+ <Patch name="Juno-60 Pad" hbank="84" lbank="1" prog="62"/>
+ <Patch name="DEMO 5thPad" hbank="84" lbank="1" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Vox, Choir">
+ <Patch name="Str+Choir3" hbank="84" lbank="0" prog="20"/>
+ <Patch name="Breathy Hum" hbank="84" lbank="0" prog="21"/>
+ <Patch name="Dream Voices" hbank="84" lbank="0" prog="22"/>
+ <Patch name="Mmmms" hbank="84" lbank="0" prog="23"/>
+ <Patch name="Chorale" hbank="84" lbank="0" prog="24"/>
+ <Patch name="Space Men" hbank="84" lbank="0" prog="25"/>
+ <Patch name="Choir Mm+Aah" hbank="84" lbank="0" prog="26"/>
+ <Patch name="Ivory Mist" hbank="84" lbank="0" prog="27"/>
+ <Patch name="PercussiVox" hbank="84" lbank="0" prog="28"/>
+ <Patch name="Mysteriouso" hbank="84" lbank="0" prog="29"/>
+ <Patch name="Phase Mmhs" hbank="84" lbank="0" prog="30"/>
+ <Patch name="AmbientStory" hbank="84" lbank="0" prog="31"/>
+ <Patch name="Venus" hbank="84" lbank="0" prog="32"/>
+ <Patch name="Phase Vox" hbank="84" lbank="1" prog="41"/>
+ <Patch name="DEMO Choir" hbank="84" lbank="1" prog="110"/>
+ </PatchGroup>
+ <PatchGroup name="Patches_Sound Effects">
+ <Patch name="Seashore 2" hbank="84" lbank="1" prog="97"/>
+ <Patch name="Analog Bomb" hbank="84" lbank="1" prog="96"/>
+ <Patch name="DEMO Crowd" hbank="84" lbank="1" prog="126"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="SessionSet 1" hbank="84" lbank="0" prog="0"/>
+ <Patch name="SessionSet 2" hbank="84" lbank="0" prog="1"/>
+ <Patch name="SessionSet 3" hbank="84" lbank="0" prog="2"/>
+ <Patch name="SessionSet 4" hbank="84" lbank="0" prog="3"/>
+ <Patch name="SessionSet 5" hbank="84" lbank="0" prog="4"/>
+ <Patch name="SessionSet 6" hbank="84" lbank="0" prog="5"/>
+ <Patch name="SessionSet 7" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Demo Drum" hbank="84" lbank="0" prog="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse> \ No newline at end of file
diff --git a/muse_qt4_evolution/share/instruments/Roland-SCD70.idf b/muse_qt4_evolution/share/instruments/Roland-SCD70.idf
new file mode 100644
index 00000000..5a7334d8
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-SCD70.idf
@@ -0,0 +1,1513 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland SC-D70">
+ <Init>
+ </Init>
+ <PatchGroup name="GM">
+ <Patch name="Acoustic Grand Piano" hbank="0" lbank="0" prog="0"/>
+ <Patch name="Bright Acoustic Piano" hbank="0" lbank="0" prog="1"/>
+ <Patch name="Electric Grand Piano" hbank="0" lbank="0" prog="2"/>
+ <Patch name="Honky-tonk Piano" hbank="0" lbank="0" prog="3"/>
+ <Patch name="Electric Piano 1" hbank="0" lbank="0" prog="4"/>
+ <Patch name="Electric Piano 2" hbank="0" lbank="0" prog="5"/>
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Clavi" hbank="0" lbank="0" prog="7"/>
+ <Patch name="Celesta" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Vibraphone" hbank="0" lbank="0" prog="11"/>
+ <Patch name="Marimba" hbank="0" lbank="0" prog="12"/>
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Tubular Bells" hbank="0" lbank="0" prog="14"/>
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15"/>
+ <Patch name="Drawbar Organ" hbank="0" lbank="0" prog="16"/>
+ <Patch name="Percussive Organ" hbank="0" lbank="0" prog="17"/>
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="18"/>
+ <Patch name="Church Organ" hbank="0" lbank="0" prog="19"/>
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="20"/>
+ <Patch name="Accordion" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Tango Accordion" hbank="0" lbank="0" prog="23"/>
+ <Patch name="Acoustic Guitar (nylon)" hbank="0" lbank="0" prog="24"/>
+ <Patch name="Acoustic Guitar (steel)" hbank="0" lbank="0" prog="25"/>
+ <Patch name="Electric Guitar (jazz)" hbank="0" lbank="0" prog="26"/>
+ <Patch name="Electric Guitar (clean)" hbank="0" lbank="0" prog="27"/>
+ <Patch name="Electric Guitar (muted)" hbank="0" lbank="0" prog="28"/>
+ <Patch name="Overdriven Guitar" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Distortion Guitar" hbank="0" lbank="0" prog="30"/>
+ <Patch name="Guitar Harmonics" hbank="0" lbank="0" prog="31"/>
+ <Patch name="Acoustic Bass" hbank="0" lbank="0" prog="32"/>
+ <Patch name="Electric Bass (finger)" hbank="0" lbank="0" prog="33"/>
+ <Patch name="Electric Bass (pick)" hbank="0" lbank="0" prog="34"/>
+ <Patch name="Fretless Bass" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Slap Bass 1" hbank="0" lbank="0" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="0" lbank="0" prog="37"/>
+ <Patch name="Synth Bass 1" hbank="0" lbank="0" prog="38"/>
+ <Patch name="Synth Bass 2" hbank="0" lbank="0" prog="39"/>
+ <Patch name="Violin" hbank="0" lbank="0" prog="40"/>
+ <Patch name="Viola" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Cello" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Tremolo Strings" hbank="0" lbank="0" prog="44"/>
+ <Patch name="Pizzicato Strings" hbank="0" lbank="0" prog="45"/>
+ <Patch name="Orchestral Harp" hbank="0" lbank="0" prog="46"/>
+ <Patch name="Timpani" hbank="0" lbank="0" prog="47"/>
+ <Patch name="String Ensemble 1" hbank="0" lbank="0" prog="48"/>
+ <Patch name="String Ensemble 2" hbank="0" lbank="0" prog="49"/>
+ <Patch name="Synth Strings 1" hbank="0" lbank="0" prog="50"/>
+ <Patch name="Synth Strings 2" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Choir Aahs" hbank="0" lbank="0" prog="52"/>
+ <Patch name="Voice Oohs" hbank="0" lbank="0" prog="53"/>
+ <Patch name="Synth Voice" hbank="0" lbank="0" prog="54"/>
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55"/>
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trombone" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58"/>
+ <Patch name="Muted Trumpet" hbank="0" lbank="0" prog="59"/>
+ <Patch name="French Horn" hbank="0" lbank="0" prog="60"/>
+ <Patch name="Brass Section" hbank="0" lbank="0" prog="61"/>
+ <Patch name="SynthBrass 1" hbank="0" lbank="0" prog="62"/>
+ <Patch name="SynthBrass 2" hbank="0" lbank="0" prog="63"/>
+ <Patch name="Soprano Sax" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65"/>
+ <Patch name="Tenor Sax" hbank="0" lbank="0" prog="66"/>
+ <Patch name="Baritone Sax" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68"/>
+ <Patch name="English Horn" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" hbank="0" lbank="0" prog="71"/>
+ <Patch name="Piccolo" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" hbank="0" lbank="0" prog="75"/>
+ <Patch name="Blown Bottle" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" hbank="0" lbank="0" prog="79"/>
+ <Patch name="Lead 1 (square)" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Lead 2 (sawtooth)" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Lead 3 (calliope)" hbank="0" lbank="0" prog="82"/>
+ <Patch name="Lead 4 (chiff)" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Lead 5 (charang)" hbank="0" lbank="0" prog="84"/>
+ <Patch name="Lead 6 (voice)" hbank="0" lbank="0" prog="85"/>
+ <Patch name="Lead 7 (fifths)" hbank="0" lbank="0" prog="86"/>
+ <Patch name="Lead 8 (bass + lead)" hbank="0" lbank="0" prog="87"/>
+ <Patch name="Pad 1 (new age)" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Pad 2 (warm)" hbank="0" lbank="0" prog="89"/>
+ <Patch name="Pad 3 (polysynth)" hbank="0" lbank="0" prog="90"/>
+ <Patch name="Pad 4 (choir)" hbank="0" lbank="0" prog="91"/>
+ <Patch name="Pad 5 (bowed)" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Pad 6 (metallic)" hbank="0" lbank="0" prog="93"/>
+ <Patch name="Pad 7 (halo)" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Pad 8 (sweep)" hbank="0" lbank="0" prog="95"/>
+ <Patch name="FX 1 (rain)" hbank="0" lbank="0" prog="96"/>
+ <Patch name="FX 2 (Soundtrack)" hbank="0" lbank="0" prog="97"/>
+ <Patch name="FX 3 (crystal)" hbank="0" lbank="0" prog="98"/>
+ <Patch name="FX 4 (atmosphere)" hbank="0" lbank="0" prog="99"/>
+ <Patch name="FX 5 (brightness)" hbank="0" lbank="0" prog="100"/>
+ <Patch name="FX 6 (goblins)" hbank="0" lbank="0" prog="101"/>
+ <Patch name="FX 7 (echoes)" hbank="0" lbank="0" prog="102"/>
+ <Patch name="FX 8 (sci-fi)" hbank="0" lbank="0" prog="103"/>
+ <Patch name="Sitar" hbank="0" lbank="0" prog="104"/>
+ <Patch name="Banjo" hbank="0" lbank="0" prog="105"/>
+ <Patch name="Shamisen" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Koto" hbank="0" lbank="0" prog="107"/>
+ <Patch name="Kalimba" hbank="0" lbank="0" prog="108"/>
+ <Patch name="Bag pipe" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" hbank="0" lbank="0" prog="111"/>
+ <Patch name="Tinkle Bell" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Steel Drums" hbank="0" lbank="0" prog="114"/>
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115"/>
+ <Patch name="Taiko Drum" hbank="0" lbank="0" prog="116"/>
+ <Patch name="Melodic Tom" hbank="0" lbank="0" prog="117"/>
+ <Patch name="Synth Drum" hbank="0" lbank="0" prog="118"/>
+ <Patch name="Reverse Cymbal" hbank="0" lbank="0" prog="119"/>
+ <Patch name="Guitar Fret Noise" hbank="0" lbank="0" prog="120"/>
+ <Patch name="Breath Noise" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Bird Tweet" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Telephone Ring" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Helicopter" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Applause" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Piano">
+
+ <Patch name="Upright Piano" hbank="1" lbank="0" prog="0"/>
+ <Patch name="Mild Piano" hbank="2" lbank="0" prog="0"/>
+ <Patch name="Upright P w" hbank="8" lbank="0" prog="0"/>
+ <Patch name="Mild Piano w" hbank="9" lbank="0" prog="0"/>
+ <Patch name="European Pf" hbank="16" lbank="0" prog="0"/>
+ <Patch name="Piano + Str" hbank="24" lbank="0" prog="0"/>
+ <Patch name="Piano +Str2" hbank="25" lbank="0" prog="0"/>
+ <Patch name="Piano +Choir1" hbank="26" lbank="0" prog="0"/>
+ <Patch name="Piano +Choir2" hbank="27" lbank="0" prog="0"/>
+
+ <Patch name="Pop Piano" hbank="1" lbank="0" prog="1"/>
+ <Patch name="Rock Piano" hbank="2" lbank="0" prog="1"/>
+ <Patch name="Pop Piano w" hbank="8" lbank="0" prog="1"/>
+ <Patch name="Rock piano w" hbank="9" lbank="0" prog="1"/>
+ <Patch name="Dance Piano" hbank="16" lbank="0" prog="1"/>
+
+ <Patch name="EG + Rhodes 1" hbank="1" lbank="0" prog="2"/>
+ <Patch name="EG + Rhodes 2" hbank="2" lbank="0" prog="2"/>
+ <Patch name="Piano 3w" hbank="8" lbank="0" prog="2"/>
+
+ <Patch name="Honkey Tonk 2" hbank="8" lbank="0" prog="3"/>
+
+ <Patch name="St. Soft EP" hbank="8" lbank="0" prog="4"/>
+ <Patch name="Cho. E. Piano" hbank="9" lbank="0" prog="4"/>
+ <Patch name="SilentRhodes" hbank="10" lbank="0" prog="4"/>
+ <Patch name="FM+SA EP" hbank="16" lbank="0" prog="4"/>
+ <Patch name="Dist E. Piano" hbank="17" lbank="0" prog="4"/>
+ <Patch name="Wurly" hbank="24" lbank="0" prog="4"/>
+ <Patch name="Hard Rhodes" hbank="25" lbank="0" prog="4"/>
+ <Patch name="Mellow Rhodes" hbank="26" lbank="0" prog="4"/>
+
+ <Patch name="E. Piano 3" hbank="1" lbank="0" prog="5"/>
+ <Patch name="Detuned EP 2" hbank="8" lbank="0" prog="5"/>
+ <Patch name="Detuned EP 3" hbank="9" lbank="0" prog="5"/>
+ <Patch name="EP Legend" hbank="10" lbank="0" prog="5"/>
+ <Patch name="St. FM EP" hbank="16" lbank="0" prog="5"/>
+ <Patch name="Hard FM EP" hbank="24" lbank="0" prog="5"/>
+ <Patch name="EP phase" hbank="32" lbank="0" prog="5"/>
+
+ <Patch name="Harpsicord2" hbank="1" lbank="0" prog="6"/>
+ <Patch name="Harpsicord3" hbank="2" lbank="0" prog="6"/>
+ <Patch name="Coupled Hps." hbank="8" lbank="0" prog="6"/>
+ <Patch name="Harpsi.w" hbank="16" lbank="0" prog="6"/>
+ <Patch name="Harpsi.o" hbank="24" lbank="0" prog="6"/>
+ <Patch name="Synth Harpsi" hbank="32" lbank="0" prog="6"/>
+
+ <Patch name="Clav. 2" hbank="1" lbank="0" prog="7"/>
+ <Patch name="Atk. Clav. 1" hbank="2" lbank="0" prog="7"/>
+ <Patch name="Atk. Clav. 2" hbank="3" lbank="0" prog="7"/>
+ <Patch name="Comp Clav." hbank="8" lbank="0" prog="7"/>
+ <Patch name="Reso Clav" hbank="16" lbank="0" prog="7"/>
+ <Patch name="Phase Clav" hbank="17" lbank="0" prog="7"/>
+ <Patch name="Clav.o" hbank="24" lbank="0" prog="7"/>
+ <Patch name="Analog Clav." hbank="32" lbank="0" prog="7"/>
+ <Patch name="JP8 Clav. 1" hbank="33" lbank="0" prog="7"/>
+ <Patch name="JP8 Clav. 2" hbank="35" lbank="0" prog="7"/>
+ <Patch name="SynRingClav" hbank="36" lbank="0" prog="7"/>
+ <Patch name="SynDistClav" hbank="37" lbank="0" prog="7"/>
+ <Patch name="JP8000 Clav." hbank="38" lbank="0" prog="7"/>
+ <Patch name="Pulse Clav." hbank="39" lbank="0" prog="7"/>
+
+ </PatchGroup>
+
+
+ <PatchGroup name="Chromatic Percussion">
+
+ <Patch name="Pop Celesta" hbank="1" lbank="0" prog="8"/>
+
+ <Patch name="Music Box 2" hbank="1" lbank="0" prog="10"/>
+ <Patch name="St. Music Box" hbank="8" lbank="0" prog="10"/>
+
+ <Patch name="Pop Vibe" hbank="1" lbank="0" prog="11"/>
+ <Patch name="Vibraphone w" hbank="8" lbank="0" prog="11"/>
+ <Patch name="Vibraphones" hbank="9" lbank="0" prog="11"/>
+
+ <Patch name="Marimba w" hbank="8" lbank="0" prog="12"/>
+ <Patch name="Barafon" hbank="16" lbank="0" prog="12"/>
+ <Patch name="Barafon 2" hbank="17" lbank="0" prog="12"/>
+ <Patch name="Log Drum" hbank="24" lbank="0" prog="12"/>
+
+ <Patch name="Xylophone w" hbank="8" lbank="0" prog="13"/>
+
+ <Patch name="Church Bell" hbank="8" lbank="0" prog="14"/>
+ <Patch name="Carillon" hbank="9" lbank="0" prog="14"/>
+ <Patch name="Church Bell 2" hbank="10" lbank="0" prog="14"/>
+ <Patch name="Tubular Bell w" hbank="16" lbank="0" prog="14"/>
+
+
+ <Patch name="Santur 2" hbank="1" lbank="0" prog="15"/>
+ <Patch name="Santur 3" hbank="2" lbank="0" prog="15"/>
+ <Patch name="Cimbalom" hbank="8" lbank="0" prog="15"/>
+ <Patch name="Zither 1" hbank="16" lbank="0" prog="15"/>
+ <Patch name="Zither 2" hbank="17" lbank="0" prog="15"/>
+ <Patch name="Dulcimer" hbank="24" lbank="0" prog="15"/>
+ </PatchGroup>
+
+
+
+ <PatchGroup name="Organ">
+ <Patch name="Organ 101" hbank="1" lbank="0" prog="16"/>
+ <Patch name="Full Organ1" hbank="2" lbank="0" prog="16"/>
+ <Patch name="Full Organ 2" hbank="3" lbank="0" prog="16"/>
+ <Patch name="Full Organ 3" hbank="4" lbank="0" prog="16"/>
+ <Patch name="Full Organ 4" hbank="5" lbank="0" prog="16"/>
+ <Patch name="Full Organ 5" hbank="6" lbank="0" prog="16"/>
+ <Patch name="Full Organ 6" hbank="7" lbank="0" prog="16"/>
+ <Patch name="Trem. Organ" hbank="8" lbank="0" prog="16"/>
+ <Patch name="Organ o" hbank="9" lbank="0" prog="16"/>
+ <Patch name="Full Organ 7" hbank="10" lbank="0" prog="16"/>
+ <Patch name="Full Organ 8" hbank="11" lbank="0" prog="16"/>
+ <Patch name="Full Organ 9" hbank="12" lbank="0" prog="16"/>
+ <Patch name="60's Organ 1" hbank="16" lbank="0" prog="16"/>
+ <Patch name="60's Organ 2" hbank="17" lbank="0" prog="16"/>
+ <Patch name="60's Organ 3" hbank="18" lbank="0" prog="16"/>
+ <Patch name="Fart Organ" hbank="19" lbank="0" prog="16"/>
+ <Patch name="Cheese Organ" hbank="24" lbank="0" prog="16"/>
+ <Patch name="D-50 Organ" hbank="25" lbank="0" prog="16"/>
+ <Patch name="JUNO Organ" hbank="26" lbank="0" prog="16"/>
+ <Patch name="Hybrid Organ" hbank="27" lbank="0" prog="16"/>
+ <Patch name="VS Organ" hbank="28" lbank="0" prog="16"/>
+ <Patch name="Digi Church" hbank="29" lbank="0" prog="16"/>
+ <Patch name="JX-8P Organ" hbank="30" lbank="0" prog="16"/>
+ <Patch name="FM Organ" hbank="31" lbank="0" prog="16"/>
+ <Patch name="70's Organ" hbank="32" lbank="0" prog="16"/>
+ <Patch name="Even Bar" hbank="33" lbank="0" prog="16"/>
+ <Patch name="Organ Bass 1" hbank="40" lbank="0" prog="16"/>
+ <Patch name="5th Organ" hbank="48" lbank="0" prog="16"/>
+
+ <Patch name="Jazz Organ" hbank="1" lbank="0" prog="17"/>
+ <Patch name="E. Organ 16+2" hbank="2" lbank="0" prog="17"/>
+ <Patch name="Jazz Organ 2" hbank="3" lbank="0" prog="17"/>
+ <Patch name="Jazz Organ 3" hbank="4" lbank="0" prog="17"/>
+ <Patch name="Jazz Organ 4" hbank="5" lbank="0" prog="17"/>
+ <Patch name="Jazz Organ 5" hbank="6" lbank="0" prog="17"/>
+ <Patch name="Jazz Organ 6" hbank="7" lbank="0" prog="17"/>
+ <Patch name="Chorus Or. 2" hbank="8" lbank="0" prog="17"/>
+ <Patch name="Octave Organ" hbank="9" lbank="0" prog="17"/>
+ <Patch name="Perc. Organ" hbank="32" lbank="0" prog="17"/>
+ <Patch name="Perc. Organ 2" hbank="33" lbank="0" prog="17"/>
+ <Patch name="Perc. Organ 3" hbank="34" lbank="0" prog="17"/>
+ <Patch name="Perc. Organ 4" hbank="35" lbank="0" prog="17"/>
+
+ <Patch name="Rotary Org." hbank="8" lbank="0" prog="18"/>
+ <Patch name="Rotary Org.S" hbank="16" lbank="0" prog="18"/>
+ <Patch name="Rock Organ 1" hbank="17" lbank="0" prog="18"/>
+ <Patch name="Rock Organ 2" hbank="18" lbank="0" prog="18"/>
+ <Patch name="Rotary Org.F" hbank="24" lbank="0" prog="18"/>
+
+ <Patch name="Church Organ 2" hbank="8" lbank="0" prog="19"/>
+ <Patch name="Church Organ 3" hbank="16" lbank="0" prog="19"/>
+ <Patch name="Organ Flute" hbank="24" lbank="0" prog="19"/>
+ <Patch name="Trem. Flute" hbank="32" lbank="0" prog="19"/>
+ <Patch name="Theater Org." hbank="33" lbank="0" prog="19"/>
+
+ <Patch name="Wind Organ" hbank="8" lbank="0" prog="20"/>
+ <Patch name="Puff Organ" hbank="16" lbank="0" prog="20"/>
+
+ <Patch name="Accordion It" hbank="8" lbank="0" prog="21"/>
+ <Patch name="Dist Accordion" hbank="9" lbank="0" prog="21"/>
+ <Patch name="Cho. Accordion" hbank="16" lbank="0" prog="21"/>
+ <Patch name="Hard Accord" hbank="24" lbank="0" prog="21"/>
+ <Patch name="Soft Accord" hbank="25" lbank="0" prog="21"/>
+
+ <Patch name="Harmonica 2" hbank="1" lbank="0" prog="22"/>
+ <Patch name="B.Basic Harp" hbank="8" lbank="0" prog="22"/>
+ <Patch name="B.Harp Suppl" hbank="9" lbank="0" prog="22"/>
+
+ <Patch name="Bandoneon 2" hbank="8" lbank="0" prog="23"/>
+ <Patch name="Bandoneon 3" hbank="16" lbank="0" prog="23"/>
+ </PatchGroup>
+
+ <PatchGroup name="Guitar">
+
+ <Patch name="Ukulele" hbank="8" lbank="0" prog="24"/>
+ <Patch name="Nylon Gt.o" hbank="16" lbank="0" prog="24"/>
+ <Patch name="Velo Harmnix" hbank="24" lbank="0" prog="24"/>
+ <Patch name="Nylon Gt.2 " hbank="32" lbank="0" prog="24"/>
+ <Patch name="Lequint Gt." hbank="40" lbank="0" prog="24"/>
+
+ <Patch name="12-str.Gt" hbank="8" lbank="0" prog="25"/>
+ <Patch name="Nylon+Steel" hbank="9" lbank="0" prog="25"/>
+ <Patch name="Atk Steel Gt" hbank="10" lbank="0" prog="25"/>
+ <Patch name="Mandolin" hbank="16" lbank="0" prog="25"/>
+ <Patch name="Mandolin 2" hbank="17" lbank="0" prog="25"/>
+ <Patch name="MandolinTrem" hbank="18" lbank="0" prog="25"/>
+ <Patch name="Steel Gt.2" hbank="32" lbank="0" prog="25"/>
+ <Patch name="Steel + Body" hbank="33" lbank="0" prog="25"/>
+
+ <Patch name="Mellow Gt." hbank="1" lbank="0" prog="26"/>
+ <Patch name="Pedal Steel" hbank="8" lbank="0" prog="26"/>
+
+ <Patch name="Clean Half" hbank="1" lbank="0" prog="27"/>
+ <Patch name="Open Hard 1" hbank="2" lbank="0" prog="27"/>
+ <Patch name="Open Hard 2" hbank="3" lbank="0" prog="27"/>
+ <Patch name="JC Clean Gt." hbank="4" lbank="0" prog="27"/>
+ <Patch name="Atk CleanGt." hbank="5" lbank="0" prog="27"/>
+ <Patch name="Chorus Gt." hbank="8" lbank="0" prog="27"/>
+ <Patch name="JC Chorus Gt" hbank="9" lbank="0" prog="27"/>
+ <Patch name="TC FrontPick" hbank="16" lbank="0" prog="27"/>
+ <Patch name="TC Rear Pick" hbank="17" lbank="0" prog="27"/>
+ <Patch name="TC Clean ff" hbank="18" lbank="0" prog="27"/>
+ <Patch name="TC Clean 2" hbank="19" lbank="0" prog="27"/>
+ <Patch name="LP Rear Pick" hbank="20" lbank="0" prog="27"/>
+ <Patch name="LP Rear 2" hbank="21" lbank="0" prog="27"/>
+ <Patch name="LP RearAtack" hbank="22" lbank="0" prog="27"/>
+ <Patch name="Mid Tone GTR" hbank="23" lbank="0" prog="27"/>
+ <Patch name="Chung Ruan" hbank="24" lbank="0" prog="27"/>
+ <Patch name="Chung Ruan 2" hbank="25" lbank="0" prog="27"/>
+
+ <Patch name="Muted Dis.Gt" hbank="1" lbank="0" prog="28"/>
+ <Patch name="TC Muted Gt." hbank="2" lbank="0" prog="28"/>
+ <Patch name="Funk Pop" hbank="8" lbank="0" prog="28"/>
+ <Patch name="Funk Gt.2" hbank="16" lbank="0" prog="28"/>
+ <Patch name="Jazz Man" hbank="24" lbank="0" prog="28"/>
+
+ <Patch name="Overdrive 2" hbank="1" lbank="0" prog="29"/>
+ <Patch name="Overdrive 3" hbank="2" lbank="0" prog="29"/>
+ <Patch name="More Drive" hbank="3" lbank="0" prog="29"/>
+ <Patch name="Guitar Pinch" hbank="4" lbank="0" prog="29"/>
+ <Patch name="Attack Drive" hbank="5" lbank="0" prog="29"/>
+ <Patch name="LP OverDrvGt" hbank="8" lbank="0" prog="29"/>
+ <Patch name="LP OverDrv" hbank="9" lbank="0" prog="29"/>
+ <Patch name="LP Half Drv" hbank="10" lbank="0" prog="29"/>
+ <Patch name="LP Half Drv2" hbank="11" lbank="0" prog="29"/>
+ <Patch name="LP Chorus" hbank="12" lbank="0" prog="29"/>
+
+ <Patch name="Dist. Gt2" hbank="1" lbank="0" prog="30"/>
+ <Patch name="Dazed Guitar" hbank="2" lbank="0" prog="30"/>
+ <Patch name="Distortion" hbank="3" lbank="0" prog="30"/>
+ <Patch name="Dist. Fast" hbank="4" lbank="0" prog="30"/>
+ <Patch name="Attack Dist" hbank="5" lbank="0" prog="30"/>
+ <Patch name="Feedback Gt." hbank="8" lbank="0" prog="30"/>
+ <Patch name="Feedback Gt2" hbank="9" lbank="0" prog="30"/>
+ <Patch name="Power Guitar" hbank="16" lbank="0" prog="30"/>
+ <Patch name="Power Gt.2" hbank="17" lbank="0" prog="30"/>
+ <Patch name="5th Dist." hbank="18" lbank="0" prog="30"/>
+ <Patch name="Rock Rhythm" hbank="24" lbank="0" prog="30"/>
+ <Patch name="Rock Rhythm2" hbank="25" lbank="0" prog="30"/>
+ <Patch name="Dist Rtm GTR" hbank="26" lbank="0" prog="30"/>
+
+ <Patch name="Gt. Feedback" hbank="8" lbank="0" prog="31"/>
+ <Patch name="Gt.Feedback2" hbank="9" lbank="0" prog="31"/>
+ <Patch name="Ac.Gt.Harmnx" hbank="16" lbank="0" prog="31"/>
+ <Patch name="E.Bass Harm." hbank="24" lbank="0" prog="31"/>
+
+ </PatchGroup>
+
+
+
+ <PatchGroup name="Bass">
+ <Patch name="Rockabillyi" hbank="1" lbank="0" prog="32"/>
+ <Patch name="Wild A.Bass" hbank="8" lbank="0" prog="32"/>
+ <Patch name="Atk A.Bass" hbank="9" lbank="0" prog="32"/>
+ <Patch name="Bass + OHH" hbank="16" lbank="0" prog="32"/>
+
+ <Patch name="Fingered Bs2" hbank="1" lbank="0" prog="33"/>
+ <Patch name="Jazz Bass" hbank="2" lbank="0" prog="33"/>
+ <Patch name="Jazz Bass 2" hbank="3" lbank="0" prog="33"/>
+ <Patch name="Rock Bass" hbank="4" lbank="0" prog="33"/>
+ <Patch name="Heart Bass" hbank="5" lbank="0" prog="33"/>
+ <Patch name="AttackFinger" hbank="6" lbank="0" prog="33"/>
+ <Patch name="Finger Slap" hbank="7" lbank="0" prog="33"/>
+ <Patch name="ChorusJazzBs" hbank="8" lbank="0" prog="33"/>
+ <Patch name="F.Bass/Harm." hbank="16" lbank="0" prog="33"/>
+
+ <Patch name="Picked Bass2" hbank="1" lbank="0" prog="34"/>
+ <Patch name="Picked Bass3" hbank="2" lbank="0" prog="34"/>
+ <Patch name="Picked Bass4" hbank="3" lbank="0" prog="34"/>
+ <Patch name="Double Pick" hbank="4" lbank="0" prog="34"/>
+ <Patch name="Muted PickBs" hbank="8" lbank="0" prog="34"/>
+ <Patch name="P.Bass/Harm." hbank="16" lbank="0" prog="34"/>
+
+ <Patch name="Fretless Bs2" hbank="1" lbank="0" prog="35"/>
+ <Patch name="Fretless Bs3" hbank="2" lbank="0" prog="35"/>
+ <Patch name="Fretless Bs4" hbank="3" lbank="0" prog="35"/>
+ <Patch name="Syn Fretless" hbank="4" lbank="0" prog="35"/>
+ <Patch name="Mr.Smooth" hbank="5" lbank="0" prog="35"/>
+ <Patch name="Wood+FlessBs" hbank="8" lbank="0" prog="35"/>
+
+ <Patch name="Slap Pop" hbank="1" lbank="0" prog="36"/>
+ <Patch name="Reso Slap" hbank="8" lbank="0" prog="36"/>
+ <Patch name="Unison Slap" hbank="9" lbank="0" prog="36"/>
+
+ <Patch name="Slap Bass 3" hbank="1" lbank="0" prog="37"/>
+ <Patch name="FM Slap" hbank="8" lbank="0" prog="37"/>
+
+ <Patch name="SynthBass101" hbank="1" lbank="0" prog="38"/>
+ <Patch name="CS Bass" hbank="2" lbank="0" prog="38"/>
+ <Patch name="JP-4 Bass" hbank="3" lbank="0" prog="38"/>
+ <Patch name="JP-8 Bass" hbank="4" lbank="0" prog="38"/>
+ <Patch name="P5 Bass" hbank="5" lbank="0" prog="38"/>
+ <Patch name="JPMG Bass" hbank="6" lbank="0" prog="38"/>
+ <Patch name="Acid Bass" hbank="8" lbank="0" prog="38"/>
+ <Patch name="TB303 Bass" hbank="9" lbank="0" prog="38"/>
+ <Patch name="Tekno Bass" hbank="10" lbank="0" prog="38"/>
+ <Patch name="TB303 Bass 2" hbank="11" lbank="0" prog="38"/>
+ <Patch name="Kicked TB303" hbank="12" lbank="0" prog="38"/>
+ <Patch name="TB303 Saw Bs" hbank="13" lbank="0" prog="38"/>
+ <Patch name="Rubber303 Bs" hbank="14" lbank="0" prog="38"/>
+ <Patch name="Reso 303 Bs" hbank="15" lbank="0" prog="38"/>
+ <Patch name="Reso SH Bass" hbank="16" lbank="0" prog="38"/>
+ <Patch name="TB303 Sqr Bs" hbank="17" lbank="0" prog="38"/>
+ <Patch name="TB303 DistBs" hbank="18" lbank="0" prog="38"/>
+ <Patch name="Clavi Bass" hbank="19" lbank="0" prog="38"/>
+ <Patch name="Hammer" hbank="20" lbank="0" prog="38"/>
+ <Patch name="Jungle Bass" hbank="21" lbank="0" prog="38"/>
+ <Patch name="Square Bass" hbank="22" lbank="0" prog="38"/>
+ <Patch name="Square Bass2" hbank="23" lbank="0" prog="38"/>
+ <Patch name="Arpeggio Bs" hbank="24" lbank="0" prog="38"/>
+ <Patch name="Hit+Saw Bass" hbank="32" lbank="0" prog="38"/>
+ <Patch name="Ring Bass" hbank="33" lbank="0" prog="38"/>
+ <Patch name="AtkSineBass" hbank="34" lbank="0" prog="38"/>
+ <Patch name="OB sine Bass" hbank="35" lbank="0" prog="38"/>
+ <Patch name="Auxiliary Bs" hbank="36" lbank="0" prog="38"/>
+ <Patch name="303SqDistBs" hbank="40" lbank="0" prog="38"/>
+ <Patch name="303SqDistBs2" hbank="41" lbank="0" prog="38"/>
+ <Patch name="303SqDistBs3" hbank="42" lbank="0" prog="38"/>
+ <Patch name="303Sqr.Rev" hbank="43" lbank="0" prog="38"/>
+ <Patch name="TeeBee" hbank="44" lbank="0" prog="38"/>
+
+ <Patch name="SynthBass201" hbank="1" lbank="0" prog="39"/>
+ <Patch name="Modular Bass" hbank="2" lbank="0" prog="39"/>
+ <Patch name="Seq Bass" hbank="3" lbank="0" prog="39"/>
+ <Patch name="MG Bass" hbank="4" lbank="0" prog="39"/>
+ <Patch name="Mg Oct Bass1" hbank="5" lbank="0" prog="39"/>
+ <Patch name="MG Oct Bass2" hbank="6" lbank="0" prog="39"/>
+ <Patch name="MG Blip Bs" hbank="7" lbank="0" prog="39"/>
+ <Patch name="Beef FM Bass" hbank="8" lbank="0" prog="39"/>
+ <Patch name="Dly Bass" hbank="9" lbank="0" prog="39"/>
+ <Patch name="X Wire Bass" hbank="10" lbank="0" prog="39"/>
+ <Patch name="WireStr Bass" hbank="11" lbank="0" prog="39"/>
+ <Patch name="Blip Bass" hbank="12" lbank="0" prog="39"/>
+ <Patch name="RubberBass 1" hbank="13" lbank="0" prog="39"/>
+ <Patch name="Syn Bell Bs" hbank="14" lbank="0" prog="39"/>
+ <Patch name="Odd Bass" hbank="15" lbank="0" prog="39"/>
+ <Patch name="RubberBass 2" hbank="16" lbank="0" prog="39"/>
+ <Patch name="SH101 Bass 1" hbank="17" lbank="0" prog="39"/>
+ <Patch name="SH101 Bass 2" hbank="18" lbank="0" prog="39"/>
+ <Patch name="Smooth Bass" hbank="19" lbank="0" prog="39"/>
+ <Patch name="SH101 Bass 3" hbank="20" lbank="0" prog="39"/>
+ <Patch name="Spike Bass" hbank="21" lbank="0" prog="39"/>
+ <Patch name="House Bass" hbank="22" lbank="0" prog="39"/>
+ <Patch name="KG Bass" hbank="23" lbank="0" prog="39"/>
+ <Patch name="Sync Bass" hbank="24" lbank="0" prog="39"/>
+ <Patch name="MG 5th Bass" hbank="25" lbank="0" prog="39"/>
+ <Patch name="RND Bass" hbank="26" lbank="0" prog="39"/>
+ <Patch name="WowMG Bass" hbank="27" lbank="0" prog="39"/>
+ <Patch name="Bubble Bass" hbank="28" lbank="0" prog="39"/>
+ <Patch name="Attack Pulse" hbank="29" lbank="0" prog="39"/>
+ <Patch name="Sync Bass 2" hbank="30" lbank="0" prog="39"/>
+ <Patch name="Pulse Mix Bs" hbank="31" lbank="0" prog="39"/>
+ <Patch name="MG Dist Bass" hbank="32" lbank="0" prog="39"/>
+ <Patch name="Seq Bass 2" hbank="33" lbank="0" prog="39"/>
+ <Patch name="3rd Bass" hbank="34" lbank="0" prog="39"/>
+ <Patch name="MG Oct Bass" hbank="35" lbank="0" prog="39"/>
+ <Patch name="SlowEnvBass" hbank="36" lbank="0" prog="39"/>
+ <Patch name="Mild Bass" hbank="37" lbank="0" prog="39"/>
+ <Patch name="DistEnvBass" hbank="38" lbank="0" prog="39"/>
+ <Patch name="MG LightBass" hbank="39" lbank="0" prog="39"/>
+ <Patch name="DistSynBass" hbank="40" lbank="0" prog="39"/>
+ <Patch name="Rise Bass" hbank="41" lbank="0" prog="39"/>
+ <Patch name="Cyber Bass" hbank="42" lbank="0" prog="39"/>
+
+ </PatchGroup>
+
+ <PatchGroup name="Strings/Orchestra">
+ <Patch name="Violin Atk" hbank="1" lbank="0" prog="40"/>
+ <Patch name="Slow Violin" hbank="8" lbank="0" prog="40"/>
+
+ <Patch name="Viola Atk." hbank="1" lbank="0" prog="41"/>
+
+ <Patch name="Cello Atk." hbank="1" lbank="0" prog="42"/>
+
+ <Patch name="Trem Str.St." hbank="2" lbank="0" prog="44"/>
+ <Patch name="Slow Tremolo" hbank="8" lbank="0" prog="44"/>
+ <Patch name="Suspense Str" hbank="9" lbank="0" prog="44"/>
+ <Patch name="SuspenseStr2" hbank="10" lbank="0" prog="44"/>
+
+ <Patch name="Vcs+Cbs Pizz" hbank="1" lbank="0" prog="45"/>
+ <Patch name="Chamber Pizz" hbank="2" lbank="0" prog="45"/>
+ <Patch name="St.Pizzicato" hbank="3" lbank="0" prog="45"/>
+ <Patch name="Solo Pizz." hbank="8" lbank="0" prog="45"/>
+ <Patch name="Solo Spic." hbank="16" lbank="0" prog="45"/>
+ <Patch name="StringsSpic." hbank="17" lbank="0" prog="45"/>
+
+ <Patch name="Harp+Strings" hbank="1" lbank="0" prog="46"/>
+ <Patch name="Harp St." hbank="2" lbank="0" prog="46"/>
+ <Patch name="Uillean Harp" hbank="8" lbank="0" prog="46"/>
+ <Patch name="Synth Harp" hbank="16" lbank="0" prog="46"/>
+ <Patch name="Yang Qin" hbank="24" lbank="0" prog="46"/>
+ <Patch name="Yang Qin 2" hbank="25" lbank="0" prog="46"/>
+ <Patch name="SynthYangQin" hbank="26" lbank="0" prog="46"/>
+ </PatchGroup>
+
+ <PatchGroup name="Ensemble">
+ <Patch name="Bright Str" hbank="1" lbank="0" prog="48"/>
+ <Patch name="ChamberStr" hbank="2" lbank="0" prog="48"/>
+ <Patch name="Cello sect." hbank="3" lbank="0" prog="48"/>
+ <Patch name="Bright Str.2" hbank="4" lbank="0" prog="48"/>
+ <Patch name="Bright Str.3" hbank="5" lbank="0" prog="48"/>
+ <Patch name="Quad Strings" hbank="6" lbank="0" prog="48"/>
+ <Patch name="Mild Strings" hbank="7" lbank="0" prog="48"/>
+ <Patch name="Orchestra" hbank="8" lbank="0" prog="48"/>
+ <Patch name="Orchestra 2" hbank="9" lbank="0" prog="48"/>
+ <Patch name="Tremolo Orch" hbank="10" lbank="0" prog="48"/>
+ <Patch name="Choir Str." hbank="11" lbank="0" prog="48"/>
+ <Patch name="Strings+Horn" hbank="12" lbank="0" prog="48"/>
+ <Patch name="Str.+Flute" hbank="13" lbank="0" prog="48"/>
+ <Patch name="Choir Str.2" hbank="14" lbank="0" prog="48"/>
+ <Patch name="Choir Str.3" hbank="15" lbank="0" prog="48"/>
+ <Patch name="St. Strings" hbank="16" lbank="0" prog="48"/>
+ <Patch name="St.Strings 2" hbank="17" lbank="0" prog="48"/>
+ <Patch name="St.Strings 3" hbank="18" lbank="0" prog="48"/>
+ <Patch name="Orchestra 3" hbank="19" lbank="0" prog="48"/>
+ <Patch name="Orchestra 4" hbank="20" lbank="0" prog="48"/>
+ <Patch name="Velo Strings" hbank="24" lbank="0" prog="48"/>
+ <Patch name="Oct Strings1" hbank="32" lbank="0" prog="48"/>
+ <Patch name="Oct Strings2" hbank="33" lbank="0" prog="48"/>
+ <Patch name="ContraBsSect" hbank="34" lbank="0" prog="48"/>
+ <Patch name="60s Strings" hbank="40" lbank="0" prog="48"/>
+
+ <Patch name="SlowStrings2" hbank="1" lbank="0" prog="49"/>
+ <Patch name="SlowStrings3" hbank="2" lbank="0" prog="49"/>
+ <Patch name="Legato Str." hbank="8" lbank="0" prog="49"/>
+ <Patch name="Warm Strings" hbank="9" lbank="0" prog="49"/>
+ <Patch name="St.Slow Str." hbank="10" lbank="0" prog="49"/>
+ <Patch name="St.Slow Str2" hbank="11" lbank="0" prog="49"/>
+ <Patch name="S.Str+Choir" hbank="12" lbank="0" prog="49"/>
+ <Patch name="S.Str+Choir2" hbank="13" lbank="0" prog="49"/>
+
+ <Patch name="OB Strings" hbank="1" lbank="0" prog="50"/>
+ <Patch name="StackStrings" hbank="2" lbank="0" prog="50"/>
+ <Patch name="JP Strings" hbank="3" lbank="0" prog="50"/>
+ <Patch name="Chorus Str." hbank="4" lbank="0" prog="50"/>
+ <Patch name="Syn.Strings3" hbank="8" lbank="0" prog="50"/>
+ <Patch name="Syn.Strings4" hbank="9" lbank="0" prog="50"/>
+ <Patch name="Syn.Strings6" hbank="10" lbank="0" prog="50"/>
+ <Patch name="Syn.Strings7" hbank="11" lbank="0" prog="50"/>
+ <Patch name="LoFi Strings" hbank="12" lbank="0" prog="50"/>
+ <Patch name="High Strings" hbank="16" lbank="0" prog="50"/>
+ <Patch name="Hybrid Str." hbank="17" lbank="0" prog="50"/>
+ <Patch name="Tron Strings" hbank="24" lbank="0" prog="50"/>
+ <Patch name="Noiz Strings" hbank="25" lbank="0" prog="50"/>
+
+ <Patch name="Syn.Strings5" hbank="1" lbank="0" prog="51"/>
+ <Patch name="JUNO Strings" hbank="2" lbank="0" prog="51"/>
+ <Patch name="FilteredOrch" hbank="3" lbank="0" prog="51"/>
+ <Patch name="JP Saw Str." hbank="4" lbank="0" prog="51"/>
+ <Patch name="Hybrid Str.2" hbank="5" lbank="0" prog="51"/>
+ <Patch name="DistStrings" hbank="6" lbank="0" prog="51"/>
+ <Patch name="JUNOFullStr." hbank="7" lbank="0" prog="51"/>
+ <Patch name="Air Strings" hbank="8" lbank="0" prog="51"/>
+ <Patch name="Atk Syn Str." hbank="9" lbank="0" prog="51"/>
+ <Patch name="StraightStr." hbank="10" lbank="0" prog="51"/>
+
+ <Patch name="St.ChoirAahs" hbank="8" lbank="0" prog="52"/>
+ <Patch name="Melted Choir" hbank="9" lbank="0" prog="52"/>
+ <Patch name="Church Choir" hbank="10" lbank="0" prog="52"/>
+ <Patch name="Boys Choir 1" hbank="11" lbank="0" prog="52"/>
+ <Patch name="Boys Choir 2" hbank="12" lbank="0" prog="52"/>
+ <Patch name="St.BoysChoir" hbank="13" lbank="0" prog="52"/>
+ <Patch name="Rich Choir" hbank="14" lbank="0" prog="52"/>
+ <Patch name="Choir Hahs" hbank="16" lbank="0" prog="52"/>
+ <Patch name="Chorus Lahs" hbank="24" lbank="0" prog="52"/>
+ <Patch name="Chorus Aahs" hbank="32" lbank="0" prog="52"/>
+ <Patch name="Male Aah+Str" hbank="33" lbank="0" prog="52"/>
+
+ <Patch name="Chorus Oohs" hbank="1" lbank="0" prog="53"/>
+ <Patch name="Voice Oohs 2" hbank="2" lbank="0" prog="53"/>
+ <Patch name="Chorus Oohs2" hbank="3" lbank="0" prog="53"/>
+ <Patch name="OohsCodeMaj7" hbank="4" lbank="0" prog="53"/>
+ <Patch name="OohsCodeSus4" hbank="5" lbank="0" prog="53"/>
+ <Patch name="Jazz Scat" hbank="6" lbank="0" prog="53"/>
+ <Patch name="Voice Dahs" hbank="8" lbank="0" prog="53"/>
+ <Patch name="JzVoice Dat" hbank="9" lbank="0" prog="53"/>
+ <Patch name="JzVoice Bap" hbank="10" lbank="0" prog="53"/>
+ <Patch name="JzVoice Dow" hbank="11" lbank="0" prog="53"/>
+ <Patch name="JzVoice Thum" hbank="12" lbank="0" prog="53"/>
+ <Patch name="VoiceLah Fem" hbank="16" lbank="0" prog="53"/>
+ <Patch name="ChorusLahFem" hbank="17" lbank="0" prog="53"/>
+ <Patch name="VoiceLuh Fem" hbank="18" lbank="0" prog="53"/>
+ <Patch name="ChorusLuhFem" hbank="19" lbank="0" prog="53"/>
+ <Patch name="VoiceLan Fem" hbank="20" lbank="0" prog="53"/>
+ <Patch name="ChorusLanFem" hbank="21" lbank="0" prog="53"/>
+ <Patch name="VoiceAah Fem" hbank="22" lbank="0" prog="53"/>
+ <Patch name="VoiceUuh Fem" hbank="23" lbank="0" prog="53"/>
+ <Patch name="Fem LahLan" hbank="24" lbank="0" prog="53"/>
+ <Patch name="VoiceWah Mal" hbank="32" lbank="0" prog="53"/>
+ <Patch name="ChorusWahMal" hbank="33" lbank="0" prog="53"/>
+ <Patch name="VoiceWoh Mal" hbank="34" lbank="0" prog="53"/>
+ <Patch name="ChorusWohMal" hbank="35" lbank="0" prog="53"/>
+ <Patch name="VoiceAah Mal" hbank="36" lbank="0" prog="53"/>
+ <Patch name="VoiceOoh Mal" hbank="37" lbank="0" prog="53"/>
+ <Patch name="Humming" hbank="40" lbank="0" prog="53"/>
+
+ <Patch name="SynVox 2" hbank="1" lbank="0" prog="54"/>
+ <Patch name="SynVox 3" hbank="2" lbank="0" prog="54"/>
+ <Patch name="Syn.Voice" hbank="8" lbank="0" prog="54"/>
+ <Patch name="Silent Night" hbank="9" lbank="0" prog="54"/>
+ <Patch name="Syn.Voice 2" hbank="10" lbank="0" prog="54"/>
+ <Patch name="VP330 Choir" hbank="16" lbank="0" prog="54"/>
+ <Patch name="Vinyl Choir" hbank="17" lbank="0" prog="54"/>
+ <Patch name="JX8P Vox" hbank="18" lbank="0" prog="54"/>
+ <Patch name="Analog Voice" hbank="19" lbank="0" prog="54"/>
+
+ <Patch name="Bass Hit" hbank="1" lbank="0" prog="55"/>
+ <Patch name="6th Hit" hbank="2" lbank="0" prog="55"/>
+ <Patch name="Euro Hit" hbank="3" lbank="0" prog="55"/>
+ <Patch name="Impact Hit" hbank="8" lbank="0" prog="55"/>
+ <Patch name="Philly Hit" hbank="9" lbank="0" prog="55"/>
+ <Patch name="Double Hit" hbank="10" lbank="0" prog="55"/>
+ <Patch name="Perc. Hit" hbank="11" lbank="0" prog="55"/>
+ <Patch name="Shock Wave" hbank="12" lbank="0" prog="55"/>
+ <Patch name="Bounce Hit" hbank="13" lbank="0" prog="55"/>
+ <Patch name="Drill Hit" hbank="14" lbank="0" prog="55"/>
+ <Patch name="Thrill Hit" hbank="15" lbank="0" prog="55"/>
+ <Patch name="Lo Fi Rave" hbank="16" lbank="0" prog="55"/>
+ <Patch name="Techno Hit" hbank="17" lbank="0" prog="55"/>
+ <Patch name="Dist. Hit" hbank="18" lbank="0" prog="55"/>
+ <Patch name="Bam Hit" hbank="19" lbank="0" prog="55"/>
+ <Patch name="Bit Hit" hbank="20" lbank="0" prog="55"/>
+ <Patch name="Bim Hit" hbank="21" lbank="0" prog="55"/>
+ <Patch name="Technorg Hit" hbank="22" lbank="0" prog="55"/>
+ <Patch name="Rave Hit" hbank="23" lbank="0" prog="55"/>
+ <Patch name="Strings Hit" hbank="24" lbank="0" prog="55"/>
+ <Patch name="Stack Hit" hbank="25" lbank="0" prog="55"/>
+ <Patch name="Industry Hit" hbank="26" lbank="0" prog="55"/>
+ <Patch name="Clap Hit" hbank="27" lbank="0" prog="55"/>
+
+ </PatchGroup>
+ <PatchGroup name="Brass">
+
+ <Patch name="Trumpet 2" hbank="1" lbank="0" prog="56"/>
+ <Patch name="Trumpet:" hbank="2" lbank="0" prog="56"/>
+ <Patch name="Dark Trumpet" hbank="3" lbank="0" prog="56"/>
+ <Patch name="Trumpet + Nz" hbank="4" lbank="0" prog="56"/>
+ <Patch name="Flugel Horn" hbank="8" lbank="0" prog="56"/>
+ <Patch name="4th Trumpets" hbank="16" lbank="0" prog="56"/>
+ <Patch name="Bright Tp." hbank="24" lbank="0" prog="56"/>
+ <Patch name="Warm Tp." hbank="25" lbank="0" prog="56"/>
+ <Patch name="Warm Tp.2" hbank="26" lbank="0" prog="56"/>
+ <Patch name="Twin Tp." hbank="27" lbank="0" prog="56"/>
+ <Patch name="Syn. Trumpet" hbank="32" lbank="0" prog="56"/>
+
+ <Patch name="Trombone 2" hbank="1" lbank="0" prog="57"/>
+ <Patch name="Twin bones" hbank="2" lbank="0" prog="57"/>
+ <Patch name="Bones + Tuba" hbank="3" lbank="0" prog="57"/>
+ <Patch name="Bright Tb" hbank="4" lbank="0" prog="57"/>
+ <Patch name="Bs. Trombone" hbank="8" lbank="0" prog="57"/>
+ <Patch name="Euphonium" hbank="16" lbank="0" prog="57"/>
+
+ <Patch name="Tuba 2" hbank="1" lbank="0" prog="58"/>
+ <Patch name="Tuba + Horn" hbank="8" lbank="0" prog="58"/>
+
+ <Patch name="Cup Mute Tp" hbank="1" lbank="0" prog="59"/>
+ <Patch name="MuteTrumpet2" hbank="2" lbank="0" prog="59"/>
+ <Patch name="MuteTrumpet3" hbank="3" lbank="0" prog="59"/>
+ <Patch name="Muted Horns" hbank="8" lbank="0" prog="59"/>
+
+ <Patch name="Fr.Horn 2" hbank="1" lbank="0" prog="60"/>
+ <Patch name="Horn + Orche" hbank="2" lbank="0" prog="60"/>
+ <Patch name="Wide FreHrns" hbank="3" lbank="0" prog="60"/>
+ <Patch name="F.Hrn Slow:" hbank="8" lbank="0" prog="60"/>
+ <Patch name="Dual Horns" hbank="9" lbank="0" prog="60"/>
+ <Patch name="Synth Horn" hbank="16" lbank="0" prog="60"/>
+ <Patch name="F.Horn Rip" hbank="24" lbank="0" prog="60"/>
+
+ <Patch name="Brass ff" hbank="1" lbank="0" prog="61"/>
+ <Patch name="Bones Sect." hbank="2" lbank="0" prog="61"/>
+ <Patch name="St. Brass ff" hbank="3" lbank="0" prog="61"/>
+ <Patch name="Quad Brass1" hbank="4" lbank="0" prog="61"/>
+ <Patch name="Quad Brass2" hbank="5" lbank="0" prog="61"/>
+ <Patch name="Brass 2" hbank="8" lbank="0" prog="61"/>
+ <Patch name="Brass 3" hbank="9" lbank="0" prog="61"/>
+ <Patch name="Brass sfz" hbank="10" lbank="0" prog="61"/>
+ <Patch name="Brass sfz 2" hbank="12" lbank="0" prog="61"/>
+ <Patch name="FatPop Brass" hbank="14" lbank="0" prog="61"/>
+ <Patch name="Brass Fall" hbank="16" lbank="0" prog="61"/>
+ <Patch name="Trumpet Fall" hbank="17" lbank="0" prog="61"/>
+ <Patch name="Octave Brass" hbank="24" lbank="0" prog="61"/>
+ <Patch name="Brass + Reed" hbank="25" lbank="0" prog="61"/>
+ <Patch name="Fat + Reed" hbank="26" lbank="0" prog="61"/>
+ <Patch name="Orch Brass" hbank="32" lbank="0" prog="61"/>
+ <Patch name="Orch Brass 2" hbank="33" lbank="0" prog="61"/>
+ <Patch name="St.FatPopBrs" hbank="35" lbank="0" prog="61"/>
+ <Patch name="St.Orch Brs" hbank="36" lbank="0" prog="61"/>
+ <Patch name="St.Orch Brs2" hbank="37" lbank="0" prog="61"/>
+ <Patch name="St.Orch Brs3" hbank="38" lbank="0" prog="61"/>
+
+ <Patch name="JUNO Brass" hbank="1" lbank="0" prog="62"/>
+ <Patch name="Stack Brass" hbank="2" lbank="0" prog="62"/>
+ <Patch name="SH-5 Brass" hbank="3" lbank="0" prog="62"/>
+ <Patch name="MKS Brass" hbank="4" lbank="0" prog="62"/>
+ <Patch name="Jump Brass" hbank="5" lbank="0" prog="62"/>
+ <Patch name="Pro Brass" hbank="8" lbank="0" prog="62"/>
+ <Patch name="P5 Brass" hbank="9" lbank="0" prog="62"/>
+ <Patch name="OrchSynBrass" hbank="10" lbank="0" prog="62"/>
+ <Patch name="Oct SynBrass" hbank="16" lbank="0" prog="62"/>
+ <Patch name="Hybrid Brass" hbank="17" lbank="0" prog="62"/>
+ <Patch name="OctSynBrass2" hbank="18" lbank="0" prog="62"/>
+ <Patch name="BPF Brass" hbank="19" lbank="0" prog="62"/>
+
+ <Patch name="Soft Brass" hbank="1" lbank="0" prog="63"/>
+ <Patch name="Warm Brass" hbank="2" lbank="0" prog="63"/>
+ <Patch name="Synth Brass3" hbank="3" lbank="0" prog="63"/>
+ <Patch name="Sync Brass" hbank="4" lbank="0" prog="63"/>
+ <Patch name="Fat SynBrass" hbank="5" lbank="0" prog="63"/>
+ <Patch name="DeepSynBrass" hbank="6" lbank="0" prog="63"/>
+ <Patch name="SynBrass sfz" hbank="8" lbank="0" prog="63"/>
+ <Patch name="OB Brass " hbank="9" lbank="0" prog="63"/>
+ <Patch name="Reso Brass" hbank="10" lbank="0" prog="63"/>
+ <Patch name="DistSqrBrass" hbank="11" lbank="0" prog="63"/>
+ <Patch name="JP8000SawBrs" hbank="12" lbank="0" prog="63"/>
+ <Patch name="Velo Brass 1" hbank="16" lbank="0" prog="63"/>
+ <Patch name="Transbrass" hbank="17" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Exp." hbank="8" lbank="0" prog="64"/>
+
+ <Patch name="AltoSax Exp." hbank="8" lbank="0" prog="65"/>
+ <Patch name="Grow Sax" hbank="9" lbank="0" prog="65"/>
+ <Patch name="AltoSax + Tp" hbank="16" lbank="0" prog="65"/>
+ <Patch name="Sax Section" hbank="17" lbank="0" prog="65"/>
+
+ <Patch name="Tenor Sax :" hbank="1" lbank="0" prog="66"/>
+ <Patch name="BreathyTn.:" hbank="8" lbank="0" prog="66"/>
+ <Patch name="St.Tenor Sax" hbank="9" lbank="0" prog="66"/>
+
+ <Patch name="Bari. Sax :" hbank="1" lbank="0" prog="67"/>
+ <Patch name="Bari + Tenor" hbank="8" lbank="0" prog="67"/>
+
+ <Patch name="Oboe Exp." hbank="8" lbank="0" prog="68"/>
+ <Patch name="Multi Reed" hbank="16" lbank="0" prog="68"/>
+
+ <Patch name="Bs Clarinet" hbank="8" lbank="0" prog="71"/>
+ <Patch name="Multi Wind" hbank="16" lbank="0" prog="71"/>
+ <Patch name="Quad Wind" hbank="17" lbank="0" prog="71"/>
+
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo :" hbank="1" lbank="0" prog="72"/>
+ <Patch name="Nay" hbank="8" lbank="0" prog="72"/>
+ <Patch name="Nay Tremolo" hbank="9" lbank="0" prog="72"/>
+ <Patch name="Di" hbank="16" lbank="0" prog="72"/>
+
+ <Patch name="Flute 2 " hbank="1" lbank="0" prog="73"/>":
+ <Patch name="Flute Exp." hbank="2" lbank="0" prog="73"/>
+ <Patch name="Flt Travelso" hbank="3" lbank="0" prog="73"/>
+ <Patch name="Flute + Vln" hbank="8" lbank="0" prog="73"/>
+ <Patch name="Pipe + Reed" hbank="9" lbank="0" prog="73"/>
+ <Patch name="Tron Flute" hbank="16" lbank="0" prog="73"/>
+ <Patch name="Indian Flute" hbank="17" lbank="0" prog="73"/>
+
+ <Patch name="Kawala" hbank="8" lbank="0" prog="75"/>
+ <Patch name="Zampona" hbank="16" lbank="0" prog="75"/>
+ <Patch name="Zampona Atk" hbank="17" lbank="0" prog="75"/>
+ <Patch name="Tin Whistle" hbank="24" lbank="0" prog="75"/>
+ <Patch name="TinWhtsle Nm" hbank="25" lbank="0" prog="75"/>
+ <Patch name="TinWhtsle Or" hbank="26" lbank="0" prog="75"/>
+
+ <Patch name="Shakuhachi:" hbank="1" lbank="0" prog="77"/>
+
+ <Patch name="Whistle 2" hbank="1" lbank="0" prog="78"/>
+
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="MG Square" hbank="1" lbank="0" prog="80"/>
+ <Patch name="Hollow Mini" hbank="2" lbank="0" prog="80"/>
+ <Patch name="Mellow FM" hbank="3" lbank="0" prog="80"/>
+ <Patch name="CC Solo" hbank="4" lbank="0" prog="80"/>
+ <Patch name="Shmoog" hbank="5" lbank="0" prog="80"/>
+ <Patch name="LM Square" hbank="6" lbank="0" prog="80"/>
+ <Patch name="JP8000 TWM" hbank="7" lbank="0" prog="80"/>
+ <Patch name="2600 Sine" hbank="8" lbank="0" prog="80"/>
+ <Patch name="Sine Lead" hbank="9" lbank="0" prog="80"/>
+ <Patch name="KG Lead" hbank="10" lbank="0" prog="80"/>
+ <Patch name="Twin Sine" hbank="11" lbank="0" prog="80"/>
+ <Patch name="P5 Square" hbank="16" lbank="0" prog="80"/>
+ <Patch name="OB Square" hbank="17" lbank="0" prog="80"/>
+ <Patch name="JP-8 Square" hbank="18" lbank="0" prog="80"/>
+ <Patch name="Dist Square" hbank="19" lbank="0" prog="80"/>
+ <Patch name="303SquarDst1" hbank="20" lbank="0" prog="80"/>
+ <Patch name="303SquarDst2" hbank="21" lbank="0" prog="80"/>
+ <Patch name="303 Mix Sqr" hbank="22" lbank="0" prog="80"/>
+ <Patch name="Dual Sqr+Saw" hbank="23" lbank="0" prog="80"/>
+ <Patch name="Pulse Lead" hbank="24" lbank="0" prog="80"/>
+ <Patch name="JP8 PulseLd1" hbank="25" lbank="0" prog="80"/>
+ <Patch name="JP8 PulseLd2" hbank="26" lbank="0" prog="80"/>
+ <Patch name="MG Reso. Pls" hbank="27" lbank="0" prog="80"/>
+ <Patch name="JP8 PulseLd3" hbank="28" lbank="0" prog="80"/>
+ <Patch name="260RingLead" hbank="29" lbank="0" prog="80"/>
+ <Patch name="303DistLead" hbank="30" lbank="0" prog="80"/>
+ <Patch name="JP8000DistLd" hbank="31" lbank="0" prog="80"/>
+ <Patch name="HipHop SinLd" hbank="32" lbank="0" prog="80"/>
+ <Patch name="HipHop SqrLd" hbank="33" lbank="0" prog="80"/>
+ <Patch name="HipHop PlsLd" hbank="34" lbank="0" prog="80"/>
+ <Patch name="Flux Pulse" hbank="35" lbank="0" prog="80"/>
+
+ <Patch name="OB2 Saw" hbank="1" lbank="0" prog="81"/>
+ <Patch name="Pulse Saw" hbank="2" lbank="0" prog="81"/>
+ <Patch name="Feline GR" hbank="3" lbank="0" prog="81"/>
+ <Patch name="Big Lead" hbank="4" lbank="0" prog="81"/>
+ <Patch name="Velo Lead" hbank="5" lbank="0" prog="81"/>
+ <Patch name="GR-300" hbank="6" lbank="0" prog="81"/>
+ <Patch name="LA Saw" hbank="7" lbank="0" prog="81"/>
+ <Patch name="Doctor Solo" hbank="8" lbank="0" prog="81"/>
+ <Patch name="Fat Saw Lead" hbank="9" lbank="0" prog="81"/>
+ <Patch name="JP8000 Saw" hbank="10" lbank="0" prog="81"/>
+ <Patch name="D-50 Fat Saw" hbank="11" lbank="0" prog="81"/>
+ <Patch name="OB DoubleSaw" hbank="12" lbank="0" prog="81"/>
+ <Patch name="JP DoubleSaw" hbank="13" lbank="0" prog="81"/>
+ <Patch name="FatSawLead 2" hbank="14" lbank="0" prog="81"/>
+ <Patch name="JP SuperSaw" hbank="15" lbank="0" prog="81"/>
+ <Patch name="Waspy Synth" hbank="16" lbank="0" prog="81"/>
+ <Patch name="PM Lead" hbank="17" lbank="0" prog="81"/>
+ <Patch name="CS Saw Lead" hbank="18" lbank="0" prog="81"/>
+ <Patch name="MG Saw 1" hbank="24" lbank="0" prog="81"/>
+ <Patch name="MG Saw 2" hbank="25" lbank="0" prog="81"/>
+ <Patch name="OB Saw 1" hbank="26" lbank="0" prog="81"/>
+ <Patch name="OB Saw 2" hbank="27" lbank="0" prog="81"/>
+ <Patch name="D-50 Saw" hbank="28" lbank="0" prog="81"/>
+ <Patch name="SH-101 Saw" hbank="29" lbank="0" prog="81"/>
+ <Patch name="CS Saw" hbank="30" lbank="0" prog="81"/>
+ <Patch name="MG Saw Lead" hbank="31" lbank="0" prog="81"/>
+ <Patch name="OB Saw Lead" hbank="32" lbank="0" prog="81"/>
+ <Patch name="P5 Saw Lead" hbank="33" lbank="0" prog="81"/>
+ <Patch name="MG unison" hbank="34" lbank="0" prog="81"/>
+ <Patch name="Oct Saw Lead" hbank="35" lbank="0" prog="81"/>
+ <Patch name="Natural Lead" hbank="36" lbank="0" prog="81"/>
+ <Patch name="SequenceSaw1" hbank="40" lbank="0" prog="81"/>
+ <Patch name="SequenceSaw2" hbank="41" lbank="0" prog="81"/>
+ <Patch name="Reso Saw" hbank="42" lbank="0" prog="81"/>
+ <Patch name="Cheese Saw 1" hbank="43" lbank="0" prog="81"/>
+ <Patch name="Cheese Saw 2" hbank="44" lbank="0" prog="81"/>
+ <Patch name="Rhythmic Saw" hbank="45" lbank="0" prog="81"/>
+ <Patch name="SequencedSaw" hbank="46" lbank="0" prog="81"/>
+ <Patch name="Techno Saw" hbank="47" lbank="0" prog="81"/>
+
+ <Patch name="Vent Synth" hbank="1" lbank="0" prog="82"/>
+ <Patch name="Pure PanLead" hbank="2" lbank="0" prog="82"/>
+ <Patch name="LM Pure Lead" hbank="8" lbank="0" prog="82"/>
+ <Patch name="LM Blow Lead" hbank="9" lbank="0" prog="82"/>
+
+ <Patch name="TB Lead" hbank="1" lbank="0" prog="83"/>
+ <Patch name="Hybrid Lead" hbank="2" lbank="0" prog="83"/>
+ <Patch name="Unison SqrLd" hbank="3" lbank="0" prog="83"/>
+ <Patch name="FatSolo Lead" hbank="4" lbank="0" prog="83"/>
+ <Patch name="ForcefulLead" hbank="5" lbank="0" prog="83"/>
+ <Patch name="Oct.UnisonLd" hbank="6" lbank="0" prog="83"/>
+ <Patch name="Unison SawLd" hbank="7" lbank="0" prog="83"/>
+ <Patch name="Mad Lead" hbank="8" lbank="0" prog="83"/>
+ <Patch name="CrowdingLead" hbank="9" lbank="0" prog="83"/>
+ <Patch name="Double Sqr." hbank="10" lbank="0" prog="83"/>
+
+ <Patch name="Wire Lead" hbank="1" lbank="0" prog="84"/>
+ <Patch name="FB.Charang" hbank="2" lbank="0" prog="84"/>
+ <Patch name="Fat GR Lead" hbank="3" lbank="0" prog="84"/>
+ <Patch name="Windy GR Ld" hbank="4" lbank="0" prog="84"/>
+ <Patch name="Mellow GR Ld" hbank="5" lbank="0" prog="84"/>
+ <Patch name="GR + Pulse" hbank="6" lbank="0" prog="84"/>
+ <Patch name="Dist.Lead" hbank="8" lbank="0" prog="84"/>
+ <Patch name="Acid Guitar1" hbank="9" lbank="0" prog="84"/>
+ <Patch name="Acid Guitar2" hbank="10" lbank="0" prog="84"/>
+ <Patch name="Dance Dst.Gt" hbank="11" lbank="0" prog="84"/>
+ <Patch name="DanceDst.Gt2" hbank="12" lbank="0" prog="84"/>
+ <Patch name="P5 Sync Lead" hbank="16" lbank="0" prog="84"/>
+ <Patch name="Fat SyncLead" hbank="17" lbank="0" prog="84"/>
+ <Patch name="Rock Lead" hbank="18" lbank="0" prog="84"/>
+ <Patch name="5th DecaSync" hbank="19" lbank="0" prog="84"/>
+ <Patch name="Dirty Sync" hbank="20" lbank="0" prog="84"/>
+ <Patch name="DualSyncLead" hbank="21" lbank="0" prog="84"/>
+ <Patch name="LA Brass Ld" hbank="22" lbank="0" prog="84"/>
+ <Patch name="JUNO Sub Osc" hbank="24" lbank="0" prog="84"/>
+ <Patch name="2600 Sub Osc" hbank="25" lbank="0" prog="84"/>
+ <Patch name="JP8000Fd Osc" hbank="26" lbank="0" prog="84"/>
+
+ <Patch name="Solo Vox 2" hbank="1" lbank="0" prog="85"/>
+ <Patch name="Vox Lead" hbank="8" lbank="0" prog="85"/>
+ <Patch name="LFO Vox" hbank="9" lbank="0" prog="85"/>
+ <Patch name="Vox Lead 2" hbank="10" lbank="0" prog="85"/>
+
+ <Patch name="Big Fives" hbank="1" lbank="0" prog="86"/>
+ <Patch name="5th Lead" hbank="2" lbank="0" prog="86"/>
+ <Patch name="5th Ana.Clav" hbank="3" lbank="0" prog="86"/>
+ <Patch name="5th Pulse JP" hbank="4" lbank="0" prog="86"/>
+ <Patch name="5th Saw" hbank="5" lbank="0" prog="86"/>
+ <Patch name="JP8000 5thFB" hbank="6" lbank="0" prog="86"/>
+ <Patch name="4th Lead" hbank="8" lbank="0" prog="86"/>
+
+ <Patch name="Big + Raw" hbank="1" lbank="0" prog="87"/>
+ <Patch name="Fat + Perky" hbank="2" lbank="0" prog="87"/>
+ <Patch name="JUNO Rave" hbank="3" lbank="0" prog="87"/>
+ <Patch name="JP8 BsLead 1" hbank="4" lbank="0" prog="87"/>
+ <Patch name="JP8 BsLead 2" hbank="5" lbank="0" prog="87"/>
+ <Patch name="SH-5 Bs.Lead" hbank="6" lbank="0" prog="87"/>
+ <Patch name="Delayed Lead" hbank="7" lbank="0" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad, etc">
+
+ <Patch name="Fantasia 2" hbank="1" lbank="0" prog="88"/>
+ <Patch name="New Age Pad" hbank="2" lbank="0" prog="88"/>
+ <Patch name="Bell Heaven" hbank="3" lbank="0" prog="88"/>
+ <Patch name="Fantasia 3" hbank="4" lbank="0" prog="88"/>
+ <Patch name="Fantasia 4" hbank="5" lbank="0" prog="88"/>
+ <Patch name="After D !" hbank="6" lbank="0" prog="88"/>
+ <Patch name="260HarmPad" hbank="7" lbank="0" prog="88"/>
+
+ <Patch name="Thick Matrix" hbank="1" lbank="0" prog="89"/>
+ <Patch name="Horn Pad" hbank="2" lbank="0" prog="89"/>
+ <Patch name="Rotary Strng" hbank="3" lbank="0" prog="89"/>
+ <Patch name="OB Soft Pad" hbank="4" lbank="0" prog="89"/>
+ <Patch name="Sine Pad" hbank="5" lbank="0" prog="89"/>
+ <Patch name="OB Soft Pad2" hbank="6" lbank="0" prog="89"/>
+ <Patch name="Octave Pad" hbank="8" lbank="0" prog="89"/>
+ <Patch name="Stack Pad" hbank="9" lbank="0" prog="89"/>
+ <Patch name="Human Pad" hbank="10" lbank="0" prog="89"/>
+ <Patch name="Sync Brs.Pad" hbank="11" lbank="0" prog="89"/>
+ <Patch name="Oct.PWM Pad" hbank="12" lbank="0" prog="89"/>
+ <Patch name="JP Soft Pad" hbank="13" lbank="0" prog="89"/>
+
+ <Patch name="80's PolySyn" hbank="1" lbank="0" prog="90"/>
+ <Patch name="Polysynth 2" hbank="2" lbank="0" prog="90"/>
+ <Patch name="Poly King" hbank="3" lbank="0" prog="90"/>
+ <Patch name="Super Poly" hbank="4" lbank="0" prog="90"/>
+ <Patch name="Power Stack" hbank="8" lbank="0" prog="90"/>
+ <Patch name="Octave Stack" hbank="9" lbank="0" prog="90"/>
+ <Patch name="Reso Stack" hbank="10" lbank="0" prog="90"/>
+ <Patch name="Techno Stack" hbank="11" lbank="0" prog="90"/>
+ <Patch name="Pulse Stack" hbank="12" lbank="0" prog="90"/>
+ <Patch name="TwinOct.Rave" hbank="13" lbank="0" prog="90"/>
+ <Patch name="Oct.Rave" hbank="14" lbank="0" prog="90"/>
+ <Patch name="Happy Synth" hbank="15" lbank="0" prog="90"/>
+ <Patch name="ForwardSweep" hbank="16" lbank="0" prog="90"/>
+ <Patch name="ReverseSweep" hbank="17" lbank="0" prog="90"/>
+ <Patch name="Minor Rave" hbank="24" lbank="0" prog="90"/>
+
+ <Patch name="Heaven II" hbank="1" lbank="0" prog="91"/>
+ <Patch name="SC Heaven" hbank="2" lbank="0" prog="91"/>
+ <Patch name="Itopia" hbank="3" lbank="0" prog="91"/>
+ <Patch name="Water Space" hbank="4" lbank="0" prog="91"/>
+ <Patch name="Cold Space" hbank="5" lbank="0" prog="91"/>
+ <Patch name="Noise Peaker" hbank="6" lbank="0" prog="91"/>
+ <Patch name="Bamboo Hit" hbank="7" lbank="0" prog="91"/>
+ <Patch name="Cosmic Voice" hbank="8" lbank="0" prog="91"/>
+ <Patch name="Auh Vox" hbank="9" lbank="0" prog="91"/>
+ <Patch name="AuhAuh" hbank="10" lbank="0" prog="91"/>
+ <Patch name="Vocorderman" hbank="11" lbank="0" prog="91"/>
+ <Patch name="Holy Voices" hbank="12" lbank="0" prog="91"/>
+
+ <Patch name="SoftBellPad" hbank="1" lbank="0" prog="92"/>
+ <Patch name="JP8 Sqr Pad" hbank="2" lbank="0" prog="92"/>
+ <Patch name="7thBelPad" hbank="3" lbank="0" prog="92"/>
+ <Patch name="Steel Glass" hbank="4" lbank="0" prog="92"/>
+ <Patch name="Bottle Stack" hbank="5" lbank="0" prog="92"/>
+
+ <Patch name="Tine Pad" hbank="1" lbank="0" prog="93"/>
+ <Patch name="Panner Pad" hbank="2" lbank="0" prog="93"/>
+ <Patch name="Steel Pad" hbank="3" lbank="0" prog="93"/>
+ <Patch name="Special Rave" hbank="4" lbank="0" prog="93"/>
+ <Patch name="Metal Pad 2" hbank="5" lbank="0" prog="93"/>
+
+ <Patch name="Vox Pad" hbank="1" lbank="0" prog="94"/>
+ <Patch name="Vox Sweep" hbank="2" lbank="0" prog="94"/>
+ <Patch name="Horror Pad" hbank="8" lbank="0" prog="94"/>
+ <Patch name="SynVox Pad" hbank="9" lbank="0" prog="94"/>
+ <Patch name="SynVox Pad 2" hbank="10" lbank="0" prog="94"/>
+ <Patch name="Breath+Rise" hbank="11" lbank="0" prog="94"/>
+ <Patch name="Tears Voices" hbank="12" lbank="0" prog="94"/>
+
+ <Patch name="Polar Pad" hbank="1" lbank="0" prog="95"/>
+ <Patch name="Ambient BPF" hbank="2" lbank="0" prog="95"/>
+ <Patch name="Sync Pad" hbank="3" lbank="0" prog="95"/>
+ <Patch name="Warriors" hbank="4" lbank="0" prog="95"/>
+ <Patch name="Converge" hbank="8" lbank="0" prog="95"/>
+ <Patch name="Shwimmer" hbank="9" lbank="0" prog="95"/>
+ <Patch name="Celestial Pd" hbank="10" lbank="0" prog="95"/>
+ <Patch name="Bag Sweep" hbank="11" lbank="0" prog="95"/>
+ <Patch name="Sweep Pipe" hbank="12" lbank="0" prog="95"/>
+ <Patch name="Sweep Stack" hbank="13" lbank="0" prog="95"/>
+ <Patch name="Deep Sweep" hbank="14" lbank="0" prog="95"/>
+ <Patch name="Stray Pad" hbank="15" lbank="0" prog="95"/>
+
+ </PatchGroup>
+ <PatchGroup name="Synth SFX">
+ <Patch name="Harmo Rain" hbank="1" lbank="0" prog="96"/>
+ <Patch name="African wood" hbank="2" lbank="0" prog="96"/>
+ <Patch name="Anklung Pad" hbank="3" lbank="0" prog="96"/>
+ <Patch name="Rattle Pad" hbank="4" lbank="0" prog="96"/>
+ <Patch name="Saw Impulse" hbank="5" lbank="0" prog="96"/>
+ <Patch name="Strange Str." hbank="6" lbank="0" prog="96"/>
+ <Patch name="FastFWD Pad" hbank="7" lbank="0" prog="96"/>
+ <Patch name="Clavi Pad" hbank="8" lbank="0" prog="96"/>
+ <Patch name="EP Pad" hbank="9" lbank="0" prog="96"/>
+ <Patch name="Tambra Pad" hbank="10" lbank="0" prog="96"/>
+ <Patch name="CP Pad" hbank="11" lbank="0" prog="96"/>
+
+ <Patch name="Ancestral" hbank="1" lbank="0" prog="97"/>
+ <Patch name="Prologue" hbank="2" lbank="0" prog="97"/>
+ <Patch name="Prologue 2" hbank="3" lbank="0" prog="97"/>
+ <Patch name="Hols Strings" hbank="4" lbank="0" prog="97"/>
+ <Patch name="HistoryWave" hbank="5" lbank="0" prog="97"/>
+ <Patch name="Rave" hbank="8" lbank="0" prog="97"/>
+
+ <Patch name="Syn Mallet" hbank="1" lbank="0" prog="98"/>
+ <Patch name="Soft Crystal" hbank="2" lbank="0" prog="98"/>
+ <Patch name="Round Glock" hbank="3" lbank="0" prog="98"/>
+ <Patch name="Loud Glock" hbank="4" lbank="0" prog="98"/>
+ <Patch name="GlockenChime" hbank="5" lbank="0" prog="98"/>
+ <Patch name="Clear Bells" hbank="6" lbank="0" prog="98"/>
+ <Patch name="ChristmasBel" hbank="7" lbank="0" prog="98"/>
+ <Patch name="Vibra Bells" hbank="8" lbank="0" prog="98"/>
+ <Patch name="Digi Bells" hbank="9" lbank="0" prog="98"/>
+ <Patch name="Music Bell" hbank="10" lbank="0" prog="98"/>
+ <Patch name="Analog Bell" hbank="11" lbank="0" prog="98"/>
+ <Patch name="Blow Bell" hbank="12" lbank="0" prog="98"/>
+ <Patch name="Hyper Bell" hbank="13" lbank="0" prog="98"/>
+ <Patch name="Choral Bells" hbank="16" lbank="0" prog="98"/>
+ <Patch name="Air Bells" hbank="17" lbank="0" prog="98"/>
+ <Patch name="Bell Harp" hbank="18" lbank="0" prog="98"/>
+ <Patch name="Gamelimba" hbank="19" lbank="0" prog="98"/>
+ <Patch name="JUNO Bell" hbank="20" lbank="0" prog="98"/>
+ <Patch name="JP Bell" hbank="21" lbank="0" prog="98"/>
+ <Patch name="Pizz Bell" hbank="22" lbank="0" prog="98"/>
+ <Patch name="Bottom Bell" hbank="23" lbank="0" prog="98"/>
+
+ <Patch name="Warm Atmos" hbank="1" lbank="0" prog="99"/>
+ <Patch name="Nylon Harp" hbank="2" lbank="0" prog="99"/>
+ <Patch name="Harpvox" hbank="3" lbank="0" prog="99"/>
+ <Patch name="HollowReleas" hbank="4" lbank="0" prog="99"/>
+ <Patch name="Nylon+Rhodes" hbank="5" lbank="0" prog="99"/>
+ <Patch name="Ambient Pad" hbank="6" lbank="0" prog="99"/>
+ <Patch name="Invisible" hbank="7" lbank="0" prog="99"/>
+ <Patch name="Pulsey Key" hbank="8" lbank="0" prog="99"/>
+ <Patch name="Noise Piano" hbank="9" lbank="0" prog="99"/>
+ <Patch name="Heaven Atmos" hbank="10" lbank="0" prog="99"/>
+ <Patch name="Tambra Atmos" hbank="11" lbank="0" prog="99"/>
+
+ <Patch name="Shining Star" hbank="1" lbank="0" prog="100"/>
+ <Patch name="OB Stab" hbank="2" lbank="0" prog="100"/>
+ <Patch name="Brass Star" hbank="3" lbank="0" prog="100"/>
+ <Patch name="Choir Stab" hbank="4" lbank="0" prog="100"/>
+ <Patch name="D-50 Retour" hbank="5" lbank="0" prog="100"/>
+ <Patch name="SouthernWind" hbank="6" lbank="0" prog="100"/>
+ <Patch name="SymbolicBell" hbank="7" lbank="0" prog="100"/>
+ <Patch name="Org Bell" hbank="8" lbank="0" prog="100"/>
+
+ <Patch name="Goblinson" hbank="1" lbank="0" prog="101"/>
+ <Patch name="50's Sci-Fi" hbank="2" lbank="0" prog="101"/>
+ <Patch name="Abduction" hbank="3" lbank="0" prog="101"/>
+ <Patch name="Auhbient" hbank="4" lbank="0" prog="101"/>
+ <Patch name="LFO Pad" hbank="5" lbank="0" prog="101"/>
+ <Patch name="Random Str" hbank="6" lbank="0" prog="101"/>
+ <Patch name="Random Pad" hbank="7" lbank="0" prog="101"/>
+ <Patch name="LowBirds Pad" hbank="8" lbank="0" prog="101"/>
+ <Patch name="Falling Down" hbank="9" lbank="0" prog="101"/>
+ <Patch name="LFO RAVE" hbank="10" lbank="0" prog="101"/>
+ <Patch name="LFO Horror" hbank="11" lbank="0" prog="101"/>
+ <Patch name="LFO Techno" hbank="12" lbank="0" prog="101"/>
+ <Patch name="Alternative" hbank="13" lbank="0" prog="101"/>
+ <Patch name="UFO FX" hbank="14" lbank="0" prog="101"/>
+ <Patch name="Gargle Man" hbank="15" lbank="0" prog="101"/>
+ <Patch name="Sweep FX" hbank="16" lbank="0" prog="101"/>
+ <Patch name="LM Has Come" hbank="17" lbank="0" prog="101"/>
+ <Patch name="FallinInsect" hbank="18" lbank="0" prog="101"/>
+ <Patch name="LFO Oct.Rave" hbank="19" lbank="0" prog="101"/>
+ <Patch name="Just Before" hbank="20" lbank="0" prog="101"/>
+ <Patch name="RND Fl.Chord" hbank="21" lbank="0" prog="101"/>
+ <Patch name="RandomEnding" hbank="22" lbank="0" prog="101"/>
+ <Patch name="Random Sine" hbank="23" lbank="0" prog="101"/>
+ <Patch name="EatingFilter" hbank="24" lbank="0" prog="101"/>
+ <Patch name="Noise+SawHit" hbank="25" lbank="0" prog="101"/>
+ <Patch name="Pour Magic" hbank="26" lbank="0" prog="101"/>
+ <Patch name="DancingDrill" hbank="27" lbank="0" prog="101"/>
+ <Patch name="Dirty Stack" hbank="28" lbank="0" prog="101"/>
+ <Patch name="Big Blue" hbank="29" lbank="0" prog="101"/>
+ <Patch name="Static Hit" hbank="30" lbank="0" prog="101"/>
+ <Patch name="Atl.Mod.FX" hbank="31" lbank="0" prog="101"/>
+ <Patch name="Acid Copter" hbank="32" lbank="0" prog="101"/>
+
+ <Patch name="Echo Bell" hbank="1" lbank="0" prog="102"/>
+ <Patch name="Echo Pan" hbank="2" lbank="0" prog="102"/>
+ <Patch name="Echo Pan 2" hbank="3" lbank="0" prog="102"/>
+ <Patch name="Big Panner" hbank="4" lbank="0" prog="102"/>
+ <Patch name="Reso Panner" hbank="5" lbank="0" prog="102"/>
+ <Patch name="Water Piano" hbank="6" lbank="0" prog="102"/>
+ <Patch name="Echo SynBass" hbank="7" lbank="0" prog="102"/>
+ <Patch name="Pan Sequence" hbank="8" lbank="0" prog="102"/>
+ <Patch name="Aqua " hbank="9" lbank="0" prog="102"/>
+ <Patch name="Panning Lead" hbank="10" lbank="0" prog="102"/>
+ <Patch name="PanningBrass" hbank="11" lbank="0" prog="102"/>
+
+ <Patch name="Star Theme 2" hbank="1" lbank="0" prog="103"/>
+ <Patch name="Star Mind" hbank="2" lbank="0" prog="103"/>
+ <Patch name="Star Dust" hbank="3" lbank="0" prog="103"/>
+ <Patch name="Rep.Trance" hbank="4" lbank="0" prog="103"/>
+ <Patch name="Etherality" hbank="5" lbank="0" prog="103"/>
+ <Patch name="Mystic Pad" hbank="6" lbank="0" prog="103"/>
+ <Patch name="Dream Pad" hbank="8" lbank="0" prog="103"/>
+ <Patch name="Silky Pad" hbank="9" lbank="0" prog="103"/>
+ <Patch name="Dream Pad 2" hbank="10" lbank="0" prog="103"/>
+ <Patch name="Silky Pad 2" hbank="11" lbank="0" prog="103"/>
+ <Patch name="New Century" hbank="16" lbank="0" prog="103"/>
+ <Patch name="7th Atmos." hbank="17" lbank="0" prog="103"/>
+ <Patch name="Galaxy Way" hbank="18" lbank="0" prog="103"/>
+ <Patch name="Rising OSC." hbank="19" lbank="0" prog="103"/>
+ </PatchGroup>
+
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar 2" hbank="1" lbank="0" prog="104"/>
+ <Patch name="Detune Sitar" hbank="2" lbank="0" prog="104"/>
+ <Patch name="Sitar 3" hbank="3" lbank="0" prog="104"/>
+ <Patch name="Sitar/Drone" hbank="4" lbank="0" prog="104"/>
+ <Patch name="Sitar 4" hbank="5" lbank="0" prog="104"/>
+ <Patch name="Tambra" hbank="8" lbank="0" prog="104"/>
+ <Patch name="Tamboura" hbank="16" lbank="0" prog="104"/>
+
+ <Patch name="Muted Banjo" hbank="1" lbank="0" prog="105"/>
+ <Patch name="Rabab" hbank="8" lbank="0" prog="105"/>
+ <Patch name="San Xian" hbank="9" lbank="0" prog="105"/>
+ <Patch name="Gopichant" hbank="16" lbank="0" prog="105"/>
+ <Patch name="Oud" hbank="24" lbank="0" prog="105"/>
+ <Patch name="Oud+Strings" hbank="28" lbank="0" prog="105"/>
+ <Patch name="Pi Pa" hbank="32" lbank="0" prog="105"/>
+
+ <Patch name="Tsugaru" hbank="1" lbank="0" prog="106"/>
+ <Patch name="Syn Shamisen" hbank="8" lbank="0" prog="106"/>
+
+ <Patch name="Gu Zheng" hbank="1" lbank="0" prog="107"/>
+ <Patch name="Taisho Koto" hbank="8" lbank="0" prog="107"/>
+ <Patch name="Kanoon" hbank="16" lbank="0" prog="107"/>
+ <Patch name="Kanoon+Choir" hbank="19" lbank="0" prog="107"/>
+ <Patch name="Oct Harp" hbank="24" lbank="0" prog="107"/>
+
+ <Patch name="Sanza" hbank="8" lbank="0" prog="108"/>
+ <Patch name="Bodhran" hbank="9" lbank="0" prog="108"/>
+ <Patch name="Bodhran Mute" hbank="10" lbank="0" prog="108"/>
+
+ <Patch name="Didgeridoo" hbank="8" lbank="0" prog="109"/>
+ <Patch name="Uillean Pipe" hbank="9" lbank="0" prog="109"/>
+ <Patch name="UillnPipe Nm" hbank="10" lbank="0" prog="109"/>
+ <Patch name="UillnPipe Or" hbank="11" lbank="0" prog="109"/>
+
+ <Patch name="Er Hu" hbank="8" lbank="0" prog="110"/>
+ <Patch name="Gao Hu" hbank="9" lbank="0" prog="110"/>
+
+ <Patch name="Shanai 2" hbank="1" lbank="0" prog="111"/>
+ <Patch name="Pungi" hbank="8" lbank="0" prog="111"/>
+ <Patch name="Hichiriki" hbank="16" lbank="0" prog="111"/>
+ <Patch name="Mizmar" hbank="24" lbank="0" prog="111"/>
+ <Patch name="Suona 1" hbank="32" lbank="0" prog="111"/>
+ <Patch name="Suona 2" hbank="33" lbank="0" prog="111"/>
+
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Bonang" hbank="8" lbank="0" prog="112"/>
+ <Patch name="Gender" hbank="9" lbank="0" prog="112"/>
+ <Patch name="Gamelan Gong" hbank="10" lbank="0" prog="112"/>
+ <Patch name="St.Gamelan" hbank="11" lbank="0" prog="112"/>
+ <Patch name="Jang Gu" hbank="12" lbank="0" prog="112"/>
+ <Patch name="Jegogan" hbank="13" lbank="0" prog="112"/>
+ <Patch name="Jublag" hbank="14" lbank="0" prog="112"/>
+ <Patch name="Pemade" hbank="15" lbank="0" prog="112"/>
+ <Patch name="RAMA Cymbal" hbank="16" lbank="0" prog="112"/>
+ <Patch name="Kajar" hbank="17" lbank="0" prog="112"/>
+ <Patch name="Kelontuk" hbank="18" lbank="0" prog="112"/>
+ <Patch name="Kelontuk Mt" hbank="19" lbank="0" prog="112"/>
+ <Patch name="Kelontuk Sid" hbank="20" lbank="0" prog="112"/>
+ <Patch name="Kopyak Op" hbank="21" lbank="0" prog="112"/>
+ <Patch name="Kopyak Mt" hbank="22" lbank="0" prog="112"/>
+ <Patch name="Ceng Ceng" hbank="23" lbank="0" prog="112"/>
+ <Patch name="Reyoung" hbank="24" lbank="0" prog="112"/>
+ <Patch name="Kempur" hbank="25" lbank="0" prog="112"/>
+ <Patch name="Jngl Crash" hbank="32" lbank="0" prog="112"/>
+ <Patch name="Crash Menu" hbank="40" lbank="0" prog="112"/>
+ <Patch name="RideCym Menu" hbank="41" lbank="0" prog="112"/>
+ <Patch name="RideBellMenu" hbank="42" lbank="0" prog="112"/>
+
+ <Patch name="Atarigane" hbank="8" lbank="0" prog="113"/>
+ <Patch name="Tambourine" hbank="16" lbank="0" prog="113"/>
+
+ <Patch name="Island Mlt" hbank="1" lbank="0" prog="114"/>
+
+ <Patch name="Castanets" hbank="8" lbank="0" prog="115"/>
+ <Patch name="Angklung" hbank="16" lbank="0" prog="115"/>
+ <Patch name="Angkl Rhythm" hbank="17" lbank="0" prog="115"/>
+ <Patch name="Finger Snaps" hbank="24" lbank="0" prog="115"/>
+ <Patch name="909 HandClap" hbank="32" lbank="0" prog="115"/>
+ <Patch name="HandClapMenu" hbank="40" lbank="0" prog="115"/>
+
+ <Patch name="Small Taiko" hbank="1" lbank="0" prog="116"/>
+ <Patch name="Concert BD" hbank="8" lbank="0" prog="116"/>
+ <Patch name="ConcertBD Mt" hbank="9" lbank="0" prog="116"/>
+ <Patch name="Jungle BD" hbank="16" lbank="0" prog="116"/>
+ <Patch name="Techno BD" hbank="17" lbank="0" prog="116"/>
+ <Patch name="Bounce" hbank="18" lbank="0" prog="116"/>
+ <Patch name="KendangWadon" hbank="24" lbank="0" prog="116"/>
+ <Patch name="Bebarongan" hbank="25" lbank="0" prog="116"/>
+ <Patch name="Pelegongan" hbank="26" lbank="0" prog="116"/>
+ <Patch name="Dholak 1" hbank="27" lbank="0" prog="116"/>
+ <Patch name="Dholak 2" hbank="28" lbank="0" prog="116"/>
+ <Patch name="Jngl BD Roll" hbank="32" lbank="0" prog="116"/>
+ <Patch name="Kick Menu 1" hbank="40" lbank="0" prog="116"/>
+ <Patch name="Kick Menu 2" hbank="41" lbank="0" prog="116"/>
+ <Patch name="Kick Menu 3" hbank="42" lbank="0" prog="116"/>
+ <Patch name="Kick Menu 4" hbank="43" lbank="0" prog="116"/>
+
+ <Patch name="Real Tom" hbank="1" lbank="0" prog="117"/>
+ <Patch name="Real Tom 2" hbank="2" lbank="0" prog="117"/>
+ <Patch name="Jazz Tom" hbank="3" lbank="0" prog="117"/>
+ <Patch name="Brush Tom" hbank="4" lbank="0" prog="117"/>
+ <Patch name="Melo. Tom 2" hbank="8" lbank="0" prog="117"/>
+ <Patch name="Rock Tom" hbank="9" lbank="0" prog="117"/>
+ <Patch name="Rash SD" hbank="16" lbank="0" prog="117"/>
+ <Patch name="House SD" hbank="17" lbank="0" prog="117"/>
+ <Patch name="Jungle SD" hbank="18" lbank="0" prog="117"/>
+ <Patch name="909 SD" hbank="19" lbank="0" prog="117"/>
+ <Patch name="Jngl SD Roll" hbank="24" lbank="0" prog="117"/>
+ <Patch name="SD Menu 1" hbank="40" lbank="0" prog="117"/>
+ <Patch name="SD Menu 2" hbank="41" lbank="0" prog="117"/>
+ <Patch name="SD Menu 3" hbank="42" lbank="0" prog="117"/>
+ <Patch name="SD Menu 4" hbank="43" lbank="0" prog="117"/>
+ <Patch name="SD Menu 5" hbank="44" lbank="0" prog="117"/>
+
+ <Patch name="808 Tom" hbank="8" lbank="0" prog="118"/>
+ <Patch name="Elec Perc" hbank="9" lbank="0" prog="118"/>
+ <Patch name="Sine Perc." hbank="10" lbank="0" prog="118"/>
+ <Patch name="606 Tom" hbank="11" lbank="0" prog="118"/>
+ <Patch name="909 Tom" hbank="12" lbank="0" prog="118"/>
+ <Patch name="606 Dist.Tom" hbank="13" lbank="0" prog="118"/>
+
+ <Patch name="Reverse Cym2" hbank="1" lbank="0" prog="119"/>
+ <Patch name="Reverse Cym3" hbank="2" lbank="0" prog="119"/>
+ <Patch name="Reverse Cym4" hbank="3" lbank="0" prog="119"/>
+ <Patch name="Rev.Snare 1" hbank="8" lbank="0" prog="119"/>
+ <Patch name="Rev.Snare 2" hbank="9" lbank="0" prog="119"/>
+ <Patch name="Rev.Kick 1" hbank="16" lbank="0" prog="119"/>
+ <Patch name="Rev.ConBD" hbank="17" lbank="0" prog="119"/>
+ <Patch name="Rev.Tom 1" hbank="24" lbank="0" prog="119"/>
+ <Patch name="Rev.Tom 2" hbank="25" lbank="0" prog="119"/>
+ <Patch name="Rev.Tom 3" hbank="26" lbank="0" prog="119"/>
+
+ Patch name="Rev.Tom 4" hbank="27" lbank="0" prog="119"/>
+ <Patch name="Rev.SD Menu1" hbank="40" lbank="0" prog="119"/>
+ <Patch name="Rev.SD Menu2" hbank="41" lbank="0" prog="119"/>
+ <Patch name="Rev.SD Menu3" hbank="42" lbank="0" prog="119"/>
+ <Patch name="Rev.BD Menu1" hbank="43" lbank="0" prog="119"/>
+ <Patch name="Rev.BD Menu2" hbank="44" lbank="0" prog="119"/>
+ <Patch name="Rev.BD Menu3" hbank="45" lbank="0" prog="119"/>
+ <Patch name="Rev.ClapMenu" hbank="46" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="SFX">
+ <Patch name="Gt.Cut Noise" hbank="1" lbank="0" prog="120"/>
+ <Patch name="String Slap" hbank="2" lbank="0" prog="120"/>
+ <Patch name="Gt.CutNoise2" hbank="3" lbank="0" prog="120"/>
+ <Patch name="Dist.CutNoiz" hbank="4" lbank="0" prog="120"/>
+ <Patch name="Bass Slide" hbank="5" lbank="0" prog="120"/>
+ <Patch name="Pick Scrape" hbank="6" lbank="0" prog="120"/>
+ <Patch name="Gt. FX Menu" hbank="8" lbank="0" prog="120"/>
+ <Patch name="Bartok Pizz." hbank="9" lbank="0" prog="120"/>
+ <Patch name="Guitar Slap" hbank="10" lbank="0" prog="120"/>
+ <Patch name="Chord Stroke" hbank="11" lbank="0" prog="120"/>
+ <Patch name="Biwa Stroke" hbank="12" lbank="0" prog="120"/>
+ <Patch name="Biwa Tremolo" hbank="13" lbank="0" prog="120"/>
+ <Patch name="A.Bs.Nz Menu" hbank="16" lbank="0" prog="120"/>
+ <Patch name="D.Gt.Nz Menu" hbank="17" lbank="0" prog="120"/>
+ <Patch name="E.Gt.NzMenu1" hbank="18" lbank="0" prog="120"/>
+ <Patch name="E.Gt.NzMenu2" hbank="19" lbank="0" prog="120"/>
+ <Patch name="G.StrokeMenu" hbank="20" lbank="0" prog="120"/>
+ <Patch name="Gt.SlideMenu" hbank="21" lbank="0" prog="120"/>
+ <Patch name="A.Bs.Mute Nz" hbank="22" lbank="0" prog="120"/>
+ <Patch name="A.Bs.TouchNz" hbank="23" lbank="0" prog="120"/>
+ <Patch name="A.Bs.AtackNz" hbank="24" lbank="0" prog="120"/>
+ <Patch name="TC Up Nz" hbank="25" lbank="0" prog="120"/>
+ <Patch name="TC DownMt.Nz" hbank="26" lbank="0" prog="120"/>
+ <Patch name="TC UpMt.Nz" hbank="27" lbank="0" prog="120"/>
+ <Patch name="TC Down Nz" hbank="28" lbank="0" prog="120"/>
+ <Patch name="DstGT.Up Nz" hbank="29" lbank="0" prog="120"/>
+ <Patch name="DstGT.DwnNz1" hbank="30" lbank="0" prog="120"/>
+ <Patch name="DstGT.DwnNz2" hbank="31" lbank="0" prog="120"/>
+ <Patch name="DstGT.MuteNz" hbank="32" lbank="0" prog="120"/>
+ <Patch name="Gt.StrokeNz5" hbank="34" lbank="0" prog="120"/>
+ <Patch name="StlGt.SldNz1" hbank="35" lbank="0" prog="120"/>
+ <Patch name="StlGt.SldNz2" hbank="36" lbank="0" prog="120"/>
+ <Patch name="StlGt.SldNz3" hbank="37" lbank="0" prog="120"/>
+ <Patch name="StlGt.SldNz4" hbank="38" lbank="0" prog="120"/>
+ <Patch name="Gt.StrokeNz1" hbank="39" lbank="0" prog="120"/>
+ <Patch name="Gt.StrokeNz2" hbank="40" lbank="0" prog="120"/>
+ <Patch name="Gt.StrokeNz3" hbank="41" lbank="0" prog="120"/>
+ <Patch name="Gt.StrokeNz4" hbank="42" lbank="0" prog="120"/>
+
+ <Patch name="Fl.Key Click" hbank="1" lbank="0" prog="121"/>
+ <Patch name="Brth Nz Menu" hbank="2" lbank="0" prog="121"/>
+ <Patch name="Fl.Breath 1" hbank="3" lbank="0" prog="121"/>
+ <Patch name="Fl.Breath 2" hbank="4" lbank="0" prog="121"/>
+ <Patch name="Fl.Breath 3" hbank="5" lbank="0" prog="121"/>
+ <Patch name="Vox Breath 1" hbank="6" lbank="0" prog="121"/>
+ <Patch name="Vox Breath 2" hbank="7" lbank="0" prog="121"/>
+ <Patch name="Trombone Nz" hbank="8" lbank="0" prog="121"/>
+ <Patch name="Trumpet Nz" hbank="9" lbank="0" prog="121"/>
+
+ <Patch name="Rain" hbank="1" lbank="0" prog="122"/>
+ <Patch name="Thunder" hbank="2" lbank="0" prog="122"/>
+ <Patch name="Wind" hbank="3" lbank="0" prog="122"/>
+ <Patch name="Stream" hbank="4" lbank="0" prog="122"/>
+ <Patch name="Bubble" hbank="5" lbank="0" prog="122"/>
+ <Patch name="Wind 2" hbank="6" lbank="0" prog="122"/>
+ <Patch name="Cricket" hbank="7" lbank="0" prog="122"/>
+ <Patch name="Pink Noise" hbank="16" lbank="0" prog="122"/>
+ <Patch name="White Noise" hbank="17" lbank="0" prog="122"/>
+
+ <Patch name="Dog" hbank="1" lbank="0" prog="123"/>
+ <Patch name="Horse-Gallop" hbank="2" lbank="0" prog="123"/>
+ <Patch name="Bird 2" hbank="3" lbank="0" prog="123"/>
+ <Patch name="Kitty" hbank="4" lbank="0" prog="123"/>
+ <Patch name="Growl" hbank="5" lbank="0" prog="123"/>
+ <Patch name="Growl 2" hbank="6" lbank="0" prog="123"/>
+ <Patch name="Fancy Animal" hbank="7" lbank="0" prog="123"/>
+ <Patch name="Seal" hbank="8" lbank="0" prog="123"/>
+
+ <Patch name="Telephone 2" hbank="1" lbank="0" prog="124"/>
+ <Patch name="DoorCreaking" hbank="2" lbank="0" prog="124"/>
+ <Patch name="Door" hbank="3" lbank="0" prog="124"/>
+ <Patch name="Scratch" hbank="4" lbank="0" prog="124"/>
+ <Patch name="Wind Chimes" hbank="5" lbank="0" prog="124"/>
+ <Patch name="Scratch 2" hbank="7" lbank="0" prog="124"/>
+ <Patch name="ScratchKey" hbank="8" lbank="0" prog="124"/>
+ <Patch name="TapeRewind" hbank="9" lbank="0" prog="124"/>
+ <Patch name="Phono Noise" hbank="10" lbank="0" prog="124"/>
+ <Patch name="MC-500 Beep" hbank="11" lbank="0" prog="124"/>
+ <Patch name="Scratch 3" hbank="12" lbank="0" prog="124"/>
+ <Patch name="Scratch 4" hbank="13" lbank="0" prog="124"/>
+ <Patch name="Scratch 5" hbank="14" lbank="0" prog="124"/>
+ <Patch name="Scratch 6" hbank="15" lbank="0" prog="124"/>
+ <Patch name="Scratch 7" hbank="16" lbank="0" prog="124"/>
+
+ <Patch name="Car-Engine" hbank="1" lbank="0" prog="125"/>
+ <Patch name="Car-Stop" hbank="2" lbank="0" prog="125"/>
+ <Patch name="Car-Pass" hbank="3" lbank="0" prog="125"/>
+ <Patch name="Car-Crash" hbank="4" lbank="0" prog="125"/>
+ <Patch name="Siren" hbank="5" lbank="0" prog="125"/>
+ <Patch name="Train" hbank="6" lbank="0" prog="125"/>
+ <Patch name="Jetplane" hbank="7" lbank="0" prog="125"/>
+ <Patch name="Starship" hbank="8" lbank="0" prog="125"/>
+ <Patch name="Burst Noise" hbank="9" lbank="0" prog="125"/>
+ <Patch name="Calculating" hbank="10" lbank="0" prog="125"/>
+ <Patch name="Perc. Bang" hbank="11" lbank="0" prog="125"/>
+ <Patch name="Burner" hbank="12" lbank="0" prog="125"/>
+ <Patch name="Glass + Glam" hbank="13" lbank="0" prog="125"/>
+ <Patch name="Ice Ring" hbank="14" lbank="0" prog="125"/>
+ <Patch name="Over Blow" hbank="15" lbank="0" prog="125"/>
+ <Patch name="Crack Bottle" hbank="16" lbank="0" prog="125"/>
+ <Patch name="Pour Bottle" hbank="17" lbank="0" prog="125"/>
+ <Patch name="Soda" hbank="18" lbank="0" prog="125"/>
+ <Patch name="Open CD Tray" hbank="19" lbank="0" prog="125"/>
+ <Patch name="Audio Switch" hbank="20" lbank="0" prog="125"/>
+ <Patch name="Key Typing" hbank="21" lbank="0" prog="125"/>
+ <Patch name="SL 1" hbank="22" lbank="0" prog="125"/>
+ <Patch name="SL 2" hbank="23" lbank="0" prog="125"/>
+ <Patch name="Car Engine 2" hbank="24" lbank="0" prog="125"/>
+ <Patch name="Car Horn" hbank="25" lbank="0" prog="125"/>
+ <Patch name="Boeeeen" hbank="26" lbank="0" prog="125"/>
+ <Patch name="R.Crossing" hbank="27" lbank="0" prog="125"/>
+ <Patch name="Compresser" hbank="28" lbank="0" prog="125"/>
+ <Patch name="Sword Boom!" hbank="29" lbank="0" prog="125"/>
+ <Patch name="Sword Cross" hbank="30" lbank="0" prog="125"/>
+ <Patch name="Stab! 1" hbank="31" lbank="0" prog="125"/>
+ <Patch name="Stab! 2" hbank="32" lbank="0" prog="125"/>
+
+ <Patch name="Laughing" hbank="1" lbank="0" prog="126"/>
+ <Patch name="Screaming" hbank="2" lbank="0" prog="126"/>
+ <Patch name="Punch" hbank="3" lbank="0" prog="126"/>
+ <Patch name="Heart Beat" hbank="4" lbank="0" prog="126"/>
+ <Patch name="Footsteps" hbank="5" lbank="0" prog="126"/>
+ <Patch name="Applause 2" hbank="6" lbank="0" prog="126"/>
+ <Patch name="Small Club" hbank="7" lbank="0" prog="126"/>
+ <Patch name="ApplauseWave" hbank="8" lbank="0" prog="126"/>
+ <Patch name="BabyLaughing" hbank="9" lbank="0" prog="126"/>
+ <Patch name="Voice One" hbank="16" lbank="0" prog="126"/>
+ <Patch name="Voice Two" hbank="17" lbank="0" prog="126"/>
+ <Patch name="Voice Three" hbank="18" lbank="0" prog="126"/>
+ <Patch name="Voice Tah" hbank="19" lbank="0" prog="126"/>
+ <Patch name="Voice Whey" hbank="20" lbank="0" prog="126"/>
+ <Patch name="Voice Kikit" hbank="22" lbank="0" prog="126"/>
+ <Patch name="Voice ComeOn" hbank="23" lbank="0" prog="126"/>
+ <Patch name="Voice Aou" hbank="24" lbank="0" prog="126"/>
+ <Patch name="Voice Oou" hbank="25" lbank="0" prog="126"/>
+ <Patch name="Voice Hie" hbank="26" lbank="0" prog="126"/>
+
+ <Patch name="Machine Gun" hbank="1" lbank="0" prog="127"/>
+ <Patch name="Lasergun" hbank="2" lbank="0" prog="127"/>
+ <Patch name="Explosion" hbank="3" lbank="0" prog="127"/>
+ <Patch name="Eruption" hbank="4" lbank="0" prog="127"/>
+ <Patch name="Big Shot" hbank="5" lbank="0" prog="127"/>
+ <Patch name="Explosion 2" hbank="6" lbank="0" prog="127"/>
+
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard 1" hbank="1" lbank="0" prog="0"/>
+ <Patch name="Standard 2" hbank="1" lbank="0" prog="1"/>
+ <Patch name="Standard L/R" hbank="1" lbank="0" prog="2"/>
+ <Patch name="Room" hbank="1" lbank="0" prog="8"/>
+ <Patch name="Hip Hop" hbank="1" lbank="0" prog="9"/>
+ <Patch name="Jungle" hbank="1" lbank="0" prog="10"/>
+ <Patch name="Techno" hbank="1" lbank="0" prog="11"/>
+ <Patch name="Room L/R" hbank="1" lbank="0" prog="12"/>
+ <Patch name="House" hbank="1" lbank="0" prog="12"/>
+ <Patch name="Power" hbank="1" lbank="0" prog="16"/>
+ <Patch name="Electronic" hbank="1" lbank="0" prog="24"/>
+ <Patch name="TR 808" hbank="1" lbank="0" prog="25"/>
+ <Patch name="Dance" hbank="1" lbank="0" prog="26"/>
+ <Patch name="CR-78" hbank="1" lbank="0" prog="27"/>
+ <Patch name="TR 606" hbank="1" lbank="0" prog="28"/>
+ <Patch name="TR 707" hbank="1" lbank="0" prog="29"/>
+ <Patch name="TR 909" hbank="1" lbank="0" prog="30"/>
+ <Patch name="Jazz" hbank="1" lbank="0" prog="32"/>
+ <Patch name="Jazz L/R" hbank="1" lbank="0" prog="33"/>
+ <Patch name="Brush" hbank="1" lbank="0" prog="40"/>
+ <Patch name="Brush 2" hbank="1" lbank="0" prog="41"/>
+ <Patch name="Brush 2 L/R" hbank="1" lbank="0" prog="42"/>
+ <Patch name="Orchestra" hbank="1" lbank="0" prog="48"/>
+ <Patch name="Ethnic" hbank="1" lbank="0" prog="49"/>
+ <Patch name="Kick + Snare" hbank="1" lbank="0" prog="50"/>
+ <Patch name="Kick + Snare 2" hbank="1" lbank="0" prog="51"/>
+ <Patch name="Asia" hbank="1" lbank="0" prog="52"/>
+ <Patch name="Cymbals + Claps" hbank="1" lbank="0" prog="53"/>
+ <Patch name="Gamelan 1" hbank="1" lbank="0" prog="54"/>
+ <Patch name="Gamelan 2" hbank="1" lbank="0" prog="55"/>
+ <Patch name="SFX" hbank="1" lbank="0" prog="56"/>
+ <Patch name="Rhythm FX" hbank="1" lbank="0" prog="57"/>
+ <Patch name="Rhythm FX 2" hbank="1" lbank="0" prog="58"/>
+ <Patch name="Rhythm FX 3" hbank="1" lbank="0" prog="59"/>
+ <Patch name="SFX 2" hbank="1" lbank="0" prog="60"/>
+ <Patch name="Voice" hbank="1" lbank="0" prog="61"/>
+ <Patch name="Cym+Claps 2" hbank="1" lbank="0" prog="62"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" />
+ <Controller name="Pan" type="Control" l="10" />
+ <Controller name="Expression" type="Control" l="11" />
+ <Controller name="GenPurpose1" type="Control" l="16" />
+ <Controller name="GenPurpose2" type="Control" l="17" />
+ <Controller name="GenPurpose3" type="Control" l="18" />
+ <Controller name="GenPurpose4" type="Control" l="19" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="Resonance" type="Control" l="71" />
+ <Controller name="ReleaseTime" type="Control" l="72" />
+ <Controller name="AttackTime" type="Control" l="73" />
+ <Controller name="Cutoff" type="Control" l="74" />
+ <Controller name="DecayTime" type="Control" l="75" />
+ <Controller name="VibratoRate" type="Control" l="76" />
+ <Controller name="VibratoDepth" type="Control" l="77" />
+ <Controller name="VibratoDelay" type="Control" l="78" />
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="ReverbSend" type="Control" l="91" />
+ <Controller name="ChorusSend" type="Control" l="93" />
+ <Controller name="DelaySend" type="Control" l="94" />
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ <!-- NPN's -->
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Roland-XP30.idf b/muse_qt4_evolution/share/instruments/Roland-XP30.idf
new file mode 100644
index 00000000..0b5969ab
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland-XP30.idf
@@ -0,0 +1,1592 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland XP-30">
+ <Init>
+ </Init>
+ <PatchGroup name="GM">
+ <Patch name="Acoustic Grand Piano" hbank="81" lbank="3" prog="0"/>
+ <Patch name="Bright Acoustic Piano" hbank="81" lbank="3" prog="1"/>
+ <Patch name="Electric Grand Piano" hbank="81" lbank="3" prog="2"/>
+ <Patch name="Honky-tonk Piano" hbank="81" lbank="3" prog="3"/>
+ <Patch name="Electric Piano 1" hbank="81" lbank="3" prog="4"/>
+ <Patch name="Electric Piano 2" hbank="81" lbank="3" prog="5"/>
+ <Patch name="Harpsichord" hbank="81" lbank="3" prog="6"/>
+ <Patch name="Clavi" hbank="81" lbank="3" prog="7"/>
+ <Patch name="Celesta" hbank="81" lbank="3" prog="8"/>
+ <Patch name="Glockenspiel" hbank="81" lbank="3" prog="9"/>
+ <Patch name="Music Box" hbank="81" lbank="3" prog="10"/>
+ <Patch name="Vibraphone" hbank="81" lbank="3" prog="11"/>
+ <Patch name="Marimba" hbank="81" lbank="3" prog="12"/>
+ <Patch name="Xylophone" hbank="81" lbank="3" prog="13"/>
+ <Patch name="Tubular Bells" hbank="81" lbank="3" prog="14"/>
+ <Patch name="Dulcimer" hbank="81" lbank="3" prog="15"/>
+ <Patch name="Drawbar Organ" hbank="81" lbank="3" prog="16"/>
+ <Patch name="Percussive Organ" hbank="81" lbank="3" prog="17"/>
+ <Patch name="Rock Organ" hbank="81" lbank="3" prog="18"/>
+ <Patch name="Church Organ" hbank="81" lbank="3" prog="19"/>
+ <Patch name="Reed Organ" hbank="81" lbank="3" prog="20"/>
+ <Patch name="Accordion" hbank="81" lbank="3" prog="21"/>
+ <Patch name="Harmonica" hbank="81" lbank="3" prog="22"/>
+ <Patch name="Tango Accordion" hbank="81" lbank="3" prog="23"/>
+ <Patch name="Acoustic Guitar (nylon)" hbank="81" lbank="3" prog="24"/>
+ <Patch name="Acoustic Guitar (steel)" hbank="81" lbank="3" prog="25"/>
+ <Patch name="Electric Guitar (jazz)" hbank="81" lbank="3" prog="26"/>
+ <Patch name="Electric Guitar (clean)" hbank="81" lbank="3" prog="27"/>
+ <Patch name="Electric Guitar (muted)" hbank="81" lbank="3" prog="28"/>
+ <Patch name="Overdriven Guitar" hbank="81" lbank="3" prog="29"/>
+ <Patch name="Distortion Guitar" hbank="81" lbank="3" prog="30"/>
+ <Patch name="Guitar Harmonics" hbank="81" lbank="3" prog="31"/>
+ <Patch name="Acoustic Bass" hbank="81" lbank="3" prog="32"/>
+ <Patch name="Electric Bass (finger)" hbank="81" lbank="3" prog="33"/>
+ <Patch name="Electric Bass (pick)" hbank="81" lbank="3" prog="34"/>
+ <Patch name="Fretless Bass" hbank="81" lbank="3" prog="35"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="3" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="3" prog="37"/>
+ <Patch name="Synth Bass 1" hbank="81" lbank="3" prog="38"/>
+ <Patch name="Synth Bass 2" hbank="81" lbank="3" prog="39"/>
+ <Patch name="Violin" hbank="81" lbank="3" prog="40"/>
+ <Patch name="Viola" hbank="81" lbank="3" prog="41"/>
+ <Patch name="Cello" hbank="81" lbank="3" prog="42"/>
+ <Patch name="Contrabass" hbank="81" lbank="3" prog="43"/>
+ <Patch name="Tremolo Strings" hbank="81" lbank="3" prog="44"/>
+ <Patch name="Pizzicato Strings" hbank="81" lbank="3" prog="45"/>
+ <Patch name="Orchestral Harp" hbank="81" lbank="3" prog="46"/>
+ <Patch name="Timpani" hbank="81" lbank="3" prog="47"/>
+ <Patch name="String Ensemble 1" hbank="81" lbank="3" prog="48"/>
+ <Patch name="String Ensemble 2" hbank="81" lbank="3" prog="49"/>
+ <Patch name="Synth Strings 1" hbank="81" lbank="3" prog="50"/>
+ <Patch name="Synth Strings 2" hbank="81" lbank="3" prog="51"/>
+ <Patch name="Choir Aahs" hbank="81" lbank="3" prog="52"/>
+ <Patch name="Voice Oohs" hbank="81" lbank="3" prog="53"/>
+ <Patch name="Synth Voice" hbank="81" lbank="3" prog="54"/>
+ <Patch name="Orchestra Hit" hbank="81" lbank="3" prog="55"/>
+ <Patch name="Trumpet" hbank="81" lbank="3" prog="56"/>
+ <Patch name="Trombone" hbank="81" lbank="3" prog="57"/>
+ <Patch name="Tuba" hbank="81" lbank="3" prog="58"/>
+ <Patch name="Muted Trumpet" hbank="81" lbank="3" prog="59"/>
+ <Patch name="French Horn" hbank="81" lbank="3" prog="60"/>
+ <Patch name="Brass Section" hbank="81" lbank="3" prog="61"/>
+ <Patch name="SynthBrass 1" hbank="81" lbank="3" prog="62"/>
+ <Patch name="SynthBrass 2" hbank="81" lbank="3" prog="63"/>
+ <Patch name="Soprano Sax" hbank="81" lbank="3" prog="64"/>
+ <Patch name="Alto Sax" hbank="81" lbank="3" prog="65"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="3" prog="66"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="3" prog="67"/>
+ <Patch name="Oboe" hbank="81" lbank="3" prog="68"/>
+ <Patch name="English Horn" hbank="81" lbank="3" prog="69"/>
+ <Patch name="Bassoon" hbank="81" lbank="3" prog="70"/>
+ <Patch name="Clarinet" hbank="81" lbank="3" prog="71"/>
+ <Patch name="Piccolo" hbank="81" lbank="3" prog="72"/>
+ <Patch name="Flute" hbank="81" lbank="3" prog="73"/>
+ <Patch name="Recorder" hbank="81" lbank="3" prog="74"/>
+ <Patch name="Pan Flute" hbank="81" lbank="3" prog="75"/>
+ <Patch name="Blown Bottle" hbank="81" lbank="3" prog="76"/>
+ <Patch name="Shakuhachi" hbank="81" lbank="3" prog="77"/>
+ <Patch name="Whistle" hbank="81" lbank="3" prog="78"/>
+ <Patch name="Ocarina" hbank="81" lbank="3" prog="79"/>
+ <Patch name="Lead 1 (square)" hbank="81" lbank="3" prog="80"/>
+ <Patch name="Lead 2 (sawtooth)" hbank="81" lbank="3" prog="81"/>
+ <Patch name="Lead 3 (calliope)" hbank="81" lbank="3" prog="82"/>
+ <Patch name="Lead 4 (chiff)" hbank="81" lbank="3" prog="83"/>
+ <Patch name="Lead 5 (charang)" hbank="81" lbank="3" prog="84"/>
+ <Patch name="Lead 6 (voice)" hbank="81" lbank="3" prog="85"/>
+ <Patch name="Lead 7 (fifths)" hbank="81" lbank="3" prog="86"/>
+ <Patch name="Lead 8 (bass + lead)" hbank="81" lbank="3" prog="87"/>
+ <Patch name="Pad 1 (new age)" hbank="81" lbank="3" prog="88"/>
+ <Patch name="Pad 2 (warm)" hbank="81" lbank="3" prog="89"/>
+ <Patch name="Pad 3 (polysynth)" hbank="81" lbank="3" prog="90"/>
+ <Patch name="Pad 4 (choir)" hbank="81" lbank="3" prog="91"/>
+ <Patch name="Pad 5 (bowed)" hbank="81" lbank="3" prog="92"/>
+ <Patch name="Pad 6 (metallic)" hbank="81" lbank="3" prog="93"/>
+ <Patch name="Pad 7 (halo)" hbank="81" lbank="3" prog="94"/>
+ <Patch name="Pad 8 (sweep)" hbank="81" lbank="3" prog="95"/>
+ <Patch name="FX 1 (rain)" hbank="81" lbank="3" prog="96"/>
+ <Patch name="FX 2 (Soundtrack)" hbank="81" lbank="3" prog="97"/>
+ <Patch name="FX 3 (crystal)" hbank="81" lbank="3" prog="98"/>
+ <Patch name="FX 4 (atmosphere)" hbank="81" lbank="3" prog="99"/>
+ <Patch name="FX 5 (brightness)" hbank="81" lbank="3" prog="100"/>
+ <Patch name="FX 6 (goblins)" hbank="81" lbank="3" prog="101"/>
+ <Patch name="FX 7 (echoes)" hbank="81" lbank="3" prog="102"/>
+ <Patch name="FX 8 (sci-fi)" hbank="81" lbank="3" prog="103"/>
+ <Patch name="Sitar" hbank="81" lbank="3" prog="104"/>
+ <Patch name="Banjo" hbank="81" lbank="3" prog="105"/>
+ <Patch name="Shamisen" hbank="81" lbank="3" prog="106"/>
+ <Patch name="Koto" hbank="81" lbank="3" prog="107"/>
+ <Patch name="Kalimba" hbank="81" lbank="3" prog="108"/>
+ <Patch name="Bag pipe" hbank="81" lbank="3" prog="109"/>
+ <Patch name="Fiddle" hbank="81" lbank="3" prog="110"/>
+ <Patch name="Shanai" hbank="81" lbank="3" prog="111"/>
+ <Patch name="Tinkle Bell" hbank="81" lbank="3" prog="112"/>
+ <Patch name="Agogo" hbank="81" lbank="3" prog="113"/>
+ <Patch name="Steel Drums" hbank="81" lbank="3" prog="114"/>
+ <Patch name="Woodblock" hbank="81" lbank="3" prog="115"/>
+ <Patch name="Taiko Drum" hbank="81" lbank="3" prog="116"/>
+ <Patch name="Melodic Tom" hbank="81" lbank="3" prog="117"/>
+ <Patch name="Synth Drum" hbank="81" lbank="3" prog="118"/>
+ <Patch name="Reverse Cymbal" hbank="81" lbank="3" prog="119"/>
+ <Patch name="Guitar Fret Noise" hbank="81" lbank="3" prog="120"/>
+ <Patch name="Breath Noise" hbank="81" lbank="3" prog="121"/>
+ <Patch name="Seashore" hbank="81" lbank="3" prog="122"/>
+ <Patch name="Bird Tweet" hbank="81" lbank="3" prog="123"/>
+ <Patch name="Telephone Ring" hbank="81" lbank="3" prog="124"/>
+ <Patch name="Helicopter" hbank="81" lbank="3" prog="125"/>
+ <Patch name="Applause" hbank="81" lbank="3" prog="126"/>
+ <Patch name="Gunshot" hbank="81" lbank="3" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="User">
+ <Patch name="Temple of XP" hbank="80" lbank="0" prog="0"/>
+ <Patch name="Power Split" hbank="80" lbank="0" prog="1"/>
+ <Patch name="Symphonique 2" hbank="80" lbank="0" prog="2"/>
+ <Patch name="Robot Voice" hbank="80" lbank="0" prog="3"/>
+ <Patch name="St. Concert" hbank="80" lbank="0" prog="4"/>
+ <Patch name="ViennaStrgs 2" hbank="80" lbank="0" prog="5"/>
+ <Patch name="R&amp;R Brass" hbank="80" lbank="0" prog="6"/>
+ <Patch name="Disto Stack" hbank="80" lbank="0" prog="7"/>
+ <Patch name="Tone Wh. Solo" hbank="80" lbank="0" prog="8"/>
+ <Patch name="Combing Slow" hbank="80" lbank="0" prog="9"/>
+ <Patch name="SessionNyln 2" hbank="80" lbank="0" prog="10"/>
+ <Patch name="Celestial 2" hbank="80" lbank="0" prog="11"/>
+ <Patch name="Poly Brs" hbank="80" lbank="0" prog="12"/>
+ <Patch name="DanceStack 1" hbank="80" lbank="0" prog="13"/>
+ <Patch name="303 Ow Bass" hbank="80" lbank="0" prog="14"/>
+ <Patch name="Flying Waltz" hbank="80" lbank="0" prog="15"/>
+ <Patch name="Silky Way" hbank="80" lbank="0" prog="16"/>
+ <Patch name="Simply June" hbank="80" lbank="0" prog="17"/>
+ <Patch name="Solo Vln 1 /" hbank="80" lbank="0" prog="18"/>
+ <Patch name="Super Tenor" hbank="80" lbank="0" prog="19"/>
+ <Patch name="Metal Solo" hbank="80" lbank="0" prog="20"/>
+ <Patch name="Creator" hbank="80" lbank="0" prog="21"/>
+ <Patch name="Amsterdamer" hbank="80" lbank="0" prog="22"/>
+ <Patch name="echno Pizz" hbank="80" lbank="0" prog="23"/>
+ <Patch name="SA Rhodes 3" hbank="80" lbank="0" prog="24"/>
+ <Patch name="Dim Hit 1" hbank="80" lbank="0" prog="25"/>
+ <Patch name="Pan Pipes" hbank="80" lbank="0" prog="26"/>
+ <Patch name="JP-8 Str 1" hbank="80" lbank="0" prog="27"/>
+ <Patch name="Pretty Bells" hbank="80" lbank="0" prog="28"/>
+ <Patch name="Aurora" hbank="80" lbank="0" prog="29"/>
+ <Patch name="Breathy Humz" hbank="80" lbank="0" prog="30"/>
+ <Patch name="Full Orch. 2" hbank="80" lbank="0" prog="31"/>
+ <Patch name="Clean Tele" hbank="80" lbank="0" prog="32"/>
+ <Patch name="Dunes" hbank="80" lbank="0" prog="33"/>
+ <Patch name="Cyber-Trance" hbank="80" lbank="0" prog="34"/>
+ <Patch name="RiversOfTime" hbank="80" lbank="0" prog="35"/>
+ <Patch name="F. Hrn Sect 5/" hbank="80" lbank="0" prog="36"/>
+ <Patch name="DearmVoices 2" hbank="80" lbank="0" prog="37"/>
+ <Patch name="HeavenlyPad" hbank="80" lbank="0" prog="38"/>
+ <Patch name="Sop. Sax mf" hbank="80" lbank="0" prog="39"/>
+ <Patch name="Sweep Clav 2" hbank="80" lbank="0" prog="40"/>
+ <Patch name="Cold JX" hbank="80" lbank="0" prog="41"/>
+ <Patch name="Solo Vc 1 /" hbank="80" lbank="0" prog="42"/>
+ <Patch name="RichStrings 2" hbank="80" lbank="0" prog="43"/>
+ <Patch name="Techno Dream" hbank="80" lbank="0" prog="44"/>
+ <Patch name="StateXLChord" hbank="80" lbank="0" prog="45"/>
+ <Patch name="Delicate EP" hbank="80" lbank="0" prog="46"/>
+ <Patch name="Bassic Needs" hbank="80" lbank="0" prog="47"/>
+ <Patch name="Perky B" hbank="80" lbank="0" prog="48"/>
+ <Patch name="SquareLead 2" hbank="80" lbank="0" prog="49"/>
+ <Patch name="Earth Blow" hbank="80" lbank="0" prog="50"/>
+ <Patch name="BassMarimba 1" hbank="80" lbank="0" prog="51"/>
+ <Patch name="Morning Lite" hbank="80" lbank="0" prog="52"/>
+ <Patch name="Raggatronic" hbank="80" lbank="0" prog="53"/>
+ <Patch name="Brass ff 1" hbank="80" lbank="0" prog="54"/>
+ <Patch name="Acc. de Paris" hbank="80" lbank="0" prog="55"/>
+ <Patch name="Oboe 1" hbank="80" lbank="0" prog="56"/>
+ <Patch name="Velo Power" hbank="80" lbank="0" prog="57"/>
+ <Patch name="Vintage Call" hbank="80" lbank="0" prog="58"/>
+ <Patch name="Steel Away" hbank="80" lbank="0" prog="59"/>
+ <Patch name="Spectrum Mod" hbank="80" lbank="0" prog="60"/>
+ <Patch name="Raverborg" hbank="80" lbank="0" prog="61"/>
+ <Patch name="Poly Saws" hbank="80" lbank="0" prog="62"/>
+ <Patch name="Adrenaline" hbank="80" lbank="0" prog="63"/>
+ <Patch name="Heirborne" hbank="80" lbank="0" prog="64"/>
+ <Patch name="Trumpet" hbank="80" lbank="0" prog="65"/>
+ <Patch name="Glistening" hbank="80" lbank="0" prog="66"/>
+ <Patch name="Banded Jupe" hbank="80" lbank="0" prog="67"/>
+ <Patch name="Singing' Mini" hbank="80" lbank="0" prog="68"/>
+ <Patch name="Chamber Ens 2" hbank="80" lbank="0" prog="69"/>
+ <Patch name="DanceStack 5" hbank="80" lbank="0" prog="70"/>
+ <Patch name="SA Rhodes 4" hbank="80" lbank="0" prog="71"/>
+ <Patch name="Breathy Brs" hbank="80" lbank="0" prog="72"/>
+ <Patch name="Atmos Harp" hbank="80" lbank="0" prog="73"/>
+ <Patch name="303 Brass" hbank="80" lbank="0" prog="74"/>
+ <Patch name="Flute" hbank="80" lbank="0" prog="75"/>
+ <Patch name="Perc Hit 2 /" hbank="80" lbank="0" prog="76"/>
+ <Patch name="Oldies Organ" hbank="80" lbank="0" prog="77"/>
+ <Patch name="Dulcimer" hbank="80" lbank="0" prog="78"/>
+ <Patch name="Warmer Pad 2" hbank="80" lbank="0" prog="79"/>
+ <Patch name="ARPsychea" hbank="80" lbank="0" prog="80"/>
+ <Patch name="Choir 1" hbank="80" lbank="0" prog="81"/>
+ <Patch name="Agitato Str 2" hbank="80" lbank="0" prog="82"/>
+ <Patch name="Pure Tibet" hbank="80" lbank="0" prog="83"/>
+ <Patch name="Flugelhorn 1" hbank="80" lbank="0" prog="84"/>
+ <Patch name="D-50 Stack" hbank="80" lbank="0" prog="85"/>
+ <Patch name="Noiz Mania" hbank="80" lbank="0" prog="86"/>
+ <Patch name="Slap Bass 2" hbank="80" lbank="0" prog="87"/>
+ <Patch name="Amazing Echo" hbank="80" lbank="0" prog="88"/>
+ <Patch name="Moving Glass" hbank="80" lbank="0" prog="89"/>
+ <Patch name="BluesHarp" hbank="80" lbank="0" prog="90"/>
+ <Patch name="Tria Bells" hbank="80" lbank="0" prog="91"/>
+ <Patch name="Dirty Organ 2" hbank="80" lbank="0" prog="92"/>
+ <Patch name="Dawn 2 Dusk" hbank="80" lbank="0" prog="93"/>
+ <Patch name="Just Lovely" hbank="80" lbank="0" prog="94"/>
+ <Patch name="SquareKeys 2" hbank="80" lbank="0" prog="95"/>
+ <Patch name="Natural Vlns" hbank="80" lbank="0" prog="96"/>
+ <Patch name="Arasian Morn" hbank="80" lbank="0" prog="97"/>
+ <Patch name="Euro-Dance 2" hbank="80" lbank="0" prog="98"/>
+ <Patch name="5th Pad" hbank="80" lbank="0" prog="99"/>
+ <Patch name="Liquid Sky" hbank="80" lbank="0" prog="100"/>
+ <Patch name="Sci-Fi Bells" hbank="80" lbank="0" prog="101"/>
+ <Patch name="Nomad Perc" hbank="80" lbank="0" prog="102"/>
+ <Patch name="Orn. Recorder" hbank="80" lbank="0" prog="103"/>
+ <Patch name="FXM Saw Lead" hbank="80" lbank="0" prog="104"/>
+ <Patch name="Atlantis 2" hbank="80" lbank="0" prog="105"/>
+ <Patch name="Taj Mahal" hbank="80" lbank="0" prog="106"/>
+ <Patch name="X-Hale" hbank="80" lbank="0" prog="107"/>
+ <Patch name="Stacc. Heaven" hbank="80" lbank="0" prog="108"/>
+ <Patch name="Altamira" hbank="80" lbank="0" prog="109"/>
+ <Patch name="Hit House" hbank="80" lbank="0" prog="110"/>
+ <Patch name="Solo F. Horn 1" hbank="80" lbank="0" prog="111"/>
+ <Patch name="Celesta 1" hbank="80" lbank="0" prog="112"/>
+ <Patch name="ORBit Pad" hbank="80" lbank="0" prog="113"/>
+ <Patch name="SessionBrass" hbank="80" lbank="0" prog="114"/>
+ <Patch name="Sugar Bell" hbank="80" lbank="0" prog="115"/>
+ <Patch name="ChristmasFlt" hbank="80" lbank="0" prog="116"/>
+ <Patch name="Strobe Mode" hbank="80" lbank="0" prog="117"/>
+ <Patch name="Cave" hbank="80" lbank="0" prog="118"/>
+ <Patch name="TenorExprss 2" hbank="80" lbank="0" prog="119"/>
+ <Patch name="Impact" hbank="80" lbank="0" prog="120"/>
+ <Patch name="X-Tronic Jam" hbank="80" lbank="0" prog="121"/>
+ <Patch name="WarmViolins 2" hbank="80" lbank="0" prog="122"/>
+ <Patch name="Rain Forest" hbank="80" lbank="0" prog="123"/>
+ <Patch name="Brass Ens 4" hbank="80" lbank="0" prog="124"/>
+ <Patch name="Perelandra" hbank="80" lbank="0" prog="125"/>
+ <Patch name="Teknoperator" hbank="80" lbank="0" prog="126"/>
+ <Patch name="Crowds" hbank="80" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="PR-A">
+ <Patch name="64 Voice Piano" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Bright Piano" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Classique" hbank="81" lbank="0" prog="2"/>
+ <Patch name="Nice Piano" hbank="81" lbank="0" prog="3"/>
+ <Patch name="Piano Thang" hbank="81" lbank="0" prog="4"/>
+ <Patch name="Power Grand" hbank="81" lbank="0" prog="5"/>
+ <Patch name="House Piano" hbank="81" lbank="0" prog="6"/>
+ <Patch name="Electric Grand" hbank="81" lbank="0" prog="7"/>
+ <Patch name="MIDIed Grand" hbank="81" lbank="0" prog="8"/>
+ <Patch name="Piano Blend" hbank="81" lbank="0" prog="9"/>
+ <Patch name="West Coast" hbank="81" lbank="0" prog="10"/>
+ <Patch name="Piano Strings" hbank="81" lbank="0" prog="11"/>
+ <Patch name="BS/Pno+Brs" hbank="81" lbank="0" prog="12"/>
+ <Patch name="Waterhodes" hbank="81" lbank="0" prog="13"/>
+ <Patch name="S.A.E.P." hbank="81" lbank="0" prog="14"/>
+ <Patch name="SA Rhodes 1" hbank="81" lbank="0" prog="15"/>
+ <Patch name="SA Rhodes 2" hbank="81" lbank="0" prog="16"/>
+ <Patch name="Stiky Rhodes" hbank="81" lbank="0" prog="17"/>
+ <Patch name="Dig Rhodes" hbank="81" lbank="0" prog="18"/>
+ <Patch name="Nylon EPiano" hbank="81" lbank="0" prog="19"/>
+ <Patch name="Nylon Rhodes" hbank="81" lbank="0" prog="20"/>
+ <Patch name="Rhodes Mix" hbank="81" lbank="0" prog="21"/>
+ <Patch name="PsychoRhodes" hbank="81" lbank="0" prog="22"/>
+ <Patch name="Tremo Rhodes" hbank="81" lbank="0" prog="23"/>
+ <Patch name="MK-80 Rhodes" hbank="81" lbank="0" prog="24"/>
+ <Patch name="MK-80 Phaser" hbank="81" lbank="0" prog="25"/>
+ <Patch name="Delicate EP" hbank="81" lbank="0" prog="26"/>
+ <Patch name="Octa Rhodes 1" hbank="81" lbank="0" prog="27"/>
+ <Patch name="Octa Rhodes 2" hbank="81" lbank="0" prog="28"/>
+ <Patch name="JV Rhodes+" hbank="81" lbank="0" prog="29"/>
+ <Patch name="EP+Med Pad" hbank="81" lbank="0" prog="30"/>
+ <Patch name="Mr. Mellow" hbank="81" lbank="0" prog="31"/>
+ <Patch name="Comp Clav" hbank="81" lbank="0" prog="32"/>
+ <Patch name="Klavinet" hbank="81" lbank="0" prog="33"/>
+ <Patch name="Winger Clav" hbank="81" lbank="0" prog="34"/>
+ <Patch name="Phaze Clav 1" hbank="81" lbank="0" prog="35"/>
+ <Patch name="Phaze Clav 2" hbank="81" lbank="0" prog="36"/>
+ <Patch name="Phuzz Clav" hbank="81" lbank="0" prog="37"/>
+ <Patch name="Chorus Clav" hbank="81" lbank="0" prog="38"/>
+ <Patch name="Claviduck" hbank="81" lbank="0" prog="39"/>
+ <Patch name="Velo-Rez Clv" hbank="81" lbank="0" prog="40"/>
+ <Patch name="Clavicembalo" hbank="81" lbank="0" prog="41"/>
+ <Patch name="Analogue 1" hbank="81" lbank="0" prog="42"/>
+ <Patch name="Analogue 2" hbank="81" lbank="0" prog="43"/>
+ <Patch name="Metal Clav" hbank="81" lbank="0" prog="44"/>
+ <Patch name="Full Stops" hbank="81" lbank="0" prog="45"/>
+ <Patch name="Ballad B" hbank="81" lbank="0" prog="46"/>
+ <Patch name="Mellow Bars" hbank="81" lbank="0" prog="47"/>
+ <Patch name="AugerMentive" hbank="81" lbank="0" prog="48"/>
+ <Patch name="Perky B" hbank="81" lbank="0" prog="49"/>
+ <Patch name="The Big Spin" hbank="81" lbank="0" prog="50"/>
+ <Patch name="Gospel Spin" hbank="81" lbank="0" prog="51"/>
+ <Patch name="Roller Spin" hbank="81" lbank="0" prog="52"/>
+ <Patch name="Rocker Spin" hbank="81" lbank="0" prog="53"/>
+ <Patch name="Tone Wh.Solo" hbank="81" lbank="0" prog="54"/>
+ <Patch name="Purple Spin" hbank="81" lbank="0" prog="55"/>
+ <Patch name="60's Lead organ" hbank="81" lbank="0" prog="56"/>
+ <Patch name="Assalt Organ" hbank="81" lbank="0" prog="57"/>
+ <Patch name="D-50 Organ" hbank="81" lbank="0" prog="58"/>
+ <Patch name="Cathedral" hbank="81" lbank="0" prog="59"/>
+ <Patch name="Church Pipes" hbank="81" lbank="0" prog="60"/>
+ <Patch name="Poly Keys" hbank="81" lbank="0" prog="61"/>
+ <Patch name="Poly Saws" hbank="81" lbank="0" prog="62"/>
+ <Patch name="Poly Pulse" hbank="81" lbank="0" prog="63"/>
+ <Patch name="Dual Profs" hbank="81" lbank="0" prog="64"/>
+ <Patch name="Saw Mass" hbank="81" lbank="0" prog="65"/>
+ <Patch name="Poly Split" hbank="81" lbank="0" prog="66"/>
+ <Patch name="Poly Brass" hbank="81" lbank="0" prog="67"/>
+ <Patch name="Stackoid" hbank="81" lbank="0" prog="68"/>
+ <Patch name="Poly Rock" hbank="81" lbank="0" prog="69"/>
+ <Patch name="D-50 Stack" hbank="81" lbank="0" prog="70"/>
+ <Patch name="Fantasia JV" hbank="81" lbank="0" prog="71"/>
+ <Patch name="Jimmee Dee" hbank="81" lbank="0" prog="72"/>
+ <Patch name="Heavenals" hbank="81" lbank="0" prog="73"/>
+ <Patch name="Mallet Pad" hbank="81" lbank="0" prog="74"/>
+ <Patch name="Huff n Stuff" hbank="81" lbank="0" prog="75"/>
+ <Patch name="Puff 1080" hbank="81" lbank="0" prog="76"/>
+ <Patch name="BellVox 1080" hbank="81" lbank="0" prog="77"/>
+ <Patch name="Fantasy Vox" hbank="81" lbank="0" prog="78"/>
+ <Patch name="Square Keys" hbank="81" lbank="0" prog="79"/>
+ <Patch name="Childlike" hbank="81" lbank="0" prog="80"/>
+ <Patch name="Music Box" hbank="81" lbank="0" prog="81"/>
+ <Patch name="Toy Box" hbank="81" lbank="0" prog="82"/>
+ <Patch name="Wave Bells" hbank="81" lbank="0" prog="83"/>
+ <Patch name="Tria Bells" hbank="81" lbank="0" prog="84"/>
+ <Patch name="Beauty Bells" hbank="81" lbank="0" prog="85"/>
+ <Patch name="Music Bells" hbank="81" lbank="0" prog="86"/>
+ <Patch name="Pretty Bells" hbank="81" lbank="0" prog="87"/>
+ <Patch name="Pulse key" hbank="81" lbank="0" prog="88"/>
+ <Patch name="Wide Tubular" hbank="81" lbank="0" prog="89"/>
+ <Patch name="AmbianeVIBE" hbank="81" lbank="0" prog="90"/>
+ <Patch name="Warm Vibes" hbank="81" lbank="0" prog="91"/>
+ <Patch name="Dyna Marimba" hbank="81" lbank="0" prog="92"/>
+ <Patch name="Nomad Perc" hbank="81" lbank="0" prog="94"/>
+ <Patch name="Ethno Metals" hbank="81" lbank="0" prog="95"/>
+ <Patch name="Islands Mlt" hbank="81" lbank="0" prog="96"/>
+ <Patch name="Steelin Keys" hbank="81" lbank="0" prog="97"/>
+ <Patch name="Steel Drums" hbank="81" lbank="0" prog="98"/>
+ <Patch name="Voicey Pizz" hbank="81" lbank="0" prog="99"/>
+ <Patch name="Sitar" hbank="81" lbank="0" prog="100"/>
+ <Patch name="Drone Split" hbank="81" lbank="0" prog="101"/>
+ <Patch name="Ethnopluck" hbank="81" lbank="0" prog="102"/>
+ <Patch name="Jamison" hbank="81" lbank="0" prog="103"/>
+ <Patch name="Dulcimer" hbank="81" lbank="0" prog="104"/>
+ <Patch name="East Melody" hbank="81" lbank="0" prog="105"/>
+ <Patch name="Mandolin Trem" hbank="81" lbank="0" prog="106"/>
+ <Patch name="Nylon Guitar" hbank="81" lbank="0" prog="107"/>
+ <Patch name="Gtr Strings" hbank="81" lbank="0" prog="108"/>
+ <Patch name="Steel Away" hbank="81" lbank="0" prog="109"/>
+ <Patch name="Heavenly Gtr" hbank="81" lbank="0" prog="110"/>
+ <Patch name="12str Gtr 1" hbank="81" lbank="0" prog="111"/>
+ <Patch name="12str Gtr 2" hbank="81" lbank="0" prog="112"/>
+ <Patch name="Jz Gtr Hall" hbank="81" lbank="0" prog="113"/>
+ <Patch name="LetterFrmPat" hbank="81" lbank="0" prog="114"/>
+ <Patch name="Jazz Scat" hbank="81" lbank="0" prog="115"/>
+ <Patch name="Lounge Gig" hbank="81" lbank="0" prog="116"/>
+ <Patch name="JC Strat" hbank="81" lbank="0" prog="117"/>
+ <Patch name="Twin STrats" hbank="81" lbank="0" prog="118"/>
+ <Patch name="JV Strat" hbank="81" lbank="0" prog="119"/>
+ <Patch name="Syn STrat" hbank="81" lbank="0" prog="120"/>
+ <Patch name="Rotary Gtr" hbank="81" lbank="0" prog="121"/>
+ <Patch name="Muted Gtr" hbank="81" lbank="0" prog="122"/>
+ <Patch name="SwitchOnMute" hbank="81" lbank="0" prog="123"/>
+ <Patch name="Power Trip" hbank="81" lbank="0" prog="124"/>
+ <Patch name="Crunch Split" hbank="81" lbank="0" prog="125"/>
+ <Patch name="Rezodrive" hbank="81" lbank="0" prog="126"/>
+ <Patch name="RockYurSocks" hbank="81" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="PR-B">
+ <Patch name="Dist Gtr 1" hbank="81" lbank="1" prog="0"/>
+ <Patch name="Dist Gtr 2" hbank="81" lbank="1" prog="1"/>
+ <Patch name="R&amp;R Chunk" hbank="81" lbank="1" prog="2"/>
+ <Patch name="Phripphuzz" hbank="81" lbank="1" prog="3"/>
+ <Patch name="Grungeroni" hbank="81" lbank="1" prog="4"/>
+ <Patch name="Black Widow" hbank="81" lbank="1" prog="5"/>
+ <Patch name="Velo-Wah Gtr" hbank="81" lbank="1" prog="6"/>
+ <Patch name="Mod-Wah Gtr" hbank="81" lbank="1" prog="7"/>
+ <Patch name="Pick Bass" hbank="81" lbank="1" prog="8"/>
+ <Patch name="Hip Bass" hbank="81" lbank="1" prog="9"/>
+ <Patch name="Perc.bass" hbank="81" lbank="1" prog="10"/>
+ <Patch name="Homey Bass" hbank="81" lbank="1" prog="11"/>
+ <Patch name="Finger bass" hbank="81" lbank="1" prog="12"/>
+ <Patch name="Nylon Bass" hbank="81" lbank="1" prog="13"/>
+ <Patch name="Ac. Upright" hbank="81" lbank="1" prog="14"/>
+ <Patch name="Wet Fretls" hbank="81" lbank="1" prog="15"/>
+ <Patch name="Fretls Dry" hbank="81" lbank="1" prog="16"/>
+ <Patch name="Slap Bass 1" hbank="81" lbank="1" prog="17"/>
+ <Patch name="Slap Bass 2" hbank="81" lbank="1" prog="18"/>
+ <Patch name="Slap Bass 3" hbank="81" lbank="1" prog="19"/>
+ <Patch name="Slap Bass 4" hbank="81" lbank="1" prog="20"/>
+ <Patch name="4 Pole Bass" hbank="81" lbank="1" prog="21"/>
+ <Patch name="Tick bass" hbank="81" lbank="1" prog="22"/>
+ <Patch name="House Bass" hbank="81" lbank="1" prog="23"/>
+ <Patch name="Mondo Bass" hbank="81" lbank="1" prog="24"/>
+ <Patch name="Clk AnalogBs" hbank="81" lbank="1" prog="25"/>
+ <Patch name="bass In Face" hbank="81" lbank="1" prog="26"/>
+ <Patch name="101 Bass" hbank="81" lbank="1" prog="27"/>
+ <Patch name="Noiz Bass" hbank="81" lbank="1" prog="28"/>
+ <Patch name="Super Jup Bass" hbank="81" lbank="1" prog="29"/>
+ <Patch name="Occitan Bass" hbank="81" lbank="1" prog="30"/>
+ <Patch name="Hugo Bass" hbank="81" lbank="1" prog="31"/>
+ <Patch name="Multi bass" hbank="81" lbank="1" prog="32"/>
+ <Patch name="Moist Bass" hbank="81" lbank="1" prog="33"/>
+ <Patch name="Britelow Bass" hbank="81" lbank="1" prog="34"/>
+ <Patch name="Untamed Bass" hbank="81" lbank="1" prog="35"/>
+ <Patch name="Rubber Bass" hbank="81" lbank="1" prog="36"/>
+ <Patch name="Stereoww Bs" hbank="81" lbank="1" prog="37"/>
+ <Patch name="Wonder Bass" hbank="81" lbank="1" prog="38"/>
+ <Patch name="Deep Bass" hbank="81" lbank="1" prog="39"/>
+ <Patch name="Super JX Bs" hbank="81" lbank="1" prog="40"/>
+ <Patch name="W&lt;RED&gt;-bass" hbank="81" lbank="1" prog="41"/>
+ <Patch name="HI-Ring Bass" hbank="81" lbank="1" prog="42"/>
+ <Patch name="Euro bass" hbank="81" lbank="1" prog="43"/>
+ <Patch name="Sinusoidrave" hbank="81" lbank="1" prog="44"/>
+ <Patch name="Alternative" hbank="81" lbank="1" prog="45"/>
+ <Patch name="Acid Line" hbank="81" lbank="1" prog="46"/>
+ <Patch name="Auto TB-303" hbank="81" lbank="1" prog="47"/>
+ <Patch name="Hihat Tekno" hbank="81" lbank="1" prog="48"/>
+ <Patch name="Velo Tekno 1" hbank="81" lbank="1" prog="49"/>
+ <Patch name="Raggatronic" hbank="81" lbank="1" prog="50"/>
+ <Patch name="Blade Racer" hbank="81" lbank="1" prog="51"/>
+ <Patch name="S&amp;H Pad" hbank="81" lbank="1" prog="52"/>
+ <Patch name="Syncrosonix" hbank="81" lbank="1" prog="53"/>
+ <Patch name="Fool Again" hbank="81" lbank="1" prog="54"/>
+ <Patch name="Alive" hbank="81" lbank="1" prog="55"/>
+ <Patch name="Velo Teckno 2" hbank="81" lbank="1" prog="56"/>
+ <Patch name="Rezoid" hbank="81" lbank="1" prog="57"/>
+ <Patch name="RaverBorg" hbank="81" lbank="1" prog="58"/>
+ <Patch name="Blow Hit" hbank="81" lbank="1" prog="59"/>
+ <Patch name="Hammer Bell" hbank="81" lbank="1" prog="60"/>
+ <Patch name="Seq Mallet" hbank="81" lbank="1" prog="61"/>
+ <Patch name="Intentions" hbank="81" lbank="1" prog="62"/>
+ <Patch name="Pick It" hbank="81" lbank="1" prog="63"/>
+ <Patch name="Analog Seq" hbank="81" lbank="1" prog="64"/>
+ <Patch name="Impact Vox" hbank="81" lbank="1" prog="65"/>
+ <Patch name="TecknoSoloVox" hbank="81" lbank="1" prog="66"/>
+ <Patch name="X-Mod Man" hbank="81" lbank="1" prog="67"/>
+ <Patch name="Paz &lt;==&gt; Zap" hbank="81" lbank="1" prog="68"/>
+ <Patch name="4 Hits 4 You" hbank="81" lbank="1" prog="69"/>
+ <Patch name="Impact" hbank="81" lbank="1" prog="70"/>
+ <Patch name="Phase Hit" hbank="81" lbank="1" prog="71"/>
+ <Patch name="Tekno Hit 1" hbank="81" lbank="1" prog="72"/>
+ <Patch name="Tekno Hit 2" hbank="81" lbank="1" prog="73"/>
+ <Patch name="Tekno Hit 3" hbank="81" lbank="1" prog="74"/>
+ <Patch name="Reverse Hit" hbank="81" lbank="1" prog="75"/>
+ <Patch name="Square Lead 1" hbank="81" lbank="1" prog="76"/>
+ <Patch name="Square Lead 2" hbank="81" lbank="1" prog="77"/>
+ <Patch name="You and Luck" hbank="81" lbank="1" prog="78"/>
+ <Patch name="Belly Lead" hbank="81" lbank="1" prog="79"/>
+ <Patch name="WhistleinAtom" hbank="81" lbank="1" prog="80"/>
+ <Patch name="Edye Boost" hbank="81" lbank="1" prog="81"/>
+ <Patch name="MG Solo" hbank="81" lbank="1" prog="82"/>
+ <Patch name="FXM Saw Lead" hbank="81" lbank="1" prog="83"/>
+ <Patch name="Sawteeth" hbank="81" lbank="1" prog="84"/>
+ <Patch name="Smoothe" hbank="81" lbank="1" prog="85"/>
+ <Patch name="MG Lead" hbank="81" lbank="1" prog="86"/>
+ <Patch name="MG Interval" hbank="81" lbank="1" prog="87"/>
+ <Patch name="Pulse Lead 1" hbank="81" lbank="1" prog="88"/>
+ <Patch name="Pulse Lead 2" hbank="81" lbank="1" prog="89"/>
+ <Patch name="Little Devil" hbank="81" lbank="1" prog="90"/>
+ <Patch name="Load SynLead" hbank="81" lbank="1" prog="91"/>
+ <Patch name="Analog Lead" hbank="81" lbank="1" prog="92"/>
+ <Patch name="5th Lead" hbank="81" lbank="1" prog="93"/>
+ <Patch name="Flute" hbank="81" lbank="1" prog="94"/>
+ <Patch name="Piccolo" hbank="81" lbank="1" prog="95"/>
+ <Patch name="VOX Flute" hbank="81" lbank="1" prog="96"/>
+ <Patch name="Air Lead" hbank="81" lbank="1" prog="97"/>
+ <Patch name="Pan Pipes" hbank="81" lbank="1" prog="98"/>
+ <Patch name="Airplaaane" hbank="81" lbank="1" prog="99"/>
+ <Patch name="Taj Mahal" hbank="81" lbank="1" prog="100"/>
+ <Patch name="Raya Shaku" hbank="81" lbank="1" prog="101"/>
+ <Patch name="Oboe mf" hbank="81" lbank="1" prog="102"/>
+ <Patch name="Oboe Express" hbank="81" lbank="1" prog="103"/>
+ <Patch name="Clarinet mp" hbank="81" lbank="1" prog="104"/>
+ <Patch name="ClariExpress" hbank="81" lbank="1" prog="105"/>
+ <Patch name="Mitzva Split" hbank="81" lbank="1" prog="106"/>
+ <Patch name="ChamberWinds" hbank="81" lbank="1" prog="107"/>
+ <Patch name="Chamber Woods" hbank="81" lbank="1" prog="108"/>
+ <Patch name="Film Orch" hbank="81" lbank="1" prog="109"/>
+ <Patch name="Sop.Sax mf" hbank="81" lbank="1" prog="110"/>
+ <Patch name="Alto Sax" hbank="81" lbank="1" prog="111"/>
+ <Patch name="AltoLead Sax" hbank="81" lbank="1" prog="112"/>
+ <Patch name="Tenor Sax" hbank="81" lbank="1" prog="113"/>
+ <Patch name="Baritone Sax" hbank="81" lbank="1" prog="114"/>
+ <Patch name="Take a Tenor" hbank="81" lbank="1" prog="115"/>
+ <Patch name="Sax Section" hbank="81" lbank="1" prog="116"/>
+ <Patch name="Bigband Sax" hbank="81" lbank="1" prog="117"/>
+ <Patch name="Harmonica" hbank="81" lbank="1" prog="118"/>
+ <Patch name="Harmo Blues" hbank="81" lbank="1" prog="119"/>
+ <Patch name="BluesHarp" hbank="81" lbank="1" prog="120"/>
+ <Patch name="French Bags" hbank="81" lbank="1" prog="122"/>
+ <Patch name="Majestic Tpt" hbank="81" lbank="1" prog="123"/>
+ <Patch name="Voluntare" hbank="81" lbank="1" prog="124"/>
+ <Patch name="2Trumpets" hbank="81" lbank="1" prog="125"/>
+ <Patch name="Tpt Sect" hbank="81" lbank="1" prog="126"/>
+ <Patch name="Mute TP mod" hbank="81" lbank="1" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="PR-C">
+ <Patch name="Harmon Mute" hbank="81" lbank="2" prog="0"/>
+ <Patch name="Tp&amp;Sax Section" hbank="81" lbank="2" prog="1"/>
+ <Patch name="Sax+Tp+Tb" hbank="81" lbank="2" prog="2"/>
+ <Patch name="Brass Sect" hbank="81" lbank="2" prog="3"/>
+ <Patch name="Trombone" hbank="81" lbank="2" prog="4"/>
+ <Patch name="Hybrid Bones" hbank="81" lbank="2" prog="5"/>
+ <Patch name="Noble Horns" hbank="81" lbank="2" prog="6"/>
+ <Patch name="Massed Horns" hbank="81" lbank="2" prog="7"/>
+ <Patch name="Horn Swell" hbank="81" lbank="2" prog="8"/>
+ <Patch name="Brass it!" hbank="81" lbank="2" prog="9"/>
+ <Patch name="Brass Attack" hbank="81" lbank="2" prog="10"/>
+ <Patch name="Archimede" hbank="81" lbank="2" prog="11"/>
+ <Patch name="Rugby Horn" hbank="81" lbank="2" prog="12"/>
+ <Patch name="MKS-80 Brass" hbank="81" lbank="2" prog="13"/>
+ <Patch name="True ANALOGE" hbank="81" lbank="2" prog="14"/>
+ <Patch name="Dark Vox" hbank="81" lbank="2" prog="15"/>
+ <Patch name="Random Vowels" hbank="81" lbank="2" prog="16"/>
+ <Patch name="Angels Sing" hbank="81" lbank="2" prog="17"/>
+ <Patch name="Pvox Oooze" hbank="81" lbank="2" prog="18"/>
+ <Patch name="Longing" hbank="81" lbank="2" prog="19"/>
+ <Patch name="Arasian Morn" hbank="81" lbank="2" prog="20"/>
+ <Patch name="Beauty Vox" hbank="81" lbank="2" prog="21"/>
+ <Patch name="Mary-AnneVox" hbank="81" lbank="2" prog="22"/>
+ <Patch name="Beltree Vox" hbank="81" lbank="2" prog="23"/>
+ <Patch name="Vox Planner" hbank="81" lbank="2" prog="24"/>
+ <Patch name="Spaced Voxx" hbank="81" lbank="2" prog="25"/>
+ <Patch name="Glass Voices" hbank="81" lbank="2" prog="26"/>
+ <Patch name="Tubular Vox" hbank="81" lbank="2" prog="27"/>
+ <Patch name="Velo Vox" hbank="81" lbank="2" prog="28"/>
+ <Patch name="Wavox" hbank="81" lbank="2" prog="29"/>
+ <Patch name="Doos" hbank="81" lbank="2" prog="30"/>
+ <Patch name="Synvox Comps" hbank="81" lbank="2" prog="31"/>
+ <Patch name="Vocal Oohz" hbank="81" lbank="2" prog="32"/>
+ <Patch name="LFO Vox" hbank="81" lbank="2" prog="33"/>
+ <Patch name="St. Strings" hbank="81" lbank="2" prog="34"/>
+ <Patch name="Warm Strings" hbank="81" lbank="2" prog="35"/>
+ <Patch name="Somber Strings" hbank="81" lbank="2" prog="36"/>
+ <Patch name="Marcato" hbank="81" lbank="2" prog="37"/>
+ <Patch name="Bright Strings" hbank="81" lbank="2" prog="38"/>
+ <Patch name="String Ens" hbank="81" lbank="2" prog="39"/>
+ <Patch name="TremoloStrng" hbank="81" lbank="2" prog="40"/>
+ <Patch name="Chambers" hbank="81" lbank="2" prog="41"/>
+ <Patch name="Violin Cello" hbank="81" lbank="2" prog="42"/>
+ <Patch name="Symphonique" hbank="81" lbank="2" prog="43"/>
+ <Patch name="Film Octaves" hbank="81" lbank="2" prog="44"/>
+ <Patch name="Film Layers" hbank="81" lbank="2" prog="45"/>
+ <Patch name="Bass Pizz" hbank="81" lbank="2" prog="46"/>
+ <Patch name="Real Pizz" hbank="81" lbank="2" prog="47"/>
+ <Patch name="Harp on it" hbank="81" lbank="2" prog="48"/>
+ <Patch name="Harp" hbank="81" lbank="2" prog="49"/>
+ <Patch name="JP-8 Str 1" hbank="81" lbank="2" prog="50"/>
+ <Patch name="JP-8 Str 2" hbank="81" lbank="2" prog="51"/>
+ <Patch name="E-Motion pad" hbank="81" lbank="2" prog="52"/>
+ <Patch name="JP-8 Str 3" hbank="81" lbank="2" prog="53"/>
+ <Patch name="Vintage Orch" hbank="81" lbank="2" prog="54"/>
+ <Patch name="JUNO Strings" hbank="81" lbank="2" prog="55"/>
+ <Patch name="Gigantalog" hbank="81" lbank="2" prog="56"/>
+ <Patch name="PWN Strings" hbank="81" lbank="2" prog="57"/>
+ <Patch name="Warmth" hbank="81" lbank="2" prog="58"/>
+ <Patch name="ORBit Pad" hbank="81" lbank="2" prog="59"/>
+ <Patch name="Deep Strings" hbank="81" lbank="2" prog="60"/>
+ <Patch name="Pulsify" hbank="81" lbank="2" prog="61"/>
+ <Patch name="Pulse Pad" hbank="81" lbank="2" prog="62"/>
+ <Patch name="Greek Power" hbank="81" lbank="2" prog="63"/>
+ <Patch name="Harmonicum" hbank="81" lbank="2" prog="64"/>
+ <Patch name="D-50 Heaven" hbank="81" lbank="2" prog="65"/>
+ <Patch name="Afro Horns" hbank="81" lbank="2" prog="66"/>
+ <Patch name="Pop Pad" hbank="81" lbank="2" prog="67"/>
+ <Patch name="Dreamesque" hbank="81" lbank="2" prog="68"/>
+ <Patch name="Square Pad" hbank="81" lbank="2" prog="69"/>
+ <Patch name="JP-8 Hollow" hbank="81" lbank="2" prog="70"/>
+ <Patch name="JP-8 Haunting" hbank="81" lbank="2" prog="72"/>
+ <Patch name="Hush Pad" hbank="81" lbank="2" prog="73"/>
+ <Patch name="Jet Pad 1" hbank="81" lbank="2" prog="74"/>
+ <Patch name="Jet Pad 2" hbank="81" lbank="2" prog="75"/>
+ <Patch name="Phaze Pad" hbank="81" lbank="2" prog="76"/>
+ <Patch name="Phaze Str" hbank="81" lbank="2" prog="77"/>
+ <Patch name="Jet Str Ens" hbank="81" lbank="2" prog="78"/>
+ <Patch name="Pivotal Pad" hbank="81" lbank="2" prog="79"/>
+ <Patch name="3D Flanged" hbank="81" lbank="2" prog="80"/>
+ <Patch name="Fantawine" hbank="81" lbank="2" prog="81"/>
+ <Patch name="Glossy Pad" hbank="81" lbank="2" prog="82"/>
+ <Patch name="Moving Glass" hbank="81" lbank="2" prog="83"/>
+ <Patch name="Glasswaves" hbank="81" lbank="2" prog="84"/>
+ <Patch name="Shiny pad" hbank="81" lbank="2" prog="85"/>
+ <Patch name="ShiftedGlass" hbank="81" lbank="2" prog="86"/>
+ <Patch name="Chime Pad" hbank="81" lbank="2" prog="87"/>
+ <Patch name="Spin pad" hbank="81" lbank="2" prog="88"/>
+ <Patch name="Rotary Pad" hbank="81" lbank="2" prog="89"/>
+ <Patch name="Dawn 2 Dusk" hbank="81" lbank="2" prog="90"/>
+ <Patch name="Aurora" hbank="81" lbank="2" prog="91"/>
+ <Patch name="Strobe Mode" hbank="81" lbank="2" prog="92"/>
+ <Patch name="Albion" hbank="81" lbank="2" prog="93"/>
+ <Patch name="Running pad" hbank="81" lbank="2" prog="94"/>
+ <Patch name="Stepped Pad" hbank="81" lbank="2" prog="95"/>
+ <Patch name="Random Pad" hbank="81" lbank="2" prog="96"/>
+ <Patch name="SoundtrkDANC" hbank="81" lbank="2" prog="97"/>
+ <Patch name="Flying Waltz" hbank="81" lbank="2" prog="98"/>
+ <Patch name="Vanishing" hbank="81" lbank="2" prog="99"/>
+ <Patch name="5th Sweep" hbank="81" lbank="2" prog="100"/>
+ <Patch name="Phazweep" hbank="81" lbank="2" prog="101"/>
+ <Patch name="Big BPF" hbank="81" lbank="2" prog="102"/>
+ <Patch name="MG Sweep" hbank="81" lbank="2" prog="103"/>
+ <Patch name="CeremonyTimp" hbank="81" lbank="2" prog="104"/>
+ <Patch name="Dyno Toms" hbank="81" lbank="2" prog="105"/>
+ <Patch name="Sands of TIme" hbank="81" lbank="2" prog="106"/>
+ <Patch name="Inertia" hbank="81" lbank="2" prog="107"/>
+ <Patch name="Vektogram" hbank="81" lbank="2" prog="108"/>
+ <Patch name="Crash Pad" hbank="81" lbank="2" prog="109"/>
+ <Patch name="Feedback Vox" hbank="81" lbank="2" prog="110"/>
+ <Patch name="Cascade" hbank="81" lbank="2" prog="111"/>
+ <Patch name="Shattered" hbank="81" lbank="2" prog="112"/>
+ <Patch name="Next Frontier" hbank="81" lbank="2" prog="113"/>
+ <Patch name="Pure Tibet" hbank="81" lbank="2" prog="114"/>
+ <Patch name="Chime Wash" hbank="81" lbank="2" prog="115"/>
+ <Patch name="Night Shade" hbank="81" lbank="2" prog="116"/>
+ <Patch name="Tortured" hbank="81" lbank="2" prog="117"/>
+ <Patch name="Dissimilate" hbank="81" lbank="2" prog="118"/>
+ <Patch name="Dunes" hbank="81" lbank="2" prog="119"/>
+ <Patch name="Ocean Floor" hbank="81" lbank="2" prog="120"/>
+ <Patch name="Cyber Space" hbank="81" lbank="2" prog="121"/>
+ <Patch name="Biospheare" hbank="81" lbank="2" prog="122"/>
+ <Patch name="Variable Run" hbank="81" lbank="2" prog="123"/>
+ <Patch name="Ice Hall" hbank="81" lbank="2" prog="124"/>
+ <Patch name="Computer Room" hbank="81" lbank="2" prog="125"/>
+ <Patch name="Inverted" hbank="81" lbank="2" prog="126"/>
+ <Patch name="terminate" hbank="81" lbank="2" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="PR-E">
+ <Patch name="Echo Piano" hbank="81" lbank="4" prog="0"/>
+ <Patch name="Upright Piano" hbank="81" lbank="4" prog="1"/>
+ <Patch name="RD-1000" hbank="81" lbank="4" prog="2"/>
+ <Patch name="Player's EP" hbank="81" lbank="4" prog="3"/>
+ <Patch name="D-50 Rhodes" hbank="81" lbank="4" prog="4"/>
+ <Patch name="Innocent EP" hbank="81" lbank="4" prog="5"/>
+ <Patch name="Echo Rhodes" hbank="81" lbank="4" prog="6"/>
+ <Patch name="See-Thru EP" hbank="81" lbank="4" prog="7"/>
+ <Patch name="FM BellPiano" hbank="81" lbank="4" prog="8"/>
+ <Patch name="Ring E.Piano" hbank="81" lbank="4" prog="9"/>
+ <Patch name="Soap Opera" hbank="81" lbank="4" prog="10"/>
+ <Patch name="Dirty Organ" hbank="81" lbank="4" prog="11"/>
+ <Patch name="Surf's Up!" hbank="81" lbank="4" prog="12"/>
+ <Patch name="Organesque" hbank="81" lbank="4" prog="13"/>
+ <Patch name="pp Harmonium" hbank="81" lbank="4" prog="14"/>
+ <Patch name="PieceOfCheez" hbank="81" lbank="4" prog="15"/>
+ <Patch name="Harpsy Clav" hbank="81" lbank="4" prog="16"/>
+ <Patch name="Exotic Velo" hbank="81" lbank="4" prog="17"/>
+ <Patch name="HolidayCheer" hbank="81" lbank="4" prog="18"/>
+ <Patch name="Moring Lite" hbank="81" lbank="4" prog="19"/>
+ <Patch name="Prefab Chime" hbank="81" lbank="4" prog="20"/>
+ <Patch name="Belfry Chime" hbank="81" lbank="4" prog="21"/>
+ <Patch name="Stacc.Heaven" hbank="81" lbank="4" prog="22"/>
+ <Patch name="2.2 Bell Pad" hbank="81" lbank="4" prog="23"/>
+ <Patch name="Far East" hbank="81" lbank="4" prog="24"/>
+ <Patch name="Wire Pad" hbank="81" lbank="4" prog="25"/>
+ <Patch name="PhaseBlipper" hbank="81" lbank="4" prog="26"/>
+ <Patch name="Sweep Clav" hbank="81" lbank="4" prog="27"/>
+ <Patch name="Glider" hbank="81" lbank="4" prog="28"/>
+ <Patch name="Solo Steel" hbank="81" lbank="4" prog="29"/>
+ <Patch name="DesertCrystl" hbank="81" lbank="4" prog="30"/>
+ <Patch name="Clear Guitar" hbank="81" lbank="4" prog="31"/>
+ <Patch name="Solo Strat" hbank="81" lbank="4" prog="32"/>
+ <Patch name="Feed Me!" hbank="81" lbank="4" prog="33"/>
+ <Patch name="Tube Smoke" hbank="81" lbank="4" prog="34"/>
+ <Patch name="Creamy" hbank="81" lbank="4" prog="35"/>
+ <Patch name="Bluesy OD" hbank="81" lbank="4" prog="36"/>
+ <Patch name="Grindstone" hbank="81" lbank="4" prog="37"/>
+ <Patch name="OD 5ths" hbank="81" lbank="4" prog="38"/>
+ <Patch name="East Europe" hbank="81" lbank="4" prog="39"/>
+ <Patch name="Dulcitar" hbank="81" lbank="4" prog="40"/>
+ <Patch name="Atmos Harp" hbank="81" lbank="4" prog="41"/>
+ <Patch name="Pilgrimage" hbank="81" lbank="4" prog="42"/>
+ <Patch name="202 Rude Bs" hbank="81" lbank="4" prog="43"/>
+ <Patch name="2pole Bass" hbank="81" lbank="4" prog="44"/>
+ <Patch name="4pole Bass" hbank="81" lbank="4" prog="45"/>
+ <Patch name="Phaser MC" hbank="81" lbank="4" prog="46"/>
+ <Patch name="Miniphaser" hbank="81" lbank="4" prog="47"/>
+ <Patch name="Acid TB" hbank="81" lbank="4" prog="48"/>
+ <Patch name="Full Orchest" hbank="81" lbank="4" prog="49"/>
+ <Patch name="Str + Winds" hbank="81" lbank="4" prog="50"/>
+ <Patch name="Flute 2080" hbank="81" lbank="4" prog="51"/>
+ <Patch name="Scat Flute" hbank="81" lbank="4" prog="52"/>
+ <Patch name="Sax Choir" hbank="81" lbank="4" prog="53"/>
+ <Patch name="Ballad Trump" hbank="81" lbank="4" prog="54"/>
+ <Patch name="Sm.Brass Grp" hbank="81" lbank="4" prog="55"/>
+ <Patch name="Royale" hbank="81" lbank="4" prog="56"/>
+ <Patch name="Brass Mutes" hbank="81" lbank="4" prog="57"/>
+ <Patch name="Breathy Brs" hbank="81" lbank="4" prog="58"/>
+ <Patch name="3 Osc Brass" hbank="81" lbank="4" prog="59"/>
+ <Patch name="P5 Polymod" hbank="81" lbank="4" prog="60"/>
+ <Patch name="Triumph Brs" hbank="81" lbank="4" prog="61"/>
+ <Patch name="Techno Dream" hbank="81" lbank="4" prog="62"/>
+ <Patch name="Organizer" hbank="81" lbank="4" prog="63"/>
+ <Patch name="Civilization" hbank="81" lbank="4" prog="64"/>
+ <Patch name="Mental Chord" hbank="81" lbank="4" prog="65"/>
+ <Patch name="House Chord" hbank="81" lbank="4" prog="66"/>
+ <Patch name="Sequalog" hbank="81" lbank="4" prog="67"/>
+ <Patch name="Booster Bips" hbank="81" lbank="4" prog="68"/>
+ <Patch name="VintagePlunk" hbank="81" lbank="4" prog="69"/>
+ <Patch name="Plik-Plok" hbank="81" lbank="4" prog="70"/>
+ <Patch name="RingSequence" hbank="81" lbank="4" prog="71"/>
+ <Patch name="Cyber Swing" hbank="81" lbank="4" prog="72"/>
+ <Patch name="Keep :-)" hbank="81" lbank="4" prog="73"/>
+ <Patch name="Resojuice" hbank="81" lbank="4" prog="74"/>
+ <Patch name="B'on d'moov!" hbank="81" lbank="4" prog="75"/>
+ <Patch name="Dist TB-303" hbank="81" lbank="4" prog="76"/>
+ <Patch name="Temple of JV" hbank="81" lbank="4" prog="77"/>
+ <Patch name="Planet Asia" hbank="81" lbank="4" prog="78"/>
+ <Patch name="Afterlife" hbank="81" lbank="4" prog="79"/>
+ <Patch name="Trancing Pad" hbank="81" lbank="4" prog="80"/>
+ <Patch name="Pulsatronic" hbank="81" lbank="4" prog="81"/>
+ <Patch name="Cyber Dreams" hbank="81" lbank="4" prog="82"/>
+ <Patch name="Warm Pipe" hbank="81" lbank="4" prog="83"/>
+ <Patch name="Pure Pipe" hbank="81" lbank="4" prog="84"/>
+ <Patch name="SH-2000" hbank="81" lbank="4" prog="85"/>
+ <Patch name="X..? Whistle" hbank="81" lbank="4" prog="86"/>
+ <Patch name="Jay Vee Solo" hbank="81" lbank="4" prog="87"/>
+ <Patch name="Progresso Ld" hbank="81" lbank="4" prog="88"/>
+ <Patch name="Adrenaline" hbank="81" lbank="4" prog="89"/>
+ <Patch name="Enlighten" hbank="81" lbank="4" prog="90"/>
+ <Patch name="Glass Blower" hbank="81" lbank="4" prog="91"/>
+ <Patch name="Earth Blow" hbank="81" lbank="4" prog="92"/>
+ <Patch name="JX SqrCarpet" hbank="81" lbank="4" prog="93"/>
+ <Patch name="Dimensional" hbank="81" lbank="4" prog="94"/>
+ <Patch name="Jupiterings" hbank="81" lbank="4" prog="95"/>
+ <Patch name="Analog Drama" hbank="81" lbank="4" prog="96"/>
+ <Patch name="Rich Dynapad" hbank="81" lbank="4" prog="97"/>
+ <Patch name="Silky Way" hbank="81" lbank="4" prog="98"/>
+ <Patch name="Gluey Pad" hbank="81" lbank="4" prog="99"/>
+ <Patch name="BandPass Mod" hbank="81" lbank="4" prog="100"/>
+ <Patch name="Soundtraque" hbank="81" lbank="4" prog="101"/>
+ <Patch name="Translucence" hbank="81" lbank="4" prog="102"/>
+ <Patch name="Darkshine" hbank="81" lbank="4" prog="103"/>
+ <Patch name="D'light" hbank="81" lbank="4" prog="104"/>
+ <Patch name="December Sky" hbank="81" lbank="4" prog="105"/>
+ <Patch name="Octapad" hbank="81" lbank="4" prog="106"/>
+ <Patch name="JUNO Power!" hbank="81" lbank="4" prog="107"/>
+ <Patch name="Spectrum Mod" hbank="81" lbank="4" prog="108"/>
+ <Patch name="Stringsheen" hbank="81" lbank="4" prog="109"/>
+ <Patch name="GR500 TmpDly" hbank="81" lbank="4" prog="110"/>
+ <Patch name="Mod DirtyWav" hbank="81" lbank="4" prog="111"/>
+ <Patch name="Silicon Str" hbank="81" lbank="4" prog="112"/>
+ <Patch name="D50FantaPerc" hbank="81" lbank="4" prog="113"/>
+ <Patch name="Rotodreams" hbank="81" lbank="4" prog="114"/>
+ <Patch name="Blue Notes" hbank="81" lbank="4" prog="115"/>
+ <Patch name="RiversOfTime" hbank="81" lbank="4" prog="116"/>
+ <Patch name="Phobos" hbank="81" lbank="4" prog="117"/>
+ <Patch name="2 0 8 0" hbank="81" lbank="4" prog="118"/>
+ <Patch name="Unearthly" hbank="81" lbank="4" prog="119"/>
+ <Patch name="Glistening" hbank="81" lbank="4" prog="120"/>
+ <Patch name="Sci-Fi Str" hbank="81" lbank="4" prog="121"/>
+ <Patch name="Shadows" hbank="81" lbank="4" prog="122"/>
+ <Patch name="Helium Queen" hbank="81" lbank="4" prog="123"/>
+ <Patch name="Sci-Fi FX x4" hbank="81" lbank="4" prog="124"/>
+ <Patch name="Perky Noize" hbank="81" lbank="4" prog="125"/>
+ <Patch name="Droplet" hbank="81" lbank="4" prog="126"/>
+ <Patch name="Rain Forest" hbank="81" lbank="4" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="XP-A, part 1">
+ <Patch name="St. Concert" hbank="84" lbank="0" prog="0"/>
+ <Patch name="9ft. Grand 1" hbank="84" lbank="0" prog="1"/>
+ <Patch name="9ft. Grand 2" hbank="84" lbank="0" prog="2"/>
+ <Patch name="Euro Classic" hbank="84" lbank="0" prog="3"/>
+ <Patch name="St. Piano &amp; Str" hbank="84" lbank="0" prog="4"/>
+ <Patch name="Compress Pno" hbank="84" lbank="0" prog="5"/>
+ <Patch name="LA Session" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Water Piano" hbank="84" lbank="0" prog="7"/>
+ <Patch name="Vibra Rhodes" hbank="84" lbank="0" prog="8"/>
+ <Patch name="Stack Rhodes" hbank="84" lbank="0" prog="9"/>
+ <Patch name="ArcoEnsemble" hbank="84" lbank="0" prog="10"/>
+ <Patch name="Vienna Strgs" hbank="84" lbank="0" prog="11"/>
+ <Patch name="Str Adagio" hbank="84" lbank="0" prog="12"/>
+ <Patch name="Oct Strings" hbank="84" lbank="0" prog="13"/>
+ <Patch name="Silky Filter" hbank="84" lbank="0" prog="14"/>
+ <Patch name="Soft Strings" hbank="84" lbank="0" prog="15"/>
+ <Patch name="SlowStr. Sect" hbank="84" lbank="0" prog="16"/>
+ <Patch name="GiantStrings" hbank="84" lbank="0" prog="17"/>
+ <Patch name="Str+Choir 1" hbank="84" lbank="0" prog="18"/>
+ <Patch name="Str+Choir 2" hbank="84" lbank="0" prog="19"/>
+ <Patch name="Str+Choir 3" hbank="84" lbank="0" prog="20"/>
+ <Patch name="Breathy Humz" hbank="84" lbank="0" prog="21"/>
+ <Patch name="Dream Voices" hbank="84" lbank="0" prog="22"/>
+ <Patch name="Mmmms" hbank="84" lbank="0" prog="23"/>
+ <Patch name="Chorale" hbank="84" lbank="0" prog="24"/>
+ <Patch name="Space Men" hbank="84" lbank="0" prog="25"/>
+ <Patch name="Choir Mm+Aah" hbank="84" lbank="0" prog="26"/>
+ <Patch name="Ivory Mist" hbank="84" lbank="0" prog="27"/>
+ <Patch name="PercussiVox" hbank="84" lbank="0" prog="28"/>
+ <Patch name="Mysteriouso" hbank="84" lbank="0" prog="29"/>
+ <Patch name="Phase Mmhs" hbank="84" lbank="0" prog="30"/>
+ <Patch name="AmbientStory" hbank="84" lbank="0" prog="31"/>
+ <Patch name="Venus" hbank="84" lbank="0" prog="32"/>
+ <Patch name="SessionBrass" hbank="84" lbank="0" prog="33"/>
+ <Patch name="Port.Tpts" hbank="84" lbank="0" prog="34"/>
+ <Patch name="R&amp;R Brass" hbank="84" lbank="0" prog="35"/>
+ <Patch name="Echo Brass" hbank="84" lbank="0" prog="36"/>
+ <Patch name="E.Coast Brs" hbank="84" lbank="0" prog="37"/>
+ <Patch name="Bop soli" hbank="84" lbank="0" prog="38"/>
+ <Patch name="Soft Saxes" hbank="84" lbank="0" prog="39"/>
+ <Patch name="Orchestral" hbank="84" lbank="0" prog="40"/>
+ <Patch name="Octalog Horn" hbank="84" lbank="0" prog="41"/>
+ <Patch name="Tpt Soloist" hbank="84" lbank="0" prog="42"/>
+ <Patch name="Legato Trumpet" hbank="84" lbank="0" prog="43"/>
+ <Patch name="Dyno Trumpet" hbank="84" lbank="0" prog="44"/>
+ <Patch name="Ethno-Trumps" hbank="84" lbank="0" prog="45"/>
+ <Patch name="Super Tenor" hbank="84" lbank="0" prog="46"/>
+ <Patch name="TenorExpress" hbank="84" lbank="0" prog="47"/>
+ <Patch name="T.Sax f" hbank="84" lbank="0" prog="48"/>
+ <Patch name="Legato Flute" hbank="84" lbank="0" prog="49"/>
+ <Patch name="Touch Flute" hbank="84" lbank="0" prog="50"/>
+ <Patch name="NewAge Flute" hbank="84" lbank="0" prog="51"/>
+ <Patch name="Flute InMist" hbank="84" lbank="0" prog="52"/>
+ <Patch name="Hybrid Flute" hbank="84" lbank="0" prog="53"/>
+ <Patch name="Flute &amp; Cla" hbank="84" lbank="0" prog="54"/>
+ <Patch name="ChristmasFlt" hbank="84" lbank="0" prog="55"/>
+ <Patch name="Fifth Flute" hbank="84" lbank="0" prog="56"/>
+ <Patch name="Cosmic Flute" hbank="84" lbank="0" prog="57"/>
+ <Patch name="Acc. De Paris" hbank="84" lbank="0" prog="58"/>
+ <Patch name="Paris 50's" hbank="84" lbank="0" prog="59"/>
+ <Patch name="Musette Ens" hbank="84" lbank="0" prog="60"/>
+ <Patch name="Montmartre" hbank="84" lbank="0" prog="61"/>
+ <Patch name="Sad Akordion" hbank="84" lbank="0" prog="62"/>
+ <Patch name="Fr. Accordion" hbank="84" lbank="0" prog="63"/>
+ <Patch name="FR. Accordion 2" hbank="84" lbank="0" prog="64"/>
+ <Patch name="Troubadour" hbank="84" lbank="0" prog="65"/>
+ <Patch name="SessionNylon" hbank="84" lbank="0" prog="66"/>
+ <Patch name="Solo Nylon 1" hbank="84" lbank="0" prog="67"/>
+ <Patch name="Solo Nylon 2" hbank="84" lbank="0" prog="68"/>
+ <Patch name="Nylon + Str" hbank="84" lbank="0" prog="69"/>
+ <Patch name="Nylon + Flt" hbank="84" lbank="0" prog="70"/>
+ <Patch name="Nylon Chord" hbank="84" lbank="0" prog="71"/>
+ <Patch name="Stratar" hbank="84" lbank="0" prog="72"/>
+ <Patch name="Clean Tele" hbank="84" lbank="0" prog="73"/>
+ <Patch name="Nashville" hbank="84" lbank="0" prog="74"/>
+ <Patch name="Super Trem" hbank="84" lbank="0" prog="75"/>
+ <Patch name="SpaghettiGtr" hbank="84" lbank="0" prog="76"/>
+ <Patch name="Duanne'sTone" hbank="84" lbank="0" prog="77"/>
+ <Patch name="Big Hair Ld" hbank="84" lbank="0" prog="78"/>
+ <Patch name="Metal Solo" hbank="84" lbank="0" prog="79"/>
+ <Patch name="Crunch Tone" hbank="84" lbank="0" prog="80"/>
+ <Patch name="Overdriven" hbank="84" lbank="0" prog="81"/>
+ <Patch name="Blues Tele" hbank="84" lbank="0" prog="82"/>
+ <Patch name="Tube Double" hbank="84" lbank="0" prog="83"/>
+ <Patch name="Neil's Rust" hbank="84" lbank="0" prog="84"/>
+ <Patch name="Short Crunch" hbank="84" lbank="0" prog="85"/>
+ <Patch name="X-Fade Metal" hbank="84" lbank="0" prog="86"/>
+ <Patch name="Velo Power" hbank="84" lbank="0" prog="87"/>
+ <Patch name="Phazy Chunk" hbank="84" lbank="0" prog="88"/>
+ <Patch name="Reso Tele" hbank="84" lbank="0" prog="89"/>
+ <Patch name="Wah Wah BPM" hbank="84" lbank="0" prog="90"/>
+ <Patch name="Rock P. Bass 1" hbank="84" lbank="0" prog="91"/>
+ <Patch name="Rock P. Bass 2" hbank="84" lbank="0" prog="92"/>
+ <Patch name="Rock P. Bass 3" hbank="84" lbank="0" prog="93"/>
+ <Patch name="Big Jazz Bs" hbank="84" lbank="0" prog="94"/>
+ <Patch name="BriteJazz Bs" hbank="84" lbank="0" prog="95"/>
+ <Patch name="Ch. Jazz Bs" hbank="84" lbank="0" prog="96"/>
+ <Patch name="Mellow Jz Bs" hbank="84" lbank="0" prog="97"/>
+ <Patch name="Mute E. Bs" hbank="84" lbank="0" prog="98"/>
+ <Patch name="Octabahn Bs" hbank="84" lbank="0" prog="99"/>
+ <Patch name="Slobbery Bs" hbank="84" lbank="0" prog="100"/>
+ <Patch name="Phase Worm" hbank="84" lbank="0" prog="101"/>
+ <Patch name="Euro Rave Bs" hbank="84" lbank="0" prog="102"/>
+ <Patch name="Pumpin' Bs" hbank="84" lbank="0" prog="103"/>
+ <Patch name="Tech NoBase" hbank="84" lbank="0" prog="104"/>
+ <Patch name="Bad Acid Bs" hbank="84" lbank="0" prog="105"/>
+ <Patch name="CheepEcho Bs" hbank="84" lbank="0" prog="106"/>
+ <Patch name="Manic Bs" hbank="84" lbank="0" prog="107"/>
+ <Patch name="JP6 Sqr Key" hbank="84" lbank="0" prog="108"/>
+ <Patch name="Square Drops" hbank="84" lbank="0" prog="109"/>
+ <Patch name="Celestial" hbank="84" lbank="0" prog="110"/>
+ <Patch name="Heavenly Eko" hbank="84" lbank="0" prog="111"/>
+ <Patch name="JD-800 Nomad" hbank="84" lbank="0" prog="112"/>
+ <Patch name="Vibrolater" hbank="84" lbank="0" prog="113"/>
+ <Patch name="MartianChime" hbank="84" lbank="0" prog="114"/>
+ <Patch name="Big Wet Blip" hbank="84" lbank="0" prog="115"/>
+ <Patch name="Amazing Echo" hbank="84" lbank="0" prog="116"/>
+ <Patch name="DelaySession" hbank="84" lbank="0" prog="117"/>
+ <Patch name="Deletex" hbank="84" lbank="0" prog="118"/>
+ <Patch name="Tarlia" hbank="84" lbank="0" prog="119"/>
+ <Patch name="Mahoroba" hbank="84" lbank="0" prog="120"/>
+ <Patch name="Eurotek Clav" hbank="84" lbank="0" prog="121"/>
+ <Patch name="Dope Resoclv" hbank="84" lbank="0" prog="122"/>
+ <Patch name="Tekno Juno" hbank="84" lbank="0" prog="123"/>
+ <Patch name="Buzzzzzzzzzz" hbank="84" lbank="0" prog="124"/>
+ <Patch name="Slop-a-rama" hbank="84" lbank="0" prog="125"/>
+ <Patch name="Isn't Pretty" hbank="84" lbank="0" prog="126"/>
+ <Patch name="Polywasp" hbank="84" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="XP-A, part 2">
+ <Patch name="Quixelate" hbank="84" lbank="1" prog="0"/>
+ <Patch name="Trangoa Wave" hbank="84" lbank="1" prog="1"/>
+ <Patch name="Spiked Cheez" hbank="84" lbank="1" prog="2"/>
+ <Patch name="Glassy Cheez" hbank="84" lbank="1" prog="3"/>
+ <Patch name="Super 808Cow" hbank="84" lbank="1" prog="4"/>
+ <Patch name="Arpeggiatoid" hbank="84" lbank="1" prog="5"/>
+ <Patch name="Euro Hit 1" hbank="84" lbank="1" prog="6"/>
+ <Patch name="Euro Hit 2" hbank="84" lbank="1" prog="7"/>
+ <Patch name="Rave Slice" hbank="84" lbank="1" prog="8"/>
+ <Patch name="Str Torture" hbank="84" lbank="1" prog="9"/>
+ <Patch name="Juno Harpsi" hbank="84" lbank="1" prog="10"/>
+ <Patch name="Big Mess Pad" hbank="84" lbank="1" prog="11"/>
+ <Patch name="Harpsichoir" hbank="84" lbank="1" prog="12"/>
+ <Patch name="Echo Juno" hbank="84" lbank="1" prog="13"/>
+ <Patch name="PhazeRave" hbank="84" lbank="1" prog="14"/>
+ <Patch name="DanceStack 1" hbank="84" lbank="1" prog="15"/>
+ <Patch name="DanceStack 2" hbank="84" lbank="1" prog="16"/>
+ <Patch name="DanceStack 3" hbank="84" lbank="1" prog="17"/>
+ <Patch name="DanceStack 4" hbank="84" lbank="1" prog="18"/>
+ <Patch name="DanceStack 5" hbank="84" lbank="1" prog="19"/>
+ <Patch name="DanceStack 6" hbank="84" lbank="1" prog="20"/>
+ <Patch name="DanceStack 7" hbank="84" lbank="1" prog="21"/>
+ <Patch name="DanceStack 8" hbank="84" lbank="1" prog="22"/>
+ <Patch name="Eurotek Brs" hbank="84" lbank="1" prog="23"/>
+ <Patch name="Synergy Brs" hbank="84" lbank="1" prog="24"/>
+ <Patch name="PortaSynthex" hbank="84" lbank="1" prog="25"/>
+ <Patch name="Razor VCOs" hbank="84" lbank="1" prog="26"/>
+ <Patch name="Big PWM" hbank="84" lbank="1" prog="27"/>
+ <Patch name="Flutey Stack" hbank="84" lbank="1" prog="28"/>
+ <Patch name="Wobbly 5th" hbank="84" lbank="1" prog="29"/>
+ <Patch name="Tekno Square" hbank="84" lbank="1" prog="30"/>
+ <Patch name="Trance VoXxX" hbank="84" lbank="1" prog="31"/>
+ <Patch name="Random Rave" hbank="84" lbank="1" prog="32"/>
+ <Patch name="Raver Circus" hbank="84" lbank="1" prog="33"/>
+ <Patch name="Resorave" hbank="84" lbank="1" prog="34"/>
+ <Patch name="Flangomatic" hbank="84" lbank="1" prog="35"/>
+ <Patch name="O-Zu-Nu" hbank="84" lbank="1" prog="36"/>
+ <Patch name="Sub Divided" hbank="84" lbank="1" prog="37"/>
+ <Patch name="Ancient Sqr" hbank="84" lbank="1" prog="38"/>
+ <Patch name="Fat Flange" hbank="84" lbank="1" prog="39"/>
+ <Patch name="Phaze NRG" hbank="84" lbank="1" prog="40"/>
+ <Patch name="Phase Vox" hbank="84" lbank="1" prog="41"/>
+ <Patch name="Systekno" hbank="84" lbank="1" prog="42"/>
+ <Patch name="On The Move!" hbank="84" lbank="1" prog="43"/>
+ <Patch name="XP'ration" hbank="84" lbank="1" prog="44"/>
+ <Patch name="Big Ensemble" hbank="84" lbank="1" prog="45"/>
+ <Patch name="Lazerette" hbank="84" lbank="1" prog="46"/>
+ <Patch name="Fazed String" hbank="84" lbank="1" prog="47"/>
+ <Patch name="Combing Slow" hbank="84" lbank="1" prog="48"/>
+ <Patch name="Jet Stack" hbank="84" lbank="1" prog="49"/>
+ <Patch name="Phazeslopad" hbank="84" lbank="1" prog="50"/>
+ <Patch name="Rize Mass" hbank="84" lbank="1" prog="51"/>
+ <Patch name="Portent" hbank="84" lbank="1" prog="52"/>
+ <Patch name="DCO Sweeper" hbank="84" lbank="1" prog="53"/>
+ <Patch name="Sweep Rain" hbank="84" lbank="1" prog="54"/>
+ <Patch name="Sweep Stack" hbank="84" lbank="1" prog="55"/>
+ <Patch name="Big Vectors" hbank="84" lbank="1" prog="56"/>
+ <Patch name="Poly Swell" hbank="84" lbank="1" prog="57"/>
+ <Patch name="Alchemy" hbank="84" lbank="1" prog="58"/>
+ <Patch name="Soli-na" hbank="84" lbank="1" prog="59"/>
+ <Patch name="90s Str mach" hbank="84" lbank="1" prog="60"/>
+ <Patch name="Ultra Cheez" hbank="84" lbank="1" prog="61"/>
+ <Patch name="Juno-60 Pad" hbank="84" lbank="1" prog="62"/>
+ <Patch name="Progressive" hbank="84" lbank="1" prog="63"/>
+ <Patch name="Build-up Syn" hbank="84" lbank="1" prog="64"/>
+ <Patch name="Atlantis 2" hbank="84" lbank="1" prog="65"/>
+ <Patch name="Perelandra" hbank="84" lbank="1" prog="66"/>
+ <Patch name="Plutonium" hbank="84" lbank="1" prog="67"/>
+ <Patch name="Nautilus" hbank="84" lbank="1" prog="68"/>
+ <Patch name="Metal Dreams" hbank="84" lbank="1" prog="69"/>
+ <Patch name="Glass Clouds" hbank="84" lbank="1" prog="70"/>
+ <Patch name="Harmonicloud" hbank="84" lbank="1" prog="71"/>
+ <Patch name="Shining Veil" hbank="84" lbank="1" prog="72"/>
+ <Patch name="Ethereal JX" hbank="84" lbank="1" prog="73"/>
+ <Patch name="Striking 5th" hbank="84" lbank="1" prog="74"/>
+ <Patch name="Meow 5ths" hbank="84" lbank="1" prog="75"/>
+ <Patch name="Stepflanger" hbank="84" lbank="1" prog="76"/>
+ <Patch name="Happy LFOs" hbank="84" lbank="1" prog="77"/>
+ <Patch name="Aero Insect" hbank="84" lbank="1" prog="78"/>
+ <Patch name="Beat Sweeper" hbank="84" lbank="1" prog="79"/>
+ <Patch name="Wormy Lead" hbank="84" lbank="1" prog="80"/>
+ <Patch name="Atmo Lead" hbank="84" lbank="1" prog="81"/>
+ <Patch name="Caliolead" hbank="84" lbank="1" prog="82"/>
+ <Patch name="Tweedles" hbank="84" lbank="1" prog="83"/>
+ <Patch name="Raw PWM" hbank="84" lbank="1" prog="84"/>
+ <Patch name="Voc Solo 5th" hbank="84" lbank="1" prog="85"/>
+ <Patch name="Dirty Lead" hbank="84" lbank="1" prog="86"/>
+ <Patch name="Boostweeper1" hbank="84" lbank="1" prog="87"/>
+ <Patch name="Boostweeper2" hbank="84" lbank="1" prog="88"/>
+ <Patch name="B3 Filth" hbank="84" lbank="1" prog="89"/>
+ <Patch name="Phazed Organ" hbank="84" lbank="1" prog="90"/>
+ <Patch name="VSw Vibrafon" hbank="84" lbank="1" prog="91"/>
+ <Patch name="SA Vibe" hbank="84" lbank="1" prog="92"/>
+ <Patch name="Rich Vibes" hbank="84" lbank="1" prog="93"/>
+ <Patch name="SpaceGamelan" hbank="84" lbank="1" prog="94"/>
+ <Patch name="Toy Vibe" hbank="84" lbank="1" prog="95"/>
+ <Patch name="Analog Bomb" hbank="84" lbank="1" prog="96"/>
+ <Patch name="Seashore 2" hbank="84" lbank="1" prog="97"/>
+ <Patch name="Creation" hbank="84" lbank="1" prog="98"/>
+ <Patch name="Cyberjunkie" hbank="84" lbank="1" prog="99"/>
+ <Patch name="Sci-Fi Bells" hbank="84" lbank="1" prog="100"/>
+ <Patch name="Shine on" hbank="84" lbank="1" prog="101"/>
+ <Patch name="DEMO Piano1" hbank="84" lbank="1" prog="102"/>
+ <Patch name="DEMO Piano2" hbank="84" lbank="1" prog="103"/>
+ <Patch name="DEMO Pnovox" hbank="84" lbank="1" prog="104"/>
+ <Patch name="DEMO Str 1" hbank="84" lbank="1" prog="105"/>
+ <Patch name="DEMO Str 2" hbank="84" lbank="1" prog="106"/>
+ <Patch name="DEMO Str 3" hbank="84" lbank="1" prog="107"/>
+ <Patch name="DEMO Synpuls" hbank="84" lbank="1" prog="108"/>
+ <Patch name="DEMO 5thPad" hbank="84" lbank="1" prog="109"/>
+ <Patch name="DEMO Choir" hbank="84" lbank="1" prog="110"/>
+ <Patch name="DEMO Brass" hbank="84" lbank="1" prog="111"/>
+ <Patch name="DEMO Tenor" hbank="84" lbank="1" prog="112"/>
+ <Patch name="DEMO Tpt" hbank="84" lbank="1" prog="113"/>
+ <Patch name="DEMO Flute" hbank="84" lbank="1" prog="114"/>
+ <Patch name="DEMO Nylon" hbank="84" lbank="1" prog="115"/>
+ <Patch name="DEMO PhaseGt" hbank="84" lbank="1" prog="116"/>
+ <Patch name="DEMO DistGt1" hbank="84" lbank="1" prog="117"/>
+ <Patch name="DEMO DistGt2" hbank="84" lbank="1" prog="118"/>
+ <Patch name="DEMO Strat" hbank="84" lbank="1" prog="119"/>
+ <Patch name="DEMO SlapBs" hbank="84" lbank="1" prog="120"/>
+ <Patch name="DEMO P. Bass" hbank="84" lbank="1" prog="121"/>
+ <Patch name="DEMO SynBs" hbank="84" lbank="1" prog="122"/>
+ <Patch name="DEMO SynLead" hbank="84" lbank="1" prog="123"/>
+ <Patch name="DEMO Insect" hbank="84" lbank="1" prog="124"/>
+ <Patch name="DEMO Buzzzz" hbank="84" lbank="1" prog="125"/>
+ <Patch name="DEMO Crowd" hbank="84" lbank="1" prog="126"/>
+ </PatchGroup>
+ <PatchGroup name="XP-B, part 1">
+ <Patch name="Warm Violins" hbank="84" lbank="2" prog="0"/>
+ <Patch name="Slow Vlns 1" hbank="84" lbank="2" prog="1"/>
+ <Patch name="Vlns+Vlas 1" hbank="84" lbank="2" prog="2"/>
+ <Patch name="Vl Sect mono" hbank="84" lbank="2" prog="3"/>
+ <Patch name="Arco Violins" hbank="84" lbank="2" prog="4"/>
+ <Patch name="Marcato Vls1" hbank="84" lbank="2" prog="5"/>
+ <Patch name="Vlns_Vlas 2" hbank="84" lbank="2" prog="6"/>
+ <Patch name="Agitato Vls" hbank="84" lbank="2" prog="7"/>
+ <Patch name="Rosin Pad 1" hbank="84" lbank="2" prog="8"/>
+ <Patch name="Dry Mid - High" hbank="84" lbank="2" prog="9"/>
+ <Patch name="Natural Vlns" hbank="84" lbank="2" prog="10"/>
+ <Patch name="Sad Vln Sect" hbank="84" lbank="2" prog="11"/>
+ <Patch name="Marcato Vas" hbank="84" lbank="2" prog="12"/>
+ <Patch name="Arco Violas" hbank="84" lbank="2" prog="13"/>
+ <Patch name="Thick Violas" hbank="84" lbank="2" prog="14"/>
+ <Patch name="Va Sect f" hbank="84" lbank="2" prog="15"/>
+ <Patch name="Va Small Sec" hbank="84" lbank="2" prog="16"/>
+ <Patch name="Agitato Vas 1" hbank="84" lbank="2" prog="17"/>
+ <Patch name="Sad Violas" hbank="84" lbank="2" prog="18"/>
+ <Patch name="fast Cellos1" hbank="84" lbank="2" prog="19"/>
+ <Patch name="Vcs Legato 1" hbank="84" lbank="2" prog="20"/>
+ <Patch name="Marcato Vcs1" hbank="84" lbank="2" prog="21"/>
+ <Patch name="Small Vc Sec" hbank="84" lbank="2" prog="22"/>
+ <Patch name="Agitato Vcs1" hbank="84" lbank="2" prog="23"/>
+ <Patch name="Small Cellos" hbank="84" lbank="2" prog="24"/>
+ <Patch name="Sad CelloSec" hbank="84" lbank="2" prog="25"/>
+ <Patch name="Cb Sect ff" hbank="84" lbank="2" prog="26"/>
+ <Patch name="Wide Basses" hbank="84" lbank="2" prog="27"/>
+ <Patch name="mf Basses" hbank="84" lbank="2" prog="28"/>
+ <Patch name="Agitato Cbs1" hbank="84" lbank="2" prog="29"/>
+ <Patch name="Vcs+Cbs" hbank="84" lbank="2" prog="30"/>
+ <Patch name="2 Basses" hbank="84" lbank="2" prog="31"/>
+ <Patch name="Euro Strings" hbank="84" lbank="2" prog="32"/>
+ <Patch name="Rich Strings" hbank="84" lbank="2" prog="33"/>
+ <Patch name="Multi Strs 1" hbank="84" lbank="2" prog="34"/>
+ <Patch name="VlsVasVcsCbs" hbank="84" lbank="2" prog="35"/>
+ <Patch name="Bright Strs" hbank="84" lbank="2" prog="36"/>
+ <Patch name="Classic Str" hbank="84" lbank="2" prog="37"/>
+ <Patch name="Full Strings" hbank="84" lbank="2" prog="38"/>
+ <Patch name="Med Str Sec" hbank="84" lbank="2" prog="39"/>
+ <Patch name="Small Strings" hbank="84" lbank="2" prog="40"/>
+ <Patch name="Strings Arco" hbank="84" lbank="2" prog="41"/>
+ <Patch name="Vivace Strs" hbank="84" lbank="2" prog="42"/>
+ <Patch name="Agitato STR1" hbank="84" lbank="2" prog="43"/>
+ <Patch name="LowSTR Attak" hbank="84" lbank="2" prog="44"/>
+ <Patch name="Bad Guy Str" hbank="84" lbank="2" prog="45"/>
+ <Patch name="Ominus" hbank="84" lbank="2" prog="46"/>
+ <Patch name="Lo Express" hbank="84" lbank="2" prog="47"/>
+ <Patch name="DramaStrings" hbank="84" lbank="2" prog="48"/>
+ <Patch name="Solo Vln 1" hbank="84" lbank="2" prog="49"/>
+ <Patch name="Solo Vln 2" hbank="84" lbank="2" prog="50"/>
+ <Patch name="Chorus Vln" hbank="84" lbank="2" prog="51"/>
+ <Patch name="Stereo Vln" hbank="84" lbank="2" prog="52"/>
+ <Patch name="Agitato Vln 1" hbank="84" lbank="2" prog="53"/>
+ <Patch name="Solo Vla 1" hbank="84" lbank="2" prog="54"/>
+ <Patch name="Solo Vla 2" hbank="84" lbank="2" prog="55"/>
+ <Patch name="Chorus Viola" hbank="84" lbank="2" prog="56"/>
+ <Patch name="Stereo Viola" hbank="84" lbank="2" prog="57"/>
+ <Patch name="Agitato Vla" hbank="84" lbank="2" prog="58"/>
+ <Patch name="Solo Vc 1" hbank="84" lbank="2" prog="59"/>
+ <Patch name="Solo Vc 2" hbank="84" lbank="2" prog="60"/>
+ <Patch name="Stereo Cello" hbank="84" lbank="2" prog="61"/>
+ <Patch name="Chorus Cello" hbank="84" lbank="2" prog="62"/>
+ <Patch name="Marcato Vc 1" hbank="84" lbank="2" prog="63"/>
+ <Patch name="Solo Cb 1" hbank="84" lbank="2" prog="64"/>
+ <Patch name="Solo Cb 2" hbank="84" lbank="2" prog="65"/>
+ <Patch name="Marcato Cb 1" hbank="84" lbank="2" prog="66"/>
+ <Patch name="Chamber Ens 1" hbank="84" lbank="2" prog="67"/>
+ <Patch name="Chamber Ens 2" hbank="84" lbank="2" prog="68"/>
+ <Patch name="Vln+Vla Dble" hbank="84" lbank="2" prog="69"/>
+ <Patch name="Vln+Vla Dbl1" hbank="84" lbank="2" prog="70"/>
+ <Patch name="Vla+Vc Dbl2" hbank="84" lbank="2" prog="71"/>
+ <Patch name="Vla+Vc Dble" hbank="84" lbank="2" prog="72"/>
+ <Patch name="Pizzicato 1" hbank="84" lbank="2" prog="73"/>
+ <Patch name="Mono Pizz" hbank="84" lbank="2" prog="74"/>
+ <Patch name="Pizzicato 2" hbank="84" lbank="2" prog="75"/>
+ <Patch name="Room Pizz" hbank="84" lbank="2" prog="76"/>
+ <Patch name="Hall Pizz" hbank="84" lbank="2" prog="77"/>
+ <Patch name="Tight Pizz" hbank="84" lbank="2" prog="78"/>
+ <Patch name="Short Pizz" hbank="84" lbank="2" prog="79"/>
+ <Patch name="Str Marcato1" hbank="84" lbank="2" prog="80"/>
+ <Patch name="Oct Marcarto" hbank="84" lbank="2" prog="81"/>
+ <Patch name="Lower marc!!" hbank="84" lbank="2" prog="82"/>
+ <Patch name="Big Marc!" hbank="84" lbank="2" prog="83"/>
+ <Patch name="STR Spiccato" hbank="84" lbank="2" prog="84"/>
+ <Patch name="fast Attacks" hbank="84" lbank="2" prog="85"/>
+ <Patch name="Flute" hbank="84" lbank="2" prog="86"/>
+ <Patch name="Flute V-Sw" hbank="84" lbank="2" prog="87"/>
+ <Patch name="Piccolo" hbank="84" lbank="2" prog="88"/>
+ <Patch name="Piccolo Flt" hbank="84" lbank="2" prog="89"/>
+ <Patch name="Recorder" hbank="84" lbank="2" prog="90"/>
+ <Patch name="Oboe1" hbank="84" lbank="2" prog="91"/>
+ <Patch name="Oboe2" hbank="84" lbank="2" prog="92"/>
+ <Patch name="Oboe3" hbank="84" lbank="2" prog="93"/>
+ <Patch name="Oboe4" hbank="84" lbank="2" prog="94"/>
+ <Patch name="Oboe5" hbank="84" lbank="2" prog="95"/>
+ <Patch name="English Hrn1" hbank="84" lbank="2" prog="96"/>
+ <Patch name="English Hrn2" hbank="84" lbank="2" prog="97"/>
+ <Patch name="English Hrn3" hbank="84" lbank="2" prog="98"/>
+ <Patch name="Bassoon 1" hbank="84" lbank="2" prog="99"/>
+ <Patch name="Bassoon 2" hbank="84" lbank="2" prog="100"/>
+ <Patch name="Clarinet 1" hbank="84" lbank="2" prog="101"/>
+ <Patch name="Clarinet 2" hbank="84" lbank="2" prog="102"/>
+ <Patch name="Bs Clrinet 1" hbank="84" lbank="2" prog="103"/>
+ <Patch name="Bs Clarinet 2" hbank="84" lbank="2" prog="104"/>
+ <Patch name="Trumpet 1" hbank="84" lbank="2" prog="105"/>
+ <Patch name="Trumpet 2" hbank="84" lbank="2" prog="106"/>
+ <Patch name="Trumpet 3" hbank="84" lbank="2" prog="107"/>
+ <Patch name="Flugel Horn1" hbank="84" lbank="2" prog="108"/>
+ <Patch name="Flugel Horn2" hbank="84" lbank="2" prog="109"/>
+ <Patch name="Cornet 1" hbank="84" lbank="2" prog="110"/>
+ <Patch name="Cornet 2" hbank="84" lbank="2" prog="111"/>
+ <Patch name="Solo Tb 1" hbank="84" lbank="2" prog="112"/>
+ <Patch name="Solo Tb 2" hbank="84" lbank="2" prog="113"/>
+ <Patch name="Solo Tb 3" hbank="84" lbank="2" prog="114"/>
+ <Patch name="Solo Tb 4" hbank="84" lbank="2" prog="115"/>
+ <Patch name="Bs Tb 1" hbank="84" lbank="2" prog="116"/>
+ <Patch name="Bs Tb 2" hbank="84" lbank="2" prog="117"/>
+ <Patch name="Harmon Mute1" hbank="84" lbank="2" prog="118"/>
+ <Patch name="Harmon Mute2" hbank="84" lbank="2" prog="119"/>
+ <Patch name="Tuba 1" hbank="84" lbank="2" prog="120"/>
+ <Patch name="Tuba 2" hbank="84" lbank="2" prog="121"/>
+ <Patch name="Solo F.Horn1" hbank="84" lbank="2" prog="122"/>
+ <Patch name="Solo F.Horn2" hbank="84" lbank="2" prog="123"/>
+ <Patch name="Sml F.Hrn Sc" hbank="84" lbank="2" prog="124"/>
+ <Patch name="Horn Sect 1" hbank="84" lbank="2" prog="125"/>
+ <Patch name="FHorn Sc x 4" hbank="84" lbank="2" prog="126"/>
+ <Patch name="Fr.Horn Sfz" hbank="84" lbank="2" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="XP-B, part 2">
+ <Patch name="F.Hrn Sect2" hbank="84" lbank="3" prog="0"/>
+ <Patch name="F.Hrn Sect3" hbank="84" lbank="3" prog="1"/>
+ <Patch name="F.Hrn Sect4" hbank="84" lbank="3" prog="2"/>
+ <Patch name="F.Hrn Sect5" hbank="84" lbank="3" prog="3"/>
+ <Patch name="F.Hrn Sect6" hbank="84" lbank="3" prog="4"/>
+ <Patch name="F.Hrn Sect7" hbank="84" lbank="3" prog="5"/>
+ <Patch name="F.Hrn Sect8" hbank="84" lbank="3" prog="6"/>
+ <Patch name="Mute Hrn Sect" hbank="84" lbank="3" prog="7"/>
+ <Patch name="Horn + Wood1" hbank="84" lbank="3" prog="8"/>
+ <Patch name="Horn + Wood2" hbank="84" lbank="3" prog="9"/>
+ <Patch name="Horn + Wood3" hbank="84" lbank="3" prog="10"/>
+ <Patch name="Wood Sect1" hbank="84" lbank="3" prog="11"/>
+ <Patch name="Wood Sect2" hbank="84" lbank="3" prog="12"/>
+ <Patch name="Wood Sect3" hbank="84" lbank="3" prog="13"/>
+ <Patch name="Wood Sect4" hbank="84" lbank="3" prog="14"/>
+ <Patch name="2 Oboes" hbank="84" lbank="3" prog="15"/>
+ <Patch name="Oboe + Clar" hbank="84" lbank="3" prog="16"/>
+ <Patch name="Flt + Piccl" hbank="84" lbank="3" prog="17"/>
+ <Patch name="Flute + Cla" hbank="84" lbank="3" prog="18"/>
+ <Patch name="Bassoon + FHrn" hbank="84" lbank="3" prog="19"/>
+ <Patch name="Hi Woodwinds" hbank="84" lbank="3" prog="20"/>
+ <Patch name="WoodwindsSplt" hbank="84" lbank="3" prog="21"/>
+ <Patch name="Multi Reed" hbank="84" lbank="3" prog="22"/>
+ <Patch name="4 Trombones" hbank="84" lbank="3" prog="23"/>
+ <Patch name="Tb Sect 1" hbank="84" lbank="3" prog="24"/>
+ <Patch name="Tb + Tp" hbank="84" lbank="3" prog="25"/>
+ <Patch name="4 trumpets" hbank="84" lbank="3" prog="26"/>
+ <Patch name="3 Trumpets" hbank="84" lbank="3" prog="27"/>
+ <Patch name="Brass ff1" hbank="84" lbank="3" prog="28"/>
+ <Patch name="Brass ff2" hbank="84" lbank="3" prog="29"/>
+ <Patch name="Brass ff3" hbank="84" lbank="3" prog="30"/>
+ <Patch name="McArthur Brs" hbank="84" lbank="3" prog="31"/>
+ <Patch name="Big Bones" hbank="84" lbank="3" prog="32"/>
+ <Patch name="BassBonesSect" hbank="84" lbank="3" prog="33"/>
+ <Patch name="Brass Swell1" hbank="84" lbank="3" prog="34"/>
+ <Patch name="Full Brs 1" hbank="84" lbank="3" prog="35"/>
+ <Patch name="Brass sect 1" hbank="84" lbank="3" prog="36"/>
+ <Patch name="Brass ens1" hbank="84" lbank="3" prog="37"/>
+ <Patch name="Brass ens2" hbank="84" lbank="3" prog="38"/>
+ <Patch name="Brass ens3" hbank="84" lbank="3" prog="39"/>
+ <Patch name="Brass ens4" hbank="84" lbank="3" prog="40"/>
+ <Patch name="Brass ens5" hbank="84" lbank="3" prog="41"/>
+ <Patch name="Brass ens6" hbank="84" lbank="3" prog="42"/>
+ <Patch name="Brass ens7" hbank="84" lbank="3" prog="43"/>
+ <Patch name="Brass ens8" hbank="84" lbank="3" prog="44"/>
+ <Patch name="Horn Strings" hbank="84" lbank="3" prog="45"/>
+ <Patch name="Full Orch1" hbank="84" lbank="3" prog="46"/>
+ <Patch name="Full Orch2" hbank="84" lbank="3" prog="47"/>
+ <Patch name="Full Orch3" hbank="84" lbank="3" prog="48"/>
+ <Patch name="Full Orch4" hbank="84" lbank="3" prog="49"/>
+ <Patch name="Maj Hit 2" hbank="84" lbank="3" prog="50"/>
+ <Patch name="Min Hit 1" hbank="84" lbank="3" prog="51"/>
+ <Patch name="Dim Hit 1" hbank="84" lbank="3" prog="52"/>
+ <Patch name="Major Stab!" hbank="84" lbank="3" prog="53"/>
+ <Patch name="Maj Hit 2" hbank="84" lbank="3" prog="54"/>
+ <Patch name="Min Hit 2" hbank="84" lbank="3" prog="55"/>
+ <Patch name="Classical Gt" hbank="84" lbank="3" prog="56"/>
+ <Patch name="Harp 1" hbank="84" lbank="3" prog="57"/>
+ <Patch name="Harp 2" hbank="84" lbank="3" prog="58"/>
+ <Patch name="Plucked Harp" hbank="84" lbank="3" prog="59"/>
+ <Patch name="Harp Strum MG" hbank="84" lbank="3" prog="60"/>
+ <Patch name="Harp Strum Min" hbank="84" lbank="3" prog="61"/>
+ <Patch name="Water Harp" hbank="84" lbank="3" prog="62"/>
+ <Patch name="ClassicalPno1" hbank="84" lbank="3" prog="63"/>
+ <Patch name="ClassicalPno2" hbank="84" lbank="3" prog="64"/>
+ <Patch name="ClassicalPno3" hbank="84" lbank="3" prog="65"/>
+ <Patch name="ClassicalPno4" hbank="84" lbank="3" prog="66"/>
+ <Patch name="Harpsichord1" hbank="84" lbank="3" prog="67"/>
+ <Patch name="Harpsichord2" hbank="84" lbank="3" prog="68"/>
+ <Patch name="Harpsichord3" hbank="84" lbank="3" prog="69"/>
+ <Patch name="Harpsichord4" hbank="84" lbank="3" prog="70"/>
+ <Patch name="Celesta1" hbank="84" lbank="3" prog="71"/>
+ <Patch name="Celesta2" hbank="84" lbank="3" prog="72"/>
+ <Patch name="Celesta3" hbank="84" lbank="3" prog="73"/>
+ <Patch name="Glockenleste" hbank="84" lbank="3" prog="74"/>
+ <Patch name="Marimba" hbank="84" lbank="3" prog="75"/>
+ <Patch name="Bass Marimba1" hbank="84" lbank="3" prog="76"/>
+ <Patch name="Bass Marimba2" hbank="84" lbank="3" prog="77"/>
+ <Patch name="Vibe" hbank="84" lbank="3" prog="78"/>
+ <Patch name="Xylophone 1" hbank="84" lbank="3" prog="79"/>
+ <Patch name="Xylophone 2" hbank="84" lbank="3" prog="80"/>
+ <Patch name="Xylophone 3" hbank="84" lbank="3" prog="81"/>
+ <Patch name="Glocken 1" hbank="84" lbank="3" prog="82"/>
+ <Patch name="Glocken 2" hbank="84" lbank="3" prog="83"/>
+ <Patch name="Church Bells1" hbank="84" lbank="3" prog="84"/>
+ <Patch name="Church Bells2" hbank="84" lbank="3" prog="85"/>
+ <Patch name="Church Bells3" hbank="84" lbank="3" prog="86"/>
+ <Patch name="Tubular Bells1" hbank="84" lbank="3" prog="87"/>
+ <Patch name="Tubular Bells2" hbank="84" lbank="3" prog="88"/>
+ <Patch name="Big Tubulars" hbank="84" lbank="3" prog="89"/>
+ <Patch name="Dawning!" hbank="84" lbank="3" prog="90"/>
+ <Patch name="MalletStack1" hbank="84" lbank="3" prog="91"/>
+ <Patch name="MalletStack2" hbank="84" lbank="3" prog="92"/>
+ <Patch name="MalletStack3" hbank="84" lbank="3" prog="93"/>
+ <Patch name="MalletStack4" hbank="84" lbank="3" prog="94"/>
+ <Patch name="MalletStack5" hbank="84" lbank="3" prog="95"/>
+ <Patch name="MalletStack6" hbank="84" lbank="3" prog="96"/>
+ <Patch name="MalletStack7" hbank="84" lbank="3" prog="97"/>
+ <Patch name="Choir 1" hbank="84" lbank="3" prog="98"/>
+ <Patch name="Choir 2" hbank="84" lbank="3" prog="99"/>
+ <Patch name="Snare Drum" hbank="84" lbank="3" prog="100"/>
+ <Patch name="Concert Snr1" hbank="84" lbank="3" prog="101"/>
+ <Patch name="Concert Snr2" hbank="84" lbank="3" prog="102"/>
+ <Patch name="Snr Roll" hbank="84" lbank="3" prog="103"/>
+ <Patch name="Concert BD 1" hbank="84" lbank="3" prog="104"/>
+ <Patch name="Concert Bd 2" hbank="84" lbank="3" prog="105"/>
+ <Patch name="Bd Roll" hbank="84" lbank="3" prog="106"/>
+ <Patch name="Timpani 1" hbank="84" lbank="3" prog="107"/>
+ <Patch name="Timpani 2" hbank="84" lbank="3" prog="108"/>
+ <Patch name="Timpani 3" hbank="84" lbank="3" prog="109"/>
+ <Patch name="Timpani 4" hbank="84" lbank="3" prog="110"/>
+ <Patch name="Tam Tam" hbank="84" lbank="3" prog="111"/>
+ <Patch name="Gong" hbank="84" lbank="3" prog="112"/>
+ <Patch name="Piatti!!" hbank="84" lbank="3" prog="113"/>
+ <Patch name="Sleigh Bells" hbank="84" lbank="3" prog="114"/>
+ <Patch name="Slap Stick" hbank="84" lbank="3" prog="115"/>
+ <Patch name="Wind Chimes 1" hbank="84" lbank="3" prog="116"/>
+ <Patch name="Wind Chimes 2" hbank="84" lbank="3" prog="117"/>
+ <Patch name="Tamborine" hbank="84" lbank="3" prog="118"/>
+ <Patch name="Castanets" hbank="84" lbank="3" prog="119"/>
+ <Patch name="RythmSet" hbank="84" lbank="3" prog="120"/>
+ <Patch name="Perc Hit 1" hbank="84" lbank="3" prog="121"/>
+ <Patch name="Perc Hit 2" hbank="84" lbank="3" prog="122"/>
+ <Patch name="Perc Hit 3" hbank="84" lbank="3" prog="123"/>
+ <Patch name="Presenting" hbank="84" lbank="3" prog="124"/>
+ <Patch name="Presto!" hbank="84" lbank="3" prog="125"/>
+ <Patch name="Christmas" hbank="84" lbank="3" prog="126"/>
+ </PatchGroup>
+ <PatchGroup name="XP-C, part 1">
+ <Patch name="Teknoperator (132)" hbank="84" lbank="4" prog="0"/>
+ <Patch name="Transmission (144)" hbank="84" lbank="4" prog="1"/>
+ <Patch name="X-Tronic Jam (120)" hbank="84" lbank="4" prog="2"/>
+ <Patch name="Dirt Jungle (160)" hbank="84" lbank="4" prog="3"/>
+ <Patch name="DJ Spinnin (151)" hbank="84" lbank="4" prog="4"/>
+ <Patch name="Zipper Beat (151)" hbank="84" lbank="4" prog="5"/>
+ <Patch name="Tribal House (151)" hbank="84" lbank="4" prog="6"/>
+ <Patch name="Obsession (144)" hbank="84" lbank="4" prog="7"/>
+ <Patch name="Sonic Empire (144)" hbank="84" lbank="4" prog="8"/>
+ <Patch name="Double Dutch (140)" hbank="84" lbank="4" prog="9"/>
+ <Patch name="E-tronicBoom (116)" hbank="84" lbank="4" prog="10"/>
+ <Patch name="Chillout =-&gt; (116)" hbank="84" lbank="4" prog="11"/>
+ <Patch name="MecaTrip-Hop (90)" hbank="84" lbank="4" prog="12"/>
+ <Patch name="Hero Beat (90)" hbank="84" lbank="4" prog="13"/>
+ <Patch name="Hit House (120)" hbank="84" lbank="4" prog="14"/>
+ <Patch name="Voco Groove (122)" hbank="84" lbank="4" prog="15"/>
+ <Patch name="Hell Fire (151)" hbank="84" lbank="4" prog="16"/>
+ <Patch name="Lo:BD Hi:HH(144)" hbank="84" lbank="4" prog="17"/>
+ <Patch name="Detroit+Perc (132)" hbank="84" lbank="4" prog="18"/>
+ <Patch name="Crossfader (120)" hbank="84" lbank="4" prog="19"/>
+ <Patch name="Soft &amp; Hard (120)" hbank="84" lbank="4" prog="20"/>
+ <Patch name="Space Shake (130)" hbank="84" lbank="4" prog="21"/>
+ <Patch name="Under Ether (85)" hbank="84" lbank="4" prog="22"/>
+ <Patch name="Confusion (147)" hbank="84" lbank="4" prog="23"/>
+ <Patch name="Amsterdamer (184)" hbank="84" lbank="4" prog="24"/>
+ <Patch name="House that? (120)" hbank="84" lbank="4" prog="25"/>
+ <Patch name="Phrase Menu" hbank="84" lbank="4" prog="26"/>
+ <Patch name="Cyber-Trance" hbank="84" lbank="4" prog="27"/>
+ <Patch name="Creator" hbank="84" lbank="4" prog="28"/>
+ <Patch name="Etherality" hbank="84" lbank="4" prog="29"/>
+ <Patch name="Unplugged" hbank="84" lbank="4" prog="30"/>
+ <Patch name="Acid Melt" hbank="84" lbank="4" prog="31"/>
+ <Patch name="Brain Waves" hbank="84" lbank="4" prog="32"/>
+ <Patch name="1Shot groove" hbank="84" lbank="4" prog="33"/>
+ <Patch name="FirstContact" hbank="84" lbank="4" prog="34"/>
+ <Patch name="Ambient S/H" hbank="84" lbank="4" prog="35"/>
+ <Patch name="Deep Machine" hbank="84" lbank="4" prog="36"/>
+ <Patch name="Big Blue" hbank="84" lbank="4" prog="37"/>
+ <Patch name="TeeBee V/Sw" hbank="84" lbank="4" prog="38"/>
+ <Patch name="303 Agressor" hbank="84" lbank="4" prog="39"/>
+ <Patch name="TB or not TB" hbank="84" lbank="4" prog="40"/>
+ <Patch name="HiLo303ModSw" hbank="84" lbank="4" prog="41"/>
+ <Patch name="2Square Bass" hbank="84" lbank="4" prog="42"/>
+ <Patch name="303 HollowBs" hbank="84" lbank="4" prog="43"/>
+ <Patch name="303 Bass" hbank="84" lbank="4" prog="44"/>
+ <Patch name="TB Saw Bass" hbank="84" lbank="4" prog="45"/>
+ <Patch name="303 Ow Bass" hbank="84" lbank="4" prog="46"/>
+ <Patch name="TB Square 1" hbank="84" lbank="4" prog="47"/>
+ <Patch name="TB Square 2" hbank="84" lbank="4" prog="48"/>
+ <Patch name="TB Square 3" hbank="84" lbank="4" prog="49"/>
+ <Patch name="Solid Bass 1" hbank="84" lbank="4" prog="50"/>
+ <Patch name="Solid Bass 2" hbank="84" lbank="4" prog="51"/>
+ <Patch name="FM Tube Bass" hbank="84" lbank="4" prog="52"/>
+ <Patch name="Drum'n'Bass" hbank="84" lbank="4" prog="53"/>
+ <Patch name="Sub Bass" hbank="84" lbank="4" prog="54"/>
+ <Patch name="Dirty Bass" hbank="84" lbank="4" prog="55"/>
+ <Patch name="Gate Me Buzz" hbank="84" lbank="4" prog="56"/>
+ <Patch name="Comprex Bass" hbank="84" lbank="4" prog="57"/>
+ <Patch name="Bass Invader" hbank="84" lbank="4" prog="58"/>
+ <Patch name="Ovdrive Bass" hbank="84" lbank="4" prog="59"/>
+ <Patch name="Housy Bella" hbank="84" lbank="4" prog="60"/>
+ <Patch name="Bassic Needs" hbank="84" lbank="4" prog="61"/>
+ <Patch name="Raver Bass 1" hbank="84" lbank="4" prog="62"/>
+ <Patch name="Raver Bass 2" hbank="84" lbank="4" prog="63"/>
+ <Patch name="Jericho Bass" hbank="84" lbank="4" prog="64"/>
+ <Patch name="Slippy Bass" hbank="84" lbank="4" prog="65"/>
+ <Patch name="Rise Bass" hbank="84" lbank="4" prog="66"/>
+ <Patch name="Cyber Bass" hbank="84" lbank="4" prog="67"/>
+ <Patch name="SH-2000 Bass" hbank="84" lbank="4" prog="68"/>
+ <Patch name="FM Bass" hbank="84" lbank="4" prog="69"/>
+ <Patch name="Razor Bass" hbank="84" lbank="4" prog="70"/>
+ <Patch name="SquelchyBass" hbank="84" lbank="4" prog="71"/>
+ <Patch name="RaversBass" hbank="84" lbank="4" prog="72"/>
+ <Patch name="Compu Bass" hbank="84" lbank="4" prog="73"/>
+ <Patch name="Jump Bass" hbank="84" lbank="4" prog="74"/>
+ <Patch name="VocoBass" hbank="84" lbank="4" prog="75"/>
+ <Patch name="Vocoder Menu" hbank="84" lbank="4" prog="76"/>
+ <Patch name="1.2.3.4. BPM" hbank="84" lbank="4" prog="77"/>
+ <Patch name="Teknmusic" hbank="84" lbank="4" prog="78"/>
+ <Patch name="Retrocoder" hbank="84" lbank="4" prog="79"/>
+ <Patch name="u/i/e/0 V/Sw" hbank="84" lbank="4" prog="80"/>
+ <Patch name="Talk Box 1" hbank="84" lbank="4" prog="81"/>
+ <Patch name="Talk Box 2" hbank="84" lbank="4" prog="82"/>
+ <Patch name="VT Vox" hbank="84" lbank="4" prog="83"/>
+ <Patch name="Artificial" hbank="84" lbank="4" prog="84"/>
+ <Patch name="Barivoise" hbank="84" lbank="4" prog="85"/>
+ <Patch name="After D !" hbank="84" lbank="4" prog="86"/>
+ <Patch name="ARPsychea" hbank="84" lbank="4" prog="87"/>
+ <Patch name="Vintage Call" hbank="84" lbank="4" prog="88"/>
+ <Patch name="HarmoChimer" hbank="84" lbank="4" prog="89"/>
+ <Patch name="Ring Bell" hbank="84" lbank="4" prog="90"/>
+ <Patch name="260 &amp; Juno" hbank="84" lbank="4" prog="91"/>
+ <Patch name="260 Midi" hbank="84" lbank="4" prog="92"/>
+ <Patch name="Squarekeys 2" hbank="84" lbank="4" prog="93"/>
+ <Patch name="Pure Sine" hbank="84" lbank="4" prog="94"/>
+ <Patch name="Ambient ORG" hbank="84" lbank="4" prog="95"/>
+ <Patch name="JX Planet" hbank="84" lbank="4" prog="96"/>
+ <Patch name="Clavi-Club" hbank="84" lbank="4" prog="97"/>
+ <Patch name="Sweep Clav 2" hbank="84" lbank="4" prog="98"/>
+ <Patch name="SquareTek" hbank="84" lbank="4" prog="99"/>
+ <Patch name="Retro Party" hbank="84" lbank="4" prog="100"/>
+ <Patch name="Rave Nature" hbank="84" lbank="4" prog="101"/>
+ <Patch name="Alias Square" hbank="84" lbank="4" prog="102"/>
+ <Patch name="Dirty Stack" hbank="84" lbank="4" prog="103"/>
+ <Patch name="Phenomena" hbank="84" lbank="4" prog="104"/>
+ <Patch name="Music Hi" hbank="84" lbank="4" prog="105"/>
+ <Patch name="Euro-Dance 1" hbank="84" lbank="4" prog="106"/>
+ <Patch name="Euro-Dance 2" hbank="84" lbank="4" prog="107"/>
+ <Patch name="Dance Stack" hbank="84" lbank="4" prog="108"/>
+ <Patch name="Raver Blade" hbank="84" lbank="4" prog="109"/>
+ <Patch name="White Gloves" hbank="84" lbank="4" prog="110"/>
+ <Patch name="Touchdown" hbank="84" lbank="4" prog="111"/>
+ <Patch name="Rave Station" hbank="84" lbank="4" prog="112"/>
+ <Patch name="Time Warp" hbank="84" lbank="4" prog="113"/>
+ <Patch name="Thin Rave" hbank="84" lbank="4" prog="114"/>
+ <Patch name="Igor Circus" hbank="84" lbank="4" prog="115"/>
+ <Patch name="Alpha Zone" hbank="84" lbank="4" prog="116"/>
+ <Patch name="Stars March" hbank="84" lbank="4" prog="117"/>
+ <Patch name="JP Velo-Saw" hbank="84" lbank="4" prog="118"/>
+ <Patch name="Rich Teeth" hbank="84" lbank="4" prog="119"/>
+ <Patch name="After Saw" hbank="84" lbank="4" prog="120"/>
+ <Patch name="Saw Cocktail" hbank="84" lbank="4" prog="121"/>
+ <Patch name="Poly Message" hbank="84" lbank="4" prog="122"/>
+ <Patch name="Xpressive" hbank="84" lbank="4" prog="123"/>
+ <Patch name="Earblower" hbank="84" lbank="4" prog="124"/>
+ <Patch name="Cutting Edge" hbank="84" lbank="4" prog="125"/>
+ <Patch name="Stalactica" hbank="84" lbank="4" prog="126"/>
+ <Patch name="LA Heaven" hbank="84" lbank="4" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="XP-C, part 2">
+ <Patch name="Euforia" hbank="84" lbank="5" prog="0"/>
+ <Patch name="Labo-Feedback" hbank="84" lbank="5" prog="1"/>
+ <Patch name="Banded Jupe" hbank="84" lbank="5" prog="2"/>
+ <Patch name="Killer Pad" hbank="84" lbank="5" prog="3"/>
+ <Patch name="Mystic Pad" hbank="84" lbank="5" prog="4"/>
+ <Patch name="D-Mention" hbank="84" lbank="5" prog="5"/>
+ <Patch name="X-Hale" hbank="84" lbank="5" prog="6"/>
+ <Patch name="Sirena" hbank="84" lbank="5" prog="7"/>
+ <Patch name="After's Pad" hbank="84" lbank="5" prog="8"/>
+ <Patch name="Warmer Pad" hbank="84" lbank="5" prog="9"/>
+ <Patch name="Phatt Pad" hbank="84" lbank="5" prog="10"/>
+ <Patch name="OB Sweep Pad" hbank="84" lbank="5" prog="11"/>
+ <Patch name="Murk Pad" hbank="84" lbank="5" prog="12"/>
+ <Patch name="Dense Floor" hbank="84" lbank="5" prog="13"/>
+ <Patch name="SecretMelody" hbank="84" lbank="5" prog="14"/>
+ <Patch name="Vaporish" hbank="84" lbank="5" prog="15"/>
+ <Patch name="Vintage Revo" hbank="84" lbank="5" prog="16"/>
+ <Patch name="Liquid Sky" hbank="84" lbank="5" prog="17"/>
+ <Patch name="Exploration" hbank="84" lbank="5" prog="18"/>
+ <Patch name="Drama Pad" hbank="84" lbank="5" prog="19"/>
+ <Patch name="Vapor Style" hbank="84" lbank="5" prog="20"/>
+ <Patch name="JP-6 Stack" hbank="84" lbank="5" prog="21"/>
+ <Patch name="Obilator" hbank="84" lbank="5" prog="22"/>
+ <Patch name="Glamour" hbank="84" lbank="5" prog="23"/>
+ <Patch name="Medium Solo" hbank="84" lbank="5" prog="24"/>
+ <Patch name="Singing'Mini" hbank="84" lbank="5" prog="25"/>
+ <Patch name="Analog Flute" hbank="84" lbank="5" prog="26"/>
+ <Patch name="SH-5 Bs/Lead" hbank="84" lbank="5" prog="27"/>
+ <Patch name="Classy Pulse" hbank="84" lbank="5" prog="28"/>
+ <Patch name="Jupiter-6 Ld" hbank="84" lbank="5" prog="29"/>
+ <Patch name="Just Lovely" hbank="84" lbank="5" prog="30"/>
+ <Patch name="DJ Devil" hbank="84" lbank="5" prog="31"/>
+ <Patch name="Simply June" hbank="84" lbank="5" prog="32"/>
+ <Patch name="Mr. Raw SAW" hbank="84" lbank="5" prog="33"/>
+ <Patch name="Crispy Lead" hbank="84" lbank="5" prog="34"/>
+ <Patch name="Dirty Lead 2" hbank="84" lbank="5" prog="35"/>
+ <Patch name="Disto Stack" hbank="84" lbank="5" prog="36"/>
+ <Patch name="Velo Cheez" hbank="84" lbank="5" prog="37"/>
+ <Patch name="Noiz Mania" hbank="84" lbank="5" prog="38"/>
+ <Patch name="Power Mutes" hbank="84" lbank="5" prog="39"/>
+ <Patch name="V-Beep" hbank="84" lbank="5" prog="40"/>
+ <Patch name="Freaky Fry" hbank="84" lbank="5" prog="41"/>
+ <Patch name="SQ Formule" hbank="84" lbank="5" prog="42"/>
+ <Patch name="DirtyOrgan 2" hbank="84" lbank="5" prog="43"/>
+ <Patch name="Oldies Organ" hbank="84" lbank="5" prog="44"/>
+ <Patch name="Edgy Organ" hbank="84" lbank="5" prog="45"/>
+ <Patch name="Juno Organ" hbank="84" lbank="5" prog="46"/>
+ <Patch name="Space Organ X" hbank="84" lbank="5" prog="47"/>
+ <Patch name="Cabin Organ" hbank="84" lbank="5" prog="48"/>
+ <Patch name="Dream Organ" hbank="84" lbank="5" prog="49"/>
+ <Patch name="Club Organ" hbank="84" lbank="5" prog="50"/>
+ <Patch name="Perc. Organ" hbank="84" lbank="5" prog="51"/>
+ <Patch name="Organ Stabs" hbank="84" lbank="5" prog="52"/>
+ <Patch name="Techno Pizz" hbank="84" lbank="5" prog="53"/>
+ <Patch name="Captain Pizz" hbank="84" lbank="5" prog="54"/>
+ <Patch name="Pizzatek" hbank="84" lbank="5" prog="55"/>
+ <Patch name="Sleepless" hbank="84" lbank="5" prog="56"/>
+ <Patch name="Mega 5th 2" hbank="84" lbank="5" prog="57"/>
+ <Patch name="Chord Maj7th" hbank="84" lbank="5" prog="58"/>
+ <Patch name="Chord Min7th" hbank="84" lbank="5" prog="59"/>
+ <Patch name="5thDimension" hbank="84" lbank="5" prog="60"/>
+ <Patch name="StateXLChord" hbank="84" lbank="5" prog="61"/>
+ <Patch name="Sixth Sense" hbank="84" lbank="5" prog="62"/>
+ <Patch name="Garage Chord" hbank="84" lbank="5" prog="63"/>
+ <Patch name="Chordmaj7/5-" hbank="84" lbank="5" prog="64"/>
+ <Patch name="Plane EKNO" hbank="84" lbank="5" prog="65"/>
+ <Patch name="Optimum Rave" hbank="84" lbank="5" prog="66"/>
+ <Patch name="Arpege Me" hbank="84" lbank="5" prog="67"/>
+ <Patch name="VTransformer" hbank="84" lbank="5" prog="68"/>
+ <Patch name="Analog attax" hbank="84" lbank="5" prog="69"/>
+ <Patch name="Maxi fuzzy !" hbank="84" lbank="5" prog="70"/>
+ <Patch name="Only By FXM" hbank="84" lbank="5" prog="71"/>
+ <Patch name="Hit &amp; Run" hbank="84" lbank="5" prog="72"/>
+ <Patch name="Photon Attak" hbank="84" lbank="5" prog="73"/>
+ <Patch name="Predator" hbank="84" lbank="5" prog="74"/>
+ <Patch name="Village Hit" hbank="84" lbank="5" prog="75"/>
+ <Patch name="Hardcore Hit" hbank="84" lbank="5" prog="76"/>
+ <Patch name="Short Chord" hbank="84" lbank="5" prog="77"/>
+ <Patch name="ShortCircuit" hbank="84" lbank="5" prog="78"/>
+ <Patch name="SonofaPitch" hbank="84" lbank="5" prog="79"/>
+ <Patch name="Flutish SQUR" hbank="84" lbank="5" prog="80"/>
+ <Patch name="FazzyCow 808" hbank="84" lbank="5" prog="81"/>
+ <Patch name="Blurpy" hbank="84" lbank="5" prog="82"/>
+ <Patch name="Static Hit" hbank="84" lbank="5" prog="83"/>
+ <Patch name="HiAttack" hbank="84" lbank="5" prog="84"/>
+ <Patch name="TonalTension" hbank="84" lbank="5" prog="85"/>
+ <Patch name="Jungle Stabs" hbank="84" lbank="5" prog="86"/>
+ <Patch name="Buzz Machine" hbank="84" lbank="5" prog="87"/>
+ <Patch name="Zapper" hbank="84" lbank="5" prog="88"/>
+ <Patch name="Blip" hbank="84" lbank="5" prog="89"/>
+ <Patch name="Iron Hit" hbank="84" lbank="5" prog="90"/>
+ <Patch name="Headz Direct" hbank="84" lbank="5" prog="91"/>
+ <Patch name="Scratchy Hit" hbank="84" lbank="5" prog="92"/>
+ <Patch name="Hit&amp;IndsMenu" hbank="84" lbank="5" prog="93"/>
+ <Patch name="GTR FX Menu" hbank="84" lbank="5" prog="94"/>
+ <Patch name="GTR Power 1" hbank="84" lbank="5" prog="95"/>
+ <Patch name="GTR Power 2" hbank="84" lbank="5" prog="96"/>
+ <Patch name="Snr Menu 1" hbank="84" lbank="5" prog="97"/>
+ <Patch name="Snr Menu 2" hbank="84" lbank="5" prog="98"/>
+ <Patch name="Kick Menu" hbank="84" lbank="5" prog="99"/>
+ <Patch name="Hi Hat Menu" hbank="84" lbank="5" prog="100"/>
+ <Patch name="Perc Menu" hbank="84" lbank="5" prog="101"/>
+ <Patch name="Tom&amp;Cym Menu" hbank="84" lbank="5" prog="102"/>
+ <Patch name="Metal Dream" hbank="84" lbank="5" prog="103"/>
+ <Patch name="System D" hbank="84" lbank="5" prog="104"/>
+ <Patch name="Mayday Ring" hbank="84" lbank="5" prog="105"/>
+ <Patch name="Industrial" hbank="84" lbank="5" prog="106"/>
+ <Patch name="Tranceporter" hbank="84" lbank="5" prog="107"/>
+ <Patch name="Acid Copter" hbank="84" lbank="5" prog="108"/>
+ <Patch name="Roll Over" hbank="84" lbank="5" prog="109"/>
+ <Patch name="Gimme aBreak" hbank="84" lbank="5" prog="110"/>
+ <Patch name="RadicalAbuse" hbank="84" lbank="5" prog="111"/>
+ <Patch name="Echodrome" hbank="84" lbank="5" prog="112"/>
+ <Patch name="Trance Chime" hbank="84" lbank="5" prog="113"/>
+ <Patch name="Altamira" hbank="84" lbank="5" prog="114"/>
+ <Patch name="Locko Motif" hbank="84" lbank="5" prog="115"/>
+ <Patch name="SpaceFactory" hbank="84" lbank="5" prog="116"/>
+ <Patch name="Get Busy" hbank="84" lbank="5" prog="117"/>
+ <Patch name="Ayers Rock" hbank="84" lbank="5" prog="118"/>
+ <Patch name="Altern Saw" hbank="84" lbank="5" prog="119"/>
+ <Patch name="JP-6 Sync" hbank="84" lbank="5" prog="120"/>
+ <Patch name="Cold JX" hbank="84" lbank="5" prog="121"/>
+ <Patch name="Fancy Pad" hbank="84" lbank="5" prog="122"/>
+ <Patch name="Tune Breath" hbank="84" lbank="5" prog="123"/>
+ <Patch name="OrchestraGTR" hbank="84" lbank="5" prog="124"/>
+ <Patch name="Gtr Sweep" hbank="84" lbank="5" prog="125"/>
+ <Patch name="Trilly" hbank="84" lbank="5" prog="126"/>
+ <Patch name="Good Bye Spk" hbank="84" lbank="5" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Rhytm (Ch 10 only)">
+ <Patch name="House Drum Set 1" hbank="80" lbank="0" prog="0"/>
+ <Patch name="Jazz Drum Set 1" hbank="80" lbank="0" prog="1"/>
+ <Patch name="Pop Drum Set 1" hbank="81" lbank="0" prog="0"/>
+ <Patch name="Pop Drum Set 2" hbank="81" lbank="0" prog="1"/>
+ <Patch name="Power Drum Set" hbank="81" lbank="1" prog="0"/>
+ <Patch name="Rave Drum Set" hbank="81" lbank="1" prog="1"/>
+ <Patch name="Jazz Drum Set 2" hbank="81" lbank="2" prog="0"/>
+ <Patch name="Orch Drum Set" hbank="81" lbank="2" prog="1"/>
+ <Patch name="GM Drum Set" hbank="81" lbank="3" prog="0"/>
+ <Patch name="Brush Drum Set" hbank="81" lbank="3" prog="1"/>
+ <Patch name="Power Drum Set 2" hbank="81" lbank="4" prog="0"/>
+ <Patch name="Power Rave Set" hbank="81" lbank="4" prog="1"/>
+ <Patch name="Session Set 1" hbank="84" lbank="0" prog="0"/>
+ <Patch name="Session Set 2" hbank="84" lbank="0" prog="1"/>
+ <Patch name="Session Set 3" hbank="84" lbank="0" prog="2"/>
+ <Patch name="Session Set 4" hbank="84" lbank="0" prog="3"/>
+ <Patch name="Session Set 5" hbank="84" lbank="0" prog="4"/>
+ <Patch name="Session Set 6" hbank="84" lbank="0" prog="5"/>
+ <Patch name="Session Set 7" hbank="84" lbank="0" prog="6"/>
+ <Patch name="Demo Drum" hbank="84" lbank="0" prog="7"/>
+ <Patch name="TR-909 Set" hbank="84" lbank="4" prog="0"/>
+ <Patch name="TR-808 Set" hbank="84" lbank="4" prog="1"/>
+ <Patch name="TR-606 Set" hbank="84" lbank="4" prog="2"/>
+ <Patch name="Techno Set" hbank="84" lbank="4" prog="3"/>
+ <Patch name="House Set" hbank="84" lbank="4" prog="4"/>
+ <Patch name="Jungle Set" hbank="84" lbank="4" prog="5"/>
+ <Patch name="Gabba Set 1" hbank="84" lbank="4" prog="6"/>
+ <Patch name="Industrial Set 1" hbank="84" lbank="4" prog="7"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Roland_FantomXR.idf b/muse_qt4_evolution/share/instruments/Roland_FantomXR.idf
new file mode 100644
index 00000000..a63af792
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland_FantomXR.idf
@@ -0,0 +1,1419 @@
+<?xml version="1.0"?>
+
+<muse version="1.0">
+
+<MidiInstrument name="Roland Fantom XR">
+
+<Init>
+</Init>
+
+ <PatchGroup name="GM2 Drum Kits">
+ <Patch name="GM2 STANDARD" mode="7" drum="1" hbank="120" lbank="0" prog="0"/>
+ <Patch name="GM2 ROOM" mode="7" drum="1" hbank="120" lbank="0" prog="8"/>
+ <Patch name="GM2 POWER" mode="7" drum="1" hbank="120" lbank="0" prog="16"/>
+ <Patch name="GM2 ELECTRIC" mode="7" drum="1" hbank="120" lbank="0" prog="24"/>
+ <Patch name="GM2 ANALOG" mode="7" drum="1" hbank="120" lbank="0" prog="25"/>
+ <Patch name="GM2 JAZZ" mode="7" drum="1" hbank="120" lbank="0" prog="32"/>
+ <Patch name="GM2 BRUSH" mode="7" drum="1" hbank="120" lbank="0" prog="40"/>
+ <Patch name="GM2 ORCHESTRA" mode="7" drum="1" hbank="120" lbank="0" prog="48"/>
+ <Patch name="GM2 SFX" mode="7" drum="1" hbank="120" lbank="0" prog="56"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Acoustic Piano">
+ <Patch name="Piano 1" mode="7" drum="0" hbank="121" lbank="0" prog="0"/>
+ <Patch name="Piano 1w" mode="7" drum="0" hbank="121" lbank="1" prog="0"/>
+ <Patch name="European Pf" mode="7" drum="0" hbank="121" lbank="2" prog="0"/>
+ <Patch name="Piano 2" mode="7" drum="0" hbank="121" lbank="0" prog="1"/>
+ <Patch name="Piano 2w" mode="7" drum="0" hbank="121" lbank="1" prog="1"/>
+ <Patch name="Piano 3" mode="7" drum="0" hbank="121" lbank="0" prog="2"/>
+ <Patch name="Piano 3w" mode="7" drum="0" hbank="121" lbank="1" prog="2"/>
+ <Patch name="Honky-tonk" mode="7" drum="0" hbank="121" lbank="0" prog="3"/>
+ <Patch name="Honky-tonk 2" mode="7" drum="0" hbank="121" lbank="1" prog="3"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Electric Piano">
+ <Patch name="E.Piano 1" mode="7" drum="0" hbank="121" lbank="0" prog="4"/>
+ <Patch name="St.Soft EP" mode="7" drum="0" hbank="121" lbank="1" prog="4"/>
+ <Patch name="FM+SA EP" mode="7" drum="0" hbank="121" lbank="2" prog="4"/>
+ <Patch name="60s Rhodes" mode="7" drum="0" hbank="121" lbank="3" prog="4"/>
+ <Patch name="E.Piano 2" mode="7" drum="0" hbank="121" lbank="0" prog="5"/>
+ <Patch name="Detuned EP 2" mode="7" drum="0" hbank="121" lbank="1" prog="5"/>
+ <Patch name="St.FM EP" mode="7" drum="0" hbank="121" lbank="2" prog="5"/>
+ <Patch name="EP Legend" mode="7" drum="0" hbank="121" lbank="3" prog="5"/>
+ <Patch name="EP Phase" mode="7" drum="0" hbank="121" lbank="4" prog="5"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Keyboards">
+ <Patch name="Harpsichord" mode="7" drum="0" hbank="121" lbank="0" prog="6"/>
+ <Patch name="Coupled Hps." mode="7" drum="0" hbank="121" lbank="1" prog="6"/>
+ <Patch name="Harpsi.w" mode="7" drum="0" hbank="121" lbank="2" prog="6"/>
+ <Patch name="Harpsi.o" mode="7" drum="0" hbank="121" lbank="3" prog="6"/>
+ <Patch name="Clav." mode="7" drum="0" hbank="121" lbank="0" prog="7"/>
+ <Patch name="Pulse Clav" mode="7" drum="0" hbank="121" lbank="1" prog="7"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Mallet">
+ <Patch name="Celesta" mode="7" drum="0" hbank="121" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" mode="7" drum="0" hbank="121" lbank="0" prog="9"/>
+ <Patch name="Music Box" mode="7" drum="0" hbank="121" lbank="0" prog="10"/>
+ <Patch name="Vibraphone" mode="7" drum="0" hbank="121" lbank="0" prog="11"/>
+ <Patch name="Vibraphone w" mode="7" drum="0" hbank="121" lbank="1" prog="11"/>
+ <Patch name="Marimba" mode="7" drum="0" hbank="121" lbank="0" prog="12"/>
+ <Patch name="Marimba w" mode="7" drum="0" hbank="121" lbank="1" prog="12"/>
+ <Patch name="Xylophone" mode="7" drum="0" hbank="121" lbank="0" prog="13"/>
+ <Patch name="Tubular-bell" mode="7" drum="0" hbank="121" lbank="0" prog="14"/>
+ <Patch name="Church Bell" mode="7" drum="0" hbank="121" lbank="1" prog="14"/>
+ <Patch name="Carillon" mode="7" drum="0" hbank="121" lbank="2" prog="14"/>
+ <Patch name="Santur" mode="7" drum="0" hbank="121" lbank="0" prog="15"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Organ and Reed">
+ <Patch name="Organ 1" mode="7" drum="0" hbank="121" lbank="0" prog="16"/>
+ <Patch name="Trem. Organ" mode="7" drum="0" hbank="121" lbank="1" prog="16"/>
+ <Patch name="60s Organ" mode="7" drum="0" hbank="121" lbank="2" prog="16"/>
+ <Patch name="70s E.Organ" mode="7" drum="0" hbank="121" lbank="3" prog="16"/>
+ <Patch name="Organ 2" mode="7" drum="0" hbank="121" lbank="0" prog="17"/>
+ <Patch name="Chorus Or.2" mode="7" drum="0" hbank="121" lbank="1" prog="17"/>
+ <Patch name="Perc. Organ" mode="7" drum="0" hbank="121" lbank="2" prog="17"/>
+ <Patch name="Organ 3" mode="7" drum="0" hbank="121" lbank="0" prog="18"/>
+ <Patch name="Church Org.1" mode="7" drum="0" hbank="121" lbank="0" prog="19"/>
+ <Patch name="Church Org.3" mode="7" drum="0" hbank="121" lbank="2" prog="19"/>
+ <Patch name="Church Org.2" mode="7" drum="0" hbank="121" lbank="1" prog="19"/>
+ <Patch name="Reed Organ" mode="7" drum="0" hbank="121" lbank="0" prog="20"/>
+ <Patch name="Puff Organ" mode="7" drum="0" hbank="121" lbank="1" prog="20"/>
+ <Patch name="Accordion Fr" mode="7" drum="0" hbank="121" lbank="0" prog="21"/>
+ <Patch name="Accordion It" mode="7" drum="0" hbank="121" lbank="1" prog="21"/>
+ <Patch name="Harmonica" mode="7" drum="0" hbank="121" lbank="0" prog="22"/>
+ <Patch name="Bandoneon" mode="7" drum="0" hbank="121" lbank="0" prog="23"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Guitar">
+ <Patch name="Nylon-str.Gt" mode="7" drum="0" hbank="121" lbank="0" prog="24"/>
+ <Patch name="Ukulele" mode="7" drum="0" hbank="121" lbank="1" prog="24"/>
+ <Patch name="Nylon Gt.o" mode="7" drum="0" hbank="121" lbank="2" prog="24"/>
+ <Patch name="Nylon Gt.2" mode="7" drum="0" hbank="121" lbank="3" prog="24"/>
+ <Patch name="Steel-str.Gt" mode="7" drum="0" hbank="121" lbank="0" prog="25"/>
+ <Patch name="12-str.Gt" mode="7" drum="0" hbank="121" lbank="1" prog="25"/>
+ <Patch name="Mandolin" mode="7" drum="0" hbank="121" lbank="2" prog="25"/>
+ <Patch name="Steel + Body" mode="7" drum="0" hbank="121" lbank="3" prog="25"/>
+ <Patch name="Jazz Gt." mode="7" drum="0" hbank="121" lbank="0" prog="26"/>
+ <Patch name="Pedal Steel" mode="7" drum="0" hbank="121" lbank="1" prog="26"/>
+ <Patch name="Clean Gt." mode="7" drum="0" hbank="121" lbank="0" prog="27"/>
+ <Patch name="Chorus Gt." mode="7" drum="0" hbank="121" lbank="1" prog="27"/>
+ <Patch name="Mid Tone GTR" mode="7" drum="0" hbank="121" lbank="2" prog="27"/>
+ <Patch name="Muted Gt." mode="7" drum="0" hbank="121" lbank="0" prog="28"/>
+ <Patch name="Funk Pop" mode="7" drum="0" hbank="121" lbank="1" prog="28"/>
+ <Patch name="Funk Gt.2" mode="7" drum="0" hbank="121" lbank="2" prog="28"/>
+ <Patch name="Jazz Man" mode="7" drum="0" hbank="121" lbank="3" prog="28"/>
+ <Patch name="Overdrive Gt" mode="7" drum="0" hbank="121" lbank="0" prog="29"/>
+ <Patch name="Guitar Pinch" mode="7" drum="0" hbank="121" lbank="1" prog="29"/>
+ <Patch name="DistortionGT" mode="7" drum="0" hbank="121" lbank="0" prog="30"/>
+ <Patch name="Feedback GT." mode="7" drum="0" hbank="121" lbank="1" prog="30"/>
+ <Patch name="Dist Rtm GTR" mode="7" drum="0" hbank="121" lbank="2" prog="30"/>
+ <Patch name="Gt.Harmonics" mode="7" drum="0" hbank="121" lbank="0" prog="31"/>
+ <Patch name="Gt.Feedback" mode="7" drum="0" hbank="121" lbank="1" prog="31"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Bass">
+ <Patch name="Acoustic Bs." mode="7" drum="0" hbank="121" lbank="0" prog="32"/>
+ <Patch name="Fingered Bs." mode="7" drum="0" hbank="121" lbank="0" prog="33"/>
+ <Patch name="Finger Slap" mode="7" drum="0" hbank="121" lbank="1" prog="33"/>
+ <Patch name="Picked Bass" mode="7" drum="0" hbank="121" lbank="0" prog="34"/>
+ <Patch name="Fretless Bs." mode="7" drum="0" hbank="121" lbank="0" prog="35"/>
+ <Patch name="Slap Bass 1" mode="7" drum="0" hbank="121" lbank="0" prog="36"/>
+ <Patch name="Slap Bass 2" mode="7" drum="0" hbank="121" lbank="0" prog="37"/>
+ <Patch name="Synth Bass 1" mode="7" drum="0" hbank="121" lbank="0" prog="38"/>
+ <Patch name="SynthBass101" mode="7" drum="0" hbank="121" lbank="1" prog="38"/>
+ <Patch name="Acid Bass" mode="7" drum="0" hbank="121" lbank="2" prog="38"/>
+ <Patch name="Clavi Bass" mode="7" drum="0" hbank="121" lbank="3" prog="38"/>
+ <Patch name="Hammer" mode="7" drum="0" hbank="121" lbank="4" prog="38"/>
+ <Patch name="Synth Bass2" mode="7" drum="0" hbank="121" lbank="0" prog="39"/>
+ <Patch name="Beef FM Bass" mode="7" drum="0" hbank="121" lbank="1" prog="39"/>
+ <Patch name="RubberBass2" mode="7" drum="0" hbank="121" lbank="2" prog="39"/>
+ <Patch name="Attack Pulse" mode="7" drum="0" hbank="121" lbank="3" prog="39"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Strings">
+ <Patch name="Violin" mode="7" drum="0" hbank="121" lbank="0" prog="40"/>
+ <Patch name="Slow Violin" mode="7" drum="0" hbank="121" lbank="1" prog="40"/>
+ <Patch name="Viola" mode="7" drum="0" hbank="121" lbank="0" prog="41"/>
+ <Patch name="Cello" mode="7" drum="0" hbank="121" lbank="0" prog="42"/>
+ <Patch name="Contrabass" mode="7" drum="0" hbank="121" lbank="0" prog="43"/>
+ <Patch name="Tremolo Str" mode="7" drum="0" hbank="121" lbank="0" prog="44"/>
+ <Patch name="PizzicatoStr" mode="7" drum="0" hbank="121" lbank="0" prog="45"/>
+ <Patch name="Harp" mode="7" drum="0" hbank="121" lbank="0" prog="46"/>
+ <Patch name="Yang Qin" mode="7" drum="0" hbank="121" lbank="1" prog="46"/>
+ <Patch name="Timpani" mode="7" drum="0" hbank="121" lbank="0" prog="47"/>
+ <Patch name="Orche str" mode="7" drum="0" hbank="121" lbank="0" prog="48"/>
+ <Patch name="Orchestra" mode="7" drum="0" hbank="121" lbank="1" prog="48"/>
+ <Patch name="60s Strings" mode="7" drum="0" hbank="121" lbank="2" prog="48"/>
+ <Patch name="Slow Strings" mode="7" drum="0" hbank="121" lbank="0" prog="49"/>
+ <Patch name="Syn.Strings1" mode="7" drum="0" hbank="121" lbank="0" prog="50"/>
+ <Patch name="Syn.Strings3" mode="7" drum="0" hbank="121" lbank="1" prog="50"/>
+ <Patch name="Syn.Strings2" mode="7" drum="0" hbank="121" lbank="0" prog="51"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Voice">
+ <Patch name="Choir Aahs" mode="7" drum="0" hbank="121" lbank="0" prog="52"/>
+ <Patch name="Chorus Aahs" mode="7" drum="0" hbank="121" lbank="1" prog="52"/>
+ <Patch name="Voice Oohs" mode="7" drum="0" hbank="121" lbank="0" prog="53"/>
+ <Patch name="Humming" mode="7" drum="0" hbank="121" lbank="1" prog="53"/>
+ <Patch name="SynVox" mode="7" drum="0" hbank="121" lbank="0" prog="54"/>
+ <Patch name="Analog Voice" mode="7" drum="0" hbank="121" lbank="1" prog="54"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Hit and Brass">
+ <Patch name="OrchestraHit" mode="7" drum="0" hbank="121" lbank="0" prog="55"/>
+ <Patch name="Euro Hit" mode="7" drum="0" hbank="121" lbank="3" prog="55"/>
+ <Patch name="Bass Hit" mode="7" drum="0" hbank="121" lbank="1" prog="55"/>
+ <Patch name="6th Hit" mode="7" drum="0" hbank="121" lbank="2" prog="55"/>
+ <Patch name="Trumpet" mode="7" drum="0" hbank="121" lbank="0" prog="56"/>
+ <Patch name="Dark Trumpet" mode="7" drum="0" hbank="121" lbank="1" prog="56"/>
+ <Patch name="Trombone" mode="7" drum="0" hbank="121" lbank="0" prog="57"/>
+ <Patch name="Trombone 2" mode="7" drum="0" hbank="121" lbank="1" prog="57"/>
+ <Patch name="Bright Tb" mode="7" drum="0" hbank="121" lbank="2" prog="57"/>
+ <Patch name="Tuba" mode="7" drum="0" hbank="121" lbank="0" prog="58"/>
+ <Patch name="MutedTrumpet" mode="7" drum="0" hbank="121" lbank="0" prog="59"/>
+ <Patch name="MuteTrumpet2" mode="7" drum="0" hbank="121" lbank="1" prog="59"/>
+ <Patch name="French Horns" mode="7" drum="0" hbank="121" lbank="0" prog="60"/>
+ <Patch name="Fr.Horn 2" mode="7" drum="0" hbank="121" lbank="1" prog="60"/>
+ <Patch name="Brass 1" mode="7" drum="0" hbank="121" lbank="0" prog="61"/>
+ <Patch name="Brass 2" mode="7" drum="0" hbank="121" lbank="1" prog="61"/>
+ <Patch name="Synth Brass1" mode="7" drum="0" hbank="121" lbank="0" prog="62"/>
+ <Patch name="Pro Brass" mode="7" drum="0" hbank="121" lbank="1" prog="62"/>
+ <Patch name="Oct SynBrass" mode="7" drum="0" hbank="121" lbank="2" prog="62"/>
+ <Patch name="Jump Brass" mode="7" drum="0" hbank="121" lbank="3" prog="62"/>
+ <Patch name="Synth Brass2" mode="7" drum="0" hbank="121" lbank="0" prog="63"/>
+ <Patch name="SynBrass sfz" mode="7" drum="0" hbank="121" lbank="1" prog="63"/>
+ <Patch name="Velo Brass 1" mode="7" drum="0" hbank="121" lbank="2" prog="63"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Orch. Reeds">
+ <Patch name="Soprano Sax" mode="7" drum="0" hbank="121" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" mode="7" drum="0" hbank="121" lbank="0" prog="65"/>
+ <Patch name="Tenor Sax" mode="7" drum="0" hbank="121" lbank="0" prog="66"/>
+ <Patch name="Baritone Sax" mode="7" drum="0" hbank="121" lbank="0" prog="67"/>
+ <Patch name="Oboe" mode="7" drum="0" hbank="121" lbank="0" prog="68"/>
+ <Patch name="English Horn" mode="7" drum="0" hbank="121" lbank="0" prog="69"/>
+ <Patch name="Bassoon" mode="7" drum="0" hbank="121" lbank="0" prog="70"/>
+ <Patch name="Clarinet" mode="7" drum="0" hbank="121" lbank="0" prog="71"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Flute and Wind">
+ <Patch name="Piccolo" mode="7" drum="0" hbank="121" lbank="0" prog="72"/>
+ <Patch name="Flute" mode="7" drum="0" hbank="121" lbank="0" prog="73"/>
+ <Patch name="Recorder" mode="7" drum="0" hbank="121" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" mode="7" drum="0" hbank="121" lbank="0" prog="75"/>
+ <Patch name="Bottle Blow" mode="7" drum="0" hbank="121" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" mode="7" drum="0" hbank="121" lbank="0" prog="77"/>
+ <Patch name="Whistle" mode="7" drum="0" hbank="121" lbank="0" prog="78"/>
+ <Patch name="Ocarina" mode="7" drum="0" hbank="121" lbank="0" prog="79"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Synthesizer">
+ <Patch name="Square Wave" mode="7" drum="0" hbank="121" lbank="0" prog="80"/>
+ <Patch name="MG Square" mode="7" drum="0" hbank="121" lbank="1" prog="80"/>
+ <Patch name="2600 Sine" mode="7" drum="0" hbank="121" lbank="2" prog="80"/>
+ <Patch name="Saw Wave" mode="7" drum="0" hbank="121" lbank="0" prog="81"/>
+ <Patch name="OB2 Saw" mode="7" drum="0" hbank="121" lbank="1" prog="81"/>
+ <Patch name="Doctor Solo" mode="7" drum="0" hbank="121" lbank="2" prog="81"/>
+ <Patch name="Natural Lead" mode="7" drum="0" hbank="121" lbank="3" prog="81"/>
+ <Patch name="SequencedSaw" mode="7" drum="0" hbank="121" lbank="4" prog="81"/>
+ <Patch name="Syn.Calliope" mode="7" drum="0" hbank="121" lbank="0" prog="82"/>
+ <Patch name="Chiffer Lead" mode="7" drum="0" hbank="121" lbank="0" prog="83"/>
+ <Patch name="Charang" mode="7" drum="0" hbank="121" lbank="0" prog="84"/>
+ <Patch name="Wire Lead" mode="7" drum="0" hbank="121" lbank="1" prog="84"/>
+ <Patch name="Solo Vox" mode="7" drum="0" hbank="121" lbank="0" prog="85"/>
+ <Patch name="5th Saw Wave" mode="7" drum="0" hbank="121" lbank="0" prog="86"/>
+ <Patch name="Bass and Lead" mode="7" drum="0" hbank="121" lbank="0" prog="87"/>
+ <Patch name="Delayed Lead" mode="7" drum="0" hbank="121" lbank="1" prog="87"/>
+ <Patch name="Fantasia" mode="7" drum="0" hbank="121" lbank="0" prog="88"/>
+ <Patch name="Warm Pad" mode="7" drum="0" hbank="121" lbank="0" prog="89"/>
+ <Patch name="Sine Pad" mode="7" drum="0" hbank="121" lbank="1" prog="89"/>
+ <Patch name="Polysynth" mode="7" drum="0" hbank="121" lbank="0" prog="90"/>
+ <Patch name="Space Voice" mode="7" drum="0" hbank="121" lbank="0" prog="91"/>
+ <Patch name="Itopia" mode="7" drum="0" hbank="121" lbank="1" prog="91"/>
+ <Patch name="Bowed Glass" mode="7" drum="0" hbank="121" lbank="0" prog="92"/>
+ <Patch name="Metal Pad" mode="7" drum="0" hbank="121" lbank="0" prog="93"/>
+ <Patch name="Halo Pad" mode="7" drum="0" hbank="121" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" mode="7" drum="0" hbank="121" lbank="0" prog="95"/>
+ <Patch name="Ice Rain" mode="7" drum="0" hbank="121" lbank="0" prog="96"/>
+ <Patch name="Soundtrack" mode="7" drum="0" hbank="121" lbank="0" prog="97"/>
+ <Patch name="Crystal" mode="7" drum="0" hbank="121" lbank="0" prog="98"/>
+ <Patch name="Syn Mallet" mode="7" drum="0" hbank="121" lbank="1" prog="98"/>
+ <Patch name="Atmosphere" mode="7" drum="0" hbank="121" lbank="0" prog="99"/>
+ <Patch name="Brightness" mode="7" drum="0" hbank="121" lbank="0" prog="100"/>
+ <Patch name="Goblin" mode="7" drum="0" hbank="121" lbank="0" prog="101"/>
+ <Patch name="Echo Drops" mode="7" drum="0" hbank="121" lbank="0" prog="102"/>
+ <Patch name="Echo Bell" mode="7" drum="0" hbank="121" lbank="1" prog="102"/>
+ <Patch name="Echo Pan" mode="7" drum="0" hbank="121" lbank="2" prog="102"/>
+ <Patch name="Star Theme" mode="7" drum="0" hbank="121" lbank="0" prog="103"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Ethnic">
+ <Patch name="Sitar" mode="7" drum="0" hbank="121" lbank="0" prog="104"/>
+ <Patch name="Sitar 2" mode="7" drum="0" hbank="121" lbank="1" prog="104"/>
+ <Patch name="Banjo" mode="7" drum="0" hbank="121" lbank="0" prog="105"/>
+ <Patch name="Shamisen" mode="7" drum="0" hbank="121" lbank="0" prog="106"/>
+ <Patch name="Koto" mode="7" drum="0" hbank="121" lbank="0" prog="107"/>
+ <Patch name="Taisho Koto" mode="7" drum="0" hbank="121" lbank="1" prog="107"/>
+ <Patch name="Kalimba" mode="7" drum="0" hbank="121" lbank="0" prog="108"/>
+ <Patch name="Bagpipe" mode="7" drum="0" hbank="121" lbank="0" prog="109"/>
+ <Patch name="Fiddle" mode="7" drum="0" hbank="121" lbank="0" prog="110"/>
+ <Patch name="Shanai" mode="7" drum="0" hbank="121" lbank="0" prog="111"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Percussion">
+ <Patch name="Tinkle Bell" mode="7" drum="0" hbank="121" lbank="0" prog="112"/>
+ <Patch name="Agogo" mode="7" drum="0" hbank="121" lbank="0" prog="113"/>
+ <Patch name="Steel Drims" mode="7" drum="0" hbank="121" lbank="0" prog="114"/>
+ <Patch name="Woodblock" mode="7" drum="0" hbank="121" lbank="0" prog="115"/>
+ <Patch name="Castanets" mode="7" drum="0" hbank="121" lbank="1" prog="115"/>
+ <Patch name="Taiko" mode="7" drum="0" hbank="121" lbank="0" prog="116"/>
+ <Patch name="Concert BD" mode="7" drum="0" hbank="121" lbank="1" prog="116"/>
+ <Patch name="Melo. Tom 1" mode="7" drum="0" hbank="121" lbank="0" prog="117"/>
+ <Patch name="Melo. Tom 2" mode="7" drum="0" hbank="121" lbank="1" prog="117"/>
+ <Patch name="Synth Drum" mode="7" drum="0" hbank="121" lbank="0" prog="118"/>
+ <Patch name="808 Tom" mode="7" drum="0" hbank="121" lbank="1" prog="118"/>
+ <Patch name="Elec Perc" mode="7" drum="0" hbank="121" lbank="2" prog="118"/>
+ <Patch name="Reverse Cym." mode="7" drum="0" hbank="121" lbank="0" prog="119"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM2 Sound FX">
+ <Patch name="Gt.FretNoise" mode="7" drum="0" hbank="121" lbank="0" prog="120"/>
+ <Patch name="Gt.Cut Noise" mode="7" drum="0" hbank="121" lbank="1" prog="120"/>
+ <Patch name="String Slap" mode="7" drum="0" hbank="121" lbank="2" prog="120"/>
+ <Patch name="Breath Noise" mode="7" drum="0" hbank="121" lbank="0" prog="121"/>
+ <Patch name="Fl.Key Click" mode="7" drum="0" hbank="121" lbank="1" prog="121"/>
+ <Patch name="Seashore" mode="7" drum="0" hbank="121" lbank="0" prog="122"/>
+ <Patch name="Rain" mode="7" drum="0" hbank="121" lbank="1" prog="122"/>
+ <Patch name="Thunder" mode="7" drum="0" hbank="121" lbank="2" prog="122"/>
+ <Patch name="Wind" mode="7" drum="0" hbank="121" lbank="3" prog="122"/>
+ <Patch name="Stream" mode="7" drum="0" hbank="121" lbank="4" prog="122"/>
+ <Patch name="Bubble" mode="7" drum="0" hbank="121" lbank="5" prog="122"/>
+ <Patch name="Bird" mode="7" drum="0" hbank="121" lbank="0" prog="123"/>
+ <Patch name="Dog" mode="7" drum="0" hbank="121" lbank="1" prog="123"/>
+ <Patch name="Horse-Gallop" mode="7" drum="0" hbank="121" lbank="2" prog="123"/>
+ <Patch name="Bird 2" mode="7" drum="0" hbank="121" lbank="3" prog="123"/>
+ <Patch name="Telephone 1" mode="7" drum="0" hbank="121" lbank="0" prog="124"/>
+ <Patch name="Telephone 2" mode="7" drum="0" hbank="121" lbank="1" prog="124"/>
+ <Patch name="DoorCreaking" mode="7" drum="0" hbank="121" lbank="2" prog="124"/>
+ <Patch name="DoorCreaking" mode="7" drum="0" hbank="121" lbank="3" prog="124"/>
+ <Patch name="Scratch" mode="7" drum="0" hbank="121" lbank="4" prog="124"/>
+ <Patch name="Wind Chimes" mode="7" drum="0" hbank="121" lbank="5" prog="124"/>
+ <Patch name="Helicopter" mode="7" drum="0" hbank="121" lbank="0" prog="125"/>
+ <Patch name="Car-Engine" mode="7" drum="0" hbank="121" lbank="1" prog="125"/>
+ <Patch name="Car-Stop" mode="7" drum="0" hbank="121" lbank="2" prog="125"/>
+ <Patch name="Car-Pass" mode="7" drum="0" hbank="121" lbank="3" prog="125"/>
+ <Patch name="Car-Crash" mode="7" drum="0" hbank="121" lbank="4" prog="125"/>
+ <Patch name="Siren" mode="7" drum="0" hbank="121" lbank="5" prog="125"/>
+ <Patch name="Train" mode="7" drum="0" hbank="121" lbank="6" prog="125"/>
+ <Patch name="Jetplane" mode="7" drum="0" hbank="121" lbank="7" prog="125"/>
+ <Patch name="Starship" mode="7" drum="0" hbank="121" lbank="8" prog="125"/>
+ <Patch name="Burst Noise" mode="7" drum="0" hbank="121" lbank="9" prog="125"/>
+ <Patch name="Applause" mode="7" drum="0" hbank="121" lbank="0" prog="126"/>
+ <Patch name="Laughing" mode="7" drum="0" hbank="121" lbank="1" prog="126"/>
+ <Patch name="Screaming" mode="7" drum="0" hbank="121" lbank="2" prog="126"/>
+ <Patch name="Punch" mode="7" drum="0" hbank="121" lbank="3" prog="126"/>
+ <Patch name="Heart Beat" mode="7" drum="0" hbank="121" lbank="4" prog="126"/>
+ <Patch name="Footsteps" mode="7" drum="0" hbank="121" lbank="5" prog="126"/>
+ <Patch name="Gun Shot" mode="7" drum="0" hbank="121" lbank="0" prog="127"/>
+ <Patch name="Machine Gun" mode="7" drum="0" hbank="121" lbank="1" prog="127"/>
+ <Patch name="Lasergun" mode="7" drum="0" hbank="121" lbank="2" prog="127"/>
+ <Patch name="Explosion" mode="7" drum="0" hbank="121" lbank="3" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset Drums/Percussion">
+ <Patch name="StandardKit1" drum="0" hbank="86" lbank="64" prog="0"/>
+ <Patch name="StandardKit2" drum="0" hbank="86" lbank="64" prog="1"/>
+ <Patch name="StandardKit3" drum="0" hbank="86" lbank="64" prog="2"/>
+ <Patch name="Rock Kit 1" drum="0" hbank="86" lbank="64" prog="3"/>
+ <Patch name="Rock Kit 2" drum="0" hbank="86" lbank="64" prog="4"/>
+ <Patch name="Brush Jz Kit" drum="0" hbank="86" lbank="64" prog="5"/>
+ <Patch name="Orch Kit" drum="0" hbank="86" lbank="64" prog="6"/>
+ <Patch name="909 808 Kit" drum="0" hbank="86" lbank="64" prog="7"/>
+ <Patch name="Limiter Kit" drum="0" hbank="86" lbank="64" prog="8"/>
+ <Patch name="HipHop Kit 1" drum="0" hbank="86" lbank="64" prog="9"/>
+ <Patch name="HipHop Kit 2" drum="0" hbank="86" lbank="64" prog="10"/>
+ <Patch name="HipHop and Latin" drum="0" hbank="86" lbank="64" prog="11"/>
+ <Patch name="Machine and Hip" drum="0" hbank="86" lbank="64" prog="12"/>
+ <Patch name="R and B Kit" drum="0" hbank="86" lbank="64" prog="13"/>
+ <Patch name="HiFi R and B Kit" drum="0" hbank="86" lbank="64" prog="14"/>
+ <Patch name="Machine Kit1" drum="0" hbank="86" lbank="64" prog="15"/>
+ <Patch name="4 Kit MIX" drum="0" hbank="86" lbank="64" prog="16"/>
+ <Patch name="Kit-Euro:POP" drum="0" hbank="86" lbank="64" prog="17"/>
+ <Patch name="House Kit" drum="0" hbank="86" lbank="64" prog="18"/>
+ <Patch name="Nu Technica" drum="0" hbank="86" lbank="64" prog="19"/>
+ <Patch name="Machine Kit2" drum="0" hbank="86" lbank="64" prog="20"/>
+ <Patch name="ArtificalKit" drum="0" hbank="86" lbank="64" prog="21"/>
+ <Patch name="Noise Kit" drum="0" hbank="86" lbank="64" prog="22"/>
+ <Patch name="Kick Menu" drum="0" hbank="86" lbank="64" prog="23"/>
+ <Patch name="Snare Menu 1" drum="0" hbank="86" lbank="64" prog="24"/>
+ <Patch name="Snare Menu 2" drum="0" hbank="86" lbank="64" prog="25"/>
+ <Patch name="HiHat Menu" drum="0" hbank="86" lbank="64" prog="26"/>
+ <Patch name="Rim and Tom Menu" drum="0" hbank="86" lbank="64" prog="27"/>
+ <Patch name="Clp n Cym n Hit" drum="0" hbank="86" lbank="64" prog="28"/>
+ <Patch name="FX/SFX Menu" drum="0" hbank="86" lbank="64" prog="29"/>
+ <Patch name="Percussion" drum="0" hbank="86" lbank="64" prog="30"/>
+ <Patch name="Scrh n Voi n Wld" drum="0" hbank="86" lbank="64" prog="31"/>
+ <Patch name="StudioX Kit1" drum="0" hbank="86" lbank="64" prog="32"/>
+ <Patch name="StudioX Kit2" drum="0" hbank="86" lbank="64" prog="33"/>
+ <Patch name="X Euro Kit" drum="0" hbank="86" lbank="64" prog="34"/>
+ <Patch name="X Hybrid Kit" drum="0" hbank="86" lbank="64" prog="35"/>
+ <Patch name="Neo-Wrld Kit" drum="0" hbank="86" lbank="64" prog="36"/>
+ <Patch name="PassionDrums" drum="0" hbank="86" lbank="64" prog="37"/>
+ <Patch name="Organic Kit" drum="0" hbank="86" lbank="64" prog="38"/>
+ <Patch name="Arpeggiate!" drum="0" hbank="86" lbank="64" prog="39"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset A">
+ <Patch name="So true..." drum="0" hbank="87" lbank="64" prog="0"/>
+ <Patch name="ConcertPiano" drum="0" hbank="87" lbank="64" prog="1"/>
+ <Patch name="Warm Piano" drum="0" hbank="87" lbank="64" prog="2"/>
+ <Patch name="Warm Pad Pno" drum="0" hbank="87" lbank="64" prog="3"/>
+ <Patch name="Warm Str Pno" drum="0" hbank="87" lbank="64" prog="4"/>
+ <Patch name="BealeSt Walk" drum="0" hbank="87" lbank="64" prog="5"/>
+ <Patch name="Rapsody" drum="0" hbank="87" lbank="64" prog="6"/>
+ <Patch name="JD-800 Piano" drum="0" hbank="87" lbank="64" prog="7"/>
+ <Patch name="SA Dance Pno" drum="0" hbank="87" lbank="64" prog="8"/>
+ <Patch name="FS E-Grand" drum="0" hbank="87" lbank="64" prog="9"/>
+ <Patch name="FS Blend Pno" drum="0" hbank="87" lbank="64" prog="10"/>
+ <Patch name="LA Piano" drum="0" hbank="87" lbank="64" prog="11"/>
+ <Patch name="FS Rhodes" drum="0" hbank="87" lbank="64" prog="12"/>
+ <Patch name="StageRhdTrem" drum="0" hbank="87" lbank="64" prog="13"/>
+ <Patch name="Back2the60s" drum="0" hbank="87" lbank="64" prog="14"/>
+ <Patch name="Tine Rhodes" drum="0" hbank="87" lbank="64" prog="15"/>
+ <Patch name="LEO Rhodes" drum="0" hbank="87" lbank="64" prog="16"/>
+ <Patch name="LonesomeRoad" drum="0" hbank="87" lbank="64" prog="17"/>
+ <Patch name="Age-n Tines" drum="0" hbank="87" lbank="64" prog="18"/>
+ <Patch name="Brill TremEP" drum="0" hbank="87" lbank="64" prog="19"/>
+ <Patch name="Crystal Rhd" drum="0" hbank="87" lbank="64" prog="20"/>
+ <Patch name="Celestial EP" drum="0" hbank="87" lbank="64" prog="21"/>
+ <Patch name="Spirit Tines" drum="0" hbank="87" lbank="64" prog="22"/>
+ <Patch name="Psycho EP" drum="0" hbank="87" lbank="64" prog="23"/>
+ <Patch name="Mk2 Stg phsr" drum="0" hbank="87" lbank="64" prog="24"/>
+ <Patch name="SA Stacks" drum="0" hbank="87" lbank="64" prog="25"/>
+ <Patch name="Backing PhEP" drum="0" hbank="87" lbank="64" prog="26"/>
+ <Patch name="Balladeer" drum="0" hbank="87" lbank="64" prog="27"/>
+ <Patch name="Remember" drum="0" hbank="87" lbank="64" prog="28"/>
+ <Patch name="FS Wurly" drum="0" hbank="87" lbank="64" prog="29"/>
+ <Patch name="Wurly Trem" drum="0" hbank="87" lbank="64" prog="30"/>
+ <Patch name="Super Wurly" drum="0" hbank="87" lbank="64" prog="31"/>
+ <Patch name="Pulse EPno" drum="0" hbank="87" lbank="64" prog="32"/>
+ <Patch name="Fonky Fonky" drum="0" hbank="87" lbank="64" prog="33"/>
+ <Patch name="FM Rhodes" drum="0" hbank="87" lbank="64" prog="34"/>
+ <Patch name="FM-777" drum="0" hbank="87" lbank="64" prog="35"/>
+ <Patch name="FM EPad" drum="0" hbank="87" lbank="64" prog="36"/>
+ <Patch name="D6 Clavi" drum="0" hbank="87" lbank="64" prog="37"/>
+ <Patch name="Cutter Clavi" drum="0" hbank="87" lbank="64" prog="38"/>
+ <Patch name="FS Clavi" drum="0" hbank="87" lbank="64" prog="39"/>
+ <Patch name="Funky D" drum="0" hbank="87" lbank="64" prog="40"/>
+ <Patch name="Phase Clavi" drum="0" hbank="87" lbank="64" prog="41"/>
+ <Patch name="BPF Clavi Ph" drum="0" hbank="87" lbank="64" prog="42"/>
+ <Patch name="Pulse Clavi" drum="0" hbank="87" lbank="64" prog="43"/>
+ <Patch name="Analog Clavi" drum="0" hbank="87" lbank="64" prog="44"/>
+ <Patch name="Reso Clavi" drum="0" hbank="87" lbank="64" prog="45"/>
+ <Patch name="Harpsy Clavi" drum="0" hbank="87" lbank="64" prog="46"/>
+ <Patch name="FS Harpsi" drum="0" hbank="87" lbank="64" prog="47"/>
+ <Patch name="Amadeus" drum="0" hbank="87" lbank="64" prog="48"/>
+ <Patch name="FS Celesta" drum="0" hbank="87" lbank="64" prog="49"/>
+ <Patch name="FS Glocken" drum="0" hbank="87" lbank="64" prog="50"/>
+ <Patch name="Music Bells" drum="0" hbank="87" lbank="64" prog="51"/>
+ <Patch name="FS Musicbox" drum="0" hbank="87" lbank="64" prog="52"/>
+ <Patch name="MuBox Pad" drum="0" hbank="87" lbank="64" prog="53"/>
+ <Patch name="Kalimbells" drum="0" hbank="87" lbank="64" prog="54"/>
+ <Patch name="Himalaya Ice" drum="0" hbank="87" lbank="64" prog="55"/>
+ <Patch name="Dreaming Box" drum="0" hbank="87" lbank="64" prog="56"/>
+ <Patch name="Step Ice" drum="0" hbank="87" lbank="64" prog="57"/>
+ <Patch name="FS Bell 1" drum="0" hbank="87" lbank="64" prog="58"/>
+ <Patch name="FS Bell 2" drum="0" hbank="87" lbank="64" prog="59"/>
+ <Patch name="Candy Bell" drum="0" hbank="87" lbank="64" prog="60"/>
+ <Patch name="FS Chime" drum="0" hbank="87" lbank="64" prog="61"/>
+ <Patch name="Bell Ring" drum="0" hbank="87" lbank="64" prog="62"/>
+ <Patch name="Tubular Bell" drum="0" hbank="87" lbank="64" prog="63"/>
+ <Patch name="5th Key" drum="0" hbank="87" lbank="64" prog="64"/>
+ <Patch name="Vibrations" drum="0" hbank="87" lbank="64" prog="65"/>
+ <Patch name="FS Vibe" drum="0" hbank="87" lbank="64" prog="66"/>
+ <Patch name="FS Marimba" drum="0" hbank="87" lbank="64" prog="67"/>
+ <Patch name="FS Xylo" drum="0" hbank="87" lbank="64" prog="68"/>
+ <Patch name="Ethno Keys" drum="0" hbank="87" lbank="64" prog="69"/>
+ <Patch name="Synergy MLT" drum="0" hbank="87" lbank="64" prog="70"/>
+ <Patch name="Steel Drums" drum="0" hbank="87" lbank="64" prog="71"/>
+ <Patch name="Xylosizer" drum="0" hbank="87" lbank="64" prog="72"/>
+ <Patch name="Toy Box" drum="0" hbank="87" lbank="64" prog="73"/>
+ <Patch name="FullDraw Org" drum="0" hbank="87" lbank="64" prog="74"/>
+ <Patch name="StakDraw Org" drum="0" hbank="87" lbank="64" prog="75"/>
+ <Patch name="FullStop Org" drum="0" hbank="87" lbank="64" prog="76"/>
+ <Patch name="FS Perc Org" drum="0" hbank="87" lbank="64" prog="77"/>
+ <Patch name="Euro Organ" drum="0" hbank="87" lbank="64" prog="78"/>
+ <Patch name="Perky Organ" drum="0" hbank="87" lbank="64" prog="79"/>
+ <Patch name="LoFi PercOrg" drum="0" hbank="87" lbank="64" prog="80"/>
+ <Patch name="Rochno Org" drum="0" hbank="87" lbank="64" prog="81"/>
+ <Patch name="RnB Organ 1" drum="0" hbank="87" lbank="64" prog="82"/>
+ <Patch name="RnB Organ 2" drum="0" hbank="87" lbank="64" prog="83"/>
+ <Patch name="Zepix Organ" drum="0" hbank="87" lbank="64" prog="84"/>
+ <Patch name="Peep Durple" drum="0" hbank="87" lbank="64" prog="85"/>
+ <Patch name="FS Dist Bee" drum="0" hbank="87" lbank="64" prog="86"/>
+ <Patch name="60s Org 1" drum="0" hbank="87" lbank="64" prog="87"/>
+ <Patch name="60s Org 2" drum="0" hbank="87" lbank="64" prog="88"/>
+ <Patch name="FS SoapOpera" drum="0" hbank="87" lbank="64" prog="89"/>
+ <Patch name="Chapel Organ" drum="0" hbank="87" lbank="64" prog="90"/>
+ <Patch name="Grand Pipe" drum="0" hbank="87" lbank="64" prog="91"/>
+ <Patch name="Masked Opera" drum="0" hbank="87" lbank="64" prog="92"/>
+ <Patch name="Pipe Org/Mod" drum="0" hbank="87" lbank="64" prog="93"/>
+ <Patch name="Vodkakordion" drum="0" hbank="87" lbank="64" prog="94"/>
+ <Patch name="Squeeze Me!" drum="0" hbank="87" lbank="64" prog="95"/>
+ <Patch name="Guinguette" drum="0" hbank="87" lbank="64" prog="96"/>
+ <Patch name="HarWonderca" drum="0" hbank="87" lbank="64" prog="97"/>
+ <Patch name="BluesHrp V/S" drum="0" hbank="87" lbank="64" prog="98"/>
+ <Patch name="Green Bullet" drum="0" hbank="87" lbank="64" prog="99"/>
+ <Patch name="SoftNyln Gtr" drum="0" hbank="87" lbank="64" prog="100"/>
+ <Patch name="FS Nylon Gt" drum="0" hbank="87" lbank="64" prog="101"/>
+ <Patch name="Wet Nyln Gtr" drum="0" hbank="87" lbank="64" prog="102"/>
+ <Patch name="Pre Mass Hum" drum="0" hbank="87" lbank="64" prog="103"/>
+ <Patch name="Thick Steel" drum="0" hbank="87" lbank="64" prog="104"/>
+ <Patch name="Uncle Martin" drum="0" hbank="87" lbank="64" prog="105"/>
+ <Patch name="Wide Ac Gtr" drum="0" hbank="87" lbank="64" prog="106"/>
+ <Patch name="Comp Stl Gtr" drum="0" hbank="87" lbank="64" prog="107"/>
+ <Patch name="Stl Gtr Duo" drum="0" hbank="87" lbank="64" prog="108"/>
+ <Patch name="FS 12str Gtr" drum="0" hbank="87" lbank="64" prog="109"/>
+ <Patch name="So good!" drum="0" hbank="87" lbank="64" prog="110"/>
+ <Patch name="Muted Gtr Pk" drum="0" hbank="87" lbank="64" prog="111"/>
+ <Patch name="StratSequence" drum="0" hbank="87" lbank="64" prog="112"/>
+ <Patch name="Fixx it" drum="0" hbank="87" lbank="64" prog="113"/>
+ <Patch name="Jazz Guitar" drum="0" hbank="87" lbank="64" prog="114"/>
+ <Patch name="DynoJazz Gtr" drum="0" hbank="87" lbank="64" prog="115"/>
+ <Patch name="Wet TC" drum="0" hbank="87" lbank="64" prog="116"/>
+ <Patch name="Clean Gtr" drum="0" hbank="87" lbank="64" prog="117"/>
+ <Patch name="Crimson Gtr" drum="0" hbank="87" lbank="64" prog="118"/>
+ <Patch name="Touchee Funk" drum="0" hbank="87" lbank="64" prog="119"/>
+ <Patch name="Plug n Gig" drum="0" hbank="87" lbank="64" prog="120"/>
+ <Patch name="Kinda Kurt" drum="0" hbank="87" lbank="64" prog="121"/>
+ <Patch name="Nice Oct Gtr" drum="0" hbank="87" lbank="64" prog="122"/>
+ <Patch name="Strat Gtr" drum="0" hbank="87" lbank="64" prog="123"/>
+ <Patch name="JC Strat Bdy" drum="0" hbank="87" lbank="64" prog="124"/>
+ <Patch name="Twin StratsB" drum="0" hbank="87" lbank="64" prog="125"/>
+ <Patch name="BluNoteStrat" drum="0" hbank="87" lbank="64" prog="126"/>
+ <Patch name="FS Funk Gtr" drum="0" hbank="87" lbank="64" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset B">
+ <Patch name="GK Dubguitar" drum="0" hbank="87" lbank="65" prog="0"/>
+ <Patch name="and Scratchee" drum="0" hbank="87" lbank="65" prog="1"/>
+ <Patch name="Touch Drive" drum="0" hbank="87" lbank="65" prog="2"/>
+ <Patch name="FS Chunk" drum="0" hbank="87" lbank="65" prog="3"/>
+ <Patch name="Trem-o-Vibe" drum="0" hbank="87" lbank="65" prog="4"/>
+ <Patch name="Nice Dist Gt" drum="0" hbank="87" lbank="65" prog="5"/>
+ <Patch name="LP Dist" drum="0" hbank="87" lbank="65" prog="6"/>
+ <Patch name="Hurtling Gtr" drum="0" hbank="87" lbank="65" prog="7"/>
+ <Patch name="Searing COSM" drum="0" hbank="87" lbank="65" prog="8"/>
+ <Patch name="FS Loud Gtr" drum="0" hbank="87" lbank="65" prog="9"/>
+ <Patch name="FS Plugged!!" drum="0" hbank="87" lbank="65" prog="10"/>
+ <Patch name="Punker 1" drum="0" hbank="87" lbank="65" prog="11"/>
+ <Patch name="FS PowerChd" drum="0" hbank="87" lbank="65" prog="12"/>
+ <Patch name="Punker 2" drum="0" hbank="87" lbank="65" prog="13"/>
+ <Patch name="Ulti Ac Bass" drum="0" hbank="87" lbank="65" prog="14"/>
+ <Patch name="Downright BS" drum="0" hbank="87" lbank="65" prog="15"/>
+ <Patch name="Ultimo Bass" drum="0" hbank="87" lbank="65" prog="16"/>
+ <Patch name="Roomy Bass" drum="0" hbank="87" lbank="65" prog="17"/>
+ <Patch name="Comp-ed JBass" drum="0" hbank="87" lbank="65" prog="18"/>
+ <Patch name="FingerMaster" drum="0" hbank="87" lbank="65" prog="19"/>
+ <Patch name="CompressBass" drum="0" hbank="87" lbank="65" prog="20"/>
+ <Patch name="All Round Bs" drum="0" hbank="87" lbank="65" prog="21"/>
+ <Patch name="RnB Bs/Slide" drum="0" hbank="87" lbank="65" prog="22"/>
+ <Patch name="Thumb Up!" drum="0" hbank="87" lbank="65" prog="23"/>
+ <Patch name="Tubby Mute" drum="0" hbank="87" lbank="65" prog="24"/>
+ <Patch name="Chicken Bass" drum="0" hbank="87" lbank="65" prog="25"/>
+ <Patch name="Snug Bass" drum="0" hbank="87" lbank="65" prog="26"/>
+ <Patch name="Return2Base!" drum="0" hbank="87" lbank="65" prog="27"/>
+ <Patch name="A Big Pick" drum="0" hbank="87" lbank="65" prog="28"/>
+ <Patch name="Basement" drum="0" hbank="87" lbank="65" prog="29"/>
+ <Patch name="FS Fretnot 1" drum="0" hbank="87" lbank="65" prog="30"/>
+ <Patch name="FS Fretnot 2" drum="0" hbank="87" lbank="65" prog="31"/>
+ <Patch name="RichFretless" drum="0" hbank="87" lbank="65" prog="32"/>
+ <Patch name="Got Pop?" drum="0" hbank="87" lbank="65" prog="33"/>
+ <Patch name="JBass v/Thmb" drum="0" hbank="87" lbank="65" prog="34"/>
+ <Patch name="FS Slap Bass" drum="0" hbank="87" lbank="65" prog="35"/>
+ <Patch name="LEO Bass" drum="0" hbank="87" lbank="65" prog="36"/>
+ <Patch name="Smooth Bass" drum="0" hbank="87" lbank="65" prog="37"/>
+ <Patch name="MC-404 Bass" drum="0" hbank="87" lbank="65" prog="38"/>
+ <Patch name="SH-101 Bs 1" drum="0" hbank="87" lbank="65" prog="39"/>
+ <Patch name="FS Syn Bass1" drum="0" hbank="87" lbank="65" prog="40"/>
+ <Patch name="Electro Rubb" drum="0" hbank="87" lbank="65" prog="41"/>
+ <Patch name="RnB Bass 1" drum="0" hbank="87" lbank="65" prog="42"/>
+ <Patch name="Enorjizor" drum="0" hbank="87" lbank="65" prog="43"/>
+ <Patch name="LowFat Bass" drum="0" hbank="87" lbank="65" prog="44"/>
+ <Patch name="Doze Bass" drum="0" hbank="87" lbank="65" prog="45"/>
+ <Patch name="FS Flat Bs" drum="0" hbank="87" lbank="65" prog="46"/>
+ <Patch name="Saw n MG Bass" drum="0" hbank="87" lbank="65" prog="47"/>
+ <Patch name="RnB Bass 2" drum="0" hbank="87" lbank="65" prog="48"/>
+ <Patch name="Foundation" drum="0" hbank="87" lbank="65" prog="49"/>
+ <Patch name="RnB Bass 3" drum="0" hbank="87" lbank="65" prog="50"/>
+ <Patch name="HipHop Bs 1" drum="0" hbank="87" lbank="65" prog="51"/>
+ <Patch name="HipHop Bs 2" drum="0" hbank="87" lbank="65" prog="52"/>
+ <Patch name="Solid Goa" drum="0" hbank="87" lbank="65" prog="53"/>
+ <Patch name="ResoSyn Bs 1" drum="0" hbank="87" lbank="65" prog="54"/>
+ <Patch name="SH-1 Bass" drum="0" hbank="87" lbank="65" prog="55"/>
+ <Patch name="SH-101 Bs 2" drum="0" hbank="87" lbank="65" prog="56"/>
+ <Patch name="FS Syn Bass2" drum="0" hbank="87" lbank="65" prog="57"/>
+ <Patch name="Poly Bass" drum="0" hbank="87" lbank="65" prog="58"/>
+ <Patch name="Punch MG 1" drum="0" hbank="87" lbank="65" prog="59"/>
+ <Patch name="Gashed Bass" drum="0" hbank="87" lbank="65" prog="60"/>
+ <Patch name="Q Bass" drum="0" hbank="87" lbank="65" prog="61"/>
+ <Patch name="FS Rubber Bs" drum="0" hbank="87" lbank="65" prog="62"/>
+ <Patch name="ResoSyn Bs 2" drum="0" hbank="87" lbank="65" prog="63"/>
+ <Patch name="Super-G DX" drum="0" hbank="87" lbank="65" prog="64"/>
+ <Patch name="Punch MG 2" drum="0" hbank="87" lbank="65" prog="65"/>
+ <Patch name="Kickin Bass" drum="0" hbank="87" lbank="65" prog="66"/>
+ <Patch name="OilDrum Bass" drum="0" hbank="87" lbank="65" prog="67"/>
+ <Patch name="Glide-iator" drum="0" hbank="87" lbank="65" prog="68"/>
+ <Patch name="MG+SubOsc Bs" drum="0" hbank="87" lbank="65" prog="69"/>
+ <Patch name="FS Unison Bs" drum="0" hbank="87" lbank="65" prog="70"/>
+ <Patch name="TexturedBusy" drum="0" hbank="87" lbank="65" prog="71"/>
+ <Patch name="Detune Bass" drum="0" hbank="87" lbank="65" prog="72"/>
+ <Patch name="Lo Bass" drum="0" hbank="87" lbank="65" prog="73"/>
+ <Patch name="SQ Pan" drum="0" hbank="87" lbank="65" prog="74"/>
+ <Patch name="FS GarageBs1" drum="0" hbank="87" lbank="65" prog="75"/>
+ <Patch name="FS GarageBs2" drum="0" hbank="87" lbank="65" prog="76"/>
+ <Patch name="Sub Sonic" drum="0" hbank="87" lbank="65" prog="77"/>
+ <Patch name="FS Jungle Bs" drum="0" hbank="87" lbank="65" prog="78"/>
+ <Patch name="RnB Bass 4" drum="0" hbank="87" lbank="65" prog="79"/>
+ <Patch name="Beepin Bass" drum="0" hbank="87" lbank="65" prog="80"/>
+ <Patch name="MC-TB Bass" drum="0" hbank="87" lbank="65" prog="81"/>
+ <Patch name="Acdg Bass" drum="0" hbank="87" lbank="65" prog="82"/>
+ <Patch name="Loco Voco" drum="0" hbank="87" lbank="65" prog="83"/>
+ <Patch name="TBasic" drum="0" hbank="87" lbank="65" prog="84"/>
+ <Patch name="Unplug it!" drum="0" hbank="87" lbank="65" prog="85"/>
+ <Patch name="V.Form Bass" drum="0" hbank="87" lbank="65" prog="86"/>
+ <Patch name="SnH Bass" drum="0" hbank="87" lbank="65" prog="87"/>
+ <Patch name="Destroyed Bs" drum="0" hbank="87" lbank="65" prog="88"/>
+ <Patch name="FS Acid Bs" drum="0" hbank="87" lbank="65" prog="89"/>
+ <Patch name="Lo-Fi TB" drum="0" hbank="87" lbank="65" prog="90"/>
+ <Patch name="Violin" drum="0" hbank="87" lbank="65" prog="91"/>
+ <Patch name="Viola" drum="0" hbank="87" lbank="65" prog="92"/>
+ <Patch name="Cello" drum="0" hbank="87" lbank="65" prog="93"/>
+ <Patch name="Contrabass" drum="0" hbank="87" lbank="65" prog="94"/>
+ <Patch name="Dolce Qrt" drum="0" hbank="87" lbank="65" prog="95"/>
+ <Patch name="Chamber Str" drum="0" hbank="87" lbank="65" prog="96"/>
+ <Patch name="Small Str" drum="0" hbank="87" lbank="65" prog="97"/>
+ <Patch name="Studio Sect." drum="0" hbank="87" lbank="65" prog="98"/>
+ <Patch name="Stringz 101" drum="0" hbank="87" lbank="65" prog="99"/>
+ <Patch name="Crossed Bows" drum="0" hbank="87" lbank="65" prog="100"/>
+ <Patch name="FS Strings" drum="0" hbank="87" lbank="65" prog="101"/>
+ <Patch name="2-way Sect." drum="0" hbank="87" lbank="65" prog="102"/>
+ <Patch name="Warm Strings" drum="0" hbank="87" lbank="65" prog="103"/>
+ <Patch name="Stacc mp Str" drum="0" hbank="87" lbank="65" prog="104"/>
+ <Patch name="Magnolia Str" drum="0" hbank="87" lbank="65" prog="105"/>
+ <Patch name="Movie Scene" drum="0" hbank="87" lbank="65" prog="106"/>
+ <Patch name="Gang Strangs" drum="0" hbank="87" lbank="65" prog="107"/>
+ <Patch name="Clustered!?!" drum="0" hbank="87" lbank="65" prog="108"/>
+ <Patch name="DramaSect/sw" drum="0" hbank="87" lbank="65" prog="109"/>
+ <Patch name="DelicatePizz" drum="0" hbank="87" lbank="65" prog="110"/>
+ <Patch name="Vls PizzHall" drum="0" hbank="87" lbank="65" prog="111"/>
+ <Patch name="Orch Pizz" drum="0" hbank="87" lbank="65" prog="112"/>
+ <Patch name="Wind and Str 1" drum="0" hbank="87" lbank="65" prog="113"/>
+ <Patch name="Wind and Str 2" drum="0" hbank="87" lbank="65" prog="114"/>
+ <Patch name="Farewell" drum="0" hbank="87" lbank="65" prog="115"/>
+ <Patch name="Orch and Horns" drum="0" hbank="87" lbank="65" prog="116"/>
+ <Patch name="Soft Orch 1" drum="0" hbank="87" lbank="65" prog="117"/>
+ <Patch name="Soft Orch 2" drum="0" hbank="87" lbank="65" prog="118"/>
+ <Patch name="Henry IX" drum="0" hbank="87" lbank="65" prog="119"/>
+ <Patch name="Ending Scene" drum="0" hbank="87" lbank="65" prog="120"/>
+ <Patch name="Good Old Day" drum="0" hbank="87" lbank="65" prog="121"/>
+ <Patch name="FS WindWood" drum="0" hbank="87" lbank="65" prog="122"/>
+ <Patch name="Clarence.net" drum="0" hbank="87" lbank="65" prog="123"/>
+ <Patch name="FS Oboe" drum="0" hbank="87" lbank="65" prog="124"/>
+ <Patch name="Hall Oboe" drum="0" hbank="87" lbank="65" prog="125"/>
+ <Patch name="English Horn" drum="0" hbank="87" lbank="65" prog="126"/>
+ <Patch name="Bassoon" drum="0" hbank="87" lbank="65" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset C">
+ <Patch name="FS Flute" drum="0" hbank="87" lbank="66" prog="0"/>
+ <Patch name="Atk Flute" drum="0" hbank="87" lbank="66" prog="1"/>
+ <Patch name="Piccolo" drum="0" hbank="87" lbank="66" prog="2"/>
+ <Patch name="Andes Mood" drum="0" hbank="87" lbank="66" prog="3"/>
+ <Patch name="Pan Pipes" drum="0" hbank="87" lbank="66" prog="4"/>
+ <Patch name="Solo Tp" drum="0" hbank="87" lbank="66" prog="5"/>
+ <Patch name="Horn Chops" drum="0" hbank="87" lbank="66" prog="6"/>
+ <Patch name="Flugel Horn" drum="0" hbank="87" lbank="66" prog="7"/>
+ <Patch name="Spit Flugel" drum="0" hbank="87" lbank="66" prog="8"/>
+ <Patch name="Mute Tp/Mod" drum="0" hbank="87" lbank="66" prog="9"/>
+ <Patch name="Harmon Mute" drum="0" hbank="87" lbank="66" prog="10"/>
+ <Patch name="Soft Tb" drum="0" hbank="87" lbank="66" prog="11"/>
+ <Patch name="Solo Tb" drum="0" hbank="87" lbank="66" prog="12"/>
+ <Patch name="Solo Bone" drum="0" hbank="87" lbank="66" prog="13"/>
+ <Patch name="Grande Tuba" drum="0" hbank="87" lbank="66" prog="14"/>
+ <Patch name="FS Tuba" drum="0" hbank="87" lbank="66" prog="15"/>
+ <Patch name="StackTp Sect" drum="0" hbank="87" lbank="66" prog="16"/>
+ <Patch name="Tb Section" drum="0" hbank="87" lbank="66" prog="17"/>
+ <Patch name="TpTb Sect." drum="0" hbank="87" lbank="66" prog="18"/>
+ <Patch name="FS Brass" drum="0" hbank="87" lbank="66" prog="19"/>
+ <Patch name="DynamicBrass" drum="0" hbank="87" lbank="66" prog="20"/>
+ <Patch name="Tpts n Tmbs" drum="0" hbank="87" lbank="66" prog="21"/>
+ <Patch name="Brass n Sax" drum="0" hbank="87" lbank="66" prog="22"/>
+ <Patch name="BrassPartOut" drum="0" hbank="87" lbank="66" prog="23"/>
+ <Patch name="Simple Tutti" drum="0" hbank="87" lbank="66" prog="24"/>
+ <Patch name="Full sForza" drum="0" hbank="87" lbank="66" prog="25"/>
+ <Patch name="F.Horns Sect" drum="0" hbank="87" lbank="66" prog="26"/>
+ <Patch name="Stereo Brass" drum="0" hbank="87" lbank="66" prog="27"/>
+ <Patch name="Brass Fall" drum="0" hbank="87" lbank="66" prog="28"/>
+ <Patch name="FS Saw Brass" drum="0" hbank="87" lbank="66" prog="29"/>
+ <Patch name="Wide SynBrss" drum="0" hbank="87" lbank="66" prog="30"/>
+ <Patch name="DetuneSawBrs" drum="0" hbank="87" lbank="66" prog="31"/>
+ <Patch name="J-Pop Brass" drum="0" hbank="87" lbank="66" prog="32"/>
+ <Patch name="Brash!" drum="0" hbank="87" lbank="66" prog="33"/>
+ <Patch name="Jump For KY" drum="0" hbank="87" lbank="66" prog="34"/>
+ <Patch name="Neo SuperBrs" drum="0" hbank="87" lbank="66" prog="35"/>
+ <Patch name="SoftSynBrass" drum="0" hbank="87" lbank="66" prog="36"/>
+ <Patch name="Silky JP" drum="0" hbank="87" lbank="66" prog="37"/>
+ <Patch name="Silk Brs Pad" drum="0" hbank="87" lbank="66" prog="38"/>
+ <Patch name="FatSynBrass" drum="0" hbank="87" lbank="66" prog="39"/>
+ <Patch name="Soprano Sax" drum="0" hbank="87" lbank="66" prog="40"/>
+ <Patch name="Solo Sop Sax" drum="0" hbank="87" lbank="66" prog="41"/>
+ <Patch name="Alto mp" drum="0" hbank="87" lbank="66" prog="42"/>
+ <Patch name="Alto Sax" drum="0" hbank="87" lbank="66" prog="43"/>
+ <Patch name="Solo AltoSax" drum="0" hbank="87" lbank="66" prog="44"/>
+ <Patch name="AltoLead Sax" drum="0" hbank="87" lbank="66" prog="45"/>
+ <Patch name="Tenor Sax" drum="0" hbank="87" lbank="66" prog="46"/>
+ <Patch name="Fat TenorSax" drum="0" hbank="87" lbank="66" prog="47"/>
+ <Patch name="Baritone Sax" drum="0" hbank="87" lbank="66" prog="48"/>
+ <Patch name="Sax Sect. 1" drum="0" hbank="87" lbank="66" prog="49"/>
+ <Patch name="Sax Sect. 2" drum="0" hbank="87" lbank="66" prog="50"/>
+ <Patch name="Horny Sax" drum="0" hbank="87" lbank="66" prog="51"/>
+ <Patch name="RnB TryLead" drum="0" hbank="87" lbank="66" prog="52"/>
+ <Patch name="PeakArpSine" drum="0" hbank="87" lbank="66" prog="53"/>
+ <Patch name="Theramax" drum="0" hbank="87" lbank="66" prog="54"/>
+ <Patch name="FS Sqr Lead" drum="0" hbank="87" lbank="66" prog="55"/>
+ <Patch name="Dawn of Pan" drum="0" hbank="87" lbank="66" prog="56"/>
+ <Patch name="Sqr Diamond" drum="0" hbank="87" lbank="66" prog="57"/>
+ <Patch name="FS SoftLead" drum="0" hbank="87" lbank="66" prog="58"/>
+ <Patch name="Mid Saw Ld" drum="0" hbank="87" lbank="66" prog="59"/>
+ <Patch name="FS ResoLead" drum="0" hbank="87" lbank="66" prog="60"/>
+ <Patch name="Dig-n-Duke" drum="0" hbank="87" lbank="66" prog="61"/>
+ <Patch name="Modulated Ld" drum="0" hbank="87" lbank="66" prog="62"/>
+ <Patch name="Waspy Lead" drum="0" hbank="87" lbank="66" prog="63"/>
+ <Patch name="Mew Lead" drum="0" hbank="87" lbank="66" prog="64"/>
+ <Patch name="Violin Lead" drum="0" hbank="87" lbank="66" prog="65"/>
+ <Patch name="Oscillo Lead" drum="0" hbank="87" lbank="66" prog="66"/>
+ <Patch name="JP Saw Lead" drum="0" hbank="87" lbank="66" prog="67"/>
+ <Patch name="MG Sqr Lead" drum="0" hbank="87" lbank="66" prog="68"/>
+ <Patch name="Tristar" drum="0" hbank="87" lbank="66" prog="69"/>
+ <Patch name="Mod Lead" drum="0" hbank="87" lbank="66" prog="70"/>
+ <Patch name="Digital Ld 1" drum="0" hbank="87" lbank="66" prog="71"/>
+ <Patch name="Chubby Lead" drum="0" hbank="87" lbank="66" prog="72"/>
+ <Patch name="Sneaky Leady" drum="0" hbank="87" lbank="66" prog="73"/>
+ <Patch name="SoloNzPeaker" drum="0" hbank="87" lbank="66" prog="74"/>
+ <Patch name="Clone Zone" drum="0" hbank="87" lbank="66" prog="75"/>
+ <Patch name="Legato Tkno" drum="0" hbank="87" lbank="66" prog="76"/>
+ <Patch name="DC Triangle" drum="0" hbank="87" lbank="66" prog="77"/>
+ <Patch name="Sqr-Seqence" drum="0" hbank="87" lbank="66" prog="78"/>
+ <Patch name="Griggley" drum="0" hbank="87" lbank="66" prog="79"/>
+ <Patch name="Pure Square" drum="0" hbank="87" lbank="66" prog="80"/>
+ <Patch name="Legato Saw" drum="0" hbank="87" lbank="66" prog="81"/>
+ <Patch name="Lone Prophat" drum="0" hbank="87" lbank="66" prog="82"/>
+ <Patch name="Porta SoloLd" drum="0" hbank="87" lbank="66" prog="83"/>
+ <Patch name="FS Saw Ld 1" drum="0" hbank="87" lbank="66" prog="84"/>
+ <Patch name="FS Saw Ld 2" drum="0" hbank="87" lbank="66" prog="85"/>
+ <Patch name="Wind Syn Ld" drum="0" hbank="87" lbank="66" prog="86"/>
+ <Patch name="Dual Profs" drum="0" hbank="87" lbank="66" prog="87"/>
+ <Patch name="Gwyo Press" drum="0" hbank="87" lbank="66" prog="88"/>
+ <Patch name="Q DualSaws" drum="0" hbank="87" lbank="66" prog="89"/>
+ <Patch name="Mogulator Ld" drum="0" hbank="87" lbank="66" prog="90"/>
+ <Patch name="DirtyVoltage" drum="0" hbank="87" lbank="66" prog="91"/>
+ <Patch name="Clean?" drum="0" hbank="87" lbank="66" prog="92"/>
+ <Patch name="DistortionGT" drum="0" hbank="87" lbank="66" prog="93"/>
+ <Patch name="FS Syn Ld" drum="0" hbank="87" lbank="66" prog="94"/>
+ <Patch name="SynLead 0322" drum="0" hbank="87" lbank="66" prog="95"/>
+ <Patch name="Digital Ld 2" drum="0" hbank="87" lbank="66" prog="96"/>
+ <Patch name="X-Sink Delay" drum="0" hbank="87" lbank="66" prog="97"/>
+ <Patch name="Noized Lead" drum="0" hbank="87" lbank="66" prog="98"/>
+ <Patch name="Space Lead" drum="0" hbank="87" lbank="66" prog="99"/>
+ <Patch name="Destroyed Ld" drum="0" hbank="87" lbank="66" prog="100"/>
+ <Patch name="SyncModulate" drum="0" hbank="87" lbank="66" prog="101"/>
+ <Patch name="Sync Tank" drum="0" hbank="87" lbank="66" prog="102"/>
+ <Patch name="Squareheads" drum="0" hbank="87" lbank="66" prog="103"/>
+ <Patch name="Distorted MG" drum="0" hbank="87" lbank="66" prog="104"/>
+ <Patch name="SonicVampire" drum="0" hbank="87" lbank="66" prog="105"/>
+ <Patch name="Blue Meanie" drum="0" hbank="87" lbank="66" prog="106"/>
+ <Patch name="Defcon" drum="0" hbank="87" lbank="66" prog="107"/>
+ <Patch name="Stimulation" drum="0" hbank="87" lbank="66" prog="108"/>
+ <Patch name="Sub Hit" drum="0" hbank="87" lbank="66" prog="109"/>
+ <Patch name="Blue Ice" drum="0" hbank="87" lbank="66" prog="110"/>
+ <Patch name=".16 Orch" drum="0" hbank="87" lbank="66" prog="111"/>
+ <Patch name="In da Cave" drum="0" hbank="87" lbank="66" prog="112"/>
+ <Patch name="BlastfrmPast" drum="0" hbank="87" lbank="66" prog="113"/>
+ <Patch name="Smear Hit 1" drum="0" hbank="87" lbank="66" prog="114"/>
+ <Patch name="Smear Hit 2" drum="0" hbank="87" lbank="66" prog="115"/>
+ <Patch name="Good Old Hit" drum="0" hbank="87" lbank="66" prog="116"/>
+ <Patch name="Mix Hit 1" drum="0" hbank="87" lbank="66" prog="117"/>
+ <Patch name="Philly Hit" drum="0" hbank="87" lbank="66" prog="118"/>
+ <Patch name="Mojo Man" drum="0" hbank="87" lbank="66" prog="119"/>
+ <Patch name="Cheezy Movie" drum="0" hbank="87" lbank="66" prog="120"/>
+ <Patch name="Mix Hit 2" drum="0" hbank="87" lbank="66" prog="121"/>
+ <Patch name="Lo-Fi Hit" drum="0" hbank="87" lbank="66" prog="122"/>
+ <Patch name="2ble Action" drum="0" hbank="87" lbank="66" prog="123"/>
+ <Patch name="Funk Chank" drum="0" hbank="87" lbank="66" prog="124"/>
+ <Patch name="Venus" drum="0" hbank="87" lbank="66" prog="125"/>
+ <Patch name="AluminmWires" drum="0" hbank="87" lbank="66" prog="126"/>
+ <Patch name="Raven Chord" drum="0" hbank="87" lbank="66" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset D">
+ <Patch name="HPF Sweep" drum="0" hbank="87" lbank="67" prog="0"/>
+ <Patch name="Moon Synth" drum="0" hbank="87" lbank="67" prog="1"/>
+ <Patch name="DelyResoSaws" drum="0" hbank="87" lbank="67" prog="2"/>
+ <Patch name="R-Trance" drum="0" hbank="87" lbank="67" prog="3"/>
+ <Patch name="Alfa Retro" drum="0" hbank="87" lbank="67" prog="4"/>
+ <Patch name="Nu Hoover" drum="0" hbank="87" lbank="67" prog="5"/>
+ <Patch name="Hoovercraft" drum="0" hbank="87" lbank="67" prog="6"/>
+ <Patch name="Braatz" drum="0" hbank="87" lbank="67" prog="7"/>
+ <Patch name="AllinOneRiff" drum="0" hbank="87" lbank="67" prog="8"/>
+ <Patch name="YZ Again" drum="0" hbank="87" lbank="67" prog="9"/>
+ <Patch name="Flazzy Lead" drum="0" hbank="87" lbank="67" prog="10"/>
+ <Patch name="Coffee Bee" drum="0" hbank="87" lbank="67" prog="11"/>
+ <Patch name="Sweet House" drum="0" hbank="87" lbank="67" prog="12"/>
+ <Patch name="Alien Bubble" drum="0" hbank="87" lbank="67" prog="13"/>
+ <Patch name="LowFreqHit" drum="0" hbank="87" lbank="67" prog="14"/>
+ <Patch name="Fred n Barney" drum="0" hbank="87" lbank="67" prog="15"/>
+ <Patch name="Periscope" drum="0" hbank="87" lbank="67" prog="16"/>
+ <Patch name="Electrostars" drum="0" hbank="87" lbank="67" prog="17"/>
+ <Patch name="Going Mad!" drum="0" hbank="87" lbank="67" prog="18"/>
+ <Patch name="LoFiSequence" drum="0" hbank="87" lbank="67" prog="19"/>
+ <Patch name="DreamInColor" drum="0" hbank="87" lbank="67" prog="20"/>
+ <Patch name="MelodicDrums" drum="0" hbank="87" lbank="67" prog="21"/>
+ <Patch name="Techno Snips" drum="0" hbank="87" lbank="67" prog="22"/>
+ <Patch name="TB Wah" drum="0" hbank="87" lbank="67" prog="23"/>
+ <Patch name="Waving TB303" drum="0" hbank="87" lbank="67" prog="24"/>
+ <Patch name="Digi Seq" drum="0" hbank="87" lbank="67" prog="25"/>
+ <Patch name="Seq Saw" drum="0" hbank="87" lbank="67" prog="26"/>
+ <Patch name="Reso Seq Saw" drum="0" hbank="87" lbank="67" prog="27"/>
+ <Patch name="DetuneSeqSaw" drum="0" hbank="87" lbank="67" prog="28"/>
+ <Patch name="Technotribe" drum="0" hbank="87" lbank="67" prog="29"/>
+ <Patch name="MetalVoxBox" drum="0" hbank="87" lbank="67" prog="30"/>
+ <Patch name="Teethy Grit" drum="0" hbank="87" lbank="67" prog="31"/>
+ <Patch name="Repertition" drum="0" hbank="87" lbank="67" prog="32"/>
+ <Patch name="Jucy Saw" drum="0" hbank="87" lbank="67" prog="33"/>
+ <Patch name="Cue Tip" drum="0" hbank="87" lbank="67" prog="34"/>
+ <Patch name="TB-Sequence" drum="0" hbank="87" lbank="67" prog="35"/>
+ <Patch name="Europe Xpres" drum="0" hbank="87" lbank="67" prog="36"/>
+ <Patch name="Squeepy" drum="0" hbank="87" lbank="67" prog="37"/>
+ <Patch name="Atmorave" drum="0" hbank="87" lbank="67" prog="38"/>
+ <Patch name="DOC Stack" drum="0" hbank="87" lbank="67" prog="39"/>
+ <Patch name="Sweep Lead" drum="0" hbank="87" lbank="67" prog="40"/>
+ <Patch name="Digitaless" drum="0" hbank="87" lbank="67" prog="41"/>
+ <Patch name="Flip Pad" drum="0" hbank="87" lbank="67" prog="42"/>
+ <Patch name="Short Detune" drum="0" hbank="87" lbank="67" prog="43"/>
+ <Patch name="forSequence" drum="0" hbank="87" lbank="67" prog="44"/>
+ <Patch name="Memory Pluck" drum="0" hbank="87" lbank="67" prog="45"/>
+ <Patch name="Metalic Bass" drum="0" hbank="87" lbank="67" prog="46"/>
+ <Patch name="Aqua" drum="0" hbank="87" lbank="67" prog="47"/>
+ <Patch name="Big Planet" drum="0" hbank="87" lbank="67" prog="48"/>
+ <Patch name="Wet Atax" drum="0" hbank="87" lbank="67" prog="49"/>
+ <Patch name="Houze Clavi" drum="0" hbank="87" lbank="67" prog="50"/>
+ <Patch name="SuperSawSlow" drum="0" hbank="87" lbank="67" prog="51"/>
+ <Patch name="TranceSaws" drum="0" hbank="87" lbank="67" prog="52"/>
+ <Patch name="Trancy Synth" drum="0" hbank="87" lbank="67" prog="53"/>
+ <Patch name="Saw Stack" drum="0" hbank="87" lbank="67" prog="54"/>
+ <Patch name="Frgile Saws" drum="0" hbank="87" lbank="67" prog="55"/>
+ <Patch name="Steamed Sawz" drum="0" hbank="87" lbank="67" prog="56"/>
+ <Patch name="RAVtune" drum="0" hbank="87" lbank="67" prog="57"/>
+ <Patch name="Bustranza" drum="0" hbank="87" lbank="67" prog="58"/>
+ <Patch name="AftTch Ji-n" drum="0" hbank="87" lbank="67" prog="59"/>
+ <Patch name="JP OctAttack" drum="0" hbank="87" lbank="67" prog="60"/>
+ <Patch name="Oct Unison" drum="0" hbank="87" lbank="67" prog="61"/>
+ <Patch name="Xtatic" drum="0" hbank="87" lbank="67" prog="62"/>
+ <Patch name="Dirty Combo" drum="0" hbank="87" lbank="67" prog="63"/>
+ <Patch name="FM-s Attack" drum="0" hbank="87" lbank="67" prog="64"/>
+ <Patch name="Impression" drum="0" hbank="87" lbank="67" prog="65"/>
+ <Patch name="Digi-vox Syn" drum="0" hbank="87" lbank="67" prog="66"/>
+ <Patch name="Fairy Factor" drum="0" hbank="87" lbank="67" prog="67"/>
+ <Patch name="Tempest" drum="0" hbank="87" lbank="67" prog="68"/>
+ <Patch name="X-Racer" drum="0" hbank="87" lbank="67" prog="69"/>
+ <Patch name="TB Booster" drum="0" hbank="87" lbank="67" prog="70"/>
+ <Patch name="Syn-Orch/Mod" drum="0" hbank="87" lbank="67" prog="71"/>
+ <Patch name="Pressyn" drum="0" hbank="87" lbank="67" prog="72"/>
+ <Patch name="High Five" drum="0" hbank="87" lbank="67" prog="73"/>
+ <Patch name="4DaCommonMan" drum="0" hbank="87" lbank="67" prog="74"/>
+ <Patch name="Orgaenia" drum="0" hbank="87" lbank="67" prog="75"/>
+ <Patch name="Sleeper" drum="0" hbank="87" lbank="67" prog="76"/>
+ <Patch name="Sugar Synth" drum="0" hbank="87" lbank="67" prog="77"/>
+ <Patch name="Ice Palace" drum="0" hbank="87" lbank="67" prog="78"/>
+ <Patch name="Story Harp" drum="0" hbank="87" lbank="67" prog="79"/>
+ <Patch name="LostParabise" drum="0" hbank="87" lbank="67" prog="80"/>
+ <Patch name="Magnetic 5th" drum="0" hbank="87" lbank="67" prog="81"/>
+ <Patch name="Jazz Doos" drum="0" hbank="87" lbank="67" prog="82"/>
+ <Patch name="Beat Vox" drum="0" hbank="87" lbank="67" prog="83"/>
+ <Patch name="Scat Beats" drum="0" hbank="87" lbank="67" prog="84"/>
+ <Patch name="Choir Aahs 1" drum="0" hbank="87" lbank="67" prog="85"/>
+ <Patch name="Choir Aahs 2" drum="0" hbank="87" lbank="67" prog="86"/>
+ <Patch name="ChoirOoh/Aft" drum="0" hbank="87" lbank="67" prog="87"/>
+ <Patch name="Angels Choir" drum="0" hbank="87" lbank="67" prog="88"/>
+ <Patch name="Angelique" drum="0" hbank="87" lbank="67" prog="89"/>
+ <Patch name="Gospel Oohs" drum="0" hbank="87" lbank="67" prog="90"/>
+ <Patch name="Uhmmm" drum="0" hbank="87" lbank="67" prog="91"/>
+ <Patch name="Aah Vox" drum="0" hbank="87" lbank="67" prog="92"/>
+ <Patch name="Morning Star" drum="0" hbank="87" lbank="67" prog="93"/>
+ <Patch name="Syn Opera" drum="0" hbank="87" lbank="67" prog="94"/>
+ <Patch name="BeautifulOne" drum="0" hbank="87" lbank="67" prog="95"/>
+ <Patch name="Ooze" drum="0" hbank="87" lbank="67" prog="96"/>
+ <Patch name="Aerial Choir" drum="0" hbank="87" lbank="67" prog="97"/>
+ <Patch name="3D Vox" drum="0" hbank="87" lbank="67" prog="98"/>
+ <Patch name="FS Sqr Pad" drum="0" hbank="87" lbank="67" prog="99"/>
+ <Patch name="FS Hollow" drum="0" hbank="87" lbank="67" prog="100"/>
+ <Patch name="Silk Pad" drum="0" hbank="87" lbank="67" prog="101"/>
+ <Patch name="WarmReso Pad" drum="0" hbank="87" lbank="67" prog="102"/>
+ <Patch name="FS Soft Pad" drum="0" hbank="87" lbank="67" prog="103"/>
+ <Patch name="Soft Breeze" drum="0" hbank="87" lbank="67" prog="104"/>
+ <Patch name="JP Strings 1" drum="0" hbank="87" lbank="67" prog="105"/>
+ <Patch name="JP Strings 2" drum="0" hbank="87" lbank="67" prog="106"/>
+ <Patch name="FS Syn Str" drum="0" hbank="87" lbank="67" prog="107"/>
+ <Patch name="Syn Strings" drum="0" hbank="87" lbank="67" prog="108"/>
+ <Patch name="OB Slow Str" drum="0" hbank="87" lbank="67" prog="109"/>
+ <Patch name="Super SynStr" drum="0" hbank="87" lbank="67" prog="110"/>
+ <Patch name="Strings Pad" drum="0" hbank="87" lbank="67" prog="111"/>
+ <Patch name="RnB SoftPad" drum="0" hbank="87" lbank="67" prog="112"/>
+ <Patch name="Reso Pad" drum="0" hbank="87" lbank="67" prog="113"/>
+ <Patch name="Phat Pad" drum="0" hbank="87" lbank="67" prog="114"/>
+ <Patch name="FS PhaserPad" drum="0" hbank="87" lbank="67" prog="115"/>
+ <Patch name="Mystic Str" drum="0" hbank="87" lbank="67" prog="116"/>
+ <Patch name="Glass Organ" drum="0" hbank="87" lbank="67" prog="117"/>
+ <Patch name="Wind Pad" drum="0" hbank="87" lbank="67" prog="118"/>
+ <Patch name="Combination" drum="0" hbank="87" lbank="67" prog="119"/>
+ <Patch name="HumanKindnes" drum="0" hbank="87" lbank="67" prog="120"/>
+ <Patch name="Atmospherics" drum="0" hbank="87" lbank="67" prog="121"/>
+ <Patch name="Terra Nostra" drum="0" hbank="87" lbank="67" prog="122"/>
+ <Patch name="OB Aaahs" drum="0" hbank="87" lbank="67" prog="123"/>
+ <Patch name="Vulcano Pad" drum="0" hbank="87" lbank="67" prog="124"/>
+ <Patch name="Cloud" drum="0" hbank="87" lbank="67" prog="125"/>
+ <Patch name="Lostscapes" drum="0" hbank="87" lbank="67" prog="126"/>
+ <Patch name="Organic Pad" drum="0" hbank="87" lbank="67" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset E">
+ <Patch name="Digital Aahs" drum="0" hbank="87" lbank="68" prog="0"/>
+ <Patch name="FreezinNight" drum="0" hbank="87" lbank="68" prog="1"/>
+ <Patch name="FS MovinPad" drum="0" hbank="87" lbank="68" prog="2"/>
+ <Patch name="Seq-Pad 1" drum="0" hbank="87" lbank="68" prog="3"/>
+ <Patch name="Digi-Swell" drum="0" hbank="87" lbank="68" prog="4"/>
+ <Patch name="Stringship" drum="0" hbank="87" lbank="68" prog="5"/>
+ <Patch name="SaturnHolida" drum="0" hbank="87" lbank="68" prog="6"/>
+ <Patch name="India Garden" drum="0" hbank="87" lbank="68" prog="7"/>
+ <Patch name="OB Rezo Pad" drum="0" hbank="87" lbank="68" prog="8"/>
+ <Patch name="Sonic Surfer" drum="0" hbank="87" lbank="68" prog="9"/>
+ <Patch name="2 Point 2" drum="0" hbank="87" lbank="68" prog="10"/>
+ <Patch name="2.2 Pad" drum="0" hbank="87" lbank="68" prog="11"/>
+ <Patch name="New Year Day" drum="0" hbank="87" lbank="68" prog="12"/>
+ <Patch name="Mod Dare" drum="0" hbank="87" lbank="68" prog="13"/>
+ <Patch name="Neuro-Drone" drum="0" hbank="87" lbank="68" prog="14"/>
+ <Patch name="In The Pass" drum="0" hbank="87" lbank="68" prog="15"/>
+ <Patch name="Polar Night" drum="0" hbank="87" lbank="68" prog="16"/>
+ <Patch name="Electric Pad" drum="0" hbank="87" lbank="68" prog="17"/>
+ <Patch name="MistOver5ths" drum="0" hbank="87" lbank="68" prog="18"/>
+ <Patch name="Voyager" drum="0" hbank="87" lbank="68" prog="19"/>
+ <Patch name="Cosmic Rays" drum="0" hbank="87" lbank="68" prog="20"/>
+ <Patch name="Gritty Pad" drum="0" hbank="87" lbank="68" prog="21"/>
+ <Patch name="Distant Sun" drum="0" hbank="87" lbank="68" prog="22"/>
+ <Patch name="Filmscape" drum="0" hbank="87" lbank="68" prog="23"/>
+ <Patch name="BillionStars" drum="0" hbank="87" lbank="68" prog="24"/>
+ <Patch name="Sand Pad" drum="0" hbank="87" lbank="68" prog="25"/>
+ <Patch name="Fat Stacks" drum="0" hbank="87" lbank="68" prog="26"/>
+ <Patch name="ReverseSweep" drum="0" hbank="87" lbank="68" prog="27"/>
+ <Patch name="HugeSoundMod" drum="0" hbank="87" lbank="68" prog="28"/>
+ <Patch name="Metal Swell" drum="0" hbank="87" lbank="68" prog="29"/>
+ <Patch name="ShapeURMusic" drum="0" hbank="87" lbank="68" prog="30"/>
+ <Patch name="Synth Force" drum="0" hbank="87" lbank="68" prog="31"/>
+ <Patch name="Trance Split" drum="0" hbank="87" lbank="68" prog="32"/>
+ <Patch name="Step Tronce" drum="0" hbank="87" lbank="68" prog="33"/>
+ <Patch name="Chop Synth" drum="0" hbank="87" lbank="68" prog="34"/>
+ <Patch name="Euro Teuro" drum="0" hbank="87" lbank="68" prog="35"/>
+ <Patch name="Auto Trance" drum="0" hbank="87" lbank="68" prog="36"/>
+ <Patch name="Eureggae" drum="0" hbank="87" lbank="68" prog="37"/>
+ <Patch name="Sorry4theDLY" drum="0" hbank="87" lbank="68" prog="38"/>
+ <Patch name="Beat Pad" drum="0" hbank="87" lbank="68" prog="39"/>
+ <Patch name="FS ResoStep" drum="0" hbank="87" lbank="68" prog="40"/>
+ <Patch name="TMT Seq Pad" drum="0" hbank="87" lbank="68" prog="41"/>
+ <Patch name="ZipDoggyDoDa" drum="0" hbank="87" lbank="68" prog="42"/>
+ <Patch name="ForYourBreak" drum="0" hbank="87" lbank="68" prog="43"/>
+ <Patch name="HPF Slicer" drum="0" hbank="87" lbank="68" prog="44"/>
+ <Patch name="DarknessSide" drum="0" hbank="87" lbank="68" prog="45"/>
+ <Patch name="Sliced Choir" drum="0" hbank="87" lbank="68" prog="46"/>
+ <Patch name="Digi-Doo" drum="0" hbank="87" lbank="68" prog="47"/>
+ <Patch name="PanningFrmnt" drum="0" hbank="87" lbank="68" prog="48"/>
+ <Patch name="Dirty Beat" drum="0" hbank="87" lbank="68" prog="49"/>
+ <Patch name="Hellrazor" drum="0" hbank="87" lbank="68" prog="50"/>
+ <Patch name="Electrons" drum="0" hbank="87" lbank="68" prog="51"/>
+ <Patch name="Protons" drum="0" hbank="87" lbank="68" prog="52"/>
+ <Patch name="FS Alfa Rave" drum="0" hbank="87" lbank="68" prog="53"/>
+ <Patch name="Brisk Vortex" drum="0" hbank="87" lbank="68" prog="54"/>
+ <Patch name="FS Throbulax" drum="0" hbank="87" lbank="68" prog="55"/>
+ <Patch name="FS Lonizer" drum="0" hbank="87" lbank="68" prog="56"/>
+ <Patch name="FS Strobe" drum="0" hbank="87" lbank="68" prog="57"/>
+ <Patch name="VirtualHuman" drum="0" hbank="87" lbank="68" prog="58"/>
+ <Patch name="FS Line" drum="0" hbank="87" lbank="68" prog="59"/>
+ <Patch name="StepPitShift" drum="0" hbank="87" lbank="68" prog="60"/>
+ <Patch name="Sever" drum="0" hbank="87" lbank="68" prog="61"/>
+ <Patch name="Pad Pulses" drum="0" hbank="87" lbank="68" prog="62"/>
+ <Patch name="Dub Tales" drum="0" hbank="87" lbank="68" prog="63"/>
+ <Patch name="Seq-Pad 2" drum="0" hbank="87" lbank="68" prog="64"/>
+ <Patch name="Nice Kalimba" drum="0" hbank="87" lbank="68" prog="65"/>
+ <Patch name="Quiet River" drum="0" hbank="87" lbank="68" prog="66"/>
+ <Patch name="Teky Drop" drum="0" hbank="87" lbank="68" prog="67"/>
+ <Patch name="Pat is away" drum="0" hbank="87" lbank="68" prog="68"/>
+ <Patch name="FS Sitar 1" drum="0" hbank="87" lbank="68" prog="69"/>
+ <Patch name="FS Sitar 2" drum="0" hbank="87" lbank="68" prog="70"/>
+ <Patch name="Sitar on C" drum="0" hbank="87" lbank="68" prog="71"/>
+ <Patch name="Sitar Baby" drum="0" hbank="87" lbank="68" prog="72"/>
+ <Patch name="EasternDlite" drum="0" hbank="87" lbank="68" prog="73"/>
+ <Patch name="Elec Sitar" drum="0" hbank="87" lbank="68" prog="74"/>
+ <Patch name="Neo Sitar" drum="0" hbank="87" lbank="68" prog="75"/>
+ <Patch name="Bosporus" drum="0" hbank="87" lbank="68" prog="76"/>
+ <Patch name="Santur Stack" drum="0" hbank="87" lbank="68" prog="77"/>
+ <Patch name="Aerial Harp" drum="0" hbank="87" lbank="68" prog="78"/>
+ <Patch name="Harpiness" drum="0" hbank="87" lbank="68" prog="79"/>
+ <Patch name="TroubadorEns" drum="0" hbank="87" lbank="68" prog="80"/>
+ <Patch name="Jamisen" drum="0" hbank="87" lbank="68" prog="81"/>
+ <Patch name="Koto" drum="0" hbank="87" lbank="68" prog="82"/>
+ <Patch name="Monsoon" drum="0" hbank="87" lbank="68" prog="83"/>
+ <Patch name="Bend Koto" drum="0" hbank="87" lbank="68" prog="84"/>
+ <Patch name="LongDistance" drum="0" hbank="87" lbank="68" prog="85"/>
+ <Patch name="Ambi Shaku" drum="0" hbank="87" lbank="68" prog="86"/>
+ <Patch name="FS PipeDream" drum="0" hbank="87" lbank="68" prog="87"/>
+ <Patch name="FS Lochscape" drum="0" hbank="87" lbank="68" prog="88"/>
+ <Patch name="FS Far East" drum="0" hbank="87" lbank="68" prog="89"/>
+ <Patch name="Banjo" drum="0" hbank="87" lbank="68" prog="90"/>
+ <Patch name="Breath Slice" drum="0" hbank="87" lbank="68" prog="91"/>
+ <Patch name="Lazer Points" drum="0" hbank="87" lbank="68" prog="92"/>
+ <Patch name="Chaos 2003" drum="0" hbank="87" lbank="68" prog="93"/>
+ <Patch name="SoundOnSound" drum="0" hbank="87" lbank="68" prog="94"/>
+ <Patch name="Low Beat-S" drum="0" hbank="87" lbank="68" prog="95"/>
+ <Patch name="Control Room" drum="0" hbank="87" lbank="68" prog="96"/>
+ <Patch name="FS Try This!" drum="0" hbank="87" lbank="68" prog="97"/>
+ <Patch name="OutOf sortz" drum="0" hbank="87" lbank="68" prog="98"/>
+ <Patch name="Seq" drum="0" hbank="87" lbank="68" prog="99"/>
+ <Patch name="Scatter" drum="0" hbank="87" lbank="68" prog="100"/>
+ <Patch name="WaitnOutside" drum="0" hbank="87" lbank="68" prog="101"/>
+ <Patch name="Ambience" drum="0" hbank="87" lbank="68" prog="102"/>
+ <Patch name="Fantom Noise" drum="0" hbank="87" lbank="68" prog="103"/>
+ <Patch name="Breath Echo" drum="0" hbank="87" lbank="68" prog="104"/>
+ <Patch name="SoundStrange" drum="0" hbank="87" lbank="68" prog="105"/>
+ <Patch name="Cosmic Pulse" drum="0" hbank="87" lbank="68" prog="106"/>
+ <Patch name="Faked Piano" drum="0" hbank="87" lbank="68" prog="107"/>
+ <Patch name="Tubulence" drum="0" hbank="87" lbank="68" prog="108"/>
+ <Patch name="South Pole" drum="0" hbank="87" lbank="68" prog="109"/>
+ <Patch name="FS Crystal" drum="0" hbank="87" lbank="68" prog="110"/>
+ <Patch name="ResoSweep Dn" drum="0" hbank="87" lbank="68" prog="111"/>
+ <Patch name="Zap B3 n C4" drum="0" hbank="87" lbank="68" prog="112"/>
+ <Patch name="PolySweep Nz" drum="0" hbank="87" lbank="68" prog="113"/>
+ <Patch name="New Planetz" drum="0" hbank="87" lbank="68" prog="114"/>
+ <Patch name="Strange Land" drum="0" hbank="87" lbank="68" prog="115"/>
+ <Patch name="Trancer" drum="0" hbank="87" lbank="68" prog="116"/>
+ <Patch name="S and H Voc" drum="0" hbank="87" lbank="68" prog="117"/>
+ <Patch name="12th Planet" drum="0" hbank="87" lbank="68" prog="118"/>
+ <Patch name="Ambidextrous" drum="0" hbank="87" lbank="68" prog="119"/>
+ <Patch name="En-co-re" drum="0" hbank="87" lbank="68" prog="120"/>
+ <Patch name="Mobile Phone" drum="0" hbank="87" lbank="68" prog="121"/>
+ <Patch name="Beat (C4)" drum="0" hbank="87" lbank="68" prog="122"/>
+ <Patch name="StepLFO Ens" drum="0" hbank="87" lbank="68" prog="123"/>
+ <Patch name="Timpani+Low" drum="0" hbank="87" lbank="68" prog="124"/>
+ <Patch name="Timpani Roll" drum="0" hbank="87" lbank="68" prog="125"/>
+ <Patch name="Bass Drum" drum="0" hbank="87" lbank="68" prog="126"/>
+ <Patch name="Techno Craft" drum="0" hbank="87" lbank="68" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset F">
+ <Patch name="ConcertGrand" drum="0" hbank="87" lbank="69" prog="0"/>
+ <Patch name="Hall Concert" drum="0" hbank="87" lbank="69" prog="1"/>
+ <Patch name="Bright Tune" drum="0" hbank="87" lbank="69" prog="2"/>
+ <Patch name="Mellow Tune" drum="0" hbank="87" lbank="69" prog="3"/>
+ <Patch name="Back E-Grand" drum="0" hbank="87" lbank="69" prog="4"/>
+ <Patch name="Rhodes mkI" drum="0" hbank="87" lbank="69" prog="5"/>
+ <Patch name="Stage Rhodes" drum="0" hbank="87" lbank="69" prog="6"/>
+ <Patch name="MKS20EnsemEP" drum="0" hbank="87" lbank="69" prog="7"/>
+ <Patch name="UltimatGrand" drum="0" hbank="87" lbank="69" prog="8"/>
+ <Patch name="X Pure Grand" drum="0" hbank="87" lbank="69" prog="9"/>
+ <Patch name="Studio Grand" drum="0" hbank="87" lbank="69" prog="10"/>
+ <Patch name="88ConcertPno" drum="0" hbank="87" lbank="69" prog="11"/>
+ <Patch name="DryStudio88" drum="0" hbank="87" lbank="69" prog="12"/>
+ <Patch name="First Choice" drum="0" hbank="87" lbank="69" prog="13"/>
+ <Patch name="Rokkin pF" drum="0" hbank="87" lbank="69" prog="14"/>
+ <Patch name="Dark Grand" drum="0" hbank="87" lbank="69" prog="15"/>
+ <Patch name="Piano Oz" drum="0" hbank="87" lbank="69" prog="16"/>
+ <Patch name="Grand Hall" drum="0" hbank="87" lbank="69" prog="17"/>
+ <Patch name="X Piano +Str" drum="0" hbank="87" lbank="69" prog="18"/>
+ <Patch name="Arie Piano" drum="0" hbank="87" lbank="69" prog="19"/>
+ <Patch name="Cicada Piano" drum="0" hbank="87" lbank="69" prog="20"/>
+ <Patch name="Clare Voyent" drum="0" hbank="87" lbank="69" prog="21"/>
+ <Patch name="X Piano +Pad" drum="0" hbank="87" lbank="69" prog="22"/>
+ <Patch name="X Piano +Vox" drum="0" hbank="87" lbank="69" prog="23"/>
+ <Patch name="FX Piano" drum="0" hbank="87" lbank="69" prog="24"/>
+ <Patch name="AmbientPiano" drum="0" hbank="87" lbank="69" prog="25"/>
+ <Patch name="Tre Rhodes" drum="0" hbank="87" lbank="69" prog="26"/>
+ <Patch name="Stage Phazer" drum="0" hbank="87" lbank="69" prog="27"/>
+ <Patch name="StageCabinet" drum="0" hbank="87" lbank="69" prog="28"/>
+ <Patch name="AMP Rhodes" drum="0" hbank="87" lbank="69" prog="29"/>
+ <Patch name="VelPanWurly" drum="0" hbank="87" lbank="69" prog="30"/>
+ <Patch name="Mr.AXXE" drum="0" hbank="87" lbank="69" prog="31"/>
+ <Patch name="1983 EP" drum="0" hbank="87" lbank="69" prog="32"/>
+ <Patch name="EP Stack" drum="0" hbank="87" lbank="69" prog="33"/>
+ <Patch name="EP Belle" drum="0" hbank="87" lbank="69" prog="34"/>
+ <Patch name="Chocolate EP" drum="0" hbank="87" lbank="69" prog="35"/>
+ <Patch name="Abstract EP" drum="0" hbank="87" lbank="69" prog="36"/>
+ <Patch name="Ringy EP" drum="0" hbank="87" lbank="69" prog="37"/>
+ <Patch name="Hipchord" drum="0" hbank="87" lbank="69" prog="38"/>
+ <Patch name="Snappy Clav" drum="0" hbank="87" lbank="69" prog="39"/>
+ <Patch name="Over-D6" drum="0" hbank="87" lbank="69" prog="40"/>
+ <Patch name="CoupleHarpsi" drum="0" hbank="87" lbank="69" prog="41"/>
+ <Patch name="HimalayaThaw" drum="0" hbank="87" lbank="69" prog="42"/>
+ <Patch name="Ballad Bells" drum="0" hbank="87" lbank="69" prog="43"/>
+ <Patch name="Bell Monitor" drum="0" hbank="87" lbank="69" prog="44"/>
+ <Patch name="SideBandBell" drum="0" hbank="87" lbank="69" prog="45"/>
+ <Patch name="SBF Saw Bell" drum="0" hbank="87" lbank="69" prog="46"/>
+ <Patch name="TubyRuesday" drum="0" hbank="87" lbank="69" prog="47"/>
+ <Patch name="Music Box 2" drum="0" hbank="87" lbank="69" prog="48"/>
+ <Patch name="AirPluck" drum="0" hbank="87" lbank="69" prog="49"/>
+ <Patch name="Airie Vibez" drum="0" hbank="87" lbank="69" prog="50"/>
+ <Patch name="Ringy Vibes" drum="0" hbank="87" lbank="69" prog="51"/>
+ <Patch name="50 SteelDrms" drum="0" hbank="87" lbank="69" prog="52"/>
+ <Patch name="VKHold4Speed" drum="0" hbank="87" lbank="69" prog="53"/>
+ <Patch name="X Perc Organ" drum="0" hbank="87" lbank="69" prog="54"/>
+ <Patch name="Rocky Organ" drum="0" hbank="87" lbank="69" prog="55"/>
+ <Patch name="Purple Organ" drum="0" hbank="87" lbank="69" prog="56"/>
+ <Patch name="Phono Organ" drum="0" hbank="87" lbank="69" prog="57"/>
+ <Patch name="Mid Pipe Org" drum="0" hbank="87" lbank="69" prog="58"/>
+ <Patch name="ParisRomance" drum="0" hbank="87" lbank="69" prog="59"/>
+ <Patch name="La Seine" drum="0" hbank="87" lbank="69" prog="60"/>
+ <Patch name="VntgAccrdion" drum="0" hbank="87" lbank="69" prog="61"/>
+ <Patch name="Oktoberfest" drum="0" hbank="87" lbank="69" prog="62"/>
+ <Patch name="NaturalNylon" drum="0" hbank="87" lbank="69" prog="63"/>
+ <Patch name="Nylon Gtr VS" drum="0" hbank="87" lbank="69" prog="64"/>
+ <Patch name="Double Nylon" drum="0" hbank="87" lbank="69" prog="65"/>
+ <Patch name="Mellow Nylon" drum="0" hbank="87" lbank="69" prog="66"/>
+ <Patch name="FlamencoGt X" drum="0" hbank="87" lbank="69" prog="67"/>
+ <Patch name="El Toro Gtr" drum="0" hbank="87" lbank="69" prog="68"/>
+ <Patch name="Dyna Nylon" drum="0" hbank="87" lbank="69" prog="69"/>
+ <Patch name="NylonGt /HO" drum="0" hbank="87" lbank="69" prog="70"/>
+ <Patch name="Nylon 4way" drum="0" hbank="87" lbank="69" prog="71"/>
+ <Patch name="Nyl-Intro" drum="0" hbank="87" lbank="69" prog="72"/>
+ <Patch name="Nylon Dreams" drum="0" hbank="87" lbank="69" prog="73"/>
+ <Patch name="With Love" drum="0" hbank="87" lbank="69" prog="74"/>
+ <Patch name="Amore Story" drum="0" hbank="87" lbank="69" prog="75"/>
+ <Patch name="Interlude" drum="0" hbank="87" lbank="69" prog="76"/>
+ <Patch name="Sweet Tears" drum="0" hbank="87" lbank="69" prog="77"/>
+ <Patch name="WithALtlHelp" drum="0" hbank="87" lbank="69" prog="78"/>
+ <Patch name="Double Track" drum="0" hbank="87" lbank="69" prog="79"/>
+ <Patch name="Mystic Gtr" drum="0" hbank="87" lbank="69" prog="80"/>
+ <Patch name="Cut Thru Wah" drum="0" hbank="87" lbank="69" prog="81"/>
+ <Patch name="GuitaratiuG" drum="0" hbank="87" lbank="69" prog="82"/>
+ <Patch name="WahGt Riff" drum="0" hbank="87" lbank="69" prog="83"/>
+ <Patch name="Larsen /Aft" drum="0" hbank="87" lbank="69" prog="84"/>
+ <Patch name="Darmstrat X" drum="0" hbank="87" lbank="69" prog="85"/>
+ <Patch name="Rockin Dly" drum="0" hbank="87" lbank="69" prog="86"/>
+ <Patch name="DistGt Mt" drum="0" hbank="87" lbank="69" prog="87"/>
+ <Patch name="GTR Heroes" drum="0" hbank="87" lbank="69" prog="88"/>
+ <Patch name="X Mute Bass" drum="0" hbank="87" lbank="69" prog="89"/>
+ <Patch name="Nu Finger Bs" drum="0" hbank="87" lbank="69" prog="90"/>
+ <Patch name="Soulfinger" drum="0" hbank="87" lbank="69" prog="91"/>
+ <Patch name="X Finger Bs 1" drum="0" hbank="87" lbank="69" prog="92"/>
+ <Patch name="StickyOctave" drum="0" hbank="87" lbank="69" prog="93"/>
+ <Patch name="Bass n Amp" drum="0" hbank="87" lbank="69" prog="94"/>
+ <Patch name="Chorus Bass" drum="0" hbank="87" lbank="69" prog="95"/>
+ <Patch name="X 5String Bs" drum="0" hbank="87" lbank="69" prog="96"/>
+ <Patch name="6-Pack Stick" drum="0" hbank="87" lbank="69" prog="97"/>
+ <Patch name="Nu Pick Bass" drum="0" hbank="87" lbank="69" prog="98"/>
+ <Patch name="Comp Picker" drum="0" hbank="87" lbank="69" prog="99"/>
+ <Patch name="X Finger Bs2" drum="0" hbank="87" lbank="69" prog="100"/>
+ <Patch name="X Picked Bs" drum="0" hbank="87" lbank="69" prog="101"/>
+ <Patch name="Mutation" drum="0" hbank="87" lbank="69" prog="102"/>
+ <Patch name="X Slap Bass" drum="0" hbank="87" lbank="69" prog="103"/>
+ <Patch name="Fuzz Mute" drum="0" hbank="87" lbank="69" prog="104"/>
+ <Patch name="Doubled Bass" drum="0" hbank="87" lbank="69" prog="105"/>
+ <Patch name="NewAge Frtls" drum="0" hbank="87" lbank="69" prog="106"/>
+ <Patch name="Powerline" drum="0" hbank="87" lbank="69" prog="107"/>
+ <Patch name="Reso SynBass" drum="0" hbank="87" lbank="69" prog="108"/>
+ <Patch name="Synth Bassic" drum="0" hbank="87" lbank="69" prog="109"/>
+ <Patch name="Down 4 It" drum="0" hbank="87" lbank="69" prog="110"/>
+ <Patch name="Glider Bass" drum="0" hbank="87" lbank="69" prog="111"/>
+ <Patch name="Fundamental" drum="0" hbank="87" lbank="69" prog="112"/>
+ <Patch name="Artus Bass" drum="0" hbank="87" lbank="69" prog="113"/>
+ <Patch name="Sweet n Low" drum="0" hbank="87" lbank="69" prog="114"/>
+ <Patch name="Change It" drum="0" hbank="87" lbank="69" prog="115"/>
+ <Patch name="the ONE" drum="0" hbank="87" lbank="69" prog="116"/>
+ <Patch name="ChoruSE ONE" drum="0" hbank="87" lbank="69" prog="117"/>
+ <Patch name="Eyes Bass" drum="0" hbank="87" lbank="69" prog="118"/>
+ <Patch name="Secret Bass" drum="0" hbank="87" lbank="69" prog="119"/>
+ <Patch name="Base BoX" drum="0" hbank="87" lbank="69" prog="120"/>
+ <Patch name="Nu RnB Bass" drum="0" hbank="87" lbank="69" prog="121"/>
+ <Patch name="D n Bass" drum="0" hbank="87" lbank="69" prog="122"/>
+ <Patch name="DnB Bass 1" drum="0" hbank="87" lbank="69" prog="123"/>
+ <Patch name="Fat Bottom" drum="0" hbank="87" lbank="69" prog="124"/>
+ <Patch name="Deep S-E" drum="0" hbank="87" lbank="69" prog="125"/>
+ <Patch name="Nu Bace" drum="0" hbank="87" lbank="69" prog="126"/>
+ <Patch name="Mini Like!" drum="0" hbank="87" lbank="69" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset G">
+ <Patch name="Da Chronic" drum="0" hbank="87" lbank="70" prog="0"/>
+ <Patch name="Virtual RnBs" drum="0" hbank="87" lbank="70" prog="1"/>
+ <Patch name="Not a Bass" drum="0" hbank="87" lbank="70" prog="2"/>
+ <Patch name="Nu RnB Saw 1" drum="0" hbank="87" lbank="70" prog="3"/>
+ <Patch name="Nu RnB Saw 2" drum="0" hbank="87" lbank="70" prog="4"/>
+ <Patch name="Buzzy Bs" drum="0" hbank="87" lbank="70" prog="5"/>
+ <Patch name="SBF Saw Bs" drum="0" hbank="87" lbank="70" prog="6"/>
+ <Patch name="Party Bass" drum="0" hbank="87" lbank="70" prog="7"/>
+ <Patch name="Tomrubber" drum="0" hbank="87" lbank="70" prog="8"/>
+ <Patch name="Drop Bass" drum="0" hbank="87" lbank="70" prog="9"/>
+ <Patch name="Filament" drum="0" hbank="87" lbank="70" prog="10"/>
+ <Patch name="Dust Bass" drum="0" hbank="87" lbank="70" prog="11"/>
+ <Patch name="Mr. Nasty" drum="0" hbank="87" lbank="70" prog="12"/>
+ <Patch name="Bass Drive" drum="0" hbank="87" lbank="70" prog="13"/>
+ <Patch name="Underneath" drum="0" hbank="87" lbank="70" prog="14"/>
+ <Patch name="Dirt n Grime" drum="0" hbank="87" lbank="70" prog="15"/>
+ <Patch name="Down n Dirty" drum="0" hbank="87" lbank="70" prog="16"/>
+ <Patch name="SubOscar" drum="0" hbank="87" lbank="70" prog="17"/>
+ <Patch name="Full Strings" drum="0" hbank="87" lbank="70" prog="18"/>
+ <Patch name="X StrSection" drum="0" hbank="87" lbank="70" prog="19"/>
+ <Patch name="Oct Strings" drum="0" hbank="87" lbank="70" prog="20"/>
+ <Patch name="Sahara Str" drum="0" hbank="87" lbank="70" prog="21"/>
+ <Patch name="Random Mood" drum="0" hbank="87" lbank="70" prog="22"/>
+ <Patch name="X Hall Str" drum="0" hbank="87" lbank="70" prog="23"/>
+ <Patch name="Strings Flow" drum="0" hbank="87" lbank="70" prog="24"/>
+ <Patch name="Biggie Bows" drum="0" hbank="87" lbank="70" prog="25"/>
+ <Patch name="Staccato VS" drum="0" hbank="87" lbank="70" prog="26"/>
+ <Patch name="So Staccato" drum="0" hbank="87" lbank="70" prog="27"/>
+ <Patch name="Pizz-Stac VS" drum="0" hbank="87" lbank="70" prog="28"/>
+ <Patch name="Mellow Tron" drum="0" hbank="87" lbank="70" prog="29"/>
+ <Patch name="Moody Tron" drum="0" hbank="87" lbank="70" prog="30"/>
+ <Patch name="Tronic Str" drum="0" hbank="87" lbank="70" prog="31"/>
+ <Patch name="Machine Str" drum="0" hbank="87" lbank="70" prog="32"/>
+ <Patch name="Symphonika" drum="0" hbank="87" lbank="70" prog="33"/>
+ <Patch name="Pop Orch" drum="0" hbank="87" lbank="70" prog="34"/>
+ <Patch name="Contemp Orch" drum="0" hbank="87" lbank="70" prog="35"/>
+ <Patch name="Orange Skin" drum="0" hbank="87" lbank="70" prog="36"/>
+ <Patch name="Tutti" drum="0" hbank="87" lbank="70" prog="37"/>
+ <Patch name="Brass Ditt" drum="0" hbank="87" lbank="70" prog="38"/>
+ <Patch name="Housechord" drum="0" hbank="87" lbank="70" prog="39"/>
+ <Patch name="Mod Chord" drum="0" hbank="87" lbank="70" prog="40"/>
+ <Patch name="Dance Steam" drum="0" hbank="87" lbank="70" prog="41"/>
+ <Patch name="Disto Stab !" drum="0" hbank="87" lbank="70" prog="42"/>
+ <Patch name="Fairy Flute" drum="0" hbank="87" lbank="70" prog="43"/>
+ <Patch name="Chiffed Toot" drum="0" hbank="87" lbank="70" prog="44"/>
+ <Patch name="Hop Flute" drum="0" hbank="87" lbank="70" prog="45"/>
+ <Patch name="HimalayaPipe" drum="0" hbank="87" lbank="70" prog="46"/>
+ <Patch name="X Brs Sect 1" drum="0" hbank="87" lbank="70" prog="47"/>
+ <Patch name="Pop Stak Brs" drum="0" hbank="87" lbank="70" prog="48"/>
+ <Patch name="X Brs Sect 2" drum="0" hbank="87" lbank="70" prog="49"/>
+ <Patch name="Pop Brs wAtk" drum="0" hbank="87" lbank="70" prog="50"/>
+ <Patch name="Hybrid Brass" drum="0" hbank="87" lbank="70" prog="51"/>
+ <Patch name="Nu Stab Brs" drum="0" hbank="87" lbank="70" prog="52"/>
+ <Patch name="Heavy Brs 1" drum="0" hbank="87" lbank="70" prog="53"/>
+ <Patch name="Heavy Brs 2" drum="0" hbank="87" lbank="70" prog="54"/>
+ <Patch name="Wonder Brass" drum="0" hbank="87" lbank="70" prog="55"/>
+ <Patch name="Pop Brs Sfz" drum="0" hbank="87" lbank="70" prog="56"/>
+ <Patch name="Pop Brs Stac" drum="0" hbank="87" lbank="70" prog="57"/>
+ <Patch name="Brass Fall /" drum="0" hbank="87" lbank="70" prog="58"/>
+ <Patch name="X-Saw Brass1" drum="0" hbank="87" lbank="70" prog="59"/>
+ <Patch name="JP8000 Brass" drum="0" hbank="87" lbank="70" prog="60"/>
+ <Patch name="X-Saw Brass2" drum="0" hbank="87" lbank="70" prog="61"/>
+ <Patch name="Bend SynBrs" drum="0" hbank="87" lbank="70" prog="62"/>
+ <Patch name="Sax Heavy" drum="0" hbank="87" lbank="70" prog="63"/>
+ <Patch name="FXM Alto Sax" drum="0" hbank="87" lbank="70" prog="64"/>
+ <Patch name="Simply Nasty" drum="0" hbank="87" lbank="70" prog="65"/>
+ <Patch name="Deep Wine" drum="0" hbank="87" lbank="70" prog="66"/>
+ <Patch name="Bon Voyage" drum="0" hbank="87" lbank="70" prog="67"/>
+ <Patch name="Xpress Lead" drum="0" hbank="87" lbank="70" prog="68"/>
+ <Patch name="Body Electric" drum="0" hbank="87" lbank="70" prog="69"/>
+ <Patch name="Classic Lead" drum="0" hbank="87" lbank="70" prog="70"/>
+ <Patch name="Optik Synth" drum="0" hbank="87" lbank="70" prog="71"/>
+ <Patch name="Feat Lead" drum="0" hbank="87" lbank="70" prog="72"/>
+ <Patch name="X Sync Mod" drum="0" hbank="87" lbank="70" prog="73"/>
+ <Patch name="SBF Lead" drum="0" hbank="87" lbank="70" prog="74"/>
+ <Patch name="Hard Sync" drum="0" hbank="87" lbank="70" prog="75"/>
+ <Patch name="Rezo Sync" drum="0" hbank="87" lbank="70" prog="76"/>
+ <Patch name="Wire Sync" drum="0" hbank="87" lbank="70" prog="77"/>
+ <Patch name="Distro FXM" drum="0" hbank="87" lbank="70" prog="78"/>
+ <Patch name="Epic Lead" drum="0" hbank="87" lbank="70" prog="79"/>
+ <Patch name="Crumble Syn" drum="0" hbank="87" lbank="70" prog="80"/>
+ <Patch name="SlippingSaws" drum="0" hbank="87" lbank="70" prog="81"/>
+ <Patch name="Bag Lead" drum="0" hbank="87" lbank="70" prog="82"/>
+ <Patch name="Dirty Saw" drum="0" hbank="87" lbank="70" prog="83"/>
+ <Patch name="Wezcoast" drum="0" hbank="87" lbank="70" prog="84"/>
+ <Patch name="X-Saw Lead" drum="0" hbank="87" lbank="70" prog="85"/>
+ <Patch name="ActualAnalog" drum="0" hbank="87" lbank="70" prog="86"/>
+ <Patch name="SBF Reso" drum="0" hbank="87" lbank="70" prog="87"/>
+ <Patch name="SliCed Lead" drum="0" hbank="87" lbank="70" prog="88"/>
+ <Patch name="Synthi Fizz" drum="0" hbank="87" lbank="70" prog="89"/>
+ <Patch name="Mini Growl" drum="0" hbank="87" lbank="70" prog="90"/>
+ <Patch name="Jupiter Lead" drum="0" hbank="87" lbank="70" prog="91"/>
+ <Patch name="X-Pulse Lead" drum="0" hbank="87" lbank="70" prog="92"/>
+ <Patch name="Jupi Square" drum="0" hbank="87" lbank="70" prog="93"/>
+ <Patch name="TriStac Lead" drum="0" hbank="87" lbank="70" prog="94"/>
+ <Patch name="Modular Lead" drum="0" hbank="87" lbank="70" prog="95"/>
+ <Patch name="Sinetific" drum="0" hbank="87" lbank="70" prog="96"/>
+ <Patch name="Dirty D/A" drum="0" hbank="87" lbank="70" prog="97"/>
+ <Patch name="EuronalSynth" drum="0" hbank="87" lbank="70" prog="98"/>
+ <Patch name="Xtrem Sine" drum="0" hbank="87" lbank="70" prog="99"/>
+ <Patch name="Killerbeez" drum="0" hbank="87" lbank="70" prog="100"/>
+ <Patch name="Freeze Synth" drum="0" hbank="87" lbank="70" prog="101"/>
+ <Patch name="JamPacked!" drum="0" hbank="87" lbank="70" prog="102"/>
+ <Patch name="SawStacChd" drum="0" hbank="87" lbank="70" prog="103"/>
+ <Patch name="Trancepire" drum="0" hbank="87" lbank="70" prog="104"/>
+ <Patch name="Acid Lead" drum="0" hbank="87" lbank="70" prog="105"/>
+ <Patch name="Tranceformer" drum="0" hbank="87" lbank="70" prog="106"/>
+ <Patch name="Anadroid" drum="0" hbank="87" lbank="70" prog="107"/>
+ <Patch name="Shroomy" drum="0" hbank="87" lbank="70" prog="108"/>
+ <Patch name="SBF Nozer" drum="0" hbank="87" lbank="70" prog="109"/>
+ <Patch name="Voxulizer" drum="0" hbank="87" lbank="70" prog="110"/>
+ <Patch name="Wired Rez" drum="0" hbank="87" lbank="70" prog="111"/>
+ <Patch name="Noize R us" drum="0" hbank="87" lbank="70" prog="112"/>
+ <Patch name="Inner Voices" drum="0" hbank="87" lbank="70" prog="113"/>
+ <Patch name="Beep Melodie" drum="0" hbank="87" lbank="70" prog="114"/>
+ <Patch name="Alpha Hoover" drum="0" hbank="87" lbank="70" prog="115"/>
+ <Patch name="Steel Wire" drum="0" hbank="87" lbank="70" prog="116"/>
+ <Patch name="Rav-i-Toid" drum="0" hbank="87" lbank="70" prog="117"/>
+ <Patch name="Rez Therapy" drum="0" hbank="87" lbank="70" prog="118"/>
+ <Patch name="Ivans" drum="0" hbank="87" lbank="70" prog="119"/>
+ <Patch name="Morpher" drum="0" hbank="87" lbank="70" prog="120"/>
+ <Patch name="StellarTreck" drum="0" hbank="87" lbank="70" prog="121"/>
+ <Patch name="Tekno Tone" drum="0" hbank="87" lbank="70" prog="122"/>
+ <Patch name="Generator" drum="0" hbank="87" lbank="70" prog="123"/>
+ <Patch name="ARP x Race" drum="0" hbank="87" lbank="70" prog="124"/>
+ <Patch name="DSP Chaos" drum="0" hbank="87" lbank="70" prog="125"/>
+ <Patch name="Phraserblade" drum="0" hbank="87" lbank="70" prog="126"/>
+ <Patch name="Dancefloor" drum="0" hbank="87" lbank="70" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Preset H">
+ <Patch name="Minor Thirds" drum="0" hbank="87" lbank="71" prog="0"/>
+ <Patch name="Strobe X" drum="0" hbank="87" lbank="71" prog="1"/>
+ <Patch name="Orbiting" drum="0" hbank="87" lbank="71" prog="2"/>
+ <Patch name="FX World" drum="0" hbank="87" lbank="71" prog="3"/>
+ <Patch name="Mr. Fourier" drum="0" hbank="87" lbank="71" prog="4"/>
+ <Patch name="Nu Trance X" drum="0" hbank="87" lbank="71" prog="5"/>
+ <Patch name="eXisDance" drum="0" hbank="87" lbank="71" prog="6"/>
+ <Patch name="Are U ready?" drum="0" hbank="87" lbank="71" prog="7"/>
+ <Patch name="Minty Fresh" drum="0" hbank="87" lbank="71" prog="8"/>
+ <Patch name="Spectrums" drum="0" hbank="87" lbank="71" prog="9"/>
+ <Patch name="Shape of X" drum="0" hbank="87" lbank="71" prog="10"/>
+ <Patch name="Auto 5thSaws" drum="0" hbank="87" lbank="71" prog="11"/>
+ <Patch name="Strobot" drum="0" hbank="87" lbank="71" prog="12"/>
+ <Patch name="Dreamswirl" drum="0" hbank="87" lbank="71" prog="13"/>
+ <Patch name="Galaxadin" drum="0" hbank="87" lbank="71" prog="14"/>
+ <Patch name="Welcome2X" drum="0" hbank="87" lbank="71" prog="15"/>
+ <Patch name="Space n Time" drum="0" hbank="87" lbank="71" prog="16"/>
+ <Patch name="Cross Talk" drum="0" hbank="87" lbank="71" prog="17"/>
+ <Patch name="Lava Flows" drum="0" hbank="87" lbank="71" prog="18"/>
+ <Patch name="Steppin Faze" drum="0" hbank="87" lbank="71" prog="19"/>
+ <Patch name="Reanimation" drum="0" hbank="87" lbank="71" prog="20"/>
+ <Patch name="VoX Chopper" drum="0" hbank="87" lbank="71" prog="21"/>
+ <Patch name="SquareSphere" drum="0" hbank="87" lbank="71" prog="22"/>
+ <Patch name="Auto Sync" drum="0" hbank="87" lbank="71" prog="23"/>
+ <Patch name="Vocastic" drum="0" hbank="87" lbank="71" prog="24"/>
+ <Patch name="Bending Logo" drum="0" hbank="87" lbank="71" prog="25"/>
+ <Patch name="SolarPleXus" drum="0" hbank="87" lbank="71" prog="26"/>
+ <Patch name="Scare" drum="0" hbank="87" lbank="71" prog="27"/>
+ <Patch name="Chaoism" drum="0" hbank="87" lbank="71" prog="28"/>
+ <Patch name="Hillside" drum="0" hbank="87" lbank="71" prog="29"/>
+ <Patch name="Alien Voice" drum="0" hbank="87" lbank="71" prog="30"/>
+ <Patch name="What What?" drum="0" hbank="87" lbank="71" prog="31"/>
+ <Patch name="Beyond Here" drum="0" hbank="87" lbank="71" prog="32"/>
+ <Patch name="Mod Scanner" drum="0" hbank="87" lbank="71" prog="33"/>
+ <Patch name="Gasp" drum="0" hbank="87" lbank="71" prog="34"/>
+ <Patch name="Neverville" drum="0" hbank="87" lbank="71" prog="35"/>
+ <Patch name="Landing Pad" drum="0" hbank="87" lbank="71" prog="36"/>
+ <Patch name="Celebrated" drum="0" hbank="87" lbank="71" prog="37"/>
+ <Patch name="ResoSweep Up" drum="0" hbank="87" lbank="71" prog="38"/>
+ <Patch name="The VorteX" drum="0" hbank="87" lbank="71" prog="39"/>
+ <Patch name="Magic Wave" drum="0" hbank="87" lbank="71" prog="40"/>
+ <Patch name="Shangri-La" drum="0" hbank="87" lbank="71" prog="41"/>
+ <Patch name="CerealKiller" drum="0" hbank="87" lbank="71" prog="42"/>
+ <Patch name="DigimaX" drum="0" hbank="87" lbank="71" prog="43"/>
+ <Patch name="Trancy X" drum="0" hbank="87" lbank="71" prog="44"/>
+ <Patch name="X Sweep Saws" drum="0" hbank="87" lbank="71" prog="45"/>
+ <Patch name="X-Trance" drum="0" hbank="87" lbank="71" prog="46"/>
+ <Patch name="JP-8000 Saws" drum="0" hbank="87" lbank="71" prog="47"/>
+ <Patch name="X Super Saws" drum="0" hbank="87" lbank="71" prog="48"/>
+ <Patch name="Exhale" drum="0" hbank="87" lbank="71" prog="49"/>
+ <Patch name="SBF Voices" drum="0" hbank="87" lbank="71" prog="50"/>
+ <Patch name="Stadium SBF" drum="0" hbank="87" lbank="71" prog="51"/>
+ <Patch name="Master X" drum="0" hbank="87" lbank="71" prog="52"/>
+ <Patch name="X-panda" drum="0" hbank="87" lbank="71" prog="53"/>
+ <Patch name="TDreamTouch" drum="0" hbank="87" lbank="71" prog="54"/>
+ <Patch name="Smooth Synth" drum="0" hbank="87" lbank="71" prog="55"/>
+ <Patch name="Stereotype" drum="0" hbank="87" lbank="71" prog="56"/>
+ <Patch name="Saw Keystep" drum="0" hbank="87" lbank="71" prog="57"/>
+ <Patch name="4mant Cycle" drum="0" hbank="87" lbank="71" prog="58"/>
+ <Patch name="Trance Sweep" drum="0" hbank="87" lbank="71" prog="59"/>
+ <Patch name="Modular" drum="0" hbank="87" lbank="71" prog="60"/>
+ <Patch name="Triple X" drum="0" hbank="87" lbank="71" prog="61"/>
+ <Patch name="Angel Pipes" drum="0" hbank="87" lbank="71" prog="62"/>
+ <Patch name="Vint Clavier" drum="0" hbank="87" lbank="71" prog="63"/>
+ <Patch name="Wired Synth" drum="0" hbank="87" lbank="71" prog="64"/>
+ <Patch name="Nu Romance" drum="0" hbank="87" lbank="71" prog="65"/>
+ <Patch name="Survivoz" drum="0" hbank="87" lbank="71" prog="66"/>
+ <Patch name="Ring Worldz" drum="0" hbank="87" lbank="71" prog="67"/>
+ <Patch name="Mashed!? :0)" drum="0" hbank="87" lbank="71" prog="68"/>
+ <Patch name="Saturn Siren" drum="0" hbank="87" lbank="71" prog="69"/>
+ <Patch name="Side Band X" drum="0" hbank="87" lbank="71" prog="70"/>
+ <Patch name="Mashy Scene" drum="0" hbank="87" lbank="71" prog="71"/>
+ <Patch name="Spr SideBand" drum="0" hbank="87" lbank="71" prog="72"/>
+ <Patch name="Digitvox" drum="0" hbank="87" lbank="71" prog="73"/>
+ <Patch name="Oral eXam" drum="0" hbank="87" lbank="71" prog="74"/>
+ <Patch name="Timeline" drum="0" hbank="87" lbank="71" prog="75"/>
+ <Patch name="Whisper Pad" drum="0" hbank="87" lbank="71" prog="76"/>
+ <Patch name="Orchipad" drum="0" hbank="87" lbank="71" prog="77"/>
+ <Patch name="Visionary" drum="0" hbank="87" lbank="71" prog="78"/>
+ <Patch name="Rave Stringy" drum="0" hbank="87" lbank="71" prog="79"/>
+ <Patch name="InfinitePhsr" drum="0" hbank="87" lbank="71" prog="80"/>
+ <Patch name="Jupiter 2004" drum="0" hbank="87" lbank="71" prog="81"/>
+ <Patch name="Light Phaser" drum="0" hbank="87" lbank="71" prog="82"/>
+ <Patch name="Life-on" drum="0" hbank="87" lbank="71" prog="83"/>
+ <Patch name="Polar Morn" drum="0" hbank="87" lbank="71" prog="84"/>
+ <Patch name="Saturn Rings" drum="0" hbank="87" lbank="71" prog="85"/>
+ <Patch name="Ooh La La" drum="0" hbank="87" lbank="71" prog="86"/>
+ <Patch name="Flying X" drum="0" hbank="87" lbank="71" prog="87"/>
+ <Patch name="Motion Pad" drum="0" hbank="87" lbank="71" prog="88"/>
+ <Patch name="Mash Pad" drum="0" hbank="87" lbank="71" prog="89"/>
+ <Patch name="Xtragalactic" drum="0" hbank="87" lbank="71" prog="90"/>
+ <Patch name="Morph Filter" drum="0" hbank="87" lbank="71" prog="91"/>
+ <Patch name="TmsSweepPad" drum="0" hbank="87" lbank="71" prog="92"/>
+ <Patch name="Follow" drum="0" hbank="87" lbank="71" prog="93"/>
+ <Patch name="Jupiter-X" drum="0" hbank="87" lbank="71" prog="94"/>
+ <Patch name="Riven Pad" drum="0" hbank="87" lbank="71" prog="95"/>
+ <Patch name="Consolament" drum="0" hbank="87" lbank="71" prog="96"/>
+ <Patch name="Spacious Pad" drum="0" hbank="87" lbank="71" prog="97"/>
+ <Patch name="JD Pop Pad" drum="0" hbank="87" lbank="71" prog="98"/>
+ <Patch name="Silhouette" drum="0" hbank="87" lbank="71" prog="99"/>
+ <Patch name="JP-8 Phase" drum="0" hbank="87" lbank="71" prog="100"/>
+ <Patch name="Nu Epic Pad" drum="0" hbank="87" lbank="71" prog="101"/>
+ <Patch name="Forever" drum="0" hbank="87" lbank="71" prog="102"/>
+ <Patch name="Flange Dream" drum="0" hbank="87" lbank="71" prog="103"/>
+ <Patch name="Guild Vox" drum="0" hbank="87" lbank="71" prog="104"/>
+ <Patch name="5th Pad X" drum="0" hbank="87" lbank="71" prog="105"/>
+ <Patch name="Evolution X" drum="0" hbank="87" lbank="71" prog="106"/>
+ <Patch name="Chariots" drum="0" hbank="87" lbank="71" prog="107"/>
+ <Patch name="Trevors Pad" drum="0" hbank="87" lbank="71" prog="108"/>
+ <Patch name="Nu Pad" drum="0" hbank="87" lbank="71" prog="109"/>
+ <Patch name="Fantomas Pad" drum="0" hbank="87" lbank="71" prog="110"/>
+ <Patch name="Film Cue" drum="0" hbank="87" lbank="71" prog="111"/>
+ <Patch name="Choral Sweep" drum="0" hbank="87" lbank="71" prog="112"/>
+ <Patch name="Paradise" drum="0" hbank="87" lbank="71" prog="113"/>
+ <Patch name="Sad ceremony" drum="0" hbank="87" lbank="71" prog="114"/>
+ <Patch name="Lost Voices" drum="0" hbank="87" lbank="71" prog="115"/>
+ <Patch name="Talk 2 Me" drum="0" hbank="87" lbank="71" prog="116"/>
+ <Patch name="Pearly Harp" drum="0" hbank="87" lbank="71" prog="117"/>
+ <Patch name="Nylon Harp" drum="0" hbank="87" lbank="71" prog="118"/>
+ <Patch name="Skydiver" drum="0" hbank="87" lbank="71" prog="119"/>
+ <Patch name="Unpluck-d" drum="0" hbank="87" lbank="71" prog="120"/>
+ <Patch name="Ethno Plucks" drum="0" hbank="87" lbank="71" prog="121"/>
+ <Patch name="SaraswatiRvr" drum="0" hbank="87" lbank="71" prog="122"/>
+ <Patch name="Drone X" drum="0" hbank="87" lbank="71" prog="123"/>
+ <Patch name="Lounge Kit" drum="0" hbank="87" lbank="71" prog="124"/>
+ <Patch name="Gospel Trio" drum="0" hbank="87" lbank="71" prog="125"/>
+ <Patch name="xcultural" drum="0" hbank="87" lbank="71" prog="126"/>
+ <Patch name="When Im 64" drum="0" hbank="87" lbank="71" prog="127"/>
+ </PatchGroup>
+
+</MidiInstrument>
+
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Roland_SRX-02.idf b/muse_qt4_evolution/share/instruments/Roland_SRX-02.idf
new file mode 100644
index 00000000..54b0b7e6
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland_SRX-02.idf
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+
+<muse version="1.0">
+
+<MidiInstrument name="Roland SRX-02 Concert Piano">
+
+<Init>
+</Init>
+
+
+ <PatchGroup name="SRX02 Concert Piano">
+ <Patch name="PremierGrand" drum="0" hbank="93" lbank="1" prog="0"/>
+ <Patch name="Steady Grand" drum="0" hbank="93" lbank="1" prog="1"/>
+ <Patch name="DynamicGrand" drum="0" hbank="93" lbank="1" prog="2"/>
+ <Patch name="Concert Hall" drum="0" hbank="93" lbank="1" prog="3"/>
+ <Patch name="Bright Grand" drum="0" hbank="93" lbank="1" prog="4"/>
+ <Patch name="Classical" drum="0" hbank="93" lbank="1" prog="5"/>
+ <Patch name="SoftPdlGrand" drum="0" hbank="93" lbank="1" prog="6"/>
+ <Patch name="OnMicPremier" drum="0" hbank="93" lbank="1" prog="7"/>
+ <Patch name="OnMic Bright" drum="0" hbank="93" lbank="1" prog="8"/>
+ <Patch name="OnMicSoftPdl" drum="0" hbank="93" lbank="1" prog="9"/>
+ <Patch name="Premier Mono" drum="0" hbank="93" lbank="1" prog="10"/>
+ <Patch name="Bright Mono" drum="0" hbank="93" lbank="1" prog="11"/>
+ <Patch name="SoftPdl Mono" drum="0" hbank="93" lbank="1" prog="12"/>
+ <Patch name="Mellow Piano" drum="0" hbank="93" lbank="1" prog="13"/>
+ <Patch name="Enhanced Pno" drum="0" hbank="93" lbank="1" prog="14"/>
+ <Patch name="Comp.Piano" drum="0" hbank="93" lbank="1" prog="15"/>
+ <Patch name="HonkytonkPno" drum="0" hbank="93" lbank="1" prog="16"/>
+ <Patch name="NewAgeGrand1" drum="0" hbank="93" lbank="1" prog="17"/>
+ <Patch name="NewAgeGrand2" drum="0" hbank="93" lbank="1" prog="18"/>
+ <Patch name="Requiem" drum="0" hbank="93" lbank="1" prog="19"/>
+ <Patch name="Soundscape" drum="0" hbank="93" lbank="1" prog="20"/>
+ <Patch name="Grand w/Str" drum="0" hbank="93" lbank="1" prog="21"/>
+ <Patch name="Concerto 1" drum="0" hbank="93" lbank="1" prog="22"/>
+ <Patch name="Concerto 2" drum="0" hbank="93" lbank="1" prog="23"/>
+ <Patch name="SoftpadGrand" drum="0" hbank="93" lbank="1" prog="24"/>
+ <Patch name="Synpad Grand" drum="0" hbank="93" lbank="1" prog="25"/>
+ <Patch name="Vox Grand 1" drum="0" hbank="93" lbank="1" prog="26"/>
+ <Patch name="Vox Grand 2" drum="0" hbank="93" lbank="1" prog="27"/>
+ <Patch name="Oohs Piano" drum="0" hbank="93" lbank="1" prog="28"/>
+ <Patch name="Air Grand" drum="0" hbank="93" lbank="1" prog="29"/>
+ <Patch name="GtrPad Grand" drum="0" hbank="93" lbank="1" prog="30"/>
+ <Patch name="PhasePad Pno" drum="0" hbank="93" lbank="1" prog="31"/>
+ <Patch name="HeavenPadPno" drum="0" hbank="93" lbank="1" prog="32"/>
+ <Patch name="Somber Pad" drum="0" hbank="93" lbank="1" prog="33"/>
+ <Patch name="Wet Chorus" drum="0" hbank="93" lbank="1" prog="34"/>
+ <Patch name="Nylon Grand" drum="0" hbank="93" lbank="1" prog="35"/>
+ <Patch name="FM EP Grand" drum="0" hbank="93" lbank="1" prog="36"/>
+ <Patch name="Bell Grand" drum="0" hbank="93" lbank="1" prog="37"/>
+ <Patch name="Bellvox Pno" drum="0" hbank="93" lbank="1" prog="38"/>
+ <Patch name="StackedGrand" drum="0" hbank="93" lbank="1" prog="39"/>
+ <Patch name="Hard Stack 1" drum="0" hbank="93" lbank="1" prog="40"/>
+ <Patch name="Hard Stack 2" drum="0" hbank="93" lbank="1" prog="41"/>
+ <Patch name="PianoBrass" drum="0" hbank="93" lbank="1" prog="42"/>
+ <Patch name="PianoBrs fff" drum="0" hbank="93" lbank="1" prog="43"/>
+ <Patch name="Gig Split 1" drum="0" hbank="93" lbank="1" prog="44"/>
+ <Patch name="Gig Split 2" drum="0" hbank="93" lbank="1" prog="45"/>
+ <Patch name="Gig Split 3" drum="0" hbank="93" lbank="1" prog="46"/>
+ <Patch name="Throb Piano" drum="0" hbank="93" lbank="1" prog="47"/>
+ <Patch name="Feedback Pno" drum="0" hbank="93" lbank="1" prog="48"/>
+ <Patch name="Eastern 5th" drum="0" hbank="93" lbank="1" prog="49"/>
+ </PatchGroup>
+
+</MidiInstrument>
+
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Roland_SRX-09.idf b/muse_qt4_evolution/share/instruments/Roland_SRX-09.idf
new file mode 100644
index 00000000..2e3f5667
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Roland_SRX-09.idf
@@ -0,0 +1,454 @@
+<?xml version="1.0"?>
+
+<muse version="1.0">
+
+<MidiInstrument name="Roland SRX-09 World Collection">
+
+<Init>
+</Init>
+
+
+ <PatchGroup name="SRX09 Percussion Kits">
+ <Patch name="LatinDrmKit" drum="0" hbank="92" lbank="19" prog="0"/>
+ <Patch name="AsiaDrm Kit" drum="0" hbank="92" lbank="19" prog="1"/>
+ <Patch name="IndiaDrmKit" drum="0" hbank="92" lbank="19" prog="2"/>
+ <Patch name="MidEastDrKit" drum="0" hbank="92" lbank="19" prog="3"/>
+ <Patch name="World Phrase" drum="0" hbank="92" lbank="19" prog="4"/>
+ <Patch name="Gtr Phrase" drum="0" hbank="92" lbank="19" prog="5"/>
+ <Patch name="Latin Menu1" drum="0" hbank="92" lbank="19" prog="6"/>
+ <Patch name="Latin Menu2" drum="0" hbank="92" lbank="19" prog="7"/>
+ <Patch name="Latin Menu3" drum="0" hbank="92" lbank="19" prog="8"/>
+ <Patch name="Asia Menu" drum="0" hbank="92" lbank="19" prog="9"/>
+ <Patch name="India Menu" drum="0" hbank="92" lbank="19" prog="10"/>
+ <Patch name="MidEast Menu" drum="0" hbank="92" lbank="19" prog="11"/>
+ </PatchGroup>
+
+ <PatchGroup name="SRX09 World Collection 1">
+ <Patch name="World Sounds" drum="0" hbank="93" lbank="19" prog="0"/>
+ <Patch name="Go2China /C2" drum="0" hbank="93" lbank="19" prog="1"/>
+ <Patch name="Go2India /C2" drum="0" hbank="93" lbank="19" prog="2"/>
+ <Patch name="The Great W" drum="0" hbank="93" lbank="19" prog="3"/>
+ <Patch name="Yuehchin+" drum="0" hbank="93" lbank="19" prog="4"/>
+ <Patch name="Sweet Nylon" drum="0" hbank="93" lbank="19" prog="5"/>
+ <Patch name="Tele R and F" drum="0" hbank="93" lbank="19" prog="6"/>
+ <Patch name="Tubby Baby" drum="0" hbank="93" lbank="19" prog="7"/>
+ <Patch name="HeavenGender" drum="0" hbank="93" lbank="19" prog="8"/>
+ <Patch name="Gamelan Ems" drum="0" hbank="93" lbank="19" prog="9"/>
+ <Patch name="Childwood" drum="0" hbank="93" lbank="19" prog="10"/>
+ <Patch name="La Musette" drum="0" hbank="93" lbank="19" prog="11"/>
+ <Patch name="Essence" drum="0" hbank="93" lbank="19" prog="12"/>
+ <Patch name="Zampona" drum="0" hbank="93" lbank="19" prog="13"/>
+ <Patch name="GipsyTrumpt/" drum="0" hbank="93" lbank="19" prog="14"/>
+ <Patch name="We Dream }{" drum="0" hbank="93" lbank="19" prog="15"/>
+ <Patch name="Fun WithPerc" drum="0" hbank="93" lbank="19" prog="16"/>
+ <Patch name="GuZheng arp" drum="0" hbank="93" lbank="19" prog="17"/>
+ <Patch name="Feets" drum="0" hbank="93" lbank="19" prog="18"/>
+ <Patch name="World Radio" drum="0" hbank="93" lbank="19" prog="19"/>
+ <Patch name="ClanAdvances" drum="0" hbank="93" lbank="19" prog="20"/>
+ <Patch name="Eastern Tour" drum="0" hbank="93" lbank="19" prog="21"/>
+ <Patch name="Enough!STOP!" drum="0" hbank="93" lbank="19" prog="22"/>
+ <Patch name="Banjo Phrs" drum="0" hbank="93" lbank="19" prog="23"/>
+ <Patch name="Guitar Phrs1" drum="0" hbank="93" lbank="19" prog="24"/>
+ <Patch name="Guitar Phrs2" drum="0" hbank="93" lbank="19" prog="25"/>
+ <Patch name="PdlStl Phrs" drum="0" hbank="93" lbank="19" prog="26"/>
+ <Patch name="Asia UFO" drum="0" hbank="93" lbank="19" prog="27"/>
+ <Patch name="UBeenSoBaa" drum="0" hbank="93" lbank="19" prog="28"/>
+ <Patch name="Didgeri /" drum="0" hbank="93" lbank="19" prog="29"/>
+ <Patch name="WorldGroove" drum="0" hbank="93" lbank="19" prog="30"/>
+ <Patch name="LoopPhrase 1" drum="0" hbank="93" lbank="19" prog="31"/>
+ <Patch name="LoopPhrase 2" drum="0" hbank="93" lbank="19" prog="32"/>
+ <Patch name="TABLA groove" drum="0" hbank="93" lbank="19" prog="33"/>
+ <Patch name="JasonGoEast" drum="0" hbank="93" lbank="19" prog="34"/>
+ <Patch name="Flu and AcompSRX" drum="0" hbank="93" lbank="19" prog="35"/>
+ <Patch name="Split Floot" drum="0" hbank="93" lbank="19" prog="36"/>
+ <Patch name="Hot Salsa" drum="0" hbank="93" lbank="19" prog="37"/>
+ <Patch name="TempBassSolo" drum="0" hbank="93" lbank="19" prog="38"/>
+ <Patch name="CherryFlower" drum="0" hbank="93" lbank="19" prog="39"/>
+ <Patch name="SplitThisSRX" drum="0" hbank="93" lbank="19" prog="40"/>
+ <Patch name="Crane Dance" drum="0" hbank="93" lbank="19" prog="41"/>
+ <Patch name="LostInMists" drum="0" hbank="93" lbank="19" prog="42"/>
+ <Patch name="Qu DiEnsembl" drum="0" hbank="93" lbank="19" prog="43"/>
+ <Patch name="NasalBlossom" drum="0" hbank="93" lbank="19" prog="44"/>
+ <Patch name="Meditation 1" drum="0" hbank="93" lbank="19" prog="45"/>
+ <Patch name="Art Of Feng" drum="0" hbank="93" lbank="19" prog="46"/>
+ <Patch name="Orient xPres" drum="0" hbank="93" lbank="19" prog="47"/>
+ <Patch name="Padded Sitar" drum="0" hbank="93" lbank="19" prog="48"/>
+ <Patch name="No Worries" drum="0" hbank="93" lbank="19" prog="49"/>
+ <Patch name="IntarMel SRX" drum="0" hbank="93" lbank="19" prog="50"/>
+ <Patch name="Ode 2 An Oud" drum="0" hbank="93" lbank="19" prog="51"/>
+ <Patch name="Fugi-man" drum="0" hbank="93" lbank="19" prog="52"/>
+ <Patch name="China pluck" drum="0" hbank="93" lbank="19" prog="53"/>
+ <Patch name="Yuehchin SRX" drum="0" hbank="93" lbank="19" prog="54"/>
+ <Patch name="Kayakeum" drum="0" hbank="93" lbank="19" prog="55"/>
+ <Patch name="Asian Pizz" drum="0" hbank="93" lbank="19" prog="56"/>
+ <Patch name="PiPa SRX" drum="0" hbank="93" lbank="19" prog="57"/>
+ <Patch name="Koto SRX" drum="0" hbank="93" lbank="19" prog="58"/>
+ <Patch name="Shamisen SRX" drum="0" hbank="93" lbank="19" prog="59"/>
+ <Patch name="Sanshin SRX" drum="0" hbank="93" lbank="19" prog="60"/>
+ <Patch name="Yang Qin trm" drum="0" hbank="93" lbank="19" prog="61"/>
+ <Patch name="Yang Qin /Mod" drum="0" hbank="93" lbank="19" prog="62"/>
+ <Patch name="SultanPalace" drum="0" hbank="93" lbank="19" prog="63"/>
+ <Patch name="Marco Polo" drum="0" hbank="93" lbank="19" prog="64"/>
+ <Patch name="Bandolim SRX" drum="0" hbank="93" lbank="19" prog="65"/>
+ <Patch name="K.Bandolim" drum="0" hbank="93" lbank="19" prog="66"/>
+ <Patch name="Afro Harp" drum="0" hbank="93" lbank="19" prog="67"/>
+ <Patch name="Ethnhit!" drum="0" hbank="93" lbank="19" prog="68"/>
+ <Patch name="OctaHarp+" drum="0" hbank="93" lbank="19" prog="69"/>
+ <Patch name="St.GuShngSRX" drum="0" hbank="93" lbank="19" prog="70"/>
+ <Patch name="Sheng Sither" drum="0" hbank="93" lbank="19" prog="71"/>
+ <Patch name="Distance" drum="0" hbank="93" lbank="19" prog="72"/>
+ <Patch name="Mandolin/Mod" drum="0" hbank="93" lbank="19" prog="73"/>
+ <Patch name="Mandolin" drum="0" hbank="93" lbank="19" prog="74"/>
+ <Patch name="Mando Club" drum="0" hbank="93" lbank="19" prog="75"/>
+ <Patch name="MdlnTrmStSRX" drum="0" hbank="93" lbank="19" prog="76"/>
+ <Patch name="Drone Sitar" drum="0" hbank="93" lbank="19" prog="77"/>
+ <Patch name="Conch and Sitar" drum="0" hbank="93" lbank="19" prog="78"/>
+ <Patch name="Punjab Rocks" drum="0" hbank="93" lbank="19" prog="79"/>
+ <Patch name="Pas2IndiaSRX" drum="0" hbank="93" lbank="19" prog="80"/>
+ <Patch name="Rain Drone" drum="0" hbank="93" lbank="19" prog="81"/>
+ <Patch name="SitarGlisSRX" drum="0" hbank="93" lbank="19" prog="82"/>
+ <Patch name="Tambura SRX" drum="0" hbank="93" lbank="19" prog="83"/>
+ <Patch name="TambDroneSRX" drum="0" hbank="93" lbank="19" prog="84"/>
+ <Patch name="St.SanturSRX" drum="0" hbank="93" lbank="19" prog="85"/>
+ <Patch name="SanturTrmSRX" drum="0" hbank="93" lbank="19" prog="86"/>
+ <Patch name="Santur /Mod" drum="0" hbank="93" lbank="19" prog="87"/>
+ <Patch name="Canton" drum="0" hbank="93" lbank="19" prog="88"/>
+ <Patch name="HamrDulcimer" drum="0" hbank="93" lbank="19" prog="89"/>
+ <Patch name="3D Dulcimer" drum="0" hbank="93" lbank="19" prog="90"/>
+ <Patch name="Zither" drum="0" hbank="93" lbank="19" prog="91"/>
+ <Patch name="Magic Pluck" drum="0" hbank="93" lbank="19" prog="92"/>
+ <Patch name="Biwa SRX" drum="0" hbank="93" lbank="19" prog="93"/>
+ <Patch name="Biwa Menu" drum="0" hbank="93" lbank="19" prog="94"/>
+ <Patch name="BerimbauMenu" drum="0" hbank="93" lbank="19" prog="95"/>
+ <Patch name="Berimbau" drum="0" hbank="93" lbank="19" prog="96"/>
+ <Patch name="JawHarp Menu" drum="0" hbank="93" lbank="19" prog="97"/>
+ <Patch name="Steel Rhythm" drum="0" hbank="93" lbank="19" prog="98"/>
+ <Patch name="SoloSteelGtr" drum="0" hbank="93" lbank="19" prog="99"/>
+ <Patch name="N-Ville Soft" drum="0" hbank="93" lbank="19" prog="100"/>
+ <Patch name="Spruce Top" drum="0" hbank="93" lbank="19" prog="101"/>
+ <Patch name="Procssd AGtr" drum="0" hbank="93" lbank="19" prog="102"/>
+ <Patch name="High Strung" drum="0" hbank="93" lbank="19" prog="103"/>
+ <Patch name="Compresd D18" drum="0" hbank="93" lbank="19" prog="104"/>
+ <Patch name="12 String" drum="0" hbank="93" lbank="19" prog="105"/>
+ <Patch name="Mixed 12Str1" drum="0" hbank="93" lbank="19" prog="106"/>
+ <Patch name="Mixed 12Str2" drum="0" hbank="93" lbank="19" prog="107"/>
+ <Patch name="Ac Gtr 12stg" drum="0" hbank="93" lbank="19" prog="108"/>
+ <Patch name="No Borders" drum="0" hbank="93" lbank="19" prog="109"/>
+ <Patch name="Loose 12Str" drum="0" hbank="93" lbank="19" prog="110"/>
+ <Patch name="Living R.Gtr" drum="0" hbank="93" lbank="19" prog="111"/>
+ <Patch name="Dobro Modro" drum="0" hbank="93" lbank="19" prog="112"/>
+ <Patch name="ResonatorGtr" drum="0" hbank="93" lbank="19" prog="113"/>
+ <Patch name="Ac.Gtrs SRX" drum="0" hbank="93" lbank="19" prog="114"/>
+ <Patch name="2 Players" drum="0" hbank="93" lbank="19" prog="115"/>
+ <Patch name="Solo RequGtr" drum="0" hbank="93" lbank="19" prog="116"/>
+ <Patch name="Loose Nylon" drum="0" hbank="93" lbank="19" prog="117"/>
+ <Patch name="AcousticBros" drum="0" hbank="93" lbank="19" prog="118"/>
+ <Patch name="So Sad Nylon" drum="0" hbank="93" lbank="19" prog="119"/>
+ <Patch name="Chinese Duo" drum="0" hbank="93" lbank="19" prog="120"/>
+ <Patch name="ChugRunTrSRX" drum="0" hbank="93" lbank="19" prog="121"/>
+ <Patch name="Chung Ruan" drum="0" hbank="93" lbank="19" prog="122"/>
+ <Patch name="ChungRuanSRX" drum="0" hbank="93" lbank="19" prog="123"/>
+ <Patch name="Bottom Ruan" drum="0" hbank="93" lbank="19" prog="124"/>
+ <Patch name="RuangGtr SRX" drum="0" hbank="93" lbank="19" prog="125"/>
+ <Patch name="Oud SRX" drum="0" hbank="93" lbank="19" prog="126"/>
+ <Patch name="BlugrsSldSRX" drum="0" hbank="93" lbank="19" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="SRX09 World Collection 2">
+ <Patch name="Guitaro SRX" drum="0" hbank="93" lbank="20" prog="0"/>
+ <Patch name="Natural Tele" drum="0" hbank="93" lbank="20" prog="1"/>
+ <Patch name="Psyche Tele" drum="0" hbank="93" lbank="20" prog="2"/>
+ <Patch name="Coral" drum="0" hbank="93" lbank="20" prog="3"/>
+ <Patch name="Chorus Twang" drum="0" hbank="93" lbank="20" prog="4"/>
+ <Patch name="Pick Licker" drum="0" hbank="93" lbank="20" prog="5"/>
+ <Patch name="CleanStrtSRX" drum="0" hbank="93" lbank="20" prog="6"/>
+ <Patch name="Velo 335 SRX" drum="0" hbank="93" lbank="20" prog="7"/>
+ <Patch name="Right Funky" drum="0" hbank="93" lbank="20" prog="8"/>
+ <Patch name="Comp Muted" drum="0" hbank="93" lbank="20" prog="9"/>
+ <Patch name="E.GtrMt SRX" drum="0" hbank="93" lbank="20" prog="10"/>
+ <Patch name="335VelMt SRX" drum="0" hbank="93" lbank="20" prog="11"/>
+ <Patch name="Wide Guitar" drum="0" hbank="93" lbank="20" prog="12"/>
+ <Patch name="Dob-Compress" drum="0" hbank="93" lbank="20" prog="13"/>
+ <Patch name="Nice Twelvey" drum="0" hbank="93" lbank="20" prog="14"/>
+ <Patch name="RotaryCrunch" drum="0" hbank="93" lbank="20" prog="15"/>
+ <Patch name="FastRotrySRX" drum="0" hbank="93" lbank="20" prog="16"/>
+ <Patch name="EGDynaPikSRX" drum="0" hbank="93" lbank="20" prog="17"/>
+ <Patch name="BackingEGSRX" drum="0" hbank="93" lbank="20" prog="18"/>
+ <Patch name="Room Slide" drum="0" hbank="93" lbank="20" prog="19"/>
+ <Patch name="Pedal Steel" drum="0" hbank="93" lbank="20" prog="20"/>
+ <Patch name="Phased P.Stl" drum="0" hbank="93" lbank="20" prog="21"/>
+ <Patch name="PureSteelSRX" drum="0" hbank="93" lbank="20" prog="22"/>
+ <Patch name="MutedAmbient" drum="0" hbank="93" lbank="20" prog="23"/>
+ <Patch name="GtrFX Menu" drum="0" hbank="93" lbank="20" prog="24"/>
+ <Patch name="LP Gtr SRX" drum="0" hbank="93" lbank="20" prog="25"/>
+ <Patch name="Tele-Funfken" drum="0" hbank="93" lbank="20" prog="26"/>
+ <Patch name="335 and Cabinet" drum="0" hbank="93" lbank="20" prog="27"/>
+ <Patch name="Tele Licker" drum="0" hbank="93" lbank="20" prog="28"/>
+ <Patch name="Short and Long" drum="0" hbank="93" lbank="20" prog="29"/>
+ <Patch name="NewBeginning" drum="0" hbank="93" lbank="20" prog="30"/>
+ <Patch name="Bouzouki" drum="0" hbank="93" lbank="20" prog="31"/>
+ <Patch name="Bousoukhit!" drum="0" hbank="93" lbank="20" prog="32"/>
+ <Patch name="3ChdStrumSRX" drum="0" hbank="93" lbank="20" prog="33"/>
+ <Patch name="Strum Poetic" drum="0" hbank="93" lbank="20" prog="34"/>
+ <Patch name="Strum Away" drum="0" hbank="93" lbank="20" prog="35"/>
+ <Patch name="Banjo-Mando" drum="0" hbank="93" lbank="20" prog="36"/>
+ <Patch name="5StringBanjo" drum="0" hbank="93" lbank="20" prog="37"/>
+ <Patch name="Banjo SRX 1" drum="0" hbank="93" lbank="20" prog="38"/>
+ <Patch name="Banjo SRX 2" drum="0" hbank="93" lbank="20" prog="39"/>
+ <Patch name="Banjo SRX 3" drum="0" hbank="93" lbank="20" prog="40"/>
+ <Patch name="Fiddle" drum="0" hbank="93" lbank="20" prog="41"/>
+ <Patch name="Fiddle 2002" drum="0" hbank="93" lbank="20" prog="42"/>
+ <Patch name="FiddleSwitch" drum="0" hbank="93" lbank="20" prog="43"/>
+ <Patch name="Fiddle Sect." drum="0" hbank="93" lbank="20" prog="44"/>
+ <Patch name="FiddleStacto" drum="0" hbank="93" lbank="20" prog="45"/>
+ <Patch name="AsianOrcPizz" drum="0" hbank="93" lbank="20" prog="46"/>
+ <Patch name="AJapaneseInn" drum="0" hbank="93" lbank="20" prog="47"/>
+ <Patch name="Deep Blue" drum="0" hbank="93" lbank="20" prog="48"/>
+ <Patch name="Ethnic Ens" drum="0" hbank="93" lbank="20" prog="49"/>
+ <Patch name="ChinesOrcSRX" drum="0" hbank="93" lbank="20" prog="50"/>
+ <Patch name="ErHu / SRX" drum="0" hbank="93" lbank="20" prog="51"/>
+ <Patch name="ErHuSolo SRX" drum="0" hbank="93" lbank="20" prog="52"/>
+ <Patch name="ErHu Ld SRX" drum="0" hbank="93" lbank="20" prog="53"/>
+ <Patch name="FiddleFXmenu" drum="0" hbank="93" lbank="20" prog="54"/>
+ <Patch name="ViolnSoloSRX" drum="0" hbank="93" lbank="20" prog="55"/>
+ <Patch name="Comp BabyBss" drum="0" hbank="93" lbank="20" prog="56"/>
+ <Patch name="Baby Bass" drum="0" hbank="93" lbank="20" prog="57"/>
+ <Patch name="Comp Fingerd" drum="0" hbank="93" lbank="20" prog="58"/>
+ <Patch name="Jazz Fing.BS" drum="0" hbank="93" lbank="20" prog="59"/>
+ <Patch name="Live Bass" drum="0" hbank="93" lbank="20" prog="60"/>
+ <Patch name="Flango Bass" drum="0" hbank="93" lbank="20" prog="61"/>
+ <Patch name="Bass Oddesy" drum="0" hbank="93" lbank="20" prog="62"/>
+ <Patch name="6Str Bs SRX1" drum="0" hbank="93" lbank="20" prog="63"/>
+ <Patch name="Muted Bass" drum="0" hbank="93" lbank="20" prog="64"/>
+ <Patch name="6Str/Mt SRX" drum="0" hbank="93" lbank="20" prog="65"/>
+ <Patch name="PickBsHd SRX" drum="0" hbank="93" lbank="20" prog="66"/>
+ <Patch name="PickedBs SRX" drum="0" hbank="93" lbank="20" prog="67"/>
+ <Patch name="Tub Bass" drum="0" hbank="93" lbank="20" prog="68"/>
+ <Patch name="GuitarnBsSRX" drum="0" hbank="93" lbank="20" prog="69"/>
+ <Patch name="GtrnOct SRX" drum="0" hbank="93" lbank="20" prog="70"/>
+ <Patch name="PacificDream" drum="0" hbank="93" lbank="20" prog="71"/>
+ <Patch name="Meditation 2" drum="0" hbank="93" lbank="20" prog="72"/>
+ <Patch name="HybridKemong" drum="0" hbank="93" lbank="20" prog="73"/>
+ <Patch name="Purify" drum="0" hbank="93" lbank="20" prog="74"/>
+ <Patch name="Asia Bells" drum="0" hbank="93" lbank="20" prog="75"/>
+ <Patch name="Rama Cym SRX" drum="0" hbank="93" lbank="20" prog="76"/>
+ <Patch name="Bell Orchest" drum="0" hbank="93" lbank="20" prog="77"/>
+ <Patch name="Sacred Bells" drum="0" hbank="93" lbank="20" prog="78"/>
+ <Patch name="Spokes" drum="0" hbank="93" lbank="20" prog="79"/>
+ <Patch name="Winter Bells" drum="0" hbank="93" lbank="20" prog="80"/>
+ <Patch name="Wind Bells" drum="0" hbank="93" lbank="20" prog="81"/>
+ <Patch name="BelAngk SRX" drum="0" hbank="93" lbank="20" prog="82"/>
+ <Patch name="Tcheekolyna" drum="0" hbank="93" lbank="20" prog="83"/>
+ <Patch name="Wood EPiano" drum="0" hbank="93" lbank="20" prog="84"/>
+ <Patch name="Kalimba" drum="0" hbank="93" lbank="20" prog="85"/>
+ <Patch name="Kalimbatch" drum="0" hbank="93" lbank="20" prog="86"/>
+ <Patch name="VelAfro SRX1" drum="0" hbank="93" lbank="20" prog="87"/>
+ <Patch name="BSKalimbaSRX" drum="0" hbank="93" lbank="20" prog="88"/>
+ <Patch name="LogDetunrSRX" drum="0" hbank="93" lbank="20" prog="89"/>
+ <Patch name="Baateri SRX" drum="0" hbank="93" lbank="20" prog="90"/>
+ <Patch name="Balafon SRX" drum="0" hbank="93" lbank="20" prog="91"/>
+ <Patch name="Asian Wood" drum="0" hbank="93" lbank="20" prog="92"/>
+ <Patch name="Mellow tone" drum="0" hbank="93" lbank="20" prog="93"/>
+ <Patch name="Glas Mlt SRX" drum="0" hbank="93" lbank="20" prog="94"/>
+ <Patch name="SteelDr SRX1" drum="0" hbank="93" lbank="20" prog="95"/>
+ <Patch name="SteelDr SRX2" drum="0" hbank="93" lbank="20" prog="96"/>
+ <Patch name="Gendrous SRX" drum="0" hbank="93" lbank="20" prog="97"/>
+ <Patch name="BonangGamSRX" drum="0" hbank="93" lbank="20" prog="98"/>
+ <Patch name="VelAfro SRX2" drum="0" hbank="93" lbank="20" prog="99"/>
+ <Patch name="TemleMetlSRX" drum="0" hbank="93" lbank="20" prog="100"/>
+ <Patch name="Kemong / SRX" drum="0" hbank="93" lbank="20" prog="101"/>
+ <Patch name="Kane / SRX" drum="0" hbank="93" lbank="20" prog="102"/>
+ <Patch name="JeGong / SRX" drum="0" hbank="93" lbank="20" prog="103"/>
+ <Patch name="Jegogn / SRX" drum="0" hbank="93" lbank="20" prog="104"/>
+ <Patch name="Jublag / SRX" drum="0" hbank="93" lbank="20" prog="105"/>
+ <Patch name="Reyong / SRX" drum="0" hbank="93" lbank="20" prog="106"/>
+ <Patch name="Pemade / SRX" drum="0" hbank="93" lbank="20" prog="107"/>
+ <Patch name="Cajun" drum="0" hbank="93" lbank="20" prog="108"/>
+ <Patch name="D.Accordion" drum="0" hbank="93" lbank="20" prog="109"/>
+ <Patch name="SquezeBoxSRX" drum="0" hbank="93" lbank="20" prog="110"/>
+ <Patch name="Squeeze Box" drum="0" hbank="93" lbank="20" prog="111"/>
+ <Patch name="St.AcdOp SRX" drum="0" hbank="93" lbank="20" prog="112"/>
+ <Patch name="AcdionOp SRX" drum="0" hbank="93" lbank="20" prog="113"/>
+ <Patch name="Acd ffOp SRX" drum="0" hbank="93" lbank="20" prog="114"/>
+ <Patch name="STt.AcdCl SRX" drum="0" hbank="93" lbank="20" prog="115"/>
+ <Patch name="Bluesy" drum="0" hbank="93" lbank="20" prog="116"/>
+ <Patch name="HarmonicaSRX" drum="0" hbank="93" lbank="20" prog="117"/>
+ <Patch name="CuntryHrpSRX" drum="0" hbank="93" lbank="20" prog="118"/>
+ <Patch name="Sessn HrpSRX" drum="0" hbank="93" lbank="20" prog="119"/>
+ <Patch name="Esraj and Mizmar" drum="0" hbank="93" lbank="20" prog="120"/>
+ <Patch name="Before Time" drum="0" hbank="93" lbank="20" prog="121"/>
+ <Patch name="Gagaku Ems" drum="0" hbank="93" lbank="20" prog="122"/>
+ <Patch name="Mizmar solo" drum="0" hbank="93" lbank="20" prog="123"/>
+ <Patch name="PiriSolo SRX" drum="0" hbank="93" lbank="20" prog="124"/>
+ <Patch name="Shahnai SRX" drum="0" hbank="93" lbank="20" prog="125"/>
+ <Patch name="HichirikSRX" drum="0" hbank="93" lbank="20" prog="126"/>
+ <Patch name="Bagpipes SRX" drum="0" hbank="93" lbank="20" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="SRX09 World Collection 3">
+ <Patch name="Sheng / SRX" drum="0" hbank="93" lbank="21" prog="0"/>
+ <Patch name="Suona / SRX" drum="0" hbank="93" lbank="21" prog="1"/>
+ <Patch name="VillageDance" drum="0" hbank="93" lbank="21" prog="2"/>
+ <Patch name="Indian Ens" drum="0" hbank="93" lbank="21" prog="3"/>
+ <Patch name="Nature Loves" drum="0" hbank="93" lbank="21" prog="4"/>
+ <Patch name="PanPipes SRX" drum="0" hbank="93" lbank="21" prog="5"/>
+ <Patch name="Sad Pipe" drum="0" hbank="93" lbank="21" prog="6"/>
+ <Patch name="Shell blow" drum="0" hbank="93" lbank="21" prog="7"/>
+ <Patch name="Desert Flute" drum="0" hbank="93" lbank="21" prog="8"/>
+ <Patch name="Zampona" drum="0" hbank="93" lbank="21" prog="9"/>
+ <Patch name="Isolation" drum="0" hbank="93" lbank="21" prog="10"/>
+ <Patch name="Ocarina" drum="0" hbank="93" lbank="21" prog="11"/>
+ <Patch name="New IndFlute" drum="0" hbank="93" lbank="21" prog="12"/>
+ <Patch name="Qu Di Vib" drum="0" hbank="93" lbank="21" prog="13"/>
+ <Patch name="Bang Di Vib" drum="0" hbank="93" lbank="21" prog="14"/>
+ <Patch name="New Kawala" drum="0" hbank="93" lbank="21" prog="15"/>
+ <Patch name="BreathyIndia" drum="0" hbank="93" lbank="21" prog="16"/>
+ <Patch name="New Shaku" drum="0" hbank="93" lbank="21" prog="17"/>
+ <Patch name="Shakuhachi" drum="0" hbank="93" lbank="21" prog="18"/>
+ <Patch name="DreamInColor" drum="0" hbank="93" lbank="21" prog="19"/>
+ <Patch name="TwinHillyLd" drum="0" hbank="93" lbank="21" prog="20"/>
+ <Patch name="Snake Eyes" drum="0" hbank="93" lbank="21" prog="21"/>
+ <Patch name="Latin Trumpt" drum="0" hbank="93" lbank="21" prog="22"/>
+ <Patch name="MariachiTpts" drum="0" hbank="93" lbank="21" prog="23"/>
+ <Patch name="Trumpets" drum="0" hbank="93" lbank="21" prog="24"/>
+ <Patch name="GrowlWah/Mod" drum="0" hbank="93" lbank="21" prog="25"/>
+ <Patch name="Muted-Grw /" drum="0" hbank="93" lbank="21" prog="26"/>
+ <Patch name="SoloTuba SRX" drum="0" hbank="93" lbank="21" prog="27"/>
+ <Patch name="LatinTubaSRX" drum="0" hbank="93" lbank="21" prog="28"/>
+ <Patch name="World Orch" drum="0" hbank="93" lbank="21" prog="29"/>
+ <Patch name="Stab and Hold" drum="0" hbank="93" lbank="21" prog="30"/>
+ <Patch name="Indian Radio" drum="0" hbank="93" lbank="21" prog="31"/>
+ <Patch name="Wide Brass" drum="0" hbank="93" lbank="21" prog="32"/>
+ <Patch name="Trombones" drum="0" hbank="93" lbank="21" prog="33"/>
+ <Patch name="Brass Snapz" drum="0" hbank="93" lbank="21" prog="34"/>
+ <Patch name="Brass sfzzZZ" drum="0" hbank="93" lbank="21" prog="35"/>
+ <Patch name="2Tp+Tbn SRX" drum="0" hbank="93" lbank="21" prog="36"/>
+ <Patch name="MemphisHORNS" drum="0" hbank="93" lbank="21" prog="37"/>
+ <Patch name="SectStactSRX" drum="0" hbank="93" lbank="21" prog="38"/>
+ <Patch name="LatinBrasses" drum="0" hbank="93" lbank="21" prog="39"/>
+ <Patch name="Hit and Fall" drum="0" hbank="93" lbank="21" prog="40"/>
+ <Patch name="BrsChd13 SRX" drum="0" hbank="93" lbank="21" prog="41"/>
+ <Patch name="BrsChdMi9SRX" drum="0" hbank="93" lbank="21" prog="42"/>
+ <Patch name="BrsChdMj9SRX" drum="0" hbank="93" lbank="21" prog="43"/>
+ <Patch name="Blow Pad" drum="0" hbank="93" lbank="21" prog="44"/>
+ <Patch name="Ceremony" drum="0" hbank="93" lbank="21" prog="45"/>
+ <Patch name="Glasses" drum="0" hbank="93" lbank="21" prog="46"/>
+ <Patch name="Ambiccordian" drum="0" hbank="93" lbank="21" prog="47"/>
+ <Patch name="DroneFlanger" drum="0" hbank="93" lbank="21" prog="48"/>
+ <Patch name="Rock Gods" drum="0" hbank="93" lbank="21" prog="49"/>
+ <Patch name="ScotlandLass" drum="0" hbank="93" lbank="21" prog="50"/>
+ <Patch name="Dry Fishes" drum="0" hbank="93" lbank="21" prog="51"/>
+ <Patch name="SteroidBrass" drum="0" hbank="93" lbank="21" prog="52"/>
+ <Patch name="Soul revived" drum="0" hbank="93" lbank="21" prog="53"/>
+ <Patch name="Rain Pad" drum="0" hbank="93" lbank="21" prog="54"/>
+ <Patch name="Rising Sun" drum="0" hbank="93" lbank="21" prog="55"/>
+ <Patch name="Ethnopad" drum="0" hbank="93" lbank="21" prog="56"/>
+ <Patch name="Ethno Strngs" drum="0" hbank="93" lbank="21" prog="57"/>
+ <Patch name="and 40 Thieves" drum="0" hbank="93" lbank="21" prog="58"/>
+ <Patch name="TromboSynthy" drum="0" hbank="93" lbank="21" prog="59"/>
+ <Patch name="GrandExaltd1" drum="0" hbank="93" lbank="21" prog="60"/>
+ <Patch name="Sun Dog" drum="0" hbank="93" lbank="21" prog="61"/>
+ <Patch name="TechnoSpirit" drum="0" hbank="93" lbank="21" prog="62"/>
+ <Patch name="Play Softly" drum="0" hbank="93" lbank="21" prog="63"/>
+ <Patch name="WorkerBeetle" drum="0" hbank="93" lbank="21" prog="64"/>
+ <Patch name="Glass Cut" drum="0" hbank="93" lbank="21" prog="65"/>
+ <Patch name="GuruTronics" drum="0" hbank="93" lbank="21" prog="66"/>
+ <Patch name="DubJazz Trip" drum="0" hbank="93" lbank="21" prog="67"/>
+ <Patch name="Meditation 2" drum="0" hbank="93" lbank="21" prog="68"/>
+ <Patch name="Political" drum="0" hbank="93" lbank="21" prog="69"/>
+ <Patch name="G-day Mate" drum="0" hbank="93" lbank="21" prog="70"/>
+ <Patch name="Mission" drum="0" hbank="93" lbank="21" prog="71"/>
+ <Patch name="Jegorgan" drum="0" hbank="93" lbank="21" prog="72"/>
+ <Patch name="Dyno Conga 1" drum="0" hbank="93" lbank="21" prog="73"/>
+ <Patch name="Dyno Conga 2" drum="0" hbank="93" lbank="21" prog="74"/>
+ <Patch name="Congas+Bongo" drum="0" hbank="93" lbank="21" prog="75"/>
+ <Patch name="DynTimbale 1" drum="0" hbank="93" lbank="21" prog="76"/>
+ <Patch name="DynTimbale 2" drum="0" hbank="93" lbank="21" prog="77"/>
+ <Patch name="TimbaleCuica" drum="0" hbank="93" lbank="21" prog="78"/>
+ <Patch name="Dyno Surdo" drum="0" hbank="93" lbank="21" prog="79"/>
+ <Patch name="Rhythm Sect" drum="0" hbank="93" lbank="21" prog="80"/>
+ <Patch name="Rainstick" drum="0" hbank="93" lbank="21" prog="81"/>
+ <Patch name="Clap and Snap" drum="0" hbank="93" lbank="21" prog="82"/>
+ <Patch name="CowbellRandm" drum="0" hbank="93" lbank="21" prog="83"/>
+ <Patch name="Karachi-Man" drum="0" hbank="93" lbank="21" prog="84"/>
+ <Patch name="That Was Zen" drum="0" hbank="93" lbank="21" prog="85"/>
+ <Patch name="StreetParade" drum="0" hbank="93" lbank="21" prog="86"/>
+ <Patch name="BUK" drum="0" hbank="93" lbank="21" prog="87"/>
+ <Patch name="Gongs" drum="0" hbank="93" lbank="21" prog="88"/>
+ <Patch name="Chenchen /" drum="0" hbank="93" lbank="21" prog="89"/>
+ <Patch name="WisdomWithin" drum="0" hbank="93" lbank="21" prog="90"/>
+ <Patch name="Tabla+" drum="0" hbank="93" lbank="21" prog="91"/>
+ <Patch name="DrumsScene" drum="0" hbank="93" lbank="21" prog="92"/>
+ <Patch name="Doholla Fun" drum="0" hbank="93" lbank="21" prog="93"/>
+ <Patch name="AfricanRhtms" drum="0" hbank="93" lbank="21" prog="94"/>
+ <Patch name="Big Logs SRX" drum="0" hbank="93" lbank="21" prog="95"/>
+ <Patch name="WarDrums SRX" drum="0" hbank="93" lbank="21" prog="96"/>
+ <Patch name="Samba Menu" drum="0" hbank="93" lbank="21" prog="97"/>
+ <Patch name="Shaker Menu" drum="0" hbank="93" lbank="21" prog="98"/>
+ <Patch name="Caixa Menu" drum="0" hbank="93" lbank="21" prog="99"/>
+ <Patch name="Cowbell Menu" drum="0" hbank="93" lbank="21" prog="100"/>
+ <Patch name="JapanPrcMenu" drum="0" hbank="93" lbank="21" prog="101"/>
+ <Patch name="Kabuki Menu" drum="0" hbank="93" lbank="21" prog="102"/>
+ <Patch name="KwangawariSRX" drum="0" hbank="93" lbank="21" prog="103"/>
+ <Patch name="Tuzumi / SRX" drum="0" hbank="93" lbank="21" prog="104"/>
+ <Patch name="KoreaPrcMenu" drum="0" hbank="93" lbank="21" prog="105"/>
+ <Patch name="ChinaPrcMenu" drum="0" hbank="93" lbank="21" prog="106"/>
+ <Patch name="China Menu" drum="0" hbank="93" lbank="21" prog="107"/>
+ <Patch name="ChinaGongSRX" drum="0" hbank="93" lbank="21" prog="108"/>
+ <Patch name="Sanba / SRX" drum="0" hbank="93" lbank="21" prog="109"/>
+ <Patch name="St.ShouBoSRX" drum="0" hbank="93" lbank="21" prog="110"/>
+ <Patch name="AsiaCym Menu" drum="0" hbank="93" lbank="21" prog="111"/>
+ <Patch name="Gong Menu" drum="0" hbank="93" lbank="21" prog="112"/>
+ <Patch name="Gamelan Menu" drum="0" hbank="93" lbank="21" prog="113"/>
+ <Patch name="GamlnPrcMenu" drum="0" hbank="93" lbank="21" prog="114"/>
+ <Patch name="BigBazar SRX" drum="0" hbank="93" lbank="21" prog="115"/>
+ <Patch name="Udu Pot Menu" drum="0" hbank="93" lbank="21" prog="116"/>
+ <Patch name="TablaBy Menu" drum="0" hbank="93" lbank="21" prog="117"/>
+ <Patch name="Rek Menu" drum="0" hbank="93" lbank="21" prog="118"/>
+ <Patch name="Dholak Menu1" drum="0" hbank="93" lbank="21" prog="119"/>
+ <Patch name="Dholak Menu2" drum="0" hbank="93" lbank="21" prog="120"/>
+ <Patch name="Dhol Menu" drum="0" hbank="93" lbank="21" prog="121"/>
+ <Patch name="Egypt Tablah" drum="0" hbank="93" lbank="21" prog="122"/>
+ <Patch name="Madal Menu" drum="0" hbank="93" lbank="21" prog="123"/>
+ <Patch name="AfropercMenu" drum="0" hbank="93" lbank="21" prog="124"/>
+ <Patch name="CommSatelite" drum="0" hbank="93" lbank="21" prog="125"/>
+ <Patch name="Amazone" drum="0" hbank="93" lbank="21" prog="126"/>
+ <Patch name="Tasman Sea" drum="0" hbank="93" lbank="21" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="SRX09 World Collection 4">
+ <Patch name="Ethnic FX 1" drum="0" hbank="93" lbank="22" prog="0"/>
+ <Patch name="Ethnic FX 2" drum="0" hbank="93" lbank="22" prog="1"/>
+ <Patch name="SpacetualBoy" drum="0" hbank="93" lbank="22" prog="2"/>
+ <Patch name="Crystal" drum="0" hbank="93" lbank="22" prog="3"/>
+ <Patch name="SpaceLuvSick" drum="0" hbank="93" lbank="22" prog="4"/>
+ <Patch name="HitAscension" drum="0" hbank="93" lbank="22" prog="5"/>
+ <Patch name="Nervous Man" drum="0" hbank="93" lbank="22" prog="6"/>
+ <Patch name="Silk Stream" drum="0" hbank="93" lbank="22" prog="7"/>
+ <Patch name="DerangedMind" drum="0" hbank="93" lbank="22" prog="8"/>
+ <Patch name="PolyDrone" drum="0" hbank="93" lbank="22" prog="9"/>
+ <Patch name="TequillaWorm" drum="0" hbank="93" lbank="22" prog="10"/>
+ <Patch name="GlistenToYou" drum="0" hbank="93" lbank="22" prog="11"/>
+ <Patch name="Dream Harp" drum="0" hbank="93" lbank="22" prog="12"/>
+ <Patch name="Waterfall" drum="0" hbank="93" lbank="22" prog="13"/>
+ <Patch name="Gender 3D" drum="0" hbank="93" lbank="22" prog="14"/>
+ <Patch name="Doom Drum" drum="0" hbank="93" lbank="22" prog="15"/>
+ <Patch name="Stalker" drum="0" hbank="93" lbank="22" prog="16"/>
+ <Patch name="PlasticBones" drum="0" hbank="93" lbank="22" prog="17"/>
+ <Patch name="PakistanVibe" drum="0" hbank="93" lbank="22" prog="18"/>
+ <Patch name="ThusSpokeZtr" drum="0" hbank="93" lbank="22" prog="19"/>
+ <Patch name="Kalissando" drum="0" hbank="93" lbank="22" prog="20"/>
+ <Patch name="Rain Forest" drum="0" hbank="93" lbank="22" prog="21"/>
+ <Patch name="AfropunchSRX" drum="0" hbank="93" lbank="22" prog="22"/>
+ <Patch name="Dance Tape" drum="0" hbank="93" lbank="22" prog="23"/>
+ <Patch name="Zaghruta SRX" drum="0" hbank="93" lbank="22" prog="24"/>
+ <Patch name="1,2,3,4! SRX" drum="0" hbank="93" lbank="22" prog="25"/>
+ <Patch name="Voices SRX" drum="0" hbank="93" lbank="22" prog="26"/>
+ <Patch name="Voice Menu 1" drum="0" hbank="93" lbank="22" prog="27"/>
+ <Patch name="Voice Menu 2" drum="0" hbank="93" lbank="22" prog="28"/>
+ <Patch name="Voice Menu3" drum="0" hbank="93" lbank="22" prog="29"/>
+ </PatchGroup>
+
+</MidiInstrument>
+
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Waldorf_Microwave-I.idf b/muse_qt4_evolution/share/instruments/Waldorf_Microwave-I.idf
new file mode 100644
index 00000000..9975d04a
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Waldorf_Microwave-I.idf
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf Microwave I">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="A 01" prog="000" hbank="0" lbank="0"/>
+ <Patch name="A 02" prog="001" hbank="0" lbank="0"/>
+ <Patch name="A 03" prog="002" hbank="0" lbank="0"/>
+ <Patch name="A 04" prog="003" hbank="0" lbank="0"/>
+ <Patch name="A 05" prog="004" hbank="0" lbank="0"/>
+ <Patch name="A 06" prog="005" hbank="0" lbank="0"/>
+ <Patch name="A 07" prog="006" hbank="0" lbank="0"/>
+ <Patch name="A 08" prog="007" hbank="0" lbank="0"/>
+ <Patch name="A 09" prog="008" hbank="0" lbank="0"/>
+ <Patch name="A 10" prog="009" hbank="0" lbank="0"/>
+ <Patch name="A 11" prog="010" hbank="0" lbank="0"/>
+ <Patch name="A 12" prog="011" hbank="0" lbank="0"/>
+ <Patch name="A 13" prog="012" hbank="0" lbank="0"/>
+ <Patch name="A 14" prog="013" hbank="0" lbank="0"/>
+ <Patch name="A 15" prog="014" hbank="0" lbank="0"/>
+ <Patch name="A 16" prog="015" hbank="0" lbank="0"/>
+ <Patch name="A 17" prog="016" hbank="0" lbank="0"/>
+ <Patch name="A 18" prog="017" hbank="0" lbank="0"/>
+ <Patch name="A 19" prog="018" hbank="0" lbank="0"/>
+ <Patch name="A 20" prog="019" hbank="0" lbank="0"/>
+ <Patch name="A 21" prog="020" hbank="0" lbank="0"/>
+ <Patch name="A 22" prog="021" hbank="0" lbank="0"/>
+ <Patch name="A 23" prog="022" hbank="0" lbank="0"/>
+ <Patch name="A 24" prog="023" hbank="0" lbank="0"/>
+ <Patch name="A 25" prog="024" hbank="0" lbank="0"/>
+ <Patch name="A 26" prog="025" hbank="0" lbank="0"/>
+ <Patch name="A 27" prog="026" hbank="0" lbank="0"/>
+ <Patch name="A 28" prog="027" hbank="0" lbank="0"/>
+ <Patch name="A 29" prog="028" hbank="0" lbank="0"/>
+ <Patch name="A 30" prog="029" hbank="0" lbank="0"/>
+ <Patch name="A 31" prog="030" hbank="0" lbank="0"/>
+ <Patch name="A 32" prog="031" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="B 01" prog="032" hbank="0" lbank="0"/>
+ <Patch name="B 02" prog="033" hbank="0" lbank="0"/>
+ <Patch name="B 03" prog="034" hbank="0" lbank="0"/>
+ <Patch name="B 04" prog="035" hbank="0" lbank="0"/>
+ <Patch name="B 05" prog="036" hbank="0" lbank="0"/>
+ <Patch name="B 06" prog="037" hbank="0" lbank="0"/>
+ <Patch name="B 07" prog="038" hbank="0" lbank="0"/>
+ <Patch name="B 08" prog="039" hbank="0" lbank="0"/>
+ <Patch name="B 09" prog="040" hbank="0" lbank="0"/>
+ <Patch name="B 10" prog="041" hbank="0" lbank="0"/>
+ <Patch name="B 11" prog="042" hbank="0" lbank="0"/>
+ <Patch name="B 12" prog="043" hbank="0" lbank="0"/>
+ <Patch name="B 13" prog="044" hbank="0" lbank="0"/>
+ <Patch name="B 14" prog="045" hbank="0" lbank="0"/>
+ <Patch name="B 15" prog="046" hbank="0" lbank="0"/>
+ <Patch name="B 16" prog="047" hbank="0" lbank="0"/>
+ <Patch name="B 17" prog="048" hbank="0" lbank="0"/>
+ <Patch name="B 18" prog="049" hbank="0" lbank="0"/>
+ <Patch name="B 19" prog="050" hbank="0" lbank="0"/>
+ <Patch name="B 20" prog="051" hbank="0" lbank="0"/>
+ <Patch name="B 21" prog="052" hbank="0" lbank="0"/>
+ <Patch name="B 22" prog="053" hbank="0" lbank="0"/>
+ <Patch name="B 23" prog="054" hbank="0" lbank="0"/>
+ <Patch name="B 24" prog="055" hbank="0" lbank="0"/>
+ <Patch name="B 25" prog="056" hbank="0" lbank="0"/>
+ <Patch name="B 26" prog="057" hbank="0" lbank="0"/>
+ <Patch name="B 27" prog="058" hbank="0" lbank="0"/>
+ <Patch name="B 28" prog="059" hbank="0" lbank="0"/>
+ <Patch name="B 29" prog="060" hbank="0" lbank="0"/>
+ <Patch name="B 30" prog="061" hbank="0" lbank="0"/>
+ <Patch name="B 31" prog="062" hbank="0" lbank="0"/>
+ <Patch name="B 32" prog="063" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Card Bank C">
+ <Patch name="C 01" prog="064" hbank="0" lbank="0"/>
+ <Patch name="C 02" prog="065" hbank="0" lbank="0"/>
+ <Patch name="C 03" prog="066" hbank="0" lbank="0"/>
+ <Patch name="C 04" prog="067" hbank="0" lbank="0"/>
+ <Patch name="C 05" prog="068" hbank="0" lbank="0"/>
+ <Patch name="C 06" prog="069" hbank="0" lbank="0"/>
+ <Patch name="C 07" prog="070" hbank="0" lbank="0"/>
+ <Patch name="C 08" prog="071" hbank="0" lbank="0"/>
+ <Patch name="C 09" prog="072" hbank="0" lbank="0"/>
+ <Patch name="C 10" prog="073" hbank="0" lbank="0"/>
+ <Patch name="C 11" prog="074" hbank="0" lbank="0"/>
+ <Patch name="C 12" prog="075" hbank="0" lbank="0"/>
+ <Patch name="C 13" prog="076" hbank="0" lbank="0"/>
+ <Patch name="C 14" prog="077" hbank="0" lbank="0"/>
+ <Patch name="C 15" prog="078" hbank="0" lbank="0"/>
+ <Patch name="C 16" prog="079" hbank="0" lbank="0"/>
+ <Patch name="C 17" prog="080" hbank="0" lbank="0"/>
+ <Patch name="C 18" prog="081" hbank="0" lbank="0"/>
+ <Patch name="C 19" prog="082" hbank="0" lbank="0"/>
+ <Patch name="C 20" prog="083" hbank="0" lbank="0"/>
+ <Patch name="C 21" prog="084" hbank="0" lbank="0"/>
+ <Patch name="C 22" prog="085" hbank="0" lbank="0"/>
+ <Patch name="C 23" prog="086" hbank="0" lbank="0"/>
+ <Patch name="C 24" prog="087" hbank="0" lbank="0"/>
+ <Patch name="C 25" prog="088" hbank="0" lbank="0"/>
+ <Patch name="C 26" prog="089" hbank="0" lbank="0"/>
+ <Patch name="C 27" prog="090" hbank="0" lbank="0"/>
+ <Patch name="C 28" prog="091" hbank="0" lbank="0"/>
+ <Patch name="C 29" prog="092" hbank="0" lbank="0"/>
+ <Patch name="C 30" prog="093" hbank="0" lbank="0"/>
+ <Patch name="C 31" prog="094" hbank="0" lbank="0"/>
+ <Patch name="C 32" prog="095" hbank="0" lbank="0"/>
+ </PatchGroup>
+ <PatchGroup name="Card Bank D">
+ <Patch name="D 01" prog="096" hbank="0" lbank="0"/>
+ <Patch name="D 02" prog="097" hbank="0" lbank="0"/>
+ <Patch name="D 03" prog="098" hbank="0" lbank="0"/>
+ <Patch name="D 04" prog="099" hbank="0" lbank="0"/>
+ <Patch name="D 05" prog="100" hbank="0" lbank="0"/>
+ <Patch name="D 06" prog="101" hbank="0" lbank="0"/>
+ <Patch name="D 07" prog="102" hbank="0" lbank="0"/>
+ <Patch name="D 08" prog="103" hbank="0" lbank="0"/>
+ <Patch name="D 09" prog="104" hbank="0" lbank="0"/>
+ <Patch name="D 10" prog="105" hbank="0" lbank="0"/>
+ <Patch name="D 11" prog="106" hbank="0" lbank="0"/>
+ <Patch name="D 12" prog="107" hbank="0" lbank="0"/>
+ <Patch name="D 13" prog="108" hbank="0" lbank="0"/>
+ <Patch name="D 14" prog="109" hbank="0" lbank="0"/>
+ <Patch name="D 15" prog="110" hbank="0" lbank="0"/>
+ <Patch name="D 16" prog="111" hbank="0" lbank="0"/>
+ <Patch name="D 17" prog="112" hbank="0" lbank="0"/>
+ <Patch name="D 18" prog="113" hbank="0" lbank="0"/>
+ <Patch name="D 19" prog="114" hbank="0" lbank="0"/>
+ <Patch name="D 20" prog="115" hbank="0" lbank="0"/>
+ <Patch name="D 21" prog="116" hbank="0" lbank="0"/>
+ <Patch name="D 22" prog="117" hbank="0" lbank="0"/>
+ <Patch name="D 23" prog="118" hbank="0" lbank="0"/>
+ <Patch name="D 24" prog="119" hbank="0" lbank="0"/>
+ <Patch name="D 25" prog="120" hbank="0" lbank="0"/>
+ <Patch name="D 26" prog="121" hbank="0" lbank="0"/>
+ <Patch name="D 27" prog="122" hbank="0" lbank="0"/>
+ <Patch name="D 28" prog="123" hbank="0" lbank="0"/>
+ <Patch name="D 29" prog="124" hbank="0" lbank="0"/>
+ <Patch name="D 30" prog="125" hbank="0" lbank="0"/>
+ <Patch name="D 31" prog="126" hbank="0" lbank="0"/>
+ <Patch name="D 32" prog="127" hbank="0" lbank="0"/>
+ </PatchGroup>
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Yamaha-P50m.idf b/muse_qt4_evolution/share/instruments/Yamaha-P50m.idf
new file mode 100644
index 00000000..876aed52
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Yamaha-P50m.idf
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+
+<!--
+ MusE Instrument Definition File for
+ Yamaha P50-m
+ Piano Tone Generator
+-->
+
+<muse version="1.0">
+ <MidiInstrument name="Yamaha-P50m">
+ <Patch name="bright piano s+s" prog="0"/>
+ <Patch name="bright piano s" prog="1"/>
+ <Patch name="bright piano m+s" prog="2"/>
+ <Patch name="bright piano m" prog="3"/>
+ <Patch name="dark piano" prog="4"/>
+ <Patch name="grand piano s+s" prog="5"/>
+ <Patch name="grand piano s" prog="6"/>
+ <Patch name="grand piano m+s" prog="7"/>
+ <Patch name="grand piano m" prog="8"/>
+ <Patch name="dance" prog="9"/>
+ <Patch name="honkytonk" prog="10"/>
+ <Patch name="hybrid piano" prog="11"/>
+ <Patch name="cp80, mono" prog="12"/>
+ <Patch name="cp80, mono s" prog="13"/>
+ <Patch name="cp80+chorus" prog="14"/>
+ <Patch name="dx ep" prog="15"/>
+ <Patch name="dx pad" prog="16"/>
+ <Patch name="dx ep+chorus" prog="17"/>
+ <Patch name="roads" prog="18"/>
+ <Patch name="roads+chorus" prog="19"/>
+ <Patch name="soft roads" prog="20"/>
+ <Patch name="hard roads" prog="21"/>
+ <Patch name="dyno" prog="22"/>
+ <Patch name="resonant dyno" prog="23"/>
+ <Patch name="dyno+chorus" prog="24"/>
+ <Patch name="wurli" prog="25"/>
+ <Patch name="clavi" prog="26"/>
+ <Patch name="clavi+wah" prog="27"/>
+ <Patch name="no sound" prog="28"/>
+
+ <!-- Controller -->
+ <Controller name="Modulation" type="Control" l="1"/>
+ <Controller name="PortamentoTime" type="Control" l="5"/>
+ <Controller name="MainVolume" type="Control" l="7"/>
+ <Controller name="Pan" type="Control" l="10"/>
+ <Controller name="Expression" type="Control" l="11"/>
+ <Controller name="Sustain" type="Control" l="64"/>
+ <Controller name="Portamento" type="Control" l="65"/>
+ <Controller name="Sostenuto" type="Control" l="66"/>
+ <Controller name="SoftPedal" type="Control" l="67"/>
+ <Controller name="HarmonicContent" type="Control" l="71"/>
+ <Controller name="ReleaseTime" type="Control" l="72"/>
+ <Controller name="AttackTime" type="Control" l="73"/>
+ <Controller name="Brightness" type="Control" l="74"/>
+ <Controller name="PortamentoControl" type="Control" l="84"/>
+ <Controller name="Effect1Depth" type="Control" l="91"/>
+ <Controller name="Effect3Depth" type="Control" l="93"/>
+
+ <!-- NRPN's -->
+ <Controller name="VibratoRate" type="NRPN" h="0x01" l="0x08" min="-64" max="64"/>
+ <Controller name="VibratoDepth" type="NRPN" h="0x01" l="0x09" min="-64" max="64"/>
+ <Controller name="VibratoDelay" type="NRPN" h="0x01" l="0x0a" min="-64" max="64"/>
+ <Controller name="FilterCutoffFrequency" type="NRPN" h="0x01" l="0x20" min="-64" max="64"/>
+ <Controller name="FilterResonance" type="NRPN" h="0x01" l="0x21" min="-64" max="64"/>
+ <Controller name="EgAttackTime" type="NRPN" h="0x01" l="0x63" min="-64" max="64"/>
+ <Controller name="EgDecayTime" type="NRPN" h="0x01" l="0x64" min="-64" max="64"/>
+ <Controller name="EgReleaseTime" type="NRPN" h="0x01" l="0x66" min="-64" max="64"/>
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/Yamaha-P80.idf b/muse_qt4_evolution/share/instruments/Yamaha-P80.idf
new file mode 100644
index 00000000..735c463d
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Yamaha-P80.idf
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+
+<!--
+ MusE Instrument Definition File for
+ Yamaha P80
+ Electronic Piano
+-->
+
+<muse version="1.0">
+ <MidiInstrument name="Yamaha-P80">
+ <Patch name="Grand Piano" lbank="112" prog="0"/>
+ <Patch name="Classical Piano" lbank="114" prog="0"/>
+ <Patch name="Jazz Piano" lbank="112" prog="1"/>
+ <Patch name="Rock Piano" lbank="114" prog="1"/>
+ <Patch name="E.Piano 1" lbank="112" prog="5"/>
+ <Patch name="E.Piano 2" lbank="112" prog="4"/>
+ <Patch name="Harpsichord" lbank="112" prog="6"/>
+ <Patch name="Strings" lbank="112" prog="48"/>
+ <Patch name="Pipe Organ" lbank="112" prog="19"/>
+ <Patch name="Church Organ" lbank="115" prog="19"/>
+ <Patch name="Jazz Organ" lbank="112" prog="16"/>
+ <Patch name="Bass" lbank="112" prog="32"/>
+
+ <Patch name="V-Grand Piano" lbank="113" prog="0"/>
+ <Patch name="V-Classical Piano" lbank="115" prog="0"/>
+ <Patch name="V-Jazz Piano" lbank="113" prog="1"/>
+ <Patch name="V-Rock Piano" lbank="115" prog="1"/>
+ <Patch name="V-E.Piano 1" lbank="112" prog="88"/>
+ <Patch name="V-E.Piano 2" lbank="118" prog="4"/>
+ <Patch name="V-Harpsichord" lbank="115" prog="6"/>
+ <Patch name="V-Strings" lbank="113" prog="49"/>
+ <Patch name="V-Pipe Organ" lbank="113" prog="19"/>
+ <Patch name="V-Church Organ" lbank="114" prog="19"/>
+ <Patch name="V-Jazz Organ" lbank="113" prog="16"/>
+ <Patch name="V-Bass" lbank="114" prog="32"/>
+
+ <!-- Controller -->
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" />
+ <Controller name="Pan" type="Control" l="10" />
+ <Controller name="Expression" type="Control" l="11" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="HarmonicContent" type="Control" l="71" />
+ <Controller name="ReleaseTime" type="Control" l="72" />
+ <Controller name="AttackTime" type="Control" l="73" />
+ <Controller name="Brightness" type="Control" l="74" />
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="Effect1Depth" type="Control" l="91" />
+ <Controller name="Effect3Depth" type="Control" l="93" />
+
+ <!-- NRPN's -->
+ <Controller name="VibratoRate" type="NRPN" h="0x01" l="0x08" min="-64" max="64"/>
+ <Controller name="VibratoDepth" type="NRPN" h="0x01" l="0x09" min="-64" max="64"/>
+ <Controller name="VibratoDelay" type="NRPN" h="0x01" l="0x0a" min="-64" max="64"/>
+ <Controller name="FilterCutoffFrequency" type="NRPN" h="0x01" l="0x20" min="-64" max="64"/>
+ <Controller name="FilterResonance" type="NRPN" h="0x01" l="0x21" min="-64" max="64"/>
+ <Controller name="EgAttackTime" type="NRPN" h="0x01" l="0x63" min="-64" max="64"/>
+ <Controller name="EgDecayTime" type="NRPN" h="0x01" l="0x64" min="-64" max="64"/>
+ <Controller name="EgReleaseTime" type="NRPN" h="0x01" l="0x66" min="-64" max="64"/>
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/Yamaha-PSR275.idf b/muse_qt4_evolution/share/instruments/Yamaha-PSR275.idf
new file mode 100644
index 00000000..ea3bcfa7
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Yamaha-PSR275.idf
@@ -0,0 +1,585 @@
+<?xml version="1.0" ?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha PSR-275">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano (panel)">
+ <Patch name="Grand Piano" hbank="0" lbank="112" prog="0" />
+ <Patch name="Bright Piano" hbank="0" lbank="112" prog="1" />
+ <Patch name="MIDI Grand Piano" hbank="0" lbank="112" prog="2" />
+ <Patch name="CP 80" hbank="0" lbank="113" prog="2" />
+ <Patch name="Honky-tonk Piano" hbank="0" lbank="112" prog="3" />
+ <Patch name="Harpsichord" hbank="0" lbank="112" prog="6" />
+ </PatchGroup>
+ <PatchGroup name="E.Piano (panel)">
+ <Patch name="Funky Electric Piano" hbank="0" lbank="112" prog="4" />
+ <Patch name="Galaxy EP" hbank="0" lbank="114" prog="4" />
+ <Patch name="DX Modern Elec. Piano" hbank="0" lbank="112" prog="5" />
+ <Patch name="Hyper Tines" hbank="0" lbank="113" prog="5" />
+ <Patch name="Venus Electric Piano" hbank="0" lbank="114" prog="5" />
+ <Patch name="Clavi" hbank="0" lbank="112" prog="7" />
+ </PatchGroup>
+ <PatchGroup name="Piano (XG)">
+ <Patch name="Grand Piano" hbank="0" lbank="0" prog="0" mode="5" />
+ <Patch name="Grand Piano KSP" hbank="0" lbank="1" prog="0" mode="4" />
+ <Patch name="Piano Strings" hbank="0" lbank="40" prog="0" mode="4" />
+ <Patch name="Dream" hbank="0" lbank="41" prog="0" mode="4" />
+ <Patch name="Bright Piano" hbank="0" lbank="0" prog="1" mode="5" />
+ <Patch name="Bright Piano KSP" hbank="0" lbank="1" prog="1" mode="4" />
+ <Patch name="Electric Grand Piano" hbank="0" lbank="0" prog="2" mode="5" />
+ <Patch name="Electric Grand Piano KSP" hbank="0" lbank="1" prog="2" mode="4" />
+ <Patch name="Detuned CP80" hbank="0" lbank="32" prog="2" mode="4" />
+ <Patch name="Honky-tonk Piano" hbank="0" lbank="0" prog="3" mode="5" />
+ <Patch name="Honky-tonk Piano KSP" hbank="0" lbank="1" prog="3" mode="4" />
+ <Patch name="Electric Piano 1" hbank="0" lbank="0" prog="4" mode="5" />
+ <Patch name="Electric Piano 1 KSP" hbank="0" lbank="1" prog="4" mode="4" />
+ <Patch name="Chorus Electric Piano 1" hbank="0" lbank="32" prog="4" mode="4" />
+ <Patch name="Electric Piano 2" hbank="0" lbank="0" prog="5" mode="5" />
+ <Patch name="Electric Piano 2 KSP" hbank="0" lbank="1" prog="5" mode="4" />
+ <Patch name="Chorus Electric Piano 2" hbank="0" lbank="32" prog="5" mode="4" />
+ <Patch name="DX + Analog Electric Piano" hbank="0" lbank="41" prog="5" mode="4" />
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="6" mode="5" />
+ <Patch name="Harpsichord KSP" hbank="0" lbank="1" prog="6" mode="4" />
+ <Patch name="Harpsichord 3" hbank="0" lbank="35" prog="6" mode="4" />
+ <Patch name="Clavi" hbank="0" lbank="0" prog="7" mode="5" />
+ <Patch name="Clavi KSP" hbank="0" lbank="1" prog="7" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Organ (panel)">
+ <Patch name="Jazz Organ 1" hbank="0" lbank="112" prog="16" />
+ <Patch name="Jazz Organ 2" hbank="0" lbank="113" prog="16" />
+ <Patch name="Theater Organ" hbank="0" lbank="114" prog="16" />
+ <Patch name="Bright Organ" hbank="0" lbank="116" prog="16" />
+ <Patch name="16'+2' Organ" hbank="0" lbank="118" prog="16" />
+ <Patch name="16'+4' Organ" hbank="0" lbank="119" prog="16" />
+ <Patch name="Click Organ" hbank="0" lbank="112" prog="17" />
+ <Patch name="Rock Organ" hbank="0" lbank="112" prog="18" />
+ <Patch name="Purple Organ" hbank="0" lbank="114" prog="18" />
+ <Patch name="Church Organ" hbank="0" lbank="112" prog="19" />
+ <Patch name="Chapel Organ" hbank="0" lbank="113" prog="19" />
+ <Patch name="Reed Organ" hbank="0" lbank="112" prog="20" />
+ </PatchGroup>
+ <PatchGroup name="Accordion (panel)">
+ <Patch name="Musette Accordion" hbank="0" lbank="112" prog="21" />
+ <Patch name="Traditional Accordion" hbank="0" lbank="113" prog="21" />
+ <Patch name="Harmonica" hbank="0" lbank="112" prog="22" />
+ <Patch name="Bandoneon" hbank="0" lbank="113" prog="23" />
+ </PatchGroup>
+ <PatchGroup name="Organ (XG)">
+ <Patch name="DrawOrg" hbank="0" lbank="0" prog="16" mode="5" />
+ <Patch name="Detuned DrawOrg" hbank="0" lbank="32" prog="16" mode="4" />
+ <Patch name="60's DrawOrg 1" hbank="0" lbank="33" prog="16" mode="4" />
+ <Patch name="60's DrawOrg 2" hbank="0" lbank="34" prog="16" mode="4" />
+ <Patch name="70's DrawOrg 1" hbank="0" lbank="35" prog="16" mode="4" />
+ <Patch name="60's DrawOrg 3" hbank="0" lbank="37" prog="16" mode="4" />
+ <Patch name="16+2&quot;2/3" hbank="0" lbank="40" prog="16" mode="4" />
+ <Patch name="Organ Bass" hbank="0" lbank="64" prog="16" mode="4" />
+ <Patch name="70's DrawOrg 2" hbank="0" lbank="65" prog="16" mode="4" />
+ <Patch name="Cheezy Organ" hbank="0" lbank="66" prog="16" mode="4" />
+ <Patch name="DrawOrg 3" hbank="0" lbank="67" prog="16" mode="4" />
+ <Patch name="Percussive Organ" hbank="0" lbank="0" prog="17" mode="5" />
+ <Patch name="70's Percussive Organ" hbank="0" lbank="24" prog="17" mode="4" />
+ <Patch name="Detuned Percussive Organ" hbank="0" lbank="32" prog="17" mode="4" />
+ <Patch name="Light Organ" hbank="0" lbank="33" prog="17" mode="4" />
+ <Patch name="Percussive Organ 2" hbank="0" lbank="37" prog="17" mode="4" />
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="18" mode="5" />
+ <Patch name="Rotary Organ" hbank="0" lbank="64" prog="18" mode="4" />
+ <Patch name="Slow Rotary" hbank="0" lbank="65" prog="18" mode="4" />
+ <Patch name="Fast Rotary" hbank="0" lbank="66" prog="18" mode="4" />
+ <Patch name="Church Organ" hbank="0" lbank="0" prog="19" mode="5" />
+ <Patch name="Church Organ 3" hbank="0" lbank="32" prog="19" mode="4" />
+ <Patch name="Church Organ 2" hbank="0" lbank="35" prog="19" mode="4" />
+ <Patch name="Notre Dame" hbank="0" lbank="40" prog="19" mode="4" />
+ <Patch name="Organ Flute" hbank="0" lbank="64" prog="19" mode="4" />
+ <Patch name="Tremolo Organ Flute" hbank="0" lbank="65" prog="19" mode="4" />
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="20" mode="5" />
+ <Patch name="Puff Organ" hbank="0" lbank="40" prog="20" mode="4" />
+ <Patch name="Accordion" hbank="0" lbank="0" prog="21" mode="5" />
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="22" mode="5" />
+ <Patch name="Harmonica 2" hbank="0" lbank="32" prog="22" mode="4" />
+ <Patch name="Tango Accordion" hbank="0" lbank="0" prog="23" mode="5" />
+ <Patch name="Tango Accordion 2" hbank="0" lbank="64" prog="23" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Guitar (panel)">
+ <Patch name="Classical Guitar" hbank="0" lbank="112" prog="24" />
+ <Patch name="Folk Guitar" hbank="0" lbank="112" prog="25" />
+ <Patch name="12Strings Guitar" hbank="0" lbank="113" prog="25" />
+ <Patch name="Jazz Guitar" hbank="0" lbank="112" prog="26" />
+ <Patch name="Octave Guitar" hbank="0" lbank="113" prog="26" />
+ <Patch name="Clean Guitar" hbank="0" lbank="112" prog="27" />
+ <Patch name="60's Clean Guitar" hbank="0" lbank="117" prog="27" />
+ <Patch name="Muted Guitar" hbank="0" lbank="112" prog="28" />
+ <Patch name="Overdriven Guitar" hbank="0" lbank="112" prog="29" />
+ <Patch name="Distortion Guitar" hbank="0" lbank="112" prog="30" />
+ </PatchGroup>
+ <PatchGroup name="Guitar (XG)">
+ <Patch name="Nylon Guitar" hbank="0" lbank="0" prog="24" mode="5" />
+ <Patch name="Ukulele" hbank="0" lbank="96" prog="24" mode="4" />
+ <Patch name="Steel Guitar" hbank="0" lbank="0" prog="25" mode="5" />
+ <Patch name="12-string Guitar" hbank="0" lbank="35" prog="25" mode="4" />
+ <Patch name="Nylon &amp; Steel Guitar" hbank="0" lbank="40" prog="25" mode="4" />
+ <Patch name="Steel Guitar with Body Sound" hbank="0" lbank="41" prog="25" mode="4" />
+ <Patch name="Mandolin" hbank="0" lbank="96" prog="25" mode="4" />
+ <Patch name="Jazz Guitar" hbank="0" lbank="0" prog="26" mode="5" />
+ <Patch name="Jazz Amp" hbank="0" lbank="32" prog="26" mode="4" />
+ <Patch name="Clean Guitar" hbank="0" lbank="0" prog="27" mode="5" />
+ <Patch name="Chorus Guitar" hbank="0" lbank="32" prog="27" mode="4" />
+ <Patch name="Muted Guitar" hbank="0" lbank="0" prog="28" mode="5" />
+ <Patch name="Funk Guitar 1" hbank="0" lbank="40" prog="28" mode="4" />
+ <Patch name="Muted Steel Guitar" hbank="0" lbank="41" prog="28" mode="4" />
+ <Patch name="Jazz Man" hbank="0" lbank="45" prog="28" mode="4" />
+ <Patch name="Overdriven Guitar" hbank="0" lbank="0" prog="29" mode="5" />
+ <Patch name="Guitar Pinch" hbank="0" lbank="43" prog="29" mode="4" />
+ <Patch name="Distortion Guitar" hbank="0" lbank="0" prog="30" mode="5" />
+ <Patch name="Feedback Guitar" hbank="0" lbank="40" prog="30" mode="4" />
+ <Patch name="Feedback Guitar 2" hbank="0" lbank="41" prog="30" mode="4" />
+ <Patch name="Guitar Harmonics" hbank="0" lbank="0" prog="31" mode="5" />
+ <Patch name="Guitar Feedback" hbank="0" lbank="65" prog="31" mode="4" />
+ <Patch name="Guitar Harmonics 2" hbank="0" lbank="66" prog="31" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Bass (panel)">
+ <Patch name="Acoustic Bass" hbank="0" lbank="112" prog="32" />
+ <Patch name="Finger Bass" hbank="0" lbank="112" prog="33" />
+ <Patch name="Pick Bass" hbank="0" lbank="112" prog="34" />
+ <Patch name="Fretless Bass" hbank="0" lbank="112" prog="35" />
+ <Patch name="Slap Bass" hbank="0" lbank="112" prog="36" />
+ <Patch name="Synth Bass" hbank="0" lbank="112" prog="38" />
+ <Patch name="Hi-Q Bass" hbank="0" lbank="113" prog="38" />
+ <Patch name="Dance Bass" hbank="0" lbank="113" prog="39" />
+ </PatchGroup>
+ <PatchGroup name="Bass (XG)">
+ <Patch name="Acoustic Bass" hbank="0" lbank="0" prog="32" mode="5" />
+ <Patch name="Jazz Rhythm" hbank="0" lbank="40" prog="32" mode="4" />
+ <Patch name="Velocity Crossfade Upright Bass" hbank="0" lbank="45" prog="32" mode="4" />
+ <Patch name="Finger Bass" hbank="0" lbank="0" prog="33" mode="5" />
+ <Patch name="Finger Dark" hbank="0" lbank="18" prog="33" mode="4" />
+ <Patch name="Bass &amp; Distorted Electric Guitar" hbank="0" lbank="40" prog="33" mode="4" />
+ <Patch name="Finger Slap Bass" hbank="0" lbank="43" prog="33" mode="4" />
+ <Patch name="Finger Bass 2" hbank="0" lbank="45" prog="33" mode="4" />
+ <Patch name="Modulated Bass" hbank="0" lbank="65" prog="33" mode="4" />
+ <Patch name="Pick Bass" hbank="0" lbank="0" prog="34" mode="5" />
+ <Patch name="Muted Pick Bass" hbank="0" lbank="28" prog="34" mode="4" />
+ <Patch name="Fretless Bass" hbank="0" lbank="0" prog="35" mode="5" />
+ <Patch name="Fretless Bass 2" hbank="0" lbank="32" prog="35" mode="4" />
+ <Patch name="Fretless Bass 3" hbank="0" lbank="33" prog="35" mode="4" />
+ <Patch name="Fretless Bass 4" hbank="0" lbank="34" prog="35" mode="4" />
+ <Patch name="Slap Bass 1" hbank="0" lbank="0" prog="36" mode="5" />
+ <Patch name="Punch Thumb Bass" hbank="0" lbank="32" prog="36" mode="4" />
+ <Patch name="Slap Bass 2" hbank="0" lbank="0" prog="37" mode="5" />
+ <Patch name="Velocity Switch Slap" hbank="0" lbank="43" prog="37" mode="4" />
+ <Patch name="Synth Bass 1" hbank="0" lbank="0" prog="38" mode="5" />
+ <Patch name="Techno Synth Bass" hbank="0" lbank="40" prog="38" mode="4" />
+ <Patch name="Synth Bass 2" hbank="0" lbank="0" prog="39" mode="5" />
+ <Patch name="Mellow Synth Bass" hbank="0" lbank="6" prog="39" mode="4" />
+ <Patch name="Sequenced Bass" hbank="0" lbank="12" prog="39" mode="4" />
+ <Patch name="Click Synth Bass" hbank="0" lbank="18" prog="39" mode="4" />
+ <Patch name="Synth Bass 2 Dark" hbank="0" lbank="19" prog="39" mode="4" />
+ <Patch name="Modular Synth Bass" hbank="0" lbank="40" prog="39" mode="4" />
+ <Patch name="DX Bass" hbank="0" lbank="41" prog="39" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Strings (panel)">
+ <Patch name="Violin" hbank="0" lbank="112" prog="40" />
+ <Patch name="Cello" hbank="0" lbank="112" prog="42" />
+ <Patch name="Contrabass" hbank="0" lbank="112" prog="43" />
+ <Patch name="Tremolo Strings" hbank="0" lbank="112" prog="44" />
+ <Patch name="Pizzicato Strings" hbank="0" lbank="112" prog="45" />
+ <Patch name="Harp" hbank="0" lbank="112" prog="46" />
+ <Patch name="String Ensemble" hbank="0" lbank="112" prog="48" />
+ <Patch name="Chamber Strings" hbank="0" lbank="112" prog="49" />
+ <Patch name="Slow Strings" hbank="0" lbank="113" prog="49" />
+ <Patch name="Synth Strings" hbank="0" lbank="112" prog="50" />
+ <Patch name="Orchestra Hit" hbank="0" lbank="112" prog="55" />
+ <Patch name="Banjo" hbank="0" lbank="112" prog="105" />
+ </PatchGroup>
+ <PatchGroup name="Choir (panel)">
+ <Patch name="Choir" hbank="0" lbank="112" prog="52" />
+ <Patch name="Vocal Ensemble" hbank="0" lbank="113" prog="52" />
+ <Patch name="Vox Humana" hbank="0" lbank="112" prog="53" />
+ <Patch name="Air Choir" hbank="0" lbank="112" prog="54" />
+ </PatchGroup>
+ <PatchGroup name="String (XG)">
+ <Patch name="Violin" hbank="0" lbank="0" prog="40" mode="5" />
+ <Patch name="Slow Violin" hbank="0" lbank="8" prog="40" mode="4" />
+ <Patch name="Viola" hbank="0" lbank="0" prog="41" mode="5" />
+ <Patch name="Cello" hbank="0" lbank="0" prog="42" mode="5" />
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43" mode="5" />
+ <Patch name="Tremolo Strings" hbank="0" lbank="0" prog="44" mode="5" />
+ <Patch name="Slow Tremolo Strings" hbank="0" lbank="8" prog="44" mode="4" />
+ <Patch name="Suspense Strings" hbank="0" lbank="40" prog="44" mode="4" />
+ <Patch name="Pizzicato Strings" hbank="0" lbank="0" prog="45" mode="5" />
+ <Patch name="Orchestral Harp" hbank="0" lbank="0" prog="46" mode="5" />
+ <Patch name="Yang Chin" hbank="0" lbank="40" prog="46" mode="4" />
+ <Patch name="Timpani" hbank="0" lbank="0" prog="47" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Ensemble (XG)">
+ <Patch name="Strings 1" hbank="0" lbank="0" prog="48" mode="5" />
+ <Patch name="Stereo Strings" hbank="0" lbank="3" prog="48" mode="4" />
+ <Patch name="Slow Strings" hbank="0" lbank="8" prog="48" mode="4" />
+ <Patch name="60's Strings" hbank="0" lbank="35" prog="48" mode="4" />
+ <Patch name="Orchestra" hbank="0" lbank="40" prog="48" mode="4" />
+ <Patch name="Orchestra 2" hbank="0" lbank="41" prog="48" mode="4" />
+ <Patch name="Tremolo Orchestra" hbank="0" lbank="42" prog="48" mode="4" />
+ <Patch name="Velocity Strings" hbank="0" lbank="45" prog="48" mode="4" />
+ <Patch name="Strings 2" hbank="0" lbank="0" prog="49" mode="5" />
+ <Patch name="Slow Stereo Strings" hbank="0" lbank="3" prog="49" mode="4" />
+ <Patch name="Legato Strings" hbank="0" lbank="8" prog="49" mode="4" />
+ <Patch name="Warm Strings" hbank="0" lbank="40" prog="49" mode="4" />
+ <Patch name="Kingdom" hbank="0" lbank="41" prog="49" mode="4" />
+ <Patch name="Synth Strings 1" hbank="0" lbank="0" prog="50" mode="5" />
+ <Patch name="Synth Strings 2" hbank="0" lbank="0" prog="51" mode="5" />
+ <Patch name="Choir Aahs" hbank="0" lbank="0" prog="52" mode="5" />
+ <Patch name="Stereo Choir" hbank="0" lbank="3" prog="52" mode="4" />
+ <Patch name="Mellow Choir" hbank="0" lbank="32" prog="52" mode="4" />
+ <Patch name="Choir Strings" hbank="0" lbank="40" prog="52" mode="4" />
+ <Patch name="Voice Oohs" hbank="0" lbank="0" prog="53" mode="5" />
+ <Patch name="Synth Voice" hbank="0" lbank="0" prog="54" mode="5" />
+ <Patch name="Synth Voice 2" hbank="0" lbank="40" prog="54" mode="4" />
+ <Patch name="Choral" hbank="0" lbank="41" prog="54" mode="4" />
+ <Patch name="Analog Voice" hbank="0" lbank="64" prog="54" mode="4" />
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55" mode="5" />
+ <Patch name="Orchestra Hit 2" hbank="0" lbank="35" prog="55" mode="4" />
+ <Patch name="Impact" hbank="0" lbank="64" prog="55" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Saxophone (panel)">
+ <Patch name="Soprano Sax" hbank="0" lbank="112" prog="64" />
+ <Patch name="Alto Sax" hbank="0" lbank="112" prog="65" />
+ <Patch name="Tenor Sax" hbank="0" lbank="112" prog="66" />
+ <Patch name="Breathy Tenor" hbank="0" lbank="114" prog="66" />
+ <Patch name="Baritone Sax" hbank="0" lbank="112" prog="67" />
+ <Patch name="Oboe" hbank="0" lbank="112" prog="68" />
+ <Patch name="English Horn" hbank="0" lbank="112" prog="69" />
+ <Patch name="Bassoon" hbank="0" lbank="112" prog="70" />
+ <Patch name="Clarinet" hbank="0" lbank="112" prog="71" />
+ </PatchGroup>
+ <PatchGroup name="Trumpet (panel)">
+ <Patch name="Trumpet" hbank="0" lbank="112" prog="56" />
+ <Patch name="Trombone" hbank="0" lbank="112" prog="57" />
+ <Patch name="Trombone Section" hbank="0" lbank="113" prog="57" />
+ <Patch name="Tuba" hbank="0" lbank="112" prog="58" />
+ <Patch name="Muted Trumpet" hbank="0" lbank="112" prog="59" />
+ <Patch name="French Horn" hbank="0" lbank="112" prog="60" />
+ </PatchGroup>
+ <PatchGroup name="Brass (panel)">
+ <Patch name="Brass Section" hbank="0" lbank="112" prog="61" />
+ <Patch name="Big Band Brass" hbank="0" lbank="113" prog="61" />
+ <Patch name="Mellow Horns" hbank="0" lbank="119" prog="61" />
+ <Patch name="Synth Brass" hbank="0" lbank="112" prog="62" />
+ <Patch name="Jump Brass" hbank="0" lbank="113" prog="62" />
+ <Patch name="Techno Brass" hbank="0" lbank="114" prog="62" />
+ </PatchGroup>
+ <PatchGroup name="Brass (XG)">
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56" mode="5" />
+ <Patch name="Warm Trumpet" hbank="0" lbank="32" prog="56" mode="4" />
+ <Patch name="Trombone" hbank="0" lbank="0" prog="57" mode="5" />
+ <Patch name="Trombone 2" hbank="0" lbank="18" prog="57" mode="4" />
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58" mode="5" />
+ <Patch name="Muted Trumpet" hbank="0" lbank="0" prog="59" mode="5" />
+ <Patch name="French Horn" hbank="0" lbank="0" prog="60" mode="5" />
+ <Patch name="French Horn Solo" hbank="0" lbank="6" prog="60" mode="4" />
+ <Patch name="French Horn 2" hbank="0" lbank="32" prog="60" mode="4" />
+ <Patch name="Horn Orchestra" hbank="0" lbank="37" prog="60" mode="4" />
+ <Patch name="Brass Section" hbank="0" lbank="0" prog="61" mode="5" />
+ <Patch name="Trumpet &amp; Trombone Section" hbank="0" lbank="35" prog="61" mode="4" />
+ <Patch name="Synth Brass 1" hbank="0" lbank="0" prog="62" mode="5" />
+ <Patch name="Resonant Synth Brass" hbank="0" lbank="20" prog="62" mode="4" />
+ <Patch name="Synth Brass 2" hbank="0" lbank="0" prog="63" mode="5" />
+ <Patch name="Soft Brass" hbank="0" lbank="18" prog="63" mode="4" />
+ <Patch name="Choir Brass" hbank="0" lbank="41" prog="63" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Reed (XG)">
+ <Patch name="Soprano Sax" hbank="0" lbank="0" prog="64" mode="5" />
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65" mode="5" />
+ <Patch name="Sax Section" hbank="0" lbank="40" prog="65" mode="4" />
+ <Patch name="Tenor Sax" hbank="0" lbank="0" prog="66" mode="5" />
+ <Patch name="Breathy Tenor Sax" hbank="0" lbank="40" prog="66" mode="4" />
+ <Patch name="Baritone Sax" hbank="0" lbank="0" prog="67" mode="5" />
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68" mode="5" />
+ <Patch name="English Horn" hbank="0" lbank="0" prog="69" mode="5" />
+ <Patch name="Bassoon" hbank="0" lbank="0" prog="70" mode="5" />
+ <Patch name="Clarinet" hbank="0" lbank="0" prog="71" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Flute (panel)">
+ <Patch name="Piccolo" hbank="0" lbank="112" prog="72" />
+ <Patch name="Flute" hbank="0" lbank="112" prog="73" />
+ <Patch name="Recorder" hbank="0" lbank="112" prog="74" />
+ <Patch name="Pan Flute" hbank="0" lbank="112" prog="75" />
+ <Patch name="Ocarina" hbank="0" lbank="112" prog="79" />
+ </PatchGroup>
+ <PatchGroup name="Pipe (XG)">
+ <Patch name="Piccolo" hbank="0" lbank="0" prog="72" mode="5" />
+ <Patch name="Flute" hbank="0" lbank="0" prog="73" mode="5" />
+ <Patch name="Recorder" hbank="0" lbank="0" prog="74" mode="5" />
+ <Patch name="Pan Flute" hbank="0" lbank="0" prog="75" mode="5" />
+ <Patch name="Blown Bottle" hbank="0" lbank="0" prog="76" mode="5" />
+ <Patch name="Shakuhachi" hbank="0" lbank="0" prog="77" mode="5" />
+ <Patch name="Whistle" hbank="0" lbank="0" prog="78" mode="5" />
+ <Patch name="Ocarina" hbank="0" lbank="0" prog="79" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Synth Lead (panel)">
+ <Patch name="Square Lead" hbank="0" lbank="112" prog="80" />
+ <Patch name="Sawtooth Lead" hbank="0" lbank="112" prog="81" />
+ <Patch name="Analogon" hbank="0" lbank="115" prog="81" />
+ <Patch name="Fargo" hbank="0" lbank="119" prog="81" />
+ <Patch name="Voice Lead" hbank="0" lbank="112" prog="85" />
+ <Patch name="Star Dust" hbank="0" lbank="112" prog="98" />
+ <Patch name="Brightness" hbank="0" lbank="112" prog="100" />
+ </PatchGroup>
+ <PatchGroup name="Synth Lead (XG)">
+ <Patch name="Square Lead" hbank="0" lbank="0" prog="80" mode="5" />
+ <Patch name="Square Lead 2" hbank="0" lbank="6" prog="80" mode="4" />
+ <Patch name="LM Square" hbank="0" lbank="8" prog="80" mode="4" />
+ <Patch name="Hollow" hbank="0" lbank="18" prog="80" mode="4" />
+ <Patch name="Shroud" hbank="0" lbank="19" prog="80" mode="4" />
+ <Patch name="Mellow" hbank="0" lbank="64" prog="80" mode="4" />
+ <Patch name="Solo Sine" hbank="0" lbank="65" prog="80" mode="4" />
+ <Patch name="Sine Lead" hbank="0" lbank="66" prog="80" mode="4" />
+ <Patch name="Sawtooth Lead" hbank="0" lbank="0" prog="81" mode="5" />
+ <Patch name="Sawtooth Lead 2" hbank="0" lbank="6" prog="81" mode="4" />
+ <Patch name="Thick Sawtooth" hbank="0" lbank="8" prog="81" mode="4" />
+ <Patch name="Dynamic Sawtooth" hbank="0" lbank="18" prog="81" mode="4" />
+ <Patch name="Digital Sawtooth" hbank="0" lbank="19" prog="81" mode="4" />
+ <Patch name="Big Lead" hbank="0" lbank="20" prog="81" mode="4" />
+ <Patch name="Sequenced Analog" hbank="0" lbank="96" prog="81" mode="4" />
+ <Patch name="Calliope Lead" hbank="0" lbank="0" prog="82" mode="5" />
+ <Patch name="Pure Lead" hbank="0" lbank="65" prog="82" mode="4" />
+ <Patch name="Chiff Lead" hbank="0" lbank="0" prog="83" mode="5" />
+ <Patch name="Charang Lead" hbank="0" lbank="0" prog="84" mode="5" />
+ <Patch name="Distorted Lead" hbank="0" lbank="64" prog="84" mode="4" />
+ <Patch name="Voice Lead" hbank="0" lbank="0" prog="85" mode="5" />
+ <Patch name="Fifths Lead" hbank="0" lbank="0" prog="86" mode="5" />
+ <Patch name="Big Five" hbank="0" lbank="35" prog="86" mode="4" />
+ <Patch name="Bass &amp; Lead" hbank="0" lbank="0" prog="87" mode="5" />
+ <Patch name="Big &amp; Low" hbank="0" lbank="16" prog="87" mode="4" />
+ <Patch name="Fat &amp; Perky" hbank="0" lbank="64" prog="87" mode="4" />
+ <Patch name="Soft Whirl" hbank="0" lbank="65" prog="87" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Synth Pad (panel)">
+ <Patch name="Fantasia" hbank="0" lbank="112" prog="88" />
+ <Patch name="Dark Moon" hbank="0" lbank="113" prog="89" />
+ <Patch name="Xenon Pad" hbank="0" lbank="112" prog="91" />
+ <Patch name="Equinox" hbank="0" lbank="112" prog="94" />
+ <Patch name="Bell Pad" hbank="0" lbank="113" prog="100" />
+ </PatchGroup>
+ <PatchGroup name="Synth Pad (XG)">
+ <Patch name="New Age Pad" hbank="0" lbank="0" prog="88" mode="5" />
+ <Patch name="Fantasy" hbank="0" lbank="64" prog="88" mode="4" />
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89" mode="5" />
+ <Patch name="Poly Synth Pad" hbank="0" lbank="0" prog="90" mode="5" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91" mode="5" />
+ <Patch name="Itopia" hbank="0" lbank="66" prog="91" mode="4" />
+ <Patch name="Bowed Pad" hbank="0" lbank="0" prog="92" mode="5" />
+ <Patch name="Metallic Pad" hbank="0" lbank="0" prog="93" mode="5" />
+ <Patch name="Halo Pad" hbank="0" lbank="0" prog="94" mode="5" />
+ <Patch name="Sweep Pad" hbank="0" lbank="0" prog="95" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Synth Effects (XG)">
+ <Patch name="Rain" hbank="0" lbank="0" prog="96" mode="5" />
+ <Patch name="African Wind" hbank="0" lbank="65" prog="96" mode="4" />
+ <Patch name="Carib" hbank="0" lbank="66" prog="96" mode="4" />
+ <Patch name="Sound Track" hbank="0" lbank="0" prog="97" mode="5" />
+ <Patch name="Prologue" hbank="0" lbank="27" prog="97" mode="4" />
+ <Patch name="Crystal" hbank="0" lbank="0" prog="98" mode="5" />
+ <Patch name="Synth Drum Comp" hbank="0" lbank="12" prog="98" mode="4" />
+ <Patch name="Popcorn" hbank="0" lbank="14" prog="98" mode="4" />
+ <Patch name="Tiny Bells" hbank="0" lbank="18" prog="98" mode="4" />
+ <Patch name="Round Glockenspiel" hbank="0" lbank="35" prog="98" mode="4" />
+ <Patch name="Glockenspiel Chimes" hbank="0" lbank="40" prog="98" mode="4" />
+ <Patch name="Clear Bells" hbank="0" lbank="41" prog="98" mode="4" />
+ <Patch name="Chorus Bells" hbank="0" lbank="42" prog="98" mode="4" />
+ <Patch name="Soft Crystal" hbank="0" lbank="65" prog="98" mode="4" />
+ <Patch name="Air Bells" hbank="0" lbank="70" prog="98" mode="4" />
+ <Patch name="Bell Harp" hbank="0" lbank="71" prog="98" mode="4" />
+ <Patch name="Gamelimba" hbank="0" lbank="72" prog="98" mode="4" />
+ <Patch name="Atmosphere" hbank="0" lbank="0" prog="99" mode="5" />
+ <Patch name="Warm Atmosphere" hbank="0" lbank="18" prog="99" mode="4" />
+ <Patch name="Hollow Release" hbank="0" lbank="19" prog="99" mode="4" />
+ <Patch name="Nylon Electric Piano" hbank="0" lbank="40" prog="99" mode="4" />
+ <Patch name="Nylon Harp" hbank="0" lbank="64" prog="99" mode="4" />
+ <Patch name="Harp Vox" hbank="0" lbank="65" prog="99" mode="4" />
+ <Patch name="Atmosphere Pad" hbank="0" lbank="66" prog="99" mode="4" />
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100" mode="5" />
+ <Patch name="Goblins" hbank="0" lbank="0" prog="101" mode="5" />
+ <Patch name="Goblins Synth" hbank="0" lbank="64" prog="101" mode="4" />
+ <Patch name="Creeper" hbank="0" lbank="65" prog="101" mode="4" />
+ <Patch name="Ritual" hbank="0" lbank="67" prog="101" mode="4" />
+ <Patch name="To Heaven" hbank="0" lbank="68" prog="101" mode="4" />
+ <Patch name="Night" hbank="0" lbank="70" prog="101" mode="4" />
+ <Patch name="Glisten" hbank="0" lbank="71" prog="101" mode="4" />
+ <Patch name="Bell Choir" hbank="0" lbank="96" prog="101" mode="4" />
+ <Patch name="Echoes" hbank="0" lbank="0" prog="102" mode="5" />
+ <Patch name="Sci-Fi" hbank="0" lbank="0" prog="103" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="World (XG)">
+ <Patch name="Sitar" hbank="0" lbank="0" prog="104" mode="5" />
+ <Patch name="Detuned Sitar" hbank="0" lbank="32" prog="104" mode="4" />
+ <Patch name="Sitar 2" hbank="0" lbank="35" prog="104" mode="4" />
+ <Patch name="Tamboura" hbank="0" lbank="97" prog="104" mode="4" />
+ <Patch name="Banjo" hbank="0" lbank="0" prog="105" mode="5" />
+ <Patch name="Muted Banjo" hbank="0" lbank="28" prog="105" mode="4" />
+ <Patch name="Rabab" hbank="0" lbank="96" prog="105" mode="4" />
+ <Patch name="Gopichant" hbank="0" lbank="97" prog="105" mode="4" />
+ <Patch name="Oud" hbank="0" lbank="98" prog="105" mode="4" />
+ <Patch name="Shamisen" hbank="0" lbank="0" prog="106" mode="5" />
+ <Patch name="Koto" hbank="0" lbank="0" prog="107" mode="5" />
+ <Patch name="Taisho-kin" hbank="0" lbank="96" prog="107" mode="4" />
+ <Patch name="Kanoon" hbank="0" lbank="97" prog="107" mode="4" />
+ <Patch name="Kalimba" hbank="0" lbank="0" prog="108" mode="5" />
+ <Patch name="Bagpipe" hbank="0" lbank="0" prog="109" mode="5" />
+ <Patch name="Fiddle" hbank="0" lbank="0" prog="110" mode="5" />
+ <Patch name="Shanai" hbank="0" lbank="0" prog="111" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Percussion (panel)">
+ <Patch name="Celesta" hbank="0" lbank="112" prog="8" />
+ <Patch name="Music Box" hbank="0" lbank="112" prog="10" />
+ <Patch name="Vibraphone" hbank="0" lbank="112" prog="11" />
+ <Patch name="Marimba" hbank="0" lbank="112" prog="12" />
+ <Patch name="Xylophone" hbank="0" lbank="112" prog="13" />
+ <Patch name="Tubular Bells" hbank="0" lbank="112" prog="14" />
+ <Patch name="Timpani" hbank="0" lbank="112" prog="47" />
+ <Patch name="Steel Drums" hbank="0" lbank="112" prog="114" />
+ </PatchGroup>
+ <PatchGroup name="Chromatic (XG)">
+ <Patch name="Celesta" hbank="0" lbank="0" prog="8" mode="5" />
+ <Patch name="Glockenspiel" hbank="0" lbank="0" prog="9" mode="5" />
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10" mode="5" />
+ <Patch name="Orgel" hbank="0" lbank="64" prog="10" mode="4" />
+ <Patch name="Vibraphone" hbank="0" lbank="0" prog="11" mode="5" />
+ <Patch name="Vibraphone KSP" hbank="0" lbank="1" prog="11" mode="4" />
+ <Patch name="Marimba" hbank="0" lbank="0" prog="12" mode="5" />
+ <Patch name="Marimba KSP" hbank="0" lbank="1" prog="12" mode="4" />
+ <Patch name="Sine Marimba" hbank="0" lbank="64" prog="12" mode="4" />
+ <Patch name="Balimba" hbank="0" lbank="97" prog="12" mode="4" />
+ <Patch name="Log Drums" hbank="0" lbank="98" prog="12" mode="4" />
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="13" mode="5" />
+ <Patch name="Tubular Bells" hbank="0" lbank="0" prog="14" mode="5" />
+ <Patch name="Church Bells" hbank="0" lbank="96" prog="14" mode="4" />
+ <Patch name="Carillon" hbank="0" lbank="97" prog="14" mode="4" />
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15" mode="5" />
+ <Patch name="Dulcimer 2" hbank="0" lbank="35" prog="15" mode="4" />
+ <Patch name="Cimbalom" hbank="0" lbank="96" prog="15" mode="4" />
+ <Patch name="Santur" hbank="0" lbank="97" prog="15" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Percussive (XG)">
+ <Patch name="Tinkle Bell" hbank="0" lbank="0" prog="112" mode="5" />
+ <Patch name="Bonang" hbank="0" lbank="96" prog="112" mode="4" />
+ <Patch name="Altair" hbank="0" lbank="97" prog="112" mode="4" />
+ <Patch name="Gamelan Gongs" hbank="0" lbank="98" prog="112" mode="4" />
+ <Patch name="Stereo Gamelan Gongs" hbank="0" lbank="99" prog="112" mode="4" />
+ <Patch name="Rama Cymbal" hbank="0" lbank="100" prog="112" mode="4" />
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113" mode="5" />
+ <Patch name="Steel Drums" hbank="0" lbank="0" prog="114" mode="5" />
+ <Patch name="Glass Percussion" hbank="0" lbank="97" prog="114" mode="4" />
+ <Patch name="Thai Bells" hbank="0" lbank="98" prog="114" mode="4" />
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115" mode="5" />
+ <Patch name="Castanets" hbank="0" lbank="96" prog="115" mode="4" />
+ <Patch name="Taiko Drum" hbank="0" lbank="0" prog="116" mode="5" />
+ <Patch name="Gran Cassa" hbank="0" lbank="96" prog="116" mode="4" />
+ <Patch name="Melodic Tom" hbank="0" lbank="0" prog="117" mode="5" />
+ <Patch name="Melodic Tom 2" hbank="0" lbank="64" prog="117" mode="4" />
+ <Patch name="Real Tom" hbank="0" lbank="65" prog="117" mode="4" />
+ <Patch name="Rock Tom" hbank="0" lbank="66" prog="117" mode="4" />
+ <Patch name="Synth Drum" hbank="0" lbank="0" prog="118" mode="5" />
+ <Patch name="Analog Tom" hbank="0" lbank="64" prog="118" mode="4" />
+ <Patch name="Electronic Percussion" hbank="0" lbank="65" prog="118" mode="4" />
+ <Patch name="Reverse Cymbal" hbank="0" lbank="0" prog="119" mode="5" />
+ </PatchGroup>
+ <PatchGroup name="Sound Effects (XG)">
+ <Patch name="Fret Noise" hbank="0" lbank="0" prog="120" mode="5" />
+ <Patch name="Breath Noise" hbank="0" lbank="0" prog="121" mode="5" />
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122" mode="5" />
+ <Patch name="Bird Tweet" hbank="0" lbank="0" prog="123" mode="5" />
+ <Patch name="Telephone Ring" hbank="0" lbank="0" prog="124" mode="5" />
+ <Patch name="Helicopter" hbank="0" lbank="0" prog="125" mode="5" />
+ <Patch name="Applause" hbank="0" lbank="0" prog="126" mode="5" />
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127" mode="5" />
+ <Patch name="Cutting Noise" hbank="64" lbank="0" prog="0" mode="4" />
+ <Patch name="Cutting Noise 2" hbank="64" lbank="0" prog="1" mode="4" />
+ <Patch name="String Slap" hbank="64" lbank="0" prog="3" mode="4" />
+ <Patch name="Flute Key Click" hbank="64" lbank="0" prog="16" mode="4" />
+ <Patch name="Shower" hbank="64" lbank="0" prog="32" mode="4" />
+ <Patch name="Thunder" hbank="64" lbank="0" prog="33" mode="4" />
+ <Patch name="Wind" hbank="64" lbank="0" prog="34" mode="4" />
+ <Patch name="Steam" hbank="64" lbank="0" prog="35" mode="4" />
+ <Patch name="Bubble" hbank="64" lbank="0" prog="36" mode="4" />
+ <Patch name="Feed" hbank="64" lbank="0" prog="37" mode="4" />
+ <Patch name="Dog" hbank="64" lbank="0" prog="48" mode="4" />
+ <Patch name="Horse" hbank="64" lbank="0" prog="49" mode="4" />
+ <Patch name="Bird Tweet 2" hbank="64" lbank="0" prog="50" mode="4" />
+ <Patch name="Maou" hbank="64" lbank="0" prog="55" mode="4" />
+ <Patch name="Phone Call" hbank="64" lbank="0" prog="64" mode="4" />
+ <Patch name="Door Squeak" hbank="64" lbank="0" prog="65" mode="4" />
+ <Patch name="Door Slam" hbank="64" lbank="0" prog="66" mode="4" />
+ <Patch name="Scratch Cut" hbank="64" lbank="0" prog="67" mode="4" />
+ <Patch name="Scratch Split" hbank="64" lbank="0" prog="68" mode="4" />
+ <Patch name="Wind Chime" hbank="64" lbank="0" prog="69" mode="4" />
+ <Patch name="Telephone Ring 2" hbank="64" lbank="0" prog="70" mode="4" />
+ <Patch name="Car Engine Ignition" hbank="64" lbank="0" prog="80" mode="4" />
+ <Patch name="Car Tires Squeak" hbank="64" lbank="0" prog="81" mode="4" />
+ <Patch name="Car Passing" hbank="64" lbank="0" prog="82" mode="4" />
+ <Patch name="Car Crash" hbank="64" lbank="0" prog="83" mode="4" />
+ <Patch name="Siren" hbank="64" lbank="0" prog="84" mode="4" />
+ <Patch name="Train" hbank="64" lbank="0" prog="85" mode="4" />
+ <Patch name="Jet Plane" hbank="64" lbank="0" prog="86" mode="4" />
+ <Patch name="Starship" hbank="64" lbank="0" prog="87" mode="4" />
+ <Patch name="Burst" hbank="64" lbank="0" prog="88" mode="4" />
+ <Patch name="Roller Coaster" hbank="64" lbank="0" prog="89" mode="4" />
+ <Patch name="Submarine" hbank="64" lbank="0" prog="90" mode="4" />
+ <Patch name="Laugh" hbank="64" lbank="0" prog="96" mode="4" />
+ <Patch name="Scream" hbank="64" lbank="0" prog="97" mode="4" />
+ <Patch name="Punch" hbank="64" lbank="0" prog="98" mode="4" />
+ <Patch name="Heartbeat" hbank="64" lbank="0" prog="99" mode="4" />
+ <Patch name="Footsteps" hbank="64" lbank="0" prog="100" mode="4" />
+ <Patch name="Machine Gun" hbank="64" lbank="0" prog="112" mode="4" />
+ <Patch name="Laser Gun" hbank="64" lbank="0" prog="113" mode="4" />
+ <Patch name="Explosion" hbank="64" lbank="0" prog="114" mode="4" />
+ <Patch name="Firework" hbank="64" lbank="0" prog="115" mode="4" />
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard Kit 1" hbank="127" lbank="0" prog="0" mode="5"
+ drums="1" />
+ <Patch name="Standard Kit 2" hbank="127" lbank="0" prog="1" mode="4"
+ drums="1" />
+ <Patch name="Room Kit" hbank="127" lbank="0" prog="8" mode="4"
+ drums="1" />
+ <Patch name="Rock Kit" hbank="127" lbank="0" prog="16" mode="4"
+ drums="1" />
+ <Patch name="Electronic Kit" hbank="127" lbank="0" prog="24" mode="4"
+ drums="1" />
+ <Patch name="Analog Kit" hbank="127" lbank="0" prog="25" mode="4"
+ drums="1" />
+ <Patch name="Dance Kit" hbank="127" lbank="0" prog="27" mode="4"
+ drums="1" />
+ <Patch name="Jazz Kit" hbank="127" lbank="0" prog="32" mode="4"
+ drums="1" />
+ <Patch name="Brush Kit" hbank="127" lbank="0" prog="40" mode="4"
+ drums="1" />
+ <Patch name="Symphony Kit" hbank="127" lbank="0" prog="48" mode="4"
+ drums="1" />
+ </PatchGroup>
+ <PatchGroup name="SFX">
+ <Patch name="SFX Kit 1" hbank="126" lbank="0" prog="0" mode="4"
+ drums="1" />
+ <Patch name="SFX Kit 2" hbank="126" lbank="0" prog="1" mode="4"
+ drums="1" />
+ </PatchGroup>
+
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" init="100" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="ReleaseTime" type="Control" l="72" init="64"/>
+ <Controller name="AttackTime" type="Control" l="73" init="64"/>
+ <Controller name="Brightness" type="Control" l="74" init="64"/>
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="ReverbSendLevel" type="Control" l="91" init="0" />
+ <Controller name="ChorusSendLevel" type="Control" l="93" init="0" />
+
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+
+ </MidiInstrument>
+</muse>
diff --git a/muse_qt4_evolution/share/instruments/Yamaha-PSR530.idf b/muse_qt4_evolution/share/instruments/Yamaha-PSR530.idf
new file mode 100644
index 00000000..b413a143
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Yamaha-PSR530.idf
@@ -0,0 +1,759 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha PSR 530">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano(1-18)">
+ <Patch name="1: Grand Piano" hbank="0" lbank="112" prog="0"/>
+ <Patch name="2: BrightPiano" hbank="0" lbank="112" prog="1"/>
+ <Patch name="3: Honky Tonk" hbank="0" lbank="112" prog="3"/>
+ <Patch name="4: Midi Grand" hbank="0" lbank="112" prog="2"/>
+ <Patch name="5: CP 80" hbank="0" lbank="113" prog="2"/>
+ <Patch name="6: Galaxy EP" hbank="0" lbank="114" prog="4"/>
+ <Patch name="7: DX Modern" hbank="0" lbank="112" prog="5"/>
+ <Patch name="8: Funk EP" hbank="0" lbank="112" prog="4"/>
+ <Patch name="9: Modern EP" hbank="0" lbank="115" prog="5"/>
+ <Patch name="10: Hyper Tines" hbank="0" lbank="113" prog="5"/>
+ <Patch name="11: New Tines" hbank="0" lbank="116" prog="5"/>
+ <Patch name="12: Venus EP" hbank="0" lbank="114" prog="5"/>
+ <Patch name="13: Tremolo EP" hbank="0" lbank="113" prog="4"/>
+ <Patch name="14: Rock Piano" hbank="0" lbank="114" prog="2"/>
+ <Patch name="15: Clavi" hbank="0" lbank="112" prog="7"/>
+ <Patch name="16: Wah Clavi" hbank="0" lbank="113" prog="7"/>
+ <Patch name="17: Harpsichord" hbank="0" lbank="112" prog="6"/>
+ <Patch name="18: GrandHarpsi" hbank="0" lbank="113" prog="6"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Percussion(19-30)">
+ <Patch name="19: Vibraphone" hbank="0" lbank="112" prog="11"/>
+ <Patch name="20: Jazz Vibes" hbank="0" lbank="113" prog="11"/>
+ <Patch name="21: Marimba" hbank="0" lbank="112" prog="12"/>
+ <Patch name="22: Xylophone" hbank="0" lbank="112" prog="13"/>
+ <Patch name="23: Steel Drums" hbank="0" lbank="112" prog="114"/>
+ <Patch name="24: Celesta" hbank="0" lbank="112" prog="8"/>
+ <Patch name="25: Glocken" hbank="0" lbank="112" prog="9"/>
+ <Patch name="26: Music Box" hbank="0" lbank="112" prog="10"/>
+ <Patch name="27: TubularBells" hbank="0" lbank="112" prog="14"/>
+ <Patch name="28: Kalimba" hbank="0" lbank="112" prog="108"/>
+ <Patch name="29: Timpani" hbank="0" lbank="112" prog="47"/>
+ <Patch name="30: Dulcimer" hbank="0" lbank="112" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ(31-57)">
+ <Patch name="31: Jazz Organ1" hbank="0" lbank="112" prog="16"/>
+ <Patch name="32: Jazz Organ2" hbank="0" lbank="113" prog="16"/>
+ <Patch name="33: Click Organ" hbank="0" lbank="112" prog="17"/>
+ <Patch name="34: Dance Organ" hbank="0" lbank="113" prog="17"/>
+ <Patch name="35: Drawbar Org" hbank="0" lbank="115" prog="16"/>
+ <Patch name="36: Mellow Draw" hbank="0" lbank="115" prog="17"/>
+ <Patch name="37: Bright Draw" hbank="0" lbank="116" prog="16"/>
+ <Patch name="38: Rock Organ1" hbank="0" lbank="112" prog="18"/>
+ <Patch name="39: Rock Organ2" hbank="0" lbank="113" prog="18"/>
+ <Patch name="40: Purple Org" hbank="0" lbank="114" prog="18"/>
+ <Patch name="41: 60rs Organ" hbank="0" lbank="116" prog="17"/>
+ <Patch name="42: Blues Organ" hbank="0" lbank="117" prog="17"/>
+ <Patch name="43: 16+1 Organ" hbank="0" lbank="117" prog="16"/>
+ <Patch name="44: 16+2 Organ" hbank="0" lbank="118" prog="16"/>
+ <Patch name="45: 16+4 Organ" hbank="0" lbank="119" prog="16"/>
+ <Patch name="46: Elec.Organ" hbank="0" lbank="118" prog="17"/>
+ <Patch name="48: TheatreOrg2" hbank="0" lbank="114" prog="17"/>
+ <Patch name="49: Pipe Organ" hbank="0" lbank="112" prog="19"/>
+ <Patch name="50: ChapelOrgan" hbank="0" lbank="113" prog="19"/>
+ <Patch name="51: Reed Organ" hbank="0" lbank="112" prog="20"/>
+ <Patch name="52: Trad. Accrd" hbank="0" lbank="113" prog="21"/>
+ <Patch name="53: Musette" hbank="0" lbank="112" prog="21"/>
+ <Patch name="54: Tango Accrd" hbank="0" lbank="112" prog="23"/>
+ <Patch name="55: Bandoneon" hbank="0" lbank="113" prog="23"/>
+ <Patch name="56: Soft Accrd" hbank="0" lbank="114" prog="21"/>
+ <Patch name="57: Harmonica" hbank="0" lbank="112" prog="22"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar(58-73)">
+ <Patch name="58: Classic Gtr" hbank="0" lbank="112" prog="24"/>
+ <Patch name="59: Spanish Gtr" hbank="0" lbank="113" prog="24"/>
+ <Patch name="60: Folk Guitar" hbank="0" lbank="112" prog="25"/>
+ <Patch name="61: 12StrGuitar" hbank="0" lbank="113" prog="25"/>
+ <Patch name="62: Jazz Guitar" hbank="0" lbank="112" prog="26"/>
+ <Patch name="63: Octave Gtr" hbank="0" lbank="113" prog="26"/>
+ <Patch name="64: HawaiianGtr" hbank="0" lbank="114" prog="26"/>
+ <Patch name="65: CleanGuitar" hbank="0" lbank="112" prog="27"/>
+ <Patch name="66: Tremolo Gtr" hbank="0" lbank="113" prog="27"/>
+ <Patch name="67: Slap Guitar" hbank="0" lbank="114" prog="27"/>
+ <Patch name="68: Funk Guitar" hbank="0" lbank="113" prog="28"/>
+ <Patch name="69: MutedGuitar" hbank="0" lbank="112" prog="28"/>
+ <Patch name="70: FeedbackGtr" hbank="0" lbank="113" prog="29"/>
+ <Patch name="71: Overdrive" hbank="0" lbank="112" prog="29"/>
+ <Patch name="72: Distortion" hbank="0" lbank="112" prog="30"/>
+ <Patch name="73: PedalSteel" hbank="0" lbank="115" prog="27"/>
+ </PatchGroup>
+ <PatchGroup name="Bass(74-88)">
+ <Patch name="74: Aco.Bass" hbank="0" lbank="112" prog="32"/>
+ <Patch name="75: Bass&amp;Cymbal" hbank="0" lbank="114" prog="32"/>
+ <Patch name="76: FingerBass" hbank="0" lbank="112" prog="33"/>
+ <Patch name="77: Pick Bass" hbank="0" lbank="112" prog="34"/>
+ <Patch name="78: Fretless" hbank="0" lbank="112" prog="35"/>
+ <Patch name="79: Jaco Bass" hbank="0" lbank="113" prog="35"/>
+ <Patch name="80: Organ Bass" hbank="0" lbank="119" prog="17"/>
+ <Patch name="81: Slap Bass" hbank="0" lbank="112" prog="36"/>
+ <Patch name="82: Funk Bass" hbank="0" lbank="112" prog="37"/>
+ <Patch name="83: Fusion Bass" hbank="0" lbank="113" prog="36"/>
+ <Patch name="84: Synth Bass" hbank="0" lbank="112" prog="38"/>
+ <Patch name="85: Analog Bass" hbank="0" lbank="112" prog="39"/>
+ <Patch name="86: Dance Bass" hbank="0" lbank="113" prog="39"/>
+ <Patch name="87: Hi Q Bass" hbank="0" lbank="113" prog="38"/>
+ <Patch name="88: Rave Bass" hbank="0" lbank="114" prog="38"/>
+ </PatchGroup>
+ <PatchGroup name="Solo Strings(89-100)">
+ <Patch name="89: Solo Violin" hbank="0" lbank="112" prog="40"/>
+ <Patch name="90: Soft Violin" hbank="0" lbank="113" prog="40"/>
+ <Patch name="91: Fiddle" hbank="0" lbank="112" prog="110"/>
+ <Patch name="92: Viola" hbank="0" lbank="112" prog="41"/>
+ <Patch name="93: Cello" hbank="0" lbank="112" prog="42"/>
+ <Patch name="94: Contrabass" hbank="0" lbank="112" prog="43"/>
+ <Patch name="95: Harp" hbank="0" lbank="112" prog="46"/>
+ <Patch name="96: Hackbrett" hbank="0" lbank="113" prog="46"/>
+ <Patch name="97: Shamisen" hbank="0" lbank="112" prog="106"/>
+ <Patch name="98: Koto" hbank="0" lbank="112" prog="107"/>
+ <Patch name="99: Sitar" hbank="0" lbank="112" prog="104"/>
+ <Patch name="100: Banjo" hbank="0" lbank="112" prog="105"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble(101-118)">
+ <Patch name="101: Strings" hbank="0" lbank="112" prog="48"/>
+ <Patch name="102: OrchStrings" hbank="0" lbank="113" prog="48"/>
+ <Patch name="103: Symphon. Str" hbank="0" lbank="114" prog="48"/>
+ <Patch name="104: SlowStrings" hbank="0" lbank="113" prog="49"/>
+ <Patch name="105: Str.Quartet" hbank="0" lbank="114" prog="49"/>
+ <Patch name="106: ConcertoStr" hbank="0" lbank="115" prog="48"/>
+ <Patch name="107: MarcatoStrs" hbank="0" lbank="115" prog="49"/>
+ <Patch name="108: ChamberStrs" hbank="0" lbank="112" prog="49"/>
+ <Patch name="109: TremoloStrs" hbank="0" lbank="112" prog="44"/>
+ <Patch name="110: PizzStrings" hbank="0" lbank="112" prog="45"/>
+ <Patch name="111: Syn Strings" hbank="0" lbank="112" prog="50"/>
+ <Patch name="112: Analog Strs" hbank="0" lbank="112" prog="51"/>
+ <Patch name="113: Choir" hbank="0" lbank="112" prog="52"/>
+ <Patch name="114: Air Choir" hbank="0" lbank="112" prog="54"/>
+ <Patch name="115: Vocal Ensbl" hbank="0" lbank="113" prog="52"/>
+ <Patch name="116: Vox Humana" hbank="0" lbank="112" prog="53"/>
+ <Patch name="117: Gothic Vox" hbank="0" lbank="113" prog="53"/>
+ <Patch name="118: Orch.Hit" hbank="0" lbank="112" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Solo Brass(119-126)">
+ <Patch name="119: SoloTrumpet" hbank="0" lbank="112" prog="56"/>
+ <Patch name="120: SoftTrumpet" hbank="0" lbank="114" prog="56"/>
+ <Patch name="121: Flugel Horn" hbank="0" lbank="113" prog="56"/>
+ <Patch name="122: Muted Trp" hbank="0" lbank="112" prog="59"/>
+ <Patch name="123: Trombone" hbank="0" lbank="112" prog="57"/>
+ <Patch name="124: MelTrombone" hbank="0" lbank="114" prog="57"/>
+ <Patch name="125: French Horn" hbank="0" lbank="112" prog="60"/>
+ <Patch name="126: Tuba" hbank="0" lbank="112" prog="58"/>
+ </PatchGroup>
+ <PatchGroup name="Brass Ensemble(127-140)">
+ <Patch name="127: BigBandBrs" hbank="0" lbank="113" prog="61"/>
+ <Patch name="128: BrasSection" hbank="0" lbank="112" prog="61"/>
+ <Patch name="129: MellowBrass" hbank="0" lbank="116" prog="61"/>
+ <Patch name="130: Small Brass" hbank="0" lbank="117" prog="61"/>
+ <Patch name="131: Pop Brass" hbank="0" lbank="118" prog="61"/>
+ <Patch name="132: MellowHorns" hbank="0" lbank="119" prog="61"/>
+ <Patch name="133: BallroomBrs" hbank="0" lbank="113" prog="59"/>
+ <Patch name="134: Full Horns" hbank="0" lbank="114" prog="61"/>
+ <Patch name="135: High Brass" hbank="0" lbank="115" prog="61"/>
+ <Patch name="136: Trb.Section" hbank="0" lbank="113" prog="57"/>
+ <Patch name="137: Synth Brass" hbank="0" lbank="112" prog="62"/>
+ <Patch name="138: Analog Brs" hbank="0" lbank="112" prog="63"/>
+ <Patch name="139: Jump Brass" hbank="0" lbank="113" prog="62"/>
+ <Patch name="140: TechnoBrass" hbank="0" lbank="114" prog="62"/>
+ </PatchGroup>
+ <PatchGroup name="Reed(141-155)">
+ <Patch name="141: Soprano Sax" hbank="0" lbank="112" prog="64"/>
+ <Patch name="142: Alto Sax" hbank="0" lbank="112" prog="65"/>
+ <Patch name="143: BreathyAlto" hbank="0" lbank="113" prog="65"/>
+ <Patch name="144: Tenor Sax" hbank="0" lbank="112" prog="66"/>
+ <Patch name="145: BreathTenor" hbank="0" lbank="114" prog="66"/>
+ <Patch name="146: BaritoneSax" hbank="0" lbank="112" prog="67"/>
+ <Patch name="147: Sax Section" hbank="0" lbank="116" prog="66"/>
+ <Patch name="148: Clarinet" hbank="0" lbank="112" prog="71"/>
+ <Patch name="149: MelClarinet" hbank="0" lbank="113" prog="71"/>
+ <Patch name="150: WoodwindEns" hbank="0" lbank="113" prog="66"/>
+ <Patch name="151: Brass Combo" hbank="0" lbank="115" prog="66"/>
+ <Patch name="152: Oboe" hbank="0" lbank="112" prog="68"/>
+ <Patch name="153: EnglishHorn" hbank="0" lbank="112" prog="69"/>
+ <Patch name="154: Bassoon" hbank="0" lbank="112" prog="70"/>
+ <Patch name="155: Bagpipe" hbank="0" lbank="112" prog="109"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe(156-163)">
+ <Patch name="156: Flute" hbank="0" lbank="112" prog="73"/>
+ <Patch name="157: Pan Flute" hbank="0" lbank="112" prog="75"/>
+ <Patch name="158: Piccolo" hbank="0" lbank="112" prog="72"/>
+ <Patch name="159: EthnicFlute" hbank="0" lbank="113" prog="73"/>
+ <Patch name="160: Shakuhachi" hbank="0" lbank="112" prog="77"/>
+ <Patch name="161: Whistle" hbank="0" lbank="112" prog="78"/>
+ <Patch name="162: Recorder" hbank="0" lbank="112" prog="74"/>
+ <Patch name="163: Ocarina" hbank="0" lbank="112" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead(164-181)">
+ <Patch name="164: Square Lead" hbank="0" lbank="112" prog="80"/>
+ <Patch name="165: Saw.Lead" hbank="0" lbank="112" prog="81"/>
+ <Patch name="166: Big Lead" hbank="0" lbank="113" prog="81"/>
+ <Patch name="167: Stardust" hbank="0" lbank="112" prog="98"/>
+ <Patch name="168: Blaster" hbank="0" lbank="114" prog="81"/>
+ <Patch name="169: Analogon" hbank="0" lbank="115" prog="81"/>
+ <Patch name="170: Vintage Ld" hbank="0" lbank="113" prog="80"/>
+ <Patch name="171: Sun Bell" hbank="0" lbank="113" prog="98"/>
+ <Patch name="172: Aero Lead" hbank="0" lbank="112" prog="83"/>
+ <Patch name="173: Fire Wire" hbank="0" lbank="116" prog="81"/>
+ <Patch name="174: Mini Lead" hbank="0" lbank="114" prog="80"/>
+ <Patch name="175: Vinylead" hbank="0" lbank="115" prog="80"/>
+ <Patch name="176: Warp" hbank="0" lbank="117" prog="81"/>
+ <Patch name="177: Hi Bias" hbank="0" lbank="116" prog="80"/>
+ <Patch name="178: Meta Wood" hbank="0" lbank="117" prog="80"/>
+ <Patch name="179: Tiny Lead" hbank="0" lbank="118" prog="80"/>
+ <Patch name="180: Sub Aqua" hbank="0" lbank="118" prog="81"/>
+ <Patch name="181: Fargo" hbank="0" lbank="119" prog="81"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad(182-200)">
+ <Patch name="182: Insomnia" hbank="0" lbank="113" prog="94"/>
+ <Patch name="183: Krypton" hbank="0" lbank="112" prog="90"/>
+ <Patch name="184: Cyber Pad" hbank="0" lbank="113" prog="99"/>
+ <Patch name="185: Wave 2001" hbank="0" lbank="112" prog="95"/>
+ <Patch name="186: Equinox" hbank="0" lbank="112" prog="94"/>
+ <Patch name="187: Stargate" hbank="0" lbank="114" prog="88"/>
+ <Patch name="188: DX Pad" hbank="0" lbank="112" prog="92"/>
+ <Patch name="189: Loch Ness" hbank="0" lbank="112" prog="93"/>
+ <Patch name="190: Fantasia" hbank="0" lbank="112" prog="88"/>
+ <Patch name="191: Golden Age" hbank="0" lbank="115" prog="88"/>
+ <Patch name="192: Xenon Pad" hbank="0" lbank="112" prog="91"/>
+ <Patch name="193: Area 51" hbank="0" lbank="112" prog="89"/>
+ <Patch name="194: Atmosphere" hbank="0" lbank="112" prog="99"/>
+ <Patch name="195: Dark Moon" hbank="0" lbank="113" prog="89"/>
+ <Patch name="196: Ionosphere" hbank="0" lbank="115" prog="94"/>
+ <Patch name="197: Phase IV" hbank="0" lbank="113" prog="93"/>
+ <Patch name="198: Symbiont" hbank="0" lbank="113" prog="88"/>
+ <Patch name="199: Solaris" hbank="0" lbank="114" prog="94"/>
+ <Patch name="200: Transform" hbank="0" lbank="113" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Drum Kits(201-212)">
+ <Patch name="201: Std.Kit1" hbank="127" lbank="0" prog="0"/>
+ <Patch name="202: Std.Kit2" hbank="127" lbank="0" prog="1"/>
+ <Patch name="203: Room Kit" hbank="127" lbank="0" prog="8"/>
+ <Patch name="204: Rock Kit" hbank="127" lbank="0" prog="16"/>
+ <Patch name="205: Electro Kit" hbank="127" lbank="0" prog="24"/>
+ <Patch name="206: Analog Kit" hbank="127" lbank="0" prog="25"/>
+ <Patch name="207: Dance Kit" hbank="127" lbank="0" prog="27"/>
+ <Patch name="208: Jazz Kit" hbank="127" lbank="0" prog="32"/>
+ <Patch name="209: Brush Kit" hbank="127" lbank="0" prog="40"/>
+ <Patch name="210: Classic Kit" hbank="127" lbank="0" prog="48"/>
+ <Patch name="211: SFX Kit1" hbank="126" lbank="0" prog="0"/>
+ <Patch name="212: SFX Kit2" hbank="126" lbank="0" prog="1"/>
+ </PatchGroup>
+ <PatchGroup name="XG Pianos(213-251)">
+ <Patch name="213: GrandPno" hbank="0" lbank="0" prog="0"/>
+ <Patch name="214: GrndPnoK" hbank="0" lbank="1" prog="0"/>
+ <Patch name="215: MelloGrP" hbank="0" lbank="18" prog="0"/>
+ <Patch name="216: PianoStr" hbank="0" lbank="40" prog="0"/>
+ <Patch name="217: Dream" hbank="0" lbank="41" prog="0"/>
+ <Patch name="218: BritePno" hbank="0" lbank="0" prog="1"/>
+ <Patch name="219: BritPnoK" hbank="0" lbank="1" prog="1"/>
+ <Patch name="220: E.Grand" hbank="0" lbank="0" prog="2"/>
+ <Patch name="221: ElGrPnoK" hbank="0" lbank="1" prog="2"/>
+ <Patch name="222: Det.CP80" hbank="0" lbank="32" prog="2"/>
+ <Patch name="223: ElGrPno1" hbank="0" lbank="40" prog="2"/>
+ <Patch name="224: ElGrPno2" hbank="0" lbank="41" prog="2"/>
+ <Patch name="225: HnkyTonk" hbank="0" lbank="0" prog="3"/>
+ <Patch name="226: HnkyTnkK" hbank="0" lbank="1" prog="3"/>
+ <Patch name="227: E.Piano1" hbank="0" lbank="0" prog="4"/>
+ <Patch name="228: El.Pno1K" hbank="0" lbank="1" prog="4"/>
+ <Patch name="229: MelloEP1" hbank="0" lbank="18" prog="4"/>
+ <Patch name="230: Chor.EP1" hbank="0" lbank="32" prog="4"/>
+ <Patch name="231: HardEl.P" hbank="0" lbank="40" prog="4"/>
+ <Patch name="232: VX El.P1" hbank="0" lbank="45" prog="4"/>
+ <Patch name="233: 60sEl.P" hbank="0" lbank="64" prog="4"/>
+ <Patch name="234: E.Piano2" hbank="0" lbank="0" prog="5"/>
+ <Patch name="235: El.Pno2K" hbank="0" lbank="1" prog="5"/>
+ <Patch name="236: Chor.EP2" hbank="0" lbank="32" prog="5"/>
+ <Patch name="237: DX Hard" hbank="0" lbank="33" prog="5"/>
+ <Patch name="238: DXLegend" hbank="0" lbank="34" prog="5"/>
+ <Patch name="239: DX Phase" hbank="0" lbank="40" prog="5"/>
+ <Patch name="240: DX+Analg" hbank="0" lbank="41" prog="5"/>
+ <Patch name="241: DXKotoEP" hbank="0" lbank="42" prog="5"/>
+ <Patch name="242: VX El.P2" hbank="0" lbank="45" prog="5"/>
+ <Patch name="243: Harpsi." hbank="0" lbank="0" prog="6"/>
+ <Patch name="244: Harpsi.K" hbank="0" lbank="1" prog="6"/>
+ <Patch name="245: Harpsi.2" hbank="0" lbank="25" prog="6"/>
+ <Patch name="246: Harpsi.3" hbank="0" lbank="35" prog="6"/>
+ <Patch name="247: Clavi." hbank="0" lbank="0" prog="7"/>
+ <Patch name="248: Clavi. K" hbank="0" lbank="1" prog="7"/>
+ <Patch name="249: ClaviWah" hbank="0" lbank="27" prog="7"/>
+ <Patch name="250: PulseClv" hbank="0" lbank="64" prog="7"/>
+ <Patch name="251: PierceCl" hbank="0" lbank="65" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Percussion(252-271)">
+ <Patch name="252: Celesta" hbank="0" lbank="0" prog="8"/>
+ <Patch name="253: Glocken" hbank="0" lbank="0" prog="9"/>
+ <Patch name="254: MusicBox" hbank="0" lbank="0" prog="10"/>
+ <Patch name="255: Orgel" hbank="0" lbank="64" prog="10"/>
+ <Patch name="256: Vibes" hbank="0" lbank="0" prog="11"/>
+ <Patch name="257: VibesK" hbank="0" lbank="1" prog="11"/>
+ <Patch name="258: HardVibe" hbank="0" lbank="45" prog="11"/>
+ <Patch name="259: Marimba" hbank="0" lbank="0" prog="12"/>
+ <Patch name="260: MarimbaK" hbank="0" lbank="1" prog="12"/>
+ <Patch name="261: SineMrmb" hbank="0" lbank="64" prog="12"/>
+ <Patch name="262: Balafon2" hbank="0" lbank="97" prog="12"/>
+ <Patch name="263: Log Drum" hbank="0" lbank="98" prog="12"/>
+ <Patch name="264: Xylophon" hbank="0" lbank="0" prog="13"/>
+ <Patch name="265: TubulBel" hbank="0" lbank="0" prog="14"/>
+ <Patch name="266: ChrchBel" hbank="0" lbank="96" prog="14"/>
+ <Patch name="267: Carillon" hbank="0" lbank="97" prog="14"/>
+ <Patch name="268: Dulcimer" hbank="0" lbank="0" prog="15"/>
+ <Patch name="269: Dulcimr2" hbank="0" lbank="35" prog="15"/>
+ <Patch name="270: Cimbalom" hbank="0" lbank="96" prog="15"/>
+ <Patch name="271: Santur" hbank="0" lbank="97" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ(272-307)">
+ <Patch name="272: DrawOrgn" hbank="0" lbank="0" prog="16"/>
+ <Patch name="274: 60sDrOr1" hbank="0" lbank="33" prog="16"/>
+ <Patch name="275: 60sDrOr2" hbank="0" lbank="34" prog="16"/>
+ <Patch name="276: 70sDrOr1" hbank="0" lbank="35" prog="16"/>
+ <Patch name="277: DrawOrg2" hbank="0" lbank="36" prog="16"/>
+ <Patch name="278: 60sDrOr3" hbank="0" lbank="37" prog="16"/>
+ <Patch name="279: EvenBar" hbank="0" lbank="38" prog="16"/>
+ <Patch name="280: 16+2B2/3" hbank="0" lbank="40" prog="16"/>
+ <Patch name="281: Organ Ba" hbank="0" lbank="64" prog="16"/>
+ <Patch name="282: 70sDrOr2" hbank="0" lbank="65" prog="16"/>
+ <Patch name="283: CheezOrg" hbank="0" lbank="66" prog="16"/>
+ <Patch name="284: DrawOrg3" hbank="0" lbank="67" prog="16"/>
+ <Patch name="285: PercOrgn" hbank="0" lbank="0" prog="17"/>
+ <Patch name="286: 70sPcOr1" hbank="0" lbank="24" prog="17"/>
+ <Patch name="287: DetPrcOr" hbank="0" lbank="32" prog="17"/>
+ <Patch name="288: LiteOrg" hbank="0" lbank="33" prog="17"/>
+ <Patch name="289: PercOrg2" hbank="0" lbank="37" prog="17"/>
+ <Patch name="290: RockOrgn" hbank="0" lbank="0" prog="18"/>
+ <Patch name="291: RotaryOr" hbank="0" lbank="64" prog="18"/>
+ <Patch name="292: SloRotar" hbank="0" lbank="65" prog="18"/>
+ <Patch name="293: FstRotar" hbank="0" lbank="66" prog="18"/>
+ <Patch name="294: ChrchOrg" hbank="0" lbank="0" prog="19"/>
+ <Patch name="295: ChurOrg3" hbank="0" lbank="32" prog="19"/>
+ <Patch name="296: ChurOrg2" hbank="0" lbank="35" prog="19"/>
+ <Patch name="297: NotreDam" hbank="0" lbank="40" prog="19"/>
+ <Patch name="298: OrgFlute" hbank="0" lbank="64" prog="19"/>
+ <Patch name="299: TrmOrgFl" hbank="0" lbank="65" prog="19"/>
+ <Patch name="300: ReedOrgn" hbank="0" lbank="0" prog="20"/>
+ <Patch name="301: Puff Org" hbank="0" lbank="40" prog="20"/>
+ <Patch name="302: Acordion" hbank="0" lbank="0" prog="21"/>
+ <Patch name="303: AccordIt" hbank="0" lbank="32" prog="21"/>
+ <Patch name="304: Harmnica" hbank="0" lbank="0" prog="22"/>
+ <Patch name="305: Harmo 2" hbank="0" lbank="32" prog="22"/>
+ <Patch name="306: TangoAcd" hbank="0" lbank="0" prog="23"/>
+ <Patch name="307: TngoAcd2" hbank="0" lbank="64" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar(308-336)">
+ <Patch name="308: NylonGtr" hbank="0" lbank="0" prog="24"/>
+ <Patch name="309: NylonGt2" hbank="0" lbank="16" prog="24"/>
+ <Patch name="310: NylonGt3" hbank="0" lbank="25" prog="24"/>
+ <Patch name="311: VelGtHrm" hbank="0" lbank="43" prog="24"/>
+ <Patch name="312: Ukulele" hbank="0" lbank="96" prog="24"/>
+ <Patch name="313: SteelGtr" hbank="0" lbank="0" prog="25"/>
+ <Patch name="314: SteelGt2" hbank="0" lbank="16" prog="25"/>
+ <Patch name="315: 12StrGtr" hbank="0" lbank="35" prog="25"/>
+ <Patch name="316: Nyln&amp;Stl" hbank="0" lbank="40" prog="25"/>
+ <Patch name="317: Stl&amp;Body" hbank="0" lbank="41" prog="25"/>
+ <Patch name="318: Mandolin" hbank="0" lbank="96" prog="25"/>
+ <Patch name="319: Jazz Gtr" hbank="0" lbank="0" prog="26"/>
+ <Patch name="320: MelloGtr" hbank="0" lbank="18" prog="26"/>
+ <Patch name="321: JazzAmp" hbank="0" lbank="32" prog="26"/>
+ <Patch name="322: CleanGtr" hbank="0" lbank="0" prog="27"/>
+ <Patch name="323: ChorusGt" hbank="0" lbank="32" prog="27"/>
+ <Patch name="324: Mute.Gtr" hbank="0" lbank="0" prog="28"/>
+ <Patch name="325: FunkGtr1" hbank="0" lbank="40" prog="28"/>
+ <Patch name="326: MuteStlG" hbank="0" lbank="41" prog="28"/>
+ <Patch name="327: FunkGtr2" hbank="0" lbank="43" prog="28"/>
+ <Patch name="328: Jazz Man" hbank="0" lbank="45" prog="28"/>
+ <Patch name="329: Ovrdrive" hbank="0" lbank="0" prog="29"/>
+ <Patch name="330: Gt.Pinch" hbank="0" lbank="43" prog="29"/>
+ <Patch name="331: Dist.Gtr" hbank="0" lbank="0" prog="30"/>
+ <Patch name="332: FeedbkGt" hbank="0" lbank="40" prog="30"/>
+ <Patch name="333: FeedbGt2" hbank="0" lbank="41" prog="30"/>
+ <Patch name="334: GtrHarmo" hbank="0" lbank="0" prog="31"/>
+ <Patch name="336: GtrHrmo2" hbank="0" lbank="66" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass(337-378)">
+ <Patch name="337: Aco.Bass" hbank="0" lbank="0" prog="32"/>
+ <Patch name="338: JazzRthm" hbank="0" lbank="40" prog="32"/>
+ <Patch name="339: VXUprght" hbank="0" lbank="45" prog="32"/>
+ <Patch name="340: FngrBass" hbank="0" lbank="0" prog="33"/>
+ <Patch name="341: FingrDrk" hbank="0" lbank="18" prog="33"/>
+ <Patch name="342: FlangeBa" hbank="0" lbank="27" prog="33"/>
+ <Patch name="343: Ba&amp;DstEG" hbank="0" lbank="40" prog="33"/>
+ <Patch name="344: FngrSlap" hbank="0" lbank="43" prog="33"/>
+ <Patch name="345: FngBass2" hbank="0" lbank="45" prog="33"/>
+ <Patch name="346: ModAlem" hbank="0" lbank="65" prog="33"/>
+ <Patch name="347: PickBass" hbank="0" lbank="0" prog="34"/>
+ <Patch name="348: MutePkBa" hbank="0" lbank="28" prog="34"/>
+ <Patch name="349: Fretless" hbank="0" lbank="0" prog="35"/>
+ <Patch name="350: Fretles2" hbank="0" lbank="32" prog="35"/>
+ <Patch name="351: Fretles3" hbank="0" lbank="33" prog="35"/>
+ <Patch name="352: Fretles4" hbank="0" lbank="34" prog="35"/>
+ <Patch name="353: SynFretl" hbank="0" lbank="96" prog="35"/>
+ <Patch name="354: Smooth" hbank="0" lbank="97" prog="35"/>
+ <Patch name="355: SlapBas1" hbank="0" lbank="0" prog="36"/>
+ <Patch name="356: ResoSlap" hbank="0" lbank="27" prog="36"/>
+ <Patch name="357: PunchThm" hbank="0" lbank="32" prog="36"/>
+ <Patch name="358: SlapBas2" hbank="0" lbank="0" prog="37"/>
+ <Patch name="359: VeloSlap" hbank="0" lbank="43" prog="37"/>
+ <Patch name="360: SynBass1" hbank="0" lbank="0" prog="38"/>
+ <Patch name="361: SynBa1Dk" hbank="0" lbank="18" prog="38"/>
+ <Patch name="362: FastResB" hbank="0" lbank="20" prog="38"/>
+ <Patch name="363: AcidBass" hbank="0" lbank="24" prog="38"/>
+ <Patch name="364: Clv Bass" hbank="0" lbank="35" prog="38"/>
+ <Patch name="365: TeknoBa" hbank="0" lbank="40" prog="38"/>
+ <Patch name="366: Oscar" hbank="0" lbank="64" prog="38"/>
+ <Patch name="367: SqrBass" hbank="0" lbank="65" prog="38"/>
+ <Patch name="368: RubberBa" hbank="0" lbank="66" prog="38"/>
+ <Patch name="369: Hammer" hbank="0" lbank="96" prog="38"/>
+ <Patch name="370: SynBass2" hbank="0" lbank="0" prog="39"/>
+ <Patch name="371: MelloSB1" hbank="0" lbank="6" prog="39"/>
+ <Patch name="372: Seq Bass" hbank="0" lbank="12" prog="39"/>
+ <Patch name="373: ClkSynBa" hbank="0" lbank="18" prog="39"/>
+ <Patch name="374: SynBa2Dk" hbank="0" lbank="19" prog="39"/>
+ <Patch name="375: SmthBa 2" hbank="0" lbank="32" prog="39"/>
+ <Patch name="376: ModulrBa" hbank="0" lbank="40" prog="39"/>
+ <Patch name="377: DX Bass" hbank="0" lbank="41" prog="39"/>
+ <Patch name="378: X WireBa" hbank="0" lbank="64" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings(379-390)">
+ <Patch name="379: Violin" hbank="0" lbank="0" prog="40"/>
+ <Patch name="380: SlowVln" hbank="0" lbank="8" prog="40"/>
+ <Patch name="381: Viola" hbank="0" lbank="0" prog="41"/>
+ <Patch name="382: Cello" hbank="0" lbank="0" prog="42"/>
+ <Patch name="383: Contrabs" hbank="0" lbank="0" prog="43"/>
+ <Patch name="384: Trem.Str" hbank="0" lbank="0" prog="44"/>
+ <Patch name="385: SlowTrStr" hbank="0" lbank="8" prog="44"/>
+ <Patch name="386: Susp Str" hbank="0" lbank="40" prog="44"/>
+ <Patch name="387: Pizz.Str" hbank="0" lbank="0" prog="45"/>
+ <Patch name="388: Harp" hbank="0" lbank="0" prog="46"/>
+ <Patch name="389: YangChin" hbank="0" lbank="40" prog="46"/>
+ <Patch name="390: Timpani" hbank="0" lbank="0" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble(391-424)">
+ <Patch name="391: Strings1" hbank="0" lbank="0" prog="48"/>
+ <Patch name="392: S.Strngs" hbank="0" lbank="3" prog="48"/>
+ <Patch name="393: SlowStr" hbank="0" lbank="8" prog="48"/>
+ <Patch name="394: ArcoStr" hbank="0" lbank="24" prog="48"/>
+ <Patch name="395: 60sStrng" hbank="0" lbank="35" prog="48"/>
+ <Patch name="396: Orchestr" hbank="0" lbank="40" prog="48"/>
+ <Patch name="397: Orchstr2" hbank="0" lbank="41" prog="48"/>
+ <Patch name="398: TremOrch" hbank="0" lbank="42" prog="48"/>
+ <Patch name="399: VeloStr" hbank="0" lbank="45" prog="48"/>
+ <Patch name="400: Strings2" hbank="0" lbank="0" prog="49"/>
+ <Patch name="401: S.SlwStr" hbank="0" lbank="3" prog="49"/>
+ <Patch name="402: LegatoSt" hbank="0" lbank="8" prog="49"/>
+ <Patch name="403: Warm Str" hbank="0" lbank="40" prog="49"/>
+ <Patch name="404: Kingdom" hbank="0" lbank="41" prog="49"/>
+ <Patch name="405: 70s Str" hbank="0" lbank="64" prog="49"/>
+ <Patch name="406: Str Ens3" hbank="0" lbank="65" prog="49"/>
+ <Patch name="407: Syn.Str1" hbank="0" lbank="0" prog="50"/>
+ <Patch name="408: ResoStr" hbank="0" lbank="27" prog="50"/>
+ <Patch name="409: Syn Str4" hbank="0" lbank="64" prog="50"/>
+ <Patch name="410: SS Str" hbank="0" lbank="65" prog="50"/>
+ <Patch name="411: Syn.Str2" hbank="0" lbank="0" prog="51"/>
+ <Patch name="412: ChoirAah" hbank="0" lbank="0" prog="52"/>
+ <Patch name="413: S.Choir" hbank="0" lbank="3" prog="52"/>
+ <Patch name="414: Ch.Aahs2" hbank="0" lbank="16" prog="52"/>
+ <Patch name="415: MelChoir" hbank="0" lbank="32" prog="52"/>
+ <Patch name="416: ChoirStr" hbank="0" lbank="40" prog="52"/>
+ <Patch name="417: VoiceOoh" hbank="0" lbank="0" prog="53"/>
+ <Patch name="418: SynVoice" hbank="0" lbank="0" prog="54"/>
+ <Patch name="419: SynVox2" hbank="0" lbank="40" prog="54"/>
+ <Patch name="420: Choral" hbank="0" lbank="41" prog="54"/>
+ <Patch name="421: AnaVoice" hbank="0" lbank="64" prog="54"/>
+ <Patch name="422: Orch.Hit" hbank="0" lbank="0" prog="55"/>
+ <Patch name="423: OrchHit2" hbank="0" lbank="35" prog="55"/>
+ <Patch name="424: Impact" hbank="0" lbank="64" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass(425-469)">
+ <Patch name="425: Trumpet" hbank="0" lbank="0" prog="56"/>
+ <Patch name="426: Trumpet2" hbank="0" lbank="16" prog="56"/>
+ <Patch name="427: BriteTrp" hbank="0" lbank="17" prog="56"/>
+ <Patch name="428: WarmTrp" hbank="0" lbank="32" prog="56"/>
+ <Patch name="429: Trombone" hbank="0" lbank="0" prog="57"/>
+ <Patch name="430: Trmbone2" hbank="0" lbank="18" prog="57"/>
+ <Patch name="431: Tuba" hbank="0" lbank="0" prog="58"/>
+ <Patch name="432: Tuba 2" hbank="0" lbank="16" prog="58"/>
+ <Patch name="433: Mute.Trp" hbank="0" lbank="0" prog="59"/>
+ <Patch name="434: Fr.Horn" hbank="0" lbank="0" prog="60"/>
+ <Patch name="435: FrHrSolo" hbank="0" lbank="6" prog="60"/>
+ <Patch name="436: FrHorn2" hbank="0" lbank="32" prog="60"/>
+ <Patch name="437: HornOrch" hbank="0" lbank="37" prog="60"/>
+ <Patch name="438: BrasSect" hbank="0" lbank="0" prog="61"/>
+ <Patch name="439: Tp&amp;TbSec" hbank="0" lbank="35" prog="61"/>
+ <Patch name="440: BrssSec2" hbank="0" lbank="40" prog="61"/>
+ <Patch name="441: HiBrass" hbank="0" lbank="41" prog="61"/>
+ <Patch name="442: MelloBrs" hbank="0" lbank="42" prog="61"/>
+ <Patch name="443: SynBras1" hbank="0" lbank="0" prog="62"/>
+ <Patch name="444: QuackBr" hbank="0" lbank="12" prog="62"/>
+ <Patch name="445: RezSynBr" hbank="0" lbank="20" prog="62"/>
+ <Patch name="446: PolyBrss" hbank="0" lbank="24" prog="62"/>
+ <Patch name="447: SynBras3" hbank="0" lbank="27" prog="62"/>
+ <Patch name="448: JumpBrss" hbank="0" lbank="32" prog="62"/>
+ <Patch name="449: AnaVelBr" hbank="0" lbank="45" prog="62"/>
+ <Patch name="450: AnaBrss1" hbank="0" lbank="64" prog="62"/>
+ <Patch name="451: SynBras2" hbank="0" lbank="0" prog="63"/>
+ <Patch name="452: Soft Brs" hbank="0" lbank="18" prog="63"/>
+ <Patch name="453: SynBrss4" hbank="0" lbank="40" prog="63"/>
+ <Patch name="454: ChoirBrs" hbank="0" lbank="41" prog="63"/>
+ <Patch name="455: VelBrss2" hbank="0" lbank="45" prog="63"/>
+ <Patch name="456: AnaBrss2" hbank="0" lbank="64" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed(457-469)">
+ <Patch name="457: SprnoSax" hbank="0" lbank="0" prog="64"/>
+ <Patch name="458: Alto Sax" hbank="0" lbank="0" prog="65"/>
+ <Patch name="459: Sax Sect" hbank="0" lbank="40" prog="65"/>
+ <Patch name="460: HyprAlto" hbank="0" lbank="43" prog="65"/>
+ <Patch name="461: TenorSax" hbank="0" lbank="0" prog="66"/>
+ <Patch name="462: BrthTnSx" hbank="0" lbank="40" prog="66"/>
+ <Patch name="463: SoftTenr" hbank="0" lbank="41" prog="66"/>
+ <Patch name="464: TnrSax 2" hbank="0" lbank="64" prog="66"/>
+ <Patch name="465: Bari.Sax" hbank="0" lbank="0" prog="67"/>
+ <Patch name="466: Oboe" hbank="0" lbank="0" prog="68"/>
+ <Patch name="467: Eng.Horn" hbank="0" lbank="0" prog="69"/>
+ <Patch name="468: Bassoon" hbank="0" lbank="0" prog="70"/>
+ <Patch name="469: Clarinet" hbank="0" lbank="0" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe(470-477)">
+ <Patch name="470: Piccolo" hbank="0" lbank="0" prog="72"/>
+ <Patch name="471: Flute" hbank="0" lbank="0" prog="73"/>
+ <Patch name="472: Recorder" hbank="0" lbank="0" prog="74"/>
+ <Patch name="473: PanFlute" hbank="0" lbank="0" prog="75"/>
+ <Patch name="474: Bottle" hbank="0" lbank="0" prog="76"/>
+ <Patch name="475: Shakhchi" hbank="0" lbank="0" prog="77"/>
+ <Patch name="476: Whistle" hbank="0" lbank="0" prog="78"/>
+ <Patch name="477: Ocarina" hbank="0" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead(478-513)">
+ <Patch name="478: SquareLd" hbank="0" lbank="0" prog="80"/>
+ <Patch name="479: Square 2" hbank="0" lbank="6" prog="80"/>
+ <Patch name="480: LMSquare" hbank="0" lbank="8" prog="80"/>
+ <Patch name="481: Hollow" hbank="0" lbank="18" prog="80"/>
+ <Patch name="482: Shmoog" hbank="0" lbank="19" prog="80"/>
+ <Patch name="483: Mellow" hbank="0" lbank="64" prog="80"/>
+ <Patch name="484: SoloSine" hbank="0" lbank="65" prog="80"/>
+ <Patch name="485: SineLead" hbank="0" lbank="66" prog="80"/>
+ <Patch name="486: Saw.Lead" hbank="0" lbank="0" prog="81"/>
+ <Patch name="487: Saw 2" hbank="0" lbank="6" prog="81"/>
+ <Patch name="488: ThickSaw" hbank="0" lbank="8" prog="81"/>
+ <Patch name="489: DynaSaw" hbank="0" lbank="18" prog="81"/>
+ <Patch name="490: DigiSaw" hbank="0" lbank="19" prog="81"/>
+ <Patch name="491: Big Lead" hbank="0" lbank="20" prog="81"/>
+ <Patch name="492: HeavySyn" hbank="0" lbank="24" prog="81"/>
+ <Patch name="493: WaspySyn" hbank="0" lbank="25" prog="81"/>
+ <Patch name="494: PulseSaw" hbank="0" lbank="40" prog="81"/>
+ <Patch name="495: Dr. Lead" hbank="0" lbank="41" prog="81"/>
+ <Patch name="496: VeloLead" hbank="0" lbank="45" prog="81"/>
+ <Patch name="497: Seq Ana" hbank="0" lbank="96" prog="81"/>
+ <Patch name="498: CaliopLd" hbank="0" lbank="0" prog="82"/>
+ <Patch name="499: Pure Pad" hbank="0" lbank="65" prog="82"/>
+ <Patch name="500: Chiff Ld" hbank="0" lbank="0" prog="83"/>
+ <Patch name="501: Rubby" hbank="0" lbank="64" prog="83"/>
+ <Patch name="502: CharanLd" hbank="0" lbank="0" prog="84"/>
+ <Patch name="503: DistLead" hbank="0" lbank="64" prog="84"/>
+ <Patch name="504: WireLead" hbank="0" lbank="65" prog="84"/>
+ <Patch name="505: Voice Ld" hbank="0" lbank="0" prog="85"/>
+ <Patch name="506: SynthAah" hbank="0" lbank="24" prog="85"/>
+ <Patch name="507: VoxLead" hbank="0" lbank="64" prog="85"/>
+ <Patch name="508: Fifth Ld" hbank="0" lbank="0" prog="86"/>
+ <Patch name="509: Big Five" hbank="0" lbank="35" prog="86"/>
+ <Patch name="510: Bass &amp;Ld" hbank="0" lbank="0" prog="87"/>
+ <Patch name="511: Big&amp;Low" hbank="0" lbank="16" prog="87"/>
+ <Patch name="512: Fat&amp;Prky" hbank="0" lbank="64" prog="87"/>
+ <Patch name="513: SoftWurl" hbank="0" lbank="65" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad(514-542)">
+ <Patch name="514: NewAgePd" hbank="0" lbank="0" prog="88"/>
+ <Patch name="515: Fantasy2" hbank="0" lbank="64" prog="88"/>
+ <Patch name="516: Warm Pad" hbank="0" lbank="0" prog="89"/>
+ <Patch name="517: ThickPad" hbank="0" lbank="16" prog="89"/>
+ <Patch name="518: Soft Pad" hbank="0" lbank="17" prog="89"/>
+ <Patch name="519: SinePad" hbank="0" lbank="18" prog="89"/>
+ <Patch name="520: Horn Pad" hbank="0" lbank="64" prog="89"/>
+ <Patch name="521: RotarStr" hbank="0" lbank="65" prog="89"/>
+ <Patch name="522: PolySyPd" hbank="0" lbank="0" prog="90"/>
+ <Patch name="523: PolyPd80" hbank="0" lbank="64" prog="90"/>
+ <Patch name="524: ClickPad" hbank="0" lbank="65" prog="90"/>
+ <Patch name="525: Ana Pad" hbank="0" lbank="66" prog="90"/>
+ <Patch name="526: SquarPad" hbank="0" lbank="67" prog="90"/>
+ <Patch name="527: ChoirPad" hbank="0" lbank="0" prog="91"/>
+ <Patch name="528: Heaven2" hbank="0" lbank="64" prog="91"/>
+ <Patch name="529: Itopia" hbank="0" lbank="66" prog="91"/>
+ <Patch name="530: CC Pad" hbank="0" lbank="67" prog="91"/>
+ <Patch name="531: BowedPad" hbank="0" lbank="0" prog="92"/>
+ <Patch name="532: Glacier" hbank="0" lbank="64" prog="92"/>
+ <Patch name="533: GlassPad" hbank="0" lbank="65" prog="92"/>
+ <Patch name="534: MetalPad" hbank="0" lbank="0" prog="93"/>
+ <Patch name="535: Tine Pad" hbank="0" lbank="64" prog="93"/>
+ <Patch name="536: Pan Pad" hbank="0" lbank="65" prog="93"/>
+ <Patch name="537: Halo Pad" hbank="0" lbank="0" prog="94"/>
+ <Patch name="538: SweepPad" hbank="0" lbank="0" prog="95"/>
+ <Patch name="539: Shwimmer" hbank="0" lbank="20" prog="95"/>
+ <Patch name="540: Converge" hbank="0" lbank="27" prog="95"/>
+ <Patch name="541: PolarPad" hbank="0" lbank="64" prog="95"/>
+ <Patch name="542: Celstial" hbank="0" lbank="66" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Effects(543-598)">
+ <Patch name="543: Rain" hbank="0" lbank="0" prog="96"/>
+ <Patch name="544: ClaviPad" hbank="0" lbank="45" prog="96"/>
+ <Patch name="545: HrmoRain" hbank="0" lbank="64" prog="96"/>
+ <Patch name="546: AfrcnWnd" hbank="0" lbank="65" prog="96"/>
+ <Patch name="547: Caribean" hbank="0" lbank="66" prog="96"/>
+ <Patch name="548: SoundTrk" hbank="0" lbank="0" prog="97"/>
+ <Patch name="549: Prologue" hbank="0" lbank="27" prog="97"/>
+ <Patch name="550: Ancestrl" hbank="0" lbank="64" prog="97"/>
+ <Patch name="551: Crystal" hbank="0" lbank="0" prog="98"/>
+ <Patch name="552: SynDrCmp" hbank="0" lbank="12" prog="98"/>
+ <Patch name="553: Popcorn" hbank="0" lbank="14" prog="98"/>
+ <Patch name="554: TinyBell" hbank="0" lbank="18" prog="98"/>
+ <Patch name="555: RndGlock" hbank="0" lbank="35" prog="98"/>
+ <Patch name="556: GlockChi" hbank="0" lbank="40" prog="98"/>
+ <Patch name="557: ClearBel" hbank="0" lbank="41" prog="98"/>
+ <Patch name="558: ChorBell" hbank="0" lbank="42" prog="98"/>
+ <Patch name="559: SynMalet" hbank="0" lbank="64" prog="98"/>
+ <Patch name="560: SftCryst" hbank="0" lbank="65" prog="98"/>
+ <Patch name="561: LoudGlok" hbank="0" lbank="66" prog="98"/>
+ <Patch name="562: XmasBell" hbank="0" lbank="67" prog="98"/>
+ <Patch name="563: VibeBell" hbank="0" lbank="68" prog="98"/>
+ <Patch name="564: DigiBell" hbank="0" lbank="69" prog="98"/>
+ <Patch name="565: AirBells" hbank="0" lbank="70" prog="98"/>
+ <Patch name="566: BellHarp" hbank="0" lbank="71" prog="98"/>
+ <Patch name="567: Gamelmba" hbank="0" lbank="72" prog="98"/>
+ <Patch name="568: Atmosphr" hbank="0" lbank="0" prog="99"/>
+ <Patch name="569: WarmAtms" hbank="0" lbank="18" prog="99"/>
+ <Patch name="570: HollwRls" hbank="0" lbank="19" prog="99"/>
+ <Patch name="571: NylonEP" hbank="0" lbank="40" prog="99"/>
+ <Patch name="572: NylnHarp" hbank="0" lbank="64" prog="99"/>
+ <Patch name="573: Harp Vox" hbank="0" lbank="65" prog="99"/>
+ <Patch name="574: AtmosPad" hbank="0" lbank="66" prog="99"/>
+ <Patch name="575: Planet" hbank="0" lbank="67" prog="99"/>
+ <Patch name="576: Bright" hbank="0" lbank="0" prog="100"/>
+ <Patch name="577: FantaBel" hbank="0" lbank="64" prog="100"/>
+ <Patch name="578: Smokey" hbank="0" lbank="96" prog="100"/>
+ <Patch name="579: Goblins" hbank="0" lbank="0" prog="101"/>
+ <Patch name="580: GobSyn" hbank="0" lbank="64" prog="101"/>
+ <Patch name="581: 50sSciFi" hbank="0" lbank="65" prog="101"/>
+ <Patch name="582: Ring Pad" hbank="0" lbank="66" prog="101"/>
+ <Patch name="583: Ritual" hbank="0" lbank="67" prog="101"/>
+ <Patch name="584: ToHeaven" hbank="0" lbank="68" prog="101"/>
+ <Patch name="585: Night" hbank="0" lbank="70" prog="101"/>
+ <Patch name="586: Glisten" hbank="0" lbank="71" prog="101"/>
+ <Patch name="587: BelChoir" hbank="0" lbank="96" prog="101"/>
+ <Patch name="588: Echoes" hbank="0" lbank="0" prog="102"/>
+ <Patch name="589: EchoPad2" hbank="0" lbank="8" prog="102"/>
+ <Patch name="590: Echo Pan" hbank="0" lbank="14" prog="102"/>
+ <Patch name="591: EchoBell" hbank="0" lbank="64" prog="102"/>
+ <Patch name="592: Big Pan" hbank="0" lbank="65" prog="102"/>
+ <Patch name="593: SynPiano" hbank="0" lbank="66" prog="102"/>
+ <Patch name="594: Creation" hbank="0" lbank="67" prog="102"/>
+ <Patch name="595: Stardust" hbank="0" lbank="68" prog="102"/>
+ <Patch name="596: Reso Pan" hbank="0" lbank="69" prog="102"/>
+ <Patch name="597: Sci-Fi" hbank="0" lbank="0" prog="103"/>
+ <Patch name="598: Starz" hbank="0" lbank="64" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic(599-619)">
+ <Patch name="599: Sitar" hbank="0" lbank="0" prog="104"/>
+ <Patch name="600: DetSitar" hbank="0" lbank="32" prog="104"/>
+ <Patch name="601: Sitar 2" hbank="0" lbank="35" prog="104"/>
+ <Patch name="602: Tambra" hbank="0" lbank="96" prog="104"/>
+ <Patch name="603: Tamboura" hbank="0" lbank="97" prog="104"/>
+ <Patch name="604: Banjo" hbank="0" lbank="0" prog="105"/>
+ <Patch name="605: MuteBnjo" hbank="0" lbank="28" prog="105"/>
+ <Patch name="606: Rabab" hbank="0" lbank="96" prog="105"/>
+ <Patch name="607: Gopichnt" hbank="0" lbank="97" prog="105"/>
+ <Patch name="608: Oud" hbank="0" lbank="98" prog="105"/>
+ <Patch name="609: Shamisen" hbank="0" lbank="0" prog="106"/>
+ <Patch name="610: Koto" hbank="0" lbank="0" prog="107"/>
+ <Patch name="611: T. Koto" hbank="0" lbank="96" prog="107"/>
+ <Patch name="612: Kanoon" hbank="0" lbank="97" prog="107"/>
+ <Patch name="613: Kalimba" hbank="0" lbank="0" prog="108"/>
+ <Patch name="614: Bagpipe" hbank="0" lbank="0" prog="109"/>
+ <Patch name="615: Fiddle" hbank="0" lbank="0" prog="110"/>
+ <Patch name="616: Shanai" hbank="0" lbank="0" prog="111"/>
+ <Patch name="617: Shanai2" hbank="0" lbank="64" prog="111"/>
+ <Patch name="618: Pungi" hbank="0" lbank="96" prog="111"/>
+ <Patch name="619: Hichriki" hbank="0" lbank="97" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive(620-642)">
+ <Patch name="620: TnklBell" hbank="0" lbank="0" prog="112"/>
+ <Patch name="621: Bonang" hbank="0" lbank="96" prog="112"/>
+ <Patch name="622: Gender" hbank="0" lbank="97" prog="112"/>
+ <Patch name="623: Gamelan" hbank="0" lbank="98" prog="112"/>
+ <Patch name="624: S.Gamlan" hbank="0" lbank="99" prog="112"/>
+ <Patch name="625: Rama Cym" hbank="0" lbank="100" prog="112"/>
+ <Patch name="626: AsianBel" hbank="0" lbank="101" prog="112"/>
+ <Patch name="627: Agogo" hbank="0" lbank="0" prog="113"/>
+ <Patch name="628: SteelDrm" hbank="0" lbank="0" prog="114"/>
+ <Patch name="629: GlasPerc" hbank="0" lbank="97" prog="114"/>
+ <Patch name="630: ThaiBell" hbank="0" lbank="98" prog="114"/>
+ <Patch name="631: WoodBlok" hbank="0" lbank="0" prog="115"/>
+ <Patch name="632: Castanet" hbank="0" lbank="96" prog="115"/>
+ <Patch name="633: TaikoDrm" hbank="0" lbank="0" prog="116"/>
+ <Patch name="634: Gr.Cassa" hbank="0" lbank="96" prog="116"/>
+ <Patch name="635: MelodTom" hbank="0" lbank="0" prog="117"/>
+ <Patch name="636: Mel Tom2" hbank="0" lbank="64" prog="117"/>
+ <Patch name="637: Real Tom" hbank="0" lbank="65" prog="117"/>
+ <Patch name="638: Rock Tom" hbank="0" lbank="66" prog="117"/>
+ <Patch name="639: Syn.Drum" hbank="0" lbank="0" prog="118"/>
+ <Patch name="640: Ana Tom" hbank="0" lbank="64" prog="118"/>
+ <Patch name="641: ElecPerc" hbank="0" lbank="65" prog="118"/>
+ <Patch name="642: RevCymbl" hbank="0" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Sound Effects(643-650)">
+ <Patch name="643: FretNoiz" hbank="0" lbank="0" prog="120"/>
+ <Patch name="644: BrthNoiz" hbank="0" lbank="0" prog="121"/>
+ <Patch name="645: Seashore" hbank="0" lbank="0" prog="122"/>
+ <Patch name="646: Tweet" hbank="0" lbank="0" prog="123"/>
+ <Patch name="647: Telphone" hbank="0" lbank="0" prog="124"/>
+ <Patch name="648: Helicptr" hbank="0" lbank="0" prog="125"/>
+ <Patch name="649: Applause" hbank="0" lbank="0" prog="126"/>
+ <Patch name="650: Gunshot" hbank="0" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="SFX(651-692)">
+ <Patch name="651: CuttngNz" hbank="64" lbank="0" prog="0"/>
+ <Patch name="652: CttngNz2" hbank="64" lbank="0" prog="1"/>
+ <Patch name="653: Str Slap" hbank="64" lbank="0" prog="3"/>
+ <Patch name="654: Fl.KClik" hbank="64" lbank="0" prog="16"/>
+ <Patch name="655: Rain" hbank="64" lbank="0" prog="32"/>
+ <Patch name="656: Thunder" hbank="64" lbank="0" prog="33"/>
+ <Patch name="657: Wind" hbank="64" lbank="0" prog="34"/>
+ <Patch name="658: Stream" hbank="64" lbank="0" prog="35"/>
+ <Patch name="659: Bubble" hbank="64" lbank="0" prog="36"/>
+ <Patch name="660: Feed" hbank="64" lbank="0" prog="37"/>
+ <Patch name="661: Dog" hbank="64" lbank="0" prog="48"/>
+ <Patch name="662: Horse" hbank="64" lbank="0" prog="49"/>
+ <Patch name="663: Bird 2" hbank="64" lbank="0" prog="50"/>
+ <Patch name="664: Ghost" hbank="64" lbank="0" prog="54"/>
+ <Patch name="665: Maou" hbank="64" lbank="0" prog="55"/>
+ <Patch name="666: Tel.Dial" hbank="64" lbank="0" prog="64"/>
+ <Patch name="667: DoorSqek" hbank="64" lbank="0" prog="65"/>
+ <Patch name="668: Door Slam" hbank="64" lbank="0" prog="66"/>
+ <Patch name="669: Scratch" hbank="64" lbank="0" prog="67"/>
+ <Patch name="670: Scratch 2" hbank="64" lbank="0" prog="68"/>
+ <Patch name="671: WindChm" hbank="64" lbank="0" prog="69"/>
+ <Patch name="672: Telphon2" hbank="64" lbank="0" prog="70"/>
+ <Patch name="673: CarEngin" hbank="64" lbank="0" prog="80"/>
+ <Patch name="674: Car Stop" hbank="64" lbank="0" prog="81"/>
+ <Patch name="675: Car Pass" hbank="64" lbank="0" prog="82"/>
+ <Patch name="676: CarCrash" hbank="64" lbank="0" prog="83"/>
+ <Patch name="677: Siren" hbank="64" lbank="0" prog="84"/>
+ <Patch name="678: Train" hbank="64" lbank="0" prog="85"/>
+ <Patch name="679: Jetplane" hbank="64" lbank="0" prog="86"/>
+ <Patch name="680: Starship" hbank="64" lbank="0" prog="87"/>
+ <Patch name="681: Burst" hbank="64" lbank="0" prog="88"/>
+ <Patch name="682: Coaster" hbank="64" lbank="0" prog="89"/>
+ <Patch name="683: SbMarine" hbank="64" lbank="0" prog="90"/>
+ <Patch name="684: Laughing" hbank="64" lbank="0" prog="96"/>
+ <Patch name="685: Scream" hbank="64" lbank="0" prog="97"/>
+ <Patch name="686: Punch" hbank="64" lbank="0" prog="98"/>
+ <Patch name="687: Heart" hbank="64" lbank="0" prog="99"/>
+ <Patch name="688: FootStep" hbank="64" lbank="0" prog="100"/>
+ <Patch name="689: MchinGun" hbank="64" lbank="0" prog="112"/>
+ <Patch name="690: LaserGun" hbank="64" lbank="0" prog="113"/>
+ <Patch name="691: Xplosion" hbank="64" lbank="0" prog="114"/>
+ <Patch name="692: FireWork" hbank="64" lbank="0" prog="115"/>
+ </PatchGroup>
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/Yamaha-S90.idf b/muse_qt4_evolution/share/instruments/Yamaha-S90.idf
new file mode 100644
index 00000000..3d5f3685
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/Yamaha-S90.idf
@@ -0,0 +1,4304 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ MusE Instrument Definition File for
+ Yamaha S90
+ Synthesizer & Stage Piano
+-->
+
+<muse version="1.0">
+ <MidiInstrument name="Yamaha-S90">
+ <Init>
+ <!-- Master number 0 select -->
+ <event tick="0" type="2" datalen="7">
+ 0x43 0x10 0x6b 0xa 0x0 0x0 0x0
+ </event>
+ <!-- Switch to SeqPlay Mode -->
+ <event tick="386" type="2" datalen="7">
+ 0x43 0x10 0x6b 0xa 0x0 0x1 0x3
+ </event>
+ <!-- Local Off -->
+ <event tick="386" type="2" datalen="7">
+ 0x43 0x10 0x6b 0x0 0x0 0x9 0x0
+ </event>
+ </Init>
+ <Category name="Ap"></Category>
+ <Category name="Kb"></Category>
+ <Category name="Cp"></Category>
+ <Category name="Or"></Category>
+
+ <PatchGroup name="PRE1">
+ <Patch name="3LayerS700" cat="Ap" hbank="63" lbank="0" prog="0"/>
+ <Patch name="Soft Touch" cat="Ap" hbank="63" lbank="0" prog="1"/>
+ <Patch name="PowerGrand" cat="Ap" hbank="63" lbank="0" prog="2"/>
+ <Patch name="BriteRock" cat="Ap" hbank="63" lbank="0" prog="3"/>
+ <Patch name="Jazz Grand" cat="Ap" hbank="63" lbank="0" prog="4"/>
+ <Patch name="CP 80" cat="Ap" hbank="63" lbank="0" prog="5"/>
+ <Patch name="BalladKeys" cat="Ap" hbank="63" lbank="0" prog="6"/>
+ <Patch name="80's Layer" cat="Ap" hbank="63" lbank="0" prog="7"/>
+ <Patch name="S700&amp;Strg" cat="Ap" hbank="63" lbank="0" prog="8"/>
+ <Patch name="S700&amp;Ooh" cat="Ap" hbank="63" lbank="0" prog="9"/>
+ <Patch name="PianoBakup" cat="Ap" hbank="63" lbank="0" prog="10"/>
+
+ <Patch name="Max Tine" cat="Kb" hbank="63" lbank="0" prog="11"/>
+ <Patch name="Early Fusn" cat="Kb" hbank="63" lbank="0" prog="12"/>
+ <Patch name="Vintage'74" cat="Kb" hbank="63" lbank="0" prog="13"/>
+ <Patch name="Sweetness" cat="Kb" hbank="63" lbank="0" prog="14"/>
+ <Patch name="DynoStrait" cat="Kb" hbank="63" lbank="0" prog="15"/>
+ <Patch name="ChorusHard" cat="Kb" hbank="63" lbank="0" prog="16"/>
+ <Patch name="VintagCase" cat="Kb" hbank="63" lbank="0" prog="17"/>
+ <Patch name="ChorusDyno" cat="Kb" hbank="63" lbank="0" prog="18"/>
+ <Patch name="80th Boost" cat="Kb" hbank="63" lbank="0" prog="19"/>
+ <Patch name="Contempo" cat="Kb" hbank="63" lbank="0" prog="20"/>
+ <Patch name="Early 70's" cat="Kb" hbank="63" lbank="0" prog="21"/>
+ <Patch name="Tonight" cat="Kb" hbank="63" lbank="0" prog="22"/>
+ <Patch name="E.PianoPad" cat="Kb" hbank="63" lbank="0" prog="23"/>
+ <Patch name="TX802" cat="Kb" hbank="63" lbank="0" prog="24"/>
+ <Patch name="ChorusBel" cat="Kb" hbank="63" lbank="0" prog="25"/>
+ <Patch name="BellDX" cat="Kb" hbank="63" lbank="0" prog="26"/>
+ <Patch name="Dark DX" cat="Kb" hbank="63" lbank="0" prog="27"/>
+ <Patch name="GS Tines" cat="Kb" hbank="63" lbank="0" prog="28"/>
+ <Patch name="Rich FM" cat="Kb" hbank="63" lbank="0" prog="29"/>
+ <Patch name="FilteredDX" cat="Kb" hbank="63" lbank="0" prog="30"/>
+ <Patch name="Ice Piano" cat="Kb" hbank="63" lbank="0" prog="31"/>
+ <Patch name="WurliTrem" cat="Kb" hbank="63" lbank="0" prog="32"/>
+ <Patch name="WurliAmped" cat="Kb" hbank="63" lbank="0" prog="33"/>
+ <Patch name="TouchClavi" cat="Kb" hbank="63" lbank="0" prog="34"/>
+ <Patch name="SuperClavi" cat="Kb" hbank="63" lbank="0" prog="35"/>
+ <Patch name="StereoClav" cat="Kb" hbank="63" lbank="0" prog="36"/>
+ <Patch name="HollowClav" cat="Kb" hbank="63" lbank="0" prog="37"/>
+ <Patch name="Nu Phasing" cat="Kb" hbank="63" lbank="0" prog="38"/>
+ <Patch name="Digi Clavi" cat="Kb" hbank="63" lbank="0" prog="39"/>
+ <Patch name="PulseClavi" cat="Kb" hbank="63" lbank="0" prog="40"/>
+
+ <Patch name="Twinkle" cat="Cp" hbank="63" lbank="0" prog="41"/>
+ <Patch name="Stick Bell" cat="Cp" hbank="63" lbank="0" prog="42"/>
+ <Patch name="Bell Chiff" cat="Cp" hbank="63" lbank="0" prog="43"/>
+ <Patch name="FngrCymbl" cat="Cp" hbank="63" lbank="0" prog="44"/>
+ <Patch name="ChorusBell" cat="Cp" hbank="63" lbank="0" prog="45"/>
+ <Patch name="Tibetan" cat="Cp" hbank="63" lbank="0" prog="46"/>
+ <Patch name="EastBell" cat="Cp" hbank="63" lbank="0" prog="47"/>
+ <Patch name="Gamelan" cat="Cp" hbank="63" lbank="0" prog="48"/>
+ <Patch name="IceBells" cat="Cp" hbank="63" lbank="0" prog="49"/>
+ <Patch name="Digi Bell" cat="Cp" hbank="63" lbank="0" prog="50"/>
+ <Patch name="Marimbell" cat="Cp" hbank="63" lbank="0" prog="51"/>
+
+ <Patch name="16+8+5&amp;1/3" cat="Or" hbank="63" lbank="0" prog="52"/>
+ <Patch name="Petit" cat="Or" hbank="63" lbank="0" prog="53"/>
+ <Patch name="Glassy" cat="Or" hbank="63" lbank="0" prog="54"/>
+ <Patch name="Jazzy" cat="Or" hbank="63" lbank="0" prog="55"/>
+ <Patch name="Slow Jam" cat="Or" hbank="63" lbank="0" prog="56"/>
+ <Patch name="Greasy" cat="Or" hbank="63" lbank="0" prog="57"/>
+ <Patch name="Swishie" cat="Or" hbank="63" lbank="0" prog="58"/>
+ <Patch name="Clean" cat="Or" hbank="63" lbank="0" prog="59"/>
+ <Patch name="Full/CVib" cat="Or" hbank="63" lbank="0" prog="60"/>
+ <Patch name="Mellow" cat="Or" hbank="63" lbank="0" prog="61"/>
+ <Patch name="Nu Shade" cat="Or" hbank="63" lbank="0" prog="62"/>
+ <Patch name="Cool Cat" cat="Or" hbank="63" lbank="0" prog="63"/>
+ <Patch name="Flutey" cat="Or" hbank="63" lbank="0" prog="64"/>
+ <Patch name="LeftManual" cat="Or" hbank="63" lbank="0" prog="65"/>
+ <Patch name="DrawContrl" cat="Or" hbank="63" lbank="0" prog="66"/>
+ <Patch name="Rocky" cat="Or" hbank="63" lbank="0" prog="67"/>
+ <Patch name="Expensive" cat="Or" hbank="63" lbank="0" prog="68"/>
+ <Patch name="Progressy" cat="Or" hbank="63" lbank="0" prog="69"/>
+ <Patch name="Crunchy" cat="Or" hbank="63" lbank="0" prog="70"/>
+ <Patch name="Early Bird" cat="Or" hbank="63" lbank="0" prog="71"/>
+ <Patch name="Jazz Split" cat="Or" hbank="63" lbank="0" prog="72"/>
+ <Patch name="GosplSplit" cat="Or" hbank="63" lbank="0" prog="73"/>
+ <Patch name="Tradi" cat="Or" hbank="63" lbank="0" prog="74"/>
+ <Patch name="Sunday" cat="Or" hbank="63" lbank="0" prog="75"/>
+ <Patch name="BreathPipe" cat="Or" hbank="63" lbank="0" prog="76"/>
+ <Patch name="Fluty Pipe" cat="Or" hbank="63" lbank="0" prog="77"/>
+ <Patch name="Reedy Pipe" cat="Or" hbank="63" lbank="0" prog="78"/>
+
+ <Patch name="OohPipes" cat="Ap" hbank="63" lbank="0" prog="79"/>
+ <Patch name="Flamenco" cat="Ap" hbank="63" lbank="0" prog="80"/>
+ <Patch name="Nylon Jam" cat="Ap" hbank="63" lbank="0" prog="81"/>
+ <Patch name="BriteSteel" cat="Ap" hbank="63" lbank="0" prog="82"/>
+ <Patch name="Strums" cat="Ap" hbank="63" lbank="0" prog="83"/>
+ <Patch name="Big Steel" cat="Ap" hbank="63" lbank="0" prog="84"/>
+ <Patch name="Folk Steel" cat="Ap" hbank="63" lbank="0" prog="85"/>
+ <Patch name="18 String" cat="Ap" hbank="63" lbank="0" prog="86"/>
+ <Patch name="HarpsiGtr" cat="Ap" hbank="63" lbank="0" prog="87"/>
+ <Patch name="HybridGtr" cat="Ap" hbank="63" lbank="0" prog="88"/>
+ <Patch name="JazzGTmelo" cat="Ap" hbank="63" lbank="0" prog="89"/>
+ <Patch name="Velo Jazz" cat="Ap" hbank="63" lbank="0" prog="90"/>
+ <Patch name="FM Jazz" cat="Ap" hbank="63" lbank="0" prog="91"/>
+ <Patch name="For Funk" cat="Ap" hbank="63" lbank="0" prog="92"/>
+ <Patch name="Spanky" cat="Ap" hbank="63" lbank="0" prog="93"/>
+ <Patch name="Funkiest" cat="Ap" hbank="63" lbank="0" prog="94"/>
+ <Patch name="Vin Strum" cat="Ap" hbank="63" lbank="0" prog="95"/>
+ <Patch name="1CoilChors" cat="Ap" hbank="63" lbank="0" prog="96"/>
+ <Patch name="CleanChors" cat="Ap" hbank="63" lbank="0" prog="97"/>
+ <Patch name="ChorusPlus" cat="Ap" hbank="63" lbank="0" prog="98"/>
+ <Patch name="SmoothChor" cat="Ap" hbank="63" lbank="0" prog="99"/>
+ <Patch name="TexBoogie" cat="Ap" hbank="63" lbank="0" prog="100"/>
+ <Patch name="Rockabilly" cat="Ap" hbank="63" lbank="0" prog="101"/>
+ <Patch name="65 Combo" cat="Ap" hbank="63" lbank="0" prog="102"/>
+ <Patch name="VinTremolo" cat="Ap" hbank="63" lbank="0" prog="103"/>
+ <Patch name="Crunchoid" cat="Ap" hbank="63" lbank="0" prog="104"/>
+ <Patch name="DynamicAmp" cat="Ap" hbank="63" lbank="0" prog="105"/>
+ <Patch name="Feedback" cat="Ap" hbank="63" lbank="0" prog="106"/>
+ <Patch name="VOODOOMAN" cat="Ap" hbank="63" lbank="0" prog="107"/>
+ <Patch name="BlueLead" cat="Ap" hbank="63" lbank="0" prog="108"/>
+ <Patch name="MeloRckLd" cat="Ap" hbank="63" lbank="0" prog="109"/>
+ <Patch name="MetalMute" cat="Ap" hbank="63" lbank="0" prog="110"/>
+ <Patch name="OverTheTop" cat="Ap" hbank="63" lbank="0" prog="111"/>
+ <Patch name="RoundWound" cat="Ap" hbank="63" lbank="0" prog="112"/>
+ <Patch name="FingerMan" cat="Ap" hbank="63" lbank="0" prog="113"/>
+ <Patch name="PrecRW" cat="Ap" hbank="63" lbank="0" prog="114"/>
+ <Patch name="PrecFW" cat="Ap" hbank="63" lbank="0" prog="115"/>
+ <Patch name="HybridBass" cat="Ap" hbank="63" lbank="0" prog="116"/>
+ <Patch name="Stand Up" cat="Ap" hbank="63" lbank="0" prog="117"/>
+ <Patch name="Fretless" cat="Ap" hbank="63" lbank="0" prog="118"/>
+ <Patch name="Slap&amp;Fx" cat="Ap" hbank="63" lbank="0" prog="119"/>
+ <Patch name="BriteSlap" cat="Ap" hbank="63" lbank="0" prog="120"/>
+ <Patch name="Velo Bass" cat="Ap" hbank="63" lbank="0" prog="121"/>
+ <Patch name="Bs+Cym+Vb" cat="Ap" hbank="63" lbank="0" prog="122"/>
+ <Patch name="Boogie on" cat="Ap" hbank="63" lbank="0" prog="123"/>
+ <Patch name="MiniDetune" cat="Ap" hbank="63" lbank="0" prog="124"/>
+ <Patch name="Long Spit" cat="Ap" hbank="63" lbank="0" prog="125"/>
+ <Patch name="Tack Bass" cat="Ap" hbank="63" lbank="0" prog="126"/>
+ <Patch name="Fat Octave" cat="Ap" hbank="63" lbank="0" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="PRE2">
+ <Patch name="Violin" cat="Ap" hbank="63" lbank="1" prog="0"/>
+ <Patch name="Viola" cat="Ap" hbank="63" lbank="1" prog="1"/>
+ <Patch name="Cello" cat="Ap" hbank="63" lbank="1" prog="2"/>
+ <Patch name="SoloSpicat" cat="Ap" hbank="63" lbank="1" prog="3"/>
+ <Patch name="2 Solos" cat="Ap" hbank="63" lbank="1" prog="4"/>
+ <Patch name="Cello Duet" cat="Ap" hbank="63" lbank="1" prog="5"/>
+ <Patch name="Trio" cat="Ap" hbank="63" lbank="1" prog="6"/>
+ <Patch name="Chamber" cat="Ap" hbank="63" lbank="1" prog="7"/>
+ <Patch name="Small Ens" cat="Ap" hbank="63" lbank="1" prog="8"/>
+ <Patch name="Medium Ens" cat="Ap" hbank="63" lbank="1" prog="9"/>
+ <Patch name="Ens Mix" cat="Ap" hbank="63" lbank="1" prog="10"/>
+ <Patch name="Ensemble" cat="Ap" hbank="63" lbank="1" prog="11"/>
+ <Patch name="Hard Ens" cat="Ap" hbank="63" lbank="1" prog="12"/>
+ <Patch name="Background" cat="Ap" hbank="63" lbank="1" prog="13"/>
+ <Patch name="BigSymphny" cat="Ap" hbank="63" lbank="1" prog="14"/>
+ <Patch name="Str/Horns" cat="Ap" hbank="63" lbank="1" prog="15"/>
+ <Patch name="Stringy" cat="Ap" hbank="63" lbank="1" prog="16"/>
+ <Patch name="Polystring" cat="Ap" hbank="63" lbank="1" prog="17"/>
+ <Patch name="JP Strings" cat="Ap" hbank="63" lbank="1" prog="18"/>
+ <Patch name="MournStrgs" cat="Ap" hbank="63" lbank="1" prog="19"/>
+ <Patch name="The Pizz" cat="Ap" hbank="63" lbank="1" prog="20"/>
+ <Patch name="Fanfare" cat="Ap" hbank="63" lbank="1" prog="21"/>
+ <Patch name="Hi Brass" cat="Ap" hbank="63" lbank="1" prog="22"/>
+ <Patch name="Fat Sect" cat="Ap" hbank="63" lbank="1" prog="23"/>
+ <Patch name="Sforzando" cat="Ap" hbank="63" lbank="1" prog="24"/>
+ <Patch name="Symphony" cat="Ap" hbank="63" lbank="1" prog="25"/>
+ <Patch name="Big Band" cat="Ap" hbank="63" lbank="1" prog="26"/>
+ <Patch name="Big Band 2" cat="Ap" hbank="63" lbank="1" prog="27"/>
+ <Patch name="SaxBigBand" cat="Ap" hbank="63" lbank="1" prog="28"/>
+ <Patch name="MedmBrass" cat="Ap" hbank="63" lbank="1" prog="29"/>
+ <Patch name="Soft Brass" cat="Ap" hbank="63" lbank="1" prog="30"/>
+ <Patch name="SoftVeloBr" cat="Ap" hbank="63" lbank="1" prog="31"/>
+ <Patch name="TrpRomantc" cat="Ap" hbank="63" lbank="1" prog="32"/>
+ <Patch name="Phase Mute" cat="Ap" hbank="63" lbank="1" prog="33"/>
+ <Patch name="Legend" cat="Ap" hbank="63" lbank="1" prog="34"/>
+ <Patch name="Trombone" cat="Ap" hbank="63" lbank="1" prog="35"/>
+ <Patch name="Flugelleaz" cat="Ap" hbank="63" lbank="1" prog="36"/>
+ <Patch name="F.Horn Ens" cat="Ap" hbank="63" lbank="1" prog="37"/>
+ <Patch name="SlowAttack" cat="Ap" hbank="63" lbank="1" prog="38"/>
+ <Patch name="Strng/Bras" cat="Ap" hbank="63" lbank="1" prog="39"/>
+ <Patch name="Movie Ens " cat="Ap" hbank="63" lbank="1" prog="40"/>
+ <Patch name="Powered" cat="Ap" hbank="63" lbank="1" prog="41"/>
+ <Patch name="ObStuff" cat="Ap" hbank="63" lbank="1" prog="42"/>
+ <Patch name="Prophy" cat="Ap" hbank="63" lbank="1" prog="43"/>
+ <Patch name="AnalogBras" cat="Ap" hbank="63" lbank="1" prog="44"/>
+ <Patch name="After 1984" cat="Ap" hbank="63" lbank="1" prog="45"/>
+ <Patch name="Soprano" cat="Ap" hbank="63" lbank="1" prog="46"/>
+ <Patch name="Alto Vib" cat="Ap" hbank="63" lbank="1" prog="47"/>
+ <Patch name="SaxEnsembl" cat="Ap" hbank="63" lbank="1" prog="48"/>
+ <Patch name="Tenor Sax" cat="Ap" hbank="63" lbank="1" prog="49"/>
+ <Patch name="Tenor Soft" cat="Ap" hbank="63" lbank="1" prog="50"/>
+ <Patch name="The Winds" cat="Ap" hbank="63" lbank="1" prog="51"/>
+ <Patch name="WindOrch" cat="Ap" hbank="63" lbank="1" prog="52"/>
+ <Patch name="SweetFlute" cat="Ap" hbank="63" lbank="1" prog="53"/>
+ <Patch name="PanBottle" cat="Ap" hbank="63" lbank="1" prog="54"/>
+ <Patch name="AmpHarpMW" cat="Ap" hbank="63" lbank="1" prog="55"/>
+ <Patch name="SmoothSaw" cat="Ap" hbank="63" lbank="1" prog="56"/>
+ <Patch name="Lucky" cat="Ap" hbank="63" lbank="1" prog="57"/>
+ <Patch name="Tri Solo" cat="Ap" hbank="63" lbank="1" prog="58"/>
+ <Patch name="Syntrump" cat="Ap" hbank="63" lbank="1" prog="59"/>
+ <Patch name="PWM Lead" cat="Ap" hbank="63" lbank="1" prog="60"/>
+ <Patch name="Clicky Saw" cat="Ap" hbank="63" lbank="1" prog="61"/>
+ <Patch name="Mini Pulse" cat="Ap" hbank="63" lbank="1" prog="62"/>
+ <Patch name="Sync Lead" cat="Ap" hbank="63" lbank="1" prog="63"/>
+ <Patch name="Altair" cat="Ap" hbank="63" lbank="1" prog="64"/>
+ <Patch name="Analog" cat="Ap" hbank="63" lbank="1" prog="65"/>
+ <Patch name="Sweetland" cat="Ap" hbank="63" lbank="1" prog="66"/>
+ <Patch name="WarmSweepy" cat="Ap" hbank="63" lbank="1" prog="67"/>
+ <Patch name="SinePad" cat="Ap" hbank="63" lbank="1" prog="68"/>
+ <Patch name="Square" cat="Ap" hbank="63" lbank="1" prog="69"/>
+ <Patch name="VoxPad" cat="Ap" hbank="63" lbank="1" prog="70"/>
+ <Patch name="Pure Syn" cat="Ap" hbank="63" lbank="1" prog="71"/>
+ <Patch name="MovingPad" cat="Ap" hbank="63" lbank="1" prog="72"/>
+ <Patch name="SimpleSaws" cat="Ap" hbank="63" lbank="1" prog="73"/>
+ <Patch name="X-Shower" cat="Ap" hbank="63" lbank="1" prog="74"/>
+ <Patch name="PWM Pad" cat="Ap" hbank="63" lbank="1" prog="75"/>
+ <Patch name="Bell Choir" cat="Ap" hbank="63" lbank="1" prog="76"/>
+ <Patch name="ObSoft" cat="Ap" hbank="63" lbank="1" prog="77"/>
+ <Patch name="MellowAnlg" cat="Ap" hbank="63" lbank="1" prog="78"/>
+ <Patch name="Glasschoir" cat="Ap" hbank="63" lbank="1" prog="79"/>
+ <Patch name="PeaceVox" cat="Ap" hbank="63" lbank="1" prog="80"/>
+ <Patch name="StackChoir" cat="Ap" hbank="63" lbank="1" prog="81"/>
+ <Patch name="Bronx" cat="Ap" hbank="63" lbank="1" prog="82"/>
+ <Patch name="IceChoir" cat="Ap" hbank="63" lbank="1" prog="83"/>
+ <Patch name="Fast Oohs" cat="Ap" hbank="63" lbank="1" prog="84"/>
+ <Patch name="Ooze &amp; OZ" cat="Ap" hbank="63" lbank="1" prog="85"/>
+ <Patch name="NeoCrystal" cat="Ap" hbank="63" lbank="1" prog="86"/>
+ <Patch name="Pop Synth" cat="Ap" hbank="63" lbank="1" prog="87"/>
+ <Patch name="Fantasy" cat="Ap" hbank="63" lbank="1" prog="88"/>
+ <Patch name="Heavenly" cat="Ap" hbank="63" lbank="1" prog="89"/>
+ <Patch name="Retro" cat="Ap" hbank="63" lbank="1" prog="90"/>
+ <Patch name="Airy" cat="Ap" hbank="63" lbank="1" prog="91"/>
+ <Patch name="Nylon" cat="Ap" hbank="63" lbank="1" prog="92"/>
+ <Patch name="Antares" cat="Ap" hbank="63" lbank="1" prog="93"/>
+ <Patch name="Pan Sphere" cat="Ap" hbank="63" lbank="1" prog="94"/>
+ <Patch name="Tamburax" cat="Ap" hbank="63" lbank="1" prog="95"/>
+ <Patch name="IndianFlai" cat="Ap" hbank="63" lbank="1" prog="96"/>
+ <Patch name="SAKURA" cat="Ap" hbank="63" lbank="1" prog="97"/>
+ <Patch name="RisingHigh" cat="Ap" hbank="63" lbank="1" prog="98"/>
+ <Patch name="Champ" cat="Ap" hbank="63" lbank="1" prog="99"/>
+ <Patch name="Gladiator" cat="Ap" hbank="63" lbank="1" prog="100"/>
+ <Patch name="Hades" cat="Ap" hbank="63" lbank="1" prog="101"/>
+ <Patch name="Glacy" cat="Ap" hbank="63" lbank="1" prog="102"/>
+ <Patch name="Forest" cat="Ap" hbank="63" lbank="1" prog="103"/>
+ <Patch name="MirrorRing" cat="Ap" hbank="63" lbank="1" prog="104"/>
+ <Patch name="Poly" cat="Ap" hbank="63" lbank="1" prog="105"/>
+ <Patch name="AnaTonk" cat="Ap" hbank="63" lbank="1" prog="106"/>
+ <Patch name="Jaipur" cat="Ap" hbank="63" lbank="1" prog="107"/>
+ <Patch name="Dulcitar" cat="Ap" hbank="63" lbank="1" prog="108"/>
+ <Patch name="Cimbalon" cat="Ap" hbank="63" lbank="1" prog="109"/>
+ <Patch name="EthncFlute" cat="Ap" hbank="63" lbank="1" prog="110"/>
+ <Patch name="Hichiriki" cat="Ap" hbank="63" lbank="1" prog="111"/>
+ <Patch name="Ryuteki" cat="Ap" hbank="63" lbank="1" prog="112"/>
+ <Patch name="Gagaku" cat="Ap" hbank="63" lbank="1" prog="113"/>
+ <Patch name="Kokyu" cat="Ap" hbank="63" lbank="1" prog="114"/>
+ <Patch name="Digidoo" cat="Ap" hbank="63" lbank="1" prog="115"/>
+ <Patch name="Bali" cat="Ap" hbank="63" lbank="1" prog="116"/>
+ <Patch name="Indo Trip" cat="Ap" hbank="63" lbank="1" prog="117"/>
+ <Patch name="East Tabla" cat="Ap" hbank="63" lbank="1" prog="118"/>
+ <Patch name="Djembe" cat="Ap" hbank="63" lbank="1" prog="119"/>
+ <Patch name="Djerimbe" cat="Ap" hbank="63" lbank="1" prog="120"/>
+ <Patch name="Udu" cat="Ap" hbank="63" lbank="1" prog="121"/>
+ <Patch name="Tribal" cat="Ap" hbank="63" lbank="1" prog="122"/>
+ <Patch name="Log&amp;Drum" cat="Ap" hbank="63" lbank="1" prog="123"/>
+ <Patch name="Afro" cat="Ap" hbank="63" lbank="1" prog="124"/>
+ <Patch name="Japanesque" cat="Ap" hbank="63" lbank="1" prog="125"/>
+ <Patch name="EthnoShock" cat="Ap" hbank="63" lbank="1" prog="126"/>
+ <Patch name="Ethnology" cat="Ap" hbank="63" lbank="1" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="PRE3">
+ <Patch name="Wide Comp" cat="Ap" hbank="63" lbank="2" prog="0"/>
+ <Patch name="78rpmPiano" cat="Ap" hbank="63" lbank="2" prog="1"/>
+ <Patch name="1968 45rpm" cat="Ap" hbank="63" lbank="2" prog="2"/>
+ <Patch name="1971 33rpm" cat="Ap" hbank="63" lbank="2" prog="3"/>
+ <Patch name="DigiGrand1" cat="Ap" hbank="63" lbank="2" prog="4"/>
+ <Patch name="Harp&amp;Piano" cat="Ap" hbank="63" lbank="2" prog="5"/>
+ <Patch name="Glass EP" cat="Ap" hbank="63" lbank="2" prog="6"/>
+ <Patch name="VintSwitch" cat="Ap" hbank="63" lbank="2" prog="7"/>
+ <Patch name="Early Case" cat="Ap" hbank="63" lbank="2" prog="8"/>
+ <Patch name="RdsScape" cat="Ap" hbank="63" lbank="2" prog="9"/>
+ <Patch name="Feathers" cat="Ap" hbank="63" lbank="2" prog="10"/>
+ <Patch name="StringyPno" cat="Ap" hbank="63" lbank="2" prog="11"/>
+ <Patch name="Champagne" cat="Ap" hbank="63" lbank="2" prog="12"/>
+ <Patch name="Moet" cat="Ap" hbank="63" lbank="2" prog="13"/>
+ <Patch name="Compact" cat="Ap" hbank="63" lbank="2" prog="14"/>
+ <Patch name="1967 Keys" cat="Ap" hbank="63" lbank="2" prog="15"/>
+ <Patch name="YD-45C" cat="Ap" hbank="63" lbank="2" prog="16"/>
+ <Patch name="Gnarly" cat="Ap" hbank="63" lbank="2" prog="17"/>
+ <Patch name="Modular" cat="Ap" hbank="63" lbank="2" prog="18"/>
+ <Patch name="Dark Jack" cat="Ap" hbank="63" lbank="2" prog="19"/>
+ <Patch name="OneVoice" cat="Ap" hbank="63" lbank="2" prog="20"/>
+ <Patch name="Dry Syn" cat="Ap" hbank="63" lbank="2" prog="21"/>
+ <Patch name="PlasticBas" cat="Ap" hbank="63" lbank="2" prog="22"/>
+ <Patch name="Bassline" cat="Ap" hbank="63" lbank="2" prog="23"/>
+ <Patch name="RubbaRap" cat="Ap" hbank="63" lbank="2" prog="24"/>
+ <Patch name="Juicy" cat="Ap" hbank="63" lbank="2" prog="25"/>
+ <Patch name="Dark" cat="Ap" hbank="63" lbank="2" prog="26"/>
+ <Patch name="UniBass" cat="Ap" hbank="63" lbank="2" prog="27"/>
+ <Patch name="Flyer" cat="Ap" hbank="63" lbank="2" prog="28"/>
+ <Patch name="QuackBass" cat="Ap" hbank="63" lbank="2" prog="29"/>
+ <Patch name="Moonbass" cat="Ap" hbank="63" lbank="2" prog="30"/>
+ <Patch name="ClassicSub" cat="Ap" hbank="63" lbank="2" prog="31"/>
+ <Patch name="DX100" cat="Ap" hbank="63" lbank="2" prog="32"/>
+ <Patch name="Lately" cat="Ap" hbank="63" lbank="2" prog="33"/>
+ <Patch name="FMBass" cat="Ap" hbank="63" lbank="2" prog="34"/>
+ <Patch name="Oct String" cat="Ap" hbank="63" lbank="2" prog="35"/>
+ <Patch name="3 Octave" cat="Ap" hbank="63" lbank="2" prog="36"/>
+ <Patch name="TapeStrngs" cat="Ap" hbank="63" lbank="2" prog="37"/>
+ <Patch name="VP Strings" cat="Ap" hbank="63" lbank="2" prog="38"/>
+ <Patch name="BriteTeeth" cat="Ap" hbank="63" lbank="2" prog="39"/>
+ <Patch name="XDance" cat="Ap" hbank="63" lbank="2" prog="40"/>
+ <Patch name="Timeless" cat="Ap" hbank="63" lbank="2" prog="41"/>
+ <Patch name="FatSynth" cat="Ap" hbank="63" lbank="2" prog="42"/>
+ <Patch name="Big Syn" cat="Ap" hbank="63" lbank="2" prog="43"/>
+ <Patch name="Bluesharp" cat="Ap" hbank="63" lbank="2" prog="44"/>
+ <Patch name="Sync Atk" cat="Ap" hbank="63" lbank="2" prog="45"/>
+ <Patch name="Reso" cat="Ap" hbank="63" lbank="2" prog="46"/>
+ <Patch name="Singleline" cat="Ap" hbank="63" lbank="2" prog="47"/>
+ <Patch name="Free LFO" cat="Ap" hbank="63" lbank="2" prog="48"/>
+ <Patch name="Soft Lead" cat="Ap" hbank="63" lbank="2" prog="49"/>
+ <Patch name="PulseWound" cat="Ap" hbank="63" lbank="2" prog="50"/>
+ <Patch name="Big Drone" cat="Ap" hbank="63" lbank="2" prog="51"/>
+ <Patch name="Big Tune" cat="Ap" hbank="63" lbank="2" prog="52"/>
+ <Patch name="PowerWheel" cat="Ap" hbank="63" lbank="2" prog="53"/>
+ <Patch name="Flangefilt" cat="Ap" hbank="63" lbank="2" prog="54"/>
+ <Patch name="G-Funk" cat="Ap" hbank="63" lbank="2" prog="55"/>
+ <Patch name="Maria AT" cat="Ap" hbank="63" lbank="2" prog="56"/>
+ <Patch name="InThePast" cat="Ap" hbank="63" lbank="2" prog="57"/>
+ <Patch name="FatSawPad" cat="Ap" hbank="63" lbank="2" prog="58"/>
+ <Patch name="Wide Sweep" cat="Ap" hbank="63" lbank="2" prog="59"/>
+ <Patch name="Sunbeams" cat="Ap" hbank="63" lbank="2" prog="60"/>
+ <Patch name="BPFx" cat="Ap" hbank="63" lbank="2" prog="61"/>
+ <Patch name="FrozenPad" cat="Ap" hbank="63" lbank="2" prog="62"/>
+ <Patch name="MICHINOKU" cat="Ap" hbank="63" lbank="2" prog="63"/>
+ <Patch name="Esmeralda" cat="Ap" hbank="63" lbank="2" prog="64"/>
+ <Patch name="Romance" cat="Ap" hbank="63" lbank="2" prog="65"/>
+ <Patch name="Circle" cat="Ap" hbank="63" lbank="2" prog="66"/>
+ <Patch name="Dreamspher" cat="Ap" hbank="63" lbank="2" prog="67"/>
+ <Patch name="Silverlake" cat="Ap" hbank="63" lbank="2" prog="68"/>
+ <Patch name="Shadow" cat="Ap" hbank="63" lbank="2" prog="69"/>
+ <Patch name="Platinum" cat="Ap" hbank="63" lbank="2" prog="70"/>
+ <Patch name="Gently" cat="Ap" hbank="63" lbank="2" prog="71"/>
+ <Patch name="Warming" cat="Ap" hbank="63" lbank="2" prog="72"/>
+ <Patch name="PW-EMMY" cat="Ap" hbank="63" lbank="2" prog="73"/>
+ <Patch name="X-fade" cat="Ap" hbank="63" lbank="2" prog="74"/>
+ <Patch name="Pad Zosma" cat="Ap" hbank="63" lbank="2" prog="75"/>
+ <Patch name="NoizRezz" cat="Ap" hbank="63" lbank="2" prog="76"/>
+ <Patch name="Mira" cat="Ap" hbank="63" lbank="2" prog="77"/>
+ <Patch name="MultiPulse" cat="Ap" hbank="63" lbank="2" prog="78"/>
+ <Patch name="VoxWaves" cat="Ap" hbank="63" lbank="2" prog="79"/>
+ <Patch name="LazySweep" cat="Ap" hbank="63" lbank="2" prog="80"/>
+ <Patch name="Doomed" cat="Ap" hbank="63" lbank="2" prog="81"/>
+ <Patch name="PerkaVox" cat="Ap" hbank="63" lbank="2" prog="82"/>
+ <Patch name="Punchy" cat="Ap" hbank="63" lbank="2" prog="83"/>
+ <Patch name="Eyeliner" cat="Ap" hbank="63" lbank="2" prog="84"/>
+ <Patch name="Quieck" cat="Ap" hbank="63" lbank="2" prog="85"/>
+ <Patch name="Aladdin" cat="Ap" hbank="63" lbank="2" prog="86"/>
+ <Patch name="QuadSwell" cat="Ap" hbank="63" lbank="2" prog="87"/>
+ <Patch name="Lilley" cat="Ap" hbank="63" lbank="2" prog="88"/>
+ <Patch name="Pad Didje" cat="Ap" hbank="63" lbank="2" prog="89"/>
+ <Patch name="Baz" cat="Ap" hbank="63" lbank="2" prog="90"/>
+ <Patch name="RING PAD" cat="Ap" hbank="63" lbank="2" prog="91"/>
+ <Patch name="Chaser 1" cat="Ap" hbank="63" lbank="2" prog="92"/>
+ <Patch name="Chaser 2" cat="Ap" hbank="63" lbank="2" prog="93"/>
+ <Patch name="Spacebreat" cat="Ap" hbank="63" lbank="2" prog="94"/>
+ <Patch name="Long HiPa" cat="Ap" hbank="63" lbank="2" prog="95"/>
+ <Patch name="Action Y" cat="Ap" hbank="63" lbank="2" prog="96"/>
+ <Patch name="Trancelan" cat="Ap" hbank="63" lbank="2" prog="97"/>
+ <Patch name="Eternal" cat="Ap" hbank="63" lbank="2" prog="98"/>
+ <Patch name="VirtualSyn" cat="Ap" hbank="63" lbank="2" prog="99"/>
+ <Patch name="Interlude" cat="Ap" hbank="63" lbank="2" prog="100"/>
+ <Patch name="Flying" cat="Ap" hbank="63" lbank="2" prog="101"/>
+ <Patch name="TheSlayer" cat="Ap" hbank="63" lbank="2" prog="102"/>
+ <Patch name="White Rabb" cat="Ap" hbank="63" lbank="2" prog="103"/>
+ <Patch name="Siam Ududu" cat="Ap" hbank="63" lbank="2" prog="104"/>
+ <Patch name="Particle" cat="Ap" hbank="63" lbank="2" prog="105"/>
+ <Patch name="Shaper" cat="Ap" hbank="63" lbank="2" prog="106"/>
+ <Patch name="VintageArp" cat="Ap" hbank="63" lbank="2" prog="107"/>
+ <Patch name="Aah Dance" cat="Ap" hbank="63" lbank="2" prog="108"/>
+ <Patch name="Joker" cat="Ap" hbank="63" lbank="2" prog="109"/>
+ <Patch name="Holiday" cat="Ap" hbank="63" lbank="2" prog="110"/>
+ <Patch name="Android" cat="Ap" hbank="63" lbank="2" prog="111"/>
+ <Patch name="Spacious" cat="Ap" hbank="63" lbank="2" prog="112"/>
+ <Patch name="VoiceCuica" cat="Ap" hbank="63" lbank="2" prog="113"/>
+ <Patch name="Pop Arp" cat="Ap" hbank="63" lbank="2" prog="114"/>
+ <Patch name="Ping Pong" cat="Ap" hbank="63" lbank="2" prog="115"/>
+ <Patch name="Amoeba" cat="Ap" hbank="63" lbank="2" prog="116"/>
+ <Patch name="Landing" cat="Ap" hbank="63" lbank="2" prog="117"/>
+ <Patch name="I was born" cat="Ap" hbank="63" lbank="2" prog="118"/>
+ <Patch name="PsychoGtr" cat="Ap" hbank="63" lbank="2" prog="119"/>
+ <Patch name="NoGravity" cat="Ap" hbank="63" lbank="2" prog="120"/>
+ <Patch name="Pulser" cat="Ap" hbank="63" lbank="2" prog="121"/>
+ <Patch name="Racer" cat="Ap" hbank="63" lbank="2" prog="122"/>
+ <Patch name="Storm" cat="Ap" hbank="63" lbank="2" prog="123"/>
+ <Patch name="Oscillatin" cat="Ap" hbank="63" lbank="2" prog="124"/>
+ <Patch name="FamlyFeud " cat="Ap" hbank="63" lbank="2" prog="125"/>
+ <Patch name="WatrForest" cat="Ap" hbank="63" lbank="2" prog="126"/>
+ <Patch name="Spacecraft" cat="Ap" hbank="63" lbank="2" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="USER">
+ <Patch name="BriteS700" cat="Ap" hbank="63" lbank="8" prog="0"/>
+ <Patch name="Old Blues" cat="Ap" hbank="63" lbank="8" prog="1"/>
+ <Patch name="S700&amp;OldEp" cat="Ap" hbank="63" lbank="8" prog="2"/>
+ <Patch name="S700&amp;DX" cat="Ap" hbank="63" lbank="8" prog="3"/>
+ <Patch name="Bell Piano" cat="Ap" hbank="63" lbank="8" prog="4"/>
+ <Patch name="Dream" cat="Ap" hbank="63" lbank="8" prog="5"/>
+ <Patch name="Tomorrow" cat="Ap" hbank="63" lbank="8" prog="6"/>
+ <Patch name="Piano&amp;Pad" cat="Ap" hbank="63" lbank="8" prog="7"/>
+ <Patch name="CP80&amp;EP" cat="Ap" hbank="63" lbank="8" prog="8"/>
+ <Patch name="Yama EP's" cat="Ap" hbank="63" lbank="8" prog="9"/>
+ <Patch name="Mr. Klank" cat="Ap" hbank="63" lbank="8" prog="10"/>
+ <Patch name="Electro" cat="Ap" hbank="63" lbank="8" prog="11"/>
+ <Patch name="Satellite" cat="Ap" hbank="63" lbank="8" prog="12"/>
+ <Patch name="Partita" cat="Ap" hbank="63" lbank="8" prog="13"/>
+ <Patch name="Reed" cat="Ap" hbank="63" lbank="8" prog="14"/>
+ <Patch name="Org&amp;Voice" cat="Ap" hbank="63" lbank="8" prog="15"/>
+ <Patch name="Stingfingr" cat="Ap" hbank="63" lbank="8" prog="16"/>
+ <Patch name="Fat Low" cat="Ap" hbank="63" lbank="8" prog="17"/>
+ <Patch name="OB Saw" cat="Ap" hbank="63" lbank="8" prog="18"/>
+ <Patch name="Ana Decay" cat="Ap" hbank="63" lbank="8" prog="19"/>
+ <Patch name="MiniAnalog" cat="Ap" hbank="63" lbank="8" prog="20"/>
+ <Patch name="SimpleReso" cat="Ap" hbank="63" lbank="8" prog="21"/>
+ <Patch name="SyzStrng" cat="Ap" hbank="63" lbank="8" prog="22"/>
+ <Patch name="Real Harp" cat="Ap" hbank="63" lbank="8" prog="23"/>
+ <Patch name="Real Flute" cat="Ap" hbank="63" lbank="8" prog="24"/>
+ <Patch name="Twilight" cat="Ap" hbank="63" lbank="8" prog="25"/>
+ <Patch name="HighSine" cat="Ap" hbank="63" lbank="8" prog="26"/>
+ <Patch name="Hi Q Pad" cat="Ap" hbank="63" lbank="8" prog="27"/>
+ <Patch name="Snow Storm" cat="Ap" hbank="63" lbank="8" prog="28"/>
+ <Patch name="Classic" cat="Ap" hbank="63" lbank="8" prog="29"/>
+ <Patch name="Step Down" cat="Ap" hbank="63" lbank="8" prog="30"/>
+ <Patch name="Ens+Flute" cat="Ap" hbank="63" lbank="8" prog="31"/>
+ <Patch name="Polygroove" cat="Ap" hbank="63" lbank="8" prog="32"/>
+ <Patch name="ANbasicARP" cat="Ap" hbank="63" lbank="8" prog="33"/>
+ <Patch name="Pop Split" cat="Ap" hbank="63" lbank="8" prog="34"/>
+ <Patch name="Pianosyn" cat="Ap" hbank="63" lbank="8" prog="35"/>
+ <Patch name="Wake Up" cat="Ap" hbank="63" lbank="8" prog="36"/>
+ <Patch name="BackPad MW" cat="Ap" hbank="63" lbank="8" prog="37"/>
+ <Patch name="Poly Comp" cat="Ap" hbank="63" lbank="8" prog="38"/>
+ <Patch name="Surface" cat="Ap" hbank="63" lbank="8" prog="39"/>
+ <Patch name="HPF+LPFpad" cat="Ap" hbank="63" lbank="8" prog="40"/>
+ <Patch name="Hip Chordz" cat="Ap" hbank="63" lbank="8" prog="41"/>
+ <Patch name="CrushPadMW" cat="Ap" hbank="63" lbank="8" prog="42"/>
+ <Patch name="Warmest" cat="Ap" hbank="63" lbank="8" prog="43"/>
+ <Patch name="Sadness" cat="Ap" hbank="63" lbank="8" prog="44"/>
+ <Patch name="Bright Aah" cat="Ap" hbank="63" lbank="8" prog="45"/>
+ <Patch name="FatSwell" cat="Ap" hbank="63" lbank="8" prog="46"/>
+ <Patch name="Pearls" cat="Ap" hbank="63" lbank="8" prog="47"/>
+ <Patch name="Sonar Pad" cat="Ap" hbank="63" lbank="8" prog="48"/>
+ <Patch name="Alaska" cat="Ap" hbank="63" lbank="8" prog="49"/>
+ <Patch name="Happy Boy" cat="Ap" hbank="63" lbank="8" prog="50"/>
+ <Patch name="Whisperer" cat="Ap" hbank="63" lbank="8" prog="51"/>
+ <Patch name="Pad Bells" cat="Ap" hbank="63" lbank="8" prog="52"/>
+ <Patch name="Funky Mood" cat="Ap" hbank="63" lbank="8" prog="53"/>
+ <Patch name="For you!" cat="Ap" hbank="63" lbank="8" prog="54"/>
+ <Patch name="Gruvmaster" cat="Ap" hbank="63" lbank="8" prog="55"/>
+ <Patch name="PlucknGruv" cat="Ap" hbank="63" lbank="8" prog="56"/>
+ <Patch name="AllYouNeed" cat="Ap" hbank="63" lbank="8" prog="57"/>
+ <Patch name="Atlantis" cat="Ap" hbank="63" lbank="8" prog="58"/>
+ <Patch name="Pad&amp;Syn" cat="Ap" hbank="63" lbank="8" prog="59"/>
+ <Patch name="Warm AN" cat="Ap" hbank="63" lbank="8" prog="60"/>
+ <Patch name="BigOctave" cat="Ap" hbank="63" lbank="8" prog="61"/>
+ <Patch name="OldStrings" cat="Ap" hbank="63" lbank="8" prog="62"/>
+ <Patch name="Pro Lead" cat="Ap" hbank="63" lbank="8" prog="63"/>
+ <Patch name="Shine on" cat="Ap" hbank="63" lbank="8" prog="64"/>
+ <Patch name="Pianospher" cat="Ap" hbank="63" lbank="8" prog="65"/>
+ <Patch name="SuperStrgs" cat="Ap" hbank="63" lbank="8" prog="66"/>
+ <Patch name="Guitar&amp;Pad" cat="Ap" hbank="63" lbank="8" prog="67"/>
+ <Patch name="PluckPno" cat="Ap" hbank="63" lbank="8" prog="68"/>
+ <Patch name="Softstars" cat="Ap" hbank="63" lbank="8" prog="69"/>
+ <Patch name="Soft Tar" cat="Ap" hbank="63" lbank="8" prog="70"/>
+ <Patch name="Sorted" cat="Ap" hbank="63" lbank="8" prog="71"/>
+ <Patch name="Trendy" cat="Ap" hbank="63" lbank="8" prog="72"/>
+ <Patch name="Wah Feed" cat="Ap" hbank="63" lbank="8" prog="73"/>
+ <Patch name="S&amp;H Didge" cat="Ap" hbank="63" lbank="8" prog="74"/>
+ <Patch name="Old House" cat="Ap" hbank="63" lbank="8" prog="75"/>
+ <Patch name="HPF Dance" cat="Ap" hbank="63" lbank="8" prog="76"/>
+ <Patch name="Exodus" cat="Ap" hbank="63" lbank="8" prog="77"/>
+ <Patch name="S/H Gruv" cat="Ap" hbank="63" lbank="8" prog="78"/>
+ <Patch name="Dark Light" cat="Ap" hbank="63" lbank="8" prog="79"/>
+ <Patch name="Boom Bass" cat="Ap" hbank="63" lbank="8" prog="80"/>
+ <Patch name="Shandala" cat="Ap" hbank="63" lbank="8" prog="81"/>
+ <Patch name="Titan" cat="Ap" hbank="63" lbank="8" prog="82"/>
+ <Patch name="Puls Step" cat="Ap" hbank="63" lbank="8" prog="83"/>
+ <Patch name="Big Lead " cat="Ap" hbank="63" lbank="8" prog="84"/>
+ <Patch name="Squeaky" cat="Ap" hbank="63" lbank="8" prog="85"/>
+ <Patch name="Auto Wah" cat="Ap" hbank="63" lbank="8" prog="86"/>
+ <Patch name="MetalPiano" cat="Ap" hbank="63" lbank="8" prog="87"/>
+ <Patch name="BrokenStar" cat="Ap" hbank="63" lbank="8" prog="88"/>
+ <Patch name="Smooth" cat="Ap" hbank="63" lbank="8" prog="89"/>
+ <Patch name="Fuzzline" cat="Ap" hbank="63" lbank="8" prog="90"/>
+ <Patch name="Brief" cat="Ap" hbank="63" lbank="8" prog="91"/>
+ <Patch name="Dist-MW" cat="Ap" hbank="63" lbank="8" prog="92"/>
+ <Patch name="Hit&amp;Down" cat="Ap" hbank="63" lbank="8" prog="93"/>
+ <Patch name="Sand" cat="Ap" hbank="63" lbank="8" prog="94"/>
+ <Patch name="R&amp;B Steel" cat="Ap" hbank="63" lbank="8" prog="95"/>
+ <Patch name="LoSnake" cat="Ap" hbank="63" lbank="8" prog="96"/>
+ <Patch name="Additive" cat="Ap" hbank="63" lbank="8" prog="97"/>
+ <Patch name="Rap Lead 1" cat="Ap" hbank="63" lbank="8" prog="98"/>
+ <Patch name="Orch Hits" cat="Ap" hbank="63" lbank="8" prog="99"/>
+ <Patch name="Melo Trmlo" cat="Ap" hbank="63" lbank="8" prog="100"/>
+ <Patch name="DigiGrand2" cat="Ap" hbank="63" lbank="8" prog="101"/>
+ <Patch name="CheapEP" cat="Ap" hbank="63" lbank="8" prog="102"/>
+ <Patch name="AnaMarcato" cat="Ap" hbank="63" lbank="8" prog="103"/>
+ <Patch name="Evolve" cat="Ap" hbank="63" lbank="8" prog="104"/>
+ <Patch name="Wazzo" cat="Ap" hbank="63" lbank="8" prog="105"/>
+ <Patch name="Rap Lead 2" cat="Ap" hbank="63" lbank="8" prog="106"/>
+ <Patch name="Early Lead" cat="Ap" hbank="63" lbank="8" prog="107"/>
+ <Patch name="BDScrtch" cat="Ap" hbank="63" lbank="8" prog="108"/>
+ <Patch name="Mayday MW" cat="Ap" hbank="63" lbank="8" prog="109"/>
+ <Patch name="CoolWAH" cat="Ap" hbank="63" lbank="8" prog="110"/>
+ <Patch name="HipWahEP" cat="Ap" hbank="63" lbank="8" prog="111"/>
+ <Patch name="Rap Lead 3" cat="Ap" hbank="63" lbank="8" prog="112"/>
+ <Patch name="DarkBass" cat="Ap" hbank="63" lbank="8" prog="113"/>
+ <Patch name="HiPaWheel" cat="Ap" hbank="63" lbank="8" prog="114"/>
+ <Patch name="Pierced" cat="Ap" hbank="63" lbank="8" prog="115"/>
+ <Patch name="PortaBass" cat="Ap" hbank="63" lbank="8" prog="116"/>
+ <Patch name="Sine Lead" cat="Ap" hbank="63" lbank="8" prog="117"/>
+ <Patch name="UK Oam" cat="Ap" hbank="63" lbank="8" prog="118"/>
+ <Patch name="Rap" cat="Ap" hbank="63" lbank="8" prog="119"/>
+ <Patch name="Toyz" cat="Ap" hbank="63" lbank="8" prog="120"/>
+ <Patch name="Future Z" cat="Ap" hbank="63" lbank="8" prog="121"/>
+ <Patch name="Dead?Alive" cat="Ap" hbank="63" lbank="8" prog="122"/>
+ <Patch name="SlowSuckr" cat="Ap" hbank="63" lbank="8" prog="123"/>
+ <Patch name="Munchkins" cat="Ap" hbank="63" lbank="8" prog="124"/>
+ <Patch name="Snoop Bass" cat="Ap" hbank="63" lbank="8" prog="125"/>
+ <Patch name="BabeMagnet" cat="Ap" hbank="63" lbank="8" prog="126"/>
+ <Patch name="Rabino Hip" cat="Ap" hbank="63" lbank="8" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="GM">
+ <Patch name="NaturlGrnd" cat="Ap" hbank="0" lbank="0" prog="0"/>
+ <Patch name="Rock Brite" cat="Ap" hbank="0" lbank="0" prog="1"/>
+ <Patch name="CP 2001" cat="Ap" hbank="0" lbank="0" prog="2"/>
+ <Patch name="Honkytonk" cat="Ap" hbank="0" lbank="0" prog="3"/>
+ <Patch name="E.Piano 1" cat="Ap" hbank="0" lbank="0" prog="4"/>
+ <Patch name="E.Piano 2" cat="Ap" hbank="0" lbank="0" prog="5"/>
+ <Patch name="Harpsicord" cat="Ap" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Brite" cat="Ap" hbank="0" lbank="0" prog="7"/>
+ <Patch name="Clav" cat="Ap" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Celeste" cat="Ap" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Glocken" cat="Ap" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Music Box" cat="Ap" hbank="0" lbank="0" prog="11"/>
+ <Patch name="Vibes" cat="Ap" hbank="0" lbank="0" prog="12"/>
+ <Patch name="Marimba" cat="Ap" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Xylophone" cat="Ap" hbank="0" lbank="0" prog="14"/>
+ <Patch name="TublarBell" cat="Ap" hbank="0" lbank="0" prog="15"/>
+ <Patch name="Dulcimar" cat="Ap" hbank="0" lbank="0" prog="16"/>
+ <Patch name="Draw Organ" cat="Ap" hbank="0" lbank="0" prog="17"/>
+ <Patch name="Perc Organ" cat="Ap" hbank="0" lbank="0" prog="18"/>
+ <Patch name="Rock Organ" cat="Ap" hbank="0" lbank="0" prog="19"/>
+ <Patch name="ChurchOrgn" cat="Ap" hbank="0" lbank="0" prog="20"/>
+ <Patch name="Reed Organ" cat="Ap" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Accordion" cat="Ap" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Harmonica" cat="Ap" hbank="0" lbank="0" prog="23"/>
+ <Patch name="TangoAccrd" cat="Ap" hbank="0" lbank="0" prog="24"/>
+ <Patch name="Nylon" cat="Ap" hbank="0" lbank="0" prog="25"/>
+ <Patch name="Steel" cat="Ap" hbank="0" lbank="0" prog="26"/>
+ <Patch name="ModernJazz" cat="Ap" hbank="0" lbank="0" prog="27"/>
+ <Patch name="Clean" cat="Ap" hbank="0" lbank="0" prog="28"/>
+ <Patch name="Mute" cat="Ap" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Overdrive" cat="Ap" hbank="0" lbank="0" prog="30"/>
+ <Patch name="Distortion" cat="Ap" hbank="0" lbank="0" prog="31"/>
+ <Patch name="Harmonics" cat="Ap" hbank="0" lbank="0" prog="32"/>
+ <Patch name="Accoustic" cat="Ap" hbank="0" lbank="0" prog="33"/>
+ <Patch name="FingerBass" cat="Ap" hbank="0" lbank="0" prog="34"/>
+ <Patch name="Pick Bass" cat="Ap" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Fretless 2" cat="Ap" hbank="0" lbank="0" prog="36"/>
+ <Patch name="SimpleSlap" cat="Ap" hbank="0" lbank="0" prog="37"/>
+ <Patch name="Velo Slap" cat="Ap" hbank="0" lbank="0" prog="38"/>
+ <Patch name="SynthBass1" cat="Ap" hbank="0" lbank="0" prog="39"/>
+ <Patch name="SynthBass2" cat="Ap" hbank="0" lbank="0" prog="40"/>
+ <Patch name="Violin 2" cat="Ap" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Viola 2" cat="Ap" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Cello 2" cat="Ap" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Contrabass" cat="Ap" hbank="0" lbank="0" prog="44"/>
+ <Patch name="TremoloStr" cat="Ap" hbank="0" lbank="0" prog="45"/>
+ <Patch name="Pizz Harp" cat="Ap" hbank="0" lbank="0" prog="46"/>
+ <Patch name="Timpni+Cym" cat="Ap" hbank="0" lbank="0" prog="47"/>
+ <Patch name="StereoSt1" cat="Ap" hbank="0" lbank="0" prog="48"/>
+ <Patch name="StereoSt2" cat="Ap" hbank="0" lbank="0" prog="49"/>
+ <Patch name="Grand Saw" cat="Ap" hbank="0" lbank="0" prog="50"/>
+ <Patch name="SynStrings" cat="Ap" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Aah Choir" cat="Ap" hbank="0" lbank="0" prog="52"/>
+ <Patch name="Ooh Choir" cat="Ap" hbank="0" lbank="0" prog="53"/>
+ <Patch name="Syn Voice" cat="Ap" hbank="0" lbank="0" prog="54"/>
+ <Patch name="Orch.Hit" cat="Ap" hbank="0" lbank="0" prog="55"/>
+ <Patch name="Trumpet" cat="Ap" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trombone 2" cat="Ap" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Tuba" cat="Ap" hbank="0" lbank="0" prog="58"/>
+ <Patch name="MuteTrpt 2" cat="Ap" hbank="0" lbank="0" prog="59"/>
+ <Patch name="F.Horns" cat="Ap" hbank="0" lbank="0" prog="60"/>
+ <Patch name="Brass Sect" cat="Ap" hbank="0" lbank="0" prog="61"/>
+ <Patch name="SynthBrass" cat="Ap" hbank="0" lbank="0" prog="62"/>
+ <Patch name="Soft Brass" cat="Ap" hbank="0" lbank="0" prog="63"/>
+ <Patch name="Soprano 2" cat="Ap" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" cat="Ap" hbank="0" lbank="0" prog="65"/>
+ <Patch name="TenorSax 2" cat="Ap" hbank="0" lbank="0" prog="66"/>
+ <Patch name="Bari Sax" cat="Ap" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" cat="Ap" hbank="0" lbank="0" prog="68"/>
+ <Patch name="Eng.Horn" cat="Ap" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" cat="Ap" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" cat="Ap" hbank="0" lbank="0" prog="71"/>
+ <Patch name="Piccolo" cat="Ap" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" cat="Ap" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" cat="Ap" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Panflute" cat="Ap" hbank="0" lbank="0" prog="75"/>
+ <Patch name="Bottle" cat="Ap" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" cat="Ap" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" cat="Ap" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" cat="Ap" hbank="0" lbank="0" prog="79"/>
+ <Patch name="Square Ld" cat="Ap" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Saw Ld" cat="Ap" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Caliop Ld" cat="Ap" hbank="0" lbank="0" prog="82"/>
+ <Patch name="Chiff Ld" cat="Ap" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Charan Ld" cat="Ap" hbank="0" lbank="0" prog="84"/>
+ <Patch name="Voice Ld" cat="Ap" hbank="0" lbank="0" prog="85"/>
+ <Patch name="Fifth Ld" cat="Ap" hbank="0" lbank="0" prog="86"/>
+ <Patch name="Bass&amp;Ld" cat="Ap" hbank="0" lbank="0" prog="87"/>
+ <Patch name="New Age" cat="Ap" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Warm Pad" cat="Ap" hbank="0" lbank="0" prog="89"/>
+ <Patch name="Poly Synth" cat="Ap" hbank="0" lbank="0" prog="90"/>
+ <Patch name="Choir Pad" cat="Ap" hbank="0" lbank="0" prog="91"/>
+ <Patch name="BowedPad" cat="Ap" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Metal Pad" cat="Ap" hbank="0" lbank="0" prog="93"/>
+ <Patch name="Halo Pad" cat="Ap" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" cat="Ap" hbank="0" lbank="0" prog="95"/>
+ <Patch name="Rain Pad" cat="Ap" hbank="0" lbank="0" prog="96"/>
+ <Patch name="SoundTrack" cat="Ap" hbank="0" lbank="0" prog="97"/>
+ <Patch name="Crystal" cat="Ap" hbank="0" lbank="0" prog="98"/>
+ <Patch name="Atmosphere" cat="Ap" hbank="0" lbank="0" prog="99"/>
+ <Patch name="Brightness" cat="Ap" hbank="0" lbank="0" prog="100"/>
+ <Patch name="Goblin" cat="Ap" hbank="0" lbank="0" prog="101"/>
+ <Patch name="Echoes" cat="Ap" hbank="0" lbank="0" prog="102"/>
+ <Patch name="Sci-Fi" cat="Ap" hbank="0" lbank="0" prog="103"/>
+ <Patch name="Sitar" cat="Ap" hbank="0" lbank="0" prog="104"/>
+ <Patch name="Banjo" cat="Ap" hbank="0" lbank="0" prog="105"/>
+ <Patch name="Shamisen" cat="Ap" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Koto" cat="Ap" hbank="0" lbank="0" prog="107"/>
+ <Patch name="Kalimba" cat="Ap" hbank="0" lbank="0" prog="108"/>
+ <Patch name="Bagpipe" cat="Ap" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" cat="Ap" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" cat="Ap" hbank="0" lbank="0" prog="111"/>
+ <Patch name="Tinkerbel" cat="Ap" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Agogo" cat="Ap" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Steeldrum" cat="Ap" hbank="0" lbank="0" prog="114"/>
+ <Patch name="Woodblock" cat="Ap" hbank="0" lbank="0" prog="115"/>
+ <Patch name="TaikoDrum" cat="Ap" hbank="0" lbank="0" prog="116"/>
+ <Patch name="MelodicTom" cat="Ap" hbank="0" lbank="0" prog="117"/>
+ <Patch name="Synth Drum" cat="Ap" hbank="0" lbank="0" prog="118"/>
+ <Patch name="Rev Cymbal" cat="Ap" hbank="0" lbank="0" prog="119"/>
+ <Patch name="Fret Noise" cat="Ap" hbank="0" lbank="0" prog="120"/>
+ <Patch name="BreathNoiz" cat="Ap" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Seashore" cat="Ap" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Tweet" cat="Ap" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Telephone" cat="Ap" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Helicopter" cat="Ap" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Applause" cat="Ap" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Gunshot" cat="Ap" hbank="63" lbank="1" prog="127"/>
+ </PatchGroup>
+
+ <PatchGroup name="Drum Kits">
+ <drummap name="PoweredStd" hbank="63" lbank="32" prog="0">
+ <entry><name>Clave</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdNm1St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdBsSt1-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdLoSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRmSt</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdSonSt1-4</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClFtSt</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHHlf2St</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomLoSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOp2St</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomMdSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbell2</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashRL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideRL</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaOp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>TumbaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBlL1-3</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdBhR1-3</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdHipSt1-2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdLoSt</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdR&amp;B1</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdHeavy</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdRoom1</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdAmb</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdRoom2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="DryStandrd" hbank="63" lbank="32" prog="1">
+ <entry><name>Clave</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdNm1St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdBsSt2-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdHiSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdNmSt1-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRmSt</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdNmSt1-4</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdBsSt1-2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClSt1-4</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomLoSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpSt</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomMdSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbell2</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashRL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideRL</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaOp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>TumbaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBlL1-3</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdBhR1-3</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdHipSt1-2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdLoSt</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdR&amp;B1</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdHeavy</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdRoom1</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdAmb</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdRoom2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="RockSt1" hbank="63" lbank="32" prog="2">
+ <entry><name>AnaClick</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdNmSt1-2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdHiSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRk1St</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRkStSw</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdRkStSw</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkStSw</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdFk1St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdRkRolDSt</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdSon3St</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFkR1-2</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="RockSt2" hbank="63" lbank="32" prog="3">
+ <entry><name>AnaClick</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdLoSt</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdNm2St</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRk2St</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRk2St</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHHfOpRkSt</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkSt</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk1St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdRkRolDSt</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdFk2St</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdHiSt</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdSon4St</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdLSonSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdRk1St</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="RockMono1" hbank="63" lbank="32" prog="4">
+ <entry><name>AnaClick</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtL</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrL</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2L</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBrSwrAtL</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolL</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdLdwL1-4</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdDry1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdBh3R</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdNm2R</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRoom3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRim2</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdSon3L</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapL</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdSon4R</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlL</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRk2R</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoL</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlRkR</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomMdL</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkR</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomMdL</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomHiR</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiR</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideMono</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono2</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideMono</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdClRmR</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdHeavy</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkRim1R</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk2L</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdHipR1-2</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdBreakHrd</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdLdw4R</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdHiL</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdBhR1-3</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFkHL</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdFkSonL</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hip Hop1" hbank="63" lbank="32" prog="5">
+ <entry><name>SdHpStk2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>VoxHitRev</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HitBrass</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchSdR</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolR</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>ClaveT8</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdHip2R</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHpStk6R</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdHipDp</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdDodgL</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT8-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHpStk2</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdClpAna</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-1</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBdy</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoHi</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ShakerHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MarcsT8</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdHipStk8</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdJngl3</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>HandClapR</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdHipRm5</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Scratch H</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Scratch L</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchBdF</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchCmb</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchVoR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdBreak2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hip Hop2" hbank="63" lbank="32" prog="6">
+ <entry><name>BdT8-3</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdHip1</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapT9</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdSyn</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolR</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdHpStk4</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>DjembeEd</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHpStk6St</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdHipDp</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8-4</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHip3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdLofi</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlR</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClLoFi</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoL</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHClBreak</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomLoL</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpLoFi</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomLoL</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomHiL</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiL</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelRX11</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashR</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>RadioNz</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>RadioNz</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MarcsT8</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>ScratchSpn</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchStp</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>DoorSqk</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>ScratchBdF</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>TambrnHit</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdHuman2</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>StabHard</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdJngl1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk1St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>Wataiko</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>HH Hit</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>StabOrgan2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Sonar1</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>TurnTable</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Police</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="HipStick1" hbank="63" lbank="32" prog="7">
+ <entry><name>SdHipRm4</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>HiQ1</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HitOrch1</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolR</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>AnaClick</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdHipRm3</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdAnCRRim</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdHipDp</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdAnSmRim</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT8-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHpStk1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdHpStk2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-1</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBdy</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ShakerHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdAnSm</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdClRim3</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>AnaClick</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClRim2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Scratch H</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Scratch L</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchBdF</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchCmb</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchVoR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdJngl2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="T9HipKit1" hbank="63" lbank="32" prog="8">
+ <entry><name>ClaveT8</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT9-5</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>Quiek</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchCb3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolL</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>AnaClick</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdRimSE</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9-3</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT9-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT9-5</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT9-4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT9</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>CrashT9</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelAnCR</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>HandClapSt</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdT9-5</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Scratch H</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Scratch L</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchLoF</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchLoR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="R&amp;B Kit1" hbank="63" lbank="32" prog="9">
+ <entry><name>BdT9Hd3</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdAnCR</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdAnSmRim</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdClpAna</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRollMono</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdTimber</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdFMRim</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdVar1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdHipRm1</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdZapMid</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHipRm2</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdAnCR</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdT8-3</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdT8-3</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHClAnCR</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdT8-3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdT8-3</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>BdT8-3</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>BdT8-3</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>HiQ1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>HiQ1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>AnaShaker</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>VoxDrum</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>VoxDrum</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>HiQ1</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>HiQ2</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>ScratchSpn</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>TambrnHit</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Mother</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>VoxBell</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdR&amp;B1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>VoxAlk</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Udo Hi</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TranCho</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Swarm</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdPop</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Crash</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="R&amp;B Kit2" hbank="63" lbank="32" prog="1o">
+ <entry><name>BdRoom1</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>AnaClick</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdHpStk4</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>QuintTip</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>PickNoise1</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdNmSt1-4</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdNmSt1-2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdFk3R</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdR&amp;B1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRim3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdPcRim</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdT8-3</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdT8-3</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHClT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdT8-3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdT8-3</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>HiQ1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>HiQ1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AnaShaker</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>AnaShaker</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>VoxDrum</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>VoxDrum</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>HiQ1</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>HiQ2</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>ScratchSpn</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>TambrnHit</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdLofi</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdPicol</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdFM</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdHipDp</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdHammer</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdSlimy</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>HHHit</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdT8-3</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TurnTable</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="AnalogT9" hbank="63" lbank="32" prog="11">
+ <entry><name>BdT9-2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdAnCR</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdT9-5</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdT9-3</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdT9-4</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9-4</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT9-5</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-1</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT9-1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT9-2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Crash2</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideR</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>CongaT8</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>CongaT8</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AnaClick</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>CongaT8</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>ScratchH</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HiQ1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>ScratchL</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchL</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdPicol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdT8-5</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkRolDSt</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdJngl1</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdSus</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdD&amp;B1</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdBreak2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdDist</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdTekPower</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdDistRM</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="AnalogT8" hbank="63" lbank="32" prog="12">
+ <entry><name>BdT8-1</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdAnCR</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdT8-4</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdClpAna</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT8-3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>TomT8</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdT8-5</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdT8-3</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdT8-4</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT8-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>T8KickBass</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT8-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT8-2</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT8-1</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT8</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelT8</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Crash2</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideR</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>CongaT8</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>CongaT8</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaT8</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaT8</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaT8</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TimbaleLo1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Glass</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Glass</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MarcsT8</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>AnaShaker</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>AnaShaker</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdHip1</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdHip2</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdHipGate</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdBreak1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdBlip</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdFx1</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdHammer</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdZapHrd</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdDodgL</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdTekPower</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdSlimy</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Tekno Kit" hbank="63" lbank="32" prog="13">
+ <entry><name>BdSlimy</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdT8-5</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapT9</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT9-3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdHuman1</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdHip3</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdT9-4</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHip2</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdThkSkn</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT9-2</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdDist4</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdZapMid</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT8-5</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdSyn</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClLoFi</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpLoFi</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpLoFi</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT8</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Crash</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnAnCR</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>CrashL</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelT8</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>CrashSyn</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>CongaT8</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>CongaT8</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaT8</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaT8</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaT8</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Glass</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Glass</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MarcsT8</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HiQ1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>DjembeEd</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Wataiko</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>StabHard</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>HitOrch1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>StabOrgan2</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdRk1St</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>HH Hit</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Wataiko</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Sonar1</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>TurnTable</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Police</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="House Kit1" hbank="63" lbank="32" prog="14">
+ <entry><name>BdT9-4</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdT8-5</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HandClapSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdDodgL</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdT9-3</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdT8-1</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdT9-5</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9-1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT9-1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT9-2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-1</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Crash</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>VoxDrum</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>VoxDrum</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Mother</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>VoxBell</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdR&amp;B1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>VoxAlk</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Udo Hi</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TranCho</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Swarm</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdPop</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Crash</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="House Kit2" hbank="63" lbank="32" prog="15">
+ <entry><name>BdT9-2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapT9</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT9-2</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdHuman2</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdFx1</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdLofi</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9Hd2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdWood</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>NzBurst</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>Zap2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>SdSyn</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>SdSyn</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>SdSyn</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>SdSyn</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>SdSyn</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>SdSyn</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashSyn</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>CrashT8</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Crash</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaHeel</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TomSyn1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TomSyn1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AnaClick</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>SdRimSE</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>VoxDrum</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>VoxDrum</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>TambrnAnCR</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>AnaShaker</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>CowBelRX11</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>AnaShaker</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>TabraBya</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>TabraNah</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>TablaMut</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>VoxBell</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdPop</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Udo Hi</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdFXGate</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Mother</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdT9-1</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>Crash</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TurnTable</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Big Kit" hbank="63" lbank="32" prog="16">
+ <entry><name>BdFXGate</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BongoLo2</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdGM</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HandClapSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdGate2</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdPicol</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdRoom2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdRoom3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdGate</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdMdRim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdGate1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdAmb</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClD&amp;B</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlD&amp;B</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpD&amp;B</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>Bd+HH</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>Bd+HH</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdDist</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdFM</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdFMRim</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClappy</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRoom3</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdTimber</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdRk1St</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdRimSE</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdRk2St</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdRoom2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Break Kit" hbank="63" lbank="32" prog="17">
+ <entry><name>BdBrkDp</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdHip1St</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdLofi</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdClappy</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolDSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdGate1</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdMid</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdBrRim</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdHipRm4</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdBreak2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdBreak1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHipRm1</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdBreak3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdBreak1</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdBreak2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomLoSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRkSR</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlRkR</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomLoSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHHlfOpRkR</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomHiSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomHiSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideL</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaL</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashR</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelRX11</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideMono</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>CongaOp</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>TimbaleLo1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>TurnTable</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Mother</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Mind Bell</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdFx1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk2St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>LfoSeq</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>Ripper</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>NzBurst</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Police</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Fairwave</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>Swarm</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>RadioNz</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Drum'nBass" hbank="63" lbank="32" prog="18">
+ <entry><name>BdHipDp</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BongoLo2</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdTimber</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdD&amp;B3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdHammer</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Glass</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdD&amp;B2</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdHipDp</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHOp2St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdD&amp;B2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdMdRim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdD&amp;B1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>NzBurst</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdD&amp;B2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClD&amp;B</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlD&amp;B</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpD&amp;B</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>SdD&amp;B4</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>HHRvD&amp;B</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>Sine</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>Sine</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>P50-1</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>PlyFxSl17S</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TurnTable</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdDist</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdFM</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdFMRim</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClappy</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdTimber</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdDist5</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdRimSE</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdDist4</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdHip3</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdSlimy</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Bd+HH</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Acid Kit" hbank="63" lbank="32" prog="19">
+ <entry><name>BdATite</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdJngl3</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HandClapSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdT8-1</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdBhL1-3</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdBh3R</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdSonSt1-3</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdBsSt1-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdNm1R</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdFkHL</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdRkStk2R</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdLdwR1-4</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdLdwL1-4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRkSR</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHClRk2R</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHHlfOpRkR</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Crash</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupL</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideMono</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HiQ1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdT9-5</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdT9-5</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdT9-5</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdT9-5</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdD&amp;B1</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdHipGate</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdFXGate</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdBreak1</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdJngl1</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Jungle Kit" hbank="63" lbank="32" prog="20">
+ <entry><name>BdJngl2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdMdRim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdJngl3</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdJngl3</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdPcRim</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRollMono</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdWood</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdD&amp;B2</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdJngl2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdJngl3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdJngl1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHipRm4</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdJngl2</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdJngl1</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlL</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRkRSw</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomLoL</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlRkRSw</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomMdR</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkRSw</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomMdR</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomHiR</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiR</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TabraNah</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TabraBya</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>TimbaleLo1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>HHRvD&amp;B</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>RainLoop</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Scratch H</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>Scratch L</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdSyn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>IndusTom</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>PandieroOp</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Ripper</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>TelRing</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchLoR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TapeRewnd</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Electric" hbank="63" lbank="32" prog="21">
+ <entry><name>BdAnCR</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BdBlip</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdT8-5</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdHipRm2</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRollMono</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdT8-1</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdAnCR</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdT8-2</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT8-4</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdBlip</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT8-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT8-3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomSyn2</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomSyn2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomSyn2</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomSyn2</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomSyn2</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomSyn2</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Crash</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CrashSyn</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>CrashT8</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>SdRimSE</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>CrashSyn</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>TomT8</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>TomT8</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>TomT8</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>TomT8</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>TomT8</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>Applause</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>Telephone</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Heartbeat</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Bomb</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>HHOpLoFi</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Zap2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Zap1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HiQ1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>HitOrch2</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>HHClFx</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>HHOpFx</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>AnaShaker</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>TurnTable</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Mother</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Mind Bell</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdFx1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk2St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>LfoSeq</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>Ripper</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>NzBurst</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Police</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Fairwave</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>Swarm</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>RadioNz</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Human Kit" hbank="63" lbank="32" prog="22">
+ <entry><name>BdHuman1</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>ScratchVoF</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>Hit Uhh</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ScratchVoR</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdBreak1</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdAnCR</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdT9-1</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdSus</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdHpStk1</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdHuman1</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdHuman2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdWood</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHuman1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdDodgH</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdHuman2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdHuman1</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHOpHuman</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdHuman1</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpHuman</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdHuman1</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpHuman</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdHuman1</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>BdHuman1</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>NzBurst</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>BdHuman1</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>CrashT8</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>ScratchSdR</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>VoxDrum</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Crash2</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>StabAah</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ScratchLoF</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>ScratchLoR</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>TurnTable</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkRim1R</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Helicopter</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>StabHard</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdGate1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRk1St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdAnSm</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Sonar1</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Wataiko</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Wataiko</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>HH Hit</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>StabOrgan2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hard Kit" hbank="63" lbank="32" prog="23">
+ <entry><name>BdDist3</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdWood</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdGate1</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HandClapSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdGate2</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRollMono</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdClpAna</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdHip3</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Ripper</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdDistRM</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdDist2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdDist1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdMdRim</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdDist</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>NzBurst</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdFx2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomDistLo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomDistLo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomDistLo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomDistHi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomDistHi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomDistHi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>China</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnAnCR</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelT8</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdTimber</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdTimber</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>Bd+HH</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>Bd+HH</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Glass</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Glass</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FxGun2</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>FxGun1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Scratch H</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HiQ1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HiQ1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HiQ2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch L</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdDist</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdFM</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdFMRim</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClappy</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>IndusTom</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>IndusTom</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdRoom3</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>IndusTom</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdT9-4</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>SdHammer</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="DistrtdKit" hbank="63" lbank="32" prog="24">
+ <entry><name>AnaClick</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdNm1St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdRk2R</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdLdw1St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdBreak1</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRk2R</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdRkStk2R</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdSon1L</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapL</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdPcRim</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRk2R</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlRkR</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomAmbLo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkR</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashL</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomAmbHi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaL</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupR</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBel</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>ScratchCb2</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdPicol</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdHeavy</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdClpAna</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdPcRim</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdRoom2</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdMid</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdRoom3</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdMdRim</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdGate</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdGate1</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFXGate</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="AmbientKit" hbank="63" lbank="32" prog="25">
+ <entry><name>BdBlip</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>HiQ2</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdPcRim2</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HiQ1</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdAnCR</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>TomSyn1</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>HHClSyn</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>TomSyn1</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>HHClFx</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>TomSyn2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdAnCR</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHpStk3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdJngl1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdJngl1</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSyn</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Crash</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupMono</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Crash</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelT8</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Glass</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Glass</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MarcsT8</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Bird</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Stream</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>Thunder</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>Gunshot</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ClaveT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>TambrnAnCR</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CowBelAnCR</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>AnaShaker</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdT8-5</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Sonar1</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdT8-5</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>Resonator</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Bubble</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdT8-5</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>Bubble</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdT8-5</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Eery</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdT8-5</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>WindChime</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>WindChime</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Jazz Kit" hbank="63" lbank="32" prog="26">
+ <entry><name>BdRoom2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtR</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdHip1St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdFkML</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRmSt</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdLdw1St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdBhSt1-3</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomFlSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClFtSt</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomFlSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomLoSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOp2St</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomMdSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Cabasa1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdBlL1-3</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdFkAySt</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdBhR1-3</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdBlSt1-2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdLoL</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdDry2</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdSlimy</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdRollMono</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdNm2R</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Crash</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hip Hop3" hbank="63" lbank="32" prog="27">
+ <entry><name>SdT8Rim</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>VoxHitRev</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>StabHard</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchVoR</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRollMono</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>ClaveT8</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdHip1R</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHpStk4</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdAnCR</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdHipRm3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdHipDp</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHpStk5</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHipGate</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdLofi</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClHip</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdlHip</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpHip</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBdy</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ShakerHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdHpStk1</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdJngl1</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>HandClapR</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdBreakHvy</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Scratch L</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchLoF</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchLoR</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchBdF</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hip Hop4" hbank="63" lbank="32" prog="28">
+ <entry><name>SdHpStk2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>HiQ2</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HitOrch1</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchSpn</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdRkRolR</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>ClaveT8</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdBreak3</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHpStk7</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-4</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHpStk3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHipRm3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdHipRm4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdT8-3</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdT8-3</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdT8-3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdT8-3</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>BdT8-3</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>BdT8-3</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBdy</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ShakerHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdClRmSt</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>HandClapR</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdBreakRol</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>ScratchHiR</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchLoF</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchLoR</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchBdF</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchSdF</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchSdR</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdBreakHrd</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="HipStick2" hbank="63" lbank="32" prog="29">
+ <entry><name>SdHipRm4</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>NzBurst</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>TurnTable</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>Hit Uhh</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SnLvRolR</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>ClaveT8</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdAnSmRim</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdHipGate</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9-3</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHipRm3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHpStk3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdHpStk4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Crash2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideR</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>RideT9</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBdy</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ShakerHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Whistle</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>Whistle</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CuicaHi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CuicaLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdAnSmRim</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdClRmR</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdHipRm4</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClRim3</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Scratch L</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchLoF</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScratchBdR</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchCb2</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchStp</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Garage" hbank="63" lbank="32" prog="30">
+ <entry><name>BdHardLong</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BdT9-1</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>BdSlimy</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>BdAnHard</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>BdDist4</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>BdHipDp</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-3</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>BdSus</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdZapMid</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT8-2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>BdSlimy</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT8-1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdClappy</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>SdBl3St</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHOpSt</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpSt</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpSt</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>CrashT9</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>RideT9</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>AnaClick</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>ClaveT8</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>ClapT9</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>AnaShaker</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CongaT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>CongaT8</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdAnCR</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>AgogoHi</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>ChinaRL</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>HiQ2</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>HiQ1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>Zap2</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Zap1</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Zap2</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>DoorSqk</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>ScratchCb3</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>FretNoise</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>PlayFxGt5</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>Wurli+</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Wurli+</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>Wurli+</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>ResoXFade</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Sonar1</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>VoxDrum</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>VoxDrum</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>VoxDrum</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>HHClSyn</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>TriWv</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>TriWv</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>TriWv</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>TriWv</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>TriWv</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>TriWv</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>TriWv</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TriWv</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>TriWv</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>TriWv</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>TriWv</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>TriWv</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TriWv</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="ALL-ROUND" hbank="63" lbank="32" prog="31">
+ <entry><name>BdHardLong</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BdTekPower</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>BdDist5</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>BdDist3</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>BdDist1</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>BdBlip</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdAnSm</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>BdT8-2</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-1</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT9-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>BdSus</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT9-1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdT9Rim</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT9-4</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT9</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpT9</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT9</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>ClapT9</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>CongaT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideT9</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CongaT8</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>AnaClick</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>ClaveT8</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>MarcsT8</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>TambrnAnCR</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>AnaShaker</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelT8</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>CowBelAnCR</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdT8-1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdT8-2</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdT8-3</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>SdAnCR</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdJngl1</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>SdD&amp;B1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>SdD&amp;B4</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>SdR&amp;B1</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>SdHip1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>SdWood</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SdTimber</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>HHClT8-1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HHOpSt</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>HHOpSt</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>HHClLoFi</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>HHOpLoFi</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>HHClSyn</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>AnaShaker</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>TambrnSw</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Cowbell2</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>BongoHi1</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>WoodBlock</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>BdHardLong</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TumbaOp</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>QuintOp</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>FxGun2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Bomb</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdZapHrd</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>ScratchHp2</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Rock Multi" hbank="63" lbank="32" prog="32">
+ <entry><name>BdNmSt1-2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>TomLoSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>HHClFtSt</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>TomLoSt</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>TomMdSt</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHOpSt</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>TomHiSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRk2St</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClRkStSw</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHPdRkStSw</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpRkStSw</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashSt</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>RideSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ChinaSt</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Shaker1-2</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideSt</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BdRk1St</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>ClapT9</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>HHClRkStSw</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>TomRkLoSt</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>HHPdlRkSt</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>HHHfOpRkSt</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>TomRkMdSt</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>CrashSt</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>TomRkHiSt</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>RideL</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>ChinaSt</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>CupSt</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>TambrnHit</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>SplashSt</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>MamboBel</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>CrashSt</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>ShekereDw</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>RideR</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>TomFlSt</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>HHCl4St</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TomLoSt</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>TomMdSt</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>HHOp2St</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>TomMdSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TomHiSt</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hip Multi" hbank="63" lbank="32" prog="33">
+ <entry><name>BdT8-3</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdT8Rim</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdDodgL</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ClapT9</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdHip3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>BdT8-3</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>HHClTek</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdT8-3</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>HHOpTek</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT8-3</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHOpTek</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdT8-3</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdHipDp</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdHpStk4</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdHipRm1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapR</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdHip2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomT8</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomT8</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpAnCR</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomT8</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomT8</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomT8</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>CrashT9</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>TomT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>CrashSyn</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CrashSyn</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CrashT8</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnRX5</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SplashR</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>CowBelT8</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashT9</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>CowBelAnCR</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideT9</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BdHipDp</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdHpStk5</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdHipRm2</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>HandClapL</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdHip1</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>HHClRX5</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>HHClAnCR</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>TomT9Lo</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>CrashR</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>CrashT8</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>CrashSyn</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>CrashT8</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>TambrnHit</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>ChinaR</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>CowBelRX11</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>CrashL</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Cowbel1</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>RideR</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BdHipDp</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdHipStk8</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdHipGate</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdHip2</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdHipRm5</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>TomDistLo</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>HHClHip</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TomDistLo</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>HHPdlHip</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>TomDistHi</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>HHOpHip</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>TomDistHi</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TomAnSm</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Percussion" hbank="63" lbank="32" prog="34">
+ <entry><name>Wataiko</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>Udo Hi</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>DjembeOp</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>QuintTip</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>Udo Low</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>UdoFinger</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Udo Hi</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>TabraBya</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>TmbourimOp</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>TablaMut</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>TabraNah</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>TablaMut</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>Timpani</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>Hit Uhh</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>PickNoise1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ClapT9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>TriangleMt</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TriangleOp</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>Castanet</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>Castanet</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>Castanet</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>GuiroLong</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>GuiroShort</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>GuiroSwp</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>Vibraslap</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Clave</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>ClaveT8</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>CuicaLo</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CuicaHi</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>WoodBlock</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>TimbaleLo2</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>WoodBlock</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>ChaCha</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>TimbaleHi2</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>TmblPailaH</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>MamboBel</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>BongoLo3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>Cowbel1</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Cowbell2</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>BongoHHeel</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>AgogoLo</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>AgogoHi</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>TumbaHeel</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>TumbaTip</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>TumbaSlp</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>TumbaOp</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>CongaHeel</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>CongaTip</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>CongaSlp</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>Shaker1</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>CongaOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Cabasa1</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>Cabasa1-2</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>QuintHeel</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>QuintTip</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>QuintSlp</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Shaker2</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>QuintOp</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Caxixi1</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>TambrnShk</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TambrnHit</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>TambrnSw</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>TambrnHit</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SleighBel</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>Whistle</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Whistle</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Latin Perc" hbank="63" lbank="32" prog="35">
+ <entry><name>BdLSonSt</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdFkSt1/3</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>CrashSt</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SplashSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>TomLoSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>HHClSt1-4</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>TomLoSt</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>HHPdlSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>TomMdSt</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHOpSt</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>TomHiSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>TumbaTip</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>TumbaHeel</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>TumbaSlp</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>Clave</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>TumbaOp</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>CongaTip</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>CongaHeel</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>CongaSlp</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>ChaCha</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>CongaOp</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>MamboBdy</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>MamboBel</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>QuintTip</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>QuintHeel</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>QuintSlp</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>ChaCha</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>QuintOp</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>BongoLo1</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>BongoHHeel</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>BongoHi1</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>TimbaleLo1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>TimbaleHi1</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>TmblPailaH</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>WoodBlock</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>WoodBlock</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>ShekereDw</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>ShekereUp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>ShekereSap</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>MaracasSlr</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>MaracasStc</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>GuiroLong</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>GuiroShort</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>GuiroSwp</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>SurdoMt</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SurdoOp</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>PandierTip</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>PandroHeel</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>PandierThm</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>PandieroOp</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>TmbourmFng</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>TmbourimMt</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>TmbourimOp</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>AgogoLoTap</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>AgogoLo</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>AgogoHi</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>TriangleOp</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>TriangleMt</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>GanzaAc</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>GanzaBk</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>GanzaFw</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Cabasa1</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>Cabasa2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Caxixi1</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Caxixi2</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>CuicaLo</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>CuicaHi</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Whistle</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Whistle</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>Vibraslap</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BellTree</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Gtr/Bs Fx" hbank="63" lbank="32" prog="36">
+ <entry><name>PlayFxABa8</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>PlayFxGt4</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>PwrChdMono</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>PwrChdMono</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>PlayFxABa9</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>PickNoise2</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>PlayFxABa6</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>PickNoise2</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>PlayFxABa6</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>PlayFxGt7</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>PlyFxSlp1H</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>PlyFxSl12S</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>PlayFxGt3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>PlayFxABa9</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>PlayFxGt5</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>PickNoise2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>PickNoise2</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>FretNoise</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>PlyFxSlp2S</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>PickNoise2</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>PickNoise2</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>PlyFxSlp2H</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>PlayFxGt12</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>PlyFxSl18S</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>PickNoise2</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>PlayFxABa2</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>PlayFxABa1</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>PlayFxGt6</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>PlayFxGt4</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>PlayFxGt13</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>PlayFxGt12</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>PlayFxABa5</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>PlayFxABa6</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>PickNoise1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>PickNoise1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>PickNoise3</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>PlayFxGt7</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>PlayFxGt8</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>PickNoise2</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>PickNoise2</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>PlayFxGt3</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>PlyFxSl18S</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>PlayFxGt9</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>PlayFxGt10</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>PlayFxGt11</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>PlayFxGt1</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>PlayFxGt2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>PlayFxGt3</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>PlayFxGt4</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>PlyFxSl17S</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>PlyFxSlp7H</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>PlyFxSlp7S</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>PlyFxSl18H</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>PlyFxSl20S</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Wacko Kit" hbank="63" lbank="32" prog="37">
+ <entry><name>PlyFxSlp5H</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>PickNoise1</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>HHPdlD&amp;B</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HandClapL</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchVoF</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>IndusTom</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdWood</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>IndusTom</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdClpAna</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>IndusTom</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdFMRim</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdFXGate</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdFM</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapL</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdTimber</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>TomSyn2</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHClSyn</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>TomSyn2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>TomSyn2</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>TomSyn2</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>TomSyn2</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>HHOpMono</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>Sonar1</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>HHOpMono</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupL</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>SleighBel</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>HHOpT8-2</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>ResoXFade</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>CrashL</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>RainLoop</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>CupR</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>AirHoseL</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>AirHoseL</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>Udo Hi</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>MgBass2</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>MgBass3</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoLo</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>HHOpHuman</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>VoxHitRev</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>HiQ1</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>HiQ1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>LfoSeq</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>LfoSeq</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>BellAir</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>HH Hit</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>HH Hit</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>OohFB</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>OohFB</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>Mind Bell</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>Glass</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>Swarm</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>FxGun2</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>Lektronica</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>PlayFxGt12</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Gunshot</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Police</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>Ripper</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>PlayFxGt7</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>TapeRewnd</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>FxGun1</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Bomb</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Zap2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>NzBurst</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>StabGiant</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>StabOrch</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Wood Bits" hbank="63" lbank="32" prog="38">
+ <entry><name>ClaveT8</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdHpStk6L</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>GuiroLong</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdHpStk6R</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>GuiroLong</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>PlayFxABa9</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>Castanet</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>Stick</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>PlayFxABa7</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>TomT9Hi</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>PickNoise3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdClRim3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>Stick2</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>GuiroLong</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>Stick2</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>SdAnSmRim</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>ClapAnSm</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>Vibraslap</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>Seashore</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>Applause</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>SdRkStk1L</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnShk</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>Seashore</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>WoodBlock</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Applause</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Helicopter</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>SdRkStk2R</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>Castanet</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>Castanet</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>WoodBlock</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Stick</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Stick2</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>Caxixi1-2</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>Caxixi2</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>DoorSqk</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>DoorSqk</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroShort</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>Clave</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>WoodBlock</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>WoodBlock</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>DoorSqk</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>DoorSqk</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>WoodBlock</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>Clave</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>DoorSqk</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>HandClapL</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>ChaCha</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>BdJngl3</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>QuintSlp</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>BdRoom2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdHeavy</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdSlimy</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdGate1</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdGate</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Metal Bits" hbank="63" lbank="32" prog="39">
+ <entry><name>CowBelT8</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>HHCl4R</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>CupR</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>CupL</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>CupSt</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>FMMetal2</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>RideSt</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>RideSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>Cowbell2</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>HHCl1St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>ChaCha</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>Cowbell2</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>HHClSyn</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>HHOpTek</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HHClT8-2</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>HHClRX5</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>Cowbell2</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>HHOpT8-1</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>Cowbell2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>HHClSyn</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>Cowbell2</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>HHOpSyn</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>Cowbell2</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>Cowbell2</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>HHOpFx</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>Cowbell2</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>CupSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>HHOpAnCR</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnSw</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>HHOpFx</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>MamboBel</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>HHOpFx</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>SleighBel</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideMono</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>Vibraphone</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>Vibraphone</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>Tubular</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>Bell</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>BrBell</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmblPailaH</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmblPailaL</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>Bell</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>Bell</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>HHCl1St</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>HHOpAnCR</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>BellAir</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>WindChime</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>HHOpRkL</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>Lektronica</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>AgogoLo</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>Cowbel1</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>Cowbell2</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>HiLo</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>HiLo</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>TriangleMt</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>TriangleOp</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>WindChime</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SmBell</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SmBell</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>BrBell</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>Hibasi</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>Harpsicord</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>Vibraphone</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdBrRim</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>Gamelan2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>UdoFinger</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>FingerCym</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>Bell</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Hands Kit" hbank="63" lbank="32" prog="40">
+ <entry><name>TablaMut</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdBrSwrSt</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>PlyFxSl19S</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>PandierThm</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>TablaMut</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>PlyFxSl14H</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>TabraCmb</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>Wataiko</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>QuintTip</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdBrMt2St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>HandClapSt</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdFkAySt</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>Udo Low</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>TablaMut</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>Udo Low</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>TabraBya</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>Udo Hi</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>TabraNah</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>Udo Hi</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>UdoFinger</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>RideR</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>UdoFinger</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>CupSt</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>CupMono2</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>CupSt</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>TambrnHit</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>CupSt</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>Cowbel1</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>RideMono</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Vibraslap</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>RideL</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BongoHi1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BongoLo1-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>CongaTip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>CongaSlp</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>CongaOp</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>TmbaleH1-3</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>TmbaleL1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>AgogoHi</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>AgogoLo</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>TmbourmFng</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>TmbourmFng</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>HandClapL</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>HandClapL</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>GuiroLong</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>GuiroLong</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>UdoFinger</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>TabraBya</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>CongaTip</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Udo Hi</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Udo Hi</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>UdoFinger</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>FingerCym</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>TablaMut</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SleighBel</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BellTree</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>PlayFxABa4</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>PlayFxABa2</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>PlayFxABa3</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>TumbaOp</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>PlayFxABa1</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>PlayFxABa7</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Udo Low</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>DjembeCmb</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>TumbaSlp</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Scratches" hbank="63" lbank="32" prog="41">
+ <entry><name>Scratch</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>Scratch</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>ScratchD</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>ScratchH</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>ScratchH</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>ScratchL</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>ScratchL</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>ScratchB</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>ScratchB</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>ScratchS</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>ScratchS</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>ScratchV</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>Scratch</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>Scratch</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>ScratchD</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>ScratchH</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>ScratchH</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>ScratchL</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>ScratchL</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>ScratchB</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>ScratchB</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>ScratchS</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>ScratchS</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>ScratchV</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>ScratchV</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>ScratchS</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>ScratchS</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>ScrathcH</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>ScratchH</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>ScratchC</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>ScratchC</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>ScratchC</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>ScratchC</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>Scratch</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>Scratch</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>ScratchD</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>ScratchH</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>ScratchH</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>ScratchL</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>ScratchL</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>ScratchB</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>ScratchB</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>ScratchS</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>ScratchS</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>ScratchV</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>ScratchV</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>ScratchS</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>ScratchS</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>ScrathcH</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>ScratchH</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>ScratchC</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>ScratchC</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>ScratchC</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>ScratchC</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>ScratchD</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>ScratchH</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>ScratchH</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>ScratchL</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>ScratchL</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>ScratchB</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>ScratchB</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>ScratchS</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>ScratchS</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>ScratchV</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>ScratchV</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>ScratchS</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>ScratchS</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>ScrathcH</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>ScratchH</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>ScratchC</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>ScratchC</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="AcstSnares" hbank="63" lbank="32" prog="42">
+ <entry><name>SdNm1St</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdNm2St</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdNm3St</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdNm4St</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdFk1St</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdFk2St</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdFk3St</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdFkAySt</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdBs1St</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>SdBs2St</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdBs3St</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>SdSon1St</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>SdSon2St</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdSon3St</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdSon4St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdBl1St</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdBl2St</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>SdBl3St</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>SdBh1St</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>SdBh2St</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>SdBh3St</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>SdLdw1St</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>SdLdw2St</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>SdLdw3St</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>SdLdw4St</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>SdHip1St</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>SdHip2St</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>SdNm3St</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>SdFkAySt</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>SdBs3St</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>SdSon3St</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>SdBh3St</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>SdLdw3St</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SdLdw3R</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>SdPicol</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>SdPcRim</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>SdPcRim2</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>SdMid</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>SdMdRim</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>SdAmb</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>SdGate1</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>SdLdwHMono</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>SdBrRim</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>SdDry</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>SdHeavy</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SdGM</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>SdRkStk1St</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkStk2St</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdClRmSt</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdClRim2</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdClRim3</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdSon2St</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>SdRollMono</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdLdw3St</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>SdBrMtSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>SdBSwrAtSt</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="StSnares" hbank="63" lbank="32" prog="43">
+ <entry><name>SdNmSt1-4</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdNmSt1-3</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdNmSt2-4</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdNmSt1-2</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdNmSt2-3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdNmSt3-4</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdNm1St</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdNm2St</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdNm3St</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>SdNm4St</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdFkSt1-3</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>SdFkSt1-2</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>SdFkSt2-3</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdFkSt1/3</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdFk1St</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdFk2St</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdFk3St</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>SdFkAySt</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>SdBsSt1-3</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>SdBsSt1-2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>SdBsSt2-3</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>SdBsSt1/3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>SdBs1St</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>SdBs2St</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>SdBs3St</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>SdSonSt1-4</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>SdSonSt1-3</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>SdSonSt2-4</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>SdSonSt1-2</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>SdSonSt2-3</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>SdSonSt3-4</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SdSon1St</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>SdSon2St</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>SdSon3St</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>SdSon4St</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>SdBlSt1-3</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdBlSt1-2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdBlSt2-3</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdBlSt1/3</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>SdBl1St</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdBl2St</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>SdBl3St</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>SdBhSt1-3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>SdBhSt1-2</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>SdBhSt2-3</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>SdBhSt1/3</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>SdBh1St</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SdBh2St</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>SdBh3St</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>SdLdwSt1-4</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>SdLdwSt1-3</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>SdLdwSt2-4</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>SdLdwSt1-2</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>SdLdwSt2-3</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>SdLdwSt3-4</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>SdLdw1St</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>SdLdw2St</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>SdLdw3St</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>SdLdw4St</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>SdHip1St</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>SdRkMte1St</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>SdRkRim1St</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>SdRkMte2St</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>SdRkRim2St</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>SdRkFlmSt</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>SdRkRolSt</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>SdRkOp1St</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>SdRkRolDSt</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>SdRkOp2St</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>SnLvRolSt</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>SdNm3St</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="AllKicks" hbank="63" lbank="32" prog="44">
+ <entry><name>BdNmSt1-2</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BdNm1St</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>BdNm2St</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>BdNmL1-2</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>BdFkSt1-2</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>BdFk1St</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>BdFk2St</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdHiSt</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>BdLoSt</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdHSonSt</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>BdLSonSt</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdFkSonSt</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdRk1St</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>BdRk2St</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>BdDry1</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>BdDry2</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>BdPop</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdVar1</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>BdVar2</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdRoom1</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>BdRoom2</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdRoom3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>BdGate</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdFXGate</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>BdT9-1</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>BdT9-2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>BdT9-3</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>BdT9-4</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>BdT9Hd2</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>BdT8-1</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>BdT8-2</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>BdT8-3</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>BdAnSm</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>BdAnCR</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BdHuman1</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BdHuman2</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>BdBlip</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>BdJngl1</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>BdJngl2</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>BdJngl3</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>BdD&amp;B2</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>BdR&amp;B1</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>BdHipDp</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>BdBrkDp</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>BdBreak1</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>BdBreak2</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>BdBreakHrd</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>BdDist1</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>BdDist2</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>BdDist3</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>BdDist4</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>BdDist5</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>BdDistRM</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>Bd+HH</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>BdZapHrd</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>BdZapMid</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>BdSus</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>BdTekPower</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdHardLong</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>BdATite</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdAnHard</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>BdLofi</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdThkSkn</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>BdSlimy</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdSlimy</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdSlimy</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="DanceKicks" hbank="63" lbank="32" prog="45">
+ <entry><name>BdT9-1</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>BdT9-1</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>BdT9-2</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>BdT9-3</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>BdT9-3</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>BdT9-4</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>BdT9Hd2</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>BdHardLong</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>BdAnCR</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>BdT9-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>BdT9-2</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>BdT9-3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>BdT9-4</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>BdT9Hd2</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>BdT8-1</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>BdT8-2</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>BdT8-3</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>BdAnSm</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>BdAnCR</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>BdHuman1</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>BdHuman2</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>BdBlip</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>BdJngl1</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>BdJngl2</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>BdJngl3</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>BdD&amp;B1</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>BdD&amp;B2</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>BdR&amp;B1</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>BdHipDp</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>BdBrkDp</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>BdBreak1</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>BdBreak2</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>BdBreakHvy</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>BdBreakHrd</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>BdDist1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>BdDist2</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>BdDist3</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>BdDist4</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>BdDist5</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>BdDistRM</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>Bd+HH</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>BdFxHmr</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>BdZapHrd</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>BdZapMid</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>BdSus</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>BdTekPower</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>BdHardLong</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>BdATite</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>BdAnHard</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>BdLofi</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>BdThkSkn</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>BdSlimy</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>BdGate</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>BdFXGate</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>BdT9-1</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>BdT9-2</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>BdT9-3</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>BdT9-4</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>BdT9Hd1</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>BdT9Hd2</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>BdT9Hd3</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>BdBlpHd</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>BdR&amp;B2</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>BdZapMid</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>BdHardLong</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>BdATite</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+
+ <drummap name="Snare &amp; Fx" hbank="63" lbank="32" prog="46">
+ <entry><name>SdFx1</name> <enote>24</enote><anote>24</anote></entry>
+ <entry><name>SdFx2</name> <enote>25</enote><anote>25</anote></entry>
+ <entry><name>SdFx3</name> <enote>26</enote><anote>26</anote></entry>
+ <entry><name>SdFx4</name> <enote>27</enote><anote>27</anote></entry>
+ <entry><name>SdDist</name> <enote>28</enote><anote>28</anote></entry>
+ <entry><name>SdCut</name> <enote>29</enote><anote>29</anote></entry>
+ <entry><name>SdDodgH</name> <enote>30</enote><anote>30</anote></entry>
+ <entry><name>SdDodgL</name> <enote>31</enote><anote>31</anote></entry>
+ <entry><name>SdFM</name> <enote>32</enote><anote>32</anote></entry>
+ <entry><name>SdSyn</name> <enote>33</enote><anote>33</anote></entry>
+ <entry><name>SdHammer</name> <enote>34</enote><anote>34</anote></entry>
+ <entry><name>SdLofi</name> <enote>35</enote><anote>35</anote></entry>
+ <entry><name>SdT9-1</name> <enote>36</enote><anote>36</anote></entry>
+ <entry><name>SdT9-2</name> <enote>37</enote><anote>37</anote></entry>
+ <entry><name>SdT9-3</name> <enote>38</enote><anote>38</anote></entry>
+ <entry><name>SdT9-4</name> <enote>39</enote><anote>39</anote></entry>
+ <entry><name>SdT9-5</name> <enote>40</enote><anote>40</anote></entry>
+ <entry><name>SdT9Gate</name> <enote>41</enote><anote>41</anote></entry>
+ <entry><name>SdT8-1</name> <enote>42</enote><anote>42</anote></entry>
+ <entry><name>SdT8-2</name> <enote>43</enote><anote>43</anote></entry>
+ <entry><name>SdT8-3</name> <enote>44</enote><anote>44</anote></entry>
+ <entry><name>SdT8-4</name> <enote>45</enote><anote>45</anote></entry>
+ <entry><name>SdT8-5</name> <enote>46</enote><anote>46</anote></entry>
+ <entry><name>SdAnSm</name> <enote>47</enote><anote>47</anote></entry>
+ <entry><name>SdAnCR</name> <enote>48</enote><anote>48</anote></entry>
+ <entry><name>SdHuman1</name> <enote>49</enote><anote>49</anote></entry>
+ <entry><name>SdJngl1</name> <enote>50</enote><anote>50</anote></entry>
+ <entry><name>SdJngl2</name> <enote>51</enote><anote>51</anote></entry>
+ <entry><name>SdJngl3</name> <enote>52</enote><anote>52</anote></entry>
+ <entry><name>SdJnglFx</name> <enote>53</enote><anote>53</anote></entry>
+ <entry><name>SdD&amp;B1</name> <enote>54</enote><anote>54</anote></entry>
+ <entry><name>SdD&amp;B2</name> <enote>55</enote><anote>55</anote></entry>
+ <entry><name>SdD&amp;B3</name> <enote>56</enote><anote>56</anote></entry>
+ <entry><name>SdD&amp;B4</name> <enote>57</enote><anote>57</anote></entry>
+ <entry><name>SdR&amp;B1</name> <enote>58</enote><anote>58</anote></entry>
+ <entry><name>SdR&amp;B1Rm</name> <enote>59</enote><anote>59</anote></entry>
+ <entry><name>SdR&amp;B2</name> <enote>60</enote><anote>60</anote></entry>
+ <entry><name>SdHip1</name> <enote>61</enote><anote>61</anote></entry>
+ <entry><name>SdHip2</name> <enote>62</enote><anote>62</anote></entry>
+ <entry><name>SdHip3</name> <enote>63</enote><anote>63</anote></entry>
+ <entry><name>SdHipGate</name> <enote>64</enote><anote>64</anote></entry>
+ <entry><name>SdHipRm1</name> <enote>65</enote><anote>65</anote></entry>
+ <entry><name>SdHipRm2</name> <enote>66</enote><anote>66</anote></entry>
+ <entry><name>SdHipRm3</name> <enote>67</enote><anote>67</anote></entry>
+ <entry><name>SdHipRm4</name> <enote>68</enote><anote>68</anote></entry>
+ <entry><name>SdHipRm5</name> <enote>69</enote><anote>69</anote></entry>
+ <entry><name>SdBreak2</name> <enote>70</enote><anote>70</anote></entry>
+ <entry><name>SdBreakHvy</name> <enote>71</enote><anote>71</anote></entry>
+ <entry><name>PlayFxGt1</name> <enote>72</enote><anote>72</anote></entry>
+ <entry><name>PlayFxGt5</name> <enote>73</enote><anote>73</anote></entry>
+ <entry><name>PlayFxGt12</name> <enote>74</enote><anote>74</anote></entry>
+ <entry><name>PlayFxABa1</name> <enote>75</enote><anote>75</anote></entry>
+ <entry><name>PlayFxABa8</name> <enote>76</enote><anote>76</anote></entry>
+ <entry><name>PickNoise3</name> <enote>77</enote><anote>77</anote></entry>
+ <entry><name>Scratch H</name> <enote>78</enote><anote>78</anote></entry>
+ <entry><name>Scratch L</name> <enote>79</enote><anote>79</anote></entry>
+ <entry><name>ScratchDwn</name> <enote>80</enote><anote>80</anote></entry>
+ <entry><name>ScratchHiF</name> <enote>81</enote><anote>81</anote></entry>
+ <entry><name>ScratchStp</name> <enote>82</enote><anote>82</anote></entry>
+ <entry><name>ScratchSpn</name> <enote>83</enote><anote>83</anote></entry>
+ <entry><name>Ripper</name> <enote>84</enote><anote>84</anote></entry>
+ <entry><name>NzBurst</name> <enote>85</enote><anote>85</anote></entry>
+ <entry><name>Zap1</name> <enote>86</enote><anote>86</anote></entry>
+ <entry><name>Zap2</name> <enote>87</enote><anote>87</anote></entry>
+ <entry><name>HiQ1</name> <enote>88</enote><anote>88</anote></entry>
+ <entry><name>HiQ2</name> <enote>89</enote><anote>89</anote></entry>
+ <entry><name>Bomb</name> <enote>90</enote><anote>90</anote></entry>
+ <entry><name>FxGun1</name> <enote>91</enote><anote>91</anote></entry>
+ <entry><name>Electer</name> <enote>92</enote><anote>92</anote></entry>
+ <entry><name>HH Hit</name> <enote>93</enote><anote>93</anote></entry>
+ <entry><name>Mother</name> <enote>94</enote><anote>94</anote></entry>
+ <entry><name>HitOrch2</name> <enote>95</enote><anote>95</anote></entry>
+ <entry><name>StabGiant</name> <enote>96</enote><anote>96</anote></entry>
+ </drummap>
+ </PatchGroup>
+
+ <PatchGroup name="GM Drum Kits">
+ <Patch name="GM Drum" hbank="127" lbank="0" prog="0"/>
+ <Patch name="RockMono2" hbank="63" lbank="40" prog="0"/>
+ <Patch name="RockMono3" hbank="63" lbank="40" prog="1"/>
+ <Patch name="HipHop5" hbank="63" lbank="40" prog="2"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" init="127" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="FilterResonance" type="Control" l="71" init="64"/>
+ <Controller name="ReleaseTime" type="Control" l="72" init="64"/>
+ <Controller name="AttackTime" type="Control" l="73" init="64"/>
+ <Controller name="Brightness" type="Control" l="74" init="64"/>
+ <Controller name="DecayTime" type="Control" l="75" init="64"/>
+ <Controller name="VibrateRate" type="Control" l="76" init="64"/>
+ <Controller name="VibrateDepth" type="Control" l="77" init="64"/>
+ <Controller name="VibrateDelay" type="Control" l="78" init="64"/>
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="ReverbSendLevel" type="Control" l="91" init="40" />
+ <Controller name="ChorusSendLevel" type="Control" l="93" init="0" />
+ <Controller name="VariationSend" type="Control" l="94" init="0" />
+
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN14" l="1" min="-8192" max="8191" init="0" />
+
+ </MidiInstrument>
+ </muse>
diff --git a/muse_qt4_evolution/share/instruments/ZynAdd-1_4.idf b/muse_qt4_evolution/share/instruments/ZynAdd-1_4.idf
new file mode 100644
index 00000000..1534b53d
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/ZynAdd-1_4.idf
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="ZynAddSubFX-1.4">
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" init="127" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="FilterQ" type="Control" l="71" init="64"/>
+ <Controller name="FilterCutoff" type="Control" l="74" init="64"/>
+ <Controller name="Bandwidth" type="Control" l="75" init="64"/>
+ <Controller name="ModulationAmp" type="Control" l="76" init="127"/>
+ <Controller name="ResonanceCenter" type="Control" l="77" init="64"/>
+ <Controller name="ResonanceBandwidth" type="Control" l="78" init="64"/>
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+ </MidiInstrument>
+</muse>
+
diff --git a/muse_qt4_evolution/share/instruments/emuproteus2000.idf b/muse_qt4_evolution/share/instruments/emuproteus2000.idf
new file mode 100644
index 00000000..d55fb28e
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/emuproteus2000.idf
@@ -0,0 +1,1088 @@
+<?xml version="1.0"?>
+
+<muse version="1.0">
+ <MidiInstrument name="Emu Proteus 2000">
+<Init>
+</Init>
+<PatchGroup name="bpm">
+<Patch name="Build Up" hbank="4" lbank="2" prog="22"/>
+<Patch name="Jumping" hbank="4" lbank="4" prog="16"/>
+<Patch name="Move Clock !" hbank="4" lbank="2" prog="30"/>
+<Patch name="Something" hbank="4" lbank="2" prog="31"/>
+<Patch name="Electronica" hbank="4" lbank="2" prog="26"/>
+<Patch name="Waver" hbank="4" lbank="2" prog="33"/>
+<Patch name="DXBeat" hbank="4" lbank="2" prog="25"/>
+<Patch name="Free Love" hbank="4" lbank="2" prog="27"/>
+<Patch name="Choice 1" hbank="4" lbank="2" prog="23"/>
+<Patch name="Freeze" hbank="4" lbank="2" prog="28"/>
+<Patch name="Industry Vox" hbank="4" lbank="2" prog="29"/>
+<Patch name="The Man" hbank="4" lbank="2" prog="32"/>
+<Patch name="Deep Blue" hbank="4" lbank="2" prog="24"/>
+</PatchGroup>
+<PatchGroup name="brs">
+<Patch name="Horny" hbank="4" lbank="7" prog="115"/>
+<Patch name="Bone" hbank="4" lbank="7" prog="104"/>
+<Patch name="BreathyTBone" hbank="4" lbank="4" prog="21"/>
+<Patch name="Tromboned" hbank="4" lbank="0" prog="7"/>
+<Patch name="TrumpetMute2" hbank="4" lbank="0" prog="19"/>
+<Patch name="Profit 5" hbank="4" lbank="7" prog="120"/>
+<Patch name="Breathy Mute" hbank="4" lbank="7" prog="108"/>
+<Patch name="SforzadoEnsb" hbank="4" lbank="7" prog="126"/>
+<Patch name="ClassicBrass" hbank="4" lbank="7" prog="109"/>
+<Patch name="Synth Brass" hbank="4" lbank="0" prog="3"/>
+<Patch name="Bigga" hbank="4" lbank="7" prog="103"/>
+<Patch name="Dizzy" hbank="4" lbank="7" prog="111"/>
+<Patch name="Smiles" hbank="4" lbank="7" prog="123"/>
+<Patch name="Trumpet FX 4" hbank="4" lbank="0" prog="13"/>
+<Patch name="Section" hbank="4" lbank="7" prog="125"/>
+<Patch name="Ensemble" hbank="4" lbank="7" prog="113"/>
+<Patch name="Brass&amp;Bari" hbank="4" lbank="7" prog="105"/>
+<Patch name="Trmpt+Sect" hbank="4" lbank="0" prog="6"/>
+<Patch name="TrumpetMute1" hbank="4" lbank="0" prog="18"/>
+<Patch name="Brassy" hbank="4" lbank="7" prog="107"/>
+<Patch name="Trumpet FX 6" hbank="4" lbank="0" prog="15"/>
+<Patch name="Trumpet FX 7" hbank="4" lbank="0" prog="16"/>
+<Patch name="Miles" hbank="4" lbank="7" prog="119"/>
+<Patch name="SforzadoSect" hbank="4" lbank="0" prog="0"/>
+<Patch name="The Ensemble" hbank="4" lbank="0" prog="4"/>
+<Patch name="Barry Bones" hbank="4" lbank="7" prog="102"/>
+<Patch name="Reed &amp; Brass" hbank="4" lbank="7" prog="122"/>
+<Patch name="Trumpet FX 2" hbank="4" lbank="0" prog="11"/>
+<Patch name="Da Brasses" hbank="4" lbank="7" prog="110"/>
+<Patch name="Hans E4s" hbank="4" lbank="7" prog="114"/>
+<Patch name="B4PCM Brass" hbank="4" lbank="7" prog="101"/>
+<Patch name="RadioHorns" hbank="4" lbank="7" prog="121"/>
+<Patch name="Trumpet FX 5" hbank="4" lbank="0" prog="14"/>
+<Patch name="MellowDTrmp" hbank="4" lbank="7" prog="118"/>
+<Patch name="Trumpet FX 3" hbank="4" lbank="0" prog="12"/>
+<Patch name="Trumpet Hard" hbank="4" lbank="0" prog="17"/>
+<Patch name="5th Wave" hbank="4" lbank="7" prog="99"/>
+<Patch name="Trombrass" hbank="4" lbank="0" prog="8"/>
+<Patch name="Schwyn 1" hbank="4" lbank="7" prog="124"/>
+<Patch name="Airy Trumpet" hbank="4" lbank="7" prog="100"/>
+<Patch name="Movie Brass" hbank="4" lbank="4" prog="14"/>
+<Patch name="Louis" hbank="4" lbank="7" prog="117"/>
+<Patch name="DonsTrumpet" hbank="4" lbank="7" prog="112"/>
+<Patch name="Trump FX etc" hbank="4" lbank="0" prog="9"/>
+<Patch name="Huge Brass" hbank="4" lbank="7" prog="116"/>
+<Patch name="BrassControl" hbank="4" lbank="7" prog="106"/>
+<Patch name="Trumpet FX 1" hbank="4" lbank="0" prog="10"/>
+<Patch name="Soft Trumpet" hbank="4" lbank="0" prog="1"/>
+<Patch name="Too Bahhd" hbank="4" lbank="0" prog="5"/>
+<Patch name="Solo Bone" hbank="4" lbank="0" prog="2"/>
+</PatchGroup>
+<PatchGroup name="bs1">
+<Patch name="DynoStandUp" hbank="4" lbank="5" prog="40"/>
+<Patch name="Upright Days" hbank="4" lbank="5" prog="44"/>
+<Patch name="A Ku Stq" hbank="4" lbank="4" prog="4"/>
+<Patch name="Upright 2" hbank="4" lbank="5" prog="43"/>
+<Patch name="WalkinUprite" hbank="4" lbank="5" prog="45"/>
+<Patch name="Upright 1" hbank="4" lbank="5" prog="42"/>
+<Patch name="Acoustic" hbank="4" lbank="5" prog="39"/>
+<Patch name="Up ~" hbank="4" lbank="5" prog="41"/>
+</PatchGroup>
+<PatchGroup name="bs2">
+<Patch name="Fingered In" hbank="4" lbank="5" prog="57"/>
+<Patch name="Big Basic" hbank="4" lbank="5" prog="47"/>
+<Patch name="Slap 1" hbank="4" lbank="5" prog="77"/>
+<Patch name="EP 2" hbank="4" lbank="5" prog="49"/>
+<Patch name="Fretlessd" hbank="4" lbank="5" prog="63"/>
+<Patch name="Sloppiest" hbank="4" lbank="5" prog="86"/>
+<Patch name="Signfeld Pop" hbank="4" lbank="5" prog="76"/>
+<Patch name="Pop Slide 1" hbank="4" lbank="5" prog="72"/>
+<Patch name="Fretless 4" hbank="4" lbank="5" prog="61"/>
+<Patch name="Finger Harmz" hbank="4" lbank="5" prog="54"/>
+<Patch name="EP Bass" hbank="4" lbank="5" prog="51"/>
+<Patch name="SlapBack" hbank="4" lbank="5" prog="83"/>
+<Patch name="Slappity" hbank="4" lbank="5" prog="84"/>
+<Patch name="BADtube" hbank="4" lbank="5" prog="46"/>
+<Patch name="EP 3" hbank="4" lbank="5" prog="50"/>
+<Patch name="Finger1" hbank="4" lbank="5" prog="55"/>
+<Patch name="EP 1" hbank="4" lbank="5" prog="48"/>
+<Patch name="Harmonics" hbank="4" lbank="5" prog="67"/>
+<Patch name="MelloRounder" hbank="4" lbank="5" prog="68"/>
+<Patch name="Full Finger" hbank="4" lbank="5" prog="65"/>
+<Patch name="VeloFretless" hbank="4" lbank="5" prog="89"/>
+<Patch name="Pop Slide 3" hbank="4" lbank="5" prog="74"/>
+<Patch name="Finger2" hbank="4" lbank="5" prog="56"/>
+<Patch name="Slap 4" hbank="4" lbank="5" prog="80"/>
+<Patch name="Fretless 5" hbank="4" lbank="5" prog="62"/>
+<Patch name="Fing&amp;Harms 2" hbank="4" lbank="4" prog="35"/>
+<Patch name="FretterNot" hbank="4" lbank="5" prog="64"/>
+<Patch name="Fretless 2" hbank="4" lbank="5" prog="59"/>
+<Patch name="Pop" hbank="4" lbank="5" prog="71"/>
+<Patch name="Slop Bass" hbank="4" lbank="5" prog="85"/>
+<Patch name="Slap 5" hbank="4" lbank="5" prog="81"/>
+<Patch name="Pop Slide 2" hbank="4" lbank="5" prog="73"/>
+<Patch name="Picked" hbank="4" lbank="5" prog="69"/>
+<Patch name="Gruzzy Pop" hbank="4" lbank="5" prog="66"/>
+<Patch name="Finger Out" hbank="4" lbank="5" prog="53"/>
+<Patch name="Slap Me!" hbank="4" lbank="5" prog="82"/>
+<Patch name="Fing&amp;Harms 1" hbank="4" lbank="5" prog="52"/>
+<Patch name="Slap 2" hbank="4" lbank="5" prog="78"/>
+<Patch name="Slap 3" hbank="4" lbank="5" prog="79"/>
+<Patch name="ThickFretles" hbank="4" lbank="5" prog="88"/>
+<Patch name="Fretless 1" hbank="4" lbank="5" prog="58"/>
+<Patch name="Fretless 3" hbank="4" lbank="5" prog="60"/>
+<Patch name="Picked Off" hbank="4" lbank="5" prog="70"/>
+<Patch name="Pop Slide 4" hbank="4" lbank="5" prog="75"/>
+<Patch name="Spankin" hbank="4" lbank="5" prog="87"/>
+</PatchGroup>
+<PatchGroup name="bs3">
+<Patch name="Analow" hbank="4" lbank="5" prog="91"/>
+<Patch name="Lowness" hbank="4" lbank="5" prog="109"/>
+<Patch name="Ice" hbank="4" lbank="5" prog="106"/>
+<Patch name="Way Low Down" hbank="4" lbank="6" prog="6"/>
+<Patch name="Plex" hbank="4" lbank="5" prog="114"/>
+<Patch name="Super Sub" hbank="4" lbank="6" prog="2"/>
+<Patch name="Poly Style" hbank="4" lbank="5" prog="115"/>
+<Patch name="ZuB CoMpLeX" hbank="4" lbank="6" prog="8"/>
+<Patch name="Homeboy E" hbank="4" lbank="5" prog="105"/>
+<Patch name="Sub Core" hbank="4" lbank="5" prog="123"/>
+<Patch name="Below Sub" hbank="4" lbank="5" prog="97"/>
+<Patch name="Planet Bass" hbank="4" lbank="5" prog="113"/>
+<Patch name="Spanker" hbank="4" lbank="5" prog="121"/>
+<Patch name="Subtle Bass" hbank="4" lbank="6" prog="1"/>
+<Patch name="RoundabouT" hbank="4" lbank="5" prog="117"/>
+<Patch name="DB Sub" hbank="4" lbank="5" prog="99"/>
+<Patch name="Sub Drop" hbank="4" lbank="5" prog="124"/>
+<Patch name="HipPocket" hbank="4" lbank="5" prog="104"/>
+<Patch name="MassiveMini" hbank="4" lbank="5" prog="110"/>
+<Patch name="Real Low" hbank="4" lbank="5" prog="116"/>
+<Patch name="Easy" hbank="4" lbank="5" prog="100"/>
+<Patch name="JP-Moog 4" hbank="4" lbank="5" prog="107"/>
+<Patch name="Wide Chorus" hbank="4" lbank="6" prog="7"/>
+<Patch name="Sub Plunk" hbank="4" lbank="5" prog="125"/>
+<Patch name="Thip Kong" hbank="4" lbank="6" prog="5"/>
+<Patch name="ATC 3" hbank="4" lbank="5" prog="94"/>
+<Patch name="ATC 1" hbank="4" lbank="5" prog="92"/>
+<Patch name="SE Sub 1" hbank="4" lbank="5" prog="119"/>
+<Patch name="Big Basic" hbank="4" lbank="5" prog="98"/>
+<Patch name="Moogy Mudd" hbank="4" lbank="5" prog="112"/>
+<Patch name="Sub Pummeled" hbank="4" lbank="5" prog="127"/>
+<Patch name="Four U" hbank="4" lbank="5" prog="103"/>
+<Patch name="Line" hbank="4" lbank="5" prog="108"/>
+<Patch name="Thickley Dub" hbank="4" lbank="6" prog="4"/>
+<Patch name="SE Sub 2" hbank="4" lbank="5" prog="120"/>
+<Patch name="MooG DropS" hbank="4" lbank="5" prog="111"/>
+<Patch name="ATC 4" hbank="4" lbank="5" prog="95"/>
+<Patch name="Fat Sunbass" hbank="4" lbank="5" prog="102"/>
+<Patch name="Sub Poke" hbank="4" lbank="5" prog="126"/>
+<Patch name="SE Micro" hbank="4" lbank="5" prog="118"/>
+<Patch name="26" hbank="4" lbank="5" prog="90"/>
+<Patch name="The Tunnel" hbank="4" lbank="6" prog="3"/>
+<Patch name="Beauty" hbank="4" lbank="5" prog="96"/>
+<Patch name="ATC 2" hbank="4" lbank="5" prog="93"/>
+<Patch name="Sub-Basement" hbank="4" lbank="6" prog="0"/>
+<Patch name="Spkr Damage" hbank="4" lbank="5" prog="122"/>
+<Patch name="Face Bass" hbank="4" lbank="5" prog="101"/>
+</PatchGroup>
+<PatchGroup name="bs4">
+<Patch name="Reverend JB" hbank="4" lbank="6" prog="66"/>
+<Patch name="Synth 4" hbank="4" lbank="6" prog="81"/>
+<Patch name="Synth 2" hbank="4" lbank="6" prog="79"/>
+<Patch name="Lukes Best" hbank="4" lbank="6" prog="38"/>
+<Patch name="Power Q" hbank="4" lbank="6" prog="58"/>
+<Patch name="TB 1" hbank="4" lbank="6" prog="88"/>
+<Patch name="Q Attack" hbank="4" lbank="6" prog="60"/>
+<Patch name="TB 2" hbank="4" lbank="6" prog="89"/>
+<Patch name="Moog Tri" hbank="4" lbank="6" prog="49"/>
+<Patch name="Analogic" hbank="4" lbank="6" prog="12"/>
+<Patch name="Bondomatic" hbank="4" lbank="6" prog="18"/>
+<Patch name="Q Snap" hbank="4" lbank="6" prog="65"/>
+<Patch name="Sync Echo" hbank="4" lbank="6" prog="77"/>
+<Patch name="Sobered Up" hbank="4" lbank="6" prog="75"/>
+<Patch name="FP Powerbass" hbank="4" lbank="6" prog="33"/>
+<Patch name="Mini More" hbank="4" lbank="6" prog="45"/>
+<Patch name="Q Bass 1" hbank="4" lbank="6" prog="61"/>
+<Patch name="Synth 8" hbank="4" lbank="6" prog="85"/>
+<Patch name="Mini 2" hbank="4" lbank="6" prog="42"/>
+<Patch name="Walky Talk" hbank="4" lbank="4" prog="24"/>
+<Patch name="DB" hbank="4" lbank="6" prog="24"/>
+<Patch name="Acid 4 Ever" hbank="4" lbank="6" prog="11"/>
+<Patch name="Moog 1" hbank="4" lbank="6" prog="47"/>
+<Patch name="Mod da Wheel" hbank="4" lbank="6" prog="46"/>
+<Patch name="Memory Moog" hbank="4" lbank="6" prog="39"/>
+<Patch name="PuLs Ating" hbank="4" lbank="6" prog="59"/>
+<Patch name="Q Bass 2" hbank="4" lbank="6" prog="62"/>
+<Patch name="AnalogPlanet" hbank="4" lbank="4" prog="8"/>
+<Patch name="FM Sonic" hbank="4" lbank="6" prog="32"/>
+<Patch name="DB9 1" hbank="4" lbank="6" prog="25"/>
+<Patch name="FM" hbank="4" lbank="6" prog="31"/>
+<Patch name="Synth 6" hbank="4" lbank="6" prog="83"/>
+<Patch name="Deep Pocket" hbank="4" lbank="6" prog="27"/>
+<Patch name="Bass Hit" hbank="4" lbank="6" prog="14"/>
+<Patch name="Moog 2" hbank="4" lbank="6" prog="48"/>
+<Patch name="Brolins 1st" hbank="4" lbank="6" prog="20"/>
+<Patch name="Examination" hbank="4" lbank="6" prog="30"/>
+<Patch name="Q Bass 3" hbank="4" lbank="6" prog="63"/>
+<Patch name="Distorto-TB" hbank="4" lbank="6" prog="29"/>
+<Patch name="Q Bass 4" hbank="4" lbank="6" prog="64"/>
+<Patch name="Synth 7" hbank="4" lbank="6" prog="84"/>
+<Patch name="Synth" hbank="4" lbank="6" prog="87"/>
+<Patch name="Tres o Tres" hbank="4" lbank="6" prog="94"/>
+<Patch name="SE 2" hbank="4" lbank="6" prog="71"/>
+<Patch name="Mini 3" hbank="4" lbank="6" prog="43"/>
+<Patch name="Octave" hbank="4" lbank="6" prog="53"/>
+<Patch name="TB 3" hbank="4" lbank="6" prog="90"/>
+<Patch name="Tight Mo MW" hbank="4" lbank="6" prog="93"/>
+<Patch name="Synth 5" hbank="4" lbank="6" prog="82"/>
+<Patch name="DB9 2" hbank="4" lbank="6" prog="26"/>
+<Patch name="Bass ic" hbank="4" lbank="6" prog="15"/>
+<Patch name="Bernie Funk" hbank="4" lbank="6" prog="16"/>
+<Patch name="Acid" hbank="4" lbank="6" prog="10"/>
+<Patch name="Brite Beauty" hbank="4" lbank="6" prog="19"/>
+<Patch name="JP4 Bass" hbank="4" lbank="6" prog="36"/>
+<Patch name="Crystal Meth" hbank="4" lbank="6" prog="22"/>
+<Patch name="HaLLoW !" hbank="4" lbank="6" prog="34"/>
+<Patch name="Ripped3" hbank="4" lbank="6" prog="67"/>
+<Patch name="Simple 3" hbank="4" lbank="6" prog="74"/>
+<Patch name="Sugar Freak" hbank="4" lbank="4" prog="18"/>
+<Patch name="Big Sync" hbank="4" lbank="6" prog="17"/>
+<Patch name="SE 1" hbank="4" lbank="6" prog="70"/>
+<Patch name="Mini 1" hbank="4" lbank="6" prog="41"/>
+<Patch name="Not So Mini" hbank="4" lbank="6" prog="51"/>
+<Patch name="Thunk" hbank="4" lbank="6" prog="92"/>
+<Patch name="Mini 4" hbank="4" lbank="6" prog="44"/>
+<Patch name="Osc-Kars" hbank="4" lbank="6" prog="55"/>
+<Patch name="Digi-Punch" hbank="4" lbank="6" prog="28"/>
+<Patch name="Walky Talk2" hbank="4" lbank="6" prog="95"/>
+<Patch name="Synth 9" hbank="4" lbank="6" prog="86"/>
+<Patch name="In the Money" hbank="4" lbank="6" prog="35"/>
+<Patch name="Occitan Root" hbank="4" lbank="6" prog="52"/>
+<Patch name="Plexy" hbank="4" lbank="6" prog="57"/>
+<Patch name="Micro" hbank="4" lbank="6" prog="40"/>
+<Patch name="Org Gruz" hbank="4" lbank="6" prog="54"/>
+<Patch name="Saw Sync" hbank="4" lbank="6" prog="68"/>
+<Patch name="Shift" hbank="4" lbank="6" prog="73"/>
+<Patch name="Synth 1" hbank="4" lbank="6" prog="78"/>
+<Patch name="Asidic Bass" hbank="4" lbank="6" prog="13"/>
+<Patch name="01.10.2005" hbank="4" lbank="6" prog="23"/>
+<Patch name="3 O WorM" hbank="4" lbank="6" prog="9"/>
+<Patch name="StraytUPjunO" hbank="4" lbank="6" prog="76"/>
+<Patch name="TB 4" hbank="4" lbank="6" prog="91"/>
+<Patch name="SE One" hbank="4" lbank="6" prog="72"/>
+<Patch name="Sawz" hbank="4" lbank="6" prog="69"/>
+<Patch name="Mr. Clean" hbank="4" lbank="6" prog="50"/>
+<Patch name="Juno" hbank="4" lbank="6" prog="37"/>
+<Patch name="PercoOrgana" hbank="4" lbank="6" prog="56"/>
+<Patch name="Synth 3" hbank="4" lbank="6" prog="80"/>
+<Patch name="Buzza" hbank="4" lbank="6" prog="21"/>
+</PatchGroup>
+<PatchGroup name="bs5">
+<Patch name="Organ Bass 1" hbank="4" lbank="6" prog="110"/>
+<Patch name="WetMonica" hbank="4" lbank="7" prog="4"/>
+<Patch name="Street" hbank="4" lbank="6" prog="124"/>
+<Patch name="Buzzed" hbank="4" lbank="6" prog="97"/>
+<Patch name="Ultimate 3" hbank="4" lbank="7" prog="1"/>
+<Patch name="Mozambique" hbank="4" lbank="6" prog="107"/>
+<Patch name="Thickener" hbank="4" lbank="6" prog="126"/>
+<Patch name="Organ Bass 2" hbank="4" lbank="6" prog="111"/>
+<Patch name="Ultimate 2" hbank="4" lbank="7" prog="0"/>
+<Patch name="DX 2" hbank="4" lbank="6" prog="99"/>
+<Patch name="Funkalicous" hbank="4" lbank="6" prog="102"/>
+<Patch name="Sonics" hbank="4" lbank="6" prog="120"/>
+<Patch name="Oh Yea" hbank="4" lbank="6" prog="109"/>
+<Patch name="Soft &amp; Hard" hbank="4" lbank="6" prog="119"/>
+<Patch name="Home 1" hbank="4" lbank="6" prog="103"/>
+<Patch name="All Purpose" hbank="4" lbank="6" prog="96"/>
+<Patch name="Phlappy" hbank="4" lbank="6" prog="113"/>
+<Patch name="Ultimate 1" hbank="4" lbank="6" prog="127"/>
+<Patch name="Standard" hbank="4" lbank="6" prog="123"/>
+<Patch name="Pocket" hbank="4" lbank="6" prog="114"/>
+<Patch name="Smoothy" hbank="4" lbank="6" prog="118"/>
+<Patch name="Pure" hbank="4" lbank="6" prog="115"/>
+<Patch name="DX 1" hbank="4" lbank="6" prog="98"/>
+<Patch name="Tapp" hbank="4" lbank="6" prog="125"/>
+<Patch name="VP1 2" hbank="4" lbank="7" prog="3"/>
+<Patch name="Home 2" hbank="4" lbank="6" prog="104"/>
+<Patch name="Perco" hbank="4" lbank="6" prog="112"/>
+<Patch name="VP1 1" hbank="4" lbank="7" prog="2"/>
+<Patch name="Say What" hbank="4" lbank="6" prog="116"/>
+<Patch name="DX 3" hbank="4" lbank="6" prog="100"/>
+<Patch name="Hybrid" hbank="4" lbank="6" prog="105"/>
+<Patch name="Feeder" hbank="4" lbank="6" prog="101"/>
+<Patch name="Spitt" hbank="4" lbank="6" prog="121"/>
+<Patch name="Slider" hbank="4" lbank="6" prog="117"/>
+<Patch name="Spread" hbank="4" lbank="6" prog="122"/>
+<Patch name="Mozamdrip" hbank="4" lbank="6" prog="108"/>
+<Patch name="Knocker" hbank="4" lbank="6" prog="106"/>
+</PatchGroup>
+<PatchGroup name="gtr">
+<Patch name="Heavy Mon" hbank="4" lbank="7" prog="21"/>
+<Patch name="Distorter-X" hbank="4" lbank="7" prog="10"/>
+<Patch name="Cry Babies" hbank="4" lbank="7" prog="8"/>
+<Patch name="Wah Minor" hbank="4" lbank="7" prog="55"/>
+<Patch name="Nye Lonny" hbank="4" lbank="7" prog="36"/>
+<Patch name="Chuckin" hbank="4" lbank="7" prog="7"/>
+<Patch name="TwangyNylon" hbank="4" lbank="7" prog="53"/>
+<Patch name="Power 1" hbank="4" lbank="7" prog="42"/>
+<Patch name="Rezatronics" hbank="4" lbank="7" prog="44"/>
+<Patch name="Waaaa Waaaa" hbank="4" lbank="7" prog="54"/>
+<Patch name="Looz 12s" hbank="4" lbank="7" prog="26"/>
+<Patch name="Slippery Joe" hbank="4" lbank="7" prog="45"/>
+<Patch name="Electric 2" hbank="4" lbank="7" prog="15"/>
+<Patch name="Carlos" hbank="4" lbank="7" prog="5"/>
+<Patch name="ThickPick" hbank="4" lbank="7" prog="52"/>
+<Patch name="MutableJazz" hbank="4" lbank="7" prog="29"/>
+<Patch name="Metal Head" hbank="4" lbank="7" prog="28"/>
+<Patch name="EmmTV Crunch" hbank="4" lbank="7" prog="17"/>
+<Patch name="FullNylon" hbank="4" lbank="7" prog="19"/>
+<Patch name="WaaKeeGa" hbank="4" lbank="4" prog="38"/>
+<Patch name="LA Strata" hbank="4" lbank="7" prog="25"/>
+<Patch name="Power 2" hbank="4" lbank="7" prog="43"/>
+<Patch name="MellowElect" hbank="4" lbank="7" prog="27"/>
+<Patch name="SlipSly" hbank="4" lbank="7" prog="46"/>
+<Patch name="Steel Real" hbank="4" lbank="7" prog="49"/>
+<Patch name="Dark Gut" hbank="4" lbank="7" prog="9"/>
+<Patch name="Grusty" hbank="4" lbank="4" prog="3"/>
+<Patch name="FlangnVioWah" hbank="4" lbank="7" prog="18"/>
+<Patch name="El Mute 2" hbank="4" lbank="7" prog="13"/>
+<Patch name="JangleWah" hbank="4" lbank="7" prog="22"/>
+<Patch name="FunkChunk" hbank="4" lbank="7" prog="20"/>
+<Patch name="Mute-Ted" hbank="4" lbank="7" prog="32"/>
+<Patch name="Nrysty12" hbank="4" lbank="7" prog="35"/>
+<Patch name="El Mute 1" hbank="4" lbank="7" prog="12"/>
+<Patch name="Stolen7Away" hbank="4" lbank="4" prog="13"/>
+<Patch name="ElectricDis" hbank="4" lbank="7" prog="16"/>
+<Patch name="Nylonistic" hbank="4" lbank="7" prog="40"/>
+<Patch name="Dolobroso" hbank="4" lbank="7" prog="11"/>
+<Patch name="Jazzed" hbank="4" lbank="7" prog="24"/>
+<Patch name="Nylon Silk" hbank="4" lbank="7" prog="38"/>
+<Patch name="WahWah Spice" hbank="4" lbank="7" prog="56"/>
+<Patch name="Pantastic" hbank="4" lbank="7" prog="41"/>
+<Patch name="Cast Teller" hbank="4" lbank="7" prog="6"/>
+<Patch name="The 12String" hbank="4" lbank="7" prog="51"/>
+<Patch name="Spy" hbank="4" lbank="7" prog="47"/>
+<Patch name="Jazz" hbank="4" lbank="7" prog="23"/>
+<Patch name="Strat Wow" hbank="4" lbank="7" prog="50"/>
+<Patch name="Electric 1" hbank="4" lbank="7" prog="14"/>
+<Patch name="Mutes" hbank="4" lbank="7" prog="33"/>
+<Patch name="Steel" hbank="4" lbank="7" prog="48"/>
+<Patch name="NyloSteel" hbank="4" lbank="4" prog="32"/>
+<Patch name="Mutant Pick" hbank="4" lbank="7" prog="30"/>
+<Patch name="Nylon" hbank="4" lbank="7" prog="37"/>
+<Patch name="Nrysty" hbank="4" lbank="7" prog="34"/>
+<Patch name="Nylon Vox" hbank="4" lbank="7" prog="39"/>
+<Patch name="Mute Gtr vsw" hbank="4" lbank="7" prog="31"/>
+</PatchGroup>
+<PatchGroup name="hit">
+<Patch name="Dance Hits 1" hbank="4" lbank="2" prog="48"/>
+<Patch name="MasterBlast" hbank="4" lbank="4" prog="31"/>
+<Patch name="Guitars" hbank="4" lbank="2" prog="54"/>
+<Patch name="Brass Hits 2" hbank="4" lbank="2" prog="42"/>
+<Patch name="Brass Hitz" hbank="4" lbank="2" prog="46"/>
+<Patch name="Vox Grunts" hbank="4" lbank="2" prog="65"/>
+<Patch name="Dirt Strings" hbank="4" lbank="2" prog="51"/>
+<Patch name="Fashion" hbank="4" lbank="2" prog="52"/>
+<Patch name="Big Band" hbank="4" lbank="2" prog="37"/>
+<Patch name="Garagiste" hbank="4" lbank="2" prog="53"/>
+<Patch name="Alta Trumpt" hbank="4" lbank="2" prog="34"/>
+<Patch name="Sax Scandals" hbank="4" lbank="2" prog="61"/>
+<Patch name="Orch Fatlow" hbank="4" lbank="2" prog="56"/>
+<Patch name="Brass Hits 3" hbank="4" lbank="2" prog="43"/>
+<Patch name="Vox Hits 1" hbank="4" lbank="2" prog="66"/>
+<Patch name="Organ Hits 1" hbank="4" lbank="2" prog="57"/>
+<Patch name="String Hits" hbank="4" lbank="2" prog="63"/>
+<Patch name="Punch Prak" hbank="4" lbank="2" prog="60"/>
+<Patch name="Dance Hits 2" hbank="4" lbank="2" prog="49"/>
+<Patch name="Guitarzits" hbank="4" lbank="2" prog="55"/>
+<Patch name="Deep Brass" hbank="4" lbank="2" prog="50"/>
+<Patch name="Synth Basses" hbank="4" lbank="2" prog="64"/>
+<Patch name="Poker" hbank="4" lbank="2" prog="59"/>
+<Patch name="Skweeler" hbank="4" lbank="2" prog="62"/>
+<Patch name="Brass Bite" hbank="4" lbank="2" prog="40"/>
+<Patch name="Vox Hitties" hbank="4" lbank="2" prog="68"/>
+<Patch name="Bass Slips" hbank="4" lbank="2" prog="35"/>
+<Patch name="Brass Hits 1" hbank="4" lbank="2" prog="41"/>
+<Patch name="Basses" hbank="4" lbank="2" prog="36"/>
+<Patch name="Da Danzits" hbank="4" lbank="2" prog="47"/>
+<Patch name="Brass Batz" hbank="4" lbank="2" prog="39"/>
+<Patch name="Organ Hits 2" hbank="4" lbank="2" prog="58"/>
+<Patch name="Brass Hits 4" hbank="4" lbank="2" prog="44"/>
+<Patch name="Biggy Brass" hbank="4" lbank="2" prog="38"/>
+<Patch name="Brass Hittas" hbank="4" lbank="2" prog="45"/>
+<Patch name="Vox Hits 2" hbank="4" lbank="2" prog="67"/>
+</PatchGroup>
+<PatchGroup name="kb1">
+<Patch name="Sung Piano" hbank="4" lbank="4" prog="57"/>
+<Patch name="Concert Pno" hbank="4" lbank="4" prog="42"/>
+<Patch name="Grande" hbank="4" lbank="4" prog="45"/>
+<Patch name="Layer Piano" hbank="4" lbank="4" prog="48"/>
+<Patch name="Piano&amp;Strng2" hbank="4" lbank="4" prog="52"/>
+<Patch name="HonkTonkeyz" hbank="4" lbank="4" prog="46"/>
+<Patch name="Chime Grand" hbank="4" lbank="4" prog="41"/>
+<Patch name="StereoGrand2" hbank="4" lbank="4" prog="54"/>
+<Patch name="StereoGrand1" hbank="4" lbank="4" prog="53"/>
+<Patch name="Techno Piano" hbank="4" lbank="4" prog="58"/>
+<Patch name="Miami Grand" hbank="4" lbank="4" prog="49"/>
+<Patch name="Piano Mio" hbank="4" lbank="4" prog="50"/>
+<Patch name="Dance Pno" hbank="4" lbank="4" prog="43"/>
+<Patch name="Piano&amp;Strng1" hbank="4" lbank="4" prog="51"/>
+<Patch name="Klassical" hbank="4" lbank="4" prog="47"/>
+<Patch name="Elecro7CP" hbank="4" lbank="4" prog="44"/>
+<Patch name="StereoGrand3" hbank="4" lbank="4" prog="55"/>
+<Patch name="StereoGrand4" hbank="4" lbank="4" prog="56"/>
+<Patch name="Ballad Grand" hbank="4" lbank="4" prog="40"/>
+<Patch name="And Voice" hbank="4" lbank="4" prog="10"/>
+<Patch name="DynamicGrand" hbank="4" lbank="4" prog="0"/>
+</PatchGroup>
+<PatchGroup name="kb2">
+<Patch name="Med Dyno" hbank="4" lbank="4" prog="73"/>
+<Patch name="Hard EP" hbank="4" lbank="4" prog="71"/>
+<Patch name="FM EP 1" hbank="4" lbank="4" prog="67"/>
+<Patch name="WurlitzerSft" hbank="4" lbank="4" prog="81"/>
+<Patch name="Wurlitzer Hd" hbank="4" lbank="4" prog="80"/>
+<Patch name="WurlyDLayer" hbank="4" lbank="4" prog="82"/>
+<Patch name="FM El Piano" hbank="4" lbank="4" prog="66"/>
+<Patch name="Supatramp EP" hbank="4" lbank="4" prog="79"/>
+<Patch name="Classic EP 4" hbank="4" lbank="4" prog="63"/>
+<Patch name="Classic EP 3" hbank="4" lbank="4" prog="62"/>
+<Patch name="PrettyLushEP" hbank="4" lbank="4" prog="76"/>
+<Patch name="Melosoul EP" hbank="4" lbank="4" prog="28"/>
+<Patch name="FM2Classic" hbank="4" lbank="4" prog="69"/>
+<Patch name="Pretty EP" hbank="4" lbank="4" prog="75"/>
+<Patch name="FM EP 2" hbank="4" lbank="4" prog="68"/>
+<Patch name="Hard Tine" hbank="4" lbank="4" prog="72"/>
+<Patch name="Classic EP 1" hbank="4" lbank="4" prog="60"/>
+<Patch name="DooGie" hbank="4" lbank="4" prog="64"/>
+<Patch name="Classic EP 2" hbank="4" lbank="4" prog="61"/>
+<Patch name="Dynofunk EP" hbank="4" lbank="4" prog="65"/>
+<Patch name="Hard Dyno" hbank="4" lbank="4" prog="70"/>
+<Patch name="Suitcase EP" hbank="4" lbank="4" prog="78"/>
+<Patch name="Ballad Tine" hbank="4" lbank="4" prog="59"/>
+<Patch name="Rezzroadz" hbank="4" lbank="4" prog="77"/>
+<Patch name="Lovers Fm EP" hbank="4" lbank="4" prog="36"/>
+<Patch name="WideSuitcase" hbank="4" lbank="4" prog="6"/>
+<Patch name="Med EP" hbank="4" lbank="4" prog="74"/>
+</PatchGroup>
+<PatchGroup name="kb3">
+<Patch name="Simple Organ" hbank="4" lbank="4" prog="111"/>
+<Patch name="Disco" hbank="4" lbank="4" prog="92"/>
+<Patch name="DirtyHertz" hbank="4" lbank="4" prog="91"/>
+<Patch name="Full Organ" hbank="4" lbank="4" prog="97"/>
+<Patch name="Rockin B" hbank="4" lbank="4" prog="5"/>
+<Patch name="Nod" hbank="4" lbank="4" prog="105"/>
+<Patch name="B3OrganWave1" hbank="4" lbank="4" prog="84"/>
+<Patch name="WheelSpeed B" hbank="4" lbank="4" prog="117"/>
+<Patch name="DX Organ" hbank="4" lbank="4" prog="96"/>
+<Patch name="Gritty B Wav" hbank="4" lbank="4" prog="100"/>
+<Patch name="Clicky B" hbank="4" lbank="4" prog="88"/>
+<Patch name="DX" hbank="4" lbank="4" prog="95"/>
+<Patch name="B3 X-Wheel 1" hbank="4" lbank="4" prog="83"/>
+<Patch name="Organomics X" hbank="4" lbank="4" prog="108"/>
+<Patch name="Clean X-Whl" hbank="4" lbank="4" prog="87"/>
+<Patch name="Tone Organ" hbank="4" lbank="4" prog="113"/>
+<Patch name="Org Lite" hbank="4" lbank="4" prog="107"/>
+<Patch name="Testify" hbank="4" lbank="4" prog="112"/>
+<Patch name="GreenEyed" hbank="4" lbank="4" prog="99"/>
+<Patch name="Drawbar" hbank="4" lbank="4" prog="93"/>
+<Patch name="Drawbars" hbank="4" lbank="4" prog="94"/>
+<Patch name="Day" hbank="4" lbank="4" prog="89"/>
+<Patch name="Upper B" hbank="4" lbank="4" prog="114"/>
+<Patch name="DirT baG" hbank="4" lbank="4" prog="90"/>
+<Patch name="Oddd Organ" hbank="4" lbank="4" prog="106"/>
+<Patch name="Vox 2" hbank="4" lbank="4" prog="116"/>
+<Patch name="JX Organ" hbank="4" lbank="4" prog="102"/>
+<Patch name="Grundge XXX" hbank="4" lbank="4" prog="101"/>
+<Patch name="JimmyJazzy B" hbank="4" lbank="4" prog="33"/>
+<Patch name="Gospel Soul" hbank="4" lbank="4" prog="98"/>
+<Patch name="Pipe Organ" hbank="4" lbank="4" prog="110"/>
+<Patch name="B3OrganWave2" hbank="4" lbank="4" prog="85"/>
+<Patch name="Bally Yard" hbank="4" lbank="4" prog="86"/>
+<Patch name="Perc Organ" hbank="4" lbank="4" prog="109"/>
+<Patch name="Kool N Mello" hbank="4" lbank="4" prog="103"/>
+<Patch name="Mellow Man" hbank="4" lbank="4" prog="104"/>
+<Patch name="Vox 1" hbank="4" lbank="4" prog="115"/>
+</PatchGroup>
+<PatchGroup name="kb4">
+<Patch name="Comp Keyz 3" hbank="4" lbank="4" prog="126"/>
+<Patch name="EP Roll 2" hbank="4" lbank="5" prog="10"/>
+<Patch name="Vox-A-Phaze" hbank="4" lbank="5" prog="37"/>
+<Patch name="Electrified" hbank="4" lbank="5" prog="7"/>
+<Patch name="Yo My Dynos" hbank="4" lbank="4" prog="1"/>
+<Patch name="Clavinet 3" hbank="4" lbank="4" prog="121"/>
+<Patch name="Knockkerz" hbank="4" lbank="5" prog="22"/>
+<Patch name="Farfisa 3" hbank="4" lbank="5" prog="14"/>
+<Patch name="Clavinet 1" hbank="4" lbank="4" prog="119"/>
+<Patch name="Elecre 1" hbank="4" lbank="5" prog="4"/>
+<Patch name="Breathy" hbank="4" lbank="4" prog="118"/>
+<Patch name="EP Roll 1" hbank="4" lbank="5" prog="9"/>
+<Patch name="Elecre 3" hbank="4" lbank="5" prog="6"/>
+<Patch name="PnoWndStrg 1" hbank="4" lbank="5" prog="29"/>
+<Patch name="Mystery Roll" hbank="4" lbank="5" prog="24"/>
+<Patch name="Hard Tined" hbank="4" lbank="5" prog="21"/>
+<Patch name="Elecre 2" hbank="4" lbank="5" prog="5"/>
+<Patch name="PerkyRhodes" hbank="4" lbank="5" prog="27"/>
+<Patch name="Hard Comp 4" hbank="4" lbank="5" prog="19"/>
+<Patch name="M12Tines" hbank="4" lbank="5" prog="23"/>
+<Patch name="Whistle Keys" hbank="4" lbank="5" prog="38"/>
+<Patch name="PnoWndStrg 2" hbank="4" lbank="5" prog="30"/>
+<Patch name="Farfisa 1" hbank="4" lbank="5" prog="12"/>
+<Patch name="Synth Cheese" hbank="4" lbank="5" prog="34"/>
+<Patch name="Comp Keyz 1" hbank="4" lbank="4" prog="124"/>
+<Patch name="RollinDreams" hbank="4" lbank="5" prog="32"/>
+<Patch name="Pharpheeza" hbank="4" lbank="5" prog="28"/>
+<Patch name="Dyno Piano" hbank="4" lbank="5" prog="1"/>
+<Patch name="Farfisa 2" hbank="4" lbank="5" prog="13"/>
+<Patch name="EP Roll 3" hbank="4" lbank="5" prog="11"/>
+<Patch name="Comp Keyz 2" hbank="4" lbank="4" prog="125"/>
+<Patch name="Hard Comp 5" hbank="4" lbank="5" prog="20"/>
+<Patch name="DynoWahClav" hbank="4" lbank="5" prog="2"/>
+<Patch name="Clavity" hbank="4" lbank="4" prog="123"/>
+<Patch name="E Grand" hbank="4" lbank="5" prog="3"/>
+<Patch name="Synth Organ" hbank="4" lbank="5" prog="35"/>
+<Patch name="Dance" hbank="4" lbank="5" prog="0"/>
+<Patch name="Roll" hbank="4" lbank="5" prog="31"/>
+<Patch name="Nu Tynez 1" hbank="4" lbank="5" prog="25"/>
+<Patch name="EP Fog" hbank="4" lbank="5" prog="8"/>
+<Patch name="Clavinetti" hbank="4" lbank="4" prog="19"/>
+<Patch name="Hard Comp 2" hbank="4" lbank="5" prog="17"/>
+<Patch name="Hard Comp 1" hbank="4" lbank="5" prog="16"/>
+<Patch name="Clavinet 2" hbank="4" lbank="4" prog="120"/>
+<Patch name="Hard Comp 3" hbank="4" lbank="5" prog="18"/>
+<Patch name="Grand FM" hbank="4" lbank="5" prog="15"/>
+<Patch name="Clavin It" hbank="4" lbank="4" prog="122"/>
+<Patch name="Nu Tynez 2" hbank="4" lbank="5" prog="26"/>
+<Patch name="Tine EP" hbank="4" lbank="5" prog="36"/>
+<Patch name="Syn Ballad" hbank="4" lbank="5" prog="33"/>
+<Patch name="Crystal" hbank="4" lbank="4" prog="127"/>
+</PatchGroup>
+<PatchGroup name="kit">
+<Patch name="Hot Swing" hbank="4" lbank="3" prog="108"/>
+<Patch name="Swing Hop 3" hbank="4" lbank="3" prog="124"/>
+<Patch name="Dance 2" hbank="4" lbank="3" prog="89"/>
+<Patch name="Kit" hbank="4" lbank="4" prog="34"/>
+<Patch name="ClubVinyl" hbank="4" lbank="3" prog="86"/>
+<Patch name="Drum/Bass 1" hbank="4" lbank="3" prog="96"/>
+<Patch name="GritKitt" hbank="4" lbank="3" prog="106"/>
+<Patch name="Dee and Be 1" hbank="4" lbank="3" prog="91"/>
+<Patch name="Skin Drums" hbank="4" lbank="3" prog="117"/>
+<Patch name="SounDfacTory" hbank="4" lbank="3" prog="119"/>
+<Patch name="Clean R&amp;B" hbank="4" lbank="3" prog="85"/>
+<Patch name="Kit 16" hbank="4" lbank="3" prog="74"/>
+<Patch name="Bag O Tricks" hbank="4" lbank="4" prog="27"/>
+<Patch name="Swing Hop 1" hbank="4" lbank="3" prog="122"/>
+<Patch name="Shag" hbank="4" lbank="3" prog="116"/>
+<Patch name="Kit 02" hbank="4" lbank="3" prog="60"/>
+<Patch name="Acoustic 2" hbank="4" lbank="3" prog="79"/>
+<Patch name="Acoustic 1" hbank="4" lbank="4" prog="20"/>
+<Patch name="Subversive" hbank="4" lbank="3" prog="121"/>
+<Patch name="OnTheTip" hbank="4" lbank="3" prog="112"/>
+<Patch name="Drum/Bass 6" hbank="4" lbank="3" prog="101"/>
+<Patch name="Drum/Bass 4" hbank="4" lbank="3" prog="99"/>
+<Patch name="ClassicHouse" hbank="4" lbank="3" prog="84"/>
+<Patch name="BMF" hbank="4" lbank="3" prog="82"/>
+<Patch name="This &amp; That" hbank="4" lbank="3" prog="125"/>
+<Patch name="Kit 19" hbank="4" lbank="3" prog="77"/>
+<Patch name="Kit 12" hbank="4" lbank="3" prog="70"/>
+<Patch name="Booster" hbank="4" lbank="3" prog="83"/>
+<Patch name="Berzerker" hbank="4" lbank="3" prog="81"/>
+<Patch name="Kit 09" hbank="4" lbank="3" prog="67"/>
+<Patch name="DeepBooty" hbank="4" lbank="3" prog="93"/>
+<Patch name="Jazz Trio" hbank="4" lbank="3" prog="111"/>
+<Patch name="Kit 05" hbank="4" lbank="3" prog="63"/>
+<Patch name="Kit 10" hbank="4" lbank="3" prog="68"/>
+<Patch name="Gate Dances" hbank="4" lbank="3" prog="104"/>
+<Patch name="Kit 07" hbank="4" lbank="3" prog="65"/>
+<Patch name="DearLyBeEmuD" hbank="4" lbank="3" prog="90"/>
+<Patch name="Jazz Quartet" hbank="4" lbank="3" prog="110"/>
+<Patch name="Smackers" hbank="4" lbank="3" prog="118"/>
+<Patch name="Speed Garage" hbank="4" lbank="3" prog="120"/>
+<Patch name="Kit 06" hbank="4" lbank="3" prog="64"/>
+<Patch name="Dance 1" hbank="4" lbank="3" prog="88"/>
+<Patch name="Phattasassin" hbank="4" lbank="3" prog="114"/>
+<Patch name="Dee and Be 2" hbank="4" lbank="3" prog="92"/>
+<Patch name="Jams" hbank="4" lbank="3" prog="109"/>
+<Patch name="Kit 15" hbank="4" lbank="3" prog="73"/>
+<Patch name="Drum/Bass 2" hbank="4" lbank="3" prog="97"/>
+<Patch name="For Real" hbank="4" lbank="3" prog="103"/>
+<Patch name="Kit 17" hbank="4" lbank="3" prog="75"/>
+<Patch name="Swing Hop 2" hbank="4" lbank="3" prog="123"/>
+<Patch name="Kit 03" hbank="4" lbank="3" prog="61"/>
+<Patch name="424" hbank="4" lbank="3" prog="59"/>
+<Patch name="Drum/Bass 3" hbank="4" lbank="3" prog="98"/>
+<Patch name="DrumBuzza" hbank="4" lbank="3" prog="102"/>
+<Patch name="Kit 08" hbank="4" lbank="3" prog="66"/>
+<Patch name="Drum/Bass 5" hbank="4" lbank="3" prog="100"/>
+<Patch name="Kit 14" hbank="4" lbank="3" prog="72"/>
+<Patch name="Kit 11" hbank="4" lbank="3" prog="69"/>
+<Patch name="Kit 04" hbank="4" lbank="3" prog="62"/>
+<Patch name="Disenegrate" hbank="4" lbank="3" prog="94"/>
+<Patch name="All Niter" hbank="4" lbank="3" prog="80"/>
+<Patch name="Kit 13" hbank="4" lbank="3" prog="71"/>
+<Patch name="HatAttack" hbank="4" lbank="3" prog="107"/>
+<Patch name="Gett..OutPt2" hbank="4" lbank="3" prog="105"/>
+<Patch name="Werzerker" hbank="4" lbank="3" prog="127"/>
+<Patch name="Phased DrumR" hbank="4" lbank="3" prog="113"/>
+<Patch name="Kit 1" hbank="4" lbank="4" prog="9"/>
+<Patch name="R&amp;B Flava" hbank="4" lbank="3" prog="115"/>
+<Patch name="Tribal House" hbank="4" lbank="3" prog="126"/>
+<Patch name="CookUsAHit" hbank="4" lbank="3" prog="87"/>
+<Patch name="Drum 3" hbank="4" lbank="3" prog="95"/>
+<Patch name="Kit 20" hbank="4" lbank="3" prog="78"/>
+<Patch name="Kit 18" hbank="4" lbank="3" prog="76"/>
+</PatchGroup>
+<PatchGroup name="led">
+<Patch name="Dwiddle" hbank="4" lbank="0" prog="94"/>
+<Patch name="Freakus" hbank="4" lbank="0" prog="97"/>
+<Patch name="Flutter" hbank="4" lbank="0" prog="96"/>
+<Patch name="Speedronic" hbank="4" lbank="0" prog="111"/>
+<Patch name="Ethereosity" hbank="4" lbank="0" prog="95"/>
+<Patch name="Shiner" hbank="4" lbank="0" prog="108"/>
+<Patch name="Apple Eater" hbank="4" lbank="0" prog="90"/>
+<Patch name="Syrian Nod" hbank="4" lbank="0" prog="112"/>
+<Patch name="Blue Danube" hbank="4" lbank="0" prog="91"/>
+<Patch name="LVs Worm" hbank="4" lbank="4" prog="26"/>
+<Patch name="Dancerama" hbank="4" lbank="0" prog="93"/>
+<Patch name="Wandering" hbank="4" lbank="0" prog="113"/>
+<Patch name="RememberWhen" hbank="4" lbank="0" prog="105"/>
+<Patch name="Laser Larry" hbank="4" lbank="0" prog="100"/>
+<Patch name="JabbaStabba" hbank="4" lbank="0" prog="99"/>
+<Patch name="Cats Nip" hbank="4" lbank="0" prog="92"/>
+<Patch name="inBottles" hbank="4" lbank="4" prog="39"/>
+<Patch name="Q Snapper" hbank="4" lbank="0" prog="103"/>
+<Patch name="Post 90s DM" hbank="4" lbank="0" prog="102"/>
+<Patch name="Nice Lead" hbank="4" lbank="0" prog="101"/>
+<Patch name="Worm 2" hbank="4" lbank="0" prog="116"/>
+<Patch name="Intervalis" hbank="4" lbank="0" prog="98"/>
+<Patch name="Quacker" hbank="4" lbank="0" prog="104"/>
+<Patch name="Sci-Fi B" hbank="4" lbank="0" prog="106"/>
+<Patch name="Smack Bender" hbank="4" lbank="0" prog="110"/>
+<Patch name="Worm 1" hbank="4" lbank="0" prog="115"/>
+<Patch name="Zimppler" hbank="4" lbank="4" prog="7"/>
+<Patch name="Weezy Lead" hbank="4" lbank="0" prog="114"/>
+<Patch name="Shimmy" hbank="4" lbank="0" prog="107"/>
+<Patch name="Wormy Janis" hbank="4" lbank="0" prog="118"/>
+<Patch name="SineSurprise" hbank="4" lbank="0" prog="109"/>
+<Patch name="Wormwood" hbank="4" lbank="0" prog="117"/>
+<Patch name="Zaw Za Zah" hbank="4" lbank="0" prog="119"/>
+</PatchGroup>
+<PatchGroup name="nse">
+<Patch name="Carrion" hbank="4" lbank="2" prog="108"/>
+<Patch name="Vinyl" hbank="4" lbank="2" prog="114"/>
+<Patch name="Jungle Pump" hbank="4" lbank="2" prog="110"/>
+<Patch name="StopThat!" hbank="4" lbank="2" prog="113"/>
+<Patch name="White" hbank="4" lbank="2" prog="115"/>
+<Patch name="Dust Bunny" hbank="4" lbank="2" prog="109"/>
+<Patch name="Pink" hbank="4" lbank="2" prog="112"/>
+<Patch name="Lift Off" hbank="4" lbank="2" prog="111"/>
+</PatchGroup>
+<PatchGroup name="orc">
+<Patch name="Orch w/Perc" hbank="4" lbank="2" prog="72"/>
+<Patch name="Orchestral" hbank="4" lbank="4" prog="2"/>
+<Patch name="PnoBrsStrg" hbank="4" lbank="2" prog="74"/>
+<Patch name="Brasso" hbank="4" lbank="2" prog="69"/>
+<Patch name="Fanfare" hbank="4" lbank="2" prog="71"/>
+<Patch name="Str/Brs/Wd2" hbank="4" lbank="2" prog="76"/>
+<Patch name="Combo" hbank="4" lbank="2" prog="70"/>
+<Patch name="Orchestra" hbank="4" lbank="2" prog="73"/>
+<Patch name="Str/Brs/Wd3" hbank="4" lbank="2" prog="77"/>
+<Patch name="Str/Brs/Wd1" hbank="4" lbank="2" prog="75"/>
+</PatchGroup>
+<PatchGroup name="pad">
+<Patch name="PWM Rezslide" hbank="4" lbank="2" prog="9"/>
+<Patch name="Kingdom High" hbank="4" lbank="1" prog="125"/>
+<Patch name="Classic" hbank="4" lbank="1" prog="110"/>
+<Patch name="Paddy" hbank="4" lbank="2" prog="3"/>
+<Patch name="Tunguska" hbank="4" lbank="2" prog="14"/>
+<Patch name="Under Pad FM" hbank="4" lbank="2" prog="15"/>
+<Patch name="Deep Spacy" hbank="4" lbank="1" prog="115"/>
+<Patch name="Xylo Pad" hbank="4" lbank="2" prog="18"/>
+<Patch name="MovingBells" hbank="4" lbank="2" prog="1"/>
+<Patch name="Dreamer" hbank="4" lbank="1" prog="117"/>
+<Patch name="Meloden" hbank="4" lbank="1" prog="127"/>
+<Patch name="Keyngdom" hbank="4" lbank="1" prog="124"/>
+<Patch name="Pulsation" hbank="4" lbank="2" prog="7"/>
+<Patch name="JP6 Pad" hbank="4" lbank="1" prog="123"/>
+<Patch name="Dream Pad" hbank="4" lbank="1" prog="116"/>
+<Patch name="Infants" hbank="4" lbank="1" prog="122"/>
+<Patch name="LOCoMotion" hbank="4" lbank="1" prog="126"/>
+<Patch name="Zoom 2000!" hbank="4" lbank="2" prog="20"/>
+<Patch name="RiffTrippin" hbank="4" lbank="2" prog="10"/>
+<Patch name="Dance Chord" hbank="4" lbank="1" prog="113"/>
+<Patch name="Pad Life" hbank="4" lbank="2" prog="2"/>
+<Patch name="Dreamy" hbank="4" lbank="1" prog="118"/>
+<Patch name="Phat Pan" hbank="4" lbank="2" prog="6"/>
+<Patch name="Dances Well" hbank="4" lbank="1" prog="114"/>
+<Patch name="Urban Pipe" hbank="4" lbank="2" prog="16"/>
+<Patch name="Highway" hbank="4" lbank="1" prog="121"/>
+<Patch name="Whisp" hbank="4" lbank="2" prog="17"/>
+<Patch name="Crystal Beam" hbank="4" lbank="1" prog="112"/>
+<Patch name="Spinwip Octa" hbank="4" lbank="2" prog="11"/>
+<Patch name="Paddy Flange" hbank="4" lbank="2" prog="4"/>
+<Patch name="PWM Melopadd" hbank="4" lbank="2" prog="8"/>
+<Patch name="Zoom" hbank="4" lbank="2" prog="19"/>
+<Patch name="Cloud 9" hbank="4" lbank="1" prog="111"/>
+<Patch name="Synth Pad" hbank="4" lbank="2" prog="13"/>
+<Patch name="Floatatious" hbank="4" lbank="1" prog="119"/>
+<Patch name="GreaT" hbank="4" lbank="1" prog="120"/>
+<Patch name="Zyzzle" hbank="4" lbank="2" prog="21"/>
+<Patch name="Phat Pad" hbank="4" lbank="2" prog="5"/>
+<Patch name="MetalBeats" hbank="4" lbank="2" prog="0"/>
+<Patch name="SweptAway" hbank="4" lbank="2" prog="12"/>
+</PatchGroup>
+<PatchGroup name="prc">
+<Patch name="Bells1" hbank="4" lbank="3" prog="4"/>
+<Patch name="Borneo" hbank="4" lbank="3" prog="8"/>
+<Patch name="Blocks2" hbank="4" lbank="3" prog="7"/>
+<Patch name="Kix 1" hbank="4" lbank="3" prog="26"/>
+<Patch name="Bells2" hbank="4" lbank="3" prog="5"/>
+<Patch name="Xylophone" hbank="4" lbank="3" prog="58"/>
+<Patch name="Tams 2" hbank="4" lbank="3" prog="47"/>
+<Patch name="Orchestral" hbank="4" lbank="3" prog="32"/>
+<Patch name="TV Spy Vibes" hbank="4" lbank="3" prog="53"/>
+<Patch name="PerkyThings1" hbank="4" lbank="3" prog="34"/>
+<Patch name="Vibraslap" hbank="4" lbank="3" prog="55"/>
+<Patch name="C Bells" hbank="4" lbank="3" prog="9"/>
+<Patch name="Cyms 1" hbank="4" lbank="3" prog="16"/>
+<Patch name="Congas2" hbank="4" lbank="3" prog="15"/>
+<Patch name="Snares 2" hbank="4" lbank="3" prog="42"/>
+<Patch name="Hard Vibes" hbank="4" lbank="3" prog="21"/>
+<Patch name="Stuff 2" hbank="4" lbank="3" prog="45"/>
+<Patch name="Village" hbank="4" lbank="3" prog="56"/>
+<Patch name="Cargo" hbank="4" lbank="3" prog="10"/>
+<Patch name="Electro" hbank="4" lbank="3" prog="18"/>
+<Patch name="Log On" hbank="4" lbank="3" prog="28"/>
+<Patch name="Toms 2" hbank="4" lbank="3" prog="52"/>
+<Patch name="Plexitone" hbank="4" lbank="3" prog="36"/>
+<Patch name="Velo Vibes" hbank="4" lbank="3" prog="54"/>
+<Patch name="Congas1" hbank="4" lbank="3" prog="14"/>
+<Patch name="Agogos" hbank="4" lbank="3" prog="1"/>
+<Patch name="Hats 1" hbank="4" lbank="3" prog="22"/>
+<Patch name="Flexi" hbank="4" lbank="3" prog="19"/>
+<Patch name="Miscellany" hbank="4" lbank="3" prog="31"/>
+<Patch name="Bell Tree 1" hbank="4" lbank="3" prog="2"/>
+<Patch name="Toms 1" hbank="4" lbank="3" prog="51"/>
+<Patch name="Blocks1" hbank="4" lbank="3" prog="6"/>
+<Patch name="Snares 1" hbank="4" lbank="3" prog="41"/>
+<Patch name="Timbs 1" hbank="4" lbank="3" prog="48"/>
+<Patch name="Soft Vibes" hbank="4" lbank="3" prog="43"/>
+<Patch name="Timbs 2" hbank="4" lbank="3" prog="49"/>
+<Patch name="Hats 2" hbank="4" lbank="3" prog="23"/>
+<Patch name="Claves" hbank="4" lbank="3" prog="13"/>
+<Patch name="Timpani" hbank="4" lbank="3" prog="50"/>
+<Patch name="Progress" hbank="4" lbank="3" prog="37"/>
+<Patch name="Guiros" hbank="4" lbank="3" prog="20"/>
+<Patch name="Perky Dance" hbank="4" lbank="3" prog="33"/>
+<Patch name="SiameseCats" hbank="4" lbank="3" prog="39"/>
+<Patch name="Hi Bell" hbank="4" lbank="3" prog="24"/>
+<Patch name="Snaps" hbank="4" lbank="3" prog="40"/>
+<Patch name="Kix 2" hbank="4" lbank="3" prog="27"/>
+<Patch name="Claps 2" hbank="4" lbank="3" prog="12"/>
+<Patch name="Bell Tree 2" hbank="4" lbank="3" prog="3"/>
+<Patch name="Stuff 1" hbank="4" lbank="3" prog="44"/>
+<Patch name="Marimba" hbank="4" lbank="3" prog="30"/>
+<Patch name="WoodHitsBell" hbank="4" lbank="3" prog="57"/>
+<Patch name="Acidphone" hbank="4" lbank="3" prog="0"/>
+<Patch name="Maracca" hbank="4" lbank="3" prog="29"/>
+<Patch name="Cyms 2" hbank="4" lbank="3" prog="17"/>
+<Patch name="PerkyThings2" hbank="4" lbank="3" prog="35"/>
+<Patch name="Shakers" hbank="4" lbank="3" prog="38"/>
+<Patch name="Kalimba" hbank="4" lbank="3" prog="25"/>
+<Patch name="Claps 1" hbank="4" lbank="3" prog="11"/>
+<Patch name="Tams 1" hbank="4" lbank="3" prog="46"/>
+</PatchGroup>
+<PatchGroup name="scr">
+<Patch name="Outa Sqaced" hbank="4" lbank="2" prog="121"/>
+<Patch name="From Vinyl" hbank="4" lbank="2" prog="119"/>
+<Patch name="Scratches 1" hbank="4" lbank="2" prog="124"/>
+<Patch name="Scratches 2" hbank="4" lbank="2" prog="125"/>
+<Patch name="Skrach Dis" hbank="4" lbank="2" prog="126"/>
+<Patch name="DissedSkrach" hbank="4" lbank="2" prog="117"/>
+<Patch name="Monsta Slips" hbank="4" lbank="2" prog="120"/>
+<Patch name="PuppyAlarm" hbank="4" lbank="2" prog="123"/>
+<Patch name="DogsnHeat" hbank="4" lbank="2" prog="118"/>
+<Patch name="Vinyl Set" hbank="4" lbank="2" prog="127"/>
+<Patch name="Cuts &amp; Hats" hbank="4" lbank="2" prog="116"/>
+<Patch name="Play It" hbank="4" lbank="2" prog="122"/>
+</PatchGroup>
+<PatchGroup name="sfx">
+<Patch name="Bass Scrape" hbank="4" lbank="2" prog="82"/>
+<Patch name="Hill" hbank="4" lbank="2" prog="93"/>
+<Patch name="Full Circle" hbank="4" lbank="2" prog="87"/>
+<Patch name="We Ha" hbank="4" lbank="2" prog="104"/>
+<Patch name="Gtr Scrape 1" hbank="4" lbank="2" prog="88"/>
+<Patch name="Crickets" hbank="4" lbank="2" prog="84"/>
+<Patch name="Ritual" hbank="4" lbank="2" prog="101"/>
+<Patch name="Loop 3" hbank="4" lbank="2" prog="95"/>
+<Patch name="AKS Vinyl" hbank="4" lbank="2" prog="80"/>
+<Patch name="30" hbank="4" lbank="2" prog="78"/>
+<Patch name="7Os Phazzy" hbank="4" lbank="2" prog="79"/>
+<Patch name="Bad Bells" hbank="4" lbank="2" prog="81"/>
+<Patch name="TarzansDance" hbank="4" lbank="2" prog="103"/>
+<Patch name="Hello!!!" hbank="4" lbank="2" prog="92"/>
+<Patch name="WhoaWhoa" hbank="4" lbank="2" prog="105"/>
+<Patch name="GtrBodyKnock" hbank="4" lbank="2" prog="90"/>
+<Patch name="Guitar Pick" hbank="4" lbank="2" prog="91"/>
+<Patch name="Crowd" hbank="4" lbank="2" prog="85"/>
+<Patch name="StringScrape" hbank="4" lbank="2" prog="102"/>
+<Patch name="Its Coming" hbank="4" lbank="2" prog="94"/>
+<Patch name="Bass Thud" hbank="4" lbank="2" prog="83"/>
+<Patch name="Oh No its..." hbank="4" lbank="2" prog="97"/>
+<Patch name="PoppysOnMars" hbank="4" lbank="2" prog="100"/>
+<Patch name="NightCrawler" hbank="4" lbank="2" prog="96"/>
+<Patch name="Ya Who" hbank="4" lbank="2" prog="107"/>
+<Patch name="PnoSndBoard" hbank="4" lbank="2" prog="99"/>
+<Patch name="Woooo!" hbank="4" lbank="2" prog="106"/>
+<Patch name="Gtr Scrape 2" hbank="4" lbank="2" prog="89"/>
+<Patch name="Ohh" hbank="4" lbank="2" prog="98"/>
+<Patch name="DawnFollows" hbank="4" lbank="2" prog="86"/>
+<Patch name="MetalScience" hbank="4" lbank="4" prog="11"/>
+</PatchGroup>
+<PatchGroup name="str">
+<Patch name="Section" hbank="4" lbank="7" prog="84"/>
+<Patch name="Allin a Pizz" hbank="4" lbank="4" prog="23"/>
+<Patch name="AbbeyStrngs" hbank="4" lbank="7" prog="57"/>
+<Patch name="Hindookurdoo" hbank="4" lbank="7" prog="71"/>
+<Patch name="Sectioned" hbank="4" lbank="7" prog="85"/>
+<Patch name="The Lonely 1" hbank="4" lbank="7" prog="94"/>
+<Patch name="So Long" hbank="4" lbank="7" prog="90"/>
+<Patch name="SitarTalk" hbank="4" lbank="7" prog="87"/>
+<Patch name="Obieanna" hbank="4" lbank="7" prog="79"/>
+<Patch name="Velo Marcato" hbank="4" lbank="7" prog="97"/>
+<Patch name="Drews Harp" hbank="4" lbank="7" prog="66"/>
+<Patch name="Filmscore" hbank="4" lbank="4" prog="25"/>
+<Patch name="Analogic" hbank="4" lbank="7" prog="59"/>
+<Patch name="Tron" hbank="4" lbank="7" prog="95"/>
+<Patch name="Pizzicato" hbank="4" lbank="7" prog="81"/>
+<Patch name="Japanman" hbank="4" lbank="7" prog="72"/>
+<Patch name="Koto" hbank="4" lbank="7" prog="73"/>
+<Patch name="MeltroniKnbD" hbank="4" lbank="7" prog="77"/>
+<Patch name="ChamberGrp" hbank="4" lbank="7" prog="62"/>
+<Patch name="Swoon" hbank="4" lbank="7" prog="92"/>
+<Patch name="Many Quarts" hbank="4" lbank="7" prog="75"/>
+<Patch name="GlissiPizzi" hbank="4" lbank="7" prog="69"/>
+<Patch name="DarkMoods" hbank="4" lbank="7" prog="63"/>
+<Patch name="Morocco Feel" hbank="4" lbank="7" prog="78"/>
+<Patch name="Kult E Vatn" hbank="4" lbank="7" prog="74"/>
+<Patch name="Texture" hbank="4" lbank="7" prog="93"/>
+<Patch name="SoloOutFront" hbank="4" lbank="7" prog="91"/>
+<Patch name="Sneajy" hbank="4" lbank="7" prog="88"/>
+<Patch name="Rich Analogs" hbank="4" lbank="7" prog="83"/>
+<Patch name="Big Strings" hbank="4" lbank="7" prog="61"/>
+<Patch name="Dyna-heim" hbank="4" lbank="4" prog="15"/>
+<Patch name="Sham Wave" hbank="4" lbank="7" prog="86"/>
+<Patch name="Real Matrix" hbank="4" lbank="7" prog="82"/>
+<Patch name="Solo Quartet" hbank="4" lbank="7" prog="89"/>
+<Patch name="Digital 1" hbank="4" lbank="7" prog="64"/>
+<Patch name="Digital 2" hbank="4" lbank="7" prog="65"/>
+<Patch name="Victrola" hbank="4" lbank="7" prog="98"/>
+<Patch name="Fortuna" hbank="4" lbank="7" prog="68"/>
+<Patch name="ArcotremPizz" hbank="4" lbank="7" prog="60"/>
+<Patch name="TronStrings" hbank="4" lbank="7" prog="96"/>
+<Patch name="ExtremeStrng" hbank="4" lbank="7" prog="67"/>
+<Patch name="Helium" hbank="4" lbank="7" prog="70"/>
+<Patch name="Analog" hbank="4" lbank="7" prog="58"/>
+<Patch name="Matrix Synth" hbank="4" lbank="7" prog="76"/>
+<Patch name="Pizzicati" hbank="4" lbank="7" prog="80"/>
+</PatchGroup>
+<PatchGroup name="syn">
+<Patch name="Big Planet" hbank="4" lbank="1" prog="50"/>
+<Patch name="Festival" hbank="4" lbank="1" prog="63"/>
+<Patch name="Pulse Pulse" hbank="4" lbank="1" prog="82"/>
+<Patch name="Synbrasso" hbank="4" lbank="1" prog="95"/>
+<Patch name="Skreach Arp" hbank="4" lbank="1" prog="93"/>
+<Patch name="Heavy" hbank="4" lbank="1" prog="65"/>
+<Patch name="LOCoCution" hbank="4" lbank="1" prog="70"/>
+<Patch name="8O8 Synthax" hbank="4" lbank="1" prog="47"/>
+<Patch name="Moog" hbank="4" lbank="1" prog="73"/>
+<Patch name="Syncty" hbank="4" lbank="1" prog="97"/>
+<Patch name="Hydraine" hbank="4" lbank="1" prog="68"/>
+<Patch name="Nervous" hbank="4" lbank="1" prog="75"/>
+<Patch name="Arpitty" hbank="4" lbank="1" prog="48"/>
+<Patch name="Synthall AT" hbank="4" lbank="1" prog="100"/>
+<Patch name="CZ Synstring" hbank="4" lbank="1" prog="55"/>
+<Patch name="Soft Synth" hbank="4" lbank="1" prog="94"/>
+<Patch name="AirBorn" hbank="4" lbank="1" prog="109"/>
+<Patch name="Rez Synth" hbank="4" lbank="1" prog="87"/>
+<Patch name="Brazz" hbank="4" lbank="1" prog="52"/>
+<Patch name="Saw Sweep" hbank="4" lbank="1" prog="91"/>
+<Patch name="Wheezy Worm" hbank="4" lbank="1" prog="106"/>
+<Patch name="Synth Brass" hbank="4" lbank="1" prog="101"/>
+<Patch name="Messy" hbank="4" lbank="1" prog="71"/>
+<Patch name="Blippoid" hbank="4" lbank="1" prog="51"/>
+<Patch name="JunoPlseComp" hbank="4" lbank="4" prog="37"/>
+<Patch name="OBX Saws" hbank="4" lbank="1" prog="77"/>
+<Patch name="Pulsey!" hbank="4" lbank="1" prog="83"/>
+<Patch name="OohAhh Vox" hbank="4" lbank="1" prog="78"/>
+<Patch name="Ensemblist" hbank="4" lbank="1" prog="59"/>
+<Patch name="Rezzy Wave" hbank="4" lbank="1" prog="88"/>
+<Patch name="Fat Slide" hbank="4" lbank="1" prog="62"/>
+<Patch name="Transpander" hbank="4" lbank="1" prog="104"/>
+<Patch name="Syntax On2" hbank="4" lbank="1" prog="99"/>
+<Patch name="Mood Strings" hbank="4" lbank="1" prog="72"/>
+<Patch name="P5 Brass" hbank="4" lbank="1" prog="79"/>
+<Patch name="Hi String" hbank="4" lbank="1" prog="67"/>
+<Patch name="Gritstrings" hbank="4" lbank="1" prog="64"/>
+<Patch name="Ethnosplint" hbank="4" lbank="1" prog="60"/>
+<Patch name="Hi Oct Synth" hbank="4" lbank="1" prog="66"/>
+<Patch name="DinkedSquare" hbank="4" lbank="1" prog="58"/>
+<Patch name="Promoseus" hbank="4" lbank="1" prog="81"/>
+<Patch name="Buzz Synth" hbank="4" lbank="1" prog="53"/>
+<Patch name="Saw Blip" hbank="4" lbank="1" prog="89"/>
+<Patch name="ThinTecPulse" hbank="4" lbank="1" prog="103"/>
+<Patch name="SynEnsemble" hbank="4" lbank="1" prog="98"/>
+<Patch name="Razor" hbank="4" lbank="1" prog="85"/>
+<Patch name="DigiBuzphaze" hbank="4" lbank="1" prog="56"/>
+<Patch name="Z&amp;C Leeder" hbank="4" lbank="1" prog="108"/>
+<Patch name="Wildsync" hbank="4" lbank="1" prog="107"/>
+<Patch name="Razor Edge" hbank="4" lbank="1" prog="86"/>
+<Patch name="Euro Wave" hbank="4" lbank="1" prog="61"/>
+<Patch name="BenderPlanet" hbank="4" lbank="1" prog="49"/>
+<Patch name="Silk OBXsaws" hbank="4" lbank="4" prog="12"/>
+<Patch name="NarrowEscape" hbank="4" lbank="1" prog="74"/>
+<Patch name="Saw Stack" hbank="4" lbank="1" prog="90"/>
+<Patch name="Conglomo" hbank="4" lbank="1" prog="54"/>
+<Patch name="Pweet Square" hbank="4" lbank="1" prog="84"/>
+<Patch name="Syncsyn Clav" hbank="4" lbank="1" prog="96"/>
+<Patch name="5th Brass" hbank="4" lbank="1" prog="46"/>
+<Patch name="ProfitMargin" hbank="4" lbank="1" prog="80"/>
+<Patch name="SawsweepComp" hbank="4" lbank="1" prog="92"/>
+<Patch name="Digiglass" hbank="4" lbank="1" prog="57"/>
+<Patch name="VoxNonsense" hbank="4" lbank="1" prog="105"/>
+<Patch name="ThinHi Worm" hbank="4" lbank="1" prog="102"/>
+<Patch name="No NerveNet" hbank="4" lbank="1" prog="76"/>
+<Patch name="Little Tins" hbank="4" lbank="1" prog="69"/>
+</PatchGroup>
+<PatchGroup name="vox">
+<Patch name="Slo Lunarvox" hbank="4" lbank="0" prog="82"/>
+<Patch name="Pop Oohs" hbank="4" lbank="0" prog="81"/>
+<Patch name="Pop Aahs" hbank="4" lbank="0" prog="80"/>
+<Patch name="Majestic" hbank="4" lbank="0" prog="73"/>
+<Patch name="PhasePhlips" hbank="4" lbank="0" prog="79"/>
+<Patch name="Mist" hbank="4" lbank="0" prog="75"/>
+<Patch name="New Age Oohs" hbank="4" lbank="4" prog="17"/>
+<Patch name="Common Vox" hbank="4" lbank="0" prog="67"/>
+<Patch name="SpiritWorld" hbank="4" lbank="0" prog="84"/>
+<Patch name="ThroatRattle" hbank="4" lbank="0" prog="87"/>
+<Patch name="Lo FakeChoir" hbank="4" lbank="0" prog="71"/>
+<Patch name="SynthSing" hbank="4" lbank="0" prog="85"/>
+<Patch name="Odd Vox" hbank="4" lbank="0" prog="77"/>
+<Patch name="Soul Oohs" hbank="4" lbank="0" prog="83"/>
+<Patch name="Tarzanalien" hbank="4" lbank="0" prog="86"/>
+<Patch name="Ahhs" hbank="4" lbank="0" prog="65"/>
+<Patch name="Gothic Dream" hbank="4" lbank="0" prog="70"/>
+<Patch name="Frozen Time" hbank="4" lbank="4" prog="30"/>
+<Patch name="Dark Angels" hbank="4" lbank="0" prog="68"/>
+<Patch name="Lo-Fi Ether" hbank="4" lbank="0" prog="72"/>
+<Patch name="Tokenring" hbank="4" lbank="0" prog="88"/>
+<Patch name="Oohs Souls" hbank="4" lbank="0" prog="78"/>
+<Patch name="Gossamer" hbank="4" lbank="0" prog="69"/>
+<Patch name="MauzeWowz" hbank="4" lbank="0" prog="74"/>
+<Patch name="Odd Boys" hbank="4" lbank="0" prog="76"/>
+<Patch name="Arco Breath" hbank="4" lbank="0" prog="66"/>
+<Patch name="Trapped" hbank="4" lbank="0" prog="89"/>
+</PatchGroup>
+<PatchGroup name="wav">
+<Patch name="Overtone Syn" hbank="4" lbank="1" prog="19"/>
+<Patch name="Synthetic" hbank="4" lbank="1" prog="40"/>
+<Patch name="CZ Lead" hbank="4" lbank="0" prog="127"/>
+<Patch name="Blipper" hbank="4" lbank="0" prog="123"/>
+<Patch name="M12 Sync" hbank="4" lbank="1" prog="11"/>
+<Patch name="Sync 1" hbank="4" lbank="1" prog="33"/>
+<Patch name="Metal 2" hbank="4" lbank="1" prog="14"/>
+<Patch name="Glass Perc" hbank="4" lbank="1" prog="5"/>
+<Patch name="Moog Lead" hbank="4" lbank="1" prog="17"/>
+<Patch name="Fat Attack" hbank="4" lbank="1" prog="4"/>
+<Patch name="Narrow Synth" hbank="4" lbank="1" prog="18"/>
+<Patch name="Sync 4" hbank="4" lbank="1" prog="36"/>
+<Patch name="Pop Square" hbank="4" lbank="1" prog="22"/>
+<Patch name="Whine" hbank="4" lbank="1" prog="44"/>
+<Patch name="PPG" hbank="4" lbank="1" prog="23"/>
+<Patch name="Juno Pulse" hbank="4" lbank="1" prog="7"/>
+<Patch name="Perc Axe Syn" hbank="4" lbank="1" prog="20"/>
+<Patch name="SquareAttack" hbank="4" lbank="1" prog="30"/>
+<Patch name="Spacey Keys" hbank="4" lbank="1" prog="28"/>
+<Patch name="Sync 2" hbank="4" lbank="1" prog="34"/>
+<Patch name="Arp" hbank="4" lbank="0" prog="120"/>
+<Patch name="ES Rag" hbank="4" lbank="1" prog="3"/>
+<Patch name="Rezzy" hbank="4" lbank="1" prog="27"/>
+<Patch name="Rast Keys" hbank="4" lbank="1" prog="26"/>
+<Patch name="Bass Synth" hbank="4" lbank="0" prog="121"/>
+<Patch name="Sync 6" hbank="4" lbank="1" prog="38"/>
+<Patch name="MetalAttack" hbank="4" lbank="1" prog="15"/>
+<Patch name="Mini Lead" hbank="4" lbank="1" prog="16"/>
+<Patch name="Buzz Saw Syn" hbank="4" lbank="0" prog="124"/>
+<Patch name="Bell Synth" hbank="4" lbank="0" prog="122"/>
+<Patch name="Pluck Tone" hbank="4" lbank="1" prog="21"/>
+<Patch name="CZ Echo" hbank="4" lbank="0" prog="126"/>
+<Patch name="Sync 5" hbank="4" lbank="1" prog="37"/>
+<Patch name="Synth Wave" hbank="4" lbank="1" prog="39"/>
+<Patch name="Wild Synth" hbank="4" lbank="1" prog="45"/>
+<Patch name="Pure H" hbank="4" lbank="1" prog="24"/>
+<Patch name="Eraser" hbank="4" lbank="1" prog="2"/>
+<Patch name="Chime" hbank="4" lbank="0" prog="125"/>
+<Patch name="Log Hit" hbank="4" lbank="1" prog="9"/>
+<Patch name="Juno Square" hbank="4" lbank="1" prog="8"/>
+<Patch name="Magic" hbank="4" lbank="1" prog="12"/>
+<Patch name="PWM" hbank="4" lbank="1" prog="25"/>
+<Patch name="CZ101 Digi" hbank="4" lbank="1" prog="0"/>
+<Patch name="VS37" hbank="4" lbank="1" prog="42"/>
+<Patch name="VS Voxwav" hbank="4" lbank="1" prog="41"/>
+<Patch name="Syn Tone" hbank="4" lbank="1" prog="32"/>
+<Patch name="Square Lead" hbank="4" lbank="1" prog="29"/>
+<Patch name="Dig Buzz Syn" hbank="4" lbank="1" prog="1"/>
+<Patch name="SquareChorus" hbank="4" lbank="1" prog="31"/>
+<Patch name="Hollow Deep" hbank="4" lbank="1" prog="6"/>
+<Patch name="Metal 1" hbank="4" lbank="1" prog="13"/>
+<Patch name="M12 Lead" hbank="4" lbank="1" prog="10"/>
+<Patch name="Sync 3" hbank="4" lbank="1" prog="35"/>
+<Patch name="VS48" hbank="4" lbank="1" prog="43"/>
+</PatchGroup>
+<PatchGroup name="wnd">
+<Patch name="Oboe 2" hbank="4" lbank="0" prog="49"/>
+<Patch name="T-Sax" hbank="4" lbank="0" prog="61"/>
+<Patch name="Big Top" hbank="4" lbank="0" prog="27"/>
+<Patch name="Breathy Flt1" hbank="4" lbank="0" prog="29"/>
+<Patch name="Pan Flute 2" hbank="4" lbank="0" prog="53"/>
+<Patch name="Bari" hbank="4" lbank="0" prog="26"/>
+<Patch name="Polka Cheat" hbank="4" lbank="0" prog="55"/>
+<Patch name="Clarinet" hbank="4" lbank="0" prog="34"/>
+<Patch name="Gs Soprano" hbank="4" lbank="0" prog="41"/>
+<Patch name="WindTrio" hbank="4" lbank="0" prog="64"/>
+<Patch name="Real Flute" hbank="4" lbank="4" prog="22"/>
+<Patch name="Nuages" hbank="4" lbank="0" prog="47"/>
+<Patch name="AiryClarinet" hbank="4" lbank="0" prog="21"/>
+<Patch name="Monica Blow" hbank="4" lbank="0" prog="46"/>
+<Patch name="Pastoral" hbank="4" lbank="0" prog="54"/>
+<Patch name="S-Sax" hbank="4" lbank="0" prog="56"/>
+<Patch name="Sax FX 1 2 3" hbank="4" lbank="0" prog="57"/>
+<Patch name="Harmony" hbank="4" lbank="0" prog="45"/>
+<Patch name="B-Sax" hbank="4" lbank="0" prog="24"/>
+<Patch name="Breather" hbank="4" lbank="4" prog="29"/>
+<Patch name="Ocarina 1" hbank="4" lbank="0" prog="50"/>
+<Patch name="Harmonica" hbank="4" lbank="0" prog="43"/>
+<Patch name="Sax Session" hbank="4" lbank="0" prog="58"/>
+<Patch name="Bottle Blow" hbank="4" lbank="0" prog="28"/>
+<Patch name="Chi-Town" hbank="4" lbank="0" prog="32"/>
+<Patch name="Harmonika" hbank="4" lbank="0" prog="44"/>
+<Patch name="Fieldberries" hbank="4" lbank="0" prog="37"/>
+<Patch name="Alto Saxo" hbank="4" lbank="0" prog="23"/>
+<Patch name="Synth Flute" hbank="4" lbank="0" prog="60"/>
+<Patch name="Chamber Orch" hbank="4" lbank="0" prog="31"/>
+<Patch name="B2-Sax" hbank="4" lbank="0" prog="25"/>
+<Patch name="Flute" hbank="4" lbank="0" prog="39"/>
+<Patch name="Ocarina 2" hbank="4" lbank="0" prog="51"/>
+<Patch name="Pan Flute 1" hbank="4" lbank="0" prog="52"/>
+<Patch name="Flt/Obe/Bone" hbank="4" lbank="0" prog="38"/>
+<Patch name="Virtuaccord" hbank="4" lbank="0" prog="63"/>
+<Patch name="Full Bari" hbank="4" lbank="0" prog="40"/>
+<Patch name="Breathy Flt2" hbank="4" lbank="0" prog="30"/>
+<Patch name="English Horn" hbank="4" lbank="0" prog="36"/>
+<Patch name="Akkordione" hbank="4" lbank="0" prog="22"/>
+<Patch name="Shenai" hbank="4" lbank="0" prog="59"/>
+<Patch name="Oboe 1" hbank="4" lbank="0" prog="48"/>
+<Patch name="Tenor Phone" hbank="4" lbank="0" prog="62"/>
+<Patch name="Clarinette" hbank="4" lbank="0" prog="35"/>
+<Patch name="A-SAX" hbank="4" lbank="0" prog="20"/>
+<Patch name="Grouch" hbank="4" lbank="0" prog="42"/>
+<Patch name="Clar/Oboe" hbank="4" lbank="0" prog="33"/>
+</PatchGroup>
+
+
+
+ </MidiInstrument>
+ </muse>
+
+
diff --git a/muse_qt4_evolution/share/instruments/gm.idf b/muse_qt4_evolution/share/instruments/gm.idf
new file mode 100644
index 00000000..7cc0e7ef
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/gm.idf
@@ -0,0 +1,209 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GM">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ <Patch name="E.Grand" prog="2"/>
+ <Patch name="Honky-tonk" prog="3"/>
+ <Patch name="E.Piano" prog="4"/>
+ <Patch name="E.Piano 2" prog="5"/>
+ <Patch name="Harpsichord" prog="6"/>
+ <Patch name="Clav." prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc">
+ <Patch name="Celesta" prog="8"/>
+ <Patch name="Glockenspiel" prog="9"/>
+ <Patch name="Music Box" prog="10"/>
+ <Patch name="Vibraphone" prog="11"/>
+ <Patch name="Marimba" prog="12"/>
+ <Patch name="Xylophone" prog="13"/>
+ <Patch name="Tubular Bells" prog="14"/>
+ <Patch name="Dulcimer" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Drawbar Organ" prog="16"/>
+ <Patch name="Perc. Organ" prog="17"/>
+ <Patch name="Rock Organ" prog="18"/>
+ <Patch name="Church Organ" prog="19"/>
+ <Patch name="Reed Organ" prog="20"/>
+ <Patch name="Akkordion" prog="21"/>
+ <Patch name="Harmonica" prog="22"/>
+ <Patch name="Bandoneon" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon Gtr." prog="24"/>
+ <Patch name="Steel Gtr." prog="25"/>
+ <Patch name="Jazz Guitar" prog="26"/>
+ <Patch name="Clean Guitar" prog="27"/>
+ <Patch name="Muted Guitar" prog="28"/>
+ <Patch name="Overdrive Gtr" prog="29"/>
+ <Patch name="Distortion Gtr" prog="30"/>
+ <Patch name="Gtr. Harmonics" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ <Patch name="Picked Bass" prog="34"/>
+ <Patch name="Fretless Bass" prog="35"/>
+ <Patch name="Slap Bass 1" prog="36"/>
+ <Patch name="Slap Bass 2" prog="37"/>
+ <Patch name="Synth Bass 1" prog="38"/>
+ <Patch name="Synth Bass 2" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings/Orch">
+ <Patch name="Violin" prog="40"/>
+ <Patch name="Viola" prog="41"/>
+ <Patch name="Cello" prog="42"/>
+ <Patch name="Contrabass" prog="43"/>
+ <Patch name="Tremolo Str." prog="44"/>
+ <Patch name="Pizzicato Str." prog="45"/>
+ <Patch name="Harp" prog="46"/>
+ <Patch name="Timpani" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings 1" prog="48"/>
+ <Patch name="Strings 2" prog="49"/>
+ <Patch name="Syn. Strings 1" prog="50"/>
+ <Patch name="Syn. Strings 2" prog="51"/>
+ <Patch name="Choir Aahs" prog="52"/>
+ <Patch name="Voice Oohs" prog="53"/>
+ <Patch name="Synth Voice" prog="54"/>
+ <Patch name="Orchestra Hit" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="Trumpet" prog="56"/>
+ <Patch name="Trombone" prog="57"/>
+ <Patch name="Tuba" prog="58"/>
+ <Patch name="Muted Trumpet" prog="59"/>
+ <Patch name="French Horn" prog="60"/>
+ <Patch name="Brass Section" prog="61"/>
+ <Patch name="Synth Brass 1" prog="62"/>
+ <Patch name="Synth Brass 2" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Sax" prog="64"/>
+ <Patch name="Alto Sax" prog="65"/>
+ <Patch name="Tenor Sax" prog="66"/>
+ <Patch name="Baritone Sax" prog="67"/>
+ <Patch name="Oboe" prog="68"/>
+ <Patch name="English Horn" prog="69"/>
+ <Patch name="Bassoon" prog="70"/>
+ <Patch name="Clarinet" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo" prog="72"/>
+ <Patch name="Flute" prog="73"/>
+ <Patch name="Recorder" prog="74"/>
+ <Patch name="Pan Flute" prog="75"/>
+ <Patch name="Blown Bottle" prog="76"/>
+ <Patch name="Shakuhachi" prog="77"/>
+ <Patch name="Whistle" prog="78"/>
+ <Patch name="Ocarina" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" prog="80"/>
+ <Patch name="Saw Wave" prog="81"/>
+ <Patch name="Calliope" prog="82"/>
+ <Patch name="Chiffer Lead" prog="83"/>
+ <Patch name="Charang" prog="84"/>
+ <Patch name="Solo Vox" prog="85"/>
+ <Patch name="Fifth Saw" prog="86"/>
+ <Patch name="Bass Lead" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="New Age Pad" prog="88"/>
+ <Patch name="Warm Pad" prog="89"/>
+ <Patch name="Polysynth Pad" prog="90"/>
+ <Patch name="Choir Pad" prog="91"/>
+ <Patch name="Bowed Pad" prog="92"/>
+ <Patch name="Metallic Pad" prog="93"/>
+ <Patch name="Halo Pad" prog="94"/>
+ <Patch name="Sweep Pad" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="Rain" prog="96"/>
+ <Patch name="Soundtrack" prog="97"/>
+ <Patch name="Crystal" prog="98"/>
+ <Patch name="Athmosphere" prog="99"/>
+ <Patch name="Brightness" prog="100"/>
+ <Patch name="Goblins" prog="101"/>
+ <Patch name="Echoes" prog="102"/>
+ <Patch name="Sci-Fi" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar" prog="104"/>
+ <Patch name="Banjo" prog="105"/>
+ <Patch name="Shamisen" prog="106"/>
+ <Patch name="Koto" prog="107"/>
+ <Patch name="Kalimba" prog="108"/>
+ <Patch name="Bagpipe" prog="109"/>
+ <Patch name="Fiddle" prog="110"/>
+ <Patch name="Shanai" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinkle Bell" prog="112"/>
+ <Patch name="Agogo" prog="113"/>
+ <Patch name="Steel Drums" prog="114"/>
+ <Patch name="Woodblock" prog="115"/>
+ <Patch name="Taiko Drum" prog="116"/>
+ <Patch name="Melodic Drum" prog="117"/>
+ <Patch name="Synth Drum" prog="118"/>
+ <Patch name="Rev. Cymbal" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="Gtr Fret Noise" prog="120"/>
+ <Patch name="Breath Noise" prog="121"/>
+ <Patch name="Seashore" prog="122"/>
+ <Patch name="Bird Tweed" prog="123"/>
+ <Patch name="Telephone" prog="124"/>
+ <Patch name="Helicopter" prog="125"/>
+ <Patch name="Applaus" prog="126"/>
+ <Patch name="Gunshot" prog="127"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" init="127" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="FilterResonance" type="Control" l="71" init="64"/>
+ <Controller name="ReleaseTime" type="Control" l="72" init="64"/>
+ <Controller name="AttackTime" type="Control" l="73" init="64"/>
+ <Controller name="Brightness" type="Control" l="74" init="64"/>
+ <Controller name="DecayTime" type="Control" l="75" init="64"/>
+ <Controller name="VibrateRate" type="Control" l="76" init="64"/>
+ <Controller name="VibrateDepth" type="Control" l="77" init="64"/>
+ <Controller name="VibrateDelay" type="Control" l="78" init="64"/>
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="ReverbSendLevel" type="Control" l="91" init="40" />
+ <Controller name="ChorusSendLevel" type="Control" l="93" init="0" />
+ <Controller name="VariationSend" type="Control" l="94" init="0" />
+
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ <!-- SysEx's -->
+ <SysEx name="GM on">
+ <comment>Switch General Midi mode on</comment>
+ <data>0x7e 0x7f 0x09 0x01</data>
+ </SysEx>
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/gs.idf b/muse_qt4_evolution/share/instruments/gs.idf
new file mode 100644
index 00000000..070758ad
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/gs.idf
@@ -0,0 +1,236 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GS">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" hbank="0" lbank="0" prog="0"/>
+ <Patch name="Bright Piano" hbank="0" lbank="0" prog="1"/>
+ <Patch name="E.Grand" hbank="0" lbank="0" prog="2"/>
+ <Patch name="Honky-tonk" hbank="0" lbank="0" prog="3"/>
+ <Patch name="E.Piano" hbank="0" lbank="0" prog="4"/>
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5"/>
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Clav." hbank="0" lbank="0" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc">
+ <Patch name="Celesta" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Vibraphone" hbank="0" lbank="0" prog="11"/>
+ <Patch name="Marimba" hbank="0" lbank="0" prog="12"/>
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Tubular Bells" hbank="0" lbank="0" prog="14"/>
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Drawbar Organ" hbank="0" lbank="0" prog="16"/>
+ <Patch name="Perc. Organ" hbank="0" lbank="0" prog="17"/>
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="18"/>
+ <Patch name="Church Organ" hbank="0" lbank="0" prog="19"/>
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="20"/>
+ <Patch name="Akkordion" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Bandoneon" hbank="0" lbank="0" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon Gtr." hbank="0" lbank="0" prog="24"/>
+ <Patch name="Steel Gtr." hbank="0" lbank="0" prog="25"/>
+ <Patch name="Jazz Guitar" hbank="0" lbank="0" prog="26"/>
+ <Patch name="Clean Guitar" hbank="0" lbank="0" prog="27"/>
+ <Patch name="Muted Guitar" hbank="0" lbank="0" prog="28"/>
+ <Patch name="Overdrive Gtr" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Distortion Gtr" hbank="0" lbank="0" prog="30"/>
+ <Patch name="Gtr. Harmonics" hbank="0" lbank="0" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" hbank="0" lbank="0" prog="32"/>
+ <Patch name="Fingered Bass" hbank="0" lbank="0" prog="33"/>
+ <Patch name="Picked Bass" hbank="0" lbank="0" prog="34"/>
+ <Patch name="Fretless Bass" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Slap Bass 1" hbank="0" lbank="0" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="0" lbank="0" prog="37"/>
+ <Patch name="Synth Bass 1" hbank="0" lbank="0" prog="38"/>
+ <Patch name="Synth Bass 2" hbank="0" lbank="0" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings/Orch">
+ <Patch name="Violin" hbank="0" lbank="0" prog="40"/>
+ <Patch name="Viola" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Cello" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Tremolo Str." hbank="0" lbank="0" prog="44"/>
+ <Patch name="Pizzicato Str." hbank="0" lbank="0" prog="45"/>
+ <Patch name="Harp" hbank="0" lbank="0" prog="46"/>
+ <Patch name="Timpani" hbank="0" lbank="0" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings 1" hbank="0" lbank="0" prog="48"/>
+ <Patch name="Strings 2" hbank="0" lbank="0" prog="49"/>
+ <Patch name="Syn. Strings 1" hbank="0" lbank="0" prog="50"/>
+ <Patch name="Syn. Strings 2" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Choir Aahs" hbank="0" lbank="0" prog="52"/>
+ <Patch name="Voice Oohs" hbank="0" lbank="0" prog="53"/>
+ <Patch name="Synth Voice" hbank="0" lbank="0" prog="54"/>
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trombone" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58"/>
+ <Patch name="Muted Trumpet" hbank="0" lbank="0" prog="59"/>
+ <Patch name="French Horn" hbank="0" lbank="0" prog="60"/>
+ <Patch name="Brass Section" hbank="0" lbank="0" prog="61"/>
+ <Patch name="Synth Brass 1" hbank="0" lbank="0" prog="62"/>
+ <Patch name="Synth Brass 2" hbank="0" lbank="0" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Sax" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65"/>
+ <Patch name="Tenor Sax" hbank="0" lbank="0" prog="66"/>
+ <Patch name="Baritone Sax" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68"/>
+ <Patch name="English Horn" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" hbank="0" lbank="0" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" hbank="0" lbank="0" prog="75"/>
+ <Patch name="Blown Bottle" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" hbank="0" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Saw Wave" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Calliope" hbank="0" lbank="0" prog="82"/>
+ <Patch name="Chiffer Lead" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Charang" hbank="0" lbank="0" prog="84"/>
+ <Patch name="Solo Vox" hbank="0" lbank="0" prog="85"/>
+ <Patch name="Fifth Saw" hbank="0" lbank="0" prog="86"/>
+ <Patch name="Bass Lead" hbank="0" lbank="0" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="New Age Pad" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89"/>
+ <Patch name="Polysynth Pad" hbank="0" lbank="0" prog="90"/>
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91"/>
+ <Patch name="Bowed Pad" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Metallic Pad" hbank="0" lbank="0" prog="93"/>
+ <Patch name="Halo Pad" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" hbank="0" lbank="0" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="Rain" hbank="0" lbank="0" prog="96"/>
+ <Patch name="Soundtrack" hbank="0" lbank="0" prog="97"/>
+ <Patch name="Crystal" hbank="0" lbank="0" prog="98"/>
+ <Patch name="Athmosphere" hbank="0" lbank="0" prog="99"/>
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100"/>
+ <Patch name="Goblins" hbank="0" lbank="0" prog="101"/>
+ <Patch name="Echoes" hbank="0" lbank="0" prog="102"/>
+ <Patch name="Sci-Fi" hbank="0" lbank="0" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar" hbank="0" lbank="0" prog="104"/>
+ <Patch name="Banjo" hbank="0" lbank="0" prog="105"/>
+ <Patch name="Shamisen" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Koto" hbank="0" lbank="0" prog="107"/>
+ <Patch name="Kalimba" hbank="0" lbank="0" prog="108"/>
+ <Patch name="Bagpipe" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" hbank="0" lbank="0" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinkle Bell" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Steel Drums" hbank="0" lbank="0" prog="114"/>
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115"/>
+ <Patch name="Taiko Drum" hbank="0" lbank="0" prog="116"/>
+ <Patch name="Melodic Drum" hbank="0" lbank="0" prog="117"/>
+ <Patch name="Synth Drum" hbank="0" lbank="0" prog="118"/>
+ <Patch name="Rev. Cymbal" hbank="0" lbank="0" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="Gtr Fret Noise" hbank="0" lbank="0" prog="120"/>
+ <Patch name="Breath Noise" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Bird Tweed" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Telephone" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Helicopter" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Applaus" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard" hbank="17" lbank="0" prog="0"/>
+ <Patch name="Room" hbank="17" lbank="0" prog="8"/>
+ <Patch name="Electro" hbank="17" lbank="0" prog="24"/>
+ <Patch name="Analog" hbank="17" lbank="0" prog="25"/>
+ <Patch name="Jazz" hbank="17" lbank="0" prog="32"/>
+ <Patch name="Brush" hbank="17" lbank="0" prog="40"/>
+ <Patch name="Classic" hbank="17" lbank="0" prog="48"/>
+ <Patch name="Power" hbank="17" lbank="0" prog="16"/>
+ <Patch name="SFX1" hbank="17" lbank="0" prog="56"/>
+ <Patch name="GM" hbank="17" lbank="0" prog="127"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" />
+ <Controller name="GenPurpose1" type="Control" l="16" />
+ <Controller name="GenPurpose2" type="Control" l="17" />
+ <Controller name="GenPurpose3" type="Control" l="18" />
+ <Controller name="GenPurpose4" type="Control" l="19" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="HarmonicContent" type="Control" l="68" />
+ <Controller name="ReleaseTime" type="Control" l="72" />
+ <Controller name="AttackTime" type="Control" l="73" />
+ <Controller name="Brightness" type="Control" l="74" />
+ <Controller name="PortamentoControl" type="Control" l="75" />
+ <Controller name="Effect1Depth" type="Control" l="76" />
+ <Controller name="Effect3Depth" type="Control" l="93" />
+ <Controller name="AttackTime" type="Control" l="0x49" />
+ <Controller name="VariationSend" type="Control" l="0x5e" />
+ <Controller name="AllSoundsOff" type="Control" l="120" />
+ <Controller name="ResetAllController" type="Control" l="121" />
+ <Controller name="AllNotesOff" type="Control" l="123" />
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ <!-- NPN's -->
+ <Controller name="VibratoRate" type="NRPN" h="0x01" l="0x08" />
+ <Controller name="VibratoDepth" type="NRPN" h="0x01" l="0x09" />
+ <Controller name="VibratoDelay" type="NRPN" h="0x01" l="0x0a" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="0x01" l="0x20" />
+ <Controller name="FilterResonance" type="NRPN" h="0x01" l="0x21" />
+ <Controller name="AttackRate" type="NRPN" h="0x01" l="0x63" />
+ <Controller name="DecayRate" type="NRPN" h="0x01" l="0x64" />
+ <Controller name="ReleaseRate" type="NRPN" h="0x01" l="0x66" />
+ <Controller name="DrumPitchCoarseTune" type="NRPN" h="0x18" l="pitch" />
+ <Controller name="DrumLevel" type="NRPN" h="0x1a" l="pitch" />
+ <Controller name="DrumPanpot" type="NRPN" h="0x1c" l="pitch" />
+ <Controller name="DrumReverbSend" type="NRPN" h="0x1d" l="pitch" />
+ <Controller name="DrumChorusSend" type="NRPN" h="0x1e" l="pitch" />
+
+ <!-- SysEx's -->
+ <SysEx name="GS on">
+ <comment>Switch GS mode on</comment>
+ <data>0x41 0x10 0x42 0x12 0x40 0x00 0x7f 0x00 0x41</data>
+ </SysEx>
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/ns5r.idf b/muse_qt4_evolution/share/instruments/ns5r.idf
new file mode 100644
index 00000000..b51e6b80
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/ns5r.idf
@@ -0,0 +1,568 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg-NS5R">
+ <Init>
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" mode="7" hbank="0" lbank="0" prog="0"/>
+ <Patch name="GrndPnoK" mode="4" hbank="0" lbank="1" prog="0"/>
+ <Patch name="MelloGrP" mode="4" hbank="0" lbank="18" prog="0"/>
+ <Patch name="PianoStr" mode="4" hbank="0" lbank="40" prog="0"/>
+ <Patch name="Dream" mode="4" hbank="0" lbank="41" prog="0"/>
+ <Patch name="Bright Piano" mode="7" hbank="0" lbank="0" prog="1"/>
+ <Patch name="BritPnoK" mode="4" hbank="0" lbank="1" prog="1"/>
+ <Patch name="E.Grand" mode="7" hbank="0" lbank="0" prog="2"/>
+ <Patch name="ElGrPnoK" mode="4" hbank="0" lbank="1" prog="2"/>
+ <Patch name="Det.CP80" mode="4" hbank="0" lbank="32" prog="2"/>
+ <Patch name="ElGrPno1" mode="4" hbank="0" lbank="40" prog="2"/>
+ <Patch name="ElGrPno2" mode="4" hbank="0" lbank="41" prog="2"/>
+ <Patch name="Honky-tonk" mode="7" hbank="0" lbank="0" prog="3"/>
+ <Patch name="HonkyTonkK" mode="4" hbank="0" lbank="1" prog="3"/>
+ <Patch name="E.Piano" mode="7" hbank="0" lbank="0" prog="4"/>
+ <Patch name="El.Pno1K" mode="4" hbank="0" lbank="1" prog="4"/>
+ <Patch name="MelloEP1" mode="4" hbank="0" lbank="18" prog="4"/>
+ <Patch name="Chor.EP1" mode="4" hbank="0" lbank="32" prog="4"/>
+ <Patch name="HardEl.P" mode="4" hbank="0" lbank="40" prog="4"/>
+ <Patch name="VXElP1" mode="4" hbank="0" lbank="45" prog="4"/>
+ <Patch name="60sEl.P" mode="4" hbank="0" lbank="64" prog="4"/>
+ <Patch name="E.Piano 2" mode="7" hbank="0" lbank="0" prog="5"/>
+ <Patch name="El.Pno2K" mode="4" hbank="0" lbank="1" prog="5"/>
+ <Patch name="Chor.EP2" mode="4" hbank="0" lbank="32" prog="5"/>
+ <Patch name="DX.Hard" mode="4" hbank="0" lbank="33" prog="5"/>
+ <Patch name="DXLegend" mode="4" hbank="0" lbank="34" prog="5"/>
+ <Patch name="DXPhase" mode="4" hbank="0" lbank="40" prog="5"/>
+ <Patch name="DX+Analg" mode="4" hbank="0" lbank="41" prog="5"/>
+ <Patch name="DXKotoEP" mode="4" hbank="0" lbank="42" prog="5"/>
+ <Patch name="VXEl.P2" mode="4" hbank="0" lbank="45" prog="5"/>
+ <Patch name="Harpsichord" mode="7" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Harpsi.K" mode="4" hbank="0" lbank="1" prog="6"/>
+ <Patch name="Harpsi.2" mode="4" hbank="0" lbank="25" prog="6"/>
+ <Patch name="Harpsi.3" mode="4" hbank="0" lbank="35" prog="6"/>
+ <Patch name="Clav." mode="7" hbank="0" lbank="0" prog="7"/>
+ <Patch name="Clavi.K" mode="4" hbank="0" lbank="1" prog="7"/>
+ <Patch name="ClaviWah" mode="4" hbank="0" lbank="27" prog="7"/>
+ <Patch name="PulseClv" mode="4" hbank="0" lbank="64" prog="7"/>
+ <Patch name="PierceCl" mode="4" hbank="0" lbank="65" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc">
+ <Patch name="Celesta" mode="7" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" mode="7" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Music Box" mode="7" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Orgel" mode="4" hbank="0" lbank="64" prog="10"/>
+ <Patch name="Vibraphone" mode="7" hbank="0" lbank="0" prog="11"/>
+ <Patch name="VibesK" mode="4" hbank="0" lbank="1" prog="11"/>
+ <Patch name="HardVibe" mode="4" hbank="0" lbank="45" prog="11"/>
+ <Patch name="Marimba" mode="7" hbank="0" lbank="0" prog="12"/>
+ <Patch name="MarimbaK" mode="4" hbank="0" lbank="1" prog="12"/>
+ <Patch name="SineMrmb" mode="4" hbank="0" lbank="64" prog="12"/>
+ <Patch name="Balafon" mode="4" hbank="0" lbank="96" prog="12"/>
+ <Patch name="Balafon2" mode="4" hbank="0" lbank="97" prog="12"/>
+ <Patch name="LogDrum" mode="4" hbank="0" lbank="98" prog="12"/>
+ <Patch name="Xylophone" mode="7" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Tubular Bells" mode="7" hbank="0" lbank="0" prog="14"/>
+ <Patch name="ChrchBel" mode="4" hbank="0" lbank="96" prog="14"/>
+ <Patch name="Carillon" mode="4" hbank="0" lbank="97" prog="14"/>
+ <Patch name="Dulcimer" mode="7" hbank="0" lbank="0" prog="15"/>
+ <Patch name="Dulcimr2" mode="4" hbank="0" lbank="35" prog="15"/>
+ <Patch name="Cimbalom" mode="4" hbank="0" lbank="96" prog="15"/>
+ <Patch name="Santur" mode="4" hbank="0" lbank="97" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Drawbar Organ" mode="7" hbank="0" lbank="0" prog="16"/>
+ <Patch name="DelDrwOr" mode="4" hbank="0" lbank="32" prog="16"/>
+ <Patch name="60sDrOr1" mode="4" hbank="0" lbank="33" prog="16"/>
+ <Patch name="60sDrOr2" mode="4" hbank="0" lbank="34" prog="16"/>
+ <Patch name="70sDrOr1" mode="4" hbank="0" lbank="35" prog="16"/>
+ <Patch name="DrawOrg2" mode="4" hbank="0" lbank="36" prog="16"/>
+ <Patch name="60sDrOr3" mode="4" hbank="0" lbank="37" prog="16"/>
+ <Patch name="EvenBar" mode="4" hbank="0" lbank="38" prog="16"/>
+ <Patch name="16+2&quot;2/3" mode="4" hbank="0" lbank="40" prog="16"/>
+ <Patch name="OrganBa" mode="4" hbank="0" lbank="64" prog="16"/>
+ <Patch name="70sDrOr2" mode="4" hbank="0" lbank="65" prog="16"/>
+ <Patch name="CheezOrg" mode="4" hbank="0" lbank="66" prog="16"/>
+ <Patch name="DrawOrg3" mode="4" hbank="0" lbank="67" prog="16"/>
+ <Patch name="Perc. Organ" mode="7" hbank="0" lbank="0" prog="17"/>
+ <Patch name="70sPcOr1" mode="4" hbank="0" lbank="24" prog="17"/>
+ <Patch name="DetPrcOr" mode="4" hbank="0" lbank="32" prog="17"/>
+ <Patch name="LiteOrg" mode="4" hbank="0" lbank="33" prog="17"/>
+ <Patch name="PercOrg2" mode="4" hbank="0" lbank="37" prog="17"/>
+ <Patch name="Rock Organ" mode="7" hbank="0" lbank="0" prog="18"/>
+ <Patch name="RotaryOr" mode="4" hbank="0" lbank="64" prog="18"/>
+ <Patch name="SloRotar" mode="4" hbank="0" lbank="65" prog="18"/>
+ <Patch name="FstRotar" mode="4" hbank="0" lbank="66" prog="18"/>
+ <Patch name="Church Organ" mode="7" hbank="0" lbank="0" prog="19"/>
+ <Patch name="ChurOrg3" mode="4" hbank="0" lbank="32" prog="19"/>
+ <Patch name="ChurOrg2" mode="4" hbank="0" lbank="35" prog="19"/>
+ <Patch name="NotreDam" mode="4" hbank="0" lbank="40" prog="19"/>
+ <Patch name="OrgFlute" mode="4" hbank="0" lbank="64" prog="19"/>
+ <Patch name="TrmOrgFl" mode="4" hbank="0" lbank="65" prog="19"/>
+ <Patch name="Reed Organ" mode="7" hbank="0" lbank="0" prog="20"/>
+ <Patch name="PuffOrg" mode="4" hbank="0" lbank="40" prog="20"/>
+ <Patch name="Akkordion" mode="7" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Accordlt" mode="4" hbank="0" lbank="32" prog="21"/>
+ <Patch name="Harmonica" mode="7" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Harmo2" mode="4" hbank="0" lbank="32" prog="22"/>
+ <Patch name="Bandoneon" mode="7" hbank="0" lbank="0" prog="23"/>
+ <Patch name="TngoAcd2" mode="4" hbank="0" lbank="64" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon Gtr." mode="7" hbank="0" lbank="0" prog="24"/>
+ <Patch name="NylonGt2" mode="4" hbank="0" lbank="16" prog="24"/>
+ <Patch name="NylonGt3" mode="4" hbank="0" lbank="25" prog="24"/>
+ <Patch name="VelGtHrm" mode="4" hbank="0" lbank="43" prog="24"/>
+ <Patch name="Ukelele" mode="4" hbank="0" lbank="96" prog="24"/>
+ <Patch name="Steel Gtr." mode="7" hbank="0" lbank="0" prog="25"/>
+ <Patch name="SteelGt2" mode="4" hbank="0" lbank="16" prog="25"/>
+ <Patch name="12StrGtr" mode="4" hbank="0" lbank="35" prog="25"/>
+ <Patch name="Nylon-Stl" mode="4" hbank="0" lbank="40" prog="25"/>
+ <Patch name="Stl-Body" mode="4" hbank="0" lbank="41" prog="25"/>
+ <Patch name="Mandolin" mode="4" hbank="0" lbank="96" prog="25"/>
+ <Patch name="Jazz Guitar" mode="7" hbank="0" lbank="0" prog="26"/>
+ <Patch name="MelloGtr" mode="4" hbank="0" lbank="18" prog="26"/>
+ <Patch name="JazzAmp" mode="4" hbank="0" lbank="32" prog="26"/>
+ <Patch name="PdlSteel" mode="4" hbank="0" lbank="96" prog="26"/>
+ <Patch name="Clean Guitar" mode="7" hbank="0" lbank="0" prog="27"/>
+ <Patch name="ChorusGt" mode="4" hbank="0" lbank="32" prog="27"/>
+ <Patch name="CleanGt2" mode="4" hbank="0" lbank="64" prog="27"/>
+ <Patch name="Muted Guitar" mode="7" hbank="0" lbank="0" prog="28"/>
+ <Patch name="FunkGtr1" mode="4" hbank="0" lbank="40" prog="28"/>
+ <Patch name="MuteStlG" mode="4" hbank="0" lbank="41" prog="28"/>
+ <Patch name="FunkGtr2" mode="4" hbank="0" lbank="43" prog="28"/>
+ <Patch name="JazzMan" mode="4" hbank="0" lbank="45" prog="28"/>
+ <Patch name="Mu.DstGt" mode="4" hbank="0" lbank="96" prog="28"/>
+ <Patch name="Overdrive Gtr" mode="7" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Gt.Pinch" mode="4" hbank="0" lbank="43" prog="29"/>
+ <Patch name="Distortion Gtr" mode="7" hbank="0" lbank="0" prog="30"/>
+ <Patch name="DstRthmG" mode="4" hbank="0" lbank="12" prog="30"/>
+ <Patch name="DistGtr2" mode="4" hbank="0" lbank="24" prog="30"/>
+ <Patch name="DistGtr3" mode="4" hbank="0" lbank="35" prog="30"/>
+ <Patch name="PowerGt2" mode="4" hbank="0" lbank="36" prog="30"/>
+ <Patch name="PowerGt1" mode="4" hbank="0" lbank="37" prog="30"/>
+ <Patch name="Dst.5ths" mode="4" hbank="0" lbank="38" prog="30"/>
+ <Patch name="FeedbkGt" mode="4" hbank="0" lbank="40" prog="30"/>
+ <Patch name="FeedbGt2" mode="4" hbank="0" lbank="41" prog="30"/>
+ <Patch name="RkRythm2" mode="4" hbank="0" lbank="43" prog="30"/>
+ <Patch name="RockRthm" mode="4" hbank="0" lbank="45" prog="30"/>
+ <Patch name="Gtr. Harmonics" mode="7" hbank="0" lbank="0" prog="31"/>
+ <Patch name="GtFeedbk" mode="4" hbank="0" lbank="65" prog="31"/>
+ <Patch name="GtrHrmo2" mode="4" hbank="0" lbank="66" prog="31"/>
+ <Patch name="AcoHarmo" mode="4" hbank="0" lbank="64" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" mode="7" hbank="0" lbank="0" prog="32"/>
+ <Patch name="JazzRthm" mode="4" hbank="0" lbank="40" prog="32"/>
+ <Patch name="VXUprght" mode="4" hbank="0" lbank="45" prog="32"/>
+ <Patch name="Fingered Bass" mode="7" hbank="0" lbank="0" prog="33"/>
+ <Patch name="FingrDrk" mode="4" hbank="0" lbank="18" prog="33"/>
+ <Patch name="FlangeBa" mode="4" hbank="0" lbank="27" prog="33"/>
+ <Patch name="Ba-DstEG" mode="4" hbank="0" lbank="40" prog="33"/>
+ <Patch name="FngrSlap" mode="4" hbank="0" lbank="43" prog="33"/>
+ <Patch name="FngBass2" mode="4" hbank="0" lbank="45" prog="33"/>
+ <Patch name="JazzBass" mode="4" hbank="0" lbank="64" prog="33"/>
+ <Patch name="ModAlem" mode="4" hbank="0" lbank="65" prog="33"/>
+ <Patch name="Picked Bass" mode="7" hbank="0" lbank="0" prog="34"/>
+ <Patch name="MutePkBa" mode="4" hbank="0" lbank="28" prog="34"/>
+ <Patch name="Fretless Bass" mode="7" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Fretles2" mode="4" hbank="0" lbank="32" prog="35"/>
+ <Patch name="Fretles3" mode="4" hbank="0" lbank="33" prog="35"/>
+ <Patch name="Fretles4" mode="4" hbank="0" lbank="34" prog="35"/>
+ <Patch name="SynFretl" mode="4" hbank="0" lbank="96" prog="35"/>
+ <Patch name="Smooth" mode="4" hbank="0" lbank="97" prog="35"/>
+ <Patch name="Slap Bass 1" mode="7" hbank="0" lbank="0" prog="36"/>
+ <Patch name="ResoSlap" mode="4" hbank="0" lbank="27" prog="36"/>
+ <Patch name="PunchThm" mode="4" hbank="0" lbank="32" prog="36"/>
+ <Patch name="Slap Bass 2" mode="7" hbank="0" lbank="0" prog="37"/>
+ <Patch name="VeloSlap" mode="4" hbank="0" lbank="43" prog="37"/>
+ <Patch name="Synth Bass 1" mode="7" hbank="0" lbank="0" prog="38"/>
+ <Patch name="SynBa1Dk" mode="4" hbank="0" lbank="18" prog="38"/>
+ <Patch name="FastResB" mode="4" hbank="0" lbank="20" prog="38"/>
+ <Patch name="AcidBass" mode="4" hbank="0" lbank="24" prog="38"/>
+ <Patch name="ClvBass" mode="4" hbank="0" lbank="35" prog="38"/>
+ <Patch name="TeknoBa" mode="4" hbank="0" lbank="40" prog="38"/>
+ <Patch name="Oscar" mode="4" hbank="0" lbank="64" prog="38"/>
+ <Patch name="SqrBass" mode="4" hbank="0" lbank="65" prog="38"/>
+ <Patch name="RubberBa" mode="4" hbank="0" lbank="66" prog="38"/>
+ <Patch name="Hammer" mode="4" hbank="0" lbank="96" prog="38"/>
+ <Patch name="Synth Bass 2" mode="7" hbank="0" lbank="0" prog="39"/>
+ <Patch name="MelloSB1" mode="4" hbank="0" lbank="6" prog="39"/>
+ <Patch name="SeqBass" mode="4" hbank="0" lbank="12" prog="39"/>
+ <Patch name="ClkSynBa" mode="4" hbank="0" lbank="18" prog="39"/>
+ <Patch name="SynBa2Dk" mode="4" hbank="0" lbank="19" prog="39"/>
+ <Patch name="SmthBa2" mode="4" hbank="0" lbank="32" prog="39"/>
+ <Patch name="ModulrBa" mode="4" hbank="0" lbank="40" prog="39"/>
+ <Patch name="DXBass" mode="4" hbank="0" lbank="41" prog="39"/>
+ <Patch name="XWireBa" mode="4" hbank="0" lbank="64" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings/Orch">
+ <Patch name="Violin" mode="7" hbank="0" lbank="0" prog="40"/>
+ <Patch name="SlowVln" mode="4" hbank="0" lbank="8" prog="40"/>
+ <Patch name="Viola" mode="7" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Cello" mode="7" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Contrabass" mode="7" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Tremolo Str." mode="7" hbank="0" lbank="0" prog="44"/>
+ <Patch name="SlowTrSt" mode="4" hbank="0" lbank="8" prog="44"/>
+ <Patch name="SuspStr" mode="4" hbank="0" lbank="40" prog="44"/>
+ <Patch name="Pizzicato Str." mode="7" hbank="0" lbank="0" prog="45"/>
+ <Patch name="Harp" mode="7" hbank="0" lbank="0" prog="46"/>
+ <Patch name="YangChin" mode="4" hbank="0" lbank="40" prog="46"/>
+ <Patch name="Timpani" mode="7" hbank="0" lbank="0" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings 1" mode="7" hbank="0" lbank="0" prog="48"/>
+ <Patch name="S.Strngs" mode="4" hbank="0" lbank="3" prog="48"/>
+ <Patch name="SlowStr" mode="4" hbank="0" lbank="8" prog="48"/>
+ <Patch name="ArcoStr" mode="4" hbank="0" lbank="24" prog="48"/>
+ <Patch name="60sStrng" mode="4" hbank="0" lbank="35" prog="48"/>
+ <Patch name="Orchestr" mode="4" hbank="0" lbank="40" prog="48"/>
+ <Patch name="Orchstr2" mode="4" hbank="0" lbank="41" prog="48"/>
+ <Patch name="TremOrch" mode="4" hbank="0" lbank="42" prog="48"/>
+ <Patch name="VeloStr" mode="4" hbank="0" lbank="45" prog="48"/>
+ <Patch name="Strings 2" mode="7" hbank="0" lbank="0" prog="49"/>
+ <Patch name="S.SlwStr" mode="4" hbank="0" lbank="3" prog="49"/>
+ <Patch name="LegatoSt" mode="4" hbank="0" lbank="8" prog="49"/>
+ <Patch name="WarmStr" mode="4" hbank="0" lbank="40" prog="49"/>
+ <Patch name="Kingdom" mode="4" hbank="0" lbank="41" prog="49"/>
+ <Patch name="70sStr" mode="4" hbank="0" lbank="64" prog="49"/>
+ <Patch name="StrEns3" mode="4" hbank="0" lbank="65" prog="49"/>
+ <Patch name="Syn. Strings 1" mode="7" hbank="0" lbank="0" prog="50"/>
+ <Patch name="ResoStr" mode="4" hbank="0" lbank="27" prog="50"/>
+ <Patch name="SynStr4" mode="4" hbank="0" lbank="64" prog="50"/>
+ <Patch name="SSStr" mode="4" hbank="0" lbank="65" prog="50"/>
+ <Patch name="SynStr3" mode="4" hbank="0" lbank="35" prog="50"/>
+ <Patch name="Syn. Strings 2" mode="7" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Choir Aahs" mode="7" hbank="0" lbank="0" prog="52"/>
+ <Patch name="S.Choir" mode="4" hbank="0" lbank="3" prog="52"/>
+ <Patch name="Ch.Aahs2" mode="4" hbank="0" lbank="16" prog="52"/>
+ <Patch name="MelChoir" mode="4" hbank="0" lbank="32" prog="52"/>
+ <Patch name="ChoirStr" mode="4" hbank="0" lbank="40" prog="52"/>
+ <Patch name="StrngAah" mode="4" hbank="0" lbank="64" prog="52"/>
+ <Patch name="MaleAah" mode="4" hbank="0" lbank="65" prog="52"/>
+ <Patch name="Voice Oohs" mode="7" hbank="0" lbank="0" prog="53"/>
+ <Patch name="VoiceDoo" mode="4" hbank="0" lbank="64" prog="53"/>
+ <Patch name="VoiceHmn" mode="4" hbank="0" lbank="96" prog="53"/>
+ <Patch name="Synth Voice" mode="7" hbank="0" lbank="0" prog="54"/>
+ <Patch name="SynVox2" mode="4" hbank="0" lbank="40" prog="54"/>
+ <Patch name="Choral" mode="4" hbank="0" lbank="41" prog="54"/>
+ <Patch name="AnaVoice" mode="4" hbank="0" lbank="64" prog="54"/>
+ <Patch name="Orchestra Hit" mode="7" hbank="0" lbank="0" prog="55"/>
+ <Patch name="OrchHit2" mode="4" hbank="0" lbank="35" prog="55"/>
+ <Patch name="Impact" mode="4" hbank="0" lbank="64" prog="55"/>
+ <Patch name="DoublHit" mode="4" hbank="0" lbank="66" prog="55"/>
+ <Patch name="BrStab80" mode="4" hbank="0" lbank="67" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="Trumpet" mode="7" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trumpet2" mode="4" hbank="0" lbank="16" prog="56"/>
+ <Patch name="BriteTrp" mode="4" hbank="0" lbank="17" prog="56"/>
+ <Patch name="WarmTrp" mode="4" hbank="0" lbank="32" prog="56"/>
+ <Patch name="FluglHrn" mode="4" hbank="0" lbank="96" prog="56"/>
+ <Patch name="Trombone" mode="7" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Trmbone2" mode="4" hbank="0" lbank="18" prog="57"/>
+ <Patch name="Tuba" mode="7" hbank="0" lbank="0" prog="58"/>
+ <Patch name="Tuba2" mode="4" hbank="0" lbank="16" prog="58"/>
+ <Patch name="Muted Trumpet" mode="7" hbank="0" lbank="0" prog="59"/>
+ <Patch name="MuteTrp2" mode="4" hbank="2" lbank="64" prog="59"/>
+ <Patch name="French Horn" mode="7" hbank="0" lbank="0" prog="60"/>
+ <Patch name="FrHrSolo" mode="4" hbank="0" lbank="6" prog="60"/>
+ <Patch name="FrHorn2" mode="4" hbank="0" lbank="32" prog="60"/>
+ <Patch name="HornOrch" mode="4" hbank="0" lbank="37" prog="60"/>
+ <Patch name="Brass Section" mode="7" hbank="0" lbank="0" prog="61"/>
+ <Patch name="Tp-TbSec" mode="4" hbank="0" lbank="35" prog="61"/>
+ <Patch name="BrssSec2" mode="4" hbank="0" lbank="40" prog="61"/>
+ <Patch name="HiBrass" mode="4" hbank="0" lbank="41" prog="61"/>
+ <Patch name="MelloBrs" mode="4" hbank="0" lbank="42" prog="61"/>
+ <Patch name="SfrzndBr" mode="4" hbank="0" lbank="14" prog="61"/>
+ <Patch name="BrssFall" mode="4" hbank="0" lbank="39" prog="61"/>
+ <Patch name="Synth Brass 1" mode="7" hbank="0" lbank="0" prog="62"/>
+ <Patch name="QuackBr" mode="4" hbank="0" lbank="12" prog="62"/>
+ <Patch name="RezSynBr" mode="4" hbank="0" lbank="20" prog="62"/>
+ <Patch name="PolyBrss" mode="4" hbank="0" lbank="24" prog="62"/>
+ <Patch name="SynBras3" mode="4" hbank="0" lbank="27" prog="62"/>
+ <Patch name="JumpBrss" mode="4" hbank="0" lbank="32" prog="62"/>
+ <Patch name="AnaVelBr" mode="4" hbank="0" lbank="45" prog="62"/>
+ <Patch name="AnaBrss1" mode="4" hbank="0" lbank="64" prog="62"/>
+ <Patch name="Synth Brass 2" mode="7" hbank="0" lbank="0" prog="63"/>
+ <Patch name="SoftBrs" mode="4" hbank="0" lbank="18" prog="63"/>
+ <Patch name="SynBras4" mode="4" hbank="0" lbank="40" prog="63"/>
+ <Patch name="ChoBrss" mode="4" hbank="0" lbank="41" prog="63"/>
+ <Patch name="VelBras2" mode="4" hbank="0" lbank="45" prog="63"/>
+ <Patch name="AnaBras2" mode="4" hbank="0" lbank="64" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Sax" mode="7" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" mode="7" hbank="0" lbank="0" prog="65"/>
+ <Patch name="SaxSect" mode="4" hbank="0" lbank="40" prog="65"/>
+ <Patch name="HyprAlto" mode="4" hbank="0" lbank="43" prog="65"/>
+ <Patch name="Tenor Sax" mode="7" hbank="0" lbank="0" prog="66"/>
+ <Patch name="BrthTnSx" mode="4" hbank="0" lbank="40" prog="66"/>
+ <Patch name="SoftTenr" mode="4" hbank="0" lbank="41" prog="66"/>
+ <Patch name="TnrSax2" mode="4" hbank="0" lbank="64" prog="66"/>
+ <Patch name="Baritone Sax" mode="7" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" mode="7" hbank="0" lbank="0" prog="68"/>
+ <Patch name="English Horn" mode="7" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" mode="7" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" mode="7" hbank="0" lbank="0" prog="71"/>
+ <Patch name="BassClar" mode="4" hbank="0" lbank="96" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo" mode="7" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" mode="7" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" mode="7" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" mode="7" hbank="0" lbank="0" prog="75"/>
+ <Patch name="PanFlut2" mode="4" hbank="0" lbank="64" prog="75"/>
+ <Patch name="Kawala" mode="4" hbank="0" lbank="96" prog="75"/>
+ <Patch name="Blown Bottle" mode="7" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" mode="7" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" mode="7" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" mode="7" hbank="0" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" mode="7" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Square2" mode="4" hbank="0" lbank="6" prog="80"/>
+ <Patch name="LMSquare" mode="4" hbank="0" lbank="8" prog="80"/>
+ <Patch name="Hollow" mode="4" hbank="0" lbank="18" prog="80"/>
+ <Patch name="Shmoog" mode="4" hbank="0" lbank="19" prog="80"/>
+ <Patch name="Mellow" mode="4" hbank="0" lbank="64" prog="80"/>
+ <Patch name="SoloSine" mode="4" hbank="0" lbank="65" prog="80"/>
+ <Patch name="SineLead" mode="4" hbank="0" lbank="66" prog="80"/>
+ <Patch name="Saw Wave" mode="7" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Saw2" mode="4" hbank="0" lbank="6" prog="81"/>
+ <Patch name="ThickSaw" mode="4" hbank="0" lbank="8" prog="81"/>
+ <Patch name="DynaSaw" mode="4" hbank="0" lbank="18" prog="81"/>
+ <Patch name="DigiSaw" mode="4" hbank="0" lbank="19" prog="81"/>
+ <Patch name="BigLead" mode="4" hbank="0" lbank="20" prog="81"/>
+ <Patch name="HeavySyn" mode="4" hbank="0" lbank="24" prog="81"/>
+ <Patch name="WaspySyn" mode="4" hbank="0" lbank="25" prog="81"/>
+ <Patch name="PulseSaw" mode="4" hbank="0" lbank="40" prog="81"/>
+ <Patch name="Dr.Lead" mode="4" hbank="0" lbank="41" prog="81"/>
+ <Patch name="VeloLead" mode="4" hbank="0" lbank="45" prog="81"/>
+ <Patch name="SeqAna" mode="4" hbank="0" lbank="96" prog="81"/>
+ <Patch name="Calliope" mode="7" hbank="0" lbank="0" prog="82"/>
+ <Patch name="PurePad" mode="4" hbank="0" lbank="65" prog="82"/>
+ <Patch name="VentSyn" mode="4" hbank="0" lbank="64" prog="82"/>
+ <Patch name="Chiffer Lead" mode="7" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Rubby" mode="4" hbank="0" lbank="64" prog="83"/>
+ <Patch name="Charang" mode="7" hbank="0" lbank="0" prog="84"/>
+ <Patch name="DistLead" mode="4" hbank="0" lbank="64" prog="84"/>
+ <Patch name="WireLead" mode="4" hbank="0" lbank="65" prog="84"/>
+ <Patch name="Solo Vox" mode="7" hbank="0" lbank="0" prog="85"/>
+ <Patch name="SynthAah" mode="4" hbank="0" lbank="24" prog="85"/>
+ <Patch name="VoxLead" mode="4" hbank="0" lbank="64" prog="85"/>
+ <Patch name="Fifth Saw" mode="7" hbank="0" lbank="0" prog="86"/>
+ <Patch name="BigFive" mode="4" hbank="0" lbank="35" prog="86"/>
+ <Patch name="Bass Lead" mode="7" hbank="0" lbank="0" prog="87"/>
+ <Patch name="Big-Low" mode="4" hbank="0" lbank="16" prog="87"/>
+ <Patch name="Fat-Prky" mode="4" hbank="0" lbank="64" prog="87"/>
+ <Patch name="SoftWurl" mode="4" hbank="0" lbank="65" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="New Age Pad" mode="7" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Fantasy2" mode="4" hbank="0" lbank="64" prog="88"/>
+ <Patch name="Warm Pad" mode="7" hbank="0" lbank="0" prog="89"/>
+ <Patch name="ThickPad" mode="4" hbank="0" lbank="16" prog="89"/>
+ <Patch name="SoftPad" mode="4" hbank="0" lbank="17" prog="89"/>
+ <Patch name="SinePad" mode="4" hbank="0" lbank="18" prog="89"/>
+ <Patch name="HornPad" mode="4" hbank="0" lbank="64" prog="89"/>
+ <Patch name="RotarStr" mode="4" hbank="0" lbank="65" prog="89"/>
+ <Patch name="Polysynth Pad" mode="7" hbank="0" lbank="0" prog="90"/>
+ <Patch name="PolyPd80" mode="4" hbank="0" lbank="64" prog="90"/>
+ <Patch name="ClickPad" mode="4" hbank="0" lbank="65" prog="90"/>
+ <Patch name="AnaPad" mode="4" hbank="0" lbank="66" prog="90"/>
+ <Patch name="SquarPad" mode="4" hbank="0" lbank="67" prog="90"/>
+ <Patch name="Choir Pad" mode="7" hbank="0" lbank="0" prog="91"/>
+ <Patch name="Heaven2" mode="4" hbank="0" lbank="64" prog="91"/>
+ <Patch name="Itopia" mode="4" hbank="0" lbank="66" prog="91"/>
+ <Patch name="CCPad" mode="4" hbank="0" lbank="67" prog="91"/>
+ <Patch name="LitePad" mode="4" hbank="0" lbank="65" prog="91"/>
+ <Patch name="Bowed Pad" mode="7" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Glacier" mode="4" hbank="0" lbank="64" prog="92"/>
+ <Patch name="GlassPad" mode="4" hbank="0" lbank="65" prog="92"/>
+ <Patch name="Metallic Pad" mode="7" hbank="0" lbank="0" prog="93"/>
+ <Patch name="TinePad" mode="4" hbank="0" lbank="64" prog="93"/>
+ <Patch name="PanPad" mode="4" hbank="0" lbank="65" prog="93"/>
+ <Patch name="Halo Pad" mode="7" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" mode="7" hbank="0" lbank="0" prog="95"/>
+ <Patch name="Shwimmer" mode="4" hbank="0" lbank="20" prog="95"/>
+ <Patch name="Converge" mode="4" hbank="0" lbank="27" prog="95"/>
+ <Patch name="PolarPad" mode="4" hbank="0" lbank="64" prog="95"/>
+ <Patch name="Celstial" mode="4" hbank="0" lbank="66" prog="95"/>
+ <Patch name="Sweepy" mode="4" hbank="0" lbank="65" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="Rain" mode="7" hbank="0" lbank="0" prog="96"/>
+ <Patch name="ClaviPad" mode="4" hbank="0" lbank="45" prog="96"/>
+ <Patch name="HrmoRain" mode="4" hbank="0" lbank="64" prog="96"/>
+ <Patch name="AfrcnWnd" mode="4" hbank="0" lbank="65" prog="96"/>
+ <Patch name="Caribean" mode="4" hbank="0" lbank="66" prog="96"/>
+ <Patch name="Soundtrack" mode="7" hbank="0" lbank="0" prog="97"/>
+ <Patch name="Prologue" mode="4" hbank="0" lbank="27" prog="97"/>
+ <Patch name="Ancestrl" mode="4" hbank="0" lbank="64" prog="97"/>
+ <Patch name="Rave" mode="4" hbank="0" lbank="65" prog="97"/>
+ <Patch name="Crystal" mode="7" hbank="0" lbank="0" prog="98"/>
+ <Patch name="SynDrCmp" mode="4" hbank="0" lbank="12" prog="98"/>
+ <Patch name="Popcorn" mode="4" hbank="0" lbank="14" prog="98"/>
+ <Patch name="TinyBell" mode="4" hbank="0" lbank="18" prog="98"/>
+ <Patch name="RndGlock" mode="4" hbank="0" lbank="35" prog="98"/>
+ <Patch name="GlockChi" mode="4" hbank="0" lbank="40" prog="98"/>
+ <Patch name="ClearBel" mode="4" hbank="0" lbank="41" prog="98"/>
+ <Patch name="ChorBell" mode="4" hbank="0" lbank="42" prog="98"/>
+ <Patch name="SynMalet" mode="4" hbank="0" lbank="64" prog="98"/>
+ <Patch name="SftCryst" mode="4" hbank="0" lbank="65" prog="98"/>
+ <Patch name="LoudGlok" mode="4" hbank="0" lbank="66" prog="98"/>
+ <Patch name="XmasBell" mode="4" hbank="0" lbank="67" prog="98"/>
+ <Patch name="VibeBell" mode="4" hbank="0" lbank="68" prog="98"/>
+ <Patch name="DigiBell" mode="4" hbank="0" lbank="69" prog="98"/>
+ <Patch name="AirBells" mode="4" hbank="0" lbank="70" prog="98"/>
+ <Patch name="BellHarp" mode="4" hbank="0" lbank="71" prog="98"/>
+ <Patch name="Gamelmba" mode="4" hbank="0" lbank="72" prog="98"/>
+ <Patch name="Athmosphere" mode="7" hbank="0" lbank="0" prog="99"/>
+ <Patch name="WarmAtms" mode="4" hbank="0" lbank="18" prog="99"/>
+ <Patch name="HollwRls" mode="4" hbank="0" lbank="19" prog="99"/>
+ <Patch name="NylonEP" mode="4" hbank="0" lbank="40" prog="99"/>
+ <Patch name="NylnHarp" mode="4" hbank="0" lbank="64" prog="99"/>
+ <Patch name="HarpVox" mode="4" hbank="0" lbank="65" prog="99"/>
+ <Patch name="Brightness" mode="7" hbank="0" lbank="0" prog="100"/>
+ <Patch name="Goblins" mode="7" hbank="0" lbank="0" prog="101"/>
+ <Patch name="MilkyWay" mode="4" hbank="0" lbank="69" prog="101"/>
+ <Patch name="Puffy" mode="4" hbank="0" lbank="72" prog="101"/>
+ <Patch name="Echoes" mode="7" hbank="0" lbank="0" prog="102"/>
+ <Patch name="Sci-Fi" mode="7" hbank="0" lbank="0" prog="103"/>
+ <Patch name="Odyssey" mode="4" hbank="0" lbank="65" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar" mode="7" hbank="0" lbank="0" prog="104"/>
+ <Patch name="DetSitar" mode="4" hbank="0" lbank="32" prog="104"/>
+ <Patch name="Sitar2" mode="4" hbank="0" lbank="35" prog="104"/>
+ <Patch name="Tambra" mode="4" hbank="0" lbank="96" prog="104"/>
+ <Patch name="Tamboura" mode="4" hbank="0" lbank="97" prog="104"/>
+ <Patch name="Banjo" mode="7" hbank="0" lbank="0" prog="105"/>
+ <Patch name="MuteBnjo" mode="4" hbank="0" lbank="28" prog="105"/>
+ <Patch name="Rabab" mode="4" hbank="0" lbank="96" prog="105"/>
+ <Patch name="Gopichnt" mode="4" hbank="0" lbank="97" prog="105"/>
+ <Patch name="Oud" mode="4" hbank="0" lbank="98" prog="105"/>
+ <Patch name="Shamisen" mode="7" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Tsugaru" mode="4" hbank="0" lbank="96" prog="106"/>
+ <Patch name="Koto" mode="7" hbank="0" lbank="0" prog="107"/>
+ <Patch name="T.Koto" mode="4" hbank="0" lbank="96" prog="107"/>
+ <Patch name="Kanoon" mode="4" hbank="0" lbank="97" prog="107"/>
+ <Patch name="Kalimba" mode="7" hbank="0" lbank="0" prog="108"/>
+ <Patch name="BigKalim" mode="4" hbank="0" lbank="64" prog="108"/>
+ <Patch name="Bagpipe" mode="7" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" mode="7" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" mode="7" hbank="0" lbank="0" prog="111"/>
+ <Patch name="Shanai2" mode="4" hbank="0" lbank="64" prog="111"/>
+ <Patch name="Pungi" mode="4" hbank="0" lbank="96" prog="111"/>
+ <Patch name="Hichriki" mode="4" hbank="0" lbank="97" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinkle Bell" mode="7" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Bonang" mode="4" hbank="0" lbank="96" prog="112"/>
+ <Patch name="Gender" mode="4" hbank="0" lbank="97" prog="112"/>
+ <Patch name="Gamelan" mode="4" hbank="0" lbank="98" prog="112"/>
+ <Patch name="S.Gamlan" mode="4" hbank="0" lbank="99" prog="112"/>
+ <Patch name="RamaCym" mode="4" hbank="0" lbank="100" prog="112"/>
+ <Patch name="AsianBel" mode="4" hbank="0" lbank="101" prog="112"/>
+ <Patch name="Agogo" mode="7" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Atrigane" mode="4" hbank="0" lbank="96" prog="113"/>
+ <Patch name="Steel Drums" mode="7" hbank="0" lbank="0" prog="114"/>
+ <Patch name="GlasPerc" mode="4" hbank="0" lbank="97" prog="114"/>
+ <Patch name="ThaiBell" mode="4" hbank="0" lbank="98" prog="114"/>
+ <Patch name="Tablas" mode="4" hbank="0" lbank="96" prog="114"/>
+ <Patch name="Woodblock" mode="7" hbank="0" lbank="0" prog="115"/>
+ <Patch name="Castanet" mode="4" hbank="0" lbank="96" prog="115"/>
+ <Patch name="Taiko Drum" mode="7" hbank="0" lbank="0" prog="116"/>
+ <Patch name="Gr.Cassa" mode="4" hbank="0" lbank="96" prog="116"/>
+ <Patch name="Melodic Drum" mode="7" hbank="0" lbank="0" prog="117"/>
+ <Patch name="MelTom2" mode="4" hbank="0" lbank="64" prog="117"/>
+ <Patch name="RealTom" mode="4" hbank="0" lbank="65" prog="117"/>
+ <Patch name="RockTom" mode="4" hbank="0" lbank="66" prog="117"/>
+ <Patch name="Synth Drum" mode="7" hbank="0" lbank="0" prog="118"/>
+ <Patch name="AnaTom" mode="4" hbank="0" lbank="64" prog="118"/>
+ <Patch name="ElecPerc" mode="4" hbank="0" lbank="65" prog="118"/>
+ <Patch name="Rev. Cymbal" mode="7" hbank="0" lbank="0" prog="119"/>
+ <Patch name="RevCym2" mode="4" hbank="0" lbank="64" prog="119"/>
+ <Patch name="RevSnar1" mode="4" hbank="0" lbank="96" prog="119"/>
+ <Patch name="RevSnar2" mode="4" hbank="0" lbank="97" prog="119"/>
+ <Patch name="RevKick1" mode="4" hbank="0" lbank="98" prog="119"/>
+ <Patch name="RevConBD" mode="4" hbank="0" lbank="99" prog="119"/>
+ <Patch name="RevTom1" mode="4" hbank="0" lbank="100" prog="119"/>
+ <Patch name="RevTom2" mode="4" hbank="0" lbank="101" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="Gtr Fret Noise" mode="7" hbank="0" lbank="0" prog="120"/>
+ <Patch name="Breath Noise" mode="7" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Seashore" mode="7" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Bird Tweed" mode="7" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Telephone" mode="7" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Helicopter" mode="7" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Applaus" mode="7" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Gunshot" mode="7" hbank="0" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard" mode="6" hbank="17" lbank="0" prog="0"/>
+ <Patch name="Standrd2" mode="4" hbank="17" lbank="0" prog="1"/>
+ <Patch name="Room" mode="6" hbank="17" lbank="0" prog="8"/>
+ <Patch name="Rock" mode="4" hbank="17" lbank="0" prog="16"/>
+ <Patch name="Electro" mode="6" hbank="17" lbank="0" prog="24"/>
+ <Patch name="Analog" mode="6" hbank="17" lbank="0" prog="25"/>
+ <Patch name="Jazz" mode="6" hbank="17" lbank="0" prog="32"/>
+ <Patch name="Brush" mode="6" hbank="17" lbank="0" prog="40"/>
+ <Patch name="Classic" mode="6" hbank="17" lbank="0" prog="48"/>
+ <Patch name="Power" mode="2" hbank="17" lbank="0" prog="16"/>
+ <Patch name="SFX1" mode="2" hbank="17" lbank="0" prog="56"/>
+ <Patch name="GM" mode="2" hbank="17" lbank="0" prog="127"/>
+ <Patch name="SFX1" mode="4" hbank="16" lbank="0" prog="0"/>
+ <Patch name="SFX2" mode="4" hbank="16" lbank="0" prog="1"/>
+ <Patch name="CuttngNz" mode="4" hbank="4" lbank="0" prog="0"/>
+ <Patch name="CuttngNz2" mode="4" hbank="4" lbank="0" prog="1"/>
+ <Patch name="StrSlap" mode="4" hbank="4" lbank="0" prog="3"/>
+ <Patch name="Fl.KClik" mode="4" hbank="4" lbank="0" prog="16"/>
+ <Patch name="Rain" mode="4" hbank="4" lbank="0" prog="32"/>
+ <Patch name="Thunder" mode="4" hbank="4" lbank="0" prog="33"/>
+ <Patch name="Wind" mode="4" hbank="4" lbank="0" prog="34"/>
+ <Patch name="Stream" mode="4" hbank="4" lbank="0" prog="35"/>
+ <Patch name="Bubble" mode="4" hbank="4" lbank="0" prog="36"/>
+ <Patch name="Feed" mode="4" hbank="4" lbank="0" prog="37"/>
+ <Patch name="Dog" mode="4" hbank="4" lbank="0" prog="48"/>
+ <Patch name="Horse" mode="4" hbank="4" lbank="0" prog="49"/>
+ <Patch name="Bird2" mode="4" hbank="4" lbank="0" prog="50"/>
+ <Patch name="Ghost" mode="4" hbank="4" lbank="0" prog="54"/>
+ <Patch name="Maou" mode="4" hbank="4" lbank="0" prog="55"/>
+ <Patch name="Tel.Dial" mode="4" hbank="4" lbank="0" prog="64"/>
+ <Patch name="DoorSqek" mode="4" hbank="4" lbank="0" prog="65"/>
+ <Patch name="DoorSlam" mode="4" hbank="4" lbank="0" prog="66"/>
+ <Patch name="Scratch" mode="4" hbank="4" lbank="0" prog="67"/>
+ <Patch name="Scratch2" mode="4" hbank="4" lbank="0" prog="68"/>
+ <Patch name="WindChm" mode="4" hbank="4" lbank="0" prog="69"/>
+ <Patch name="Telphon2" mode="4" hbank="4" lbank="0" prog="70"/>
+ <Patch name="CarEngin" mode="4" hbank="4" lbank="0" prog="80"/>
+ <Patch name="CarStop" mode="4" hbank="4" lbank="0" prog="81"/>
+ <Patch name="CarPass" mode="4" hbank="4" lbank="0" prog="82"/>
+ <Patch name="CarCrash" mode="4" hbank="4" lbank="0" prog="83"/>
+ <Patch name="Siren" mode="4" hbank="4" lbank="0" prog="84"/>
+ <Patch name="Train" mode="4" hbank="4" lbank="0" prog="85"/>
+ <Patch name="Jetplane" mode="4" hbank="4" lbank="0" prog="86"/>
+ <Patch name="Starship" mode="4" hbank="4" lbank="0" prog="87"/>
+ <Patch name="Burst" mode="4" hbank="4" lbank="0" prog="88"/>
+ <Patch name="Coaster" mode="4" hbank="4" lbank="0" prog="89"/>
+ <Patch name="SbMarine" mode="4" hbank="4" lbank="0" prog="90"/>
+ <Patch name="Laughing" mode="4" hbank="4" lbank="0" prog="96"/>
+ <Patch name="Scream" mode="4" hbank="4" lbank="0" prog="97"/>
+ <Patch name="Punch" mode="4" hbank="4" lbank="0" prog="98"/>
+ <Patch name="Heart" mode="4" hbank="4" lbank="0" prog="99"/>
+ <Patch name="FootStep" mode="4" hbank="4" lbank="0" prog="100"/>
+ <Patch name="MchinGun" mode="4" hbank="4" lbank="0" prog="112"/>
+ <Patch name="LaserGun" mode="4" hbank="4" lbank="0" prog="113"/>
+ <Patch name="Xplosion" mode="4" hbank="4" lbank="0" prog="114"/>
+ <Patch name="FireWork" mode="4" hbank="4" lbank="0" prog="115"/>
+ <Patch name="DstCutNz" mode="4" hbank="4" lbank="0" prog="2"/>
+ <Patch name="B.Slide" mode="4" hbank="4" lbank="0" prog="4"/>
+ <Patch name="P.Scrape" mode="4" hbank="4" lbank="0" prog="5"/>
+ <Patch name="Kitty" mode="4" hbank="4" lbank="0" prog="51"/>
+ <Patch name="Growl" mode="4" hbank="4" lbank="0" prog="52"/>
+ <Patch name="Haunted" mode="4" hbank="4" lbank="0" prog="53"/>
+ <Patch name="Applaus2" mode="4" hbank="4" lbank="0" prog="101"/>
+ </PatchGroup>
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/instruments/xg.idf b/muse_qt4_evolution/share/instruments/xg.idf
new file mode 100644
index 00000000..29628e90
--- /dev/null
+++ b/muse_qt4_evolution/share/instruments/xg.idf
@@ -0,0 +1,629 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="XG">
+ <Init>
+ <event tick="0" type="2" datalen="4">
+ 7e 7f 09 01
+ </event>
+ <event tick="0" type="2" datalen="7">
+ 43 10 4c 00 00 7e 00
+ </event>
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" hbank="0" lbank="0" prog="0"/>
+ <Patch name="GrndPnoK" hbank="0" lbank="1" prog="0"/>
+ <Patch name="MelloGrP" hbank="0" lbank="18" prog="0"/>
+ <Patch name="PianoStr" hbank="0" lbank="40" prog="0"/>
+ <Patch name="Dream" hbank="0" lbank="41" prog="0"/>
+ <Patch name="Bright Piano" hbank="0" lbank="0" prog="1"/>
+ <Patch name="BritPnoK" hbank="0" lbank="1" prog="1"/>
+ <Patch name="E.Grand" hbank="0" lbank="0" prog="2"/>
+ <Patch name="ElGrPnoK" hbank="0" lbank="1" prog="2"/>
+ <Patch name="Det.CP80" hbank="0" lbank="32" prog="2"/>
+ <Patch name="ElGrPno1" hbank="0" lbank="40" prog="2"/>
+ <Patch name="ElGrPno2" hbank="0" lbank="41" prog="2"/>
+ <Patch name="Honky-tonk" hbank="0" lbank="0" prog="3"/>
+ <Patch name="HonkyTonkK" hbank="0" lbank="1" prog="3"/>
+ <Patch name="E.Piano" hbank="0" lbank="0" prog="4"/>
+ <Patch name="El.Pno1K" hbank="0" lbank="1" prog="4"/>
+ <Patch name="MelloEP1" hbank="0" lbank="18" prog="4"/>
+ <Patch name="Chor.EP1" hbank="0" lbank="32" prog="4"/>
+ <Patch name="HardEl.P" hbank="0" lbank="40" prog="4"/>
+ <Patch name="VXElP1" hbank="0" lbank="45" prog="4"/>
+ <Patch name="60sEl.P" hbank="0" lbank="64" prog="4"/>
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5"/>
+ <Patch name="El.Pno2K" hbank="0" lbank="1" prog="5"/>
+ <Patch name="Chor.EP2" hbank="0" lbank="32" prog="5"/>
+ <Patch name="DX.Hard" hbank="0" lbank="33" prog="5"/>
+ <Patch name="DXLegend" hbank="0" lbank="34" prog="5"/>
+ <Patch name="DXPhase" hbank="0" lbank="40" prog="5"/>
+ <Patch name="DX+Analg" hbank="0" lbank="41" prog="5"/>
+ <Patch name="DXKotoEP" hbank="0" lbank="42" prog="5"/>
+ <Patch name="VXEl.P2" hbank="0" lbank="45" prog="5"/>
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="6"/>
+ <Patch name="Harpsi.K" hbank="0" lbank="1" prog="6"/>
+ <Patch name="Harpsi.2" hbank="0" lbank="25" prog="6"/>
+ <Patch name="Harpsi.3" hbank="0" lbank="35" prog="6"/>
+ <Patch name="Clav." hbank="0" lbank="0" prog="7"/>
+ <Patch name="Clavi.K" hbank="0" lbank="1" prog="7"/>
+ <Patch name="ClaviWah" hbank="0" lbank="27" prog="7"/>
+ <Patch name="PulseClv" hbank="0" lbank="64" prog="7"/>
+ <Patch name="PierceCl" hbank="0" lbank="65" prog="7"/>
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc">
+ <Patch name="Celesta" hbank="0" lbank="0" prog="8"/>
+ <Patch name="Glockenspiel" hbank="0" lbank="0" prog="9"/>
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10"/>
+ <Patch name="Orgel" hbank="0" lbank="64" prog="10"/>
+ <Patch name="Vibraphone" hbank="0" lbank="0" prog="11"/>
+ <Patch name="VibesK" hbank="0" lbank="1" prog="11"/>
+ <Patch name="HardVibe" hbank="0" lbank="45" prog="11"/>
+ <Patch name="Marimba" hbank="0" lbank="0" prog="12"/>
+ <Patch name="MarimbaK" hbank="0" lbank="1" prog="12"/>
+ <Patch name="SineMrmb" hbank="0" lbank="64" prog="12"/>
+ <Patch name="Balafon" hbank="0" lbank="96" prog="12"/>
+ <Patch name="Balafon2" hbank="0" lbank="97" prog="12"/>
+ <Patch name="LogDrum" hbank="0" lbank="98" prog="12"/>
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="13"/>
+ <Patch name="Tubular Bells" hbank="0" lbank="0" prog="14"/>
+ <Patch name="ChrchBel" hbank="0" lbank="96" prog="14"/>
+ <Patch name="Carillon" hbank="0" lbank="97" prog="14"/>
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15"/>
+ <Patch name="Dulcimr2" hbank="0" lbank="35" prog="15"/>
+ <Patch name="Cimbalom" hbank="0" lbank="96" prog="15"/>
+ <Patch name="Santur" hbank="0" lbank="97" prog="15"/>
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Drawbar Organ" hbank="0" lbank="0" prog="16"/>
+ <Patch name="DelDrwOr" hbank="0" lbank="32" prog="16"/>
+ <Patch name="60sDrOr1" hbank="0" lbank="33" prog="16"/>
+ <Patch name="60sDrOr2" hbank="0" lbank="34" prog="16"/>
+ <Patch name="70sDrOr1" hbank="0" lbank="35" prog="16"/>
+ <Patch name="DrawOrg2" hbank="0" lbank="36" prog="16"/>
+ <Patch name="60sDrOr3" hbank="0" lbank="37" prog="16"/>
+ <Patch name="EvenBar" hbank="0" lbank="38" prog="16"/>
+ <Patch name="16+2&quot;2/3" hbank="0" lbank="40" prog="16"/>
+ <Patch name="OrganBa" hbank="0" lbank="64" prog="16"/>
+ <Patch name="70sDrOr2" hbank="0" lbank="65" prog="16"/>
+ <Patch name="CheezOrg" hbank="0" lbank="66" prog="16"/>
+ <Patch name="DrawOrg3" hbank="0" lbank="67" prog="16"/>
+ <Patch name="Perc. Organ" hbank="0" lbank="0" prog="17"/>
+ <Patch name="70sPcOr1" hbank="0" lbank="24" prog="17"/>
+ <Patch name="DetPrcOr" hbank="0" lbank="32" prog="17"/>
+ <Patch name="LiteOrg" hbank="0" lbank="33" prog="17"/>
+ <Patch name="PercOrg2" hbank="0" lbank="37" prog="17"/>
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="18"/>
+ <Patch name="RotaryOr" hbank="0" lbank="64" prog="18"/>
+ <Patch name="SloRotar" hbank="0" lbank="65" prog="18"/>
+ <Patch name="FstRotar" hbank="0" lbank="66" prog="18"/>
+ <Patch name="Church Organ" hbank="0" lbank="0" prog="19"/>
+ <Patch name="ChurOrg3" hbank="0" lbank="32" prog="19"/>
+ <Patch name="ChurOrg2" hbank="0" lbank="35" prog="19"/>
+ <Patch name="NotreDam" hbank="0" lbank="40" prog="19"/>
+ <Patch name="OrgFlute" hbank="0" lbank="64" prog="19"/>
+ <Patch name="TrmOrgFl" hbank="0" lbank="65" prog="19"/>
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="20"/>
+ <Patch name="PuffOrg" hbank="0" lbank="40" prog="20"/>
+ <Patch name="Akkordion" hbank="0" lbank="0" prog="21"/>
+ <Patch name="Accordlt" hbank="0" lbank="32" prog="21"/>
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="22"/>
+ <Patch name="Harmo2" hbank="0" lbank="32" prog="22"/>
+ <Patch name="Bandoneon" hbank="0" lbank="0" prog="23"/>
+ <Patch name="TngoAcd2" hbank="0" lbank="64" prog="23"/>
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon Gtr." hbank="0" lbank="0" prog="24"/>
+ <Patch name="NylonGt2" hbank="0" lbank="16" prog="24"/>
+ <Patch name="NylonGt3" hbank="0" lbank="25" prog="24"/>
+ <Patch name="VelGtHrm" hbank="0" lbank="43" prog="24"/>
+ <Patch name="Ukelele" hbank="0" lbank="96" prog="24"/>
+ <Patch name="Steel Gtr." hbank="0" lbank="0" prog="25"/>
+ <Patch name="SteelGt2" hbank="0" lbank="16" prog="25"/>
+ <Patch name="12StrGtr" hbank="0" lbank="35" prog="25"/>
+ <Patch name="Nylon-Stl" hbank="0" lbank="40" prog="25"/>
+ <Patch name="Stl-Body" hbank="0" lbank="41" prog="25"/>
+ <Patch name="Mandolin" hbank="0" lbank="96" prog="25"/>
+ <Patch name="Jazz Guitar" hbank="0" lbank="0" prog="26"/>
+ <Patch name="MelloGtr" hbank="0" lbank="18" prog="26"/>
+ <Patch name="JazzAmp" hbank="0" lbank="32" prog="26"/>
+ <Patch name="PdlSteel" hbank="0" lbank="96" prog="26"/>
+ <Patch name="Clean Guitar" hbank="0" lbank="0" prog="27"/>
+ <Patch name="ChorusGt" hbank="0" lbank="32" prog="27"/>
+ <Patch name="CleanGt2" hbank="0" lbank="64" prog="27"/>
+ <Patch name="Muted Guitar" hbank="0" lbank="0" prog="28"/>
+ <Patch name="FunkGtr1" hbank="0" lbank="40" prog="28"/>
+ <Patch name="MuteStlG" hbank="0" lbank="41" prog="28"/>
+ <Patch name="FunkGtr2" hbank="0" lbank="43" prog="28"/>
+ <Patch name="JazzMan" hbank="0" lbank="45" prog="28"/>
+ <Patch name="Mu.DstGt" hbank="0" lbank="96" prog="28"/>
+ <Patch name="Overdrive Gtr" hbank="0" lbank="0" prog="29"/>
+ <Patch name="Gt.Pinch" hbank="0" lbank="43" prog="29"/>
+ <Patch name="Distortion Gtr" hbank="0" lbank="0" prog="30"/>
+ <Patch name="DstRthmG" hbank="0" lbank="12" prog="30"/>
+ <Patch name="DistGtr2" hbank="0" lbank="24" prog="30"/>
+ <Patch name="DistGtr3" hbank="0" lbank="35" prog="30"/>
+ <Patch name="PowerGt2" hbank="0" lbank="36" prog="30"/>
+ <Patch name="PowerGt1" hbank="0" lbank="37" prog="30"/>
+ <Patch name="Dst.5ths" hbank="0" lbank="38" prog="30"/>
+ <Patch name="FeedbkGt" hbank="0" lbank="40" prog="30"/>
+ <Patch name="FeedbGt2" hbank="0" lbank="41" prog="30"/>
+ <Patch name="RkRythm2" hbank="0" lbank="43" prog="30"/>
+ <Patch name="RockRthm" hbank="0" lbank="45" prog="30"/>
+ <Patch name="Gtr. Harmonics" hbank="0" lbank="0" prog="31"/>
+ <Patch name="GtFeedbk" hbank="0" lbank="65" prog="31"/>
+ <Patch name="GtrHrmo2" hbank="0" lbank="66" prog="31"/>
+ <Patch name="AcoHarmo" hbank="0" lbank="64" prog="31"/>
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" hbank="0" lbank="0" prog="32"/>
+ <Patch name="JazzRthm" hbank="0" lbank="40" prog="32"/>
+ <Patch name="VXUprght" hbank="0" lbank="45" prog="32"/>
+ <Patch name="Fingered Bass" hbank="0" lbank="0" prog="33"/>
+ <Patch name="FingrDrk" hbank="0" lbank="18" prog="33"/>
+ <Patch name="FlangeBa" hbank="0" lbank="27" prog="33"/>
+ <Patch name="Ba-DstEG" hbank="0" lbank="40" prog="33"/>
+ <Patch name="FngrSlap" hbank="0" lbank="43" prog="33"/>
+ <Patch name="FngBass2" hbank="0" lbank="45" prog="33"/>
+ <Patch name="JazzBass" hbank="0" lbank="64" prog="33"/>
+ <Patch name="ModAlem" hbank="0" lbank="65" prog="33"/>
+ <Patch name="Picked Bass" hbank="0" lbank="0" prog="34"/>
+ <Patch name="MutePkBa" hbank="0" lbank="28" prog="34"/>
+ <Patch name="Fretless Bass" hbank="0" lbank="0" prog="35"/>
+ <Patch name="Fretles2" hbank="0" lbank="32" prog="35"/>
+ <Patch name="Fretles3" hbank="0" lbank="33" prog="35"/>
+ <Patch name="Fretles4" hbank="0" lbank="34" prog="35"/>
+ <Patch name="SynFretl" hbank="0" lbank="96" prog="35"/>
+ <Patch name="Smooth" hbank="0" lbank="97" prog="35"/>
+ <Patch name="Slap Bass 1" hbank="0" lbank="0" prog="36"/>
+ <Patch name="ResoSlap" hbank="0" lbank="27" prog="36"/>
+ <Patch name="PunchThm" hbank="0" lbank="32" prog="36"/>
+ <Patch name="Slap Bass 2" hbank="0" lbank="0" prog="37"/>
+ <Patch name="VeloSlap" hbank="0" lbank="43" prog="37"/>
+ <Patch name="Synth Bass 1" hbank="0" lbank="0" prog="38"/>
+ <Patch name="SynBa1Dk" hbank="0" lbank="18" prog="38"/>
+ <Patch name="FastResB" hbank="0" lbank="20" prog="38"/>
+ <Patch name="AcidBass" hbank="0" lbank="24" prog="38"/>
+ <Patch name="ClvBass" hbank="0" lbank="35" prog="38"/>
+ <Patch name="TeknoBa" hbank="0" lbank="40" prog="38"/>
+ <Patch name="Oscar" hbank="0" lbank="64" prog="38"/>
+ <Patch name="SqrBass" hbank="0" lbank="65" prog="38"/>
+ <Patch name="RubberBa" hbank="0" lbank="66" prog="38"/>
+ <Patch name="Hammer" hbank="0" lbank="96" prog="38"/>
+ <Patch name="Synth Bass 2" hbank="0" lbank="0" prog="39"/>
+ <Patch name="MelloSB1" hbank="0" lbank="6" prog="39"/>
+ <Patch name="SeqBass" hbank="0" lbank="12" prog="39"/>
+ <Patch name="ClkSynBa" hbank="0" lbank="18" prog="39"/>
+ <Patch name="SynBa2Dk" hbank="0" lbank="19" prog="39"/>
+ <Patch name="SmthBa2" hbank="0" lbank="32" prog="39"/>
+ <Patch name="ModulrBa" hbank="0" lbank="40" prog="39"/>
+ <Patch name="DXBass" hbank="0" lbank="41" prog="39"/>
+ <Patch name="XWireBa" hbank="0" lbank="64" prog="39"/>
+ </PatchGroup>
+ <PatchGroup name="Strings/Orch">
+ <Patch name="Violin" hbank="0" lbank="0" prog="40"/>
+ <Patch name="SlowVln" hbank="0" lbank="8" prog="40"/>
+ <Patch name="Viola" hbank="0" lbank="0" prog="41"/>
+ <Patch name="Cello" hbank="0" lbank="0" prog="42"/>
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43"/>
+ <Patch name="Tremolo Str." hbank="0" lbank="0" prog="44"/>
+ <Patch name="SlowTrSt" hbank="0" lbank="8" prog="44"/>
+ <Patch name="SuspStr" hbank="0" lbank="40" prog="44"/>
+ <Patch name="Pizzicato Str." hbank="0" lbank="0" prog="45"/>
+ <Patch name="Harp" hbank="0" lbank="0" prog="46"/>
+ <Patch name="YangChin" hbank="0" lbank="40" prog="46"/>
+ <Patch name="Timpani" hbank="0" lbank="0" prog="47"/>
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings 1" hbank="0" lbank="0" prog="48"/>
+ <Patch name="S.Strngs" hbank="0" lbank="3" prog="48"/>
+ <Patch name="SlowStr" hbank="0" lbank="8" prog="48"/>
+ <Patch name="ArcoStr" hbank="0" lbank="24" prog="48"/>
+ <Patch name="60sStrng" hbank="0" lbank="35" prog="48"/>
+ <Patch name="Orchestr" hbank="0" lbank="40" prog="48"/>
+ <Patch name="Orchstr2" hbank="0" lbank="41" prog="48"/>
+ <Patch name="TremOrch" hbank="0" lbank="42" prog="48"/>
+ <Patch name="VeloStr" hbank="0" lbank="45" prog="48"/>
+ <Patch name="Strings 2" hbank="0" lbank="0" prog="49"/>
+ <Patch name="S.SlwStr" hbank="0" lbank="3" prog="49"/>
+ <Patch name="LegatoSt" hbank="0" lbank="8" prog="49"/>
+ <Patch name="WarmStr" hbank="0" lbank="40" prog="49"/>
+ <Patch name="Kingdom" hbank="0" lbank="41" prog="49"/>
+ <Patch name="70sStr" hbank="0" lbank="64" prog="49"/>
+ <Patch name="StrEns3" hbank="0" lbank="65" prog="49"/>
+ <Patch name="Syn. Strings 1" hbank="0" lbank="0" prog="50"/>
+ <Patch name="ResoStr" hbank="0" lbank="27" prog="50"/>
+ <Patch name="SynStr4" hbank="0" lbank="64" prog="50"/>
+ <Patch name="SSStr" hbank="0" lbank="65" prog="50"/>
+ <Patch name="SynStr3" hbank="0" lbank="35" prog="50"/>
+ <Patch name="Syn. Strings 2" hbank="0" lbank="0" prog="51"/>
+ <Patch name="Choir Aahs" hbank="0" lbank="0" prog="52"/>
+ <Patch name="S.Choir" hbank="0" lbank="3" prog="52"/>
+ <Patch name="Ch.Aahs2" hbank="0" lbank="16" prog="52"/>
+ <Patch name="MelChoir" hbank="0" lbank="32" prog="52"/>
+ <Patch name="ChoirStr" hbank="0" lbank="40" prog="52"/>
+ <Patch name="StrngAah" hbank="0" lbank="64" prog="52"/>
+ <Patch name="MaleAah" hbank="0" lbank="65" prog="52"/>
+ <Patch name="Voice Oohs" hbank="0" lbank="0" prog="53"/>
+ <Patch name="VoiceDoo" hbank="0" lbank="64" prog="53"/>
+ <Patch name="VoiceHmn" hbank="0" lbank="96" prog="53"/>
+ <Patch name="Synth Voice" hbank="0" lbank="0" prog="54"/>
+ <Patch name="SynVox2" hbank="0" lbank="40" prog="54"/>
+ <Patch name="Choral" hbank="0" lbank="41" prog="54"/>
+ <Patch name="AnaVoice" hbank="0" lbank="64" prog="54"/>
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55"/>
+ <Patch name="OrchHit2" hbank="0" lbank="35" prog="55"/>
+ <Patch name="Impact" hbank="0" lbank="64" prog="55"/>
+ <Patch name="DoublHit" hbank="0" lbank="66" prog="55"/>
+ <Patch name="BrStab80" hbank="0" lbank="67" prog="55"/>
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56"/>
+ <Patch name="Trumpet2" hbank="0" lbank="16" prog="56"/>
+ <Patch name="BriteTrp" hbank="0" lbank="17" prog="56"/>
+ <Patch name="WarmTrp" hbank="0" lbank="32" prog="56"/>
+ <Patch name="FluglHrn" hbank="0" lbank="96" prog="56"/>
+ <Patch name="Trombone" hbank="0" lbank="0" prog="57"/>
+ <Patch name="Trmbone2" hbank="0" lbank="18" prog="57"/>
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58"/>
+ <Patch name="Tuba2" hbank="0" lbank="16" prog="58"/>
+ <Patch name="Muted Trumpet" hbank="0" lbank="0" prog="59"/>
+ <Patch name="MuteTrp2" hbank="2" lbank="64" prog="59"/>
+ <Patch name="French Horn" hbank="0" lbank="0" prog="60"/>
+ <Patch name="FrHrSolo" hbank="0" lbank="6" prog="60"/>
+ <Patch name="FrHorn2" hbank="0" lbank="32" prog="60"/>
+ <Patch name="HornOrch" hbank="0" lbank="37" prog="60"/>
+ <Patch name="Brass Section" hbank="0" lbank="0" prog="61"/>
+ <Patch name="Tp-TbSec" hbank="0" lbank="35" prog="61"/>
+ <Patch name="BrssSec2" hbank="0" lbank="40" prog="61"/>
+ <Patch name="HiBrass" hbank="0" lbank="41" prog="61"/>
+ <Patch name="MelloBrs" hbank="0" lbank="42" prog="61"/>
+ <Patch name="SfrzndBr" hbank="0" lbank="14" prog="61"/>
+ <Patch name="BrssFall" hbank="0" lbank="39" prog="61"/>
+ <Patch name="Synth Brass 1" hbank="0" lbank="0" prog="62"/>
+ <Patch name="QuackBr" hbank="0" lbank="12" prog="62"/>
+ <Patch name="RezSynBr" hbank="0" lbank="20" prog="62"/>
+ <Patch name="PolyBrss" hbank="0" lbank="24" prog="62"/>
+ <Patch name="SynBras3" hbank="0" lbank="27" prog="62"/>
+ <Patch name="JumpBrss" hbank="0" lbank="32" prog="62"/>
+ <Patch name="AnaVelBr" hbank="0" lbank="45" prog="62"/>
+ <Patch name="AnaBrss1" hbank="0" lbank="64" prog="62"/>
+ <Patch name="Synth Brass 2" hbank="0" lbank="0" prog="63"/>
+ <Patch name="SoftBrs" hbank="0" lbank="18" prog="63"/>
+ <Patch name="SynBras4" hbank="0" lbank="40" prog="63"/>
+ <Patch name="ChoBrss" hbank="0" lbank="41" prog="63"/>
+ <Patch name="VelBras2" hbank="0" lbank="45" prog="63"/>
+ <Patch name="AnaBras2" hbank="0" lbank="64" prog="63"/>
+ </PatchGroup>
+ <PatchGroup name="Reed">
+ <Patch name="Soprano Sax" hbank="0" lbank="0" prog="64"/>
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65"/>
+ <Patch name="SaxSect" hbank="0" lbank="40" prog="65"/>
+ <Patch name="HyprAlto" hbank="0" lbank="43" prog="65"/>
+ <Patch name="Tenor Sax" hbank="0" lbank="0" prog="66"/>
+ <Patch name="BrthTnSx" hbank="0" lbank="40" prog="66"/>
+ <Patch name="SoftTenr" hbank="0" lbank="41" prog="66"/>
+ <Patch name="TnrSax2" hbank="0" lbank="64" prog="66"/>
+ <Patch name="Baritone Sax" hbank="0" lbank="0" prog="67"/>
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68"/>
+ <Patch name="English Horn" hbank="0" lbank="0" prog="69"/>
+ <Patch name="Bassoon" hbank="0" lbank="0" prog="70"/>
+ <Patch name="Clarinet" hbank="0" lbank="0" prog="71"/>
+ <Patch name="BassClar" hbank="0" lbank="96" prog="71"/>
+ </PatchGroup>
+ <PatchGroup name="Pipe">
+ <Patch name="Piccolo" hbank="0" lbank="0" prog="72"/>
+ <Patch name="Flute" hbank="0" lbank="0" prog="73"/>
+ <Patch name="Recorder" hbank="0" lbank="0" prog="74"/>
+ <Patch name="Pan Flute" hbank="0" lbank="0" prog="75"/>
+ <Patch name="PanFlut2" hbank="0" lbank="64" prog="75"/>
+ <Patch name="Kawala" hbank="0" lbank="96" prog="75"/>
+ <Patch name="Blown Bottle" hbank="0" lbank="0" prog="76"/>
+ <Patch name="Shakuhachi" hbank="0" lbank="0" prog="77"/>
+ <Patch name="Whistle" hbank="0" lbank="0" prog="78"/>
+ <Patch name="Ocarina" hbank="0" lbank="0" prog="79"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" hbank="0" lbank="0" prog="80"/>
+ <Patch name="Square2" hbank="0" lbank="6" prog="80"/>
+ <Patch name="LMSquare" hbank="0" lbank="8" prog="80"/>
+ <Patch name="Hollow" hbank="0" lbank="18" prog="80"/>
+ <Patch name="Shmoog" hbank="0" lbank="19" prog="80"/>
+ <Patch name="Mellow" hbank="0" lbank="64" prog="80"/>
+ <Patch name="SoloSine" hbank="0" lbank="65" prog="80"/>
+ <Patch name="SineLead" hbank="0" lbank="66" prog="80"/>
+ <Patch name="Saw Wave" hbank="0" lbank="0" prog="81"/>
+ <Patch name="Saw2" hbank="0" lbank="6" prog="81"/>
+ <Patch name="ThickSaw" hbank="0" lbank="8" prog="81"/>
+ <Patch name="DynaSaw" hbank="0" lbank="18" prog="81"/>
+ <Patch name="DigiSaw" hbank="0" lbank="19" prog="81"/>
+ <Patch name="BigLead" hbank="0" lbank="20" prog="81"/>
+ <Patch name="HeavySyn" hbank="0" lbank="24" prog="81"/>
+ <Patch name="WaspySyn" hbank="0" lbank="25" prog="81"/>
+ <Patch name="PulseSaw" hbank="0" lbank="40" prog="81"/>
+ <Patch name="Dr.Lead" hbank="0" lbank="41" prog="81"/>
+ <Patch name="VeloLead" hbank="0" lbank="45" prog="81"/>
+ <Patch name="SeqAna" hbank="0" lbank="96" prog="81"/>
+ <Patch name="Calliope" hbank="0" lbank="0" prog="82"/>
+ <Patch name="PurePad" hbank="0" lbank="65" prog="82"/>
+ <Patch name="VentSyn" hbank="0" lbank="64" prog="82"/>
+ <Patch name="Chiffer Lead" hbank="0" lbank="0" prog="83"/>
+ <Patch name="Rubby" hbank="0" lbank="64" prog="83"/>
+ <Patch name="Charang" hbank="0" lbank="0" prog="84"/>
+ <Patch name="DistLead" hbank="0" lbank="64" prog="84"/>
+ <Patch name="WireLead" hbank="0" lbank="65" prog="84"/>
+ <Patch name="Solo Vox" hbank="0" lbank="0" prog="85"/>
+ <Patch name="SynthAah" hbank="0" lbank="24" prog="85"/>
+ <Patch name="VoxLead" hbank="0" lbank="64" prog="85"/>
+ <Patch name="Fifth Saw" hbank="0" lbank="0" prog="86"/>
+ <Patch name="BigFive" hbank="0" lbank="35" prog="86"/>
+ <Patch name="Bass Lead" hbank="0" lbank="0" prog="87"/>
+ <Patch name="Big-Low" hbank="0" lbank="16" prog="87"/>
+ <Patch name="Fat-Prky" hbank="0" lbank="64" prog="87"/>
+ <Patch name="SoftWurl" hbank="0" lbank="65" prog="87"/>
+ </PatchGroup>
+ <PatchGroup name="Synth Pad">
+ <Patch name="New Age Pad" hbank="0" lbank="0" prog="88"/>
+ <Patch name="Fantasy2" hbank="0" lbank="64" prog="88"/>
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89"/>
+ <Patch name="ThickPad" hbank="0" lbank="16" prog="89"/>
+ <Patch name="SoftPad" hbank="0" lbank="17" prog="89"/>
+ <Patch name="SinePad" hbank="0" lbank="18" prog="89"/>
+ <Patch name="HornPad" hbank="0" lbank="64" prog="89"/>
+ <Patch name="RotarStr" hbank="0" lbank="65" prog="89"/>
+ <Patch name="Polysynth Pad" hbank="0" lbank="0" prog="90"/>
+ <Patch name="PolyPd80" hbank="0" lbank="64" prog="90"/>
+ <Patch name="ClickPad" hbank="0" lbank="65" prog="90"/>
+ <Patch name="AnaPad" hbank="0" lbank="66" prog="90"/>
+ <Patch name="SquarPad" hbank="0" lbank="67" prog="90"/>
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91"/>
+ <Patch name="Heaven2" hbank="0" lbank="64" prog="91"/>
+ <Patch name="Itopia" hbank="0" lbank="66" prog="91"/>
+ <Patch name="CCPad" hbank="0" lbank="67" prog="91"/>
+ <Patch name="LitePad" hbank="0" lbank="65" prog="91"/>
+ <Patch name="Bowed Pad" hbank="0" lbank="0" prog="92"/>
+ <Patch name="Glacier" hbank="0" lbank="64" prog="92"/>
+ <Patch name="GlassPad" hbank="0" lbank="65" prog="92"/>
+ <Patch name="Metallic Pad" hbank="0" lbank="0" prog="93"/>
+ <Patch name="TinePad" hbank="0" lbank="64" prog="93"/>
+ <Patch name="PanPad" hbank="0" lbank="65" prog="93"/>
+ <Patch name="Halo Pad" hbank="0" lbank="0" prog="94"/>
+ <Patch name="Sweep Pad" hbank="0" lbank="0" prog="95"/>
+ <Patch name="Shwimmer" hbank="0" lbank="20" prog="95"/>
+ <Patch name="Converge" hbank="0" lbank="27" prog="95"/>
+ <Patch name="PolarPad" hbank="0" lbank="64" prog="95"/>
+ <Patch name="Celstial" hbank="0" lbank="66" prog="95"/>
+ <Patch name="Sweepy" hbank="0" lbank="65" prog="95"/>
+ </PatchGroup>
+ <PatchGroup name="Synth FX">
+ <Patch name="Rain" hbank="0" lbank="0" prog="96"/>
+ <Patch name="ClaviPad" hbank="0" lbank="45" prog="96"/>
+ <Patch name="HrmoRain" hbank="0" lbank="64" prog="96"/>
+ <Patch name="AfrcnWnd" hbank="0" lbank="65" prog="96"/>
+ <Patch name="Caribean" hbank="0" lbank="66" prog="96"/>
+ <Patch name="Soundtrack" hbank="0" lbank="0" prog="97"/>
+ <Patch name="Prologue" hbank="0" lbank="27" prog="97"/>
+ <Patch name="Ancestrl" hbank="0" lbank="64" prog="97"/>
+ <Patch name="Rave" hbank="0" lbank="65" prog="97"/>
+ <Patch name="Crystal" hbank="0" lbank="0" prog="98"/>
+ <Patch name="SynDrCmp" hbank="0" lbank="12" prog="98"/>
+ <Patch name="Popcorn" hbank="0" lbank="14" prog="98"/>
+ <Patch name="TinyBell" hbank="0" lbank="18" prog="98"/>
+ <Patch name="RndGlock" hbank="0" lbank="35" prog="98"/>
+ <Patch name="GlockChi" hbank="0" lbank="40" prog="98"/>
+ <Patch name="ClearBel" hbank="0" lbank="41" prog="98"/>
+ <Patch name="ChorBell" hbank="0" lbank="42" prog="98"/>
+ <Patch name="SynMalet" hbank="0" lbank="64" prog="98"/>
+ <Patch name="SftCryst" hbank="0" lbank="65" prog="98"/>
+ <Patch name="LoudGlok" hbank="0" lbank="66" prog="98"/>
+ <Patch name="XmasBell" hbank="0" lbank="67" prog="98"/>
+ <Patch name="VibeBell" hbank="0" lbank="68" prog="98"/>
+ <Patch name="DigiBell" hbank="0" lbank="69" prog="98"/>
+ <Patch name="AirBells" hbank="0" lbank="70" prog="98"/>
+ <Patch name="BellHarp" hbank="0" lbank="71" prog="98"/>
+ <Patch name="Gamelmba" hbank="0" lbank="72" prog="98"/>
+ <Patch name="Athmosphere" hbank="0" lbank="0" prog="99"/>
+ <Patch name="WarmAtms" hbank="0" lbank="18" prog="99"/>
+ <Patch name="HollwRls" hbank="0" lbank="19" prog="99"/>
+ <Patch name="NylonEP" hbank="0" lbank="40" prog="99"/>
+ <Patch name="NylnHarp" hbank="0" lbank="64" prog="99"/>
+ <Patch name="HarpVox" hbank="0" lbank="65" prog="99"/>
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100"/>
+ <Patch name="Goblins" hbank="0" lbank="0" prog="101"/>
+ <Patch name="MilkyWay" hbank="0" lbank="69" prog="101"/>
+ <Patch name="Puffy" hbank="0" lbank="72" prog="101"/>
+ <Patch name="Echoes" hbank="0" lbank="0" prog="102"/>
+ <Patch name="Sci-Fi" hbank="0" lbank="0" prog="103"/>
+ <Patch name="Odyssey" hbank="0" lbank="65" prog="103"/>
+ </PatchGroup>
+ <PatchGroup name="Ethnic">
+ <Patch name="Sitar" hbank="0" lbank="0" prog="104"/>
+ <Patch name="DetSitar" hbank="0" lbank="32" prog="104"/>
+ <Patch name="Sitar2" hbank="0" lbank="35" prog="104"/>
+ <Patch name="Tambra" hbank="0" lbank="96" prog="104"/>
+ <Patch name="Tamboura" hbank="0" lbank="97" prog="104"/>
+ <Patch name="Banjo" hbank="0" lbank="0" prog="105"/>
+ <Patch name="MuteBnjo" hbank="0" lbank="28" prog="105"/>
+ <Patch name="Rabab" hbank="0" lbank="96" prog="105"/>
+ <Patch name="Gopichnt" hbank="0" lbank="97" prog="105"/>
+ <Patch name="Oud" hbank="0" lbank="98" prog="105"/>
+ <Patch name="Shamisen" hbank="0" lbank="0" prog="106"/>
+ <Patch name="Tsugaru" hbank="0" lbank="96" prog="106"/>
+ <Patch name="Koto" hbank="0" lbank="0" prog="107"/>
+ <Patch name="T.Koto" hbank="0" lbank="96" prog="107"/>
+ <Patch name="Kanoon" hbank="0" lbank="97" prog="107"/>
+ <Patch name="Kalimba" hbank="0" lbank="0" prog="108"/>
+ <Patch name="BigKalim" hbank="0" lbank="64" prog="108"/>
+ <Patch name="Bagpipe" hbank="0" lbank="0" prog="109"/>
+ <Patch name="Fiddle" hbank="0" lbank="0" prog="110"/>
+ <Patch name="Shanai" hbank="0" lbank="0" prog="111"/>
+ <Patch name="Shanai2" hbank="0" lbank="64" prog="111"/>
+ <Patch name="Pungi" hbank="0" lbank="96" prog="111"/>
+ <Patch name="Hichriki" hbank="0" lbank="97" prog="111"/>
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinkle Bell" hbank="0" lbank="0" prog="112"/>
+ <Patch name="Bonang" hbank="0" lbank="96" prog="112"/>
+ <Patch name="Gender" hbank="0" lbank="97" prog="112"/>
+ <Patch name="Gamelan" hbank="0" lbank="98" prog="112"/>
+ <Patch name="S.Gamlan" hbank="0" lbank="99" prog="112"/>
+ <Patch name="RamaCym" hbank="0" lbank="100" prog="112"/>
+ <Patch name="AsianBel" hbank="0" lbank="101" prog="112"/>
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113"/>
+ <Patch name="Atrigane" hbank="0" lbank="96" prog="113"/>
+ <Patch name="Steel Drums" hbank="0" lbank="0" prog="114"/>
+ <Patch name="GlasPerc" hbank="0" lbank="97" prog="114"/>
+ <Patch name="ThaiBell" hbank="0" lbank="98" prog="114"/>
+ <Patch name="Tablas" hbank="0" lbank="96" prog="114"/>
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115"/>
+ <Patch name="Castanet" hbank="0" lbank="96" prog="115"/>
+ <Patch name="Taiko Drum" hbank="0" lbank="0" prog="116"/>
+ <Patch name="Gr.Cassa" hbank="0" lbank="96" prog="116"/>
+ <Patch name="Melodic Drum" hbank="0" lbank="0" prog="117"/>
+ <Patch name="MelTom2" hbank="0" lbank="64" prog="117"/>
+ <Patch name="RealTom" hbank="0" lbank="65" prog="117"/>
+ <Patch name="RockTom" hbank="0" lbank="66" prog="117"/>
+ <Patch name="Synth Drum" hbank="0" lbank="0" prog="118"/>
+ <Patch name="AnaTom" hbank="0" lbank="64" prog="118"/>
+ <Patch name="ElecPerc" hbank="0" lbank="65" prog="118"/>
+ <Patch name="Rev. Cymbal" hbank="0" lbank="0" prog="119"/>
+ <Patch name="RevCym2" hbank="0" lbank="64" prog="119"/>
+ <Patch name="RevSnar1" hbank="0" lbank="96" prog="119"/>
+ <Patch name="RevSnar2" hbank="0" lbank="97" prog="119"/>
+ <Patch name="RevKick1" hbank="0" lbank="98" prog="119"/>
+ <Patch name="RevConBD" hbank="0" lbank="99" prog="119"/>
+ <Patch name="RevTom1" hbank="0" lbank="100" prog="119"/>
+ <Patch name="RevTom2" hbank="0" lbank="101" prog="119"/>
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="Gtr Fret Noise" hbank="0" lbank="0" prog="120"/>
+ <Patch name="Breath Noise" hbank="0" lbank="0" prog="121"/>
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122"/>
+ <Patch name="Bird Tweed" hbank="0" lbank="0" prog="123"/>
+ <Patch name="Telephone" hbank="0" lbank="0" prog="124"/>
+ <Patch name="Helicopter" hbank="0" lbank="0" prog="125"/>
+ <Patch name="Applaus" hbank="0" lbank="0" prog="126"/>
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127"/>
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard" hbank="17" lbank="0" prog="0"/>
+ <Patch name="Standrd2" hbank="17" lbank="0" prog="1"/>
+ <Patch name="Room" hbank="17" lbank="0" prog="8"/>
+ <Patch name="Rock" hbank="17" lbank="0" prog="16"/>
+ <Patch name="Electro" hbank="17" lbank="0" prog="24"/>
+ <Patch name="Analog" hbank="17" lbank="0" prog="25"/>
+ <Patch name="Jazz" hbank="17" lbank="0" prog="32"/>
+ <Patch name="Brush" hbank="17" lbank="0" prog="40"/>
+ <Patch name="Classic" hbank="17" lbank="0" prog="48"/>
+ <Patch name="SFX1" hbank="16" lbank="0" prog="0"/>
+ <Patch name="SFX2" hbank="16" lbank="0" prog="1"/>
+ <Patch name="CuttngNz" hbank="4" lbank="0" prog="0"/>
+ <Patch name="CuttngNz2" hbank="4" lbank="0" prog="1"/>
+ <Patch name="StrSlap" hbank="4" lbank="0" prog="3"/>
+ <Patch name="Fl.KClik" hbank="4" lbank="0" prog="16"/>
+ <Patch name="Rain" hbank="4" lbank="0" prog="32"/>
+ <Patch name="Thunder" hbank="4" lbank="0" prog="33"/>
+ <Patch name="Wind" hbank="4" lbank="0" prog="34"/>
+ <Patch name="Stream" hbank="4" lbank="0" prog="35"/>
+ <Patch name="Bubble" hbank="4" lbank="0" prog="36"/>
+ <Patch name="Feed" hbank="4" lbank="0" prog="37"/>
+ <Patch name="Dog" hbank="4" lbank="0" prog="48"/>
+ <Patch name="Horse" hbank="4" lbank="0" prog="49"/>
+ <Patch name="Bird2" hbank="4" lbank="0" prog="50"/>
+ <Patch name="Ghost" hbank="4" lbank="0" prog="54"/>
+ <Patch name="Maou" hbank="4" lbank="0" prog="55"/>
+ <Patch name="Tel.Dial" hbank="4" lbank="0" prog="64"/>
+ <Patch name="DoorSqek" hbank="4" lbank="0" prog="65"/>
+ <Patch name="DoorSlam" hbank="4" lbank="0" prog="66"/>
+ <Patch name="Scratch" hbank="4" lbank="0" prog="67"/>
+ <Patch name="Scratch2" hbank="4" lbank="0" prog="68"/>
+ <Patch name="WindChm" hbank="4" lbank="0" prog="69"/>
+ <Patch name="Telphon2" hbank="4" lbank="0" prog="70"/>
+ <Patch name="CarEngin" hbank="4" lbank="0" prog="80"/>
+ <Patch name="CarStop" hbank="4" lbank="0" prog="81"/>
+ <Patch name="CarPass" hbank="4" lbank="0" prog="82"/>
+ <Patch name="CarCrash" hbank="4" lbank="0" prog="83"/>
+ <Patch name="Siren" hbank="4" lbank="0" prog="84"/>
+ <Patch name="Train" hbank="4" lbank="0" prog="85"/>
+ <Patch name="Jetplane" hbank="4" lbank="0" prog="86"/>
+ <Patch name="Starship" hbank="4" lbank="0" prog="87"/>
+ <Patch name="Burst" hbank="4" lbank="0" prog="88"/>
+ <Patch name="Coaster" hbank="4" lbank="0" prog="89"/>
+ <Patch name="SbMarine" hbank="4" lbank="0" prog="90"/>
+ <Patch name="Laughing" hbank="4" lbank="0" prog="96"/>
+ <Patch name="Scream" hbank="4" lbank="0" prog="97"/>
+ <Patch name="Punch" hbank="4" lbank="0" prog="98"/>
+ <Patch name="Heart" hbank="4" lbank="0" prog="99"/>
+ <Patch name="FootStep" hbank="4" lbank="0" prog="100"/>
+ <Patch name="MchinGun" hbank="4" lbank="0" prog="112"/>
+ <Patch name="LaserGun" hbank="4" lbank="0" prog="113"/>
+ <Patch name="Xplosion" hbank="4" lbank="0" prog="114"/>
+ <Patch name="FireWork" hbank="4" lbank="0" prog="115"/>
+ <Patch name="DstCutNz" hbank="4" lbank="0" prog="2"/>
+ <Patch name="B.Slide" hbank="4" lbank="0" prog="4"/>
+ <Patch name="P.Scrape" hbank="4" lbank="0" prog="5"/>
+ <Patch name="Kitty" hbank="4" lbank="0" prog="51"/>
+ <Patch name="Growl" hbank="4" lbank="0" prog="52"/>
+ <Patch name="Haunted" hbank="4" lbank="0" prog="53"/>
+ <Patch name="Applaus2" hbank="4" lbank="0" prog="101"/>
+ </PatchGroup>
+
+ <!-- Controller -->
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+
+ <Controller name="Modulation" type="Control" l="1" />
+ <Controller name="BreathControl" type="Control" l="2" />
+ <Controller name="FootControl" type="Control" l="4" />
+ <Controller name="PortamentoTime" type="Control" l="5" />
+ <Controller name="MainVolume" type="Control" l="7" init="100" />
+ <Controller name="Balance" type="Control" l="8" />
+ <Controller name="Pan" type="Control" l="10" init="64" />
+ <Controller name="Expression" type="Control" l="11" />
+ <Controller name="Sustain" type="Control" l="64" />
+ <Controller name="Portamento" type="Control" l="65" />
+ <Controller name="Sostenuto" type="Control" l="66" />
+ <Controller name="SoftPedal" type="Control" l="67" />
+ <Controller name="HarmonicContent" type="Control" l="71" />
+ <Controller name="ReleaseTime" type="Control" l="72" />
+ <Controller name="AttackTime" type="Control" l="73" />
+ <Controller name="Brightness" type="Control" l="74" />
+ <Controller name="PortamentoControl" type="Control" l="84" />
+ <Controller name="Effect1Depth" type="Control" l="91" />
+ <Controller name="Effect3Depth" type="Control" l="93" />
+ <Controller name="VariationSend" type="Control" l="0x5e" />
+
+ <!-- NRPN's -->
+ <Controller name="VibratoRate" type="NRPN" h="0x01" l="0x08" />
+ <Controller name="VibratoDepth" type="NRPN" h="0x01" l="0x09" />
+ <Controller name="VibratoDelay" type="NRPN" h="0x01" l="0x0a" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="0x01" l="0x20" />
+ <Controller name="FilterResonance" type="NRPN" h="0x01" l="0x21" />
+ <Controller name="EG AttackTime" type="NRPN" h="0x01" l="0x63" />
+ <Controller name="EG DecayTime" type="NRPN" h="0x01" l="0x64" />
+ <Controller name="EG Release" type="NRPN" h="0x01" l="0x66" />
+
+ <Controller name="Drum FilterCutoffFreq" type="NRPN" h="0x14" l="pitch" />
+ <Controller name="Drum FilterResonance" type="NRPN" h="0x15" l="pitch" />
+ <Controller name="Drum EG AttackRate" type="NRPN" h="0x16" l="pitch" />
+ <Controller name="Drum EG DecayRage" type="NRPN" h="0x17" l="pitch" />
+ <Controller name="Drum Pitch Coarse" type="NRPN" h="0x18" l="pitch" />
+ <Controller name="Drum Pitch Fine" type="NRPN" h="0x19" l="pitch" />
+ <Controller name="Drum Level" type="NRPN" h="0x1a" l="pitch" />
+ <Controller name="Drum Pan" type="NRPN" h="0x1c" l="pitch" />
+ <Controller name="Drum ReverbSendLevel" type="NRPN" h="0x1d" l="pitch" />
+ <Controller name="Drum ChorusSendLevel" type="NRPN" h="0x1e" l="pitch" />
+ <Controller name="Drum VariationSendLev" type="NRPN" h="0x1f" l="pitch" />
+
+ <!-- RPN's -->
+ <Controller name="PitchBendSensitivity" type="RPN" l="0" min="0" max="0x18" init="2" />
+ <Controller name="FineTuning" type="RPN" l="1" min="-64" max="64" init="2" />
+
+ <!-- SysEx's -->
+ <SysEx name="XG on">
+ <comment>Switch XG mode on</comment>
+ <data>0x43 0x10 0x4c 0x00 0x00 0x7e 0x00</data>
+ </SysEx>
+
+ </MidiInstrument>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/locale/CMakeLists.txt b/muse_qt4_evolution/share/locale/CMakeLists.txt
new file mode 100644
index 00000000..76aa7660
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/CMakeLists.txt
@@ -0,0 +1,21 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+install_files( /share/${MusE_INSTALL_NAME}/locale .*\\.qm )
diff --git a/muse_qt4_evolution/share/locale/muse_de.qm b/muse_qt4_evolution/share/locale/muse_de.qm
new file mode 100644
index 00000000..71b1c4ec
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_de.qm
Binary files differ
diff --git a/muse_qt4_evolution/share/locale/muse_de.ts b/muse_qt4_evolution/share/locale/muse_de.ts
new file mode 100644
index 00000000..092c41e1
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_de.ts
@@ -0,0 +1,5804 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name></name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="obsolete">Zeigerwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="25"/>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation>Stärke der Quantisierung wählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="35"/>
+ <source>Click this button to enable recording</source>
+ <translation>Aufnahmebereitschaft einschalten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="30"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="31"/>
+ <source>Refrain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="32"/>
+ <source>Bridge</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="33"/>
+ <source>Intro</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="34"/>
+ <source>Coda</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="35"/>
+ <source>Chorus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="37"/>
+ <source>Brass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="38"/>
+ <source>Percussion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="39"/>
+ <source>Drums</source>
+ <translation type="unfinished">Drums</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="40"/>
+ <source>Guitar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="41"/>
+ <source>Bass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="42"/>
+ <source>Flute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="43"/>
+ <source>Strings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="44"/>
+ <source>Keyboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="45"/>
+ <source>Piano</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="46"/>
+ <source>Saxophon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="obsolete">Stiftwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="obsolete">Löschwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="obsolete">Schere auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="obsolete">Kleberwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="obsolete">Quantisierungstool auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Drawing Tool</source>
+ <translation type="obsolete">Zeichenstift auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="obsolete">Stummschalttool auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pointer</source>
+ <translation type="obsolete">Zeiger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pencil</source>
+ <translation type="obsolete">Stift</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>eraser</source>
+ <translation type="obsolete">Radiergummi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>cutter</source>
+ <translation type="obsolete">Schere</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">Kleber</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize</source>
+ <translation type="obsolete">Quantisierung</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>draw</source>
+ <translation type="obsolete">zeichnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute parts</source>
+ <translation type="obsolete">Parts stummschalten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/rastercombo.cpp" line="31"/>
+ <source>Off</source>
+ <translation>Aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="224"/>
+ <source>m</source>
+ <translation>m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="227"/>
+ <source>mute</source>
+ <translation>stumm</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="238"/>
+ <source>s</source>
+ <translation>s</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="241"/>
+ <source>solo</source>
+ <translation>solo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="251"/>
+ <source>Mo</source>
+ <translation>Mo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="254"/>
+ <source>monitor</source>
+ <translation>Monitor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="264"/>
+ <source>Dr</source>
+ <translation>Dr</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="267"/>
+ <source>use drum map</source>
+ <translation>Drummap benutzen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="279"/>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="298"/>
+ <source>aR</source>
+ <translation>aR</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="301"/>
+ <source>automation read</source>
+ <translation>Automation lesen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="311"/>
+ <source>aW</source>
+ <translation>aW</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="314"/>
+ <source>automation write</source>
+ <translation>Automation schreiben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="324"/>
+ <source>sync</source>
+ <translation>Sync</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="327"/>
+ <source>send sync events</source>
+ <translation>Sync Events senden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="358"/>
+ <source>1/2 channel</source>
+ <translation>1/2 Channel</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="371"/>
+ <source>oR</source>
+ <translation>oR</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="373"/>
+ <source>output routing</source>
+ <translation>Output Routing</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="389"/>
+ <source>iR</source>
+ <translation>iR</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="391"/>
+ <source>input routing</source>
+ <translation>Input Routing</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="26"/>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>Noten über dieser Tick-Grenze nicht quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="27"/>
+ <source>quantize also note len as default</source>
+ <translation>Notenlänge auch quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="143"/>
+ <source>Channels</source>
+ <translation>Channel</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="41"/>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation>Voreinstellungen (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="42"/>
+ <source>All Files (*)</source>
+ <translation>Alle Dateien(*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="36"/>
+ <source>Click this button to stop playback</source>
+ <translation>Stop Wiedergabe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="37"/>
+ <source>Click this button to start playback</source>
+ <translation>Start Wiedergabe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="38"/>
+ <source>Click this button to rewind to start position</source>
+ <translation>Zum Anfang zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="39"/>
+ <source>Click this button to rewind</source>
+ <translation>Zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="40"/>
+ <source>Click this button to forward current play position</source>
+ <translation>Vorspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="obsolete">Ein neues Projekt auswählen.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="obsolete">Projekt sichern.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="obsolete">Loop zwischen linker und rechter Marke</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record starts at left mark</source>
+ <translation type="obsolete">Aufnahme startet an der linken Marke</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record stops at right mark</source>
+ <translation type="obsolete">Aufnahme stoppt an der rechten Marke</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">Zum Anfang zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind current position</source>
+ <translation type="obsolete">zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move current position</source>
+ <translation type="obsolete">Aktuelle Position verschieben</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop sequencer</source>
+ <translation type="obsolete">Stop Sequencer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">Start Sequencer Wiedergabe</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to record press record and then play</source>
+ <translation type="obsolete">Um Aufzunehmen erst &quot;Aufnahme&quot; und dann &quot;Wiedergabe&quot; drücken</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>send note off to all midi channels</source>
+ <translation type="obsolete">Sende &quot;Note Off&quot; an alle Midi Kanäle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="103"/>
+ <source>Bar</source>
+ <translation>Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="341"/>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="347"/>
+ <source>Add Midi Track</source>
+ <translation>Midi Spur hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="350"/>
+ <source>Add Midi Output</source>
+ <translation>Midi Ausgang hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="353"/>
+ <source>Add Midi Input</source>
+ <translation>Midi Eingang hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="368"/>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="371"/>
+ <source>Add Wave Track</source>
+ <translation>Audio Spur hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="373"/>
+ <source>Add Audio Output</source>
+ <translation>Audio Ausgang hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="375"/>
+ <source>Add Audio Group</source>
+ <translation>Audio Gruppe hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="377"/>
+ <source>Add Audio Input</source>
+ <translation>Audio Eingang hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2977"/>
+ <source>MusE: create project directory</source>
+ <translation>MusE: Projektverzeichnis erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3006"/>
+ <source>MusE: create template directory</source>
+ <translation>MusE: Templateverzeichnis erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3071"/>
+ <source>Cannot find project &lt;%1&gt;</source>
+ <translation>Kann Projekt &lt;%1&gt; nicht finden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3072"/>
+ <source>MusE: load Project</source>
+ <translation>MusE: Projekt laden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Wiedergabe von aktueller Position starten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Wiedergabe beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Wiedergeben, Beenden, Zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: zum linken Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: zum rechten Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: toogle Schleifenauswahl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Aufnahme ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Bearbeiten: Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Bearbeiten: Rückgängig</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Bearbeiten: Wiederherstellen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Bearbeiten: Ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Bearbeiten: Einfügen,</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Bearbeiten: Löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Sichern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Datei: letze Datei öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Datei: Midifile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Datei: Midifile exportieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Datei: Audiofile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Datei: MusE beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Bearbeiten: Parts der Spur auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Pianoroll öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Drumeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Listeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">grafischen Mastertrack Editor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Mastertrack Listeneditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Miditrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Drumtrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Wavetrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Audioausgang zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Audiogruppe zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Audioinput zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: global ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: globales Einfügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: globales Splitten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Events ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Ansicht: Mixer öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Ansicht: Transportfenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Ansicht: Bigtimefenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Ansicht: Markerfenster zeigen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Einstellungen: Song seitenweise folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Einstellungen: Song nicht folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Einstellungen: Song kontinuierlich folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Einstellungen: Abkürzungen konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Einstellungen: Metronom konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Einstellungen: Midisynchronisation konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Einstellungen: Export Mididatei konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Einstellungen: Midiports/Softsynthesizer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Einstellungen: Audio Subsystem konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Midi Instrumente bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi Fernsteuerung</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Reset Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Init Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce Audio in Spur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce audio in Datei</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Restart Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hilfe: Manual aufschlagen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hilfe: WasIstDas ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Bearbeiten: den selektierten Part bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Bearbeiten: den nächsten Part in der überliegenden Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part zur drüberliegenden Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part auf unterer Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part auf untere Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Bearbeiten: Alles selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Bearbeiten: nichts selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Bearbeiten: Selektion umkehren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Bearbeiten: Part in Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Bearbeiten: Parts außerhalb Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part/Event links selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3034"/>
+ <source>MusE: create instruments directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="298"/>
+ <source>TrackInfo</source>
+ <translation>SpurInfo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="305"/>
+ <source>Mix</source>
+ <translation>Mix</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="356"/>
+ <source>Config Tracklist</source>
+ <translation>Spurliste konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="364"/>
+ <source>all mute off</source>
+ <translation>Stumm aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="373"/>
+ <source>all solo off</source>
+ <translation>Solo aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="382"/>
+ <source>all autoRead off</source>
+ <translation>Automation lesen aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="391"/>
+ <source>all autoWrite off</source>
+ <translation>Automation schreiben aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="406"/>
+ <source>i</source>
+ <translation>i</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="407"/>
+ <source>Show Track Info</source>
+ <translation>Spurinfo zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="414"/>
+ <source>m</source>
+ <translation>m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="415"/>
+ <source>Show Mixer Strip</source>
+ <translation>Mixerstrip zeigen</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="78"/>
+ <source>Pre</source>
+ <translation>Pre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="79"/>
+ <source>pre fader - post fader</source>
+ <translation>Prefader - Postfader</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="106"/>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="172"/>
+ <source>record downmix</source>
+ <translation>Downmix aufnehmen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="416"/>
+ <source>panorama</source>
+ <translation>Panorama</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="430"/>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="604"/>
+ <source>Channel %1</source>
+ <translation>Kanal %1</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="634"/>
+ <source>MidiChannel</source>
+ <translation>Midikanal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="662"/>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+</context>
+<context>
+ <name>Awl::MidiVolEntry</name>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="35"/>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="36"/>
+ <source>db</source>
+ <translation>db</translation>
+ </message>
+</context>
+<context>
+ <name>Awl::VolEntry</name>
+ <message>
+ <location filename="../../awl/volentry.cpp" line="32"/>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <location filename="../../muse/widgets/bigtime.cpp" line="66"/>
+ <source>MusE: Bigtime</source>
+ <translation>MusE: Bigtime</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDelegate</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="412"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="533"/>
+ <source>off</source>
+ <translation type="unfinished">aus</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDialog</name>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="45"/>
+ <source>controller name</source>
+ <translation>Kontrollername</translation>
+ </message>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="46"/>
+ <source>flag if controller contains data</source>
+ <translation>Flag: Controller enthält Daten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other</source>
+ <translation type="obsolete">andere</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sel</source>
+ <translation type="obsolete">Sel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">Kontroller auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove controller view</source>
+ <translation type="obsolete">Kontrolleranzeige entfernen</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlListEditor</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="124"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="522"/>
+ <source>Save configuration</source>
+ <translation>Konfiguration sichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2288"/>
+ <source>Critical Error</source>
+ <translation>Kritischer Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2282"/>
+ <source>Cannot open file %1</source>
+ <translation>Kann Datei %1 nicht öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2289"/>
+ <source>Parsing error for file %1</source>
+ <translation>Parse Fehler in Datei %1</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1931"/>
+ <source>Load category dialog</source>
+ <translation>Kategoriedialog laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1708"/>
+ <source>Load set dialog</source>
+ <translation>Setdialog laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1775"/>
+ <source>Save set dialog</source>
+ <translation>Setdialog speichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1799"/>
+ <source>New category</source>
+ <translation>Neue Kategorie</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1899"/>
+ <source>Delete category</source>
+ <translation>Kategorie löschen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1803"/>
+ <source>Load category</source>
+ <translation>Kategorie laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1805"/>
+ <source>Save category</source>
+ <translation>Kategorie speichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1812"/>
+ <source>Load set</source>
+ <translation>Set Laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1814"/>
+ <source>Save set</source>
+ <translation>Set Speichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1816"/>
+ <source>Delete set</source>
+ <translation>Set löschen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1824"/>
+ <source>New subcategory</source>
+ <translation>Neue Subkategorie</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2068"/>
+ <source>Delete subcategory</source>
+ <translation>Subkategorie löschen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1830"/>
+ <source>Load subcategory</source>
+ <translation>Subkategorie laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1833"/>
+ <source>Save subcategory</source>
+ <translation>Subkategorie speichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1849"/>
+ <source>New preset</source>
+ <translation>Neuer Preset</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2239"/>
+ <source>Delete preset</source>
+ <translation>Preset löschen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1853"/>
+ <source>Load preset</source>
+ <translation>Preset laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1855"/>
+ <source>Save preset</source>
+ <translation>Preset speichern</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1876"/>
+ <source>No more category supported</source>
+ <translation>Keine Kategorien mehr unterstützt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1877"/>
+ <source>You can not add more categories</source>
+ <translation>Es können keine Kategorien mehr hinzugefügt werden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2241"/>
+ <source>Do you really want to delete %1 ?</source>
+ <translation>%1 wirklich löschen?</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Ja</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;No</source>
+ <translation>&amp;Nein</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2029"/>
+ <source>No category selected</source>
+ <translation>Keine Kategorie ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2030"/>
+ <source>You must first select a category.</source>
+ <translation>Es muss zunächst eine Kategorie gewählt werden.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2308"/>
+ <source>Replace or add</source>
+ <translation>Ersetzen oder Zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1971"/>
+ <source>%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Replace</source>
+ <translation>&amp;Ersetzen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Add</source>
+ <translation>&amp;Zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2321"/>
+ <source>Download error</source>
+ <translation>Fehler beim Download</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1984"/>
+ <source>There is no more free category slot.</source>
+ <translation>Es gibt keinen freien Kategorieslot mehr.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2012"/>
+ <source>Save category dialog</source>
+ <translation>Kategorie Sichern Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2042"/>
+ <source>No more subcategory supported</source>
+ <translation>Keine weiteren Subkategorien mehr</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2043"/>
+ <source>You can not add more subcategories</source>
+ <translation>Es können keine weiteren Subkategorien zugefügt werden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2198"/>
+ <source>No subcategory selected</source>
+ <translation>Keine Subkategorie ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2199"/>
+ <source>You must first select a subcategory.</source>
+ <translation>Es muss zunächst eine Subkategorie ausgewählt werden.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2098"/>
+ <source>Load subcategory dialog</source>
+ <translation>Subkategorie Laden Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2138"/>
+ <source>%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2151"/>
+ <source>There is no more free subcategory slot.</source>
+ <translation>Kein weiterer Subkaegorie Slot verfügbar.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2180"/>
+ <source>Save subcategory dialog</source>
+ <translation>Subkategorie Sichern Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2213"/>
+ <source>No more preset supported</source>
+ <translation>Keine weiteren Presets unterstützt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2214"/>
+ <source>You can not add more presets</source>
+ <translation>Es könenn keine weiteren Presets zugefügt werden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2367"/>
+ <source>No preset selected</source>
+ <translation>Kein Preset ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2368"/>
+ <source>You must first select a preset.</source>
+ <translation>Es muss zunächst ein Preset ausgewählt werden.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2270"/>
+ <source>Load preset dialog</source>
+ <translation>Preset Laden Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2310"/>
+ <source>%1 is supposed to be affected to the prog number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2322"/>
+ <source>There is no more free preset slot.</source>
+ <translation>Es gibt keinen weiteren freien Preset Slot.</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2351"/>
+ <source>Save preset dialog</source>
+ <translation>Preset Sichern Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2471"/>
+ <source>Browse set dialog</source>
+ <translation>Browse Set Dialog</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2506"/>
+ <source>Browse image dialog</source>
+ <translation>Browse Image Dialog</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Events löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="61"/>
+ <source>&amp;Functions</source>
+ <translation>&amp;Funktionen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Set fixed length</source>
+ <translation type="obsolete">Feste Länge setzen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity...</source>
+ <translation type="obsolete">Anschlag verändern...</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="65"/>
+ <source>&amp;Select</source>
+ <translation>&amp;Auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Alles Auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Nichts auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">Innerhalb Schleife</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Ausserhalb Schleife</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="82"/>
+ <source>Drum Tools</source>
+ <translation>Drum Werkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="102"/>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrument</name>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="138"/>
+ <source>MusE: Create file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="148"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: kann nicht in Datei schreiben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="172"/>
+ <source>MusE: Save Instrument Definition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="174"/>
+ <source>Instrument Definition (*.idf)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="359"/>
+ <source>MusE: Enter new Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="360"/>
+ <source>Enter new Category:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="770"/>
+ <source>MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="772"/>
+ <source>The current Instrument contains unsaved data
+Save Current Instrument?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Sichern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">&amp;Nicht Sichern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <location filename="../../muse/widgets/tools.cpp" line="35"/>
+ <source>Edit Tools</source>
+ <translation>Edit Werkzeuge</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="57"/>
+ <source>effect rack</source>
+ <translation>Effekt Rack</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="107"/>
+ <source>move up</source>
+ <translation>nach oben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="108"/>
+ <source>move down</source>
+ <translation>nach unten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="109"/>
+ <source>remove</source>
+ <translation>entfernen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="111"/>
+ <source>bypass</source>
+ <translation>überbrücken</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="112"/>
+ <source>show gui</source>
+ <translation>GUI zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="113"/>
+ <source>show native gui</source>
+ <translation>Native GUI zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="115"/>
+ <source>New Plugin</source>
+ <translation>Neues Plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="116"/>
+ <source>New Aux Send</source>
+ <translation>Neu: Aux Send</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Replace effect</source>
+ <translation>Effekt ersetzen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation>Soll Effekt %1 wirklich ersetzt werden?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Ja</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;No</source>
+ <translation>&amp;Nein</translation>
+ </message>
+</context>
+<context>
+ <name>ExportMidiDialog</name>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source>Save </source>
+ <translation>Sichern </translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source> as smf midi file</source>
+ <translation> als smf Midi File</translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="368"/>
+ <source>MusE: export midi smf file</source>
+ <translation>MusE: in Midi smf Datei exportieren</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="39"/>
+ <source>FLUID: open Soundfile</source>
+ <translation>FLUID: Sounddatei öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="61"/>
+ <source>Fluid: select Sound Font</source>
+ <translation>Fluid: Soundfont auswählen</translation>
+ </message>
+</context>
+<context>
+ <name>FluidSynthGui</name>
+ <message>
+ <location filename="../../synti/fluidsynth/fluidsynthgui.cpp" line="90"/>
+ <source>Choose soundfont</source>
+ <translation>Soundfont auswählen</translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <location filename="../../muse/widgets/fontsel.cpp" line="47"/>
+ <source>Size:</source>
+ <translation>Größe:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTime</name>
+ <message>
+ <location filename="../../muse/midiedit/gatetime.cpp" line="32"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MusE: Gatezeit verändern</translation>
+ </message>
+</context>
+<context>
+ <name>GreendotButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="49"/>
+ <source>record</source>
+ <translation>aufnehmen</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="46"/>
+ <source>MusE: List Edit</source>
+ <translation>MusE: List Editor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="141"/>
+ <source>Parts</source>
+ <translation>PArts</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="157"/>
+ <source>Controller</source>
+ <translation>Kontroller</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="126"/>
+ <source>MusE: Marker</source>
+ <translation>MusE: Marker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="129"/>
+ <source>add marker</source>
+ <translation>Marker zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="130"/>
+ <source>Add Marker</source>
+ <translation>Marker zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete marker</source>
+ <translation type="obsolete">Marker löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Marker</source>
+ <translation type="obsolete">MArker löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="139"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Editieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="144"/>
+ <source>marker-tools</source>
+ <translation>MArkerwerkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="148"/>
+ <source>edit tools</source>
+ <translation>Edit Werkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="170"/>
+ <source>Bar:Beat:Tick</source>
+ <translation>Bar:Beat:Tick</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="171"/>
+ <source>Min:Sc:Fr:Sf</source>
+ <translation>Min:Sc:Fr:Sf</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Lock</source>
+ <translation>Lock</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Text</source>
+ <translation>Text</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="184"/>
+ <source>Marker Properties</source>
+ <translation>Marker Eigenschaften</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="49"/>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Mastertrack</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="52"/>
+ <source>edit tools</source>
+ <translation>Edit Werkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="61"/>
+ <source>EnableTempomap</source>
+ <translation>Tempomap einschalten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="62"/>
+ <source>Tempomap</source>
+ <translation>Tempomap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="64"/>
+ <source>Enable use of tempo map</source>
+ <translation>Tempomap benutzen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="69"/>
+ <source>Info</source>
+ <translation>Info</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="72"/>
+ <source>Cursor</source>
+ <translation>Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="80"/>
+ <source>Snap</source>
+ <translation>Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="87"/>
+ <source>time at cursor position</source>
+ <translation>Zeit an der Cursorposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="88"/>
+ <source>tempo at cursor position</source>
+ <translation>Tempo an der Cursorposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="91"/>
+ <source>CurPos </source>
+ <translation>CurPos </translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="97"/>
+ <source>tempo at current position</source>
+ <translation>Tempo an der aktuellen Position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="98"/>
+ <source>time signature at current position</source>
+ <translation>Taktart an der aktuellen Position</translation>
+ </message>
+</context>
+<context>
+ <name>MidiChannelInfo</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Patch</source>
+ <translation type="obsolete">Instrument Patch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Out Port</source>
+ <translation type="obsolete">Midi Ausgang</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Instrument</source>
+ <translation type="obsolete">Midi Instrument</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <location filename="../../muse/midictrl.cpp" line="190"/>
+ <source>Velocity</source>
+ <translation>Anschlag</translation>
+ </message>
+</context>
+<context>
+ <name>MidiEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="47"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Editieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Schneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Einfügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="65"/>
+ <source>Play Events</source>
+ <translation>Events spielen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="70"/>
+ <source>Step Record</source>
+ <translation>Schrittaufnahme</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="76"/>
+ <source>Midi Input</source>
+ <translation>Midi Eingang</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="81"/>
+ <source>Follow Song</source>
+ <translation>Song folgen</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="999"/>
+ <source>AlsaDevices</source>
+ <translation>AlsaDevices</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1035"/>
+ <source>MidiChannel</source>
+ <translation>Midikanäle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1015"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiOutPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="784"/>
+ <source>MidiChannel</source>
+ <translation>Midikanäle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MidiDevices</source>
+ <translation type="obsolete">Midigeräte</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="801"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished">AlsaDevices</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="820"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiPluginDialog</name>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="539"/>
+ <source>MusE: select midi plugin</source>
+ <translation>MusE: Midiplugin auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Description</source>
+ <translation>Beschreibung</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="570"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="571"/>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRack</name>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="51"/>
+ <source>midi effect rack</source>
+ <translation>Midi Effekt Rack</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="96"/>
+ <source>move up</source>
+ <translation>nach oben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="97"/>
+ <source>move down</source>
+ <translation>nach unten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="98"/>
+ <source>remove</source>
+ <translation>entfernen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="99"/>
+ <source>bypass</source>
+ <translation>überbrücken</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="100"/>
+ <source>show gui</source>
+ <translation>GUI zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="101"/>
+ <source>new</source>
+ <translation>Neu</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>VariationSend</source>
+ <translation>VariationSend</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>Var</source>
+ <translation>Var</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>ReverbSend</source>
+ <translation>ReverbSend</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>Rev</source>
+ <translation>Rev</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>ChorusSend</source>
+ <translation>ChorusSend</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>Cho</source>
+ <translation>Cho</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan/Balance</source>
+ <translation>Pan/Balance</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="499"/>
+ <source>Tracks</source>
+ <translation>Spuren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="511"/>
+ <source>OutputPorts</source>
+ <translation>Ausgänge</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyntiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1274"/>
+ <source>OutputPorts</source>
+ <translation>Ausgänge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1281"/>
+ <source>Channel</source>
+ <translation>Kanäle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1312"/>
+ <source>Input Ports</source>
+ <translation>Eingänge</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTimeDelegate</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">aus</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="143"/>
+ <source>Channel %1</source>
+ <translation>Kanal %1</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="147"/>
+ <source>Midi Port</source>
+ <translation>Midiport</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackerEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="27"/>
+ <source>&amp;View</source>
+ <translation>&amp;Zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="32"/>
+ <source>MidiTracker Tools</source>
+ <translation>MidiTracker Werkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="51"/>
+ <source>Panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="55"/>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="64"/>
+ <source>row features</source>
+ <translation>Zeilen Features</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Row per measure</source>
+ <translation type="obsolete">Zeilen per Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="87"/>
+ <source>Number of visible rows</source>
+ <translation>Anzahl der sichtbaren Zeilen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="66"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="205"/>
+ <source>New</source>
+ <translation>Neu</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="126"/>
+ <source>MusE: set mixdown file name</source>
+ <translation>MusE: Midxown Dateiname wählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="129"/>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Wave Dateien (*.wav);;Alle Dateien (*)</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="46"/>
+ <source>MusE: Mixer</source>
+ <translation>MusE: Mixer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="49"/>
+ <source>&amp;Create</source>
+ <translation>&amp;Erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="52"/>
+ <source>&amp;View</source>
+ <translation>&amp;Zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="53"/>
+ <source>Routing</source>
+ <translation>Routing</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="56"/>
+ <source>Show Midi Tracks</source>
+ <translation>Miditracks zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="57"/>
+ <source>Show Midi Out Ports</source>
+ <translation>Midiausgänge zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="58"/>
+ <source>Show Midi In Ports</source>
+ <translation>Midieingänge zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="62"/>
+ <source>Show Wave Tracks</source>
+ <translation>Audiospuren zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="63"/>
+ <source>Show Output Tracks</source>
+ <translation>Audioausgänge zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="64"/>
+ <source>Show Group Tracks</source>
+ <translation>Audiogruppen zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="65"/>
+ <source>Show Input Tracks</source>
+ <translation>Audioeingänge zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="66"/>
+ <source>Show Synthesizer</source>
+ <translation>Synthesizer zeigen</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <location filename="../../muse/help.cpp" line="38"/>
+ <source>MusE manual not found at: </source>
+ <translation>MusE Handbuch nicht gefunden: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="40"/>
+ <source>MusE: Open Help</source>
+ <translation>MusE: Hilfe öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="857"/>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation>Um eine Wavedatei zu importieren, muß zunächst eine Wave-Zielspur ausgewählt werden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="865"/>
+ <source>Import Wave File</source>
+ <translation>Wavedatei importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="190"/>
+ <source>Failed to start audio!</source>
+ <translation>Audio Start scheitert!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="191"/>
+ <source>Was not able to start audio, check if jack is running.
+</source>
+ <translation type="unfinished">Audio konnte nicht gestartet werden, läuft JACK?
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Und&amp;o</source>
+ <translation type="obsolete">Und&amp;o</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo last change to song</source>
+ <translation type="obsolete">letzte Änderung rückgängig machen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Re&amp;do</source>
+ <translation type="obsolete">Re&amp;do</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo last undo</source>
+ <translation type="obsolete">letztes Undo rückgängig machen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Schleife</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchin</source>
+ <translation type="obsolete">Punchin</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchout</source>
+ <translation type="obsolete">Punchout</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Aufnehmen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="591"/>
+ <source>Panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open</source>
+ <translation type="obsolete">&amp;Öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Sichern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pianoroll</source>
+ <translation type="obsolete">Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MidiTracker</source>
+ <translation type="obsolete">MidiTracker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="574"/>
+ <source>Project Buttons</source>
+ <translation>Projekt Buttons</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="588"/>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="612"/>
+ <source>&amp;Project</source>
+ <translation>&amp;Projekt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="616"/>
+ <source>Open &amp;Recent</source>
+ <translation>letzte P&amp;rojekte öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="629"/>
+ <source>Import Midifile</source>
+ <translation>Midifile importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="631"/>
+ <source>Export Midifile</source>
+ <translation>Midifile exportieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">&amp;Quit</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="649"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Editieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Schneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">Einfügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete Parts</source>
+ <translation type="obsolete">Parts löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="663"/>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished">Markierte Spuren löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="666"/>
+ <source>Add Track</source>
+ <translation type="unfinished">Spur zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="672"/>
+ <source>Select</source>
+ <translation type="unfinished">Auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">Alles auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">nichts auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">Auswahl umkehren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">Innerhalb Schleife</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">Ausserhalb Schleife</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="obsolete">Alle Parts der Spur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drums</source>
+ <translation type="obsolete">Drums</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List</source>
+ <translation type="obsolete">Liste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mastertrack</source>
+ <translation type="obsolete">Masterspur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="693"/>
+ <source>Project Properties</source>
+ <translation>Projekt Eigenschaften</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="700"/>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="703"/>
+ <source>Modify Gate Time</source>
+ <translation>Gatezeit ändern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="704"/>
+ <source>Modify Velocity</source>
+ <translation>Anschlag verändern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="705"/>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="717"/>
+ <source>Transpose</source>
+ <translation>Transponieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="707"/>
+ <source>Thin Out</source>
+ <translation>Ausdünnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="708"/>
+ <source>Erase Event</source>
+ <translation>Event löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="709"/>
+ <source>Note Shift</source>
+ <translation>Note Shift</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="710"/>
+ <source>Move Clock</source>
+ <translation>Zeit verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="711"/>
+ <source>Copy Measure</source>
+ <translation>Takt kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="712"/>
+ <source>Erase Measure</source>
+ <translation>Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="713"/>
+ <source>Delete Measure</source>
+ <translation>Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="714"/>
+ <source>Create Measure</source>
+ <translation>Takt erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="715"/>
+ <source>Mix Track</source>
+ <translation>Spur mischen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="724"/>
+ <source>&amp;View</source>
+ <translation>Anzeigen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport Panel</source>
+ <translation type="obsolete">Transport Panel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bigtime window</source>
+ <translation type="obsolete">Bigtime Window</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer 1</source>
+ <translation type="obsolete">Mixer 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer 2</source>
+ <translation type="obsolete">Mixer 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Marker</source>
+ <translation type="obsolete">Marker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="755"/>
+ <source>&amp;Structure</source>
+ <translation>&amp;Struktur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="757"/>
+ <source>Global Cut</source>
+ <translation>Globaler Schnitt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="760"/>
+ <source>Global Insert</source>
+ <translation>Global Einfügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="763"/>
+ <source>Global Split</source>
+ <translation>Global Splitten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="766"/>
+ <source>Copy Range</source>
+ <translation>Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="772"/>
+ <source>Cut Events</source>
+ <translation type="unfinished">Events Schneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="780"/>
+ <source>&amp;Midi</source>
+ <translation>&amp;Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="782"/>
+ <source>Edit Instrument</source>
+ <translation type="unfinished">Instrument editieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="786"/>
+ <source>Reset Instr.</source>
+ <translation>Instrument zurücksetzen.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="788"/>
+ <source>Init Instr.</source>
+ <translation>Instrument initialisieren.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="790"/>
+ <source>local off</source>
+ <translation>lokal aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="797"/>
+ <source>&amp;Audio</source>
+ <translation>&amp;Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="799"/>
+ <source>Bounce to Track</source>
+ <translation>Bounce nach Spur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="802"/>
+ <source>Bounce to File</source>
+ <translation>Bounce in Datei</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="805"/>
+ <source>Restart Audio</source>
+ <translation>Audio restarten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="812"/>
+ <source>Setti&amp;ngs</source>
+ <translation>Einstellu&amp;ngen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="813"/>
+ <source>Configure shortcuts</source>
+ <translation>Shortcuts Konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="816"/>
+ <source>follow song</source>
+ <translation>Song folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="818"/>
+ <source>dont follow Song</source>
+ <translation>Song nicht folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="821"/>
+ <source>follow page</source>
+ <translation>Seitenweise folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="824"/>
+ <source>follow continuous</source>
+ <translation>Kontinuierlich folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="833"/>
+ <source>Midi Sync</source>
+ <translation>Midi Sync</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="835"/>
+ <source>Midi File Export</source>
+ <translation>Mididatei exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="838"/>
+ <source>Preferences</source>
+ <translation>Voreinstellungen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="846"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="848"/>
+ <source>&amp;Manual</source>
+ <translation>&amp;Manual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="850"/>
+ <source>&amp;MusE homepage</source>
+ <translation>&amp;MusE Homepage</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="853"/>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished">Fehler melden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="856"/>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished">Ãœber MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="859"/>
+ <source>About&amp;Qt</source>
+ <translation>Ãœber &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="863"/>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished">Was ist das?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="870"/>
+ <source>Arranger</source>
+ <translation>Arranger</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="872"/>
+ <source>Cursor</source>
+ <translation>Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="881"/>
+ <source>Snap</source>
+ <translation>Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="894"/>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="909"/>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="918"/>
+ <source>midi pitch</source>
+ <translation>Midi Tonhöhe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="919"/>
+ <source>global midi pitch shift</source>
+ <translation>Globale Midi Tonhöhe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="922"/>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="933"/>
+ <source>midi tempo</source>
+ <translation>Midi Tempo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="945"/>
+ <source>N</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1330"/>
+ <source>MusE: new project</source>
+ <translation>Muse: neues Projekt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1333"/>
+ <source>Cannot create project folder &lt;%1&gt;</source>
+ <translation type="unfinished">Kann Projektverzeichnis &lt;%1&gt; nicht erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1182"/>
+ <source>Cannot open template file
+%1</source>
+ <translation type="unfinished">Kann Template
+%1
+nicht öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1189"/>
+ <source>File &lt;%1&gt; read error</source>
+ <translation>Datei &lt;%1&gt; Lesefehler</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1279"/>
+ <source>MusE: Create tmp file failed</source>
+ <translation>MusE: kann temporäre Datei nicht erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1287"/>
+ <source>MusE: Write File failed</source>
+ <translation>MusE: kann nicht in Datei schreiben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1375"/>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Das aktuelle Projekt enthält ungesicherte Daten.
+Soll das Projekt gesichert werden?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Nosave</source>
+ <translation>&amp;Nicht Sichern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Abort</source>
+ <translation>&amp;Abbrechen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1657"/>
+ <source>Nothing to edit</source>
+ <translation>Nichts zu bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2407"/>
+ <source>MusE: Copy Range</source>
+ <translation>MusE: Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2424"/>
+ <source>not implemented</source>
+ <translation>nicht implementiert</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2422"/>
+ <source>MusE: Cut Events</source>
+ <translation>MusE: Events ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2438"/>
+ <source>MusE: Bounce</source>
+ <translation>MusE: Bounce</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2440"/>
+ <source>set left/right marker for bounce range</source>
+ <translation>Linken/Rechten Marker für Bouncebereich setzen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2497"/>
+ <source>MusE: Bounce to Track</source>
+ <translation>Bounce nach Spur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2482"/>
+ <source>more than one target track selected</source>
+ <translation>mehr als eine Zielspur ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2489"/>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>falscher Typ für Zielspur,
+eine Wavespur muß als Ziel selektiert werden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2499"/>
+ <source>no target track selected</source>
+ <translation>keine Zielspur ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2524"/>
+ <source>MusE: Bounce to File</source>
+ <translation>Bounce in Datei</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2526"/>
+ <source>no output track found</source>
+ <translation>keine Ausgangsspur gefunden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="128"/>
+ <source>MusE: Import Midi</source>
+ <translation>MusE: Midi importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="146"/>
+ <source>MusE: import midi file</source>
+ <translation>MusE: Mididatei importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="307"/>
+ <source>reading midifile
+ </source>
+ <translation>Mididatei lesen
+ </translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="309"/>
+ <source>
+failed: </source>
+ <translation>
+fehlgeschlagen: </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open Project</source>
+ <translation type="obsolete">Projekt öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Project</source>
+ <translation type="obsolete">Projekt sichern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto Start</source>
+ <translation type="obsolete">Transport: Zum Anfang</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">Zum Anfang zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Wiedergabe von aktueller Position starten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">Start Sequencer Wiedergabe</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Wiedergabe beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Wiedergeben, Beenden, Zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: zum linken Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: zum rechten Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: toogle Schleifenauswahl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Aufnahme ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Bearbeiten: Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Bearbeiten: Rückgängig</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Bearbeiten: Wiederherstellen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Bearbeiten: Ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Bearbeiten: Einfügen,</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Bearbeiten: Löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="obsolete">Ein neues Projekt auswählen.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Sichern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="obsolete">Projekt sichern.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Datei: letze Datei öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Datei: Midifile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Datei: Midifile exportieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Datei: Audiofile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Datei: MusE beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Bearbeiten: Parts der Spur auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Pianoroll öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Drumeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Listeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">grafischen Mastertrack Editor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Mastertrack Listeneditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Miditrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Drumtrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Wavetrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Audioausgang zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Audiogruppe zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Audioinput zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: global ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: globales Einfügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: globales Splitten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Events ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Ansicht: Mixer öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Ansicht: Transportfenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Ansicht: Bigtimefenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Ansicht: Markerfenster zeigen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Einstellungen: Song seitenweise folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Einstellungen: Song nicht folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Einstellungen: Song kontinuierlich folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Einstellungen: Abkürzungen konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Einstellungen: Metronom konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Einstellungen: Midisynchronisation konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Einstellungen: Export Mididatei konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Einstellungen: Midiports/Softsynthesizer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Einstellungen: Audio Subsystem konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Midi Instrumente bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi Fernsteuerung</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Reset Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Init Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce Audio in Spur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce audio in Datei</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Restart Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hilfe: Manual aufschlagen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hilfe: WasIstDas ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Bearbeiten: den selektierten Part bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Bearbeiten: den nächsten Part in der überliegenden Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part zur drüberliegenden Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part auf unterer Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part auf untere Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Bearbeiten: Alles selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Bearbeiten: nichts selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Bearbeiten: Selektion umkehren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Bearbeiten: Part in Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Bearbeiten: Parts außerhalb Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Bearbeiten: nächsten Part/Event links selektieren</translation>
+ </message>
+</context>
+<context>
+ <name>MuseApplication</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="52"/>
+ <source>Transport: Goto Start</source>
+ <translation type="unfinished">Transport: Zum Anfang</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="56"/>
+ <source>Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="57"/>
+ <source>rewind to start position</source>
+ <translation type="unfinished">Zum Anfang zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="62"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="unfinished">Transport: toogle Schleifenauswahl</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="66"/>
+ <source>Loop</source>
+ <translation type="unfinished">Schleife</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="67"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="unfinished">Loop zwischen linker und rechter Marke</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="72"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="unfinished">Transport: Wiedergabe von aktueller Position starten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="76"/>
+ <source>Play</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="77"/>
+ <source>start sequencer play</source>
+ <translation type="unfinished">Start Sequencer Wiedergabe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="82"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="unfinished">Transport: Wiedergeben, Beenden, Zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="89"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="unfinished">Transport: Wiedergabe beenden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="93"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="94"/>
+ <source>stop sequencer</source>
+ <translation type="unfinished">Stop Sequencer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="99"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="unfinished">Transport: zum linken Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="105"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="unfinished">Transport: zum rechten Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="111"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="unfinished">Transport: Metronom ein/aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="117"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="unfinished">Transport: Aufnahme ein/aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="121"/>
+ <source>Record</source>
+ <translation type="unfinished">Aufnehmen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="122"/>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">Um Aufzunehmen erst &quot;Aufnahme&quot; und dann &quot;Wiedergabe&quot; drücken</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="128"/>
+ <source>Transport: Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="132"/>
+ <source>Punchin</source>
+ <translation type="unfinished">Punchin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="133"/>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">Aufnahme startet an der linken Marke</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="138"/>
+ <source>Transport: Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="142"/>
+ <source>Punchout</source>
+ <translation type="unfinished">Punchout</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="143"/>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">Aufnahme stoppt an der rechten Marke</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="148"/>
+ <source>Transport: Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="152"/>
+ <source>rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="153"/>
+ <source>rewind current position</source>
+ <translation type="unfinished">zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="158"/>
+ <source>Transport: Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="162"/>
+ <source>forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="163"/>
+ <source>move current position</source>
+ <translation type="unfinished">Aktuelle Position verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="172"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="173"/>
+ <source>send note off to all midi channels</source>
+ <translation type="unfinished">Sende &quot;Note Off&quot; an alle Midi Kanäle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="178"/>
+ <source>Edit: Undo</source>
+ <translation type="unfinished">Bearbeiten: Rückgängig</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="182"/>
+ <source>undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="183"/>
+ <source>undo last change to song</source>
+ <translation type="unfinished">letzte Änderung rückgängig machen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="188"/>
+ <source>Edit: Redo</source>
+ <translation type="unfinished">Bearbeiten: Wiederherstellen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="192"/>
+ <source>redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="193"/>
+ <source>redo last undo</source>
+ <translation type="unfinished">letztes Undo rückgängig machen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="198"/>
+ <source>Edit: Cut</source>
+ <translation type="unfinished">Bearbeiten: Ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="203"/>
+ <source>Cut</source>
+ <translation type="unfinished">Schneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="208"/>
+ <source>Edit: Copy</source>
+ <translation type="unfinished">Bearbeiten: Kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="213"/>
+ <source>Copy</source>
+ <translation type="unfinished">Kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="218"/>
+ <source>Edit: Paste,</source>
+ <translation type="unfinished">Bearbeiten: Einfügen,</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="223"/>
+ <source>Paste</source>
+ <translation type="unfinished">Einfügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="228"/>
+ <source>Edit: Delete</source>
+ <translation type="unfinished">Bearbeiten: Löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="233"/>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="238"/>
+ <source>Open</source>
+ <translation type="unfinished">Öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="242"/>
+ <source>open project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="244"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="unfinished">Ein neues Projekt auswählen.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="249"/>
+ <source>Save</source>
+ <translation type="unfinished">Sichern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="253"/>
+ <source>save project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="255"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="unfinished">Projekt sichern.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="260"/>
+ <source>File: Save as</source>
+ <translation type="unfinished">Datei: Speichern als</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="264"/>
+ <source>save project as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="266"/>
+ <source>Click this button to save a new copy of the project.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="270"/>
+ <source>File: Save as Template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="274"/>
+ <source>save project as template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="276"/>
+ <source>Click this button to save the project you are editing
+for later use as a template.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="281"/>
+ <source>File: Open recent file</source>
+ <translation type="unfinished">Datei: letze Datei öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="287"/>
+ <source>File: Import midi file</source>
+ <translation type="unfinished">Datei: Midifile importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="293"/>
+ <source>File: Export midi file</source>
+ <translation type="unfinished">Datei: Midifile exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="299"/>
+ <source>File: Import audio file</source>
+ <translation type="unfinished">Datei: Audiofile importieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="305"/>
+ <source>File: Quit MusE</source>
+ <translation type="unfinished">Datei: MusE beenden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="310"/>
+ <source>Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="316"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="unfinished">Bearbeiten: Parts der Spur auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="321"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Alle Parts der Spur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="326"/>
+ <source>Open Pianoroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="330"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="331"/>
+ <source>Start Pianoroll Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="336"/>
+ <source>Open MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="340"/>
+ <source>MidiTracker</source>
+ <translation type="unfinished">MidiTracker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="341"/>
+ <source>Start Midi Tracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="346"/>
+ <source>Open drumeditor</source>
+ <translation type="unfinished">Drumeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="350"/>
+ <source>Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="351"/>
+ <source>Start Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="356"/>
+ <source>Open wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="361"/>
+ <source>Wave Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="366"/>
+ <source>Open listeditor</source>
+ <translation type="unfinished">Listeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="370"/>
+ <source>Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="371"/>
+ <source>open Properties Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="376"/>
+ <source>Open mastertrack editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="380"/>
+ <source>Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="381"/>
+ <source>Start Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="386"/>
+ <source>Add midi track</source>
+ <translation type="unfinished">Miditrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="392"/>
+ <source>Add drum track</source>
+ <translation type="unfinished">Drumtrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="398"/>
+ <source>Add wave track</source>
+ <translation type="unfinished">Wavetrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="404"/>
+ <source>Add audio output</source>
+ <translation type="unfinished">Audioausgang zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="410"/>
+ <source>Add audio group</source>
+ <translation type="unfinished">Audiogruppe zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="416"/>
+ <source>Add audio input</source>
+ <translation type="unfinished">Audioinput zufügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="422"/>
+ <source>Structure: Global cut</source>
+ <translation type="unfinished">Struktur: global ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="428"/>
+ <source>Structure: Global insert</source>
+ <translation type="unfinished">Struktur: globales Einfügen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="434"/>
+ <source>Structure: Global split</source>
+ <translation type="unfinished">Struktur: globales Splitten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="440"/>
+ <source>Structure: Copy range</source>
+ <translation type="unfinished">Struktur: Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="446"/>
+ <source>Structure: Cut events</source>
+ <translation type="unfinished">Struktur: Events ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="452"/>
+ <source>View: Open mixer 1 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="456"/>
+ <source>Mixer1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="457"/>
+ <source>Show Mixer 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="462"/>
+ <source>View: Open mixer 2 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="466"/>
+ <source>Mixer2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="467"/>
+ <source>Show Mixer 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="472"/>
+ <source>View: Toggle transport window</source>
+ <translation type="unfinished">Ansicht: Transportfenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="476"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="477"/>
+ <source>Show Transport Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="482"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="unfinished">Ansicht: Bigtimefenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="486"/>
+ <source>BigTime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="487"/>
+ <source>Show BigTime Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="492"/>
+ <source>View: Open marker window</source>
+ <translation type="unfinished">Ansicht: Markerfenster zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="496"/>
+ <source>Marker</source>
+ <translation type="unfinished">Marker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="497"/>
+ <source>Show Marker List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="502"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="unfinished">Einstellungen: Song seitenweise folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="508"/>
+ <source>Settings: Follow song off</source>
+ <translation type="unfinished">Einstellungen: Song nicht folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="514"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="unfinished">Einstellungen: Song kontinuierlich folgen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="520"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="unfinished">Einstellungen: Abkürzungen konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="526"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="unfinished">Einstellungen: Metronom konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="532"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="unfinished">Einstellungen: Midisynchronisation konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="538"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="unfinished">Einstellungen: Export Mididatei konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="544"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="unfinished">Einstellungen: Midiports/Softsynthesizer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="550"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="unfinished">Einstellungen: Audio Subsystem konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="556"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="unfinished">Midi: Midi Instrumente bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="562"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="unfinished">Midi: Midi Fernsteuerung</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="568"/>
+ <source>Midi: Reset midi</source>
+ <translation type="unfinished">Midi: Reset Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="574"/>
+ <source>Midi: Init midi</source>
+ <translation type="unfinished">Midi: Init Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="580"/>
+ <source>Midi: Midi local off</source>
+ <translation type="unfinished">Midi: Midi lokal aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="586"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="unfinished">Audio: Bounce Audio in Spur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="592"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="unfinished">Audio: Bounce audio in Datei</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="598"/>
+ <source>Audio: Restart audio</source>
+ <translation type="unfinished">Audio: Restart Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="604"/>
+ <source>Help: Open Manual</source>
+ <translation type="unfinished">Hilfe: Manual aufschlagen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="610"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="unfinished">Hilfe: WasIstDas ein/aus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="616"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="unfinished">Bearbeiten: den selektierten Part bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="622"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="unfinished">Bearbeiten: den nächsten Part in der überliegenden Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="628"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="unfinished">Bearbeiten: nächsten Part zur drüberliegenden Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="634"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="unfinished">Bearbeiten: nächsten Part auf unterer Spur selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="640"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="unfinished">Bearbeiten: nächsten Part auf untere Spur addieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="646"/>
+ <source>Midi: Transpose</source>
+ <translation type="unfinished">Midi: Transponieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="651"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="654"/>
+ <source>Edit: Select all</source>
+ <translation type="unfinished">Bearbeiten: Alles selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="659"/>
+ <source>Select All</source>
+ <translation type="unfinished">Alles Auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="664"/>
+ <source>Edit: Select none</source>
+ <translation type="unfinished">Bearbeiten: nichts selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="669"/>
+ <source>Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="674"/>
+ <source>Edit: Invert selection</source>
+ <translation type="unfinished">Bearbeiten: Selektion umkehren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="679"/>
+ <source>Invert Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="684"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="unfinished">Bearbeiten: Part in Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="689"/>
+ <source>Select Inside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="694"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="unfinished">Bearbeiten: Parts außerhalb Schleife selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="699"/>
+ <source>Select Outside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="716"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="unfinished">Bearbeiten: nächsten Part/Event links selektieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="710"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="722"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="728"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="734"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="740"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="746"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="751"/>
+ <source>Set fixed length</source>
+ <translation type="unfinished">Feste Länge setzen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="754"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="759"/>
+ <source>Over Quantize</source>
+ <translation type="unfinished">Over Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="762"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="767"/>
+ <source>Note On Quantize</source>
+ <translation type="unfinished">Note On Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="770"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="775"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished">Note On/Off Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="778"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="783"/>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished">Iteratives Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="786"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="792"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="797"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="800"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="805"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Anschlag verändern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="808"/>
+ <source>Edit: Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="813"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="816"/>
+ <source>Edit: Thin Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="821"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Ausdünnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="824"/>
+ <source>Edit: Erase Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="829"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Event löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="832"/>
+ <source>Edit: Note Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="837"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Note Shift</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="840"/>
+ <source>Edit: Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="845"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Zeit verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="848"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="853"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Takt kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="856"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="861"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="864"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="869"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="872"/>
+ <source>Edit: Create Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="877"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Takt erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="880"/>
+ <source>Edit: Change event color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="886"/>
+ <source>Tool: Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="890"/>
+ <source>Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="895"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="unfinished">Zeigerwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="900"/>
+ <source>Tool: Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="904"/>
+ <source>Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="908"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="unfinished">Stiftwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="913"/>
+ <source>Tool: Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="917"/>
+ <source>Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="919"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="unfinished">Löschwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="924"/>
+ <source>Tool: Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="928"/>
+ <source>Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="930"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="unfinished">Schere auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="935"/>
+ <source>Tool: Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="939"/>
+ <source>Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="941"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="unfinished">Kleberwerkzeug auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="951"/>
+ <source>Declone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="954"/>
+ <source>Tool: Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="958"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="960"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="unfinished">Quantisierungstool auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="965"/>
+ <source>Tool: Line Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="969"/>
+ <source>Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="970"/>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished">Zeichenstift auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="975"/>
+ <source>Tool: Mute Parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="979"/>
+ <source>Mute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="981"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="unfinished">Stummschalttool auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="987"/>
+ <source>Transport: Increase current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="993"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="999"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1005"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1011"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1017"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1023"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1029"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1035"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1041"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1047"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1053"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1059"/>
+ <source>Insert</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1065"/>
+ <source>Insert Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1071"/>
+ <source>Insert Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1077"/>
+ <source>Change Event Position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1083"/>
+ <source>Edit Event Value</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="34"/>
+ <source>Note Info</source>
+ <translation>Noteninformation</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="38"/>
+ <source>Start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="47"/>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="57"/>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="65"/>
+ <source>Velo On</source>
+ <translation>Anschlag</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="74"/>
+ <source>Velo Off</source>
+ <translation>Aus-Anschlag</translation>
+ </message>
+</context>
+<context>
+ <name>OutportCombo</name>
+ <message>
+ <location filename="../../muse/widgets/outportcombo.cpp" line="32"/>
+ <source>Midi Output Port</source>
+ <translation>Midi Ausgang</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Auss&amp;chneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rename</source>
+ <translation type="obsolete">Umbenennen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>color</source>
+ <translation type="obsolete">Farbe</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">Löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>split</source>
+ <translation type="obsolete">Splitten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">Kleben</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>de-clone</source>
+ <translation type="obsolete">un-Klonen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="442"/>
+ <source>AutoFill...</source>
+ <translation>Auto-Füllen...</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="449"/>
+ <source>drums</source>
+ <translation>Drums</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="453"/>
+ <source>pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="456"/>
+ <source>miditracker</source>
+ <translation>Miditracker</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list</source>
+ <translation type="obsolete">Liste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="461"/>
+ <source>wave edit</source>
+ <translation>Wave bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="496"/>
+ <source>MusE: Get auto fill loop len</source>
+ <translation>MusE: Länge für Auto-Füll-Schleife</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="497"/>
+ <source>Measures: </source>
+ <translation>Takte: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="889"/>
+ <source>MusE: Change Part Name</source>
+ <translation>MusE: Partname ändern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="890"/>
+ <source>PartName:</source>
+ <translation>PartName:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="421"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="424"/>
+ <source>Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Events löschen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="77"/>
+ <source>&amp;Select</source>
+ <translation>&amp;Selektieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">a&amp;alles auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">nichts auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">&amp;Selektion invertieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">&amp;innerhalb Schleife</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">ausserhalb Scheife</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="85"/>
+ <source>&amp;Config</source>
+ <translation>&amp;Konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="86"/>
+ <source>event color</source>
+ <translation>Eventfarbe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="89"/>
+ <source>blue</source>
+ <translation>blau</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="92"/>
+ <source>pitch colors</source>
+ <translation>Tonhöhenfarbe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="95"/>
+ <source>velocity colors</source>
+ <translation>Anschlagfarben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="100"/>
+ <source>&amp;Functions</source>
+ <translation>&amp;Funktionen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Over Quantize</source>
+ <translation type="obsolete">Over Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On Quantize</source>
+ <translation type="obsolete">Note On Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="obsolete">Note On/Off Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Iterative Quantize</source>
+ <translation type="obsolete">Iteratives Quantisieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="109"/>
+ <source>Config Quant...</source>
+ <translation>Quantisieren konfigurieren...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Gate Time</source>
+ <translation type="obsolete">Gate Time verändern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Anschlag verändern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Crescendo</source>
+ <translation type="obsolete">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transponieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thin Out</source>
+ <translation type="obsolete">Ausdünnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Event</source>
+ <translation type="obsolete">Event löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Shift</source>
+ <translation type="obsolete">Note Shift</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Move Clock</source>
+ <translation type="obsolete">Zeit verschieben</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy Measure</source>
+ <translation type="obsolete">Takt kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Measure</source>
+ <translation type="obsolete">Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Measure</source>
+ <translation type="obsolete">Takt löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create Measure</source>
+ <translation type="obsolete">Takt erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="134"/>
+ <source>Pianoroll Tools</source>
+ <translation>Pianoroll Werkzeuge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="155"/>
+ <source>Panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="161"/>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="57"/>
+ <source>MusE: select plugin</source>
+ <translation>MusE: Plugin auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="64"/>
+ <source>Lib</source>
+ <translation>Lib</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="65"/>
+ <source>Label</source>
+ <translation>Bezeichnung</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="66"/>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="67"/>
+ <source>AI</source>
+ <translation>Al</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="68"/>
+ <source>AO</source>
+ <translation>AO</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="69"/>
+ <source>CI</source>
+ <translation>CI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="70"/>
+ <source>CO</source>
+ <translation>CO</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="71"/>
+ <source>IP</source>
+ <translation>IP</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="72"/>
+ <source>id</source>
+ <translation>id</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="73"/>
+ <source>Maker</source>
+ <translation>Erzeuger</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="74"/>
+ <source>Copyright</source>
+ <translation>Copyright</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="104"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="106"/>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="120"/>
+ <source>Mono and Stereo</source>
+ <translation>Mono und Stereo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="125"/>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="130"/>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="135"/>
+ <source>Show All</source>
+ <translation>Alle anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="150"/>
+ <source>Select which types of plugins should be visible in the list.&lt;br&gt;Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.&lt;br&gt;Also beware that the &apos;all&apos; alternative includes plugins that probably not are usable by MusE.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="157"/>
+ <source>Search in &apos;Label&apos; and &apos;Name&apos;:</source>
+ <translation>in &quot;Label&quot; und &quot;Name&quot; suchen:</translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="347"/>
+ <source>File Buttons</source>
+ <translation>Dateiknöpfe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="349"/>
+ <source>Load Preset</source>
+ <translation>Preset laden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="352"/>
+ <source>Save Preset</source>
+ <translation>Preset sichern</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="358"/>
+ <source>bypass plugin</source>
+ <translation>Plugin überbrücken</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="574"/>
+ <source>MusE: load preset</source>
+ <translation>MusE: Preset laden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="635"/>
+ <source>MusE: save preset</source>
+ <translation>MusE: Preset sichern</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../../muse/preferences.cpp" line="680"/>
+ <source>MusE: load image</source>
+ <translation>MusE: Image laden</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectDialog</name>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="420"/>
+ <source>MusE: create new folder</source>
+ <translation>MusE: neuen Ordner erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="421"/>
+ <source>new folder:</source>
+ <translation>neuer Ordner:</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../../muse/muse.cpp" line="356"/>
+ <source>Add Midi Generator...</source>
+ <translation>Midi Generator zufügen...</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="380"/>
+ <source>Add Soft Synth...</source>
+ <translation>Soft Synthesizer zufügen...</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>File
+</source>
+ <translation>Datei
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>
+exists</source>
+ <translation>
+existiert</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="138"/>
+ <source>MusE: write</source>
+ <translation>MusE: schreiben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="140"/>
+ <source>Overwrite</source>
+ <translation>Ãœberschreiben</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="141"/>
+ <source>Quit</source>
+ <translation>Beenden</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="151"/>
+ <source>Open File
+</source>
+ <translation>Datei öffnen
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="152"/>
+ <source>
+failed: </source>
+ <translation>
+fehlgeschlagen: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="153"/>
+ <source>MusE: Open File</source>
+ <translation>MusE: Datei öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="173"/>
+ <source>generic midi</source>
+ <translation>generisch Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="101"/>
+ <source>copy
+ %1
+to
+ %2</source>
+ <translation>%1 nach %2 kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="105"/>
+ <source>
+converting sample rate
+from %1 to %2</source>
+ <translation>
+Samplerate von %1 nach %2 konvertieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="109"/>
+ <source>Abort</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="358"/>
+ <source>create peakfile for </source>
+ <translation>Peakfile erzeugen </translation>
+ </message>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="303"/>
+ <source>new</source>
+ <translation>neu</translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="127"/>
+ <source>MusE: export midi file:</source>
+ <translation>MusE: Mididatei exportieren:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="51"/>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="59"/>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RecordButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="38"/>
+ <source>record</source>
+ <translation>aufnehmen</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginFront</name>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="213"/>
+ <source>Clear and unload effect</source>
+ <translation>Effekt löschen und entladen</translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="214"/>
+ <source>Load effect</source>
+ <translation>Effekt laden</translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="215"/>
+ <source>Toggle display of effect parameters</source>
+ <translation>Anzeige der Effektparameter toggeln</translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="216"/>
+ <source>Turn effect on/off</source>
+ <translation>Effekte Ein/Ausschalten</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Abbrechen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="78"/>
+ <source>Shortcut conflicts with </source>
+ <translation>Shortcut hat Konflikt mit </translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="94"/>
+ <source>Undefined</source>
+ <translation>Undefiniert</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfig</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="37"/>
+ <source>Global</source>
+ <translation>Global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="38"/>
+ <source>Arranger</source>
+ <translation>Arranger</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="39"/>
+ <source>Pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="40"/>
+ <source>Drumeditor</source>
+ <translation>Drumeditor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="41"/>
+ <source>List editor</source>
+ <translation>List Editor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="42"/>
+ <source>List Mastertrack</source>
+ <translation>List Mastertrack</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="44"/>
+ <source>All categories</source>
+ <translation>Alle Kategorien</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Wiedergabe von aktueller Position starten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Wiedergabe beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Wiedergeben, Beenden, Zurückspulen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: zum linken Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: zum rechten Marker positionieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: toogle Schleifenauswahl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Aufnahme ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Bearbeiten: Kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Bearbeiten: Rückgängig</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Bearbeiten: Wiederherstellen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Bearbeiten: Ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Bearbeiten: Einfügen,</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Bearbeiten: Löschen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: New project</source>
+ <translation type="obsolete">Datei: Neues Projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open from disk</source>
+ <translation type="obsolete">Datei: von Platte öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save project</source>
+ <translation type="obsolete">Datei: Projekt sichern</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Datei: letze Datei öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save as</source>
+ <translation type="obsolete">Datei: Speichern als</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Load template</source>
+ <translation type="obsolete">Datei: Vorlage laden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Datei: Midifile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Datei: Midifile exportieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Datei: Audiofile importieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Datei: MusE beenden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Bearbeiten: Parts der Spur auswählen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Pianoroll öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Drumeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Listeditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">grafischen Mastertrack Editor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Mastertrack Listeneditor öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open midi transformer</source>
+ <translation type="obsolete">Miditransformer öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Miditrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Drumtrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Wavetrack zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Audioausgang zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Audiogruppe zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Audioinput zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio aux</source>
+ <translation type="obsolete">Audioaux zufügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: global ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: globales Einfügen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: globales Splitten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Bereich kopieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Events ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Ansicht: Mixer öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Ansicht: Transportfenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Ansicht: Bigtimefenster ein/aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Ansicht: Markerfenster zeigen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Einstellungen: Song seitenweise folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Einstellungen: Song nicht folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Einstellungen: Song kontinuierlich folgen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Global configuration</source>
+ <translation type="obsolete">Einstellungen: globale Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Einstellungen: Abkürzungen konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Einstellungen: Metronom konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Einstellungen: Midisynchronisation konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Einstellungen: Export Mididatei konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Appearance settings</source>
+ <translation type="obsolete">Einstellungen: Aussehen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Einstellungen: Midiports/Softsynthesizer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Einstellungen: Audio Subsystem konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Midi Instrumente bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input transform</source>
+ <translation type="obsolete">Midi: Midi Eingangstransformator öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input filter</source>
+ <translation type="obsolete">Midi: Midi Inputfilter öffnen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi input transpose</source>
+ <translation type="obsolete">Midi: Midi input tranponieren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi Fernsteuerung</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Random rhythm generator</source>
+ <translation type="obsolete">Midi: Random rhythm generator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Reset Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Init Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal aus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce Audio in Spur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce audio in Datei</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Restart Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Mixer automation</source>
+ <translation type="obsolete">Automation: Mixer Automation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Take mixer snapshot</source>
+ <translation type="obsolete">Automation: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="43"/>
+ <source>Wave editor</source>
+ <translation>Wave Editor</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <location filename="../../synti/simpledrums/simpledrumsgui.cpp" line="633"/>
+ <source>Load sample dialog</source>
+ <translation>Sample Laden Dialog</translation>
+ </message>
+</context>
+<context>
+ <name>Song</name>
+ <message>
+ <location filename="../../muse/song.cpp" line="1493"/>
+ <source>Jack shutdown!</source>
+ <translation>Jack Shutdown!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/song.cpp" line="1508"/>
+ <source>Jack has detected a performance problem which has lead to
+MusE being disconnected.
+This could happen due to a number of reasons:
+- a performance issue with your particular setup.
+- a bug in MusE (or possibly in another connected software).
+- a random hiccup which might never occur again.
+- jack was voluntary stopped by you or someone else
+- jack crashed
+If there is a persisting problem you are much welcome to discuss it
+on the MusE mailinglist.
+(there is information about joining the mailinglist on the MusE
+ homepage which is available through the help menu)
+
+To proceed check the status of Jack and try to restart it and then .
+click on the Restart button.</source>
+ <translation type="unfinished">JACK hat ein Performance-Problem erkannt und MusE abgeklemmt.
+Dies kann eine Reihe von Ursachen haben:
+ - ein Performance-Problem mit diesem Setup.
+ - ein Fehler in MusE oder einer anderen verbundenen Software
+ - ein zufaelliger Quirk, der nie wieder passiert.
+ - JACK wurde gestoppt
+ - JACK ist abgestuerzt
+
+Um weiterzumachen bitte JACK testen und neu starten, dann den Restart Knopf
+drcken.</translation>
+ </message>
+</context>
+<context>
+ <name>SplitLayerGui</name>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="53"/>
+ <source>start pitch for split</source>
+ <translation type="unfinished">Erster Ton fuer Split</translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="58"/>
+ <source>enable learn mode for start pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="70"/>
+ <source>end pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="75"/>
+ <source>enable learn mode for end pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="84"/>
+ <source>pitch offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="91"/>
+ <source>start velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="97"/>
+ <source>end velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="103"/>
+ <source>velocity offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLSWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="132"/>
+ <source>Remove Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="136"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="238"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Anschlag</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="271"/>
+ <source>Delete Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="128"/>
+ <source>Copy Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="145"/>
+ <source>Show Gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="272"/>
+ <source>Add Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="424"/>
+ <source>Midi Output Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TemplateDialog</name>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="75"/>
+ <source>MusE presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="85"/>
+ <source>User presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TimeCanvas</name>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="147"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="149"/>
+ <source>Add Controller View</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="45"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="64"/>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="70"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="86"/>
+ <source>To</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="90"/>
+ <source>All Events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="91"/>
+ <source>Looped Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="92"/>
+ <source>Selected Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="93"/>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="51"/>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="56"/>
+ <source>Track Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="69"/>
+ <source>Track Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="78"/>
+ <source>Track Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="480"/>
+ <source>MusE: Load VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="583"/>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Velocity</name>
+ <message>
+ <location filename="../../muse/midiedit/velocity.cpp" line="33"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="50"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="51"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editieren</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="52"/>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="54"/>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="55"/>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="57"/>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="59"/>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="61"/>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="63"/>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="65"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="69"/>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="71"/>
+ <source>Mute Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="73"/>
+ <source>Normalize Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="75"/>
+ <source>Fade In Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="77"/>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="79"/>
+ <source>Reverse Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="82"/>
+ <source>Select</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">a&amp;alles auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="93"/>
+ <source>waveedit-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="104"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="111"/>
+ <source>pianoroll-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="112"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="116"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="809"/>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="810"/>
+ <source>When editing in external editor - you should not change the filesize
+since it must fit the selected region.
+
+Missing data is muted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse_qt4_evolution/share/locale/muse_es.qm b/muse_qt4_evolution/share/locale/muse_es.qm
new file mode 100644
index 00000000..536780a3
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_es.qm
Binary files differ
diff --git a/muse_qt4_evolution/share/locale/muse_es.ts b/muse_qt4_evolution/share/locale/muse_es.ts
new file mode 100644
index 00000000..366feb15
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_es.ts
@@ -0,0 +1,11154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name></name>
+ <message>
+ <location filename="../../muse/transport.cpp" line="35"/>
+ <source>Click this button to enable recording</source>
+ <translation type="unfinished">Pulsa este bot� para habilitar la grabaci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="25"/>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation type="unfinished">selecciona la cantidad de cuantizaci�:
+0 - sin cuantizar
+100 - cuantizaci� completa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="obsolete">selecciona la Herramienta de Puntero:
+con la herramienta de puntero puedes:
+ seleccionar partes
+ mover partes
+ copiar partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insertar nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insertar controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insertar Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de tecla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="30"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="31"/>
+ <source>Refrain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="32"/>
+ <source>Bridge</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="33"/>
+ <source>Intro</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="34"/>
+ <source>Coda</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="35"/>
+ <source>Chorus</source>
+ <translation type="unfinished">Coro ;-)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="37"/>
+ <source>Brass</source>
+ <translation type="unfinished">Metales</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="38"/>
+ <source>Percussion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="39"/>
+ <source>Drums</source>
+ <translation type="unfinished">Percusi�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="40"/>
+ <source>Guitar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="41"/>
+ <source>Bass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="42"/>
+ <source>Flute</source>
+ <translation type="unfinished">Flauta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="43"/>
+ <source>Strings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="44"/>
+ <source>Keyboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="45"/>
+ <source>Piano</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="46"/>
+ <source>Saxophon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to open a &lt;em&gt;new song&lt;/em&gt;.&lt;br&gt;You can also select the &lt;b&gt;Open command&lt;/b&gt; from the File menu.</source>
+ <translation type="obsolete">Pulsa este bot� para abrir una &lt;em&gt;nueva canci�&lt;/em&gt;Puedes usar tambi� el comando &lt;b&gt;Abrir&lt;/b&gt; del me de archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the song you are editing. You will be prompted for a file name.
+You can also select the Save command from the File menu.</source>
+ <translation type="obsolete">Pulsa este bot� para guardar la canci� que est� editando. Se te preguntar�por un nombre de archivo.
+Puedes seleccionar tambi� el comando Guardar del men de Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Song</source>
+ <translation type="obsolete">Crea una nueva Canci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="36"/>
+ <source>Click this button to stop playback</source>
+ <translation type="unfinished">Pulsa este bot� para parar la reproducci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="37"/>
+ <source>Click this button to start playback</source>
+ <translation type="unfinished">Pulsa este bot� para iniciar la reproducci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="38"/>
+ <source>Click this button to rewind to start position</source>
+ <translation type="unfinished">Pulsa este bot� para regresar al principio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="39"/>
+ <source>Click this button to rewind</source>
+ <translation type="unfinished">Pulsa este bot� para ir hacia atr�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="40"/>
+ <source>Click this button to forward current play position</source>
+ <translation type="unfinished">Pulsa este bot� para adelantar la posici� de reproducci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="26"/>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation type="unfinished">no cuantices notas por encima de este l�ite de tick</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="27"/>
+ <source>quantize also note len as default</source>
+ <translation type="unfinished">cuantiza tambi� la longitud de la nota al valor por defecto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="obsolete">hace un bucle entre las marcas de izquierda y derecha</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record starts at left mark</source>
+ <translation type="obsolete">la grabaci� comienza en la marca izquierda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record stops at right mark</source>
+ <translation type="obsolete">la grabaci� termina en la merca derecha</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">retrocede a la posici� de inicio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind current position</source>
+ <translation type="obsolete">retrasa la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move current position</source>
+ <translation type="obsolete">mueve la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop sequencer</source>
+ <translation type="obsolete">para el secuenciador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">inicia el secuenciador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to record press record and then play</source>
+ <translation type="obsolete">para grabar pulsa grabar y despu� reproducir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>send note off to all midi channels</source>
+ <translation type="obsolete">envia un apagado de nota (note off) a todos los canales midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="obsolete">selecciona la Herramienta de L�iz:
+con la herramienta de l�iz puedes:
+ crear nuevas partes
+ modificar la longitud de las partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="obsolete">selecciona la Herramienta de Borrado:
+con la herramienta de borrado puedes borrar partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="obsolete">selecciona la Herramienta de Corte:
+con la herramienta de core puedes partir una parte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="obsolete">selecciona la Herramienta de Pegado:
+con la herramienta de pegado puedes unir dos partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Score Tool:
+</source>
+ <translation type="obsolete">selecciona la Herramienta de Partitura:
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="obsolete">selecciona la Herramianta de Cuantizaci�:
+inserta un evento de cuantizaci� de visualizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Drawing Tool</source>
+ <translation type="obsolete">selecciona la Herramienta de Dibujo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="obsolete">selecciona la Herramienta de Silenciar:
+haz click en una parte para silenciar/des-silenciar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pointer</source>
+ <translation type="obsolete">puntero</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pencil</source>
+ <translation type="obsolete">l�iz</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rubber</source>
+ <translation type="obsolete">goma</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>cutter</source>
+ <translation type="obsolete">cortador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">pegamento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize</source>
+ <translation type="obsolete">cuantizador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>draw</source>
+ <translation type="obsolete">dibujar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute parts</source>
+ <translation type="obsolete">silenciar partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/rastercombo.cpp" line="31"/>
+ <source>Off</source>
+ <translation type="unfinished">Apagar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="41"/>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished">preselecciones (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="42"/>
+ <source>All Files (*)</source>
+ <translation type="unfinished">Todos los archivos (*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="347"/>
+ <source>Add Midi Track</source>
+ <translation type="unfinished">A�dir pista MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="371"/>
+ <source>Add Wave Track</source>
+ <translation type="unfinished">A�dir pista de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to enable recording</source>
+ <translation type="obsolete">Pulsa este bot� para habilitar la grabaci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="224"/>
+ <source>m</source>
+ <translation type="unfinished">m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="227"/>
+ <source>mute</source>
+ <translation type="unfinished">silencio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="238"/>
+ <source>s</source>
+ <translation type="unfinished">s</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="241"/>
+ <source>solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="251"/>
+ <source>Mo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="254"/>
+ <source>monitor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="264"/>
+ <source>Dr</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="267"/>
+ <source>use drum map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="279"/>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="298"/>
+ <source>aR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="301"/>
+ <source>automation read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="311"/>
+ <source>aW</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="314"/>
+ <source>automation write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="324"/>
+ <source>sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="327"/>
+ <source>send sync events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="358"/>
+ <source>1/2 channel</source>
+ <translation type="unfinished">Canales 1/2</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="371"/>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="373"/>
+ <source>output routing</source>
+ <translation type="unfinished">ruteado de entrada</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="389"/>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="391"/>
+ <source>input routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="143"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="103"/>
+ <source>Bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="341"/>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="350"/>
+ <source>Add Midi Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="353"/>
+ <source>Add Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="368"/>
+ <source>Audio</source>
+ <translation type="unfinished">Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="373"/>
+ <source>Add Audio Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="375"/>
+ <source>Add Audio Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="377"/>
+ <source>Add Audio Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2977"/>
+ <source>MusE: create project directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3006"/>
+ <source>MusE: create template directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3071"/>
+ <source>Cannot find project &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3072"/>
+ <source>MusE: load Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3034"/>
+ <source>MusE: create instruments directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load image</source>
+ <translation type="obsolete">MusE: carga imagen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>handle of transport window</source>
+ <translation type="obsolete">gestor de la ventana de transporte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>track activity in arranger</source>
+ <translation type="obsolete">actividad de tramos en el arreglador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime font color</source>
+ <translation type="obsolete">color de fuente bigtime</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime background color</source>
+ <translation type="obsolete">color de fondo de bigtime</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>waveedit background color</source>
+ <translation type="obsolete">color de fondo de edici� de onda</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Appearance settings</source>
+ <translation type="obsolete">MusE: Configuraci� de apariencia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arreglador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show frames</source>
+ <translation type="obsolete">mostrar frames</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show names</source>
+ <translation type="obsolete">mostrar nombres</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show events</source>
+ <translation type="obsolete">mostrar eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show Cakewalk Style</source>
+ <translation type="obsolete">mostrar al estilo de Cakewalk</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events</source>
+ <translation type="obsolete">Eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note on</source>
+ <translation type="obsolete">nota on</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>poly pressure</source>
+ <translation type="obsolete">presi� polif�ica</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller</source>
+ <translation type="obsolete">controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>aftertouch</source>
+ <translation type="obsolete">aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pitch bend</source>
+ <translation type="obsolete">pitch bend</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>program change</source>
+ <translation type="obsolete">cambio de programa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>special</source>
+ <translation type="obsolete">especial</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background picture</source>
+ <translation type="obsolete">Imagen de fondo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bg</source>
+ <translation type="obsolete">fondo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select...</source>
+ <translation type="obsolete">selecciona...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show snap grid</source>
+ <translation type="obsolete">muestra la rejilla de captura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">Colores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Items</source>
+ <translation type="obsolete">Objetos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected</source>
+ <translation type="obsolete">seleccionado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>current:</source>
+ <translation type="obsolete">actual:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change...</source>
+ <translation type="obsolete">cambia...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation type="obsolete">colores din�icos para actividad en el arreglador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Style/Fonts</source>
+ <translation type="obsolete">Estilo/Tipografia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QT Theme</source>
+ <translation type="obsolete">tema QT</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Windows</source>
+ <translation type="obsolete">Ventanas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE</source>
+ <translation type="obsolete">MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metal</source>
+ <translation type="obsolete">Metal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Norwegian Wood</source>
+ <translation type="obsolete">Madera Noruega</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Platinum</source>
+ <translation type="obsolete">Platino</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>CDE</source>
+ <translation type="obsolete">CDE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif</source>
+ <translation type="obsolete">Motif</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif Plus</source>
+ <translation type="obsolete">Motif Plus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Tipografia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Family</source>
+ <translation type="obsolete">Familia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Size</source>
+ <translation type="obsolete">Tama�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 1</source>
+ <translation type="obsolete">Tipografia 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 2</source>
+ <translation type="obsolete">Tipografia 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 3</source>
+ <translation type="obsolete">Tipografia 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 0</source>
+ <translation type="obsolete">Tipografia 0</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bold</source>
+ <translation type="obsolete">Negrita</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Italic</source>
+ <translation type="obsolete">Cursiva</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 4</source>
+ <translation type="obsolete">Tipografia 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 5</source>
+ <translation type="obsolete">Tipografia 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>R</source>
+ <translation type="obsolete">R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cursor</source>
+ <translation type="obsolete">Cursor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Snap</source>
+ <translation type="obsolete">Snap</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NO</source>
+ <translation type="obsolete">No</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="298"/>
+ <source>TrackInfo</source>
+ <translation type="unfinished">Informaci� de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track</source>
+ <translation type="obsolete">Pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi song type</source>
+ <translation type="obsolete">tipo de canci� midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi pitch</source>
+ <translation type="obsolete">tono midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>global midi pitch shift</source>
+ <translation type="obsolete">desplazamiento de tono midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo</source>
+ <translation type="obsolete">Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi tempo</source>
+ <translation type="obsolete">tempo midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>O-Port</source>
+ <translation type="obsolete">Port de Salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arreglador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>N</source>
+ <translation type="obsolete">N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>R</source>
+ <translation type="obsolete">R</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>A</source>
+ <translation type="obsolete">A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>M</source>
+ <translation type="obsolete">M</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C</source>
+ <translation type="obsolete">C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Ch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>T</source>
+ <translation type="obsolete">T</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Grupo A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Grupo B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Grupo C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Grupo D</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="305"/>
+ <source>Mix</source>
+ <translation type="unfinished">Mezcla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="356"/>
+ <source>Config Tracklist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="364"/>
+ <source>all mute off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="373"/>
+ <source>all solo off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="382"/>
+ <source>all autoRead off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="391"/>
+ <source>all autoWrite off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="406"/>
+ <source>i</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="407"/>
+ <source>Show Track Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="414"/>
+ <source>m</source>
+ <translation type="unfinished">m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="415"/>
+ <source>Show Mixer Strip</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Audio Configuration</source>
+ <translation type="obsolete">MusE: Configuraci� de Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">C&amp;orrecto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Parameters</source>
+ <translation type="obsolete">Par�etros de Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>32</source>
+ <translation type="obsolete">32</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>64</source>
+ <translation type="obsolete">64</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>128</source>
+ <translation type="obsolete">128</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>256</source>
+ <translation type="obsolete">256</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>512</source>
+ <translation type="obsolete">512</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Frame Size:</source>
+ <translation type="obsolete">Tama� de ventana:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delay:</source>
+ <translation type="obsolete">Retardo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sample Rate:</source>
+ <translation type="obsolete">Velocidad de muestreo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>44100</source>
+ <translation type="obsolete">44100</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>48000</source>
+ <translation type="obsolete">48000</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96000</source>
+ <translation type="obsolete">96000</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Driver</source>
+ <translation type="obsolete">Controlador de Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use Alsa</source>
+ <translation type="obsolete">Usa Alsa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use JACK</source>
+ <translation type="obsolete">Usa Jack</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>No Audio</source>
+ <translation type="obsolete">Sin Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Status:</source>
+ <translation type="obsolete">Estado:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TextLabel6</source>
+ <translation type="obsolete">EtiquetadeTexto16</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">Canales 1/2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader - post fader</source>
+ <translation type="obsolete">pre fader - port fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silencio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record downmix</source>
+ <translation type="obsolete">downmix de grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output routing</source>
+ <translation type="obsolete">ruteado de entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Input Strip</source>
+ <translation type="obsolete">A�dir canal de entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pre</source>
+ <translation type="obsolete">Pre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Audio Mixer</source>
+ <translation type="obsolete">MusE: Mezclador de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inputs</source>
+ <translation type="obsolete">Entradas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Synthi</source>
+ <translation type="obsolete">Entrada de sintetizador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tracks</source>
+ <translation type="obsolete">Pistas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Groups</source>
+ <translation type="obsolete">Grupos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Grupo A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Grupo B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Grupo C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Grupo D</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="430"/>
+ <source>Pan</source>
+ <translation type="unfinished">Bal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">Canales 1/2</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="78"/>
+ <source>Pre</source>
+ <translation type="unfinished">Pre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="79"/>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished">pre fader - port fader</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="106"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silencio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="172"/>
+ <source>record downmix</source>
+ <translation type="unfinished">downmix de grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output routing</source>
+ <translation type="obsolete">ruteado de entrada</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="416"/>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="604"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="634"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="662"/>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+</context>
+<context>
+ <name>Awl::MidiVolEntry</name>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="35"/>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="36"/>
+ <source>db</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::VolEntry</name>
+ <message>
+ <location filename="../../awl/volentry.cpp" line="32"/>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <location filename="../../muse/widgets/bigtime.cpp" line="66"/>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished">MusE: Big Time</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Clip List Editor</source>
+ <translation type="obsolete">MusE: Editor de lista de clips</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ClipList</source>
+ <translation type="obsolete">MusE: Lista de Clips</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Refs</source>
+ <translation type="obsolete">Referencias</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">Inicio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Data</source>
+ <translation type="obsolete">Datos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clip Properties</source>
+ <translation type="obsolete">Propiedades del Clip</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pos:</source>
+ <translation type="obsolete">Posici�:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len:</source>
+ <translation type="obsolete">Longitud:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Comentario de la pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track 1</source>
+ <translation type="obsolete">Pista 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Habilita el formato extendido de smf</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigTrackListBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Arriba</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Abajo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDelegate</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="412"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="533"/>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDialog</name>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="45"/>
+ <source>controller name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="46"/>
+ <source>flag if controller contains data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sel</source>
+ <translation type="obsolete">Sel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">selecciona controlador</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlListEditor</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="124"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">selecciona controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove panel</source>
+ <translation type="obsolete">quitar panel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other ...</source>
+ <translation type="obsolete">otro ...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sel</source>
+ <translation type="obsolete">Sel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>x</source>
+ <translation type="obsolete">x</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="522"/>
+ <source>Save configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2288"/>
+ <source>Critical Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2282"/>
+ <source>Cannot open file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2289"/>
+ <source>Parsing error for file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1931"/>
+ <source>Load category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1708"/>
+ <source>Load set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1775"/>
+ <source>Save set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1799"/>
+ <source>New category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1899"/>
+ <source>Delete category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1803"/>
+ <source>Load category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1805"/>
+ <source>Save category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1812"/>
+ <source>Load set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1814"/>
+ <source>Save set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1816"/>
+ <source>Delete set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1824"/>
+ <source>New subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2068"/>
+ <source>Delete subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1830"/>
+ <source>Load subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1833"/>
+ <source>Save subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1849"/>
+ <source>New preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2239"/>
+ <source>Delete preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1853"/>
+ <source>Load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1855"/>
+ <source>Save preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1876"/>
+ <source>No more category supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1877"/>
+ <source>You can not add more categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2241"/>
+ <source>Do you really want to delete %1 ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2029"/>
+ <source>No category selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2030"/>
+ <source>You must first select a category.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2308"/>
+ <source>Replace or add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1971"/>
+ <source>%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Replace</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2321"/>
+ <source>Download error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1984"/>
+ <source>There is no more free category slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2012"/>
+ <source>Save category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2042"/>
+ <source>No more subcategory supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2043"/>
+ <source>You can not add more subcategories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2198"/>
+ <source>No subcategory selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2199"/>
+ <source>You must first select a subcategory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2098"/>
+ <source>Load subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2138"/>
+ <source>%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2151"/>
+ <source>There is no more free subcategory slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2180"/>
+ <source>Save subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2213"/>
+ <source>No more preset supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2214"/>
+ <source>You can not add more presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2367"/>
+ <source>No preset selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2368"/>
+ <source>You must first select a preset.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2270"/>
+ <source>Load preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2310"/>
+ <source>%1 is supposed to be affected to the prog number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2322"/>
+ <source>There is no more free preset slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2351"/>
+ <source>Save preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2471"/>
+ <source>Browse set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2506"/>
+ <source>Browse image dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Preselecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LFO</source>
+ <translation type="obsolete">LFO</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volumen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Detune</source>
+ <translation type="obsolete">Desafinaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reverb</source>
+ <translation type="obsolete">Reverberaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">After Touch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sustain</source>
+ <translation type="obsolete">Sostenido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transponer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Text</source>
+ <translation type="obsolete">Texto</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Map</source>
+ <translation type="obsolete">Carga Mapa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Map</source>
+ <translation type="obsolete">Guarda Mapa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Borrar Eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Seleccionar todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Deseleccionar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">Bucle interior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Bucle exterior</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="65"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Seleccionar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Parar Grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input</source>
+ <translation type="obsolete">Entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">A�dir Controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>M</source>
+ <translation type="obsolete">M</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sound</source>
+ <translation type="obsolete">Sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QNT</source>
+ <translation type="obsolete">QNT</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E-Note</source>
+ <translation type="obsolete">Nota-E</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>A-Note</source>
+ <translation type="obsolete">Nota-A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Ch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV1</source>
+ <translation type="obsolete">VL1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV2</source>
+ <translation type="obsolete">VL2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV3</source>
+ <translation type="obsolete">VL3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV4</source>
+ <translation type="obsolete">VL4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichero</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Drummap</source>
+ <translation type="obsolete">Cargar mapa de percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Store Drummap</source>
+ <translation type="obsolete">Guardar mapa de percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ctrl</source>
+ <translation type="obsolete">control</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>drummaps</source>
+ <translation type="obsolete">mapas de percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Muse: Load Drum Map</source>
+ <translation type="obsolete">MusE: Cargar mapa de percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Store Drum Map</source>
+ <translation type="obsolete">MusE: Guardar mapa de percusi�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="61"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="82"/>
+ <source>Drum Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="102"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pressure</source>
+ <translation type="obsolete">Presi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation type="obsolete">MusE: Introduce el AfterTouch del canal</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller-H</source>
+ <translation type="obsolete">Controlador-H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller-L</source>
+ <translation type="obsolete">Controlador-L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation type="obsolete">MusE: Introduce el evento del controlador 14</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller Event</source>
+ <translation type="obsolete">MusE: Introduce el evento del controlador</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller</source>
+ <translation type="obsolete">MusE: Introduce controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller:</source>
+ <translation type="obsolete">Controlador:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Posici� de tiempo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value:</source>
+ <translation type="obsolete">Valor:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller value</source>
+ <translation type="obsolete">valor del controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Bank</source>
+ <translation type="obsolete">Banco-H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Bank</source>
+ <translation type="obsolete">Banco-L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrument</name>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="138"/>
+ <source>MusE: Create file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="148"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="172"/>
+ <source>MusE: Save Instrument Definition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="174"/>
+ <source>Instrument Definition (*.idf)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="359"/>
+ <source>MusE: Enter new Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="360"/>
+ <source>Enter new Category:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="770"/>
+ <source>MusE</source>
+ <translation type="unfinished">MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="772"/>
+ <source>The current Instrument contains unsaved data
+Save Current Instrument?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Guardar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum</source>
+ <translation type="obsolete">Percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Rango</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">Lista de controladores definidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Esta es la lista de controladores definidos en MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>SysEx</source>
+ <translation type="obsolete">Sistema Exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">Herramientas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Nueva</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Abrir...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Guardar como</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">Guardar &amp;Como...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Salir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">&amp;Salir</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type</source>
+ <translation type="obsolete">Tipo de Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Introduzca en Hexadecimal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Introduzca evento Meta</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Introduzca evento Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TextLabel1</source>
+ <translation type="obsolete">EtiquetaTexto1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type:</source>
+ <translation type="obsolete">Tipo de Meta:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Escribe Hexadecimal</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Note</source>
+ <translation type="obsolete">MusE: Escribe Nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length:</source>
+ <translation type="obsolete">Longitud:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch:</source>
+ <translation type="obsolete">Tono:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity On:</source>
+ <translation type="obsolete">Velocidad On:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity Off:</source>
+ <translation type="obsolete">Velocidad Off:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pressure</source>
+ <translation type="obsolete">Presi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation type="obsolete">Muse: Escribe el aftertouch polif�ico</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation type="obsolete">MusE: Introduce el deplazamiento de tono</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter SysEx</source>
+ <translation type="obsolete">MusE: Introduce el sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TimePosition:</source>
+ <translation type="obsolete">Posici� de tiempo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Comentario:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <location filename="../../muse/widgets/tools.cpp" line="35"/>
+ <source>Edit Tools</source>
+ <translation type="unfinished">Editar herramientas</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="57"/>
+ <source>effect rack</source>
+ <translation type="unfinished">rack de efectos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="107"/>
+ <source>move up</source>
+ <translation type="unfinished">subir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="108"/>
+ <source>move down</source>
+ <translation type="unfinished">bajar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="109"/>
+ <source>remove</source>
+ <translation type="unfinished">quitar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="111"/>
+ <source>bypass</source>
+ <translation type="unfinished">saltar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="112"/>
+ <source>show gui</source>
+ <translation type="unfinished">mostrar gui</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change</source>
+ <translation type="obsolete">cambiar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="113"/>
+ <source>show native gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="115"/>
+ <source>New Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="116"/>
+ <source>New Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Replace effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ExportMidiDialog</name>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source>Save </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source> as smf midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="368"/>
+ <source>MusE: export midi smf file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="39"/>
+ <source>FLUID: open Soundfile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="61"/>
+ <source>Fluid: select Sound Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Formulario1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soundfont</source>
+ <translation type="obsolete">Fuente de sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soundfont</source>
+ <translation type="obsolete">Fuente de sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Level</source>
+ <translation type="obsolete">Nivel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Width</source>
+ <translation type="obsolete">Anchura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Damping</source>
+ <translation type="obsolete">Amortiguamiento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Room Size</source>
+ <translation type="obsolete">Tama� estancia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reverb</source>
+ <translation type="obsolete">Reverberaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Seno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Tri�gulo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Number</source>
+ <translation type="obsolete">Nmero</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Depth</source>
+ <translation type="obsolete">Profundidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Chorus</source>
+ <translation type="obsolete">Coro ;-)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Gain</source>
+ <translation type="obsolete">Ganancia</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Formulario1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global</source>
+ <translation type="obsolete">Global</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>User</source>
+ <translation type="obsolete">Usuario</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Project</source>
+ <translation type="obsolete">Proyecto</translation>
+ </message>
+</context>
+<context>
+ <name>FluidSynthGui</name>
+ <message>
+ <location filename="../../synti/fluidsynth/fluidsynthgui.cpp" line="90"/>
+ <source>Choose soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <location filename="../../muse/widgets/fontsel.cpp" line="47"/>
+ <source>Size:</source>
+ <translation type="unfinished">Tama�:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTime</name>
+ <message>
+ <location filename="../../muse/midiedit/gatetime.cpp" line="32"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="unfinished">MusE: Modifica el timpo de puerta</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="obsolete">MusE: Modifica el timpo de puerta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Rango</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Todos los eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Eventos en bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Seleccionados y en bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Valores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Velocidad:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Desplazamiento:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Global Settings</source>
+ <translation type="obsolete">MusE: Valores globales</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mezclador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min. Meter Value</source>
+ <translation type="obsolete">valor m�imo del vumeter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min.Slider Val</source>
+ <translation type="obsolete">valor m�imo del desplazador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ticks</source>
+ <translation type="obsolete">Ticks</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8172</source>
+ <translation type="obsolete">8172</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation type="obsolete">Resoluci� mostrada
+(ticks/negra)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>48</source>
+ <translation type="obsolete">48</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>768</source>
+ <translation type="obsolete">768</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1536</source>
+ <translation type="obsolete">1536</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3072</source>
+ <translation type="obsolete">3072</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6144</source>
+ <translation type="obsolete">6144</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12288</source>
+ <translation type="obsolete">12288</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation type="obsolete">Resoluci� del reloj
+(Ticks/segundo)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/sec</source>
+ <translation type="obsolete">/seg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI Refresh Rate</source>
+ <translation type="obsolete">Velocidad de refresco del GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Ok</source>
+ <translation type="obsolete">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help Browser:</source>
+ <translation type="obsolete">Navegador de ayuda:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arreglador</translation>
+ </message>
+</context>
+<context>
+ <name>GreendotButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="49"/>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+</context>
+<context>
+ <name>IIWUGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Formulario1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soundfont</source>
+ <translation type="obsolete">Fuente de sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+</context>
+<context>
+ <name>IIWUSynthGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>IIWU Synth</source>
+ <translation type="obsolete">Sintetizador IIWU</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Gain</source>
+ <translation type="obsolete">Ganancia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Room Size</source>
+ <translation type="obsolete">Tama� estancia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Damping</source>
+ <translation type="obsolete">Amortiguamiento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Level</source>
+ <translation type="obsolete">Nivel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Width</source>
+ <translation type="obsolete">Anchura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Depth</source>
+ <translation type="obsolete">Profundidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Number</source>
+ <translation type="obsolete">Nmero</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Seno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Tri�gulo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reverb</source>
+ <translation type="obsolete">Reverberaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Chorus</source>
+ <translation type="obsolete">Coro ;-)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pop</source>
+ <translation type="obsolete">Pop 8-?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Push</source>
+ <translation type="obsolete">Empuje</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show iiwusynth controls</source>
+ <translation type="obsolete">mostrar controles del sintetizador iiwu</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new tempo</source>
+ <translation type="obsolete">nuevo tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new signature</source>
+ <translation type="obsolete">nuevo comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meter</source>
+ <translation type="obsolete">Metr�omo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="obsolete">MusE: Pista maestra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo</source>
+ <translation type="obsolete">Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Timesig</source>
+ <translation type="obsolete">comp�</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List Tools</source>
+ <translation type="obsolete">Lista de herramientas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tools</source>
+ <translation type="obsolete">Insertar herramientas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Borrar eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insertar nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Note</source>
+ <translation type="obsolete">insertar Nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert SysEx</source>
+ <translation type="obsolete">insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insertar controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Ctrl</source>
+ <translation type="obsolete">insertar controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insertar Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Meta</source>
+ <translation type="obsolete">insertar Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Pitch</source>
+ <translation type="obsolete">Insertar Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Pitch</source>
+ <translation type="obsolete">insertar Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Channel Aftertouch</source>
+ <translation type="obsolete">insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de tecla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Poly Aftertouch</source>
+ <translation type="obsolete">insertar AfterTouch Polif�ico</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tick</source>
+ <translation type="obsolete">Tick</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Typ</source>
+ <translation type="obsolete">Tip</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Cn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val A</source>
+ <translation type="obsolete">Val A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val B</source>
+ <translation type="obsolete">Val B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val C</source>
+ <translation type="obsolete">Val C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Lon</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment</source>
+ <translation type="obsolete">Comentario</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="46"/>
+ <source>MusE: List Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="141"/>
+ <source>Parts</source>
+ <translation type="unfinished">Partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="157"/>
+ <source>Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation type="obsolete">MusE: Plugin de entrada MIDI : Transposici�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">Encendido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TriggerKey</source>
+ <translation type="obsolete">Tecla de salto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose:</source>
+ <translation type="obsolete">Trasponer:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>+0</source>
+ <translation type="obsolete">+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">ninguno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other raw ...</source>
+ <translation type="obsolete">otro crudo (raw) ...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Port Table</source>
+ <translation type="obsolete">MusE: Tabla de puertos MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec</source>
+ <translation type="obsolete">Grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Name</source>
+ <translation type="obsolete">Nombre de dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State</source>
+ <translation type="obsolete">Estado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>unknown</source>
+ <translation type="obsolete">desconocido</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation type="obsolete">MusE: Pluginde entrada MIDI : Control remoto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Activate</source>
+ <translation type="obsolete">Activar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">Encendido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Actions</source>
+ <translation type="obsolete">Acciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Parar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Goto Left Mark</source>
+ <translation type="obsolete">Ir ala marca izquierda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Reproducir</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">escala de compases</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="170"/>
+ <source>Bar:Beat:Tick</source>
+ <translation type="unfinished">Barra:Golpe:Tick</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation type="obsolete">Hr:Mn:Sg:Fr:Sf</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Lock</source>
+ <translation type="unfinished">Bloquear</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Text</source>
+ <translation type="unfinished">Texto</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="184"/>
+ <source>Marker Properties</source>
+ <translation type="unfinished">Propiedades del marcador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="126"/>
+ <source>MusE: Marker</source>
+ <translation type="unfinished">MusE: Marcador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="129"/>
+ <source>add marker</source>
+ <translation type="unfinished">a�dir marcador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="130"/>
+ <source>Add Marker</source>
+ <translation type="unfinished">A�dir marcador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete marker</source>
+ <translation type="obsolete">borrar marcador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Marker</source>
+ <translation type="obsolete">Borrar Marcador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="139"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="144"/>
+ <source>marker-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="148"/>
+ <source>edit tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="171"/>
+ <source>Min:Sc:Fr:Sf</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="72"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="80"/>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="87"/>
+ <source>time at cursor position</source>
+ <translation type="unfinished">tiempo en la posici� del cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="88"/>
+ <source>tempo at cursor position</source>
+ <translation type="unfinished">tempo en la posici� del cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="91"/>
+ <source>CurPos </source>
+ <translation type="unfinished">Posici� del cursor </translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="97"/>
+ <source>tempo at current position</source>
+ <translation type="unfinished">tempo en la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="98"/>
+ <source>time signature at current position</source>
+ <translation type="unfinished">comp� en la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="49"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished">Muse: Pista Maestra</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="52"/>
+ <source>edit tools</source>
+ <translation type="unfinished">editar herramientas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>EnableMaster</source>
+ <translation type="obsolete">Habilitar maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">usar pista maestra</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="69"/>
+ <source>Info</source>
+ <translation type="unfinished">Info</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Apagado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="61"/>
+ <source>EnableTempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="62"/>
+ <source>Tempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="64"/>
+ <source>Enable use of tempo map</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Metronome Config</source>
+ <translation type="obsolete">MusE: Configuraci� del metr�omo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Metr�omo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Beep</source>
+ <translation type="obsolete">Bip de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MIDI Click</source>
+ <translation type="obsolete">Click MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Channel</source>
+ <translation type="obsolete">Canal MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Note</source>
+ <translation type="obsolete">Nota de comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Velocity</source>
+ <translation type="obsolete">Velocidad de comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Velocity</source>
+ <translation type="obsolete">Velocidad de barra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Note</source>
+ <translation type="obsolete">Nota de barra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port</source>
+ <translation type="obsolete">Puerto MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Precount</source>
+ <translation type="obsolete">Cuenta atr�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable</source>
+ <translation type="obsolete">habilitada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars</source>
+ <translation type="obsolete">Compases</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>From Mastertrack</source>
+ <translation type="obsolete">desde la pista Mestra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Signature</source>
+ <translation type="obsolete">comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Prerecord</source>
+ <translation type="obsolete">pre-grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preroll</source>
+ <translation type="obsolete">pre-escucha</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiChannelInfo</name>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <location filename="../../muse/midictrl.cpp" line="190"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Velocidad</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: save midi controller list</source>
+ <translation type="obsolete">MusE: guardar lista de controladores MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load midi controller list</source>
+ <translation type="obsolete">MusE: Cargar lista de controladores MIDI</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="obsolete">MusE: Define controlador MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>replace controller set</source>
+ <translation type="obsolete">reemplazar conjunto de controladores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>merge controller set</source>
+ <translation type="obsolete">unir conjunto de controladores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save controller set as</source>
+ <translation type="obsolete">guardar conjunto de controladores como</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Nombre </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Tipo </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Ctrl</source>
+ <translation type="obsolete">Control-H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Ctrl</source>
+ <translation type="obsolete">Control-L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Valor m�imo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">Valor m�imo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">lista de controladores definidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Esta es la lista de controladores definidos por MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">Propiedades</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Value</source>
+ <translation type="obsolete">Valor m�imo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Value</source>
+ <translation type="obsolete">Valor m�imo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control7</source>
+ <translation type="obsolete">Control7 :-?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control14</source>
+ <translation type="obsolete">Control14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG-SysEx</source>
+ <translation type="obsolete">Sys-Ex-XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>SysEx</source>
+ <translation type="obsolete">Sistema Exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">crear entrada nueva</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">pulsando el bot� se crear�una nueva
+clase de controladores en la lista de MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">borra la clase seleccionada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Rango</translation>
+ </message>
+</context>
+<context>
+ <name>MidiEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="47"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Pegar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="65"/>
+ <source>Play Events</source>
+ <translation type="unfinished">Reproducir eventos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="70"/>
+ <source>Step Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="76"/>
+ <source>Midi Input</source>
+ <translation type="unfinished">Entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="81"/>
+ <source>Follow Song</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Habilita el formato extendido de smf</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Division</source>
+ <translation type="obsolete">Divisi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copyright</source>
+ <translation type="obsolete">Copyright</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config exported Midi Files</source>
+ <translation type="obsolete">Configurar archivos MIDI exportados</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config exported Midi Files</source>
+ <translation type="obsolete">MusE: configurar archivos MIDi exportados</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="obsolete">MusE: Filtro de entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record Filter</source>
+ <translation type="obsolete">Filtro de grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On</source>
+ <translation type="obsolete">Nota on</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Presi� polif�ica</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Caontrolador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program Change</source>
+ <translation type="obsolete">Cambio de programa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">After Touch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Rueda de bend</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">Sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thru Filter</source>
+ <translation type="obsolete">Filtro Thru</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller Filter</source>
+ <translation type="obsolete">Filtrar controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Filter</source>
+ <translation type="obsolete">Filtro de canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>14</source>
+ <translation type="obsolete">14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>10</source>
+ <translation type="obsolete">10</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6</source>
+ <translation type="obsolete">6</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12</source>
+ <translation type="obsolete">12</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>9</source>
+ <translation type="obsolete">9</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8</source>
+ <translation type="obsolete">8</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>13</source>
+ <translation type="obsolete">13</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>15</source>
+ <translation type="obsolete">15</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>16</source>
+ <translation type="obsolete">16</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>7</source>
+ <translation type="obsolete">7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>11</source>
+ <translation type="obsolete">11</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5</source>
+ <translation type="obsolete">5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="999"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1035"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1015"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Nueva</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Transformator</source>
+ <translation type="obsolete">MusE: Transformador de entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filtrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Igual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Diferente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Presi� poif�ica</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Cambio de control</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">AfterTouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Rueda de modulaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Valor 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Valor 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Tipo de Evento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignorar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Mayor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Menor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Fuera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Procesando</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Mantener</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Arreglar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">M�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">Menos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Dividir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ScaleMap</source>
+ <translation type="obsolete">Mapa de escalado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">cambiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dyn</source>
+ <translation type="obsolete">Din�ico</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Aleatorio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modules</source>
+ <translation type="obsolete">M�ulos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 1</source>
+ <translation type="obsolete">habilitar m�ulo 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 2</source>
+ <translation type="obsolete">habilitar m�ulo 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 3</source>
+ <translation type="obsolete">habilitar m�ulo 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 4</source>
+ <translation type="obsolete">habilitar m�ulo 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Preselecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Nombre:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Comentario:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">Funci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nueva</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new preset</source>
+ <translation type="obsolete">crea nueva preselecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">borra la preselecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Dismiss</source>
+ <translation type="obsolete">&amp;Ocultar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">Lista de Preselecciones</translation>
+ </message>
+</context>
+<context>
+ <name>MidiOutPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="784"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="801"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="820"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiPluginDialog</name>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="539"/>
+ <source>MusE: select midi plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>File</source>
+ <translation type="unfinished">Archivo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="570"/>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="571"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input</source>
+ <translation type="obsolete">Entrada</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRack</name>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="51"/>
+ <source>midi effect rack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="96"/>
+ <source>move up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="97"/>
+ <source>move down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="98"/>
+ <source>remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="99"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="100"/>
+ <source>show gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="101"/>
+ <source>new</source>
+ <translation type="unfinished">nuevo</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: raw midi device configuration</source>
+ <translation type="obsolete">NusE: Condifuraci� de dispositivo MIDI directo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device</source>
+ <translation type="obsolete">Dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt. Ports</source>
+ <translation type="obsolete">Puertos virtuales</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Handshaking</source>
+ <translation type="obsolete">Control de flujo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Properties</source>
+ <translation type="obsolete">Propiedades del dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt.Ports</source>
+ <translation type="obsolete">Ports Virtuales</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Raw Device</source>
+ <translation type="obsolete">Dispositivo directo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Serial Port</source>
+ <translation type="obsolete">Puerto s�ie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pipe</source>
+ <translation type="obsolete">Tuberia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Path</source>
+ <translation type="obsolete">Direcci� del dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>9600</source>
+ <translation type="obsolete">9600</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>19200</source>
+ <translation type="obsolete">19200</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>38400</source>
+ <translation type="obsolete">38400</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ninguno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTS/CTS</source>
+ <translation type="obsolete">RTS/CTS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Xon/Xoff</source>
+ <translation type="obsolete">Xon/Xoff</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>Var</source>
+ <translation type="unfinished">Var</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>Rev</source>
+ <translation type="unfinished">Rev</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>Cho</source>
+ <translation type="unfinished">Cho</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan</source>
+ <translation type="unfinished">Bal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silencio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="499"/>
+ <source>Tracks</source>
+ <translation type="unfinished">Pistas</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="511"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Sync</source>
+ <translation type="obsolete">MusE: Sincronizaci� MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>hour</source>
+ <translation type="obsolete">hora</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>h</source>
+ <translation type="obsolete">h</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>minute</source>
+ <translation type="obsolete">minuto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>m</source>
+ <translation type="obsolete">m</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>second</source>
+ <translation type="obsolete">segundo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>s</source>
+ <translation type="obsolete">s</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>frame</source>
+ <translation type="obsolete">frame</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>f</source>
+ <translation type="obsolete">f</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>subframe</source>
+ <translation type="obsolete">sub-frame</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>24</source>
+ <translation type="obsolete">24</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>25</source>
+ <translation type="obsolete">25</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>30D</source>
+ <translation type="obsolete">30D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>30N</source>
+ <translation type="obsolete">30N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Id:</source>
+ <translation type="obsolete">Id:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>device id</source>
+ <translation type="obsolete">id de dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port:</source>
+ <translation type="obsolete">Puerto:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi port</source>
+ <translation type="obsolete">puerto MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Source</source>
+ <translation type="obsolete">Fuente de Sincronizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept MTC</source>
+ <translation type="obsolete">aceptar MTC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept Midi Clock</source>
+ <translation type="obsolete">aceptar MIDI clock</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept MMC</source>
+ <translation type="obsolete">aceptar MMC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Gen</source>
+ <translation type="obsolete">Generar Sync</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Time Code (MTC)</source>
+ <translation type="obsolete">C�igo de Tiempo Midi (MTC)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Clock</source>
+ <translation type="obsolete">Reloj Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Machine Control (MMC)</source>
+ <translation type="obsolete">Control de m�uina MIDI (MMC)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Mode</source>
+ <translation type="obsolete">Modo de sincronizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Slave</source>
+ <translation type="obsolete">Esclavo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MTC</source>
+ <translation type="obsolete">MTC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type:</source>
+ <translation type="obsolete">Tipo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Desplazamiento:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyntiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1274"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1281"/>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1312"/>
+ <source>Input Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTimeDelegate</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="143"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="147"/>
+ <source>Midi Port</source>
+ <translation type="unfinished">Puerto MIDI</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: Informaci� de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">canal de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all midi events are send to this output channel</source>
+ <translation type="obsolete">todos los eventos MIDI se envian a �te canal de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Informaci� de Pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nombre de Pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">puerto de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change stereo position</source>
+ <translation type="obsolete">cambiar posici� estereof�ica</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OCh.</source>
+ <translation type="obsolete">OCh.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MidiThru</source>
+ <translation type="obsolete">Midi Thru</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>???</source>
+ <translation type="obsolete">???</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select instrument patch</source>
+ <translation type="obsolete">selecciona el grupo de instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transp.</source>
+ <translation type="obsolete">Transposici�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volumen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Info</source>
+ <translation type="obsolete">Informaci� de Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pan</source>
+ <translation type="obsolete">Balance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delay</source>
+ <translation type="obsolete">Delay</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Bank</source>
+ <translation type="obsolete">Banco-H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Compr.</source>
+ <translation type="obsolete">Compr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Bank</source>
+ <translation type="obsolete">Banco-L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Progr.</source>
+ <translation type="obsolete">Progr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input ports</source>
+ <translation type="obsolete">puertos de entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>IChan.</source>
+ <translation type="obsolete">Canal de entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input channels</source>
+ <translation type="obsolete">Canales de entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events from all configured channels are
+recorded to this track.
+You can specify more than one channel for
+recording:
+ 1 2 3 record from channel 1 2 and 3
+ 1-3 same
+ 1-3 5<byte value="x9"/> record from channel 1 2 3 and 5</source>
+ <translation type="obsolete">Los eventos de todos los canales configurados
+se graban en esta pista.
+Puedes especificar m� de un canal para grabar:
+ 1 2 3<byte value="x9"/>Graba desde los canales 1, 2 y 3
+ 1-3<byte value="x9"/><byte value="x9"/>Lo mismo
+ 1-3 5<byte value="x9"/>Graba desde los canales 1, 2, 3 y 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec</source>
+ <translation type="obsolete">Grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Port</source>
+ <translation type="obsolete">Puerto de salida</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackerEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="27"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="32"/>
+ <source>MidiTracker Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="51"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="55"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="64"/>
+ <source>row features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="87"/>
+ <source>Number of visible rows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="66"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Cuantizar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Transformator</source>
+ <translation type="obsolete">MusE: Transformador MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nueva</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">Lista de preselecciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Procesando</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Tipo de evento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Mantener</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Arreglar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Presi� polif�ica</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Cambio de control</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">AfterTouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Rueda de modulaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">M�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">Menos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Dividir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Valor 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ScaleMap</source>
+ <translation type="obsolete">Escalado de mapa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">Cambiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dyn</source>
+ <translation type="obsolete">Dyn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Aleatorio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Valor 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Position</source>
+ <translation type="obsolete">Posici�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filtro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Igual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Diferente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignora</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Mayor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Menor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Fuera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar Range</source>
+ <translation type="obsolete">Rango de compases</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Preselecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Nombre:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Comentario:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Rango</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>process all events</source>
+ <translation type="obsolete">procesar todos los eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected tracks</source>
+ <translation type="obsolete">seleccionar pistas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>inside loop</source>
+ <translation type="obsolete">dentro de bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">Funci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select</source>
+ <translation type="obsolete">Seleccionar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize</source>
+ <translation type="obsolete">Cuantizar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete</source>
+ <translation type="obsolete">Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transform</source>
+ <translation type="obsolete">Transformar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert</source>
+ <translation type="obsolete">Insertar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Extract</source>
+ <translation type="obsolete">Extraer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize Value</source>
+ <translation type="obsolete">Cuantizar valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">Sistema exclusivo</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="205"/>
+ <source>New</source>
+ <translation type="unfinished">Nueva</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="129"/>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation type="unfinished">Archivos de onda (*.wav);;Todos los archivos(*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="126"/>
+ <source>MusE: set mixdown file name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation type="obsolete">MusE: Selecciona el archivo de Masterizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Path</source>
+ <translation type="obsolete">Directorio del archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo</source>
+ <translation type="obsolete">Est�eo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mono</source>
+ <translation type="obsolete">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5.1</source>
+ <translation type="obsolete">5.1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav,16 Bit</source>
+ <translation type="obsolete">wav, 16 bits</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav, 24 Bit</source>
+ <translation type="obsolete">wav, 24 bits</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav, 32 Bit (float)</source>
+ <translation type="obsolete">wav, 32 bits</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Format</source>
+ <translation type="obsolete">Formato</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mute</source>
+ <translation type="obsolete">Silencio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Mixer</source>
+ <translation type="obsolete">MusE: MExclador MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rev</source>
+ <translation type="obsolete">Rev</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cho</source>
+ <translation type="obsolete">Cho</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Var</source>
+ <translation type="obsolete">Var</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pan</source>
+ <translation type="obsolete">Bal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Puerto</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="46"/>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="49"/>
+ <source>&amp;Create</source>
+ <translation type="unfinished">&amp;Crear</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="52"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="53"/>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="56"/>
+ <source>Show Midi Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="57"/>
+ <source>Show Midi Out Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="58"/>
+ <source>Show Midi In Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="62"/>
+ <source>Show Wave Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="63"/>
+ <source>Show Output Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="64"/>
+ <source>Show Group Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="65"/>
+ <source>Show Input Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="66"/>
+ <source>Show Synthesizer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="616"/>
+ <source>Open &amp;Recent</source>
+ <translation type="unfinished">Abrir &amp;Recientes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As</source>
+ <translation type="obsolete">Guardar c&amp;omo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">Configurar &amp;Impresi�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="629"/>
+ <source>Import Midifile</source>
+ <translation type="unfinished">Importar archivo MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="631"/>
+ <source>Export Midifile</source>
+ <translation type="unfinished">Exportar archivo MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="865"/>
+ <source>Import Wave File</source>
+ <translation type="unfinished">Importar archivo de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="649"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">C&amp;ortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">&amp;Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Borrar pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="666"/>
+ <source>Add Track</source>
+ <translation type="unfinished">A�dir Pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">Seleccion&amp;ar Todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">&amp;Deseleccionar Todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">Invertir &amp;Selecci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">&amp;Interior de bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">&amp;Exterior de Bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="obsolete">Todas las &amp;Partes de la pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="672"/>
+ <source>Select</source>
+ <translation type="unfinished">Seleccionar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drums</source>
+ <translation type="obsolete">Percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List</source>
+ <translation type="obsolete">Lista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Graphic</source>
+ <translation type="obsolete">Gr�ico</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mastertrack</source>
+ <translation type="obsolete">Pista Maestra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi &amp;Transform</source>
+ <translation type="obsolete">&amp;Transformaci� MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="703"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modificar el tiempo de puerta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="704"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modificar Velocidad</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="705"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="717"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="707"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Adelgazar? (Thin Out)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="708"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Borrar Evento</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="709"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Desplazamiento de nota</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="710"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Mover reloj</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="711"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copiar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="712"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Vaciar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="713"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Borrar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="714"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Crear comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="715"/>
+ <source>Mix Track</source>
+ <translation type="unfinished">Mezclar pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="700"/>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="755"/>
+ <source>&amp;Structure</source>
+ <translation type="unfinished">E&amp;structura</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="757"/>
+ <source>Global Cut</source>
+ <translation type="unfinished">Corte global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="760"/>
+ <source>Global Insert</source>
+ <translation type="unfinished">Inserci� Global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="763"/>
+ <source>Global Split</source>
+ <translation type="unfinished">Partici� Global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="766"/>
+ <source>Copy Range</source>
+ <translation type="unfinished">Copiar Rango</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="772"/>
+ <source>Cut Events</source>
+ <translation type="unfinished">Cortar eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Display</source>
+ <translation type="obsolete">&amp;Mostrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport Panel</source>
+ <translation type="obsolete">Panel de transporte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bigtime window</source>
+ <translation type="obsolete">ventana BigTime</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="818"/>
+ <source>dont follow Song</source>
+ <translation type="unfinished">no sigas la canci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="821"/>
+ <source>follow page</source>
+ <translation type="unfinished">sigue la p�ina</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="824"/>
+ <source>follow continuous</source>
+ <translation type="unfinished">sigue cont�uamente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global Settings</source>
+ <translation type="obsolete">Selecciones Globales</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="816"/>
+ <source>follow song</source>
+ <translation type="unfinished">seguir canci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Metr�omo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="833"/>
+ <source>Midi Sync</source>
+ <translation type="unfinished">Sincronizaci� MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi File Config</source>
+ <translation type="obsolete">Configuraci� de archivos MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Appearance settings</source>
+ <translation type="obsolete">Selecciones de apariencia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Sintetizador virtual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Ports</source>
+ <translation type="obsolete">Puertos MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio System</source>
+ <translation type="obsolete">Sistema de Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Configuration</source>
+ <translation type="obsolete">Guardar configuraci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Transform</source>
+ <translation type="obsolete">Transformaci� de entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Filter</source>
+ <translation type="obsolete">Filtrado de entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Remote Control</source>
+ <translation type="obsolete">Control remoto MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random Rhythm Generator</source>
+ <translation type="obsolete">generador aleatorio de ritmos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="780"/>
+ <source>&amp;Midi</source>
+ <translation type="unfinished">&amp;MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mezclador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Define Controller</source>
+ <translation type="obsolete">Define Controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input Plugins</source>
+ <translation type="obsolete">Plugins e entrada</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="786"/>
+ <source>Reset Instr.</source>
+ <translation type="unfinished">Reinicializa Instrumento</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="788"/>
+ <source>Init Instr.</source>
+ <translation type="unfinished">Inicializa Instruemnto</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="790"/>
+ <source>local off</source>
+ <translation type="unfinished">apagado local</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="797"/>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">&amp;Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cliplist</source>
+ <translation type="obsolete">Lista de Clips</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="799"/>
+ <source>Bounce to Track</source>
+ <translation type="unfinished">Rebotar a pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="802"/>
+ <source>Bounce to File</source>
+ <translation type="unfinished">Rebotar a Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bounce</source>
+ <translation type="obsolete">Rebotar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="846"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">A&amp;yuda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Browser</source>
+ <translation type="obsolete">Navegador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Acerca de</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="859"/>
+ <source>About&amp;Qt</source>
+ <translation type="unfinished">Acerca de &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>What&apos;s &amp;This</source>
+ <translation type="obsolete">Qu�es esto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load project</source>
+ <translation type="obsolete">MusE: Carga proyecto</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1375"/>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation type="unfinished">El proyecto actual contiene datos no guardados
+Guardamos el proyecto actual?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Guardar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">&amp;No Guardar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Abortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Save As</source>
+ <translation type="obsolete">MusE: Guardar como</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="128"/>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: Importar MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Export Midi</source>
+ <translation type="obsolete">MusE: Exportar MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1657"/>
+ <source>Nothing to edit</source>
+ <translation type="unfinished">Nada para editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation type="obsolete">El proyecto actual contine datos no guardados
+Cargar sobreescribe el proyecto actual:
+Guardar el proyecto actual?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Overwrite</source>
+ <translation type="obsolete">S&amp;obre escribir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>no help found at: </source>
+ <translation type="obsolete">no se ha encontrado ayuda en: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="40"/>
+ <source>MusE: Open Help</source>
+ <translation type="unfinished">MusE: Abre ayuda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to import a audio file you have first to selecta audio track</source>
+ <translation type="obsolete">para importar un archivo de audio tienes que tener seleccionada una pista de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>UndoRedo</source>
+ <translation type="obsolete">Deshacer/Rehacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo</source>
+ <translation type="obsolete">deshacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Und&amp;o</source>
+ <translation type="obsolete">&amp;Deshacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo</source>
+ <translation type="obsolete">rehacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Re&amp;do</source>
+ <translation type="obsolete">&amp;Rehacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo last change to song</source>
+ <translation type="obsolete">deshace el ltimo cambio en la canci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo last undo</source>
+ <translation type="obsolete">rehace el ltimo deshacer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="588"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transporte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">pinchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchin</source>
+ <translation type="obsolete">Pinchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">fin pinchado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchout</source>
+ <translation type="obsolete">Fin pinchado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start</source>
+ <translation type="obsolete">empezar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">Empezar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">retroceder</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rewind</source>
+ <translation type="obsolete">Retroceder</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">avanzar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Forward</source>
+ <translation type="obsolete">Avanzar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">parar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Parar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">reproducir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Reproducir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>panic</source>
+ <translation type="obsolete">p�ico</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="591"/>
+ <source>Panic</source>
+ <translation type="unfinished">P�ico</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>open</source>
+ <translation type="obsolete">abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open</source>
+ <translation type="obsolete">&amp;Abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save</source>
+ <translation type="obsolete">guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pianoroll</source>
+ <translation type="obsolete">pianola</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pianoroll</source>
+ <translation type="obsolete">Pianola</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Score</source>
+ <translation type="obsolete">Partitura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>marker</source>
+ <translation type="obsolete">marcador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Marker</source>
+ <translation type="obsolete">Marcador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Buttons</source>
+ <translation type="obsolete">Botones de Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown File Format</source>
+ <translation type="obsolete">Formato de archivo desconocido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">ninguno</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1287"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: La grabaci� del archivo ha fallado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: About</source>
+ <translation type="obsolete">Muse: Acerca de</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Song: </source>
+ <translation type="obsolete">MusE: Canci�: </translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="307"/>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">leyendo archivo midi
+ </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>
+failed</source>
+ <translation type="obsolete">
+fall�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2407"/>
+ <source>MusE: Copy Range</source>
+ <translation type="unfinished">MusE: Copiar Rango</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2424"/>
+ <source>not implemented</source>
+ <translation type="unfinished">no implementado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2422"/>
+ <source>MusE: Cut Events</source>
+ <translation type="unfinished">MusE: Cortar Eventos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2497"/>
+ <source>MusE: Bounce to Track</source>
+ <translation type="unfinished">MusE: Rebotar a la pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2482"/>
+ <source>more than one target track selected</source>
+ <translation type="unfinished">m� de una pista de destino seleccionada</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2489"/>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation type="unfinished">tipo de pista err�ea,
+selecciona una pista de audio como destino</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2499"/>
+ <source>no target track selected</source>
+ <translation type="unfinished">no hay pista de destino seleccionada</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="309"/>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+fall� </translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="870"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arreglador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="872"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="881"/>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="909"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="918"/>
+ <source>midi pitch</source>
+ <translation type="unfinished">tono midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="919"/>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished">desplazamiento de tono midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="922"/>
+ <source>Tempo</source>
+ <translation type="unfinished">Tempo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="933"/>
+ <source>midi tempo</source>
+ <translation type="unfinished">tempo midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="945"/>
+ <source>N</source>
+ <translation type="unfinished">N</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="38"/>
+ <source>MusE manual not found at: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="857"/>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="190"/>
+ <source>Failed to start audio!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="191"/>
+ <source>Was not able to start audio, check if jack is running.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="574"/>
+ <source>Project Buttons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="612"/>
+ <source>&amp;Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="663"/>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="693"/>
+ <source>Project Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="724"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="782"/>
+ <source>Edit Instrument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="805"/>
+ <source>Restart Audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="812"/>
+ <source>Setti&amp;ngs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="813"/>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="835"/>
+ <source>Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="838"/>
+ <source>Preferences</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="848"/>
+ <source>&amp;Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="850"/>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="853"/>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="856"/>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="863"/>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="894"/>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1330"/>
+ <source>MusE: new project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1333"/>
+ <source>Cannot create project folder &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1182"/>
+ <source>Cannot open template file
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1189"/>
+ <source>File &lt;%1&gt; read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1279"/>
+ <source>MusE: Create tmp file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2438"/>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2440"/>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2524"/>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2526"/>
+ <source>no output track found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="146"/>
+ <source>MusE: import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">retrocede a la posici� de inicio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">inicia el secuenciador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+</context>
+<context>
+ <name>MuseApplication</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="52"/>
+ <source>Transport: Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="56"/>
+ <source>Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="57"/>
+ <source>rewind to start position</source>
+ <translation type="unfinished">retrocede a la posici� de inicio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="62"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="66"/>
+ <source>Loop</source>
+ <translation type="unfinished">Bucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="67"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="unfinished">hace un bucle entre las marcas de izquierda y derecha</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="72"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="76"/>
+ <source>Play</source>
+ <translation type="unfinished">Reproducir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="77"/>
+ <source>start sequencer play</source>
+ <translation type="unfinished">inicia el secuenciador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="82"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="89"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="93"/>
+ <source>Stop</source>
+ <translation type="unfinished">Parar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="94"/>
+ <source>stop sequencer</source>
+ <translation type="unfinished">para el secuenciador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="99"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="105"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="111"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="117"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="121"/>
+ <source>Record</source>
+ <translation type="unfinished">Grabar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="122"/>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">para grabar pulsa grabar y despu� reproducir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="128"/>
+ <source>Transport: Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="132"/>
+ <source>Punchin</source>
+ <translation type="unfinished">Pinchar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="133"/>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">la grabaci� comienza en la marca izquierda</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="138"/>
+ <source>Transport: Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="142"/>
+ <source>Punchout</source>
+ <translation type="unfinished">Fin pinchado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="143"/>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">la grabaci� termina en la merca derecha</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="148"/>
+ <source>Transport: Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="152"/>
+ <source>rewind</source>
+ <translation type="unfinished">retroceder</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="153"/>
+ <source>rewind current position</source>
+ <translation type="unfinished">retrasa la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="158"/>
+ <source>Transport: Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="162"/>
+ <source>forward</source>
+ <translation type="unfinished">avanzar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="163"/>
+ <source>move current position</source>
+ <translation type="unfinished">mueve la posici� actual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="172"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="173"/>
+ <source>send note off to all midi channels</source>
+ <translation type="unfinished">envia un apagado de nota (note off) a todos los canales midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="178"/>
+ <source>Edit: Undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="182"/>
+ <source>undo</source>
+ <translation type="unfinished">deshacer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="183"/>
+ <source>undo last change to song</source>
+ <translation type="unfinished">deshace el ltimo cambio en la canci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="188"/>
+ <source>Edit: Redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="192"/>
+ <source>redo</source>
+ <translation type="unfinished">rehacer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="193"/>
+ <source>redo last undo</source>
+ <translation type="unfinished">rehace el ltimo deshacer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="198"/>
+ <source>Edit: Cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="203"/>
+ <source>Cut</source>
+ <translation type="unfinished">Cortar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="208"/>
+ <source>Edit: Copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="213"/>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="218"/>
+ <source>Edit: Paste,</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="223"/>
+ <source>Paste</source>
+ <translation type="unfinished">Pegar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="228"/>
+ <source>Edit: Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="233"/>
+ <source>Delete</source>
+ <translation type="unfinished">Borrar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="238"/>
+ <source>Open</source>
+ <translation type="unfinished">Abrir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="242"/>
+ <source>open project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="244"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="249"/>
+ <source>Save</source>
+ <translation type="unfinished">Guardar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="253"/>
+ <source>save project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="255"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="260"/>
+ <source>File: Save as</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="264"/>
+ <source>save project as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="266"/>
+ <source>Click this button to save a new copy of the project.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="270"/>
+ <source>File: Save as Template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="274"/>
+ <source>save project as template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="276"/>
+ <source>Click this button to save the project you are editing
+for later use as a template.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="281"/>
+ <source>File: Open recent file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="287"/>
+ <source>File: Import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="293"/>
+ <source>File: Export midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="299"/>
+ <source>File: Import audio file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="305"/>
+ <source>File: Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="310"/>
+ <source>Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="316"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="321"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Todas las &amp;Partes de la pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="326"/>
+ <source>Open Pianoroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="330"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianola</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="331"/>
+ <source>Start Pianoroll Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="336"/>
+ <source>Open MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="340"/>
+ <source>MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="341"/>
+ <source>Start Midi Tracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="346"/>
+ <source>Open drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="350"/>
+ <source>Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="351"/>
+ <source>Start Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="356"/>
+ <source>Open wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="361"/>
+ <source>Wave Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="366"/>
+ <source>Open listeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="370"/>
+ <source>Properties</source>
+ <translation type="unfinished">Propiedades</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="371"/>
+ <source>open Properties Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="376"/>
+ <source>Open mastertrack editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="380"/>
+ <source>Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="381"/>
+ <source>Start Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="386"/>
+ <source>Add midi track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="392"/>
+ <source>Add drum track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="398"/>
+ <source>Add wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="404"/>
+ <source>Add audio output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="410"/>
+ <source>Add audio group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="416"/>
+ <source>Add audio input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="422"/>
+ <source>Structure: Global cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="428"/>
+ <source>Structure: Global insert</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="434"/>
+ <source>Structure: Global split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="440"/>
+ <source>Structure: Copy range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="446"/>
+ <source>Structure: Cut events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="452"/>
+ <source>View: Open mixer 1 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="456"/>
+ <source>Mixer1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="457"/>
+ <source>Show Mixer 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="462"/>
+ <source>View: Open mixer 2 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="466"/>
+ <source>Mixer2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="467"/>
+ <source>Show Mixer 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="472"/>
+ <source>View: Toggle transport window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="476"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="477"/>
+ <source>Show Transport Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="482"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="486"/>
+ <source>BigTime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="487"/>
+ <source>Show BigTime Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="492"/>
+ <source>View: Open marker window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="496"/>
+ <source>Marker</source>
+ <translation type="unfinished">Marcador</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="497"/>
+ <source>Show Marker List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="502"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="508"/>
+ <source>Settings: Follow song off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="514"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="520"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="526"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="532"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="538"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="544"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="550"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="556"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="562"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="568"/>
+ <source>Midi: Reset midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="574"/>
+ <source>Midi: Init midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="580"/>
+ <source>Midi: Midi local off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="586"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="592"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="598"/>
+ <source>Audio: Restart audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="604"/>
+ <source>Help: Open Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="610"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="616"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="622"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="628"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="634"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="640"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="646"/>
+ <source>Midi: Transpose</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="651"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="654"/>
+ <source>Edit: Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="659"/>
+ <source>Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="664"/>
+ <source>Edit: Select none</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="669"/>
+ <source>Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="674"/>
+ <source>Edit: Invert selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="679"/>
+ <source>Invert Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="684"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="689"/>
+ <source>Select Inside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="694"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="699"/>
+ <source>Select Outside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="716"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="710"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="722"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="728"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="734"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="740"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="746"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="751"/>
+ <source>Set fixed length</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="754"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="759"/>
+ <source>Over Quantize</source>
+ <translation type="unfinished">Sobre cuantizar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="762"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="767"/>
+ <source>Note On Quantize</source>
+ <translation type="unfinished">Cuantizar inicio de nota</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="770"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="775"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished">Cuantizar inicio y final de nota</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="778"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="783"/>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished">Cuantizaci� iterativa</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="786"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="792"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="797"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifica el tiempo de puerta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="800"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="805"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifica la velocidad</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="808"/>
+ <source>Edit: Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="813"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="816"/>
+ <source>Edit: Thin Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="821"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Adelgazar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="824"/>
+ <source>Edit: Erase Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="829"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Borrar evento</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="832"/>
+ <source>Edit: Note Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="837"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Desplazar nota</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="840"/>
+ <source>Edit: Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="845"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Mover reloj</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="848"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="853"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copiar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="856"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="861"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Vaciar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="864"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="869"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Borrar comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="872"/>
+ <source>Edit: Create Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="877"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Crear comp�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="880"/>
+ <source>Edit: Change event color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="886"/>
+ <source>Tool: Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="890"/>
+ <source>Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="895"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="unfinished">selecciona la Herramienta de Puntero:
+con la herramienta de puntero puedes:
+ seleccionar partes
+ mover partes
+ copiar partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="900"/>
+ <source>Tool: Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="904"/>
+ <source>Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="908"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="unfinished">selecciona la Herramienta de L�iz:
+con la herramienta de l�iz puedes:
+ crear nuevas partes
+ modificar la longitud de las partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="913"/>
+ <source>Tool: Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="917"/>
+ <source>Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="919"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="unfinished">selecciona la Herramienta de Borrado:
+con la herramienta de borrado puedes borrar partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="924"/>
+ <source>Tool: Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="928"/>
+ <source>Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="930"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="unfinished">selecciona la Herramienta de Corte:
+con la herramienta de core puedes partir una parte</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="935"/>
+ <source>Tool: Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="939"/>
+ <source>Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="941"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="unfinished">selecciona la Herramienta de Pegado:
+con la herramienta de pegado puedes unir dos partes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="951"/>
+ <source>Declone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="954"/>
+ <source>Tool: Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="958"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Cuantizar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="960"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="unfinished">selecciona la Herramianta de Cuantizaci�:
+inserta un evento de cuantizaci� de visualizaci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="965"/>
+ <source>Tool: Line Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="969"/>
+ <source>Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="970"/>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished">selecciona la Herramienta de Dibujo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="975"/>
+ <source>Tool: Mute Parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="979"/>
+ <source>Mute</source>
+ <translation type="unfinished">Silencio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="981"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="unfinished">selecciona la Herramienta de Silenciar:
+haz click en una parte para silenciar/des-silenciar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="987"/>
+ <source>Transport: Increase current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="993"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="999"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1005"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1011"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1017"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1023"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1029"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1035"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1041"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1047"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1053"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1059"/>
+ <source>Insert</source>
+ <translation type="unfinished">Insertar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1065"/>
+ <source>Insert Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1071"/>
+ <source>Insert Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1077"/>
+ <source>Change Event Position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1083"/>
+ <source>Edit Event Value</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="38"/>
+ <source>Start</source>
+ <translation type="unfinished">Inicio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="47"/>
+ <source>Len</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="57"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="65"/>
+ <source>Velo On</source>
+ <translation type="unfinished">Velocidad On</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="74"/>
+ <source>Velo Off</source>
+ <translation type="unfinished">Velocidad Off</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="34"/>
+ <source>Note Info</source>
+ <translation type="unfinished">Informaci� de nota</translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Organ</source>
+ <translation type="obsolete">MusE: �gano</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Presets</source>
+ <translation type="obsolete">Preselecciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Set</source>
+ <translation type="obsolete">Pon</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>load preset list</source>
+ <translation type="obsolete">cargar lista de preselecciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list</source>
+ <translation type="obsolete">guardar lista de preselecciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>O-1</source>
+ <translation type="obsolete">0-1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Oscillator</source>
+ <translation type="obsolete">Oscilador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Brass</source>
+ <translation type="obsolete">Metales</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reed</source>
+ <translation type="obsolete">Reed</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flute</source>
+ <translation type="obsolete">Flauta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drawbars</source>
+ <translation type="obsolete">Drawbars</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>16&apos;</source>
+ <translation type="obsolete">16&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4&apos;</source>
+ <translation type="obsolete">4&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2 2/3&apos;</source>
+ <translation type="obsolete">2 2/3&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2&apos;</source>
+ <translation type="obsolete">2&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8&apos;</source>
+ <translation type="obsolete">8&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5 1/3&apos;</source>
+ <translation type="obsolete">5 1/3&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Envelope Lo</source>
+ <translation type="obsolete">Envolvente Lo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Attack(ms)</source>
+ <translation type="obsolete">Ataque (ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Decay(ms)</source>
+ <translation type="obsolete">Decaimiento (ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sustain(%)</source>
+ <translation type="obsolete">Sostenido (%)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Release(ms)</source>
+ <translation type="obsolete">Relajaci� (ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Envelope Hi</source>
+ <translation type="obsolete">Envolvente Hi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Release</source>
+ <translation type="obsolete">Relajaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sustain</source>
+ <translation type="obsolete">Sostenido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Decay</source>
+ <translation type="obsolete">Decaimiento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Attack</source>
+ <translation type="obsolete">Ataque</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+</context>
+<context>
+ <name>OutportCombo</name>
+ <message>
+ <location filename="../../muse/widgets/outportcombo.cpp" line="32"/>
+ <source>Midi Output Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paper Size</source>
+ <translation type="obsolete">Tama� del papel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>user</source>
+ <translation type="obsolete">usuario</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Margins</source>
+ <translation type="obsolete">M�genes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Header</source>
+ <translation type="obsolete">Cabecera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Title</source>
+ <translation type="obsolete">T�ulo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Author</source>
+ <translation type="obsolete">Autor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Tipos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Page No.</source>
+ <translation type="obsolete">P�ina n</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure No</source>
+ <translation type="obsolete">Comp� n</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nombre de Pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lyrics</source>
+ <translation type="obsolete">Letra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Layout</source>
+ <translation type="obsolete">Disposici�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Scale</source>
+ <translation type="obsolete">Escala</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flags</source>
+ <translation type="obsolete">Se�lizadores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show page no.</source>
+ <translation type="obsolete">muestra el nmero de p�ina</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show measure no.</source>
+ <translation type="obsolete">muestra el nmero de comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show track name</source>
+ <translation type="obsolete">muestra el nombre de la pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>left Margin</source>
+ <translation type="obsolete">Margen izquierdo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>top Margin</source>
+ <translation type="obsolete">Margen Superior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>right Margin</source>
+ <translation type="obsolete">Margen derecho</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bottom Margin</source>
+ <translation type="obsolete">Margen inferior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars across the Page</source>
+ <translation type="obsolete">Barras a trav� de la p�ina</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">C&amp;ortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rename</source>
+ <translation type="obsolete">renombrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>split</source>
+ <translation type="obsolete">partir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">pegar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="453"/>
+ <source>pianoroll</source>
+ <translation type="unfinished">pianola</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list</source>
+ <translation type="obsolete">lista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="449"/>
+ <source>drums</source>
+ <translation type="unfinished">percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation type="obsolete">No puedo copiar/mover/clonar a un tipo diferente de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>color</source>
+ <translation type="obsolete">color</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>de-clone</source>
+ <translation type="obsolete">des-clonar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="461"/>
+ <source>wave edit</source>
+ <translation type="unfinished">editar onda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation type="obsolete">No puedo pegar: mtilpes pistas seleccionadas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: no track selected</source>
+ <translation type="obsolete">No puedo pegar: No hay pista seleccionada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation type="obsolete">No puedo pegar MIDI en una pista de audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation type="obsolete">No puedo pegar audio en una pista MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: wrong data type</source>
+ <translation type="obsolete">No puedo pegar: Tipo de datos equivocado</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="442"/>
+ <source>AutoFill...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="456"/>
+ <source>miditracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="496"/>
+ <source>MusE: Get auto fill loop len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="497"/>
+ <source>Measures: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="889"/>
+ <source>MusE: Change Part Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="890"/>
+ <source>PartName:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="421"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="424"/>
+ <source>Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation type="obsolete">MusE: Panel de ruteado MIDI de ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ALSA Patch Bay</source>
+ <translation type="obsolete">Panel de ruteado de ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Borrar eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Seleccionar Todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">De-seleccionar todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">Dentro del bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Fuera del bucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="77"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Seleccionar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="89"/>
+ <source>blue</source>
+ <translation type="unfinished">azul</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="92"/>
+ <source>pitch colors</source>
+ <translation type="unfinished">colores de tono</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="95"/>
+ <source>velocity colors</source>
+ <translation type="unfinished">colores de velocidad</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="85"/>
+ <source>&amp;Config</source>
+ <translation type="unfinished">&amp;Configurar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="86"/>
+ <source>event color</source>
+ <translation type="unfinished">color de eventos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="100"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Funciones</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Over Quantize</source>
+ <translation type="obsolete">Sobre cuantizar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On Quantize</source>
+ <translation type="obsolete">Cuantizar inicio de nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="obsolete">Cuantizar inicio y final de nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Iterative Quantize</source>
+ <translation type="obsolete">Cuantizaci� iterativa</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="134"/>
+ <source>Pianoroll Tools</source>
+ <translation type="unfinished">Herramientas de pianola</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Grabaci� por pasos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input</source>
+ <translation type="obsolete">Entrada MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play Events</source>
+ <translation type="obsolete">Reproducir eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">A�de vista de controladores</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="109"/>
+ <source>Config Quant...</source>
+ <translation type="unfinished">Configura cuantizaci�...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Gate Time</source>
+ <translation type="obsolete">Modifica el tiempo de puerta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Modifica la velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Crescendo</source>
+ <translation type="obsolete">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transponer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thin Out</source>
+ <translation type="obsolete">Adelgazar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Event</source>
+ <translation type="obsolete">Borrar evento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Shift</source>
+ <translation type="obsolete">Desplazar nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Move Clock</source>
+ <translation type="obsolete">Mover reloj</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy Measure</source>
+ <translation type="obsolete">Copiar comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Measure</source>
+ <translation type="obsolete">Vaciar comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Measure</source>
+ <translation type="obsolete">Borrar comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create Measure</source>
+ <translation type="obsolete">Crear comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ctrl</source>
+ <translation type="obsolete">control</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="155"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="161"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="104"/>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="106"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="57"/>
+ <source>MusE: select plugin</source>
+ <translation type="unfinished">MusE: Selecciona el plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="64"/>
+ <source>Lib</source>
+ <translation type="unfinished">Lib</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="65"/>
+ <source>Label</source>
+ <translation type="unfinished">Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="66"/>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="67"/>
+ <source>AI</source>
+ <translation type="unfinished">AI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="68"/>
+ <source>AO</source>
+ <translation type="unfinished">AO</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="69"/>
+ <source>CI</source>
+ <translation type="unfinished">CI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="70"/>
+ <source>CO</source>
+ <translation type="unfinished">CO</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="71"/>
+ <source>IP</source>
+ <translation type="unfinished">IP</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="72"/>
+ <source>id</source>
+ <translation type="unfinished">id</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="73"/>
+ <source>Maker</source>
+ <translation type="unfinished">Fabricante</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="74"/>
+ <source>Copyright</source>
+ <translation type="unfinished">Copyright</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="125"/>
+ <source>Stereo</source>
+ <translation type="unfinished">Est�eo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="130"/>
+ <source>Mono</source>
+ <translation type="unfinished">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Todo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="120"/>
+ <source>Mono and Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="135"/>
+ <source>Show All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="150"/>
+ <source>Select which types of plugins should be visible in the list.&lt;br&gt;Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.&lt;br&gt;Also beware that the &apos;all&apos; alternative includes plugins that probably not are usable by MusE.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="157"/>
+ <source>Search in &apos;Label&apos; and &apos;Name&apos;:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="358"/>
+ <source>bypass plugin</source>
+ <translation type="unfinished">saltar plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="574"/>
+ <source>MusE: load preset</source>
+ <translation type="unfinished">MusE: Cargar plantilla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="635"/>
+ <source>MusE: save preset</source>
+ <translation type="unfinished">MusE: Guardar plantilla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="347"/>
+ <source>File Buttons</source>
+ <translation type="unfinished">Archivar botones</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="349"/>
+ <source>Load Preset</source>
+ <translation type="unfinished">Cargar plantilla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="352"/>
+ <source>Save Preset</source>
+ <translation type="unfinished">Guardar plantilla</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../../muse/preferences.cpp" line="680"/>
+ <source>MusE: load image</source>
+ <translation type="unfinished">MusE: carga imagen</translation>
+ </message>
+</context>
+<context>
+ <name>PrinterConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Printer</source>
+ <translation type="obsolete">MusE: Configuraci� de impresora</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print to file</source>
+ <translation type="obsolete">Imprimir en archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print Command</source>
+ <translation type="obsolete">Comando de impresi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preview Command</source>
+ <translation type="obsolete">Comando de previsualizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectDialog</name>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="420"/>
+ <source>MusE: create new folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="421"/>
+ <source>new folder:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port Number</source>
+ <translation type="obsolete">Nmero de puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable gui for device</source>
+ <translation type="obsolete">habilitar gui para dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables recording from the device</source>
+ <translation type="obsolete">habilita la grabaci� para el dispositivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument connected to port</source>
+ <translation type="obsolete">Instrumento conectado al puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State: result of opening the device</source>
+ <translation type="obsolete">Estado: resultado de abrir el puerto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute instrument</source>
+ <translation type="obsolete">silenciar instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>sound name</source>
+ <translation type="obsolete">nombre del sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantisation
+currently not used</source>
+ <translation type="obsolete">cuantizaci�
+actualmente sin usar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>this input note triggers the sound</source>
+ <translation type="obsolete">ensta nota de entrada dispara el sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note length</source>
+ <translation type="obsolete">longitud de nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>this note is send for the sound</source>
+ <translation type="obsolete">esta nota se envia al sonido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel
+currently not used</source>
+ <translation type="obsolete">canal de salida
+actualmente sin uso</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port
+currently not used</source>
+ <translation type="obsolete">puerto de salida
+actualmente sin uso</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 1</source>
+ <translation type="obsolete">nivel de velocidad 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 2</source>
+ <translation type="obsolete">nivel de velocidad 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 3</source>
+ <translation type="obsolete">nivel de velocidad 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 4</source>
+ <translation type="obsolete">nivel de velocidad 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantisation</source>
+ <translation type="obsolete">cuantizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">canal de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">puerto de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable Recording</source>
+ <translation type="obsolete">Habilita grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Activity</source>
+ <translation type="obsolete">Actividad de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mute Indicator</source>
+ <translation type="obsolete">Indicador de silencio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Solo Indicator</source>
+ <translation type="obsolete">Indicador de solo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Type</source>
+ <translation type="obsolete">Tipo de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nombre de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Channel Number</source>
+ <translation type="obsolete">Nmero de canal de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Port</source>
+ <translation type="obsolete">Puerto de salida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Lock</source>
+ <translation type="obsolete">Bloqueo de tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Solo/Pre Fader Listening</source>
+ <translation type="obsolete">Escucha de S�o/pre-fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name of the midi device associated with this port number</source>
+ <translation type="obsolete">Nombre del dispositivo MIDI asociado con este nmero de puerto</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../../muse/muse.cpp" line="356"/>
+ <source>Add Midi Generator...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="380"/>
+ <source>Add Soft Synth...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot transform non empty track</source>
+ <translation type="obsolete">No puedo transformar una pista que no est�vacia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="51"/>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished">No puedo convertir el paquete de sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="59"/>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished">Cadena hexadecimal demasiado larga (l�ite de 2048 bytes)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="173"/>
+ <source>generic midi</source>
+ <translation type="unfinished">midi gen�ico</translation>
+ </message>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="303"/>
+ <source>new</source>
+ <translation type="unfinished">nuevo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="358"/>
+ <source>create peakfile for </source>
+ <translation type="unfinished">crear archivo de picos para</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: get file name</source>
+ <translation type="obsolete">MusE: obtener el nombre de archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>the directory
+</source>
+ <translation type="obsolete">el directorio
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>
+does not exist
+create?</source>
+ <translation type="obsolete">
+no existe
+ Lo creo ?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Create</source>
+ <translation type="obsolete">&amp;Crear</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: create directory</source>
+ <translation type="obsolete">MusE: crear directorio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>creating dir failed</source>
+ <translation type="obsolete">fall�la creaci� de directorio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>File
+</source>
+ <translation type="unfinished">El archivo
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>
+exists</source>
+ <translation type="unfinished">
+existe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="138"/>
+ <source>MusE: write</source>
+ <translation type="unfinished">MusE: escribe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="140"/>
+ <source>Overwrite</source>
+ <translation type="unfinished">Sobre escribe</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="141"/>
+ <source>Quit</source>
+ <translation type="unfinished">Salir</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="151"/>
+ <source>Open File
+</source>
+ <translation type="unfinished">Abrir archivo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="152"/>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+fall� </translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="153"/>
+ <source>MusE: Open File</source>
+ <translation type="unfinished">MusE: Abrir archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ninguno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input</source>
+ <translation type="obsolete">Entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group %c</source>
+ <translation type="obsolete">Grupo %c</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown</source>
+ <translation type="obsolete">Desconocido</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="101"/>
+ <source>copy
+ %1
+to
+ %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="105"/>
+ <source>
+converting sample rate
+from %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="109"/>
+ <source>Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="127"/>
+ <source>MusE: export midi file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config Quantize</source>
+ <translation type="obsolete">Configurar Cuantizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Strength</source>
+ <translation type="obsolete">Fuerza</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Don&#xb4;t Quantize</source>
+ <translation type="obsolete">No cuantizes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quant Len</source>
+ <translation type="obsolete">Cuantizar la longitud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Quantize</source>
+ <translation type="obsolete">MusE: Configurar Cuantizaci�</translation>
+ </message>
+</context>
+<context>
+ <name>QuantDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Display Quantize</source>
+ <translation type="obsolete">Mostrar la cuantizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Position</source>
+ <translation type="obsolete">Posici�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Cuantizar Nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Cuantizar el resto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>RecordButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="38"/>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation type="obsolete">MusE: Generador de r�mo aleatorio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Properties</source>
+ <translation type="obsolete">Propiedades del instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>counts/bar</source>
+ <translation type="obsolete">cuentar por barra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>steps/count</source>
+ <translation type="obsolete">pasos por cuenta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source># bars</source>
+ <translation type="obsolete">n barras</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>test</source>
+ <translation type="obsolete">probar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>contrib</source>
+ <translation type="obsolete">contribuir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>randomize</source>
+ <translation type="obsolete">aleartorizar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 1</source>
+ <translation type="obsolete">Grupo 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 2</source>
+ <translation type="obsolete">Grupo 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 3</source>
+ <translation type="obsolete">Grupo 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 4</source>
+ <translation type="obsolete">Grupo 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 5</source>
+ <translation type="obsolete">Grupo 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>listen</source>
+ <translation type="obsolete">escuchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Grupo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">crear nueva entrada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">pulsando el bot� Nuevo creas una entrada nueva
+en la lista de controles definidos por MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">borra la entrada seleccionada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Arriba</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Abajo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument </source>
+ <translation type="obsolete">Instrumento </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>steps/count </source>
+ <translation type="obsolete">pasos por cuenta </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">Lista de controladores definidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Esta es la lista de controladores definidos en MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Help</source>
+ <translation type="obsolete">A&amp;yuda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">Herramientas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Abrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Abrir...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Guardar como</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">Guardar &amp;Como...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print</source>
+ <translation type="obsolete">Imprimir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Print...</source>
+ <translation type="obsolete">&amp;Imprimir...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Salir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Undo</source>
+ <translation type="obsolete">Deshacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Undo</source>
+ <translation type="obsolete">&amp;Deshacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Redo</source>
+ <translation type="obsolete">Rehacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Redo</source>
+ <translation type="obsolete">&amp;Rehacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cut</source>
+ <translation type="obsolete">&amp;Cortar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;opy</source>
+ <translation type="obsolete">C&amp;opiar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">&amp;Pegar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Find</source>
+ <translation type="obsolete">Buscar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Find...</source>
+ <translation type="obsolete">&amp;Buscar...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Contents</source>
+ <translation type="obsolete">Contenidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Contents...</source>
+ <translation type="obsolete">&amp;Contenidos...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Index</source>
+ <translation type="obsolete">�dice</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Index...</source>
+ <translation type="obsolete">&amp;Indice...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>About</source>
+ <translation type="obsolete">Acerca de</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About...</source>
+ <translation type="obsolete">&amp;Acerca de ...</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form3</source>
+ <translation type="obsolete">Formulario3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Settings:</source>
+ <translation type="obsolete">Configuraci� de instrumento:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrumento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Hi-Hat</source>
+ <translation type="obsolete">Charli</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>add</source>
+ <translation type="obsolete">a�dir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">borrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>steps/count</source>
+ <translation type="obsolete">pasos/cuenta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>count/bar</source>
+ <translation type="obsolete">cuentas/comp�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source># bars</source>
+ <translation type="obsolete">n compases</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group Settings:</source>
+ <translation type="obsolete">Configuraci� de grupo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Grupo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 1</source>
+ <translation type="obsolete">Grupo 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 2</source>
+ <translation type="obsolete">Grupo 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 3</source>
+ <translation type="obsolete">Grupo 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 4</source>
+ <translation type="obsolete">Grupo 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 5</source>
+ <translation type="obsolete">Grupo 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>contrib</source>
+ <translation type="obsolete">contrib</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>listen</source>
+ <translation type="obsolete">escuchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Randomize</source>
+ <translation type="obsolete">aleatorizar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rhythm Style:</source>
+ <translation type="obsolete">Estilo de ritmo:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clear</source>
+ <translation type="obsolete">L�pio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open...</source>
+ <translation type="obsolete">Abrir...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save as...</source>
+ <translation type="obsolete">Guardar como...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Generate</source>
+ <translation type="obsolete">Generar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Close</source>
+ <translation type="obsolete">Cerrar</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginFront</name>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="213"/>
+ <source>Clear and unload effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="214"/>
+ <source>Load effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="215"/>
+ <source>Toggle display of effect parameters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="216"/>
+ <source>Turn effect on/off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Score</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Page Settings</source>
+ <translation type="obsolete">Configuraci� de p�ina</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Staff Settings</source>
+ <translation type="obsolete">Configuraci� de pentagrama</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background Pixmap</source>
+ <translation type="obsolete">imagen de fondo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Palettes</source>
+ <translation type="obsolete">Paletas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dynamics</source>
+ <translation type="obsolete">Din�icos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print</source>
+ <translation type="obsolete">Imprimir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preview Print</source>
+ <translation type="obsolete">Previsualizar la impresi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lyrics</source>
+ <translation type="obsolete">Letra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter lyrics</source>
+ <translation type="obsolete">escribe la letra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Text</source>
+ <translation type="obsolete">Texto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter text</source>
+ <translation type="obsolete">escribe el texto</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C7m</source>
+ <translation type="obsolete">C7m</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter chord symbol</source>
+ <translation type="obsolete">escribe el s�bolo del acorde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to previous voice</source>
+ <translation type="obsolete">al timbre anterior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to next voice</source>
+ <translation type="obsolete">al timbre siguiente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>flip stem direction</source>
+ <translation type="obsolete">intercambia la direcci� de la armadura</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move marked notes to previous voice or to upper stave in a split system</source>
+ <translation type="obsolete">mueve las notas marcadas al timbre anterior o a la parte superior en sistemas partidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move marked notes to next voice or to lower stave in a split system</source>
+ <translation type="obsolete">mueve las notas marcadas al timbre siguiente o a la parte inferior en sistemas partidos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>flip stem direction of selected notes</source>
+ <translation type="obsolete">intercambia la direcci� de la armadura de las notas seleccionadas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>StaffSettings</source>
+ <translation type="obsolete">Configuraci� de pentagrama</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: config wallpaper</source>
+ <translation type="obsolete">MusE: Configurar imagen de fondo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Score</source>
+ <translation type="obsolete">Partitura</translation>
+ </message>
+</context>
+<context>
+ <name>ScoreConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Staff Settings: </source>
+ <translation type="obsolete">Configuraci� de Pentagrama: </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track List</source>
+ <translation type="obsolete">Lista de pistas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Key/Clef</source>
+ <translation type="obsolete">Clave</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Raster</source>
+ <translation type="obsolete">Raster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Cuantizaci� de nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Restaurar cuantizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mode</source>
+ <translation type="obsolete">Modo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Split System</source>
+ <translation type="obsolete">Sistema partido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Splitpoint</source>
+ <translation type="obsolete">punto de separaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Upper Staff</source>
+ <translation type="obsolete">Pentagrama superior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower Staff</source>
+ <translation type="obsolete">Pentagrama inferior</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>next page</source>
+ <translation type="obsolete">p�ina siguiente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>previous page</source>
+ <translation type="obsolete">p�ina anterior</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>current page number</source>
+ <translation type="obsolete">numero de p�ina actual</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="78"/>
+ <source>Shortcut conflicts with </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="94"/>
+ <source>Undefined</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfig</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="38"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arreglador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insertar nota</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insertar controlador</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insertar Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insertar AfterTouch de tecla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="37"/>
+ <source>Global</source>
+ <translation type="unfinished">Global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="39"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianola</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="40"/>
+ <source>Drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="41"/>
+ <source>List editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="42"/>
+ <source>List Mastertrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="44"/>
+ <source>All categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="43"/>
+ <source>Wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>signature scale</source>
+ <translation type="obsolete">Armadura de la escala</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <location filename="../../synti/simpledrums/simpledrumsgui.cpp" line="633"/>
+ <source>Load sample dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Song</name>
+ <message>
+ <location filename="../../muse/song.cpp" line="1493"/>
+ <source>Jack shutdown!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/song.cpp" line="1508"/>
+ <source>Jack has detected a performance problem which has lead to
+MusE being disconnected.
+This could happen due to a number of reasons:
+- a performance issue with your particular setup.
+- a bug in MusE (or possibly in another connected software).
+- a random hiccup which might never occur again.
+- jack was voluntary stopped by you or someone else
+- jack crashed
+If there is a persisting problem you are much welcome to discuss it
+on the MusE mailinglist.
+(there is information about joining the mailinglist on the MusE
+ homepage which is available through the help menu)
+
+To proceed check the status of Jack and try to restart it and then .
+click on the Restart button.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SplitLayerGui</name>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="53"/>
+ <source>start pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="58"/>
+ <source>enable learn mode for start pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="70"/>
+ <source>end pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="75"/>
+ <source>enable learn mode for end pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="84"/>
+ <source>pitch offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="91"/>
+ <source>start velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="97"/>
+ <source>end velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="103"/>
+ <source>velocity offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>StkGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MyDialog2</source>
+ <translation type="obsolete">MiDialogo2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Voices</source>
+ <translation type="obsolete">Voces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit</source>
+ <translation type="obsolete">Editar</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Soft Synth Configuration</source>
+ <translation type="obsolete">MusE: Configuraci� del Sintetizador virtual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Sintetizador Virtual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File</source>
+ <translation type="obsolete">Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instances</source>
+ <translation type="obsolete">Copias</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of available software synthesizers</source>
+ <translation type="obsolete">lista de sintetizadores de software dispoibles</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Instance</source>
+ <translation type="obsolete">A�dir copia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alsa Port</source>
+ <translation type="obsolete">Puerto ALSA</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove Instance</source>
+ <translation type="obsolete">Quitar copia</translation>
+ </message>
+</context>
+<context>
+ <name>TLSWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="132"/>
+ <source>Remove Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="136"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="238"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Velocidad</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="271"/>
+ <source>Delete Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLWidget</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Borrar pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="128"/>
+ <source>Copy Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="145"/>
+ <source>Show Gui</source>
+ <translation type="unfinished">Mostrar GUI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="272"/>
+ <source>Add Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="424"/>
+ <source>Midi Output Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum</source>
+ <translation type="obsolete">Percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Wave</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Borrar pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Comentario de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Show Gui</source>
+ <translation type="obsolete">Mostrar GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Midi Track</source>
+ <translation type="obsolete">A�dir pista MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Drum Track</source>
+ <translation type="obsolete">A�dir pista de percusi�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Wave Track</source>
+ <translation type="obsolete">A�dir pista de audio</translation>
+ </message>
+</context>
+<context>
+ <name>TemplateDialog</name>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="75"/>
+ <source>MusE presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="85"/>
+ <source>User presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo/Sig</source>
+ <translation type="obsolete">tempo/firma</translation>
+ </message>
+</context>
+<context>
+ <name>TimeCanvas</name>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="147"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="149"/>
+ <source>Add Controller View</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished">Solo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="64"/>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="70"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Cuantizar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="86"/>
+ <source>To</source>
+ <translation type="unfinished">A</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="90"/>
+ <source>All Events</source>
+ <translation type="unfinished">Todos los eventos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="91"/>
+ <source>Looped Ev.</source>
+ <translation type="unfinished">Eventos del bucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="92"/>
+ <source>Selected Ev.</source>
+ <translation type="unfinished">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="93"/>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished">Bucle + Selecci�</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="45"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="51"/>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished">MusE: Comentario de la pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="56"/>
+ <source>Track Comment:</source>
+ <translation type="unfinished">Comentario de la pista:</translation>
+ </message>
+</context>
+<context>
+ <name>TrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="69"/>
+ <source>Track Type</source>
+ <translation type="unfinished">Tipo de pista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="78"/>
+ <source>Track Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punch In</source>
+ <translation type="obsolete">Pinchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punch Out</source>
+ <translation type="obsolete">Fin pinchado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Left Mark</source>
+ <translation type="obsolete">Marca izquierda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Right Mark</source>
+ <translation type="obsolete">Marca derecha</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Overdub</source>
+ <translation type="obsolete">A�dir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Replace</source>
+ <translation type="obsolete">Reemplazar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec Mode</source>
+ <translation type="obsolete">Modo de grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Normal</source>
+ <translation type="obsolete">Normal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mix</source>
+ <translation type="obsolete">Mezcla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cycle Rec</source>
+ <translation type="obsolete">Ciclar Grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">pinchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">fin pinchado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start</source>
+ <translation type="obsolete">retroceder al inicio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">retroceder</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">avanzar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">parar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">reproducir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>AC</source>
+ <translation type="obsolete">AC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize during record</source>
+ <translation type="obsolete">cuantizar durante la grabaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click</source>
+ <translation type="obsolete">Click</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>metronom click on/off</source>
+ <translation type="obsolete">Click del metr�omo encendido/apagado</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync</source>
+ <translation type="obsolete">Sinconizaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>external sync on/off</source>
+ <translation type="obsolete">Sincronizaci� externa encedida/apagada</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">usar pista maestra</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Transpose</source>
+ <translation type="obsolete">MusE: Transposici� MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>halftones</source>
+ <translation type="obsolete">semitonos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Tiempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">todo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>between markers</source>
+ <translation type="obsolete">entre marcadores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Partes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all in selected tracks</source>
+ <translation type="obsolete">todo en las pistas seleccionadas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="480"/>
+ <source>MusE: Load VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="583"/>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virtual Analogue for MusE</source>
+ <translation type="obsolete">Analogico virtual para MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LFO</source>
+ <translation type="obsolete">LFO</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Freq</source>
+ <translation type="obsolete">Freq</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Waveform</source>
+ <translation type="obsolete">Tipo Onda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Seno</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pulse</source>
+ <translation type="obsolete">Pulso</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Saw</source>
+ <translation type="obsolete">Sierra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Tri�gulo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filtro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>EnvMod</source>
+ <translation type="obsolete">Modulaci� de envolvente</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Attack</source>
+ <translation type="obsolete">Ataque</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Decay</source>
+ <translation type="obsolete">Decaimiento</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sustain</source>
+ <translation type="obsolete">Sostenido</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Release</source>
+ <translation type="obsolete">Relajaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cutoff</source>
+ <translation type="obsolete">Frecuencia de corte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Resonance</source>
+ <translation type="obsolete">Resonancia</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>KeyTrack</source>
+ <translation type="obsolete">Seguir teclas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Presets</source>
+ <translation type="obsolete">Plantillas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Set</source>
+ <translation type="obsolete">Establecer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>load preset list</source>
+ <translation type="obsolete">cargar lista de plantillas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list</source>
+ <translation type="obsolete">guardar lista de plantillas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list to a new file</source>
+ <translation type="obsolete">guardar lista de plantillas en un archivo nuevo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">borrar plantilla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>DCO 1</source>
+ <translation type="obsolete">DCO 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Detune</source>
+ <translation type="obsolete">Desafinaci�</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PWM</source>
+ <translation type="obsolete">PWM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>FM</source>
+ <translation type="obsolete">FM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PW</source>
+ <translation type="obsolete">PW</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>DCO 2</source>
+ <translation type="obsolete">DCO 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">Encendido</translation>
+ </message>
+ <message encoding="UTF-8">
+ <location filename="" line="7471221"/>
+ <source>VAM 1.0beta2
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</source>
+ <translation type="obsolete">VAM 1.0beta2
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</translation>
+ </message>
+</context>
+<context>
+ <name>Velocity</name>
+ <message>
+ <location filename="../../muse/midiedit/velocity.cpp" line="33"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished">MusE: Modificar velocidad</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="obsolete">MusE: Modificar velocidad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Rango</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Todos los eventos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Eventos del bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Seleccionados y bucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Valores</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Velocidad:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Desplazamiento:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">escala de compases</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Normalize</source>
+ <translation type="obsolete">Normalizar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>weTools</source>
+ <translation type="obsolete">Herramientas de Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="112"/>
+ <source>Solo</source>
+ <translation type="unfinished">Solo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="116"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="50"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Functions</source>
+ <translation type="obsolete">Funciones</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="51"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="52"/>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="54"/>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="55"/>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="57"/>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="59"/>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="61"/>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="63"/>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="65"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="69"/>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="71"/>
+ <source>Mute Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="73"/>
+ <source>Normalize Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="75"/>
+ <source>Fade In Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="77"/>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="79"/>
+ <source>Reverse Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="82"/>
+ <source>Select</source>
+ <translation type="unfinished">Seleccionar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="93"/>
+ <source>waveedit-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="104"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="111"/>
+ <source>pianoroll-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: Informaci� de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Informaci� de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nombre de pista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Route:</source>
+ <translation type="obsolete">Ruta de salida:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input Route:</source>
+ <translation type="obsolete">Ruta de netrada:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ports:</source>
+ <translation type="obsolete">Puertos:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mono</source>
+ <translation type="obsolete">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo</source>
+ <translation type="obsolete">Est�eo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="809"/>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="810"/>
+ <source>When editing in external editor - you should not change the filesize
+since it must fit the selected region.
+
+Missing data is muted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse_qt4_evolution/share/locale/muse_fr.qm b/muse_qt4_evolution/share/locale/muse_fr.qm
new file mode 100644
index 00000000..8a61f889
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_fr.qm
Binary files differ
diff --git a/muse_qt4_evolution/share/locale/muse_fr.ts b/muse_qt4_evolution/share/locale/muse_fr.ts
new file mode 100644
index 00000000..c4972635
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_fr.ts
@@ -0,0 +1,9584 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name></name>
+ <message>
+ <location filename="../../muse/transport.cpp" line="35"/>
+ <source>Click this button to enable recording</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour activer l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="25"/>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation type="unfinished">Définit le niveau de quantisation:
+0 - pas de quantisation
+100 - quantisation complète</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="obsolete">Choisir l&apos;Outil de Pointage:
+avec l&apos;outil de pointage vous pouvez:
+ choisir des pièces
+ déplacer des pièces
+ copier des pièces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insérer Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insérer SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insérer Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insérer Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insérr Canal de Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insérer une note de Pression</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="30"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="31"/>
+ <source>Refrain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="32"/>
+ <source>Bridge</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="33"/>
+ <source>Intro</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="34"/>
+ <source>Coda</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="35"/>
+ <source>Chorus</source>
+ <translation type="unfinished">Chorus</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="37"/>
+ <source>Brass</source>
+ <translation type="unfinished">Cuivres</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="38"/>
+ <source>Percussion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="39"/>
+ <source>Drums</source>
+ <translation type="unfinished">Batterie</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="40"/>
+ <source>Guitar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="41"/>
+ <source>Bass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="42"/>
+ <source>Flute</source>
+ <translation type="unfinished">Flute</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="43"/>
+ <source>Strings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="44"/>
+ <source>Keyboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="45"/>
+ <source>Piano</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="46"/>
+ <source>Saxophon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to open a &lt;em&gt;new song&lt;/em&gt;.&lt;br&gt;You can also select the &lt;b&gt;Open command&lt;/b&gt; from the File menu.</source>
+ <translation type="obsolete">Cliquez sur ce bouton pour ouvrir une &lt;em&gt;nouvelle chansong&lt;/em&gt;.&lt;br&gt;Vous pouvez aussi sélectionner la &lt;b&gt;commande Ouvrir&lt;/b&gt; à partir du menu Fichier.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the song you are editing. You will be prompted for a file name.
+You can also select the Save command from the File menu.</source>
+ <translation type="obsolete">Cliquez sur ce bouton pour sauvegarder la chanson que vous éditez. Le nom de sauvegarde vous sera demandé.
+Vous pouvez aussi choisir la commande Enregistrer dans le menu Fichier.<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Song</source>
+ <translation type="obsolete">Créer une nouvelle chanson</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="36"/>
+ <source>Click this button to stop playback</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour arréter la lecture</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="37"/>
+ <source>Click this button to start playback</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour démarrer la lecture</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="38"/>
+ <source>Click this button to rewind to start position</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour revenir à la position de départ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="39"/>
+ <source>Click this button to rewind</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour revenir en arrière</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="40"/>
+ <source>Click this button to forward current play position</source>
+ <translation type="unfinished">Cliquez sur ce bouton pour avancer dans la lecture</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="26"/>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation type="unfinished">Ne pas quantiser les notes sur cette limite (en tick)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="27"/>
+ <source>quantize also note len as default</source>
+ <translation type="unfinished">quantiser aussi la longueur de note par défault</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="obsolete">Boucler entre les marqueurs gauche et droit</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record starts at left mark</source>
+ <translation type="obsolete">l&apos;enregistrement démarre au marqueur gauche</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record stops at right mark</source>
+ <translation type="obsolete">l&apos;enregistrement s&apos;arrète au marqueur droit</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">revenir à la position de départ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind current position</source>
+ <translation type="obsolete">revenir à la position en cours</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move current position</source>
+ <translation type="obsolete">déplacer la position en cours</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop sequencer</source>
+ <translation type="obsolete">arréter le séquenceur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">démarrer la lecture du séquenceur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to record press record and then play</source>
+ <translation type="obsolete">pour enregistrer, presser Enregistrement (Record) puis Lecture (Play)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>send note off to all midi channels</source>
+ <translation type="obsolete">envoyer ordre de relachement de note à tous les canaux midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="obsolete">Choisir l&apos;Outil Crayon
+avec le crayon vous pouvez:
+ créer de nouvelles pièces
+ modifier la longueur des pièces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="obsolete">choisir l&apos;Outil Gomme:
+avec la gomme vous pouvez effacer les pièces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="obsolete">Choisir l&apos;Outil Ciseaux
+avec les ciseaux vous pouver couper une pièce</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="obsolete">Choisir l&apos;Outil Colle:
+avec la colle vous pouvez coller deux pièces ensemble</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Score Tool:
+</source>
+ <translation type="obsolete">Choisir l&apos;Outil Partition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="obsolete">Choisir l&apos;Outil Quantisation:
+pour voir les marques de quantisation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Drawing Tool</source>
+ <translation type="obsolete">Choisir l&apos;Outil de Dessin</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="obsolete">Choisir l&apos;Outil Silence:
+cliquez sur une pièces pour la rendre muette ou pas.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pointer</source>
+ <translation type="obsolete">pointeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pencil</source>
+ <translation type="obsolete">crayon</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rubber</source>
+ <translation type="obsolete">élastique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>cutter</source>
+ <translation type="obsolete">ciseaux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">colle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize</source>
+ <translation type="obsolete">quantisation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>draw</source>
+ <translation type="obsolete">dessin</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute parts</source>
+ <translation type="obsolete">silence</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/rastercombo.cpp" line="31"/>
+ <source>Off</source>
+ <translation type="unfinished">Arrt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="41"/>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished">réglages (presets: *.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="42"/>
+ <source>All Files (*)</source>
+ <translation type="unfinished">Tous les Fichiers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to enable recording</source>
+ <translation type="obsolete">Cliquez sur ce bouton pour activer l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="224"/>
+ <source>m</source>
+ <translation type="unfinished">m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="227"/>
+ <source>mute</source>
+ <translation type="unfinished">silence</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="238"/>
+ <source>s</source>
+ <translation type="unfinished">s</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="241"/>
+ <source>solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="251"/>
+ <source>Mo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="254"/>
+ <source>monitor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="264"/>
+ <source>Dr</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="267"/>
+ <source>use drum map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="279"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="298"/>
+ <source>aR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="301"/>
+ <source>automation read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="311"/>
+ <source>aW</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="314"/>
+ <source>automation write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="324"/>
+ <source>sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="327"/>
+ <source>send sync events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="358"/>
+ <source>1/2 channel</source>
+ <translation type="unfinished">1/2 canal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="371"/>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="373"/>
+ <source>output routing</source>
+ <translation type="unfinished">chemin de sortie (routing)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="389"/>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="391"/>
+ <source>input routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="143"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="103"/>
+ <source>Bar</source>
+ <translation type="unfinished">Mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="341"/>
+ <source>Midi</source>
+ <translation type="unfinished">Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="347"/>
+ <source>Add Midi Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="350"/>
+ <source>Add Midi Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="353"/>
+ <source>Add Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="368"/>
+ <source>Audio</source>
+ <translation type="unfinished">Audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="371"/>
+ <source>Add Wave Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="373"/>
+ <source>Add Audio Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="375"/>
+ <source>Add Audio Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="377"/>
+ <source>Add Audio Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2977"/>
+ <source>MusE: create project directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3006"/>
+ <source>MusE: create template directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3071"/>
+ <source>Cannot find project &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3072"/>
+ <source>MusE: load Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3034"/>
+ <source>MusE: create instruments directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load image</source>
+ <translation type="obsolete">MusE: charger une image</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>handle of transport window</source>
+ <translation type="obsolete">Accroche de la fenêtre Transport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>track activity in arranger</source>
+ <translation type="obsolete">Activité des pistes dans l&apos;Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime font color</source>
+ <translation type="obsolete">Couleur de la police dans le GrandChrono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime background color</source>
+ <translation type="obsolete">Couleur de fond du GrandChrono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>waveedit background color</source>
+ <translation type="obsolete">Couleur du fond de l&apos;éditeur d&apos;échantillon</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Appearance settings</source>
+ <translation type="obsolete">MusE: réglages de l&apos;apparence</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Pièces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show frames</source>
+ <translation type="obsolete">montrer les séparations</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show names</source>
+ <translation type="obsolete">montrer les noms</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show events</source>
+ <translation type="obsolete">montrer les évènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show Cakewalk Style</source>
+ <translation type="obsolete">montrer dans le style Cakewalk</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events</source>
+ <translation type="obsolete">Evènement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note on</source>
+ <translation type="obsolete">note on</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>poly pressure</source>
+ <translation type="obsolete">pression poly</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller</source>
+ <translation type="obsolete">contrleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>aftertouch</source>
+ <translation type="obsolete">pression (aftertouch)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pitch bend</source>
+ <translation type="obsolete">molette de hauteur (pitch)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>program change</source>
+ <translation type="obsolete">sélection de programme (prog. change)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>special</source>
+ <translation type="obsolete">spécial</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background picture</source>
+ <translation type="obsolete">image de fond</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bg</source>
+ <translation type="obsolete">fond</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select...</source>
+ <translation type="obsolete">choisissez...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show snap grid</source>
+ <translation type="obsolete">voir la grille de positionnement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">couleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Items</source>
+ <translation type="obsolete">Objets</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected</source>
+ <translation type="obsolete">sélectionné</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>current:</source>
+ <translation type="obsolete">en cours:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change...</source>
+ <translation type="obsolete">changer...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation type="obsolete">Choix auto des couleurs pour l&apos;activité des pistes dans l&apos;Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Style/Fonts</source>
+ <translation type="obsolete">Styles/Polices</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QT Theme</source>
+ <translation type="obsolete">Thème</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Windows</source>
+ <translation type="obsolete">Windows</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE</source>
+ <translation type="obsolete">MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metal</source>
+ <translation type="obsolete">Metal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Norwegian Wood</source>
+ <translation type="obsolete">Norwegian Wood</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Platinum</source>
+ <translation type="obsolete">Platinum</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>CDE</source>
+ <translation type="obsolete">CDE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif</source>
+ <translation type="obsolete">Motif</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif Plus</source>
+ <translation type="obsolete">Motif Plus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Polices</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Family</source>
+ <translation type="obsolete">Famille</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Size</source>
+ <translation type="obsolete">Taille</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 1</source>
+ <translation type="obsolete">Police 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 2</source>
+ <translation type="obsolete">Police 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 3</source>
+ <translation type="obsolete">Police 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 0</source>
+ <translation type="obsolete">Police 0</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bold</source>
+ <translation type="obsolete">Gras</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Italic</source>
+ <translation type="obsolete">Italique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 4</source>
+ <translation type="obsolete">Police 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 5</source>
+ <translation type="obsolete">Police 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>R</source>
+ <translation type="obsolete">R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cursor</source>
+ <translation type="obsolete">Curseur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Snap</source>
+ <translation type="obsolete">Aligne</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Longueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NO</source>
+ <translation type="obsolete">NON</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi song type</source>
+ <translation type="obsolete">type de fichier midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi pitch</source>
+ <translation type="obsolete">hauteur midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>global midi pitch shift</source>
+ <translation type="obsolete">transposition midi globale</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo</source>
+ <translation type="obsolete">Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi tempo</source>
+ <translation type="obsolete">tempo midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="298"/>
+ <source>TrackInfo</source>
+ <translation type="unfinished">InfoPiste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track</source>
+ <translation type="obsolete">Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>O-Port</source>
+ <translation type="obsolete">0-Port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Arrt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>N</source>
+ <translation type="obsolete">N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>R</source>
+ <translation type="obsolete">R</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>A</source>
+ <translation type="obsolete">A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>M</source>
+ <translation type="obsolete">M</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C</source>
+ <translation type="obsolete">C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Ch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>T</source>
+ <translation type="obsolete">T</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Matre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Groupe A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Groupe B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Groupe C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Groupe D</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="305"/>
+ <source>Mix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="356"/>
+ <source>Config Tracklist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="364"/>
+ <source>all mute off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="373"/>
+ <source>all solo off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="382"/>
+ <source>all autoRead off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="391"/>
+ <source>all autoWrite off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="406"/>
+ <source>i</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="407"/>
+ <source>Show Track Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="414"/>
+ <source>m</source>
+ <translation type="unfinished">m</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="415"/>
+ <source>Show Mixer Strip</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Audio Configuration</source>
+ <translation type="obsolete">MusE: Configuration Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">A&amp;nnuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Parameters</source>
+ <translation type="obsolete">Paramètres Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>32</source>
+ <translation type="obsolete">32</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>64</source>
+ <translation type="obsolete">64</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>128</source>
+ <translation type="obsolete">128</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>256</source>
+ <translation type="obsolete">256</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>512</source>
+ <translation type="obsolete">512</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Frame Size:</source>
+ <translation type="obsolete">Longueur des frames:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delay:</source>
+ <translation type="obsolete">Délai:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sample Rate:</source>
+ <translation type="obsolete">Vitesse d&apos;échantillonage:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>44100</source>
+ <translation type="obsolete">44100</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>48000</source>
+ <translation type="obsolete">48000</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96000</source>
+ <translation type="obsolete">96000</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Driver</source>
+ <translation type="obsolete">Pilote Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use Alsa</source>
+ <translation type="obsolete">Alsa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use JACK</source>
+ <translation type="obsolete">JACK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>No Audio</source>
+ <translation type="obsolete">Pas d&apos;audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Status:</source>
+ <translation type="obsolete">Etat:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TextLabel6</source>
+ <translation type="obsolete">TextLabel6</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">1/2 canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader - post fader</source>
+ <translation type="obsolete">pre fader - post fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">enregistrement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silence</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">écoute pre fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record downmix</source>
+ <translation type="obsolete">enregistrer mixdown</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">arr</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output routing</source>
+ <translation type="obsolete">chemin de sortie (routing)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Input Strip</source>
+ <translation type="obsolete">Ajouter une Bande d&apos;Entrée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pre</source>
+ <translation type="obsolete">Pre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Audio Mixer</source>
+ <translation type="obsolete">MusE: Mixer Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inputs</source>
+ <translation type="obsolete">Entrées</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Synthi</source>
+ <translation type="obsolete">Synth</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tracks</source>
+ <translation type="obsolete">Pistes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Groups</source>
+ <translation type="obsolete">Groupes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Matre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Groupe A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Groupe B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Groupe C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Groupe D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Aucun</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="430"/>
+ <source>Pan</source>
+ <translation type="unfinished">Pan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">1/2 canal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="78"/>
+ <source>Pre</source>
+ <translation type="unfinished">Pre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="79"/>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished">pre fader - post fader</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="106"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silence</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="172"/>
+ <source>record downmix</source>
+ <translation type="unfinished">enregistrer mixdown</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">écoute pre fader</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output routing</source>
+ <translation type="obsolete">chemin de sortie (routing)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="662"/>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="416"/>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="604"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="634"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::MidiVolEntry</name>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="35"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="36"/>
+ <source>db</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::VolEntry</name>
+ <message>
+ <location filename="../../awl/volentry.cpp" line="32"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <location filename="../../muse/widgets/bigtime.cpp" line="66"/>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished">MusE: GrandChrono</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Clip List Editor</source>
+ <translation type="obsolete">MusE: Editeur de la Liste de Clips</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ClipList</source>
+ <translation type="obsolete">MusE: Liste de Clips</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Refs</source>
+ <translation type="obsolete">Réfs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">Départ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Long</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Data</source>
+ <translation type="obsolete">Données</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clip Properties</source>
+ <translation type="obsolete">Propriétés du Clip</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pos:</source>
+ <translation type="obsolete">Pos:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len:</source>
+ <translation type="obsolete">Long:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Forme1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Commentaire pour la Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track 1</source>
+ <translation type="obsolete">Piste 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Activer la prise en charge du format smf étendu</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigTrackListBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Synthétiseur virtuel</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDelegate</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="412"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="533"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDialog</name>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="45"/>
+ <source>controller name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="46"/>
+ <source>flag if controller contains data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sel</source>
+ <translation type="obsolete">Sél</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">Choisissez le contrlleur</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlListEditor</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="124"/>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">Choisissez le contrlleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove panel</source>
+ <translation type="obsolete">enlever le panneau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other ...</source>
+ <translation type="obsolete">autres...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sel</source>
+ <translation type="obsolete">Sél</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>x</source>
+ <translation type="obsolete">x</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Vélocité</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="522"/>
+ <source>Save configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2288"/>
+ <source>Critical Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2282"/>
+ <source>Cannot open file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2289"/>
+ <source>Parsing error for file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1931"/>
+ <source>Load category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1708"/>
+ <source>Load set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1775"/>
+ <source>Save set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1799"/>
+ <source>New category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1899"/>
+ <source>Delete category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1803"/>
+ <source>Load category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1805"/>
+ <source>Save category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1812"/>
+ <source>Load set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1814"/>
+ <source>Save set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1816"/>
+ <source>Delete set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1824"/>
+ <source>New subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2068"/>
+ <source>Delete subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1830"/>
+ <source>Load subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1833"/>
+ <source>Save subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1849"/>
+ <source>New preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2239"/>
+ <source>Delete preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1853"/>
+ <source>Load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1855"/>
+ <source>Save preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1876"/>
+ <source>No more category supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1877"/>
+ <source>You can not add more categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2241"/>
+ <source>Do you really want to delete %1 ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2029"/>
+ <source>No category selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2030"/>
+ <source>You must first select a category.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2308"/>
+ <source>Replace or add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1971"/>
+ <source>%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Replace</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2321"/>
+ <source>Download error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1984"/>
+ <source>There is no more free category slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2012"/>
+ <source>Save category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2042"/>
+ <source>No more subcategory supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2043"/>
+ <source>You can not add more subcategories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2198"/>
+ <source>No subcategory selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2199"/>
+ <source>You must first select a subcategory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2098"/>
+ <source>Load subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2138"/>
+ <source>%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2151"/>
+ <source>There is no more free subcategory slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2180"/>
+ <source>Save subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2213"/>
+ <source>No more preset supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2214"/>
+ <source>You can not add more presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2367"/>
+ <source>No preset selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2368"/>
+ <source>You must first select a preset.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2270"/>
+ <source>Load preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2310"/>
+ <source>%1 is supposed to be affected to the prog number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2322"/>
+ <source>There is no more free preset slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2351"/>
+ <source>Save preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2471"/>
+ <source>Browse set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2506"/>
+ <source>Browse image dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Réglages enregistrés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Vitesse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volume</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">Pression (After Touch)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">couleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Text</source>
+ <translation type="obsolete">Texte</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Map</source>
+ <translation type="obsolete">Charger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Map</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Couper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Coller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Tout sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Dé-sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Inverser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">Dans la boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Hors de la boucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="65"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Enregistrement pas-à-pas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input</source>
+ <translation type="obsolete">Entrée Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">Ajouter une Vue de contrlleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>M</source>
+ <translation type="obsolete">M</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sound</source>
+ <translation type="obsolete">Son</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QNT</source>
+ <translation type="obsolete">QNT</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E-Note</source>
+ <translation type="obsolete">E-Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Long</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>A-Note</source>
+ <translation type="obsolete">A-Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Ch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV1</source>
+ <translation type="obsolete">LV1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV2</source>
+ <translation type="obsolete">LV2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV3</source>
+ <translation type="obsolete">LV3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>LV4</source>
+ <translation type="obsolete">LV4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Drummap</source>
+ <translation type="obsolete">Charger Set de Batterie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Store Drummap</source>
+ <translation type="obsolete">Enregistrer Set de Batterie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ctrl</source>
+ <translation type="obsolete">ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>drummaps</source>
+ <translation type="obsolete">Sets de Batterie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Muse: Load Drum Map</source>
+ <translation type="obsolete">MusE: Charger Set de Batt.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Store Drum Map</source>
+ <translation type="obsolete">MusE: Enregistrer Set de Batt.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="61"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Fonctions</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Modifier la vélocité</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="82"/>
+ <source>Drum Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="102"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pressure</source>
+ <translation type="obsolete">Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation type="obsolete">MusE: Entrez le Canal de Pression (AfterTouch)</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller-H</source>
+ <translation type="obsolete">Contrlleur H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller-L</source>
+ <translation type="obsolete">Contrlleur L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation type="obsolete">MusE: Entrer l&apos;évènement Contrlleur 14</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Contrlleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller Event</source>
+ <translation type="obsolete">MusE: Entrez l&apos;Evénement Contrlleur</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller</source>
+ <translation type="obsolete">Muse: Entrez le Contrlleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller:</source>
+ <translation type="obsolete">Contrlleur:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value:</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller value</source>
+ <translation type="obsolete">Valeur du Contrlleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Bank</source>
+ <translation type="obsolete">H-Bank</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Bank</source>
+ <translation type="obsolete">L-Bank</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">arr</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrument</name>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="138"/>
+ <source>MusE: Create file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="148"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="172"/>
+ <source>MusE: Save Instrument Definition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="174"/>
+ <source>Instrument Definition (*.idf)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="359"/>
+ <source>MusE: Enter new Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="360"/>
+ <source>Enter new Category:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="770"/>
+ <source>MusE</source>
+ <translation type="unfinished">MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="772"/>
+ <source>The current Instrument contains unsaved data
+Save Current Instrument?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">list des controleurs définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">C&apos;est la liste des controleurs qui ont été définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>SysEx</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Panic</source>
+ <translation type="obsolete">Panique!</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Enregistrer</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type</source>
+ <translation type="obsolete">Meta Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Entrez en Hexa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Entrer un Evènement en Hexa</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Entrer un Méta Evènement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TextLabel1</source>
+ <translation type="obsolete">TextLabel1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type:</source>
+ <translation type="obsolete">Meta Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Entrée Hexa</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Note</source>
+ <translation type="obsolete">Mus2: Entrer la Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">ANnuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length:</source>
+ <translation type="obsolete">Longueur:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Position temporelle:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch:</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity On:</source>
+ <translation type="obsolete">Vélocité On:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity Off:</source>
+ <translation type="obsolete">Vélocité Off:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pressure</source>
+ <translation type="obsolete">Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation type="obsolete">Muse: Entrer la Pression polyph.</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Editer la Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation type="obsolete">MusE: Entrez le décalage de Hauteur:</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter SysEx</source>
+ <translation type="obsolete">MusE: Entrer le Sysex</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TimePosition:</source>
+ <translation type="obsolete">Position temporelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Commentaires:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <location filename="../../muse/widgets/tools.cpp" line="35"/>
+ <source>Edit Tools</source>
+ <translation type="unfinished">Outils d&apos;Edition</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="57"/>
+ <source>effect rack</source>
+ <translation type="unfinished">rack d&apos;effets</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="107"/>
+ <source>move up</source>
+ <translation type="unfinished">Déplacer vers le haut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="108"/>
+ <source>move down</source>
+ <translation type="unfinished">Déplacer vers le bas</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="109"/>
+ <source>remove</source>
+ <translation type="unfinished">enlever</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="111"/>
+ <source>bypass</source>
+ <translation type="unfinished">direct</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="112"/>
+ <source>show gui</source>
+ <translation type="unfinished">montrer l&apos;interface</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change</source>
+ <translation type="obsolete">changement</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="113"/>
+ <source>show native gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="115"/>
+ <source>New Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="116"/>
+ <source>New Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Replace effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ExportMidiDialog</name>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source>Save </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source> as smf midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="368"/>
+ <source>MusE: export midi smf file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="39"/>
+ <source>FLUID: open Soundfile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="61"/>
+ <source>Fluid: select Sound Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soundfont</source>
+ <translation type="obsolete">Set de Sons</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Charger</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>FLUID Synth</source>
+ <translation type="obsolete">FLUID Synth</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Gain</source>
+ <translation type="obsolete">Gain</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Room Size</source>
+ <translation type="obsolete">Dimension de la chambre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Damping</source>
+ <translation type="obsolete">Atténuation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Level</source>
+ <translation type="obsolete">Niveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Width</source>
+ <translation type="obsolete">Largeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Vitesse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Depth</source>
+ <translation type="obsolete">Profondeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Number</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Sinusoide</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Triangle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reverb</source>
+ <translation type="obsolete">Réverb</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Chorus</source>
+ <translation type="obsolete">Chorus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pop</source>
+ <translation type="obsolete">Pop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Push</source>
+ <translation type="obsolete">Pousser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show fluidsynth controls</source>
+ <translation type="obsolete">Montrer les contrles de fluidsynth</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">charger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global</source>
+ <translation type="obsolete">Global</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>User</source>
+ <translation type="obsolete">Utilisateur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Project</source>
+ <translation type="obsolete">Projet</translation>
+ </message>
+</context>
+<context>
+ <name>FluidSynthGui</name>
+ <message>
+ <location filename="../../synti/fluidsynth/fluidsynthgui.cpp" line="90"/>
+ <source>Choose soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <location filename="../../muse/widgets/fontsel.cpp" line="47"/>
+ <source>Size:</source>
+ <translation type="unfinished">Taille:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTime</name>
+ <message>
+ <location filename="../../muse/midiedit/gatetime.cpp" line="32"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="unfinished">MusE: modifier le temps de fermeture (Gate Time)</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="obsolete">MusE: modifier le temps de fermeture (Gate Time)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Tous les Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Evènements choisis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Evènements bouclés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Boucle &amp; sélectionnée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Valeurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Vitesse:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Décalage:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Global Settings</source>
+ <translation type="obsolete">MusE: Paramètres</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min. Meter Value</source>
+ <translation type="obsolete">Métrage min.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min.Slider Val</source>
+ <translation type="obsolete">Val. mini. du Curseur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ticks</source>
+ <translation type="obsolete">Tic</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8172</source>
+ <translation type="obsolete">8172</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation type="obsolete">Résolution affichée (Tics par 1/4 de note)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>48</source>
+ <translation type="obsolete">48</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>768</source>
+ <translation type="obsolete">768</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1536</source>
+ <translation type="obsolete">1536</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3072</source>
+ <translation type="obsolete">3072</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6144</source>
+ <translation type="obsolete">6144</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12288</source>
+ <translation type="obsolete">12288</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation type="obsolete">Résolution RTC (Tics par sec.)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/sec</source>
+ <translation type="obsolete">/sec</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI Refresh Rate</source>
+ <translation type="obsolete">Vitesse de rafraichissement de l&apos;interface</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Ok</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help Browser:</source>
+ <translation type="obsolete">Navigateur pour l&apos;aide:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport</source>
+ <translation type="obsolete">Transport</translation>
+ </message>
+</context>
+<context>
+ <name>GreendotButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="49"/>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new tempo</source>
+ <translation type="obsolete">nouveau tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new signature</source>
+ <translation type="obsolete">nouvelle signature</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meter</source>
+ <translation type="obsolete">Métrage</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Temps</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="obsolete">MusE: Piste principale</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo</source>
+ <translation type="obsolete">Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Timesig</source>
+ <translation type="obsolete">Signature Temporelle</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Edition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Couper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Coller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Effacer évènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List Tools</source>
+ <translation type="obsolete">Outils de Liste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tools</source>
+ <translation type="obsolete">Outils d&apos;Insertion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insérer Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Note</source>
+ <translation type="obsolete">insére une note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insérer SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert SysEx</source>
+ <translation type="obsolete">insère une commande midi SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insérer Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Ctrl</source>
+ <translation type="obsolete">insére un caractère de Controle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insérer Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Meta</source>
+ <translation type="obsolete">insére une balise Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Pitch</source>
+ <translation type="obsolete">Insérer Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Pitch</source>
+ <translation type="obsolete">insére un changement de tonalité</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insérr Canal de Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Channel Aftertouch</source>
+ <translation type="obsolete">insére un canal de Pression (AfterTouch)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insérer une note de Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Poly Aftertouch</source>
+ <translation type="obsolete">insère une Pression (AfterTouch) polyphonique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tick</source>
+ <translation type="obsolete">Tic</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Typ</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ch</source>
+ <translation type="obsolete">Can</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val A</source>
+ <translation type="obsolete">Val A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val B</source>
+ <translation type="obsolete">Val B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Val C</source>
+ <translation type="obsolete">Val C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Lon</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment</source>
+ <translation type="obsolete">Comment.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="46"/>
+ <source>MusE: List Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="141"/>
+ <source>Parts</source>
+ <translation type="unfinished">Pièces</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="157"/>
+ <source>Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation type="obsolete">MusE: Plugin d&apos;Entrée Midi: Transposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">On</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TriggerKey</source>
+ <translation type="obsolete">Note de Déclenchement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose:</source>
+ <translation type="obsolete">Transposition:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>+0</source>
+ <translation type="obsolete">+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">aucun</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other raw ...</source>
+ <translation type="obsolete">autre brut (raw)...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Port Table</source>
+ <translation type="obsolete">MusE: Table des ports Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec</source>
+ <translation type="obsolete">Enr</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Name</source>
+ <translation type="obsolete">Nom du Périphérique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State</source>
+ <translation type="obsolete">Etat</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>unknown</source>
+ <translation type="obsolete">inconnu</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation type="obsolete">MusE: Plugin d&apos;Entrée Midi: Contrôle Distant</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Activate</source>
+ <translation type="obsolete">Activer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">On</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Actions</source>
+ <translation type="obsolete">Actions</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Stop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Enregistre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Goto Left Mark</source>
+ <translation type="obsolete">Aller à la Marque Gauche</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Jouer</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">Echelle de la mesure</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="170"/>
+ <source>Bar:Beat:Tick</source>
+ <translation type="unfinished">Mesure:Résolution(Beat):Tic</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation type="obsolete">Hr:Mn:Sc:Fr:Sf</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Lock</source>
+ <translation type="unfinished">Verrouillage</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Text</source>
+ <translation type="unfinished">Texte</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="184"/>
+ <source>Marker Properties</source>
+ <translation type="unfinished">Propriétés du Marqueur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="126"/>
+ <source>MusE: Marker</source>
+ <translation type="unfinished">MusE: Marqueur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="129"/>
+ <source>add marker</source>
+ <translation type="unfinished">Ajouter marqueur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="130"/>
+ <source>Add Marker</source>
+ <translation type="unfinished">Ajoute un marqueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete marker</source>
+ <translation type="obsolete">Effacer Marqueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Marker</source>
+ <translation type="obsolete">Efface le marqueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="139"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Edition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="144"/>
+ <source>marker-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="148"/>
+ <source>edit tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="171"/>
+ <source>Min:Sc:Fr:Sf</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maitre</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="72"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Curseur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="80"/>
+ <source>Snap</source>
+ <translation type="unfinished">Aligne</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="87"/>
+ <source>time at cursor position</source>
+ <translation type="unfinished">Temps à la position du curseur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="88"/>
+ <source>tempo at cursor position</source>
+ <translation type="unfinished">Temps à la position du curseur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="91"/>
+ <source>CurPos </source>
+ <translation type="unfinished">PosCur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="97"/>
+ <source>tempo at current position</source>
+ <translation type="unfinished">tempo à la position en cours</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="98"/>
+ <source>time signature at current position</source>
+ <translation type="unfinished">Signature temporellet à la position en cours</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="49"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished">MusE: PistePrincipale</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="52"/>
+ <source>edit tools</source>
+ <translation type="unfinished">outils d&apos;édition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>EnableMaster</source>
+ <translation type="obsolete">ActiverMaitre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">Utiliser la piste principale</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="69"/>
+ <source>Info</source>
+ <translation type="unfinished">Info</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Off</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="61"/>
+ <source>EnableTempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="62"/>
+ <source>Tempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="64"/>
+ <source>Enable use of tempo map</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Metronome Config</source>
+ <translation type="obsolete">MusE: Configuration du Métronome</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Métronome</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Beep</source>
+ <translation type="obsolete">Bip audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MIDI Click</source>
+ <translation type="obsolete">Clic MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Channel</source>
+ <translation type="obsolete">Canal Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Note</source>
+ <translation type="obsolete">Note Mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Velocity</source>
+ <translation type="obsolete">Vélocité de la Mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Velocity</source>
+ <translation type="obsolete">Résolution (Beat) de la Vélocité</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Note</source>
+ <translation type="obsolete">Note de Résolution (Beat)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port</source>
+ <translation type="obsolete">Port MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Precount</source>
+ <translation type="obsolete">Pré-compte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable</source>
+ <translation type="obsolete">activer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars</source>
+ <translation type="obsolete">Mesures</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>From Mastertrack</source>
+ <translation type="obsolete">de la Piste Principale</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Signature</source>
+ <translation type="obsolete">Signature</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Prerecord</source>
+ <translation type="obsolete">Pré-enregistrement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preroll</source>
+ <translation type="obsolete">PreRoll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>MidiChannelInfo</name>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <location filename="../../muse/midictrl.cpp" line="190"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Vélocité</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: save midi controller list</source>
+ <translation type="obsolete">MusE: enregistrer la liste des controleurs midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load midi controller list</source>
+ <translation type="obsolete">MusE: charger une liste de controleurs midi</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="obsolete">MusE: Définir un Controleur Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>replace controller set</source>
+ <translation type="obsolete">remplacer le groupe de controleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>merge controller set</source>
+ <translation type="obsolete">ajouter le groupe de controleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save controller set as</source>
+ <translation type="obsolete">Enregistrer le groupe de controleurs sous...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Nom </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Type </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Ctrl</source>
+ <translation type="obsolete">H-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Ctrl</source>
+ <translation type="obsolete">L-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Val Min</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">Val Max</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">list des controleurs définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">C&apos;est la liste des controleurs qui ont été définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">Propriétés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Value</source>
+ <translation type="obsolete">Valeur Max</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Value</source>
+ <translation type="obsolete">Valeur Mini</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control7</source>
+ <translation type="obsolete">Control7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control14</source>
+ <translation type="obsolete">Control8</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG-SysEx</source>
+ <translation type="obsolete">XG-SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>SysEx</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">Crée une nouvelle entrée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">Crée une nouvelle entrée dans la liste des controleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">efface l&apos;entrée sélectionnée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+</context>
+<context>
+ <name>MidiEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="47"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Couper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Coller</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="65"/>
+ <source>Play Events</source>
+ <translation type="unfinished">Jouer Evènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="70"/>
+ <source>Step Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="76"/>
+ <source>Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="81"/>
+ <source>Follow Song</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Activer la prise en charge du format smf étendu</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Division</source>
+ <translation type="obsolete">Division</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copyright</source>
+ <translation type="obsolete">Copyright</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config exported Midi Files</source>
+ <translation type="obsolete">Configuration de l&apos;export en fichier Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config exported Midi Files</source>
+ <translation type="obsolete">MusE: Configurer l&apos;export en fichier Midi</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="obsolete">MusE: Filtre Entrée Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record Filter</source>
+ <translation type="obsolete">Filtre d&apos;Enregistrement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On</source>
+ <translation type="obsolete">Note On</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Pression Poly</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program Change</source>
+ <translation type="obsolete">Changement de son (Program Change)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">Pression (After Touch)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Molette de modulation - Hauteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thru Filter</source>
+ <translation type="obsolete">Filtre Thru</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller Filter</source>
+ <translation type="obsolete">Filtre Controleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Filter</source>
+ <translation type="obsolete">Filtre Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>14</source>
+ <translation type="obsolete">14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>10</source>
+ <translation type="obsolete">10</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6</source>
+ <translation type="obsolete">6</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12</source>
+ <translation type="obsolete">12</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>9</source>
+ <translation type="obsolete">9</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8</source>
+ <translation type="obsolete">8</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>13</source>
+ <translation type="obsolete">13</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>15</source>
+ <translation type="obsolete">15</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>16</source>
+ <translation type="obsolete">16</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>7</source>
+ <translation type="obsolete">7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>11</source>
+ <translation type="obsolete">11</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5</source>
+ <translation type="obsolete">5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="999"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1035"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1015"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Nouveau</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Transformator</source>
+ <translation type="obsolete">MusE: Transformateur d&apos;Entrée Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filtre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Tous</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Egal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Différent de</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Pression Poly</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Controle de Changement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Molette de modulation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Valeur 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Valeur 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Type d&apos;Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignore</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Plus Haut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Plus Bas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">A l&apos;intérieur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Al&apos;extérieur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Travail</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Garder</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Fixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">Plus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">Moins</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Diviser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Inverser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ScaleMap</source>
+ <translation type="obsolete">Echelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">Retourner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dyn</source>
+ <translation type="obsolete">Dyn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Aléatoire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modules</source>
+ <translation type="obsolete">Modules</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 1</source>
+ <translation type="obsolete">Activer module 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 2</source>
+ <translation type="obsolete">Activer module 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 3</source>
+ <translation type="obsolete">Activer module 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 4</source>
+ <translation type="obsolete">Activer module 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Réglages enregistrés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Nom:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Commentaires:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">Fonction</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new preset</source>
+ <translation type="obsolete">Crée un nouveau réglage</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Efface</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">efface un réglage</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Dismiss</source>
+ <translation type="obsolete">&amp;Rejeter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">Liste de Réglages</translation>
+ </message>
+</context>
+<context>
+ <name>MidiOutPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="784"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="801"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="820"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiPluginDialog</name>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="539"/>
+ <source>MusE: select midi plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Name</source>
+ <translation type="unfinished">Nom</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="570"/>
+ <source>Ok</source>
+ <translation type="unfinished">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="571"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiRack</name>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="51"/>
+ <source>midi effect rack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="96"/>
+ <source>move up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="97"/>
+ <source>move down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="98"/>
+ <source>remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="99"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="100"/>
+ <source>show gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="101"/>
+ <source>new</source>
+ <translation type="unfinished">nouveau</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: raw midi device configuration</source>
+ <translation type="obsolete">MusE: configuration des périphériques Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device</source>
+ <translation type="obsolete">Périphérique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt. Ports</source>
+ <translation type="obsolete">Ports virtuels</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Vitesse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Handshaking</source>
+ <translation type="obsolete">Méthode (handshaking)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Properties</source>
+ <translation type="obsolete">Propriétés du périphérique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt.Ports</source>
+ <translation type="obsolete">Ports virtuels</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Raw Device</source>
+ <translation type="obsolete">Périphérique pur (raw)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Serial Port</source>
+ <translation type="obsolete">Port série</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pipe</source>
+ <translation type="obsolete">Tuyau (Pipe)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Path</source>
+ <translation type="obsolete">Chemin du périphérique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>9600</source>
+ <translation type="obsolete">9600</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>19200</source>
+ <translation type="obsolete">19200</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>38400</source>
+ <translation type="obsolete">38400</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Aucun</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTS/CTS</source>
+ <translation type="obsolete">RTS/CTS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Xon/Xoff</source>
+ <translation type="obsolete">Xon/Xoff</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>Var</source>
+ <translation type="unfinished">Var</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>Rev</source>
+ <translation type="unfinished">Rev</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>Cho</source>
+ <translation type="unfinished">Cho</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan</source>
+ <translation type="unfinished">Pan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">silence</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">écoute pre fader</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="499"/>
+ <source>Tracks</source>
+ <translation type="unfinished">Pistes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="511"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Sync</source>
+ <translation type="obsolete">MusE: Synchro Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>hour</source>
+ <translation type="obsolete">heure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>h</source>
+ <translation type="obsolete">h</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>minute</source>
+ <translation type="obsolete">minute</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>m</source>
+ <translation type="obsolete">m</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>second</source>
+ <translation type="obsolete">second</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>s</source>
+ <translation type="obsolete">s</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>frame</source>
+ <translation type="obsolete">Armature (frame)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>f</source>
+ <translation type="obsolete">f</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>subframe</source>
+ <translation type="obsolete">Armature fine (subframe)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>24</source>
+ <translation type="obsolete">24</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>25</source>
+ <translation type="obsolete">25</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>30D</source>
+ <translation type="obsolete">30D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>30N</source>
+ <translation type="obsolete">30N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Id:</source>
+ <translation type="obsolete">Id:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>device id</source>
+ <translation type="obsolete">Id. du périphérique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port:</source>
+ <translation type="obsolete">Port:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi port</source>
+ <translation type="obsolete">port midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Source</source>
+ <translation type="obsolete">Source de la synchro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept MTC</source>
+ <translation type="obsolete">accepter MTC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept Midi Clock</source>
+ <translation type="obsolete">accepter Horloge Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>accept MMC</source>
+ <translation type="obsolete">accepter MMC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Gen</source>
+ <translation type="obsolete">Générer Synchro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Time Code (MTC)</source>
+ <translation type="obsolete">Code Temporel Midi (MTC)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Clock</source>
+ <translation type="obsolete">Horloge Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Machine Control (MMC)</source>
+ <translation type="obsolete">Controle Machine MIDI (MMC)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Mode</source>
+ <translation type="obsolete">Mode de synchro</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maitre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Slave</source>
+ <translation type="obsolete">Esclave</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">tous</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MTC</source>
+ <translation type="obsolete">MTC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type:</source>
+ <translation type="obsolete">Type:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Décalage:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyntiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1274"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1281"/>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1312"/>
+ <source>Input Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTimeDelegate</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="143"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="147"/>
+ <source>Midi Port</source>
+ <translation type="unfinished">Port MIDI</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: InfoPiste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">canal de sortie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all midi events are send to this output channel</source>
+ <translation type="obsolete">tous les évènements midi seront envoyés vers cette sortie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Info Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nom de Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">port de sortie (Output Ch.)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">off</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change stereo position</source>
+ <translation type="obsolete">changer la position stéréo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OCh.</source>
+ <translation type="obsolete">OCh.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MidiThru</source>
+ <translation type="obsolete">MidiThru</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>???</source>
+ <translation type="obsolete">???</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select instrument patch</source>
+ <translation type="obsolete">choisissez le groupe d&apos;instruments</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transp.</source>
+ <translation type="obsolete">Transp.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volume</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Info</source>
+ <translation type="obsolete">Info canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pan</source>
+ <translation type="obsolete">Pan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delay</source>
+ <translation type="obsolete">Délai</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Bank</source>
+ <translation type="obsolete">H-Bank</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Compr.</source>
+ <translation type="obsolete">Compr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Bank</source>
+ <translation type="obsolete">L-Bank</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Progr.</source>
+ <translation type="obsolete">Progr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Vélocité</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Longueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input ports</source>
+ <translation type="obsolete">ports d&apos;entrée (Input Ch.)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>IChan.</source>
+ <translation type="obsolete">IChan:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input channels</source>
+ <translation type="obsolete">canaux d&apos;entrée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events from all configured channels are
+recorded to this track.
+You can specify more than one channel for
+recording:
+ 1 2 3 record from channel 1 2 and 3
+ 1-3 same
+ 1-3 5<byte value="x9"/> record from channel 1 2 3 and 5</source>
+ <translation type="obsolete">Les évènements de tous les canaux
+configurés sont enregistrés sur cette piste.<byte value="x9"/>
+Vous pouvez spécifier plus d&apos;un canal
+pour l&apos;enregistrement:
+ 1 2 3<byte value="x9"/>enregistre depuis les canaux 1, 2 et 3
+ 1-3<byte value="x9"/><byte value="x9"/>idem
+ 1-3 5<byte value="x9"/> enregistre depuis les canaux 1, 2, 3 et 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec</source>
+ <translation type="obsolete">Enr</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackerEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="27"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="32"/>
+ <source>MidiTracker Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="51"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panique!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="55"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="64"/>
+ <source>row features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="87"/>
+ <source>Number of visible rows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="66"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Quantiser</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Transformator</source>
+ <translation type="obsolete">MusE: Transformateur Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">ListRéglages</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Transformations</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Type d&apos;évènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Garder</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Fixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">Pression Poly</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Changement de Controle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Molette de modulation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">Addition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">Soustraction</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplication</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Division</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Valeur 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Inverser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ScaleMap</source>
+ <translation type="obsolete">Echelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">Retourner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dyn</source>
+ <translation type="obsolete">Dyn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Aléatoire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Valeur 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Longueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Position</source>
+ <translation type="obsolete">Position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filtre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Tous</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Egal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Différent</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignore</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Plus haut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Plus bas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">A l&apos;intérieur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">A l&apos;extérieur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar Range</source>
+ <translation type="obsolete">Type de mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">Réglages</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Nom:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Commentaire:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Type</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>process all events</source>
+ <translation type="obsolete">Transformer tous les évènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected tracks</source>
+ <translation type="obsolete">pistes sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>inside loop</source>
+ <translation type="obsolete">dans la boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">fonction</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select</source>
+ <translation type="obsolete">Sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize</source>
+ <translation type="obsolete">Quantiser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete</source>
+ <translation type="obsolete">Effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transform</source>
+ <translation type="obsolete">Transformer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert</source>
+ <translation type="obsolete">Insérer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Extract</source>
+ <translation type="obsolete">Extraire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize Value</source>
+ <translation type="obsolete">Valeur de Quantisation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="205"/>
+ <source>New</source>
+ <translation type="unfinished">Nouveau</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="129"/>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation type="unfinished">Fichiers Wave (*.wav);;Tous les Fichiers (*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="126"/>
+ <source>MusE: set mixdown file name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation type="obsolete">MusE: Fichier wav pour mixage</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Path</source>
+ <translation type="obsolete">Chemin d&apos;accés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Canal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo</source>
+ <translation type="obsolete">Stéréo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mono</source>
+ <translation type="obsolete">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5.1</source>
+ <translation type="obsolete">5.1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav,16 Bit</source>
+ <translation type="obsolete">wav,16 Bit</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav, 24 Bit</source>
+ <translation type="obsolete">v, 24 Bit</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>wav, 32 Bit (float)</source>
+ <translation type="obsolete">wav, 32 Bit (flottant)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Format</source>
+ <translation type="obsolete">Format</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mute</source>
+ <translation type="obsolete">Muet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Mixer</source>
+ <translation type="obsolete">MusE: Mixeur Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rev</source>
+ <translation type="obsolete">Rev</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cho</source>
+ <translation type="obsolete">Cho</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Var</source>
+ <translation type="obsolete">Var</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pan</source>
+ <translation type="obsolete">Pan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Maitre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="46"/>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="49"/>
+ <source>&amp;Create</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="52"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="53"/>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="56"/>
+ <source>Show Midi Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="57"/>
+ <source>Show Midi Out Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="58"/>
+ <source>Show Midi In Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="62"/>
+ <source>Show Wave Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="63"/>
+ <source>Show Output Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="64"/>
+ <source>Show Group Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="65"/>
+ <source>Show Input Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="66"/>
+ <source>Show Synthesizer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="616"/>
+ <source>Open &amp;Recent</source>
+ <translation type="unfinished">Ouvrir &amp;Récent</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As</source>
+ <translation type="obsolete">Enregistrer &amp;Sous</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">Configuration Im&amp;primante</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="629"/>
+ <source>Import Midifile</source>
+ <translation type="unfinished">Importer fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="631"/>
+ <source>Export Midifile</source>
+ <translation type="unfinished">Exporter fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="865"/>
+ <source>Import Wave File</source>
+ <translation type="unfinished">Importer fichier WAV</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">&amp;Quitter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="649"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Edition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Co&amp;uper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">Co&amp;ller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Effacer Piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="666"/>
+ <source>Add Track</source>
+ <translation type="unfinished">Ajouter Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">Selectionner &amp;Tout</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">&amp;Dé-selectionner tout</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">Inverser la &amp;Sélection</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">A l&apos;&amp;intérieur de la Boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">A l&apos;e&amp;xtérieur de la Boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="obsolete">Tous les &amp;bouts de la Piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="672"/>
+ <source>Select</source>
+ <translation type="unfinished">Sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drums</source>
+ <translation type="obsolete">Batterie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List</source>
+ <translation type="obsolete">Liste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Graphic</source>
+ <translation type="obsolete">Graphique</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mastertrack</source>
+ <translation type="obsolete">PistePrincipale</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi &amp;Transform</source>
+ <translation type="obsolete">&amp;Transformation MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="703"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifier la Durée du Pont (Gate Time)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="704"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifier la vélocité</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="705"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="717"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="707"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Sortie fine</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="708"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Effacer évènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="709"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Décalage de note</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="710"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Décalage horloge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="711"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copier la mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="712"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Effacer la mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="713"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Supprimer la mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="714"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Créer une mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="715"/>
+ <source>Mix Track</source>
+ <translation type="unfinished">Mixer Piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="700"/>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="755"/>
+ <source>&amp;Structure</source>
+ <translation type="unfinished">&amp;Structure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="757"/>
+ <source>Global Cut</source>
+ <translation type="unfinished">Couper tout</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="760"/>
+ <source>Global Insert</source>
+ <translation type="unfinished">Insérer tout</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="763"/>
+ <source>Global Split</source>
+ <translation type="unfinished">Diviser Tout</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="766"/>
+ <source>Copy Range</source>
+ <translation type="unfinished">Limites de Copie</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="772"/>
+ <source>Cut Events</source>
+ <translation type="unfinished">Couper Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Display</source>
+ <translation type="obsolete">&amp;Affichage</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport Panel</source>
+ <translation type="obsolete">Panneau de Controle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bigtime window</source>
+ <translation type="obsolete">Fenetre GrandeHorloge</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="818"/>
+ <source>dont follow Song</source>
+ <translation type="unfinished">Ne pas suivre la chanson</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="821"/>
+ <source>follow page</source>
+ <translation type="unfinished">Défilement par page</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="824"/>
+ <source>follow continuous</source>
+ <translation type="unfinished">Défilement fin</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global Settings</source>
+ <translation type="obsolete">Paramètres Généraux</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="816"/>
+ <source>follow song</source>
+ <translation type="unfinished">Suivre la chanson</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Métronome</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="833"/>
+ <source>Midi Sync</source>
+ <translation type="unfinished">Synchro MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi File Config</source>
+ <translation type="obsolete">Paramètres du fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Appearance settings</source>
+ <translation type="obsolete">Apparance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Synthétiseur virtuel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Ports</source>
+ <translation type="obsolete">Ports MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio System</source>
+ <translation type="obsolete">System Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Configuration</source>
+ <translation type="obsolete">Sauvegarder la Configuration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Transform</source>
+ <translation type="obsolete">Transformations Entrée MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Filter</source>
+ <translation type="obsolete">Filtres pour l&apos;Entrée MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Remote Control</source>
+ <translation type="obsolete">Controle MIDI a distance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random Rhythm Generator</source>
+ <translation type="obsolete">Générateur aléatoire de rythmes</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="780"/>
+ <source>&amp;Midi</source>
+ <translation type="unfinished">&amp;MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Define Controller</source>
+ <translation type="obsolete">Définir Controleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input Plugins</source>
+ <translation type="obsolete">Plugins d&apos;Entrée</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="786"/>
+ <source>Reset Instr.</source>
+ <translation type="unfinished">Ré-initialisation des Instruments</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="788"/>
+ <source>Init Instr.</source>
+ <translation type="unfinished">Init. Instr.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="790"/>
+ <source>local off</source>
+ <translation type="unfinished">local off</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="797"/>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">&amp;Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cliplist</source>
+ <translation type="obsolete">ListClip</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="799"/>
+ <source>Bounce to Track</source>
+ <translation type="unfinished">Rebondir (bounce) sur la piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="802"/>
+ <source>Bounce to File</source>
+ <translation type="unfinished">Rebondir (bounce) sur Fichier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bounce</source>
+ <translation type="obsolete">Rebondir (bounce)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="846"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">&amp;Aide</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Browser</source>
+ <translation type="obsolete">Navigateur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;A propos</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="859"/>
+ <source>About&amp;Qt</source>
+ <translation type="unfinished">A propos de &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>What&apos;s &amp;This</source>
+ <translation type="obsolete">Qu&apos;est-ce que c&apos;es&amp;t</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load project</source>
+ <translation type="obsolete">Muse: charger Projet</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1375"/>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation type="unfinished">Le Projet en cours contient des données non encore sauvegardées.
+Enregistrer?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">&amp;Pas d&apos;enregistrement</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Save As</source>
+ <translation type="obsolete">MusE: enregistrer sous</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="128"/>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: importer fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Export Midi</source>
+ <translation type="obsolete">MusE: exporter fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1657"/>
+ <source>Nothing to edit</source>
+ <translation type="unfinished">Rien à éditer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation type="obsolete">Le Projet en cours contient des données non sauvegardées.
+Enregistrer?<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Overwrite</source>
+ <translation type="obsolete">Ec&amp;raser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>no help found at: </source>
+ <translation type="obsolete">Pas d&apos;aide trouvée ici:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="40"/>
+ <source>MusE: Open Help</source>
+ <translation type="unfinished">MusE: Ouvrir l&apos;Aide</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to import a audio file you have first to selecta audio track</source>
+ <translation type="obsolete">Pour importer in fichier AUDIO, sélectionner d&apos;abord une piste AUDIO</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>UndoRedo</source>
+ <translation type="obsolete">AnnulerRefaire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo</source>
+ <translation type="obsolete">annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Und&amp;o</source>
+ <translation type="obsolete">&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo</source>
+ <translation type="obsolete">Refaire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Re&amp;do</source>
+ <translation type="obsolete">Re&amp;faire</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo last change to song</source>
+ <translation type="obsolete">Annuler le dernier changement sur la chanson</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo last undo</source>
+ <translation type="obsolete">Annuler l&apos;annulation (refaire)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="588"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">Punch-In</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchin</source>
+ <translation type="obsolete">Punch-In</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">Punch-Out</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchout</source>
+ <translation type="obsolete">Punch-Out</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start</source>
+ <translation type="obsolete">démarrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">Démarrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">rembobiner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rewind</source>
+ <translation type="obsolete">Rembobiner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">avance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Forward</source>
+ <translation type="obsolete">Avance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">stop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Stop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">jouer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Jouer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>panic</source>
+ <translation type="obsolete">panique!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="591"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panique!</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>open</source>
+ <translation type="obsolete">ouvrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open</source>
+ <translation type="obsolete">&amp;Ouvrir</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save</source>
+ <translation type="obsolete">enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pianoroll</source>
+ <translation type="obsolete">rouleau Piano</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pianoroll</source>
+ <translation type="obsolete">Rouleau-Piano</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Score</source>
+ <translation type="obsolete">Partition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>marker</source>
+ <translation type="obsolete">marqueur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Marker</source>
+ <translation type="obsolete">Marker</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Buttons</source>
+ <translation type="obsolete">Boutons Fichiers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown File Format</source>
+ <translation type="obsolete">Format de fichier inconnu</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">aucun</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1287"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: échec de l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: About</source>
+ <translation type="obsolete">MusE: A propos</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Song: </source>
+ <translation type="obsolete">MusE: chanson</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="307"/>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">lecture du fichier MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>
+failed</source>
+ <translation type="obsolete">Echec</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2407"/>
+ <source>MusE: Copy Range</source>
+ <translation type="unfinished">MusE: limites de la copie</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2424"/>
+ <source>not implemented</source>
+ <translation type="unfinished">Non-implémenté (désolé)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2422"/>
+ <source>MusE: Cut Events</source>
+ <translation type="unfinished">MusE: Couper Evènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2497"/>
+ <source>MusE: Bounce to Track</source>
+ <translation type="unfinished">MusE: Rebondir sur la piste (bounce)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2482"/>
+ <source>more than one target track selected</source>
+ <translation type="unfinished">vous avez sélectionné plus d&apos;une piste en destination</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2489"/>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation type="unfinished">mauvais type de piste en destination,
+choisissez une piste AUDIO en destination</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2499"/>
+ <source>no target track selected</source>
+ <translation type="unfinished">vous n&apos;avez pas sélectionné de piste de destination</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="870"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="872"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Curseur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="881"/>
+ <source>Snap</source>
+ <translation type="unfinished">Aligne</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="909"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="918"/>
+ <source>midi pitch</source>
+ <translation type="unfinished">hauteur midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="919"/>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished">transposition midi globale</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="922"/>
+ <source>Tempo</source>
+ <translation type="unfinished">Tempo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="933"/>
+ <source>midi tempo</source>
+ <translation type="unfinished">tempo midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="945"/>
+ <source>N</source>
+ <translation type="unfinished">N</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="38"/>
+ <source>MusE manual not found at: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="857"/>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="190"/>
+ <source>Failed to start audio!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="191"/>
+ <source>Was not able to start audio, check if jack is running.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="574"/>
+ <source>Project Buttons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="612"/>
+ <source>&amp;Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="663"/>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="693"/>
+ <source>Project Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="724"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="782"/>
+ <source>Edit Instrument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="805"/>
+ <source>Restart Audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="812"/>
+ <source>Setti&amp;ngs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="813"/>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="835"/>
+ <source>Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="838"/>
+ <source>Preferences</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="848"/>
+ <source>&amp;Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="850"/>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="853"/>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="856"/>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="863"/>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="894"/>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1330"/>
+ <source>MusE: new project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1333"/>
+ <source>Cannot create project folder &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1182"/>
+ <source>Cannot open template file
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1189"/>
+ <source>File &lt;%1&gt; read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1279"/>
+ <source>MusE: Create tmp file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2438"/>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2440"/>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2524"/>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2526"/>
+ <source>no output track found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="146"/>
+ <source>MusE: import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="309"/>
+ <source>
+failed: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">revenir à la position de départ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">démarrer la lecture du séquenceur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+</context>
+<context>
+ <name>MuseApplication</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="52"/>
+ <source>Transport: Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="56"/>
+ <source>Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="57"/>
+ <source>rewind to start position</source>
+ <translation type="unfinished">revenir à la position de départ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="62"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="66"/>
+ <source>Loop</source>
+ <translation type="unfinished">Boucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="67"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="unfinished">Boucler entre les marqueurs gauche et droit</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="72"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="76"/>
+ <source>Play</source>
+ <translation type="unfinished">Jouer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="77"/>
+ <source>start sequencer play</source>
+ <translation type="unfinished">démarrer la lecture du séquenceur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="82"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="89"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="93"/>
+ <source>Stop</source>
+ <translation type="unfinished">Stop</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="94"/>
+ <source>stop sequencer</source>
+ <translation type="unfinished">arréter le séquenceur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="99"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="105"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="111"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="117"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="121"/>
+ <source>Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="122"/>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">pour enregistrer, presser Enregistrement (Record) puis Lecture (Play)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="128"/>
+ <source>Transport: Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="132"/>
+ <source>Punchin</source>
+ <translation type="unfinished">Punch-In</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="133"/>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">l&apos;enregistrement démarre au marqueur gauche</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="138"/>
+ <source>Transport: Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="142"/>
+ <source>Punchout</source>
+ <translation type="unfinished">Punch-Out</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="143"/>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">l&apos;enregistrement s&apos;arrète au marqueur droit</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="148"/>
+ <source>Transport: Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="152"/>
+ <source>rewind</source>
+ <translation type="unfinished">rembobiner</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="153"/>
+ <source>rewind current position</source>
+ <translation type="unfinished">revenir à la position en cours</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="158"/>
+ <source>Transport: Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="162"/>
+ <source>forward</source>
+ <translation type="unfinished">avance</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="163"/>
+ <source>move current position</source>
+ <translation type="unfinished">déplacer la position en cours</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="172"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panique!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="173"/>
+ <source>send note off to all midi channels</source>
+ <translation type="unfinished">envoyer ordre de relachement de note à tous les canaux midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="178"/>
+ <source>Edit: Undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="182"/>
+ <source>undo</source>
+ <translation type="unfinished">annuler</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="183"/>
+ <source>undo last change to song</source>
+ <translation type="unfinished">Annuler le dernier changement sur la chanson</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="188"/>
+ <source>Edit: Redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="192"/>
+ <source>redo</source>
+ <translation type="unfinished">Refaire</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="193"/>
+ <source>redo last undo</source>
+ <translation type="unfinished">Annuler l&apos;annulation (refaire)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="198"/>
+ <source>Edit: Cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="203"/>
+ <source>Cut</source>
+ <translation type="unfinished">Couper</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="208"/>
+ <source>Edit: Copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="213"/>
+ <source>Copy</source>
+ <translation type="unfinished">Copier</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="218"/>
+ <source>Edit: Paste,</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="223"/>
+ <source>Paste</source>
+ <translation type="unfinished">Coller</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="228"/>
+ <source>Edit: Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="233"/>
+ <source>Delete</source>
+ <translation type="unfinished">Effacer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="238"/>
+ <source>Open</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="242"/>
+ <source>open project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="244"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="249"/>
+ <source>Save</source>
+ <translation type="unfinished">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="253"/>
+ <source>save project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="255"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="260"/>
+ <source>File: Save as</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="264"/>
+ <source>save project as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="266"/>
+ <source>Click this button to save a new copy of the project.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="270"/>
+ <source>File: Save as Template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="274"/>
+ <source>save project as template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="276"/>
+ <source>Click this button to save the project you are editing
+for later use as a template.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="281"/>
+ <source>File: Open recent file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="287"/>
+ <source>File: Import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="293"/>
+ <source>File: Export midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="299"/>
+ <source>File: Import audio file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="305"/>
+ <source>File: Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="310"/>
+ <source>Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="316"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="321"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Tous les &amp;bouts de la Piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="326"/>
+ <source>Open Pianoroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="330"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Rouleau-Piano</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="331"/>
+ <source>Start Pianoroll Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="336"/>
+ <source>Open MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="340"/>
+ <source>MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="341"/>
+ <source>Start Midi Tracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="346"/>
+ <source>Open drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="350"/>
+ <source>Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="351"/>
+ <source>Start Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="356"/>
+ <source>Open wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="361"/>
+ <source>Wave Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="366"/>
+ <source>Open listeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="370"/>
+ <source>Properties</source>
+ <translation type="unfinished">Propriétés</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="371"/>
+ <source>open Properties Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="376"/>
+ <source>Open mastertrack editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="380"/>
+ <source>Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="381"/>
+ <source>Start Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="386"/>
+ <source>Add midi track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="392"/>
+ <source>Add drum track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="398"/>
+ <source>Add wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="404"/>
+ <source>Add audio output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="410"/>
+ <source>Add audio group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="416"/>
+ <source>Add audio input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="422"/>
+ <source>Structure: Global cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="428"/>
+ <source>Structure: Global insert</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="434"/>
+ <source>Structure: Global split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="440"/>
+ <source>Structure: Copy range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="446"/>
+ <source>Structure: Cut events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="452"/>
+ <source>View: Open mixer 1 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="456"/>
+ <source>Mixer1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="457"/>
+ <source>Show Mixer 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="462"/>
+ <source>View: Open mixer 2 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="466"/>
+ <source>Mixer2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="467"/>
+ <source>Show Mixer 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="472"/>
+ <source>View: Toggle transport window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="476"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="477"/>
+ <source>Show Transport Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="482"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="486"/>
+ <source>BigTime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="487"/>
+ <source>Show BigTime Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="492"/>
+ <source>View: Open marker window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="496"/>
+ <source>Marker</source>
+ <translation type="unfinished">Marker</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="497"/>
+ <source>Show Marker List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="502"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="508"/>
+ <source>Settings: Follow song off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="514"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="520"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="526"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="532"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="538"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="544"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="550"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="556"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="562"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="568"/>
+ <source>Midi: Reset midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="574"/>
+ <source>Midi: Init midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="580"/>
+ <source>Midi: Midi local off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="586"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="592"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="598"/>
+ <source>Audio: Restart audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="604"/>
+ <source>Help: Open Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="610"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="616"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="622"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="628"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="634"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="640"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="646"/>
+ <source>Midi: Transpose</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="651"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="654"/>
+ <source>Edit: Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="659"/>
+ <source>Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="664"/>
+ <source>Edit: Select none</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="669"/>
+ <source>Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="674"/>
+ <source>Edit: Invert selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="679"/>
+ <source>Invert Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="684"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="689"/>
+ <source>Select Inside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="694"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="699"/>
+ <source>Select Outside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="716"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="710"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="722"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="728"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="734"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="740"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="746"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="751"/>
+ <source>Set fixed length</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="754"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="759"/>
+ <source>Over Quantize</source>
+ <translation type="unfinished">Plus de Quantisation</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="762"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="767"/>
+ <source>Note On Quantize</source>
+ <translation type="unfinished">Quantisation Appui de Note</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="770"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="775"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished">Quantisation Appui/Relachement de Note</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="778"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="783"/>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished">Quantisation itérative</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="786"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="792"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="797"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifier temps de fermeture (gate time)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="800"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="805"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifier la vélocité</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="808"/>
+ <source>Edit: Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="813"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="816"/>
+ <source>Edit: Thin Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="821"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Sortie fine</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="824"/>
+ <source>Edit: Erase Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="829"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Effacer Evènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="832"/>
+ <source>Edit: Note Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="837"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Décalage de Note</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="840"/>
+ <source>Edit: Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="845"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Décalage temporel</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="848"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="853"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copier mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="856"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="861"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Effacer mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="864"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="869"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Supprimer mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="872"/>
+ <source>Edit: Create Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="877"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Créer mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="880"/>
+ <source>Edit: Change event color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="886"/>
+ <source>Tool: Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="890"/>
+ <source>Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="895"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="unfinished">Choisir l&apos;Outil de Pointage:
+avec l&apos;outil de pointage vous pouvez:
+ choisir des pièces
+ déplacer des pièces
+ copier des pièces</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="900"/>
+ <source>Tool: Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="904"/>
+ <source>Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="908"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="unfinished">Choisir l&apos;Outil Crayon
+avec le crayon vous pouvez:
+ créer de nouvelles pièces
+ modifier la longueur des pièces</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="913"/>
+ <source>Tool: Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="917"/>
+ <source>Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="919"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="unfinished">choisir l&apos;Outil Gomme:
+avec la gomme vous pouvez effacer les pièces</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="924"/>
+ <source>Tool: Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="928"/>
+ <source>Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="930"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="unfinished">Choisir l&apos;Outil Ciseaux
+avec les ciseaux vous pouver couper une pièce</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="935"/>
+ <source>Tool: Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="939"/>
+ <source>Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="941"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="unfinished">Choisir l&apos;Outil Colle:
+avec la colle vous pouvez coller deux pièces ensemble</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="951"/>
+ <source>Declone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="954"/>
+ <source>Tool: Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="958"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Quantiser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="960"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="unfinished">Choisir l&apos;Outil Quantisation:
+pour voir les marques de quantisation</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="965"/>
+ <source>Tool: Line Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="969"/>
+ <source>Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="970"/>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished">Choisir l&apos;Outil de Dessin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="975"/>
+ <source>Tool: Mute Parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="979"/>
+ <source>Mute</source>
+ <translation type="unfinished">Muet</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="981"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="unfinished">Choisir l&apos;Outil Silence:
+cliquez sur une pièces pour la rendre muette ou pas.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="987"/>
+ <source>Transport: Increase current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="993"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="999"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1005"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1011"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1017"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1023"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1029"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1035"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1041"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1047"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1053"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1059"/>
+ <source>Insert</source>
+ <translation type="unfinished">Insérer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1065"/>
+ <source>Insert Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1071"/>
+ <source>Insert Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1077"/>
+ <source>Change Event Position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1083"/>
+ <source>Edit Event Value</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="38"/>
+ <source>Start</source>
+ <translation type="unfinished">Début</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="47"/>
+ <source>Len</source>
+ <translation type="unfinished">Lon</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="57"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Hauteur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="65"/>
+ <source>Velo On</source>
+ <translation type="unfinished">Velo on</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="74"/>
+ <source>Velo Off</source>
+ <translation type="unfinished">Velo off</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="34"/>
+ <source>Note Info</source>
+ <translation type="unfinished">Info Note</translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Organ</source>
+ <translation type="obsolete">MusE: Orgue</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Presets</source>
+ <translation type="obsolete">Presets</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Set</source>
+ <translation type="obsolete">Set</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>load preset list</source>
+ <translation type="obsolete">charger la liste des presets</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list</source>
+ <translation type="obsolete">enregistrer la liste des presets</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>O-1</source>
+ <translation type="obsolete">0-1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Oscillator</source>
+ <translation type="obsolete">Oscillateur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Brass</source>
+ <translation type="obsolete">Cuivres</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Reed</source>
+ <translation type="obsolete">Roseau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flute</source>
+ <translation type="obsolete">Flute</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drawbars</source>
+ <translation type="obsolete">Grands Tuyaux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>16&apos;</source>
+ <translation type="obsolete">16&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4&apos;</source>
+ <translation type="obsolete">4&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2 2/3&apos;</source>
+ <translation type="obsolete">2 2/3&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2&apos;</source>
+ <translation type="obsolete">2&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8&apos;</source>
+ <translation type="obsolete">8&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5 1/3&apos;</source>
+ <translation type="obsolete">5 1/3&apos;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Envelope Lo</source>
+ <translation type="obsolete">Enveloppe basse (Lo)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Attack(ms)</source>
+ <translation type="obsolete">Attaque (en ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Decay(ms)</source>
+ <translation type="obsolete">Affaiblissement (ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sustain(%)</source>
+ <translation type="obsolete">Tenue (%)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Release(ms)</source>
+ <translation type="obsolete">Relachement (ms)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Envelope Hi</source>
+ <translation type="obsolete">Enveloppe Haute (Hi)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Vélocité</translation>
+ </message>
+</context>
+<context>
+ <name>OutportCombo</name>
+ <message>
+ <location filename="../../muse/widgets/outportcombo.cpp" line="32"/>
+ <source>Midi Output Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paper Size</source>
+ <translation type="obsolete">Dimension de la feuille</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>user</source>
+ <translation type="obsolete">utilisateur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Margins</source>
+ <translation type="obsolete">Marges</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Header</source>
+ <translation type="obsolete">En-Tte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Title</source>
+ <translation type="obsolete">Titre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Author</source>
+ <translation type="obsolete">Auteur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Polices</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Page No.</source>
+ <translation type="obsolete">N° de page</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure No</source>
+ <translation type="obsolete">N° de mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nom de la Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lyrics</source>
+ <translation type="obsolete">Paroles</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Layout</source>
+ <translation type="obsolete">Disposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Scale</source>
+ <translation type="obsolete">Echelle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flags</source>
+ <translation type="obsolete">Drapeaux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show page no.</source>
+ <translation type="obsolete">Montrer la page N°</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show measure no.</source>
+ <translation type="obsolete">Montrer la mesure N°</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show track name</source>
+ <translation type="obsolete">Montrer le nom des Pistes</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Appliquer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Annuler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>left Margin</source>
+ <translation type="obsolete">Marge de gauche</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>top Margin</source>
+ <translation type="obsolete">Marge du haut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>right Margin</source>
+ <translation type="obsolete">Marge de droite</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bottom Margin</source>
+ <translation type="obsolete">Marge du bas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars across the Page</source>
+ <translation type="obsolete">Mesures par Page</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation type="obsolete">Ne peut copier/déplacer vers une type de Piste différent</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Co&amp;uper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rename</source>
+ <translation type="obsolete">renommer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>color</source>
+ <translation type="obsolete">couleur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>split</source>
+ <translation type="obsolete">séparer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">coller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>de-clone</source>
+ <translation type="obsolete">annuler-clonage</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="453"/>
+ <source>pianoroll</source>
+ <translation type="unfinished">piano-roll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list</source>
+ <translation type="obsolete">liste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="449"/>
+ <source>drums</source>
+ <translation type="unfinished">batterie</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="461"/>
+ <source>wave edit</source>
+ <translation type="unfinished">édition wav</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation type="obsolete">Ne peut coller: plusieurs pistes sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: no track selected</source>
+ <translation type="obsolete">Ne peut coller: pas de piste choisie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation type="obsolete">Ne peut coller des bouts MIDI sur des pistes AUDIO</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation type="obsolete">Ne peut copier des bouts AUDIO sur des pistes MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: wrong data type</source>
+ <translation type="obsolete">Ne peut coller: mauvais type de donnée</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="442"/>
+ <source>AutoFill...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="456"/>
+ <source>miditracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="496"/>
+ <source>MusE: Get auto fill loop len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="497"/>
+ <source>Measures: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="889"/>
+ <source>MusE: Change Part Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="890"/>
+ <source>PartName:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="421"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="424"/>
+ <source>Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation type="obsolete">MusE: Baie de Patches MIDI ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ALSA Patch Bay</source>
+ <translation type="obsolete">Baie de Patches ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Edition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Couper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Coller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Effacer Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Sélectionner tout</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Dé-sélectionner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Inverser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">Dans la Boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Hors de la Boucle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="77"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Sélectionner</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="89"/>
+ <source>blue</source>
+ <translation type="unfinished">bleu</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="92"/>
+ <source>pitch colors</source>
+ <translation type="unfinished">couleurs pour la hauteur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="95"/>
+ <source>velocity colors</source>
+ <translation type="unfinished">couleurs pour la vélocité</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="85"/>
+ <source>&amp;Config</source>
+ <translation type="unfinished">&amp;Configuration</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="86"/>
+ <source>event color</source>
+ <translation type="unfinished">couleur pour les évènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="100"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Fonctions</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Over Quantize</source>
+ <translation type="obsolete">Plus de Quantisation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On Quantize</source>
+ <translation type="obsolete">Quantisation Appui de Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="obsolete">Quantisation Appui/Relachement de Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Iterative Quantize</source>
+ <translation type="obsolete">Quantisation itérative</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="109"/>
+ <source>Config Quant...</source>
+ <translation type="unfinished">Config. Quant.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Gate Time</source>
+ <translation type="obsolete">Modifier temps de fermeture (gate time)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Modifier la vélocité</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Crescendo</source>
+ <translation type="obsolete">Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thin Out</source>
+ <translation type="obsolete">Sortie fine</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Event</source>
+ <translation type="obsolete">Effacer Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Shift</source>
+ <translation type="obsolete">Décalage de Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Move Clock</source>
+ <translation type="obsolete">Décalage temporel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy Measure</source>
+ <translation type="obsolete">Copier mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Measure</source>
+ <translation type="obsolete">Effacer mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Measure</source>
+ <translation type="obsolete">Supprimer mesure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create Measure</source>
+ <translation type="obsolete">Créer mesure</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="134"/>
+ <source>Pianoroll Tools</source>
+ <translation type="unfinished">Outils de piano-roll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Enregistrement pas-a-pas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input</source>
+ <translation type="obsolete">Entrée MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play Events</source>
+ <translation type="obsolete">Jouer Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">Ajouter une vue de contrles</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ctrl</source>
+ <translation type="obsolete">ctrl</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="155"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panique!</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="161"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="104"/>
+ <source>Ok</source>
+ <translation type="unfinished">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="106"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Annuler</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="57"/>
+ <source>MusE: select plugin</source>
+ <translation type="unfinished">MusE: choisir plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="64"/>
+ <source>Lib</source>
+ <translation type="unfinished">Lib</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="65"/>
+ <source>Label</source>
+ <translation type="unfinished">Label</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="66"/>
+ <source>Name</source>
+ <translation type="unfinished">Nom</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="74"/>
+ <source>Copyright</source>
+ <translation type="unfinished">Copyright</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="125"/>
+ <source>Stereo</source>
+ <translation type="unfinished">Stéréo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="130"/>
+ <source>Mono</source>
+ <translation type="unfinished">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Tous</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="67"/>
+ <source>AI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="68"/>
+ <source>AO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="69"/>
+ <source>CI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="70"/>
+ <source>CO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="71"/>
+ <source>IP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="72"/>
+ <source>id</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="73"/>
+ <source>Maker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="120"/>
+ <source>Mono and Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="135"/>
+ <source>Show All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="150"/>
+ <source>Select which types of plugins should be visible in the list.&lt;br&gt;Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.&lt;br&gt;Also beware that the &apos;all&apos; alternative includes plugins that probably not are usable by MusE.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="157"/>
+ <source>Search in &apos;Label&apos; and &apos;Name&apos;:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="347"/>
+ <source>File Buttons</source>
+ <translation type="unfinished">Boutons Fichiers</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="349"/>
+ <source>Load Preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="352"/>
+ <source>Save Preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="358"/>
+ <source>bypass plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="574"/>
+ <source>MusE: load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="635"/>
+ <source>MusE: save preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../../muse/preferences.cpp" line="680"/>
+ <source>MusE: load image</source>
+ <translation type="unfinished">MusE: charger une image</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectDialog</name>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="420"/>
+ <source>MusE: create new folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="421"/>
+ <source>new folder:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">canal de sortie</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">port de sortie (Output Ch.)</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../../muse/muse.cpp" line="356"/>
+ <source>Add Midi Generator...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="380"/>
+ <source>Add Soft Synth...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="303"/>
+ <source>new</source>
+ <translation type="unfinished">nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Aucun</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>File
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>
+exists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="138"/>
+ <source>MusE: write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="140"/>
+ <source>Overwrite</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="141"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="151"/>
+ <source>Open File
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="152"/>
+ <source>
+failed: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="153"/>
+ <source>MusE: Open File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="173"/>
+ <source>generic midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="101"/>
+ <source>copy
+ %1
+to
+ %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="105"/>
+ <source>
+converting sample rate
+from %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="109"/>
+ <source>Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="358"/>
+ <source>create peakfile for </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="127"/>
+ <source>MusE: export midi file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="51"/>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="59"/>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RecordButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="38"/>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">Crée une nouvelle entrée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">Crée une nouvelle entrée dans la liste des controleurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">efface l&apos;entrée sélectionnée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">list des controleurs définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">C&apos;est la liste des controleurs qui ont été définis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Help</source>
+ <translation type="obsolete">&amp;Aide</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Enregistrer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Couper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Copier</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Coller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">Co&amp;ller</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form3</source>
+ <translation type="obsolete">Form3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">effacer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Enregistrer</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Label</source>
+ <translation type="obsolete">Label</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginFront</name>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="213"/>
+ <source>Clear and unload effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="214"/>
+ <source>Load effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="215"/>
+ <source>Toggle display of effect parameters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="216"/>
+ <source>Turn effect on/off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="78"/>
+ <source>Shortcut conflicts with </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="94"/>
+ <source>Undefined</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfig</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="37"/>
+ <source>Global</source>
+ <translation type="unfinished">Global</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="38"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arrangeur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="39"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Rouleau-Piano</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Insérer Note</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Insérer SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Insérer Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Insérer Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Insérr Canal de Pression</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Insérer une note de Pression</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="40"/>
+ <source>Drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="41"/>
+ <source>List editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="42"/>
+ <source>List Mastertrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="44"/>
+ <source>All categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="43"/>
+ <source>Wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Appliquer</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <location filename="../../synti/simpledrums/simpledrumsgui.cpp" line="633"/>
+ <source>Load sample dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Song</name>
+ <message>
+ <location filename="../../muse/song.cpp" line="1493"/>
+ <source>Jack shutdown!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/song.cpp" line="1508"/>
+ <source>Jack has detected a performance problem which has lead to
+MusE being disconnected.
+This could happen due to a number of reasons:
+- a performance issue with your particular setup.
+- a bug in MusE (or possibly in another connected software).
+- a random hiccup which might never occur again.
+- jack was voluntary stopped by you or someone else
+- jack crashed
+If there is a persisting problem you are much welcome to discuss it
+on the MusE mailinglist.
+(there is information about joining the mailinglist on the MusE
+ homepage which is available through the help menu)
+
+To proceed check the status of Jack and try to restart it and then .
+click on the Restart button.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SplitLayerGui</name>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="53"/>
+ <source>start pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="58"/>
+ <source>enable learn mode for start pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="70"/>
+ <source>end pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="75"/>
+ <source>enable learn mode for end pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="84"/>
+ <source>pitch offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="91"/>
+ <source>start velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="97"/>
+ <source>end velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="103"/>
+ <source>velocity offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Synthétiseur virtuel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Nom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port</source>
+ <translation type="obsolete">Port MIDI</translation>
+ </message>
+</context>
+<context>
+ <name>TLSWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="132"/>
+ <source>Remove Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="136"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="238"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Vélocité</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="271"/>
+ <source>Delete Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLWidget</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Effacer Piste</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="128"/>
+ <source>Copy Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="145"/>
+ <source>Show Gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="272"/>
+ <source>Add Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="424"/>
+ <source>Midi Output Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Effacer Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Commentaire pour la Piste</translation>
+ </message>
+</context>
+<context>
+ <name>TemplateDialog</name>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="75"/>
+ <source>MusE presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="85"/>
+ <source>User presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TimeCanvas</name>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="147"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="149"/>
+ <source>Add Controller View</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="64"/>
+ <source>Snap</source>
+ <translation type="unfinished">Aligne</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="70"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Quantiser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="90"/>
+ <source>All Events</source>
+ <translation type="unfinished">Tous les Evènements</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="45"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Curseur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="86"/>
+ <source>To</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="91"/>
+ <source>Looped Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="92"/>
+ <source>Selected Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="93"/>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="51"/>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="56"/>
+ <source>Track Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="69"/>
+ <source>Track Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="78"/>
+ <source>Track Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">Punch-In</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">boucle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">Punch-Out</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">rembobiner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">avance</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">stop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">jouer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">Utiliser la piste principale</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Valeur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Temps</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">tous</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Pièces</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="480"/>
+ <source>MusE: Load VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="583"/>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Velocity</name>
+ <message>
+ <location filename="../../muse/midiedit/velocity.cpp" line="33"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Tous les Evènements</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Evènements choisis</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Evènements bouclés</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Boucle &amp; sélectionnée</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Valeurs</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Vitesse:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Décalage:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Entre</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">Echelle de la mesure</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="116"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Curseur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="50"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="51"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="52"/>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="54"/>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="55"/>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="57"/>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="59"/>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="61"/>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="63"/>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="65"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="69"/>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="71"/>
+ <source>Mute Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="73"/>
+ <source>Normalize Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="75"/>
+ <source>Fade In Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="77"/>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="79"/>
+ <source>Reverse Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="82"/>
+ <source>Select</source>
+ <translation type="unfinished">Sélectionner</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="93"/>
+ <source>waveedit-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="104"/>
+ <source>Transport</source>
+ <translation type="unfinished">Transport</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="111"/>
+ <source>pianoroll-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="112"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: InfoPiste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Info Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mono</source>
+ <translation type="obsolete">Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo</source>
+ <translation type="obsolete">Stéréo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Nom de la Piste</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">arr</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="809"/>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="810"/>
+ <source>When editing in external editor - you should not change the filesize
+since it must fit the selected region.
+
+Missing data is muted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse_qt4_evolution/share/locale/muse_ru.qm b/muse_qt4_evolution/share/locale/muse_ru.qm
new file mode 100644
index 00000000..75162786
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_ru.qm
Binary files differ
diff --git a/muse_qt4_evolution/share/locale/muse_ru.ts b/muse_qt4_evolution/share/locale/muse_ru.ts
new file mode 100644
index 00000000..0456972a
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_ru.ts
@@ -0,0 +1,7823 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name></name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Ð’Ñтавить ноту</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Ð’Ñтавить SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Ð’Ñтавить контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Ð’Ñтавить Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Ð’Ñтавить Channel Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Ð’Ñтавить Key Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="25"/>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="35"/>
+ <source>Click this button to enable recording</source>
+ <translation type="unfinished">Ðажмите Ñту клавишу Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="30"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="31"/>
+ <source>Refrain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="32"/>
+ <source>Bridge</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="33"/>
+ <source>Intro</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="34"/>
+ <source>Coda</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="35"/>
+ <source>Chorus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="37"/>
+ <source>Brass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="38"/>
+ <source>Percussion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="39"/>
+ <source>Drums</source>
+ <translation type="unfinished">Ударные</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="40"/>
+ <source>Guitar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="41"/>
+ <source>Bass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="42"/>
+ <source>Flute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="43"/>
+ <source>Strings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="44"/>
+ <source>Keyboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="45"/>
+ <source>Piano</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="46"/>
+ <source>Saxophon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <location filename="../../muse/transport.cpp" line="36"/>
+ <source>Click this button to stop playback</source>
+ <translation type="unfinished">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¾Ñтановки воÑпроизведениÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="37"/>
+ <source>Click this button to start playback</source>
+ <translation type="unfinished">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° воÑпроизведениÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="38"/>
+ <source>Click this button to rewind to start position</source>
+ <translation type="unfinished">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ðº началу</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="39"/>
+ <source>Click this button to rewind</source>
+ <translation type="unfinished">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÐºÐ¸ назад</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="40"/>
+ <source>Click this button to forward current play position</source>
+ <translation type="unfinished">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð¿ÐµÑ€Ñ‘Ð´</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to open a &lt;em&gt;new song&lt;/em&gt;.&lt;br&gt;You can also select the &lt;b&gt;Open command&lt;/b&gt; from the File menu.</source>
+ <translation type="obsolete">Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ &lt;em&gt;другой композиции&lt;/em&gt;.&lt;br&gt;Ð’Ñ‹ также можете выбрать пункт &lt;b&gt;Открыть&lt;/b&gt; в меню &quot;Файл&quot;.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the song you are editing. You will be prompted for a file name.
+You can also select the Save command from the File menu.</source>
+ <translation type="obsolete">Ðажмите Ñту кнопку Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÐ¼Ð¾Ð¹ композиции.
+Вы также можете выбрать пункт &lt;b&gt;Открыть&lt;/b&gt; в меню &quot;Файл&quot;.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Song</source>
+ <translation type="obsolete">Создать новую композицию</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="obsolete">Цикл между левым и правым маркерами</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record starts at left mark</source>
+ <translation type="obsolete">ЗапиÑÑŒ начинаетÑÑ Ð¾Ñ‚ маркера Ñлева</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record stops at right mark</source>
+ <translation type="obsolete">ЗапиÑÑŒ оÑтанавливаетÑÑ Ð¿Ð¾ маркеру Ñправа</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">Перемотать к начальной позиции</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind current position</source>
+ <translation type="obsolete">Перемотать к текущей позиции</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move current position</source>
+ <translation type="obsolete">ПеремеÑтить текущую позицию</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop sequencer</source>
+ <translation type="obsolete">ОÑтановить ÑеквенÑер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">Ðачать воÑпроизведение из ÑеквенÑера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to record press record and then play</source>
+ <translation type="obsolete">Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи нажмите &quot;ЗапиÑать&quot;, а затем &quot;ВоÑпроизвеÑти&quot;</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>send note off to all midi channels</source>
+ <translation type="obsolete">ПоÑлать note off на вÑе MIDI-каналы</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="41"/>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished">ПредуÑтановки (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="42"/>
+ <source>All Files (*)</source>
+ <translation type="unfinished">Ð’Ñе файлы (*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="347"/>
+ <source>Add Midi Track</source>
+ <translation type="unfinished">Добавить MIDI-дорожку</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Drum Track</source>
+ <translation type="obsolete">Добавить дорожку Ñ ÑƒÐ´Ð°Ñ€Ð½Ñ‹Ð¼Ð¸</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="371"/>
+ <source>Add Wave Track</source>
+ <translation type="unfinished">Добавить звуковую дорожку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="373"/>
+ <source>Add Audio Output</source>
+ <translation type="unfinished">Добавить звуковой выход</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="375"/>
+ <source>Add Audio Group</source>
+ <translation type="unfinished">Добавить звуковую группу</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="377"/>
+ <source>Add Audio Input</source>
+ <translation type="unfinished">Добавить звуковой вход</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Aux Send</source>
+ <translation type="obsolete">Добавить aux поÑыл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to enable recording</source>
+ <translation type="obsolete">Ðажмите Ñту клавишу Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/rastercombo.cpp" line="31"/>
+ <source>Off</source>
+ <translation type="unfinished">Выкл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="224"/>
+ <source>m</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="227"/>
+ <source>mute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="238"/>
+ <source>s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="241"/>
+ <source>solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="251"/>
+ <source>Mo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="254"/>
+ <source>monitor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="264"/>
+ <source>Dr</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="267"/>
+ <source>use drum map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="279"/>
+ <source>off</source>
+ <translation type="unfinished">выкл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="298"/>
+ <source>aR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="301"/>
+ <source>automation read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="311"/>
+ <source>aW</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="314"/>
+ <source>automation write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="324"/>
+ <source>sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="327"/>
+ <source>send sync events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="358"/>
+ <source>1/2 channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="371"/>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="373"/>
+ <source>output routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="389"/>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="391"/>
+ <source>input routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="26"/>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="27"/>
+ <source>quantize also note len as default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="143"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="103"/>
+ <source>Bar</source>
+ <translation type="unfinished">Такт</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="341"/>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="350"/>
+ <source>Add Midi Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="353"/>
+ <source>Add Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="368"/>
+ <source>Audio</source>
+ <translation type="unfinished">Звук</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2977"/>
+ <source>MusE: create project directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3006"/>
+ <source>MusE: create template directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3071"/>
+ <source>Cannot find project &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3072"/>
+ <source>MusE: load Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3034"/>
+ <source>MusE: create instruments directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>AboutBox</source>
+ <translation type="obsolete">О программе</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Version 0.7.0
+
+(C) Copyright 1999-2004 Werner Schweer and others.
+See http://lmuse.sourceforge.net for new versions and
+more information.
+
+Published under the GNU Public License</source>
+ <translation type="obsolete">ВерÑÐ¸Ñ 0.7.0
+
+(C) Copyright 1999-2004 Werner Schweer и другие.
+Ðовые верÑии и подробноÑти Ñмотрите на Ñайте
+http://lmuse.sourceforge.net
+
+Опубликовано на уÑловиÑÑ… GNU Public License</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load image</source>
+ <translation type="obsolete">MusE: загрузить изображение</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Appearance settings</source>
+ <translation type="obsolete">MusE: ÐаÑтройки облика</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Применить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Компоновщик</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">ЧаÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show names</source>
+ <translation type="obsolete">показывать рамки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show events</source>
+ <translation type="obsolete">показывать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show Cakewalk Style</source>
+ <translation type="obsolete">показывать в Ñтиле Cakewalk</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events</source>
+ <translation type="obsolete">СобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note on</source>
+ <translation type="obsolete">note on</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>poly pressure</source>
+ <translation type="obsolete">полифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller</source>
+ <translation type="obsolete">контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>aftertouch</source>
+ <translation type="obsolete">поÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pitch bend</source>
+ <translation type="obsolete">Ñмена выÑоты звука</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>program change</source>
+ <translation type="obsolete">Ñмена программы</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>special</source>
+ <translation type="obsolete">ÑпециальнаÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background picture</source>
+ <translation type="obsolete">Фоновое изображение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bg</source>
+ <translation type="obsolete">фон</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select...</source>
+ <translation type="obsolete">выбрать...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show snap grid</source>
+ <translation type="obsolete">показывать Ñетку привÑзки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">Цвета</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Style/Fonts</source>
+ <translation type="obsolete">Стиль/Шрифты</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QT Theme</source>
+ <translation type="obsolete">Тема QT</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Windows</source>
+ <translation type="obsolete">Окна</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE</source>
+ <translation type="obsolete">MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metal</source>
+ <translation type="obsolete">Металл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Norwegian Wood</source>
+ <translation type="obsolete">ÐорвежÑкое дерево</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Platinum</source>
+ <translation type="obsolete">Платина</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>CDE</source>
+ <translation type="obsolete">CDE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif</source>
+ <translation type="obsolete">Motif</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Motif Plus</source>
+ <translation type="obsolete">Motif Plus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Шрифты</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Family</source>
+ <translation type="obsolete">СемейÑтво</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Size</source>
+ <translation type="obsolete">Размер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 1</source>
+ <translation type="obsolete">Шрифт 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 2</source>
+ <translation type="obsolete">Шрифт 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 3</source>
+ <translation type="obsolete">Шрифт 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 0</source>
+ <translation type="obsolete">Шрифт 0</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bold</source>
+ <translation type="obsolete">Жирный</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Italic</source>
+ <translation type="obsolete">КурÑив</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 4</source>
+ <translation type="obsolete">Шрифт 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 5</source>
+ <translation type="obsolete">Шрифт 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Palette</source>
+ <translation type="obsolete">Палитра</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>add to palette</source>
+ <translation type="obsolete">Добавить в палитру</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>B</source>
+ <translation type="obsolete">B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H</source>
+ <translation type="obsolete">H</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>V</source>
+ <translation type="obsolete">V</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>G</source>
+ <translation type="obsolete">G</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>R</source>
+ <translation type="obsolete">R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="298"/>
+ <source>TrackInfo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="305"/>
+ <source>Mix</source>
+ <translation type="unfinished">Смешать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="356"/>
+ <source>Config Tracklist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="364"/>
+ <source>all mute off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="373"/>
+ <source>all solo off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="382"/>
+ <source>all autoRead off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="391"/>
+ <source>all autoWrite off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="406"/>
+ <source>i</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="407"/>
+ <source>Show Track Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="414"/>
+ <source>m</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="415"/>
+ <source>Show Mixer Strip</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="78"/>
+ <source>Pre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="79"/>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="106"/>
+ <source>dB</source>
+ <translation type="unfinished">Дб</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="172"/>
+ <source>record downmix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="416"/>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="430"/>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="604"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="634"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="662"/>
+ <source>Channel</source>
+ <translation type="unfinished">Канал</translation>
+ </message>
+</context>
+<context>
+ <name>Awl::MidiVolEntry</name>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="35"/>
+ <source>off</source>
+ <translation type="unfinished">выкл</translation>
+ </message>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="36"/>
+ <source>db</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::VolEntry</name>
+ <message>
+ <location filename="../../awl/volentry.cpp" line="32"/>
+ <source>off</source>
+ <translation type="unfinished">выкл</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <location filename="../../muse/widgets/bigtime.cpp" line="66"/>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ClipList</source>
+ <translation type="obsolete">MusE: СпиÑок фрагментов</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">Ðачало</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len</source>
+ <translation type="obsolete">Длн</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Data</source>
+ <translation type="obsolete">Данные</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clip Properties</source>
+ <translation type="obsolete">СвойÑтва фрагмента</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pos:</source>
+ <translation type="obsolete">Поз.:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Len:</source>
+ <translation type="obsolete">Длн.:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Комментарий к дорожке</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track 1</source>
+ <translation type="obsolete">Дорожка 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Midi Controller</source>
+ <translation type="obsolete">MusE: ÐаÑтройка MIDI-контроллера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port:</source>
+ <translation type="obsolete">MIDI-порт:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Controller:</source>
+ <translation type="obsolete">ДоÑтупный контроллер:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Добавить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Удалить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Midi File Export</source>
+ <translation type="obsolete">MusE: ÐаÑтройка ÑкÑпорта в MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>0 (single track)</source>
+ <translation type="obsolete">0 (Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ°)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1 (multiple tracks)</source>
+ <translation type="obsolete">1 (больше одной дорожки)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Format:</source>
+ <translation type="obsolete">Формат:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copyright:</source>
+ <translation type="obsolete">ÐвторÑкие и Ñмежные права:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Разрешить раÑширенный формат SMF</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigTrackListBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Track List</source>
+ <translation type="obsolete">MusE: ÐаÑтройка ÑпиÑка дорожек</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Type:</source>
+ <translation type="obsolete">Тип дорожки:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Output</source>
+ <translation type="obsolete">Ðудиовыход</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Group</source>
+ <translation type="obsolete">Ðудиогруппа</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Aux</source>
+ <translation type="obsolete">Audio Aux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Wave Track</source>
+ <translation type="obsolete">Ðудиодорожка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Input</source>
+ <translation type="obsolete">Ðудиовход</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Программный Ñинтезатор</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Track</source>
+ <translation type="obsolete">MIDI-дорожка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum Track</source>
+ <translation type="obsolete">ПеркуÑÑÐ¸Ð¾Ð½Ð½Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ°</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Items:</source>
+ <translation type="obsolete">ДоÑтупные варианты:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Добавить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Удалить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Вверх</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Вниз</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Configured Items</source>
+ <translation type="obsolete">ÐаÑтроенные дорожки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDelegate</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="412"/>
+ <source>dB</source>
+ <translation type="unfinished">Дб</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="533"/>
+ <source>off</source>
+ <translation type="unfinished">выкл</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDialog</name>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="45"/>
+ <source>controller name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="46"/>
+ <source>flag if controller contains data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlEdit</name>
+</context>
+<context>
+ <name>CtrlListEditor</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="124"/>
+ <source>dB</source>
+ <translation type="unfinished">Дб</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="522"/>
+ <source>Save configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2288"/>
+ <source>Critical Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2282"/>
+ <source>Cannot open file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2289"/>
+ <source>Parsing error for file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1931"/>
+ <source>Load category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1708"/>
+ <source>Load set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1775"/>
+ <source>Save set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1799"/>
+ <source>New category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1899"/>
+ <source>Delete category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1803"/>
+ <source>Load category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1805"/>
+ <source>Save category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1812"/>
+ <source>Load set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1814"/>
+ <source>Save set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1816"/>
+ <source>Delete set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1824"/>
+ <source>New subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2068"/>
+ <source>Delete subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1830"/>
+ <source>Load subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1833"/>
+ <source>Save subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1849"/>
+ <source>New preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2239"/>
+ <source>Delete preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1853"/>
+ <source>Load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1855"/>
+ <source>Save preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1876"/>
+ <source>No more category supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1877"/>
+ <source>You can not add more categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2241"/>
+ <source>Do you really want to delete %1 ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2029"/>
+ <source>No category selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2030"/>
+ <source>You must first select a category.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2308"/>
+ <source>Replace or add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1971"/>
+ <source>%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Replace</source>
+ <translation type="unfinished">&amp;Заменить</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished">&amp;Добавить</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2321"/>
+ <source>Download error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1984"/>
+ <source>There is no more free category slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2012"/>
+ <source>Save category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2042"/>
+ <source>No more subcategory supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2043"/>
+ <source>You can not add more subcategories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2198"/>
+ <source>No subcategory selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2199"/>
+ <source>You must first select a subcategory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2098"/>
+ <source>Load subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2138"/>
+ <source>%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2151"/>
+ <source>There is no more free subcategory slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2180"/>
+ <source>Save subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2213"/>
+ <source>No more preset supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2214"/>
+ <source>You can not add more presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2367"/>
+ <source>No preset selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2368"/>
+ <source>You must first select a preset.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2270"/>
+ <source>Load preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2310"/>
+ <source>%1 is supposed to be affected to the prog number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2322"/>
+ <source>There is no more free preset slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2351"/>
+ <source>Save preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2471"/>
+ <source>Browse set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2506"/>
+ <source>Browse image dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">ПредуÑтановка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">ТранÑпонировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">Цвета</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="61"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="65"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Инвертировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="82"/>
+ <source>Drum Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="102"/>
+ <source>Transport</source>
+ <translation type="unfinished">ТранÑпорт</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller</source>
+ <translation type="obsolete">MusE: ВвеÑти контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller:</source>
+ <translation type="obsolete">Контроллер:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value:</source>
+ <translation type="obsolete">Значение:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller value</source>
+ <translation type="obsolete">значение контроллера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Controller:</source>
+ <translation type="obsolete">ДоÑтупный контроллер:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Controller</source>
+ <translation type="obsolete">Создать новый контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Значение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Bank</source>
+ <translation type="obsolete">H-банк</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Bank</source>
+ <translation type="obsolete">L-банк</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program</source>
+ <translation type="obsolete">Программа</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">выкл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port:</source>
+ <translation type="obsolete">MIDI-порт:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrument</name>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="138"/>
+ <source>MusE: Create file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="148"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="172"/>
+ <source>MusE: Save Instrument Definition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="174"/>
+ <source>Instrument Definition (*.idf)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="359"/>
+ <source>MusE: Enter new Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="360"/>
+ <source>Enter new Category:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="770"/>
+ <source>MusE</source>
+ <translation type="unfinished">MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="772"/>
+ <source>The current Instrument contains unsaved data
+Save Current Instrument?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Instrument Editor</source>
+ <translation type="obsolete">MusE: Редактор инÑтрументов</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program:</source>
+ <translation type="obsolete">Программа:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">У&amp;далить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+D</source>
+ <translation type="obsolete">Alt+D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+N</source>
+ <translation type="obsolete">Alt+N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New Group</source>
+ <translation type="obsolete">ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum</source>
+ <translation type="obsolete">Ударные</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Predefined Controller:</source>
+ <translation type="obsolete">Предопределённый контроллер:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">СвойÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Тип</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control7</source>
+ <translation type="obsolete">Control7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control14</source>
+ <translation type="obsolete">Control14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program</source>
+ <translation type="obsolete">Программа</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Ctrl</source>
+ <translation type="obsolete">H-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Ctrl</source>
+ <translation type="obsolete">L-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min</source>
+ <translation type="obsolete">Мин</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max</source>
+ <translation type="obsolete">МакÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Ð˜Ð¼Ñ </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Тип </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Мин знач</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">ÐœÐ°ÐºÑ Ð·Ð½Ð°Ñ‡</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">ÑпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Это ÑпиÑок назначенных контроллеров Ð´Ð»Ñ MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>SysEx</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">СервиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+N</source>
+ <translation type="obsolete">Ctrl+N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Открыть...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+O</source>
+ <translation type="obsolete">Ctrl+O</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+S</source>
+ <translation type="obsolete">Ctrl+S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Сохранить как</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">Сохранить &amp;как...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Выйти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">В&amp;ыйти</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: ВвеÑти метаÑобытие</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TextLabel1</source>
+ <translation type="obsolete">ТекÑтоваÑМетка1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type:</source>
+ <translation type="obsolete">Метатип:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Введите Hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Note</source>
+ <translation type="obsolete">MusE: ВвеÑти ноту</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length:</source>
+ <translation type="obsolete">ПродолжительноÑÑ‚ÑŒ:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch:</source>
+ <translation type="obsolete">Ð’Ñ‹Ñота тона:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity On:</source>
+ <translation type="obsolete">СкороÑÑ‚ÑŒ вкл.:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity Off:</source>
+ <translation type="obsolete">СкороÑÑ‚ÑŒ выкл.:</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter SysEx</source>
+ <translation type="obsolete">MusE: ВвеÑти SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TimePosition:</source>
+ <translation type="obsolete">ВремÑ:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Добавить</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <location filename="../../muse/widgets/tools.cpp" line="35"/>
+ <source>Edit Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="57"/>
+ <source>effect rack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="107"/>
+ <source>move up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="108"/>
+ <source>move down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="109"/>
+ <source>remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="111"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="112"/>
+ <source>show gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="113"/>
+ <source>show native gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="115"/>
+ <source>New Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="116"/>
+ <source>New Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Replace effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ExportMidiDialog</name>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source>Save </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source> as smf midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="368"/>
+ <source>MusE: export midi smf file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="39"/>
+ <source>FLUID: open Soundfile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="61"/>
+ <source>Fluid: select Sound Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Тип</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Form1</source>
+ <translation type="obsolete">Form1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global</source>
+ <translation type="obsolete">Глобально</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>User</source>
+ <translation type="obsolete">Домашний
+каталог</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Project</source>
+ <translation type="obsolete">Проект</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load:</source>
+ <translation type="obsolete">Загрузить:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Songdata +
+Cofiguration</source>
+ <translation type="obsolete">Композиции +
+наÑтройки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>only
+Songdata</source>
+ <translation type="obsolete">только
+композиции</translation>
+ </message>
+</context>
+<context>
+ <name>FluidSynthGui</name>
+ <message>
+ <location filename="../../synti/fluidsynth/fluidsynthgui.cpp" line="90"/>
+ <source>Choose soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <location filename="../../muse/widgets/fontsel.cpp" line="47"/>
+ <source>Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>GateTime</name>
+ <message>
+ <location filename="../../muse/midiedit/gatetime.cpp" line="32"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="unfinished">MusE: Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="obsolete">MusE: Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Выбранные ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² цикле</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Выбранные и в цикле</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">ЗначениÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">ЧаÑтота:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Смещение:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Global Settings</source>
+ <translation type="obsolete">MusE: Общие наÑтройки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Применить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Ok</source>
+ <translation type="obsolete">&amp;ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio</source>
+ <translation type="obsolete">Звук</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Микшер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">Дб</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min. Meter Value</source>
+ <translation type="obsolete">мин. значение индикатора</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min.Slider Val</source>
+ <translation type="obsolete">мин. значение ползунка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ticks</source>
+ <translation type="obsolete">Тактовые импульÑÑ‹ (тики)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8172</source>
+ <translation type="obsolete">8172</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation type="obsolete">Отображаемое разрешение
+(Тиков/четвертей)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>48</source>
+ <translation type="obsolete">48</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>96</source>
+ <translation type="obsolete">96</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>192</source>
+ <translation type="obsolete">192</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>384</source>
+ <translation type="obsolete">384</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>768</source>
+ <translation type="obsolete">768</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1536</source>
+ <translation type="obsolete">1536</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3072</source>
+ <translation type="obsolete">3072</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6144</source>
+ <translation type="obsolete">6144</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12288</source>
+ <translation type="obsolete">12288</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation type="obsolete">RTC-разрешение
+(тиков/Ñек)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help Browser:</source>
+ <translation type="obsolete">Ð’ чём читать Ñправку:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI Refresh Rate</source>
+ <translation type="obsolete">ЧаÑтота Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/sec</source>
+ <translation type="obsolete">/Ñек</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Application</source>
+ <translation type="obsolete">Приложение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Views</source>
+ <translation type="obsolete">Виды</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>height</source>
+ <translation type="obsolete">выÑота</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>width</source>
+ <translation type="obsolete">ширина</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Big Time</source>
+ <translation type="obsolete">Хронометр</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Компоновщик</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport</source>
+ <translation type="obsolete">ТранÑпорт</translation>
+ </message>
+</context>
+<context>
+ <name>GreendotButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="49"/>
+ <source>record</source>
+ <translation type="unfinished">запиÑать</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="46"/>
+ <source>MusE: List Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="141"/>
+ <source>Parts</source>
+ <translation type="unfinished">ЧаÑти</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="157"/>
+ <source>Controller</source>
+ <translation type="unfinished">Контроллер</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">Вкл</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">ничего</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Порт</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI</source>
+ <translation type="obsolete">GUI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">ИнÑтрумент</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Name</source>
+ <translation type="obsolete">Ð˜Ð¼Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State</source>
+ <translation type="obsolete">СоÑтоÑние</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>unknown</source>
+ <translation type="obsolete">неизвеÑтно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>I</source>
+ <translation type="obsolete">I</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>O</source>
+ <translation type="obsolete">O</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation type="obsolete">MusE: Входной MIDI-модуль: ДиÑтан. управление</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Activate</source>
+ <translation type="obsolete">Ðктивировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">Вкл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Actions</source>
+ <translation type="obsolete">ДейÑтвиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">ОÑтановить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">ЗапиÑать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Goto Left Mark</source>
+ <translation type="obsolete">Перейти к левой метке</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">ВоÑпроизвеÑти</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="126"/>
+ <source>MusE: Marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="129"/>
+ <source>add marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="130"/>
+ <source>Add Marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="139"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="144"/>
+ <source>marker-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="148"/>
+ <source>edit tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="170"/>
+ <source>Bar:Beat:Tick</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="171"/>
+ <source>Min:Sc:Fr:Sf</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="184"/>
+ <source>Marker Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="49"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="52"/>
+ <source>edit tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="61"/>
+ <source>EnableTempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="62"/>
+ <source>Tempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="64"/>
+ <source>Enable use of tempo map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="69"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="72"/>
+ <source>Cursor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="80"/>
+ <source>Snap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="87"/>
+ <source>time at cursor position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="88"/>
+ <source>tempo at cursor position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="91"/>
+ <source>CurPos </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="97"/>
+ <source>tempo at current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="98"/>
+ <source>time signature at current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiChannelInfo</name>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <location filename="../../muse/midictrl.cpp" line="190"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Сила нажатиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="obsolete">MusE: Ðазначить MIDI-контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Ð˜Ð¼Ñ </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Тип </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>H-Ctrl</source>
+ <translation type="obsolete">H-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>L-Ctrl</source>
+ <translation type="obsolete">L-Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Мин знач</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">ÐœÐ°ÐºÑ Ð·Ð½Ð°Ñ‡</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">ÑпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Это ÑпиÑок назначенных в MusE контроллеров.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">СвойÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Value</source>
+ <translation type="obsolete">ÐœÐ°ÐºÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Value</source>
+ <translation type="obsolete">Мин значение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control7</source>
+ <translation type="obsolete">Control7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control14</source>
+ <translation type="obsolete">Control14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Тип</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">Ñоздать новую запиÑÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">По нажатию кнопки &quot;ÐоваÑ&quot; ÑоздаётÑÑ Ð½Ð¾Ð²Ð°Ñ
+запиÑÑŒ в ÑпиÑок назначенных в MusE контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">У&amp;далить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">удалить выделенное Ñобытие</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Канал</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Add</source>
+ <translation type="obsolete">&amp;Добавить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+A</source>
+ <translation type="obsolete">Alt+A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Predefined Controller:</source>
+ <translation type="obsolete">Предопределённый контроллер:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program</source>
+ <translation type="obsolete">Программа</translation>
+ </message>
+</context>
+<context>
+ <name>MidiEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="47"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Вырезать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Скопировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="65"/>
+ <source>Play Events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="70"/>
+ <source>Step Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="76"/>
+ <source>Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="81"/>
+ <source>Follow Song</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="obsolete">MusE: Фильтр входÑщих MIDI-Ñобытий</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record Filter</source>
+ <translation type="obsolete">Фильтр запиÑи</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On</source>
+ <translation type="obsolete">Note On</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program Change</source>
+ <translation type="obsolete">Смена программы</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>After Touch</source>
+ <translation type="obsolete">ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thru Filter</source>
+ <translation type="obsolete">Thru-фильтр</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller Filter</source>
+ <translation type="obsolete">Фильтр контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Filter</source>
+ <translation type="obsolete">Фильтр каналов</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>14</source>
+ <translation type="obsolete">14</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>10</source>
+ <translation type="obsolete">10</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>6</source>
+ <translation type="obsolete">6</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>12</source>
+ <translation type="obsolete">12</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>9</source>
+ <translation type="obsolete">9</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>8</source>
+ <translation type="obsolete">8</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>13</source>
+ <translation type="obsolete">13</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>15</source>
+ <translation type="obsolete">15</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>16</source>
+ <translation type="obsolete">16</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>7</source>
+ <translation type="obsolete">7</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>11</source>
+ <translation type="obsolete">11</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5</source>
+ <translation type="obsolete">5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="999"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1035"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1015"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Transformator</source>
+ <translation type="obsolete">MusE: Преобразование входÑщих MIDI-Ñообщений</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Фильтр</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Ð’Ñе</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Равно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Ðе равно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Ðота</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Смена контроллера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Значение 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Значение 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Тип ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Игнорировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Выше</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Ðиже</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Внутри</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Снаружи</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Канал</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port</source>
+ <translation type="obsolete">Порт</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Идёт обработка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Поправить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">ПлюÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">МинуÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Умножить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Разделить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Инвертировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Случайно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modules</source>
+ <translation type="obsolete">Модули</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>2</source>
+ <translation type="obsolete">2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>3</source>
+ <translation type="obsolete">3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>4</source>
+ <translation type="obsolete">4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 1</source>
+ <translation type="obsolete">разрешить модуль 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 2</source>
+ <translation type="obsolete">разрешить модуль 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 3</source>
+ <translation type="obsolete">разрешить модуль 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 4</source>
+ <translation type="obsolete">разрешить модуль 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">ПредуÑтановка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">ИмÑ:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">ФункциÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new preset</source>
+ <translation type="obsolete">Ñоздать новую предуÑтановку</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Удалить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">удалить предуÑтановку</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Dismiss</source>
+ <translation type="obsolete">&amp;ПропуÑтить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">СпиÑок предуÑтановок</translation>
+ </message>
+</context>
+<context>
+ <name>MidiOutPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="784"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="801"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="820"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiPluginDialog</name>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="539"/>
+ <source>MusE: select midi plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Name</source>
+ <translation type="unfinished">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="570"/>
+ <source>Ok</source>
+ <translation type="unfinished">ОК</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="571"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input</source>
+ <translation type="obsolete">Вход</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Port Routing</source>
+ <translation type="obsolete">MusE: Маршруты между MIDI-портами</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port 2</source>
+ <translation type="obsolete">Порт 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output</source>
+ <translation type="obsolete">Выход</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRack</name>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="51"/>
+ <source>midi effect rack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="96"/>
+ <source>move up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="97"/>
+ <source>move down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="98"/>
+ <source>remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="99"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="100"/>
+ <source>show gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="101"/>
+ <source>new</source>
+ <translation type="unfinished">новый</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>Var</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>Rev</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>Cho</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="499"/>
+ <source>Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="511"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">МаÑтер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Применить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>24</source>
+ <translation type="obsolete">24</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>25</source>
+ <translation type="obsolete">25</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Смещение:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyntiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1274"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1281"/>
+ <source>Channel</source>
+ <translation type="unfinished">Канал</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1312"/>
+ <source>Input Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTimeDelegate</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dB</source>
+ <translation type="obsolete">Дб</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">выкл</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="143"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="147"/>
+ <source>Midi Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">выкл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Сила нажатиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackerEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="27"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="32"/>
+ <source>MidiTracker Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="51"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="55"/>
+ <source>Transport</source>
+ <translation type="unfinished">ТранÑпорт</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="64"/>
+ <source>row features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="87"/>
+ <source>Number of visible rows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="66"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Применить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">СпиÑок предуÑтановок</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Идёт обработка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Тип ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fix</source>
+ <translation type="obsolete">Поправить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Ðота</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Poly Pressure</source>
+ <translation type="obsolete">ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Control Change</source>
+ <translation type="obsolete">Смена контроллера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Aftertouch</source>
+ <translation type="obsolete">ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch Bend</source>
+ <translation type="obsolete">Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NRPN</source>
+ <translation type="obsolete">NRPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RPN</source>
+ <translation type="obsolete">RPN</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Plus</source>
+ <translation type="obsolete">ПлюÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Minus</source>
+ <translation type="obsolete">МинуÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Умножить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Разделить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Значение 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Инвертировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Случайно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Значение 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Фильтр</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Ð’Ñе</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Равно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Ðе равно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sysex</source>
+ <translation type="obsolete">SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Игнорировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Выше</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Ðиже</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Внутри</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Снаружи</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preset</source>
+ <translation type="obsolete">ПредуÑтановка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">ИмÑ:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">ФункциÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select</source>
+ <translation type="obsolete">Выделить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Скопировать</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="205"/>
+ <source>New</source>
+ <translation type="unfinished">Ðовый</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="126"/>
+ <source>MusE: set mixdown file name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="129"/>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Канал</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo</source>
+ <translation type="obsolete">Стерео</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mono</source>
+ <translation type="obsolete">Моно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>5.1</source>
+ <translation type="obsolete">5.1</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="46"/>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="49"/>
+ <source>&amp;Create</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="52"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="53"/>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="56"/>
+ <source>Show Midi Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="57"/>
+ <source>Show Midi Out Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="58"/>
+ <source>Show Midi In Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="62"/>
+ <source>Show Wave Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="63"/>
+ <source>Show Output Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="64"/>
+ <source>Show Group Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="65"/>
+ <source>Show Input Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="66"/>
+ <source>Show Synthesizer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <location filename="../../muse/wave.cpp" line="865"/>
+ <source>Import Wave File</source>
+ <translation type="unfinished">Импортировать WAV-файл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo</source>
+ <translation type="obsolete">отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Und&amp;o</source>
+ <translation type="obsolete">&amp;Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo</source>
+ <translation type="obsolete">повторить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Re&amp;do</source>
+ <translation type="obsolete">&amp;Повторить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo last change to song</source>
+ <translation type="obsolete">отменить поÑледнее изменение композиции</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo last undo</source>
+ <translation type="obsolete">повторить поÑледнюю отмену</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="588"/>
+ <source>Transport</source>
+ <translation type="unfinished">Пульт управлениÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">цикл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Цикл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">Ðачало врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchin</source>
+ <translation type="obsolete">Ðачало врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">Конец врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punchout</source>
+ <translation type="obsolete">Конец врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start</source>
+ <translation type="obsolete">к началу</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start</source>
+ <translation type="obsolete">К началу</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">перемотать назад</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rewind</source>
+ <translation type="obsolete">Перемотать назад</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">перемотать вперёд</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Forward</source>
+ <translation type="obsolete">Перемотать вперёд</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">оÑтановить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">ОÑтановить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">воÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">ВоÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">запиÑать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">ЗапиÑать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">новый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>open</source>
+ <translation type="obsolete">открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open</source>
+ <translation type="obsolete">&amp;Открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save</source>
+ <translation type="obsolete">Ñохранить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pianoroll</source>
+ <translation type="obsolete">pianoroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pianoroll</source>
+ <translation type="obsolete">Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Marker</source>
+ <translation type="obsolete">Маркер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Buttons</source>
+ <translation type="obsolete">Файловые кнопки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="616"/>
+ <source>Open &amp;Recent</source>
+ <translation type="unfinished">Открыть из &amp;недавних</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As</source>
+ <translation type="obsolete">Сохранить &amp;как</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="629"/>
+ <source>Import Midifile</source>
+ <translation type="unfinished">Импортировать MIDI-файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="631"/>
+ <source>Export Midifile</source>
+ <translation type="unfinished">ЭкÑпортировать MIDI-файл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">Вы&amp;йти</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="649"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">&amp;Вырезать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">С&amp;копировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">&amp;Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="666"/>
+ <source>Add Track</source>
+ <translation type="unfinished">Добавить дорожку</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">Выделить &amp;вÑÑ‘</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">&amp;Убрать выделение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">Обратить в&amp;ыделение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">&amp;Внутри цикла</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">&amp;Снаружи цикла</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="obsolete">Ð’Ñе &amp;чаÑти в дорожке</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="672"/>
+ <source>Select</source>
+ <translation type="unfinished">Выделить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drums</source>
+ <translation type="obsolete">Ударные</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List</source>
+ <translation type="obsolete">СпиÑок</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Graphic</source>
+ <translation type="obsolete">Графика</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mastertrack</source>
+ <translation type="obsolete">МаÑтер-дорожка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi &amp;Transform</source>
+ <translation type="obsolete">&amp;Преобразовать MIDI-ÑообщениÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="703"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="704"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Изменить ÑкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="705"/>
+ <source>Crescendo</source>
+ <translation type="unfinished">Крещендо</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="717"/>
+ <source>Transpose</source>
+ <translation type="unfinished">ТранÑпонировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="707"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Удалить дубли</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="708"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Удалить Ñобытие</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="709"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Сдвиг ноты</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="711"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Скопировать деление</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="712"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Стереть деление</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="713"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Удалить деление</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="714"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Создать деление</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="715"/>
+ <source>Mix Track</source>
+ <translation type="unfinished">СвеÑти дорожку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="700"/>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="755"/>
+ <source>&amp;Structure</source>
+ <translation type="unfinished">&amp;Структура</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="757"/>
+ <source>Global Cut</source>
+ <translation type="unfinished">Глобальное вырезание</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="760"/>
+ <source>Global Insert</source>
+ <translation type="unfinished">Ð“Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñтавка</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="763"/>
+ <source>Global Split</source>
+ <translation type="unfinished">Глобальное разделение</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="766"/>
+ <source>Copy Range</source>
+ <translation type="unfinished">Скопировать облаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="772"/>
+ <source>Cut Events</source>
+ <translation type="unfinished">Вырезать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport Panel</source>
+ <translation type="obsolete">Панель пульта управлениÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bigtime window</source>
+ <translation type="obsolete">Окно хронометра</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="818"/>
+ <source>dont follow Song</source>
+ <translation type="unfinished">не Ñледовать за композицией</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="821"/>
+ <source>follow page</source>
+ <translation type="unfinished">Ñледовать поÑтранично</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="824"/>
+ <source>follow continuous</source>
+ <translation type="unfinished">Ñледовать плавно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global Settings</source>
+ <translation type="obsolete">Общие наÑтройки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="816"/>
+ <source>follow song</source>
+ <translation type="unfinished">Ñледовать за композицией</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Метроном</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="833"/>
+ <source>Midi Sync</source>
+ <translation type="unfinished">MIDI-ÑинхронизациÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Appearance settings</source>
+ <translation type="obsolete">ÐаÑтройки облика</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Transform</source>
+ <translation type="obsolete">Преобразование входÑщих MIDI-Ñообщений</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Filter</source>
+ <translation type="obsolete">Фильтр входÑщих MIDI-Ñобытий</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Remote Control</source>
+ <translation type="obsolete">ДиÑтанционное управление MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random Rhythm Generator</source>
+ <translation type="obsolete">Генератор Ñлучайного ритма</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="780"/>
+ <source>&amp;Midi</source>
+ <translation type="unfinished">&amp;MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Микшер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Input Plugins</source>
+ <translation type="obsolete">Модули на входе</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="786"/>
+ <source>Reset Instr.</source>
+ <translation type="unfinished">Перегрузить инÑтрументы</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="788"/>
+ <source>Init Instr.</source>
+ <translation type="unfinished">ЗапуÑтить инÑтрументы</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="790"/>
+ <source>local off</source>
+ <translation type="unfinished">откл. локальное управление</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="797"/>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">&amp;Звук</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="799"/>
+ <source>Bounce to Track</source>
+ <translation type="unfinished">СвеÑти в дорожку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="802"/>
+ <source>Bounce to File</source>
+ <translation type="unfinished">СвеÑти в файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="846"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">&amp;Помощь</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="859"/>
+ <source>About&amp;Qt</source>
+ <translation type="unfinished">О &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown File Format</source>
+ <translation type="obsolete">ÐеизвеÑтный формат файла</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load project</source>
+ <translation type="obsolete">MusE: Открыть проект</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1287"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: Попытка запиÑать файл провалилаÑÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1375"/>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation type="unfinished">Текущий проект Ñодержит не Ñохранённые данные.
+Сохранить текущий проект?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">&amp;Ðе ÑохранÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Прервать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Save As</source>
+ <translation type="obsolete">MusE: Сохранить как</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Song: </source>
+ <translation type="obsolete">MusE: ПеÑнÑ:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="128"/>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: Импортировать MIDI</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Export Midi</source>
+ <translation type="obsolete">MusE: ЭкÑпортировать MIDI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="307"/>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">читаетÑÑ MIDI-файл
+ </translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1657"/>
+ <source>Nothing to edit</source>
+ <translation type="unfinished">Ðечего редактировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2407"/>
+ <source>MusE: Copy Range</source>
+ <translation type="unfinished">MusE: Скопировать облаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2424"/>
+ <source>not implemented</source>
+ <translation type="unfinished">не реализовано</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2422"/>
+ <source>MusE: Cut Events</source>
+ <translation type="unfinished">MusE: Вырезать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2497"/>
+ <source>MusE: Bounce to Track</source>
+ <translation type="unfinished">MusE: Сведение в дорожку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2482"/>
+ <source>more than one target track selected</source>
+ <translation type="unfinished">выбрано больше одной конечной дорожки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2489"/>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation type="unfinished">Ñто неправильный тип конечной дорожки,
+выберите звуковую дорожку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2499"/>
+ <source>no target track selected</source>
+ <translation type="unfinished">ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ° не выбрана</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation type="obsolete">Текущий проект Ñодержит не Ñохранённые данные.
+Загрузка нового проекта приведёт к перезапиÑи данных Ñтого.
+Сохранить текущий проект?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Overwrite</source>
+ <translation type="obsolete">Пере&amp;запиÑать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>no help found at: </source>
+ <translation type="obsolete">Ñправка не найдена в:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="40"/>
+ <source>MusE: Open Help</source>
+ <translation type="unfinished">MusE: Открыть Ñправку</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Ports / Soft Synth</source>
+ <translation type="obsolete">MIDI-порты / Прогр. Ñинтезаторы</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="663"/>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished">Выбранные дорожки удалены</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View</source>
+ <translation type="obsolete">Вид</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="782"/>
+ <source>Edit Instrument</source>
+ <translation type="unfinished">Изменить инÑтрумент</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="805"/>
+ <source>Restart Audio</source>
+ <translation type="unfinished">ПерезапуÑтить звуковой движок</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Take Snapshot</source>
+ <translation type="obsolete">Сделать Ñнимок</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings</source>
+ <translation type="obsolete">ÐаÑтройки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="813"/>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished">ÐаÑтроить горÑчие клавиши</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="835"/>
+ <source>Midi File Export</source>
+ <translation type="unfinished">ЭкÑпорт в MIDI-файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="848"/>
+ <source>&amp;Manual</source>
+ <translation type="unfinished">&amp;РуководÑтво</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="850"/>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished">ДомашнÑÑ &amp;Ñтраница MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="853"/>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished">Сообщить о&amp;б ошибке...</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="856"/>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished">&amp;О MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="863"/>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished">&amp;Что Ñто?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot read template</source>
+ <translation type="obsolete">Ðевозможно прочитать шаблон</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File open error</source>
+ <translation type="obsolete">Ошибка при открытии файла</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File read error</source>
+ <translation type="obsolete">Ошибка при чтении файла</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load template</source>
+ <translation type="obsolete">MusE: Загрузка шаблона</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2438"/>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished">MusE: Сведение</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2440"/>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished">уÑтановите левый и правый маркеры Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð±Ð»Ð°Ñти ÑведениÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2524"/>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished">MusE: Сведение в файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2526"/>
+ <source>no output track found</source>
+ <translation type="unfinished">не найдено ни одной дорожки выхода</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi file to current project?
+</source>
+ <translation type="obsolete">Добавить MIDI-файл в текущий проект?
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Add to Project</source>
+ <translation type="obsolete">&amp;Добавить в проект</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Replace</source>
+ <translation type="obsolete">&amp;Заменить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="309"/>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+не удалоÑÑŒ:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="870"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Компоновщик</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="872"/>
+ <source>Cursor</source>
+ <translation type="unfinished">КурÑор</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Выкл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Такт</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="881"/>
+ <source>Snap</source>
+ <translation type="unfinished">ПривÑзка</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="894"/>
+ <source>Len</source>
+ <translation type="unfinished">Длн</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Тип</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>NO</source>
+ <translation type="obsolete">ÐЕТ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GM</source>
+ <translation type="obsolete">GM</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GS</source>
+ <translation type="obsolete">GS</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>XG</source>
+ <translation type="obsolete">XG</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi song type</source>
+ <translation type="obsolete">тип MIDI-композиции</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="909"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="918"/>
+ <source>midi pitch</source>
+ <translation type="unfinished">midi выÑота тона</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="922"/>
+ <source>Tempo</source>
+ <translation type="unfinished">Темп</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="933"/>
+ <source>midi tempo</source>
+ <translation type="unfinished">MIDI-темп</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1279"/>
+ <source>MusE: Create tmp file failed</source>
+ <translation type="unfinished">MusE: Попытка Ñоздать временный файл провалилаÑÑŒ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="38"/>
+ <source>MusE manual not found at: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="857"/>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="190"/>
+ <source>Failed to start audio!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="191"/>
+ <source>Was not able to start audio, check if jack is running.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="591"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="574"/>
+ <source>Project Buttons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="612"/>
+ <source>&amp;Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="693"/>
+ <source>Project Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="710"/>
+ <source>Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="724"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="812"/>
+ <source>Setti&amp;ngs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="838"/>
+ <source>Preferences</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="919"/>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="945"/>
+ <source>N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1330"/>
+ <source>MusE: new project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1333"/>
+ <source>Cannot create project folder &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1182"/>
+ <source>Cannot open template file
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1189"/>
+ <source>File &lt;%1&gt; read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="146"/>
+ <source>MusE: import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">Перемотать к начальной позиции</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">Ðачать воÑпроизведение из ÑеквенÑера</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+</context>
+<context>
+ <name>MuseApplication</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="52"/>
+ <source>Transport: Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="56"/>
+ <source>Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="57"/>
+ <source>rewind to start position</source>
+ <translation type="unfinished">Перемотать к начальной позиции</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="62"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="66"/>
+ <source>Loop</source>
+ <translation type="unfinished">Цикл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="67"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="unfinished">Цикл между левым и правым маркерами</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="72"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="76"/>
+ <source>Play</source>
+ <translation type="unfinished">ВоÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="77"/>
+ <source>start sequencer play</source>
+ <translation type="unfinished">Ðачать воÑпроизведение из ÑеквенÑера</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="82"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="89"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="93"/>
+ <source>Stop</source>
+ <translation type="unfinished">ОÑтановить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="94"/>
+ <source>stop sequencer</source>
+ <translation type="unfinished">ОÑтановить ÑеквенÑер</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="99"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="105"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="111"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="117"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="121"/>
+ <source>Record</source>
+ <translation type="unfinished">ЗапиÑать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="122"/>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи нажмите &quot;ЗапиÑать&quot;, а затем &quot;ВоÑпроизвеÑти&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="128"/>
+ <source>Transport: Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="132"/>
+ <source>Punchin</source>
+ <translation type="unfinished">Ðачало врезки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="133"/>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">ЗапиÑÑŒ начинаетÑÑ Ð¾Ñ‚ маркера Ñлева</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="138"/>
+ <source>Transport: Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="142"/>
+ <source>Punchout</source>
+ <translation type="unfinished">Конец врезки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="143"/>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">ЗапиÑÑŒ оÑтанавливаетÑÑ Ð¿Ð¾ маркеру Ñправа</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="148"/>
+ <source>Transport: Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="152"/>
+ <source>rewind</source>
+ <translation type="unfinished">перемотать назад</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="153"/>
+ <source>rewind current position</source>
+ <translation type="unfinished">Перемотать к текущей позиции</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="158"/>
+ <source>Transport: Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="162"/>
+ <source>forward</source>
+ <translation type="unfinished">перемотать вперёд</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="163"/>
+ <source>move current position</source>
+ <translation type="unfinished">ПеремеÑтить текущую позицию</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="172"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="173"/>
+ <source>send note off to all midi channels</source>
+ <translation type="unfinished">ПоÑлать note off на вÑе MIDI-каналы</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="178"/>
+ <source>Edit: Undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="182"/>
+ <source>undo</source>
+ <translation type="unfinished">отменить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="183"/>
+ <source>undo last change to song</source>
+ <translation type="unfinished">отменить поÑледнее изменение композиции</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="188"/>
+ <source>Edit: Redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="192"/>
+ <source>redo</source>
+ <translation type="unfinished">повторить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="193"/>
+ <source>redo last undo</source>
+ <translation type="unfinished">повторить поÑледнюю отмену</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="198"/>
+ <source>Edit: Cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="203"/>
+ <source>Cut</source>
+ <translation type="unfinished">Вырезать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="208"/>
+ <source>Edit: Copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="213"/>
+ <source>Copy</source>
+ <translation type="unfinished">Скопировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="218"/>
+ <source>Edit: Paste,</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="223"/>
+ <source>Paste</source>
+ <translation type="unfinished">Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="228"/>
+ <source>Edit: Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="233"/>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="238"/>
+ <source>Open</source>
+ <translation type="unfinished">Открыть</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="242"/>
+ <source>open project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="244"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="249"/>
+ <source>Save</source>
+ <translation type="unfinished">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="253"/>
+ <source>save project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="255"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="260"/>
+ <source>File: Save as</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="264"/>
+ <source>save project as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="266"/>
+ <source>Click this button to save a new copy of the project.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="270"/>
+ <source>File: Save as Template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="274"/>
+ <source>save project as template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="276"/>
+ <source>Click this button to save the project you are editing
+for later use as a template.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="281"/>
+ <source>File: Open recent file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="287"/>
+ <source>File: Import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="293"/>
+ <source>File: Export midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="299"/>
+ <source>File: Import audio file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="305"/>
+ <source>File: Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="310"/>
+ <source>Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="316"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="321"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Ð’Ñе &amp;чаÑти в дорожке</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="326"/>
+ <source>Open Pianoroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="330"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="331"/>
+ <source>Start Pianoroll Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="336"/>
+ <source>Open MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="340"/>
+ <source>MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="341"/>
+ <source>Start Midi Tracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="346"/>
+ <source>Open drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="350"/>
+ <source>Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="351"/>
+ <source>Start Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="356"/>
+ <source>Open wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="361"/>
+ <source>Wave Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="366"/>
+ <source>Open listeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="370"/>
+ <source>Properties</source>
+ <translation type="unfinished">СвойÑтва</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="371"/>
+ <source>open Properties Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="376"/>
+ <source>Open mastertrack editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="380"/>
+ <source>Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="381"/>
+ <source>Start Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="386"/>
+ <source>Add midi track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="392"/>
+ <source>Add drum track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="398"/>
+ <source>Add wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="404"/>
+ <source>Add audio output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="410"/>
+ <source>Add audio group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="416"/>
+ <source>Add audio input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="422"/>
+ <source>Structure: Global cut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="428"/>
+ <source>Structure: Global insert</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="434"/>
+ <source>Structure: Global split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="440"/>
+ <source>Structure: Copy range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="446"/>
+ <source>Structure: Cut events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="452"/>
+ <source>View: Open mixer 1 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="456"/>
+ <source>Mixer1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="457"/>
+ <source>Show Mixer 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="462"/>
+ <source>View: Open mixer 2 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="466"/>
+ <source>Mixer2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="467"/>
+ <source>Show Mixer 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="472"/>
+ <source>View: Toggle transport window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="476"/>
+ <source>Transport</source>
+ <translation type="unfinished">ТранÑпорт</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="477"/>
+ <source>Show Transport Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="482"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="486"/>
+ <source>BigTime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="487"/>
+ <source>Show BigTime Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="492"/>
+ <source>View: Open marker window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="496"/>
+ <source>Marker</source>
+ <translation type="unfinished">Маркер</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="497"/>
+ <source>Show Marker List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="502"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="508"/>
+ <source>Settings: Follow song off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="514"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="520"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="526"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="532"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="538"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="544"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="550"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="556"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="562"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="568"/>
+ <source>Midi: Reset midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="574"/>
+ <source>Midi: Init midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="580"/>
+ <source>Midi: Midi local off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="586"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="592"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="598"/>
+ <source>Audio: Restart audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="604"/>
+ <source>Help: Open Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="610"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="616"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="622"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="628"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="634"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="640"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="646"/>
+ <source>Midi: Transpose</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="651"/>
+ <source>Transpose</source>
+ <translation type="unfinished">ТранÑпонировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="654"/>
+ <source>Edit: Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="659"/>
+ <source>Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="664"/>
+ <source>Edit: Select none</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="669"/>
+ <source>Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="674"/>
+ <source>Edit: Invert selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="679"/>
+ <source>Invert Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="684"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="689"/>
+ <source>Select Inside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="694"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="699"/>
+ <source>Select Outside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="716"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="710"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="722"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="728"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="734"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="740"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="746"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="751"/>
+ <source>Set fixed length</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="754"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="759"/>
+ <source>Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="762"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="767"/>
+ <source>Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="770"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="775"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="778"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="783"/>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="786"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="792"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="797"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="800"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="805"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="808"/>
+ <source>Edit: Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="813"/>
+ <source>Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="816"/>
+ <source>Edit: Thin Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="821"/>
+ <source>Thin Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="824"/>
+ <source>Edit: Erase Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="829"/>
+ <source>Erase Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="832"/>
+ <source>Edit: Note Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="837"/>
+ <source>Note Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="840"/>
+ <source>Edit: Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="845"/>
+ <source>Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="848"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="853"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="856"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="861"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="864"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="869"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="872"/>
+ <source>Edit: Create Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="877"/>
+ <source>Create Measure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="880"/>
+ <source>Edit: Change event color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="886"/>
+ <source>Tool: Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="890"/>
+ <source>Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="895"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="900"/>
+ <source>Tool: Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="904"/>
+ <source>Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="908"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="913"/>
+ <source>Tool: Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="917"/>
+ <source>Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="919"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="924"/>
+ <source>Tool: Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="928"/>
+ <source>Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="930"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="935"/>
+ <source>Tool: Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="939"/>
+ <source>Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="941"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="951"/>
+ <source>Declone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="954"/>
+ <source>Tool: Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="958"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="960"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="965"/>
+ <source>Tool: Line Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="969"/>
+ <source>Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="970"/>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="975"/>
+ <source>Tool: Mute Parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="979"/>
+ <source>Mute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="981"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="987"/>
+ <source>Transport: Increase current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="993"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="999"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1005"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1011"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1017"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1023"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1029"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1035"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1041"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1047"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1053"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1059"/>
+ <source>Insert</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1065"/>
+ <source>Insert Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1071"/>
+ <source>Insert Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1077"/>
+ <source>Change Event Position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1083"/>
+ <source>Edit Event Value</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="34"/>
+ <source>Note Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="38"/>
+ <source>Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="47"/>
+ <source>Len</source>
+ <translation type="unfinished">Длн</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="57"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="65"/>
+ <source>Velo On</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="74"/>
+ <source>Velo Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Сила нажатиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>OutportCombo</name>
+ <message>
+ <location filename="../../muse/widgets/outportcombo.cpp" line="32"/>
+ <source>Midi Output Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="442"/>
+ <source>AutoFill...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="449"/>
+ <source>drums</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="453"/>
+ <source>pianoroll</source>
+ <translation type="unfinished">pianoroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="456"/>
+ <source>miditracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="461"/>
+ <source>wave edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="496"/>
+ <source>MusE: Get auto fill loop len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="497"/>
+ <source>Measures: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="889"/>
+ <source>MusE: Change Part Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="890"/>
+ <source>PartName:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="421"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="424"/>
+ <source>Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>ALSA Patch Bay</source>
+ <translation type="obsolete">ALSA Patch Bay</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="77"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="85"/>
+ <source>&amp;Config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="86"/>
+ <source>event color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="89"/>
+ <source>blue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="92"/>
+ <source>pitch colors</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="95"/>
+ <source>velocity colors</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="100"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="109"/>
+ <source>Config Quant...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">ТранÑпонировать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="134"/>
+ <source>Pianoroll Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="155"/>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="161"/>
+ <source>Transport</source>
+ <translation type="unfinished">ТранÑпорт</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="57"/>
+ <source>MusE: select plugin</source>
+ <translation type="unfinished">MusE: выбрать модуль</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="64"/>
+ <source>Lib</source>
+ <translation type="unfinished">Библ.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="65"/>
+ <source>Label</source>
+ <translation type="unfinished">Метка</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="66"/>
+ <source>Name</source>
+ <translation type="unfinished">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="67"/>
+ <source>AI</source>
+ <translation type="unfinished">AI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="68"/>
+ <source>AO</source>
+ <translation type="unfinished">AO</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="69"/>
+ <source>CI</source>
+ <translation type="unfinished">CI</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="70"/>
+ <source>CO</source>
+ <translation type="unfinished">CP</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="71"/>
+ <source>IP</source>
+ <translation type="unfinished">IP</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="72"/>
+ <source>id</source>
+ <translation type="unfinished">id</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="73"/>
+ <source>Maker</source>
+ <translation type="unfinished">Создатель</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="74"/>
+ <source>Copyright</source>
+ <translation type="unfinished">ÐвторÑкое право</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="104"/>
+ <source>Ok</source>
+ <translation type="unfinished">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="106"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select which types of plugins should be visible in the list,&lt;br&gt;beware that &apos;all&apos; includes plugins that probably are not usable by MusE.</source>
+ <translation type="obsolete">Выберите ти модулей, которые будут видны в ÑпиÑке,&lt;br&gt;помните, что &quot;вÑе&quot; включит в ÑпиÑок модули, которые &lt;br&gt;
+могут быть непригодны Ð´Ð»Ñ MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo and Mono</source>
+ <translation type="obsolete">Стерео и моно</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="125"/>
+ <source>Stereo</source>
+ <translation type="unfinished">Стерео</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="130"/>
+ <source>Mono</source>
+ <translation type="unfinished">Моно</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Ð’Ñе</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="120"/>
+ <source>Mono and Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="135"/>
+ <source>Show All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="150"/>
+ <source>Select which types of plugins should be visible in the list.&lt;br&gt;Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.&lt;br&gt;Also beware that the &apos;all&apos; alternative includes plugins that probably not are usable by MusE.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="157"/>
+ <source>Search in &apos;Label&apos; and &apos;Name&apos;:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="347"/>
+ <source>File Buttons</source>
+ <translation type="unfinished">Файловые кнопки</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="349"/>
+ <source>Load Preset</source>
+ <translation type="unfinished">Загрузить предуÑтановку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="352"/>
+ <source>Save Preset</source>
+ <translation type="unfinished">Сохранить предуÑтановку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="358"/>
+ <source>bypass plugin</source>
+ <translation type="unfinished">обойти модуль</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="574"/>
+ <source>MusE: load preset</source>
+ <translation type="unfinished">MusE: загрузить предуÑтановку</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="635"/>
+ <source>MusE: save preset</source>
+ <translation type="unfinished">MusE: Ñохранить предуÑтановку</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../../muse/preferences.cpp" line="680"/>
+ <source>MusE: load image</source>
+ <translation type="unfinished">MusE: загрузить изображение</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectDialog</name>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="420"/>
+ <source>MusE: create new folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="421"/>
+ <source>new folder:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port Number</source>
+ <translation type="obsolete">Ðомер порта</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable gui for device</source>
+ <translation type="obsolete">разрешить GUI Ð´Ð»Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name of the midi device associated with this port number</source>
+ <translation type="obsolete">Ð˜Ð¼Ñ MIDI-уÑтройÑтва, аÑÑоциированного Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ Ñтого порта </translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument connected to port</source>
+ <translation type="obsolete">ИнÑтрумент, подÑоединённый к Ñтому порту</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State: result of opening the device</source>
+ <translation type="obsolete">СоÑтоÑние: результат Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables reading from device</source>
+ <translation type="obsolete">разрешает чтение Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables writing to device</source>
+ <translation type="obsolete">разрешает запиÑÑŒ на уÑтройÑтво</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../../muse/muse.cpp" line="356"/>
+ <source>Add Midi Generator...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="380"/>
+ <source>Add Soft Synth...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QPopupMenu</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Soft Synth</source>
+ <translation type="obsolete">Добавить программный Ñинтезатор</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="303"/>
+ <source>new</source>
+ <translation type="unfinished">новый</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>File
+</source>
+ <translation type="unfinished">Файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>
+exists</source>
+ <translation type="unfinished">(new line)
+ÑущеÑтвует</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="138"/>
+ <source>MusE: write</source>
+ <translation type="unfinished">MusE: запиÑать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="140"/>
+ <source>Overwrite</source>
+ <translation type="unfinished">ПерезапиÑать</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="141"/>
+ <source>Quit</source>
+ <translation type="unfinished">Выйти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ðичего</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="151"/>
+ <source>Open File
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="152"/>
+ <source>
+failed: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="153"/>
+ <source>MusE: Open File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="173"/>
+ <source>generic midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="101"/>
+ <source>copy
+ %1
+to
+ %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="105"/>
+ <source>
+converting sample rate
+from %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="109"/>
+ <source>Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="358"/>
+ <source>create peakfile for </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="127"/>
+ <source>MusE: export midi file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="51"/>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="59"/>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RecordButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="38"/>
+ <source>record</source>
+ <translation type="unfinished">запиÑать</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation type="obsolete">MusE: Генератор Ñлучайного ритма</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Properties</source>
+ <translation type="obsolete">СвойÑтва инÑтрумента</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>test</source>
+ <translation type="obsolete">теÑÑ‚</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>contrib</source>
+ <translation type="obsolete">внеÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>randomize</source>
+ <translation type="obsolete">перемешать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 1</source>
+ <translation type="obsolete">Группа C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 2</source>
+ <translation type="obsolete">Группа 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 3</source>
+ <translation type="obsolete">Группа 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 4</source>
+ <translation type="obsolete">Группа 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 5</source>
+ <translation type="obsolete">Группа 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>listen</source>
+ <translation type="obsolete">проÑлушать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">ИнÑтрумент</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Группа</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">Ñоздать новую запиÑÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">По нажатию кнопки &quot;ÐоваÑ&quot; ÑоздаётÑÑ Ð½Ð¾Ð²Ð°Ñ
+запиÑÑŒ в ÑпиÑок назначенных в MusE контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">У&amp;далить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">удалить выделенное Ñобытие</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Вверх</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Вниз</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument </source>
+ <translation type="obsolete">ИнÑтрумент</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">ÑпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Это ÑпиÑок назначенных контроллеров Ð´Ð»Ñ MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Help</source>
+ <translation type="obsolete">П&amp;омощь</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">СервиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Ðовый</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Открыть</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Открыть...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Сохранить как</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">Сохранить &amp;как...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print</source>
+ <translation type="obsolete">Ðапечатать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Print...</source>
+ <translation type="obsolete">&amp;Печать...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Выйти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">В&amp;ыйти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Undo</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Undo</source>
+ <translation type="obsolete">&amp;Отменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Redo</source>
+ <translation type="obsolete">Повторить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Redo</source>
+ <translation type="obsolete">П&amp;овторить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Вырезать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cut</source>
+ <translation type="obsolete">&amp;Вырезать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Скопировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;opy</source>
+ <translation type="obsolete">С&amp;копировать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">&amp;Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Find</source>
+ <translation type="obsolete">Ðайти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Find...</source>
+ <translation type="obsolete">&amp;Ðайти...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Contents</source>
+ <translation type="obsolete">Содержание</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Contents...</source>
+ <translation type="obsolete">&amp;Содержание...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Index</source>
+ <translation type="obsolete">ИндекÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Index...</source>
+ <translation type="obsolete">&amp;ИндекÑ...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>About</source>
+ <translation type="obsolete">О программе</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About...</source>
+ <translation type="obsolete">&amp;О программе...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation type="obsolete">&lt;b&gt;Внимание!&lt;/b&gt;&lt;br&gt;
+Случайный генератор ритма пока ещё не работает!</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+N</source>
+ <translation type="obsolete">Ctrl+N</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+O</source>
+ <translation type="obsolete">Ctrl+O</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+S</source>
+ <translation type="obsolete">Ctrl+S</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+P</source>
+ <translation type="obsolete">Ctrl+P</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+Z</source>
+ <translation type="obsolete">Ctrl+Z</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+Y</source>
+ <translation type="obsolete">Ctrl+Y</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+X</source>
+ <translation type="obsolete">Ctrl+X</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+C</source>
+ <translation type="obsolete">Ctrl+C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+V</source>
+ <translation type="obsolete">Ctrl+V</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ctrl+F</source>
+ <translation type="obsolete">Ctrl+F</translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Routing</source>
+ <translation type="obsolete">MusE: Маршруты</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Route</source>
+ <translation type="obsolete">Добавить маршрут</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Source:</source>
+ <translation type="obsolete">ИÑточник:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Destination:</source>
+ <translation type="obsolete">Ðазначение:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Connect</source>
+ <translation type="obsolete">Соединить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>connect source to destination</source>
+ <translation type="obsolete">Ñоединить иÑточник Ñ Ð¼ÐµÑтом назначениÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Current Routes</source>
+ <translation type="obsolete">Текущие маршруты</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Source</source>
+ <translation type="obsolete">ИÑточник</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Destination</source>
+ <translation type="obsolete">Ðазначение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Удалить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove selected route</source>
+ <translation type="obsolete">удалить текущий маршрут</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">ИмÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Label</source>
+ <translation type="obsolete">Метка</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginFront</name>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="213"/>
+ <source>Clear and unload effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="214"/>
+ <source>Load effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="215"/>
+ <source>Toggle display of effect parameters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="216"/>
+ <source>Turn effect on/off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="78"/>
+ <source>Shortcut conflicts with </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="94"/>
+ <source>Undefined</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfig</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="37"/>
+ <source>Global</source>
+ <translation type="unfinished">Глобально</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="38"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Компоновщик</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="39"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianoroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Ð’Ñтавить ноту</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Ð’Ñтавить SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Ð’Ñтавить контроллер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Ð’Ñтавить Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Ð’Ñтавить Channel Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Ð’Ñтавить Key Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="40"/>
+ <source>Drumeditor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="41"/>
+ <source>List editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="42"/>
+ <source>List Mastertrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="44"/>
+ <source>All categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="43"/>
+ <source>Wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+D</source>
+ <translation type="obsolete">Alt+D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Применить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+A</source>
+ <translation type="obsolete">Alt+A</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <location filename="../../synti/simpledrums/simpledrumsgui.cpp" line="633"/>
+ <source>Load sample dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Song</name>
+ <message>
+ <location filename="../../muse/song.cpp" line="1493"/>
+ <source>Jack shutdown!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/song.cpp" line="1508"/>
+ <source>Jack has detected a performance problem which has lead to
+MusE being disconnected.
+This could happen due to a number of reasons:
+- a performance issue with your particular setup.
+- a bug in MusE (or possibly in another connected software).
+- a random hiccup which might never occur again.
+- jack was voluntary stopped by you or someone else
+- jack crashed
+If there is a persisting problem you are much welcome to discuss it
+on the MusE mailinglist.
+(there is information about joining the mailinglist on the MusE
+ homepage which is available through the help menu)
+
+To proceed check the status of Jack and try to restart it and then .
+click on the Restart button.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SplitLayerGui</name>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="53"/>
+ <source>start pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="58"/>
+ <source>enable learn mode for start pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="70"/>
+ <source>end pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="75"/>
+ <source>enable learn mode for end pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="84"/>
+ <source>pitch offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="91"/>
+ <source>start velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="97"/>
+ <source>end velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="103"/>
+ <source>velocity offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLSWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="132"/>
+ <source>Remove Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="136"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="238"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Сила нажатиÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="271"/>
+ <source>Delete Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="128"/>
+ <source>Copy Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="145"/>
+ <source>Show Gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="272"/>
+ <source>Add Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="424"/>
+ <source>Midi Output Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TemplateDialog</name>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="75"/>
+ <source>MusE presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="85"/>
+ <source>User presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tempo/Sig</source>
+ <translation type="obsolete">Темп/Знаки альтерации</translation>
+ </message>
+</context>
+<context>
+ <name>TimeCanvas</name>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="147"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="149"/>
+ <source>Add Controller View</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="45"/>
+ <source>Cursor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="64"/>
+ <source>Snap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="70"/>
+ <source>Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="86"/>
+ <source>To</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="90"/>
+ <source>All Events</source>
+ <translation type="unfinished">Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="91"/>
+ <source>Looped Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="92"/>
+ <source>Selected Ev.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="93"/>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="51"/>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="56"/>
+ <source>Track Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="69"/>
+ <source>Track Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="78"/>
+ <source>Track Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Overdub</source>
+ <translation type="obsolete">Ðаложить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Replace</source>
+ <translation type="obsolete">Заменить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec Mode</source>
+ <translation type="obsolete">Режим запиÑи</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Normal</source>
+ <translation type="obsolete">Ðорм.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mix</source>
+ <translation type="obsolete">Смешать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cycle Rec</source>
+ <translation type="obsolete">Циклич. запиÑÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchin</source>
+ <translation type="obsolete">нач. врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop</source>
+ <translation type="obsolete">цикл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>punchout</source>
+ <translation type="obsolete">кнц. врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punch In</source>
+ <translation type="obsolete">Ðачало врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Loop</source>
+ <translation type="obsolete">Цикл</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Punch Out</source>
+ <translation type="obsolete">Конец врезки</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Left Mark</source>
+ <translation type="obsolete">Левый маркер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Right Mark</source>
+ <translation type="obsolete">Правый маркер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start</source>
+ <translation type="obsolete">перемотать к началу</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">перемотать назад</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">перемотать вперёд</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">оÑтановить</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">воÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">запиÑать</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>AC</source>
+ <translation type="obsolete">AC</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize during record</source>
+ <translation type="obsolete">квантовать при запиÑи</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click</source>
+ <translation type="obsolete">Метр.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>metronom click on/off</source>
+ <translation type="obsolete">Щелчки метронома</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync</source>
+ <translation type="obsolete">Синхр.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>external sync on/off</source>
+ <translation type="obsolete">Вкл/выкл внешнюю Ñинхронизацию</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">МаÑтер</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">иÑпользовать маÑтер-дорожку</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Значение</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">ЧаÑти</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="480"/>
+ <source>MusE: Load VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="583"/>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Velocity</name>
+ <message>
+ <location filename="../../muse/midiedit/velocity.cpp" line="33"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Выбранные ÑобытиÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² цикле</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Выбранные и в цикле</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">ЗначениÑ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">ЧаÑтота:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Смещение:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">ОК</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="50"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="51"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="52"/>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="54"/>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="55"/>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="57"/>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="59"/>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="61"/>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="63"/>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="65"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="69"/>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="71"/>
+ <source>Mute Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="73"/>
+ <source>Normalize Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="75"/>
+ <source>Fade In Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="77"/>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="79"/>
+ <source>Reverse Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="82"/>
+ <source>Select</source>
+ <translation type="unfinished">Выделить</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="93"/>
+ <source>waveedit-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="104"/>
+ <source>Transport</source>
+ <translation type="unfinished">ТранÑпорт</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="111"/>
+ <source>pianoroll-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="112"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="116"/>
+ <source>Cursor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">выкл</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="809"/>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="810"/>
+ <source>When editing in external editor - you should not change the filesize
+since it must fit the selected region.
+
+Missing data is muted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse_qt4_evolution/share/locale/muse_sv_SE.qm b/muse_qt4_evolution/share/locale/muse_sv_SE.qm
new file mode 100644
index 00000000..dd6e6905
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_sv_SE.qm
Binary files differ
diff --git a/muse_qt4_evolution/share/locale/muse_sv_SE.ts b/muse_qt4_evolution/share/locale/muse_sv_SE.ts
new file mode 100644
index 00000000..53a00f4e
--- /dev/null
+++ b/muse_qt4_evolution/share/locale/muse_sv_SE.ts
@@ -0,0 +1,12410 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name></name>
+ <message>
+ <location filename="../../muse/transport.cpp" line="35"/>
+ <source>Click this button to enable recording</source>
+ <translation type="unfinished">Klicka här för att spela in</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="25"/>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation type="unfinished">Sätter mängden kvantisering:
+0 - ingen kvantisering
+100 - full kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="obsolete">välj pek-verktyg:
+med pekverktyget kan du:
+ välja parter
+ flytta parter
+ kopiera parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Starta uppspelning från nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Spela, stoppa, spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: Gå till höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: Loopa sektion av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Inspelning av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Redigera: Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Redigera: Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Redigera: Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Redigera: Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Redigera: Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Redigera: Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: New project</source>
+ <translation type="obsolete">Arkiv: Nytt projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open from disk</source>
+ <translation type="obsolete">Arkiv: Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save project</source>
+ <translation type="obsolete">Arkiv: Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Arkiv: Öppna föregående fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save as</source>
+ <translation type="obsolete">Arkiv: Spara som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Load template</source>
+ <translation type="obsolete">Arkiv: Ladda mall</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Arkiv: Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Arkiv: Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Arkiv: Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Arkiv: Avsluta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Arkiv: Välj alla parter i spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Öppna pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Öppna trumeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Öppna listeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (grafisk)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (lista)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open midi transformer</source>
+ <translation type="obsolete">Öppna miditransformer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Lägg till midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Lägg till trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Lägg till ljudspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Lägg till ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Lägg till ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Lägg till ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio aux</source>
+ <translation type="obsolete">Lägg till aux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: Global insättning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: Global delning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Klipp ut händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Vy: Öppna mixerfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Vy: Transportfönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Vy: Bigtimefönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Vy: Öppna markörfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Inställningar: Följ sång efter sida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Inställningar: Följ sång av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Inställningar: Följ sång kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Global configuration</source>
+ <translation type="obsolete">Inställningar: Globala inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Inställningar: Konfigurera tangentbordsgenvängar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Inställningar: Konfigurera metronom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Inställningar: Midi synk konfigurationg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Inställningar: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Appearance settings</source>
+ <translation type="obsolete">Inställningar: Utseendeinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Inställningar: Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Inställningar: Konfiguration av ljud-undersystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Editera midi-instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input transform</source>
+ <translation type="obsolete">Midi: Öppna midi inputtransformator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input filter</source>
+ <translation type="obsolete">Midi: Öppna midi indatafilter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi input transpose</source>
+ <translation type="obsolete">Midi: Midi indata transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Random rhythm generator</source>
+ <translation type="obsolete">Midi: Slumprymtmgenerator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Resetta midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Initiera midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce till spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Starta om audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Mixer automation</source>
+ <translation type="obsolete">Audio: Mixerautomation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Take mixer snapshot</source>
+ <translation type="obsolete">Audio: Mixer ögonblicksbild</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Clear mixer automation</source>
+ <translation type="obsolete">Audio: Rensa mixerautomation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hjälp: Öppna manual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hjälp: What&apos;s this-läge av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Redigera: Editera vald part</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på ovanstående spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på ovanstående spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på underliggande spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på underliggande spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Redigera: Välj alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Redigera: Välj ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Redigera: Invertera val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter inom sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter utanför sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Redigera: Välj närmsta part/händelse till vänster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till vänster till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till höger till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="obsolete">Redigera: Sätt loopsektion till valda parter/händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="obsolete">Redigera: Höj pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="obsolete">Redigera: Sänk pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="obsolete">Redigera: Sätt fix längd till valda midihändelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="obsolete">Redigera: Överkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på/av-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="obsolete">Kvantisering: Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="obsolete">Kvantisering: Konfigurera kvantisering<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="obsolete">Kvantisering: Modifiera gate-tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="obsolete">Kvantisering: Modifiera velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Crescendo</source>
+ <translation type="obsolete">Redigera: Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Thin Out</source>
+ <translation type="obsolete">Redigera: Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Event</source>
+ <translation type="obsolete">Redigera: Ta bort händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Note Shift</source>
+ <translation type="obsolete">Redigera: Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Move Clock</source>
+ <translation type="obsolete">Redigera: Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="obsolete">Redigera: Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Create Measure</source>
+ <translation type="obsolete">Redigera: Lägg till Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Change event color</source>
+ <translation type="obsolete">Redigera: Ändra färg på händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pointer</source>
+ <translation type="obsolete">Verktyg: Pekare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pencil</source>
+ <translation type="obsolete">Verktyg: Penna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Eraser</source>
+ <translation type="obsolete">Verktyg: Radergummi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Line Draw</source>
+ <translation type="obsolete">Verktyg: Rita linje</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Scissor</source>
+ <translation type="obsolete">Verktyg: Delare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Glue</source>
+ <translation type="obsolete">Verktyg: Lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Mute</source>
+ <translation type="obsolete">Verktyg: Tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Increase current position</source>
+ <translation type="obsolete">Transport: Öka nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="obsolete">Transport: Minska nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/1-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/2-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/4-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/8-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/16-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/32-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/64-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="obsolete">Kvantisering: Växla triol-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering (2)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Insert at location</source>
+ <translation type="obsolete">Redigera: Sätt in på nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Mata in Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Mata in SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Mata in Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Mata in Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Mata in Key Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase event position</source>
+ <translation type="obsolete">Redigera: Öka position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease event position</source>
+ <translation type="obsolete">Redigera: Minska position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tempo</source>
+ <translation type="obsolete">Mata in Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Signature</source>
+ <translation type="obsolete">Mata in tempo-signatur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Change Event Position</source>
+ <translation type="obsolete">Ändra position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit Event Value</source>
+ <translation type="obsolete">Redigera värde för händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="30"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="31"/>
+ <source>Refrain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="32"/>
+ <source>Bridge</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="33"/>
+ <source>Intro</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="34"/>
+ <source>Coda</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="35"/>
+ <source>Chorus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="37"/>
+ <source>Brass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="38"/>
+ <source>Percussion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="39"/>
+ <source>Drums</source>
+ <translation type="unfinished">Trummor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="40"/>
+ <source>Guitar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="41"/>
+ <source>Bass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="42"/>
+ <source>Flute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="43"/>
+ <source>Strings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="44"/>
+ <source>Keyboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="45"/>
+ <source>Piano</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/part.cpp" line="46"/>
+ <source>Saxophon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <location filename="../../muse/transport.cpp" line="36"/>
+ <source>Click this button to stop playback</source>
+ <translation type="unfinished">Klicka här för att stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="37"/>
+ <source>Click this button to start playback</source>
+ <translation type="unfinished">Klicka här för att starta uppspelning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="38"/>
+ <source>Click this button to rewind to start position</source>
+ <translation type="unfinished">Klicka här för att spola tillbaks till början</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="39"/>
+ <source>Click this button to rewind</source>
+ <translation type="unfinished">Klicka här för att flytta markören bakåt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/transport.cpp" line="40"/>
+ <source>Click this button to forward current play position</source>
+ <translation type="unfinished">Klicka här för att flytta markören framåt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="26"/>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation type="unfinished">Kvantisera inte över denna tick gräns</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/quantconfig.cpp" line="27"/>
+ <source>quantize also note len as default</source>
+ <translation type="unfinished">Kvantisera &quot;note len&quot; som standard</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to open a &lt;em&gt;new song&lt;/em&gt;.&lt;br&gt;You can also select the &lt;b&gt;Open command&lt;/b&gt; from the File menu.</source>
+ <translation type="obsolete">Klicka här för att öppna en &lt;em&gt;ny sång&lt;/em&gt;.&lt;br&gt;Du kan också välja menyvalet &lt;b&gt;Öppna&lt;/b&gt; från Arkivmenyn.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to save the song you are editing. You will be prompted for a file name.
+You can also select the Save command from the File menu.</source>
+ <translation type="obsolete">Klicka här för att spara den sång du håller på att redigera. En förfrågan om filnamn kommer att ställas.
+Du kan också välja menyalternativet Spara från Arkivmenyn.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Song</source>
+ <translation type="obsolete">Ny sång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="obsolete">loopa mellan vänster och höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record starts at left mark</source>
+ <translation type="obsolete">inspelning börjar vid vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record stops at right mark</source>
+ <translation type="obsolete">inspelning slutar vid höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">spola tillbaka till startposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind current position</source>
+ <translation type="obsolete">flytta markörposition bakåt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move current position</source>
+ <translation type="obsolete">flytta markörposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop sequencer</source>
+ <translation type="obsolete">stoppa sequencer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">starta sequenceruppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to record press record and then play</source>
+ <translation type="obsolete">för att spela in, tryck på record och sen play</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>send note off to all midi channels</source>
+ <translation type="obsolete">skicka note off till alla midi kanaler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="obsolete">välj pennverktyg:
+med pennverktyget kan du:
+ skapa parter
+ ändra längden på parter
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="obsolete">välj Suddverktyg:
+med suddverktyget kan du ta bort parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="obsolete">välj Delningsverktyg:
+med delningsverktyget kan du dela på parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="obsolete">välj Limverktyg:
+med limverktyget kan du limma ihop två parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Score Tool:
+</source>
+ <translation type="obsolete">välj Partiturverktyg:
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="obsolete">välj Kvantiseringsverktyg:
+sätt in kvantiseringshändelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Drawing Tool</source>
+ <translation type="obsolete">välj Ritverktyg
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="obsolete">välj Tystningsverktyg:
+klicka på en part för att Tysta/Avtysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pencil</source>
+ <translation type="obsolete">penna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rubber</source>
+ <translation type="obsolete">sudd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>cutter</source>
+ <translation type="obsolete">delare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize</source>
+ <translation type="obsolete">kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>draw</source>
+ <translation type="obsolete">rita</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute parts</source>
+ <translation type="obsolete">muta parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/rastercombo.cpp" line="31"/>
+ <source>Off</source>
+ <translation type="unfinished">Av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="41"/>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished">inställningar (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="42"/>
+ <source>All Files (*)</source>
+ <translation type="unfinished">Alla filer (*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="347"/>
+ <source>Add Midi Track</source>
+ <translation type="unfinished">Lägg till Midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Drum Track</source>
+ <translation type="obsolete">Lägg till Trumspår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="371"/>
+ <source>Add Wave Track</source>
+ <translation type="unfinished">Lägg till Wavespår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="373"/>
+ <source>Add Audio Output</source>
+ <translation type="unfinished">Lägg till Ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="375"/>
+ <source>Add Audio Group</source>
+ <translation type="unfinished">Lägg till Ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="377"/>
+ <source>Add Audio Input</source>
+ <translation type="unfinished">Lägg till Ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Aux Send</source>
+ <translation type="obsolete">Lägg till aux sänd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Click this button to enable recording</source>
+ <translation type="obsolete">Klicka här för att spela in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Starta uppspelning från nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="224"/>
+ <source>m</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="227"/>
+ <source>mute</source>
+ <translation type="unfinished">tysta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="238"/>
+ <source>s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="241"/>
+ <source>solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="251"/>
+ <source>Mo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="254"/>
+ <source>monitor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="264"/>
+ <source>Dr</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="267"/>
+ <source>use drum map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="279"/>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="298"/>
+ <source>aR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="301"/>
+ <source>automation read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="311"/>
+ <source>aW</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="314"/>
+ <source>automation write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="324"/>
+ <source>sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="327"/>
+ <source>send sync events</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="358"/>
+ <source>1/2 channel</source>
+ <translation type="unfinished">1/2 kanal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="371"/>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="373"/>
+ <source>output routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="389"/>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="391"/>
+ <source>input routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="143"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="103"/>
+ <source>Bar</source>
+ <translation type="unfinished">Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="341"/>
+ <source>Midi</source>
+ <translation type="unfinished">Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="350"/>
+ <source>Add Midi Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="353"/>
+ <source>Add Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="368"/>
+ <source>Audio</source>
+ <translation type="unfinished">Ljud</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2977"/>
+ <source>MusE: create project directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3006"/>
+ <source>MusE: create template directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3071"/>
+ <source>Cannot find project &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3072"/>
+ <source>MusE: load Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Spela, stoppa, spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: Gå till höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: Loopa sektion av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Inspelning av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Redigera: Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Redigera: Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Redigera: Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Redigera: Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Redigera: Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Redigera: Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Arkiv: Öppna föregående fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Arkiv: Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Arkiv: Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Arkiv: Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Arkiv: Avsluta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Arkiv: Välj alla parter i spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Öppna pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Öppna trumeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Öppna listeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (grafisk)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (lista)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Lägg till midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Lägg till trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Lägg till ljudspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Lägg till ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Lägg till ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Lägg till ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: Global insättning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: Global delning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Klipp ut händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Vy: Öppna mixerfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Vy: Transportfönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Vy: Bigtimefönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Vy: Öppna markörfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Inställningar: Följ sång efter sida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Inställningar: Följ sång av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Inställningar: Följ sång kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Inställningar: Konfigurera tangentbordsgenvängar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Inställningar: Konfigurera metronom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Inställningar: Midi synk konfigurationg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Inställningar: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Inställningar: Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Inställningar: Konfiguration av ljud-undersystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Editera midi-instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Resetta midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Initiera midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce till spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Starta om audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hjälp: Öppna manual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hjälp: What&apos;s this-läge av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Redigera: Editera vald part</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på ovanstående spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på ovanstående spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på underliggande spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på underliggande spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Redigera: Välj alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Redigera: Välj ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Redigera: Invertera val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter inom sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter utanför sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Redigera: Välj närmsta part/händelse till vänster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till vänster till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till höger till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="obsolete">Redigera: Sätt loopsektion till valda parter/händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="obsolete">Redigera: Höj pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="obsolete">Redigera: Sänk pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="obsolete">Redigera: Sätt fix längd till valda midihändelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="obsolete">Redigera: Överkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på/av-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="obsolete">Kvantisering: Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="obsolete">Kvantisering: Konfigurera kvantisering<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="obsolete">Kvantisering: Modifiera gate-tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="obsolete">Kvantisering: Modifiera velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Crescendo</source>
+ <translation type="obsolete">Redigera: Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Thin Out</source>
+ <translation type="obsolete">Redigera: Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Event</source>
+ <translation type="obsolete">Redigera: Ta bort händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Note Shift</source>
+ <translation type="obsolete">Redigera: Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Move Clock</source>
+ <translation type="obsolete">Redigera: Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="obsolete">Redigera: Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Create Measure</source>
+ <translation type="obsolete">Redigera: Lägg till Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Change event color</source>
+ <translation type="obsolete">Redigera: Ändra färg på händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pointer</source>
+ <translation type="obsolete">Verktyg: Pekare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pencil</source>
+ <translation type="obsolete">Verktyg: Penna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Eraser</source>
+ <translation type="obsolete">Verktyg: Radergummi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Line Draw</source>
+ <translation type="obsolete">Verktyg: Rita linje</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Scissor</source>
+ <translation type="obsolete">Verktyg: Delare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Glue</source>
+ <translation type="obsolete">Verktyg: Lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Mute</source>
+ <translation type="obsolete">Verktyg: Tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Increase current position</source>
+ <translation type="obsolete">Transport: Öka nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="obsolete">Transport: Minska nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/1-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/2-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/4-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/8-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/16-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/32-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/64-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="obsolete">Kvantisering: Växla triol-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering (2)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tempo</source>
+ <translation type="obsolete">Mata in Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Signature</source>
+ <translation type="obsolete">Mata in tempo-signatur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Change Event Position</source>
+ <translation type="obsolete">Ändra position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit Event Value</source>
+ <translation type="obsolete">Redigera värde för händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="3034"/>
+ <source>MusE: create instruments directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>AboutBox</source>
+ <translation type="obsolete">OmDialog</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep On Rocking!</source>
+ <translation type="obsolete">Keep On Rocking!</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Version 0.7.0
+
+(C) Copyright 1999-2004 Werner Schweer and others.
+See http://lmuse.sourceforge.net for new versions and
+more information.
+
+Published under the GNU Public License</source>
+ <translation type="obsolete">Version 0.7.0
+
+(C) Copyright 1999-2004 Werner Schweer m.fl.
+Se http://lmuse.sourceforge.net för nya versioner och
+mer information
+
+Published under the GNU Public License</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>handle of transport window</source>
+ <translation type="obsolete">handtag för transportfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>track activity in arranger</source>
+ <translation type="obsolete">spår-aktivitet i Arrangeraren</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime font color</source>
+ <translation type="obsolete">bigtime typsnittsfärg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bigtime background color</source>
+ <translation type="obsolete">bigtime bakgrundsfärg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>waveedit background color</source>
+ <translation type="obsolete">audioeditor bakgrundsfärg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load image</source>
+ <translation type="obsolete">MusE: ladda bild</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Appearance settings</source>
+ <translation type="obsolete">MusE: Utseendeinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangerare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show frames</source>
+ <translation type="obsolete">visa ramar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show names</source>
+ <translation type="obsolete">visa namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show events</source>
+ <translation type="obsolete">visa händelser(events)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show Cakewalk Style</source>
+ <translation type="obsolete">använd Cakewalkstil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events</source>
+ <translation type="obsolete">Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note on</source>
+ <translation type="obsolete">not på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>poly pressure</source>
+ <translation type="obsolete">poly pressure</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller</source>
+ <translation type="obsolete">controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>aftertouch</source>
+ <translation type="obsolete">aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pitch bend</source>
+ <translation type="obsolete">pitch bend</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>program change</source>
+ <translation type="obsolete">program change</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background picture</source>
+ <translation type="obsolete">Bakgrundsbild</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select...</source>
+ <translation type="obsolete">välj...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show snap grid</source>
+ <translation type="obsolete">visa rutnät</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">Färger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Items</source>
+ <translation type="obsolete">Objekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected</source>
+ <translation type="obsolete">vald</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>current:</source>
+ <translation type="obsolete">nuvarande:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change...</source>
+ <translation type="obsolete">byt...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation type="obsolete">dynamisk färgallokering för spåraktivitet i arranger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Style/Fonts</source>
+ <translation type="obsolete">Style/Typsnitt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>QT Theme</source>
+ <translation type="obsolete">QT-tema</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Typsnitt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Family</source>
+ <translation type="obsolete">Familj</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Size</source>
+ <translation type="obsolete">Storlek</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 1</source>
+ <translation type="obsolete">Typsnitt 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 2</source>
+ <translation type="obsolete">Typsnitt 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 3</source>
+ <translation type="obsolete">Typsnitt 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 0</source>
+ <translation type="obsolete">Typsnitt 0</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bold</source>
+ <translation type="obsolete">Fet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Italic</source>
+ <translation type="obsolete">Kursiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 4</source>
+ <translation type="obsolete">Typsnitt 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Font 5</source>
+ <translation type="obsolete">Typsnitt 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Palette</source>
+ <translation type="obsolete">Palett</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>add to palette</source>
+ <translation type="obsolete">lägg till i palett</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangerare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cursor</source>
+ <translation type="obsolete">Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Snap</source>
+ <translation type="obsolete">Fäst vid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi song type</source>
+ <translation type="obsolete">typ av midsång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="298"/>
+ <source>TrackInfo</source>
+ <translation type="unfinished">Spårinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track</source>
+ <translation type="obsolete">Spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Grupp A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Grupp B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Grupp C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Grupp D</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="305"/>
+ <source>Mix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="356"/>
+ <source>Config Tracklist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="364"/>
+ <source>all mute off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="373"/>
+ <source>all solo off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="382"/>
+ <source>all autoRead off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="391"/>
+ <source>all autoWrite off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="406"/>
+ <source>i</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="407"/>
+ <source>Show Track Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="414"/>
+ <source>m</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/arranger.cpp" line="415"/>
+ <source>Show Mixer Strip</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Audio Configuration</source>
+ <translation type="obsolete">MusE: Ljudinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Parameters</source>
+ <translation type="obsolete">Ljudparametrar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Frame Size:</source>
+ <translation type="obsolete">Ramstorlek:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delay:</source>
+ <translation type="obsolete">Fördröjning(ms):</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sample Rate:</source>
+ <translation type="obsolete">Samplingsfrekvens:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Driver</source>
+ <translation type="obsolete">Ljuddrivrutin</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use Alsa</source>
+ <translation type="obsolete">Använd Alsa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Use JACK</source>
+ <translation type="obsolete">Använd JACK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>No Audio</source>
+ <translation type="obsolete">Ljud avstängt</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">1/2 kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">pre fader lyssning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record downmix</source>
+ <translation type="obsolete">spela in nermixning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Input Strip</source>
+ <translation type="obsolete">Lägg till Input-remsa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inputs</source>
+ <translation type="obsolete">Ingångar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tracks</source>
+ <translation type="obsolete">Spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Groups</source>
+ <translation type="obsolete">Grupper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group A</source>
+ <translation type="obsolete">Grupp A</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group B</source>
+ <translation type="obsolete">Grupp B</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group C</source>
+ <translation type="obsolete">Grupp C</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group D</source>
+ <translation type="obsolete">Grupp D</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Create</source>
+ <translation type="obsolete">&amp;Skapa</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1/2 channel</source>
+ <translation type="obsolete">1/2 kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">tysta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="172"/>
+ <source>record downmix</source>
+ <translation type="unfinished">spela in nermixning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">pre fader lyssning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="662"/>
+ <source>Channel</source>
+ <translation type="unfinished">Kanal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="78"/>
+ <source>Pre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="79"/>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="106"/>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="416"/>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="430"/>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="604"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/astrip.cpp" line="634"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::MidiVolEntry</name>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="35"/>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <location filename="../../awl/midivolentry.cpp" line="36"/>
+ <source>db</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Awl::VolEntry</name>
+ <message>
+ <location filename="../../awl/volentry.cpp" line="32"/>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <location filename="../../muse/widgets/bigtime.cpp" line="66"/>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Clip List Editor</source>
+ <translation type="obsolete">MusE: Clip-listredigerare</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: ClipList</source>
+ <translation type="obsolete">MusE: Clip-lista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clip Properties</source>
+ <translation type="obsolete">Clip-egenskaper</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Spår-kommentar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track 1</source>
+ <translation type="obsolete">Spår 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Midi Controller</source>
+ <translation type="obsolete">MusE: Konfigurera Midi Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port:</source>
+ <translation type="obsolete">Midi Port:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Controller:</source>
+ <translation type="obsolete">Tillgänglig Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Lägg till</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automated Controller:</source>
+ <translation type="obsolete">Automatiserad Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Midi File Export</source>
+ <translation type="obsolete">MusE: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>0 (single track)</source>
+ <translation type="obsolete">0 (enskilt spår)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>1 (multiple tracks)</source>
+ <translation type="obsolete">1 (multipla spår)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Format:</source>
+ <translation type="obsolete">Format:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Slå på utbyggt smf-format</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigTrackListBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Track List</source>
+ <translation type="obsolete">MusE: Konfigurera Spårlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Type:</source>
+ <translation type="obsolete">Spårtyp:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Output</source>
+ <translation type="obsolete">Ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Group</source>
+ <translation type="obsolete">Ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Aux</source>
+ <translation type="obsolete">Ljud Aux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Wave Track</source>
+ <translation type="obsolete">Wavespår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Input</source>
+ <translation type="obsolete">Ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Mjukvarusynth</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Track</source>
+ <translation type="obsolete">Midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum Track</source>
+ <translation type="obsolete">Trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Items:</source>
+ <translation type="obsolete">Tillgängliga Objekt:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Lägg till</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Upp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Ner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Configured Items</source>
+ <translation type="obsolete">Konfigurerade Objekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name Size:</source>
+ <translation type="obsolete">Spårnamn Storlek:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDelegate</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="412"/>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="533"/>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlDialog</name>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="45"/>
+ <source>controller name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/ctrl/ctrldialog.cpp" line="46"/>
+ <source>flag if controller contains data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">välj controller</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlListEditor</name>
+ <message>
+ <location filename="../../muse/liste/ctrllistedit.cpp" line="124"/>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select controller</source>
+ <translation type="obsolete">välj controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove panel</source>
+ <translation type="obsolete">ta bort panel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other ...</source>
+ <translation type="obsolete">annat ...</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="522"/>
+ <source>Save configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2288"/>
+ <source>Critical Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2282"/>
+ <source>Cannot open file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2289"/>
+ <source>Parsing error for file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1931"/>
+ <source>Load category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1708"/>
+ <source>Load set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1775"/>
+ <source>Save set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1799"/>
+ <source>New category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1899"/>
+ <source>Delete category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1803"/>
+ <source>Load category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1805"/>
+ <source>Save category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1812"/>
+ <source>Load set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1814"/>
+ <source>Save set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1816"/>
+ <source>Delete set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1824"/>
+ <source>New subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2068"/>
+ <source>Delete subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1830"/>
+ <source>Load subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1833"/>
+ <source>Save subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1849"/>
+ <source>New preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2239"/>
+ <source>Delete preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1853"/>
+ <source>Load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1855"/>
+ <source>Save preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1876"/>
+ <source>No more category supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1877"/>
+ <source>You can not add more categories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2241"/>
+ <source>Do you really want to delete %1 ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2242"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2029"/>
+ <source>No category selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2030"/>
+ <source>You must first select a category.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2308"/>
+ <source>Replace or add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1971"/>
+ <source>%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Replace</source>
+ <translation type="unfinished">E&amp;rsätt</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2312"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished">&amp;Lägg till</translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2321"/>
+ <source>Download error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="1984"/>
+ <source>There is no more free category slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2012"/>
+ <source>Save category dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2042"/>
+ <source>No more subcategory supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2043"/>
+ <source>You can not add more subcategories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2198"/>
+ <source>No subcategory selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2199"/>
+ <source>You must first select a subcategory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2098"/>
+ <source>Load subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2138"/>
+ <source>%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2151"/>
+ <source>There is no more free subcategory slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2180"/>
+ <source>Save subcategory dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2213"/>
+ <source>No more preset supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2214"/>
+ <source>You can not add more presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2367"/>
+ <source>No preset selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2368"/>
+ <source>You must first select a preset.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2270"/>
+ <source>Load preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2310"/>
+ <source>%1 is supposed to be affected to the prog number %2, but there is already one on this slot.
+ Do you want to replace it or to add it in the next free slot ?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2322"/>
+ <source>There is no more free preset slot.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2351"/>
+ <source>Save preset dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2471"/>
+ <source>Browse set dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/deicsonze/deicsonzegui.cpp" line="2506"/>
+ <source>Browse image dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volym</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transponera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Colors</source>
+ <translation type="obsolete">Färger</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Text</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Map</source>
+ <translation type="obsolete">Ladda mappning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Map</source>
+ <translation type="obsolete">Spara Mappning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Ta bort händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Välj Allt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Välj Ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">I loop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Utanför loop</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="65"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Välj</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load Drummap</source>
+ <translation type="obsolete">Ladda trummappning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Store Drummap</source>
+ <translation type="obsolete">Spara trummappning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Stegvis inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">Lägg till Controller vy</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sound</source>
+ <translation type="obsolete">Ljud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>drummaps</source>
+ <translation type="obsolete">trummappningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Muse: Load Drum Map</source>
+ <translation type="obsolete">Muse: Ladda trummappning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Store Drum Map</source>
+ <translation type="obsolete">MusE: Spara trummappning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="61"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Funktioner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Modifiera Velocity</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="82"/>
+ <source>Drum Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/drumedit.cpp" line="102"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation type="obsolete">MusE: Mata in Controller14 Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller Event</source>
+ <translation type="obsolete">MusE: Mata in Controller Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Controller</source>
+ <translation type="obsolete">MusE: Mata in Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller:</source>
+ <translation type="obsolete">Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Tidspositions:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value:</source>
+ <translation type="obsolete">Värde:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>controller value</source>
+ <translation type="obsolete">controllervärde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Edit Controller Event</source>
+ <translation type="obsolete">MusE: Redigera Controllerhändelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Available Controller:</source>
+ <translation type="obsolete">Tillgänglig Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create New Controller</source>
+ <translation type="obsolete">Skapa Ny Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Port:</source>
+ <translation type="obsolete">Midi Port:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Channel:</source>
+ <translation type="obsolete">Midi Kanal:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Tidsposition:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Patch Name</source>
+ <translation type="obsolete">Patchnamn</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrument</name>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="138"/>
+ <source>MusE: Create file failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="148"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="172"/>
+ <source>MusE: Save Instrument Definition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="174"/>
+ <source>Instrument Definition (*.idf)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="359"/>
+ <source>MusE: Enter new Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="360"/>
+ <source>Enter new Category:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="770"/>
+ <source>MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="772"/>
+ <source>The current Instrument contains unsaved data
+Save Current Instrument?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Spara</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/editinstrument.cpp" line="773"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Patches</source>
+ <translation type="obsolete">Patchar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Patch Name:</source>
+ <translation type="obsolete">Patchnamn:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>High Bank:</source>
+ <translation type="obsolete">Hög Bank:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Low Bank:</source>
+ <translation type="obsolete">LÃ¥g Bank:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Program:</source>
+ <translation type="obsolete">Program:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Patch/Group</source>
+ <translation type="obsolete">Patch/Grupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New Patch</source>
+ <translation type="obsolete">&amp;Ny Patch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New Group</source>
+ <translation type="obsolete">Ny Grupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum</source>
+ <translation type="obsolete">Trumma</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Predefined Controller:</source>
+ <translation type="obsolete">Fördefinierad Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is a list of commonly used midi controllers.
+Note that in MusE pitch and program changes are
+handled like normal controllers.</source>
+ <translation type="obsolete">Detta är en lista över vanligt förekommande controllers.
+Observera att i MusE hanteras pitch och program change som
+vanliga controllers.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">Egenskaper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="obsolete">Midi Controllernummer Hög Byte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="obsolete">Midi Controllernummer LÃ¥g Byte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Min värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">Max värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">lista med definierade controllers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Initialization</source>
+ <translation type="obsolete">Initiering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Panic</source>
+ <translation type="obsolete">Panik</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Hex Entry:</source>
+ <translation type="obsolete">Hex Värde:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">Verktyg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Öppna...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Spara som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">S&amp;para som...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Stäng</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">S&amp;täng</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Mata in Meta Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type</source>
+ <translation type="obsolete">Metatyp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Mata in Hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="obsolete">MusE: Mata in Meta Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Tidsposition:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Meta Type:</source>
+ <translation type="obsolete">Metatyp:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enter Hex</source>
+ <translation type="obsolete">Mata in hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Note</source>
+ <translation type="obsolete">MusE: Mata in Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length:</source>
+ <translation type="obsolete">Längd:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position:</source>
+ <translation type="obsolete">Tidsposition:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch:</source>
+ <translation type="obsolete">Tonhöjd:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity On:</source>
+ <translation type="obsolete">Velocity PÃ¥:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity Off:</source>
+ <translation type="obsolete">Velocity Av:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation type="obsolete">MusE: Mata in Poly Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation type="obsolete">MusE: Mata in Pitch Shift</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Enter SysEx</source>
+ <translation type="obsolete">MusE: Mata in SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>TimePosition:</source>
+ <translation type="obsolete">Tidsposition:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Known SysEx:</source>
+ <translation type="obsolete">Känd SysEx:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add</source>
+ <translation type="obsolete">Lägg till</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <location filename="../../muse/widgets/tools.cpp" line="35"/>
+ <source>Edit Tools</source>
+ <translation type="unfinished">Redigeringsverktyg</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="57"/>
+ <source>effect rack</source>
+ <translation type="unfinished">effektrack</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="107"/>
+ <source>move up</source>
+ <translation type="unfinished">flytta upp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="108"/>
+ <source>move down</source>
+ <translation type="unfinished">flytta ner</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="109"/>
+ <source>remove</source>
+ <translation type="unfinished">ta bort</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="112"/>
+ <source>show gui</source>
+ <translation type="unfinished">visa gui</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change</source>
+ <translation type="obsolete">ändra</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="111"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="113"/>
+ <source>show native gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="115"/>
+ <source>New Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="116"/>
+ <source>New Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Replace effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="268"/>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/rack.cpp" line="269"/>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ExportMidiDialog</name>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source>Save </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="355"/>
+ <source> as smf midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="368"/>
+ <source>MusE: export midi smf file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="39"/>
+ <source>FLUID: open Soundfile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/fluid/fluidgui.cpp" line="61"/>
+ <source>Fluid: select Sound Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Ladda</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Gain</source>
+ <translation type="obsolete">Förstärkning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Room Size</source>
+ <translation type="obsolete">Rumsstorlek</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Damping</source>
+ <translation type="obsolete">Dämpning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Level</source>
+ <translation type="obsolete">Nivå</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Width</source>
+ <translation type="obsolete">Bredd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Depth</source>
+ <translation type="obsolete">Djup</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Number</source>
+ <translation type="obsolete">Nummer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Sinus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Triangel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load</source>
+ <translation type="obsolete">Ladda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete</source>
+ <translation type="obsolete">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fontname</source>
+ <translation type="obsolete">Fontnamn</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>User</source>
+ <translation type="obsolete">Användare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Project</source>
+ <translation type="obsolete">Projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Load:</source>
+ <translation type="obsolete">Öppna:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Songdata +
+Cofiguration</source>
+ <translation type="obsolete">SÃ¥ngdata + Konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>only
+Songdata</source>
+ <translation type="obsolete">enbart SÃ¥ngdata</translation>
+ </message>
+</context>
+<context>
+ <name>FluidSynthGui</name>
+ <message>
+ <location filename="../../synti/fluidsynth/fluidsynthgui.cpp" line="90"/>
+ <source>Choose soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <location filename="../../muse/widgets/fontsel.cpp" line="47"/>
+ <source>Size:</source>
+ <translation type="unfinished">Storlek:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTime</name>
+ <message>
+ <location filename="../../muse/midiedit/gatetime.cpp" line="32"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="unfinished">MusE: Ändra Gate-tid</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="obsolete">MusE: Ändra Gate-tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Alla Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Valda Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Loopade Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Valda &amp; Loopade</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Värden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Hastighet:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Offset:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Global Settings</source>
+ <translation type="obsolete">MusE: Globala Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Ok</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio</source>
+ <translation type="obsolete">Ljud</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min. Meter Value</source>
+ <translation type="obsolete">min. Metervärde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>min.Slider Val</source>
+ <translation type="obsolete">min. Slider värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation type="obsolete">Visad upplösning
+(Tick/Kvartsnot)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation type="obsolete">RTC-Upplösning
+(Tick/Sek)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help Browser:</source>
+ <translation type="obsolete">Hjälpläsare:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>GUI Refresh Rate</source>
+ <translation type="obsolete">GUI-uppdateringsfrekvens</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>/sec</source>
+ <translation type="obsolete">/sek</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Application</source>
+ <translation type="obsolete">Applikation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Start Muse</source>
+ <translation type="obsolete">Starta MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start with last song</source>
+ <translation type="obsolete">starta med senaste projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start with song</source>
+ <translation type="obsolete">starta med projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start song:</source>
+ <translation type="obsolete">starta projekt:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Views</source>
+ <translation type="obsolete">Vyer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show</source>
+ <translation type="obsolete">visa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>height</source>
+ <translation type="obsolete">höjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>width</source>
+ <translation type="obsolete">bredd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Arranger</source>
+ <translation type="obsolete">Arrangerare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cur</source>
+ <translation type="obsolete">Nuv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>set current values</source>
+ <translation type="obsolete">sätt nuvarande värden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start with template: default.med</source>
+ <translation type="obsolete">starta med mall: default.med</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show splash screen</source>
+ <translation type="obsolete">visa splashscreen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use JACK freewheel mode if possible</source>
+ <translation type="obsolete">använd JACK freewheel om möjligt</translation>
+ </message>
+</context>
+<context>
+ <name>GreendotButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="49"/>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="obsolete">MusE: Masterspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new tempo</source>
+ <translation type="obsolete">nytt tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new signature</source>
+ <translation type="obsolete">ny signatur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Mata in Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Note</source>
+ <translation type="obsolete">Mata in Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Mata in SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert SysEx</source>
+ <translation type="obsolete">Mata in SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Mata in Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Ctrl</source>
+ <translation type="obsolete">Mata in Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Mata in Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Meta</source>
+ <translation type="obsolete">Mata in Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Pitch</source>
+ <translation type="obsolete">Mata in Pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Pitch</source>
+ <translation type="obsolete">Mata in Pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Channel Aftertouch</source>
+ <translation type="obsolete">Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Mata in Key Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>insert Poly Aftertouch</source>
+ <translation type="obsolete">Mata in Poly Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Ta bort Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List Tools</source>
+ <translation type="obsolete">Listverktyg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tools</source>
+ <translation type="obsolete">Inmatningsverktyg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment</source>
+ <translation type="obsolete">Kommentar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="46"/>
+ <source>MusE: List Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="141"/>
+ <source>Parts</source>
+ <translation type="unfinished">Parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/liste/listedit.cpp" line="157"/>
+ <source>Controller</source>
+ <translation type="unfinished">Controller</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation type="obsolete">MusE: Midi Inputplugin: Transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">PÃ¥</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose:</source>
+ <translation type="obsolete">Transponering:</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">inga</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>other raw ...</source>
+ <translation type="obsolete">annan raw ...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Port Table</source>
+ <translation type="obsolete">MusE: Midiporttabell</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Device Name</source>
+ <translation type="obsolete">Enhetsnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State</source>
+ <translation type="obsolete">Status</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>unknown</source>
+ <translation type="obsolete">okänd</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation type="obsolete">MusE: Midiinputplugin: Fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Activate</source>
+ <translation type="obsolete">Aktivera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">PÃ¥</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Actions</source>
+ <translation type="obsolete">Kommandon</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Stopp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Goto Left Mark</source>
+ <translation type="obsolete">Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Spela</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">takt skala</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="126"/>
+ <source>MusE: Marker</source>
+ <translation type="unfinished">MusE: Markör</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="129"/>
+ <source>add marker</source>
+ <translation type="unfinished">lägg till markör</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="130"/>
+ <source>Add Marker</source>
+ <translation type="unfinished">Lägg till Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete marker</source>
+ <translation type="obsolete">ta bort markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Marker</source>
+ <translation type="obsolete">Ta bort Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="139"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="170"/>
+ <source>Bar:Beat:Tick</source>
+ <translation type="unfinished">Takt:Slag:Tick</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Lock</source>
+ <translation type="unfinished">LÃ¥s</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="172"/>
+ <source>Text</source>
+ <translation type="unfinished">Text</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="184"/>
+ <source>Marker Properties</source>
+ <translation type="unfinished">Markörinställningar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="144"/>
+ <source>marker-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="148"/>
+ <source>edit tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/marker/markerview.cpp" line="171"/>
+ <source>Min:Sc:Fr:Sf</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="49"/>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished">MusE: Masterspår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="52"/>
+ <source>edit tools</source>
+ <translation type="unfinished">redigeringsverktyg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>EnableMaster</source>
+ <translation type="obsolete">Aktivera Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">använd master track</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="72"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="80"/>
+ <source>Snap</source>
+ <translation type="unfinished">Fäst vid</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="87"/>
+ <source>time at cursor position</source>
+ <translation type="unfinished">tid vid markörposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="88"/>
+ <source>tempo at cursor position</source>
+ <translation type="unfinished">tempo vid markörposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="97"/>
+ <source>tempo at current position</source>
+ <translation type="unfinished">tempo vid nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="98"/>
+ <source>time signature at current position</source>
+ <translation type="unfinished">time signature vid nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="61"/>
+ <source>EnableTempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="62"/>
+ <source>Tempomap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="64"/>
+ <source>Enable use of tempo map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="69"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/master/masteredit.cpp" line="91"/>
+ <source>CurPos </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Metronome Config</source>
+ <translation type="obsolete">MusE: Metronomeconfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Metronom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio Beep</source>
+ <translation type="obsolete">Audio - Ton</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Channel</source>
+ <translation type="obsolete">Midi kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Note</source>
+ <translation type="obsolete">Takt Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure Velocity</source>
+ <translation type="obsolete">Takt-anslag</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Velocity</source>
+ <translation type="obsolete">Slag-anslag</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Beat Note</source>
+ <translation type="obsolete">Slag-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Precount</source>
+ <translation type="obsolete">Inräkning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable</source>
+ <translation type="obsolete">på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars</source>
+ <translation type="obsolete">Takter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>From Mastertrack</source>
+ <translation type="obsolete">Från Masterspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Verställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiChannelInfo</name>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <location filename="../../muse/midictrl.cpp" line="190"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: save midi controller list</source>
+ <translation type="obsolete">MusE: spara midi-controller lista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load midi controller list</source>
+ <translation type="obsolete">MusE:ladda midi-controller lista</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="obsolete">MusE: Definiera Midi-controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>replace controller set</source>
+ <translation type="obsolete">ersätt controller-set</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>merge controller set</source>
+ <translation type="obsolete">slå ihop controller-set</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save controller set as</source>
+ <translation type="obsolete">spara controller-set</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name </source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type </source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Val</source>
+ <translation type="obsolete">Min värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Val</source>
+ <translation type="obsolete">Max värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">lista med definierade controllers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Properties</source>
+ <translation type="obsolete">Egenskaper</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Max Value</source>
+ <translation type="obsolete">Max värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Min Value</source>
+ <translation type="obsolete">Min värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">skapa nytt inlägg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">tryck på Ny knappen för att skapa nytt inlägg
+i MusEs lista med definierade controllers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">ta bort valt inlägg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Add</source>
+ <translation type="obsolete">&amp;Lägg till</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+A</source>
+ <translation type="obsolete">Alt+L</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Predefined Controller:</source>
+ <translation type="obsolete">Fördefinierad Controller:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Managed Controller for Port</source>
+ <translation type="obsolete">Hanterad Controller för Port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is a list of commonly used midi controllers.
+Note that in MusE pitch and program changes are
+handled like normal controllers.</source>
+ <translation type="obsolete">Detta är en lista över vanligt förekommande controllers.
+Observera att i MusE hanteras pitch och program change som
+vanliga controllers.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="obsolete">Midi Controllernummer Hög Byte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="obsolete">Midi Controllernummer Hög Byte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Område</translation>
+ </message>
+</context>
+<context>
+ <name>MidiEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="47"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="65"/>
+ <source>Play Events</source>
+ <translation type="unfinished">Spela Händelser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="70"/>
+ <source>Step Record</source>
+ <translation type="unfinished">Stegvis inspelning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="76"/>
+ <source>Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/midieditor.cpp" line="81"/>
+ <source>Follow Song</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config exported Midi Files</source>
+ <translation type="obsolete">Inställningar exporterade midifiler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config exported Midi Files</source>
+ <translation type="obsolete">MusE: Inställningar exporterade midifiler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Slå på utbyggt smf-format</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="obsolete">MusE: Midi Indatafilter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record Filter</source>
+ <translation type="obsolete">Indata Filter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On</source>
+ <translation type="obsolete">Not PÃ¥</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Controller</source>
+ <translation type="obsolete">Controller</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="999"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1035"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1015"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Ny</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Input Transformator</source>
+ <translation type="obsolete">MusE: Midi inputtransformator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Lika</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Ej lika</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Värde 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Värde 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Händelsetyp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignorera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Högre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Lägre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Innanför</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Utanför</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Bearbetar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Behåll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplicera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Dividera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">Flippa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Slumpmässig</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modules</source>
+ <translation type="obsolete">Moduler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 1</source>
+ <translation type="obsolete">aktivera modul 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 2</source>
+ <translation type="obsolete">aktivera modul 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 3</source>
+ <translation type="obsolete">aktivera modul 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable modul 4</source>
+ <translation type="obsolete">aktivera modul 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Namn:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">Funktion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new preset</source>
+ <translation type="obsolete">skapa nytt preset</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">ta bort preset</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Dismiss</source>
+ <translation type="obsolete">&amp;Stäng</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">Presetlista</translation>
+ </message>
+</context>
+<context>
+ <name>MidiOutPortStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="784"/>
+ <source>MidiChannel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="801"/>
+ <source>AlsaDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="820"/>
+ <source>JackDevices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiPluginDialog</name>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="539"/>
+ <source>MusE: select midi plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>File</source>
+ <translation type="unfinished">Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="552"/>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="570"/>
+ <source>Ok</source>
+ <translation type="unfinished">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiplugin.cpp" line="571"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPort</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>not configured</source>
+ <translation type="obsolete">ej konfigurerad</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>unknown</source>
+ <translation type="obsolete">okänd</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Port Routing</source>
+ <translation type="obsolete">MusE: Midi Port Routing</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRack</name>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="51"/>
+ <source>midi effect rack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="96"/>
+ <source>move up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="97"/>
+ <source>move down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="98"/>
+ <source>remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="99"/>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="100"/>
+ <source>show gui</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/midirack.cpp" line="101"/>
+ <source>new</source>
+ <translation type="unfinished">ny</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: raw midi device configuration</source>
+ <translation type="obsolete">MusE: raw midienhets-inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt. Ports</source>
+ <translation type="obsolete">Virt. port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Speed</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Handshaking</source>
+ <translation type="obsolete">Handskakning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virt.Ports</source>
+ <translation type="obsolete">Virt.port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Serial Port</source>
+ <translation type="obsolete">Serieport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute</source>
+ <translation type="obsolete">tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pre fader listening</source>
+ <translation type="obsolete">pre fader lyssning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="222"/>
+ <source>Var</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="223"/>
+ <source>Rev</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="224"/>
+ <source>Cho</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="250"/>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="499"/>
+ <source>Tracks</source>
+ <translation type="unfinished">Spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="511"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Sync</source>
+ <translation type="obsolete">MusE: Midisync</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Slave</source>
+ <translation type="obsolete">Slav</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync Source</source>
+ <translation type="obsolete">Sync-källa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>midi port</source>
+ <translation type="obsolete">midiport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Clock</source>
+ <translation type="obsolete">Midiklocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Type:</source>
+ <translation type="obsolete">Typ:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Offset:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>hour</source>
+ <translation type="obsolete">timma</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>minute</source>
+ <translation type="obsolete">minut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>second</source>
+ <translation type="obsolete">sekund</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyntiStrip</name>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1274"/>
+ <source>OutputPorts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1281"/>
+ <source>Channel</source>
+ <translation type="unfinished">Kanal</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mstrip.cpp" line="1312"/>
+ <source>Input Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTimeDelegate</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="143"/>
+ <source>Channel %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="147"/>
+ <source>Midi Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: Spårinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">utgångskanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all midi events are send to this output channel</source>
+ <translation type="obsolete">alla midihändelser skickas till denna utkanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Spårinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Spårnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">utgångsport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>change stereo position</source>
+ <translation type="obsolete">byt stereoposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>select instrument patch</source>
+ <translation type="obsolete">välj instrumentpatch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Volume</source>
+ <translation type="obsolete">Volym</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel Info</source>
+ <translation type="obsolete">Kanalinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Längd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input ports</source>
+ <translation type="obsolete">inputportar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>input channels</source>
+ <translation type="obsolete">inputkanaler</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Events from all configured channels are
+recorded to this track.
+You can specify more than one channel for
+recording:
+ 1 2 3 record from channel 1 2 and 3
+ 1-3 same
+ 1-3 5<byte value="x9"/> record from channel 1 2 3 and 5</source>
+ <translation type="obsolete">Händelser från alla konfigurerade kanaler
+spelas in på detta spår
+Du kan specificera mer än en kanal för
+inspelning:
+ 1 2 3 spela in på kanal 1 2 och 3
+ 1-3 samma
+ 1-3 5 spela in på kanal 1 2 3 och 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Port</source>
+ <translation type="obsolete">Utgångsport</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackerEditor</name>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="27"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="32"/>
+ <source>MidiTracker Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="51"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="55"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="64"/>
+ <source>row features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="87"/>
+ <source>Number of visible rows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/miditracker.cpp" line="66"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Kvantisera</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Processing</source>
+ <translation type="obsolete">Bearbetar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Event Type</source>
+ <translation type="obsolete">Händelsetyp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Keep</source>
+ <translation type="obsolete">Behåll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note</source>
+ <translation type="obsolete">Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Multiply</source>
+ <translation type="obsolete">Multiplicera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 2</source>
+ <translation type="obsolete">Värde 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random</source>
+ <translation type="obsolete">Slumpmässig</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value 1</source>
+ <translation type="obsolete">Värde 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Length</source>
+ <translation type="obsolete">Längd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Equal</source>
+ <translation type="obsolete">Lika</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unequal</source>
+ <translation type="obsolete">Ej lika</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ignore</source>
+ <translation type="obsolete">Ignorera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Higher</source>
+ <translation type="obsolete">Högre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower</source>
+ <translation type="obsolete">Lägre</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside</source>
+ <translation type="obsolete">Innanför</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside</source>
+ <translation type="obsolete">Utanför</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar Range</source>
+ <translation type="obsolete">Takt Område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name:</source>
+ <translation type="obsolete">Namn:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Comment:</source>
+ <translation type="obsolete">Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>process all events</source>
+ <translation type="obsolete">bearbeta alla händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>selected tracks</source>
+ <translation type="obsolete">valda spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>inside loop</source>
+ <translation type="obsolete">I loop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select</source>
+ <translation type="obsolete">Välj</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize</source>
+ <translation type="obsolete">Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete</source>
+ <translation type="obsolete">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transform</source>
+ <translation type="obsolete">Transformera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert</source>
+ <translation type="obsolete">Sätt in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize Value</source>
+ <translation type="obsolete">Kvantisera värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>PresetList</source>
+ <translation type="obsolete">Presetlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Divide</source>
+ <translation type="obsolete">Dividera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flip</source>
+ <translation type="obsolete">Flippa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Function</source>
+ <translation type="obsolete">Funktion</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="205"/>
+ <source>New</source>
+ <translation type="unfinished">Ny</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="129"/>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation type="unfinished">Wavefiler (*.wav;;All FIles (*)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/mixdowndialog.cpp" line="126"/>
+ <source>MusE: set mixdown file name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation type="obsolete">MusE: Välj mixdown-ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Path</source>
+ <translation type="obsolete">Sökväg till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Channel</source>
+ <translation type="obsolete">Kanal</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Mixer</source>
+ <translation type="obsolete">MusE: Midimixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="46"/>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="49"/>
+ <source>&amp;Create</source>
+ <translation type="unfinished">&amp;Skapa</translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="52"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="53"/>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="56"/>
+ <source>Show Midi Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="57"/>
+ <source>Show Midi Out Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="58"/>
+ <source>Show Midi In Ports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="62"/>
+ <source>Show Wave Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="63"/>
+ <source>Show Output Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="64"/>
+ <source>Show Group Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="65"/>
+ <source>Show Input Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/mixer/mixer.cpp" line="66"/>
+ <source>Show Synthesizer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to import a audio file you have first to selecta audio track</source>
+ <translation type="obsolete">för att importera en ljudfil måste du ha valt ett ljudspår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="865"/>
+ <source>Import Wave File</source>
+ <translation type="unfinished">Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>UndoRedo</source>
+ <translation type="obsolete">ÅngraGörom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo</source>
+ <translation type="obsolete">Ã¥ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Und&amp;o</source>
+ <translation type="obsolete">&amp;Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo</source>
+ <translation type="obsolete">gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Re&amp;do</source>
+ <translation type="obsolete">&amp;Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>undo last change to song</source>
+ <translation type="obsolete">ångra sista ändring i sång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>redo last undo</source>
+ <translation type="obsolete">gör om sista ångring</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">flytta tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rewind</source>
+ <translation type="obsolete">Spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">framåt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Forward</source>
+ <translation type="obsolete">Framåt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">stopp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stop</source>
+ <translation type="obsolete">Stopp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">spela</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play</source>
+ <translation type="obsolete">Spela</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">spela in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Record</source>
+ <translation type="obsolete">Spela in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>panic</source>
+ <translation type="obsolete">panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="591"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>new</source>
+ <translation type="obsolete">ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>open</source>
+ <translation type="obsolete">öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open</source>
+ <translation type="obsolete">&amp;Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save</source>
+ <translation type="obsolete">spara</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pianoroll</source>
+ <translation type="obsolete">pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pianoroll</source>
+ <translation type="obsolete">Pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Score</source>
+ <translation type="obsolete">Partitur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>marker</source>
+ <translation type="obsolete">markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Marker</source>
+ <translation type="obsolete">Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File Buttons</source>
+ <translation type="obsolete">Arkivknappar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="616"/>
+ <source>Open &amp;Recent</source>
+ <translation type="unfinished">&amp;Nyligen öppnade</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As</source>
+ <translation type="obsolete">S&amp;para som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">&amp;Konfigurera skrivare</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="629"/>
+ <source>Import Midifile</source>
+ <translation type="unfinished">Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="631"/>
+ <source>Export Midifile</source>
+ <translation type="unfinished">Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">A&amp;vsluta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="649"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">K&amp;listra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Ta bort spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="666"/>
+ <source>Add Track</source>
+ <translation type="unfinished">Lägg Till Spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">Markera &amp;Allt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">A&amp;vmarkera Allt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert &amp;Selection</source>
+ <translation type="obsolete">Invertera &amp;Markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Inside Loop</source>
+ <translation type="obsolete">&amp;I Loop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Outside Loop</source>
+ <translation type="obsolete">&amp;Utanför Loop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="obsolete">Alla &amp;Parter i spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="672"/>
+ <source>Select</source>
+ <translation type="unfinished">Välj</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drums</source>
+ <translation type="obsolete">Trummor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>List</source>
+ <translation type="obsolete">Lista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Graphic</source>
+ <translation type="obsolete">Grafik</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mastertrack</source>
+ <translation type="obsolete">Masterspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi &amp;Transform</source>
+ <translation type="obsolete">Midi &amp;Transform</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="703"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifiera Gate Time</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="704"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifiera Velocity</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="717"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="707"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="708"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Ta bort Händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="709"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="710"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="711"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="712"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Radera Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="713"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="714"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Skapa Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="715"/>
+ <source>Mix Track</source>
+ <translation type="unfinished">Mixa Spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="700"/>
+ <source>Midi</source>
+ <translation type="unfinished">Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="755"/>
+ <source>&amp;Structure</source>
+ <translation type="unfinished">&amp;Struktur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="757"/>
+ <source>Global Cut</source>
+ <translation type="unfinished">Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="760"/>
+ <source>Global Insert</source>
+ <translation type="unfinished">Global insättning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="763"/>
+ <source>Global Split</source>
+ <translation type="unfinished">Global delning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="766"/>
+ <source>Copy Range</source>
+ <translation type="unfinished">Kopiera Område</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="772"/>
+ <source>Cut Events</source>
+ <translation type="unfinished">Klipp ut Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bigtime window</source>
+ <translation type="obsolete">Bigtime fönster</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="818"/>
+ <source>dont follow Song</source>
+ <translation type="unfinished">följ inte Sång</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="821"/>
+ <source>follow page</source>
+ <translation type="unfinished">följ sida</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="824"/>
+ <source>follow continuous</source>
+ <translation type="unfinished">följ kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Global Settings</source>
+ <translation type="obsolete">Globala Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="816"/>
+ <source>follow song</source>
+ <translation type="unfinished">följ sång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Metronome</source>
+ <translation type="obsolete">Metronom</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="833"/>
+ <source>Midi Sync</source>
+ <translation type="unfinished">Midi Synk</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi File Config</source>
+ <translation type="obsolete">Midi Filkonfigurering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Appearance settings</source>
+ <translation type="obsolete">Utseende inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Ports</source>
+ <translation type="obsolete">Midiportar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio System</source>
+ <translation type="obsolete">Audiosubsystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save Configuration</source>
+ <translation type="obsolete">Spara Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Input Filter</source>
+ <translation type="obsolete">Midi Indatafilter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Remote Control</source>
+ <translation type="obsolete">Midi-fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Random Rhythm Generator</source>
+ <translation type="obsolete">Slumprytmgenerator</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="780"/>
+ <source>&amp;Midi</source>
+ <translation type="unfinished">&amp;Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mixer</source>
+ <translation type="obsolete">Mixer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Define Controller</source>
+ <translation type="obsolete">Definiera Controller</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="786"/>
+ <source>Reset Instr.</source>
+ <translation type="unfinished">Resetta Instr.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="788"/>
+ <source>Init Instr.</source>
+ <translation type="unfinished">Initiera instr.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="790"/>
+ <source>local off</source>
+ <translation type="unfinished">lokal av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="797"/>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">Au&amp;dio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="799"/>
+ <source>Bounce to Track</source>
+ <translation type="unfinished">Bounce till Spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="802"/>
+ <source>Bounce to File</source>
+ <translation type="unfinished">Bounce till Fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="846"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">&amp;Hjälp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Browser</source>
+ <translation type="obsolete">Läsare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Om</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="859"/>
+ <source>About&amp;Qt</source>
+ <translation type="unfinished">Om &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>What&apos;s &amp;This</source>
+ <translation type="obsolete">Vad är &amp;Detta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown File Format</source>
+ <translation type="obsolete">Okänt filformat</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>none</source>
+ <translation type="obsolete">inget</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load project</source>
+ <translation type="obsolete">MusE: Öppna projekt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1287"/>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: Misslyckades med att skriva Fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1375"/>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation type="unfinished">Det nuvarande Projektet innehåller osparade ändringar
+Spara nuvarande Projekt?</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">Spara &amp;inte</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1376"/>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: About</source>
+ <translation type="obsolete">MusE: Om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Save As</source>
+ <translation type="obsolete">MusE: Spara Som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Song: </source>
+ <translation type="obsolete">MusE: SÃ¥ng:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="128"/>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: Importera Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Export Midi</source>
+ <translation type="obsolete">MusE: Exportera Midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="307"/>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">läser midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>
+failed</source>
+ <translation type="obsolete">misslyckades</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1657"/>
+ <source>Nothing to edit</source>
+ <translation type="unfinished">Inget att redigera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2407"/>
+ <source>MusE: Copy Range</source>
+ <translation type="unfinished">MusE: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2424"/>
+ <source>not implemented</source>
+ <translation type="unfinished">ej implementerat</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2422"/>
+ <source>MusE: Cut Events</source>
+ <translation type="unfinished">MusE: Klipp ut Händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2497"/>
+ <source>MusE: Bounce to Track</source>
+ <translation type="unfinished">MusE: Bounce till Spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2482"/>
+ <source>more than one target track selected</source>
+ <translation type="unfinished">mer än ett spår valt som mål</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2489"/>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation type="unfinished">fel spårtyp som mål
+välj wave-spår som mål</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2499"/>
+ <source>no target track selected</source>
+ <translation type="unfinished">inget spår valt som mål</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation type="obsolete">Det nuvarande Projektet innehåller osparade ändringar
+Öppning ersätter nuvarande Projekt
+Spara nuvarande Projekt?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Overwrite</source>
+ <translation type="obsolete">&amp;Ersätt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>no help found at: </source>
+ <translation type="obsolete">ingen h jälp hittad vid:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="40"/>
+ <source>MusE: Open Help</source>
+ <translation type="unfinished">Muse: Arkiv hjälp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="663"/>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished">Ta Bort Valda Spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View</source>
+ <translation type="obsolete">Vy</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="782"/>
+ <source>Edit Instrument</source>
+ <translation type="unfinished">Editera Instrument</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="805"/>
+ <source>Restart Audio</source>
+ <translation type="unfinished">Starta om Audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Take Snapshot</source>
+ <translation type="obsolete">Ta Ögonblicksbild</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clear Automation Data</source>
+ <translation type="obsolete">Rensa Automationsdata</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings</source>
+ <translation type="obsolete">Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="813"/>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished">Konfigurera Tangentbordsgenvägar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="835"/>
+ <source>Midi File Export</source>
+ <translation type="unfinished">Midi Fil Export</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi Ports / Soft Synth</source>
+ <translation type="obsolete">Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="848"/>
+ <source>&amp;Manual</source>
+ <translation type="unfinished">&amp;Manual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="850"/>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished">&amp;MusE hemsida</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="853"/>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished">&amp;Rapportera Bugg...</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="856"/>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished">&amp;Om MusE</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="863"/>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished">Vad är de&amp;t här?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot read template</source>
+ <translation type="obsolete">Kan inte läsa mall</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File open error</source>
+ <translation type="obsolete">Fel vid öppning av fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File read error</source>
+ <translation type="obsolete">Fel vid läsning av fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: load template</source>
+ <translation type="obsolete">MusE: ladda mall</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2438"/>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished">MusE: Mixa Ner</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2440"/>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished">sätt vänster/höger markör för nedmixningsområde</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2524"/>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished">MusE: Mixa Ner till Fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="2526"/>
+ <source>no output track found</source>
+ <translation type="unfinished">inget utmatningsspår kunde hittas</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi file to current project?
+</source>
+ <translation type="obsolete">Lägg till midifil i nuvarande projekt?
+</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Add to Project</source>
+ <translation type="obsolete">&amp;Lägg till i Projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Replace</source>
+ <translation type="obsolete">E&amp;rsätt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="309"/>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+misslyckades:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="870"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arrangerare</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="872"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Off</source>
+ <translation type="obsolete">Av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bar</source>
+ <translation type="obsolete">Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="881"/>
+ <source>Snap</source>
+ <translation type="unfinished">Fäst vid</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="909"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="918"/>
+ <source>midi pitch</source>
+ <translation type="unfinished">midi tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="919"/>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished">global midi tonhöjdsförändring</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1279"/>
+ <source>MusE: Create tmp file failed</source>
+ <translation type="unfinished">MusE: Skapande av temporär fil misslyckades</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="724"/>
+ <source>&amp;View</source>
+ <translation type="unfinished">&amp;Vy</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Au&amp;tomation</source>
+ <translation type="obsolete">Au&amp;tomation</translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="812"/>
+ <source>Setti&amp;ngs</source>
+ <translation type="unfinished">I&amp;nställningar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/help.cpp" line="38"/>
+ <source>MusE manual not found at: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="857"/>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="190"/>
+ <source>Failed to start audio!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="191"/>
+ <source>Was not able to start audio, check if jack is running.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="574"/>
+ <source>Project Buttons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="588"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="612"/>
+ <source>&amp;Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="693"/>
+ <source>Project Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="705"/>
+ <source>Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="838"/>
+ <source>Preferences</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="894"/>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="922"/>
+ <source>Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="933"/>
+ <source>midi tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="945"/>
+ <source>N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1330"/>
+ <source>MusE: new project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1333"/>
+ <source>Cannot create project folder &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1182"/>
+ <source>Cannot open template file
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="1189"/>
+ <source>File &lt;%1&gt; read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/importmidi.cpp" line="146"/>
+ <source>MusE: import midi file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start position</source>
+ <translation type="obsolete">spola tillbaka till startposition</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Starta uppspelning från nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>start sequencer play</source>
+ <translation type="obsolete">starta sequenceruppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Spela, stoppa, spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: Gå till höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: Loopa sektion av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Inspelning av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Redigera: Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Redigera: Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Redigera: Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Redigera: Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Redigera: Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Redigera: Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Arkiv: Öppna föregående fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Arkiv: Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Arkiv: Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Arkiv: Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Arkiv: Avsluta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Arkiv: Välj alla parter i spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Öppna pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Öppna trumeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Öppna listeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (grafisk)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (lista)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Lägg till midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Lägg till trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Lägg till ljudspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Lägg till ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Lägg till ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Lägg till ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: Global insättning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: Global delning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Klipp ut händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Vy: Öppna mixerfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Vy: Transportfönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Vy: Bigtimefönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Vy: Öppna markörfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Inställningar: Följ sång efter sida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Inställningar: Följ sång av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Inställningar: Följ sång kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Inställningar: Konfigurera tangentbordsgenvängar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Inställningar: Konfigurera metronom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Inställningar: Midi synk konfigurationg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Inställningar: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Inställningar: Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Inställningar: Konfiguration av ljud-undersystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Editera midi-instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Resetta midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Initiera midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce till spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Starta om audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hjälp: Öppna manual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hjälp: What&apos;s this-läge av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Redigera: Editera vald part</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på ovanstående spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på ovanstående spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på underliggande spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på underliggande spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Redigera: Välj alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Redigera: Välj ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Redigera: Invertera val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter inom sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter utanför sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Redigera: Välj närmsta part/händelse till vänster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till vänster till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till höger till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="obsolete">Redigera: Sätt loopsektion till valda parter/händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="obsolete">Redigera: Höj pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="obsolete">Redigera: Sänk pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="obsolete">Redigera: Sätt fix längd till valda midihändelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="obsolete">Redigera: Överkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på/av-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="obsolete">Kvantisering: Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="obsolete">Kvantisering: Konfigurera kvantisering<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="obsolete">Kvantisering: Modifiera gate-tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="obsolete">Kvantisering: Modifiera velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Crescendo</source>
+ <translation type="obsolete">Redigera: Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Thin Out</source>
+ <translation type="obsolete">Redigera: Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Event</source>
+ <translation type="obsolete">Redigera: Ta bort händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Note Shift</source>
+ <translation type="obsolete">Redigera: Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Move Clock</source>
+ <translation type="obsolete">Redigera: Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="obsolete">Redigera: Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Create Measure</source>
+ <translation type="obsolete">Redigera: Lägg till Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Change event color</source>
+ <translation type="obsolete">Redigera: Ändra färg på händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pointer</source>
+ <translation type="obsolete">Verktyg: Pekare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pencil</source>
+ <translation type="obsolete">Verktyg: Penna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Eraser</source>
+ <translation type="obsolete">Verktyg: Radergummi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Line Draw</source>
+ <translation type="obsolete">Verktyg: Rita linje</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Scissor</source>
+ <translation type="obsolete">Verktyg: Delare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Glue</source>
+ <translation type="obsolete">Verktyg: Lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Mute</source>
+ <translation type="obsolete">Verktyg: Tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Increase current position</source>
+ <translation type="obsolete">Transport: Öka nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="obsolete">Transport: Minska nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/1-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/2-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/4-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/8-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/16-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/32-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/64-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="obsolete">Kvantisering: Växla triol-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering (2)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tempo</source>
+ <translation type="obsolete">Mata in Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Signature</source>
+ <translation type="obsolete">Mata in tempo-signatur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Change Event Position</source>
+ <translation type="obsolete">Ändra position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit Event Value</source>
+ <translation type="obsolete">Redigera värde för händelse</translation>
+ </message>
+</context>
+<context>
+ <name>MuseApplication</name>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="52"/>
+ <source>Transport: Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="56"/>
+ <source>Goto Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="57"/>
+ <source>rewind to start position</source>
+ <translation type="unfinished">spola tillbaka till startposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="62"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="unfinished">Transport: Loopa sektion av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="66"/>
+ <source>Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="67"/>
+ <source>loop between left mark and right mark</source>
+ <translation type="unfinished">loopa mellan vänster och höger markering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="72"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="unfinished">Transport: Starta uppspelning från nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="76"/>
+ <source>Play</source>
+ <translation type="unfinished">Spela</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="77"/>
+ <source>start sequencer play</source>
+ <translation type="unfinished">starta sequenceruppspelning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="82"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="unfinished">Transport: Spela, stoppa, spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="89"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="unfinished">Transport: Stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="93"/>
+ <source>Stop</source>
+ <translation type="unfinished">Stopp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="94"/>
+ <source>stop sequencer</source>
+ <translation type="unfinished">stoppa sequencer</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="99"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="unfinished">Transport: Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="105"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="unfinished">Transport: Gå till höger markering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="111"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="unfinished">Transport: Metronom av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="117"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="unfinished">Transport: Inspelning av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="121"/>
+ <source>Record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="122"/>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">för att spela in, tryck på record och sen play</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="128"/>
+ <source>Transport: Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="132"/>
+ <source>Punchin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="133"/>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">inspelning börjar vid vänster markering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="138"/>
+ <source>Transport: Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="142"/>
+ <source>Punchout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="143"/>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">inspelning slutar vid höger markering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="148"/>
+ <source>Transport: Rewind</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="152"/>
+ <source>rewind</source>
+ <translation type="unfinished">flytta tillbaka</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="153"/>
+ <source>rewind current position</source>
+ <translation type="unfinished">flytta markörposition bakåt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="158"/>
+ <source>Transport: Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="162"/>
+ <source>forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="163"/>
+ <source>move current position</source>
+ <translation type="unfinished">flytta markörposition</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="172"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="173"/>
+ <source>send note off to all midi channels</source>
+ <translation type="unfinished">skicka note off till alla midi kanaler</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="178"/>
+ <source>Edit: Undo</source>
+ <translation type="unfinished">Redigera: Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="182"/>
+ <source>undo</source>
+ <translation type="unfinished">Ã¥ngra</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="183"/>
+ <source>undo last change to song</source>
+ <translation type="unfinished">ångra sista ändring i sång</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="188"/>
+ <source>Edit: Redo</source>
+ <translation type="unfinished">Redigera: Gör om</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="192"/>
+ <source>redo</source>
+ <translation type="unfinished">gör om</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="193"/>
+ <source>redo last undo</source>
+ <translation type="unfinished">gör om sista ångring</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="198"/>
+ <source>Edit: Cut</source>
+ <translation type="unfinished">Redigera: Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="203"/>
+ <source>Cut</source>
+ <translation type="unfinished">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="208"/>
+ <source>Edit: Copy</source>
+ <translation type="unfinished">Redigera: Kopiera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="213"/>
+ <source>Copy</source>
+ <translation type="unfinished">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="218"/>
+ <source>Edit: Paste,</source>
+ <translation type="unfinished">Redigera: Klistra in</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="223"/>
+ <source>Paste</source>
+ <translation type="unfinished">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="228"/>
+ <source>Edit: Delete</source>
+ <translation type="unfinished">Redigera: Ta bort</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="233"/>
+ <source>Delete</source>
+ <translation type="unfinished">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="238"/>
+ <source>Open</source>
+ <translation type="unfinished">Öppna</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="242"/>
+ <source>open project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="244"/>
+ <source>Click this button to select a new project
+You can also select the &lt;b&gt;Open command&lt;/b&gt; from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="249"/>
+ <source>Save</source>
+ <translation type="unfinished">Spara</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="253"/>
+ <source>save project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="255"/>
+ <source>Click this button to save the project you are editing.
+You can also select the Save command from the Project menu.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="260"/>
+ <source>File: Save as</source>
+ <translation type="unfinished">Arkiv: Spara som</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="264"/>
+ <source>save project as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="266"/>
+ <source>Click this button to save a new copy of the project.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="270"/>
+ <source>File: Save as Template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="274"/>
+ <source>save project as template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="276"/>
+ <source>Click this button to save the project you are editing
+for later use as a template.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="281"/>
+ <source>File: Open recent file</source>
+ <translation type="unfinished">Arkiv: Öppna föregående fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="287"/>
+ <source>File: Import midi file</source>
+ <translation type="unfinished">Arkiv: Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="293"/>
+ <source>File: Export midi file</source>
+ <translation type="unfinished">Arkiv: Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="299"/>
+ <source>File: Import audio file</source>
+ <translation type="unfinished">Arkiv: Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="305"/>
+ <source>File: Quit MusE</source>
+ <translation type="unfinished">Arkiv: Avsluta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="310"/>
+ <source>Quit MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="316"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="unfinished">Arkiv: Välj alla parter i spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="321"/>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Alla &amp;Parter i spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="326"/>
+ <source>Open Pianoroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="330"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianorulle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="331"/>
+ <source>Start Pianoroll Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="336"/>
+ <source>Open MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="340"/>
+ <source>MidiTracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="341"/>
+ <source>Start Midi Tracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="346"/>
+ <source>Open drumeditor</source>
+ <translation type="unfinished">Öppna trumeditor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="350"/>
+ <source>Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="351"/>
+ <source>Start Drum Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="356"/>
+ <source>Open wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="361"/>
+ <source>Wave Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="366"/>
+ <source>Open listeditor</source>
+ <translation type="unfinished">Öppna listeditor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="370"/>
+ <source>Properties</source>
+ <translation type="unfinished">Egenskaper</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="371"/>
+ <source>open Properties Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="376"/>
+ <source>Open mastertrack editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="380"/>
+ <source>Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="381"/>
+ <source>Start Mastertrack (Tempo) Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="386"/>
+ <source>Add midi track</source>
+ <translation type="unfinished">Lägg till midispår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="392"/>
+ <source>Add drum track</source>
+ <translation type="unfinished">Lägg till trumspår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="398"/>
+ <source>Add wave track</source>
+ <translation type="unfinished">Lägg till ljudspår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="404"/>
+ <source>Add audio output</source>
+ <translation type="unfinished">Lägg till ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="410"/>
+ <source>Add audio group</source>
+ <translation type="unfinished">Lägg till ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="416"/>
+ <source>Add audio input</source>
+ <translation type="unfinished">Lägg till ljudingång</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="422"/>
+ <source>Structure: Global cut</source>
+ <translation type="unfinished">Struktur: Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="428"/>
+ <source>Structure: Global insert</source>
+ <translation type="unfinished">Struktur: Global insättning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="434"/>
+ <source>Structure: Global split</source>
+ <translation type="unfinished">Struktur: Global delning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="440"/>
+ <source>Structure: Copy range</source>
+ <translation type="unfinished">Struktur: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="446"/>
+ <source>Structure: Cut events</source>
+ <translation type="unfinished">Struktur: Klipp ut händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="452"/>
+ <source>View: Open mixer 1 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="456"/>
+ <source>Mixer1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="457"/>
+ <source>Show Mixer 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="462"/>
+ <source>View: Open mixer 2 window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="466"/>
+ <source>Mixer2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="467"/>
+ <source>Show Mixer 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="472"/>
+ <source>View: Toggle transport window</source>
+ <translation type="unfinished">Vy: Transportfönster av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="476"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="477"/>
+ <source>Show Transport Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="482"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="unfinished">Vy: Bigtimefönster av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="486"/>
+ <source>BigTime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="487"/>
+ <source>Show BigTime Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="492"/>
+ <source>View: Open marker window</source>
+ <translation type="unfinished">Vy: Öppna markörfönster</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="496"/>
+ <source>Marker</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="497"/>
+ <source>Show Marker List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="502"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="unfinished">Inställningar: Följ sång efter sida</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="508"/>
+ <source>Settings: Follow song off</source>
+ <translation type="unfinished">Inställningar: Följ sång av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="514"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="unfinished">Inställningar: Följ sång kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="520"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="unfinished">Inställningar: Konfigurera tangentbordsgenvängar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="526"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="unfinished">Inställningar: Konfigurera metronom</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="532"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="unfinished">Inställningar: Midi synk konfigurationg</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="538"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="unfinished">Inställningar: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="544"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="unfinished">Inställningar: Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="550"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="unfinished">Inställningar: Konfiguration av ljud-undersystem</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="556"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="unfinished">Midi: Editera midi-instrument</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="562"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="unfinished">Midi: Midi fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="568"/>
+ <source>Midi: Reset midi</source>
+ <translation type="unfinished">Midi: Resetta midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="574"/>
+ <source>Midi: Init midi</source>
+ <translation type="unfinished">Midi: Initiera midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="580"/>
+ <source>Midi: Midi local off</source>
+ <translation type="unfinished">Midi: Midi lokal av</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="586"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="unfinished">Audio: Bounce till spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="592"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="unfinished">Audio: Bounce till fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="598"/>
+ <source>Audio: Restart audio</source>
+ <translation type="unfinished">Audio: Starta om audio</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="604"/>
+ <source>Help: Open Manual</source>
+ <translation type="unfinished">Hjälp: Öppna manual</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="610"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="unfinished">Hjälp: What&apos;s this-läge av/på</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="616"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="unfinished">Redigera: Editera vald part</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="622"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="unfinished">Redigera: Välj närmsta part på ovanstående spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="628"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="unfinished">Redigera: Lägg till närmsta part på ovanstående spår till val</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="634"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="unfinished">Redigera: Välj närmsta part på underliggande spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="640"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="unfinished">Redigera: Lägg till närmsta part på underliggande spår till val</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="646"/>
+ <source>Midi: Transpose</source>
+ <translation type="unfinished">Midi: Transponering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="651"/>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="654"/>
+ <source>Edit: Select all</source>
+ <translation type="unfinished">Redigera: Välj alla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="659"/>
+ <source>Select All</source>
+ <translation type="unfinished">Välj Allt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="664"/>
+ <source>Edit: Select none</source>
+ <translation type="unfinished">Redigera: Välj ingen</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="669"/>
+ <source>Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="674"/>
+ <source>Edit: Invert selection</source>
+ <translation type="unfinished">Redigera: Invertera val</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="679"/>
+ <source>Invert Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="684"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="unfinished">Redigera: Välj händelser/parter inom sektion</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="689"/>
+ <source>Select Inside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="694"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="unfinished">Redigera: Välj händelser/parter utanför sektion</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="699"/>
+ <source>Select Outside Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="716"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="unfinished">Redigera: Välj närmsta part/händelse till vänster</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="710"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="unfinished">Redigera: Lägg till närmsta part/händelse till vänster till val</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="722"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="unfinished">Redigera: Lägg till närmsta part/händelse till höger till val</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="728"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="unfinished">Redigera: Sätt loopsektion till valda parter/händelser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="734"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="unfinished">Redigera: Höj pitch</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="740"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="unfinished">Redigera: Sänk pitch</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="746"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="unfinished">Redigera: Sätt fix längd till valda midihändelser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="751"/>
+ <source>Set fixed length</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="754"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="unfinished">Redigera: Överkvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="759"/>
+ <source>Over Quantize</source>
+ <translation type="unfinished">Över Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="762"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="unfinished">Kvantisering: Not på-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="767"/>
+ <source>Note On Quantize</source>
+ <translation type="unfinished">Note On-kvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="770"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="unfinished">Kvantisering: Not på/av-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="775"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished">Note On/Off Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="778"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="unfinished">Kvantisering: Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="783"/>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished">Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="786"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="unfinished">Kvantisering: Konfigurera kvantisering<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="792"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="unfinished">Kvantisering: Modifiera gate-tid</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="797"/>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifiera Gate Time</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="800"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="unfinished">Kvantisering: Modifiera velocity</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="805"/>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifiera Velocity</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="808"/>
+ <source>Edit: Crescendo</source>
+ <translation type="unfinished">Redigera: Crescendo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="813"/>
+ <source>Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="816"/>
+ <source>Edit: Thin Out</source>
+ <translation type="unfinished">Redigera: Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="821"/>
+ <source>Thin Out</source>
+ <translation type="unfinished">Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="824"/>
+ <source>Edit: Erase Event</source>
+ <translation type="unfinished">Redigera: Ta bort händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="829"/>
+ <source>Erase Event</source>
+ <translation type="unfinished">Ta bort Händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="832"/>
+ <source>Edit: Note Shift</source>
+ <translation type="unfinished">Redigera: Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="837"/>
+ <source>Note Shift</source>
+ <translation type="unfinished">Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="840"/>
+ <source>Edit: Move Clock</source>
+ <translation type="unfinished">Redigera: Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="845"/>
+ <source>Move Clock</source>
+ <translation type="unfinished">Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="848"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="unfinished">Redigera: Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="853"/>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="856"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="unfinished">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="861"/>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Radera Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="864"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="unfinished">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="869"/>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="872"/>
+ <source>Edit: Create Measure</source>
+ <translation type="unfinished">Redigera: Lägg till Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="877"/>
+ <source>Create Measure</source>
+ <translation type="unfinished">Skapa Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="880"/>
+ <source>Edit: Change event color</source>
+ <translation type="unfinished">Redigera: Ändra färg på händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="886"/>
+ <source>Tool: Pointer</source>
+ <translation type="unfinished">Verktyg: Pekare</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="890"/>
+ <source>Pointer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="895"/>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation type="unfinished">välj pek-verktyg:
+med pekverktyget kan du:
+ välja parter
+ flytta parter
+ kopiera parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="900"/>
+ <source>Tool: Pencil</source>
+ <translation type="unfinished">Verktyg: Penna</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="904"/>
+ <source>Pencil</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="908"/>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation type="unfinished">välj pennverktyg:
+med pennverktyget kan du:
+ skapa parter
+ ändra längden på parter
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="913"/>
+ <source>Tool: Eraser</source>
+ <translation type="unfinished">Verktyg: Radergummi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="917"/>
+ <source>Eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="919"/>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation type="unfinished">välj Suddverktyg:
+med suddverktyget kan du ta bort parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="924"/>
+ <source>Tool: Scissor</source>
+ <translation type="unfinished">Verktyg: Delare</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="928"/>
+ <source>Scissor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="930"/>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation type="unfinished">välj Delningsverktyg:
+med delningsverktyget kan du dela på parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="935"/>
+ <source>Tool: Glue</source>
+ <translation type="unfinished">Verktyg: Lim</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="939"/>
+ <source>Glue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="941"/>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation type="unfinished">välj Limverktyg:
+med limverktyget kan du limma ihop två parter</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="951"/>
+ <source>Declone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="954"/>
+ <source>Tool: Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="958"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="960"/>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation type="unfinished">välj Kvantiseringsverktyg:
+sätt in kvantiseringshändelser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="965"/>
+ <source>Tool: Line Draw</source>
+ <translation type="unfinished">Verktyg: Rita linje</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="969"/>
+ <source>Draw</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="970"/>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished">välj Ritverktyg
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="975"/>
+ <source>Tool: Mute Parts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="979"/>
+ <source>Mute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="981"/>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation type="unfinished">välj Tystningsverktyg:
+klicka på en part för att Tysta/Avtysta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="987"/>
+ <source>Transport: Increase current position</source>
+ <translation type="unfinished">Transport: Öka nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="993"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="unfinished">Transport: Minska nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="999"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/1-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1005"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/2-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1011"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/4-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1017"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/8-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1023"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/16-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1029"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/32-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1035"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="unfinished">Kvantisering: Sätt kvantisering till 1/64-not</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1041"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="unfinished">Kvantisering: Växla triol-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1047"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="unfinished">Kvantisering: Växla punktuerad kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1053"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="unfinished">Kvantisering: Växla punktuerad kvantisering (2)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1059"/>
+ <source>Insert</source>
+ <translation type="unfinished">Sätt in</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1065"/>
+ <source>Insert Tempo</source>
+ <translation type="unfinished">Mata in Tempo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1071"/>
+ <source>Insert Signature</source>
+ <translation type="unfinished">Mata in tempo-signatur</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1077"/>
+ <source>Change Event Position</source>
+ <translation type="unfinished">Ändra position för händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="1083"/>
+ <source>Edit Event Value</source>
+ <translation type="unfinished">Redigera värde för händelse</translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="34"/>
+ <source>Note Info</source>
+ <translation type="unfinished">Notinfo</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="57"/>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="38"/>
+ <source>Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="47"/>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="65"/>
+ <source>Velo On</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/noteinfo.cpp" line="74"/>
+ <source>Velo Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Presets</source>
+ <translation type="obsolete">Preset</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>load preset list</source>
+ <translation type="obsolete">öppna presetlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list</source>
+ <translation type="obsolete">spara presetlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+</context>
+<context>
+ <name>OutportCombo</name>
+ <message>
+ <location filename="../../muse/widgets/outportcombo.cpp" line="32"/>
+ <source>Midi Output Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paper Size</source>
+ <translation type="obsolete">Pappersstorlek</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>user</source>
+ <translation type="obsolete">användare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Margins</source>
+ <translation type="obsolete">Marginal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>left Margin</source>
+ <translation type="obsolete">vänster Marginal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>top Margin</source>
+ <translation type="obsolete">övre Marginal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>right Margin</source>
+ <translation type="obsolete">höger Marginal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bottom Margin</source>
+ <translation type="obsolete">undre Marginal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Header</source>
+ <translation type="obsolete">Överskrift</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Title</source>
+ <translation type="obsolete">Titel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Author</source>
+ <translation type="obsolete">Författare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Fonts</source>
+ <translation type="obsolete">Typsnitt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Page No.</source>
+ <translation type="obsolete">Sidnummer.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Measure No</source>
+ <translation type="obsolete">Taktnummer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Spårnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lyrics</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Layout</source>
+ <translation type="obsolete">Utseende</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Bars across the Page</source>
+ <translation type="obsolete">Takter över sidan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Scale</source>
+ <translation type="obsolete">Skala</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Flags</source>
+ <translation type="obsolete">Flaggor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show page no.</source>
+ <translation type="obsolete">visa sida nr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show measure no.</source>
+ <translation type="obsolete">visa takt nr.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>show track name</source>
+ <translation type="obsolete">visa spårnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation type="obsolete">Kan inte kopiera/flytta/klona till annan Spårtyp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;ut</source>
+ <translation type="obsolete">Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">&amp;Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rename</source>
+ <translation type="obsolete">byt namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>color</source>
+ <translation type="obsolete">färg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>split</source>
+ <translation type="obsolete">dela</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>glue</source>
+ <translation type="obsolete">lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>de-clone</source>
+ <translation type="obsolete">häv kloning</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="453"/>
+ <source>pianoroll</source>
+ <translation type="unfinished">pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>score</source>
+ <translation type="obsolete">partitur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list</source>
+ <translation type="obsolete">lista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="449"/>
+ <source>drums</source>
+ <translation type="unfinished">trummor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="461"/>
+ <source>wave edit</source>
+ <translation type="unfinished">wave redigering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation type="obsolete">Kan inte klistra in: flera spår valda</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: no track selected</source>
+ <translation type="obsolete">Kan inte klistra in: inget spår valt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation type="obsolete">Kan inte klistra in midipart till wavespår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation type="obsolete">Kan inte klistra in wavepart på midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot paste: wrong data type</source>
+ <translation type="obsolete">Kan inte klistra in: fel datatyp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="442"/>
+ <source>AutoFill...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="456"/>
+ <source>miditracker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="496"/>
+ <source>MusE: Get auto fill loop len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="497"/>
+ <source>Measures: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="889"/>
+ <source>MusE: Change Part Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="890"/>
+ <source>PartName:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="421"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/canvas.cpp" line="424"/>
+ <source>Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Events</source>
+ <translation type="obsolete">Ta bort Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select All</source>
+ <translation type="obsolete">Välj Allt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select None</source>
+ <translation type="obsolete">Välj Ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Inside Loop</source>
+ <translation type="obsolete">I loop</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Outside Loop</source>
+ <translation type="obsolete">Utanför loop</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="77"/>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Välj</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="89"/>
+ <source>blue</source>
+ <translation type="unfinished">blå</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="92"/>
+ <source>pitch colors</source>
+ <translation type="unfinished">pitchfärger</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="95"/>
+ <source>velocity colors</source>
+ <translation type="unfinished">velocityfärger</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="85"/>
+ <source>&amp;Config</source>
+ <translation type="unfinished">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="86"/>
+ <source>event color</source>
+ <translation type="unfinished">händelsefärg</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="100"/>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Funktioner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Over Quantize</source>
+ <translation type="obsolete">Över Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On Quantize</source>
+ <translation type="obsolete">Note On-kvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note On/Off Quantize</source>
+ <translation type="obsolete">Note On/Off Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Iterative Quantize</source>
+ <translation type="obsolete">Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="109"/>
+ <source>Config Quant...</source>
+ <translation type="unfinished">Konfigurera Kvant...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Gate Time</source>
+ <translation type="obsolete">Modifiera Gate Time</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Modify Velocity</source>
+ <translation type="obsolete">Modifiera Velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transpose</source>
+ <translation type="obsolete">Transponera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Thin Out</source>
+ <translation type="obsolete">Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Event</source>
+ <translation type="obsolete">Ta bort Händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Shift</source>
+ <translation type="obsolete">Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Move Clock</source>
+ <translation type="obsolete">Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy Measure</source>
+ <translation type="obsolete">Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Erase Measure</source>
+ <translation type="obsolete">Radera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Measure</source>
+ <translation type="obsolete">Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Create Measure</source>
+ <translation type="obsolete">Skapa Takt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="134"/>
+ <source>Pianoroll Tools</source>
+ <translation type="unfinished">Verktyg Pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Step Record</source>
+ <translation type="obsolete">Stegvis inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Play Events</source>
+ <translation type="obsolete">Spela Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Controller View</source>
+ <translation type="obsolete">Lägg till Controller Vy</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="155"/>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <location filename="../../muse/midiedit/pianoroll.cpp" line="161"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="57"/>
+ <source>MusE: select plugin</source>
+ <translation type="unfinished">MusE: välj plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="65"/>
+ <source>Label</source>
+ <translation type="unfinished">Etikett</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="66"/>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="73"/>
+ <source>Maker</source>
+ <translation type="unfinished">Upphovsman</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="104"/>
+ <source>Ok</source>
+ <translation type="unfinished">Ok</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="106"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Select which types of plugins should be visible in the list,&lt;br&gt;beware that &apos;all&apos; includes plugins that probably are not usable by MusE.</source>
+ <translation type="obsolete">Välj vilka typer av plugins som ska vara synliga i lista,&lt;br&gt;Observera att &apos;alla&apos; inkluderar plugins som möljigtvis inte är användbara i MusE.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Stereo and Mono</source>
+ <translation type="obsolete">Stereo och Mono</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All</source>
+ <translation type="obsolete">Alla</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="64"/>
+ <source>Lib</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="67"/>
+ <source>AI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="68"/>
+ <source>AO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="69"/>
+ <source>CI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="70"/>
+ <source>CO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="71"/>
+ <source>IP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="72"/>
+ <source>id</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="74"/>
+ <source>Copyright</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="120"/>
+ <source>Mono and Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="125"/>
+ <source>Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="130"/>
+ <source>Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="135"/>
+ <source>Show All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="150"/>
+ <source>Select which types of plugins should be visible in the list.&lt;br&gt;Note that using mono plugins on stereo tracks is not a problem, two will be used in parallell.&lt;br&gt;Also beware that the &apos;all&apos; alternative includes plugins that probably not are usable by MusE.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="157"/>
+ <source>Search in &apos;Label&apos; and &apos;Name&apos;:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="347"/>
+ <source>File Buttons</source>
+ <translation type="unfinished">Arkiv Knappar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="349"/>
+ <source>Load Preset</source>
+ <translation type="unfinished">Öppna Preset</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="352"/>
+ <source>Save Preset</source>
+ <translation type="unfinished">Spara Preset</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="358"/>
+ <source>bypass plugin</source>
+ <translation type="unfinished">koppla ur plugin</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="574"/>
+ <source>MusE: load preset</source>
+ <translation type="unfinished">MusE: öppna preset</translation>
+ </message>
+ <message>
+ <location filename="../../muse/plugingui.cpp" line="635"/>
+ <source>MusE: save preset</source>
+ <translation type="unfinished">MusE: spara preset</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../../muse/preferences.cpp" line="680"/>
+ <source>MusE: load image</source>
+ <translation type="unfinished">MusE: ladda bild</translation>
+ </message>
+</context>
+<context>
+ <name>PrinterConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Printer</source>
+ <translation type="obsolete">MusE: Konfigurera Skrivare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print to file</source>
+ <translation type="obsolete">Skriv till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print Command</source>
+ <translation type="obsolete">Utskriftskommando</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preview Command</source>
+ <translation type="obsolete">Förhandsgranskningskommando</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectDialog</name>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="420"/>
+ <source>MusE: create new folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/projectdialog.cpp" line="421"/>
+ <source>new folder:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Port Number</source>
+ <translation type="obsolete">Portnummer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enable gui for device</source>
+ <translation type="obsolete">visa gui för enhet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables recording from the device</source>
+ <translation type="obsolete">slå på inspelning från enhet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name of the midi device associated with this port number</source>
+ <translation type="obsolete">Namn på midienhet associerad med detta portnummer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument connected to port</source>
+ <translation type="obsolete">Instrument kopplat till denna port</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>State: result of opening the device</source>
+ <translation type="obsolete">Status: resultat av öppning av enhet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>mute instrument</source>
+ <translation type="obsolete">tysta instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>sound name</source>
+ <translation type="obsolete">ljudnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantisation
+currently not used</source>
+ <translation type="obsolete">kvantisering
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>this input note triggers the sound</source>
+ <translation type="obsolete">denna in-not triggar ljudet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>note length</source>
+ <translation type="obsolete">notlängd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>this note is send for the sound</source>
+ <translation type="obsolete">denna not skickas för ljudet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel
+currently not used</source>
+ <translation type="obsolete">utgångskanal
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port
+currently not used</source>
+ <translation type="obsolete">utgångsport
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 1</source>
+ <translation type="obsolete">velocity nivå 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 2</source>
+ <translation type="obsolete">velocity nivå 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 3</source>
+ <translation type="obsolete">velocity nivå 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>velocity level 4</source>
+ <translation type="obsolete">velocity nivå 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantisation</source>
+ <translation type="obsolete">kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output channel</source>
+ <translation type="obsolete">utgångskanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>output port</source>
+ <translation type="obsolete">utgångsport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Enable Recording</source>
+ <translation type="obsolete">Slå på Inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Activity</source>
+ <translation type="obsolete">Spåraktivitet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mute Indicator</source>
+ <translation type="obsolete">Tyst-Indikator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Solo Indicator</source>
+ <translation type="obsolete">Solo-Indikator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Type</source>
+ <translation type="obsolete">Spårtyp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Spårnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Channel Number</source>
+ <translation type="obsolete">Kanalnummer för utgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Output Port</source>
+ <translation type="obsolete">Utgångsport</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time Lock</source>
+ <translation type="obsolete">Tidlås</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Solo/Pre Fader Listening</source>
+ <translation type="obsolete">Solo/För-reglage lyssning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables reading from device</source>
+ <translation type="obsolete">möjliggör läsning från enhet</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enables writing to device</source>
+ <translation type="obsolete">möjliggör skrivning till enhet</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../../muse/muse.cpp" line="356"/>
+ <source>Add Midi Generator...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/muse.cpp" line="380"/>
+ <source>Add Soft Synth...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QPopupMenu</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Soft Synth</source>
+ <translation type="obsolete">Lägg till Mjukvarusynth</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Velocity</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="51"/>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished">Kan inte konvertera sysex-sträng</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="59"/>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished">Hex-sträng för lång (2048 bytes maxgräns)</translation>
+ </message>
+ <message>
+ <location filename="../../muse/instruments/minstrument.cpp" line="173"/>
+ <source>generic midi</source>
+ <translation type="unfinished">generell midi</translation>
+ </message>
+ <message>
+ <location filename="../../muse/miditransform.cpp" line="303"/>
+ <source>new</source>
+ <translation type="unfinished">ny</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="358"/>
+ <source>create peakfile for </source>
+ <translation type="unfinished">skapa &quot;peak&quot;-fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cannot transform non empty track</source>
+ <translation type="obsolete">Kan inte transformera ej tomt spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: get file name</source>
+ <translation type="obsolete">MusE: hämta filnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>the directory
+</source>
+ <translation type="obsolete">katalogen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>
+does not exist
+create?</source>
+ <translation type="obsolete">
+finns inte
+skapa?</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Create</source>
+ <translation type="obsolete">&amp;Skapa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: create directory</source>
+ <translation type="obsolete">MusE: skapa katalog</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>creating dir failed</source>
+ <translation type="obsolete">misslyckades med att skapa katalog</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>File
+</source>
+ <translation type="unfinished">Filen
+</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="136"/>
+ <source>
+exists</source>
+ <translation type="unfinished">
+existerar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="138"/>
+ <source>MusE: write</source>
+ <translation type="unfinished">MusE: skriv</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="140"/>
+ <source>Overwrite</source>
+ <translation type="unfinished">Ersätt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="141"/>
+ <source>Quit</source>
+ <translation type="unfinished">Avsluta</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="151"/>
+ <source>Open File
+</source>
+ <translation type="unfinished">Öppna fil</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="152"/>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+misslyckades:</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/filedialog.cpp" line="153"/>
+ <source>MusE: Open File</source>
+ <translation type="unfinished">MusE: Öppna fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>None</source>
+ <translation type="obsolete">Ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group %c</source>
+ <translation type="obsolete">Grupp %c</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Unknown</source>
+ <translation type="obsolete">Okänd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Grupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File </source>
+ <translation type="obsolete">Filen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source> exists</source>
+ <translation type="obsolete">existerar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="101"/>
+ <source>copy
+ %1
+to
+ %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="105"/>
+ <source>
+converting sample rate
+from %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/wave.cpp" line="109"/>
+ <source>Abort</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/exportmidi.cpp" line="127"/>
+ <source>MusE: export midi file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Config Quantize</source>
+ <translation type="obsolete">MusE: Konfigurera Kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Config Quantize</source>
+ <translation type="obsolete">Konfigurera Kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Strength</source>
+ <translation type="obsolete">Styrka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Don&#xb4;t Quantize</source>
+ <translation type="obsolete">Kvantisera Inte</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quant Len</source>
+ <translation type="obsolete">Kvant Längd</translation>
+ </message>
+</context>
+<context>
+ <name>QuantDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Display Quantize</source>
+ <translation type="obsolete">Visa Kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Not Kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Rest Kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>RecordButton</name>
+ <message>
+ <location filename="../../muse/widgets/utils.cpp" line="38"/>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation type="obsolete">MusE: Slumprytmgenerator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Properties</source>
+ <translation type="obsolete">Instrumentinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>counts/bar</source>
+ <translation type="obsolete">slag/takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>steps/count</source>
+ <translation type="obsolete">steg/slag</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source># bars</source>
+ <translation type="obsolete"># takter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>randomize</source>
+ <translation type="obsolete">slumpa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 1</source>
+ <translation type="obsolete">Grupp 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 2</source>
+ <translation type="obsolete">Grupp 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 3</source>
+ <translation type="obsolete">Grupp 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 4</source>
+ <translation type="obsolete">Grupp 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 5</source>
+ <translation type="obsolete">Grupp 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>listen</source>
+ <translation type="obsolete">lyssna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Grupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>create new entry</source>
+ <translation type="obsolete">skapa nytt inlägg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="obsolete">skapa nytt inlägg genom att trycka på Ny knappen
+i MusEs lista över definierade controllers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete selected entry</source>
+ <translation type="obsolete">ta bort valt inlägg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Up</source>
+ <translation type="obsolete">Upp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Down</source>
+ <translation type="obsolete">Ner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>steps/count </source>
+ <translation type="obsolete">steg/slag</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of defined controllers</source>
+ <translation type="obsolete">lista med definierade controllers</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="obsolete">Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;File</source>
+ <translation type="obsolete">A&amp;rkiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Help</source>
+ <translation type="obsolete">&amp;Hjälp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tools</source>
+ <translation type="obsolete">Verktyg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>New</source>
+ <translation type="obsolete">Ny</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open</source>
+ <translation type="obsolete">Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">&amp;Öppna...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Save</source>
+ <translation type="obsolete">&amp;Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save As</source>
+ <translation type="obsolete">Spara som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save &amp;As...</source>
+ <translation type="obsolete">S&amp;para som...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print</source>
+ <translation type="obsolete">Skriv ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Print...</source>
+ <translation type="obsolete">Skriv &amp;ut...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Exit</source>
+ <translation type="obsolete">Stäng</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>E&amp;xit</source>
+ <translation type="obsolete">S&amp;täng</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Undo</source>
+ <translation type="obsolete">Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Undo</source>
+ <translation type="obsolete">&amp;Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Redo</source>
+ <translation type="obsolete">Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Redo</source>
+ <translation type="obsolete">Gör &amp;om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cut</source>
+ <translation type="obsolete">Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cut</source>
+ <translation type="obsolete">Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Copy</source>
+ <translation type="obsolete">Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>C&amp;opy</source>
+ <translation type="obsolete">&amp;Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Paste</source>
+ <translation type="obsolete">Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">K&amp;listra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Find</source>
+ <translation type="obsolete">Sök</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Find...</source>
+ <translation type="obsolete">&amp;Sök...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Contents</source>
+ <translation type="obsolete">Innehåll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Contents...</source>
+ <translation type="obsolete">&amp;Innehåll...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Index...</source>
+ <translation type="obsolete">&amp;Index...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>About</source>
+ <translation type="obsolete">Om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;About...</source>
+ <translation type="obsolete">&amp;Om...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation type="obsolete">&lt;b&gt;Observera!&lt;/b&gt;&lt;br&gt;
+Slumprytms-generator fungerar inte än!</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument Settings:</source>
+ <translation type="obsolete">Instrumentinställningar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>add</source>
+ <translation type="obsolete">lägg till</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete</source>
+ <translation type="obsolete">ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>count/bar</source>
+ <translation type="obsolete">slag/takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source># bars</source>
+ <translation type="obsolete"># takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group Settings:</source>
+ <translation type="obsolete">Gruppinställningar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group</source>
+ <translation type="obsolete">Grupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 1</source>
+ <translation type="obsolete">Grupp 1</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 2</source>
+ <translation type="obsolete">Grupp 2</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 3</source>
+ <translation type="obsolete">Grupp 3</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 4</source>
+ <translation type="obsolete">Grupp 4</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Group 5</source>
+ <translation type="obsolete">Grupp 5</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>listen</source>
+ <translation type="obsolete">lyssna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Randomize</source>
+ <translation type="obsolete">Slumpa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rhythm Style:</source>
+ <translation type="obsolete">Rytmstil:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Clear</source>
+ <translation type="obsolete">Rensa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open...</source>
+ <translation type="obsolete">Öppna...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save as...</source>
+ <translation type="obsolete">Spara som...</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Generate</source>
+ <translation type="obsolete">Generera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Close</source>
+ <translation type="obsolete">Stäng</translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Route</source>
+ <translation type="obsolete">Lägg till rutt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Source:</source>
+ <translation type="obsolete">Källa:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Destination:</source>
+ <translation type="obsolete">Destination:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Connect</source>
+ <translation type="obsolete">Koppla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>connect source to destination</source>
+ <translation type="obsolete">koppla källa till destination</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Current Routes</source>
+ <translation type="obsolete">Nuvarande rutter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Source</source>
+ <translation type="obsolete">Källa</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove</source>
+ <translation type="obsolete">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>remove selected route</source>
+ <translation type="obsolete">ta bort vald rutt</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Label</source>
+ <translation type="obsolete">Etikett</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginFront</name>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="213"/>
+ <source>Clear and unload effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="214"/>
+ <source>Load effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="215"/>
+ <source>Toggle display of effect parameters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/simpledrums/ssplugingui.cpp" line="216"/>
+ <source>Turn effect on/off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Score</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Dynamics</source>
+ <translation type="obsolete">Dynamik</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Page Settings</source>
+ <translation type="obsolete">Sidinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Staff Settings</source>
+ <translation type="obsolete">Notsystem inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Background Pixmap</source>
+ <translation type="obsolete">Bakgrundsbild</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Palettes</source>
+ <translation type="obsolete">Palett</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Print</source>
+ <translation type="obsolete">Skriv ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Preview Print</source>
+ <translation type="obsolete">Förhandsgranska utskrift</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lyrics</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter lyrics</source>
+ <translation type="obsolete">skriv in text</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Text</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter text</source>
+ <translation type="obsolete">skriv in Text</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>enter chord symbol</source>
+ <translation type="obsolete">skriv in ackordsymbol</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Score</source>
+ <translation type="obsolete">Partitur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to previous voice</source>
+ <translation type="obsolete">till föregående röst</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>to next voice</source>
+ <translation type="obsolete">till nästa röst</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>flip stem direction</source>
+ <translation type="obsolete">ändra stämriktning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move marked notes to previous voice or to upper stave in a split system</source>
+ <translation type="obsolete">flytta de markerade noterna till föregående röst eller till övre notsystem i ett delat notssystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>move marked notes to next voice or to lower stave in a split system</source>
+ <translation type="obsolete">flytta de markerade noterna till nästa röst eller undre notsystem i ett delat notsystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>flip stem direction of selected notes</source>
+ <translation type="obsolete">byt stämriktning för valda noter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>StaffSettings</source>
+ <translation type="obsolete">Notsysteminställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: config wallpaper</source>
+ <translation type="obsolete">MusE: konfigurera bakgrundsbild</translation>
+ </message>
+</context>
+<context>
+ <name>ScoreConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Staff Settings: </source>
+ <translation type="obsolete">Partiturinställningar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track List</source>
+ <translation type="obsolete">Spårlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Key/Clef</source>
+ <translation type="obsolete">Stämma/Klav</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Upper Staff</source>
+ <translation type="obsolete">Övre notplan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Lower Staff</source>
+ <translation type="obsolete">Nedre notplan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Raster</source>
+ <translation type="obsolete">Rutnät</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Notkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Restkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Mode</source>
+ <translation type="obsolete">Läge</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Split System</source>
+ <translation type="obsolete">Delat system</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Splitpoint</source>
+ <translation type="obsolete">Delningspunkt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>next page</source>
+ <translation type="obsolete">nästa sida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>previous page</source>
+ <translation type="obsolete">förra sidan</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>current page number</source>
+ <translation type="obsolete">nuvarande sidnummer</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ok</source>
+ <translation type="obsolete">Ok</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="78"/>
+ <source>Shortcut conflicts with </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/shortcutcapturedialog.cpp" line="94"/>
+ <source>Undefined</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfig</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Start playback from current location</source>
+ <translation type="obsolete">Transport: Starta uppspelning från nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle metronome</source>
+ <translation type="obsolete">Transport: Metronom av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Stop Playback</source>
+ <translation type="obsolete">Transport: Stoppa uppspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Play, Stop, Rewind</source>
+ <translation type="obsolete">Transport: Spela, stoppa, spola tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto left marker</source>
+ <translation type="obsolete">Transport: Gå till vänster markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Goto right marker</source>
+ <translation type="obsolete">Transport: Gå till höger markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Loop section</source>
+ <translation type="obsolete">Transport: Loopa sektion av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Toggle Record</source>
+ <translation type="obsolete">Transport: Inspelning av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy</source>
+ <translation type="obsolete">Redigera: Kopiera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Undo</source>
+ <translation type="obsolete">Redigera: Ã…ngra</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Redo</source>
+ <translation type="obsolete">Redigera: Gör om</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Cut</source>
+ <translation type="obsolete">Redigera: Klipp ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Paste,</source>
+ <translation type="obsolete">Redigera: Klistra in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete</source>
+ <translation type="obsolete">Redigera: Ta bort</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: New project</source>
+ <translation type="obsolete">Arkiv: Nytt projekt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open from disk</source>
+ <translation type="obsolete">Arkiv: Öppna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save project</source>
+ <translation type="obsolete">Arkiv: Spara</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Open recent file</source>
+ <translation type="obsolete">Arkiv: Öppna föregående fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Save as</source>
+ <translation type="obsolete">Arkiv: Spara som</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Load template</source>
+ <translation type="obsolete">Arkiv: Ladda mall</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import midi file</source>
+ <translation type="obsolete">Arkiv: Importera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Export midi file</source>
+ <translation type="obsolete">Arkiv: Exportera midifil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Import audio file</source>
+ <translation type="obsolete">Arkiv: Importera ljudfil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File: Quit MusE</source>
+ <translation type="obsolete">Arkiv: Avsluta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select parts on track</source>
+ <translation type="obsolete">Arkiv: Välj alla parter i spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open pianoroll</source>
+ <translation type="obsolete">Öppna pianorulle</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open drumeditor</source>
+ <translation type="obsolete">Öppna trumeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open listeditor</source>
+ <translation type="obsolete">Öppna listeditor</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open graphical mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (grafisk)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open list mastertrack editor</source>
+ <translation type="obsolete">Öppna masterspår-editor (lista)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Open midi transformer</source>
+ <translation type="obsolete">Öppna miditransformer</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add midi track</source>
+ <translation type="obsolete">Lägg till midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add drum track</source>
+ <translation type="obsolete">Lägg till trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add wave track</source>
+ <translation type="obsolete">Lägg till ljudspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio output</source>
+ <translation type="obsolete">Lägg till ljudutgång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio group</source>
+ <translation type="obsolete">Lägg till ljudgrupp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio input</source>
+ <translation type="obsolete">Lägg till ljudingång</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add audio aux</source>
+ <translation type="obsolete">Lägg till aux</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global cut</source>
+ <translation type="obsolete">Struktur: Globalt klipp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global insert</source>
+ <translation type="obsolete">Struktur: Global insättning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Global split</source>
+ <translation type="obsolete">Struktur: Global delning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Copy range</source>
+ <translation type="obsolete">Struktur: Kopiera område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Structure: Cut events</source>
+ <translation type="obsolete">Struktur: Klipp ut händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open mixer window</source>
+ <translation type="obsolete">Vy: Öppna mixerfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle transport window</source>
+ <translation type="obsolete">Vy: Transportfönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Toggle bigtime window</source>
+ <translation type="obsolete">Vy: Bigtimefönster av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>View: Open marker window</source>
+ <translation type="obsolete">Vy: Öppna markörfönster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song by page</source>
+ <translation type="obsolete">Inställningar: Följ sång efter sida</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song off</source>
+ <translation type="obsolete">Inställningar: Följ sång av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Follow song continuous</source>
+ <translation type="obsolete">Inställningar: Följ sång kontinuerligt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Global configuration</source>
+ <translation type="obsolete">Inställningar: Globala inställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure shortcuts</source>
+ <translation type="obsolete">Inställningar: Konfigurera tangentbordsgenvängar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Configure metronome</source>
+ <translation type="obsolete">Inställningar: Konfigurera metronom</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi sync configuration</source>
+ <translation type="obsolete">Inställningar: Midi synk konfigurationg</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi file export configuration</source>
+ <translation type="obsolete">Inställningar: Midi fil export-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Appearance settings</source>
+ <translation type="obsolete">Inställningar: Utseendeinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Midi ports / Soft Synth</source>
+ <translation type="obsolete">Inställningar: Midiportar / Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Settings: Audio subsystem configuration</source>
+ <translation type="obsolete">Inställningar: Konfiguration av ljud-undersystem</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Edit midi instruments</source>
+ <translation type="obsolete">Midi: Editera midi-instrument</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input transform</source>
+ <translation type="obsolete">Midi: Öppna midi inputtransformator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Open midi input filter</source>
+ <translation type="obsolete">Midi: Öppna midi indatafilter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi input transpose</source>
+ <translation type="obsolete">Midi: Midi indata transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi remote control</source>
+ <translation type="obsolete">Midi: Midi fjärrkontroll</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Random rhythm generator</source>
+ <translation type="obsolete">Midi: Slumprymtmgenerator</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Reset midi</source>
+ <translation type="obsolete">Midi: Resetta midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Init midi</source>
+ <translation type="obsolete">Midi: Initiera midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Midi local off</source>
+ <translation type="obsolete">Midi: Midi lokal av</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to track</source>
+ <translation type="obsolete">Audio: Bounce till spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Bounce audio to file</source>
+ <translation type="obsolete">Audio: Bounce till fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Audio: Restart audio</source>
+ <translation type="obsolete">Audio: Starta om audio</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Mixer automation</source>
+ <translation type="obsolete">Audio: Mixerautomation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Take mixer snapshot</source>
+ <translation type="obsolete">Audio: Mixer ögonblicksbild</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Automation: Clear mixer automation</source>
+ <translation type="obsolete">Audio: Rensa mixerautomation</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Open Manual</source>
+ <translation type="obsolete">Hjälp: Öppna manual</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Help: Toggle whatsthis mode</source>
+ <translation type="obsolete">Hjälp: What&apos;s this-läge av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Edit selected part</source>
+ <translation type="obsolete">Redigera: Editera vald part</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track above</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på ovanstående spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track above</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på ovanstående spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part on track below</source>
+ <translation type="obsolete">Redigera: Välj närmsta part på underliggande spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part on track below</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part på underliggande spår till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi: Transpose</source>
+ <translation type="obsolete">Midi: Transponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select all</source>
+ <translation type="obsolete">Redigera: Välj alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select none</source>
+ <translation type="obsolete">Redigera: Välj ingen</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Invert selection</source>
+ <translation type="obsolete">Redigera: Invertera val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts inside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter inom sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select events/parts outside locators</source>
+ <translation type="obsolete">Redigera: Välj händelser/parter utanför sektion</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Select nearest part/event to the left</source>
+ <translation type="obsolete">Redigera: Välj närmsta part/händelse till vänster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the left to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till vänster till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Add nearest part/event to the right to selection</source>
+ <translation type="obsolete">Redigera: Lägg till närmsta part/händelse till höger till val</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set locators to selection</source>
+ <translation type="obsolete">Redigera: Sätt loopsektion till valda parter/händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase pitch</source>
+ <translation type="obsolete">Redigera: Höj pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease pitch</source>
+ <translation type="obsolete">Redigera: Sänk pitch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Set fixed length on midi events</source>
+ <translation type="obsolete">Redigera: Sätt fix längd till valda midihändelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Over Quantize</source>
+ <translation type="obsolete">Redigera: Överkvantisera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Note On/Off Quantize</source>
+ <translation type="obsolete">Kvantisering: Not på/av-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Iterative Quantize</source>
+ <translation type="obsolete">Kvantisering: Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Configure quant</source>
+ <translation type="obsolete">Kvantisering: Konfigurera kvantisering<byte value="x9"/></translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Gate Time</source>
+ <translation type="obsolete">Kvantisering: Modifiera gate-tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Modify Velocity</source>
+ <translation type="obsolete">Kvantisering: Modifiera velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Crescendo</source>
+ <translation type="obsolete">Redigera: Crescendo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Thin Out</source>
+ <translation type="obsolete">Redigera: Tunna ut</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Event</source>
+ <translation type="obsolete">Redigera: Ta bort händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Note Shift</source>
+ <translation type="obsolete">Redigera: Shifta Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Move Clock</source>
+ <translation type="obsolete">Redigera: Flytta Klocka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Copy Measure</source>
+ <translation type="obsolete">Redigera: Kopiera Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Erase Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Delete Measure</source>
+ <translation type="obsolete">Redigera: Ta bort Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Create Measure</source>
+ <translation type="obsolete">Redigera: Lägg till Takt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Change event color</source>
+ <translation type="obsolete">Redigera: Ändra färg på händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pointer</source>
+ <translation type="obsolete">Verktyg: Pekare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Pencil</source>
+ <translation type="obsolete">Verktyg: Penna</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Eraser</source>
+ <translation type="obsolete">Verktyg: Radergummi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Line Draw</source>
+ <translation type="obsolete">Verktyg: Rita linje</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Scissor</source>
+ <translation type="obsolete">Verktyg: Delare</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Glue</source>
+ <translation type="obsolete">Verktyg: Lim</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Tool: Mute</source>
+ <translation type="obsolete">Verktyg: Tysta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Increase current position</source>
+ <translation type="obsolete">Transport: Öka nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Transport: Decrease current position</source>
+ <translation type="obsolete">Transport: Minska nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/1 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/1-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/2 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/2-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/4 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/4-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/8 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/8-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/16 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/16-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/32 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/32-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Set quantize to 1/64 note</source>
+ <translation type="obsolete">Kvantisering: Sätt kvantisering till 1/64-not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle triol quantization</source>
+ <translation type="obsolete">Kvantisering: Växla triol-kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Quantize: Toggle punctuation quantization (2)</source>
+ <translation type="obsolete">Kvantisering: Växla punktuerad kvantisering (2)</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Insert at location</source>
+ <translation type="obsolete">Redigera: Sätt in på nuvarande position</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Note</source>
+ <translation type="obsolete">Mata in Not</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert SysEx</source>
+ <translation type="obsolete">Mata in SysEx</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Ctrl</source>
+ <translation type="obsolete">Mata in Ctrl</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Meta</source>
+ <translation type="obsolete">Mata in Meta</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="obsolete">Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Key Aftertouch</source>
+ <translation type="obsolete">Mata in Key Aftertouch</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Increase event position</source>
+ <translation type="obsolete">Redigera: Öka position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit: Decrease event position</source>
+ <translation type="obsolete">Redigera: Minska position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Tempo</source>
+ <translation type="obsolete">Mata in Tempo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Insert Signature</source>
+ <translation type="obsolete">Mata in tempo-signatur</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Change Event Position</source>
+ <translation type="obsolete">Ändra position för händelse</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit Event Value</source>
+ <translation type="obsolete">Redigera värde för händelse</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="38"/>
+ <source>Arranger</source>
+ <translation type="unfinished">Arrangerare</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="39"/>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianorulle</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="40"/>
+ <source>Drumeditor</source>
+ <translation type="unfinished">Trumeditor</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="42"/>
+ <source>List Mastertrack</source>
+ <translation type="unfinished">Masterspår, lista</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="44"/>
+ <source>All categories</source>
+ <translation type="unfinished">Alla kategorier</translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="37"/>
+ <source>Global</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="41"/>
+ <source>List editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/shortcuts.cpp" line="43"/>
+ <source>Wave editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Alt+A</source>
+ <translation type="obsolete">Alt+L</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>signature scale</source>
+ <translation type="obsolete">signaturskala</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <location filename="../../synti/simpledrums/simpledrumsgui.cpp" line="633"/>
+ <source>Load sample dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Song</name>
+ <message>
+ <location filename="../../muse/song.cpp" line="1493"/>
+ <source>Jack shutdown!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/song.cpp" line="1508"/>
+ <source>Jack has detected a performance problem which has lead to
+MusE being disconnected.
+This could happen due to a number of reasons:
+- a performance issue with your particular setup.
+- a bug in MusE (or possibly in another connected software).
+- a random hiccup which might never occur again.
+- jack was voluntary stopped by you or someone else
+- jack crashed
+If there is a persisting problem you are much welcome to discuss it
+on the MusE mailinglist.
+(there is information about joining the mailinglist on the MusE
+ homepage which is available through the help menu)
+
+To proceed check the status of Jack and try to restart it and then .
+click on the Restart button.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SplitLayerGui</name>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="53"/>
+ <source>start pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="58"/>
+ <source>enable learn mode for start pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="70"/>
+ <source>end pitch for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="75"/>
+ <source>enable learn mode for end pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="84"/>
+ <source>pitch offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="91"/>
+ <source>start velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="97"/>
+ <source>end velocity for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../midiplugins/splitlayer/splitlayergui.cpp" line="103"/>
+ <source>velocity offset for split</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>StkGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Voices</source>
+ <translation type="obsolete">Röster</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Edit</source>
+ <translation type="obsolete">Redigera</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Soft Synth Configuration</source>
+ <translation type="obsolete">MusE: Mjukvarusyntinställningar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Mjukvarusynt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>File</source>
+ <translation type="obsolete">Arkiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Instances</source>
+ <translation type="obsolete">Instanser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>list of available software synthesizers</source>
+ <translation type="obsolete">lista av tillgängliga mjukvarusyntar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Instance</source>
+ <translation type="obsolete">Lägg till instans</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Remove Instance</source>
+ <translation type="obsolete">Ta bort instans</translation>
+ </message>
+</context>
+<context>
+ <name>TLSWidget</name>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="132"/>
+ <source>Remove Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="136"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="238"/>
+ <source>Velocity</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlswidget.cpp" line="271"/>
+ <source>Delete Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TLWidget</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Ta bort spår</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="128"/>
+ <source>Copy Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="145"/>
+ <source>Show Gui</source>
+ <translation type="unfinished">Visa Gui</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="272"/>
+ <source>Add Subtrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/tlwidget.cpp" line="424"/>
+ <source>Midi Output Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Show Gui</source>
+ <translation type="obsolete">Visa Gui</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Midi Track</source>
+ <translation type="obsolete">Lägg till Midispår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Drum Track</source>
+ <translation type="obsolete">Lägg till Trumspår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Add Wave Track</source>
+ <translation type="obsolete">Lägg till Wavespår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Delete Track</source>
+ <translation type="obsolete">Ta bort spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Comment</source>
+ <translation type="obsolete">Spårkommentar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Midi</source>
+ <translation type="obsolete">Midi</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Drum</source>
+ <translation type="obsolete">Trumma</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Wave</source>
+ <translation type="obsolete">Wave</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>This is your first wave track and the project
+doesn&apos;t appear to be saved yet.
+
+It is recommended that you save a project file now!
+
+By doing that you are implicitly selecting a folder
+where the audio files will end up.</source>
+ <translation type="obsolete">Detta är ditt första ljudspår och projektet verkar inte vara sparat ännu.
+
+Du rekommenderas att spara projektet nu!
+
+Genom att göra det så väljer du indirekt den katalog där
+ljudfilerna skall hamna.</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Save dialog</source>
+ <translation type="obsolete">Spara dialog</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>TemplateDialog</name>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="75"/>
+ <source>MusE presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/templatedialog.cpp" line="85"/>
+ <source>User presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TimeCanvas</name>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="147"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../awl/tcanvas.cpp" line="149"/>
+ <source>Add Controller View</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="45"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="64"/>
+ <source>Snap</source>
+ <translation type="unfinished">Fäst vid</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="70"/>
+ <source>Quantize</source>
+ <translation type="unfinished">Kvantisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="86"/>
+ <source>To</source>
+ <translation type="unfinished">Till</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="90"/>
+ <source>All Events</source>
+ <translation type="unfinished">Alla Händelser</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="91"/>
+ <source>Looped Ev.</source>
+ <translation type="unfinished">Loopade Händelser.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="92"/>
+ <source>Selected Ev.</source>
+ <translation type="unfinished">Valda Händelser.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="93"/>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished">Loopade och Valda.</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/tb1.cpp" line="36"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="51"/>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished">MusE: Spårkommentar</translation>
+ </message>
+ <message>
+ <location filename="../../muse/widgets/comment.cpp" line="56"/>
+ <source>Track Comment:</source>
+ <translation type="unfinished">Spårkommentar:</translation>
+ </message>
+</context>
+<context>
+ <name>TrackInfo</name>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="69"/>
+ <source>Track Type</source>
+ <translation type="unfinished">Spårtyp</translation>
+ </message>
+ <message>
+ <location filename="../../muse/arranger/trackinfo.cpp" line="78"/>
+ <source>Track Name</source>
+ <translation type="unfinished">Spårnamn</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Replace</source>
+ <translation type="obsolete">Ersätt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rec Mode</source>
+ <translation type="obsolete">Recläge</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Left Mark</source>
+ <translation type="obsolete">Vänster Markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Right Mark</source>
+ <translation type="obsolete">Höger Markering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind to start</source>
+ <translation type="obsolete">flytta tillbaka till början</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>rewind</source>
+ <translation type="obsolete">flytta tillbaka</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>forward</source>
+ <translation type="obsolete">frammåt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>stop</source>
+ <translation type="obsolete">stopp</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>play</source>
+ <translation type="obsolete">spela</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>record</source>
+ <translation type="obsolete">spela in</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>quantize during record</source>
+ <translation type="obsolete">kvantisera under inspelning</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>metronom click on/off</source>
+ <translation type="obsolete">metronomklick av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sync</source>
+ <translation type="obsolete">Synk</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>external sync on/off</source>
+ <translation type="obsolete">externsynk. av/på</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>use master track</source>
+ <translation type="obsolete">använder masterspår</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Midi Transpose</source>
+ <translation type="obsolete">MusE: Miditransponering</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>halftones</source>
+ <translation type="obsolete">halvtoner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Time</source>
+ <translation type="obsolete">Tid</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all</source>
+ <translation type="obsolete">alla</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>between markers</source>
+ <translation type="obsolete">mellan markeringar</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Parts</source>
+ <translation type="obsolete">Parter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>all in selected tracks</source>
+ <translation type="obsolete">alla i valda spår</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="480"/>
+ <source>MusE: Load VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../synti/vam/vamgui.cpp" line="583"/>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Virtual Analogue for MusE</source>
+ <translation type="obsolete">Virtual Analogue för MusE</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Waveform</source>
+ <translation type="obsolete">VÃ¥gform</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Sine</source>
+ <translation type="obsolete">Sinus</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pulse</source>
+ <translation type="obsolete">Puls</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Saw</source>
+ <translation type="obsolete">SÃ¥gtand</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Triangle</source>
+ <translation type="obsolete">Triangel</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Filter</source>
+ <translation type="obsolete">Filter</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Invert</source>
+ <translation type="obsolete">Invertera</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Presets</source>
+ <translation type="obsolete">Preset</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>load preset list</source>
+ <translation type="obsolete">öppna presetlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list</source>
+ <translation type="obsolete">spara presetlista</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>save preset list to a new file</source>
+ <translation type="obsolete">spara presetlista till ny fil</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>delete preset</source>
+ <translation type="obsolete">ta bort preset</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>On</source>
+ <translation type="obsolete">PÃ¥</translation>
+ </message>
+</context>
+<context>
+ <name>Velocity</name>
+ <message>
+ <location filename="../../muse/midiedit/velocity.cpp" line="33"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished">MusE: Modifiera Velocity</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: Modify Velocity</source>
+ <translation type="obsolete">MusE: Modifiera Velocity</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Range</source>
+ <translation type="obsolete">Område</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>All Events</source>
+ <translation type="obsolete">Alla Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected Events</source>
+ <translation type="obsolete">Valda Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Looped Events</source>
+ <translation type="obsolete">Loopade Händelser</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Selected &amp; Looped</source>
+ <translation type="obsolete">Valda &amp; Loopade</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Values</source>
+ <translation type="obsolete">Värden</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Rate:</source>
+ <translation type="obsolete">Hastighet:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Offset:</source>
+ <translation type="obsolete">Offset:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>OK</source>
+ <translation type="obsolete">OK</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>bar scale</source>
+ <translation type="obsolete">takt-skala</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="50"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Functions</source>
+ <translation type="obsolete">Funktioner</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Normalize</source>
+ <translation type="obsolete">Normalisera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="116"/>
+ <source>Cursor</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="51"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="52"/>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="54"/>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="55"/>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="57"/>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="59"/>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="61"/>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="63"/>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="65"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="69"/>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="71"/>
+ <source>Mute Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="73"/>
+ <source>Normalize Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="75"/>
+ <source>Fade In Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="77"/>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="79"/>
+ <source>Reverse Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="82"/>
+ <source>Select</source>
+ <translation type="unfinished">Välj</translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="93"/>
+ <source>waveedit-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="104"/>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="111"/>
+ <source>pianoroll-tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveedit.cpp" line="112"/>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>MusE: TrackInfo</source>
+ <translation type="obsolete">MusE: Spårinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Info</source>
+ <translation type="obsolete">Spårinfo</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Track Name</source>
+ <translation type="obsolete">Spårnamn</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>Ports:</source>
+ <translation type="obsolete">Portar:</translation>
+ </message>
+ <message>
+ <location filename="" line="7471221"/>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="809"/>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../muse/waveedit/waveview.cpp" line="810"/>
+ <source>When editing in external editor - you should not change the filesize
+since it must fit the selected region.
+
+Missing data is muted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse_qt4_evolution/share/plugins/1050.ui b/muse_qt4_evolution/share/plugins/1050.ui
new file mode 100644
index 00000000..d73ec5a1
--- /dev/null
+++ b/muse_qt4_evolution/share/plugins/1050.ui
@@ -0,0 +1,297 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>freeverb</class>
+ <widget class="QWidget" name="freeverb" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>398</width>
+ <height>120</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>FreeVerb</string>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="5" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Wet Level</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P2entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="3" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Damping</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P1entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="4" >
+ <widget class="Awl::Slider" name="P1slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6" >
+ <widget class="Awl::Slider" name="P2slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:20pt;">Freeverb1&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>127</width>
+ <height>51</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="2" >
+ <widget class="Awl::Slider" name="P0slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Room Size</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P0entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Awl::Slider</class>
+ <extends></extends>
+ <header>awl/slider.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::FloatEntry</class>
+ <extends></extends>
+ <header>awl/floatentry.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/share/plugins/1436.ui b/muse_qt4_evolution/share/plugins/1436.ui
new file mode 100644
index 00000000..ef801ebb
--- /dev/null
+++ b/muse_qt4_evolution/share/plugins/1436.ui
@@ -0,0 +1,1090 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>freeverb</class>
+ <widget class="QWidget" name="freeverb" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>721</width>
+ <height>335</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>FreeVerb</string>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item rowspan="5" row="1" column="0" >
+ <widget class="QFrame" name="frame_4" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Delay (ms)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P2entry_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P2slider_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>200</red>
+ <green>12</green>
+ <blue>100</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ <property name="lineStep" >
+ <double>10</double>
+ </property>
+ <property name="pageStep" >
+ <double>100</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2_4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Level</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P3entry_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P3slider_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.5</double>
+ </property>
+ <property name="pageStep" >
+ <double>2</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="label_5" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>18</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:18pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:9pt;">&lt;span style=" font-size:18pt;">Left&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item rowspan="5" row="1" column="1" >
+ <widget class="QFrame" name="frame_2" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Delay (ms)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P2entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P2slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>200</red>
+ <green>12</green>
+ <blue>100</blue>
+ </color>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ <property name="lineStep" >
+ <double>10</double>
+ </property>
+ <property name="pageStep" >
+ <double>100</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Level</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P3entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>3</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P3slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>4</number>
+ </property>
+ <property name="id" >
+ <number>3</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.5</double>
+ </property>
+ <property name="pageStep" >
+ <double>2</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="label_3" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>18</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:20pt;">Center&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:20pt;">L/C/R Delay - 1436&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::FloatEntry" name="P9entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>9</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P9slider" >
+ <property name="id" >
+ <number>9</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_8" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Spread</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>101</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item row="5" column="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::FloatEntry" name="P10entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P10slider" >
+ <property name="id" >
+ <number>10</number>
+ </property>
+ <property name="lineStep" >
+ <double>0.01</double>
+ </property>
+ <property name="pageStep" >
+ <double>0.1</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_9" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>9</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>Dry/Wet level</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>101</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::FloatEntry" name="P6entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>6</number>
+ </property>
+ <property name="minValue" >
+ <double>-100</double>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P6slider" >
+ <property name="id" >
+ <number>6</number>
+ </property>
+ <property name="minValue" >
+ <double>-100</double>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.5</double>
+ </property>
+ <property name="pageStep" >
+ <double>1</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Feedback</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>101</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item rowspan="5" row="1" column="2" >
+ <widget class="QFrame" name="frame_3" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Delay (ms)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P4entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>4</number>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P4slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>200</red>
+ <green>12</green>
+ <blue>100</blue>
+ </color>
+ </property>
+ <property name="id" >
+ <number>4</number>
+ </property>
+ <property name="maxValue" >
+ <double>2700</double>
+ </property>
+ <property name="lineStep" >
+ <double>10</double>
+ </property>
+ <property name="pageStep" >
+ <double>100</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel2_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Level</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::FloatEntry" name="P5entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>5</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P5slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>5</number>
+ </property>
+ <property name="maxValue" >
+ <double>50</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.5</double>
+ </property>
+ <property name="pageStep" >
+ <double>2</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:20pt;">Right&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::FloatEntry" name="P7entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>7</number>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P7slider" >
+ <property name="id" >
+ <number>7</number>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_6" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>High frequency damping (%)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>101</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item row="3" column="3" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::FloatEntry" name="P8entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>8</number>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Slider" name="P8slider" >
+ <property name="id" >
+ <number>8</number>
+ </property>
+ <property name="maxValue" >
+ <double>100</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_7" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Low frequency damping (%)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>101</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Awl::Slider</class>
+ <extends></extends>
+ <header>awl/slider.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::FloatEntry</class>
+ <extends></extends>
+ <header>awl/floatentry.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/share/plugins/2142.ui b/muse_qt4_evolution/share/plugins/2142.ui
new file mode 100644
index 00000000..63eb1542
--- /dev/null
+++ b/muse_qt4_evolution/share/plugins/2142.ui
@@ -0,0 +1,525 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>Form1</class>
+ <widget class="QWidget" name="Form1" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>357</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Tap-Reverberator</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>10</number>
+ </property>
+ <item row="0" column="0" colspan="2" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>4</number>
+ </property>
+ <item row="1" column="2" >
+ <widget class="Awl::Slider" name="P1slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>8</number>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ <property name="minValue" >
+ <double>-70</double>
+ </property>
+ <property name="maxValue" >
+ <double>10</double>
+ </property>
+ <property name="log" >
+ <bool>true</bool>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="Awl::Slider" name="P0slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>8</number>
+ </property>
+ <property name="maxValue" >
+ <double>10000</double>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="Awl::FloatEntry" name="P1entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>1</number>
+ </property>
+ <property name="minValue" >
+ <double>-70</double>
+ </property>
+ <property name="maxValue" >
+ <double>10</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabel1" >
+ <property name="text" >
+ <string>Decay [ms]</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="P0entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="textLabel2" >
+ <property name="text" >
+ <string>Dry Level [dB]</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="Awl::Slider" name="P2slider" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>8</number>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ <property name="minValue" >
+ <double>-70</double>
+ </property>
+ <property name="maxValue" >
+ <double>10</double>
+ </property>
+ <property name="log" >
+ <bool>true</bool>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="Awl::FloatEntry" name="P2entry" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id" >
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="textLabel3" >
+ <property name="text" >
+ <string>Wet Level [dB]</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item rowspan="3" row="1" column="0" >
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="Awl::CheckBox" name="P3checkbox" >
+ <property name="text" >
+ <string>Comb filters</string>
+ </property>
+ <property name="id" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::CheckBox" name="P4checkbox" >
+ <property name="text" >
+ <string>Allpass filters</string>
+ </property>
+ <property name="id" >
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::CheckBox" name="P5checkbox" >
+ <property name="text" >
+ <string>Bandpass filters</string>
+ </property>
+ <property name="id" >
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="1" >
+ <widget class="Awl::CheckBox" name="P6checkbox" >
+ <property name="text" >
+ <string>Enhanced stereo</string>
+ </property>
+ <property name="id" >
+ <number>6</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="textLabel1_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Preset:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::ComboBox" name="P7presetCombo" >
+ <property name="id" >
+ <number>7</number>
+ </property>
+ <item>
+ <property name="text" >
+ <string>AfterBurn</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>AfterBurn (Long)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Ambience</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Ambience (Thick)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Ambience (Thick) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Cathedral</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Cathedral - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Drum Chamber</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Garage</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Garage (Bright)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Gymnasium</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Gymnasium (Bright)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Gymnasium (Bright) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Hall (Small)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Hall (Medium)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Hall (Large)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Hall (Large) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plate (Small)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plate (Medium)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plate (Large)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Plate (Large) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pulse Chamber</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pulse Chamber (Reverse)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Resonator (96 ms)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Resonator (152 ms)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Resonator (208 ms)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Room (Small)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Room (Medium)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Room (Large)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Room (Large) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Slap Chamber</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Slap Chamber - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Slap Chamber (Bright)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Slap Chamber (Bright) HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Smooth Hall (Small)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Smooth Hall (Medium)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Smooth Hall (Large)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Smooth Hall (Large) - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Vocal Plate</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Vocal Plate - HD</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Warble Chamber</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Warehoouse</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Warehouse - HD</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;/head>&lt;body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;">&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:15pt;">TAP Reverberator&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>Awl::Slider</class>
+ <extends></extends>
+ <header>awl/slider.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::ComboBox</class>
+ <extends></extends>
+ <header>awl/combobox.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::CheckBox</class>
+ <extends></extends>
+ <header>awl/checkbox.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>Awl::FloatEntry</class>
+ <extends></extends>
+ <header>awl/floatentry.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/share/plugins/CMakeLists.txt b/muse_qt4_evolution/share/plugins/CMakeLists.txt
new file mode 100644
index 00000000..4df55561
--- /dev/null
+++ b/muse_qt4_evolution/share/plugins/CMakeLists.txt
@@ -0,0 +1,22 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+install_files ( /share/${MusE_INSTALL_NAME}/plugins .*\\.ui )
+
diff --git a/muse_qt4_evolution/share/templates/CMakeLists.txt b/muse_qt4_evolution/share/templates/CMakeLists.txt
new file mode 100644
index 00000000..9c8a8c17
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/CMakeLists.txt
@@ -0,0 +1,30 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+install_files ( /share/${MusE_INSTALL_NAME}/templates .med
+ audio.med
+ empty.med
+ default.med
+ midiGM.med
+ monorecord.med
+ synti.med
+ ns5r.med
+ )
+
diff --git a/muse_qt4_evolution/share/templates/audio.med b/muse_qt4_evolution/share/templates/audio.med
new file mode 100644
index 00000000..e35752d8
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/audio.med
@@ -0,0 +1,395 @@
+<?xml version="1.0"?>
+<muse version="2.1">
+ <configuration>
+ <txDeviceId>127</txDeviceId>
+ <rxDeviceId>127</rxDeviceId>
+ <mtctype>1</mtctype>
+ <mtcoffset>
+ 00:00:00:00:00
+ </mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <geometryMain x="668" y="0" w="800" h="663" />
+ <geometryTransport x="0" y="0" w="763" h="108" />
+ <mixer1Visible>1</mixer1Visible>
+ <mixer2Visible>0</mixer2Visible>
+ <mixer1>
+ <geometry x="4" y="22" w="660" h="660" />
+ <showMidiTracks>0</showMidiTracks>
+ <showOutputTracks>1</showOutputTracks>
+ <showWaveTracks>1</showWaveTracks>
+ <showGroupTracks>1</showGroupTracks>
+ <showInputTracks>1</showInputTracks>
+ <showAuxTracks>1</showAuxTracks>
+ <showSyntiTracks>1</showSyntiTracks>
+ <showMidiInPorts>1</showMidiInPorts>
+ <showMidiOutPorts>1</showMidiOutPorts>
+ <showMidiChannels>1</showMidiChannels>
+ </mixer1>
+ </configuration>
+ <song>
+ <comment></comment>
+ <cpos>0</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <len>0</len>
+ <wavetrack>
+ <name>Track 1</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <autoRead>0</autoRead>
+ <selected>1</selected>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 2</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 3</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 4</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </wavetrack>
+ <AudioGroup>
+ <name>Group 1</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioGroup>
+ <AudioGroup>
+ <name>Group 2</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioGroup>
+ <AudioAux>
+ <name>Aux 1</name>
+ <mute>0</mute>
+ <channels>2</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioAux>
+ <AudioAux>
+ <name>Aux 2</name>
+ <mute>0</mute>
+ <channels>2</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioAux>
+ <AudioInput>
+ <name>Input 1</name>
+ <mute>1</mute>
+ <channels>2</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <controller id="3" name="AuxSend-1" cur="0" type="0" min="0" max="1" default="0"/>
+ <controller id="4" name="AuxSend-2" cur="0" type="0" min="0" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioInput>
+ <AudioOutput>
+ <name>Out 1</name>
+ <mute>0</mute>
+ <channels>2</channels>
+ <locked>1</locked>
+ <autoRead>0</autoRead>
+ <controller id="0" name="Volume" cur="1" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioOutput>
+ <arranger>
+ <TrackConf type="0">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="1">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="2">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="3">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="4">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="5">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="6">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="7"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="7">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="10"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="8">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="9">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="9"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="11"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="10">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <info>0</info>
+ <strip>1</strip>
+ <hmag>0.04</hmag>
+ <vmag>1</vmag>
+ <hpos>0</hpos>
+ <vpos>0</vpos>
+ <splitter>
+ <size>144</size>
+ <size>578</size>
+ </splitter>
+ </arranger>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ </song>
+ <toplevels>
+ </toplevels>
+ </muse>
diff --git a/muse_qt4_evolution/share/templates/default.med b/muse_qt4_evolution/share/templates/default.med
new file mode 100644
index 00000000..8edbfd8d
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/default.med
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<muse version="2.0">
+ <configuration>
+ <midiInputDevice>0</midiInputDevice>
+ <midiInputChannel>0</midiInputChannel>
+ <midiRecordType>0</midiRecordType>
+ <midiThruType>0</midiThruType>
+ <midiFilterCtrl1>0</midiFilterCtrl1>
+ <midiFilterCtrl2>0</midiFilterCtrl2>
+ <midiFilterCtrl3>0</midiFilterCtrl3>
+ <midiFilterCtrl4>0</midiFilterCtrl4>
+ <txDeviceId>127</txDeviceId>
+ <rxDeviceId>127</rxDeviceId>
+ <txSyncPort>1</txSyncPort>
+ <rxSyncPort>-1</rxSyncPort>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <mixerVisible>0</mixerVisible>
+ <sequencer>
+ <metronom>
+ <premeasures>2</premeasures>
+ <measurepitch>63</measurepitch>
+ <measurevelo>127</measurevelo>
+ <beatpitch>63</beatpitch>
+ <beatvelo>70</beatvelo>
+ <channel>9</channel>
+ <port>0</port>
+ <precountEnable>0</precountEnable>
+ <fromMastertrack>0</fromMastertrack>
+ <signatureZ>4</signatureZ>
+ <signatureN>4</signatureN>
+ <prerecord>0</prerecord>
+ <preroll>0</preroll>
+ <midiClickEnable>1</midiClickEnable>
+ <audioClickEnable>0</audioClickEnable>
+ </metronom>
+ <rcEnable>0</rcEnable>
+ <rcStop>28</rcStop>
+ <rcRecord>31</rcRecord>
+ <rcGotoLeft>33</rcGotoLeft>
+ <rcPlay>29</rcPlay>
+ </sequencer>
+ <drumedit>
+ <quant>96</quant>
+ <raster>96</raster>
+ <width>600</width>
+ <height>400</height>
+ <dlistwidth>50</dlistwidth>
+ <dcanvaswidth>300</dcanvaswidth>
+ <to>0</to>
+ </drumedit>
+ <pianoroll>
+ <quant>96</quant>
+ <raster>96</raster>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <to>0</to>
+ <width>600</width>
+ <height>400</height>
+ <colormode>0</colormode>
+ </pianoroll>
+ <masteredit>
+ <raster>0</raster>
+ </masteredit>
+ <waveedit>
+ <bgcolor r="200" g="200" b="200"></bgcolor>
+ <width>600</width>
+ <height>400</height>
+ </waveedit>
+ </configuration>
+ <song>
+ <automation>1</automation>
+ <cpos>0</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <loop>0</loop>
+ <punchin>0</punchin>
+ <punchout>0</punchout>
+ <record>0</record>
+ <solo>0</solo>
+ <type>0</type>
+ <recmode>0</recmode>
+ <cycle>0</cycle>
+ <click>0</click>
+ <quantize>0</quantize>
+ <len>0</len>
+ <follow>1</follow>
+ <AudioOutput>
+ <name>Out 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <selected>1</selected>
+ <prefader>0</prefader>
+ <automation>1</automation>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioOutput>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ <drummap>
+ </drummap>
+ </song>
+ </muse>
diff --git a/muse_qt4_evolution/share/templates/empty.med b/muse_qt4_evolution/share/templates/empty.med
new file mode 100644
index 00000000..87b3901b
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/empty.med
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<muse version="2.1">
+ <configuration>
+ </configuration>
+ <song>
+ </song>
+ <toplevels>
+ </toplevels>
+ </muse>
+
diff --git a/muse_qt4_evolution/share/templates/midiGM.med b/muse_qt4_evolution/share/templates/midiGM.med
new file mode 100644
index 00000000..ebd6333b
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/midiGM.med
@@ -0,0 +1,409 @@
+<?xml version="1.0"?>
+<muse version="2.0">
+ <configuration>
+ <midiInputDevice>0</midiInputDevice>
+ <midiInputChannel>0</midiInputChannel>
+ <midiRecordType>0</midiRecordType>
+ <midiThruType>0</midiThruType>
+ <midiFilterCtrl1>0</midiFilterCtrl1>
+ <midiFilterCtrl2>0</midiFilterCtrl2>
+ <midiFilterCtrl3>0</midiFilterCtrl3>
+ <midiFilterCtrl4>0</midiFilterCtrl4>
+ <txDeviceId>127</txDeviceId>
+ <rxDeviceId>127</rxDeviceId>
+ <txSyncPort>1</txSyncPort>
+ <rxSyncPort>-1</rxSyncPort>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <mixerVisible>0</mixerVisible>
+ <arranger>
+ <info>1</info>
+ <split>298 764 </split>
+ <list>
+ <header> 7 6 5 4 3 2 1 0 </header>
+ </list>
+ <xpos>0</xpos>
+ <xmag>266</xmag>
+ <ypos>1</ypos>
+ </arranger>
+ <sequencer>
+ <metronom>
+ <premeasures>2</premeasures>
+ <measurepitch>63</measurepitch>
+ <measurevelo>127</measurevelo>
+ <beatpitch>63</beatpitch>
+ <beatvelo>70</beatvelo>
+ <channel>9</channel>
+ <port>0</port>
+ <precountEnable>1</precountEnable>
+ <fromMastertrack>1</fromMastertrack>
+ <signatureZ>4</signatureZ>
+ <signatureN>4</signatureN>
+ <prerecord>0</prerecord>
+ <preroll>0</preroll>
+ <midiClickEnable>1</midiClickEnable>
+ <audioClickEnable>0</audioClickEnable>
+ </metronom>
+ <rcEnable>0</rcEnable>
+ <rcStop>28</rcStop>
+ <rcRecord>31</rcRecord>
+ <rcGotoLeft>33</rcGotoLeft>
+ <rcPlay>29</rcPlay>
+ <midiport idx="0">
+ <instrument>GM</instrument>
+ <channel idx="0">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="1">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="2">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="3">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="4">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="5">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="6">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="7">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="8">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="9">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="10">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="11">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="12">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="13">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="14">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ <channel idx="15">
+ <controller id="7">
+ <val>0</val>
+ </controller>
+ <controller id="10">
+ <val>0</val>
+ </controller>
+ <controller id="262145">
+ <val>0</val>
+ </controller>
+ </channel>
+ </midiport>
+ </sequencer>
+ <drumedit>
+ <quant>96</quant>
+ <raster>96</raster>
+ <width>600</width>
+ <height>400</height>
+ <dlistwidth>50</dlistwidth>
+ <dcanvaswidth>300</dcanvaswidth>
+ </drumedit>
+ <pianoroll>
+ <quant>96</quant>
+ <raster>96</raster>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <to>0</to>
+ <width>600</width>
+ <height>400</height>
+ <colormode>0</colormode>
+ </pianoroll>
+ <masteredit>
+ <raster>0</raster>
+ </masteredit>
+ <waveedit>
+ <bgcolor r="0" g="0" b="0"></bgcolor>
+ <width>600</width>
+ <height>400</height>
+ </waveedit>
+ </configuration>
+ <song>
+ <automation>0</automation>
+ <cpos>0</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <loop>0</loop>
+ <punchin>0</punchin>
+ <punchout>0</punchout>
+ <record>0</record>
+ <solo>0</solo>
+ <type>1</type>
+ <recmode>0</recmode>
+ <cycle>0</cycle>
+ <click>0</click>
+ <quantize>0</quantize>
+ <len>0</len>
+ <follow>1</follow>
+ <miditrack>
+ <name>Track 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>0</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <selected>1</selected>
+ <device>0</device>
+ <channel>0</channel>
+ <inportMap>65535</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </miditrack>
+ <miditrack>
+ <name>Track 2</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>0</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <device>0</device>
+ <channel>0</channel>
+ <inportMap>65535</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </miditrack>
+ <miditrack>
+ <name>Track 3</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>0</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <device>0</device>
+ <channel>0</channel>
+ <inportMap>65535</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </miditrack>
+ <miditrack>
+ <name>Track 4</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>0</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <device>0</device>
+ <channel>0</channel>
+ <inportMap>65535</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </miditrack>
+ <drumtrack>
+ <name>Track 5</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>0</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <device>0</device>
+ <channel>9</channel>
+ <inportMap>65535</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </drumtrack>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ <drummap>
+ </drummap>
+ </song>
+ </muse>
diff --git a/muse_qt4_evolution/share/templates/monorecord.med b/muse_qt4_evolution/share/templates/monorecord.med
new file mode 100644
index 00000000..5b9c57a0
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/monorecord.med
@@ -0,0 +1,430 @@
+<?xml version="1.0"?>
+<muse version="2.0">
+ <configuration>
+ <midiInputDevice>0</midiInputDevice>
+ <midiInputChannel>0</midiInputChannel>
+ <midiRecordType>0</midiRecordType>
+ <midiThruType>0</midiThruType>
+ <midiFilterCtrl1>0</midiFilterCtrl1>
+ <midiFilterCtrl2>0</midiFilterCtrl2>
+ <midiFilterCtrl3>0</midiFilterCtrl3>
+ <midiFilterCtrl4>0</midiFilterCtrl4>
+ <txDeviceId>127</txDeviceId>
+ <rxDeviceId>127</rxDeviceId>
+ <txSyncPort>1</txSyncPort>
+ <rxSyncPort>-1</rxSyncPort>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <arranger>
+ <info>0</info>
+ <split>298 296 </split>
+ <list>
+ <header> 7 6 5 4 3 2 1 0 </header>
+ </list>
+ <xpos>0</xpos>
+ <xmag>266</xmag>
+ <ypos>1</ypos>
+ </arranger>
+ <sequencer>
+ <metronom>
+ <premeasures>2</premeasures>
+ <measurepitch>63</measurepitch>
+ <measurevelo>127</measurevelo>
+ <beatpitch>63</beatpitch>
+ <beatvelo>70</beatvelo>
+ <channel>9</channel>
+ <port>0</port>
+ <precountEnable>1</precountEnable>
+ <fromMastertrack>1</fromMastertrack>
+ <signatureZ>4</signatureZ>
+ <signatureN>4</signatureN>
+ <prerecord>0</prerecord>
+ <preroll>0</preroll>
+ <midiClickEnable>1</midiClickEnable>
+ <audioClickEnable>0</audioClickEnable>
+ </metronom>
+ <rcEnable>0</rcEnable>
+ <rcStop>28</rcStop>
+ <rcRecord>31</rcRecord>
+ <rcGotoLeft>33</rcGotoLeft>
+ <rcPlay>29</rcPlay>
+ <midiport idx="0">
+ <instrument>GM</instrument>
+ <name>TASCAM US-X2Y Port 0</name>
+ <record>1</record>
+ <channel idx="0">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="1">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="2">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="3">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="4">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="5">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="6">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="7">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="8">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="9">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="10">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="11">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="12">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="13">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="14">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="15">
+ <controller>1</controller>
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>11</controller>
+ <controller>64</controller>
+ <controller>91</controller>
+ <controller>93</controller>
+ <controller>120</controller>
+ <controller>121</controller>
+ <controller>123</controller>
+ <controller>262144</controller>
+ <controller>262145</controller>
+ </channel>
+ </midiport>
+ </sequencer>
+ <drumedit>
+ <quant>96</quant>
+ <raster>96</raster>
+ <width>600</width>
+ <height>400</height>
+ <dlistwidth>50</dlistwidth>
+ <dcanvaswidth>300</dcanvaswidth>
+ </drumedit>
+ <pianoroll>
+ <quant>96</quant>
+ <raster>96</raster>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <to>0</to>
+ <width>600</width>
+ <height>400</height>
+ <colormode>0</colormode>
+ </pianoroll>
+ <masteredit>
+ <raster>0</raster>
+ </masteredit>
+ <waveedit>
+ <bgcolor r="0" g="0" b="0"></bgcolor>
+ <width>600</width>
+ <height>400</height>
+ </waveedit>
+ </configuration>
+ <song>
+ <automation>0</automation>
+ <cpos>0</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <loop>0</loop>
+ <punchin>0</punchin>
+ <punchout>0</punchout>
+ <record>0</record>
+ <solo>0</solo>
+ <type>0</type>
+ <recmode>0</recmode>
+ <cycle>0</cycle>
+ <click>0</click>
+ <quantize>0</quantize>
+ <len>0</len>
+ <follow>1</follow>
+ <wavetrack>
+ <name>Track 1</name>
+ <record>1</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <auxSend idx="0">0.000000</auxSend>
+ <auxSend idx="1">0.000000</auxSend>
+ <controller id="0" cur="1.021645">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ </wavetrack>
+ <AudioInput>
+ <name>Input 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <selected>1</selected>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <auxSend idx="0">0.000000</auxSend>
+ <auxSend idx="1">0.000000</auxSend>
+ <controller id="0" cur="1.021645">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ </AudioInput>
+ <AudioOutput>
+ <name>Out 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <controller id="0" cur="1.301517">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ </AudioOutput>
+ <Route>
+ <srcNode>alsa_pcm:capture_1</srcNode>
+ <dstNode>1:Input 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>Input 1</srcNode>
+ <dstNode>Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>Input 1</srcNode>
+ <dstNode>Track 1</dstNode>
+ </Route>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ <drummap>
+ </drummap>
+ </song>
+ <toplevels>
+ <audiomixer>
+ <topwin>
+ <geometry x="1216" y="30" w="180" h="503">
+ </geometry>
+ </topwin>
+ </audiomixer>
+ </toplevels>
+ </muse>
diff --git a/muse_qt4_evolution/share/templates/ns5r.med b/muse_qt4_evolution/share/templates/ns5r.med
new file mode 100644
index 00000000..471246ea
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/ns5r.med
@@ -0,0 +1,266 @@
+<?xml version="1.0"?>
+<muse version="2.1">
+ <configuration>
+ <mtctype>1</mtctype>
+ <mtcoffset>
+ 00:00:00:00:00
+ </mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <geometryMain x="772" y="738" w="1071" h="394" />
+ <geometryTransport x="787" y="923" w="636" h="99" />
+ <mixer1Visible>1</mixer1Visible>
+ <mixer2Visible>0</mixer2Visible>
+ <mixer1>
+ <geometry x="425" y="469" w="101" h="661" />
+ <showMidiTracks>1</showMidiTracks>
+ <showOutputTracks>1</showOutputTracks>
+ <showWaveTracks>1</showWaveTracks>
+ <showGroupTracks>1</showGroupTracks>
+ <showInputTracks>1</showInputTracks>
+ <showSyntiTracks>1</showSyntiTracks>
+ <showMidiInPorts>1</showMidiInPorts>
+ <showMidiOutPorts>1</showMidiOutPorts>
+ <showMidiChannels>0</showMidiChannels>
+ </mixer1>
+ </configuration>
+ <song>
+ <comment></comment>
+ <createDate>2006-10-24T21:21:56</createDate>
+ <LenInSec>0</LenInSec>
+ <cpos>0</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <len>0</len>
+ <MidiOutPort>
+ <name>MidiOut 1</name>
+ <channels>1</channels>
+ <selected>1</selected>
+ <controller id="262147" name="MasterVolume" cur="-1" type="5" min="0" max="16383" default="12288"/>
+ <height>31</height>
+ <instrument>Korg-NS5R</instrument>
+ <sendSync>0</sendSync>
+ <deviceId>127</deviceId>
+ </MidiOutPort>
+ <Route>
+ <src type="TRACK" name="MidiOut 1"/>
+ <dst type="MIDIPORT" name="ESI-M8U MIDI 5"/>
+ </Route>
+ <arranger>
+ <TrackConf type="0">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="1">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="2">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="3">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="4">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="5">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="7"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="6">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="10"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="7">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="8">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="9"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="11"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="9">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <info>1</info>
+ <strip>0</strip>
+ <hmag>0.04</hmag>
+ <vmag>1</vmag>
+ <hpos>0</hpos>
+ <vpos>0</vpos>
+ <raster>0</raster>
+ <splitter>
+ <size>144</size>
+ <size>763</size>
+ </splitter>
+ </arranger>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ </song>
+ <toplevels>
+ </toplevels>
+ </muse>
diff --git a/muse_qt4_evolution/share/templates/synti.med b/muse_qt4_evolution/share/templates/synti.med
new file mode 100644
index 00000000..f9a811b5
--- /dev/null
+++ b/muse_qt4_evolution/share/templates/synti.med
@@ -0,0 +1,353 @@
+<?xml version="1.0"?>
+<muse version="2.1">
+ <configuration>
+ <txDeviceId>127</txDeviceId>
+ <rxDeviceId>127</rxDeviceId>
+ <mtctype>1</mtctype>
+ <mtcoffset>
+ 00:00:00:00:00
+ </mtcoffset>
+ <extSync>0</extSync>
+ <genMTCSync>0</genMTCSync>
+ <genMCSync>0</genMCSync>
+ <genMMC>0</genMMC>
+ <acceptMTC>0</acceptMTC>
+ <acceptMMC>1</acceptMMC>
+ <acceptMC>1</acceptMC>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <geometryMain x="0" y="0" w="800" h="560" />
+ <geometryTransport x="0" y="0" w="763" h="108" />
+ <mixer1Visible>0</mixer1Visible>
+ <mixer2Visible>0</mixer2Visible>
+ </configuration>
+ <song>
+ <comment></comment>
+ <cpos>12288</cpos>
+ <rpos>0</rpos>
+ <lpos>0</lpos>
+ <master>1</master>
+ <len>18432</len>
+ <miditrack>
+ <name>Track 1</name>
+ <mute>0</mute>
+ <height>31</height>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="18432"/>
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ </miditrack>
+ <AudioOutput>
+ <name>Out 1</name>
+ <mute>0</mute>
+ <channels>2</channels>
+ <controller id="0" name="Volume" cur="1.02164" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ </AudioOutput>
+ <SynthI>
+ <name>fluid-1</name>
+ <mute>0</mute>
+ <off>1</off>
+ <channels>2</channels>
+ <locked>1</locked>
+ <controller id="0" name="Volume" cur="1.41091" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ <class>fluid</class>
+ <guiVisible>0</guiVisible>
+ </SynthI>
+ <SynthI>
+ <name>organ-1</name>
+ <mute>0</mute>
+ <channels>1</channels>
+ <selected>1</selected>
+ <controller id="0" name="Volume" cur="1.02164" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="-0.04" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ <class>organ</class>
+ <guiVisible>0</guiVisible>
+ <geometry x="0" y="0" w="1" h="1" />
+ </SynthI>
+ <SynthI>
+ <name>s1-1</name>
+ <mute>0</mute>
+ <off>1</off>
+ <channels>1</channels>
+ <locked>1</locked>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ <class>s1</class>
+ </SynthI>
+ <SynthI>
+ <name>vam-1</name>
+ <mute>0</mute>
+ <off>1</off>
+ <channels>1</channels>
+ <controller id="0" name="Volume" cur="0" type="2" min="-3.00927" max="0.301887" default="0"/>
+ <controller id="1" name="Pan" cur="0" type="0" min="-1" max="1" default="0"/>
+ <height>31</height>
+ <prefader>0</prefader>
+ <class>vam</class>
+ <guiVisible>0</guiVisible>
+ <geometry x="0" y="0" w="692" h="519" />
+ </SynthI>
+ <Route>
+ <srcNode type="SYNTIPORT">fluid-1</srcNode>
+ <dstNode type="TRACK">Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode type="SYNTIPORT">organ-1</srcNode>
+ <dstNode type="TRACK">Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode type="SYNTIPORT">s1-1</srcNode>
+ <dstNode type="TRACK">Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode type="SYNTIPORT">vam-1</srcNode>
+ <dstNode type="TRACK">Out 1</dstNode>
+ </Route>
+ <arranger>
+ <TrackConf type="0">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="1">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="2">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="3">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="4">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="5">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="2"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="6">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="4"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ <element id="8"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="7"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="7">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="10"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="8">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="9">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="9"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ <group>
+ <element id="11"/>
+ </group>
+ </TrackConf>
+ <TrackConf type="10">
+ <group>
+ </group>
+ <group>
+ <element id="0"/>
+ </group>
+ <group>
+ <element id="1"/>
+ <element id="3"/>
+ </group>
+ <group>
+ <element id="5"/>
+ <element id="6"/>
+ </group>
+ </TrackConf>
+ <info>0</info>
+ <strip>1</strip>
+ <hmag>0.04</hmag>
+ <vmag>1</vmag>
+ <hpos>0</hpos>
+ <vpos>0</vpos>
+ <splitter>
+ <size>144</size>
+ <size>578</size>
+ </splitter>
+ </arranger>
+ <tempolist fix="500000">
+ <tempo at="21474837">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ </song>
+ <toplevels>
+ </toplevels>
+ </muse>
diff --git a/muse_qt4_evolution/share/wallpapers/CMakeLists.txt b/muse_qt4_evolution/share/wallpapers/CMakeLists.txt
new file mode 100644
index 00000000..f098c244
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/CMakeLists.txt
@@ -0,0 +1,22 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+install_files ( /share/${MusE_INSTALL_NAME}/wallpapers .*\\.gif )
+install_files ( /share/${MusE_INSTALL_NAME}/wallpapers .*\\.jpg )
diff --git a/muse_qt4_evolution/share/wallpapers/gray.gif b/muse_qt4_evolution/share/wallpapers/gray.gif
new file mode 100644
index 00000000..cb30e856
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/gray.gif
Binary files differ
diff --git a/muse_qt4_evolution/share/wallpapers/gray_rock.gif b/muse_qt4_evolution/share/wallpapers/gray_rock.gif
new file mode 100644
index 00000000..dcf1a19b
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/gray_rock.gif
Binary files differ
diff --git a/muse_qt4_evolution/share/wallpapers/gray_stucco.gif b/muse_qt4_evolution/share/wallpapers/gray_stucco.gif
new file mode 100644
index 00000000..bcebdb02
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/gray_stucco.gif
Binary files differ
diff --git a/muse_qt4_evolution/share/wallpapers/paper1.jpg b/muse_qt4_evolution/share/wallpapers/paper1.jpg
new file mode 100644
index 00000000..1d4923e8
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/paper1.jpg
Binary files differ
diff --git a/muse_qt4_evolution/share/wallpapers/paper2.jpg b/muse_qt4_evolution/share/wallpapers/paper2.jpg
new file mode 100644
index 00000000..a692fc41
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/paper2.jpg
Binary files differ
diff --git a/muse_qt4_evolution/share/wallpapers/stone1.gif b/muse_qt4_evolution/share/wallpapers/stone1.gif
new file mode 100644
index 00000000..f45407cc
--- /dev/null
+++ b/muse_qt4_evolution/share/wallpapers/stone1.gif
Binary files differ
diff --git a/muse_qt4_evolution/synti/CMakeLists.txt b/muse_qt4_evolution/synti/CMakeLists.txt
new file mode 100644
index 00000000..7e5274ac
--- /dev/null
+++ b/muse_qt4_evolution/synti/CMakeLists.txt
@@ -0,0 +1,42 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+include_directories(
+ .
+ ${CMAKE_CURRENT_BINARY}
+ ${PROJECT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/muse
+ ${PROJECT_SOURCE_DIR}/muse/widgets
+ ${PROJECT_SOURCE_DIR}/synti
+ )
+
+set (SubDirs libsynti s1 organ deicsonze simpledrums vam mus)
+
+if (ENABLE_ZYNADDSUBFX)
+ set (SubDirs ${SubDirs} zynaddsubfx)
+endif (ENABLE_ZYNADDSUBFX)
+
+if (ENABLE_FLUID)
+ set (SubDirs ${SubDirs} fluid fluidsynth )
+endif (ENABLE_FLUID)
+
+subdirs(${SubDirs})
+
+
diff --git a/muse_qt4_evolution/synti/README b/muse_qt4_evolution/synti/README
new file mode 100644
index 00000000..cbda0fd4
--- /dev/null
+++ b/muse_qt4_evolution/synti/README
@@ -0,0 +1,14 @@
+s1 is a simple demo of the MusE software synthesizer interface.
+ It has no gui and no parameters to set.
+
+organ is a demo synthesizer which shows how to implement
+ polyphony and a gui
+
+fluid is demo synthesizer utilizing the fluid sythesizer library
+
+mus is a program which can load any of the MusE synthsizer plugins
+ turning them into standalone synthesizer with a JACK audio and
+ midi interface
+
+
+
diff --git a/muse_qt4_evolution/synti/deicsonze/ARCH_ALIN b/muse_qt4_evolution/synti/deicsonze/ARCH_ALIN
new file mode 100644
index 00000000..87092d6f
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/ARCH_ALIN
@@ -0,0 +1,24945 @@
+* TX81Z/DX11 Voice Archive
+* $Header: /cvsroot/lmuse/muse/synti/deicsonze/ARCH_ALIN,v 1.3 2005/07/14 10:25:45 a-lin Exp $
+* Copyright 1991 by Bryan Sutula. See README file for restrictions.
+
+
+--Bank 1
+
+* CATEGORY ORCHESTRA
+
+* SUBCATEGORY Orchestra
+
+** Name: EleOrchtra
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 03 03 04 0b 00 02 4e 00 02 18 03 03 05 08 00 02 51 08 00 11 07 03 07 0b
+00 05 63 04 06 09 10 03 05 0f 00 06 63 08 05 34 21 23 0f 00 12 18 05 04 00
+63 63 63 00 00 32 00 45 6c 65 4f 72 63 68 74 72 61 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EleOrchtra
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 03 03 04 0b 00 00 4e 00 02 18 03 03 05 08 00 00 51 08 00 11 07 03 07 0b
+00 00 63 04 06 09 10 03 05 0f 00 00 63 08 05 34 21 23 0f 00 12 18 05 04 00
+63 63 63 00 00 32 00 45 6c 65 4f 72 63 68 74 72 61 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Orchestra*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 1f 00 02 0f 00 01 4b 0a 08 07 1f 00 05 0f 0b 00 61 09 0e 0f 1f 00 05 0f
+00 01 63 0a 08 08 1f 00 05 0f 00 00 61 05 08 3e 21 21 07 00 32 05 02 04 00
+28 63 00 00 00 32 00 4f 72 63 68 65 73 74 72 61 2a 63 63 63 32 32 32 00 00
+00 12 00 00 00 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntOrkest
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0c 03 04 0f 32 01 47 08 0d 10 0c 03 04 0f 32 02 3e 08 0a 0e 15 06 05 0f
+1e 05 5d 13 0a 1f 15 06 05 0f 1e 05 61 08 0e 24 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 4f 72 6e 74 4f 72 6b 65 73 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntOrkest
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0c 03 04 0f 32 00 47 08 0d 10 0c 03 04 0f 32 00 3e 08 0a 0e 15 06 05 0f
+1e 00 5d 13 0a 1f 15 06 05 0f 1e 00 61 08 0e 24 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 4f 72 6e 74 4f 72 6b 65 73 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Symphony
+
+** Name: Sympathy.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 03 0f 00 04 59 04 03 1f 1f 00 03 0f 00 04 5f 00 06 0f 1f 00 04 0f
+00 05 5b 08 02 0f 1f 00 04 0f 00 06 5f 08 06 2c 23 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 53 79 6d 70 61 74 68 79 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sympathy.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 03 0f 00 03 52 04 03 1f 1f 00 03 0f 00 04 55 08 06 0f 1f 00 04 0f
+00 06 5b 08 02 0f 1f 00 04 0f 00 05 5e 08 06 2c 23 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 53 79 6d 70 61 74 68 79 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sympho *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 03 04 0e 16 00 4a 03 03 0d 04 00 05 0e 1d 00 52 04 06 0c 04 03 05 0e
+0e 00 63 03 03 07 04 03 05 0e 0c 00 63 04 00 3c 23 0e 0e 00 32 11 02 04 00
+28 63 00 00 00 32 00 53 79 6d 70 68 6f 20 20 20 2a 63 63 63 32 32 32 00 06
+00 18 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony *
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 04 00 01 0e 00 49 4d 04 03 11 17 03 04 0f 00 00 45 04 06 0c 08 03 05 0f
+00 78 63 04 03 0a 04 03 05 0e 00 78 63 03 00 3c 1f 0c 10 00 4e 05 02 04 00
+28 0c 07 00 00 32 19 53 79 6d 70 68 6f 6e 79 20 2a 63 63 63 32 32 32 00 08
+30 38 00 08 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 13 07 02 0e 0a 04 59 13 12 0e 09 00 05 0e 00 04 51 08 03 18 09 05 04 0e
+0a 04 4b 0d 0b 0c 0d 00 05 0d 00 05 63 08 03 64 26 18 0f 00 26 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 31 63 63 63 32 32 32 00 10
+00 20 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 13 07 02 0e 0a 02 59 13 12 0e 09 00 05 0e 00 01 51 08 03 18 09 05 04 0e
+0a 01 4b 0d 0b 0c 0d 00 05 0d 00 00 63 08 03 64 26 18 0f 00 26 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 31 63 63 63 32 32 32 00 10
+00 20 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 05 00 07 0e 41 01 51 08 05 19 13 06 04 0e 0a 03 4d 19 0a 0c 0a 00 07 0f
+0a 05 62 08 01 1f 0a 06 04 0b 00 02 4d 0d 00 34 22 18 0f 00 22 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 32 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 05 00 07 0e 41 01 51 08 05 19 13 06 04 0e 0a 00 4d 19 0a 0c 0a 00 07 0f
+0a 00 62 08 01 1f 0a 06 04 0e 00 00 4d 0d 00 34 22 18 0f 00 22 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 32 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 05 00 04 0e 29 03 4c 04 01 0f 0c 01 05 0e 0a 03 39 08 02 0d 0a 00 06 0e
+0a 03 5d 08 03 12 08 03 06 0d 00 06 58 08 01 2c 1e 00 06 00 32 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 05 00 04 0e 29 00 4c 04 01 0f 0c 01 05 0e 0a 00 39 08 02 0d 0a 00 06 0e
+0a 00 5d 08 03 12 08 03 06 0d 00 00 58 08 01 2c 1e 00 06 00 32 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1a 05 07 0d 34 02 49 08 0c 17 0c 00 07 0f 0a 03 4b 13 05 15 0d 05 07 0e
+34 05 63 08 0b 0c 0a 00 05 0f 0a 03 63 08 01 74 1e 0b 09 00 32 00 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 34 63 63 63 32 32 32 00 30
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1a 05 07 0d 34 00 49 08 0c 17 0d 00 07 0f 0a 00 3f 13 05 15 0d 05 07 0e
+34 00 63 08 0b 0c 0a 00 05 0f 0a 00 5a 08 01 74 1e 0b 09 00 32 00 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 34 63 63 63 32 32 32 00 30
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 03 06 05 0a 29 03 48 08 14 0c 0a 08 06 09 0a 00 4a 0d 0a 0d 0b 06 05 09
+1a 03 61 0a 04 0c 09 08 07 09 15 03 63 08 01 35 1e 1a 0c 00 22 00 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 35 63 63 63 32 32 32 00 40
+00 40 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 03 06 04 0f 29 00 48 08 14 0c 0a 01 05 0e 0a 00 4a 08 0a 0d 0b 06 04 0f
+1a 00 4f 0a 04 0c 09 00 04 0e 15 00 5e 08 01 35 1e 1a 0c 00 22 00 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 35 63 63 63 32 32 32 00 40
+00 10 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.6
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 02 05 05 00 40 4c 08 0a 1a 05 00 07 0e 0a 6d 50 19 04 0b 0a 03 05 0f
+00 40 56 08 10 17 0a 00 06 0f 14 44 5b 0d 05 24 1d 19 3d 25 26 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 36 63 63 63 32 32 32 00 30
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.6
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 0a 02 05 05 00 40 4c 08 0a 0a 05 00 07 0e 0a 41 35 13 04 13 08 02 05 0f
+00 40 56 08 10 10 0a 00 06 0f 14 40 5b 08 05 24 1c 00 2a 0b 26 0c 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 36 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0c 04 04 0e 49 03 51 04 08 12 0c 04 04 0e 0a 04 4d 08 0a 0e 10 00 07 0e
+49 03 5f 08 04 12 10 00 05 0e 00 04 51 08 01 2c 1c 00 0f 00 42 18 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 37 63 63 63 32 32 32 00 40
+00 10 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Symphony.7
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0c 04 04 0e 49 00 51 04 08 12 0c 04 04 0e 0a 00 4d 08 0a 0e 10 00 07 0e
+49 00 5f 08 04 12 10 00 05 0e 00 00 51 08 01 2c 1c 00 0f 00 42 18 04 04 00
+63 32 63 00 00 32 00 53 79 6d 70 68 6f 6e 79 2e 37 63 63 63 32 32 32 00 40
+00 10 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* CATEGORY WIND
+
+* SUBCATEGORY Brass
+
+** Name: AnlgBrass1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 07 00 07 0e 0f 04 55 08 0b 0d 1f 00 07 0f 0a 04 5f 04 03 0d 1f 00 08 0f
+00 04 5f 08 03 0d 1f 00 07 0f 0a 04 5f 04 03 2e 1f 0e 10 00 52 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 07 00 07 0e 0f 01 55 08 0b 0d 1f 00 07 0f 0a 00 5f 04 03 0d 1f 00 08 0f
+00 01 5f 08 03 0d 1f 00 07 0f 0a 00 5f 04 03 2e 1f 0e 10 00 52 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 04 03 07 0c 00 02 53 04 03 0f 05 01 08 0f 00 04 56 04 03 10 1f 00 09 0f
+00 06 55 04 03 0f 05 01 08 0f 00 06 5a 04 03 2d 1f 00 05 00 62 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 32 63 63 63 32 32 32 00 00
+00 20 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 04 03 07 0c 00 02 53 04 03 0f 05 01 08 0f 00 00 56 04 03 10 1f 00 09 0f
+00 01 55 04 03 0f 05 01 08 0f 00 00 5a 04 03 2d 23 00 05 00 52 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 32 63 63 63 32 32 32 00 00
+00 20 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 07 00 07 0e 00 04 4d 04 01 0d 1f 00 07 0f 0a 02 5f 04 04 0d 1f 00 08 0f
+00 05 5f 08 04 0f 1f 00 07 0f 0a 05 5f 08 06 3e 1f 0e 10 00 52 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 33 63 63 63 32 32 32 00 20
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 07 00 07 0e 00 01 4d 08 01 0d 1f 00 07 0f 0a 01 5f 04 04 0d 1f 00 08 0f
+00 01 5f 08 04 0d 1f 00 07 0f 0a 01 5f 08 06 3e 1f 0e 10 00 52 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 33 63 63 63 32 32 32 00 20
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 04 00 07 0f 00 05 53 04 0a 0f 03 04 08 01 00 03 55 04 06 10 1f 00 09 05
+00 05 55 04 04 0f 03 04 08 01 00 05 5a 04 06 2d 23 00 00 00 62 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 34 63 63 63 32 32 32 00 30
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 04 00 07 0f 00 01 53 04 0a 0f 03 04 08 01 00 00 55 04 06 10 1f 00 09 05
+00 01 55 04 04 0f 03 04 08 01 00 00 5a 04 06 2d 23 00 00 00 62 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 34 63 63 63 32 32 32 00 30
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 0a 06 07 0c 00 02 53 04 0b 15 10 06 07 09 00 03 49 04 06 16 07 06 08 0f
+00 03 63 04 03 10 1b 06 07 0c 00 03 62 04 06 34 23 00 05 00 32 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 35 63 63 63 32 32 32 00 00
+00 20 00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 0a 06 07 0c 00 01 5b 04 0b 15 10 06 07 09 00 00 59 04 06 16 07 06 08 0f
+00 01 63 04 03 10 1b 06 07 0c 00 00 62 04 06 34 23 00 05 00 32 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 35 63 63 63 32 32 32 00 00
+00 20 00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 0a 06 07 0c 00 02 53 04 09 15 09 06 06 0b 1e 02 52 04 0d 0f 07 06 08 0f
+00 06 4c 04 04 11 0a 05 07 0c 0f 05 62 04 06 23 1e 25 25 00 32 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 36 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 0a 06 07 0c 00 02 53 04 09 15 09 06 06 0b 1e 01 52 04 0d 16 07 06 08 0f
+00 01 4c 04 04 11 0a 05 07 0c 0f 00 62 04 06 23 28 25 02 00 32 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 36 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 0a 03 0d 0c 00 02 58 04 0c 10 1f 09 0e 0d 00 02 63 04 05 16 1f 05 0d 0e
+00 05 63 04 06 10 1f 06 0e 0d 00 05 62 04 06 25 22 24 0f 00 42 0c 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 37 63 63 63 32 32 32 00 20
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 0a 03 0d 0c 00 02 58 04 0c 0f 1f 09 0e 0d 00 00 63 04 05 16 1f 05 0d 0e
+00 00 63 04 06 10 1f 06 0e 0d 00 00 62 04 06 25 22 24 0f 00 42 0c 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 37 63 63 63 32 32 32 00 20
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 06 0d 0f 00 01 61 00 0a 1f 0a 06 0d 0f 00 03 5e 00 04 1f 18 06 0d 0f
+00 03 5e 04 03 1f 18 06 0d 0f 00 03 5e 00 05 26 28 00 00 00 32 18 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 38 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 06 0d 0f 00 01 61 00 0a 1f 0a 06 0d 0f 00 00 5e 00 04 1f 18 06 0d 0f
+00 00 5e 04 03 1f 18 06 0d 0f 00 00 5e 00 05 26 28 00 00 00 32 18 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 38 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 06 0d 0f 00 01 51 04 0b 12 0c 02 0f 0a 0a 03 51 04 0e 1f 16 08 0f 0c
+00 04 63 04 06 1f 06 04 0d 0c 00 03 5e 04 03 3c 2b 00 00 00 32 0c 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 39 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBrass9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 06 0d 0f 00 01 51 04 0b 12 0c 02 0f 0a 0a 01 51 04 0e 1f 16 08 0f 0c
+00 00 63 04 06 1f 06 04 0d 0c 00 00 5e 04 03 3c 2b 00 00 00 32 0c 02 05 00
+63 63 00 00 00 32 00 41 6e 6c 67 42 72 61 73 73 39 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AtackBrass
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 6
+0f 1f 04 07 0f 00 02 53 05 0d 0f 0e 00 08 0e 00 01 5b 04 02 10 1f 00 09 0f
+00 04 61 05 05 10 05 00 07 0e 00 04 63 04 09 34 1c 15 06 00 52 11 04 04 00
+63 32 00 00 00 32 00 41 74 61 63 6b 42 72 61 73 73 63 63 63 32 32 32 00 01
+00 38 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Back Brass
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0d 1f 00 08 0f 00 00 43 04 03 0d 0e 00 0f 00 00 00 47 04 03 1f 1f 00 0f 0f
+00 00 00 04 03 0f 1f 00 08 0f 00 00 5a 04 03 3a 1e 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 42 61 63 6b 20 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 Feed
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 03 00 0a 0e 00 3c 47 04 03 12 1f 00 0a 0f 00 04 4b 08 02 12 1f 00 0a 0f
+45 04 4f 08 03 12 1f 00 0a 0f 01 05 5f 08 03 3b 23 01 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 63 42 43 31 20 46 65 65 64 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 Horns
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 09 00 08 0e 00 3b 4a 04 0b 09 1f 00 08 0f 00 24 3d 04 03 0a 1f 00 0f 0f
+00 25 21 0b 03 0e 1f 00 09 0f 00 2e 63 04 0b 3a 20 05 03 00 62 0c 02 04 00
+63 63 00 00 00 32 63 42 43 31 20 48 6f 72 6e 73 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 Horns
+** Controls: MW (LFO pitch), BC (EG amplitude)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0e 09 00 08 0e 00 00 4a 04 0b 0e 1f 00 08 0f 00 20 3d 04 03 0f 1f 00 0f 0f
+00 20 21 0b 03 12 1f 00 09 0f 00 28 63 04 0b 3a 20 05 03 00 62 0c 02 04 00
+63 63 00 00 00 32 63 42 43 31 20 48 6f 72 6e 73 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 9
+10 09 00 09 0a 00 01 50 04 09 10 0b 00 09 0a 00 01 52 04 0a 14 1f 00 0a 0f
+00 01 62 04 0a 13 1f 00 0a 0f 00 01 62 08 0c 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 09 00 09 0d 00 01 50 04 09 10 0b 00 09 0d 00 01 52 04 0d 14 1f 00 0a 0f
+00 01 62 04 0a 13 1f 00 0a 0f 00 01 62 08 0c 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 1
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0d 0d 00 07 0d 01 00 47 04 0e 0d 0d 00 0a 0f 2d 00 4f 04 0e 0d 0d 00 08 0b
+00 00 63 04 08 0d 0d 00 08 0b 00 00 63 04 09 3c 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 10
+11 0a 00 09 0a 00 02 53 04 0c 0a 08 00 08 0a 00 02 59 00 08 15 1f 00 0a 0f
+00 01 62 04 0e 12 1f 00 09 0f 00 01 63 00 0a 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 0d 00 09 0d 00 02 53 04 0c 0d 08 00 08 0d 00 02 59 00 08 15 1f 00 0a 0f
+00 01 62 04 0e 12 1f 00 09 0f 00 01 63 00 0a 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 2
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0c 07 03 04 0f 16 00 4e 00 06 0e 07 02 06 0e 21 00 54 00 06 17 0d 00 04 0f
+00 00 5c 00 08 16 0d 00 06 0f 00 00 5c 00 08 34 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 3
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+19 05 00 05 0e 0a 00 51 04 06 1f 04 00 05 0a 00 00 37 04 00 14 0b 0f 0a 0f
+00 00 50 04 06 14 1f 00 0a 0f 00 00 63 04 00 32 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 4
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 0a 00 05 0d 00 00 49 04 03 15 1f 00 0a 0f 00 00 5c 04 03 15 1f 00 0a 0f
+00 00 5c 04 03 15 1f 00 0a 0f 00 00 5c 04 03 3d 23 14 0a 00 62 0c 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 5
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+11 0e 00 05 0e 0a 00 4a 04 03 11 11 00 09 0c 00 00 46 04 03 1f 10 00 0f 05
+20 00 34 0b 0b 15 1f 00 0b 0f 00 00 60 04 0b 3a 23 1b 0a 00 62 0c 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 6
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 13 00 03 0b 00 00 55 04 03 1f 15 11 03 0c 1e 00 4f 10 03 1f 1f 00 03 0f
+1e 00 46 04 03 1f 1f 00 05 0f 00 00 5a 04 03 3b 23 0f 10 00 62 0c 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 7
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 11 13 0c 0b 0f 00 48 22 03 1f 0b 00 03 0f 1e 00 39 04 03 1f 11 00 03 0e
+1e 00 5d 04 03 19 1f 00 05 0f 00 00 5a 08 03 39 23 0f 10 00 62 0c 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 20 20 20 20 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 5th
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 06 08 0b 21 02 55 0a 02 13 05 06 08 0b 0a 04 4b 08 06 13 15 06 08 0b
+0a 06 63 0a 02 13 05 06 08 0b 0a 05 63 08 06 2c 26 21 00 47 12 0c 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 35 74 68 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass 5th
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 06 08 0b 21 02 55 0a 02 13 05 06 08 0b 0a 02 4b 08 06 13 15 06 08 0b
+0a 01 63 0a 02 13 05 06 08 0b 0a 00 63 08 06 2c 26 21 00 47 12 0c 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 20 35 74 68 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 07 06 08 0c 27 02 58 04 06 08 09 05 09 0e 47 03 60 04 04 14 08 06 08 0d
+00 05 5a 04 02 13 07 06 08 0c 00 04 5f 04 00 3c 1f 2d 01 00 42 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 31 63 63 63 32 32 32 00 20
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 07 06 08 0c 27 02 58 04 06 08 09 05 09 0e 47 01 60 04 04 15 08 06 08 0d
+00 00 5a 04 02 15 07 06 08 0c 00 00 5f 04 00 3c 1f 2d 01 00 42 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 31 63 63 63 32 32 32 00 20
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 1b 06 07 09 27 01 51 04 04 0e 0a 04 0a 00 00 05 4b 04 0c 0f 0a 06 07 0c
+00 06 4e 04 05 11 07 06 08 0c 00 06 63 04 0d 3b 23 2d 05 00 22 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 32 63 63 63 32 32 32 00 50
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 1b 06 07 09 27 01 51 04 04 0e 0a 04 0a 00 00 01 4b 04 0c 0f 0a 06 07 0c
+00 02 4e 00 05 11 07 06 08 0c 00 01 63 04 0d 3b 23 2d 05 00 22 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 32 63 63 63 32 32 32 00 50
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 1b 06 07 09 27 05 59 04 05 0c 0a 04 0a 00 00 05 43 04 08 0f 0a 06 07 0c
+00 05 49 04 04 10 07 06 08 0c 00 05 63 04 0c 33 23 0c 0f 00 32 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 33 63 63 63 32 32 32 00 20
+00 40 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1b 06 07 09 27 02 59 04 05 0c 0a 04 0a 00 00 01 43 04 08 0f 0a 06 07 0c
+00 01 49 04 04 10 07 06 08 0c 00 01 63 04 0c 33 23 0c 0f 00 32 18 04 05 00
+28 32 00 00 00 32 00 42 72 61 73 73 2e 2e 2e 2e 33 63 63 63 32 32 32 00 20
+00 40 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassChime
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+11 04 04 09 0f 00 03 50 04 0b 1f 06 06 05 0d 00 45 52 19 03 14 07 05 06 0e
+00 44 61 04 0b 1f 06 06 06 0d 00 46 53 0d 02 64 24 23 00 2b 06 18 04 04 00
+63 01 63 00 00 32 00 42 72 61 73 73 43 68 69 6d 65 63 63 63 32 32 32 00 10
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassChime
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 04 04 09 0f 00 01 50 04 0b 1f 06 06 05 0d 00 41 52 19 03 14 07 05 06 0e
+00 40 61 04 0b 1f 06 06 06 0d 00 41 53 0d 02 64 24 23 00 2b 06 18 04 04 00
+63 01 63 00 00 32 00 42 72 61 73 73 43 68 69 6d 65 63 63 63 32 32 32 00 10
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 11 03 06 0f 00 02 47 00 0e 15 13 05 07 0f 3c 03 44 00 00 10 1f 04 06 0f
+00 04 61 00 02 0e 0c 07 06 0e 14 04 60 00 02 5c 0e 00 0d 00 12 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 31 63 63 63 32 32 32 00 00
+00 30 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 11 03 06 0f 00 00 47 00 0e 15 13 05 07 0f 3c 00 44 00 00 13 1f 04 06 0f
+00 00 61 00 02 14 0c 07 06 0e 14 00 60 00 02 5c 0e 00 0d 00 12 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 31 63 63 63 32 32 32 00 00
+00 30 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 11 03 06 0f 00 01 4f 04 0d 0e 13 04 07 0f 2b 01 60 04 01 13 1f 04 06 0f
+00 45 62 04 01 14 0c 07 06 0e 14 04 63 04 05 35 26 00 00 26 16 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 32 63 63 63 32 32 32 00 30
+00 60 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 11 03 06 0f 00 01 4f 04 0d 0e 13 04 07 0f 2b 01 60 04 01 13 1f 04 06 0f
+00 40 62 04 01 14 0c 07 06 0e 14 01 63 04 05 35 26 00 00 26 16 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 32 63 63 63 32 32 32 00 30
+00 60 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 05 03 04 0f 00 01 57 04 0a 0e 09 04 06 0f 00 02 45 04 00 0c 1f 04 06 0f
+00 04 5c 04 05 0f 0c 04 05 0e 00 05 60 04 05 64 20 33 0b 00 22 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 33 63 63 63 32 32 32 00 30
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 05 03 04 0f 00 01 52 00 0b 16 09 04 06 0f 00 01 45 04 03 10 1f 04 06 0f
+00 00 5c 00 03 13 0c 04 05 0e 00 00 60 00 03 64 20 33 0b 00 22 18 04 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 33 63 63 63 32 32 32 00 40
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 03 09 0c 00 02 3a 04 09 14 08 04 09 0f 00 02 41 04 02 0c 0c 09 07 0f
+00 05 3f 04 05 11 05 04 07 0e 00 04 63 04 04 63 20 33 0b 00 32 18 02 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassEns.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 03 09 0c 00 02 3a 04 09 1f 08 04 09 0f 00 02 41 04 02 1f 0c 09 07 0f
+00 01 3f 04 05 0f 05 04 07 0e 00 00 63 04 04 63 20 33 0b 00 32 18 02 04 00
+63 32 00 00 00 32 00 42 72 61 73 73 45 6e 73 2e 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrassSynth
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0d 0a 00 06 0d 00 39 53 04 0c 09 05 00 05 0d 00 39 59 00 08 0e 16 00 07 0f
+00 01 62 04 0e 0e 16 00 06 0f 00 01 63 00 0a 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 61 73 73 53 79 6e 74 68 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass.Vibe
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 1f 06 07 09 00 02 54 04 06 10 0a 05 0a 00 00 03 52 04 03 0f 0a 06 07 0c
+5a 06 4d 04 03 11 07 06 08 0c 00 06 60 04 00 73 23 00 19 00 32 18 02 05 00
+63 32 00 32 00 32 00 42 72 61 73 73 2e 56 69 62 65 63 63 63 32 32 32 00 10
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brass.Vibe
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 06 07 09 00 02 54 04 06 10 0a 05 0a 00 00 02 52 04 03 0f 0a 06 07 0c
+5a 00 4d 04 03 11 07 06 08 0c 00 01 60 04 00 73 23 00 19 00 32 18 02 05 00
+63 32 00 32 00 32 00 42 72 61 73 73 2e 56 69 62 65 63 63 63 32 32 32 00 10
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brassy *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 08 00 03 0f 19 01 51 04 06 0d 08 00 04 0f 27 00 4d 04 00 12 1f 00 06 0f
+09 00 63 04 06 10 0c 00 05 0f 0d 00 63 04 03 34 17 00 0b 00 52 05 02 04 00
+28 1e 00 00 00 32 00 42 72 61 73 73 79 20 20 20 2a 63 63 63 32 32 32 00 08
+00 08 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chariots
+** Controls: KV, MW (LFO amplitude)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0e 0e 00 02 0f 00 40 4e 04 00 0d 0e 00 02 0f 00 00 32 00 06 0f 0c 00 04 0f
+00 42 63 08 08 0d 0e 00 04 0f 00 02 63 04 0e 3c 1d 00 00 08 0d 18 02 04 00
+28 32 0d 00 00 32 00 43 68 61 72 69 6f 74 73 20 20 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChorusBras
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 4
+0e 08 00 06 0d 00 02 4e 05 06 0e 08 00 09 0d 00 02 57 04 00 0e 12 00 08 0f
+00 02 63 05 06 0e 12 00 08 0f 00 02 63 04 00 3c 1c 06 06 00 52 05 04 04 00
+63 32 00 00 00 32 00 43 68 6f 72 75 73 42 72 61 73 63 63 63 32 32 32 00 01
+00 38 00 01 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ensemble *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0c 00 02 0f 00 00 46 0a 00 0d 14 00 04 0f 2f 00 4e 09 06 0b 0b 00 05 0f
+00 02 63 09 06 0d 0b 00 05 0f 00 02 63 13 04 3c 1e 2d 0c 00 42 05 02 04 00
+28 63 00 00 00 32 00 45 6e 73 65 6d 62 6c 65 20 2a 63 63 63 32 32 32 00 30
+00 12 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ensemble 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 3
+14 06 00 04 0a 14 02 3d 1c 06 0b 04 02 04 07 14 01 52 13 00 0a 07 02 05 0a
+00 01 63 09 06 0f 06 01 05 0b 00 01 5e 0a 00 3c 21 08 0c 00 52 05 02 04 00
+63 32 00 00 00 32 00 45 6e 73 65 6d 62 6c 65 20 31 63 63 63 32 32 32 00 40
+00 30 00 22 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ensemble 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 06 00 04 0a 14 02 3d 1c 06 0b 04 02 04 07 14 01 52 13 00 0a 07 02 05 0d
+00 01 63 09 06 0f 06 01 05 0b 00 01 5e 0a 00 3c 21 08 0c 00 52 05 02 04 00
+63 32 00 00 00 32 00 45 6e 73 65 6d 62 6c 65 20 31 63 63 63 32 32 32 00 40
+00 30 00 22 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ensemble 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 4
+14 06 00 04 08 14 02 3d 1c 06 0b 04 02 04 08 14 01 50 13 00 0c 07 02 05 0b
+00 01 63 09 06 11 06 01 05 0b 00 01 5e 0a 00 3c 21 08 0c 00 52 05 02 04 00
+63 32 00 00 00 32 00 45 6e 73 65 6d 62 6c 65 20 32 63 63 63 32 32 32 00 50
+00 30 00 42 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Full Brass
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 2
+0f 1f 08 09 0f 00 03 4f 04 05 0f 1f 09 09 0f 00 02 63 04 03 10 1f 00 08 0f
+00 02 63 04 05 11 1f 00 08 0f 00 02 63 04 06 3d 1d 0f 08 00 52 0c 04 04 00
+63 32 00 00 00 32 00 46 75 6c 6c 20 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hard Brass
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+14 1f 00 0a 0f 00 00 47 04 03 1f 1f 00 0f 0f 00 00 3a 04 03 1f 1f 00 0f 0f
+00 00 34 04 03 19 1f 00 0a 0f 00 00 63 04 03 3a 23 00 00 00 62 18 07 04 00
+63 63 00 00 00 32 00 48 61 72 64 20 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 14
+0a 07 00 09 0e 0a 01 4d 00 0b 10 08 00 0a 0a 1c 02 43 00 0b 10 0f 00 0a 05
+09 03 40 06 0b 0f 18 00 0a 0f 00 02 63 00 0b 3a 1e 09 02 00 62 18 02 04 00
+28 13 00 00 00 32 00 48 6f 72 6e 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 07 00 09 0e 0d 01 4d 00 0b 10 08 00 0a 0a 1c 02 43 00 0b 10 0f 00 0a 05
+09 03 40 06 0b 0f 18 00 0a 0f 00 02 63 00 0b 3a 1e 09 02 00 62 18 02 04 00
+28 13 00 00 00 32 00 48 6f 72 6e 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 09 00 09 0d 0a 00 41 04 03 0f 0b 00 08 0e 00 00 3f 04 03 1f 11 00 0f 03
+0a 00 31 18 0b 12 1f 00 0a 0f 00 00 5a 04 03 3a 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 48 6f 72 6e 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 0b 07 0f 00 02 55 04 04 0e 1f 00 08 0f 00 03 51 04 06 10 1f 00 09 0f
+00 05 5a 08 04 0f 1f 00 08 0f 00 05 5b 04 06 3d 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 0b 07 0f 00 02 55 04 04 0e 1f 00 08 0f 00 01 51 04 06 10 1f 00 09 0f
+00 01 5a 08 04 0f 1f 00 08 0f 00 00 5b 04 06 3d 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 06 07 09 00 01 50 08 06 0f 08 06 08 0a 00 05 49 04 03 16 10 06 0a 00
+00 05 46 1a 14 10 07 06 09 0c 00 06 60 04 01 22 23 00 04 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 06 07 09 00 01 50 08 06 0f 08 06 08 0a 00 01 49 04 03 16 10 06 0a 00
+00 02 46 1a 14 10 07 06 09 0c 00 01 60 04 01 22 23 00 04 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 1f 06 07 0f 00 01 4e 04 05 0f 09 05 07 05 42 06 54 04 1a 0f 09 06 07 04
+00 04 49 04 14 10 06 04 08 0b 00 06 60 04 02 2b 23 00 08 00 42 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 1f 06 07 0f 00 01 4e 04 05 0f 09 05 07 05 42 01 54 04 1a 0f 09 06 07 04
+00 00 49 04 14 10 06 04 08 0b 00 01 60 04 02 2b 23 00 08 00 42 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 07 03 08 0c 00 03 51 04 06 10 0a 04 0a 0c 00 04 63 04 04 0f 0a 03 0a 0f
+00 04 63 04 02 12 16 02 0a 0b 00 06 61 04 04 2d 20 13 09 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 50
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 07 03 08 0c 00 03 51 04 06 10 0a 04 0a 0c 00 00 63 04 04 0f 0a 03 0a 0f
+00 01 63 04 02 12 16 02 0a 0b 00 00 61 04 04 2d 20 13 09 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 50
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 07 08 0a 0f 00 04 49 04 01 11 09 08 09 0d 00 03 53 04 0d 15 04 01 0c 0f
+1e 06 3c 04 01 11 06 05 09 0f 00 05 5a 03 05 63 23 00 00 00 32 11 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 08
+00 38 00 08 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 07 08 0a 0f 00 02 49 04 01 11 09 08 09 0d 00 01 53 04 0d 15 04 01 0c 0f
+1e 00 3c 04 01 11 06 05 09 0f 00 00 5a 03 05 63 23 00 00 00 32 11 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 08
+00 38 00 08 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 07 02 0a 0f 00 02 4f 08 06 11 08 06 09 0d 00 04 63 08 0c 15 04 01 0c 0f
+1e 06 57 0d 02 10 06 05 09 0f 00 05 63 04 04 75 23 00 08 00 42 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 07 02 0a 0f 00 02 4f 08 06 11 08 06 09 0d 00 00 63 08 0c 15 04 01 0c 0f
+1e 00 57 0d 02 10 06 05 09 0f 00 00 63 04 04 75 23 00 08 00 42 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0a 06 07 09 00 01 4e 08 06 13 08 06 08 0a 00 04 47 04 03 0f 03 06 07 09
+55 06 3e 10 04 15 07 06 09 0c 00 05 62 04 01 2b 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horn.....7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0a 06 07 09 00 01 4e 08 06 13 08 06 08 0a 00 00 47 04 03 0f 03 06 07 09
+55 01 3e 10 04 15 07 06 09 0c 00 01 62 04 01 2b 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horns
+** Controls: KV
+** Source: DX100 GLIB patch (Michael Kesti and others)
+0e 1f 08 07 0f 00 00 46 04 03 0e 1f 04 08 0f 00 07 4b 04 06 10 1f 05 09 0f
+00 00 56 04 03 0f 1f 13 08 0f 00 00 46 04 06 3d 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 73 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horns
+** Controls: KV
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 08 08 07 08 00 03 52 04 03 1f 0a 04 08 0f 00 03 48 04 06 1f 10 05 09 0f
+00 04 5b 08 03 1f 05 09 08 0f 00 04 63 08 03 3d 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 73 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horns
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0d 1f 0b 07 0f 00 00 46 04 03 0e 1f 00 08 0f 00 00 48 04 06 10 1f 00 09 0f
+00 00 5b 04 03 0f 1f 00 08 0f 00 00 5b 04 06 3d 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 48 6f 72 6e 73 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Horns BC
+** Controls: KV, BC (EG amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 8
+0e 09 00 07 0e 00 22 51 04 03 0f 1f 00 08 0f 00 22 52 05 06 11 1f 00 09 0f
+00 23 63 04 00 10 1f 00 09 0f 00 2a 60 04 00 3d 1d 00 00 00 52 05 04 04 00
+63 32 00 00 00 32 63 48 6f 72 6e 73 20 42 43 20 20 63 63 63 32 32 32 00 08
+00 01 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JonesBrass
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0b 03 01 07 0d 1f 00 49 04 06 0b 03 01 07 0d 00 00 5d 04 0e 11 01 01 05 0d
+00 00 63 04 10 16 04 01 05 0d 00 00 3c 04 10 3c 23 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 4a 6f 6e 65 73 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LightBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 04 01 06 0d 00 00 3b 04 04 1d 12 13 06 0c 00 03 41 08 03 1d 0a 09 06 0c
+5a 05 42 04 03 10 03 01 09 0f 00 05 60 04 03 02 1c 0f 10 00 42 18 02 05 00
+63 32 00 32 00 32 00 4c 69 67 68 74 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LightBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 04 01 06 0d 00 00 3b 04 04 1d 12 13 06 0c 00 00 41 08 03 1d 0a 09 06 0c
+5a 00 42 04 03 10 03 01 09 0f 00 01 60 04 03 02 1c 0f 10 00 42 18 02 05 00
+63 32 00 32 00 32 00 4c 69 67 68 74 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 2
+
+** Name: MelloBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 11 02 06 0d 00 02 53 04 00 0e 07 02 07 0c 00 05 5a 04 06 0f 0f 01 08 0f
+5a 06 63 04 00 10 12 00 07 0f 00 06 5f 04 05 34 1c 0f 0b 00 42 18 02 05 00
+63 32 00 32 00 32 00 4d 65 6c 6c 6f 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MelloBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 11 02 06 0d 00 02 53 04 00 0e 07 02 07 0c 00 02 5a 04 06 0f 0f 01 08 0f
+5a 01 63 04 00 10 12 00 07 0f 00 01 5f 04 05 34 1c 0f 0b 00 42 18 02 05 00
+63 32 00 32 00 32 00 4d 65 6c 6c 6f 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MufflBrass
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+16 0f 00 09 0d 00 02 52 04 0c 12 0a 00 08 0d 00 02 47 00 08 1a 1f 00 0a 0f
+00 01 63 04 0e 17 1f 00 09 0f 00 01 63 00 0a 3c 20 06 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 4d 75 66 66 6c 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Brass
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 09 09 07 0d 3f 03 4b 08 0b 12 09 09 07 0d 0d 04 52 04 0b 0f 09 09 07 0d
+63 05 42 04 13 10 09 09 07 0d 23 06 63 04 0b 7a 20 3e 06 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 20 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Brass
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 09 09 07 0d 3f 00 4b 08 0b 12 09 09 07 0d 0d 00 52 04 0b 0f 09 09 07 0d
+63 00 42 04 13 10 09 09 07 0d 23 00 63 04 0b 7a 20 3e 06 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 20 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoBrass
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 12 06 07 0f 0a 04 5d 04 0b 1b 06 06 07 08 00 06 56 04 0b 15 07 06 08 0f
+00 05 5c 04 02 1b 06 06 07 08 00 05 63 04 0d 64 23 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 50 69 61 6e 6f 42 72 61 73 73 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 1f 00 05 0f 10 04 4e 04 06 1f 05 00 0f 0b 63 06 46 0d 1b 0a 1f 00 09 0f
+63 03 63 04 1b 1f 06 04 06 0f 00 06 63 08 13 3c 23 34 03 00 62 0c 07 04 00
+63 32 63 32 00 32 00 50 69 61 6e 6f 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoBrass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 12 06 07 0f 0a 01 5d 04 0b 1b 06 06 07 08 00 01 56 04 0b 15 07 06 08 0f
+00 00 5c 04 02 1b 06 06 07 08 00 00 63 04 0d 64 23 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 50 69 61 6e 6f 42 72 61 73 73 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoBrass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 1f 00 05 0f 10 01 4e 04 06 1f 05 00 0f 0b 63 02 46 0d 1b 0a 1f 00 09 0f
+63 00 63 04 1b 1f 06 04 06 0f 00 00 63 08 13 3c 23 34 03 00 62 0c 07 04 00
+63 32 63 32 00 32 00 50 69 61 6e 6f 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pianobrass
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0b 03 01 07 0d 1f 00 48 04 0e 16 0c 08 04 0b 34 00 35 2a 16 11 01 01 05 0d
+00 00 63 04 10 16 04 01 05 0d 00 00 63 04 10 3c 23 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 50 69 61 6e 6f 62 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: POWERBRASS
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 0f 00 03 0c 00 00 49 0a 06 1a 1f 00 03 0f 00 00 49 04 03 13 1f 00 05 0f
+00 00 48 04 03 1b 1f 00 0b 0f 00 00 63 04 03 38 20 14 1f 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 4f 57 45 52 42 52 41 53 53 63 63 63 32 32 32 00 30
+00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PowerBrass
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 0f 00 03 0c 00 00 49 0a 06 1a 1f 00 03 0f 00 00 49 04 03 13 1f 00 05 0f
+00 00 48 04 03 1b 1f 00 0b 0f 00 00 63 04 03 38 20 14 1f 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 6f 77 65 72 42 72 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SplatBrass
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 63 02 5b 04 03 0c 0a 04 09 0a 00 05 54 04 0c 15 1f 00 0a 0b
+4c 05 45 0d 03 14 07 03 09 0c 00 05 62 04 03 73 23 01 0d 00 32 18 04 05 00
+28 32 00 00 00 32 00 53 70 6c 61 74 42 72 61 73 73 63 63 63 32 32 32 00 40
+00 20 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SplatBrass
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 63 02 5b 04 03 0c 0a 04 09 0a 00 01 54 04 0c 15 1f 00 0a 0b
+4c 01 45 0d 03 14 07 03 09 0c 00 01 62 04 03 73 23 01 0d 00 32 18 04 05 00
+28 32 00 00 00 32 00 53 70 6c 61 74 42 72 61 73 73 63 63 63 32 32 32 00 40
+00 20 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpitBoneBC
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 7
+0c 05 00 08 0e 00 2a 52 04 0b 10 1f 00 08 0f 00 1a 46 04 03 1f 0f 00 08 06
+23 23 48 0b 03 0f 1f 00 09 0f 00 2a 63 04 0c 3a 1f 19 07 00 52 0c 04 04 00
+63 32 00 00 00 32 63 53 70 69 74 42 6f 6e 65 42 43 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Brass 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 3
+12 0a 00 09 0e 00 01 53 04 08 12 0b 00 09 0e 00 01 52 04 0e 18 1f 00 0b 0f
+00 01 62 04 00 18 1f 00 0b 0f 00 01 62 04 06 3c 21 1e 04 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 72 61 73 73 20 31 63 5f 63 31 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Brass 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 4
+12 0c 00 09 06 00 01 55 04 08 12 0c 00 09 06 00 01 5a 04 0e 18 1f 00 0b 0f
+00 01 62 04 00 18 1f 00 0b 0f 00 01 62 04 06 2c 21 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 72 61 73 73 20 32 63 63 63 32 32 32 00 30
+00 30 00 70 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Brass 3
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 5
+0f 08 00 04 0e 07 01 52 04 0b 12 0a 00 07 0b 00 00 2d 04 0b 0f 0b 00 05 0b
+00 00 4d 04 0b 11 1f 00 0a 0f 00 01 61 04 0b 3a 1f 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 72 61 73 73 20 33 63 63 63 32 32 32 00 30
+00 60 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Brass 3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 08 00 04 0e 07 01 52 04 0b 12 0d 00 07 0b 00 00 2d 04 0b 0f 0b 00 05 0b
+00 00 4d 04 0b 11 1f 00 0a 0f 00 01 61 04 0b 3a 1f 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 72 61 73 73 20 33 63 63 63 32 32 32 00 30
+00 60 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Brass 4
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 6
+0f 0f 00 01 0e 00 01 4c 04 06 0f 0f 00 01 0e 00 02 4c 04 00 11 09 00 0a 0c
+00 00 63 04 06 11 09 00 0a 0c 00 00 63 04 00 3c 1c 1c 0a 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 79 2e 42 72 61 73 73 20 34 63 60 63 30 32 32 00 10
+00 10 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TightBrass
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 06 03 09 0a 21 02 5b 04 0b 13 0e 09 0a 0a 00 04 53 08 0c 15 06 06 09 0b
+0a 06 63 04 0b 15 06 08 09 0c 00 05 61 04 1b 2c 22 21 00 10 32 18 04 05 00
+28 32 00 00 00 32 00 54 69 67 68 74 42 72 61 73 73 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TightBrass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 06 03 09 0a 21 02 5b 04 0b 13 0e 09 0a 0a 00 01 53 08 0c 15 06 06 09 0b
+0a 01 63 04 0b 15 06 08 09 0c 00 00 61 04 1b 2c 22 21 00 10 32 18 04 05 00
+28 32 00 00 00 32 00 54 69 67 68 74 42 72 61 73 73 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tpt.Sect.*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 0e 00 09 0e 00 01 54 04 03 15 0f 00 0a 0c 00 00 5f 08 0e 19 11 00 0a 0f
+00 00 63 04 01 17 0e 00 0a 0e 00 03 63 08 05 3c 23 00 00 00 52 0c 02 04 00
+28 63 00 00 00 32 00 54 70 74 2e 53 65 63 74 2e 2a 63 63 63 32 32 32 00 00
+00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tpt&Woodwd
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 02 05 0f 1b 42 4d 05 06 07 1f 02 05 0f 27 03 4f 04 00 11 1f 00 07 0f
+00 01 63 05 0e 0a 1f 00 04 0f 0c 01 60 04 08 3c 1f 0e 1c 00 32 11 04 05 00
+28 32 00 00 00 32 00 54 70 74 26 57 6f 6f 64 77 64 63 63 63 32 32 32 00 31
+00 38 00 11 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindEns..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 0d 03 09 0f 23 02 49 08 05 0f 10 06 07 09 00 02 41 0b 03 12 0c 05 08 0f
+45 05 4c 04 02 0c 07 05 07 0b 00 03 5f 04 02 2b 1d 1e 35 00 12 18 02 04 00
+63 32 00 00 01 32 00 57 69 6e 64 45 6e 73 2e 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindEns..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 0d 03 09 0f 23 02 49 08 05 0f 10 06 07 09 00 02 41 0b 03 12 0c 05 08 0f
+45 01 4c 04 02 15 07 05 07 0b 00 00 5f 04 02 2b 1d 1e 35 00 12 18 02 04 00
+63 32 00 00 01 32 00 57 69 6e 64 45 6e 73 2e 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindEns..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 03 09 0f 23 02 50 00 05 16 10 06 07 09 00 02 47 04 03 0d 0c 07 08 0f
+45 04 4c 00 02 0d 07 05 07 0b 00 04 5f 04 02 2b 1d 1e 35 00 12 18 02 04 00
+63 32 00 00 01 32 00 57 69 6e 64 45 6e 73 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindEns..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 03 09 0f 23 02 50 00 05 1f 10 06 07 09 00 01 47 04 03 14 0c 07 08 0f
+45 00 4c 00 02 0f 07 05 07 0b 00 00 5f 04 02 2b 1d 1e 35 00 12 18 02 04 00
+63 32 00 00 01 32 00 57 69 6e 64 45 6e 73 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Wind
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 18
+12 08 00 0a 0e 36 01 4c 08 08 1f 1f 00 07 0f 00 01 41 08 05 10 1f 00 0c 0f
+1a 03 56 04 01 0e 1f 00 0b 0f 00 03 63 08 0e 3c 20 06 04 00 52 0c 02 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 20 57 69 6e 64 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 61 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Wind
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 08 00 0a 0e 36 01 4c 08 08 1f 1f 00 07 0f 00 01 41 08 05 10 1f 00 0c 0f
+1a 03 56 04 01 0e 1f 00 0b 0f 00 03 63 08 0e 3c 20 06 04 00 52 0c 02 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 20 57 69 6e 64 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: pianohorn
+** Description: a horn sound
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+13 05 00 0e 0a 00 05 59 04 06 1f 09 00 0b 00 43 05 4d 04 13 1f 09 05 08 0e
+00 05 59 08 03 1f 12 08 08 0a 00 05 62 04 03 3c 1c 1d 10 00 52 18 01 04 00
+63 32 00 32 00 32 00 70 69 61 6e 6f 68 6f 72 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Accordion
+
+
+** Name: Accordion*
+** Controls: BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 03 0a 02 10 50 40 00 03 13 04 03 07 02 00 00 43 04 02 1f 04 03 07 02
+23 50 38 13 04 0f 04 03 0a 02 10 00 63 08 03 02 23 00 00 00 5a 18 02 04 00
+28 00 00 00 00 32 63 41 63 63 6f 72 64 69 6f 6e 2a 63 63 63 32 32 32 00 60
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank C, voice 32
+14 12 00 08 0f 00 02 54 04 08 1f 1f 00 08 0f 00 00 46 04 0e 0e 1f 00 08 0f
+0e 00 53 0a 08 0e 1f 00 08 0f 06 02 5c 08 0e 1c 1c 0a 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 20 63 63 63 32 32 32 00 70
+00 10 00 10 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 03 07 0f 0a 02 3e 19 03 1f 04 00 05 0f 00 06 49 0d 00 12 05 03 0a 0d
+63 06 63 08 04 0e 1f 00 0a 0f 00 06 62 04 06 2c 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 03 07 0f 0a 01 3e 19 03 1f 04 00 05 0f 00 01 49 0d 00 12 05 03 0a 0d
+63 01 63 08 04 0e 1f 00 0a 0f 00 01 62 04 06 2c 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 05 0e 0a 01 41 0a 00 1f 04 00 05 0f 00 05 37 0d 00 1f 0b 00 0a 0f
+00 05 36 08 06 0e 1f 00 0a 0f 00 06 5d 04 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 05 0e 0a 01 41 0a 00 1f 04 00 05 0f 00 00 37 0d 00 1f 0b 00 0a 0f
+00 00 36 08 06 0e 1f 00 0a 0f 00 01 5d 04 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 05 0e 0a 03 3e 1c 00 1f 04 00 05 0f 00 04 37 0d 00 1f 0b 00 0a 0f
+00 04 36 0d 06 0e 1f 00 0a 0f 00 06 5c 04 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 05 0e 0a 02 3e 1c 00 1f 04 00 05 0f 00 00 37 0d 00 1f 0b 00 0a 0f
+00 00 36 0d 06 0e 1f 00 0a 0f 00 01 5c 04 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 05 0e 0a 02 3e 0d 00 1f 04 00 05 0f 00 06 3d 08 00 1f 0b 00 0a 0f
+00 05 36 08 06 0e 1f 00 0a 0f 00 06 5c 08 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 34 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Accordion4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 05 0e 0a 02 3e 0d 00 1f 04 00 05 0f 00 01 3d 08 00 1f 0b 00 0a 0f
+00 00 36 08 06 0e 1f 00 0a 0f 00 01 5c 08 06 3a 12 00 03 00 62 18 02 04 00
+28 02 00 00 00 32 00 41 63 63 6f 72 64 69 6f 6e 34 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Squeezebox
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 32
+10 06 00 05 0e 0a 01 4a 0a 00 1f 04 00 05 0f 00 01 49 0d 00 1f 0b 00 0a 0f
+00 01 46 08 06 0e 1f 00 0a 0f 00 01 5a 04 06 39 19 00 03 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 71 75 65 65 7a 65 62 6f 78 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Bag Pipe
+
+
+** Name: Bag Pipe
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 0a 04 02 0c 00 05 57 0a 03 17 0a 04 02 0d 00 05 4e 04 03 13 07 06 0a 0c
+00 06 60 04 0b 13 07 06 0a 0f 00 06 63 0a 0b 24 26 3c 06 00 32 00 02 04 00
+63 32 00 32 00 32 00 20 42 61 67 20 50 69 70 65 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bag Pipe
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 0a 04 02 0c 00 01 57 0a 03 17 0a 04 02 0d 00 00 4e 04 03 13 07 06 0a 0c
+00 01 60 04 0b 13 07 06 0a 0f 00 01 63 0a 0b 24 26 3c 06 00 32 00 02 04 00
+63 32 00 32 00 32 00 20 42 61 67 20 50 69 70 65 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Bassoon
+
+
+** Name: Bassoon
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 13
+10 17 00 06 0f 00 41 44 00 03 19 1f 00 07 0f 35 42 4e 00 03 10 1f 00 01 0f
+00 42 4b 04 03 0f 1f 00 09 0f 00 02 5b 08 03 38 1f 08 07 0a 5e 0c 02 04 00
+63 23 1e 32 00 32 00 42 61 73 73 6f 6f 6e 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 00 03 0a 0d 47 05 50 00 03 12 0d 09 0a 0d 41 05 41 04 03 12 0d 09 0a 0d
+43 04 62 08 03 12 0d 09 0a 0e 00 05 63 04 04 1c 25 29 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 31 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 00 03 0a 0d 47 01 50 00 03 12 0d 09 0a 0d 41 00 41 04 03 12 0d 09 0a 0d
+43 00 62 08 03 12 0d 09 0a 0e 00 00 63 04 04 1c 25 29 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 31 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+11 16 00 06 0f 00 02 38 04 03 18 1f 00 08 0f 47 05 53 00 03 11 1f 00 01 0f
+00 04 45 04 03 0f 1f 00 08 0f 00 04 58 08 03 20 20 0c 06 00 52 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 16 00 06 0f 00 00 38 04 03 18 1f 00 08 0f 47 01 53 00 03 11 1f 00 01 0f
+00 01 45 04 03 0f 1f 00 08 0f 00 00 58 08 03 20 20 0c 06 00 52 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 18 06 04 0f 63 01 45 04 03 13 06 06 09 0f 47 03 63 0d 03 13 18 06 09 0f
+00 45 63 04 03 12 18 06 09 0f 00 03 63 08 03 35 27 21 00 26 36 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 18 06 04 0f 63 01 45 04 03 13 06 06 09 0f 47 00 63 0d 03 13 18 06 09 0f
+00 40 63 04 03 12 18 06 09 0f 00 00 63 08 03 35 27 21 00 26 26 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 06 03 0a 0e 63 01 4e 00 03 12 0c 06 0a 0d 47 03 49 08 0b 13 0d 09 0a 0e
+00 45 63 08 03 12 0c 06 0a 0e 00 05 63 04 0b 1c 27 21 00 26 26 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bassoon..4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 06 03 0a 0e 63 00 4e 00 03 12 0c 06 0a 0d 47 00 49 08 0b 13 0d 09 0a 0e
+00 40 63 08 03 12 0c 06 0a 0e 00 00 63 04 0b 1c 27 21 00 26 26 0c 00 04 00
+63 32 00 32 00 32 00 42 61 73 73 6f 6f 6e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassoonSyn
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 08 05 08 07 19 02 59 00 0e 16 10 00 04 0f 46 05 55 00 03 0f 06 00 0b 0f
+00 06 63 04 05 10 1f 00 0a 0f 00 05 60 0a 0b 0d 23 00 00 00 02 0c 07 04 01
+63 32 00 1e 0a 32 63 42 61 73 73 6f 6f 6e 53 79 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassoonSyn
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 08 05 08 07 19 00 59 00 0e 16 10 00 04 0f 46 00 55 00 03 0f 06 00 0b 0f
+00 00 63 04 05 10 1f 00 0a 0f 00 00 60 0a 0b 0d 23 00 00 00 02 0c 07 04 01
+63 32 00 1e 0a 32 63 42 61 73 73 6f 6f 6e 53 79 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Clarinet
+
+
+** Name: Bass Clair
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 12 00 09 0d 22 01 47 08 0c 1f 1b 06 04 0e 41 05 3f 08 03 1f 11 00 06 0c
+5a 04 52 0d 03 10 1f 00 0b 0f 00 45 55 04 0c 02 25 00 00 29 16 00 02 05 00
+63 32 00 32 00 32 00 42 61 73 73 20 43 6c 61 69 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Clair
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 12 00 09 0d 22 00 47 08 0c 1f 1b 06 04 0e 41 00 3f 08 03 1f 11 00 06 0c
+5a 00 52 0d 03 10 1f 00 0b 0f 00 40 55 04 0c 02 25 00 00 29 16 00 02 05 00
+63 32 00 32 00 32 00 42 61 73 73 20 43 6c 61 69 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 12 00 09 0d 22 01 4c 08 0b 0c 14 00 05 0e 3c 05 3b 04 03 1f 11 00 06 0c
+5a 45 4f 10 03 10 1f 00 0b 0f 00 05 55 04 03 3a 22 14 0a 18 5e 0c 02 04 00
+63 32 00 32 00 32 00 43 6c 61 69 72 6e 65 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 12 00 09 0d 22 01 4c 08 0b 0c 14 00 05 0e 3c 00 3b 04 03 1f 11 00 06 0c
+5a 40 4f 10 03 10 1f 00 0b 0f 00 00 55 04 03 3a 22 14 0a 18 5e 0c 02 04 00
+63 32 00 32 00 32 00 43 6c 61 69 72 6e 65 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 0c 0f 07 0f 41 01 33 0d 05 1f 06 04 06 0f 5c 02 46 0d 04 10 0c 0c 07 0e
+47 05 54 0d 03 0f 06 06 07 0e 28 05 63 08 0b 7c 24 27 00 00 12 00 0c 04 00
+63 32 32 00 00 32 00 43 6c 61 69 72 6e 65 74 2e 32 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0f 07 0f 41 00 33 0d 05 1f 06 04 06 0f 5c 00 46 0d 04 1f 0c 0c 07 0e
+47 00 54 0d 03 0f 06 06 07 0e 28 00 63 08 0b 7c 24 27 00 00 12 00 0c 04 00
+63 32 32 00 00 32 00 43 6c 61 69 72 6e 65 74 2e 32 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.3
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 06 06 0f 36 01 51 04 03 1f 1f 04 06 0f 34 44 50 04 03 12 1f 05 09 0f
+0e 05 63 00 03 12 1f 05 07 0f 0e 45 63 00 0b 3e 24 02 1f 51 16 24 0c 04 00
+63 32 32 00 00 32 00 43 6c 61 69 72 6e 65 74 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clairnet.3
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 06 06 0f 36 01 51 04 03 1f 1f 04 06 0f 34 41 50 04 03 12 1f 05 09 0f
+0e 00 63 00 03 12 1f 05 07 0f 0e 40 63 00 0b 3e 24 02 1f 51 16 24 0c 04 00
+63 32 32 00 00 32 00 43 6c 61 69 72 6e 65 74 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ClaraPiano
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 07 08 07 00 03 47 13 0e 0b 06 07 04 07 00 04 4a 08 0b 13 06 07 03 07
+00 04 36 0d 0b 1f 07 07 04 07 00 45 62 04 0b 20 14 00 00 10 66 18 01 04 00
+63 00 00 32 00 32 00 43 6c 61 72 61 50 69 61 6e 6f 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ClaraPiano
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 07 08 07 00 01 47 13 0e 0b 06 07 04 07 00 01 4a 08 0b 13 06 07 03 07
+00 00 36 0d 0b 1f 07 07 04 07 00 40 62 04 0b 20 14 00 00 10 66 18 01 04 00
+63 00 00 32 00 32 00 43 6c 61 72 61 50 69 61 6e 6f 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clarinet
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 15
+12 02 00 09 0e 09 02 51 08 0b 0e 14 00 05 0e 00 02 48 08 0b 13 11 00 06 0b
+00 43 56 0a 0b 11 1f 00 09 0f 00 02 59 04 0b 02 1f 14 07 10 5e 0c 02 04 00
+63 32 1e 00 00 32 00 43 6c 61 72 69 6e 65 74 20 20 63 63 63 32 32 32 00 00
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clarinet 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 19
+15 0a 00 07 0e 2f 01 4b 08 03 15 0f 00 07 0a 1b 03 54 08 13 10 10 00 07 0e
+1f 03 41 10 0b 11 1f 00 0a 0f 00 02 5c 04 0b 3a 1e 0a 03 05 6e 18 02 04 00
+28 1a 0f 00 00 32 00 43 6c 61 72 69 6e 65 74 20 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clarinet 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0d 00 07 0e 2f 01 4b 08 03 15 0f 00 07 0d 1b 03 54 08 13 10 10 00 07 0e
+1f 03 41 10 0b 11 1f 00 0a 0f 00 02 5c 04 0b 3a 1e 0a 03 05 6e 18 02 04 00
+28 1a 0f 00 00 32 00 43 6c 61 72 69 6e 65 74 20 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clarinet 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 20
+1f 1f 00 09 0f 0f 02 4b 08 03 0f 0f 00 09 0a 52 02 4c 08 13 12 12 00 09 0a
+3a 01 4a 0a 0b 11 1f 00 0b 0f 00 02 5e 04 0b 22 1e 0a 03 05 6e 0c 02 04 00
+28 1a 0f 00 00 32 00 43 6c 61 72 69 6e 65 74 20 32 63 63 63 32 32 32 00 00
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clarinet 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 09 0f 0f 02 4b 08 03 0f 0f 00 09 0d 52 02 4c 08 13 12 12 00 09 0d
+3a 01 4a 0a 0b 11 1f 00 0b 0f 00 02 5e 04 0b 22 1e 0a 03 05 6e 0c 02 04 00
+28 1a 0f 00 00 32 00 43 6c 61 72 69 6e 65 74 20 32 63 63 63 32 32 32 00 00
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HolowClair
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0b 06 04 0d 22 02 47 04 0c 10 04 03 08 0d 3c 04 44 08 03 0f 10 03 07 0c
+04 04 5a 00 03 10 04 03 09 0f 00 05 5a 04 0c 2c 26 07 03 00 42 0c 02 04 00
+63 32 00 32 00 32 00 48 6f 6c 6f 77 43 6c 61 69 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HolowClair
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0b 06 04 0d 22 00 47 04 0c 10 04 03 08 0d 3c 01 44 13 03 0f 10 03 07 0c
+04 00 5a 00 03 10 04 03 09 0f 00 00 5a 04 0c 2c 26 07 03 00 42 0c 02 04 00
+63 32 00 32 00 32 00 48 6f 6c 6f 77 43 6c 61 69 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynClarnet
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 06 01 06 0f 21 02 37 08 15 0e 07 01 06 0c 1b 03 45 0d 0b 0e 05 01 06 0b
+10 02 4d 16 18 0f 08 00 06 0d 00 01 63 04 13 39 1d 00 00 00 52 18 02 04 00
+63 32 00 16 00 32 00 53 79 6e 43 6c 61 72 6e 65 74 63 63 63 32 32 32 00 70
+00 30 00 10 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY EnglishHorn
+
+
+** Name: English Hn
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 0a 04 02 0c 52 02 4b 08 03 1f 0a 04 02 0c 3a 26 47 08 03 10 0a 04 0a 0b
+5c 1e 63 08 03 12 07 06 0a 0d 0a 75 60 0a 03 14 1d 3c 00 24 26 0c 02 04 00
+63 32 00 00 00 32 00 45 6e 67 6c 69 73 68 20 48 6e 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: English Hn
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 0a 04 02 0c 52 02 4b 08 03 1f 0a 04 02 0c 3a 22 47 08 03 10 0a 04 0a 0b
+5c 18 63 08 03 12 07 06 0a 0d 0a 70 60 0a 03 14 1d 3c 00 24 26 0c 02 04 00
+63 32 00 00 00 32 00 45 6e 67 6c 69 73 68 20 48 6e 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY FlugelHorn
+
+
+** Name: Flugel *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 0a 00 07 0d 00 01 4d 04 0e 10 0a 00 0a 00 0d 01 3d 04 0b 15 11 00 07 06
+05 02 4f 09 0b 0e 07 01 08 0d 00 02 63 04 0b 3a 23 00 00 00 32 18 02 04 00
+28 63 00 00 00 32 00 46 6c 75 67 65 6c 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FlugelHorn
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 05 00 08 00 00 01 51 04 0b 0f 1f 00 08 0f 00 04 3c 04 04 1f 0f 00 08 00
+00 06 37 07 04 10 1f 00 09 0f 00 06 5d 04 0c 2a 23 19 04 00 52 18 02 04 00
+63 63 00 00 00 32 00 46 6c 75 67 65 6c 48 6f 72 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FlugelHorn
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 05 00 08 00 00 01 51 04 0b 0f 1f 00 08 0f 00 00 3c 04 04 1f 0f 00 08 00
+00 00 37 07 04 10 1f 00 09 0f 00 01 5d 04 0c 2a 23 19 04 00 52 18 02 04 00
+63 63 00 00 00 32 00 46 6c 75 67 65 6c 48 6f 72 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flugelhorn
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 3
+0c 05 00 08 00 00 02 4a 04 0b 0f 1f 00 08 0f 00 02 3f 04 03 1f 0f 00 08 00
+23 03 44 0b 03 10 1f 00 09 0f 00 02 5e 04 0c 3a 1f 19 07 00 52 18 04 04 00
+63 32 00 00 00 32 00 46 6c 75 67 65 6c 68 6f 72 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 3
+
+* SUBCATEGORY Flute
+
+
+** Name: AdditivFlt
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+02 02 01 01 0f 00 52 3c 1a 01 05 06 01 02 0d 26 63 50 0a 00 04 05 01 01 0c
+12 6b 4d 09 06 0d 1f 00 04 0f 00 42 63 04 0b 03 1e 24 07 00 5a 11 02 04 00
+63 15 00 08 00 32 0e 41 64 64 69 74 69 76 46 6c 74 63 63 63 32 32 32 00 16
+00 30 00 32 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alto Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0f 05 06 0f 00 00 28 08 03 0c 13 07 07 0f 47 04 3c 04 03 16 1f 04 01 0f
+00 45 3d 04 03 0d 12 04 09 0f 00 04 53 04 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 41 6c 74 6f 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alto Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0f 05 06 0f 00 00 28 08 03 0c 13 07 07 0f 47 00 3c 04 03 16 1f 04 01 0f
+00 40 3d 04 03 0d 12 04 09 0f 00 00 53 04 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 41 6c 74 6f 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alto Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 0f 05 06 0f 00 00 28 08 03 0c 13 07 07 0f 47 00 3c 04 03 16 1f 04 00 0f
+00 40 3d 04 03 0d 12 04 09 0f 00 00 53 04 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 41 6c 74 6f 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0f 05 06 0f 00 03 32 04 03 0c 13 07 07 0f 47 04 3c 00 03 16 1f 04 01 0f
+00 44 41 00 03 0d 12 04 09 0f 00 05 5a 04 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0f 05 06 0f 00 00 32 04 03 0c 13 07 07 0f 47 00 3c 00 03 16 1f 04 01 0f
+00 40 41 04 03 0d 12 04 09 0f 00 00 5a 00 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 0f 05 06 0f 00 00 32 04 03 0c 13 07 07 0f 47 00 3c 00 03 16 1f 04 00 0f
+00 40 41 04 03 0d 12 04 09 0f 00 00 5a 00 03 2b 23 29 07 36 16 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute *
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 03 02 05 0f 19 03 4f 04 0e 1d 12 12 07 0e 00 06 47 05 0c 1d 0a 09 06 0d
+00 02 59 04 08 0f 03 01 09 0f 00 04 63 04 0a 02 1d 18 06 19 42 18 02 04 00
+28 31 00 29 12 32 00 46 6c 75 74 65 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 04 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 11
+10 16 00 06 07 00 42 49 07 03 19 1f 00 07 0f 0b 43 47 04 03 12 19 00 01 0f
+0d 42 3a 04 03 0f 1f 00 09 0f 00 42 5a 04 0b 3b 1e 07 07 0d 5e 24 02 04 00
+63 1e 40 32 00 32 00 46 6c 75 74 65 20 20 20 20 20 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 22
+11 0e 03 05 09 0e 47 39 04 0e 0b 04 00 05 0a 18 42 4d 08 16 11 10 02 05 0a
+1b 42 4c 0a 0b 0f 04 00 09 0f 00 43 5a 08 0b 3b 1f 08 20 02 4a 18 02 04 00
+28 63 00 00 00 32 00 46 6c 75 74 65 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 0e 03 05 09 0e 47 39 04 0e 0b 04 00 05 0d 18 42 4d 08 16 11 10 02 05 0a
+1b 42 4c 0d 0b 0f 04 00 09 0f 00 43 5a 08 0b 3b 1f 08 20 02 4a 18 02 04 00
+28 63 00 00 00 32 00 46 6c 75 74 65 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 23
+13 04 00 05 0e 03 41 35 13 10 13 04 00 05 0e 03 42 48 09 16 0f 00 00 09 0f
+00 43 63 0a 08 0f 00 00 09 0f 00 43 63 09 0e 3c 1f 08 20 02 4a 05 02 04 00
+28 32 00 00 00 32 00 46 6c 75 74 65 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 00 01 0d 45 04 5d 08 03 16 15 12 01 0d 59 04 56 08 02 0b 00 03 09 0d
+46 05 35 08 04 11 00 03 09 0d 14 04 5a 08 03 2b 1e 14 2d 63 32 18 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 20
+00 30 00 00 00 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 00 01 0d 45 02 5d 04 03 16 15 12 01 0d 59 02 56 08 02 12 00 03 09 0d
+46 01 35 04 04 12 00 03 09 0d 14 00 5a 04 03 2b 23 14 07 63 32 18 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 00 01 0d 45 02 4b 04 03 12 15 12 01 0d 59 44 58 04 03 1f 00 03 09 0d
+46 45 3c 04 03 0f 00 03 09 0d 14 04 5b 04 03 02 1c 16 2a 00 36 24 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 00 01 0d 45 01 4b 04 03 12 15 12 01 0d 59 41 58 04 03 1f 00 03 09 0d
+46 42 3c 04 03 0f 00 03 09 0d 14 00 5b 04 03 02 1e 16 0c 00 36 24 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 00 01 0d 45 00 41 04 03 0f 0d 0f 09 0f 00 43 29 04 03 1f 00 03 09 0d
+46 45 33 04 03 0d 00 03 09 0d 14 05 5b 04 03 0a 20 14 35 00 16 24 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 00 01 0d 45 00 41 04 03 0f 0d 0f 09 0f 00 43 29 1f 03 1f 00 03 09 0d
+46 41 33 04 03 0d 00 03 09 0d 14 00 5b 04 03 0a 20 14 0a 00 16 24 02 04 00
+63 32 00 00 01 32 00 46 6c 75 74 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 12 00 09 0d 22 03 3b 08 08 1f 12 00 05 0e 2e 45 34 04 00 19 13 00 05 06
+00 45 53 07 06 10 1a 00 08 0f 00 04 5d 04 0e 3a 1f 09 0f 1e 5e 18 04 04 00
+63 32 00 32 00 32 00 46 6c 75 74 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 10
+00 10 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 12 00 09 0d 22 01 3b 0d 08 1f 12 00 05 0e 2e 42 34 0d 00 19 13 00 05 06
+00 41 53 12 06 10 1a 00 08 0f 00 00 5d 04 0e 3a 1f 09 0f 1e 5e 18 04 04 00
+63 32 00 32 00 32 00 46 6c 75 74 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....5
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 17 00 06 00 00 05 36 09 03 15 1f 00 07 0f 47 05 45 08 03 10 1f 00 01 0f
+00 04 3b 04 03 10 1f 00 09 0f 00 06 57 04 03 3b 23 04 07 00 52 18 02 04 00
+63 32 00 32 00 32 00 46 6c 75 74 65 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flute....5
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 17 00 06 00 00 01 36 09 03 15 1f 00 07 0f 47 01 45 08 03 10 1f 00 01 0f
+00 01 3b 04 03 10 1f 00 09 0f 00 00 57 04 03 3b 23 04 07 00 52 18 02 04 00
+63 32 00 32 00 32 00 46 6c 75 74 65 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Flute
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank C, voice 24
+13 1e 00 09 0e 00 00 63 3f 0b 1f 14 00 05 0e 24 01 51 04 03 1f 14 00 0f 01
+00 41 4d 08 03 0f 1f 00 0b 0f 00 02 63 04 0b 3b 20 11 12 33 56 18 04 04 00
+63 37 0e 00 00 32 00 4a 61 7a 7a 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Floot
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 12
+1b 12 00 09 0d 14 02 42 0d 08 1f 14 00 05 0e 00 42 40 08 10 19 14 00 06 06
+00 03 50 12 06 10 1f 00 08 0f 00 02 5f 04 0e 02 1e 0d 08 1a 5e 18 04 04 00
+63 32 23 00 00 32 00 50 61 6e 20 46 6c 6f 6f 74 20 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Flute1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 15 0f 08 0f 2e 05 46 14 02 1f 06 03 07 09 00 04 3e 0a 04 12 06 03 08 0d
+00 06 3a 00 0a 10 06 02 09 0e 00 06 63 0a 06 7c 2e 0e 09 00 32 0c 02 04 00
+63 32 00 32 00 32 00 50 61 6e 20 46 6c 75 74 65 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Flute1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 15 0f 08 0f 2e 00 46 14 02 1f 06 03 07 09 00 00 3e 0a 04 12 06 03 08 0d
+00 01 3a 00 0a 10 06 02 09 0e 00 01 63 0a 06 7c 2e 0e 09 00 32 0c 02 04 00
+63 32 00 32 00 32 00 50 61 6e 20 46 6c 75 74 65 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Flute2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 12 00 09 0d 22 01 46 10 08 1f 14 00 05 0e 24 44 2e 08 00 19 14 00 06 07
+00 05 37 04 06 10 1f 00 08 0f 00 05 60 04 0e 3b 1f 0d 0e 1e 5e 18 04 04 00
+63 32 00 32 00 32 00 50 61 6e 20 46 6c 75 74 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Flute2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 12 00 09 0d 22 01 46 10 08 1f 14 00 05 0e 24 40 2e 08 00 19 14 00 06 07
+00 00 37 04 06 10 1f 00 08 0f 00 01 60 04 0e 3b 1f 0d 0e 1e 5e 18 04 04 00
+63 32 00 32 00 32 00 50 61 6e 20 46 6c 75 74 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pan Flute2
+** Controls: MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+11 17 01 01 06 00 40 63 0d 03 11 17 01 01 06 00 00 35 04 03 10 04 04 0a 07
+11 00 3b 04 1b 10 04 04 0a 07 11 00 63 04 02 04 63 00 14 37 47 24 04 04 00
+28 32 00 00 00 32 00 50 61 6e 20 46 6c 75 74 65 32 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PanFlute *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 19 07 0f 0f 3b 00 37 18 00 1f 1f 11 0f 0f 00 03 5a 0d 03 0c 19 0a 08 0f
+00 02 59 04 02 0f 1f 04 07 0f 00 01 63 04 03 04 63 00 0c 13 6f 18 02 04 00
+3b 1f 00 00 00 31 00 50 61 6e 46 6c 75 74 65 20 2a 63 63 63 32 32 32 00 02
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Perc Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 12 09 0a 00 07 5a 10 05 1f 1f 1d 07 0f 47 05 48 04 04 15 1f 00 0a 0f
+00 46 63 04 03 13 15 15 09 0a 00 05 63 04 01 04 23 29 07 36 16 18 02 04 00
+63 32 00 32 00 32 00 50 65 72 63 20 46 6c 75 74 65 63 63 63 32 32 32 00 20
+00 40 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Perc Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 12 09 0a 00 01 5a 10 05 1f 1f 1d 07 0f 47 00 48 04 04 15 1f 00 0a 0f
+00 41 63 04 03 13 15 15 09 0a 00 00 63 04 01 04 23 29 07 36 16 18 02 04 00
+63 32 00 32 00 32 00 50 65 72 63 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 40 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercFlute
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 31
+1f 17 11 0a 0d 00 02 55 13 09 1f 19 00 01 0d 00 42 47 0a 00 1f 14 09 09 0b
+00 02 5d 09 06 10 08 00 06 0e 00 42 63 04 0b 43 1c 04 0b 00 5a 05 04 04 00
+63 32 00 00 00 32 00 50 65 72 63 46 6c 75 74 65 20 63 63 63 32 32 32 00 00
+00 00 00 02 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Soft Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 17 00 06 00 00 03 34 07 03 0f 1f 00 07 0f 47 03 3b 08 03 10 1f 00 01 0f
+00 45 2c 04 03 0f 1f 00 09 0f 00 05 5e 08 03 2b 23 12 0a 35 16 18 02 04 00
+63 32 00 32 00 32 00 53 6f 66 74 20 46 6c 75 74 65 63 63 63 32 32 32 00 03
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Soft Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 17 00 06 00 00 00 34 07 03 0f 1f 00 07 0f 47 00 3b 04 03 10 1f 00 01 0f
+00 40 2c 04 03 0f 1f 00 09 0f 00 02 5e 08 03 2b 23 12 0a 35 16 18 02 04 00
+63 32 00 32 00 32 00 53 6f 66 74 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Song Flute
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 12 15 01 0e 02 03 58 08 0b 15 1c 15 0a 0d 00 03 63 08 08 07 01 03 0a 0d
+00 05 63 04 0b 12 01 03 0a 0d 00 06 63 04 0b 2e 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 6f 6e 67 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Song Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 12 15 01 0e 02 00 58 08 0b 15 1c 15 0a 0d 00 00 63 08 08 07 01 03 0a 0d
+00 00 63 04 0b 12 01 03 0a 0d 00 00 63 04 0b 2e 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 6f 6e 67 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Song Flute
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+18 12 15 00 0e 02 00 58 08 0b 15 1c 15 0a 0d 00 00 63 08 08 07 01 03 0a 0d
+00 00 63 04 0b 12 01 03 0a 0d 00 00 63 04 0b 2e 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 6f 6e 67 20 46 6c 75 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthFlute
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+12 18 01 02 0b 16 03 58 21 03 12 18 00 02 0d 00 02 4b 10 13 0d 0e 04 04 07
+00 04 63 16 13 0d 18 03 04 0e 00 01 5e 04 13 14 63 00 0c 00 33 18 02 04 00
+28 32 00 00 00 32 00 53 79 6e 74 68 46 6c 75 74 65 63 63 63 32 32 32 00 40
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY FrenchHorn
+
+
+** Name: Fr.Horn *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 08 03 04 0f 00 02 54 00 00 0a 08 05 07 0f 0a 02 5a 00 06 0e 1f 00 06 0f
+1d 01 63 04 06 16 0d 00 06 0f 00 00 63 00 00 34 16 00 00 00 32 18 02 04 00
+28 63 00 00 00 32 00 46 72 2e 48 6f 72 6e 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FrenchHorn
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 5
+08 05 00 06 00 00 42 47 04 08 0e 1f 00 06 0f 00 42 43 04 00 1f 0e 00 06 00
+0e 43 3b 0b 06 0c 1f 00 06 0f 00 42 61 04 0c 39 1a 19 08 0a 4a 0c 04 04 00
+63 32 1e 00 00 32 00 46 72 65 6e 63 68 48 6f 72 6e 63 63 63 32 32 32 00 00
+20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FrnchHorn1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 05 00 08 00 00 01 4b 04 0b 0f 1f 00 08 0f 00 03 36 04 04 0d 0f 00 08 00
+00 05 39 0b 04 12 1f 00 09 0f 00 06 62 04 0c 3a 25 00 04 00 22 18 02 04 00
+63 63 00 00 00 32 00 46 72 6e 63 68 48 6f 72 6e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FrnchHorn1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 05 00 08 00 00 01 4b 04 0b 0f 1f 00 08 0f 00 00 36 04 04 0d 0f 00 08 00
+00 00 39 0b 04 12 1f 00 09 0f 00 01 62 04 0c 3a 25 00 04 00 22 18 02 04 00
+63 63 00 00 00 32 00 46 72 6e 63 68 48 6f 72 6e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FrnchHorn2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 05 00 08 00 00 05 4e 04 0b 0f 1f 00 08 0f 00 04 48 04 03 0d 0f 00 08 00
+00 05 40 0d 03 12 1f 00 09 0f 00 05 5f 04 0b 1b 25 00 0a 00 32 18 02 04 00
+63 63 00 00 00 32 00 46 72 6e 63 68 48 6f 72 6e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FrnchHorn2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 05 00 08 00 00 02 4e 04 0b 0f 1f 00 08 0f 00 01 48 04 03 0d 0f 00 08 00
+00 00 40 0d 03 12 1f 00 09 0f 00 01 5f 04 0b 1b 25 00 0a 00 32 18 02 04 00
+63 63 00 00 00 32 00 46 72 6e 63 68 48 6f 72 6e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Harmonica
+
+
+** Name: Harmonic.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0d 01 0a 0f 0a 03 4e 08 03 12 0c 06 09 0f 00 04 4f 04 0e 10 1f 04 0c 0f
+00 06 63 08 03 1d 1f 00 0d 0f 00 05 4e 04 03 64 29 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonic.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0d 01 0a 0f 0a 01 4e 08 03 12 0c 06 09 0f 00 01 4f 04 0e 10 1f 04 0c 0f
+00 00 63 08 03 1d 1f 00 0d 0f 00 00 4e 04 03 64 29 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonic.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 0d 01 0a 0f 0a 02 57 04 0b 12 0c 06 09 0f 00 05 56 00 0e 10 1f 04 0c 0f
+00 05 5a 04 0b 1d 1f 00 0d 0f 00 06 63 04 03 6c 29 00 00 00 22 18 02 04 00
+28 02 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonic.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 0d 01 0a 0f 0a 02 57 04 0b 12 0c 06 09 0f 00 01 56 00 0e 10 1f 04 0c 0f
+00 00 5a 04 0b 1d 1f 00 0d 0f 00 00 63 04 03 6c 29 00 00 00 22 18 02 04 00
+28 02 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica*
+** Controls: KV, BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0d 01 09 0d 00 01 42 00 03 0c 08 00 09 0c 00 00 3e 00 06 0e 09 01 09 0f
+00 60 3c 10 03 0d 05 01 09 0f 00 40 63 04 00 19 1f 21 00 25 3a 24 02 04 00
+28 63 00 00 00 32 29 48 61 72 6d 6f 6e 69 63 61 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 16
+10 09 02 06 0d 00 41 3e 04 15 0c 0b 02 03 0e 00 41 4f 04 12 0c 0e 02 08 0d
+00 42 4b 0a 1c 0d 0b 01 09 0e 00 03 63 0a 14 00 23 0f 02 1b 5e 18 04 05 00
+63 28 50 32 00 32 00 48 61 72 6d 6f 6e 69 63 61 20 63 63 63 32 32 32 00 50
+10 50 00 50 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 25
+0e 1f 00 09 0f 00 02 4b 0a 0b 0c 1f 00 09 0f 00 41 5f 04 0b 0c 1f 00 09 0f
+00 41 5c 04 0b 0a 1f 00 0a 0f 00 41 5a 04 0b 06 1d 04 01 27 56 18 02 04 00
+28 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 20 63 63 63 32 32 32 00 40
+00 50 00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 1f 00 09 0f 00 02 4b 0a 0b 0c 1f 00 09 0f 00 41 5f 04 0b 0c 1f 00 09 0f
+00 41 5c 04 0b 0d 1f 00 0a 0f 00 41 5a 04 0b 06 1d 04 01 27 56 18 02 04 00
+28 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 20 63 63 63 32 32 32 00 40
+00 50 00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 09 0f 00 79 29 17 00 1f 1f 00 03 0f 00 5b 3b 04 03 0f 10 09 09 0f
+00 5d 61 04 03 0d 1f 00 08 0f 00 7c 63 08 03 04 1f 00 0b 00 46 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 09 0f 00 79 29 17 00 1f 1f 00 03 0f 00 59 3b 04 03 0f 10 09 09 0f
+00 59 61 04 03 0d 1f 00 08 0f 00 78 63 08 03 04 1f 00 0b 00 46 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 1f 09 0a 00 3a 2f 2c 00 10 0a 05 0a 06 00 1c 4b 04 03 0f 10 09 09 0f
+00 1e 5b 04 03 0d 1f 00 08 0f 00 3d 63 04 03 04 1d 3c 04 00 00 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 32 63 63 63 32 32 32 00 10
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 1f 09 0a 00 3a 2f 2c 00 10 0a 05 0a 06 00 19 4b 04 03 0f 10 09 09 0f
+00 19 5b 04 03 0d 1f 00 08 0f 00 38 63 04 03 04 1d 3c 04 00 10 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 32 63 63 63 32 32 32 00 10
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 09 0f 00 7a 2a 08 00 1f 1f 00 07 0f 00 5a 3b 00 03 0f 10 09 09 0f
+00 5d 5a 08 03 0d 1f 00 08 0f 00 7d 63 04 03 06 1f 00 0b 00 46 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harmonica3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 09 0f 00 7a 2a 08 00 1f 1f 00 07 0f 00 58 3b 00 03 0f 10 09 09 0f
+00 58 5a 08 03 0d 1f 00 08 0f 00 78 63 04 03 06 1f 00 0b 00 46 18 02 04 00
+63 32 00 00 00 32 00 48 61 72 6d 6f 6e 69 63 61 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Oboe
+
+
+** Name: BC1 Oboe
+** Controls: MW (LFO pitch), BC (LFO pitch), BC (LFO amplitude), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 11 00 07 0f 63 40 63 00 1b 0f 0d 00 08 0f 12 40 40 00 1b 0e 18 00 08 0f
+63 78 50 0a 1b 09 0f 00 09 0f 00 78 54 08 1b 22 23 0b 08 0a 56 18 07 04 00
+63 32 00 18 1e 32 63 42 43 31 20 4f 62 6f 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0a 00 02 0c 23 43 33 04 00 1f 0a 00 02 0d 22 42 3a 08 06 10 07 00 0a 0f
+08 01 63 08 08 0f 07 00 0a 0f 09 01 63 0a 0e 04 22 14 19 1b 3a 18 02 04 00
+28 63 00 00 00 32 00 4f 62 6f 65 20 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank B, voice 14
+10 12 00 09 0d 05 01 51 00 03 12 14 00 05 0e 23 41 5b 00 03 10 0a 00 06 0d
+30 02 4b 08 1b 0f 1a 00 0a 0e 06 03 59 08 0b 02 1f 11 08 0e 5e 24 02 04 00
+63 28 19 00 00 32 00 4f 62 6f 65 20 20 20 20 20 20 63 63 63 32 32 32 00 20
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 21
+14 12 00 07 0a 0a 02 53 0a 0b 1f 1f 00 03 0f 00 01 4e 04 0b 15 14 00 05 0a
+09 01 3c 08 0b 12 1f 00 0b 0f 06 03 5a 0a 0b 03 1f 0a 0f 00 52 18 02 04 00
+28 32 00 00 00 32 00 4f 62 6f 65 20 20 20 20 20 20 63 63 63 32 32 32 00 20
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 12 00 07 0d 0a 02 53 0a 0b 1f 1f 00 03 0f 00 01 4e 04 0b 15 14 00 05 0d
+09 01 3c 08 0b 12 1f 00 0b 0f 06 03 5a 0a 0b 03 1f 0a 0f 00 52 18 02 04 00
+28 32 00 00 00 32 00 4f 62 6f 65 20 20 20 20 20 20 63 63 63 32 32 32 00 20
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 04 06 07 0c 00 02 4d 08 0e 10 04 06 07 0c 00 03 4d 04 03 0f 04 06 07 0c
+00 04 50 10 04 10 04 06 07 0c 00 04 5b 04 02 0d 22 07 0c 43 52 0c 02 04 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 04 06 07 0c 00 01 4d 08 0e 10 04 06 07 0c 00 00 4d 04 03 0f 04 06 07 0c
+00 00 50 10 04 10 04 06 07 0c 00 00 5b 04 02 0d 22 07 0c 43 52 0c 02 04 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 04 06 07 0c 00 01 46 0d 0e 10 04 06 07 0c 00 04 45 04 03 0f 04 06 07 0c
+00 05 5f 08 04 10 04 06 07 0c 00 04 5f 08 02 34 22 07 0c 43 52 18 02 04 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 04 06 07 0c 00 01 46 0d 0e 10 04 06 07 0c 00 00 45 04 03 0f 04 06 07 0c
+00 00 5f 08 04 10 04 06 07 0c 00 00 5f 0a 02 34 22 07 0c 43 52 18 02 04 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 11 00 09 0f 63 41 55 00 0c 0f 0d 00 08 0f 12 43 47 00 1c 0d 18 00 08 00
+63 45 49 0a 1b 09 0f 00 09 0f 00 44 50 0a 1b 72 23 25 08 1e 56 18 02 05 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oboe.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 11 00 09 0f 63 41 55 00 0c 0f 0d 00 08 0f 12 40 47 00 1c 0e 18 00 08 00
+63 41 49 0a 1b 09 0f 00 09 0f 00 40 50 0a 1b 72 23 25 08 1e 56 18 02 05 00
+63 63 00 00 00 32 00 4f 62 6f 65 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Oboe
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 10 02 06 0b 1b 04 49 08 0b 14 08 07 07 0b 42 42 35 2a 0b 1e 0c 04 07 0b
+42 44 50 08 0b 16 06 01 09 0b 0a 04 60 0a 03 42 22 0a 11 1e 36 0c 04 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 20 4f 62 6f 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Oboe
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 02 06 0b 1b 00 49 08 0b 14 08 07 07 0b 42 40 35 2a 0b 1e 0c 04 07 0b
+42 40 50 08 0b 16 06 01 09 0b 0a 00 60 0a 03 42 22 0a 11 1e 36 0c 04 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 20 4f 62 6f 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Ocarina
+
+
+** Name: Ocarina
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 18 03 0f 00 04 63 0d 0b 13 03 0f 06 03 00 05 31 0d 12 13 1d 00 0a 0f
+00 06 5d 0d 0b 12 03 1f 09 0e 00 07 5a 0d 13 3c 2e 27 07 36 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 63 61 72 69 6e 61 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ocarina
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 18 03 0f 00 01 63 0d 0b 13 03 0f 06 03 00 00 31 0d 12 13 1d 00 0a 0f
+00 01 5d 0d 0b 12 03 1f 09 0e 00 01 5a 0d 13 3c 2e 27 07 36 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 63 61 72 69 6e 61 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Piccolo
+
+
+** Name: Piccolo *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 12 00 05 0f 2c 40 31 23 06 0c 12 00 05 0f 13 40 3c 13 06 0e 13 00 09 0f
+0a 02 63 12 08 10 13 00 09 0f 0b 01 63 13 09 3c 21 0d 0e 21 4a 11 02 04 00
+28 63 00 00 00 32 00 50 69 63 63 6f 6c 6f 20 20 2a 63 63 63 32 32 32 00 17
+00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 04 0a 09 00 06 32 12 03 15 03 04 0a 08 47 06 63 08 03 0f 04 05 0a 09
+00 06 63 08 03 10 06 04 0a 09 00 05 63 08 03 06 28 29 00 00 12 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 31 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 15 04 0a 09 00 01 32 12 03 15 03 04 0a 08 47 01 63 04 03 15 04 05 0a 09
+00 00 63 04 03 15 06 04 0a 09 00 00 63 08 03 06 28 29 00 00 12 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 1f 0a 0e 00 00 2c 08 03 12 04 0c 0a 0e 47 04 63 08 03 12 09 09 0a 0e
+00 05 63 08 03 12 12 0f 0a 0e 00 05 63 08 03 06 28 22 07 00 22 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 1f 0a 0e 00 00 2c 04 03 12 04 0c 0a 0e 47 01 63 0d 03 12 09 09 0a 0e
+00 03 63 0d 03 12 12 0f 0a 0e 00 00 63 04 03 06 28 22 07 00 22 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 05 05 0a 0e 00 04 4a 19 03 12 05 05 0a 0e 00 04 50 0d 03 12 05 05 0a 0e
+00 04 52 0d 03 12 05 05 0a 0e 00 04 58 0d 03 06 28 29 00 00 12 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piccolo..3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 05 05 0a 0e 00 01 4a 19 03 12 05 05 0a 0e 00 01 50 0d 03 12 05 05 0a 0e
+00 01 52 0d 03 12 05 05 0a 0e 00 00 58 0d 03 06 28 29 00 00 12 18 02 04 00
+63 32 00 32 00 32 00 50 69 63 63 6f 6c 6f 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 4
+
+* SUBCATEGORY Recorder
+
+
+** Name: OrntRecord
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 18 00 09 0c 00 03 4e 16 03 12 16 12 0a 07 00 04 51 08 03 12 12 00 09 0d
+00 05 63 04 03 12 16 0f 09 06 00 05 5e 04 03 34 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 52 65 63 6f 72 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntRecord
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 18 00 09 0c 00 00 4e 16 03 12 16 12 0a 07 00 00 51 08 03 12 12 00 09 0d
+00 00 63 04 03 12 16 0f 09 06 00 00 5e 04 03 34 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 52 65 63 6f 72 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 24
+14 0a 00 0a 0a 00 44 36 08 06 14 00 00 03 0f 00 42 2d 0a 00 14 1f 0f 08 0f
+00 44 32 04 03 11 08 00 0b 0e 02 43 63 04 06 3a 1b 04 0f 06 46 18 02 04 00
+28 43 00 00 00 32 00 52 65 63 6f 72 64 65 72 20 20 63 63 63 31 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 0a 00 0a 0a 00 44 36 08 06 14 00 00 03 0f 00 42 2d 0d 00 14 1f 0f 08 0f
+00 44 32 04 03 11 08 00 0b 0e 02 43 63 04 06 3a 1b 04 0f 06 46 18 02 04 00
+28 43 00 00 00 32 00 52 65 63 6f 72 64 65 72 20 20 63 63 63 31 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1f 16 01 0e 00 01 5d 08 1b 0f 00 03 0a 0d 00 44 61 04 0b 0f 00 03 0a 0d
+00 05 61 04 0b 0f 00 03 0a 0d 00 06 61 04 0b 2e 25 2a 26 36 16 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 16 01 0e 00 01 5d 08 1b 0f 00 03 0a 0d 00 41 61 04 0b 0f 00 03 0a 0d
+00 01 61 04 0b 0f 00 03 0a 0d 00 01 61 04 0b 2e 25 2a 26 36 16 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1f 10 01 0e 00 03 00 08 1b 0d 0a 06 0a 00 00 05 63 08 03 0d 15 07 09 0c
+00 45 63 08 03 0f 12 07 09 0c 00 05 5f 08 03 45 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 10 01 0e 00 00 00 08 1b 0d 0a 06 0a 00 00 00 63 08 03 0d 15 07 09 0c
+00 40 63 08 03 0f 12 07 09 0c 00 00 5f 08 03 45 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.2
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+18 1f 10 00 0e 00 00 00 08 1b 0d 0a 06 0a 00 00 00 63 08 03 0d 15 07 09 0c
+00 40 63 08 03 0f 12 07 09 0c 00 00 5f 08 03 45 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1c 15 0c 0e 00 01 3f 08 1b 13 1d 15 0c 0e 00 06 63 08 03 10 03 03 0a 0d
+00 45 63 04 0b 10 03 03 0a 0d 00 05 63 08 0b 76 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1c 15 0c 0e 00 01 3f 08 1b 13 1d 15 0c 0e 00 00 63 08 03 10 03 03 0a 0d
+00 41 63 04 0b 10 03 03 0a 0d 00 01 63 04 0b 76 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1c 15 0c 0e 00 01 3f 08 1b 13 1d 15 0c 0e 00 05 63 08 03 10 03 03 0a 0d
+00 46 63 04 0b 10 03 03 0a 0d 00 07 63 04 0b 76 20 2a 15 43 26 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Recorder.4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1d 15 0a 0f 00 01 5e 08 13 10 0f 0a 0a 0f 00 01 62 04 0b 0f 09 0a 0c 04
+00 01 5e 04 0b 10 1f 03 09 0f 00 01 63 00 0b 2e 21 2a 00 00 12 18 02 04 00
+63 63 00 00 00 32 00 52 65 63 6f 72 64 65 72 2e 34 63 63 63 32 32 32 00 30
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Saxophone
+
+
+** Name: Alto Sax
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 31 00 52 00 1b 0c 1f 00 09 0f 3a 03 44 08 1b 11 1f 00 08 0f
+00 01 37 12 03 0f 1f 00 08 0f 00 00 63 00 03 78 23 00 00 00 42 18 02 04 00
+63 32 00 00 00 32 00 41 6c 74 6f 20 53 61 78 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 AltSax
+** Controls: KV, BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 31 25 63 00 1c 0c 1f 00 08 0f 3a 25 49 00 1b 11 1f 00 08 0f
+00 1d 35 12 04 0f 1f 00 08 0f 00 3d 63 04 03 28 23 00 00 00 42 18 05 04 00
+63 32 00 0a 56 32 63 42 43 31 20 41 6c 74 53 61 78 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <BC1> Sax
+** Controls: BC (EG amplitude)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 1f 00 09 0f 00 20 44 00 03 10 1f 00 09 0f 2a 20 42 00 03 10 1f 00 09 0f
+00 18 30 12 06 10 1f 00 09 0f 00 38 63 04 03 3a 21 00 00 00 52 18 02 04 00
+63 32 00 00 00 32 63 3c 42 43 31 3e 20 53 61 78 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BCSexyPhon
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: Yamaha TX81Z factory preset, bank C, voice 19
+1d 04 00 06 0e 00 01 51 04 09 1d 1f 00 03 0f 11 01 4b 04 08 1d 0f 00 08 0a
+00 01 46 27 0b 10 1f 00 0a 0f 00 3b 63 08 0b 3a 1e 17 0c 00 52 18 02 0d 0f
+63 32 01 00 00 32 63 42 43 53 65 78 79 50 68 6f 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElectroSax
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 0a 00 09 0e 0d 39 52 00 0e 1f 0b 00 0a 0a 1c 1a 46 00 08 1f 12 00 0a 0d
+09 1a 4c 10 0b 16 1b 00 0a 0f 00 02 63 00 0b 3a 1e 09 02 00 62 18 02 04 00
+28 0b 00 00 00 32 00 45 6c 65 63 74 72 6f 53 61 78 63 63 63 32 32 32 00 20
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GreatDXled
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 00 0a 0f 0c 04 40 08 03 12 0c 06 09 0f 00 05 5c 04 06 1b 1f 04 0c 0f
+00 05 5c 04 03 18 1f 00 0c 0f 00 06 62 04 03 7c 29 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 47 72 65 61 74 44 58 6c 65 64 63 63 63 32 32 32 00 10
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GreatDXled
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 00 0a 0f 0c 01 40 08 03 12 0c 06 09 0f 00 01 5c 04 06 1b 1f 04 0c 0f
+00 00 5c 04 03 18 1f 00 0c 0f 00 00 62 04 03 7c 29 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 47 72 65 61 74 44 58 6c 65 64 63 63 63 32 32 32 00 10
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MelloTenor
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 9
+11 04 00 06 0e 33 01 4c 04 0b 0f 1f 00 03 0f 34 02 50 04 0b 10 0e 00 08 0c
+63 03 44 22 13 10 1f 00 0a 0f 00 02 63 08 0b 3a 1e 11 0b 00 52 0c 04 05 00
+63 32 02 32 00 32 00 4d 65 6c 6c 6f 54 65 6e 6f 72 63 63 63 32 32 32 30 30
+20 30 20 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RaspAlto
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 10
+10 1f 00 08 0f 00 42 4a 00 03 11 1f 00 08 0f 0a 43 51 00 03 11 09 00 08 0d
+00 42 2b 16 06 10 1f 00 09 0f 00 42 63 04 0b 3a 1e 09 09 00 5a 24 04 04 00
+63 32 31 00 00 32 00 52 61 73 70 41 6c 74 6f 20 20 63 63 63 32 32 32 00 10
+00 20 00 54 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax 1
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank C, voice 16
+14 08 00 08 0a 17 03 49 04 0b 10 0c 00 09 0a 21 04 45 04 0b 12 13 00 06 0b
+1b 04 50 0a 0b 14 1f 00 0a 0f 00 01 5f 04 0b 32 20 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 53 61 78 20 20 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 10 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax 1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 08 00 08 0d 17 03 49 04 0b 10 0c 00 09 0d 21 04 45 04 0b 12 13 00 06 0b
+1b 04 50 0a 0b 14 1f 00 0a 0f 00 01 5f 04 0b 32 20 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 53 61 78 20 20 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 10 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank C, voice 17
+10 08 00 08 0a 2c 03 49 04 0b 11 0f 00 09 0a 0f 04 4e 04 0b 15 13 00 06 09
+00 04 41 0e 0b 12 13 00 0a 0a 00 01 5f 08 0b 32 20 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 53 61 78 20 20 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 10 00 60 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax 2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 08 00 08 0d 2c 03 49 04 0b 11 0f 00 09 0d 0f 04 4e 04 0b 15 13 00 06 09
+00 04 41 0e 0b 12 13 00 0a 0d 00 01 5f 08 0b 32 20 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 53 61 78 20 20 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 10 00 60 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax Synth
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 12 04 03 31 03 63 00 0c 0a 1f 00 08 0f 3a 26 59 00 1b 0a 1f 00 08 0f
+00 1d 29 13 04 11 1f 00 08 0f 00 3e 63 04 03 28 23 00 00 00 42 18 05 04 01
+63 32 00 00 00 32 00 53 61 78 20 53 79 6e 74 68 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sax Synth
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 12 04 03 31 01 63 00 0c 0a 1f 00 08 0f 3a 21 59 00 1b 0a 1f 00 08 0f
+00 19 29 13 04 11 1f 00 08 0f 00 38 63 04 03 28 23 00 00 00 42 18 05 04 01
+63 32 00 00 00 32 00 53 61 78 20 53 79 6e 74 68 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone*
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 04 00 06 0e 1d 61 45 04 0b 0f 1f 00 03 0f 36 02 54 04 0b 0c 0e 00 08 0c
+0f 63 4d 22 0b 18 1f 00 0a 0f 00 02 63 08 0b 39 1e 11 0b 00 4a 0c 02 05 00
+63 32 04 00 00 32 23 53 61 78 6f 70 68 6f 6e 65 2a 63 63 63 32 32 32 00 30
+00 30 30 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 01 09 0f 00 01 37 00 03 12 07 04 09 0f 2a 22 4a 04 03 10 04 02 09 0f
+00 1d 3d 12 06 11 03 03 09 0f 00 3c 58 04 03 7b 22 0b 07 00 42 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 31 63 63 63 32 32 32 00 00
+00 20 00 44 00 10 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 01 09 0f 00 01 37 00 03 12 07 04 09 0f 2a 22 4a 00 03 1f 04 02 09 0f
+00 1a 3d 12 06 11 03 03 09 0f 00 38 58 04 03 7b 22 0b 07 00 42 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 31 63 63 63 32 32 32 00 00
+00 20 00 40 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 1e 00 08 0f 00 00 2e 03 03 0e 1f 00 09 0d 2a 22 4b 04 03 11 1f 00 09 0e
+00 1b 3b 12 06 11 05 00 08 0e 00 3b 5e 04 03 3b 21 00 00 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 32 63 63 63 32 32 32 00 00
+00 40 00 14 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 1e 00 08 0f 00 00 37 03 03 0e 1f 00 09 0d 2a 22 4b 00 03 11 1f 00 09 0e
+00 1b 3b 12 06 11 05 00 08 0e 00 38 5e 04 03 3b 21 00 00 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 32 63 63 63 32 32 32 00 00
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 03 01 08 0f 19 00 41 04 03 0f 1f 00 09 0d 4b 23 4f 04 03 1f 03 00 09 0e
+3d 1d 3d 0f 06 10 1e 00 08 0e 00 3d 63 04 03 3b 21 00 00 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 33 63 63 63 32 32 32 00 00
+00 10 00 43 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 03 01 08 0f 19 00 41 00 03 0f 1f 00 09 0d 4b 22 4f 00 03 1f 03 00 09 0e
+3d 1a 3d 15 06 10 1e 00 08 0e 00 39 63 04 03 3b 21 00 00 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 33 63 63 63 32 32 32 00 00
+00 10 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 31 02 52 04 1c 0c 1f 00 07 0f 3a 25 42 00 1b 11 1f 00 08 0f
+00 1c 3d 12 04 0f 1f 00 08 0f 00 3c 63 00 03 78 23 00 00 00 42 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 34 63 63 63 32 32 32 00 00
+00 30 00 04 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 31 02 52 00 1c 0c 1f 00 07 0f 3a 22 42 04 1b 11 1f 00 08 0f
+00 19 3d 12 04 0f 1f 00 08 0f 00 38 63 04 03 78 23 00 00 00 42 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 34 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0f 00 09 0f 0a 03 4f 00 03 11 1f 00 08 0e 14 04 4e 00 0b 11 0f 00 08 0e
+00 05 2f 17 03 11 1f 00 09 0f 00 04 63 04 03 32 1e 11 0a 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 35 63 63 63 32 32 32 00 10
+00 30 00 42 00 30 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0f 00 09 0f 0a 01 4f 00 03 11 1f 00 08 0e 14 01 4e 00 0b 11 0f 00 08 0e
+00 03 2f 17 03 11 1f 00 09 0f 00 01 63 04 03 32 1e 11 0a 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 35 63 63 63 32 32 32 00 10
+00 30 00 42 00 30 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 1e 00 08 0f 00 03 46 04 03 0c 1f 00 09 0d 2a 24 4b 04 03 0f 1f 00 09 0e
+00 1c 39 10 03 11 1e 00 08 0e 00 3c 63 04 03 7b 21 05 09 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 36 63 63 63 32 32 32 00 40
+00 40 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saxophone6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 1e 00 08 0f 00 00 46 04 03 0c 1f 00 09 0d 2a 21 4b 00 03 0f 1f 00 09 0e
+00 19 39 04 03 11 1e 00 08 0e 00 38 63 04 03 7b 21 05 09 00 52 18 02 04 00
+63 32 00 00 00 32 00 53 61 78 6f 70 68 6f 6e 65 36 63 63 63 32 32 32 00 00
+00 30 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SopranoSax
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 1f 00 08 0f 0c 42 2c 04 03 13 1f 00 08 0f 26 42 58 00 03 11 09 00 08 08
+2d 42 1e 16 06 11 1f 00 09 0f 00 44 63 04 0b 02 1e 09 09 00 5a 24 04 04 00
+63 32 31 12 00 32 00 53 6f 70 72 61 6e 6f 53 61 78 63 63 63 32 32 32 00 00
+00 20 00 50 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Trombone
+
+
+** Name: Mute Trmbn
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 00 01 4a 00 03 15 1f 00 08 0f 00 03 2c 00 03 16 19 12 09 0f
+01 05 54 00 0b 12 1f 00 08 0f 00 05 5e 04 03 3a 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 4d 75 74 65 20 54 72 6d 62 6e 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mute Trmbn
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 00 01 4a 00 03 15 1f 00 08 0f 00 00 2c 00 03 16 19 12 09 0f
+01 01 54 00 0b 12 1f 00 08 0f 00 01 5e 04 03 3a 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 4d 75 74 65 20 54 72 6d 62 6e 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 0a 00 08 0d 00 03 4e 04 0e 0c 0a 00 06 0d 00 02 53 04 0e 1f 08 00 08 0d
+14 03 2a 0a 0b 0e 07 00 08 0d 00 00 63 04 0b 3a 1d 00 00 00 52 0c 05 04 00
+28 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 20 2a 63 63 63 32 32 32 00 00
+00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 13
+0e 0b 00 09 0e 0f 02 50 00 0b 10 0c 00 0a 0a 1c 02 47 00 0b 10 11 00 0a 05
+09 03 47 06 0b 0f 18 00 0b 0f 00 02 63 00 0b 3a 20 09 03 00 52 18 02 04 00
+28 32 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 20 20 63 52 63 2f 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 1f 00 08 0f 00 00 42 04 03 0f 1f 00 08 0f 00 00 2e 04 03 1f 0e 00 08 00
+01 00 52 0b 13 13 1f 00 08 0f 00 00 5a 04 04 3a 23 00 00 00 62 0c 02 04 00
+63 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 00 01 52 04 03 15 1f 00 08 0f 00 04 36 04 03 14 0e 00 08 00
+01 05 57 08 13 12 1f 00 08 0f 00 06 5e 04 03 32 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 00 01 52 04 03 15 1f 00 08 0f 00 01 36 04 03 14 0e 00 08 00
+01 01 57 08 13 12 1f 00 08 0f 00 01 5e 04 03 32 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 08 0f 00 01 4f 00 03 15 1f 00 08 0f 00 04 2b 04 03 0f 10 05 08 06
+01 06 50 0b 13 12 1f 00 08 0f 00 04 5d 04 03 3a 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 2e 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trombone.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 08 0f 00 01 4f 00 03 15 1f 00 08 0f 00 02 2b 04 03 0f 10 05 08 06
+01 00 50 0b 13 12 1f 00 08 0f 00 00 5d 04 03 3a 27 00 29 00 22 0c 06 04 00
+63 63 00 00 00 32 00 54 72 6f 6d 62 6f 6e 65 2e 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Trumpet
+
+
+** Name: 2 Trumpets
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 05 00 08 0b 0f 05 58 04 08 10 1f 00 07 0f 0f 05 54 05 0e 0f 10 00 0c 00
+1a 04 2d 0a 0c 10 1f 00 07 0f 00 07 60 04 0b 02 23 19 06 00 52 11 04 04 00
+63 1d 00 08 27 32 00 32 20 54 72 75 6d 70 65 74 73 63 63 63 32 32 32 00 38
+00 31 20 02 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1Trumpet
+** Controls: MW (LFO pitch), BC (EG amplitude)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 1f 00 08 0f 00 38 48 04 0b 0e 1f 00 08 0f 00 20 3c 04 03 10 1f 00 08 0f
+00 38 24 0b 03 12 1f 00 09 0f 00 20 63 04 0b 3a 23 13 04 00 62 18 02 04 00
+63 63 00 00 00 32 63 42 43 31 54 72 75 6d 70 65 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 Trumpt
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 1f 00 08 0f 00 3d 49 04 0b 0e 1f 00 08 0f 00 25 42 04 03 10 1f 00 08 0f
+00 3d 20 0b 03 12 1f 00 09 0f 00 26 63 04 0b 2a 23 13 04 00 62 18 02 04 00
+63 63 00 03 03 32 63 42 43 31 20 54 72 75 6d 70 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FanfarTpts
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 29
+1f 06 06 04 0f 00 40 48 05 00 0c 08 07 05 0f 05 00 52 04 00 0f 07 03 07 0e
+08 03 63 04 06 0f 08 04 05 0f 00 03 63 04 06 7c 1f 00 06 00 4a 11 02 04 00
+63 32 00 00 00 32 00 46 61 6e 66 61 72 54 70 74 73 63 63 63 32 32 32 06 01
+00 38 00 08 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mute Trmpt
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 08 08 0d 00 01 4c 08 00 15 1b 07 08 0a 00 04 43 08 14 0f 10 07 07 09
+02 05 36 0a 14 12 07 09 09 0f 00 06 63 08 0c 1a 22 23 05 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4d 75 74 65 20 54 72 6d 70 74 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mute Trmpt
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 08 08 0d 00 01 4c 04 00 15 1b 07 08 0a 00 00 43 0a 14 0f 10 07 07 09
+02 00 36 0b 14 12 07 09 09 0f 00 00 63 0a 0c 1a 22 23 05 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4d 75 74 65 20 54 72 6d 70 74 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Trmpt
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+11 05 06 07 0d 00 02 32 04 03 12 10 06 07 0d 00 03 55 04 0b 13 16 06 07 09
+00 05 4a 04 13 12 10 06 07 0f 01 04 63 04 0b 7b 24 00 0c 00 52 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 20 54 72 6d 70 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Trmpt
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 05 06 07 0d 00 00 32 04 03 12 10 06 07 0d 00 00 55 04 0b 13 16 06 07 09
+00 00 4a 04 13 12 10 06 07 0f 01 00 63 04 0b 7b 24 00 0c 00 52 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 20 54 72 6d 70 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet *
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 09 00 07 0e 0a 53 52 04 10 15 1f 00 09 0f 00 2a 63 04 03 15 1f 00 09 0f
+00 2a 63 04 04 15 1f 00 09 0f 00 12 63 04 02 3d 63 00 0e 00 4a 18 02 04 00
+28 63 00 48 00 32 00 54 72 75 6d 70 65 74 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0c 05 00 06 0f 00 02 49 04 03 19 1f 00 07 0f 0b 03 47 04 03 12 0b 00 01 0f
+0d 02 3a 04 03 10 1f 00 09 0f 00 42 5a 04 0c 02 1c 19 00 00 5e 18 04 04 00
+63 0b 00 00 19 32 63 54 72 75 6d 70 65 74 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 1f 00 08 0f 00 38 48 04 0b 0e 1f 00 08 0f 00 20 3c 04 03 10 1f 00 08 0f
+00 38 24 0b 03 12 1f 00 09 0f 00 20 63 04 0b 3a 23 13 04 00 62 18 02 04 00
+63 63 00 00 00 32 00 20 20 20 54 72 75 6d 70 65 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 11
+12 10 00 09 0a 0a 01 4e 04 0b 13 0e 00 0a 0a 1c 02 43 04 0b 10 0f 00 0a 05
+09 03 40 06 0b 14 18 00 0b 0f 00 02 63 04 0b 3a 1f 09 04 00 62 18 02 04 00
+28 13 00 00 00 32 00 54 72 75 6d 70 65 74 20 20 31 63 63 63 32 32 32 00 00
+00 30 00 30 00 50 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 10 00 09 0d 0d 01 4e 04 0b 13 0e 00 0a 0a 1c 02 43 04 0b 10 0f 00 0a 05
+09 03 40 06 0b 14 18 00 0b 0f 00 02 63 04 0b 3a 1f 09 04 00 62 18 02 04 00
+28 13 00 00 00 32 00 54 72 75 6d 70 65 74 20 20 31 63 63 63 32 32 32 00 00
+00 30 00 30 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 12
+10 0e 00 03 0e 00 01 4e 04 03 0c 0e 00 03 0e 28 01 40 04 03 0c 0c 00 09 00
+00 07 33 03 03 13 09 00 0a 0f 12 04 63 04 03 3a 20 14 1a 00 32 18 02 04 00
+63 3c 00 00 00 32 00 54 72 75 6d 70 65 74 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet 3
+** Description: A trumpet similar to DX11 factory preset 'Trumpet 2'
+** Controls: KV
+** Source: Art Hitzeman
+0e 0d 00 03 0e 00 01 4e 00 03 0a 0d 00 03 0e 28 01 40 04 03 0a 0b 00 09 00
+00 07 33 03 03 11 08 00 0a 0f 12 04 63 04 03 3a 20 14 1a 00 32 24 02 04 00
+63 00 00 00 00 32 00 54 72 75 6d 70 65 74 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 07 09 0f 00 02 50 04 0a 0f 0f 05 0a 00 00 06 46 07 13 0f 07 09 07 0b
+00 06 42 04 0b 12 07 05 0a 0d 00 07 63 04 04 7a 1d 1e 0f 00 42 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 03 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 07 09 0f 00 02 50 04 0a 0f 0f 05 0a 00 00 01 46 07 13 0f 07 09 07 0b
+00 00 42 04 0b 12 07 05 0a 0d 00 01 63 04 04 7a 1d 1e 0f 00 42 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 07 09 0f 00 41 4e 04 0a 0f 0f 05 0a 00 00 04 41 04 13 0f 10 06 07 0e
+02 06 46 0b 0b 12 07 05 0a 0d 00 06 63 04 04 3a 23 1e 17 10 36 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 07 09 0f 00 41 4e 04 0a 0f 0f 05 0a 00 00 00 41 04 13 0f 10 06 07 0e
+02 00 46 0b 0b 12 07 05 0a 0d 00 01 63 04 04 3a 23 1e 17 10 36 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 06 08 0d 00 02 59 04 0a 15 1c 06 08 0c 00 04 4f 04 15 0f 10 06 09 0e
+02 06 49 0d 09 13 07 06 09 0d 00 06 63 04 04 2a 23 00 00 00 22 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 06 08 0d 00 02 59 04 0a 15 1c 06 08 0c 00 00 4f 04 15 0f 10 06 09 0e
+02 00 49 0d 09 13 07 06 09 0d 00 01 63 04 04 2a 23 00 00 00 22 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 06 08 0d 00 42 53 04 0a 15 1c 06 08 0c 00 03 4d 04 13 0f 03 06 07 09
+02 06 31 10 0a 13 07 06 09 0d 00 07 63 04 04 3a 22 00 08 2e 46 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 34 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 06 08 0d 00 42 53 04 0a 15 1c 06 08 0c 00 00 4d 04 13 0f 03 06 07 09
+02 00 31 10 0a 13 07 06 09 0d 00 01 63 04 04 3a 22 00 08 2e 46 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 34 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 0a 06 08 0d 00 02 4d 04 0a 15 1c 06 08 0c 00 05 46 04 13 0f 03 06 07 09
+02 06 34 07 0a 15 07 06 09 0d 00 06 63 04 04 2a 22 23 05 00 22 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 35 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet..5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 0a 06 08 0d 00 02 4d 04 0a 15 1c 06 08 0c 00 00 46 04 13 0f 03 06 07 09
+02 00 34 07 0a 15 07 06 09 0d 00 01 63 04 04 2a 22 23 05 00 22 0c 02 04 00
+63 63 00 00 00 32 00 54 72 75 6d 70 65 74 2e 2e 35 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet81Z
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 1
+0f 1f 04 08 0f 00 3a 51 04 0b 0e 1f 00 08 0f 00 22 4b 04 03 0f 1a 0b 08 0d
+00 3b 36 09 03 12 1f 00 08 0f 00 22 5d 04 0b 3a 1e 19 05 00 52 18 04 04 00
+63 32 00 00 00 32 00 54 72 75 6d 70 65 74 38 31 5a 63 63 63 32 32 32 00 00
+00 50 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TrumptSolo
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 18
+13 00 00 04 0f 00 00 3a 0b 06 0f 1f 03 0a 0f 05 01 5d 05 00 11 0e 06 0a 09
+08 00 36 03 06 13 1f 01 08 0f 00 02 63 04 03 3b 1d 03 0f 01 42 11 07 04 00
+63 32 00 00 00 32 00 54 72 75 6d 70 74 53 6f 6c 6f 63 63 63 32 32 32 00 61
+00 11 00 06 00 08 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Trumpet V
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 1f 04 08 0f 00 3a 52 04 0b 0e 1f 00 08 0f 00 22 4b 04 03 10 1f 0b 08 0f
+00 3b 2f 0b 03 12 1f 00 09 0f 00 22 63 04 0b 3a 1e 13 04 00 42 18 02 04 00
+63 63 00 00 00 00 00 54 72 75 6d 70 65 74 20 56 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Tuba
+
+
+** Name: << Tuba >>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 05 06 0d 45 03 4c 00 03 14 0d 02 07 09 59 04 48 00 03 0f 10 03 07 09
+46 05 48 00 03 0e 0f 03 08 0f 14 06 63 04 03 2b 23 00 00 00 32 0c 02 04 00
+63 32 00 00 01 32 00 3c 3c 20 54 75 62 61 20 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: << Tuba >>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 05 06 0d 45 01 4c 00 03 14 0d 02 07 09 59 00 48 00 03 0f 10 03 07 09
+46 00 48 00 03 0e 0f 03 08 0f 14 01 63 04 03 2b 23 00 00 00 32 0c 02 04 00
+63 32 00 00 01 32 00 3c 3c 20 54 75 62 61 20 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tuba
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank C, voice 15
+0f 0f 00 09 09 15 01 52 00 03 10 0a 00 06 0a 00 01 47 00 03 10 0c 00 09 0b
+00 01 45 00 03 10 0a 00 0b 0a 0e 02 63 00 03 3a 1f 00 00 00 52 0c 02 04 00
+63 32 00 00 00 32 00 54 75 62 61 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tuba
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0f 00 09 09 15 01 52 00 03 10 0d 00 06 0a 00 01 47 00 03 10 0c 00 09 0b
+00 01 45 00 03 10 0d 00 0b 0d 0e 02 63 00 03 3a 1f 00 00 00 52 0c 02 04 00
+63 32 00 00 00 32 00 54 75 62 61 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Whistle
+
+
+** Name: Whistle *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 08 03 0b 10 00 09 0e 00 00 63 08 02 0a 0f 1c 09 00
+00 00 63 08 00 0c 0f 00 09 0e 00 00 63 08 06 05 20 16 15 43 52 18 0c 04 00
+28 63 00 00 00 32 00 57 68 69 73 74 6c 65 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 1c 15 03 0e 00 03 00 08 03 13 06 03 0a 0d 00 44 00 08 03 13 06 03 0a 0d
+00 45 00 08 03 13 06 03 0a 0d 00 06 63 08 03 3e 25 0b 26 63 36 18 04 04 00
+28 32 00 00 00 32 00 57 68 69 73 74 6c 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 1c 15 03 0e 00 00 00 08 03 13 06 03 0a 0d 00 40 00 08 03 13 06 03 0a 0d
+00 40 00 08 03 13 06 03 0a 0d 00 00 63 08 03 3e 25 0b 26 63 36 18 04 04 00
+28 32 00 00 00 32 00 57 68 69 73 74 6c 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 1f 07 05 0f 47 05 62 0d 05 08 1f 02 05 0f 00 03 3e 0d 02 07 1f 02 05 0f
+4e 04 3c 0d 0b 07 1f 02 05 0f 00 04 63 0d 1b 57 22 00 14 00 32 0c 04 04 00
+28 32 00 00 00 32 00 57 68 69 73 74 6c 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 1f 07 05 0f 47 01 62 0d 05 08 1f 02 05 0f 00 01 3e 0d 02 07 1f 02 05 0f
+4e 01 3c 0d 0b 07 1f 02 05 0f 00 00 63 0d 1b 57 22 00 14 00 32 0c 04 04 00
+28 32 00 00 00 32 00 57 68 69 73 74 6c 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..3
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 00 08 00 00 03 42 08 03 19 10 00 09 08 00 04 42 04 03 0f 09 00 08 0f
+00 06 5d 08 03 0d 08 00 09 0e 1a 06 62 08 03 3c 23 09 0b 00 42 18 02 04 00
+63 32 00 00 00 33 00 57 68 69 73 74 6c 65 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistle..3
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 00 08 00 00 01 42 08 03 19 10 00 09 08 00 00 42 04 03 0f 09 00 08 0f
+00 01 5d 08 03 0d 08 00 09 0e 1a 01 62 08 03 3c 23 09 0b 00 42 18 02 04 00
+63 32 00 00 00 33 00 57 68 69 73 74 6c 65 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whistling
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 20
+1f 0f 00 08 00 00 04 4e 07 03 19 10 00 09 08 00 00 38 01 03 0f 09 00 08 0f
+00 02 4e 08 03 0d 08 00 09 0e 1a 02 5e 08 03 3c 23 03 0f 00 62 18 02 04 00
+63 32 00 00 00 33 00 57 68 69 73 74 6c 69 6e 67 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 5
+
+* CATEGORY STRINGS
+
+* SUBCATEGORY Strings
+
+** Name: AnlgStr..1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0a 00 07 0e 28 04 51 04 08 0e 05 12 08 0c 00 00 4f 04 04 0c 0a 00 07 0e
+07 05 63 04 00 0d 04 12 08 0c 14 04 5f 04 03 2c 26 21 20 47 12 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 31 63 63 63 32 32 32 00 40
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 0a 00 07 0e 28 01 51 04 08 0e 05 12 08 0c 00 00 4f 04 04 0c 0a 00 07 0e
+07 00 63 04 00 0d 04 12 08 0c 14 00 5f 04 03 2c 26 21 20 47 12 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 31 63 63 63 32 32 32 00 40
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 0a 00 07 0e 1e 02 49 04 08 0d 0c 01 07 0e 00 01 4d 04 04 0d 09 00 07 0f
+05 04 5b 04 00 0b 09 00 07 0e 14 03 5f 04 02 74 26 21 11 47 32 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 32 63 63 63 32 32 32 00 50
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 0a 00 07 0e 1e 00 49 04 08 0d 0c 01 07 0e 00 00 4d 04 04 0d 09 00 07 0f
+05 00 5b 04 00 0b 09 00 07 0e 14 00 5f 04 02 74 26 21 11 47 32 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 32 63 63 63 32 32 32 00 50
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 09 03 06 0e 28 02 39 0d 0b 0e 0a 01 04 0e 00 02 4b 08 04 0d 0a 02 05 0f
+0a 04 59 08 03 0b 0a 01 05 0d 14 04 5d 08 0b 2c 26 21 16 3b 22 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 33 63 63 63 32 32 32 00 20
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..3
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 09 03 06 0e 28 00 39 0d 0b 0e 0a 01 04 0e 00 00 4b 08 04 0d 0a 02 05 0f
+0a 00 59 08 03 0b 0a 01 05 0d 14 00 5d 08 0b 2c 26 21 16 3b 22 0c 06 04 00
+63 32 00 32 00 32 00 41 6e 6c 67 53 74 72 2e 2e 33 63 63 63 32 32 32 00 20
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 00 05 0e 00 42 44 0d 02 0d 07 0e 06 06 0e 44 57 08 04 0c 1f 00 06 0f
+52 05 53 0d 04 0b 1f 06 08 0f 0a 03 63 01 04 2d 22 0a 0a 08 26 0c 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 34 63 63 63 32 32 32 00 30
+00 20 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 00 05 0e 00 40 44 0d 02 0d 07 0e 06 06 0e 40 57 08 04 0c 1f 00 06 0f
+52 00 53 0d 04 0b 1f 06 08 0f 0a 00 63 01 04 2d 22 0a 0a 08 36 0c 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 34 63 63 63 32 32 32 00 30
+00 20 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 03 1e 05 04 56 04 48 04 06 0c 03 1e 05 04 23 01 49 0a 0d 09 1f 01 08 0f
+15 03 57 08 08 09 1f 00 05 0f 25 03 5b 04 02 54 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 35 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 03 1e 05 04 56 00 48 04 06 0c 03 1e 05 04 23 00 49 0a 0d 09 1f 01 08 0f
+15 00 57 08 08 09 1f 00 05 0f 25 00 5b 04 02 54 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 35 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 03 1e 05 04 56 04 41 1f 06 0d 03 1e 05 04 23 02 48 0d 0d 0a 1f 01 08 0f
+15 03 5b 08 08 0a 1f 00 05 0f 25 04 5d 08 01 54 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 36 63 63 63 32 32 32 00 50
+00 20 00 30 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..6
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 03 1e 05 04 56 00 41 1f 06 0d 03 1e 05 04 23 00 48 0d 0d 0a 1f 01 08 0f
+15 00 5b 08 08 0a 1f 00 05 0f 25 00 5d 08 01 54 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 36 63 63 63 32 32 32 00 50
+00 20 00 30 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0f 04 05 0d 56 04 3a 1f 06 0e 0b 01 05 0e 23 02 4b 08 05 0d 15 03 08 0f
+15 04 57 08 00 0b 04 00 05 0f 25 04 5b 08 01 6c 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..7
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0f 04 05 0d 56 00 3a 1f 06 0e 0b 01 05 0e 23 00 4b 08 05 0d 15 03 08 0f
+15 00 57 08 00 0b 04 00 05 0f 25 00 5b 08 01 6c 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 0b 05 05 0d 0a 42 44 08 11 0d 04 02 06 0d 0e 43 5c 08 02 0c 07 06 06 0f
+52 05 56 19 03 0a 03 06 08 0f 0a 04 63 08 00 2d 22 0e 0c 08 56 0c 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 38 63 63 63 32 32 32 00 60
+00 30 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..8
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0b 05 05 0d 0a 40 44 08 11 0d 04 02 06 0d 0e 40 5c 08 02 0c 07 06 06 0f
+52 00 56 19 03 0a 03 06 08 0f 0a 00 63 08 00 2d 22 0e 0c 08 56 0c 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 38 63 63 63 32 32 32 00 60
+00 30 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..9
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 0b 05 05 0e 00 42 42 04 03 0d 0c 00 05 0e 0e 41 3c 08 0e 0a 09 06 06 0f
+52 04 5e 08 02 0a 03 00 06 0f 0a 04 5d 08 04 24 1e 0e 0c 08 56 00 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 39 63 63 63 32 32 32 00 30
+00 50 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr..9
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 0b 05 05 0e 00 40 42 0d 03 0d 0c 00 05 0e 0e 40 3c 13 0e 0a 09 06 06 0f
+52 00 5e 04 02 0c 03 00 06 0f 0a 00 5d 08 04 24 22 0e 0c 08 56 00 07 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 2e 39 63 63 63 32 32 32 00 30
+00 10 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr.10
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 03 1e 05 04 56 03 4c 04 00 0c 03 1e 05 04 23 02 48 04 0e 09 1f 01 08 0f
+15 04 5f 04 0e 09 1f 00 05 0f 25 03 60 04 06 54 17 13 29 00 32 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 31 30 63 63 63 32 32 32 00 00
+00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr.10
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 03 1e 05 04 56 00 4c 00 00 0c 03 1e 05 04 23 00 48 08 0e 09 1f 01 08 0f
+15 00 5f 00 0e 09 1f 00 05 0f 25 00 60 00 06 54 17 13 29 00 32 0c 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 31 30 63 63 63 32 32 32 00 00
+00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr.11
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 0b 02 05 0c 23 03 49 04 08 10 03 1e 05 04 58 03 48 0d 00 0c 0b 01 07 0e
+26 05 5c 08 06 0c 1f 00 05 0f 25 03 60 04 03 24 21 19 0e 00 22 24 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 31 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgStr.11
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 0b 02 05 0c 23 00 49 04 08 10 03 1e 05 04 58 00 48 0d 00 0c 0b 01 07 0e
+26 00 5c 08 06 0c 1f 00 05 0f 25 00 60 04 03 24 21 19 0e 00 22 24 0c 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 53 74 72 2e 31 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 String
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 03 1e 05 04 56 04 53 0d 06 0c 03 1e 05 04 23 3c 52 08 0d 09 1f 01 08 0f
+15 05 57 08 08 09 1f 00 05 0f 25 06 5b 04 01 64 20 0f 0a 00 52 0c 0c 04 00
+63 32 00 05 09 32 63 42 43 31 20 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 03 02 04 08 2d 02 4a 08 08 17 0c 07 01 0f 3f 02 3d 0d 04 0c 0b 04 07 0f
+12 04 61 08 05 0c 08 00 06 0b 25 04 5b 08 06 2c 21 1e 0f 00 22 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 31 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 03 02 04 08 2d 00 4a 08 08 1f 0c 07 01 0f 3f 00 3d 1c 04 09 10 04 07 0f
+12 00 61 08 05 0d 08 00 06 0b 25 00 5b 04 06 2c 21 1e 0f 00 22 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 31 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 03 02 04 08 2d 03 46 08 0b 16 0c 07 01 0f 3f 02 49 04 01 09 10 04 07 0f
+12 04 59 08 05 0a 08 00 06 0b 25 04 60 08 05 74 21 1e 0f 00 32 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 10 00 30 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 03 02 04 08 2d 00 46 13 0b 16 0c 07 01 0f 3f 00 49 08 01 09 10 04 07 0f
+12 00 59 04 05 0a 08 00 06 0b 25 00 60 08 05 74 21 1e 0f 00 32 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 10 00 30 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 05 01 05 08 2d 03 50 08 03 15 0a 01 05 0f 3f 03 38 13 00 0a 10 01 05 0f
+12 03 59 08 03 0a 07 01 05 0b 25 04 5b 08 06 2c 21 1e 0f 00 22 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 33 63 63 63 32 32 32 00 10
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DualStr..3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 05 01 05 08 2d 00 50 08 03 15 0a 01 05 0f 3f 00 38 13 00 0a 10 01 05 0f
+12 00 59 08 03 0a 07 01 05 0b 25 00 5b 08 06 2c 21 1e 0f 00 22 18 0c 04 00
+63 32 00 00 00 32 00 44 75 61 6c 53 74 72 2e 2e 33 63 63 63 32 32 32 00 10
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ELKA Strg1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 16 03 04 0e 00 04 58 0d 02 18 03 03 05 08 00 04 5b 08 00 0f 04 03 07 0f
+00 04 63 0d 06 09 10 03 05 0f 00 07 5f 08 05 24 21 23 0f 00 12 00 05 04 00
+63 63 63 00 00 32 00 45 4c 4b 41 20 53 74 72 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ELKA Strg1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 16 03 04 0e 00 01 58 0d 02 18 03 03 05 08 00 01 5b 08 00 0f 04 03 07 0f
+00 00 63 0d 06 09 10 03 05 0f 00 01 5f 08 05 24 21 23 0f 00 12 00 05 04 00
+63 63 63 00 00 32 00 45 4c 4b 41 20 53 74 72 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ELKA Strg2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 16 03 04 0e 00 03 4b 08 0a 14 03 03 05 08 00 04 51 04 00 0b 04 03 07 0f
+00 05 63 08 06 0b 10 03 05 0f 00 06 63 04 0d 7c 23 19 14 00 42 18 05 04 00
+63 63 63 00 00 32 00 45 4c 4b 41 20 53 74 72 67 32 63 63 63 32 32 32 00 00
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ELKA Strg2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 16 03 04 0e 00 01 4b 08 0a 14 03 03 05 08 00 01 51 04 00 0b 04 03 07 0f
+00 00 63 08 06 0b 10 03 05 0f 00 00 63 04 0d 7c 23 19 14 00 42 18 05 04 00
+63 63 63 00 00 32 00 45 4c 4b 41 20 53 74 72 67 32 63 63 63 32 32 32 00 00
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HiString 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 21
+0b 04 00 04 0f 14 02 49 09 06 0a 07 00 04 0f 14 02 51 0a 00 08 1f 00 05 0f
+00 01 63 09 06 0a 1f 00 05 0f 00 01 63 0a 00 3c 1f 06 09 00 52 05 04 04 00
+63 32 00 00 00 32 00 48 69 53 74 72 69 6e 67 20 31 63 63 63 32 32 32 00 02
+00 30 00 32 00 10 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HiString 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 30
+17 04 00 04 0f 14 02 49 09 06 19 07 00 04 0f 14 02 51 0a 00 15 1f 00 05 0f
+00 01 63 09 06 14 1f 00 05 0f 00 01 63 0a 00 3c 1f 06 09 00 52 05 04 04 00
+63 32 00 00 00 32 00 48 69 53 74 72 69 6e 67 20 32 63 63 63 32 32 32 30 02
+20 30 00 32 00 10 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Kalimba *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 00 1f 01 00 00 00 3f 04 0e 1a 0d 1f 0f 00 00 00 32 08 1b 1a 0c 1f 05 00
+00 01 63 08 08 1e 12 1f 09 00 00 01 63 34 13 04 1c 00 00 00 42 18 02 04 00
+28 32 00 00 00 32 00 4b 61 6c 69 6d 62 61 20 20 2a 63 63 63 32 32 32 00 30
+00 00 00 00 09 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LowString
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 22
+0b 04 00 04 0f 14 02 49 05 06 0a 07 00 04 0f 14 02 55 04 00 09 1f 00 05 0f
+00 01 63 09 06 08 1f 00 05 0f 00 01 63 04 00 3c 1d 06 0a 00 52 05 04 04 00
+63 32 00 00 00 32 00 4c 6f 77 53 74 72 69 6e 67 20 63 63 63 32 32 32 00 01
+00 38 00 32 00 18 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntPluck1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 19 16 01 0d 00 02 52 19 03 1f 09 0a 07 0c 00 02 4e 00 03 1b 15 06 0c 0d
+00 05 36 16 03 1f 0a 04 06 0c 00 05 63 04 0b 7a 15 00 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 50 6c 75 63 6b 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntPluck1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 19 16 01 0d 00 00 52 19 03 1f 09 0a 07 0c 00 00 4e 00 03 1b 15 06 0c 0d
+00 00 36 16 03 1f 0a 04 06 0c 00 00 63 04 0b 7a 15 00 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 50 6c 75 63 6b 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntPluck1
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 19 16 00 0d 00 00 52 19 03 1f 09 0a 07 0c 00 00 4e 00 03 1b 15 06 0c 0d
+00 00 36 16 03 1f 0a 04 06 0c 00 00 63 04 0b 7a 15 00 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 50 6c 75 63 6b 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntPluck2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 07 19 07 0f 00 02 63 04 03 18 0c 0f 07 0c 00 03 41 2d 13 18 0c 0f 07 0c
+00 06 63 04 0b 16 0f 16 06 0c 00 04 63 04 0b 7c 15 00 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 50 6c 75 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntPluck2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 07 19 07 0f 00 00 63 04 03 18 0c 0f 07 0c 00 00 41 2d 13 18 0c 0f 07 0c
+00 00 63 04 0b 16 0f 16 06 0c 00 00 63 04 0b 7c 15 00 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 50 6c 75 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizz. 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 25
+1f 1f 08 0a 0a 09 00 3c 04 03 1d 1d 11 0f 0a 00 01 63 04 03 1c 12 00 0b 00
+00 01 63 04 03 1f 11 0e 0f 09 00 01 5a 04 03 3e 23 00 0a 00 32 18 02 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 2e 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizz. 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 08 0a 0d 09 00 3c 04 03 1d 1d 11 0f 0a 00 01 63 04 03 1c 12 00 0b 00
+00 01 63 04 03 1f 11 0e 0f 09 00 01 5a 04 03 3e 23 00 0a 00 32 18 02 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 2e 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizz. 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 26
+1d 10 0a 09 0f 00 01 41 04 03 1f 1f 16 0a 0a 00 00 4a 04 03 1f 1f 1f 0f 00
+00 01 51 00 03 1f 13 11 0f 00 00 01 63 04 03 39 23 00 00 00 32 18 02 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 2e 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizz. 2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 10 0a 09 0f 00 01 41 04 03 1f 1f 16 0a 0d 00 00 4a 04 03 1f 1f 1f 0f 00
+00 01 51 00 03 1f 13 11 0f 00 00 01 63 04 03 39 23 00 00 00 32 18 02 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 2e 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizzicato*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 13 15 0f 00 2b 04 58 04 03 1f 1f 07 0a 0c 00 01 54 04 06 1f 0d 00 0a 00
+00 01 5b 04 00 1e 17 10 07 0b 00 02 63 04 03 01 23 00 00 00 32 18 02 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 69 63 61 74 6f 2a 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pizzicato
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank B, voice 23
+1b 18 15 0f 0a 00 01 61 04 03 1f 1f 00 07 0c 00 01 54 04 06 1f 0d 00 08 00
+00 01 5b 04 03 1f 10 00 06 00 00 01 63 04 03 39 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 50 69 7a 7a 69 63 61 74 6f 20 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ReverbStrg
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 25
+0b 04 00 04 0f 00 01 49 05 06 0a 07 00 04 0f 00 01 49 04 00 09 1f 00 05 0f
+00 01 63 09 06 09 1f 00 05 0f 00 01 63 0a 00 3c 1d 08 0a 00 52 05 04 04 00
+63 32 00 00 00 32 00 52 65 76 65 72 62 53 74 72 67 63 63 63 32 32 32 00 31
+00 28 00 32 00 30 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StrgPad A
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 04 00 04 0f 14 02 48 03 01 0a 07 00 04 0f 14 02 50 04 04 09 1f 00 05 0f
+00 01 63 03 01 09 1f 00 05 0f 00 01 63 04 04 3c 21 06 0c 00 52 05 04 04 00
+63 32 00 0c 00 32 00 53 74 72 67 50 61 64 20 41 20 63 63 63 32 32 32 00 16
+00 38 00 36 00 18 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StrgPad B
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 04 00 04 0f 14 02 47 05 02 0a 07 00 04 0f 14 02 4e 03 00 09 1f 00 05 0f
+00 01 63 04 06 08 1f 00 05 0f 00 01 63 03 00 3c 1f 06 13 00 52 05 04 04 00
+63 32 00 11 00 32 00 53 74 72 67 50 61 64 20 42 20 63 63 63 32 32 32 00 11
+00 36 00 38 00 16 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Stringed *
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 04 0e 0a 50 45 09 06 1f 00 00 04 0e 0a 40 4c 0a 00 09 07 00 06 0e
+00 02 63 09 10 09 07 00 06 0e 20 02 63 0a 16 3c 1c 00 0b 00 4a 05 02 04 00
+28 63 00 00 00 32 10 53 74 72 69 6e 67 65 64 20 2a 63 63 63 32 32 32 00 02
+00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 03 02 04 08 41 12 42 04 0b 0a 0c 07 03 0f 63 24 39 16 00 0b 10 04 07 0f
+12 1b 61 08 03 0b 07 05 05 0d 25 1b 5c 04 02 24 21 23 0c 00 22 18 0c 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 45 6e 73 31 63 63 63 32 32 32 00 30
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 03 02 04 08 41 00 42 04 0b 16 0c 07 03 0f 63 00 3f 19 00 0b 10 04 07 0f
+12 00 61 04 03 0b 07 05 05 0d 25 00 5c 08 02 24 21 23 0c 00 22 18 0c 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 45 6e 73 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 01 02 05 08 41 02 4f 08 0b 16 0c 07 06 0f 63 02 3b 08 00 09 10 04 06 0f
+12 03 60 0d 03 0b 08 05 06 0d 25 03 5e 08 02 2c 21 23 0c 00 22 0c 0c 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 45 6e 73 32 63 63 63 32 32 32 00 20
+00 60 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 01 02 05 08 41 00 4f 04 0b 16 0c 07 06 0f 63 00 3b 13 00 09 10 04 06 0f
+12 00 60 0d 03 0b 08 05 06 0d 25 00 5e 08 02 2c 21 23 0c 00 22 0c 0c 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 45 6e 73 32 63 63 63 32 32 32 00 00
+00 60 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 0a 07 0e 0a 02 4d 04 0e 0a 06 1a 08 05 28 02 34 08 0e 0f 09 07 06 0f
+1e 03 63 04 04 0a 06 1a 08 05 28 03 5f 08 0e 2c 21 2e 1e 09 21 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 33 63 63 63 32 32 32 00 40
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 15 0a 07 0e 0a 00 4d 04 0e 0a 06 1a 08 05 28 00 34 13 0e 0f 09 07 06 0f
+1e 00 63 04 04 0a 06 1a 08 05 28 00 5f 08 0e 2c 21 2e 1e 09 12 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 33 63 63 63 32 32 32 00 40
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 10 06 04 0e 39 01 50 08 00 13 09 00 04 0e 14 02 44 08 05 0b 10 00 05 0e
+14 04 63 08 03 0b 10 00 07 0e 14 04 5f 0d 05 2c 1c 00 0f 00 32 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 34 63 63 63 32 32 32 00 20
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 10 06 04 0e 39 00 50 04 00 13 09 00 04 0e 14 00 44 08 05 0f 10 00 05 0e
+14 00 63 08 03 0f 10 00 07 0e 14 00 5f 08 05 2c 21 00 0f 00 32 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 0a 00 05 0d 39 03 44 04 06 0b 09 00 05 0e 0a 02 39 04 0b 0b 09 06 06 0c
+0c 04 5e 08 04 0b 0b 00 05 0e 0a 03 60 04 02 24 21 0a 0e 00 32 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 35 63 63 63 32 32 32 00 40
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0f 00 05 0d 39 00 44 08 06 0b 09 00 05 0e 0a 00 39 04 0b 0f 09 06 06 0c
+0c 00 5e 08 04 0c 0b 00 05 0e 0a 00 60 08 02 24 21 0a 0e 00 32 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 35 63 63 63 32 32 32 00 40
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0f 00 06 0d 39 01 50 08 06 15 0f 00 06 0d 0a 03 48 13 0b 0b 09 06 06 0c
+0c 02 62 08 04 0b 17 00 06 0e 0a 03 62 0d 02 2c 21 0a 09 00 22 0c 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 36 63 63 63 32 32 32 00 40
+00 10 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns6
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0f 00 06 0d 39 00 50 08 06 15 0f 00 06 0d 0a 00 48 13 0b 10 09 06 06 0c
+0c 00 62 08 04 10 17 00 06 0e 0a 00 62 0d 02 2c 21 0a 09 00 22 0c 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 36 63 63 63 32 32 32 00 40
+00 10 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0f 00 05 0d 28 01 53 00 00 15 0f 00 05 0d 0a 03 47 00 04 0c 09 06 06 0c
+06 03 61 00 00 0b 17 00 05 0e 05 04 62 00 05 24 21 0a 09 00 22 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 37 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns7
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0f 00 05 0d 28 00 53 00 00 15 0f 00 05 0d 0a 00 47 00 04 0d 09 06 06 0c
+06 00 61 00 00 0d 17 00 05 0e 05 00 62 00 05 24 21 0a 09 00 22 18 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 37 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 09 09 0d 28 01 3e 08 08 0d 0f 00 05 0d 0a 03 44 08 04 0b 09 06 06 0c
+06 05 63 08 00 0b 17 00 05 0e 05 03 62 08 05 24 21 0a 09 00 22 00 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 38 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringEns8
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 04 09 09 0d 28 00 3e 13 08 0f 0f 00 05 0d 0a 00 44 19 04 0d 09 06 06 0c
+06 00 63 08 00 0e 17 00 05 0e 05 00 62 08 05 24 21 0a 09 00 22 00 0c 04 00
+63 32 32 00 00 32 00 53 74 72 69 6e 67 45 6e 73 38 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0d 00 05 0e 0a 03 58 08 03 0a 02 00 07 09 00 05 5a 19 08 0f 15 06 05 0f
+00 05 62 08 08 0c 15 06 08 0e 00 05 5f 04 08 34 26 20 20 00 12 0c 02 04 00
+28 02 00 00 00 32 00 53 74 72 69 6e 67 4c 65 61 64 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StringLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0d 00 05 0e 0a 01 58 08 03 0a 02 00 07 09 00 02 5a 19 08 0f 15 06 05 0f
+00 00 62 08 08 0c 15 06 08 0e 00 00 5f 04 08 34 26 20 20 00 12 0c 02 04 00
+28 02 00 00 00 32 00 53 74 72 69 6e 67 4c 65 61 64 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+11 0b 05 05 0a 17 00 43 04 0c 0c 1f 08 04 0f 22 00 35 13 09 07 1f 04 05 0f
+14 00 46 04 0b 0a 1f 05 06 0f 00 00 57 04 0b 3a 21 0e 2a 00 42 0c 02 04 00
+63 32 00 32 00 32 00 53 74 72 69 6e 67 73 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+0a 00 05 05 0f 17 00 43 08 0c 0c 00 00 04 0f 22 00 34 13 09 0e 00 00 05 0f
+14 00 46 0a 0b 0c 00 06 06 0f 00 00 4c 0a 0b 3a 21 0e 2a 00 42 0c 02 04 00
+63 32 00 32 00 32 00 53 74 72 69 6e 67 73 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 1
+1f 04 00 04 0f 1e 02 46 09 06 1f 04 00 04 0f 1e 02 46 0a 00 0c 1f 00 05 0f
+1e 01 63 09 06 0c 1f 00 05 0f 1e 01 63 0a 00 3c 1f 06 0a 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 73 20 20 31 63 63 63 32 32 32 00 02
+00 00 00 32 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 2
+14 05 00 04 09 14 02 3d 1c 06 0a 04 02 04 09 01 01 47 13 00 0c 05 02 05 0c
+00 01 63 09 06 0a 04 01 05 0c 00 01 63 0a 00 3c 1f 00 1a 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 73 20 20 32 63 63 63 32 32 32 00 10
+00 20 00 32 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 05 00 04 09 14 02 3d 1c 06 0d 04 02 04 09 01 01 47 13 00 0c 05 02 05 0c
+00 01 63 09 06 0d 04 01 05 0c 00 01 63 0a 00 3c 1f 00 1a 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 73 20 20 32 63 63 63 32 32 32 00 10
+00 20 00 32 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Strings 3
+** Description: A string sound with a little horn mixed in
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 04 00 04 0f 1e 02 46 09 06 1f 04 00 04 0f 1e 02 46 0a 00 0c 1f 00 05 0f
+1e 01 63 09 06 12 1f 00 05 0f 1e 01 63 0a 00 3c 1f 06 0a 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 74 72 69 6e 67 73 20 20 33 63 63 63 32 32 32 00 02
+00 00 00 32 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Syn.Str 1
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 1
+1f 1f 00 03 0f 00 00 46 0a 00 1f 1f 00 03 0f 00 00 44 09 06 0b 1f 00 05 0f
+1e 00 56 0a 00 0b 1f 00 05 0f 1e 00 56 0a 06 3c 23 00 2e 00 42 05 02 04 00
+63 32 00 00 00 32 00 53 79 6e 2e 53 74 72 20 20 31 63 63 63 32 32 32 00 30
+00 62 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Syn.Str 2
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 2
+1f 1f 00 03 0f 00 00 31 13 00 1f 1f 00 03 0f 00 00 3b 09 06 0c 1f 00 05 0f
+1e 00 5b 0a 00 0c 1f 00 05 0f 1e 00 53 0a 06 3c 20 00 4b 00 42 05 02 04 00
+63 32 00 00 00 32 00 53 79 6e 2e 53 74 72 20 20 32 63 63 63 32 32 32 00 70
+00 62 00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynString
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 26
+1f 04 00 02 0f 0f 00 44 04 03 1f 09 03 02 0f 15 01 3a 08 00 1f 00 00 0b 0f
+0c 02 44 08 06 1a 0a 00 05 0f 05 01 5c 08 13 3a 1d 06 0f 00 52 0c 04 04 00
+63 32 00 00 00 32 00 53 79 6e 53 74 72 69 6e 67 20 63 63 63 32 32 32 20 00
+30 30 10 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 0a 03 0d 00 3a 4f 0a 0a 1b 13 00 0c 07 00 1e 51 16 0b 1f 0a 0a 06 0c
+00 1c 63 04 08 1b 09 0a 07 0c 00 3d 63 04 0b 6c 15 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0a 03 0d 00 3a 4f 0a 0a 1b 13 00 0c 07 00 19 51 16 0b 1f 0a 0a 06 0c
+00 18 63 04 08 1b 09 0a 07 0c 00 38 63 04 0b 6c 15 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 0a 03 0d 00 3b 53 08 0a 1b 13 00 0c 07 00 1d 3b 00 0b 1f 0a 0a 06 0c
+00 1e 4f 16 08 1e 0a 09 06 0c 00 3d 63 04 13 72 15 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0a 03 0d 00 39 53 08 0a 1b 13 00 0c 07 00 1a 3b 00 0b 1f 0a 0a 06 0c
+00 19 4f 16 08 1e 0a 09 06 0c 00 38 63 04 13 72 15 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 0f 09 04 0c 15 3b 53 0a 0e 15 0d 1f 03 0a 12 1d 4d 1f 19 1c 09 0f 05 0a
+19 1e 63 04 0a 13 07 09 05 0e 00 3d 63 00 13 6c 22 21 00 00 12 18 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: T Pluck..3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 0f 09 04 0c 15 39 53 0a 0e 15 0d 1f 03 0a 12 19 4d 1f 19 1c 09 0f 05 0a
+19 18 63 04 0a 13 07 09 05 0e 00 38 63 00 13 6c 22 21 00 00 12 18 02 04 00
+63 32 00 00 00 32 00 54 20 50 6c 75 63 6b 2e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WarmString
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0d 05 00 04 0f 14 00 40 05 06 0c 08 00 04 0f 14 00 49 04 00 0b 1f 00 05 0f
+00 03 63 09 06 0a 1f 00 05 0f 00 03 63 04 00 3c 1d 06 10 00 52 11 04 04 00
+63 32 00 00 00 32 00 57 61 72 6d 53 74 72 69 6e 67 63 63 63 32 32 32 00 01
+00 38 00 32 00 18 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindString
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 03 03 0f 56 03 63 0d 03 0d 04 02 04 0f 29 04 60 08 0b 06 00 00 04 0f
+4c 06 3d 08 13 0a 04 02 06 0f 5c 05 63 08 0b 7c 29 00 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 57 69 6e 64 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindString
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 03 03 0f 56 00 63 0d 03 0d 04 02 04 0f 29 02 60 08 0b 06 00 00 04 0f
+4c 00 3d 08 13 0a 04 02 06 0f 5c 00 63 08 0b 7c 29 00 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 57 69 6e 64 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: phantstrng
+** Description: a string voice
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+08 03 06 01 0b 00 03 58 0a 02 1f 02 04 03 0e 43 03 5b 04 10 1f 0c 02 04 0a
+00 03 4e 08 00 0b 09 04 06 0b 00 03 63 04 03 28 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 70 68 61 6e 74 73 74 72 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Banjo
+
+
+** Name: Banjo *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 0c 00 04 0c 00 01 51 04 15 1f 12 00 01 0f 00 00 58 04 16 1f 0a 09 01 0a
+00 02 4e 19 18 1c 0b 0a 06 09 00 41 63 0a 13 7b 3a 00 00 00 09 18 02 04 00
+63 00 42 00 00 32 00 42 61 6e 6a 6f 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Banjo
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 10
+1f 0b 08 01 0f 00 00 48 1c 15 1f 1f 00 01 0f 00 00 53 04 16 1f 07 11 01 0f
+00 00 40 08 16 1f 0e 0a 06 0a 00 0b 63 0a 10 3b 1d 00 10 00 32 18 02 04 00
+63 32 00 00 00 32 00 42 61 6e 6a 6f 20 20 20 20 20 63 63 63 32 32 32 00 70
+00 30 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Banjo....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 17 00 04 0c 00 02 5a 04 0d 1f 02 03 01 0f 00 05 5a 04 0e 1f 1b 08 01 0c
+00 06 42 08 0e 1f 0d 0b 06 09 00 06 63 04 10 2a 06 00 01 00 32 18 07 04 00
+63 32 00 00 00 32 00 42 61 6e 6a 6f 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Banjo....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 17 00 04 0c 00 02 5a 04 0d 1f 02 03 01 0f 00 01 5a 04 0e 1f 1b 08 01 0c
+00 01 42 08 0e 1f 0d 0b 06 09 00 01 63 04 10 2a 06 00 01 00 32 18 07 04 00
+63 32 00 00 00 32 00 42 61 6e 6a 6f 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Banjo....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 17 00 04 0c 00 02 5b 04 0d 16 09 03 05 00 00 06 4d 13 16 1f 1b 08 05 0c
+00 04 3e 08 0e 1f 0d 0b 06 09 00 05 63 04 10 2c 06 00 01 00 32 18 07 04 00
+63 32 00 00 00 32 00 42 61 6e 6a 6f 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Banjo....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 17 00 04 0c 00 02 5b 04 0d 16 09 03 05 00 00 02 4d 13 16 1f 1b 08 05 0c
+00 00 3e 08 0e 1f 0d 0b 06 09 00 00 63 04 10 2c 06 00 01 00 32 18 07 04 00
+63 32 00 00 00 32 00 42 61 6e 6a 6f 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Old Banjo
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 7
+1e 17 00 04 0c 00 01 5f 04 15 1f 0b 03 01 0f 00 00 5c 04 1e 1f 1b 08 01 0c
+00 02 45 19 1e 1f 0d 0b 06 09 00 03 63 0a 10 2a 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 4f 6c 64 20 42 61 6e 6a 6f 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+
+--Bank 6
+
+* SUBCATEGORY BassGuitar
+
+
+** Name: AnalogBass
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 13
+1f 0d 00 08 0c 1e 03 51 04 08 1f 09 00 09 0a 00 01 53 00 00 1f 0c 00 0a 0b
+00 01 4a 00 06 1f 1f 00 0c 0f 00 02 63 00 03 3a 23 00 00 00 62 0c 04 04 00
+63 32 00 32 00 32 00 41 6e 61 6c 6f 67 42 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 08 03 0a 0f 01 61 00 13 1f 0f 0b 03 0d 0c 01 4c 04 0b 15 15 08 05 0b
+2e 06 36 10 0b 1f 07 0a 09 0d 00 05 63 04 13 5a 22 35 0a 00 72 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 08 03 0a 0f 01 61 00 13 1f 0f 0b 03 0d 0c 01 4c 04 0b 15 15 08 05 0b
+2e 01 36 10 0b 1f 07 0a 09 0d 00 00 63 04 13 5a 22 35 0a 00 72 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 1b 0c 03 0c 0f 01 5f 00 03 1c 1b 11 03 0c 0c 02 4a 04 0b 18 09 0f 04 0d
+2e 05 32 04 0b 1f 0f 04 09 0f 00 05 63 04 13 1a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 1b 0c 03 0c 0f 01 5f 00 03 1c 1b 11 03 0c 0c 01 4a 04 0b 18 09 0f 04 0d
+2e 00 32 04 0b 1f 0f 04 09 0f 00 00 63 04 13 1a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 0c 0c 0c 0f 01 51 04 03 1f 15 12 05 0d 0c 42 57 04 0b 1f 0a 0a 03 04
+2e 45 46 08 0a 1f 07 05 0a 0f 00 06 5f 04 13 0a 26 1c 02 50 36 00 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0c 0c 0c 0f 00 51 04 03 1f 15 12 05 0d 0c 40 57 04 0b 1f 0a 0a 03 04
+2e 40 46 08 0a 1f 07 05 0a 0f 00 00 5f 04 13 0a 26 1c 02 50 36 00 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 0c 0c 0c 00 01 5a 00 03 1f 15 12 05 0d 00 41 63 04 13 1f 0a 0a 03 04
+00 45 46 08 12 1f 07 09 0a 0f 00 04 63 04 0b 1a 26 1c 02 50 36 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 0c 0c 0c 00 01 5b 00 03 1f 15 12 05 0d 00 40 63 04 13 1f 0a 0a 03 04
+00 43 46 08 12 1f 07 09 0a 0f 00 06 63 04 0b 1a 26 1c 02 50 36 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0c 0c 0c 00 01 5a 00 03 1f 15 12 05 0d 00 41 63 04 13 1f 0a 0a 03 04
+00 41 46 08 12 1f 07 09 0a 0f 00 00 63 04 0b 1a 26 1c 02 50 36 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0c 0c 0c 00 01 5b 00 03 1f 15 12 05 0d 00 40 63 04 13 1f 0a 0a 03 04
+00 41 46 08 12 1f 07 09 0a 0f 00 00 63 04 0b 1a 26 1c 02 50 36 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1f 08 08 0f 0f 02 60 04 03 1c 1c 0a 04 09 0c 02 63 00 03 1b 0c 08 08 04
+2e 06 46 1c 03 1f 12 06 09 0f 00 05 63 00 03 1a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1f 08 08 0f 0f 02 60 04 03 1c 1c 0a 04 09 0c 00 63 00 03 1b 0c 08 08 04
+2e 01 46 1c 03 1f 12 06 09 0f 00 00 63 00 03 1a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1f 08 08 0c 0f 01 5a 04 03 1c 1f 0a 04 0f 0c 03 4c 00 03 1b 1f 08 08 0e
+2e 05 63 04 03 1f 1f 06 09 0f 00 05 63 00 03 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1f 08 08 0c 0f 01 5a 04 03 1c 1f 0a 04 0f 0c 01 4c 00 03 1b 1f 08 08 0e
+2e 00 63 04 03 1f 1f 06 09 0f 00 00 63 00 03 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1f 08 06 0c 0f 01 63 00 06 1c 1f 09 0a 0c 0c 02 63 00 02 1b 1f 07 09 0f
+2e 05 63 04 06 1f 1f 09 0a 0c 00 05 63 04 02 2c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.8
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1f 08 06 0c 0f 00 63 00 06 1c 1f 09 0a 0c 0c 00 63 00 02 1b 1f 07 09 0f
+2e 00 63 04 06 1f 1f 09 0a 0c 00 00 63 04 02 2c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 07 07 09 0f 00 01 52 00 06 1c 0c 08 0a 0f 00 01 61 00 02 1c 07 07 09 0f
+00 06 63 08 06 1c 07 07 09 0f 00 06 63 04 02 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass.9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 07 07 09 0f 00 01 52 00 06 1c 0c 08 0a 0f 00 01 61 00 02 1c 07 07 09 0f
+00 00 63 08 06 1c 07 07 09 0f 00 00 63 04 02 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 1f 07 02 00 03 32 04 06 1c 0f 1f 07 02 00 03 5e 00 02 1c 1f 06 07 0f
+00 05 63 00 06 1c 1f 09 07 0f 00 05 63 00 02 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgBass10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 1f 07 02 00 02 32 04 06 1c 0f 1f 07 02 00 01 5e 00 02 1c 1f 06 07 0f
+00 00 63 00 06 1c 1f 09 07 0f 00 00 63 00 02 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 41 6e 6c 67 42 61 73 73 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgCut.BS
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 12 07 08 04 00 02 61 19 1b 19 1b 09 04 0c 00 03 63 00 03 1d 0c 02 08 0d
+00 04 42 19 03 1d 12 06 09 0e 00 05 63 00 03 34 23 00 00 00 32 0c 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 43 75 74 2e 42 53 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgCut.BS
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 12 07 08 04 00 01 61 19 1b 19 1b 09 04 0c 00 01 63 00 03 1d 0c 02 08 0d
+00 02 42 19 03 1d 12 06 09 0e 00 00 63 00 03 34 23 00 00 00 32 0c 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 43 75 74 2e 42 53 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgFunkBS
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 02 05 06 14 03 5e 04 03 1f 1c 0f 07 04 19 03 5f 04 14 1f 1b 1f 07 0f
+00 07 5d 04 0b 1f 06 12 07 0c 00 06 5c 04 0b 75 08 00 0b 00 22 00 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 46 75 6e 6b 42 53 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgFunkBS
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 02 05 06 14 01 5e 04 03 1f 1c 0f 07 04 19 01 5f 04 14 1f 1b 1f 07 0f
+00 02 5d 04 0b 1f 06 12 07 0c 00 00 5c 04 0b 75 08 00 0b 00 22 00 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 46 75 6e 6b 42 53 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSplat
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0c 01 09 0b 14 02 63 04 06 18 1f 1f 09 0f 19 04 61 04 06 0d 1f 08 09 0f
+00 05 62 08 0d 1c 0f 07 09 0c 00 06 63 04 01 65 08 00 0b 00 22 00 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 53 70 6c 61 74 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSplat
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0c 01 09 0b 14 01 63 04 06 18 1f 1f 09 0f 19 02 61 04 06 0d 1f 08 09 0f
+00 01 62 08 0d 1c 0f 07 09 0c 00 00 63 04 01 65 08 00 0b 00 22 00 02 04 00
+63 11 06 00 00 32 00 41 6e 6c 67 53 70 6c 61 74 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass 4
+** Description: Was called "Brass 4" but sounds more like a bass guitar
+** Controls: KV, MW (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 19 00 05 00 00 7b 63 19 03 15 0b 00 0a 09 00 47 57 0a 06 10 08 02 0a 05
+00 46 2a 03 03 1f 0b 06 0a 0e 00 47 63 04 03 39 1c 1a 03 13 66 0c 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass 4
+** Description: Was called "Brass 4" but sounds more like a bass guitar
+** Controls: KV, MW (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 19 00 05 00 00 7b 4e 19 03 15 0b 00 0a 09 00 47 59 00 06 1f 08 02 0a 05
+00 42 4e 00 03 1f 0b 06 0a 0e 00 47 63 04 03 3b 1c 1a 03 13 66 0c 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass 4
+** Description: Was called "Brass 4" but sounds more like a bass guitar
+** Controls: KV, MW (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 19 00 05 00 00 7b 5c 00 03 15 0b 00 0a 09 00 47 57 0a 06 1f 08 02 0a 05
+00 42 4e 00 03 1f 0b 06 0a 0e 00 47 63 04 03 3b 1c 1a 03 13 66 0c 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass 4
+** Description: Was called "Brass 4" but sounds more like a bass guitar
+** Controls: KV, MW (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 19 00 05 00 00 7b 5c 00 03 15 0b 00 0a 09 00 47 57 0a 06 04 08 02 0a 05
+00 42 58 19 03 1f 0b 06 0a 0e 00 47 63 04 03 01 1c 1a 03 13 66 0c 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass 4
+** Description: Was called "Brass 4" but sounds more like a bass guitar
+** Controls: KV
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 0f 07 09 0a 0f 07 4e 16 03 1f 1f 00 04 0f 00 03 47 00 03 1f 07 05 06 0a
+00 02 63 00 13 1f 07 05 06 0a 00 02 63 00 13 04 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 20 20 20 20 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Pluck
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 16 06 08 0d 00 00 59 00 1b 1f 1f 1f 0f 0f 00 00 51 04 1b 1f 0d 0c 08 0a
+63 04 63 04 13 1f 1f 1f 0f 0f 00 05 63 04 1b 64 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 20 50 6c 75 63 6b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Pluck
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 16 06 08 0d 00 00 59 00 1b 1f 1f 1f 0f 0f 00 00 51 04 1b 1f 0d 0c 08 0a
+63 00 63 04 13 1f 1f 1f 0f 0f 00 00 63 04 1b 64 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 20 50 6c 75 63 6b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.0>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 1a 07 04 04 00 01 51 1c 1b 19 1c 09 04 09 00 00 63 00 13 1b 0c 02 04 04
+63 03 4f 10 13 1c 12 06 04 0e 0e 06 63 00 1b 33 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 30 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.0>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 1a 07 04 04 00 02 51 1c 1b 19 1c 09 04 09 00 00 63 00 13 1b 0c 02 04 04
+63 01 4f 10 13 1c 12 06 04 0e 0e 00 63 00 1b 33 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 30 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.1>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 09 06 05 00 00 01 4c 04 13 18 1f 0c 06 0f 00 01 4a 04 0b 15 18 06 08 0e
+63 03 63 04 0b 19 07 06 07 00 0e 43 62 00 13 7c 23 20 00 29 26 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 31 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.1>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 09 06 05 00 00 01 4c 04 13 18 1f 0c 06 0f 00 01 4a 04 0b 15 18 06 08 0e
+63 00 63 04 0b 19 07 06 07 00 0e 40 62 00 13 7c 23 20 00 29 26 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 31 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.2>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 06 02 05 0e 63 01 4a 0d 13 1e 09 04 08 00 63 01 4f 04 13 1a 09 0a 08 08
+63 03 4d 0d 13 19 12 06 06 0f 63 05 63 04 13 11 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 32 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.2>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 06 02 05 0e 63 01 4a 0d 13 1e 09 04 08 00 63 01 4f 04 13 1a 09 0a 08 08
+63 01 4d 0d 13 19 12 06 06 0f 63 00 63 04 13 11 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 32 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.3>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 06 01 05 0e 63 01 5a 04 16 19 0e 07 06 0f 63 01 46 04 10 18 06 08 08 0a
+63 05 41 0a 10 19 0e 07 06 0f 63 05 63 04 13 22 21 13 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 33 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.3>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 06 01 05 0e 63 01 5a 04 16 19 0e 07 06 0f 63 01 46 04 10 18 06 08 08 0a
+63 00 41 0a 10 19 0e 07 06 0f 63 00 63 04 13 22 21 13 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 33 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.4>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1a 07 07 04 00 41 3f 19 13 1f 1c 09 07 09 00 41 55 0d 13 1f 0c 02 07 04
+63 44 4e 00 13 1f 12 06 07 0e 0e 45 63 04 1b 2a 63 00 00 0f 06 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 34 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.4>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1a 07 07 04 00 41 3f 19 13 1f 1c 09 07 09 00 41 55 0d 13 1f 0c 02 07 04
+63 40 4e 00 13 1f 12 06 07 0e 0e 40 63 04 1b 2a 63 00 00 0f 06 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 34 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.5>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 16 06 08 0d 00 01 5f 04 1b 19 12 04 0a 0c 23 01 56 08 13 19 0f 06 09 0d
+63 03 63 08 13 19 0c 04 0a 0e 0e 05 63 04 13 64 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 35 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.5>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 16 06 08 0d 00 01 5f 04 1b 19 12 04 0a 0c 23 01 56 08 13 19 0f 06 09 0d
+63 00 63 08 13 19 0c 04 0a 0e 0e 00 63 04 13 64 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 35 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.6>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 06 01 05 0e 63 01 45 0a 16 1b 0d 02 05 0e 63 01 5b 04 10 1e 0a 0c 06 08
+63 02 49 0a 10 1a 0f 06 05 0e 63 05 63 04 13 23 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 36 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.6>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 06 01 05 0e 63 01 45 0a 16 1b 0d 02 05 0e 63 01 5b 04 10 1e 0a 0c 06 08
+63 00 49 0a 10 1a 0f 06 05 0e 63 00 63 04 13 23 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 3c 3c 42 61 73 73 2e 36 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.7>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 09 0c 0f 01 53 16 1d 1e 1b 01 09 0d 0c 01 41 04 01 1d 01 01 0c 00
+2e 04 55 04 14 1e 1c 05 09 0c 00 04 63 08 13 2a 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 37 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.7>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 09 0c 0f 01 53 16 1d 1e 1b 01 09 0d 0c 01 41 04 01 1d 01 01 0c 00
+2e 00 55 04 14 1e 1c 05 09 0c 00 00 63 08 13 2a 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 37 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.8>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 0a 09 0c 0f 02 63 04 05 12 0c 07 07 0a 0c 01 61 04 01 1d 01 01 0c 00
+2e 03 63 04 04 1e 1c 05 09 0c 00 05 63 08 03 1c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 38 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.8>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 0a 09 0c 0f 02 63 04 05 12 0c 07 07 0a 0c 01 61 04 01 1d 01 01 0c 00
+2e 00 63 04 04 1e 1c 05 09 0c 00 00 63 08 03 1c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 38 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.9>>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 06 09 0c 0f 01 3e 13 15 18 17 03 09 0d 0c 01 54 04 01 1d 01 03 0c 0a
+2e 03 4d 04 14 1e 1c 06 09 0c 00 05 63 04 13 1b 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 39 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <<Bass.9>>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 06 09 0c 0f 01 3e 13 15 18 17 03 09 0d 0c 01 54 04 01 1d 01 03 0c 0a
+2e 00 4d 04 14 1e 1c 06 09 0c 00 00 63 04 13 1b 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 3c 3c 42 61 73 73 2e 39 3e 3e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass....FM
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 04 09 0f 00 02 4e 00 19 1f 12 12 08 0f 00 03 4b 1f 04 1f 0c 02 08 0f
+00 05 54 00 0d 1f 0c 0b 0a 0f 00 05 63 04 0a 68 23 00 19 00 32 0c 02 04 00
+63 32 00 00 00 32 00 42 61 73 73 2e 2e 2e 2e 46 4d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass....FM
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 04 09 0f 00 02 4e 00 19 1f 12 12 08 0f 00 02 4b 1f 04 1f 0c 02 08 0f
+00 02 54 00 0d 1f 0c 0b 0a 0f 00 00 63 04 0a 68 23 00 19 00 32 0c 02 04 00
+63 32 00 00 00 32 00 42 61 73 73 2e 2e 2e 2e 46 4d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BombBass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 04 07 09 0e 00 07 53 0a 08 1f 05 01 0a 0e 3f 03 51 00 08 1f 06 02 09 0d
+32 03 63 00 0e 1f 1f 02 08 0f 00 07 63 04 03 3a 63 00 00 00 73 0c 04 04 00
+63 63 00 00 00 32 00 42 6f 6d 62 42 61 73 73 20 20 63 63 63 32 32 32 00 40
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: CutupBass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 12 07 08 04 00 01 56 19 0b 18 1c 09 04 09 63 01 57 1c 1c 1b 0c 09 07 0d
+00 04 3b 13 13 1f 12 06 07 0f 00 05 5f 00 03 1a 21 13 07 00 62 0c 02 04 00
+63 32 00 32 00 32 00 43 75 74 75 70 42 61 73 73 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: CutupBass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 12 07 08 04 00 01 56 19 0b 18 1c 09 04 09 63 01 57 1c 1c 1b 0c 09 07 0d
+00 01 3b 13 13 1f 12 06 07 0f 00 00 5f 00 03 1a 21 13 07 00 62 0c 02 04 00
+63 32 00 32 00 32 00 43 75 74 75 70 42 61 73 73 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Bass 1
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 27
+1f 01 00 08 04 00 03 4c 00 1b 1f 08 03 08 04 00 02 55 00 13 13 0a 05 08 04
+2b 06 3c 16 1b 1f 09 03 09 04 00 01 63 00 0b 3b 1c 00 00 00 52 0c 02 05 00
+63 4b 00 00 00 32 00 45 2e 42 61 73 73 20 20 20 31 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Bass 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 28
+1f 0f 10 07 0f 00 03 43 2d 03 1e 08 09 07 0f 23 02 52 00 03 1f 0b 0a 07 0f
+00 03 41 10 03 1d 0c 0a 09 0f 28 01 63 04 03 38 1e 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 45 2e 42 61 73 73 20 20 20 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Bass 3
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 29
+06 06 07 01 0a 06 42 56 00 1e 1f 05 06 01 0e 04 41 53 00 16 1f 05 06 01 0e
+04 40 33 08 1e 19 05 08 07 00 00 42 63 00 16 20 1a 10 14 15 46 0c 02 04 00
+28 32 00 00 00 32 00 45 2e 42 61 73 73 20 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Bass 3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 06 07 01 0d 06 42 56 00 1e 1f 05 06 01 0e 04 41 53 00 16 1f 05 06 01 0e
+04 40 33 08 1e 19 05 08 07 00 00 42 63 00 16 20 1a 10 14 15 46 0c 02 04 00
+28 32 00 00 00 32 00 45 2e 42 61 73 73 20 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElecBass 1
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 9
+1f 01 00 08 04 00 03 3d 0a 1e 1f 01 00 08 00 00 00 43 00 10 1f 09 06 08 0c
+1b 07 46 1c 1e 1f 09 00 09 09 00 01 63 04 03 3a 1c 00 00 00 52 0c 04 05 00
+63 4b 00 00 00 32 00 45 6c 65 63 42 61 73 73 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElecBass 2
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 12
+1f 0e 00 0f 02 31 03 4b 28 16 1f 06 00 07 02 3b 00 4d 00 06 1f 0a 00 0f 02
+3b 03 52 04 16 1f 06 00 08 02 00 02 63 00 00 3a 22 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 45 6c 65 63 42 61 73 73 20 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0a 07 09 0e 4d 05 54 00 03 12 1f 00 0a 0f 00 05 3e 08 03 12 1f 00 0a 0f
+4b 05 5f 08 03 12 1f 00 0a 0f 01 06 5f 04 03 3b 1e 05 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 0a 07 09 0e 4d 03 54 00 03 12 1f 00 0a 0f 00 02 3e 08 03 12 1f 00 0a 0f
+4b 01 5f 08 03 12 1f 00 0a 0f 01 00 5f 04 03 3b 1e 05 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 03 01 07 0d 27 04 53 13 0d 11 1f 06 05 0f 00 04 51 00 0d 16 04 00 0a 0d
+11 06 49 08 0b 16 1f 00 0a 0f 27 05 5a 00 03 62 24 00 04 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 03 01 07 0d 27 01 53 13 0d 11 1f 06 05 0f 00 01 51 00 0d 16 04 00 0a 0d
+11 00 49 08 0b 16 1f 00 0a 0f 27 00 5a 00 03 62 24 00 04 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 03 01 07 0d 27 04 3f 10 0d 11 1f 06 05 0f 00 04 56 04 0d 16 04 00 0a 0d
+11 05 4e 08 0b 16 1f 00 0a 0f 27 07 5a 04 03 61 24 00 04 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 33 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 03 01 07 0d 27 01 3f 10 0d 11 1f 06 05 0f 00 01 56 04 0d 16 04 00 0a 0d
+11 00 4e 08 0b 16 1f 00 0a 0f 27 00 5a 04 03 61 24 00 04 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 33 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 03 01 07 0d 27 05 55 04 0d 11 1f 06 05 0f 00 04 63 00 0d 16 04 00 0a 0d
+11 07 4d 00 0b 16 1f 00 0a 0f 27 05 5a 00 03 63 24 26 34 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fat Lead.4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 03 01 07 0d 27 01 55 04 0d 11 1f 06 05 0f 00 02 63 00 0d 16 04 00 0a 0d
+11 01 4d 00 0b 16 1f 00 0a 0f 27 00 5a 00 03 63 24 26 34 00 42 0c 02 04 00
+63 63 00 00 00 32 00 46 61 74 20 4c 65 61 64 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: filtrsweep
+** Description: a bass guitar with interesting decay
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 02 03 06 00 0e 03 54 08 1b 1f 0b 00 09 0c 00 00 4e 04 04 1f 06 00 09 01
+00 00 5f 04 03 1f 1c 04 09 0a 00 03 63 08 03 38 1e 09 04 00 62 0c 02 05 00
+63 32 00 32 00 32 00 66 69 6c 74 72 73 77 65 65 70 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FlangeBass
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 00 01 0e 00 01 52 04 04 1f 12 06 09 0e 00 02 52 04 1c 1f 0c 02 08 0e
+00 06 45 13 12 1f 12 06 09 0e 00 05 63 04 1a 12 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 46 6c 61 6e 67 65 42 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FlangeBass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 00 01 0e 00 01 52 04 04 1f 12 06 09 0e 00 01 52 04 1c 1f 0c 02 08 0e
+00 01 45 13 12 1f 12 06 09 0e 00 00 63 04 1a 12 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 46 6c 61 6e 67 65 42 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 08 02 07 0f 15 03 53 00 08 11 08 03 07 0f 00 00 63 00 0b 11 06 03 07 0f
+00 00 63 05 0e 11 06 03 07 0f 00 01 63 03 08 2d 17 21 09 00 52 05 02 04 00
+28 31 00 00 00 32 00 46 72 65 74 6c 65 73 73 20 2a 63 63 63 32 32 32 00 04
+00 04 00 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 0c 0c 07 00 63 02 42 00 0b 1b 0d 02 08 0e 63 01 42 0a 16 1e 0d 0c 08 08
+63 04 4a 00 13 19 12 05 06 0f 63 05 60 00 13 3a 21 13 07 00 62 00 02 04 00
+63 32 00 32 00 32 00 46 72 65 74 6c 65 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless.1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 0c 0c 07 00 63 00 42 00 0b 1b 0d 02 08 0e 63 00 42 0a 16 1e 0d 0c 08 08
+63 00 4a 00 13 19 12 05 06 0f 63 00 60 00 13 3a 21 13 07 00 62 00 02 04 00
+63 32 00 32 00 32 00 46 72 65 74 6c 65 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 00 01 00 00 02 40 08 1b 1b 0d 02 05 0e 63 03 46 04 16 1e 0d 0c 06 08
+63 05 3e 10 13 19 12 05 06 0f 63 07 60 0a 13 2a 21 13 07 00 62 00 02 04 00
+63 32 00 32 00 32 00 46 72 65 74 6c 65 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless.2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 00 01 00 00 00 40 08 1b 1b 0d 02 05 0e 63 00 46 04 16 1e 0d 0c 06 08
+63 00 3e 10 13 19 12 05 06 0f 63 00 60 0a 13 2a 21 13 07 00 62 00 02 04 00
+63 32 00 32 00 32 00 46 72 65 74 6c 65 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fretless.2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 06 00 00 00 00 00 40 08 1b 1b 0d 02 05 0e 63 00 46 04 16 1e 0d 0c 06 08
+63 00 3e 10 13 19 12 05 06 0f 63 00 60 0a 13 2a 21 13 07 00 62 00 02 04 00
+63 32 00 32 00 32 00 46 72 65 74 6c 65 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 7
+
+** Name: FunkyBass1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 0a 09 0c 0f 01 4b 04 04 12 1f 02 07 0f 00 02 46 04 11 18 00 00 07 00
+00 05 47 0a 06 1f 13 09 0a 0c 00 05 63 04 04 2a 15 00 0b 00 00 00 02 04 00
+63 32 00 00 00 32 00 46 75 6e 6b 79 42 61 73 73 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FunkyBass1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 0a 09 0c 0f 00 4b 04 04 12 1f 02 07 0f 00 00 46 04 11 18 00 00 07 00
+00 00 47 0a 06 1f 13 09 0a 0c 00 00 63 04 04 2a 15 00 0b 00 00 00 02 04 00
+63 32 00 00 00 32 00 46 75 6e 6b 79 42 61 73 73 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FunkyBass2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 0a 09 0c 0f 00 50 08 05 12 1f 1f 07 0f 00 02 4b 04 11 12 1f 0c 07 0f
+00 05 40 0d 12 1f 13 09 0a 0c 00 04 63 04 04 32 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 46 75 6e 6b 79 42 61 73 73 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FunkyBass2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 0a 09 0c 0f 00 50 08 05 12 1f 1f 07 0f 00 00 4b 04 11 12 1f 0c 07 0f
+00 00 40 0d 12 1f 13 09 0a 0c 00 00 63 04 04 32 23 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 46 75 6e 6b 79 42 61 73 73 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jaco Bass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 14
+07 02 00 08 0f 00 00 43 04 03 10 0b 00 08 0c 00 00 50 00 0e 15 0b 0f 08 0b
+00 01 51 00 08 11 08 00 08 0b 00 01 63 00 03 38 19 08 06 00 62 0c 04 05 14
+63 32 00 32 00 32 00 4a 61 63 6f 20 42 61 73 73 20 63 63 63 32 32 32 00 60
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jaco Bass2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 05 08 02 00 01 46 08 03 0f 0a 00 08 0c 00 00 50 00 0e 12 0b 0f 08 0b
+00 01 51 00 08 0f 08 00 08 0b 00 01 63 00 03 09 19 08 06 00 62 0c 02 05 00
+63 32 00 32 00 00 00 4a 61 63 6f 20 42 61 73 73 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JazzWalker
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 0a 00 08 04 00 03 46 08 1e 1f 01 00 08 00 00 00 4a 00 10 1f 11 06 08 0d
+1b 07 41 04 1e 1f 09 00 09 09 00 01 63 04 03 3b 1c 00 00 00 56 0c 04 05 00
+63 4b 00 00 00 32 00 4a 61 7a 7a 57 61 6c 6b 65 72 63 63 63 32 32 32 20 30
+30 30 30 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Kai Bass *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 13 0f 0f 00 05 63 13 13 1f 1f 00 0b 0f 00 00 44 00 10 1c 1f 0d 0f 0f
+34 07 46 1c 13 1f 14 0a 0a 0d 0d 01 63 04 0e 43 1b 00 00 00 52 0c 02 04 00
+28 63 00 00 00 32 00 4b 61 69 20 42 61 73 73 20 2a 63 63 63 32 32 32 00 00
+00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LatelyBass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 15
+1f 10 07 08 03 00 03 4f 04 03 1f 09 00 08 00 00 01 4a 00 0b 1f 11 00 08 00
+00 01 47 04 08 1f 09 00 08 00 00 00 63 00 0b 39 19 00 07 00 52 0c 02 04 00
+63 32 00 32 00 32 00 4c 61 74 65 6c 79 42 61 73 73 63 63 63 32 32 32 02 00
+00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MonophBass
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 16
+1f 01 00 08 0a 00 03 43 0a 1e 1f 01 00 08 07 00 00 46 00 10 1f 09 06 08 0f
+1b 07 4a 04 1e 1f 09 00 09 0f 00 01 63 04 03 3a 1c 00 00 00 52 0c 04 0d 00
+63 4b 00 00 00 32 00 4d 6f 6e 6f 70 68 42 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MoogerBass
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 07 08 03 00 06 4f 00 03 1f 09 00 08 0d 00 02 56 00 0b 1f 10 00 08 0a
+00 00 60 00 08 1f 09 00 08 0f 00 00 63 00 0e 3c 1d 00 07 00 52 0c 02 0c 00
+63 32 00 32 00 32 00 4d 6f 6f 67 65 72 42 61 73 73 63 63 63 32 32 32 02 70
+00 50 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntBass.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 03 0a 09 0d 2e 01 55 04 03 1c 10 0a 09 00 00 02 48 10 01 1c 10 0a 09 0a
+00 06 4f 04 03 1c 16 04 09 0e 00 03 62 04 04 42 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntBass.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 03 0a 09 0d 2e 00 55 04 03 1c 10 0a 09 00 00 00 48 10 01 1c 10 0a 09 0a
+00 00 4f 04 03 1c 16 04 09 0e 00 00 62 04 04 42 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntBass.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 0a 07 06 2e 02 4d 16 03 1c 0f 0a 07 00 00 03 41 10 01 1c 15 0a 07 0a
+00 05 63 04 03 1c 13 0a 07 0e 00 05 62 04 04 44 2e 00 11 00 11 00 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntBass.2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 0a 07 06 2e 00 4d 16 03 1c 0f 0a 07 00 00 00 41 10 01 1c 15 0a 07 0a
+00 00 63 04 03 1c 13 0a 07 0e 00 00 62 04 04 44 2e 00 11 00 11 00 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Precision*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 0c 09 08 04 18 05 58 10 13 1f 1c 04 01 0d 00 00 53 00 18 18 15 0a 04 09
+00 03 4f 00 13 0f 1d 04 08 0e 14 00 63 00 1e 03 1d 00 00 00 52 0c 02 04 00
+28 53 00 00 00 32 00 50 72 65 63 69 73 69 6f 6e 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ResoMonoBs
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 07 08 03 00 03 4c 04 03 1f 09 00 08 0d 00 01 52 00 0b 1f 11 00 08 0b
+00 01 55 04 08 1f 09 00 08 0f 00 00 5e 00 0b 39 19 00 07 00 52 0c 02 0c 00
+63 32 00 32 00 32 00 52 65 73 6f 4d 6f 6e 6f 42 73 63 63 63 32 32 32 12 10
+00 10 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Roto Bass
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 07 04 04 00 01 5b 00 1b 1f 12 06 09 0e 00 01 49 00 1b 1f 0c 02 08 03
+63 04 58 13 13 1f 12 06 09 0e 0e 05 63 00 1b 22 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 52 6f 74 6f 20 42 61 73 73 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Roto Bass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 07 04 04 00 01 5b 00 1b 1f 12 06 09 0e 00 01 49 00 1b 1f 0c 02 08 03
+63 01 58 13 13 1f 12 06 09 0e 0e 00 63 00 1b 22 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 52 6f 74 6f 20 42 61 73 73 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SUPER BASS
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 05 07 05 00 00 41 04 03 1f 05 05 07 0c 00 00 49 00 03 19 09 00 07 00
+00 40 47 08 00 1f 05 05 07 0c 00 00 63 00 03 39 19 00 09 00 52 0c 02 04 00
+28 32 00 00 00 32 00 53 55 50 45 52 20 42 41 53 53 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Science.BS
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 08 08 0a 0a 00 03 53 04 02 13 09 06 06 0c 00 03 57 04 03 14 02 0f 09 0d
+00 05 63 04 04 19 03 0f 0a 0e 00 05 63 08 03 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 53 63 69 65 6e 63 65 2e 42 53 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Science.BS
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 08 08 0a 0a 00 01 53 04 02 13 09 06 06 0c 00 01 57 04 03 14 02 0f 09 0d
+00 01 63 04 04 19 03 0f 0a 0e 00 00 63 08 03 3c 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 53 63 69 65 6e 63 65 2e 42 53 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SlapBass
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 0a 08 06 00 07 5a 18 1e 1f 01 00 08 00 00 00 48 00 10 1f 09 06 08 0c
+1b 06 4b 1c 1e 1f 09 00 09 09 00 01 63 04 03 00 1c 00 00 00 52 0c 04 05 00
+63 50 00 3c 00 32 00 53 6c 61 70 42 61 73 73 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SlapBass.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 00 0a 08 00 01 46 04 03 18 0c 1f 09 00 00 01 49 1f 13 1e 10 07 09 0c
+00 04 4c 0a 08 1e 10 07 09 0c 00 06 63 04 0b 3b 19 00 09 00 52 0c 02 04 00
+63 32 00 32 00 32 00 53 6c 61 70 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SlapBass.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 00 0a 08 00 01 46 04 03 18 0c 1f 09 00 00 01 49 1f 13 1e 10 07 09 0c
+00 01 4c 0a 08 1e 10 07 09 0c 00 00 63 04 0b 3b 19 00 09 00 52 0c 02 04 00
+63 32 00 32 00 32 00 53 6c 61 70 42 61 73 73 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SlapBass.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1c 09 09 0c 00 01 44 10 0b 16 00 00 0a 09 00 01 4b 04 13 14 0a 05 09 0f
+00 03 52 04 10 1e 10 07 09 0c 00 06 63 04 0b 2a 19 00 09 00 52 00 02 04 00
+63 32 00 32 00 32 00 53 6c 61 70 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SlapBass.2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1c 09 09 0c 00 00 44 10 0b 16 00 00 0a 09 00 00 4b 04 13 14 0a 05 09 0f
+00 00 52 04 10 1e 10 07 09 0c 00 00 63 04 0b 2a 19 00 09 00 52 00 02 04 00
+63 32 00 32 00 32 00 53 6c 61 70 42 61 73 73 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SqncrBass
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 10
+1f 0f 0f 0e 08 00 03 4b 25 06 1f 0f 05 0b 0e 4e 03 5d 00 0b 1f 13 06 08 0b
+1c 03 60 00 10 1f 13 06 08 0e 00 04 63 04 0e 3b 1f 00 00 00 42 0c 02 04 00
+63 32 00 32 00 32 00 53 71 6e 63 72 42 61 73 73 20 63 63 63 32 32 32 03 60
+00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SqncrBass2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 0f 0e 08 00 03 42 25 06 1f 0f 05 0b 0f 39 03 61 00 0b 1f 13 06 08 0b
+1c 03 52 00 10 1f 13 06 08 0f 00 04 63 04 0e 3b 1f 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 71 6e 63 72 42 61 73 73 32 63 63 63 32 32 32 03 30
+10 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 1
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 16
+1f 03 10 06 00 34 01 49 04 15 1f 00 12 06 0f 5e 04 63 0a 0b 14 1f 17 06 0b
+3d 01 57 16 18 1f 1e 00 07 0f 00 01 5d 04 13 3a 23 00 00 00 62 00 02 04 00
+63 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 10 06 00 34 01 49 04 15 1f 00 12 06 0f 5e 04 63 0d 0b 14 1f 17 06 0b
+3d 01 57 16 18 1f 1e 00 07 0f 00 01 5d 04 13 3a 23 00 00 00 62 00 02 04 00
+63 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 17
+1d 0e 00 06 09 00 02 51 04 0e 1f 0a 00 0a 00 00 00 61 00 01 1f 0a 00 0a 00
+00 00 61 00 06 1f 0a 00 0a 00 00 00 61 00 10 3d 1b 42 19 00 52 0c 02 04 00
+63 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 32 63 63 63 32 32 32 00 10
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 3
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 18
+1f 12 0c 02 07 00 02 59 10 13 1e 04 02 07 09 00 02 55 00 13 1f 0c 03 07 05
+00 02 46 00 16 1e 09 03 07 00 00 00 57 00 13 00 1f 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 33 63 63 63 32 32 32 00 10
+00 10 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 4
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 19
+1a 0b 00 08 04 00 03 4e 00 13 1a 09 03 08 04 00 02 50 00 13 15 0b 05 08 04
+0a 05 58 00 1b 18 09 03 09 04 00 01 63 00 0b 3a 1c 00 00 00 52 0c 02 05 00
+63 4b 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 34 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0b 00 08 04 00 03 4e 00 13 1a 09 03 08 04 00 02 50 00 13 15 0b 05 08 04
+0d 05 58 00 1b 18 09 03 09 04 00 01 63 00 0b 3a 1c 00 00 00 52 0c 02 05 00
+63 4b 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 34 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 5
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 20
+1f 12 08 02 0b 00 02 59 10 13 1e 06 02 07 09 00 04 56 00 13 1f 0c 03 07 05
+00 05 46 00 16 1e 05 03 07 09 00 02 5d 00 13 02 20 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 35 63 63 63 32 32 32 00 10
+00 10 00 50 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 6
+** Description: A clavier with bite, derived from DX11 factory preset
+** 'Sy.Bass 5'
+** Controls: KV
+** Source: Art Hitzeman
+1f 12 08 02 0b 00 02 59 10 13 1e 06 02 04 09 00 04 56 00 13 1f 0c 03 05 05
+00 05 46 00 16 1e 05 03 05 09 00 02 5d 00 13 02 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 36 63 63 63 32 32 32 00 10
+00 10 00 50 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Bass 7
+** Description: a milder version of Sy. Bass 6
+** Controls: KV
+** Source: Art Hitzeman
+1f 12 08 02 0b 00 02 46 1f 13 1e 06 02 04 09 00 04 56 00 13 1f 0c 03 05 05
+00 05 46 00 16 1e 05 03 05 09 00 02 5d 00 13 02 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 42 61 73 73 20 20 37 63 63 63 32 32 32 00 10
+00 10 00 50 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynFunkBas
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 11
+1f 0f 0f 0e 09 00 03 46 1d 16 1f 0f 05 0e 0e 0d 03 63 00 0b 1f 13 06 05 0d
+1c 03 63 00 00 1f 13 06 08 0f 00 04 63 04 06 3b 1f 00 00 00 42 0c 04 04 00
+63 32 00 32 00 32 00 53 79 6e 46 75 6e 6b 42 61 73 63 63 63 32 32 32 0d 6c
+00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynFunkBs2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 19 08 06 00 03 3c 1d 16 1f 0f 05 07 0e 1a 03 63 00 0b 1f 13 06 05 0d
+2a 03 54 00 08 1f 13 06 08 0f 00 04 63 04 06 3b 1f 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 79 6e 46 75 6e 6b 42 73 32 63 63 63 32 32 32 0c 1c
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TeknoBass*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 1e 13 05 0e 2d 03 53 2f 00 15 0b 09 05 0e 0a 02 55 00 06 19 1e 09 08 0e
+17 00 4a 08 00 15 02 07 06 0e 10 01 63 00 0b 02 23 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 54 65 6b 6e 6f 42 61 73 73 2a 63 63 63 32 32 32 00 04
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Bass
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 30
+17 15 0c 09 0b 2c 02 63 04 0b 1f 11 0b 04 0f 27 01 47 04 0b 1c 11 0b 02 0f
+31 01 4b 0a 0b 1a 15 0a 08 0f 00 01 63 04 0b 10 1f 00 00 00 52 00 02 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 20 42 61 73 73 20 63 63 63 32 32 32 02 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBass2
+** Description: A modified version of the DX11 factory preset 'Wood Bass'
+** Controls: KV
+** Source: Art Hitzeman
+17 15 0c 09 0b 2c 02 63 04 0b 1f 11 0b 04 0f 27 01 47 04 0b 1c 11 0b 02 0f
+31 01 4b 0a 0b 1a 15 0a 05 0f 00 01 63 04 0b 10 1f 00 00 00 52 0c 02 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 42 61 73 73 32 20 63 63 63 32 32 32 02 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Cello
+
+
+** Name: BowCello
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 18
+1c 09 00 06 0e 35 00 50 04 00 0d 0a 00 06 0e 09 01 52 04 09 12 0b 00 08 09
+2c 02 49 10 0e 0c 0a 00 06 0f 00 01 63 04 0b 2a 1a 07 13 00 52 0c 04 04 00
+63 32 00 00 00 32 00 42 6f 77 43 65 6c 6c 6f 20 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BoxCello
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 19
+1c 04 00 06 0e 0f 00 48 04 06 15 09 03 04 0d 15 01 3a 08 00 11 10 00 0b 09
+0c 02 51 16 06 0b 0a 00 05 0f 05 01 63 08 13 32 1d 06 0f 00 52 0c 04 04 00
+63 32 00 00 00 32 00 42 6f 78 43 65 6c 6c 6f 20 20 63 63 63 32 32 32 00 10
+00 40 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BoxCello2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 06 0e 0f 00 48 04 06 0f 12 01 04 0d 15 01 3a 08 00 11 10 00 0b 09
+0c 02 51 16 06 0b 0a 00 05 0f 05 01 63 08 13 32 1d 06 0f 00 52 0c 04 04 00
+63 32 00 00 00 32 00 42 6f 78 43 65 6c 6c 6f 32 20 63 63 63 32 32 32 00 10
+00 40 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 05 0f 4d 00 48 08 0b 10 19 00 03 0e 2b 00 61 08 0b 0c 09 00 05 0d
+00 01 63 08 15 0c 05 00 06 0e 4d 01 5c 13 12 3c 1f 19 15 00 32 00 02 04 00
+28 63 00 00 00 32 00 43 65 6c 6c 6f 20 20 20 20 2a 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello 1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 7
+16 07 00 06 0f 00 41 4c 00 0b 15 0b 00 03 0e 00 02 35 00 0b 19 08 00 08 0c
+10 05 5f 08 14 0e 0b 00 07 0e 00 02 63 00 0c 3a 1f 12 10 00 52 18 02 05 00
+63 28 50 32 00 32 00 43 65 6c 6c 6f 20 20 20 20 31 63 56 63 30 32 32 00 30
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 8
+1d 08 00 05 0a 12 01 4e 04 06 17 0c 00 05 0f 00 00 42 04 00 1e 0e 00 05 0f
+25 01 3e 10 00 0a 06 00 07 0f 00 02 63 04 06 32 1d 16 2c 00 32 0c 02 04 00
+63 32 00 00 00 32 00 43 65 6c 6c 6f 20 20 20 20 32 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 08 00 05 0d 12 01 4e 04 06 17 0c 00 05 0f 00 00 42 04 00 1e 0e 00 05 0f
+25 01 3e 10 00 0d 06 00 07 0f 00 02 63 04 06 32 1d 16 2c 00 32 0c 02 04 00
+63 32 00 00 00 32 00 43 65 6c 6c 6f 20 20 20 20 32 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 15 0a 08 0d 19 02 4c 19 0c 15 10 07 07 0c 19 01 5d 04 03 11 15 06 08 0f
+3c 04 50 0a 0b 0c 09 04 06 0c 00 04 63 04 0a 5b 1b 1b 20 00 32 00 04 04 00
+63 01 63 00 00 32 00 43 65 6c 6c 6f 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 15 0a 08 0d 19 02 4c 2a 0c 1f 17 0a 07 0d 19 01 5d 04 03 10 15 0a 08 0d
+3c 01 58 0a 0b 0f 09 07 06 0d 00 00 63 04 0a 5b 22 00 14 00 32 00 04 04 00
+63 01 63 00 00 32 00 43 65 6c 6c 6f 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 09 04 03 0e 02 01 53 00 12 1e 04 10 05 08 52 01 49 00 0a 14 1f 0b 05 03
+52 05 63 00 0c 0b 03 1f 06 02 10 05 60 00 0c 32 1c 2e 1e 00 42 18 0c 04 00
+63 32 32 00 00 32 00 43 65 6c 6c 6f 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cello....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 09 04 03 0e 02 01 53 00 12 1e 04 10 05 08 52 01 49 00 0a 14 1f 0b 05 03
+52 01 63 00 0c 0c 03 1f 06 02 10 00 60 00 0c 32 1c 2e 1e 00 42 18 0c 04 00
+63 32 32 00 00 32 00 43 65 6c 6c 6f 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY DoubleBass
+
+
+** Name: ArcoBass *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 15 00 06 0d 13 01 56 04 08 1e 05 00 06 0e 33 02 63 04 0e 0f 09 00 06 0f
+00 01 63 04 06 0d 08 00 05 0e 00 05 63 04 08 3c 1e 17 0f 00 42 0c 02 04 00
+28 63 00 00 00 32 00 41 72 63 6f 42 61 73 73 20 2a 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassBeast
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 09 03 05 0a 22 02 63 00 04 0b 05 04 03 0f 00 02 4a 08 02 03 08 03 05 08
+38 42 5a 0d 0e 10 05 03 06 0d 00 00 61 00 01 62 1c 06 04 06 4e 18 02 04 00
+63 32 00 00 00 32 00 42 61 73 73 42 65 61 73 74 20 63 63 63 32 32 32 07 00
+11 50 00 30 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassPluck2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 16 06 08 0d 00 01 40 08 1b 15 16 06 08 0d 00 01 51 00 1b 1f 0d 0c 08 0a
+63 06 63 00 13 1f 0d 0c 08 0a 63 05 63 00 13 54 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 50 6c 75 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassPluck2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 16 06 08 0d 00 00 40 08 1b 15 16 06 08 0d 00 00 51 00 1b 1f 0d 0c 08 0a
+63 00 63 00 13 1f 0d 0c 08 0a 63 00 63 00 13 54 26 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 42 61 73 73 50 6c 75 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DoubleBass
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 17
+1c 02 00 04 0e 63 00 4e 04 03 0d 05 00 06 0e 63 01 56 0a 08 12 07 00 06 09
+63 02 47 1b 0e 0a 0a 00 05 0f 00 01 63 04 0b 32 1a 08 0d 00 52 0c 04 04 00
+63 32 00 00 00 32 00 44 6f 75 62 6c 65 42 61 73 73 63 63 63 32 32 32 00 10
+00 00 00 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 8
+
+* SUBCATEGORY Guitar
+
+
+** Name: 12 String1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 09 03 0c 39 02 4f 22 1c 0d 0f 09 02 0c 00 43 3c 0d 0a 16 1f 07 06 0f
+0a 45 58 08 08 1c 07 06 06 0c 00 46 5f 08 0e 0c 22 21 00 00 36 0c 00 04 00
+63 63 00 00 00 32 00 31 32 20 53 74 72 69 6e 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 12 String1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 09 03 0c 39 01 4f 22 1c 0d 0f 09 02 0c 00 41 3c 0d 0a 16 1f 07 06 0f
+0a 40 58 08 08 1c 07 06 06 0c 00 40 5f 08 0e 0c 22 21 00 00 36 0c 00 04 00
+63 63 00 00 00 32 00 31 32 20 53 74 72 69 6e 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 12 String2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 09 04 03 0c 2b 42 51 24 1c 1a 04 01 0d 0b 00 42 53 04 1a 1b 09 06 0e 0c
+0a 45 4e 04 10 1c 07 03 07 0e 00 44 63 04 16 14 23 46 00 01 3a 18 00 04 00
+63 63 00 00 00 32 00 31 32 20 53 74 72 69 6e 67 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 12 String2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 09 04 03 0c 2b 41 51 24 1c 1a 04 01 0d 0b 00 41 53 04 1a 1b 09 06 0e 0c
+0a 40 4e 04 10 1c 07 03 07 0e 00 40 63 04 16 14 23 46 00 01 3a 18 00 04 00
+63 63 00 00 00 32 00 31 32 20 53 74 72 69 6e 67 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 5th Lead.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 06 07 09 06 0f 03 58 08 0a 19 09 07 09 06 0c 05 61 0a 0d 19 0c 07 09 06
+2e 05 63 08 03 1f 15 07 09 0d 00 06 63 0a 02 2c 1e 17 00 00 22 0c 02 04 00
+63 32 00 00 00 32 00 35 74 68 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 5th Lead.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 06 07 09 06 0f 01 58 08 0a 19 09 07 09 06 0c 01 61 0a 0d 19 0c 07 09 06
+2e 00 63 08 03 1f 15 07 09 0d 00 00 63 0a 02 2c 1e 17 00 00 22 0c 02 04 00
+63 32 00 00 00 32 00 35 74 68 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 5th Lead.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 00 09 0c 20 03 4c 08 0a 1f 09 09 09 0c 00 05 51 0a 05 1f 1f 00 09 0f
+40 05 63 08 03 1f 09 09 09 0c 00 05 63 0a 02 2c 1e 17 00 00 22 18 02 04 00
+63 32 00 00 00 32 00 35 74 68 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 5th Lead.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 00 09 0c 20 01 4c 08 0a 1f 09 09 09 0c 00 01 51 0a 05 1f 1f 00 09 0f
+40 00 63 08 03 1f 09 09 09 0c 00 00 63 0a 02 2c 1e 17 00 00 22 18 02 04 00
+63 32 00 00 00 32 00 35 74 68 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 05 04 03 0e 23 03 45 08 13 1f 0c 08 05 0f 43 05 42 04 03 1f 08 11 06 0f
+00 05 40 0a 03 1b 15 06 06 0e 23 04 63 08 13 31 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 05 04 03 0e 23 01 45 08 13 1f 0c 08 05 0f 43 01 42 04 03 1f 08 11 06 0f
+00 01 40 0a 03 1b 15 06 06 0e 23 00 63 08 13 31 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 04 03 0e 23 02 4b 0a 13 1f 1f 08 05 0f 43 03 42 04 03 1f 15 11 06 0f
+00 04 35 0a 03 1f 1f 06 0a 0e 00 03 63 04 0b 38 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 04 03 0e 23 01 4b 0a 13 1f 1f 08 05 0f 43 01 42 04 03 1f 15 11 06 0f
+00 00 35 0a 03 1f 1f 06 0a 0e 00 00 63 04 0b 38 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 00 0f 0f 23 03 4c 04 1b 1f 1f 00 0b 0f 43 03 51 0a 13 1f 1a 06 0d 0d
+00 04 63 04 03 1f 1f 08 0e 0f 00 04 57 08 0b 24 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 00 0f 0f 23 02 4c 04 1b 1f 1f 00 0b 0f 43 01 51 0a 13 1f 1a 06 0d 0d
+00 01 63 04 03 1f 1f 08 0e 0f 00 00 57 08 0b 24 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 0c 04 0f 23 41 53 04 13 1a 15 06 0b 0f 2b 41 4f 04 13 1d 0a 09 06 0f
+00 45 63 04 13 1c 04 04 0e 0f 00 45 63 04 0b 34 22 33 00 01 36 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Guitar4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 0c 04 0f 23 41 53 04 13 1a 15 06 0b 0f 2b 41 4f 04 13 1d 0a 09 06 0f
+00 40 63 04 13 1c 04 04 0e 0f 00 40 63 04 0b 34 22 33 00 01 36 0c 04 04 00
+63 32 00 00 00 32 00 41 43 20 47 75 69 74 61 72 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AllThatJaz
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 5
+1f 09 00 06 0c 27 04 48 1c 0b 1c 06 00 04 07 37 01 43 0a 00 1f 0a 00 02 06
+3d 00 45 0a 0e 1f 12 08 08 0f 00 05 63 04 0b 38 1f 00 03 00 52 0c 03 04 00
+63 32 01 32 00 32 00 41 6c 6c 54 68 61 74 4a 61 7a 63 63 63 32 32 32 00 30
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: A.Guitar
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 8
+1f 1f 06 06 0a 28 03 4b 04 0a 1c 0a 07 07 0a 28 02 3d 0a 0a 1f 0b 07 07 0b
+28 02 45 1f 0b 1b 0c 08 09 0a 00 02 62 04 0c 3a 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 41 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 20 00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: A.Guitar
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 06 06 0d 28 03 4b 04 0a 1c 0a 07 07 0d 28 02 3d 0d 0a 1f 0b 07 07 0b
+28 02 45 1f 0b 1b 0c 08 09 0d 00 02 62 04 0c 3a 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 41 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 20 00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Guitar
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 11
+1f 1f 04 03 0f 0c 01 46 0a 16 1f 1f 03 03 0f 08 00 56 04 0a 1f 1f 04 03 0f
+08 01 53 00 04 18 1f 05 0b 0f 00 02 55 04 00 3a 23 1c 08 00 42 18 02 04 00
+28 63 00 00 00 32 00 45 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 20 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Guitar
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 04 03 0f 0c 01 46 0d 16 1f 1f 03 03 0f 08 00 56 04 0a 1f 1f 04 03 0f
+08 01 53 00 04 18 1f 05 0b 0f 00 02 55 04 00 3a 23 1c 08 00 42 18 02 04 00
+28 63 00 00 00 32 00 45 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 20 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Echo Lead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 09 03 0d 00 06 57 08 0e 1f 16 00 05 0e 00 05 63 04 03 1f 16 00 08 0e
+00 05 63 04 0b 1f 16 00 05 0e 00 05 63 04 03 75 25 00 00 00 32 18 04 04 00
+63 01 63 00 00 32 00 45 63 68 6f 20 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Echo Lead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 09 03 0d 00 02 57 08 0e 1f 16 00 05 0e 00 00 63 04 03 1f 16 00 08 0e
+00 00 63 04 0b 1f 16 00 05 0e 00 00 63 04 03 75 25 00 00 00 32 18 04 04 00
+63 01 63 00 00 32 00 45 63 68 6f 20 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F.Guitar
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 9
+1f 1f 05 06 0f 28 03 4f 04 0a 1a 09 07 07 0a 28 02 49 0a 0a 1f 0b 04 07 0b
+28 02 45 1f 0b 1a 0c 06 08 0a 00 02 62 04 0c 3a 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 46 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 10 00 70 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F.Guitar
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 05 06 0f 28 03 4f 04 0a 1a 09 07 07 0d 28 02 49 0d 0a 1f 0b 04 07 0b
+28 02 45 1f 0b 1a 0c 06 08 0d 00 02 62 04 0c 3a 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 46 2e 47 75 69 74 61 72 20 20 63 63 63 32 32 32 00 00
+00 10 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flamenco
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 7
+18 0b 0a 07 0a 28 02 52 0a 0b 1f 12 00 05 0f 07 02 40 04 0b 17 0f 0e 06 09
+11 06 52 0a 0b 17 13 09 08 0e 00 01 63 04 0b 31 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 46 6c 61 6d 65 6e 63 6f 20 20 63 63 63 32 32 32 00 30
+00 00 00 10 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flamenco
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 0b 0a 07 0d 28 02 52 0a 0b 1f 12 00 05 0f 07 02 40 04 0b 17 0f 0e 06 09
+11 06 52 0a 0b 17 13 09 08 0e 00 01 63 04 0b 31 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 46 6c 61 6d 65 6e 63 6f 20 20 63 63 63 32 32 32 00 30
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Funkfifth*
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 00 06 0c 00 00 4a 04 00 1f 0a 00 02 0b 00 00 58 04 06 1b 1f 00 09 0f
+00 00 63 04 06 1b 1e 00 09 0f 11 00 54 04 00 3c 23 00 00 00 42 0c 02 04 00
+28 63 00 00 00 32 00 46 75 6e 6b 66 69 66 74 68 2a 63 63 63 32 32 32 00 00
+00 78 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Funky Pick
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 4
+1f 19 08 0a 03 00 03 63 10 18 1f 0c 05 0b 05 00 03 52 00 0b 1f 19 06 0b 05
+00 03 63 0a 16 1f 0f 11 09 07 00 04 63 04 03 3a 14 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 46 75 6e 6b 79 20 50 69 63 6b 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FuzzyLead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 06 07 0d 00 43 63 00 08 1c 0a 04 03 0c 00 44 58 04 10 1f 0c 02 07 0d
+00 45 62 00 16 1d 0a 06 07 0d 15 46 63 04 16 2c 23 00 00 01 06 0c 02 04 00
+28 02 00 00 00 32 00 46 75 7a 7a 79 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FuzzyLead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 06 07 0d 00 42 63 00 08 1c 0a 04 03 0c 00 41 58 04 10 1f 0c 02 07 0d
+00 40 62 00 16 1d 0a 06 07 0d 15 40 63 04 16 2c 23 00 00 01 06 0c 02 04 00
+28 02 00 00 00 32 00 46 75 7a 7a 79 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Guitar
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 1f 0b 06 0a 63 03 37 08 0a 1a 0b 04 05 07 3c 01 43 0a 0a 1a 0b 04 05 07
+00 01 32 1d 08 1f 0b 0b 06 0b 1e 02 63 04 0c 32 19 00 00 00 32 0c 02 04 00
+28 63 00 00 00 32 00 47 75 69 74 61 72 20 20 20 20 63 63 63 32 32 32 00 00
+00 30 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Guitar #1
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 2
+1f 0e 0e 0f 0f 00 03 48 2d 06 1f 0f 04 0f 0f 25 03 5b 00 00 1f 12 06 0c 0e
+1c 03 55 00 10 1f 13 07 08 0e 06 04 62 04 0e 3b 14 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 47 75 69 74 61 72 20 23 31 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HardHabits
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 0c 08 00 2f 3c 4b 04 0b 1c 15 06 08 0c 00 1f 52 24 13 1c 04 00 08 0c
+1e 1c 63 04 0b 1c 07 07 08 0b 00 3f 63 04 0b 04 22 21 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 48 61 72 64 48 61 62 69 74 73 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HardHabits
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 0c 08 00 2f 39 4b 04 0b 1c 15 06 08 0c 00 1a 52 24 13 1c 04 00 08 0c
+1e 18 63 04 0b 1c 07 07 08 0b 00 38 63 04 0b 04 22 21 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 48 61 72 64 48 61 62 69 74 73 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HawaiiGitr
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 00 06 00 27 02 38 22 0b 13 06 00 08 00 37 02 3b 0a 03 13 0a 00 09 00
+3d 02 45 0a 0e 13 12 08 08 0f 00 03 61 04 0b 32 1f 00 03 00 52 0c 03 04 00
+63 32 01 32 00 32 00 48 61 77 61 69 69 47 69 74 72 63 63 63 32 32 32 00 10
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HeavyLead
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 25
+11 06 08 0f 0a 2f 00 4d 04 03 1f 1f 00 0f 0f 00 00 50 00 03 1f 0c 00 0f 0d
+00 00 4e 00 03 1f 1f 00 0f 0f 00 00 5a 00 03 30 20 27 06 00 62 18 07 04 00
+63 32 00 00 00 32 00 48 65 61 76 79 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HeavyMetal
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 6
+1f 08 00 03 0f 20 01 58 00 06 1f 03 00 02 0f 1b 01 4c 0d 02 15 05 04 03 0f
+1b 00 5b 0a 05 1f 0f 00 08 0f 00 00 5c 04 03 3a 1f 16 05 00 62 18 07 04 00
+63 32 00 00 00 32 00 48 65 61 76 79 4d 65 74 61 6c 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HollowLead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1f 00 07 0f 00 04 47 08 06 12 0c 06 09 0f 00 04 5a 04 0e 14 1f 00 09 0f
+00 05 62 04 06 18 1f 00 0d 0f 00 05 56 04 03 74 29 00 00 00 22 18 05 04 00
+63 63 63 00 00 32 00 48 6f 6c 6c 6f 77 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HollowLead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1f 00 07 0f 00 01 47 08 06 12 0c 06 09 0f 00 01 5a 04 0e 14 1f 00 09 0f
+00 00 62 04 06 18 1f 00 0d 0f 00 00 56 04 03 74 29 00 00 00 22 18 05 04 00
+63 63 63 00 00 32 00 48 6f 6c 6c 6f 77 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 09 07 07 0b 55 43 5f 0a 13 1b 09 07 07 0b 63 45 5b 0a 0b 18 09 07 07 0d
+63 45 63 04 1b 16 09 07 07 09 0a 46 5f 04 03 04 19 00 01 03 16 18 00 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 09 07 07 0b 55 41 5f 0a 13 1b 09 07 07 0b 63 42 5b 0a 0b 18 09 07 07 0d
+63 40 63 04 1b 16 09 07 07 09 0a 40 5f 04 03 04 19 00 01 03 16 18 00 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 11 1f 0f 00 2e 03 60 31 03 1c 07 0c 09 0e 00 03 4a 08 0b 17 1a 07 07 0d
+4f 05 51 04 00 16 1a 09 09 0e 00 04 63 04 0b 04 23 00 05 00 22 0c 03 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 11 1f 0f 00 2e 02 60 31 03 1c 07 0c 09 0e 00 01 4a 08 0b 17 1a 07 07 0d
+4f 00 51 04 00 16 1a 09 09 0e 00 00 63 04 0b 04 23 00 05 00 22 0c 03 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 19 08 0f 0d 2e 04 5e 2a 1b 1b 11 0c 09 0c 00 03 48 08 0b 18 19 07 07 0d
+4f 04 51 04 00 16 19 09 09 0e 00 06 63 04 0b 04 23 00 05 00 22 0c 03 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 19 08 0f 0d 2e 01 5e 2a 1b 1b 11 0c 09 0c 00 01 48 08 0b 18 19 07 07 0d
+4f 00 51 04 00 16 19 09 09 0e 00 00 63 04 0b 04 23 00 05 00 22 0c 03 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 1f 0f 00 63 44 5b 2a 03 1b 09 07 07 0b 49 45 5c 0a 0b 18 09 07 07 0d
+2d 44 63 0a 1b 16 09 07 07 09 0a 46 5f 04 03 3c 23 00 01 04 3a 18 00 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Guit4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 1f 0f 00 63 42 5b 2a 03 1b 09 07 07 0b 49 42 5c 0a 0b 18 09 07 07 0d
+2d 40 63 0a 1b 16 09 07 07 09 0a 40 5f 04 03 3c 23 00 01 04 3a 18 00 04 00
+63 63 00 00 00 32 00 4a 61 7a 7a 20 47 75 69 74 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JonesLead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0a 04 07 0f 00 03 53 04 13 1b 0a 04 07 0c 00 04 4b 10 13 1b 18 06 07 0f
+00 06 62 04 12 1b 18 06 07 0f 00 05 63 04 13 7c 2d 00 00 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4a 6f 6e 65 73 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JonesLead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0a 04 07 0f 00 01 53 04 13 1b 0a 04 07 0c 00 01 4b 10 13 1b 18 06 07 0f
+00 00 62 04 12 1b 18 06 07 0f 00 00 63 04 13 7c 2d 00 00 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4a 6f 6e 65 73 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KickLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0f 07 07 0e 19 04 52 04 10 0d 01 06 08 0c 19 06 58 04 10 1f 15 07 07 0e
+00 05 63 04 08 0e 03 02 06 0e 00 46 63 04 0e 3c 0f 1d 23 3d 26 0c 04 05 00
+28 32 00 00 00 32 00 4b 69 63 6b 4c 65 61 64 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KickLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0f 07 07 0e 19 01 52 04 10 0d 01 06 08 0c 19 01 58 04 10 1f 15 07 07 0e
+00 00 63 04 08 0e 03 02 06 0e 00 40 63 04 0e 3c 0f 1d 23 3d 26 0c 04 05 00
+28 32 00 00 00 32 00 4b 69 63 6b 4c 65 61 64 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mute Gtr
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 12
+1f 14 1f 03 0e 0a 02 4e 13 0b 1f 16 0a 08 0e 1e 00 52 04 1b 1f 10 09 09 0e
+00 01 63 04 1b 1f 11 09 08 0e 00 01 63 04 1b 7c 1c 00 16 00 32 0c 02 04 00
+28 32 00 00 00 32 00 4d 75 74 65 20 47 74 72 20 20 63 63 63 32 32 32 00 50
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mute Gtr
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 1f 03 0e 0d 02 4e 13 0b 1f 16 0d 08 0e 1e 00 52 04 1b 1f 10 09 09 0e
+00 01 63 04 1b 1f 11 09 08 0e 00 01 63 04 1b 7c 1c 00 16 00 32 0c 02 04 00
+28 32 00 00 00 32 00 4d 75 74 65 20 47 74 72 20 20 63 63 63 32 32 32 00 50
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NastyLead1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0d 09 08 0f 00 04 61 04 08 0f 04 11 08 0c 00 04 5f 04 09 1f 15 08 08 0f
+00 05 63 04 08 0f 15 06 08 0c 00 05 63 04 0e 6c 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 4e 61 73 74 79 4c 65 61 64 31 63 63 63 32 32 32 00 00
+00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NastyLead1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0d 09 08 0f 00 02 61 04 08 0f 04 11 08 0c 00 01 5f 04 09 1f 15 08 08 0f
+00 00 63 04 08 0f 15 06 08 0c 00 00 63 04 0e 6c 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 4e 61 73 74 79 4c 65 61 64 31 63 63 63 32 32 32 00 00
+00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NastyLead2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0d 09 08 0f 00 04 62 08 00 0f 0e 05 08 07 00 05 62 04 01 1f 15 08 08 0f
+00 05 63 08 00 0f 16 06 08 0e 00 05 63 10 06 6c 26 00 03 00 42 18 05 04 00
+63 63 63 00 00 32 00 4e 61 73 74 79 4c 65 61 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NastyLead2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0d 09 08 0f 00 02 62 08 00 0f 0e 05 08 07 00 02 62 04 01 1f 15 08 08 0f
+00 00 63 08 00 0f 16 06 08 0e 00 00 63 10 06 6c 26 00 03 00 42 18 05 04 00
+63 63 63 00 00 32 00 4e 61 73 74 79 4c 65 61 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nuln Guit3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0a 04 0c 09 63 01 48 1f 0b 19 1e 09 09 09 00 03 51 0d 1c 1d 0a 04 0c 03
+00 05 5d 0d 1b 15 03 06 09 0f 0a 05 5c 04 0b 3c 23 00 1b 00 22 00 04 04 00
+63 32 00 00 00 32 00 4e 75 6c 6e 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nuln Guit3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0a 04 0c 09 63 01 48 1f 0b 19 1e 09 09 09 00 01 51 0d 1c 1d 0a 04 0c 03
+00 00 5d 0d 1b 15 03 06 09 0f 0a 00 5c 04 0b 3c 23 00 1b 00 22 00 04 04 00
+63 32 00 00 00 32 00 4e 75 6c 6e 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nyln Guit1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 0c 06 0b 23 02 4a 1c 13 14 15 03 07 0f 27 02 4a 04 13 15 0a 09 06 0f
+00 04 43 16 03 18 04 04 06 0e 00 04 63 04 0b 3c 23 00 1b 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4e 79 6c 6e 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nyln Guit1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 0c 06 0b 23 02 4a 1c 13 14 15 03 07 0f 27 01 4a 04 13 15 0a 09 06 0f
+00 00 43 16 03 18 04 04 06 0e 00 00 63 04 0b 3c 23 00 1b 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4e 79 6c 6e 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nyln Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 0c 06 05 23 02 4f 10 13 1c 1e 03 07 04 00 05 42 3f 14 1f 19 03 07 04
+00 05 60 04 1b 18 04 03 07 04 00 04 5f 04 0b 21 23 00 1b 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4e 79 6c 6e 20 47 75 69 74 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nyln Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 0c 06 05 23 02 4f 10 13 1c 1e 03 07 04 00 01 42 3f 14 1f 19 03 07 04
+00 01 60 04 1b 18 04 03 07 04 00 00 5f 04 0b 21 23 00 1b 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4e 79 6c 6e 20 47 75 69 74 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Nylon *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 08 04 0b 2f 03 4d 0d 13 1c 1f 03 05 0f 2c 02 36 03 09 1b 05 07 04 0a
+29 04 4c 0d 16 15 13 08 05 0e 11 03 63 04 0a 3b 1f 00 00 00 32 11 02 04 00
+28 63 00 00 00 32 00 4e 79 6c 6f 6e 20 20 20 20 2a 63 63 63 32 32 32 00 08
+00 06 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NylonGuit
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 1
+1f 09 00 06 00 27 02 51 19 0b 1c 06 00 08 00 37 02 47 0a 03 1f 0a 00 09 00
+3d 02 4d 0a 0e 1f 12 08 08 0f 00 03 61 04 0b 28 1f 00 03 00 52 0c 03 04 00
+63 32 01 32 00 32 00 4e 79 6c 6f 6e 47 75 69 74 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntGuitar
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0c 07 0a 0d 63 02 50 19 1b 1b 0c 07 0a 0d 63 02 4f 00 1b 1b 12 07 0a 0d
+00 05 5b 1f 13 1b 12 07 0a 0d 00 05 62 08 15 04 23 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 47 75 69 74 61 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntGuitar
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0c 07 0a 0d 63 00 50 19 1b 1b 0c 07 0a 0d 63 00 4f 00 1b 1b 12 07 0a 0d
+00 00 5b 1f 13 1b 12 07 0a 0d 00 00 62 08 15 04 23 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 47 75 69 74 61 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 0f 09 06 0e 39 02 51 04 06 1c 09 0a 08 0e 00 03 59 0a 01 1f 09 09 08 0f
+00 01 63 08 05 18 0c 09 07 0f 00 04 63 04 02 76 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0f 09 06 0e 39 02 51 04 06 1c 09 0a 08 0e 00 00 59 0a 01 1f 09 09 08 0f
+00 00 63 08 05 18 0c 09 07 0f 00 00 63 04 02 76 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 0f 09 06 0e 39 03 45 13 06 1c 09 0a 08 0e 00 02 63 08 01 1f 09 09 08 0f
+00 05 63 04 05 0e 0c 07 08 0f 00 04 63 04 0a 76 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0f 09 06 0e 39 02 45 13 06 1c 09 0a 08 0e 00 00 63 08 01 1f 09 09 08 0f
+00 00 63 04 05 0e 0c 07 08 0f 00 00 63 04 0a 76 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 0f 09 06 0e 39 02 3c 08 06 1c 09 0a 08 0e 00 03 63 08 01 1f 09 09 08 0f
+00 03 63 04 05 0e 0c 07 08 0f 00 06 63 04 0a 7d 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ped Stl..3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0f 09 06 0e 39 00 3c 08 06 1c 09 0a 08 0e 00 00 63 08 01 1f 09 09 08 0f
+00 00 63 04 05 0e 0c 07 08 0f 00 00 63 04 0a 7d 22 00 00 00 22 18 03 04 00
+63 63 00 00 00 32 00 50 65 64 20 53 74 6c 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PedalSteel
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 00 0c 00 27 02 3c 24 0b 1f 10 02 0a 0e 37 02 5d 04 0c 1b 06 05 0b 0d
+3d 02 5a 0a 0b 1b 09 06 0b 0d 00 06 63 04 0b 03 1d 16 09 00 52 18 02 04 00
+63 19 00 0a 00 32 00 50 65 64 61 6c 53 74 65 65 6c 63 63 63 32 32 32 00 40
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercLead.1
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 0d 00 0a 0b 06 44 55 08 1b 1f 08 00 0d 0c 05 06 40 00 0b 1f 1f 00 0d 0f
+0d 06 53 04 1b 1f 1f 00 0d 0f 00 45 5e 04 03 11 23 35 00 10 46 18 0c 04 00
+63 32 32 00 00 32 00 50 65 72 63 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercLead.1
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0d 00 0a 0b 06 41 55 08 1b 1f 08 00 0d 0c 05 01 40 00 0b 1f 1f 00 0d 0f
+0d 01 53 04 1b 1f 1f 00 0d 0f 00 40 5e 04 03 11 23 35 00 10 46 18 0c 04 00
+63 32 32 00 00 32 00 50 65 72 63 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercLead.2
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 0d 00 0a 0b 06 46 63 04 1b 1f 08 00 0d 0c 05 04 5e 0a 0b 1f 1f 00 0d 0f
+0d 06 52 04 1b 1f 1f 00 0d 0f 00 44 57 04 03 25 23 35 00 10 46 18 0c 04 00
+63 32 32 00 00 32 00 50 65 72 63 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercLead.2
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0d 00 0a 0b 06 42 63 04 1b 1f 08 00 0d 0c 05 00 5e 0a 0b 1f 1f 00 0d 0f
+0d 00 52 04 1b 1f 1f 00 0d 0f 00 40 57 04 03 25 23 35 00 10 46 18 0c 04 00
+63 32 32 00 00 32 00 50 65 72 63 4c 65 61 64 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PhasedGuit
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0e 0e 0f 0f 00 03 42 2d 06 16 0f 04 0f 0f 20 03 60 00 00 1c 12 06 0c 0e
+14 03 5a 00 08 1f 13 07 08 0e 06 04 62 04 0e 3b 1d 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 50 68 61 73 65 64 47 75 69 74 63 63 63 32 32 32 10 30
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Piknylon *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 1e 1f 07 00 00 03 5a 28 03 1d 08 1f 05 0a 21 02 43 0a 08 1d 0d 08 02 0c
+18 02 53 0a 15 1d 0a 0c 05 0a 00 03 63 04 04 02 1e 0a 09 00 32 18 02 04 00
+28 63 00 00 00 32 00 50 69 6b 6e 79 6c 6f 6e 20 2a 63 63 63 32 32 32 0a 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Power Lead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 00 01 00 2e 03 5c 08 13 1f 0c 06 09 0f 4b 06 4d 00 13 1f 0d 03 09 04
+46 05 51 1c 0b 1f 12 06 09 0e 0e 05 63 04 0b 2a 23 00 00 00 02 0c 02 04 00
+28 02 00 00 00 32 00 50 6f 77 65 72 20 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Power Lead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 00 01 00 2e 01 5c 08 13 1f 0c 06 09 0f 4b 01 4d 00 13 1f 0d 03 09 04
+46 01 51 1c 0b 1f 12 06 09 0e 0e 00 63 04 0b 2a 23 00 00 00 02 0c 02 04 00
+28 02 00 00 00 32 00 50 6f 77 65 72 20 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PowerChord
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 08 00 03 07 20 01 52 00 06 1c 03 00 02 0a 1b 01 4c 00 02 15 05 04 03 0a
+1b 00 46 0a 05 17 0f 00 08 0f 00 40 50 04 03 3a 1e 16 02 32 46 18 07 04 00
+63 32 00 00 00 32 00 50 6f 77 65 72 43 68 6f 72 64 63 63 63 32 32 32 00 00
+00 50 00 50 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RecLead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 1f 00 06 0f 5c 01 48 0d 03 16 02 06 03 0d 00 01 5c 0d 06 15 09 09 0c 0d
+00 05 63 0d 0b 12 09 09 08 0d 00 05 5f 0d 0b 0c 00 02 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 52 65 63 4c 65 61 64 20 20 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RecLead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 1f 00 06 0f 5c 01 48 0d 03 16 02 06 03 0d 00 01 5c 0d 06 15 09 09 0c 0d
+00 00 63 0d 0b 12 09 09 08 0d 00 00 5f 0d 0b 0c 00 02 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 52 65 63 4c 65 61 64 20 20 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 03 0d 0e 63 02 54 04 0e 1c 0a 02 0c 0b 00 03 41 1c 1c 1c 07 01 07 0e
+00 05 5d 04 1b 1c 05 02 0a 0b 0a 05 5c 04 0d 03 23 20 00 00 32 00 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 03 0d 0e 63 01 54 04 0e 1c 0a 02 0c 0b 00 01 41 1c 1c 1c 07 01 07 0e
+00 01 5d 04 1b 1c 05 02 0a 0b 0a 00 5c 04 0d 03 23 20 00 00 32 00 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 03 00 0a 0e 13 02 41 04 03 12 1f 00 0a 0f 00 03 46 08 02 12 1f 00 0a 0f
+45 05 60 08 03 12 1f 00 0a 0f 01 05 60 08 03 1b 23 01 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 03 00 0a 0e 13 02 41 04 03 12 1f 00 0a 0f 00 01 46 08 02 12 1f 00 0a 0f
+45 01 60 08 03 12 1f 00 0a 0f 01 00 60 08 03 1b 23 01 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 01 0c 0e 07 03 4e 00 1e 1c 1f 06 0f 0f 00 04 54 04 0c 1c 09 03 0f 0f
+00 06 4e 04 03 1c 07 07 09 0b 0a 05 56 04 0d 29 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 01 0c 0e 07 01 4e 00 1e 1c 1f 06 0f 0f 00 01 54 04 0c 1c 09 03 0f 0f
+00 01 4e 04 03 1c 07 07 09 0b 0a 00 56 04 0d 29 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 0a 0c 0e 00 03 41 1c 16 1c 1f 06 0f 0f 00 04 5b 00 0c 1c 09 03 0f 0f
+00 05 4e 04 03 1c 07 07 09 0b 0a 05 60 04 0d 2c 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 0a 0c 0e 00 01 41 1c 16 1c 1f 06 0f 0f 00 01 5b 00 0c 1c 09 03 0f 0f
+00 00 4e 04 03 1c 07 07 09 0b 0a 00 60 04 0d 2c 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0f 06 07 0c 00 03 57 04 13 1c 1f 06 0f 0f 00 03 55 08 0c 1c 09 07 07 0c
+00 05 5f 0a 0a 1c 07 07 09 0b 0a 05 5f 04 0d 2c 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 35 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0f 06 07 0c 00 01 57 04 13 1c 1f 06 0f 0f 00 01 55 08 0c 1c 09 07 07 0c
+00 00 5f 0a 0a 1c 07 07 09 0b 0a 00 5f 04 0d 2c 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 35 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 1f 04 07 0f 00 02 50 04 13 10 15 04 0f 0d 00 03 56 00 0c 10 1f 04 07 0f
+00 05 63 0a 0a 18 04 03 09 0b 0a 05 63 04 15 24 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rock Guit6
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 1f 04 07 0f 00 00 50 04 13 10 15 04 0f 0d 00 00 56 00 0c 10 1f 04 07 0f
+00 00 63 0a 0a 18 04 03 09 0b 0a 00 63 04 15 24 23 20 00 00 32 18 04 04 00
+63 32 00 00 00 32 00 52 6f 63 6b 20 47 75 69 74 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StadiumSol
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 17
+1f 08 00 03 0f 20 01 4e 00 06 1f 03 00 02 0f 1b 01 48 0d 02 1f 05 04 03 0f
+1b 00 3c 2a 05 1e 0f 00 09 0f 00 00 5c 04 03 3a 1f 16 05 00 62 18 07 0c 00
+63 32 00 00 00 32 00 53 74 61 64 69 75 6d 53 6f 6c 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 23
+17 0f 00 0a 0c 00 00 35 0a 06 18 0e 00 0a 0c 00 00 3f 04 06 16 00 00 0a 0f
+05 00 53 04 06 18 05 01 0a 0a 00 04 5c 04 00 3b 20 14 0a 00 42 0c 02 04 00
+28 46 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 31 63 63 63 32 32 32 00 60
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 0f 00 0a 0c 00 00 35 0d 06 18 0e 00 0a 0c 00 00 3f 04 06 16 00 00 0a 0f
+05 00 53 04 06 18 05 01 0a 0d 00 04 5c 04 00 3b 20 14 0a 00 42 0c 02 04 00
+28 46 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 31 63 63 63 32 32 32 00 60
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 24
+1f 19 00 08 0b 00 00 49 04 06 1b 0a 00 0c 0c 00 02 63 08 00 1b 04 00 0c 0a
+00 02 63 04 06 1f 04 00 0c 0e 00 02 63 04 06 3d 26 28 14 00 42 18 02 04 00
+28 4b 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 32 63 63 63 32 32 32 00 20
+00 50 00 40 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 19 00 08 0b 00 00 49 04 06 1b 0a 00 0c 0c 00 02 63 08 00 1b 04 00 0c 0d
+00 02 63 04 06 1f 04 00 0c 0e 00 02 63 04 06 3d 26 28 14 00 42 18 02 04 00
+28 4b 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 32 63 63 63 32 32 32 00 20
+00 50 00 40 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 3
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 25
+1f 0a 00 04 0a 07 01 4f 04 0b 1f 0a 00 07 0b 00 00 2d 04 0b 1f 0b 00 05 0b
+00 00 4d 04 0b 16 1f 00 0a 0f 00 01 61 04 0b 3a 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 33 63 63 63 32 32 32 00 30
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 00 04 0d 07 01 4f 04 0b 1f 0d 00 07 0b 00 00 2d 04 0b 1f 0b 00 05 0b
+00 00 4d 04 0b 16 1f 00 0a 0f 00 01 61 04 0b 3a 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 33 63 63 63 32 32 32 00 30
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 4
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 26
+1f 0a 00 04 0a 07 01 4d 08 0b 1f 0a 00 07 0b 00 00 35 08 0b 1f 0b 00 05 0b
+00 00 45 04 0b 17 1f 00 0a 0f 00 01 61 04 0b 3a 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 34 63 63 63 32 32 32 00 30
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Solo 4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 00 04 0d 07 01 4d 08 0b 1f 0d 00 07 0b 00 00 35 08 0b 1f 0b 00 05 0b
+00 00 45 04 0b 17 1f 00 0a 0f 00 01 61 04 0b 3a 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 53 6f 6c 6f 20 20 34 63 63 63 32 32 32 00 30
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sync Lead
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 22
+13 12 00 09 0d 22 00 51 00 0b 1f 14 00 05 08 24 40 5c 00 03 1f 11 00 06 0c
+2c 00 53 09 00 10 1f 00 0b 0f 00 00 5c 0a 0e 3a 22 11 0e 1e 5e 18 07 04 00
+63 32 00 32 00 32 00 53 79 6e 63 20 4c 65 61 64 20 63 63 63 32 32 32 00 70
+00 40 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TwangGuitr
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1a 00 03 01 00 04 52 2f 16 1f 05 00 08 00 00 02 50 04 10 1f 0f 06 09 0a
+00 02 3e 35 10 1f 09 07 09 0d 00 05 63 10 0b 32 1e 09 02 00 52 0c 04 04 00
+63 19 00 10 00 32 00 54 77 61 6e 67 47 75 69 74 72 63 63 63 32 32 32 10 54
+15 50 10 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TwelveStrg
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 3
+1f 0d 08 0a 08 00 03 42 24 06 1f 1f 05 0b 0b 36 03 63 07 0e 1f 0f 06 0b 0f
+13 03 63 00 10 1f 13 07 09 0e 00 04 63 04 0e 3b 14 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 54 77 65 6c 76 65 53 74 72 67 63 63 63 32 32 32 00 00
+00 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: slowtacky
+** Description: a biting electric guitar sound
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0a 06 0b 02 00 05 5f 08 02 1f 02 03 0b 0e 43 05 5f 00 10 1f 12 06 08 0e
+00 05 5f 00 00 16 04 08 08 0c 00 05 5f 04 03 33 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 73 6c 6f 77 74 61 63 6b 79 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: slowtacky+
+** Description: 'slowtacky' (from GLIB) with added sustain
+** Controls: KV
+** Source: Art Hitzeman, based on a voice from GLIB (Michael Kesti and others)
+1f 0a 06 07 02 00 05 5f 08 02 1f 02 03 07 0e 43 05 5f 00 10 1f 12 06 07 0e
+00 05 5f 00 00 16 04 08 06 0c 00 05 5f 04 03 33 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 73 6c 6f 77 74 61 63 6b 79 2b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 9
+
+* SUBCATEGORY Harp
+
+
+** Name: Dbl Harp.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 09 04 0b 27 04 5f 0a 04 1c 0f 02 01 00 2d 04 5a 08 02 1c 0a 09 06 0a
+1d 04 63 04 01 11 1f 04 03 0c 00 05 63 04 1d 6c 22 21 00 00 12 18 02 04 00
+63 32 00 00 01 32 00 44 62 6c 20 48 61 72 70 2e 31 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dbl Harp.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 09 04 0b 27 01 5f 0a 04 1c 0f 02 01 00 2d 01 5a 08 02 1c 0a 09 06 0a
+1d 00 63 04 01 11 1f 04 03 0c 00 01 63 04 1d 6c 22 21 00 00 12 18 02 04 00
+63 32 00 00 01 32 00 44 62 6c 20 48 61 72 70 2e 31 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dbl Harp.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 1b 07 06 00 63 05 5d 13 0c 1f 12 0c 04 0f 5a 04 53 0d 0a 1c 0a 07 05 00
+00 04 4c 08 01 18 12 09 05 0f 00 05 5d 04 0d 38 1b 29 01 00 32 18 02 04 00
+63 32 00 00 01 32 00 44 62 6c 20 48 61 72 70 2e 32 63 63 63 32 32 32 00 10
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dbl Harp.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 1b 07 06 00 63 01 5d 13 0c 1f 12 0c 04 0f 5a 01 53 0d 0a 1c 0a 07 05 00
+00 00 4c 08 01 13 12 09 05 0f 00 00 5d 04 0d 38 1b 29 01 00 32 18 02 04 00
+63 32 00 00 01 32 00 44 62 6c 20 48 61 72 70 2e 32 63 63 63 32 32 32 00 10
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 00 01 00 07 02 50 08 0e 1f 12 00 05 00 00 03 4d 0a 10 1e 08 00 04 00
+0b 03 63 04 10 1b 08 00 04 00 10 03 63 04 16 34 23 00 00 00 32 18 02 04 00
+28 62 00 00 00 32 00 48 61 72 70 20 20 20 20 20 2a 63 63 63 32 32 32 00 30
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank B, voice 24
+10 13 0f 04 0a 00 03 3b 14 14 1f 0e 08 07 09 00 02 42 05 0e 18 13 0d 09 0c
+00 02 3c 13 08 1f 11 07 04 0f 00 42 63 04 10 3a 1b 00 00 00 52 1d 04 04 00
+63 32 00 00 00 32 00 48 61 72 70 20 20 20 20 20 20 63 63 63 32 32 32 08 00
+00 21 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 13
+17 0e 0a 03 0e 00 04 56 04 08 17 0e 0a 03 0e 00 04 56 04 0e 1f 0c 07 05 0e
+00 03 63 04 08 1f 0c 07 05 0e 00 03 63 04 0e 04 1b 15 0a 01 32 18 02 04 00
+63 63 00 00 00 32 00 48 61 72 70 20 20 20 20 20 31 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 0e 0a 03 0e 00 04 56 04 08 17 0e 0a 03 0e 00 04 56 04 0e 1f 0c 07 05 0e
+00 03 63 04 08 1f 0c 07 05 0e 00 03 63 04 0e 04 1b 15 0d 01 32 18 02 04 00
+63 63 00 00 00 32 00 48 61 72 70 20 20 20 20 20 31 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 14
+17 0b 0b 01 06 0a 42 3b 04 00 1c 13 00 01 00 0a 41 49 08 06 1f 13 00 01 00
+00 42 43 16 06 19 0f 0b 05 0e 00 43 63 04 08 3a 14 00 06 08 4a 18 02 04 00
+28 55 00 00 00 32 00 48 61 72 70 20 20 20 20 20 32 63 63 63 32 32 32 00 00
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 05 0a 07 0e 00 02 56 13 0c 1f 09 05 03 00 52 02 53 08 0b 1f 13 07 06 00
+36 05 4b 10 03 19 07 00 04 00 1d 04 5c 04 0e 3b 1b 00 02 00 32 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 05 0a 07 0e 00 00 56 13 0c 1f 09 05 03 00 52 00 53 08 0b 1f 13 07 06 00
+36 02 4b 10 03 19 07 00 04 00 1d 01 5c 04 0e 3b 1b 00 02 00 32 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 09 03 0b 2d 03 53 0a 1c 1c 0d 0d 03 0a 2d 04 4d 04 0a 1c 0a 0a 04 0a
+32 04 47 0a 09 1c 09 0d 04 0a 00 04 62 04 0d 58 22 21 00 00 12 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 40
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 09 03 0b 2d 00 53 0a 1c 1c 0d 0d 03 0a 2d 01 4d 04 0a 1c 0a 0a 04 0a
+32 01 47 0a 09 1c 09 0d 04 0a 00 00 62 04 0d 58 22 21 00 00 12 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 40
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp....FM
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 10 06 06 00 63 01 5a 08 0b 1a 18 06 06 0f 5a 04 5b 04 00 1c 1f 1f 06 0f
+00 04 4c 04 0d 13 06 00 06 0f 00 04 63 04 02 25 1b 23 0b 00 42 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 46 4d 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harp....FM
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 10 06 06 00 63 01 5a 08 0b 1a 18 06 06 0f 5a 01 5b 04 00 1c 1f 1f 06 0f
+00 00 4c 04 0d 13 06 00 06 0f 00 00 63 04 02 25 1b 23 0b 00 42 18 02 04 00
+63 32 00 00 01 32 00 48 61 72 70 2e 2e 2e 2e 46 4d 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Koto
+
+
+** Name: Fuzzy Koto
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 8
+16 02 00 04 06 09 01 4f 08 00 19 0e 01 04 00 20 01 43 19 00 1f 12 10 06 07
+00 00 54 3d 03 16 0d 06 06 02 1e 03 61 08 0e 3a 20 01 14 00 42 0c 02 04 02
+63 63 63 00 00 32 00 46 75 7a 7a 79 20 4b 6f 74 6f 63 63 63 32 32 32 00 00
+00 00 0b 50 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 15 00 05 00 0f 02 56 0d 13 1c 04 03 03 0b 0d 01 4f 04 1e 1c 07 09 05 0d
+23 01 53 0d 18 1a 14 08 04 0d 00 03 63 04 10 02 1a 08 1d 00 32 18 02 04 00
+28 63 00 00 00 36 00 4b 6f 74 6f 20 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 17
+1f 12 0c 06 0b 1c 03 57 16 0b 1f 1f 08 01 0f 0b 01 47 04 0b 1f 1f 06 04 0f
+25 01 4b 0a 0b 19 1f 0a 06 0f 00 02 5a 08 0b 00 1e 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 4b 6f 74 6f 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0c 06 0b 1c 03 57 16 0b 1f 1f 08 01 0f 0b 01 47 04 0b 1f 1f 06 04 0f
+25 01 4b 0a 0b 19 1f 0a 06 0f 00 02 5a 08 0b 00 1e 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 4b 6f 74 6f 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 07 0c 11 02 52 0d 16 1b 1f 1d 05 0d 00 02 63 04 10 1c 0d 05 05 0c
+19 05 63 04 16 1f 11 08 05 0f 00 46 5a 00 10 1c 1f 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 07 0c 11 00 52 0d 16 1b 1f 1d 05 0d 00 00 63 04 10 1c 0d 05 05 0c
+19 00 63 04 16 1f 11 08 05 0f 00 40 5a 00 10 1c 1f 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 07 0c 11 41 47 0d 13 1b 1f 1d 05 0d 00 43 63 0a 13 1c 0d 05 05 0c
+19 45 63 04 13 1f 11 08 05 0f 00 45 5a 04 13 5c 1e 00 11 14 26 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 07 0c 11 40 47 0d 13 1b 1f 1d 05 0d 00 40 63 0a 13 1c 0d 05 05 0c
+19 40 63 04 13 1f 11 08 05 0f 00 40 5a 04 13 5c 1e 00 11 14 26 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 07 0c 11 42 47 0d 13 1f 0a 09 07 0c 11 43 4a 0d 13 1c 0d 05 05 0c
+19 45 63 04 13 1c 0d 05 05 0c 19 47 5a 04 13 5c 1e 00 11 14 26 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Koto.....3
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 07 0c 11 40 47 0d 13 1f 0a 09 07 0c 11 40 4a 0d 13 1c 0d 05 05 0c
+19 40 63 04 13 1c 0d 05 05 0c 19 40 5a 04 13 5c 1e 00 11 14 26 18 02 04 00
+63 32 00 32 00 32 00 4b 6f 74 6f 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Lute
+
+
+** Name: OrntLute.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 04 05 08 00 04 52 08 0b 0c 07 1f 04 07 00 42 3e 00 0c 19 07 1f 04 07
+00 04 63 04 0c 18 07 09 05 0e 00 45 63 04 0b 74 34 00 00 0a 06 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 4c 75 74 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntLute.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 04 05 08 00 00 52 08 0b 0c 07 1f 04 07 00 40 3e 00 0c 19 07 1f 04 07
+00 00 63 04 0c 18 07 09 05 0e 00 40 63 04 0b 74 34 00 00 0a 06 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 4c 75 74 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntLute.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 03 00 05 0f 00 42 59 00 0b 1f 0c 1f 05 08 00 43 46 00 0a 0c 0c 1f 04 07
+00 44 63 00 0c 15 0c 09 05 0c 00 46 61 04 0b 6c 34 00 00 0a 06 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 4c 75 74 65 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntLute.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 03 00 05 0f 00 40 59 00 0b 1f 0c 1f 05 08 00 40 46 00 0a 0c 0c 1f 04 07
+00 40 63 00 0c 15 0c 09 05 0c 00 40 61 04 0b 6c 34 00 00 0a 06 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 4c 75 74 65 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Mandolin
+
+
+** Name: Mandolin.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 19 0d 05 0c 02 04 62 2d 1b 1f 09 06 02 0b 00 04 45 0a 0b 17 0c 09 07 00
+00 06 63 04 0a 16 0c 09 07 0b 00 05 63 04 1c 74 2c 63 04 00 22 18 02 04 00
+63 32 00 32 00 32 00 4d 61 6e 64 6f 6c 69 6e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mandolin.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 19 0d 05 0c 02 02 62 2d 1b 1f 09 06 02 0b 00 02 45 0a 0b 17 0c 09 07 00
+00 00 63 04 0a 16 0c 09 07 0b 00 00 63 04 1c 74 2c 63 04 00 22 18 02 04 00
+63 32 00 32 00 32 00 4d 61 6e 64 6f 6c 69 6e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mandolin.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 0d 05 0c 02 02 3f 2d 1b 1f 0c 06 04 0b 00 05 37 0a 0b 1f 0d 07 05 0f
+00 05 5f 04 0a 16 0c 09 05 0b 00 05 5e 04 1c 3c 46 10 01 00 20 18 02 04 00
+63 32 00 32 00 32 00 4d 61 6e 64 6f 6c 69 6e 2e 32 63 63 63 32 32 32 00 40
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mandolin.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 0d 05 0c 02 01 3f 2d 1b 1f 0c 06 04 0b 00 01 37 0a 0b 1f 0d 07 05 0f
+00 00 5f 04 0a 16 0c 09 05 0b 00 00 5e 04 1c 3c 46 10 01 00 20 18 02 04 00
+63 32 00 32 00 32 00 4d 61 6e 64 6f 6c 69 6e 2e 32 63 63 63 32 32 32 00 40
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Sitar
+
+
+** Name: Sitar *
+** Controls: KV, BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 04 03 1e 0c 0b 01 0f 00 02 55 16 09 11 15 00 02 0f
+00 03 5b 04 08 1f 18 06 04 0f 00 01 63 04 0b 03 1d 00 00 00 62 18 01 04 00
+28 0d 00 00 00 33 00 53 69 74 61 72 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 29
+17 0e 09 01 0e 02 00 47 04 1b 1f 06 03 01 05 00 00 4b 08 16 1f 06 04 01 07
+00 00 5e 04 16 1f 05 08 01 07 00 01 5f 08 18 3b 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 06 01 0d 52 03 51 16 0a 1f 0c 09 01 0e 27 02 58 04 0b 1f 06 06 04 0e
+11 06 5b 04 13 1f 18 09 04 0e 00 05 49 37 0b 04 1c 00 00 00 22 18 01 04 00
+63 00 63 00 00 32 00 53 69 74 61 72 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 06 01 0d 52 00 51 16 0a 1f 0c 09 01 0e 27 00 58 04 0b 1f 06 06 04 0e
+11 00 5b 04 13 1f 18 09 04 0e 00 00 49 37 0b 04 1c 00 00 00 22 18 01 04 00
+63 00 63 00 00 32 00 53 69 74 61 72 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 0e 09 04 0e 02 01 43 13 13 1f 06 03 03 05 00 02 3b 1c 16 1f 06 04 02 07
+00 05 52 04 16 1f 05 08 01 07 00 05 60 00 18 13 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 0e 09 04 0e 02 00 43 13 13 1f 06 03 03 05 00 00 3b 1c 16 1f 06 04 02 07
+00 00 52 04 16 1f 05 08 01 07 00 00 60 00 18 13 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 12 07 02 05 02 02 43 19 0c 1b 1c 0a 04 08 00 02 5b 1c 02 0f 0c 0a 02 0e
+00 05 52 13 1c 1f 12 06 05 0f 00 05 60 00 0b 5a 2c 63 04 00 22 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar....3
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 12 07 02 05 02 00 43 19 0c 1b 1c 0a 04 08 00 00 5b 1c 02 0f 0c 0a 02 0e
+00 00 52 13 1c 1f 12 06 05 0f 00 00 60 00 0b 5a 2c 63 04 00 22 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar.Vib
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 12 07 04 04 02 03 43 13 0b 1b 1d 09 03 09 00 02 3b 1c 06 0f 0c 09 05 0c
+00 05 52 04 1e 1f 12 05 05 0f 00 07 60 00 00 13 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 56 69 62 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sitar.Vib
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 12 07 04 04 02 00 43 13 0b 1b 1d 09 03 09 00 00 3b 1c 06 0f 0c 09 05 0c
+00 00 52 04 1e 1f 12 05 05 0f 00 00 60 00 00 13 21 00 05 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 69 74 61 72 2e 56 69 62 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Sitar
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 31
+1e 12 1f 03 09 00 00 41 3c 03 1d 0f 02 01 0f 00 00 5b 00 03 1e 0f 1f 02 0f
+3b 01 57 02 03 1e 1f 0c 04 0f 00 02 5d 10 03 3a 17 00 03 00 5a 18 02 04 00
+63 32 00 00 00 32 00 53 79 2e 53 69 74 61 72 20 20 63 63 63 32 32 32 00 10
+00 00 00 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Viola
+
+
+** Name: Viola 5th
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 06 00 06 0f 0a 01 4c 0a 15 0f 07 00 06 0e 32 04 4e 08 0b 0b 07 06 07 0f
+0a 06 57 13 0c 0d 06 06 08 0d 00 03 5f 08 03 74 22 23 0b 00 12 18 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 20 35 74 68 20 63 63 63 32 32 32 00 40
+00 20 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Viola 5th
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 06 00 06 0f 0a 01 54 0a 15 10 07 00 06 0e 32 01 4e 0d 0b 0a 07 06 07 0f
+0a 00 60 0a 0c 0d 06 06 08 0d 00 00 5f 04 03 74 22 23 0b 00 12 18 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 20 35 74 68 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Viola....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 06 03 08 0e 00 41 4c 08 0d 1b 0d 07 07 0d 0a 44 43 19 04 0d 06 01 07 0f
+00 45 60 08 03 0f 06 09 09 0d 00 45 60 08 04 7c 20 38 32 00 26 0c 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Viola....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 06 03 08 0e 00 41 4c 08 0d 1f 0d 07 07 0d 0a 41 43 19 04 0d 06 01 07 0f
+00 40 60 08 03 0d 06 09 09 0d 00 41 60 13 04 7c 20 38 0e 00 26 0c 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Viola....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 06 07 0d 00 42 4e 04 03 0e 09 0d 07 03 0a 45 4f 08 14 0c 07 05 06 04
+00 46 5c 04 03 0d 06 06 05 0d 00 43 63 04 04 35 1e 2e 26 00 36 0c 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 40 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Viola....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 04 06 07 0d 00 42 53 04 03 0e 09 0d 07 03 0a 41 4f 0d 14 0f 15 07 06 0d
+00 40 63 04 03 0f 06 06 05 0d 00 41 63 04 04 34 1c 2e 1e 00 36 0c 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 61 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ViolaSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 06 02 07 0f 00 03 4a 04 0b 0f 07 09 07 07 00 03 63 00 03 0e 09 10 0d 07
+00 06 5c 04 03 0f 07 09 07 07 00 05 63 04 03 7d 23 0f 0b 00 42 18 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 61 53 79 6e 74 68 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ViolaSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 06 02 07 0f 00 01 4a 04 0b 0f 07 09 07 07 00 00 63 00 03 0e 09 10 0d 07
+00 00 5c 04 03 0f 07 09 07 07 00 00 63 04 03 7d 23 0f 0b 00 42 18 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 61 53 79 6e 74 68 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 10
+
+* SUBCATEGORY Violin
+
+
+** Name: SoloViolin
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 20
+1b 05 00 07 0e 0c 01 4e 08 04 19 0b 06 06 0f 49 02 3b 0d 03 1c 11 10 0d 07
+00 03 4b 35 03 0b 0a 00 06 0f 02 02 63 08 13 3a 1e 06 06 00 52 0c 04 04 00
+63 32 00 00 00 32 00 53 6f 6c 6f 56 69 6f 6c 69 6e 63 63 63 32 32 32 00 00
+00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sradiv. *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 0f 09 0f 2a 05 31 20 05 12 09 02 06 0f 10 00 51 08 0b 1f 0e 07 03 0a
+14 02 4d 19 08 0e 05 05 09 0e 00 06 63 08 0a 00 20 00 0e 00 42 0c 02 04 00
+28 63 00 00 00 31 00 53 72 61 64 69 76 2e 20 20 2a 63 63 63 32 32 32 0c 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin 1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 5
+16 07 00 06 0e 00 41 4e 04 0b 15 08 00 03 0b 00 02 3a 04 0b 19 08 00 08 0c
+10 05 5f 0a 14 0e 0e 00 08 0a 00 02 60 08 0b 3a 20 0a 08 00 62 18 02 05 00
+63 0a 50 32 00 32 00 56 69 6f 6c 69 6e 20 20 20 31 63 62 63 30 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin 1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 07 00 06 0e 00 41 4e 04 0b 15 08 00 03 0b 00 02 3a 04 0b 19 08 00 08 0c
+10 05 5f 0a 14 0e 0e 00 08 0d 00 02 60 08 0b 3a 20 0a 08 00 62 18 02 05 00
+63 0a 50 32 00 32 00 56 69 6f 6c 69 6e 20 20 20 31 63 62 63 30 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 6
+1f 02 00 04 0e 0f 00 45 04 0b 0f 0a 00 04 0a 00 02 62 04 0b 0a 04 00 07 0f
+09 02 5c 08 0b 0c 09 00 08 0a 08 02 58 0a 0b 3c 1f 13 3d 00 42 18 02 04 00
+63 32 00 00 00 32 00 56 69 6f 6c 69 6e 20 20 20 32 63 54 63 2e 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 02 00 04 0e 0f 00 45 04 0b 0f 0a 00 04 0d 00 02 62 04 0b 0d 04 00 07 0f
+09 02 5c 08 0b 0c 09 00 08 0d 08 02 58 0d 0b 3c 1f 13 3d 00 42 18 02 04 00
+63 32 00 00 00 32 00 56 69 6f 6c 69 6e 20 20 20 32 63 54 63 2e 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 06 03 02 0f 0a 42 4e 04 10 0c 00 00 07 0e 00 7c 4b 04 04 0b 03 06 05 0e
+0a 45 61 04 0d 0c 00 00 07 0e 00 7f 63 04 06 6c 1e 14 18 00 36 18 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 30 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 06 03 02 0f 0a 40 4c 04 16 15 00 00 06 0f 0a 43 55 04 05 0e 05 06 05 0e
+0a 40 63 04 0b 0f 00 00 06 0e 00 40 63 08 03 6c 1c 00 18 00 36 18 04 04 00
+63 32 63 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 03 00 03 0e 00 28 50 04 05 0b 0d 00 03 0e 00 3d 49 0a 14 0a 08 03 07 0f
+13 34 63 04 0b 0a 0c 03 06 0f 13 3f 63 04 09 24 1c 15 0e 00 42 18 02 04 00
+63 15 27 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 32 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 05 00 03 0e 00 00 50 08 06 0f 02 00 03 0e 00 01 3b 19 14 0c 04 03 07 0f
+13 01 63 08 08 0a 01 03 06 0f 13 01 63 00 0b 2c 25 2c 0e 00 22 0c 02 04 00
+63 15 27 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 06 07 01 0a 14 01 4e 04 15 0d 08 05 02 08 14 07 44 04 1c 0b 08 08 04 06
+0a 03 60 08 0a 0c 03 03 04 0f 0a 05 63 04 0b 6c 1f 1c 13 12 42 18 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 33 63 63 63 32 32 32 00 20
+00 20 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 04 02 01 0e 14 02 5c 08 05 1f 0f 08 02 0d 14 01 42 19 04 0d 06 03 02 0d
+0a 00 60 08 0a 10 05 03 08 0e 0a 02 63 08 0b 64 23 00 07 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 50 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 04 05 06 07 2a 02 58 04 08 0a 04 10 05 0d 14 06 37 08 0d 08 04 09 05 06
+00 07 63 04 13 0a 06 06 07 0e 0a 05 63 04 0a 6c 1f 19 2e 00 32 18 04 04 00
+63 32 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 34 63 63 63 32 32 32 00 20
+02 10 00 00 06 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 00 00 04 0e 2a 01 53 08 08 10 04 10 05 0d 14 01 37 19 0d 0c 07 06 04 0f
+00 00 63 08 13 0d 06 06 07 0e 0a 00 63 04 0a 6c 23 00 0b 00 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+02 10 00 00 06 10 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 05 04 06 0f 14 05 50 08 00 11 0c 07 06 0a 14 04 50 08 14 0a 04 04 07 0f
+00 04 63 08 14 0c 07 04 07 0f 00 03 63 08 13 6c 22 27 34 32 12 0c 04 04 00
+63 32 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 10 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 04 06 0f 14 02 53 08 00 1f 0d 07 06 0f 14 02 50 08 14 0c 04 04 07 0f
+00 01 63 13 14 0c 04 04 07 0f 00 00 63 13 13 74 24 27 00 00 12 0c 06 04 00
+63 32 63 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...6
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 05 04 06 0f 14 04 53 08 00 11 0d 05 06 0f 14 03 53 08 14 0a 0b 04 07 0b
+00 04 63 08 12 0a 0a 03 07 0f 00 04 63 08 16 6c 1a 27 19 19 42 0c 06 04 00
+63 32 63 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 36 63 63 63 32 32 32 00 30
+00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 04 06 0f 14 02 53 08 00 1f 0d 07 06 0f 14 01 53 13 14 0c 04 04 07 0f
+00 00 63 13 14 0c 04 04 07 0f 00 00 63 0d 13 74 24 27 00 00 12 0c 06 04 00
+63 32 63 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 05 0e 2a 01 50 08 0b 0e 04 04 05 08 14 03 55 08 0a 0c 07 06 07 0f
+00 04 62 08 0c 0a 08 09 08 0a 0a 04 63 08 04 6c 24 27 00 00 22 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 37 63 63 63 32 32 32 00 30
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 05 0e 2a 01 57 08 0e 1f 0c 05 05 0d 14 01 4b 19 0c 0c 07 06 07 0f
+00 00 62 0d 0c 0f 06 06 08 06 0a 00 63 08 03 6c 24 27 00 00 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 37 63 63 63 32 32 32 00 30
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 05 04 06 07 2a 01 52 08 0e 15 07 07 05 05 14 01 51 08 03 0c 06 08 07 0a
+0a 00 63 08 0d 0a 05 0a 08 07 0a 01 63 08 02 24 23 27 00 00 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 38 63 63 63 32 32 32 00 20
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 04 06 0f 2a 01 5b 08 0e 1f 0d 10 06 0e 14 01 51 19 03 0c 06 06 08 0e
+0a 00 63 0d 0b 0f 05 06 08 0c 0a 01 63 08 02 24 23 27 00 00 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...9
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 00 06 0f 32 02 57 08 0e 1f 0c 0c 0a 0e 14 03 49 0d 05 0c 06 06 08 0e
+0a 00 60 08 04 0c 06 06 08 0e 0a 06 63 08 04 6c 1d 17 40 00 22 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 39 63 63 63 32 32 32 00 30
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin...9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 00 06 0f 32 02 5e 08 0e 1f 0c 0c 0a 0e 14 01 4a 13 05 0c 06 06 08 0e
+0a 00 60 08 04 0c 06 06 08 0e 0a 01 5b 19 04 6c 24 27 00 00 22 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 2e 39 63 63 63 32 32 32 00 30
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..10
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 03 00 04 0c 2a 01 50 08 0c 11 02 19 05 08 14 01 57 08 0d 0b 09 06 06 0f
+00 06 51 08 0b 0b 05 06 08 06 0a 05 61 08 0b 7c 1b 08 1f 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 30 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..10
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 03 00 04 0c 2a 01 50 08 0c 10 02 19 05 08 14 01 57 08 0d 0a 09 06 06 0f
+00 00 5f 08 0b 0e 05 06 08 06 0a 00 61 08 0b 7c 20 08 0c 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..11
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 05 00 03 0e 32 01 4f 08 0d 0e 06 00 05 01 14 06 32 0d 05 0a 06 06 07 0e
+00 00 61 08 0a 0b 05 00 08 0d 0a 06 60 08 04 3c 20 2c 05 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..11
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 05 00 03 0e 32 01 4f 08 0d 12 06 00 05 01 14 01 3e 0a 05 0a 06 06 07 0e
+00 00 61 08 0a 10 07 00 08 0d 0a 00 60 08 04 3c 20 2c 05 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..12
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+11 05 04 05 0e 32 02 4a 08 0b 16 0a 06 08 0e 0a 02 41 08 03 0a 06 05 09 0e
+00 04 63 08 0c 0f 08 02 08 0e 0a 04 63 08 05 6c 21 27 38 02 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 32 63 63 63 32 32 32 00 20
+00 50 00 10 00 40 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..12
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 04 05 0e 32 02 52 08 0b 18 0a 06 08 0e 0a 02 4d 08 03 0f 06 05 09 0e
+00 00 63 13 0c 10 08 02 08 0e 0a 00 63 08 05 6c 24 27 00 00 12 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..13
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 06 02 06 0e 0c 02 42 08 0d 16 07 08 06 0f 49 03 4c 08 0d 11 11 0e 06 07
+00 03 3c 19 0b 0b 0d 00 06 0f 02 03 5a 08 11 3a 21 27 07 00 52 0c 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 33 63 63 63 32 32 32 00 00
+00 50 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..13
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 06 02 06 0e 0c 01 53 08 0c 16 07 08 06 0f 49 01 4c 0d 0b 1a 11 0e 06 07
+00 00 5b 1f 0b 0c 0d 00 06 0f 02 00 5a 08 13 22 21 27 07 00 52 0c 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 33 63 63 63 32 32 32 00 00
+00 50 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..14
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 06 04 06 0e 01 01 58 08 05 13 0d 10 07 0e 14 01 4d 08 04 0d 06 03 07 0e
+0a 04 53 08 0a 0b 05 06 08 0c 0a 05 63 08 03 5c 23 27 05 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 34 63 63 63 32 32 32 00 60
+00 20 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..14
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 04 06 0e 01 01 59 08 05 1f 0d 10 07 0e 14 01 4a 08 04 0e 06 03 07 0e
+0a 00 63 08 0a 0f 05 06 08 0c 0a 00 63 08 03 6c 23 27 05 00 32 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 34 63 63 63 32 32 32 00 40
+00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..15
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 06 04 06 0e 01 01 4e 08 06 12 11 10 06 0e 14 04 4e 19 04 0d 06 03 07 0e
+0a 04 60 08 0a 0b 04 05 07 0d 0a 04 5f 0d 03 6c 21 12 0f 00 42 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 35 63 63 63 32 32 32 00 20
+00 20 00 00 00 30 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..15
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 04 06 0e 01 01 4e 08 06 1d 11 10 06 0e 14 01 4e 19 04 0e 06 03 07 0e
+0a 00 60 08 0a 10 04 05 07 0d 0a 01 5f 0d 03 6c 23 00 09 00 42 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..16
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 06 02 06 0e 0c 01 54 08 04 16 07 08 06 0f 49 02 2e 1f 06 1a 11 0e 06 07
+00 05 46 08 03 0b 0a 03 05 0e 00 05 56 08 0c 2a 21 27 07 00 52 0c 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 36 63 63 63 32 32 32 00 00
+0a 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..16
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 06 02 06 0e 0c 01 54 08 04 16 07 08 06 0f 49 02 2e 1f 06 1a 11 0e 06 07
+00 00 46 08 03 0b 0a 03 05 0e 00 00 56 08 0c 2a 21 27 07 00 52 0c 02 04 00
+63 63 00 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 36 63 63 63 32 32 32 00 00
+0a 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..17
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 06 00 03 0e 00 01 48 08 0e 0d 05 00 03 0e 00 01 44 08 0e 0a 08 03 07 0f
+13 05 5b 08 0b 0c 04 03 07 0f 13 06 63 08 0b 64 2c 0a 08 00 32 0c 02 04 00
+63 15 27 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 37 63 63 63 32 32 32 00 10
+00 30 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..17
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 06 00 03 0e 00 01 48 08 0e 0d 05 00 03 0e 00 01 44 0a 0e 0a 04 03 07 0f
+13 00 5b 0d 0b 0c 04 03 07 0f 13 00 63 08 0b 64 2c 0a 08 00 32 0c 02 04 00
+63 15 27 00 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 37 63 63 63 32 32 32 00 10
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..18
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 00 00 06 0e 2a 04 4f 08 0c 19 0f 10 06 0d 0a 01 4e 08 0b 0d 07 06 07 0f
+00 04 5e 08 0b 0e 06 06 08 0e 0a 05 60 08 04 74 20 1a 1b 00 21 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 38 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..18
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 06 0e 2a 01 4f 0d 0c 1f 0f 10 06 0d 0a 01 4e 08 0b 0d 07 06 07 0f
+00 00 5e 0d 0b 10 06 06 08 0e 0a 01 60 08 04 74 23 00 0b 00 22 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 38 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..19
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 06 05 06 0e 1e 02 51 08 14 18 03 07 06 08 14 03 51 08 04 0f 06 06 09 0f
+0a 04 47 13 0b 0c 05 06 08 0c 0a 0c 5f 08 03 52 21 27 21 00 21 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 39 63 63 63 32 32 32 00 30
+00 20 00 20 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violin..19
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 05 06 0e 1e 02 51 08 14 1f 0d 10 06 0e 14 01 51 08 04 0f 06 06 09 0f
+0a 00 47 13 0b 0f 05 06 08 0c 0a 01 5f 08 03 52 24 27 01 00 22 0c 06 04 00
+63 32 00 32 00 32 00 56 69 6f 6c 69 6e 2e 2e 31 39 63 63 63 32 32 32 00 00
+00 30 00 10 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: VIOLINS
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 00 00 04 0e 42 02 44 08 00 16 08 05 07 0d 19 03 49 08 0b 0f 08 10 07 0b
+01 04 4d 08 0e 0b 03 02 08 0f 13 05 5a 08 0a 68 20 19 2e 00 32 0c 0c 04 00
+63 32 32 00 00 32 00 20 56 49 4f 4c 49 4e 53 20 20 63 63 63 32 32 32 00 40
+00 20 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: VIOLINS
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 04 0e 42 00 47 08 00 1e 08 05 07 0d 19 00 53 08 0b 1f 0f 10 07 0e
+01 04 49 19 0e 0f 03 02 08 0f 13 00 51 08 0a 68 23 00 0b 00 32 0c 0c 04 00
+63 32 32 00 00 32 00 20 56 49 4f 4c 49 4e 53 20 20 63 63 63 32 32 32 00 00
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 00 00 04 06 3c 01 4c 08 01 12 0f 06 06 06 09 02 40 0d 04 0b 07 06 06 06
+14 04 63 08 02 0b 09 00 05 06 28 04 62 08 03 2c 1e 18 3b 00 32 0c 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 31 63 63 63 32 32 32 00 10
+00 40 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 00 00 04 06 3c 00 4c 08 01 0f 0f 06 06 06 09 00 40 19 04 0c 07 06 06 06
+14 00 63 08 02 12 09 00 05 06 28 00 62 08 03 2c 21 0a 0f 00 32 00 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 31 63 63 63 32 32 32 00 10
+00 40 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 07 0d 21 02 4e 08 05 13 0c 0c 05 0d 32 02 45 0d 04 0b 06 06 07 0e
+14 03 5d 08 04 0b 07 00 07 0d 1e 05 61 08 04 2c 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 32 63 63 63 32 32 32 00 10
+00 40 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 07 0d 21 00 4e 08 05 13 0c 0c 05 0d 32 00 45 19 04 0f 06 06 07 0e
+14 00 5d 08 04 0e 07 00 07 0d 1e 00 61 08 04 2c 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 32 63 63 63 32 32 32 00 20
+00 20 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 06 00 07 0d 21 01 46 08 05 12 0c 0c 05 0d 32 02 43 0d 04 0b 06 06 06 0e
+28 05 59 08 03 0b 07 00 07 0d 1e 04 61 08 04 6c 1e 27 34 00 32 0c 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 33 63 63 63 32 32 32 00 00
+00 40 00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 06 00 07 0d 21 00 46 08 05 1f 0c 0c 05 0d 32 00 43 13 04 0c 06 06 06 0e
+28 00 59 08 03 10 07 00 07 0d 1e 00 61 08 04 6c 23 27 0c 00 32 0c 0c 04 00
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 33 63 63 63 32 32 32 00 00
+00 40 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 07 05 05 0e 41 01 50 08 05 0f 0c 0c 04 0c 33 02 57 19 05 0a 06 00 06 0e
+14 04 5b 08 01 0b 05 01 07 0e 11 04 52 08 00 6c 1f 1c 25 00 32 0c 03 04 01
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 34 63 63 63 32 32 32 00 40
+00 30 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Violins..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 04 00 03 0e 41 01 57 08 05 0f 0c 0c 04 0c 33 02 57 19 05 0a 06 00 06 0e
+14 00 5b 08 01 0d 05 01 07 0e 11 00 52 08 00 6c 25 14 0f 00 32 0c 03 04 01
+63 32 32 00 00 32 00 56 69 6f 6c 69 6e 73 2e 2e 34 63 63 63 32 32 32 00 30
+00 30 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Other
+
+
+** Name: 8 Stringer
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 00 01 0e 00 01 3f 04 03 1f 0c 06 09 0e 00 02 56 0a 1b 1f 0c 02 08 0e
+00 05 41 1c 0b 1f 05 06 09 0e 00 04 63 04 13 22 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 38 20 53 74 72 69 6e 67 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 8 Stringer
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 00 01 0e 00 01 3f 04 03 1f 0c 06 09 0e 00 01 56 0a 1b 1f 0c 02 08 0e
+00 01 41 1c 0b 1f 05 06 09 0e 00 00 63 04 13 22 21 13 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 38 20 53 74 72 69 6e 67 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 09 03 0c 2e 03 63 24 1a 1c 0f 09 06 0c 00 03 4c 13 0c 1c 0a 06 04 0c
+00 04 59 08 0a 0d 1c 06 06 0c 00 05 5d 0d 14 4d 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 09 03 0c 2e 00 63 24 1a 1c 0f 09 06 0c 00 00 4c 13 0c 1c 0a 06 04 0c
+00 00 59 08 0a 0d 1c 06 06 0c 00 00 5d 0d 14 4d 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 18 15 05 0d 2e 03 57 13 1b 1c 09 09 04 0d 00 03 55 04 09 1c 09 09 05 0d
+00 05 53 0d 0e 1c 0d 0f 05 0d 00 06 62 04 0c 75 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 18 15 05 0d 2e 00 57 13 1b 1c 09 09 04 0d 00 00 55 04 09 1c 09 09 05 0d
+00 00 53 0d 0e 1c 0d 0f 05 0d 00 00 62 04 0c 75 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 03 04 0c 00 04 3a 19 1b 1c 1c 09 04 0f 00 04 52 04 0b 1c 09 03 06 0c
+00 05 53 04 16 1c 1f 09 05 0f 00 06 62 04 14 65 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 03 04 0c 00 00 3a 19 1b 1c 1c 09 04 0f 00 00 52 04 0b 1c 09 03 06 0c
+00 00 53 04 16 1c 1f 09 05 0f 00 00 62 04 14 65 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 16 08 0d 00 03 63 0f 13 1f 0a 0a 07 0e 00 03 3e 04 0b 1b 13 06 0c 07
+00 06 47 16 0b 1f 0a 06 06 0d 00 05 5d 04 0b 4a 1f 00 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 16 08 0d 00 00 63 0f 13 1f 0a 0a 07 0e 00 00 3e 04 0b 1b 13 06 0c 07
+00 00 47 16 0b 1f 0a 06 06 0d 00 00 5d 04 0b 4a 1f 00 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.5
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0c 09 05 0c 00 04 3d 1f 08 10 0c 03 09 0c 00 03 3e 08 0a 1f 15 06 05 0d
+00 46 63 13 08 1f 15 06 05 0d 00 06 63 04 0e 1c 15 21 11 27 26 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.5
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0c 09 05 0c 00 00 3d 1f 08 10 0c 03 09 0c 00 00 3e 08 0a 1f 15 06 05 0d
+00 40 63 13 08 1f 15 06 05 0d 00 00 63 04 0e 1c 15 21 11 27 26 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.6
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 10 0d 03 0a 00 04 3b 0d 08 0f 0f 0d 03 0a 00 44 3c 0d 0a 1c 05 03 07 0d
+00 05 47 08 08 1c 05 03 07 0d 00 07 5d 08 0e 5c 23 3c 40 60 16 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.6
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 10 0d 03 0a 00 00 3b 0d 08 0f 0f 0d 03 0a 00 40 3c 0d 0a 1c 05 03 07 0d
+00 00 47 08 08 1c 05 03 07 0d 00 00 5d 08 0e 5c 23 3c 40 60 16 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.7
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 04 02 0d 00 43 4c 04 00 13 0c 12 09 0f 00 43 3c 04 02 15 12 1f 09 0f
+00 45 63 04 00 10 05 06 09 0e 00 45 5d 04 06 25 23 5a 01 02 46 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.7
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 04 02 0d 00 40 4c 04 00 13 0c 12 09 0f 00 40 3c 04 02 15 12 1f 09 0f
+00 40 63 04 00 10 05 06 09 0e 00 40 5d 04 06 25 23 5a 01 02 46 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 09 06 08 00 03 63 04 03 1c 1e 00 07 08 00 04 54 04 0b 1b 15 09 04 08
+00 05 5d 08 0b 1c 19 09 05 08 00 06 63 08 0b 7a 1f 00 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.8
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 09 06 08 00 00 63 04 03 1c 1e 00 07 08 00 00 54 04 0b 1b 15 09 04 08
+00 00 5d 08 0b 1c 19 09 05 08 00 00 63 08 0b 7a 1f 00 00 00 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.9
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 09 0f 0b 00 43 63 04 15 1c 09 06 03 0b 00 44 54 04 11 1f 09 04 0f 0e
+00 45 5a 08 13 1c 13 09 06 0b 00 47 63 08 0b 6c 19 2e 42 0f 36 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst.9
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 09 0f 0b 00 40 63 04 15 1c 09 06 03 0b 00 40 54 04 11 1f 09 04 0f 0e
+00 40 5a 08 13 1c 13 09 06 0b 00 40 63 08 0b 6c 19 2e 42 0f 36 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst10
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 16 18 0c 0b 00 41 47 0d 03 0f 0f 0d 06 0b 00 44 3c 0d 03 0d 0c 07 04 0d
+00 44 48 00 03 1c 12 07 07 0e 00 46 63 04 03 5a 19 2e 42 0f 36 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst10
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 16 18 0c 0b 00 40 47 0d 03 0f 0f 0d 06 0b 00 40 3c 0d 03 0d 0c 07 04 0d
+00 40 48 00 03 1c 12 07 07 0e 00 40 63 04 03 5a 19 2e 42 0f 36 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 0f 08 06 00 02 63 1c 03 1c 0c 1f 09 0a 00 42 4f 08 13 1f 06 0f 08 0f
+00 44 5c 04 08 1c 0a 09 09 0a 00 05 63 04 0e 2c 28 00 00 3f 26 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntInst11
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 0f 08 06 00 00 63 1c 03 1c 0c 1f 09 0a 00 40 4f 08 13 1f 06 0f 08 0f
+00 40 5c 04 08 1c 0a 09 09 0a 00 00 63 04 0e 2c 28 00 00 3f 26 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 49 6e 73 74 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Syamisen
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 18
+1a 0e 0f 06 06 0a 04 54 0a 13 17 12 12 07 0c 0a 04 59 10 13 18 06 00 04 0e
+00 02 40 04 13 17 0f 09 06 0a 00 03 63 08 13 5b 18 02 20 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 79 61 6d 69 73 65 6e 20 20 63 61 63 31 32 32 00 20
+00 30 00 70 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Syamisen
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0e 0f 06 06 0a 04 54 0a 13 17 12 12 07 0c 0a 04 59 10 13 18 06 00 04 0e
+00 02 40 04 13 17 0f 09 06 0d 00 03 63 08 13 5b 18 02 20 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 79 61 6d 69 73 65 6e 20 20 63 61 63 31 32 32 00 20
+00 30 00 70 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Zither
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 8
+1f 0b 06 0a 0d 1e 01 57 10 0b 1f 1f 00 03 0f 22 01 51 04 03 1f 0c 03 0a 0a
+14 01 36 08 03 1f 18 06 08 0f 00 02 63 04 03 30 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 5a 69 74 68 65 72 20 20 20 20 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 11
+
+* CATEGORY KEYBOARDS
+
+
+* SUBCATEGORY Clavichord
+
+
+** Name: Clav Lead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 00 09 0c 0f 03 4b 24 15 1e 1b 00 09 0d 0c 05 56 00 01 1d 01 00 0c 00
+2e 04 53 00 14 1e 1c 00 09 0c 00 04 63 00 15 3a 23 00 08 00 22 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav Lead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 00 09 0c 0f 01 4b 24 15 1e 1b 00 09 0d 0c 01 56 00 01 1d 01 00 0c 00
+2e 01 53 00 14 1e 1c 00 09 0c 00 00 63 00 15 3a 23 00 08 00 22 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 4c 65 61 64 20 63 63 63 32 32 32 00 00
+00 40 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav Perc
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 0f 04 09 0c 0f 03 5b 00 0a 1a 0f 04 09 0d 0c 04 63 00 13 1f 0a 04 0c 00
+2e 06 58 00 0e 19 0f 05 09 0c 00 05 63 04 10 3a 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 50 65 72 63 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav Perc
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 0f 04 09 0c 0f 01 5b 00 0a 1a 0f 04 09 0d 0c 01 63 00 13 1f 0a 04 0c 00
+2e 01 58 00 0e 19 0f 05 09 0c 00 00 63 04 10 3a 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 50 65 72 63 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav Synth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 04 09 0c 0f 03 5e 0d 16 1e 04 04 09 0d 0c 04 5f 00 03 1e 03 04 0c 00
+2e 04 55 00 13 1e 15 05 09 0c 00 06 63 0d 13 3a 23 1a 0f 00 32 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 53 79 6e 74 68 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav Synth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 04 09 0c 0f 01 5e 0d 16 1e 04 04 09 0d 0c 01 5f 00 03 1e 03 04 0c 00
+2e 01 55 00 13 1e 15 05 09 0c 00 00 63 0d 13 3a 23 1a 0f 00 32 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 20 53 79 6e 74 68 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0b 08 0f 09 10 01 42 13 0b 1f 0c 08 05 0f 00 04 5c 00 03 1f 10 05 06 0f
+5e 04 52 00 13 1c 14 08 0c 0e 00 03 63 04 0b 28 23 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0b 08 0f 09 10 01 42 13 0b 1f 0c 08 05 0f 00 02 5c 00 03 1f 10 05 06 0f
+5e 02 52 00 13 1c 14 08 0c 0e 00 00 63 04 0b 28 23 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 09 0c 0f 01 43 0d 15 1e 1b 01 09 0d 0c 03 5f 00 01 1d 01 01 0c 00
+2e 04 51 16 14 1e 1c 05 09 0c 00 03 63 00 13 1b 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 09 0c 0f 01 43 0d 15 1e 1b 01 09 0d 0c 01 5f 00 01 1d 01 01 0c 00
+2e 01 51 16 14 1e 1c 05 09 0c 00 00 63 00 13 1b 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 01 0c 20 01 54 04 15 17 1a 01 01 0d 09 03 54 04 04 1d 01 01 01 00
+32 03 44 1f 0c 18 1b 05 07 0c 02 03 63 08 13 3a 23 00 00 00 02 18 05 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 10
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 01 0c 20 01 54 04 15 17 1a 01 01 0d 09 01 54 04 04 1d 01 01 01 00
+32 01 44 1f 0c 18 1b 05 07 0c 02 00 63 08 13 3a 23 00 00 00 02 18 05 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 10
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 15 0a 01 00 20 01 61 00 15 17 09 0f 01 00 09 04 53 00 02 1d 01 0b 01 00
+32 03 3e 1f 16 19 1b 06 09 0e 02 04 62 08 09 3a 23 00 00 00 02 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 15 0a 01 00 20 01 61 00 15 17 09 0f 01 00 09 02 53 00 02 1d 01 0b 01 00
+32 01 3e 1f 16 19 1b 06 09 0e 02 00 62 08 09 3a 23 00 00 00 02 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 10 07 08 0c 00 01 51 16 1d 19 19 06 09 0e 00 03 57 00 0a 1c 10 07 08 0c
+00 03 63 00 1b 19 19 06 09 0e 00 03 62 08 09 3c 1e 00 00 00 22 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 10 07 08 0c 00 01 51 16 1d 19 19 06 09 0e 00 01 57 00 0a 1c 10 07 08 0c
+00 01 63 00 1b 19 19 06 09 0e 00 00 62 08 09 3c 1e 00 00 00 22 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 10 07 05 0c 00 01 4e 39 1d 19 19 06 09 0e 00 03 5a 00 0a 1c 05 07 05 0c
+00 03 5d 0d 1b 19 19 06 09 0e 00 06 62 08 09 3c 1e 00 00 00 22 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 10 07 05 0c 00 01 4e 39 1d 19 19 06 09 0e 00 01 5a 00 0a 1c 05 07 05 0c
+00 01 5d 0d 1b 19 19 06 09 0e 00 00 62 08 09 3c 1e 00 00 00 22 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 01 02 04 07 35 00 35 24 0d 17 09 0f 01 00 09 04 53 00 02 1d 01 0b 01 00
+32 04 39 08 16 19 1b 06 09 0e 02 06 63 00 09 02 23 00 00 00 02 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 01 02 04 07 35 00 35 24 0d 17 09 0f 01 00 09 01 53 00 02 1d 01 0b 01 00
+32 00 39 08 16 19 1b 06 09 0e 02 01 63 00 09 02 23 00 00 00 02 18 02 04 00
+63 32 32 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 09 0c 0f 01 4c 16 15 1e 1b 01 09 0d 0c 05 53 00 01 1d 01 01 0c 00
+2e 05 59 00 14 1e 1c 05 09 0c 00 05 63 08 13 1a 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 09 0c 0f 01 4c 16 15 1e 1b 01 09 0d 0c 01 53 00 01 1d 01 01 0c 00
+2e 01 59 00 14 1e 1c 05 09 0c 00 00 63 08 13 1a 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 09 0c 0f 03 52 0d 15 1e 1b 01 09 0d 0c 05 63 04 01 1d 01 01 0c 00
+2e 04 62 04 14 1e 1c 05 09 0c 00 05 63 04 13 1c 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clav.....9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 09 0c 0f 00 52 0d 15 1e 1b 01 09 0d 0c 01 63 04 01 1d 01 01 0c 00
+2e 01 62 04 14 1e 1c 05 09 0c 00 01 63 04 13 1c 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 43 6c 61 76 2e 2e 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clavi
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 16
+1f 01 00 0f 00 00 04 4d 13 10 1f 0c 01 01 0a 00 02 54 00 09 1f 06 01 01 0e
+23 03 4f 10 0e 1f 00 0a 0f 0f 00 03 58 08 0a 3a 1c 00 00 00 52 18 02 04 00
+63 32 00 32 00 32 00 43 6c 61 76 69 20 20 20 20 20 63 63 63 32 32 32 00 20
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Clavi
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 01 00 0f 00 00 04 4d 13 10 1f 0c 01 01 0d 00 02 54 00 09 1f 06 01 01 0e
+23 03 4f 10 0e 1f 00 0a 0f 0f 00 03 58 08 0d 3a 1c 00 00 00 52 18 02 04 00
+63 32 00 32 00 32 00 43 6c 61 76 69 20 20 20 20 20 63 63 63 32 32 32 00 20
+00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EZ Clav
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 26
+1f 0b 08 0f 09 10 04 42 2d 13 1f 09 08 05 0f 00 02 49 00 03 1f 12 05 06 0f
+10 03 46 10 03 1f 14 08 0c 0e 00 02 63 04 0b 30 1b 00 00 00 52 18 04 04 00
+63 32 00 00 00 32 00 45 5a 20 43 6c 61 76 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fuzz Clavi
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 27
+1e 1c 05 09 0c 0f 01 56 24 15 1e 1b 01 09 0d 0c 04 61 00 01 1d 01 01 0c 00
+2e 02 4d 0d 14 1e 1c 05 09 0c 00 01 63 0a 13 33 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 46 75 7a 7a 20 43 6c 61 76 69 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Klavinet *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 06 06 06 0e 00 00 52 04 0e 1d 07 09 07 0e 00 04 4d 04 00 1d 09 06 06 0e
+10 02 50 1f 16 1b 0a 07 0a 0e 00 02 63 08 0b 02 23 00 00 00 32 0c 02 04 00
+28 63 00 00 00 32 00 4b 6c 61 76 69 6e 65 74 20 2a 63 63 63 32 32 32 00 30
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Clav
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1c 05 01 0c 20 02 4e 2a 15 17 1a 01 01 0d 09 02 4b 04 04 1d 01 01 01 00
+32 04 39 04 0c 18 1b 05 07 0c 02 05 63 08 13 3a 23 00 00 00 02 18 05 04 00
+63 32 32 00 00 32 00 4f 72 6e 74 20 43 6c 61 76 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Clav
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1c 05 01 0c 20 00 4e 2a 15 17 1a 01 01 0d 09 00 4b 04 04 1d 01 01 01 00
+32 00 39 04 0c 18 1b 05 07 0c 02 00 63 08 13 3a 23 00 00 00 02 18 05 04 00
+63 32 32 00 00 32 00 4f 72 6e 74 20 43 6c 61 76 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Clav
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1e 1c 05 00 0c 20 00 4e 2a 15 17 1a 01 00 0d 09 00 4b 04 04 1d 01 01 00 00
+32 00 39 04 0c 18 1b 05 07 0c 02 00 63 08 13 3a 23 00 00 00 02 18 05 04 00
+63 32 32 00 00 32 00 4f 72 6e 74 20 43 6c 61 76 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rimbaclav
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 00 05 00 00 00 4c 28 03 1f 12 00 04 00 00 00 43 16 03 1f 0d 00 05 00
+00 00 45 16 03 1f 07 00 06 08 00 00 63 04 03 03 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 52 69 6d 62 61 63 6c 61 76 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SplashClav
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 21
+13 18 14 0a 0c 00 00 61 04 03 10 02 01 0a 0c 00 00 5c 1c 03 1c 0b 04 0a 0c
+00 00 41 28 03 1b 0e 10 0a 0c 00 03 63 04 03 3a 55 00 39 00 42 0c 04 04 00
+28 32 00 00 00 32 00 53 70 6c 61 73 68 43 6c 61 76 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synclav. *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 09 07 05 0f 00 02 51 0d 0b 1f 0c 06 02 00 00 00 57 10 0e 17 06 05 05 0d
+00 00 63 04 08 1f 09 0f 06 00 00 03 5a 19 0e 2c 23 00 00 00 32 0c 02 04 00
+28 63 00 00 00 32 00 53 79 6e 63 6c 61 76 2e 20 2a 63 63 63 32 32 32 00 40
+00 00 00 30 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Thin Clav
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 25
+1f 0b 07 0f 09 00 04 49 13 13 1f 08 07 05 0e 00 02 58 00 0c 1f 06 04 06 0f
+23 03 46 10 0a 1f 07 08 0c 0d 00 02 63 08 0b 02 1c 00 00 00 52 18 04 04 00
+63 32 00 32 00 32 00 54 68 69 6e 20 43 6c 61 76 20 63 63 63 32 32 32 00 70
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Harpsichord
+
+
+** Name: Harpschrd2
+** Description: DX11 factory preset 'Harpsichrd' with slower decay
+** Source: Art Hitzeman
+1a 13 00 01 0d 0a 00 5b 0a 11 0f 10 00 01 0d 00 00 5d 00 1d 17 08 06 04 0c
+00 00 4c 04 16 17 08 06 05 0c 00 00 58 0d 14 1c 1f 00 00 00 52 18 02 04 00
+63 32 32 00 00 32 00 48 61 72 70 73 63 68 72 64 32 63 63 63 32 32 32 00 40
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harpschrd3
+** Description: 'Harpschrd2' with minor changes
+** Source: Art Hitzeman
+1a 13 00 01 0d 0a 00 5b 05 11 0f 10 00 01 0d 00 00 5d 00 1d 17 08 06 04 0c
+00 00 4c 00 16 17 08 06 05 0c 00 00 58 0d 14 1c 1f 00 00 00 52 18 02 04 00
+63 32 32 00 00 32 00 48 61 72 70 73 63 68 72 64 33 63 63 63 32 32 32 00 41
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harpsichrd
+** Source: Yamaha DX11 factory preset, bank B, voice 15
+1a 13 00 01 0a 0a 00 5b 0a 11 0f 10 00 01 0a 00 00 5d 00 1d 17 08 06 07 0c
+00 00 4c 04 16 17 08 06 07 0c 00 00 58 0a 14 1c 1f 00 00 00 52 18 02 04 00
+63 32 32 00 00 32 00 48 61 72 70 73 69 63 68 72 64 63 63 63 32 32 32 00 40
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harpsichrd
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 13 00 01 0d 0a 00 5b 0a 11 0f 10 00 01 0d 00 00 5d 00 1d 17 08 06 07 0c
+00 00 4c 04 16 17 08 06 07 0c 00 00 58 0d 14 1c 1f 00 00 00 52 18 02 04 00
+63 32 32 00 00 32 00 48 61 72 70 73 69 63 68 72 64 63 63 63 32 32 32 00 40
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1d 01 06 0c 29 00 57 04 1b 1f 19 03 04 0d 00 03 5b 04 03 1f 1f 05 09 0d
+00 06 3f 0d 13 1f 1a 01 07 0d 00 05 63 0d 1b 32 23 00 00 00 62 18 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 31 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1d 01 06 0c 29 01 57 04 1b 1f 19 03 04 0d 00 00 5b 04 03 1f 1f 05 09 0d
+00 00 3f 0d 13 1f 1a 01 07 0d 00 02 63 0d 1b 32 23 00 00 00 62 18 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 31 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 11 00 01 0d 00 00 5b 04 1c 1c 18 00 01 0d 00 00 5b 00 0c 17 08 05 06 0c
+00 05 60 00 11 1c 18 05 06 0d 00 04 60 0d 12 0c 23 00 00 00 02 24 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 11 00 01 0d 00 00 5b 04 1c 1c 18 00 01 0d 00 00 5b 00 0c 17 08 05 06 0c
+00 01 60 00 11 1c 18 05 06 0d 00 01 60 0d 12 0c 23 00 00 00 02 24 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1d 01 01 0d 0f 02 5a 00 1b 1f 17 03 01 0d 00 02 57 04 03 1f 1c 05 09 0d
+00 05 42 13 0b 1f 1c 01 05 0d 00 06 63 0d 1b 2a 23 00 00 00 62 18 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hrpsicord3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1d 01 01 0d 0f 02 5a 00 1b 1f 17 03 01 0d 00 00 57 04 03 1f 1c 05 09 0d
+00 00 42 13 0b 1f 1c 01 05 0d 00 01 63 0d 1b 2a 23 00 00 00 62 18 00 04 00
+63 32 00 00 00 32 00 48 72 70 73 69 63 6f 72 64 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LiteHarpsi
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 28
+1f 1d 00 01 0c 00 00 54 04 1b 1f 13 01 01 0f 00 01 4c 04 03 1f 1f 01 09 0f
+21 01 4d 19 13 1f 1e 06 07 0d 00 00 5d 0d 13 32 1c 00 00 00 62 18 02 04 00
+63 32 00 00 00 32 00 4c 69 74 65 48 61 72 70 73 69 63 63 63 32 32 32 00 00
+30 00 30 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RichHarpsi
+** Source: Yamaha TX81Z factory preset, bank A, voice 29
+1a 13 00 01 0d 00 00 5b 0a 11 0f 10 00 01 0d 00 00 5d 00 1d 17 08 06 05 0c
+00 00 5e 04 16 17 08 06 05 0c 00 00 56 0d 14 1c 23 00 00 00 02 18 04 04 00
+63 32 32 00 00 32 00 52 69 63 68 48 61 72 70 73 69 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 12
+
+* SUBCATEGORY Organ1
+
+
+** Name: 16 8 4 2 F
+** Source: Yamaha TX81Z factory preset, bank A, voice 18
+1f 1f 00 0f 0f 00 00 5a 19 06 1f 1f 00 0f 0f 00 00 5a 08 03 1f 1f 00 0f 0f
+00 00 5a 0d 04 1f 1f 00 0f 0f 00 00 5a 04 00 07 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 31 36 20 38 20 34 20 32 20 46 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <6 Tease>
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 20
+1f 00 00 0a 0f 1b 00 3f 0d 03 1f 00 00 0a 0f 00 00 63 08 03 1f 00 00 0a 0f
+00 00 5e 0d 03 1f 00 00 0a 0f 00 00 63 04 03 3e 23 00 27 00 42 0c 07 04 00
+63 63 00 63 00 32 00 3c 36 20 54 65 61 73 65 3e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnalogOrgn
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 24
+1f 1b 00 0f 0d 09 00 57 05 06 1f 1c 00 0f 0d 09 00 57 04 01 1e 01 00 0f 0d
+0a 00 5f 05 06 1e 01 00 0f 0d 0a 00 5f 04 01 04 1c 15 07 00 52 05 04 04 00
+63 32 00 00 00 32 00 41 6e 61 6c 6f 67 4f 72 67 6e 63 63 63 32 32 32 00 01
+00 08 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 06 0d 0f 00 03 55 2a 04 1f 13 06 0d 0f 00 05 63 08 04 1f 18 06 0d 0f
+00 04 62 0d 04 1f 06 06 0d 0f 00 05 63 00 04 07 28 00 0a 2c 12 0c 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 06 0d 0f 00 00 55 2a 04 1f 13 06 0d 0f 00 01 63 08 04 1f 18 06 0d 0f
+00 01 62 0d 04 1f 06 06 0d 0f 00 01 63 00 04 07 28 00 0a 2c 12 0c 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 05 0d 0f 00 02 3e 08 04 1f 1f 1f 0d 0f 00 04 63 0d 04 1f 1f 02 0d 0f
+00 05 63 04 04 1f 1f 07 0d 0f 00 03 63 08 04 04 28 00 0a 2c 22 18 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 05 0d 0f 00 00 3e 08 04 1f 1f 1f 0d 0f 00 00 63 0d 04 1f 1f 02 0d 0f
+00 01 63 04 04 1f 1f 07 0d 0f 00 00 63 08 04 04 28 00 0a 2c 22 18 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 10 04 0d 0f 00 02 52 08 04 1f 1f 04 0d 0f 00 04 63 08 04 1f 1f 03 0d 0f
+0a 03 63 08 14 1f 1f 03 0d 0f 00 04 63 04 04 06 21 00 00 00 22 0c 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: B3 Organ.3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 04 0d 0f 00 00 52 08 04 1f 1f 04 0d 0f 00 01 63 08 04 1f 1f 03 0d 0f
+0a 01 63 08 14 1f 1f 03 0d 0f 00 01 63 04 04 06 21 00 00 00 22 0c 07 04 00
+63 63 00 00 00 32 00 42 33 20 4f 72 67 61 6e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Church
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 23
+16 00 00 0a 0f 00 01 47 1f 03 18 00 00 05 0f 5b 02 61 00 10 0f 00 00 08 0f
+00 00 63 08 10 0c 00 00 05 0f 00 00 63 00 16 3c 1d 00 00 00 42 0c 04 04 00
+63 32 00 00 00 32 00 42 69 67 20 43 68 75 72 63 68 63 63 63 32 32 32 00 00
+00 70 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChurchOrg*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 1f 00 0a 0f 00 42 47 1f 0e 10 1f 00 08 0f 00 40 60 0d 0e 10 1f 00 07 0f
+00 40 63 08 08 0b 1f 00 05 0f 14 40 63 04 10 3e 0c 0f 00 00 3a 0c 02 04 00
+28 00 1b 00 00 32 00 43 68 75 72 63 68 4f 72 67 2a 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ClosedFlut
+** Description: A Closed Flute organ stop
+** Source: Art Hitzeman
+12 1f 00 07 0f 19 00 59 04 03 10 1f 00 06 0f 19 00 43 10 03 17 1f 00 07 0f
+19 00 5a 0a 03 0e 1f 00 06 0f 19 00 20 16 03 07 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 43 6c 6f 73 65 64 46 6c 75 74 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cornopean
+** Description: An organ stop
+** Controls: MW (LFO pitch)
+** Source: Art Hitzeman
+12 1f 00 07 0f 19 00 58 00 03 10 1f 00 06 0f 19 00 5a 04 03 17 1f 00 07 0f
+19 00 5a 04 03 0e 1f 00 06 0f 19 00 5a 04 03 47 23 01 06 00 41 18 02 04 00
+28 32 00 00 00 32 00 43 6f 72 6e 6f 70 65 61 6e 20 63 63 63 32 32 32 00 00
+00 40 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DistortOrg
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 00 08 0f 00 27 42 03 1a 10 1b 00 08 06 0f 00 51 08 10 15 0a 00 08 0f
+1b 1b 52 04 1e 12 1b 00 0b 0e 00 02 63 05 00 3b 23 00 01 00 52 11 02 05 00
+63 32 00 05 00 32 3c 44 69 73 74 6f 72 74 4f 72 67 63 63 63 32 32 32 20 26
+10 04 10 78 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Drawbar1 *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 1f 00 09 0f 32 40 5a 19 03 17 1f 00 09 0f 1e 40 63 0a 03 17 1f 00 09 0f
+28 40 51 0d 03 17 1f 00 09 0f 14 40 5d 00 03 07 23 00 00 00 1a 18 02 04 00
+28 63 30 00 00 32 00 44 72 61 77 62 61 72 31 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Drawbar2 *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 1f 00 09 0f 2f 40 4b 13 03 17 1f 00 09 0f 19 40 53 08 03 17 1f 00 09 0f
+2c 40 51 10 03 17 1f 00 09 0f 0a 40 63 04 03 07 23 00 00 00 1a 18 02 04 00
+28 63 30 00 00 32 00 44 72 61 77 62 61 72 32 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dyno *
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 0f 0e 09 00 05 49 2b 08 1f 0f 05 07 0f 18 42 5a 00 06 1f 12 06 08 0d
+00 02 63 00 06 1f 12 06 08 0f 00 02 63 04 00 34 14 00 01 02 4e 18 02 04 00
+63 32 00 32 00 32 00 44 79 6e 6f 20 20 20 20 20 2a 63 63 63 32 32 32 00 70
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DynoWurlie
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 14
+1f 1c 04 07 0a 00 03 4e 25 1e 16 07 03 07 0b 00 03 52 0d 10 1f 13 08 06 08
+00 02 5c 3c 0e 1f 04 03 07 0e 00 02 63 04 13 7c 18 03 10 0c 32 0c 02 04 00
+63 32 00 00 00 32 00 44 79 6e 6f 57 75 72 6c 69 65 63 63 63 32 32 32 1b 70
+00 00 09 0f 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 1f 03 0f 0f 26 05 49 04 03 1f 1f 03 0f 0f 14 05 5a 08 03 1f 1f 03 0f 0f
+50 05 59 0a 03 1f 1f 03 0f 0f 19 04 5b 00 03 76 23 0e 16 00 22 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 03 0f 0f 26 00 49 04 03 1f 1f 03 0f 0f 14 00 5a 08 03 1f 1f 03 0f 0f
+50 00 59 0a 03 1f 1f 03 0f 0f 19 00 5b 00 03 76 23 0e 16 00 22 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 1f 03 0f 0f 26 05 2a 19 02 1f 1f 03 0f 0f 14 05 5a 0d 04 1f 1f 03 0f 0f
+50 05 59 0d 01 1f 1f 03 0f 0f 19 05 63 0d 02 75 1c 00 19 00 22 00 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 03 0f 0f 26 00 2a 19 02 1f 1f 03 0f 0f 14 00 5a 0d 04 1f 1f 03 0f 0f
+50 00 59 0d 01 1f 1f 03 0f 0f 19 00 63 0d 02 75 1c 00 19 00 22 00 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 16 03 08 0f 00 06 4c 0d 02 1f 1f 03 0c 0f 14 05 5c 0d 04 1f 1f 1f 0c 0f
+00 05 63 04 01 1f 1f 02 0c 0f 19 05 63 04 02 06 23 00 0e 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 16 03 08 0f 00 00 4c 0d 02 1f 1f 03 0c 0f 14 00 5c 0d 04 1f 1f 1f 0c 0f
+00 00 63 04 01 1f 1f 02 0c 0f 19 00 63 04 02 06 23 00 0e 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 00 08 0f 00 44 55 08 03 1f 1f 00 0c 0f 14 03 5c 0a 00 1f 1f 00 0c 0f
+00 06 50 08 06 1f 1f 00 0c 0f 19 05 63 00 06 46 0e 00 47 4e 16 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 00 08 0f 00 40 55 08 03 1f 1f 00 0c 0f 14 00 5c 0a 00 1f 1f 00 0c 0f
+00 00 50 08 06 1f 1f 00 0c 0f 19 00 63 00 06 46 0e 00 47 4e 16 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 16 00 08 0f 00 05 5a 04 0e 1b 1f 00 0c 0f 14 02 56 08 00 1f 1f 00 0c 0f
+00 06 57 08 03 17 1f 00 0c 0f 19 05 63 00 06 47 0e 00 47 00 22 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 35 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..5
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 16 00 08 0f 00 00 5a 04 0e 1b 1f 00 0c 0f 14 00 56 08 00 1f 1f 00 0c 0f
+00 00 57 08 03 17 1f 00 0c 0f 19 00 63 00 06 47 0e 00 47 00 22 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 35 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0c 0f 00 04 41 08 0b 1f 1f 07 0c 0f 14 05 5c 08 03 1b 12 1f 0c 0f
+00 05 50 0d 03 1c 1f 00 0c 0f 19 05 63 00 03 05 00 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..6
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 0c 0f 00 00 41 08 0b 1f 1f 07 0c 0f 14 00 5c 08 03 1b 12 1f 0c 0f
+00 00 50 0d 03 1c 1f 00 0c 0f 19 00 63 00 03 05 00 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 03 0d 0f 00 03 51 00 08 1f 18 15 0a 0f 14 03 63 04 05 1b 12 06 0c 0f
+00 06 63 08 06 1c 1f 06 0c 0f 19 05 63 04 06 07 21 00 0d 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 37 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..7
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 03 0d 0f 00 00 51 00 08 1f 18 15 0a 0f 14 00 63 04 05 1b 12 06 0c 0f
+00 00 63 08 06 1c 1f 06 0c 0f 19 00 63 04 06 07 21 00 0d 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 37 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 03 0d 0f 63 05 63 13 0b 1f 18 15 0a 0f 14 05 63 04 03 1b 12 06 0c 0f
+00 04 63 04 03 1c 1f 06 0c 0f 19 05 63 00 03 07 27 00 0d 00 42 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..8
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 03 0d 0f 63 00 63 13 0b 1f 18 15 0a 0f 14 00 63 04 03 1b 12 06 0c 0f
+00 00 63 04 03 1c 1f 06 0c 0f 19 00 63 00 03 07 27 00 0d 00 42 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..9
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 00 09 0f 00 03 41 16 03 1f 1f 00 0a 0f 00 05 47 04 03 1f 1f 00 09 0f
+00 05 14 0a 03 1f 1f 00 09 0f 00 05 5a 04 03 40 23 00 06 00 52 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 39 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ..9
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 00 09 0f 00 00 41 16 03 1f 1f 00 0a 0f 00 00 47 04 03 1f 1f 00 09 0f
+00 00 14 0a 03 1f 1f 00 09 0f 00 00 5a 04 03 40 23 00 06 00 52 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 2e 39 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 04 0d 0f 63 03 46 0a 03 1f 1f 04 0c 0f 00 05 63 08 03 1f 1f 03 0d 0f
+63 05 63 04 03 1f 1f 01 0d 0f 00 05 63 04 03 2d 2e 00 22 00 12 0c 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.10
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 04 0d 0f 63 00 46 0a 03 1f 1f 04 0c 0f 00 00 63 08 03 1f 1f 03 0d 0f
+63 00 63 04 03 1f 1f 01 0d 0f 00 00 63 04 03 2d 2e 00 22 00 12 0c 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.11
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 00 09 0f 63 03 4d 04 03 1f 1f 00 0a 0f 10 06 41 04 02 1f 1f 00 09 0f
+00 05 35 04 03 1f 1f 00 09 0f 01 05 5a 04 04 43 23 00 06 00 52 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 31 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.11
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 00 09 0f 63 00 4d 04 03 1f 1f 00 0a 0f 10 00 41 04 02 1f 1f 00 09 0f
+00 00 35 04 03 1f 1f 00 09 0f 01 00 5a 04 04 43 23 00 06 00 52 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 31 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.12
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 03 0d 0f 63 04 44 0a 0b 04 15 03 07 0f 14 05 63 00 03 1b 12 06 0c 0f
+00 05 63 04 03 19 15 0a 09 0f 19 05 5d 04 04 44 1d 00 0d 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 32 63 63 63 32 32 32 00 00
+00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.12
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 03 0d 0f 63 00 44 0a 0b 04 15 03 07 0f 14 00 63 00 03 1b 12 06 0c 0f
+00 00 63 04 03 19 15 0a 09 0f 19 00 5d 04 04 44 1d 00 0d 00 32 18 00 04 00
+63 00 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 32 63 63 63 32 32 32 00 00
+00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.13
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 00 09 0f 00 04 2d 08 03 1f 1f 00 0a 0f 00 05 47 00 03 1a 1f 02 09 0f
+00 05 2a 0a 03 1a 1f 02 09 0f 00 05 5f 04 03 42 23 00 06 00 42 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Organ.13
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 00 09 0f 00 00 2d 08 03 1f 1f 00 0a 0f 00 00 47 00 03 1a 1f 02 09 0f
+00 00 2a 0a 03 1a 1f 02 09 0f 00 00 5f 04 03 42 23 00 06 00 42 18 04 04 00
+28 32 00 00 00 32 00 45 20 4f 72 67 61 6e 2e 31 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 1
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 26
+1f 0b 01 0f 08 18 40 5f 0a 0e 1f 1f 00 0e 0f 00 40 5f 04 06 1f 1f 00 0e 0f
+00 40 63 05 00 1f 1f 00 0e 0f 00 40 5f 00 08 1f 20 00 03 00 5a 18 02 04 00
+63 32 32 00 00 32 00 45 2e 4f 72 67 61 6e 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 2
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 27
+1f 0a 00 0b 0a 20 40 43 04 03 1f 1f 00 0c 0f 1a 00 5f 08 06 1f 09 00 0c 0f
+08 00 5d 04 03 1f 1f 00 0c 0f 00 00 5f 0a 00 26 23 00 01 2a 42 0c 02 04 00
+28 32 00 00 00 32 00 45 2e 4f 72 67 61 6e 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 00 0b 0d 20 40 43 04 03 1f 1f 00 0c 0f 1a 00 5f 08 06 1f 09 00 0c 0f
+08 00 5d 04 03 1f 1f 00 0c 0f 00 00 5f 0a 00 26 23 00 01 2a 42 0c 02 04 00
+28 32 00 00 00 32 00 45 2e 4f 72 67 61 6e 20 20 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 3
+** Source: Yamaha DX11 factory preset, bank C, voice 28
+1f 14 00 0f 0a 00 40 5e 0a 01 1f 1f 00 0f 0a 00 40 5c 04 00 1f 1f 00 0f 0a
+00 40 63 08 05 1f 1f 00 0f 0a 00 40 63 04 06 2f 21 00 00 15 4a 18 02 04 00
+28 32 00 00 00 32 00 45 2e 4f 72 67 61 6e 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 00 0f 0d 00 40 5e 0a 01 1f 1f 00 0f 0d 00 40 5c 04 00 1f 1f 00 0f 0d
+00 40 63 08 05 1f 1f 00 0f 0d 00 40 63 04 06 2f 21 00 00 15 4a 18 02 04 00
+28 32 00 00 00 32 00 45 2e 4f 72 67 61 6e 20 20 33 63 63 63 32 32 32 00 00
+00 00 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Organ 4
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank C, voice 29
+14 00 00 06 0f 1b 00 55 08 00 15 00 00 06 0f 00 00 56 08 06 18 01 00 07 0f
+00 00 5c 08 00 17 01 00 06 0f 00 00 63 04 06 3f 23 00 19 00 52 0c 02 04 00
+63 32 00 63 00 32 00 45 2e 4f 72 67 61 6e 20 20 34 63 63 63 32 32 32 00 00
+00 40 00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Farcheeza
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 21
+1f 00 00 0b 0f 1b 00 5a 13 03 1f 00 00 0b 0f 00 00 63 08 03 1f 00 00 0b 0f
+00 00 63 0d 03 1f 00 00 0b 0f 00 00 63 04 03 3f 23 00 12 00 42 0c 07 04 00
+63 32 00 63 00 32 00 46 61 72 63 68 65 65 7a 61 20 63 63 63 32 32 32 00 40
+00 50 00 50 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond *
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 00 0c 00 1c 40 61 0e 03 1c 19 00 0b 0f 14 40 63 04 06 1c 10 00 0c 0f
+15 40 63 08 00 1c 06 00 0c 0f 14 40 63 00 03 2f 25 00 03 0b 3a 11 02 04 00
+28 0b 40 00 00 32 00 48 61 6d 6d 6f 6e 64 20 20 2a 63 63 63 32 32 32 00 03
+00 08 00 04 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 13
+
+** Name: Hammond..1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+02 04 10 0a 05 00 22 52 04 13 1f 08 00 0d 0c 12 26 3d 0d 03 04 1f 00 0d 0f
+0d 5d 46 04 1b 16 1f 00 0d 0f 00 7c 5f 04 03 41 23 0e 10 10 46 18 05 04 00
+63 63 63 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+02 04 10 0a 05 00 22 52 04 13 1f 08 00 0d 0c 12 21 3d 0d 03 04 1f 00 0d 0f
+0d 59 46 04 1b 16 1f 00 0d 0f 00 78 5f 04 03 41 23 0e 10 10 46 18 05 04 00
+63 63 63 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1f 00 0a 0b 19 03 4a 04 03 1f 1a 00 0d 0c 52 03 46 04 1a 1f 1f 00 0d 0f
+19 06 46 04 12 1b 1e 00 09 0f 63 05 5b 08 03 03 25 00 07 00 31 0c 02 04 00
+63 32 00 00 01 32 00 48 61 6d 6d 6f 6e 64 2e 2e 32 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1f 00 0a 0b 19 00 4a 04 03 1f 1a 00 0d 0c 52 00 46 04 1a 1f 1f 00 0d 0f
+19 00 46 04 12 1b 1e 00 09 0f 63 00 5b 08 03 03 25 00 07 00 31 0c 02 04 00
+63 32 00 00 01 32 00 48 61 6d 6d 6f 6e 64 2e 2e 32 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 05 08 06 00 03 47 04 03 1f 1f 04 07 0e 00 04 5b 08 01 19 1f 00 07 0f
+00 05 4e 0a 05 1f 1f 00 07 0e 00 45 63 04 04 0d 0e 00 14 18 3a 0c 02 04 00
+63 32 00 32 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..3
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 05 08 06 00 00 47 04 03 1f 1f 04 07 0e 00 00 5b 08 01 19 1f 00 07 0f
+00 00 4e 0a 05 1f 1f 00 07 0e 00 40 63 04 04 0d 0e 00 14 18 3a 0c 02 04 00
+63 32 00 32 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 01 03 0d 2d 03 53 0a 13 1f 05 00 05 0b 2d 04 47 04 13 1f 08 00 03 0c
+43 06 5c 19 1b 1c 06 04 04 07 00 05 63 04 13 3f 23 00 23 00 32 0c 06 04 00
+63 32 00 32 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 01 03 0d 2d 00 53 0a 13 1f 05 00 05 0b 2d 01 47 04 13 1f 08 00 03 0c
+43 01 5c 19 1b 1c 06 04 04 07 00 00 63 04 13 3f 23 00 23 00 32 0c 06 04 00
+63 32 00 32 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 00 10 04 00 00 45 32 04 03 1d 0c 00 0f 0f 01 45 40 04 03 1a 17 00 0f 0f
+51 05 56 08 0b 1e 12 00 0f 0f 10 04 63 08 0b 0c 1d 00 47 55 36 0c 0c 04 00
+63 32 00 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 00 10 04 00 00 40 32 04 03 1d 0c 00 0f 0f 01 40 40 04 03 1a 17 00 0f 0f
+51 00 56 08 0b 1e 12 00 0f 0f 10 00 63 08 0b 0c 1d 00 47 55 36 0c 0c 04 00
+63 32 00 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1f 00 0a 0b 19 03 54 04 13 1f 1a 00 0d 0c 52 05 50 04 0a 1f 1f 00 0d 0f
+19 05 43 0a 1a 1b 1e 00 09 0f 63 05 63 04 03 0b 1f 00 0f 00 32 0c 02 04 00
+63 32 00 00 01 32 00 48 61 6d 6d 6f 6e 64 2e 2e 36 63 63 63 32 32 32 00 30
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..6
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1f 00 0a 0b 19 00 54 04 13 1f 1a 00 0d 0c 52 00 50 04 0a 1f 1f 00 0d 0f
+19 00 43 0a 1a 1b 1e 00 09 0f 63 00 63 04 03 0b 1f 00 0f 00 32 0c 02 04 00
+63 32 00 00 01 32 00 48 61 6d 6d 6f 6e 64 2e 2e 36 63 63 63 32 32 32 00 30
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 0d 10 04 00 00 45 46 0a 03 1d 0c 00 0f 0f 01 45 40 08 03 1a 17 00 0f 0f
+51 04 55 0d 0b 1e 12 00 0f 0f 10 05 63 04 0b 04 21 00 15 23 26 0c 0c 04 00
+63 32 00 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hammond..7
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 0d 10 04 00 00 40 46 0a 03 1d 0c 00 0f 0f 01 40 40 08 03 1a 17 00 0f 0f
+51 00 55 0d 0b 1e 12 00 0f 0f 10 00 63 04 0b 04 21 00 15 23 26 0c 0c 04 00
+63 32 00 00 00 32 00 48 61 6d 6d 6f 6e 64 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HamondLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 04 0a 0f 00 04 58 00 00 12 15 04 0a 0f 00 05 63 00 08 12 15 04 0a 0f
+00 06 63 00 0e 12 15 04 0a 0f 00 04 63 00 0b 06 24 0f 35 00 32 18 02 04 00
+63 63 00 00 00 32 00 48 61 6d 6f 6e 64 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HamondLead
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 04 0a 0f 00 01 58 00 00 12 15 04 0a 0f 00 00 63 00 08 12 15 04 0a 0f
+00 00 63 00 0e 12 15 04 0a 0f 00 00 63 00 0b 06 24 0f 35 00 32 18 02 04 00
+63 63 00 00 00 32 00 48 61 6d 6f 6e 64 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS f1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 07 0f 0f 00 03 63 0a 05 1b 18 10 0f 0f 00 44 63 08 01 1c 18 07 0f 0f
+0a 03 63 08 05 1c 18 07 0f 0f 00 05 63 04 02 2f 30 00 34 63 16 0c 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 66 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS f1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 07 0f 0f 00 00 63 0a 05 1b 18 10 0f 0f 00 40 63 08 01 1c 18 07 0f 0f
+0a 00 63 08 05 1c 18 07 0f 0f 00 00 63 04 02 2f 30 00 34 63 16 0c 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 66 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS f2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 18 07 0d 0f 00 03 63 04 05 1b 07 07 0d 0f 00 04 60 04 01 1c 18 07 0d 0f
+0a 04 5f 04 05 1c 18 07 0d 0f 00 05 60 00 02 07 1b 00 0f 63 36 18 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 66 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS f2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 18 07 0d 0f 00 00 63 04 05 1b 07 07 0d 0f 00 00 60 04 01 1c 18 07 0d 0f
+0a 00 5f 04 05 1c 18 07 0d 0f 00 00 60 00 02 07 1b 00 0f 63 36 18 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 66 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS s1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 07 01 0d 0f 00 05 5c 04 05 1b 07 07 0d 0f 00 05 5f 08 01 1c 18 07 0d 0f
+0a 05 5f 08 05 1c 18 07 0d 0f 00 05 5f 04 02 27 30 00 0e 00 22 18 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 73 31 63 63 63 32 32 32 00 20
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hmnd LS s1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 07 01 0d 0f 00 00 5c 04 05 1b 07 07 0d 0f 00 00 5f 08 01 1c 18 07 0d 0f
+0a 00 5f 08 05 1c 18 07 0d 0f 00 00 5f 04 02 27 30 00 0e 00 22 18 07 04 00
+63 63 00 00 00 32 00 48 6d 6e 64 20 4c 53 20 73 31 63 63 63 32 32 32 00 20
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hornopean
+** Description: A loud, obnoxious organ stop
+** Controls: MW (LFO pitch)
+** Source: Art Hitzeman
+12 1f 00 07 0f 19 00 58 00 03 10 1f 00 06 0f 19 00 5a 04 03 17 1f 00 07 0f
+19 00 5a 04 03 0e 1f 00 06 0f 19 00 5a 04 03 45 00 01 04 00 62 18 02 04 00
+28 32 00 00 00 32 00 48 6f 72 6e 6f 70 65 61 6e 20 63 63 63 32 32 32 00 00
+00 70 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jazz Organ
+** Description: An organ with jazz potential
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 0a 00 0b 0f 00 00 52 0a 06 1f 1f 00 0a 0f 00 00 5b 04 00 1f 12 0e 0a 0f
+00 00 58 13 06 1f 1f 00 0a 0f 00 40 4f 04 06 1f 23 00 02 00 4e 0c 07 04 00
+63 32 32 32 00 32 00 4a 61 7a 7a 20 4f 72 67 61 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Leslie *
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1f 07 0c 0f 42 40 59 33 03 1b 1f 00 0b 0f 00 40 63 0a 00 1b 1f 00 0b 0f
+00 40 56 1c 06 1b 1f 00 0b 0f 00 40 5c 04 06 1f 22 00 05 17 66 05 02 04 00
+28 00 37 00 00 32 00 4c 65 73 6c 69 65 20 20 20 2a 63 63 63 32 32 32 00 07
+00 10 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Organ 1
+** Description: An electric organ
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: GLIB (Michael Kesti and others)
+1f 0a 01 0b 00 00 7d 5f 0a 06 1f 1f 01 0a 0f 00 7f 63 08 00 1f 1f 01 0a 0f
+00 7f 63 0a 06 1f 1f 01 0a 0f 00 7e 63 04 06 1f 27 00 14 1c 36 0c 04 04 00
+63 32 32 00 00 32 00 4f 72 67 61 6e 20 20 20 20 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Organ 2
+** Description: An electric organ
+** Source: GLIB (Michael Kesti and others)
+1f 0f 00 06 0f 00 00 40 00 03 1f 0f 00 09 0f 00 00 46 04 03 1f 0f 00 06 0f
+00 00 5a 00 03 1f 0f 00 09 0f 00 00 5a 04 03 04 00 00 00 00 02 18 00 04 00
+63 32 32 32 00 32 00 4f 72 67 61 6e 20 32 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Organ 3
+** Description: An electric organ
+** Source: GLIB (Michael Kesti and others)
+1f 0f 00 06 0f 4e 00 50 00 03 1f 0f 00 09 0f 36 00 46 04 03 1f 0f 00 06 0f
+00 00 5a 00 03 1f 0f 00 09 0f 00 00 5a 04 03 04 00 00 00 00 02 18 00 04 00
+63 32 32 32 00 32 00 4f 72 67 61 6e 20 33 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Organ
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 06 07 00 00 03 4f 3d 0b 1d 07 07 08 0b 00 02 63 04 0b 1d 07 07 08 0b
+00 05 63 04 0e 1d 07 07 08 0b 00 04 5a 04 0b 2e 63 21 00 00 40 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 4f 72 67 61 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Organ
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 06 07 00 00 00 4f 3d 0b 1d 07 07 08 0b 00 00 63 04 0b 1d 07 07 08 0b
+00 00 63 04 0e 1d 07 07 08 0b 00 00 5a 04 0b 2e 63 21 00 00 40 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 4f 72 67 61 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Organ2
+
+
+** Name: P Organ..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 1f 00 06 0f 00 0d 63 13 03 1a 1f 00 06 0f 00 0d 63 08 03 1a 1f 00 06 0f
+00 0d 63 0a 03 1a 1f 00 06 0f 00 0d 63 04 03 2f 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 1f 00 06 0f 00 08 63 13 03 1a 1f 00 06 0f 00 08 63 08 03 1a 1f 00 06 0f
+00 08 63 0a 03 1a 1f 00 06 0f 00 08 63 04 03 2f 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 1f 00 06 0f 00 04 45 19 03 1a 1f 00 06 0f 00 06 50 04 03 1a 1f 00 06 0f
+00 05 63 04 03 1a 1f 00 06 0f 00 05 63 00 03 34 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 1f 00 06 0f 00 01 45 19 03 1a 1f 00 06 0f 00 01 50 04 03 1a 1f 00 06 0f
+00 00 63 04 03 1a 1f 00 06 0f 00 00 63 00 03 34 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 1f 13 08 0e 00 03 43 19 03 1a 1f 00 06 0f 00 03 44 04 03 10 07 07 09 0f
+00 05 63 08 03 1a 1f 00 06 0f 00 05 63 08 03 34 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 33 63 63 63 32 32 32 00 30
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 1f 13 08 0e 00 00 43 19 03 1a 1f 00 06 0f 00 00 44 04 03 10 07 07 09 0f
+00 00 63 08 03 1a 1f 00 06 0f 00 00 63 08 03 34 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 33 63 63 63 32 32 32 00 30
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 1f 00 08 0f 00 05 50 00 03 16 1f 00 07 0f 00 06 4f 04 03 0d 1f 00 06 0f
+00 06 63 0d 03 15 1f 00 07 0f 00 05 63 04 03 04 23 41 00 00 12 18 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 34 63 63 63 32 32 32 00 60
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 00 08 0f 00 01 50 00 03 16 1f 00 07 0f 00 01 4f 04 03 0d 1f 00 06 0f
+00 01 63 0d 03 15 1f 00 07 0f 00 00 63 04 03 04 23 41 00 00 12 18 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 34 63 63 63 32 32 32 00 60
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 05 06 0f 00 02 4c 0d 03 1d 1f 05 08 0f 00 04 5a 04 02 13 1f 07 07 0f
+00 05 63 08 03 18 07 06 0a 0f 00 05 63 08 04 04 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 35 63 63 63 32 32 32 00 40
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 05 06 0f 00 01 4c 0d 03 1d 1f 05 08 0f 00 01 5a 04 02 13 1f 07 07 0f
+00 00 63 08 03 18 07 06 0a 0f 00 00 63 08 04 04 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 35 63 63 63 32 32 32 00 40
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 06 03 06 0f 00 05 4c 1f 03 12 03 03 08 0f 00 05 63 08 02 12 07 04 07 0f
+00 05 63 08 03 16 03 04 0a 0f 00 05 63 04 04 2e 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 36 63 63 63 32 32 32 00 10
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..6
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 06 03 06 0f 00 00 4c 1f 03 12 03 03 08 0f 00 00 63 08 02 12 07 04 07 0f
+00 00 63 08 03 16 03 04 0a 0f 00 00 63 04 04 2e 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 36 63 63 63 32 32 32 00 10
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 07 03 07 0f 00 05 4a 1f 03 1f 05 03 09 0f 00 06 54 00 02 12 05 04 08 0f
+00 06 63 08 03 0d 05 04 0a 0f 00 05 63 00 04 04 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 37 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 07 03 07 0f 00 01 4a 1f 03 1f 05 03 09 0f 00 01 54 00 02 12 05 04 08 0f
+00 00 63 08 03 0d 05 04 0a 0f 00 00 63 00 04 04 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 37 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 1f 00 09 0f 00 06 4c 2a 0b 1a 1f 00 06 0f 00 06 5b 00 04 13 1f 00 0a 0f
+00 05 63 08 03 10 1f 00 06 0f 00 45 63 00 04 24 21 19 16 23 46 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 38 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 1f 00 09 0f 00 01 4c 2a 0b 1a 1f 00 06 0f 00 01 5b 00 04 13 1f 00 0a 0f
+00 00 63 08 03 10 1f 00 06 0f 00 40 63 00 04 24 21 19 16 23 46 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 38 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 06 03 07 0f 00 06 44 13 03 12 03 03 08 0f 00 06 57 08 02 12 07 04 09 0f
+00 05 63 0d 03 10 03 04 0a 0f 00 05 63 04 04 2c 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 39 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ..9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 06 03 07 0f 00 01 44 13 03 12 03 03 08 0f 00 01 57 08 02 12 07 04 09 0f
+00 00 63 0d 03 10 03 04 0a 0f 00 00 63 04 04 2c 23 41 00 00 12 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 2e 39 63 63 63 32 32 32 00 00
+00 20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 00 00 0a 0f 3e 46 4e 0d 06 10 00 00 0a 0f 63 05 63 08 06 18 00 00 0a 0f
+00 06 63 08 06 15 00 00 0a 0f 00 05 63 04 01 06 23 00 00 38 16 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 00 00 0a 0f 3e 41 4e 0d 06 10 00 00 0a 0f 63 00 63 08 06 18 00 00 0a 0f
+00 01 63 08 06 15 00 00 0a 0f 00 00 63 04 01 06 23 00 00 38 16 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 60 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 00 00 0a 0f 00 03 47 08 02 18 00 00 05 0f 5b 04 63 00 00 0f 00 00 08 0f
+00 05 63 08 10 0e 00 00 05 0f 00 05 63 00 16 3c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 31 63 63 63 32 32 32 00 00
+00 70 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.11
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 00 00 0a 0f 00 01 47 08 02 18 00 00 05 0f 5b 01 63 00 00 0f 00 00 08 0f
+00 00 63 08 10 0e 00 00 05 0f 00 00 63 00 16 3c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 31 63 63 63 32 32 32 00 00
+00 70 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.12
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 07 01 0a 0f 00 03 56 13 05 1b 07 01 07 0f 5b 05 4f 04 02 12 07 01 09 0f
+00 03 61 08 12 0d 07 07 05 0f 00 05 63 00 14 2c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.12
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 07 01 0a 0f 00 01 56 13 05 1b 07 01 07 0f 5b 00 4f 04 02 12 07 01 09 0f
+00 00 61 08 12 0d 07 07 05 0f 00 00 63 00 14 2c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.13
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 07 00 0a 0f 43 03 4f 13 05 1f 07 00 07 03 5b 04 52 04 02 12 07 01 09 0f
+2e 05 5f 08 02 0d 07 00 05 0f 00 05 63 00 04 2c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.13
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 07 00 0a 0f 43 01 4f 13 05 1f 07 00 07 03 5b 01 52 04 02 12 07 01 09 0f
+2e 00 5f 08 02 0d 07 00 05 0f 00 00 63 00 04 2c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.14
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 07 00 07 0f 43 04 59 0d 05 15 04 00 08 0f 15 06 57 00 02 12 07 01 08 0f
+2e 04 62 04 02 11 03 00 06 0f 00 05 63 00 04 2c 23 00 16 00 22 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 34 63 63 63 32 32 32 00 00
+00 50 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.14
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 07 00 07 0f 43 00 59 0d 05 15 04 00 08 0f 15 01 57 00 02 12 07 01 08 0f
+2e 00 62 04 02 11 03 00 06 0f 00 00 63 00 04 2c 23 00 16 00 22 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 34 63 63 63 32 32 32 00 00
+00 50 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.15
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 04 00 07 0f 43 03 58 19 0c 12 04 00 08 0f 5b 04 5c 04 0a 0f 04 00 08 0f
+2e 05 63 08 02 0f 04 00 06 0f 00 05 63 00 03 2c 23 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 35 63 63 63 32 32 32 00 30
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.15
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 04 00 07 0f 43 01 58 19 0c 12 04 00 08 0f 5b 01 5c 04 0a 0f 04 00 08 0f
+2e 00 63 08 02 0f 04 00 06 0f 00 00 63 00 03 2c 23 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 35 63 63 63 32 32 32 00 30
+00 30 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.16
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 04 00 07 0f 43 04 47 19 0c 12 04 00 08 0f 5b 03 4d 04 0a 0f 04 00 08 0f
+2e 06 63 0d 02 0f 04 00 06 0f 00 05 63 00 03 2e 23 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.16
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 04 00 07 0f 43 00 47 19 0c 12 04 00 08 0f 5b 00 4d 04 0a 0f 04 00 08 0f
+2e 00 63 0d 02 0f 04 00 06 0f 00 00 63 00 03 2e 23 00 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.17
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 1f 00 06 0f 00 06 51 13 03 1a 1f 00 06 0f 00 06 45 08 03 1a 1f 00 06 0f
+00 07 50 0a 03 1a 1f 00 06 0f 00 05 63 04 03 29 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 37 63 63 63 32 32 32 00 00
+00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P Organ.17
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 1f 00 06 0f 00 01 51 13 03 1a 1f 00 06 0f 00 01 45 08 03 1a 1f 00 06 0f
+00 02 50 0a 03 1a 1f 00 06 0f 00 00 63 04 03 29 21 19 1d 00 52 0c 07 04 00
+63 63 00 00 00 32 00 50 20 4f 72 67 61 6e 2e 31 37 63 63 63 32 32 32 00 00
+00 10 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 1
+** Source: Yamaha DX11 factory preset, bank C, voice 30
+1e 1f 00 06 0f 0a 00 4c 00 0b 0a 1f 00 0a 0f 19 00 4c 10 0e 14 1f 00 0a 0f
+00 00 5a 04 0b 13 1f 00 0a 0f 19 00 4c 0a 08 16 46 00 00 00 22 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 20 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1f 00 06 0f 0a 00 4c 00 0b 0d 1f 00 0a 0f 19 00 4c 10 0e 14 1f 00 0a 0f
+00 00 5a 04 0b 13 1f 00 0a 0f 19 00 4c 0a 08 16 46 00 00 00 22 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 20 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 2
+** Source: Yamaha DX11 factory preset, bank C, voice 31
+12 1f 00 09 0f 00 00 5e 04 03 10 1f 00 08 0f 00 00 60 08 05 17 1f 00 09 0f
+00 00 5f 0a 06 0e 1f 00 08 0f 00 00 5e 00 00 37 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 20 32 63 63 63 32 32 32 00 20
+00 30 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 1f 00 09 0f 00 00 5e 04 03 10 1f 00 08 0f 00 00 60 08 05 17 1f 00 09 0f
+00 00 5f 0d 06 0e 1f 00 08 0f 00 00 5e 00 00 37 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 20 32 63 63 63 32 32 32 00 20
+00 30 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 1'
+** Description: DX11 factory preset 'P.Organ 1' with slower decay
+** Source: Art Hitzeman
+1e 1f 00 05 0f 0a 00 4c 00 0b 0a 1f 00 06 0f 19 00 4c 10 0e 14 1f 00 06 0f
+00 00 5a 04 0b 13 1f 00 05 0f 19 00 4c 0a 08 16 46 00 00 00 22 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 31 27 63 63 63 32 32 32 00 20
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 2'
+** Description: DX11 factory preset 'P.Organ 2' with slower decay
+** Source: Art Hitzeman
+12 1f 00 07 0f 00 00 5e 04 03 10 1f 00 06 0f 00 00 60 08 05 17 1f 00 07 0f
+00 00 5f 0d 06 0e 1f 00 06 0f 00 00 5e 00 00 37 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 32 27 63 63 63 32 32 32 00 20
+00 30 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 3
+** Description: A pipe organ
+** Source: Art Hitzeman
+12 1f 00 06 0f 00 00 5e 04 03 10 1f 00 05 0f 09 00 60 08 15 17 1f 00 07 0f
+40 00 5f 0a 0e 0e 1f 00 05 0f 00 00 5e 00 10 37 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 33 20 63 63 63 32 32 32 00 30
+00 40 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 4
+** Description: Another pipe organ
+** Source: Art Hitzeman
+12 1f 00 07 0f 00 00 54 04 03 10 1f 00 06 0f 63 00 63 04 03 17 1f 00 07 0f
+00 00 55 08 06 0e 1f 00 06 0f 00 00 55 00 00 2f 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 34 20 63 63 63 32 32 32 00 10
+00 10 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.Organ 5
+** Description: Yet another pipe organ
+** Source: Art Hitzeman
+12 1f 00 07 0f 00 00 5e 00 03 10 1f 00 06 0f 00 00 60 04 05 17 1f 00 07 0f
+00 00 5f 08 06 0e 1f 00 06 0f 00 00 5e 00 00 37 23 01 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 2e 4f 72 67 61 6e 20 35 20 63 63 63 32 32 32 00 00
+00 40 00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PercOrgan
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 17
+1f 0b 01 0b 08 18 40 5f 0a 0e 1f 1f 00 0a 0f 00 40 5f 04 00 1f 1f 00 0a 0f
+00 40 63 05 06 1f 1f 00 0a 0f 00 40 5f 00 08 1f 20 00 03 00 5a 18 04 04 00
+63 32 32 00 00 32 00 50 65 72 63 4f 72 67 61 6e 20 63 63 63 32 32 32 00 00
+00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pipe Organ
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+16 00 00 0a 0f 00 00 63 19 03 11 00 00 0a 0f 00 00 63 0d 03 17 00 00 0a 0f
+00 00 63 04 03 17 00 00 0a 0f 00 00 63 00 03 07 1e 00 00 00 42 18 04 04 00
+28 32 00 00 00 32 00 50 69 70 65 20 4f 72 67 61 6e 63 63 63 32 32 32 00 70
+00 70 00 40 00 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PumpOrgan
+** Controls: MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank A, voice 19
+1f 1f 00 06 0f 1e 00 4d 17 03 1f 1f 00 05 0f 00 00 50 05 04 1f 1f 00 05 0f
+00 00 23 04 06 0d 1f 00 09 0f 00 40 5a 04 03 38 14 00 00 0e 3e 11 04 04 00
+63 32 0a 00 00 32 00 50 75 6d 70 4f 72 67 61 6e 20 63 63 63 32 32 32 00 25
+00 31 00 18 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RevrbOrgan
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 03 00 05 0e 23 03 4e 05 05 0e 03 00 05 0e 23 03 4e 04 03 0b 1f 00 05 0f
+00 01 63 05 06 0c 1f 00 05 0f 00 01 63 04 02 04 19 06 04 00 52 05 02 04 00
+63 0f 00 0c 00 32 00 52 65 76 72 62 4f 72 67 61 6e 63 63 63 32 32 32 00 01
+00 08 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Small Pipe
+** Source: Yamaha TX81Z factory preset, bank A, voice 22
+16 00 00 0a 0f 3e 00 4b 19 06 11 00 00 0a 0f 63 00 57 0d 06 17 00 00 0a 0f
+00 00 58 04 06 17 00 00 0a 0f 00 00 63 00 01 07 1e 00 00 00 42 18 04 04 00
+63 63 00 00 00 32 00 53 6d 61 6c 6c 20 50 69 70 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Organ 1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: Yamaha DX11 factory preset, bank A, voice 21
+1f 12 00 07 0a 14 02 50 0a 0b 1f 14 00 09 0e 00 42 55 08 13 1f 14 00 09 06
+00 03 63 0a 03 1f 1f 00 08 0f 00 02 63 04 0b 06 1e 0a 11 1a 5e 18 02 04 00
+63 32 23 00 00 32 00 53 79 2e 4f 72 67 61 6e 20 31 63 63 63 32 32 32 00 00
+00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Organ 1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 00 07 0d 14 02 50 0d 0b 1f 14 00 09 0e 00 42 55 08 13 1f 14 00 09 06
+00 03 63 0d 03 1f 1f 00 08 0f 00 02 63 04 0b 06 1e 0d 11 1a 5e 18 02 04 00
+63 32 23 00 00 32 00 53 79 2e 4f 72 67 61 6e 20 31 63 63 63 32 32 32 00 00
+00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Organ 2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 22
+1b 00 00 0f 0f 1b 00 24 0a 03 1e 1c 00 04 01 00 00 44 08 02 1f 00 00 0a 0b
+00 00 49 0a 04 1f 06 00 09 0f 00 00 53 04 04 3a 23 00 27 00 42 18 02 04 00
+63 63 00 63 00 32 00 53 79 2e 4f 72 67 61 6e 20 32 63 63 63 32 32 32 00 00
+00 20 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Organ 2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 00 00 0f 0f 1b 00 24 0d 03 1e 1c 00 04 01 00 00 44 08 02 1f 00 00 0a 0b
+00 00 49 0d 04 1f 06 00 09 0f 00 00 53 04 04 3a 23 00 27 00 42 18 02 04 00
+63 63 00 63 00 32 00 53 79 2e 4f 72 67 61 6e 20 32 63 63 63 32 32 32 00 00
+00 20 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tocc Organ
+** Description: A pipe organ intended for Bach's Toccata & Fugue in D Minor
+** (the piece the villian always plays in those horror movies)
+** Source: Art Hitzeman
+12 1f 00 06 0f 3c 00 5e 04 03 10 1f 00 06 0f 32 00 60 08 05 17 1f 00 07 0f
+32 00 5f 0d 06 0e 1f 00 06 0f 3c 00 5e 00 00 37 23 01 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 54 6f 63 63 20 4f 72 67 61 6e 63 63 63 32 32 32 00 20
+00 30 00 20 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: VelocOrgan
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 07 00 0f 0d 32 07 2b 11 00 1c 08 00 0f 0d 41 07 49 12 04 19 08 00 0f 0d
+41 07 5d 05 06 1c 1f 00 0a 0e 00 03 63 04 09 03 1d 15 05 00 52 05 02 04 00
+63 23 00 00 00 32 00 56 65 6c 6f 63 4f 72 67 61 6e 63 63 63 32 32 32 00 08
+00 04 00 11 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wirlitzer*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 07 06 07 0e 12 06 4a 08 08 1d 07 06 07 0e 00 06 54 00 0b 1d 06 06 07 0e
+00 00 63 00 0e 1d 06 06 07 0e 00 02 63 04 08 34 23 00 00 00 32 18 02 04 00
+28 63 00 00 00 32 00 57 69 72 6c 69 74 7a 65 72 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 14
+
+* SUBCATEGORY Piano1
+
+
+** Name: AC Piano.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 03 02 04 04 63 06 58 0a 13 16 09 06 06 0d 00 04 4d 04 0b 1b 06 01 04 04
+63 06 63 04 0b 16 09 06 06 0d 00 07 62 04 0b 2c 23 00 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 03 02 04 04 63 01 58 0a 13 16 09 06 06 0d 00 01 4d 04 0b 1b 06 01 04 04
+63 00 63 04 0b 16 09 06 06 0d 00 00 62 04 0b 2c 23 00 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 05 02 04 04 63 04 3b 19 13 14 05 04 06 0d 00 05 50 04 1b 14 02 02 06 0d
+00 05 3d 10 0b 15 07 06 06 0c 00 06 63 04 0b 22 23 00 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 05 02 04 04 63 01 3b 19 13 14 05 04 06 0d 00 01 50 04 1b 14 02 02 06 0d
+00 01 3d 10 0b 15 07 06 06 0c 00 00 63 04 0b 22 23 00 00 00 02 0c 02 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 01 01 03 00 1b 05 49 04 0d 14 06 05 04 09 42 06 53 04 0d 12 06 0b 03 00
+42 05 44 10 09 18 06 05 05 09 01 46 60 04 0a 1a 23 0a 00 06 56 18 04 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 01 01 03 00 1b 02 49 04 0d 14 06 05 04 09 42 01 53 04 0d 12 06 0b 03 00
+42 01 44 10 09 18 06 05 05 09 01 40 60 04 0a 1a 23 0a 00 06 56 18 04 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 01 01 05 00 32 44 4c 04 0d 19 09 09 05 0f 01 04 53 04 06 18 06 05 06 09
+16 45 62 04 09 19 09 09 05 0f 01 45 63 04 00 2c 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 34 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 01 01 05 00 32 41 4c 04 0d 19 09 09 05 0f 01 01 53 04 06 18 06 05 06 09
+16 40 62 04 09 19 09 09 05 0f 01 40 63 04 00 2c 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 34 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 07 00 07 00 00 04 49 00 08 19 1f 00 06 0f 00 05 4b 00 06 18 09 00 07 00
+00 05 43 00 00 1a 05 06 05 0a 01 06 63 04 0e 03 00 00 00 00 62 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 07 00 07 00 00 01 49 00 08 19 1f 00 06 0f 00 01 4b 00 06 18 09 00 07 00
+00 00 43 00 00 1a 05 06 05 0a 01 01 63 04 0e 03 00 00 00 00 62 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 03 05 0d 2d 05 49 04 03 1f 05 01 05 0f 63 05 4c 0a 03 1f 04 02 05 0e
+63 05 47 04 0b 1c 1e 06 06 0f 00 06 5d 04 13 3a 23 00 00 00 62 0c 00 04 00
+63 00 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 03 05 0d 2d 01 49 04 03 1f 05 01 05 0f 63 01 4c 0a 03 1f 04 02 05 0e
+63 01 47 04 0b 1c 1e 06 06 0f 00 00 5d 04 13 3a 23 00 00 00 62 0c 00 04 00
+63 00 00 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.7
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 08 00 03 00 00 04 3a 08 0c 14 06 07 04 09 23 05 48 04 15 14 07 00 03 00
+00 06 36 0a 02 18 08 06 05 09 0f 06 5d 04 0b 7a 21 3c 0a 00 32 18 06 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.7
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 08 00 03 00 00 00 3a 08 0c 14 06 07 04 09 23 00 48 04 15 14 07 00 03 00
+00 00 36 0a 02 18 08 06 05 09 0f 00 5d 04 0b 7a 21 3c 0a 00 32 18 06 04 00
+63 32 00 32 00 32 00 41 43 20 50 69 61 6e 6f 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 09 01 03 0e 32 43 4f 0a 11 16 09 01 03 0e 32 1d 5d 04 16 18 07 05 05 0d
+00 45 63 04 0b 18 07 05 05 0d 00 75 60 04 0b 24 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 09 01 03 0e 32 41 4f 0a 11 16 09 01 03 0e 32 01 5d 04 16 18 07 05 05 0d
+00 40 63 04 0b 18 07 05 05 0d 00 40 60 04 0b 24 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 07 07 0d 00 45 3a 10 0b 1c 09 07 07 0d 00 05 4a 0a 0c 1c 09 07 07 0d
+00 43 4b 04 0a 1c 09 07 07 0d 00 45 63 04 0b 23 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 39 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano.9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 07 07 0d 00 42 3a 10 0b 1c 09 07 07 0d 00 02 4a 0a 0c 1c 09 07 07 0d
+00 40 4b 04 0a 1c 09 07 07 0d 00 41 63 04 0b 23 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 2e 39 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 01 01 03 00 34 04 4b 04 0d 16 01 01 04 0c 42 04 52 00 0b 18 05 01 03 00
+63 06 45 16 10 14 08 01 06 0c 00 05 63 04 13 32 23 00 00 00 02 18 00 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 01 01 03 00 34 01 4b 04 0d 16 01 01 04 0c 42 01 52 00 0b 18 05 01 03 00
+63 01 45 16 10 14 08 01 06 0c 00 00 63 04 13 32 23 00 00 00 02 18 00 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 03 05 0d 00 04 49 04 0d 1f 04 02 05 0e 63 04 4a 0a 01 1f 05 04 05 0d
+63 06 50 10 04 1c 1e 04 06 0f 00 05 5c 04 13 2a 23 00 00 00 62 0c 00 04 00
+63 00 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano11
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 03 05 0d 00 01 49 04 0d 1f 04 02 05 0e 63 01 4a 0a 01 1f 05 04 05 0d
+63 01 50 10 04 1c 1e 04 06 0f 00 00 5c 04 13 2a 23 00 00 00 62 0c 00 04 00
+63 00 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano12
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 0c 09 09 06 52 45 46 0d 03 1b 05 06 09 07 27 04 41 04 13 1c 06 06 07 0c
+11 45 4e 04 0b 1c 07 07 07 09 00 46 60 04 0b 1b 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano12
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 0c 09 09 06 52 42 46 0d 03 1b 05 06 09 07 27 01 41 04 13 1c 06 06 07 0c
+11 40 4e 04 0b 1c 07 07 07 09 00 40 60 04 0b 1b 19 00 00 00 66 18 01 04 00
+63 00 63 00 00 32 00 41 43 20 50 69 61 6e 6f 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano13
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 09 00 07 0d 00 04 46 0a 0b 19 09 00 06 0d 00 04 49 04 0c 18 09 00 07 0d
+00 06 4c 04 0b 1a 09 09 07 0d 00 05 63 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 33 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano13
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 09 00 07 0d 00 01 46 0a 0b 19 09 00 06 0d 00 01 49 04 0c 18 09 00 07 0d
+00 01 4c 04 0b 1a 09 09 07 0d 00 00 63 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 33 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano14
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 09 06 07 0d 00 02 38 0a 0b 1b 09 06 07 0d 00 04 46 10 0c 1b 09 06 07 0d
+00 05 4c 04 0b 1b 09 06 07 0d 00 05 5d 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano14
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 09 06 07 0d 00 01 38 0a 0b 1b 09 06 07 0d 00 02 46 10 0c 1b 09 06 07 0d
+00 01 4c 04 0b 1b 09 06 07 0d 00 00 5d 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 34 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano15
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 06 00 06 0e 00 05 2f 19 0e 13 04 04 06 0d 00 05 43 04 0a 13 04 04 06 0d
+00 07 3e 0d 0c 15 07 06 06 0c 00 06 63 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano15
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 06 00 06 0e 00 01 2f 19 0e 13 04 04 06 0d 00 01 43 04 0a 13 04 04 06 0d
+00 01 3e 0d 0c 15 07 06 06 0c 00 01 63 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano16
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 0d 05 07 0d 00 04 4c 0a 0c 13 04 03 06 0d 13 04 4e 04 0a 13 04 04 06 0d
+2b 06 2d 1c 0b 15 07 06 06 0c 00 05 5d 04 0c 2a 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano16
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 0d 05 07 0d 00 01 4c 0a 0c 13 04 03 06 0d 13 01 4e 04 0a 13 04 04 06 0d
+2b 01 2d 1c 0b 15 07 06 06 0c 00 00 5d 04 0c 2a 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano17
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 18 05 01 0a 01 05 47 16 0a 1f 0c 01 04 0d 13 05 4e 04 0b 1f 0c 01 04 0d
+13 06 50 04 0c 17 07 06 08 0d 00 06 5e 04 0b 28 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 37 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano17
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 18 05 01 0a 01 01 47 16 0a 1f 0c 01 04 0d 13 01 4e 04 0b 1f 0c 01 04 0d
+13 01 50 04 0c 17 07 06 08 0d 00 00 5e 04 0b 28 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 37 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano18
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 05 05 0c 01 02 51 0a 0d 19 06 15 09 0a 13 05 41 04 0a 19 08 05 05 09
+00 06 46 10 0c 19 07 05 05 09 00 06 5d 04 0c 02 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 38 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano18
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 05 05 0c 01 01 51 0a 0d 19 06 15 09 0a 13 01 41 04 0a 19 08 05 05 09
+00 01 46 10 0c 19 07 05 05 09 00 00 5d 04 0c 02 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 38 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano19
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 06 0c 01 05 43 16 05 19 06 06 09 0a 13 06 50 04 04 19 06 06 09 0a
+13 05 4e 04 02 19 09 06 07 0d 00 06 5f 04 0a 22 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano19
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 06 0c 01 01 43 16 05 19 06 06 09 0a 13 02 50 04 04 19 06 06 09 0a
+13 01 4e 04 02 19 09 06 07 0d 00 00 5f 04 0a 22 00 00 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 31 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano20
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 09 09 07 0d 01 05 3d 04 0b 19 09 09 07 0d 01 05 4b 0a 04 19 09 09 07 0d
+01 05 41 10 03 19 09 06 07 0d 01 06 5f 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 32 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano20
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 09 09 07 0d 01 01 3d 04 0b 19 09 09 07 0d 01 01 4b 0a 04 19 09 09 07 0d
+01 01 41 10 03 19 09 06 07 0d 01 00 5f 04 0b 2a 00 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 41 43 20 50 69 61 6e 6f 32 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano21
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 01 01 03 00 1b 05 47 04 0d 14 06 05 04 09 42 05 48 13 0d 12 06 0b 03 00
+42 05 4b 0d 09 18 06 05 05 09 0a 44 60 04 0a 1a 23 0a 00 06 56 18 04 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 32 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AC Piano21
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 01 01 03 00 1b 01 47 04 0d 14 06 05 04 09 42 01 48 13 0d 12 06 0b 03 00
+42 01 4b 0d 09 18 06 05 05 09 0a 40 60 04 0a 1a 23 0a 00 06 56 18 04 04 00
+63 32 00 00 00 32 00 41 43 20 50 69 61 6e 6f 32 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BabyGrand*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 10 06 07 0e 00 01 44 04 0c 1e 0c 06 03 0e 2b 02 4c 04 0c 1e 09 07 06 0e
+11 03 4f 10 09 1c 0a 06 07 0e 00 02 63 04 08 1a 23 00 00 00 62 0c 02 04 00
+28 32 00 00 00 32 00 42 61 62 79 47 72 61 6e 64 2a 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bad Road *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 0f 18 07 02 11 02 38 1e 03 17 06 06 0a 0f 0c 05 57 04 0e 18 07 0d 0a 03
+0e 45 63 04 06 17 06 06 07 0f 00 43 63 04 08 04 23 00 00 00 0e 0c 02 04 00
+28 00 19 00 00 32 00 42 61 64 20 52 6f 61 64 20 2a 63 63 63 32 32 32 00 18
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bel/Piano*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 1f 04 00 00 02 58 09 05 1c 09 1f 04 00 00 05 57 05 06 1c 09 1f 04 00
+00 42 63 04 0b 1c 09 1f 04 00 00 43 63 00 08 04 17 00 08 0c 3a 11 02 04 00
+28 63 00 00 00 32 00 42 65 6c 2f 50 69 61 6e 6f 2a 63 63 63 32 32 32 00 32
+00 01 00 08 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BellPiano1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 0a 05 0a 00 03 63 2d 13 1f 1b 0a 06 0f 00 05 51 08 03 1f 09 07 05 0f
+00 05 63 08 03 1f 09 0c 04 0f 00 46 5e 04 03 3c 18 52 00 51 26 0c 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 50 69 61 6e 6f 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BellPiano1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 0a 05 0a 00 01 63 2d 13 1f 1b 0a 06 0f 00 01 51 08 03 1f 09 07 05 0f
+00 00 63 08 03 1f 09 0c 04 0f 00 40 5e 04 03 3c 18 52 00 51 26 0c 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 50 69 61 6e 6f 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BellPiano2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 0a 05 0a 00 04 63 08 13 1f 1b 0a 06 0f 00 04 63 19 03 1f 09 07 05 0f
+00 05 63 08 03 1f 09 0c 04 0f 00 47 5e 08 03 3e 18 52 00 51 26 0c 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 50 69 61 6e 6f 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BellPiano2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 0a 05 0a 00 02 63 08 13 1f 1b 0a 06 0f 00 00 63 19 03 1f 09 07 05 0f
+00 00 63 08 03 1f 09 0c 04 0f 00 40 5e 08 03 3e 18 52 00 51 26 0c 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 50 69 61 6e 6f 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BritePiano
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1d 04 0c 04 00 34 01 4d 04 0d 1f 07 03 04 0c 5e 03 4d 0d 0b 18 05 03 04 00
+3d 03 4e 16 18 1f 08 03 04 0d 00 02 63 04 13 3a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 42 72 69 74 65 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Buz'dPiano
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 0c 06 00 34 01 4f 04 0d 1f 07 03 06 0c 5e 04 4d 0d 13 18 05 03 06 00
+3d 01 47 16 18 1f 08 03 06 0d 00 01 63 04 13 3a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 42 75 7a 27 64 50 69 61 6e 6f 63 63 63 32 32 32 00 10
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChibyPiano
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 15 0c 06 00 21 02 49 16 15 1f 07 03 06 0c 1b 04 47 0d 0b 18 05 03 06 00
+10 02 4a 16 18 1f 08 03 06 0d 00 02 63 04 13 3a 1d 00 00 00 52 0c 02 04 00
+63 32 00 00 00 32 00 43 68 69 62 79 50 69 61 6e 6f 63 63 63 32 32 32 00 70
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChorusMeEP
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 0e 0f 0e 09 00 03 53 2a 0e 1f 00 00 07 0a 30 43 55 00 08 1f 12 06 08 0d
+00 03 53 04 00 1c 04 00 07 0a 00 02 63 04 16 34 14 00 01 02 26 18 02 05 00
+63 32 00 32 00 32 00 43 68 6f 72 75 73 4d 65 45 50 63 63 63 32 32 32 00 70
+00 10 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: CrsPopPno
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 08 08 0b 63 03 4f 04 10 1f 1f 08 08 0b 63 03 4f 05 16 1f 19 05 06 0f
+00 05 63 04 10 1f 19 05 06 0f 00 05 62 05 16 04 1a 12 00 00 4a 05 02 04 00
+62 32 00 25 00 32 00 43 72 73 50 6f 70 50 6e 6f 20 63 63 63 32 32 32 16 48
+14 41 00 58 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DX7 EP
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 1
+1f 0f 00 0a 07 00 44 49 2d 06 1e 06 00 06 00 10 43 59 04 00 1b 07 0a 09 07
+14 43 4f 04 03 1e 07 00 09 00 14 42 63 04 06 1c 16 00 04 0a 4e 18 02 04 00
+28 32 00 00 00 32 00 44 58 37 20 45 50 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Deep Grd
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 3
+18 01 01 03 00 15 03 47 04 0d 16 01 01 05 0c 46 03 5b 00 13 18 05 01 03 00
+4a 04 36 10 08 14 08 01 05 0c 01 03 63 04 13 32 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 44 65 65 70 20 47 72 64 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DirtoyPno
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0c 05 0c 1c 04 4e 13 13 1f 06 01 05 0e 00 46 55 30 0b 16 17 08 04 0d
+00 04 63 00 0b 1f 09 09 05 0f 00 05 49 19 08 04 1d 11 05 00 4e 18 02 04 00
+63 32 33 1e 33 32 00 44 69 72 74 6f 79 50 6e 6f 20 63 63 63 32 32 32 0e 70
+04 2d 00 60 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DynomiteEP
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 13
+1f 0e 0f 0e 09 00 03 43 2d 0e 1f 0f 05 07 0f 16 43 5a 00 00 1f 12 06 08 0d
+00 03 63 04 00 1f 12 06 08 0f 00 02 63 04 06 34 14 00 01 02 4e 18 02 04 00
+63 32 00 32 00 32 00 44 79 6e 6f 6d 69 74 65 45 50 63 63 63 32 32 32 00 70
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Piano2
+
+
+** Name: E. Piano 3
+** Description: An electric piano
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+16 1d 12 03 0c 00 42 42 16 04 1c 0e 03 03 0f 14 43 4f 04 16 1b 13 01 01 0f
+4d 45 39 19 10 19 07 04 05 05 0a 42 63 04 13 19 1e 00 06 02 42 18 02 04 00
+28 32 00 00 00 32 00 45 2e 20 50 69 61 6e 6f 20 33 63 63 63 32 32 32 03 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 00 05 00 28 02 53 04 0b 1f 08 00 07 00 00 06 4e 0a 03 19 07 00 0f 00
+00 04 5f 04 08 19 05 15 08 00 00 06 5f 04 10 2c 19 00 03 00 62 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 00 05 00 28 01 53 04 0b 1f 08 00 07 00 00 01 4e 0a 03 19 07 00 0f 00
+00 00 5f 04 08 19 05 15 08 00 00 00 5f 04 10 2c 19 00 03 00 62 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 12 05 00 00 03 4e 16 0c 1f 07 0a 06 00 00 05 3d 1c 0a 1f 06 00 05 00
+00 06 5f 04 08 1b 06 0a 06 00 00 05 5c 04 0e 2c 14 00 05 00 62 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 12 05 00 00 02 4e 16 0c 1f 07 0a 06 00 00 02 3d 1c 0a 1f 06 00 05 00
+00 00 5f 04 08 1b 06 0a 06 00 00 00 5c 04 0e 2c 14 00 05 00 62 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 09 03 09 0f 63 05 59 0a 03 1a 08 02 05 0c 29 04 55 08 0b 1f 0b 09 06 0f
+00 04 5d 08 13 1d 08 06 08 0f 01 07 5f 04 0b 34 14 00 03 00 52 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 33 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 09 03 09 0f 63 02 59 0a 03 1a 08 02 05 0c 29 01 55 08 0b 1f 0b 09 06 0f
+00 00 5d 08 13 1d 08 06 08 0f 01 00 5f 04 0b 34 14 00 03 00 52 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 33 63 63 63 32 32 32 00 20
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 09 03 07 0f 63 04 56 04 03 1a 08 02 03 0c 29 05 57 0a 0b 1f 0b 09 04 0f
+00 06 5b 04 13 1d 08 06 06 0f 01 06 61 08 0b 2c 14 00 03 00 52 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 34 63 63 63 32 32 32 00 20
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 09 03 07 0f 63 01 56 04 03 1a 08 02 03 0c 29 01 57 0a 0b 1f 0b 09 04 0f
+00 00 5b 04 13 1d 08 06 06 0f 01 00 61 08 0b 2c 14 00 03 00 52 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 34 63 63 63 32 32 32 00 20
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 05 05 0e 63 04 4a 19 13 19 07 04 09 00 00 04 4b 0a 06 1f 08 05 05 00
+19 06 60 00 00 1d 08 01 06 0f 19 45 5c 00 02 0c 0f 00 00 20 66 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 35 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 05 05 0e 63 01 4a 19 13 19 07 04 09 00 00 01 4b 0a 06 1f 08 05 05 00
+19 00 60 00 00 1d 08 01 06 0f 19 40 5c 00 02 0c 0f 00 00 20 66 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 35 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 06 09 0d 39 04 56 04 0e 1c 0f 06 0c 0c 23 46 5d 04 1a 1c 06 06 0f 0d
+1e 45 60 04 00 1c 07 07 0b 0c 0b 46 62 04 06 2c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 2e 36 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 06 09 0d 39 01 56 04 0e 1c 0f 06 0c 0c 23 42 5d 04 1a 1c 06 06 0f 0d
+1e 40 60 04 00 1c 07 07 0b 0c 0b 40 62 04 06 2c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 2e 36 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 07 0c 0f 63 04 55 04 0d 18 0c 0d 07 0c 30 04 4d 0a 0d 1f 06 06 06 0f
+00 46 63 04 09 1f 0a 06 07 0f 01 06 5f 04 0c 24 17 00 00 27 0a 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 37 63 63 63 32 32 32 00 00
+00 30 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 07 0c 0f 63 01 55 04 0d 18 0c 0d 07 0c 30 01 4d 0a 0d 1f 06 06 06 0f
+00 41 63 04 09 1f 0a 06 07 0f 01 00 5f 04 0c 24 17 00 00 27 0a 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 37 63 63 63 32 32 32 00 00
+00 30 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 07 06 07 18 04 5b 04 03 1f 0a 07 06 0a 0c 04 63 04 0c 1f 06 0d 06 07
+0e 46 63 04 0b 1f 04 0f 06 09 0a 06 63 04 0b 0d 1f 00 00 20 0a 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 38 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 07 06 07 18 01 5b 04 03 1f 0a 07 06 0a 0c 00 63 04 0c 1f 06 0d 06 07
+0e 40 63 04 0b 1f 04 0f 06 09 0a 00 63 04 0b 0d 1f 00 00 20 0a 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 38 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 06 06 07 0e 63 06 46 10 04 1f 0f 06 03 0f 28 04 4c 04 0e 18 09 06 06 0e
+00 05 63 04 03 1c 0f 06 06 0f 0a 07 5e 04 05 2c 63 00 00 00 02 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 39 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano..9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 06 06 07 0e 63 01 46 10 04 1f 0f 06 03 0f 28 01 4c 04 0e 18 09 06 06 0e
+00 00 63 04 03 1c 0f 06 06 0f 0a 00 5e 04 05 2c 63 00 00 00 02 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 2e 39 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 09 05 0d 1e 04 58 04 04 18 16 0d 08 0e 28 04 3c 22 06 18 09 06 07 0e
+00 06 63 04 03 1c 0f 06 06 0f 0a 06 62 04 05 2c 63 00 00 00 02 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 09 05 0d 1e 01 58 04 04 18 16 0d 08 0e 28 01 3c 22 06 18 09 06 07 0e
+00 01 63 04 03 1c 0f 06 06 0f 0a 00 62 04 05 2c 63 00 00 00 02 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 06 03 07 0b 4b 05 4f 04 1b 1b 19 06 06 0d 63 06 51 2a 1b 16 09 06 06 0e
+00 05 61 04 03 1c 0f 04 06 0f 0a 06 5d 04 03 3c 63 00 00 00 02 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.11
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 06 03 07 0b 4b 01 4f 04 1b 1b 19 06 06 0d 63 01 51 2a 1b 16 09 06 06 0e
+00 01 61 04 03 1c 0f 04 06 0f 0a 00 5d 04 03 3c 63 00 00 00 02 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.12
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 01 09 09 03 4b 05 52 10 1c 1c 18 06 02 0a 63 05 63 08 13 1b 14 09 04 0e
+00 05 5a 04 05 1c 0f 06 06 0f 0a 06 62 00 03 24 00 00 00 00 02 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 32 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.12
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 01 09 09 03 4b 01 52 10 1c 1c 18 06 02 0a 63 01 63 08 13 1b 14 09 04 0e
+00 00 5a 04 05 1c 0f 06 06 0f 0a 00 62 00 03 24 00 00 00 00 02 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 31 32 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.13
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 07 03 07 0d 63 46 52 04 1e 1e 16 0a 05 0b 63 45 58 24 0a 1c 06 06 0f 0d
+1e 44 5c 04 08 1c 07 07 0b 0c 0b 05 63 04 06 3c 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.13
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 07 03 07 0d 63 42 52 04 1e 1e 16 0a 05 0b 63 41 58 24 0a 1c 06 06 0f 0d
+1e 40 5c 04 08 1c 07 07 0b 0c 0b 01 63 04 06 3c 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.14
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 09 07 07 0b 2c 44 41 1f 0b 1e 09 07 07 0b 63 46 5a 2a 13 18 09 07 07 0d
+00 44 61 04 03 1b 09 07 07 09 0a 06 62 04 0b 0c 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.14
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 09 07 07 0b 2c 42 41 1f 0b 1e 09 07 07 0b 63 42 5a 2a 13 18 09 07 07 0d
+00 41 61 04 03 1b 09 07 07 09 0a 01 62 04 0b 0c 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.15
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 09 07 07 0b 55 45 39 04 13 1e 09 07 07 0b 63 45 47 1f 13 1f 18 07 07 0d
+63 44 4f 08 1b 1b 09 07 07 09 0a 06 62 04 03 32 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 35 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.15
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 09 07 07 0b 55 42 39 04 13 1e 09 07 07 0b 63 41 47 1f 13 1f 18 07 07 0d
+63 41 4f 08 1b 1b 09 07 07 09 0a 01 62 04 03 32 22 00 00 1a 0a 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 35 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.16
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 11 07 07 0b 55 04 34 16 13 1e 09 07 07 0b 63 05 35 08 13 1f 09 07 07 0d
+63 04 32 08 13 1b 07 07 07 0b 0a 45 5a 04 03 70 22 00 00 27 06 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 36 63 63 63 32 32 32 00 10
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.16
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 11 07 07 0b 55 00 34 16 13 1e 09 07 07 0b 63 00 35 08 13 1f 09 07 07 0d
+63 00 32 08 13 1b 07 07 07 0b 0a 40 5a 04 03 70 22 00 00 27 06 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 36 63 63 63 32 32 32 00 10
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.17
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 06 08 0d 14 06 57 16 15 1c 0f 06 0c 0c 23 46 5a 04 09 1c 06 06 0f 0d
+1e 46 63 04 01 1c 04 04 0b 02 0b 45 5f 04 05 2c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.17
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 06 08 0d 14 04 57 16 15 1c 0f 06 0c 0c 23 41 5a 04 09 1c 06 06 0f 0d
+1e 41 63 04 01 1c 04 04 0b 02 0b 40 5f 04 05 2c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.18
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 06 04 01 0b 14 04 50 19 1d 16 0f 06 0c 0c 2d 44 44 04 01 18 06 06 0f 0d
+1e 46 63 08 01 19 07 07 0b 0c 0b 45 60 04 05 0c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 38 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.18
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 06 04 01 0b 14 01 50 19 1d 16 0f 06 0c 0c 2d 41 44 04 01 18 06 06 0f 0d
+1e 41 63 08 01 19 07 07 0b 0c 0b 40 60 04 05 0c 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 38 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.19
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 06 07 0f 32 04 37 2a 15 18 09 06 0a 0f 24 46 58 04 15 1f 09 06 09 0f
+1e 46 63 04 05 1f 0c 06 07 0f 0b 46 61 00 03 04 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 39 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.19
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 06 07 0f 32 01 37 2a 15 18 09 06 0a 0f 24 41 58 04 15 1f 09 06 09 0f
+1e 41 63 04 05 1f 0c 06 07 0f 0b 40 61 00 03 04 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 31 39 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.20
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 06 07 0f 32 07 39 1f 15 18 09 06 0a 0f 24 44 51 04 15 1f 09 06 09 0f
+1e 45 5f 08 05 1f 0c 06 07 0f 0b 46 5f 04 03 0e 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 32 30 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.20
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 06 07 0f 32 02 39 1f 15 18 09 06 0a 0f 24 40 51 04 15 1f 09 06 09 0f
+1e 40 5f 08 05 1f 0c 06 07 0f 0b 40 5f 04 03 0e 22 21 00 00 36 18 00 04 00
+63 63 00 00 00 32 00 45 20 50 69 61 6e 6f 2e 32 30 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.21
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 00 07 00 0d 01 3b 2a 0b 1f 08 00 07 00 00 01 59 04 03 1f 08 00 0a 00
+00 00 60 04 00 1f 08 11 07 00 00 00 5e 04 00 64 18 00 04 00 62 0c 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 32 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.22
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 00 06 00 0d 01 46 16 0b 1f 08 00 07 00 2d 01 5a 04 0b 1f 11 00 0f 00
+00 04 63 08 00 1f 08 15 08 01 00 04 63 04 08 1c 1b 00 04 00 52 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 32 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E Piano.22
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 00 06 00 0d 01 46 16 0b 1f 08 00 07 00 2d 01 5a 04 0b 1f 11 00 0f 00
+00 00 63 08 00 1f 08 15 08 01 00 00 63 04 08 1c 1b 00 04 00 52 18 01 04 00
+63 32 00 32 00 32 00 45 20 50 69 61 6e 6f 2e 32 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Piano 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 3
+1f 1f 11 0f 0f 00 46 43 31 10 1d 0b 12 06 0e 00 42 2a 28 12 1d 04 01 06 0e
+00 44 45 04 0c 1d 0c 04 08 0e 14 43 63 04 16 03 10 00 08 19 5a 18 02 04 00
+28 32 00 00 00 32 00 45 2e 50 69 61 6e 6f 20 20 31 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Piano 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 4
+1f 13 0a 09 04 00 06 49 0f 03 1f 1f 00 07 0f 0b 01 49 00 03 1f 0a 08 07 0c
+0c 02 31 04 03 18 1f 09 09 0f 06 02 60 00 03 02 23 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 45 2e 50 69 61 6e 6f 20 20 32 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: E.Piano 2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 0d 09 04 00 06 49 0f 03 1f 1f 00 07 0f 0b 01 49 00 03 1f 0d 08 07 0c
+0c 02 31 04 03 18 1f 09 09 0f 06 02 60 00 03 02 23 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 45 2e 50 69 61 6e 6f 20 20 32 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: El.Piano *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 06 07 0e 14 03 50 04 0e 1f 0f 0a 0b 0b 00 03 42 2d 0b 1f 1e 06 07 0e
+00 02 63 03 08 1f 07 07 0a 0b 00 02 63 04 0b 04 15 00 0a 00 32 05 02 04 00
+28 63 00 00 00 32 00 45 6c 2e 50 69 61 6e 6f 20 2a 63 63 63 32 32 32 00 18
+00 08 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Elec Grand
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 5
+1f 08 03 05 0d 00 02 44 04 0e 1f 04 02 05 0e 63 02 52 0a 00 1f 05 04 05 0d
+63 02 42 10 05 1c 1e 06 06 0f 00 03 63 04 13 3a 23 00 00 00 62 0c 02 04 00
+63 00 00 00 00 32 00 45 6c 65 63 20 47 72 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElecPiano4
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+16 0d 12 07 00 00 42 25 22 04 1c 1f 03 05 0f 14 43 51 04 16 1b 13 01 02 0f
+63 45 3b 19 18 19 07 04 06 05 0d 42 63 04 13 02 1e 00 06 02 42 18 02 04 00
+28 32 00 00 00 32 00 45 6c 65 63 50 69 61 6e 6f 34 63 63 63 32 32 32 03 50
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElecPiano5
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 0f 00 09 07 00 41 47 2d 06 0f 06 00 05 00 00 40 3e 04 00 1b 07 0a 08 07
+00 42 63 04 03 1e 07 00 08 00 00 42 63 09 06 3c 17 00 00 1d 3a 18 02 04 00
+28 32 00 00 00 32 00 45 6c 65 63 50 69 61 6e 6f 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 02 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElecPiano6
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 0f 00 09 07 00 41 52 2d 00 1f 0f 00 09 07 00 40 37 24 06 1b 07 0a 08 07
+00 42 63 03 00 1b 07 0a 08 07 00 42 63 02 06 3c 17 00 00 1d 3a 18 02 04 00
+28 32 00 00 00 32 00 45 6c 65 63 50 69 61 6e 6f 36 63 63 63 32 32 32 00 00
+00 00 00 01 00 02 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Electracou
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+18 0b 0a 0f 0d 28 02 4a 0a 0b 1a 12 00 0a 0f 07 00 4e 04 0b 17 0f 0e 05 09
+11 01 4e 0a 0b 1b 13 09 06 0e 00 00 63 04 0b 36 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 45 6c 65 63 74 72 61 63 6f 75 63 63 63 32 32 32 00 30
+00 00 00 70 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ElectroPno
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 11
+1f 06 04 07 0c 00 04 36 2a 10 1f 04 03 04 0d 00 03 54 04 16 1f 0d 08 07 0c
+00 44 63 04 0e 18 04 03 06 0d 00 43 63 04 13 04 14 08 02 1b 6a 0c 02 04 00
+63 32 00 00 00 32 00 45 6c 65 63 74 72 6f 50 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FadePiano
+** Description: Grand 2 with slowly fading sustain
+** Controls: KV
+** Source: Art Hitzeman
+1f 0e 04 03 09 29 07 4c 04 00 16 04 02 03 0d 63 02 4c 09 16 1f 10 03 03 0a
+63 02 4a 1c 15 17 04 01 05 0f 00 03 63 04 16 3a 1f 08 20 02 02 18 02 04 00
+28 63 00 00 00 32 00 46 61 64 65 50 69 61 6e 6f 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FingersGo!
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 01 04 03 00 1a 01 48 04 1d 16 07 03 04 0b 4c 04 52 0d 13 18 05 03 03 00
+41 02 47 1c 18 1a 06 03 06 0b 00 02 61 04 13 3a 23 00 00 00 02 18 02 04 00
+63 32 00 00 00 32 00 46 69 6e 67 65 72 73 47 6f 21 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FlatFlange
+** Description: a fuzzy, twangy electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0e 0f 0e 09 00 07 57 10 06 1f 11 03 0b 0a 43 02 53 08 13 1f 02 05 08 0e
+00 04 63 0a 03 1f 1f 08 08 0a 00 00 5a 04 03 00 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 46 6c 61 74 46 6c 61 6e 67 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fuzz Piano
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 6
+1f 11 0b 0f 00 00 04 63 15 16 1f 0b 00 0b 0f 58 07 51 04 06 1f 09 04 09 0a
+5f 07 47 2a 05 1f 07 04 0a 0d 00 03 63 04 00 5a 1b 32 02 00 62 0c 04 04 00
+63 16 00 00 00 32 00 46 75 7a 7a 20 50 69 61 6e 6f 63 63 63 32 32 32 08 70
+30 50 00 40 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FuzzPiano
+** Description: an electric piano with guitarish twang
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0e 0f 0e 09 00 03 4b 24 06 1f 11 03 0b 0e 43 03 51 08 13 1f 09 05 08 0e
+00 03 59 0a 03 1f 12 08 08 0a 00 03 62 04 03 31 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 46 75 7a 7a 50 69 61 6e 6f 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GaragePno
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 15 1f 03 0b 00 05 53 1e 03 1f 09 04 04 0c 0f 06 47 03 16 1f 04 09 04 0c
+0f 06 47 05 10 1f 1f 0a 06 0f 00 05 63 00 0b 03 1d 00 03 00 52 18 02 04 00
+63 1e 00 00 00 32 00 47 61 72 61 67 65 50 6e 6f 20 63 63 63 32 32 32 08 0d
+00 56 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassPiano
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 00 03 4b 04 02 1f 1f 00 0f 0f 00 05 42 24 06 0c 09 05 05 0f
+00 43 63 04 03 0c 0f 08 07 07 00 06 58 2a 04 6c 26 56 00 12 17 18 04 04 00
+28 32 00 00 00 32 00 47 6c 61 73 73 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Grand 2
+** Description: DX11 factory preset 'Grand PF' with slower decay
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 2b 03 4c 04 08 16 03 02 04 0c 63 02 4c 09 16 1f 07 03 04 0a
+63 02 4a 1c 15 17 16 06 04 0e 00 03 63 04 16 3a 1f 00 04 00 42 18 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 20 32 20 20 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Grand 3
+** Description: 'Grand 2' with more treble
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 21 03 4c 04 08 16 03 02 04 0c 46 02 4c 09 16 1f 07 03 04 0a
+46 02 4a 1c 15 17 16 06 04 0e 00 03 63 04 16 3a 1f 00 04 00 42 18 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 20 33 20 20 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Grand Low
+** Description: Grand 2 an octave lower
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 2b 03 4c 04 08 16 03 02 04 0c 63 02 4c 09 16 1f 07 03 04 0a
+63 02 4a 1c 15 17 16 06 04 0e 00 03 63 04 16 3a 1f 00 04 00 42 0c 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 20 4c 6f 77 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Grand PF
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 5
+1f 07 01 06 0e 2b 03 4c 04 08 16 03 02 06 0c 63 02 4c 09 16 1f 07 03 07 0a
+63 02 4a 1c 15 17 16 06 08 0e 00 03 63 04 16 3a 1f 00 04 00 42 18 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 20 50 46 20 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GrandLow2
+** Description: (similar to Grand low)
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 2b 03 4c 04 08 16 03 02 04 0c 63 02 4c 09 16 1f 07 03 04 0a
+63 02 4a 1c 15 17 06 03 04 0e 00 03 63 04 16 3a 1f 00 04 00 42 0c 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 4c 6f 77 32 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GrandLow3
+** Description: Grand Low with slower decay
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 2b 03 4c 04 08 16 03 02 04 0c 63 02 4c 0e 16 1f 07 03 04 0a
+63 02 4a 28 15 17 16 06 04 0e 00 03 63 04 16 3a 1f 00 04 00 42 05 02 04 00
+28 32 00 00 00 32 00 47 72 61 6e 64 4c 6f 77 33 20 63 63 63 32 32 32 00 08
+00 03 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GrandPiano
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 1
+1d 04 0c 06 00 34 01 4d 04 0d 1f 07 03 06 0c 5e 04 4d 0d 0b 18 05 03 06 00
+3d 01 4a 16 18 1f 08 03 06 0d 00 01 63 04 13 3a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 47 72 61 6e 64 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HappyPiano
+** Description: a cute electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0e 0f 0e 09 00 03 4b 24 06 1f 11 03 0b 0e 43 03 51 08 13 1f 12 05 08 0e
+00 03 59 0a 03 1f 12 08 08 0a 00 03 62 04 03 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 48 61 70 70 79 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HarpsPiano
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 03 19 06 00 13 02 43 04 13 1f 00 0c 06 0f 25 04 55 1f 0b 14 1f 1f 06 0b
+21 02 3d 16 1b 1f 1e 00 07 0f 00 02 63 04 13 62 20 00 00 00 42 18 02 04 00
+63 0e 00 00 00 32 00 48 61 72 70 73 50 69 61 6e 6f 63 63 63 32 32 32 00 60
+00 50 00 10 00 30 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hi-LowBell
+** Description: yet another electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 1b 0f 0e 0a 00 03 4e 1f 06 1f 09 00 0b 00 43 03 4d 04 13 1f 09 05 08 0e
+00 03 59 08 03 1f 12 08 08 0a 00 03 62 00 03 3c 1c 1d 10 00 62 18 01 04 00
+63 32 00 32 00 32 00 48 69 2d 4c 6f 77 42 65 6c 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: High&Long$
+** Description: a synthetic electric piano sound
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 0a 00 0e 09 00 03 58 24 06 1f 0e 03 0b 0e 43 03 55 04 13 1f 12 06 08 0e
+00 02 4b 04 03 1f 12 05 08 0a 00 03 62 04 03 04 1c 14 06 54 66 18 01 04 00
+63 32 00 32 00 32 00 48 69 67 68 26 4c 6f 6e 67 24 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HonkeyTonk
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 4
+18 01 01 03 00 00 02 30 17 0e 16 03 01 04 0c 3a 02 4e 05 16 18 1b 04 03 0d
+00 03 3d 1d 0d 14 08 01 05 0c 00 03 63 03 10 20 23 00 00 00 02 11 02 04 00
+63 32 00 00 00 32 00 48 6f 6e 6b 65 79 54 6f 6e 6b 63 63 63 32 32 32 00 42
+00 01 00 0b 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ivory *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 03 05 0d 00 02 48 04 16 1f 04 02 05 0e 42 05 47 0a 08 1f 05 04 05 0d
+51 02 48 10 0d 16 1e 06 06 0f 00 03 63 04 13 02 19 00 00 00 22 0c 02 04 00
+63 00 00 00 00 32 00 49 76 6f 72 79 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JazzyPiano
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 07 01 06 0e 2b 03 35 04 08 16 03 02 06 0c 4b 02 59 09 16 1f 07 03 07 0a
+5b 01 4d 19 15 17 16 06 08 0e 00 03 63 04 16 3a 1f 00 04 00 42 18 02 04 00
+28 32 00 00 00 32 00 4a 61 7a 7a 79 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MetalWhip
+** Description: electric piano / electric guitar mix
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0e 0f 0e 09 00 03 62 10 06 1f 11 03 0b 0e 43 03 51 08 13 1f 09 05 08 0e
+00 03 59 0a 03 1f 12 08 08 0a 00 03 62 04 03 31 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 4d 65 74 61 6c 57 68 69 70 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NewElectro
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 12
+1f 0e 0f 0e 09 00 03 29 2d 06 1f 0f 05 0b 0e 4e 02 5a 04 0b 1f 12 06 08 0e
+00 03 60 04 03 1f 12 06 08 0e 00 04 63 04 0b 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 4e 65 77 45 6c 65 63 74 72 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NewElectro
+** Description: still another electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0e 0f 0e 09 00 06 4b 24 06 1f 0e 03 0b 0e 43 02 55 04 13 1f 12 06 08 0e
+00 04 4e 04 03 1f 12 08 08 0a 00 03 62 04 03 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 4e 65 77 45 6c 65 63 74 72 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: NewElectro
+** Controls: KV
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 0e 0f 0e 09 00 07 4b 24 06 1f 0e 03 0b 0e 43 07 55 04 13 1f 12 06 08 0e
+00 07 4e 04 03 1f 12 08 08 0a 00 07 62 04 03 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 4e 65 77 45 6c 65 63 74 72 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Old Rose
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 2
+19 12 05 09 0a 25 41 54 04 05 19 0a 0a 09 0c 25 04 45 08 13 1f 13 00 09 03
+00 05 56 02 03 1a 1f 05 09 0f 00 43 60 04 09 32 19 00 00 00 5e 18 02 04 00
+28 09 0f 00 00 32 00 4f 6c 64 20 52 6f 73 65 20 20 63 63 63 32 32 32 00 30
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Old Rose
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 12 05 09 0d 25 41 54 04 05 19 0d 0a 09 0c 25 04 45 08 13 1f 13 00 09 03
+00 05 56 02 03 1a 1f 05 09 0f 00 43 60 04 09 32 19 00 00 00 5e 18 02 04 00
+28 09 0f 00 00 32 00 4f 6c 64 20 52 6f 73 65 20 20 63 63 63 32 32 32 00 30
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrganPiano
+** Description: Doesn't sound like either
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 1b 0f 0e 0a 00 02 4e 0a 06 1f 09 00 0b 00 43 02 4d 04 13 1f 09 05 08 0e
+00 02 59 08 03 1f 12 08 08 0a 00 02 62 04 03 3c 1c 1d 10 00 62 18 01 04 00
+63 32 00 32 00 32 00 4f 72 67 61 6e 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrganPiano
+** Description: a meek, organ-like electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 1b 0f 0e 0a 00 03 4e 0a 06 1f 09 00 0b 00 43 03 4d 04 13 1f 09 05 08 0e
+00 02 59 08 03 1f 12 08 08 0a 00 02 62 04 03 3c 1c 1d 10 00 62 18 01 04 00
+63 32 00 32 00 32 00 4f 72 67 61 6e 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Piano
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 09 00 04 0a 00 02 47 04 05 19 09 04 07 06 00 02 3b 0d 03 1e 16 02 06 0f
+00 05 63 08 04 1e 15 08 05 0d 00 05 5a 3e 0a 2c 1e 17 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Piano
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 09 00 04 0a 00 00 47 04 05 19 09 04 07 06 00 00 3b 0d 03 1e 16 02 06 0f
+00 00 63 08 04 1e 15 08 05 0d 00 00 5a 3e 0a 2c 1e 17 00 00 22 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PetalPiano
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 08 07 06 06 57 07 43 04 05 13 06 07 06 0a 00 00 3b 00 09 1d 08 07 06 0a
+00 00 57 00 00 13 05 07 06 03 00 02 63 00 0d 01 1c 08 04 00 32 24 02 04 00
+63 32 00 00 00 32 00 50 65 74 61 6c 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PhaseGrand
+** Description: another electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1d 17 02 0f 0a 52 00 47 0a 16 15 03 00 07 0e 35 04 4e 04 16 16 0f 00 02 0f
+4f 03 56 04 10 13 1d 01 03 0a 0c 05 63 04 1b 33 23 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 50 68 61 73 65 47 72 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianGuitar
+** Description: Cross between a piano and a guitar, sort of
+** Controls: KV
+** Source: Art Hitzeman
+1f 12 08 02 0b 39 02 4e 04 0b 1e 06 02 04 09 22 04 56 09 13 1f 0c 03 05 05
+27 05 46 1c 16 1e 05 03 05 09 00 02 5d 04 13 02 20 00 00 00 62 18 02 04 00
+28 32 00 00 00 32 00 50 69 61 6e 47 75 69 74 61 72 63 63 63 32 32 32 00 00
+00 02 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rag Piano
+** Description: A piano for those Scott Joplin pieces
+** Controls: KV, MW (LFO pitch)
+** Source: Art Hitzeman
+1f 07 01 03 0e 2b 03 4c 04 08 16 03 02 04 0c 63 02 4c 09 16 1f 07 03 04 0a
+63 02 4a 23 15 17 16 06 04 0e 19 03 63 04 16 0a 1f 00 04 00 42 13 02 04 00
+28 32 00 00 00 32 00 52 61 67 20 50 69 61 6e 6f 20 63 63 63 33 33 33 00 05
+00 0c 00 05 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RatRhodes
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 08 08 0a 2b 47 63 00 06 1f 18 02 06 0c 00 01 59 2c 0b 1f 19 04 05 0f
+04 46 63 00 13 1f 15 0a 05 0d 07 07 57 0f 10 04 14 16 07 0c 4a 18 02 04 00
+63 32 33 2f 27 32 00 52 61 74 52 68 6f 64 65 73 20 63 63 63 32 32 32 00 30
+0c 58 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Reed Piano
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 16
+1f 0d 10 0d 0c 00 04 27 08 13 1f 1f 00 09 0f 24 43 42 04 16 1f 06 07 0a 0d
+17 03 57 08 10 1f 09 02 07 0e 00 03 63 04 13 3b 17 00 00 11 5e 0c 04 04 00
+63 32 00 32 00 32 00 52 65 65 64 20 50 69 61 6e 6f 63 63 63 32 32 32 00 03
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Piano3
+
+** Name: Rhodes...1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0f 04 0f 00 01 2b 3f 06 1f 12 05 07 0e 4e 03 58 04 0b 1f 12 06 08 0e
+52 05 4a 08 0b 1f 12 06 08 0e 00 44 63 04 0b 38 14 00 00 10 66 0c 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0f 04 0f 00 01 2b 3f 06 1f 12 05 07 0e 4e 02 58 04 0b 1f 12 06 08 0e
+52 01 4a 08 0b 1f 12 06 08 0e 00 40 63 04 0b 38 14 00 00 10 66 0c 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 00 08 0c 00 01 57 04 1b 1c 09 06 08 0c 4e 01 37 2a 0b 1c 04 00 08 0c
+52 05 60 08 13 1c 07 07 08 0b 00 05 63 04 03 04 22 21 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 08 0c 00 01 57 04 1b 1c 09 06 08 0c 4e 01 37 2a 0b 1c 04 00 08 0c
+52 00 60 08 13 1c 07 07 08 0b 00 00 63 04 03 04 22 21 00 00 02 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 00 08 0c 00 02 47 04 03 1c 15 0c 08 0c 4e 03 63 31 0b 1c 04 00 08 0c
+00 05 5f 08 03 1c 1f 07 04 0b 00 05 62 04 0b 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 08 0c 00 02 47 04 03 1c 15 0c 08 0c 4e 01 63 31 0b 1c 04 00 08 0c
+00 01 5f 08 03 1c 1f 07 04 0b 00 00 62 04 0b 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 00 08 0c 00 03 48 08 03 1c 15 0c 08 0c 4e 03 58 31 0b 1c 04 00 08 0c
+00 05 5a 08 03 1c 1f 07 04 0b 00 04 62 08 0b 36 14 00 00 00 62 0c 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 08 0c 00 03 48 08 03 1c 15 0c 08 0c 4e 01 58 31 0b 1c 04 00 08 0c
+00 00 5a 08 03 1c 1f 07 04 0b 00 00 62 08 0b 36 14 00 00 00 62 0c 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 06 07 05 00 43 52 04 0e 1c 09 05 0b 0a 4e 45 61 2a 0b 1c 06 06 07 0c
+00 44 5f 04 08 1c 07 07 07 0b 00 45 63 04 0e 34 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 06 07 05 00 42 52 04 0e 1c 09 05 0b 0a 4e 45 61 2a 0b 1c 06 06 07 0c
+00 40 5f 04 08 1c 07 07 07 0b 00 42 63 04 0e 34 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 03 02 0d 00 43 51 04 1b 1f 0d 0a 06 0d 4e 43 55 24 0b 1f 06 08 07 0d
+00 45 5a 04 03 1f 0f 09 07 0d 00 45 61 04 0b 26 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 03 02 0d 00 41 51 04 1b 1f 0d 0a 06 0d 4e 41 55 24 0b 1f 06 08 07 0d
+00 40 5a 04 03 1f 0f 09 07 0d 00 40 61 04 0b 26 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...7
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 0a 09 05 01 00 01 3d 13 16 19 0a 09 05 02 00 02 63 00 0c 19 07 09 05 07
+13 04 63 0d 0e 19 07 09 05 07 13 44 63 04 0b 7e 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...7
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 0a 09 05 01 00 01 3d 13 16 19 0a 09 05 02 00 00 63 00 0c 19 07 09 05 07
+13 00 63 0d 0e 19 07 09 05 07 13 40 63 04 0b 7e 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...8
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 00 07 0d 00 02 4c 04 1e 1c 0f 0a 05 0b 5c 03 5f 24 14 1c 06 06 07 0d
+13 05 5b 04 06 1c 0f 09 07 0b 13 45 5f 04 03 7e 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...8
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 00 07 0d 00 00 4c 04 1e 1c 0f 0a 05 0b 5c 01 5f 24 14 1c 06 06 07 0d
+13 00 5b 04 06 1c 0f 09 07 0b 13 40 5f 04 03 7e 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 00 08 0c 00 01 54 04 1b 1c 09 06 08 0c 4e 03 42 2a 0b 1c 04 00 08 0c
+52 06 63 04 13 1c 07 07 08 0b 00 46 63 04 03 06 19 21 00 2c 06 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes...9
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 08 0c 00 01 54 04 1b 1c 09 06 08 0c 4e 00 42 2a 0b 1c 04 00 08 0c
+52 00 63 04 13 1c 07 07 08 0b 00 40 63 04 03 06 19 21 00 2c 06 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 04 00 08 0c 00 02 5b 04 1b 1c 09 06 08 0c 4e 03 57 24 1b 1c 04 00 08 0c
+52 04 63 04 13 1c 07 07 08 0b 00 44 63 04 03 07 19 21 00 2c 06 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 31 30 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 04 00 08 0c 00 02 5b 04 1b 1c 09 06 08 0c 4e 00 57 24 1b 1c 04 00 08 0c
+52 00 63 04 13 1c 07 07 08 0b 00 40 63 04 03 07 19 21 00 2c 06 18 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 31 30 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0f 04 0f 00 03 34 0d 0e 1f 12 05 0b 0e 4e 05 45 19 03 1f 12 06 08 0e
+52 04 45 04 03 1f 12 06 08 0e 00 06 63 04 03 3c 22 21 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..11
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0f 04 0f 00 01 34 0d 0e 1f 12 05 0b 0e 4e 01 45 19 03 1f 12 06 08 0e
+52 00 45 04 03 1f 12 06 08 0e 00 00 63 04 03 3c 22 21 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 52 68 6f 64 65 73 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..12
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 04 00 08 0c 00 44 59 08 06 1a 15 0c 08 0c 4e 45 62 24 0b 1a 04 00 08 0c
+00 44 63 04 00 1a 1f 07 04 0b 00 46 62 04 0b 37 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..12
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 04 00 08 0c 00 41 59 08 06 1a 15 0c 08 0c 4e 40 62 24 0b 1a 04 00 08 0c
+00 40 63 04 00 1a 1f 07 04 0b 00 40 62 04 0b 37 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..13
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 02 02 0d 00 44 3d 22 1b 1f 0d 07 06 0d 32 46 45 1f 13 1f 06 04 07 0d
+00 45 36 04 03 1f 0f 05 07 0d 00 45 5f 04 03 03 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 31 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rhodes..13
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 02 02 0d 00 41 3d 22 1b 1f 0d 07 06 0d 32 41 45 1f 13 1f 06 04 07 0d
+00 41 36 04 03 1f 0f 05 07 0d 00 40 5f 04 03 03 13 00 00 24 66 18 01 04 00
+63 32 00 32 00 32 00 52 68 6f 64 65 73 2e 2e 31 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SkoolPiano
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 7
+1d 01 04 03 00 1a 01 48 04 0d 16 01 03 04 0c 63 04 4e 0d 13 18 04 03 03 00
+56 01 44 16 18 1a 07 03 06 0d 00 01 61 04 13 3a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 53 6b 6f 6f 6c 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpacePiano
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 06 02 07 0d 00 05 3a 3a 13 1b 19 03 08 0b 00 45 63 2b 13 16 06 04 0c 0d
+00 44 62 04 0b 15 09 04 07 00 00 45 61 04 13 2c 19 00 00 51 66 18 04 04 00
+28 32 00 00 00 32 00 53 70 61 63 65 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SquareFlat
+** Description: a buzzy electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 1f 00 0e 0f 00 03 5c 04 06 1f 0e 03 0b 0e 43 03 55 04 13 1f 12 06 08 0e
+00 03 58 04 00 1f 12 08 08 0a 00 03 63 04 03 34 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 53 71 75 61 72 65 46 6c 61 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sus Piano
+** Description: Grand 2 with infinitely long sustain
+** Controls: KV
+** Source: Art Hitzeman
+1f 0e 03 03 09 29 07 4c 04 00 16 04 01 03 0d 63 02 4c 09 16 1f 10 02 03 0a
+63 02 4a 1c 15 17 04 00 05 0f 00 03 63 04 16 3a 1f 08 20 02 02 18 02 04 00
+28 63 00 00 00 32 00 53 75 73 20 50 69 61 6e 6f 20 63 63 63 32 32 32 00 00
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Thump Pno
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 8
+1f 11 0b 0f 00 00 03 41 05 16 1f 0b 04 04 0f 55 02 55 04 16 1f 09 04 09 0e
+3f 02 45 10 15 1f 09 07 07 0c 00 03 63 04 08 52 1d 13 00 00 52 0c 02 04 00
+63 16 00 00 00 32 00 54 68 75 6d 70 20 50 6e 6f 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Toy Piano
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 24
+1f 0f 0a 07 0c 27 02 50 0a 00 1f 0e 0a 09 0a 1a 02 4f 15 06 1d 10 0e 07 0e
+00 05 54 10 08 1d 10 0a 08 0a 00 01 60 08 0e 14 1a 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 54 6f 79 20 50 69 61 6e 6f 20 63 63 63 32 32 32 00 07
+00 07 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Toy Piano
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 0d 07 0c 27 02 50 0a 00 1f 0e 0a 09 0d 1a 02 4f 15 06 1d 10 0e 07 0e
+00 05 54 10 08 1d 10 0d 08 0d 00 01 60 08 0e 14 1a 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 54 6f 79 20 50 69 61 6e 6f 20 63 63 63 32 32 32 00 07
+00 07 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Upright *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 14 0a 0f 00 00 02 5e 0c 1b 17 0b 0a 0b 00 58 03 4e 0a 1c 1b 0a 10 01 00
+5e 01 50 00 0b 16 08 0a 06 00 1f 02 63 05 13 03 19 19 3c 00 42 05 02 04 00
+28 63 00 00 00 32 00 55 70 72 69 67 68 74 20 20 2a 63 63 63 32 32 32 08 7b
+00 00 00 14 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Upright
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 6
+16 1d 12 07 0c 00 42 42 07 04 1c 0e 03 05 0f 14 43 4f 04 16 1b 13 01 02 0f
+63 45 39 19 18 19 07 04 06 05 0a 42 63 04 13 1a 1e 00 06 02 42 18 02 04 00
+28 32 00 00 00 32 00 55 70 72 69 67 68 74 20 20 20 63 63 63 32 32 32 0b 02
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Upright
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 1d 12 07 0c 00 42 42 07 04 1c 0e 03 05 0f 14 43 4f 04 16 1b 13 01 02 0f
+63 45 39 19 18 19 07 04 06 05 0d 42 63 04 13 1a 1e 00 06 02 42 18 02 04 00
+28 32 00 00 00 32 00 55 70 72 69 67 68 74 20 20 20 63 63 63 32 32 32 0b 02
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: UprightBas
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 01 00 08 0d 16 02 4c 00 10 1f 08 05 07 0d 00 03 55 00 0e 1f 1c 03 07 0e
+13 02 50 00 10 1f 0e 05 06 0d 00 03 63 00 0b 3a 1b 0f 0a 00 52 0c 04 05 00
+63 4b 00 12 00 32 00 55 70 72 69 67 68 74 42 61 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Uprt piano
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 2
+13 02 01 04 0c 48 04 41 10 19 13 02 01 04 0c 45 03 59 04 10 13 02 01 04 0c
+48 03 4a 10 1d 13 02 01 04 0c 00 05 63 04 1b 3a 23 00 00 00 12 18 04 04 00
+63 32 00 00 00 32 00 55 70 72 74 20 70 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WiredPiano
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 04 03 09 1a 01 4a 04 1d 17 07 03 04 0b 0a 04 45 0d 13 19 05 03 03 0a
+41 02 46 22 18 1a 06 03 06 0b 00 02 61 04 13 3a 23 00 00 00 02 0c 02 04 00
+63 32 00 00 00 32 00 57 69 72 65 64 50 69 61 6e 6f 63 63 63 32 32 32 10 00
+00 00 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 15
+1f 0c 07 08 03 00 04 4d 04 03 1f 05 07 08 0f 00 04 50 04 0b 1f 09 00 08 00
+00 04 63 00 08 1f 09 00 08 00 00 03 63 00 0b 34 19 00 07 00 52 24 01 04 00
+63 32 00 32 00 32 00 57 6f 6f 64 20 50 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: britegrand
+** Description: another electric piano
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1d 17 02 0f 0a 07 00 4e 0a 16 15 03 00 07 0e 35 04 4e 04 16 16 0f 00 02 0f
+4f 03 56 04 10 13 1d 01 03 0a 0c 05 63 04 1b 33 23 00 00 00 62 18 02 04 00
+63 32 00 32 00 32 00 62 72 69 74 65 67 72 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: callipiano
+** Description: an electric piano with tremolo sustain
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 11 0f 0e 0a 00 03 52 0a 06 1f 01 00 0b 00 43 03 5a 04 13 1f 03 05 08 0f
+00 03 5a 0a 03 1f 12 08 08 0a 00 03 63 04 03 14 1c 1d 07 00 62 18 01 04 00
+63 32 00 32 00 32 00 63 61 6c 6c 69 70 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: flatfunk
+** Description: a percussive electric piano sound
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 11 0f 0e 0a 00 04 52 13 06 1f 01 00 0b 00 43 04 5a 04 13 1f 05 05 08 0e
+00 04 5a 00 03 1f 12 08 08 0a 00 04 63 04 03 10 1c 1d 10 00 62 18 01 04 00
+63 32 00 32 00 32 00 66 6c 61 74 66 75 6e 6b 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: fuzzbass
+** Description: a very fuzzy bass electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 05 00 0e 0a 00 03 59 00 06 1f 09 00 0b 00 43 03 4d 04 13 1f 09 05 08 0e
+00 03 5c 04 03 1f 12 08 08 0a 00 03 62 04 03 3c 1c 1d 10 00 52 18 01 04 00
+63 32 00 32 00 32 00 66 75 7a 7a 62 61 73 73 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: metlmarimb
+** Description: a metallic electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 0e 01 0e 0c 00 03 5a 0a 06 1f 09 00 0b 00 43 03 4d 04 13 1f 09 05 08 0e
+00 03 59 08 03 1f 12 08 08 0a 00 03 62 00 03 3c 1c 1d 06 00 62 18 01 04 00
+63 32 00 32 00 32 00 6d 65 74 6c 6d 61 72 69 6d 62 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: mildfilter
+** Description: a variation on SquareFlat
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 02 03 06 00 0e 03 54 08 1b 1f 0b 00 09 0c 00 00 3c 04 04 1f 06 00 09 01
+00 00 4b 04 03 1f 1c 04 09 0a 00 03 63 08 03 38 1e 09 04 00 62 0c 02 05 00
+63 32 00 32 00 32 00 6d 69 6c 64 66 69 6c 74 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: phaseharp
+** Description: yet another electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 07 00 0e 0a 00 07 62 0a 06 1f 09 00 0b 00 43 07 4d 04 13 1f 09 05 08 0e
+00 01 59 08 03 1f 12 08 08 0a 00 00 62 04 03 3c 1c 1d 10 00 52 18 01 04 00
+63 32 00 32 00 32 00 70 68 61 73 65 68 61 72 70 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: pizzapiano
+** Description: yet another electric piano
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+13 10 00 0e 0a 00 03 54 08 06 1f 09 00 0b 00 43 03 4d 04 13 1f 09 05 08 0e
+00 03 59 08 03 1f 12 08 08 0a 00 03 62 04 03 3c 1c 1d 10 00 52 18 01 04 00
+63 32 00 32 00 32 00 70 69 7a 7a 61 70 69 61 6e 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: stringback
+** Description: an electric piano with interesting decay
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+06 05 00 0e 0a 00 03 52 08 06 19 02 00 0b 00 43 03 57 0a 13 1f 09 05 08 0e
+00 03 59 08 03 1f 12 08 08 0a 00 03 62 04 03 3c 1c 1d 10 00 52 18 01 04 00
+63 32 00 32 00 32 00 73 74 72 69 6e 67 62 61 63 6b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 17
+
+* SUBCATEGORY Synthesizer1
+
+
+** Name: AnlgSynt.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 06 07 04 0a 23 04 52 08 0b 06 03 0c 06 0d 00 05 44 10 0c 12 01 06 06 0e
+00 05 63 04 05 06 06 09 06 0b 00 05 60 04 02 74 2a 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+05 06 07 04 0a 23 00 52 08 0b 06 03 0c 06 0d 00 00 44 10 0c 12 01 06 06 0e
+00 00 63 04 05 06 06 09 06 0b 00 00 60 04 02 74 2a 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 02 07 0c 04 5c 06 56 04 03 0f 03 03 08 0e 00 04 5f 04 06 1f 1f 00 0f 0f
+00 06 5f 04 03 1f 12 01 09 0e 00 05 5f 04 03 7c 2a 00 00 00 32 00 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 32 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 02 07 0c 04 5c 01 56 04 03 0f 03 03 08 0e 00 01 5f 04 06 1f 1f 00 0f 0f
+00 00 5f 04 03 1f 12 01 09 0e 00 00 5f 04 03 7c 2a 00 00 00 32 00 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 32 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 02 07 0c 04 5c 03 59 04 03 0f 03 03 08 0e 00 05 63 04 06 1f 1f 00 0f 0f
+00 07 63 04 03 1f 12 01 09 0e 00 06 5f 04 03 74 2a 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 33 63 63 63 32 32 32 00 10
+00 10 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 02 07 0c 04 5c 01 59 04 03 0f 03 03 08 0e 00 02 63 04 06 1f 1f 00 0f 0f
+00 00 63 04 03 1f 12 01 09 0e 00 00 5f 04 03 74 2a 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 33 63 63 63 32 32 32 00 10
+00 10 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 09 07 09 0a 5c 04 51 08 05 12 04 03 09 0c 00 05 51 08 00 1f 12 07 09 0e
+00 05 63 04 05 1b 09 0c 09 0a 00 06 54 04 00 7c 2a 00 00 00 42 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 34 63 63 63 32 32 32 00 10
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 09 07 09 0a 5c 01 51 08 05 12 04 03 09 0c 00 01 51 08 00 1f 12 07 09 0e
+00 00 63 04 05 1b 09 0c 09 0a 00 00 54 04 00 7c 2a 00 00 00 42 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 34 63 63 63 32 32 32 00 10
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0f 0f 09 0d 00 04 52 08 02 1e 04 06 0c 09 00 06 4d 0a 03 1f 09 07 09 0e
+00 05 61 04 04 1e 09 07 0a 0e 00 06 60 04 03 34 23 00 02 00 32 0c 02 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0f 0f 09 0d 00 01 52 08 02 1e 04 06 0c 09 00 01 4d 0a 03 1f 09 07 09 0e
+00 00 61 04 04 1e 09 07 0a 0e 00 00 60 04 03 34 23 00 02 00 32 0c 02 04 00
+63 63 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 02 07 0c 04 5c 05 53 04 03 1f 0f 03 08 0f 00 04 54 04 05 1f 1f 00 0f 0f
+00 06 63 04 03 1f 09 01 09 09 00 05 5f 04 01 6c 23 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 36 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 02 07 0c 04 5c 02 53 04 03 1f 0f 03 08 0f 00 01 54 04 05 1f 1f 00 0f 0f
+00 00 63 04 03 1f 09 01 09 09 00 00 5f 04 01 6c 23 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 36 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 03 08 05 5c 05 5d 04 00 1f 0a 06 08 07 00 05 52 04 06 18 07 04 08 05
+00 05 63 04 00 1f 15 06 08 0e 00 46 62 04 08 2c 20 00 00 47 36 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 37 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 03 08 05 5c 02 5d 04 00 1f 0a 06 08 07 00 01 52 04 06 18 07 04 08 05
+00 00 63 04 00 1f 15 06 08 0e 00 40 62 04 08 2c 20 00 00 47 36 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 37 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 0c 07 09 07 00 04 58 08 06 12 0c 07 09 0a 00 06 5b 04 03 1f 16 00 09 0d
+00 06 56 04 06 1f 16 00 09 0d 00 06 62 08 03 2c 20 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 0c 07 09 07 00 01 58 08 06 12 0c 07 09 0a 00 01 5b 04 03 1f 16 00 09 0d
+00 00 56 04 06 1f 16 00 09 0d 00 00 62 08 03 2c 20 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.9
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0c 09 03 0c 00 03 5a 08 06 0f 0c 09 04 0c 00 04 59 04 02 1f 15 05 03 0d
+00 05 56 04 0e 1f 15 05 05 0d 00 47 62 04 0e 2c 26 21 11 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 39 63 63 63 32 32 32 00 40
+00 20 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt.9
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0c 09 03 0c 00 01 5a 08 06 0f 0c 09 04 0c 00 01 59 04 02 1f 15 05 03 0d
+00 00 56 04 0e 1f 15 05 05 0d 00 40 62 04 0e 2c 26 21 11 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 2e 39 63 63 63 32 32 32 00 40
+00 20 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt10
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0d 12 03 06 00 03 52 04 00 0f 04 12 09 0c 00 06 4a 10 0a 0f 15 06 03 0e
+00 05 63 04 08 1f 15 06 05 0d 00 45 62 04 0e 3c 26 21 20 00 52 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 30 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt10
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0d 12 03 06 00 01 52 04 00 0f 04 12 09 0c 00 01 4a 10 0a 0f 15 06 03 0e
+00 00 63 04 08 1f 15 06 05 0d 00 40 62 04 0e 3c 26 21 20 00 52 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 30 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt11
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 03 12 07 06 00 04 50 04 00 10 0d 12 07 06 00 05 56 04 02 11 06 06 08 0e
+00 06 63 04 08 10 15 06 08 0e 00 06 62 04 0e 3c 26 1c 20 00 42 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt11
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 03 12 07 06 00 02 50 04 00 10 0d 12 07 06 00 01 56 04 02 11 06 06 08 0e
+00 00 63 04 08 10 15 06 08 0e 00 00 62 04 0e 3c 26 1c 20 00 42 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 31 63 63 63 32 32 32 00 00
+00 40 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt12
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 03 12 07 06 00 04 57 08 00 07 04 04 07 0d 00 04 56 0d 02 10 05 06 08 0e
+00 07 63 08 08 19 04 03 07 0f 00 06 62 04 04 2c 26 21 20 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt12
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 03 12 07 06 00 02 57 08 00 07 04 04 07 0d 00 03 56 0d 02 10 05 06 08 0e
+00 00 63 08 08 19 04 03 07 0f 00 00 62 04 04 2c 26 21 20 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt13
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 06 0a 0f 00 03 59 00 0b 1f 0c 06 0a 0b 00 04 63 00 02 1f 0c 05 0a 0b
+00 04 63 00 04 1f 16 02 0a 0f 00 06 62 00 02 2d 25 00 00 00 32 18 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 33 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt13
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 06 0a 0f 00 01 59 00 0b 1f 0c 06 0a 0b 00 00 63 00 02 1f 0c 05 0a 0b
+00 00 63 00 04 1f 16 02 0a 0f 00 00 62 00 02 2d 25 00 00 00 32 18 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 33 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt14
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 00 06 07 1b 03 58 04 09 1f 06 00 04 09 13 04 54 0d 0d 1f 07 00 07 07
+0b 05 63 08 09 1f 06 00 04 09 00 05 62 04 0d 2c 1c 00 05 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt14
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 00 06 07 1b 01 58 04 09 1f 06 00 04 09 13 02 54 0d 0d 1f 07 00 07 07
+0b 00 63 08 09 1f 06 00 04 09 00 00 62 04 0d 2c 1c 00 05 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt15
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 01 08 03 1b 03 63 00 09 1f 15 06 09 0f 00 05 57 04 01 1f 15 06 09 0f
+00 04 63 04 01 1f 15 06 09 0f 00 06 62 00 01 2c 1c 00 05 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AnlgSynt15
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 01 08 03 1b 01 63 00 09 1f 15 06 09 0f 00 01 57 04 01 1f 15 06 09 0f
+00 00 63 04 01 1f 15 06 09 0f 00 00 62 00 01 2c 1c 00 05 00 22 0c 02 04 00
+28 02 00 00 00 32 00 41 6e 6c 67 53 79 6e 74 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ariesynth1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 01 05 09 00 03 55 00 03 1f 03 00 05 06 2d 03 59 0d 0b 1f 08 00 04 0c
+43 05 63 13 0b 1c 06 04 04 07 00 05 63 08 0b 6d 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 41 72 69 65 73 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ariesynth1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 01 05 09 00 01 55 00 03 1f 03 00 05 06 2d 02 59 0d 0b 1f 08 00 04 0c
+43 00 63 13 0b 1c 06 04 04 07 00 00 63 08 0b 6d 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 41 72 69 65 73 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ariesynth2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 01 05 09 00 03 53 00 03 1f 03 00 05 06 2d 05 52 00 13 1f 08 00 04 0c
+43 05 55 00 0b 1c 06 04 05 07 00 07 63 04 0b 7a 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 41 72 69 65 73 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ariesynth2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 01 05 09 00 01 53 00 03 1f 03 00 05 06 2d 01 52 00 13 1f 08 00 04 0c
+43 00 55 00 0b 1c 06 04 05 07 00 00 63 04 0b 7a 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 41 72 69 65 73 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: A.R.P. *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 08 06 0d 00 00 4c 04 03 1f 07 00 04 0c 00 00 42 04 03 1f 04 00 02 0d
+00 00 42 04 03 1a 0c 00 08 0e 00 00 63 04 03 3a 21 00 00 00 52 0c 02 0d 1f
+28 63 00 00 00 32 00 20 20 41 2e 52 2e 50 2e 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2500
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 16 00 05 0e 0a 04 62 00 01 1f 0d 10 05 00 0e 05 3f 10 12 1f 0d 10 05 00
+0c 04 3a 0d 15 10 1f 00 0b 0f 00 0d 63 04 04 6d 14 00 36 00 22 18 04 04 01
+63 19 33 00 00 32 00 41 52 50 20 32 35 30 30 20 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2500
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 16 00 05 0e 0a 01 62 00 01 1f 0d 10 05 00 0e 01 3f 10 12 1f 0d 10 05 00
+0c 01 3a 0d 15 10 1f 00 0b 0f 00 00 63 04 04 6d 14 00 36 00 22 18 04 04 01
+63 19 33 00 00 32 00 41 52 50 20 32 35 30 30 20 20 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2600.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 08 02 03 03 00 05 60 04 04 10 05 06 08 03 00 25 63 0a 03 10 05 05 08 03
+00 1d 63 0a 04 10 05 05 08 03 00 3d 63 08 03 2d 23 00 00 00 42 0c 05 04 01
+63 32 00 00 00 32 00 41 52 50 20 32 36 30 30 2e 31 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2600.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 08 02 03 03 00 02 60 04 04 10 05 06 08 03 00 20 63 0a 03 10 05 05 08 03
+00 18 63 0a 04 10 05 05 08 03 00 38 63 08 03 2d 23 00 00 00 42 0c 05 04 01
+63 32 00 00 00 32 00 41 52 50 20 32 36 30 30 2e 31 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2600.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 16 00 05 0e 0a 03 63 04 01 1f 0d 10 05 00 0e 05 3c 10 12 1f 0d 10 05 00
+0c 05 35 13 15 10 1f 00 0b 0f 00 05 63 04 04 7f 14 00 36 00 22 18 04 04 00
+63 19 33 00 00 32 00 41 52 50 20 32 36 30 30 2e 32 63 63 63 32 32 32 00 50
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP 2600.2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 16 00 05 0e 0a 00 63 04 01 1f 0d 10 05 00 0e 00 3c 10 12 1f 0d 10 05 00
+0c 00 35 13 15 10 1f 00 0b 0f 00 00 63 04 04 7f 14 00 36 00 22 18 04 04 00
+63 19 33 00 00 32 00 41 52 50 20 32 36 30 30 2e 32 63 63 63 32 32 32 00 50
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Axxe.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 08 00 05 0f 14 04 5c 00 11 18 08 00 05 0f 14 03 5c 04 11 18 08 00 05 0f
+14 06 61 00 15 18 08 00 05 0f 14 05 63 04 15 6c 22 00 0b 00 62 0c 07 0d 01
+63 63 63 32 00 32 00 41 52 50 20 41 78 78 65 2e 31 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Axxe.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 08 00 05 0f 14 01 5c 00 11 18 08 00 05 0f 14 01 5c 04 11 18 08 00 05 0f
+14 00 61 00 15 18 08 00 05 0f 14 00 63 04 15 6c 22 00 0b 00 62 0c 07 0d 01
+63 63 63 32 00 32 00 41 52 50 20 41 78 78 65 2e 31 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Axxe.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 05 02 07 09 00 05 59 08 03 15 12 03 04 0d 00 04 54 08 01 18 07 05 07 0d
+00 05 63 04 06 0f 04 03 07 0d 00 06 63 04 06 64 1a 00 00 00 12 0c 06 0d 02
+28 32 00 00 00 32 00 41 52 50 20 41 78 78 65 2e 32 63 63 63 32 32 32 00 00
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Axxe.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 05 02 07 09 00 02 59 08 03 15 12 03 04 0d 00 02 54 08 01 18 07 05 07 0d
+00 00 63 04 06 0f 04 03 07 0d 00 00 63 04 06 64 1a 00 00 00 12 0c 06 0d 02
+28 32 00 00 00 32 00 41 52 50 20 41 78 78 65 2e 32 63 63 63 32 32 32 00 00
+00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Omni.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 00 05 0e 00 44 4e 08 02 0d 07 0e 06 06 0e 45 63 0d 04 0c 1f 00 06 0f
+52 46 63 19 04 0b 1f 06 08 0f 0a 46 63 08 03 35 23 08 10 06 56 0c 07 04 00
+63 63 00 00 00 32 00 41 52 50 20 4f 6d 6e 69 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Omni.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 00 05 0e 00 42 4e 08 02 0d 07 0e 06 06 0e 42 63 0d 04 0c 1f 00 06 0f
+52 40 63 19 04 0b 1f 06 08 0f 0a 40 63 08 03 35 23 08 10 06 56 0c 07 04 00
+63 63 00 00 00 32 00 41 52 50 20 4f 6d 6e 69 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Omni.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 03 1e 05 04 56 05 50 0d 06 0b 03 1e 05 04 23 03 4b 08 0d 0a 1f 01 08 0f
+15 05 57 08 08 0a 1f 00 05 0f 25 06 5b 08 01 54 22 05 0c 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 52 50 20 4f 6d 6e 69 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ARP Omni.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 03 1e 05 04 56 01 50 0d 06 0b 03 1e 05 04 23 01 4b 08 0d 0a 1f 01 08 0f
+15 00 57 08 08 0a 1f 00 05 0f 25 00 5b 08 01 54 22 05 0c 00 52 0c 0c 04 00
+63 32 00 00 00 32 00 41 52 50 20 4f 6d 6e 69 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Axel F
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+19 05 01 04 03 2c 00 48 04 0b 11 01 05 04 0c 3c 02 42 08 0b 19 04 05 05 0a
+20 01 48 1c 0c 11 13 05 04 0f 00 02 63 04 13 3a 1f 00 04 00 42 18 02 04 00
+28 32 00 00 00 32 00 41 78 65 6c 20 46 20 20 20 20 63 63 63 32 32 32 00 00
+00 40 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Axel F...1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 0d 02 06 0e 00 04 58 04 00 15 04 14 06 0c 00 05 5f 04 0a 13 15 03 06 0e
+00 05 63 04 08 15 15 06 06 0d 00 05 62 04 0e 34 26 21 20 47 12 0c 00 04 00
+63 32 00 32 00 32 00 41 78 65 6c 20 46 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Axel F...1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 0d 02 06 0e 00 01 58 04 00 15 04 14 06 0c 00 01 5f 04 0a 13 15 03 06 0e
+00 00 63 04 08 15 15 06 06 0d 00 00 62 04 0e 34 26 21 20 47 12 0c 00 04 00
+63 32 00 32 00 32 00 41 78 65 6c 20 46 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Axel F...2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 15 02 06 0e 00 03 5a 04 08 15 04 14 06 0c 00 04 5f 04 0a 15 15 03 06 0e
+00 06 63 04 08 15 15 06 06 0d 00 46 62 04 0e 2c 26 21 20 2b 16 0c 00 04 00
+63 32 00 32 00 32 00 41 78 65 6c 20 46 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Axel F...2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 15 02 06 0e 00 01 5a 04 08 15 04 14 06 0c 00 01 5f 04 0a 15 15 03 06 0e
+00 00 63 04 08 15 15 06 06 0d 00 40 62 04 0e 2c 26 21 20 2b 16 0c 00 04 00
+63 32 00 32 00 32 00 41 78 65 6c 20 46 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BadSample*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 00 01 00 00 00 43 3d 00 14 1f 00 01 0d 00 00 4a 0a 00 1f 0b 00 01 00
+00 00 46 13 06 14 1b 0b 07 0f 00 01 63 04 0b 00 63 00 17 63 7f 0c 02 04 00
+28 63 00 00 00 32 00 42 61 64 53 61 6d 70 6c 65 2a 63 63 63 32 32 32 09 40
+00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Beta.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 09 00 07 0d 20 45 54 08 0a 0d 08 01 05 0d 00 46 4e 00 0a 1c 00 00 04 0f
+00 46 2f 19 04 10 05 00 05 0f 00 45 54 08 0c 3a 23 00 05 30 62 00 05 04 00
+63 32 00 00 00 32 00 42 65 74 61 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Beta.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 09 00 07 0d 20 43 58 08 0a 0d 03 00 05 07 00 44 56 04 02 1c 00 00 04 0f
+00 46 45 0d 04 10 04 00 05 07 00 45 56 08 04 2b 23 00 05 30 62 00 05 04 00
+63 32 00 00 00 32 00 42 65 74 61 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BigWash
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 0e 05 00 18 02 54 13 10 1f 19 08 0a 0c 00 03 5c 13 0c 1f 05 00 02 00
+5e 04 52 24 11 1f 10 08 07 0e 00 04 63 0d 0b 02 1a 16 03 00 52 00 02 04 00
+63 28 00 1e 00 32 00 42 69 67 57 61 73 68 20 20 20 63 63 63 32 32 32 00 20
+20 30 10 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chroma...1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 1f 07 09 00 03 44 2a 03 15 16 03 04 0d 00 06 55 0d 01 18 19 07 07 0d
+00 03 63 04 06 0f 04 03 07 0d 00 05 63 04 06 64 1a 00 00 00 12 0c 04 04 00
+28 32 00 00 00 32 00 43 68 72 6f 6d 61 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chroma...2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 00 09 0a 00 02 5c 08 04 1f 13 1f 01 07 00 03 55 10 03 13 15 06 09 0d
+00 06 59 04 03 1f 09 0b 06 0c 00 04 63 04 0b 2c 21 17 02 0d 32 18 04 04 00
+28 32 00 00 00 32 00 43 68 72 6f 6d 61 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chroma...3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 06 03 08 0f 00 04 54 04 13 1f 0a 00 09 07 00 04 41 2a 1b 15 06 03 09 0f
+00 04 5c 04 13 1f 0a 00 09 0d 00 05 63 04 0b 34 23 00 00 00 12 18 04 04 00
+28 32 00 00 00 32 00 43 68 72 6f 6d 61 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Crazy 6502
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 09 04 07 0f 00 43 48 0a 08 10 09 04 07 0f 00 44 63 0d 0e 10 09 04 07 0f
+00 45 63 04 08 0f 03 01 07 0f 00 45 63 04 08 05 2c 00 63 63 37 24 04 04 00
+63 01 63 00 00 32 00 43 72 61 7a 79 20 36 35 30 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Crazy 6502
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 09 04 07 0f 00 40 48 0a 08 10 09 04 07 0f 00 40 63 0d 0e 10 09 04 07 0f
+00 40 63 04 08 0f 03 01 07 0f 00 40 63 04 08 05 2c 00 63 63 37 24 04 04 00
+63 01 63 00 00 32 00 43 72 61 7a 79 20 36 35 30 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DigiAnnie
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 32
+1f 0c 05 05 0c 17 02 53 0a 08 1f 11 02 05 0d 1e 02 45 04 00 1f 13 0e 05 0d
+32 01 3f 1f 06 1f 1f 08 06 0f 00 02 61 04 16 39 1d 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 44 69 67 69 41 6e 6e 69 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <> DS 1 <>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 02 0f 00 05 58 04 1e 17 1f 01 02 0f 0a 04 49 0d 03 19 1f 00 03 0f
+08 06 63 00 16 12 1f 00 01 0f 14 06 63 00 1b 34 00 00 00 00 02 0c 07 04 00
+63 63 00 32 00 32 00 3c 3e 20 44 53 20 31 20 3c 3e 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <> DS 1 <>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 00 02 0f 00 02 58 04 1e 17 1f 01 02 0f 0a 01 49 0d 03 19 1f 00 03 0f
+08 00 63 00 16 12 1f 00 01 0f 14 00 63 00 1b 34 00 00 00 00 02 0c 07 04 00
+63 63 00 32 00 32 00 3c 3e 20 44 53 20 31 20 3c 3e 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: < DS 11 >
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 02 0f 00 04 4f 04 1e 17 1f 01 02 0f 0a 04 3b 04 03 19 1f 00 03 0f
+08 04 63 00 16 12 1f 00 01 0f 14 07 63 10 1b 34 20 00 0a 00 02 0c 07 04 00
+63 63 00 32 00 32 00 3c 20 44 53 20 31 31 20 3e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: < DS 11 >
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 00 02 0f 00 00 4f 04 1e 17 1f 01 02 0f 0a 00 3b 04 03 19 1f 00 03 0f
+08 00 63 00 16 12 1f 00 01 0f 14 00 63 10 1b 34 20 00 0a 00 02 0c 07 04 00
+63 63 00 32 00 32 00 3c 20 44 53 20 31 31 20 3e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EML Synth1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 00 01 04 07 00 05 56 04 0e 0f 07 01 05 0b 00 06 52 04 08 13 07 00 06 0e
+00 04 60 00 03 13 05 00 06 0e 00 06 62 04 0b 7c 19 00 0c 00 42 18 07 04 00
+63 32 63 32 00 32 00 45 4d 4c 20 53 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EML Synth1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 00 01 04 07 00 02 56 04 0e 0f 07 01 05 0b 00 02 52 04 08 13 07 00 06 0e
+00 00 60 00 03 13 05 00 06 0e 00 00 62 04 0b 7c 19 00 0c 00 42 18 07 04 00
+63 32 63 32 00 32 00 45 4d 4c 20 53 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EML Synth2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 00 01 04 07 00 03 54 04 0e 0f 07 01 05 0b 00 02 5b 08 10 13 07 00 06 0e
+00 05 60 00 03 13 05 00 06 0e 00 05 62 08 0b 7c 19 00 0c 00 42 18 07 04 00
+63 32 63 32 00 32 00 45 4d 4c 20 53 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EML Synth2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 00 01 04 07 00 02 54 04 0e 0f 07 01 05 0b 00 01 5b 08 10 13 07 00 06 0e
+00 00 60 00 03 13 05 00 06 0e 00 00 62 08 0b 7c 19 00 0c 00 42 18 07 04 00
+63 32 63 32 00 32 00 45 4d 4c 20 53 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 09 07 07 0d 00 02 5a 00 09 0f 00 03 06 0d 00 03 63 04 05 15 09 07 07 0d
+00 07 63 04 0a 0f 00 03 06 0d 00 06 63 08 09 7e 23 30 00 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 09 07 07 0d 00 02 5a 00 09 0f 00 03 06 0d 00 00 63 04 05 15 09 07 07 0d
+00 00 63 04 0a 0f 00 03 06 0d 00 00 63 08 09 7e 23 30 00 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 09 07 07 0d 00 05 63 19 09 0f 00 03 06 0d 00 04 52 08 00 15 09 07 07 0d
+00 06 41 00 0e 13 00 03 06 0d 00 05 63 04 0b 77 17 00 0b 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 09 07 07 0d 00 00 63 19 09 0f 00 03 06 0d 00 00 52 08 00 15 09 07 07 0d
+00 00 41 00 0e 13 00 03 06 0d 00 00 63 04 0b 77 17 00 0b 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 09 07 07 0d 00 02 51 08 0c 0f 00 04 06 0d 00 04 63 08 0a 15 09 07 07 0d
+00 04 63 04 0d 0f 00 04 06 0d 00 06 63 0d 08 7e 17 00 0b 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explorer.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 09 07 07 0d 00 02 51 08 0c 0f 00 04 06 0d 00 00 63 08 0a 15 09 07 07 0d
+00 00 63 04 0d 0f 00 04 06 0d 00 00 63 0d 08 7e 17 00 0b 00 22 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 72 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FMMelodica
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0c 00 0a 0d 20 44 50 0a 09 11 0c 00 0a 0d 20 44 50 0a 03 11 05 00 0a 0f
+00 43 63 04 01 11 05 00 09 0f 00 43 63 04 0b 44 21 15 03 05 5e 11 04 04 00
+63 1e 55 00 00 32 00 46 4d 4d 65 6c 6f 64 69 63 61 63 63 63 32 32 32 00 40
+00 40 00 28 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gamma....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 06 00 02 0e 14 03 5c 04 06 08 1f 00 02 0f 00 44 47 08 13 06 1f 00 04 0f
+4e 04 3c 0d 03 10 06 00 05 0e 00 06 5f 08 0b 72 21 1d 0e 1a 56 0c 08 04 00
+63 32 00 00 00 32 00 47 61 6d 6d 61 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gamma....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 06 00 02 0e 14 05 52 08 06 0c 1f 00 02 0f 00 45 3b 08 13 0a 1f 00 04 0f
+4e 05 4c 10 03 10 06 00 05 0e 00 06 5f 04 0b 6a 21 1d 0e 1a 56 0c 08 04 01
+63 32 00 00 00 32 00 47 61 6d 6d 61 2e 2e 2e 2e 32 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 18
+
+** Name: GleeSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 03 09 06 0e 0a 03 52 08 14 0c 04 07 06 0c 00 04 42 19 08 15 04 02 05 0e
+00 05 63 08 06 0b 15 0c 06 0f 00 45 5e 19 08 2c 26 21 08 47 26 00 02 04 00
+28 02 00 00 00 32 00 47 6c 65 65 53 79 6e 74 68 20 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GleeSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 03 09 06 0e 0a 01 52 08 14 0c 04 07 06 0c 00 01 42 19 08 15 04 02 05 0e
+00 00 63 08 06 0b 15 0c 06 0f 00 40 5e 19 08 2c 26 21 08 47 26 00 02 04 00
+28 02 00 00 00 32 00 47 6c 65 65 53 79 6e 74 68 20 63 63 63 32 32 32 00 10
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HardSync
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 00 00 05 0c 00 00 44 05 06 1b 05 00 0a 0e 00 01 4f 0a 0a 18 07 00 08 0e
+3b 02 43 20 09 15 0a 00 0b 0f 00 01 63 04 0b 72 1d 08 00 00 52 05 04 04 01
+63 41 00 00 00 32 00 48 61 72 64 53 79 6e 63 20 20 63 63 63 32 32 32 00 51
+00 50 00 71 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Helix....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 1f 00 03 0f 63 04 58 08 03 08 0e 00 05 01 00 04 63 04 02 07 04 0c 06 07
+3c 05 61 0d 0c 08 1f 01 05 0f 00 07 62 00 13 75 22 00 14 00 32 0c 04 04 00
+63 01 63 00 00 32 00 48 65 6c 69 78 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Helix....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 1f 00 03 0f 63 02 58 08 03 08 0e 00 05 01 00 00 63 04 02 07 04 0c 06 07
+3c 00 61 0d 0c 08 1f 01 05 0f 00 00 62 00 13 75 22 00 14 00 32 0c 04 04 00
+63 01 63 00 00 32 00 48 65 6c 69 78 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Helix....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 1f 00 03 0f 63 05 5f 08 03 08 07 00 05 08 00 06 53 00 02 07 04 0c 06 07
+3c 05 61 0d 0c 08 1f 01 05 0f 00 06 63 04 13 6c 22 00 14 00 32 0c 04 04 00
+63 01 63 00 00 32 00 48 65 6c 69 78 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Helix....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 1f 00 03 0f 63 02 5f 08 03 08 07 00 05 08 00 01 53 00 02 07 04 0c 06 07
+3c 00 61 0d 0c 08 1f 01 05 0f 00 00 63 04 13 6c 22 00 14 00 32 0c 04 04 00
+63 01 63 00 00 32 00 48 65 6c 69 78 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ ISAO \
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 17 1b 01 0e 00 42 39 04 0b 0f 00 03 05 0d 00 03 2e 08 0b 0f 00 03 05 0d
+00 45 63 08 0b 10 00 03 05 0d 00 06 63 04 0b 2c 1b 00 3c 63 26 18 02 04 01
+63 32 00 32 00 32 00 20 5c 20 49 53 41 4f 20 5c 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ ISAO \
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 17 1b 01 0e 00 40 39 04 0b 0f 00 03 05 0d 00 00 2e 08 0b 0f 00 03 05 0d
+00 40 63 08 0b 10 00 03 05 0d 00 00 63 04 0b 2c 1b 00 3c 63 26 18 02 04 01
+63 32 00 32 00 32 00 20 5c 20 49 53 41 4f 20 5c 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ ISAO \
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+18 17 1b 00 0e 00 40 39 04 0b 0f 00 03 05 0d 00 00 2e 08 0b 0f 00 03 05 0d
+00 40 63 08 0b 10 00 03 05 0d 00 00 63 04 0b 2c 1b 00 3c 63 26 18 02 04 01
+63 32 00 32 00 32 00 20 5c 20 49 53 41 4f 20 5c 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JP 4.....1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 05 01 05 08 00 04 51 0a 03 18 09 00 05 0b 2d 04 60 00 13 14 08 00 03 0c
+43 05 63 04 1b 18 08 04 04 07 00 06 63 04 13 7c 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 4a 50 20 34 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JP 4.....1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 05 01 05 08 00 01 51 0a 03 18 09 00 05 0b 2d 01 60 00 13 14 08 00 03 0c
+43 00 63 04 1b 18 08 04 04 07 00 00 63 04 13 7c 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 4a 50 20 34 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JP 4.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 08 03 05 0f 00 03 54 04 06 16 0a 0a 05 0d 00 05 54 0d 03 16 09 01 06 0f
+00 07 63 04 00 16 15 01 06 0d 00 07 59 00 05 3c 25 49 0f 00 32 0c 0c 04 00
+63 00 00 00 00 32 00 4a 50 20 34 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: JP 4.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 08 03 05 0f 00 01 54 04 06 16 0a 0a 05 0d 00 03 54 0d 03 16 09 01 06 0f
+00 04 63 04 00 16 15 01 06 0d 00 00 59 00 05 3c 25 49 0f 00 32 0c 0c 04 00
+63 00 00 00 00 32 00 4a 50 20 34 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Juno Juice
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 0a 05 03 0f 00 02 4e 03 02 1f 0e 00 03 0f 00 01 50 05 01 15 0e 00 07 0f
+00 02 63 03 01 16 0e 00 07 0f 00 02 63 05 06 3c 20 00 00 00 52 05 02 04 00
+63 32 00 00 00 32 00 4a 75 6e 6f 20 4a 75 69 63 65 63 63 63 32 32 32 00 06
+00 31 00 56 00 11 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Juno Who?
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 00 03 0f 00 01 4a 03 02 1f 0e 00 03 0f 00 01 50 05 01 15 0e 00 07 0f
+00 02 63 03 01 16 0e 00 07 0f 00 02 63 05 06 3c 20 00 00 00 52 05 02 04 00
+63 32 00 00 00 32 00 4a 75 6e 6f 20 57 68 6f 3f 20 63 63 63 32 32 32 00 26
+00 31 00 56 00 11 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jupiter *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 04 0f 35 00 3d 22 02 1f 00 00 04 0f 19 00 41 0d 05 1f 00 00 04 0f
+3b 00 41 18 06 0c 0a 00 05 0e 00 40 63 0d 0c 01 1e 0c 0f 05 56 00 02 04 00
+28 63 00 00 00 32 00 4a 75 70 69 74 65 72 20 20 2a 63 63 63 32 32 32 00 0f
+00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ Kitaro.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1f 04 07 0f 00 02 4f 00 06 17 0c 06 09 0f 00 01 5a 00 16 14 1f 04 09 0f
+00 06 63 04 06 18 1f 00 0d 0f 00 06 56 04 03 7c 29 00 05 00 22 18 05 04 00
+63 63 63 00 00 32 00 5c 20 4b 69 74 61 72 6f 2e 31 63 63 63 32 32 32 00 00
+00 30 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ Kitaro.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1f 04 07 0f 00 02 4f 00 06 17 0c 06 09 0f 00 01 5a 00 16 14 1f 04 09 0f
+00 00 63 04 06 18 1f 00 0d 0f 00 00 56 04 03 7c 29 00 05 00 22 18 05 04 00
+63 63 63 00 00 32 00 5c 20 4b 69 74 61 72 6f 2e 31 63 63 63 32 32 32 00 00
+00 30 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ Kitaro.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 09 09 0f 00 3c 52 0a 02 08 04 03 09 0f 00 1d 55 04 02 1f 0f 09 09 0f
+00 1d 63 04 04 1f 0f 09 09 0f 00 3e 63 04 04 64 1f 1c 14 00 32 18 02 04 00
+63 32 00 00 00 32 00 5c 20 4b 69 74 61 72 6f 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: \ Kitaro.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 09 09 0f 00 3a 52 0a 02 08 04 03 09 0f 00 1a 55 04 02 1f 0f 09 09 0f
+00 18 63 04 04 1f 0f 09 09 0f 00 38 63 04 04 64 1f 1c 14 00 32 18 02 04 00
+63 32 00 00 00 32 00 5c 20 4b 69 74 61 72 6f 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 07 02 0f 47 04 35 04 05 0a 1f 02 02 0f 00 45 43 04 02 0a 1f 02 04 0f
+4e 05 55 04 0c 0a 1f 02 05 0f 00 06 60 08 1b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 07 02 0f 47 00 35 04 05 0a 1f 02 02 0f 00 40 43 04 02 0a 1f 02 04 0f
+4e 00 55 04 0c 0a 1f 02 05 0f 00 00 60 08 1b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 07 02 0f 47 03 48 04 05 0f 1f 00 08 0f 00 46 62 04 02 0f 1f 00 08 0f
+00 05 63 04 04 0f 1f 00 08 0f 00 04 60 08 03 7d 21 1d 0e 1a 56 0c 06 0d 02
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 07 02 0f 47 00 48 04 05 0f 1f 00 08 0f 00 40 62 04 02 0f 1f 00 08 0f
+00 00 63 04 04 0f 1f 00 08 0f 00 00 60 08 03 7d 21 1d 0e 1a 56 0c 06 0d 02
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0a 07 09 0e 4d 03 4f 04 03 12 1f 00 0a 0f 00 05 39 04 03 12 1f 00 0a 0f
+4b 05 38 04 03 12 1f 00 0a 0f 01 07 5f 04 03 3b 1e 05 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Korg 770.3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 0a 07 09 0e 4d 00 4f 04 03 12 1f 00 0a 0f 00 00 39 04 03 12 1f 00 0a 0f
+4b 00 38 04 03 12 1f 00 0a 0f 01 00 5f 04 03 3b 1e 05 0a 00 62 0c 02 04 00
+63 32 00 00 00 32 00 4b 6f 72 67 20 37 37 30 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Synthesizer2
+
+** Name: Lambda...1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 06 04 04 0f 00 04 41 08 01 1f 0e 05 05 09 00 07 4a 13 04 09 06 00 05 0f
+00 06 5f 08 06 1f 11 08 05 0f 00 06 61 04 00 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 06 04 04 0f 00 01 41 08 01 1f 0e 05 05 09 00 02 4a 13 04 09 06 00 05 0f
+00 00 5f 08 06 1f 11 08 05 0f 00 00 61 04 00 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 0c 09 05 0d 00 03 45 10 03 1f 0b 0a 08 0c 00 04 54 04 03 0b 0c 09 05 0d
+00 06 5f 04 03 1f 04 09 08 0f 00 06 5f 00 03 74 23 00 00 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 0c 09 05 0d 00 01 45 10 03 1f 0b 0a 08 0c 00 01 54 04 03 0b 0c 09 05 0d
+00 00 5f 04 03 1f 04 09 08 0f 00 00 5f 00 03 74 23 00 00 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 10 03 09 0f 00 05 47 0d 00 1f 14 05 05 09 00 04 4d 13 16 07 10 03 09 0f
+00 05 5c 0d 03 1f 14 08 05 0f 00 05 63 04 02 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 33 63 63 63 32 32 32 00 40
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 10 03 09 0f 00 02 47 0d 00 1f 14 05 05 09 00 01 4d 13 16 07 10 03 09 0f
+00 00 5c 0d 03 1f 14 08 05 0f 00 00 63 04 02 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 33 63 63 63 32 32 32 00 40
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 10 03 0d 0f 00 03 4c 08 00 1f 14 05 04 09 00 03 4d 0d 16 07 10 03 0e 0f
+00 06 5c 08 03 1f 14 08 04 0f 00 03 63 08 02 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...4
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 10 03 0d 0f 00 01 4c 08 00 1f 14 05 04 09 00 01 4d 0d 16 07 10 03 0e 0f
+00 00 5c 08 03 1f 14 08 04 0f 00 00 63 08 02 44 23 2f 19 00 32 18 07 04 00
+63 32 63 32 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 03 03 05 08 00 03 55 08 00 18 06 09 05 09 00 04 51 04 06 05 10 03 05 0f
+00 07 63 08 03 18 06 09 05 09 00 06 63 04 03 24 21 23 0f 00 12 18 05 04 00
+63 63 63 00 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 35 63 63 63 32 32 32 00 20
+00 10 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lambda...5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+05 03 03 05 08 00 02 55 08 00 18 06 09 05 09 00 01 51 04 06 05 10 03 05 0f
+00 00 63 08 03 18 06 09 05 09 00 00 63 04 03 24 21 23 0f 00 12 18 05 04 00
+63 63 63 00 00 32 00 4c 61 6d 62 64 61 2e 2e 2e 35 63 63 63 32 32 32 00 20
+00 10 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 07 0f 00 03 54 08 03 07 0d 04 0a 0f 00 04 59 0a 03 1f 03 03 09 0c
+00 06 62 0a 03 0f 0d 05 0f 0f 00 05 63 0a 03 34 23 15 05 63 26 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 07 0f 00 01 54 08 03 07 0d 04 0a 0f 00 01 59 0a 03 1f 03 03 09 0c
+00 00 62 0a 03 0f 0d 05 0f 0f 00 00 63 0a 03 34 23 15 05 63 26 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 15 06 0a 0e 00 04 4b 28 0b 1b 0a 09 0f 0e 00 04 5c 04 0b 1f 03 0a 09 0c
+00 06 62 08 13 18 09 06 0a 0e 00 05 63 04 03 2c 23 15 05 63 26 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 15 06 0a 0e 00 01 4b 28 0b 1b 0a 09 0f 0e 00 01 5c 04 0b 1f 03 0a 09 0c
+00 00 62 08 13 18 09 06 0a 0e 00 00 63 04 03 2c 23 15 05 63 26 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 50 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 07 0f 0f 00 03 45 04 06 1f 1f 0a 0f 0f 00 04 5b 00 0c 1f 04 00 0f 0f
+00 06 5f 04 03 1f 1f 00 0f 0f 00 05 63 04 05 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 07 0f 0f 00 01 45 04 06 1f 1f 0a 0f 0f 00 02 5b 00 0c 1f 04 00 0f 0f
+00 00 5f 04 03 1f 1f 00 0f 0f 00 00 63 04 05 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 07 0f 0f 2e 03 5a 04 06 1c 1f 03 0f 0f 2c 04 5b 00 0c 1f 04 00 0f 0f
+00 05 5f 04 03 16 1f 00 0f 0f 00 06 63 04 05 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 07 0f 0f 2e 01 5a 04 06 1c 1f 03 0f 0f 2c 01 5b 00 0c 1f 04 00 0f 0f
+00 00 5f 04 03 16 1f 00 0f 0f 00 00 63 04 05 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 15 06 0a 0e 2a 03 4a 22 06 1b 09 09 0f 0d 3a 04 63 04 0c 18 09 04 0a 0e
+00 06 63 04 03 18 09 06 0a 0e 01 06 5e 0d 12 6c 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 15 06 0a 0e 2a 01 4a 22 06 1b 09 09 0f 0d 3a 00 63 04 0c 18 09 04 0a 0e
+00 00 63 04 03 18 09 06 0a 0e 01 00 5e 0d 12 6c 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 09 03 06 07 2a 05 62 04 03 18 10 06 07 0b 3a 05 63 04 0b 15 1f 1c 0f 00
+00 05 63 04 03 15 06 06 0a 0c 01 05 63 04 03 6c 23 00 00 00 42 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 09 03 06 07 2a 01 62 04 03 18 10 06 07 0b 3a 00 63 04 0b 15 1f 1c 0f 00
+00 00 63 04 03 15 06 06 0a 0c 01 00 63 04 03 6c 23 00 00 00 42 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 0f 07 06 09 42 03 57 0d 02 18 0b 09 07 0b 32 06 63 04 03 18 1f 00 0f 0f
+00 05 63 04 05 1f 06 06 0a 0c 01 05 63 04 03 5c 23 00 00 00 42 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 37 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 0f 07 06 09 42 01 57 0d 02 18 0b 09 07 0b 32 01 63 04 03 18 1f 00 0f 0f
+00 01 63 04 05 1f 06 06 0a 0c 01 00 63 04 03 5c 23 00 00 00 42 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 37 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 07 05 09 0f 42 03 56 08 06 1f 16 00 08 0e 00 05 63 04 03 1f 16 00 08 0e
+00 04 63 04 03 1f 16 00 08 0e 00 06 63 04 03 6d 25 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 38 63 63 63 32 32 32 00 20
+00 20 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LeadSynth8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 07 05 09 0f 42 02 56 08 06 1f 16 00 08 0e 00 00 63 04 03 1f 16 00 08 0e
+00 00 63 04 03 1f 16 00 08 0e 00 00 63 04 03 6d 25 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4c 65 61 64 53 79 6e 74 68 38 63 63 63 32 32 32 00 20
+00 20 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Luna.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 07 00 05 0e 00 44 4c 04 00 05 07 00 05 0e 0e 45 52 04 06 0c 1f 00 06 0f
+00 05 63 04 00 0c 1f 00 07 0f 0a 06 63 08 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 4c 75 6e 61 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 10
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Luna.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 07 00 05 0e 00 04 51 00 00 0c 03 00 05 08 0e 04 40 13 06 0c 1f 00 06 0f
+00 05 60 04 00 0c 1f 00 07 0f 0a 06 5e 00 06 2c 22 00 0f 00 42 18 07 04 00
+63 63 00 00 00 32 00 4c 75 6e 61 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Luna.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 07 00 05 0e 00 44 4b 08 00 0c 07 00 05 0e 0e 45 52 0a 06 05 1f 00 06 0f
+00 05 63 08 00 0c 1f 00 07 0f 0a 06 4b 0a 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 4c 75 6e 61 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lyrisyn
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 20
+10 06 00 05 0e 00 01 50 0a 04 1f 04 00 05 0f 00 01 51 04 02 1f 0b 00 0a 0f
+00 01 35 08 03 10 1f 00 0a 0f 00 02 63 04 03 30 1e 00 00 00 52 18 04 04 00
+63 32 00 00 00 32 00 4c 79 72 69 73 79 6e 20 20 20 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MaxiKorg.1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 07 0f 63 00 53 04 06 1f 1f 00 07 0f 00 00 63 00 02 1f 1f 00 07 0f
+3c 00 61 08 04 1f 1f 00 07 0f 00 00 62 04 03 75 22 00 14 00 32 0c 06 0d 01
+63 01 63 00 00 32 00 4d 61 78 69 4b 6f 72 67 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MaxiKorg.2
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 08 0f 00 03 54 00 06 17 1f 00 07 0f 00 06 4b 04 02 1f 1f 00 08 0f
+00 04 61 08 04 15 1f 00 08 0f 00 45 62 08 03 74 1e 00 0e 35 56 18 06 05 00
+63 01 63 00 00 32 00 4d 61 78 69 4b 6f 72 67 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MaxiKorg.2
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 08 0f 00 00 54 00 06 17 1f 00 07 0f 00 00 4b 04 02 1f 1f 00 08 0f
+00 00 61 08 04 15 1f 00 08 0f 00 40 62 08 03 74 1e 00 0e 35 56 18 06 05 00
+63 01 63 00 00 32 00 4d 61 78 69 4b 6f 72 67 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MicroMoog1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 03 01 07 0d 27 05 4b 0a 0d 14 05 01 05 0f 00 05 56 04 0c 15 04 00 0a 0d
+11 06 50 08 09 17 05 00 0a 02 27 06 5a 08 05 61 24 00 04 00 42 0c 02 0d 11
+63 63 00 00 00 32 00 4d 69 63 72 6f 4d 6f 6f 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MicroMoog1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 03 01 07 0d 27 02 4b 0a 0d 14 05 01 05 0f 00 02 56 04 0c 15 04 00 0a 0d
+11 00 50 08 09 17 05 00 0a 02 27 00 5a 08 05 61 24 00 04 00 42 0c 02 0d 11
+63 63 00 00 00 32 00 4d 69 63 72 6f 4d 6f 6f 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MicroMoog2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 01 01 05 0d 27 02 4d 00 03 14 02 01 05 0f 00 04 4e 00 03 15 01 00 05 0d
+11 05 58 08 03 17 02 00 05 02 27 07 63 08 03 78 24 00 04 00 42 0c 02 0c 11
+63 63 00 00 00 32 00 4d 69 63 72 6f 4d 6f 6f 67 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MicroMoog2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 01 01 05 0d 27 01 4d 00 03 14 02 01 05 0f 00 01 4e 00 03 15 01 00 05 0d
+11 01 58 08 03 17 02 00 05 02 27 01 63 08 03 78 24 00 04 00 42 0c 02 0c 11
+63 63 00 00 00 32 00 4d 69 63 72 6f 4d 6f 6f 67 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 09 00 01 0d 00 00 4d 04 06 0f 0d 00 01 0b 00 00 45 04 00 0b 04 00 01 0d
+00 00 44 04 03 0f 0c 00 07 0e 00 00 63 04 03 3a 21 00 00 00 52 11 02 04 00
+28 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 20 2a 63 63 63 32 32 32 00 08
+00 08 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 1b 06 0f 0f 00 01 5c 00 02 1f 0a 03 0f 0e 00 02 41 04 0c 1f 09 04 0f 0f
+00 06 62 04 14 1c 10 04 0c 0e 00 05 63 04 0b 6c 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 1b 06 0f 0f 00 01 5c 00 02 1f 0a 03 0f 0e 00 01 41 04 0c 1f 09 04 0f 0f
+00 00 62 04 14 1c 10 04 0c 0e 00 00 63 04 0b 6c 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0a 03 0f 0e 00 06 58 08 14 1c 1b 06 0f 0f 00 04 5c 08 0e 1c 10 04 0c 0f
+00 07 62 04 0b 1f 09 09 0f 0f 00 05 63 04 14 74 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0a 03 0f 0e 00 01 58 08 14 1c 1b 06 0f 0f 00 01 5c 08 0e 1c 10 04 0c 0f
+00 00 62 04 0b 1f 09 09 0f 0f 00 00 63 04 14 74 23 00 00 00 32 0c 02 04 00
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0a 03 0f 0e 00 03 5e 08 14 1b 0a 03 0f 07 00 05 60 00 06 1c 10 04 0c 0f
+00 05 62 04 0b 1c 10 04 0c 0f 00 06 63 04 0c 6c 23 00 00 00 32 0c 02 04 04
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 33 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiniMoog.3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 0a 03 0f 0e 00 03 5e 08 14 1b 0a 03 0f 07 00 01 60 00 06 1c 10 04 0c 0f
+00 00 62 04 0b 1c 10 04 0c 0f 00 00 63 04 0c 6c 23 00 00 00 32 0c 02 04 04
+63 63 00 00 00 32 00 4d 69 6e 69 4d 6f 6f 67 2e 33 63 63 63 32 32 32 00 20
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mirage *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 08 00 05 0f 45 01 45 08 0b 1f 00 00 04 0f 30 00 4d 08 00 11 08 03 05 0f
+26 07 5b 13 16 10 0a 08 06 0f 00 02 63 08 0b 03 1e 00 0a 00 32 00 02 04 00
+28 63 00 00 00 32 00 4d 69 72 61 67 65 20 20 20 2a 63 63 63 32 32 32 00 20
+00 70 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MoogBass *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 00 06 0c 00 00 4e 05 06 1f 18 00 04 0c 0f 00 50 03 00 1f 04 00 02 0d
+23 00 48 04 06 17 0c 00 08 0e 19 00 63 04 03 3a 21 00 00 00 52 0c 02 0c 00
+28 63 00 00 00 32 00 4d 6f 6f 67 42 61 73 73 20 2a 63 63 63 32 32 32 00 11
+00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MultiMoog1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 07 00 05 0e 00 04 56 00 00 1f 03 00 05 08 0e 04 42 13 06 1f 1f 00 06 0f
+00 07 56 04 00 1f 1f 00 07 0f 0a 06 5e 00 06 33 22 00 0f 00 42 18 07 04 00
+63 63 00 00 00 32 00 4d 75 6c 74 69 4d 6f 6f 67 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MultiMoog1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 07 00 05 0e 00 02 56 00 00 1f 03 00 05 08 0e 01 42 13 06 1f 1f 00 06 0f
+00 01 56 04 00 1f 1f 00 07 0f 0a 00 5e 00 06 33 22 00 0f 00 42 18 07 04 00
+63 63 00 00 00 32 00 4d 75 6c 74 69 4d 6f 6f 67 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MultiMoog2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 00 05 0e 00 45 53 08 00 1f 07 00 05 0e 0e 46 44 0a 06 1f 1f 00 06 0f
+00 04 54 08 00 1f 1f 00 07 0f 0a 06 63 0a 06 32 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 4d 75 6c 74 69 4d 6f 6f 67 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MultiMoog2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 00 05 0e 00 42 53 08 00 1f 07 00 05 0e 0e 42 44 0a 06 1f 1f 00 06 0f
+00 01 54 08 00 1f 1f 00 07 0f 0a 00 63 0a 06 32 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 4d 75 6c 74 69 4d 6f 6f 67 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: No!NotJump
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0a 00 03 0f 29 00 44 03 02 0f 0e 00 03 0f 42 01 5f 05 01 1d 0e 00 07 0f
+00 02 63 03 04 13 0e 00 07 0f 00 02 63 05 06 3c 20 00 00 00 52 05 02 04 00
+63 32 00 00 00 32 00 4e 6f 21 4e 6f 74 4a 75 6d 70 63 63 63 32 32 32 00 56
+00 31 00 46 00 11 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <> OB 1 <>
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 02 0f 00 04 56 00 1e 17 1f 01 02 0f 0a 04 45 04 03 19 1f 00 03 0f
+08 06 58 08 16 12 1f 00 01 0f 14 05 5b 04 1b 2a 00 00 00 00 02 0c 07 0c 01
+63 63 00 32 00 32 00 3c 3e 20 4f 42 20 31 20 3c 3e 63 63 63 32 32 32 00 30
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: <> OB 1 <>
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 00 02 0f 00 01 56 00 1e 17 1f 01 02 0f 0a 01 45 04 03 19 1f 00 03 0f
+08 01 58 08 16 12 1f 00 01 0f 14 00 5b 04 1b 2a 00 00 00 00 02 0c 07 0c 01
+63 63 00 32 00 32 00 3c 3e 20 4f 42 20 31 20 3c 3e 63 63 63 32 32 32 00 30
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OB-8 *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 08 00 06 0e 0c 40 49 03 06 12 08 00 03 0e 00 00 4d 04 03 11 1f 00 06 0f
+0a 00 63 03 0e 0c 1f 00 07 0f 00 00 63 04 0b 3c 23 00 00 00 5a 05 02 04 00
+28 63 00 00 00 32 63 20 20 4f 42 2d 38 20 20 20 2a 63 63 63 32 32 32 00 06
+00 08 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 0f 0f 00 04 5c 00 16 1d 0c 04 0f 0e 00 04 5e 00 02 1f 0c 04 0f 0e
+00 05 63 00 04 1f 0c 04 0f 0e 00 05 63 04 03 2c 00 00 13 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 0f 0f 00 01 5c 00 16 1d 0c 04 0f 0e 00 01 5e 00 02 1f 0c 04 0f 0e
+00 00 63 00 04 1f 0c 04 0f 0e 00 00 63 04 03 2c 00 00 13 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 02 04 04 0e 05 03 58 00 06 12 09 04 04 0f 00 04 4c 00 00 0b 0c 04 04 0e
+00 05 63 00 03 11 0b 03 06 0f 00 05 63 00 03 2c 23 00 13 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 02 04 04 0e 05 02 58 00 06 12 09 04 04 0f 00 01 4c 00 00 0b 0c 04 04 0e
+00 00 63 00 03 11 0b 03 06 0f 00 00 63 00 03 2c 23 00 13 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0c 04 05 0e 05 03 57 00 00 0c 0c 04 04 0e 05 04 52 00 06 0a 0c 04 05 0e
+00 05 63 04 06 0a 1f 00 05 0f 00 05 63 00 06 3c 17 00 20 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Oberheim.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 0c 04 05 0e 05 02 57 00 00 0c 0c 04 04 0e 05 01 52 00 06 0a 0c 04 05 0e
+00 00 63 04 06 0a 1f 00 05 0f 00 00 63 00 06 3c 17 00 20 00 42 18 02 04 00
+28 02 00 00 00 32 00 4f 62 65 72 68 65 69 6d 2e 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Synthesizer3
+
+
+** Name: Odyssey..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 1f 04 09 0f 00 04 5c 00 0d 19 03 01 09 00 00 06 53 00 04 1f 16 03 09 0d
+00 04 63 00 0a 19 06 06 09 06 00 05 63 00 0b 6c 1e 00 0a 00 32 18 04 04 00
+63 01 63 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Odyssey..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 1f 04 09 0f 00 01 5c 00 0d 19 03 01 09 00 00 02 53 00 04 1f 16 03 09 0d
+00 00 63 00 0a 19 06 06 09 06 00 00 63 00 0b 6c 1e 00 0a 00 32 18 04 04 00
+63 01 63 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Odyssey..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 02 01 05 0f 00 3b 5b 00 00 1b 13 01 0d 0a 00 1d 63 00 03 1f 05 06 05 0f
+00 1d 63 00 00 1f 04 03 0c 0f 00 3e 63 00 0b 2c 00 00 00 00 32 18 02 04 00
+63 32 00 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Odyssey..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 02 01 05 0f 00 39 5b 00 00 1b 13 01 0d 0a 00 1a 63 00 03 1f 05 06 05 0f
+00 18 63 00 00 1f 04 03 0c 0f 00 38 63 00 0b 2c 00 00 00 00 32 18 02 04 00
+63 32 00 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Odyssey..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 05 04 06 0e 1e 3d 56 0a 0d 1f 09 00 06 00 00 1d 5d 00 05 1b 02 04 06 0e
+1e 1d 63 00 0b 1f 00 00 07 0f 00 3d 63 00 0c 2c 1d 00 00 00 42 18 02 04 00
+63 32 00 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 33 63 63 63 32 32 32 00 20
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Odyssey..3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 05 04 06 0e 1e 3a 56 0a 0d 1f 09 00 06 00 00 19 5d 00 05 1b 02 04 06 0e
+1e 18 63 00 0b 1f 00 00 07 0f 00 38 63 00 0c 2c 1d 00 00 00 42 18 02 04 00
+63 32 00 00 00 32 00 4f 64 79 73 73 65 79 2e 2e 33 63 63 63 32 32 32 00 20
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OhB1Kanobe
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 1f 00 0a 0f 00 04 55 00 0b 10 1f 00 0a 0f 00 05 55 00 0b 12 0d 09 0a 0e
+15 07 62 08 0a 12 0d 09 0a 0e 15 05 63 08 0b 5c 25 00 4b 00 12 0c 02 04 00
+28 02 00 00 00 32 00 4f 68 42 31 4b 61 6e 6f 62 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OhB1Kanobe
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 1f 00 0a 0f 00 01 55 00 0b 10 1f 00 0a 0f 00 01 55 00 0b 12 0d 09 0a 0e
+15 00 62 08 0a 12 0d 09 0a 0e 15 00 63 08 0b 5c 25 00 4b 00 12 0c 02 04 00
+28 02 00 00 00 32 00 4f 68 42 31 4b 61 6e 6f 62 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Omega....1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 09 10 05 08 00 03 52 10 03 1f 05 00 05 0b 2d 04 4e 08 13 1f 08 00 03 0c
+43 06 47 10 1b 1c 06 04 04 07 00 06 63 04 13 7a 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 4f 6d 65 67 61 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Omega....2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 00 0a 09 37 04 5a 08 0c 1f 1f 0d 0a 0f 39 46 63 08 01 18 04 1c 0a 0a
+63 05 63 0d 02 1f 1f 00 0a 0f 00 06 62 04 06 15 46 28 0a 1a 56 0c 07 04 00
+63 19 00 32 00 32 00 4f 6d 65 67 61 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PCM Duck *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 07 00 0f 0d 00 00 5c 00 08 0d 1f 00 06 0f 16 00 57 00 15 0b 06 03 0f 0e
+0e 07 46 1c 10 1c 14 08 0d 0e 00 02 63 04 03 03 23 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 50 43 4d 20 44 75 63 6b 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+06 02 07 04 0c 1f 0a 46 04 0a 12 1f 00 03 0f 63 04 61 04 13 03 06 16 03 03
+63 05 5a 0a 13 14 05 12 03 03 00 05 5e 08 0d 7b 23 0f 0e 00 42 0c 02 04 00
+63 32 00 00 00 32 00 50 69 61 6e 6f 53 79 6e 74 68 63 63 63 32 32 32 00 20
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoSynth
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 02 07 04 0c 1f 0a 46 04 0a 12 1f 00 03 0f 63 01 61 04 13 03 06 16 03 03
+63 01 5a 0a 13 14 05 12 03 03 00 00 5e 08 0d 7b 23 0f 0e 00 42 0c 02 04 00
+63 32 00 00 00 32 00 50 69 61 6e 6f 53 79 6e 74 68 63 63 63 32 32 32 00 20
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PlkAnalog
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 02 01 06 00 06 51 0a 0e 10 1f 02 05 0f 00 04 63 03 08 0b 1f 00 08 0f
+00 03 63 05 0e 1a 1f 00 05 0f 00 04 60 04 0b 3d 1f 0e 00 00 46 11 02 04 00
+28 32 00 12 00 32 00 50 6c 6b 41 6e 61 6c 6f 67 20 63 63 63 32 32 32 04 30
+00 56 00 31 07 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Poly 61
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 07 03 04 07 0a 04 5a 08 03 1f 03 0c 06 00 00 05 60 08 0b 12 10 0c 06 0e
+00 05 61 08 01 12 12 0c 06 0e 00 45 5f 08 0b 35 1f 0b 11 1b 26 18 02 04 00
+28 02 00 00 00 32 00 50 6f 6c 79 20 36 31 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Poly 61
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 07 03 04 07 0a 02 5a 08 03 1f 03 0c 06 00 00 00 60 08 0b 12 10 0c 06 0e
+00 00 61 08 01 12 12 0c 06 0e 00 40 5f 08 0b 35 1f 0b 11 1b 26 18 02 04 00
+28 02 00 00 00 32 00 50 6f 6c 79 20 36 31 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyFusion
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 07 00 05 0e 00 44 56 04 00 08 07 00 05 0e 0e 44 51 04 06 0e 1f 00 06 0f
+00 04 63 04 00 0c 1f 00 07 0f 0a 06 63 08 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 50 6f 6c 79 46 75 73 69 6f 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyFusion
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 07 00 05 0e 00 41 56 04 00 08 07 00 05 0e 0e 41 51 04 06 0e 1f 00 06 0f
+00 00 63 04 00 0c 1f 00 07 0f 0a 00 63 08 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 50 6f 6c 79 46 75 73 69 6f 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyMoog.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 02 04 01 0a 05 59 08 0b 1f 0a 0c 06 00 00 44 50 19 13 10 03 03 06 0e
+00 06 63 0d 01 12 03 01 06 0f 00 45 63 08 0b 2c 1f 0b 11 1b 26 0c 02 04 00
+28 02 00 00 00 32 00 50 6f 6c 79 4d 6f 6f 67 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyMoog.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 02 04 01 0a 02 59 08 0b 1f 0a 0c 06 00 00 41 50 19 13 10 03 03 06 0e
+00 01 63 0d 01 12 03 01 06 0f 00 40 63 08 0b 2c 1f 0b 11 1b 26 0c 02 04 00
+28 02 00 00 00 32 00 50 6f 6c 79 4d 6f 6f 67 2e 31 63 63 63 32 32 32 00 20
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyMoog.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 1f 00 03 0f 63 03 59 08 0e 0e 1f 01 05 0f 00 04 63 08 0c 0a 04 0c 06 07
+3c 06 63 0d 12 0e 1f 01 05 0f 00 05 63 04 0a 75 22 00 14 00 32 00 04 04 00
+63 01 63 00 00 32 00 50 6f 6c 79 4d 6f 6f 67 2e 32 63 63 63 32 32 32 00 20
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PolyMoog.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 1f 00 03 0f 63 01 59 08 0e 0e 1f 01 05 0f 00 00 63 08 0c 0a 04 0c 06 07
+3c 00 63 0d 12 0e 1f 01 05 0f 00 00 63 04 0a 75 22 00 14 00 32 00 04 04 00
+63 01 63 00 00 32 00 50 6f 6c 79 4d 6f 6f 67 2e 32 63 63 63 32 32 32 00 20
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: P.P.G *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 05 07 0f 22 03 4c 07 02 12 04 02 04 0d 08 00 59 00 05 1d 10 06 01 0d
+0c 00 2f 3d 06 1f 0a 00 07 0f 09 02 63 04 03 02 29 00 1f 00 32 0c 02 04 00
+28 63 00 00 00 32 00 20 50 2e 50 2e 47 20 20 20 2a 63 63 63 32 32 32 00 07
+00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 0a 00 05 0b 00 00 4f 03 00 1f 0b 00 01 0a 00 00 4a 03 05 1b 16 00 05 0d
+00 00 63 03 06 1c 16 00 06 0d 00 00 63 05 00 34 1f 00 06 00 32 05 02 04 00
+28 63 00 00 00 32 00 50 72 6f 70 68 65 74 20 20 2a 63 63 63 32 32 32 00 06
+00 06 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 03 04 0a 06 00 04 4b 04 00 13 07 04 0a 0c 00 04 46 04 06 16 07 04 0a 0c
+00 05 22 16 03 17 07 04 0a 0c 00 06 63 04 03 2b 22 21 00 00 32 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 03 04 0a 06 00 02 4b 04 00 13 07 04 0a 0c 00 01 46 04 06 16 07 04 0a 0c
+00 01 22 16 03 17 07 04 0a 0c 00 00 63 04 03 2b 22 21 00 00 32 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 03 02 07 0f 00 04 4e 04 00 1b 0c 0f 07 0f 19 06 49 0d 03 1b 06 04 07 0d
+00 05 63 04 0b 1b 03 03 07 0d 00 07 63 04 15 74 23 00 12 00 12 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 32 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 03 02 07 0f 00 02 4e 04 00 1b 0c 0f 07 0f 19 02 49 0d 03 1b 06 04 07 0d
+00 00 63 04 0b 1b 03 03 07 0d 00 00 63 04 15 74 23 00 12 00 12 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 32 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 04 12 08 0c 19 05 4f 04 00 0e 04 12 08 0c 19 06 4c 04 03 10 03 06 08 0e
+00 06 63 04 0b 10 03 04 08 0e 00 06 63 04 0d 3c 26 1d 23 00 22 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Prophet..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 04 12 08 0c 19 01 4f 04 00 0e 04 12 08 0c 19 01 4c 04 03 10 03 06 08 0e
+00 00 63 04 0b 10 03 04 08 0e 00 00 63 04 0d 3c 26 1d 23 00 22 18 04 05 00
+28 32 00 00 00 32 00 50 72 6f 70 68 65 74 2e 2e 33 63 63 63 32 32 32 00 00
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3100..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+08 1f 07 02 0f 47 04 54 0d 05 08 1f 02 02 0f 00 44 53 08 02 07 1f 02 04 0f
+4e 06 4a 00 0c 07 1f 02 05 0f 00 05 5f 08 1b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 50 53 20 33 31 30 30 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3100..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 1f 07 02 0f 47 01 54 0d 05 08 1f 02 02 0f 00 41 53 08 02 07 1f 02 04 0f
+4e 01 4a 00 0c 07 1f 02 05 0f 00 00 5f 08 1b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 50 53 20 33 31 30 30 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3100..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 07 02 0f 47 04 53 0a 06 07 1f 02 02 0f 00 44 4e 04 04 0d 1f 02 04 0f
+4e 06 48 0d 0a 07 1f 02 05 0f 00 05 62 04 19 61 21 1d 0e 1a 56 0c 08 04 0f
+63 32 00 00 00 32 00 50 53 20 33 31 30 30 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3100..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 07 02 0f 47 01 53 0a 06 07 1f 02 02 0f 00 41 4e 04 04 0d 1f 02 04 0f
+4e 01 48 0d 0a 07 1f 02 05 0f 00 00 62 04 19 61 21 1d 0e 1a 56 0c 08 04 0f
+63 32 00 00 00 32 00 50 53 20 33 31 30 30 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3300..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 07 01 02 0f 47 03 54 08 05 0c 08 01 02 0f 00 44 50 08 02 0b 07 01 04 0f
+4e 06 4f 00 0c 0c 06 02 05 0f 00 06 5f 08 0b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 50 53 20 33 33 30 30 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3300..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 07 01 02 0f 47 01 54 08 05 0c 08 01 02 0f 00 41 50 08 02 0b 07 01 04 0f
+4e 01 4f 00 0c 0c 06 02 05 0f 00 00 5f 08 0b 63 21 1d 0e 1a 56 0c 08 04 0a
+63 32 00 00 00 32 00 50 53 20 33 33 30 30 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3300..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 05 01 02 0d 47 03 4d 08 06 0f 05 00 02 0f 00 43 4a 04 04 07 06 01 04 0f
+4e 04 4e 08 02 07 04 01 05 0d 00 05 62 00 09 61 21 1d 0e 1a 56 0c 08 04 0f
+63 32 00 00 00 32 00 50 53 20 33 33 30 30 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PS 3300..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 05 01 02 0d 47 00 4d 08 06 0f 05 00 02 0f 00 40 4a 04 04 07 06 01 04 0f
+4e 00 4e 08 02 07 04 01 05 0d 00 00 62 00 09 61 21 1d 0e 1a 56 0c 08 04 0f
+63 32 00 00 00 32 00 50 53 20 33 33 30 30 2e 2e 32 63 63 63 32 32 32 00 00
+00 30 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Quadra...1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 07 03 05 0f 00 05 3c 13 06 15 09 04 04 0f 00 04 4a 08 00 13 1f 00 06 0f
+00 05 5f 00 06 13 0c 07 06 0f 00 05 61 00 03 6c 17 00 0e 00 42 18 07 04 00
+63 32 63 32 00 32 00 51 75 61 64 72 61 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Quadra...2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 09 04 04 0f 00 04 4c 0a 00 0f 07 02 05 0e 00 06 50 00 06 13 0c 07 06 0f
+00 04 5f 00 03 13 1f 00 06 0f 00 05 61 08 06 74 17 00 0b 00 22 18 07 04 00
+63 32 63 32 00 32 00 51 75 61 64 72 61 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ResoSynth1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 02 0f 00 03 51 08 1e 17 1f 01 02 0f 0a 04 43 04 03 19 1f 00 03 0f
+08 06 55 08 16 12 1f 00 01 0f 14 05 5b 04 1b 2a 00 00 00 00 02 0c 07 04 00
+63 63 00 32 00 32 00 52 65 73 6f 53 79 6e 74 68 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ResoSynth2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 02 0f 00 03 50 00 1e 17 1f 01 02 0f 0a 04 41 04 03 19 1f 00 03 0f
+08 04 63 00 16 12 1f 00 01 0f 14 05 63 04 1b 3c 00 00 00 00 02 18 07 04 00
+63 63 00 32 00 32 00 52 65 73 6f 53 79 6e 74 68 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RMI......1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 09 03 07 0d 00 04 4e 08 0b 18 07 03 08 0d 00 05 59 04 0b 19 07 03 08 0c
+00 06 62 04 13 1b 08 04 08 0e 00 06 63 04 0b 24 20 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 52 4d 49 2e 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RMI......2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 09 03 07 0d 00 03 51 08 0b 18 07 03 08 0d 00 04 52 08 13 19 07 03 08 0c
+00 06 62 04 13 1b 08 04 08 0e 00 06 62 00 0b 24 20 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 52 4d 49 2e 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SH 7.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 08 00 04 07 00 0c 57 00 09 17 1f 01 04 0f 0a 0b 3e 10 01 19 1f 00 04 0f
+08 05 61 00 15 12 1f 00 04 0f 14 05 63 04 1d 2c 02 00 0a 00 02 0c 07 0d 05
+63 63 63 32 00 32 00 53 48 20 37 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SH 7.....1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 08 00 04 07 00 08 57 00 09 17 1f 01 04 0f 0a 08 3e 10 01 19 1f 00 04 0f
+08 00 61 00 15 12 1f 00 04 0f 14 00 63 04 1d 2c 02 00 0a 00 02 0c 07 0d 05
+63 63 63 32 00 32 00 53 48 20 37 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SH 7.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 08 00 05 07 00 05 57 00 11 17 1f 01 05 0f 0a 04 5c 00 11 19 1f 00 05 0f
+08 04 61 04 15 12 1f 00 05 0f 14 07 63 04 15 2c 02 00 0a 00 02 0c 07 0d 01
+63 63 63 32 00 32 00 53 48 20 37 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SH 7.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 08 00 05 07 00 02 57 00 11 17 1f 01 05 0f 0a 01 5c 00 11 19 1f 00 05 0f
+08 00 61 04 15 12 1f 00 05 0f 14 00 63 04 15 2c 02 00 0a 00 02 0c 07 0d 01
+63 63 63 32 00 32 00 53 48 20 37 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sigma....1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 10 05 08 00 04 4e 10 03 1f 05 00 05 0b 2d 06 5a 04 13 1f 08 00 03 0c
+43 04 55 0d 1b 1c 06 04 04 07 00 07 63 04 14 7c 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 53 69 67 6d 61 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sigma....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 08 03 05 0f 00 03 57 04 06 16 0a 0a 05 0d 00 07 4b 3f 03 16 09 01 06 0f
+00 06 63 04 00 16 15 01 06 0d 00 06 59 13 05 34 25 49 0f 00 32 00 0c 04 00
+63 00 00 00 00 32 00 53 69 67 6d 61 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sigma....3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 10 05 08 00 03 5a 08 03 1f 03 00 05 06 2d 06 41 13 13 1f 08 00 03 0c
+43 04 55 08 1b 1c 06 04 04 07 00 05 63 08 13 6c 21 00 38 00 22 0c 06 04 00
+63 32 00 32 00 32 00 53 69 67 6d 61 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Soft Synth
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 08 00 06 09 00 3a 27 12 06 18 08 00 06 0b 63 02 54 13 00 1b 10 00 06 0b
+00 01 63 09 06 1f 0a 00 06 0a 23 01 63 0a 00 05 1f 06 09 00 42 05 02 04 00
+63 63 00 00 00 32 00 53 6f 66 74 20 53 79 6e 74 68 63 63 63 32 32 32 00 54
+00 30 00 32 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Softsynth*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 00 03 0d 00 03 54 09 00 1f 0f 06 04 0c 18 00 5c 2d 0d 0f 1f 06 05 0f
+00 00 63 09 00 0f 1f 06 05 0f 00 00 63 0a 05 3d 23 00 00 00 62 05 02 04 00
+28 32 00 00 00 32 00 53 6f 66 74 73 79 6e 74 68 2a 63 63 63 32 32 32 00 02
+00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SoloSynth
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 1f 05 03 0e 28 03 50 08 0a 1f 1d 07 04 0c 11 02 50 00 0a 1f 1d 0c 04 0c
+28 02 41 00 0b 1a 01 01 05 0d 00 01 62 00 0c 01 1e 00 00 00 52 24 02 04 00
+28 32 00 00 00 32 00 53 6f 6c 6f 53 79 6e 74 68 20 63 52 63 32 32 32 00 00
+00 10 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpiralSynt
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 09 06 01 0e 00 03 60 00 13 16 0c 06 05 0e 03 05 51 04 0c 16 0f 06 07 0e
+00 05 62 04 0c 16 09 06 07 0f 00 05 63 04 0a 64 23 00 00 00 02 18 04 04 00
+63 01 63 00 00 32 00 53 70 69 72 61 6c 53 79 6e 74 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpiralSynt
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 09 06 01 0e 00 01 60 00 13 16 0c 06 05 0e 03 01 51 04 0c 16 0f 06 07 0e
+00 00 62 04 0c 16 09 06 07 0f 00 00 63 04 0a 64 23 00 00 00 02 18 04 04 00
+63 01 63 00 00 32 00 53 70 69 72 61 6c 53 79 6e 74 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sweeper
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 00 0a 0b 00 3b 5b 00 0d 1f 16 00 0a 0d 00 1d 46 00 03 1f 16 00 0a 0d
+00 1d 63 00 03 1f 16 00 0a 0d 00 3d 63 00 03 35 25 00 00 00 22 18 02 04 00
+63 32 00 00 00 32 00 53 77 65 65 70 65 72 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sweeper
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 00 0a 0b 00 3a 5b 00 0d 1f 16 00 0a 0d 00 19 46 00 03 1f 16 00 0a 0d
+00 18 63 00 03 1f 16 00 0a 0d 00 38 63 00 03 35 25 00 00 00 22 18 02 04 00
+63 32 00 00 00 32 00 53 77 65 65 70 65 72 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SweepSynt*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 11 0d 01 09 00 04 4e 0a 04 05 03 00 01 0d 00 02 50 04 02 11 11 00 07 09
+00 01 5b 08 06 0e 07 00 04 0d 00 02 63 04 08 34 1f 00 00 00 32 18 02 04 00
+28 63 00 00 00 32 00 53 77 65 65 70 53 79 6e 74 2a 63 63 63 32 32 32 00 03
+00 40 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SweetSynth
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+14 09 00 03 0f 29 00 12 08 02 0d 0d 00 03 0f 42 01 2d 13 01 1b 0d 00 07 0f
+00 02 33 04 04 11 0d 00 07 0f 00 02 63 13 06 00 20 00 00 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 77 65 65 74 53 79 6e 74 68 63 63 63 32 32 32 00 50
+00 30 00 58 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.AftrTch
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 32
+1f 1f 00 03 0f 00 28 46 0a 00 1f 1f 00 03 0f 00 28 44 09 06 0b 1f 00 05 0f
+1e 08 56 0a 00 0b 1f 00 05 0f 1e 08 56 0a 06 3c 23 00 2e 00 42 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 41 66 74 72 54 63 68 63 63 63 32 32 32 00 30
+00 62 00 10 00 30 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.AftrTch
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 03 0f 00 28 46 0a 00 1f 1f 00 03 0f 00 28 44 09 06 0b 1f 00 05 0f
+1e 08 56 0a 00 0b 1f 00 05 0f 1e 08 56 0a 06 3c 23 00 2e 00 42 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 41 66 74 72 54 63 68 63 63 63 32 32 32 00 30
+00 62 00 10 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Decay 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 29
+1f 08 00 04 09 14 02 49 12 06 18 08 00 04 0b 14 02 51 13 00 1b 10 00 04 0b
+00 01 60 09 06 1f 0a 00 04 0a 00 01 60 0a 00 3d 1f 06 09 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 44 65 63 61 79 20 31 63 63 63 32 32 32 00 54
+00 30 00 32 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Decay 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 30
+1f 0c 08 0f 0c 22 02 3e 35 11 1f 11 01 04 0e 1a 04 4e 05 16 1f 0b 07 0a 0c
+00 43 57 04 0e 1f 07 04 08 0e 00 43 60 05 11 3b 1c 08 02 1b 56 11 02 04 00
+63 32 00 00 00 32 00 53 79 2e 44 65 63 61 79 20 32 63 63 63 32 32 32 00 7f
+00 01 00 18 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Decay 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 08 0f 0c 22 02 3e 35 11 1f 11 01 04 0e 1a 04 4e 05 16 1f 0b 07 0d 0c
+00 43 57 04 0e 1f 07 04 08 0e 00 43 60 05 11 3b 1c 08 02 1b 56 11 02 04 00
+63 32 00 00 00 32 00 53 79 2e 44 65 63 61 79 20 32 63 63 63 32 32 32 00 7f
+00 01 00 18 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synballs
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 31
+1f 1f 00 01 0e 00 41 62 36 03 19 16 00 01 0b 00 41 5f 05 0b 15 1c 06 01 0b
+00 41 58 39 13 1f 1f 05 02 08 00 41 63 18 13 29 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 53 79 6e 62 61 6c 6c 73 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 20
+
+** Name: Synth....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 16 07 05 0d 00 04 4b 2d 0b 17 0f 00 06 0d 00 05 57 04 03 16 13 07 06 0d
+01 05 63 04 13 0d 09 06 06 0d 00 06 63 04 0b 74 26 21 09 00 42 18 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 16 07 05 0d 00 01 4b 2d 0b 17 0f 00 06 0d 00 01 57 04 03 16 13 07 06 0d
+01 00 63 04 13 0d 09 06 06 0d 00 00 63 04 0b 74 26 21 09 00 42 18 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 03 0d 00 42 50 22 02 1f 0f 00 06 0d 00 44 4e 08 08 0c 0a 07 04 0d
+01 45 63 04 12 1f 0a 06 05 0d 00 46 63 08 08 5c 26 23 06 1b 36 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 03 0d 00 43 50 22 02 1f 0f 00 06 0d 00 41 4e 08 08 0c 0a 07 04 0d
+01 40 63 04 12 1f 0a 06 05 0d 00 40 63 08 08 5c 26 23 06 1b 36 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 0a 07 09 0e 00 43 59 08 06 0d 0a 07 09 0e 00 44 52 04 00 1f 1d 07 09 0e
+00 46 63 04 03 1f 1d 07 09 0e 00 45 62 04 03 24 24 32 13 02 36 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 0a 07 09 0e 00 41 59 08 06 0d 0a 07 09 0e 00 41 52 04 00 1f 1d 07 09 0e
+00 40 63 04 03 1f 1d 07 09 0e 00 40 62 04 03 24 24 32 13 02 36 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0f 01 0f 00 05 50 3f 03 1f 06 07 0f 0e 00 05 4d 04 00 18 10 0f 0e 0c
+00 06 53 04 03 1f 06 07 0f 0e 00 06 5d 04 03 22 28 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0f 01 0f 00 02 50 3f 03 1f 06 07 0f 0e 00 02 4d 04 00 18 10 0f 0e 0c
+00 01 53 04 03 1f 06 07 0f 0e 00 00 5d 04 03 22 28 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 14 08 0f 00 00 43 63 10 13 1b 03 06 08 0e 00 44 4c 04 02 1f 15 07 0f 00
+00 45 5f 0d 06 0e 03 06 08 09 00 45 63 04 0e 34 26 21 20 2a 16 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 08 0f 00 00 40 63 10 13 1b 03 06 08 0e 00 41 4c 04 02 1f 15 07 0f 00
+00 40 5f 0d 06 0e 03 06 08 09 00 40 63 04 0e 34 26 21 20 2a 16 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0c 07 0c 0a 00 04 55 04 03 1e 0c 07 07 0a 00 05 55 04 03 1f 16 00 0f 0d
+00 05 63 04 03 1f 16 07 07 0d 00 06 62 04 0b 34 26 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 10 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0c 07 0c 0a 00 01 55 04 03 1e 0c 07 07 0a 00 01 55 04 03 1f 16 00 0f 0d
+00 00 63 04 03 1f 16 07 07 0d 00 00 62 04 0b 34 26 00 00 00 22 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 10 00 30 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 09 06 04 00 04 5e 00 05 1f 0c 09 06 0e 00 04 5b 00 02 1f 0c 09 06 0e
+00 04 63 00 04 1f 0c 09 06 0e 00 05 63 04 02 2c 25 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synth....7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 09 06 04 00 01 5e 00 05 1f 0c 09 06 0e 00 01 5b 00 02 1f 0c 09 06 0e
+00 00 63 00 04 1f 0c 09 06 0e 00 00 63 04 02 2c 25 00 00 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 6e 74 68 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Synthish *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 08 00 01 0c 00 01 52 08 06 03 0d 00 01 0f 00 01 49 05 18 10 08 00 04 0d
+00 01 63 08 0e 0b 0a 00 04 0e 00 00 63 05 08 34 20 05 19 0f 32 08 02 04 00
+28 32 00 00 00 32 00 53 79 6e 74 68 69 73 68 20 2a 63 63 63 32 32 32 00 09
+00 0d 00 09 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthRise1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 03 0f 00 03 51 00 06 1f 1f 00 03 0f 00 05 5e 00 08 0f 1f 00 04 0f
+00 05 5d 08 06 0f 1f 00 05 0f 00 05 5c 08 00 7c 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 53 79 6e 74 68 52 69 73 65 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthRise1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 03 0f 00 01 51 00 06 1f 1f 00 03 0f 00 01 5e 00 08 0f 1f 00 04 0f
+00 00 5d 08 06 0f 1f 00 05 0f 00 00 5c 08 00 7c 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 53 79 6e 74 68 52 69 73 65 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthRise2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 00 04 0d 00 05 5f 00 06 1f 1f 00 04 0f 00 05 61 00 08 0f 1f 00 05 0f
+00 06 5f 08 06 0f 1f 00 05 0f 00 05 58 08 00 74 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 53 79 6e 74 68 52 69 73 65 32 63 63 63 32 32 32 00 20
+00 40 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthRise2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 00 04 0d 00 01 5f 00 06 1f 1f 00 04 0f 00 02 61 00 08 0f 1f 00 05 0f
+00 00 5f 08 06 0f 1f 00 05 0f 00 00 58 08 00 74 23 00 00 00 02 18 05 04 00
+63 63 63 00 00 32 00 53 79 6e 74 68 52 69 73 65 32 63 63 63 32 32 32 00 20
+00 40 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthyPad1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+11 11 06 07 0f 1d 02 62 03 06 0b 08 07 07 0f 16 41 62 05 04 11 07 08 07 0f
+1d 02 62 05 00 0e 08 04 05 0f 14 43 63 03 02 7f 22 00 0f 00 36 05 02 04 03
+63 32 00 00 00 32 00 53 79 6e 74 68 79 50 61 64 31 63 63 63 32 32 32 00 16
+00 51 00 11 00 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System 15
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 09 04 09 0e 00 05 54 08 06 16 09 04 09 0e 00 04 5a 00 06 16 09 04 09 0e
+00 06 5c 04 03 16 09 04 09 0e 00 05 63 00 03 74 22 00 06 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 73 74 65 6d 20 31 35 20 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System 15
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 09 04 09 0e 00 01 54 08 06 16 09 04 09 0e 00 01 5a 00 06 16 09 04 09 0e
+00 00 5c 04 03 16 09 04 09 0e 00 00 63 00 03 74 22 00 06 00 32 0c 02 04 00
+28 02 00 00 00 32 00 53 79 73 74 65 6d 20 31 35 20 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 01 00 04 0c 00 04 5f 00 09 0b 07 00 04 0f 00 04 50 00 04 0e 03 01 04 0f
+00 05 63 04 0b 13 02 00 04 0f 00 05 63 04 06 54 17 00 0b 00 32 18 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 01 00 04 0c 00 01 5f 00 09 0b 07 00 04 0f 00 01 50 00 04 0e 03 01 04 0f
+00 00 63 04 0b 13 02 00 04 0f 00 00 63 04 06 54 17 00 0b 00 32 18 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 04 03 08 0d 00 04 50 04 01 15 04 03 08 0d 00 04 4c 08 03 12 04 03 08 0d
+00 04 62 08 03 0a 04 03 08 0d 00 05 5d 08 06 7c 17 00 0b 00 32 0c 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 04 03 08 0d 00 02 50 04 01 15 04 03 08 0d 00 01 4c 08 03 12 04 03 08 0d
+00 00 62 08 03 0a 04 03 08 0d 00 00 5d 08 06 7c 17 00 0b 00 32 0c 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 01 00 06 0c 00 02 51 00 09 15 04 00 07 0f 00 04 4e 00 06 13 0c 02 06 0f
+00 06 63 00 0b 13 03 01 06 0f 00 05 63 00 16 74 17 00 0b 00 32 18 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 33 63 63 63 32 32 32 00 00
+00 40 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System35.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 01 00 06 0c 00 01 51 00 09 15 04 00 07 0f 00 02 4e 00 06 13 0c 02 06 0f
+00 00 63 00 0b 13 03 01 06 0f 00 00 63 00 16 74 17 00 0b 00 32 18 04 04 00
+63 01 63 00 00 32 00 53 79 73 74 65 6d 33 35 2e 33 63 63 63 32 32 32 00 00
+00 40 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System55.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 09 00 05 0f 00 03 5b 00 00 15 03 00 06 05 00 05 60 00 0e 13 1f 00 06 0f
+00 06 63 04 03 13 0c 00 06 0e 00 05 63 04 03 6c 17 00 0b 00 22 18 05 04 00
+63 63 63 00 00 32 00 53 79 73 74 65 6d 35 35 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System55.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 09 00 05 0f 00 01 5b 00 00 15 03 00 06 05 00 01 60 00 0e 13 1f 00 06 0f
+00 00 63 04 03 13 0c 00 06 0e 00 00 63 04 03 6c 17 00 0b 00 22 18 05 04 00
+63 63 63 00 00 32 00 53 79 73 74 65 6d 35 35 2e 31 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System55.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 09 00 05 0f 00 02 5c 00 06 15 03 00 06 05 00 05 58 08 0e 13 1f 00 06 0f
+00 04 63 00 02 13 0c 00 06 0e 00 05 63 00 02 74 17 00 0b 00 22 18 05 04 00
+63 63 63 00 00 32 00 53 79 73 74 65 6d 35 35 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: System55.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 09 00 05 0f 00 02 5c 00 06 15 03 00 06 05 00 01 58 08 0e 13 1f 00 06 0f
+00 00 63 00 02 13 0c 00 06 0e 00 00 63 00 02 74 17 00 0b 00 22 18 05 04 00
+63 63 63 00 00 32 00 53 79 73 74 65 6d 35 35 2e 32 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 07 07 01 00 00 00 49 0a 0b 1f 1f 02 03 0f 00 01 56 00 0b 07 08 04 03 00
+00 01 45 24 0b 1e 0d 05 04 0d 00 01 63 04 0b 3b 23 00 00 00 32 18 02 04 00
+28 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 20 2a 63 63 63 32 32 32 00 20
+00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 1f 00 03 0f 00 01 50 00 03 1f 1f 00 02 0f 00 03 5f 04 03 19 18 00 02 0f
+00 05 45 05 03 1f 1f 00 03 0f 00 06 5a 04 03 7d 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 1f 00 03 0f 00 00 50 00 03 1f 1f 00 02 0f 00 00 5f 04 03 19 18 00 02 0f
+00 00 45 05 03 1f 1f 00 03 0f 00 00 5a 04 03 7d 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 11 07 03 0f 00 02 54 00 03 1f 1f 00 04 0f 00 03 63 00 03 19 18 00 03 0f
+00 05 45 04 03 1f 1f 00 04 0f 00 05 5b 04 03 45 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 11 07 03 0f 00 00 54 00 03 1f 1f 00 04 0f 00 00 63 00 03 19 18 00 03 0f
+00 00 45 04 03 1f 1f 00 04 0f 00 00 5b 04 03 45 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 1f 00 03 0f 00 02 47 00 03 1f 1f 00 03 0f 00 02 43 00 03 19 18 00 03 0f
+00 03 5b 04 03 1f 1f 00 03 0f 00 06 5b 04 03 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tamboura.3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 1f 00 03 0f 00 00 47 00 03 1f 1f 00 03 0f 00 00 43 00 03 19 18 00 03 0f
+00 00 5b 04 03 1f 1f 00 03 0f 00 00 5b 04 03 6c 23 00 00 00 32 18 02 04 00
+63 63 00 00 00 32 00 54 61 6d 62 6f 75 72 61 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Time X *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+06 00 00 01 00 08 00 5a 00 06 1f 00 00 01 00 00 00 48 00 05 1f 00 00 01 00
+00 02 58 00 01 12 06 00 03 00 00 00 63 00 0b 02 23 00 00 00 32 24 02 04 00
+28 63 00 00 00 32 00 54 69 6d 65 20 58 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TrdrpSynth
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+17 04 00 06 09 00 3a 1e 12 06 10 04 00 06 0b 63 02 54 1c 00 13 0c 00 06 0b
+00 01 63 09 06 17 06 00 06 0a 23 01 63 13 00 05 1f 06 09 00 42 05 02 04 00
+63 63 00 00 00 32 00 54 72 64 72 70 53 79 6e 74 68 63 63 63 32 32 32 00 54
+00 30 00 32 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Voyage *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 09 00 01 00 19 00 5b 00 08 17 05 00 03 00 00 00 5c 00 0e 15 07 00 04 00
+07 02 63 04 08 15 07 00 04 00 06 01 63 03 0b 14 20 00 1c 00 42 11 02 04 00
+28 63 00 00 00 32 00 56 6f 79 61 67 65 20 20 20 2a 63 63 63 32 32 32 00 44
+00 04 00 08 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Walt/Wendy
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 09 07 04 0e 00 04 47 16 03 1e 0f 00 05 0d 00 05 4d 08 09 0a 09 07 04 0e
+00 04 62 04 0b 09 10 03 04 0f 00 05 63 08 0e 74 26 00 02 00 63 0c 02 04 00
+63 63 00 00 00 32 00 57 61 6c 74 2f 57 65 6e 64 79 63 63 63 32 32 32 00 00
+00 30 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Walt/Wendy
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 09 07 04 0e 00 01 47 16 03 1e 0f 00 05 0d 00 02 4d 08 09 0a 09 07 04 0e
+00 00 62 04 0b 09 10 03 04 0f 00 00 63 08 0e 74 26 00 02 00 63 0c 02 04 00
+63 63 00 00 00 32 00 57 61 6c 74 2f 57 65 6e 64 79 63 63 63 32 32 32 00 00
+00 30 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wapper...1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 1c 15 01 0e 00 04 52 0a 13 10 00 03 08 0d 00 06 58 04 0b 10 00 03 09 0d
+00 06 5f 0a 08 10 00 03 08 0d 00 05 63 08 0b 34 25 29 26 63 12 0c 04 04 00
+63 01 63 00 00 32 00 57 61 70 70 65 72 2e 2e 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wapper...1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 1c 15 01 0e 00 01 52 0a 13 10 00 03 08 0d 00 02 58 04 0b 10 00 03 09 0d
+00 00 5f 0a 08 10 00 03 08 0d 00 00 63 08 0b 34 25 29 26 63 12 0c 04 04 00
+63 01 63 00 00 32 00 57 61 70 70 65 72 2e 2e 2e 31 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wapper...2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 1c 0a 01 0e 00 05 49 2a 0b 10 00 03 08 0d 00 05 3e 10 0b 10 00 03 09 0d
+00 05 5f 04 08 10 00 03 08 0d 00 05 63 04 0b 2c 25 2a 26 63 12 18 04 04 00
+63 01 63 00 00 32 00 57 61 70 70 65 72 2e 2e 2e 32 63 63 63 32 32 32 00 30
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wapper...2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 1c 0a 01 0e 00 01 49 2a 0b 10 00 03 08 0d 00 01 3e 10 0b 10 00 03 09 0d
+00 00 5f 04 08 10 00 03 08 0d 00 00 63 04 0b 2c 25 2a 26 63 12 18 04 04 00
+63 01 63 00 00 32 00 57 61 70 70 65 72 2e 2e 2e 32 63 63 63 32 32 32 00 30
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WarmSquare
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 21
+1f 06 00 03 0f 00 01 4f 03 06 1f 0e 00 03 0f 00 01 50 05 00 12 0e 00 07 0f
+00 02 63 03 00 16 0e 00 07 0f 00 02 63 05 06 34 20 00 00 00 52 05 07 0c 00
+63 32 00 00 00 32 00 57 61 72 6d 53 71 75 61 72 65 63 63 63 32 32 32 00 26
+00 51 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wendy :
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 0a 06 08 0c 00 03 53 04 03 10 07 06 0a 00 00 05 51 04 03 12 07 06 09 0c
+00 05 63 04 13 12 09 04 07 0e 00 06 63 04 03 24 23 00 05 00 42 0c 02 04 00
+28 02 00 00 00 32 00 20 57 65 6e 64 79 20 20 3a 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wendy :
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 0a 06 08 0c 00 01 53 04 03 10 07 06 0a 00 00 01 51 04 03 12 07 06 09 0c
+00 00 63 04 13 12 09 04 07 0e 00 00 63 04 03 24 23 00 05 00 42 0c 02 04 00
+28 02 00 00 00 32 00 20 57 65 6e 64 79 20 20 3a 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wendy C
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 09 04 04 0f 00 04 31 1f 06 08 00 00 04 0f 00 04 44 08 0b 0e 09 04 04 0f
+00 06 62 08 02 08 00 00 05 0f 00 06 62 08 0b 74 2b 00 0b 00 32 0c 02 04 00
+28 02 00 00 00 32 00 57 65 6e 64 79 20 43 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wendy C
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 09 04 04 0f 00 01 31 1f 06 08 00 00 04 0f 00 01 44 08 0b 0e 09 04 04 0f
+00 00 62 08 02 08 00 00 05 0f 00 00 62 08 0b 74 2b 00 0b 00 32 0c 02 04 00
+28 02 00 00 00 32 00 57 65 6e 64 79 20 43 20 20 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whos Upset
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 43 58 04 03 1f 1f 00 0f 0f 00 43 63 04 03 1f 1f 00 0f 0f
+00 45 63 04 03 1f 1f 00 0f 0f 00 47 63 04 03 5d 2e 3a 45 63 77 18 04 04 00
+63 01 63 00 00 32 00 57 68 6f 73 20 55 70 73 65 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whos Upset
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 0f 0f 00 40 58 04 03 1f 1f 00 0f 0f 00 40 63 04 03 1f 1f 00 0f 0f
+00 40 63 04 03 1f 1f 00 0f 0f 00 40 63 04 03 5d 2e 3a 45 63 77 18 04 04 00
+63 01 63 00 00 32 00 57 68 6f 73 20 55 70 73 65 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: X-Pander *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 08 00 06 0d 00 03 52 03 03 0e 08 00 01 0f 00 00 43 04 03 15 0e 00 06 0f
+00 00 63 03 0b 0b 1f 00 06 0f 00 00 63 04 0b 3c 21 00 00 00 52 05 02 04 00
+28 32 00 00 00 32 00 58 2d 50 61 6e 64 65 72 20 2a 63 63 63 32 32 32 00 06
+00 08 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xuereb *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 08 00 03 0f 00 00 46 3f 1d 1f 00 00 04 0f 00 00 48 08 00 11 07 12 02 00
+00 07 4a 3f 1e 0f 04 09 06 0f 00 02 63 08 0e 33 20 00 14 00 32 00 02 04 00
+28 63 00 00 00 32 00 58 75 65 72 65 62 20 20 20 2a 63 63 63 32 32 32 00 0f
+00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 21
+
+* CATEGORY VOICES
+
+* SUBCATEGORY Breath
+
+** Name: BaadBreath
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 1
+1f 00 00 04 0f 00 40 63 3c 00 0b 08 07 07 0f 05 00 63 04 06 0f 05 03 07 0f
+08 00 3b 05 06 0e 08 04 05 0f 00 03 63 03 00 7e 1d 06 0f 00 4a 11 00 04 00
+63 32 00 00 00 32 00 42 61 61 64 42 72 65 61 74 68 63 63 63 32 32 32 06 30
+00 38 00 01 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BaadBreath
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 04 0f 00 41 63 3c 00 0c 09 04 07 0f 3e 03 63 06 06 10 07 03 06 0f
+0c 03 4d 05 01 0f 08 04 05 0f 33 04 63 05 00 7e 1d 06 0f 29 4e 11 00 04 00
+63 32 00 00 00 32 00 42 61 61 64 42 72 65 61 74 68 63 63 63 32 32 32 0e 30
+00 30 00 42 01 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BaadBreath
+** Controls: KV, MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 00 00 04 0f 00 40 63 3c 00 0c 09 04 07 0f 3e 00 63 06 06 10 07 03 06 0f
+0c 01 4d 05 01 0f 08 04 05 0f 33 01 63 05 00 7e 1d 06 0f 29 4e 11 00 04 00
+63 32 00 00 00 32 00 42 61 61 64 42 72 65 61 74 68 63 63 63 32 32 32 0e 30
+00 30 00 42 01 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BadBreath2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 04 0f 00 40 63 3c 00 0a 08 07 07 0f 15 00 63 04 06 0a 05 03 07 0f
+13 00 32 05 06 0a 08 04 05 0f 19 03 63 03 00 7e 1d 06 0f 00 4a 11 00 04 02
+63 32 00 00 00 32 00 42 61 64 42 72 65 61 74 68 32 63 63 63 32 32 32 06 10
+00 38 00 71 00 46 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BreathOrgn
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 32
+0d 0b 00 01 0c 00 02 2c 3d 03 0d 07 00 01 0c 00 02 1f 3c 03 0d 1f 00 05 0f
+00 02 63 05 06 0d 1f 00 05 0f 00 02 63 04 00 3c 63 00 2f 00 53 11 04 04 00
+63 32 00 00 00 32 00 42 72 65 61 74 68 4f 72 67 6e 63 63 63 32 32 32 04 30
+05 50 00 11 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BreathyEns
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 00 00 03 0f 00 40 63 3c 00 0b 08 07 06 0f 05 00 63 08 06 0f 05 03 06 0f
+08 00 2b 08 06 10 04 04 09 0f 00 03 63 08 00 7e 1d 06 0f 00 4a 0c 01 04 00
+63 32 00 00 00 32 00 42 72 65 61 74 68 79 45 6e 73 63 63 63 32 32 32 06 30
+00 10 00 71 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Choir
+
+** Name: ChoiChoir*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 19 00 01 0f 08 00 46 04 06 1f 19 00 01 0f 4a 02 4d 04 06 0b 1f 00 06 0f
+00 00 63 08 00 09 19 00 07 0f 17 01 4d 20 00 04 1e 1f 3f 00 42 0c 02 04 00
+28 32 00 00 00 32 00 43 68 6f 69 43 68 6f 69 72 2a 63 63 63 32 32 32 00 00
+00 20 00 00 0c 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 0b 0c 0c 0d 00 00 37 0a 03 0c 03 09 09 0f 00 07 32 08 04 0c 06 00 09 0f
+00 07 45 08 01 08 08 09 07 0d 00 07 60 04 00 4a 20 21 35 00 22 18 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 31 63 63 63 32 32 32 20 00
+10 10 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 0b 0c 0c 0d 00 00 37 0a 03 0c 03 09 09 0f 00 00 32 08 04 0c 06 00 09 0f
+00 00 45 08 01 08 08 09 07 0d 00 00 60 04 00 4a 20 21 35 00 22 18 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 31 63 63 63 32 32 32 20 00
+10 10 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 08 0c 0c 0d 00 03 35 0a 03 0c 1f 09 09 0f 00 06 35 08 03 0c 06 00 09 0f
+00 05 63 08 03 0c 08 09 07 0d 00 05 60 04 00 4c 20 21 35 00 22 18 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 08 0c 0c 0d 00 00 35 0a 03 0c 1f 09 09 0f 00 00 35 08 03 0c 06 00 09 0f
+00 00 63 08 03 0c 08 09 07 0d 00 00 60 04 00 4c 20 21 35 00 22 18 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 15 1f 07 0f 00 02 3a 0d 02 10 16 09 07 0f 00 06 44 08 04 0b 16 09 07 0f
+00 06 5f 08 01 0f 0f 04 07 0f 00 05 5f 04 02 44 1f 23 21 00 22 0c 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 15 1f 07 0f 00 00 3a 0d 02 10 16 09 07 0f 00 01 44 08 04 0b 16 09 07 0f
+00 00 5f 08 01 0f 0f 04 07 0f 00 00 5f 04 02 44 1f 23 21 00 22 0c 07 04 00
+63 32 63 32 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 00 04 04 0a 61 00 39 19 03 09 1f 03 07 0f 63 04 3a 04 00 07 00 06 06 09
+58 05 34 13 03 09 1f 01 06 0f 29 45 58 04 06 21 20 2d 00 00 06 24 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 00 04 04 0a 61 00 39 19 03 09 1f 03 07 0f 63 00 3a 04 00 07 00 06 06 09
+58 00 34 13 03 09 1f 01 06 0f 29 40 58 04 06 21 20 2d 00 00 06 24 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 12 04 04 0a 3a 03 36 19 06 0b 1f 03 0a 0f 56 05 44 04 00 15 0e 06 0a 09
+63 06 3b 16 00 0e 1f 01 09 0f 00 06 61 04 06 29 21 13 09 00 62 18 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 12 04 04 0a 3a 00 36 19 06 0b 1f 03 0a 0f 56 00 44 04 00 15 0e 06 0a 09
+63 00 3b 16 00 0e 1f 01 09 0f 00 00 61 04 06 29 21 13 09 00 62 18 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 15 04 04 0a 3a 03 33 10 06 0c 1f 03 0a 0f 56 04 39 04 00 0d 0e 06 0a 09
+63 06 48 08 00 0c 1f 01 09 0f 00 05 57 04 06 51 21 16 08 00 62 18 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 36 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choir....6
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 15 04 04 0a 3a 00 33 10 06 0c 1f 03 0a 0f 56 00 39 04 00 0d 0e 06 0a 09
+63 00 48 08 00 0c 1f 01 09 0f 00 00 57 04 06 51 21 16 08 00 62 18 02 04 00
+63 32 00 00 00 32 00 43 68 6f 69 72 2e 2e 2e 2e 36 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choral
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0b 0d 00 02 0f 0a 40 32 04 00 0a 0d 00 02 0f 0a 40 32 00 06 0c 0b 00 04 0f
+1e 42 63 08 00 0a 0d 00 04 0f 14 42 63 04 06 3c 1e 0a 11 04 4a 18 02 04 00
+28 32 00 00 00 32 00 43 68 6f 72 61 6c 20 20 20 20 63 56 63 29 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus
+** Controls: MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+0d 0e 00 02 0f 28 00 32 00 03 0d 0e 00 02 0f 00 00 4e 00 0b 0d 0e 00 04 0f
+00 00 63 04 0b 0d 0e 00 04 0f 58 00 63 08 0b 06 1d 00 17 00 22 18 05 04 00
+28 32 0d 00 00 32 00 43 68 6f 72 75 73 20 20 20 20 63 47 63 2f 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...1
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 02 02 0f 23 42 2f 04 04 06 07 04 04 07 32 46 40 04 03 0a 06 09 09 0f
+45 45 39 04 02 0a 06 07 06 0f 0a 46 5d 04 00 2b 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 31 63 63 63 32 32 32 0b 09
+00 10 00 00 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...1
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 02 02 0f 23 40 2f 04 04 06 07 04 04 07 32 40 40 04 03 0a 06 09 09 0f
+45 40 39 04 02 0a 06 07 06 0f 0a 40 5d 04 00 2b 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 31 63 63 63 32 32 32 0b 09
+00 10 00 00 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...2
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 16 05 02 0f 23 43 3a 0d 05 07 07 07 04 07 32 45 43 04 03 09 06 08 09 0f
+45 45 40 04 02 0f 06 07 09 0f 0a 45 5f 04 00 3b 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...2
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 16 05 02 0f 23 40 3a 0d 05 07 07 07 04 07 32 40 43 04 03 09 06 08 09 0f
+45 40 40 04 02 0f 06 07 09 0f 0a 40 5f 04 00 3b 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...3
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 09 05 05 0f 23 44 49 08 05 06 07 07 04 07 32 46 4d 08 04 0d 06 08 09 0f
+45 45 57 08 02 0d 07 07 09 0f 0a 45 5f 04 00 2e 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...3
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 09 05 05 0f 23 41 49 08 05 06 07 07 04 07 32 40 4d 08 04 0d 06 08 09 0f
+45 40 57 08 02 0d 07 07 09 0f 0a 40 5f 04 00 2e 23 23 0b 02 46 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...4
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 05 0a 07 0e 2d 43 51 04 0b 0a 04 05 05 09 3c 45 5b 04 05 0d 06 08 09 0f
+59 46 60 04 04 0a 05 08 07 0e 0a 46 61 04 0e 06 1b 0f 48 22 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 34 63 63 63 32 32 32 00 10
+00 10 00 10 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...4
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 05 0a 07 0e 2d 40 51 04 0b 0a 04 05 05 09 3c 40 5b 04 05 0d 06 08 09 0f
+59 40 60 04 04 0a 05 08 07 0e 0a 40 61 04 0e 06 1b 0f 48 22 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 34 63 63 63 32 32 32 00 10
+00 10 00 10 00 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...5
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 07 08 08 0d 2d 44 41 08 04 0c 08 04 06 0b 3c 46 63 04 04 0a 07 05 08 0f
+59 46 63 00 01 09 04 08 07 0f 0a 47 61 04 05 0e 1b 0f 4f 26 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...5
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 07 08 08 0d 2d 40 41 08 04 0c 08 04 06 0b 3c 40 63 04 04 0a 07 05 08 0f
+59 40 63 00 01 09 04 08 07 0f 0a 40 61 04 05 0e 1b 0f 4f 26 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 30 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...6
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 0a 06 08 0d 3e 45 4b 04 03 0c 06 05 07 0d 32 45 63 08 03 0a 0a 03 07 0f
+43 45 63 0a 0b 0c 07 06 08 0f 0a 46 63 04 03 0e 1b 0f 4f 3d 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 36 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...6
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 0a 06 08 0d 3e 40 4b 04 03 0c 06 05 07 0d 32 40 63 08 03 0a 0a 03 07 0f
+43 40 63 0a 0b 0c 07 06 08 0f 0a 40 63 04 03 0e 1b 0f 4f 3d 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 36 63 63 63 32 32 32 00 20
+00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...7
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 07 05 07 0d 17 40 42 04 03 09 03 04 07 0d 32 40 55 0a 03 08 05 04 07 0f
+2a 40 5b 08 06 08 08 05 07 0f 1e 40 5b 04 05 1e 1b 0f 4f 3d 36 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...8
+** Controls: KV, MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+06 05 06 06 0c 17 40 39 0a 03 09 05 03 07 0e 32 45 5b 04 03 09 04 06 06 0d
+2a 47 5f 04 03 09 06 02 09 0d 1e 46 5d 0a 03 0e 1b 0f 4f 3d 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 38 63 63 63 32 32 32 00 10
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chorus...8
+** Controls: MW (LFO pitch), BC (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 05 06 06 0c 17 40 39 0a 03 09 05 03 07 0e 32 40 5b 04 03 09 04 06 06 0d
+2a 40 5f 04 03 09 06 02 09 0d 1e 40 5d 0a 03 0e 1b 0f 4f 3d 16 18 02 04 00
+63 32 00 00 01 32 00 43 68 6f 72 75 73 2e 2e 2e 38 63 63 63 32 32 32 00 10
+00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY FVoice
+
+** Name: F Voice..1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 04 05 0a 00 46 52 04 01 15 18 18 07 0c 00 06 4b 04 02 0c 08 04 09 0e
+00 46 5b 04 06 0c 08 04 09 0e 00 06 5e 04 00 74 27 1b 30 08 26 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 31 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..1
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 04 05 0a 00 40 52 04 01 15 18 18 07 0c 00 00 4b 04 02 0c 08 04 09 0e
+00 40 5b 04 06 0c 08 04 09 0e 00 00 5e 04 00 74 27 1b 30 08 26 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 31 63 63 63 32 32 32 00 30
+00 30 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..2
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 16 0f 03 0e 00 45 32 3d 01 06 07 0f 03 09 00 04 44 04 03 0c 06 0a 07 0e
+00 45 1a 04 06 0e 08 04 09 0e 00 06 57 04 00 23 27 22 5b 02 16 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..2
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 16 0f 03 0e 00 40 32 3d 01 06 07 0f 03 09 00 00 44 04 03 0c 06 0a 07 0e
+00 40 1a 04 06 0e 08 04 09 0e 00 00 57 04 00 23 27 22 5b 02 16 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..3
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 1f 0e 06 0f 28 05 63 04 00 0c 19 06 07 0f 3c 06 63 08 05 0d 0c 0a 07 0f
+0f 06 63 08 06 0d 19 06 07 0f 00 46 61 04 01 27 23 00 15 28 16 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..3
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 1f 0e 06 0f 28 00 63 04 00 0c 19 06 07 0f 3c 00 63 08 05 0d 0c 0a 07 0f
+0f 00 63 08 06 0d 19 06 07 0f 00 40 61 04 01 27 23 00 15 28 16 18 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..4
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 15 03 05 0f 01 44 47 00 03 0f 06 06 07 0e 00 40 43 04 04 12 15 04 05 0f
+00 46 37 08 03 12 06 04 09 0f 00 45 58 04 04 3c 23 3a 0a 02 46 24 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: F Voice..4
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 15 03 05 0f 01 40 47 00 03 0f 06 06 07 0e 00 40 43 04 04 12 15 04 05 0f
+00 40 37 08 03 12 06 04 09 0f 00 40 58 04 04 3c 23 3a 0a 02 46 24 07 04 00
+63 32 63 32 00 32 00 46 20 56 6f 69 63 65 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Fem.Voice*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 17 00 07 0f 00 00 2d 0d 06 0e 17 00 06 0f 00 00 2f 04 00 0b 0d 00 07 0a
+00 02 63 08 00 13 0f 00 07 0f 00 02 63 04 06 24 1e 03 25 00 52 18 02 04 00
+28 63 00 00 00 32 00 46 65 6d 2e 56 6f 69 63 65 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY MVoice
+
+** Name: M Voice..1
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 03 04 0e 00 45 49 04 0a 0d 05 02 07 0f 00 46 3d 10 0a 0c 06 04 07 0f
+00 46 63 08 0a 0d 18 02 07 0f 00 46 5f 08 04 04 1e 21 33 26 16 0c 04 04 00
+63 01 63 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..1
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 03 04 0e 00 40 49 04 0a 0d 05 02 07 0f 00 40 3d 10 0a 0c 06 04 07 0f
+00 40 63 08 0a 0d 18 02 07 0f 00 40 5f 08 04 04 1e 21 33 26 16 0c 04 04 00
+63 01 63 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..2
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 03 04 0f 00 05 47 04 0b 1f 18 03 04 0f 00 06 4a 04 01 0f 18 03 07 0f
+00 46 60 08 0b 0f 18 03 07 0f 00 46 63 08 04 24 1d 0c 29 26 26 0c 04 04 00
+63 01 63 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..2
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 03 04 0f 00 00 47 04 0b 1f 18 03 04 0f 00 00 4a 04 01 0f 18 03 07 0f
+00 40 60 08 0b 0f 18 03 07 0f 00 40 63 08 04 24 1d 0c 29 26 26 0c 04 04 00
+63 01 63 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 32 63 63 63 32 32 32 00 10
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 02 04 0a 00 45 5a 04 0c 12 07 0f 04 03 0a 45 2a 14 0b 09 03 0f 07 09
+00 45 58 04 0c 08 00 0f 08 0c 0a 46 5f 0a 0d 24 1e 21 21 0c 16 0c 04 04 00
+63 32 00 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 33 63 63 63 32 32 32 10 10
+2b 07 00 10 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 02 04 0a 00 40 5a 04 0c 12 07 0f 04 03 0a 41 2a 14 0b 09 03 0f 07 09
+00 40 58 04 0c 08 00 0f 08 0c 0a 41 5f 0a 0d 24 1e 21 21 0c 16 0c 04 04 00
+63 32 00 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 33 63 63 63 32 32 32 10 10
+2b 07 00 10 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 05 07 02 03 00 06 46 04 0c 0d 0c 06 05 0f 0a 06 34 19 0c 0c 06 0f 07 0d
+00 06 5c 04 0e 0a 00 0f 08 0c 0a 05 5a 04 09 54 21 14 38 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: M Voice..4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 05 07 02 03 00 00 46 04 0c 0d 0c 06 05 0f 0a 00 34 19 0c 0c 06 0f 07 0d
+00 00 5c 04 0e 0a 00 0f 08 0c 0a 00 5a 04 09 54 21 14 38 00 22 0c 04 04 00
+63 32 00 00 00 32 00 4d 20 56 6f 69 63 65 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mal.Voice*
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 19 00 04 0f 13 00 4d 04 06 12 06 00 02 0f 00 00 47 04 05 0b 19 00 07 0f
+00 00 63 08 00 0a 19 00 07 0f 00 00 4e 28 03 04 20 00 30 26 42 0c 02 04 00
+28 63 00 00 00 32 00 4d 61 6c 2e 56 6f 69 63 65 2a 63 63 63 32 32 32 00 00
+00 00 00 00 0c 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Male Voice
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 04 0f 2c 00 32 3f 03 0b 02 03 01 0f 0d 00 3c 10 00 0f 02 04 01 0f
+23 00 3b 00 06 0e 00 01 06 0f 08 03 5f 0d 03 4b 0a 07 05 01 62 0c 05 04 00
+63 03 00 00 00 32 00 4d 61 6c 65 20 56 6f 69 63 65 63 63 63 32 32 32 00 1f
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MaleVoices
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 04 0f 2c 00 32 1c 03 0b 02 03 01 0f 0d 00 3c 05 00 0f 02 04 01 0f
+23 00 3b 00 06 0e 00 01 06 0f 08 03 5f 04 03 4b 1a 00 05 01 62 11 00 04 00
+63 32 00 00 00 32 00 4d 61 6c 65 56 6f 69 63 65 73 63 63 63 32 32 32 00 11
+00 31 00 04 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Other
+
+** Name: Quartet..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+05 07 00 05 0e 00 45 52 00 00 0c 07 00 05 0e 0e 45 56 08 06 0c 1f 00 06 0f
+00 05 63 04 00 0c 1f 00 07 0f 0a 06 63 08 06 2c 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 51 75 61 72 74 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Quartet..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+05 07 00 05 0e 00 41 52 00 00 0c 07 00 05 0e 0e 41 56 08 06 0c 1f 00 06 0f
+00 00 63 04 00 0c 1f 00 07 0f 0a 00 63 08 06 2c 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 51 75 61 72 74 65 74 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Quartet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 07 00 05 0e 00 44 51 00 00 0e 07 00 05 0e 0e 45 55 04 06 0e 1f 00 06 0f
+00 06 63 08 00 0c 1f 00 07 0f 0a 06 63 08 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 51 75 61 72 74 65 74 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Quartet..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 07 00 05 0e 00 41 51 00 00 0e 07 00 05 0e 0e 41 55 04 06 0e 1f 00 06 0f
+00 00 63 08 00 0c 1f 00 07 0f 0a 00 63 08 06 34 22 0e 13 08 56 18 07 04 00
+63 63 00 00 00 32 00 51 75 61 72 74 65 74 2e 2e 32 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 7
+14 06 00 04 07 14 02 49 12 06 0e 08 02 04 09 14 02 59 13 00 0e 09 02 04 0b
+00 01 63 09 06 0e 09 02 04 0a 00 01 5e 0a 00 3d 21 08 0c 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 31 63 63 63 32 32 32 00 54
+00 30 00 32 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 8
+1f 17 09 03 0c 14 02 48 3b 03 0a 04 02 05 07 14 01 63 13 06 1f 07 02 05 0b
+00 01 63 13 06 0a 03 01 05 0b 00 01 63 0a 00 3e 21 0c 16 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 32 63 63 63 32 32 32 00 60
+00 10 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 17 09 03 0c 14 02 48 3b 03 0d 04 02 05 07 14 01 63 13 06 1f 07 02 05 0b
+00 01 63 13 06 0d 03 01 05 0b 00 01 63 0a 00 3e 21 0c 16 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 32 63 63 63 32 32 32 00 60
+00 10 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.3
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 9
+1f 1f 05 02 0f 27 02 50 0a 06 1f 1f 05 02 0f 00 02 43 0a 00 1a 1f 07 04 0f
+00 06 56 10 06 1a 1f 07 04 0f 00 01 5e 04 00 14 63 00 0c 00 63 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 33 63 63 63 32 32 32 00 00
+00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 05 02 0f 27 02 50 0a 06 1f 1f 05 02 0f 00 02 43 0d 00 1a 1f 07 04 0f
+00 06 56 10 06 1a 1f 07 04 0f 00 01 5e 04 00 14 63 00 0c 00 63 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 33 63 63 63 32 32 32 00 00
+00 30 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.4
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 10
+08 04 00 04 0f 14 01 3e 13 06 07 07 00 04 0f 14 01 51 0a 02 10 1f 00 04 0f
+14 01 63 09 04 1b 09 00 04 0b 14 01 5f 13 00 3c 1f 01 14 00 52 05 02 04 00
+63 32 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 34 63 63 63 32 32 32 00 00
+00 30 00 32 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.5
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 11
+0e 02 00 01 0a 13 00 44 04 03 0b 06 00 05 0e 00 03 63 00 06 0e 06 00 05 0e
+00 03 5b 08 00 0e 06 00 05 0e 00 03 63 04 00 35 1c 0b 1b 00 32 18 02 04 00
+28 63 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 35 63 63 63 32 32 32 00 50
+00 10 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Ensem.5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 02 00 01 0d 13 00 44 04 03 0b 06 00 05 0e 00 03 63 00 06 0e 06 00 05 0e
+00 03 5b 08 00 0e 06 00 05 0e 00 03 63 04 00 35 1c 0b 1b 00 32 18 02 04 00
+28 63 00 00 00 32 00 53 79 2e 45 6e 73 65 6d 2e 35 63 63 63 32 32 32 00 50
+00 10 00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Voice 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 27
+0c 0e 00 04 0f 0a 40 41 04 06 0a 0e 00 04 0f 0a 40 41 04 00 0a 0c 00 06 0f
+0a 42 63 04 06 0a 0e 00 06 0f 0a 42 63 08 00 2c 1e 0a 50 04 4a 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 56 6f 69 63 65 20 31 63 56 63 2e 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Voice 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 0e 00 04 0f 0a 40 41 04 06 0d 0e 00 04 0f 0a 40 41 04 00 0d 0c 00 06 0f
+0a 42 63 04 06 0d 0e 00 06 0f 0a 42 63 08 00 2c 1e 0a 50 04 4a 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 56 6f 69 63 65 20 31 63 56 63 2e 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Voice 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 28
+12 02 01 04 0f 00 00 37 04 0c 0f 02 01 02 0b 00 00 31 04 0b 0e 02 01 05 0a
+0f 02 63 04 0b 0e 02 01 05 0a 0f 02 63 08 08 34 1e 12 2c 00 42 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 56 6f 69 63 65 20 32 63 3e 63 2f 32 32 00 00
+00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Voice 2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 02 01 04 0f 00 00 37 04 0c 0f 02 01 02 0b 00 00 31 04 0b 0e 02 01 05 0d
+0f 02 63 04 0b 0e 02 01 05 0d 0f 02 63 08 08 34 1e 12 2c 00 42 18 02 04 00
+28 32 00 00 00 32 00 53 79 2e 56 6f 69 63 65 20 32 63 3e 63 2f 32 32 00 00
+00 20 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Syntvoice*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 22 03 0b 17 00 06 0f 00 01 52 04 01 0c 0d 00 07 0b
+00 02 42 08 06 11 0f 00 07 0f 00 01 63 04 03 3b 1e 0b 21 00 42 18 02 04 00
+28 63 00 00 00 32 00 53 79 6e 74 76 6f 69 63 65 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: VocalNuts
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 2
+1f 00 00 04 0f 00 40 47 2f 00 0e 08 07 07 0f 05 00 4c 00 06 13 1c 0d 0c 06
+08 00 63 05 06 14 11 0d 0b 00 00 03 63 04 00 7a 10 00 51 00 68 17 00 04 00
+63 32 00 00 00 32 00 56 6f 63 61 6c 4e 75 74 73 20 63 63 63 32 32 32 06 30
+00 30 00 01 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: > Voices <
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0e 00 07 0f 63 03 45 04 04 0a 1f 00 03 0f 00 01 42 04 04 09 1f 00 07 0f
+00 06 44 1f 02 08 0e 00 06 0f 00 46 63 04 05 3c 23 2a 23 00 36 18 02 04 00
+28 41 00 00 00 32 00 3e 20 56 6f 69 63 65 73 20 3c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: > Voices <
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0e 00 07 0f 63 00 45 04 04 0a 1f 00 03 0f 00 00 42 04 04 09 1f 00 07 0f
+00 00 44 1f 02 08 0e 00 06 0f 00 40 63 04 05 3c 23 2a 23 00 36 18 02 04 00
+28 41 00 00 00 32 00 3e 20 56 6f 69 63 65 73 20 3c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Voices
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 27
+1f 00 00 04 0f 00 00 39 20 03 0b 02 03 01 0f 05 00 40 05 00 0f 02 04 01 0f
+08 00 35 03 06 0e 00 01 06 0f 00 03 63 04 03 7b 1a 00 05 01 62 11 00 04 00
+63 32 00 00 00 32 00 56 6f 69 63 65 73 20 20 20 20 63 63 63 32 32 32 00 01
+00 01 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Whisper
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 00 01 0e 00 40 5c 39 00 0b 08 00 04 0d 26 02 63 05 04 10 0a 00 06 0c
+00 03 41 3e 06 0b 08 00 04 0d 00 02 61 03 08 3e 4f 00 44 63 30 11 04 04 00
+63 15 00 00 00 32 00 57 68 69 73 70 65 72 20 20 20 63 63 63 32 32 32 00 2f
+00 31 00 60 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wind Voice
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 24
+06 1d 01 02 0f 00 01 06 17 00 00 00 0c 02 0f 2e 01 53 19 0e 17 01 00 02 0a
+00 02 4b 08 08 0b 01 06 05 0f 01 02 5c 08 0e 01 63 00 52 00 53 18 07 04 00
+63 63 00 00 00 32 00 57 69 6e 64 20 56 6f 69 63 65 63 63 63 32 32 32 00 34
+00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 22
+
+* CATEGORY PERCUSSION
+
+
+* SUBCATEGORY Bell
+
+
+** Name: Agogo *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 07 0f 00 01 49 08 06 1f 1f 00 07 0f 00 00 41 0c 00 1a 0f 00 07 00
+00 02 63 04 06 1a 0f 00 07 00 00 03 63 04 00 44 12 00 00 00 32 24 02 04 00
+28 63 00 00 00 32 00 41 67 6f 67 6f 20 20 20 20 2a 63 63 63 32 32 32 00 4f
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Agogo Bell
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 11
+1f 12 19 03 0c 06 02 57 16 0c 1f 13 19 04 0c 11 02 59 3c 09 1f 11 10 06 0e
+00 01 63 08 0a 1f 11 0f 06 0a 00 02 63 08 0a 7c 13 00 06 00 62 18 04 04 00
+63 32 00 00 00 32 00 41 67 6f 67 6f 20 42 65 6c 6c 63 63 63 32 32 32 00 20
+0a 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Agogo Bell
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 19 03 0c 06 02 57 16 0c 1f 13 19 04 0c 11 02 59 3c 09 1f 11 10 06 0e
+00 01 63 08 0d 1f 11 0f 06 0d 00 02 63 08 0a 7c 13 00 06 00 62 18 04 04 00
+63 32 00 00 00 32 00 41 67 6f 67 6f 20 42 65 6c 6c 63 63 63 32 32 32 00 20
+0d 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Analobell*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 0a 00 04 00 38 00 54 10 0d 1f 03 08 03 00 4c 00 51 09 08 17 06 08 03 00
+14 05 63 10 0b 1d 0a 08 03 00 0e 02 63 0a 0e 04 23 00 00 00 32 02 02 04 00
+28 63 00 00 00 32 00 41 6e 61 6c 6f 62 65 6c 6c 2a 63 63 63 32 32 32 00 04
+00 18 00 04 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bangkok
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 1a 00 05 07 00 01 58 09 08 1e 10 00 03 04 00 03 57 08 15 1c 08 05 05 0b
+00 00 62 04 0e 1a 0c 05 04 04 00 00 60 0a 00 0c 1e 00 00 00 42 1a 03 04 00
+63 32 26 2a 00 32 00 42 61 6e 67 6b 6f 6b 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Bells
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 00 02 07 00 01 50 00 1b 1f 10 0c 03 0f 00 01 4e 10 0b 1f 0b 00 05 0e
+00 05 62 04 03 1b 0f 0c 03 0f 00 05 4f 04 0c 2c 18 00 00 00 22 0c 04 04 00
+28 32 00 00 00 32 00 42 61 73 73 20 42 65 6c 6c 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Bells
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 00 02 07 00 00 50 00 1b 1f 10 0c 03 0f 00 00 4e 10 0b 1f 0b 00 05 0e
+00 00 62 04 03 1b 0f 0c 03 0f 00 00 4f 04 0c 2c 18 00 00 00 22 0c 04 04 00
+28 32 00 00 00 32 00 42 61 73 73 20 42 65 6c 6c 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 31
+1f 16 07 03 0a 00 01 4c 16 06 1f 10 0a 04 08 00 01 44 0a 00 19 09 00 04 00
+00 03 60 04 06 18 09 00 06 00 00 02 5f 00 00 3c 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 07 03 0a 00 01 4c 16 06 1f 10 0a 04 08 00 01 44 0d 00 19 09 00 04 00
+00 03 60 04 06 18 09 00 06 00 00 02 5f 00 00 3c 1e 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 20 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell Ensem
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 05 00 04 04 50 04 51 20 0e 1e 0a 01 04 02 50 04 53 1f 08 1e 1d 0a 04 0f
+00 02 5c 05 0e 1f 1f 0a 04 0f 00 03 5c 04 08 04 1a 00 00 00 52 1d 02 04 00
+63 32 00 32 00 32 00 42 65 6c 6c 20 45 6e 73 65 6d 63 63 63 32 32 32 00 30
+00 46 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell Pad
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 30
+12 0b 0f 04 07 00 40 43 1c 00 1f 08 07 07 0f 05 00 63 05 00 0e 07 02 07 0f
+08 03 5c 00 06 15 08 04 05 0f 00 03 63 03 06 7e 1f 00 06 00 4a 1d 02 04 00
+63 32 00 00 00 32 00 42 65 6c 6c 20 50 61 64 20 20 63 63 63 32 32 32 06 30
+00 51 00 04 00 56 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 04 01 02 0d 00 01 52 0d 03 1b 0f 00 03 0e 58 04 57 0d 08 1d 0f 03 03 0e
+57 05 63 08 03 1e 02 03 03 0e 00 03 63 08 0e 34 0c 00 06 00 42 00 02 04 00
+63 11 06 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 01 02 0d 00 01 52 0d 03 1b 0f 00 03 0e 58 02 57 0d 08 1d 0f 03 03 0e
+57 01 63 08 03 1e 02 03 03 0e 00 00 63 08 0e 34 0c 00 06 00 42 00 02 04 00
+63 11 06 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 04 00 05 00 62 04 38 2a 16 1f 07 00 04 01 00 02 4a 2a 00 1f 07 00 05 00
+00 06 63 04 0b 1f 08 00 05 00 00 05 60 0d 08 3c 14 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 04 00 05 00 62 01 38 2a 16 1f 07 00 04 01 00 01 4a 2a 00 1f 07 00 05 00
+00 00 63 04 0b 1f 08 00 05 00 00 00 60 0d 08 3c 14 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 10 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 04 01 01 0b 16 02 4e 05 03 15 0e 00 01 0d 00 03 54 10 16 1c 06 04 02 07
+00 04 63 08 16 18 18 03 01 0e 00 04 62 04 10 24 09 00 04 00 42 24 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 30
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 04 01 01 0b 16 01 4e 05 03 15 0e 00 01 0d 00 01 54 10 16 1c 06 04 02 07
+00 00 63 08 16 18 18 03 01 0e 00 01 62 04 10 24 09 00 04 00 42 24 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 30
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....4
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 0a 17 05 01 00 02 4e 2d 06 19 0a 1f 03 02 00 03 41 2d 04 19 07 12 04 07
+13 05 63 0a 06 19 07 0f 03 07 13 47 63 0a 03 7c 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....4
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 0a 17 05 01 00 01 4e 2d 06 19 0a 1f 03 02 00 01 41 2d 04 19 07 12 04 07
+13 01 63 0a 06 19 07 0f 03 07 13 40 63 0a 03 7c 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....5
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 0a 02 03 01 00 04 51 2d 06 19 0a 1f 05 02 00 03 48 08 04 19 07 12 04 07
+13 06 62 0d 06 19 07 07 04 07 13 45 63 04 03 76 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....5
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 0a 02 03 01 00 01 51 2d 06 19 0a 1f 05 02 00 01 48 08 04 19 07 12 04 07
+13 01 62 0d 06 19 07 07 04 07 13 40 63 04 03 76 14 0a 00 39 06 0c 02 04 00
+63 15 27 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1a 0e 04 00 00 05 4e 2d 13 1f 0a 00 05 00 00 04 49 08 0b 1f 1f 00 04 0f
+00 05 49 0d 0b 1f 06 00 04 00 00 06 63 04 03 41 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1a 0e 04 00 00 01 4e 2d 13 1f 0a 00 05 00 00 01 49 08 0b 1f 1f 00 04 0f
+00 01 49 0d 0b 1f 06 00 04 00 00 00 63 04 03 41 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1a 0e 04 00 00 04 4e 28 03 1f 0a 00 05 00 00 04 49 16 03 1f 1f 00 04 0f
+00 04 49 16 03 1f 06 00 06 00 00 06 63 04 03 42 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1a 0e 04 00 00 01 4e 28 03 1f 0a 00 05 00 00 02 49 16 03 1f 1f 00 04 0f
+00 01 49 16 03 1f 06 00 06 00 00 00 63 04 03 42 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 1f 04 00 00 05 4b 19 03 1f 00 00 02 0f 00 04 4d 16 1b 1f 0d 1f 04 00
+00 06 63 04 03 1f 0a 07 04 00 00 05 63 04 03 7c 5c 00 01 63 32 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 1f 04 00 00 01 4b 19 03 1f 00 00 02 0f 00 01 4d 16 1b 1f 0d 1f 04 00
+00 01 63 04 03 1f 0a 07 04 00 00 01 63 04 03 7c 5c 00 01 63 32 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 15 09 03 0a 00 03 63 34 13 12 1f 0a 05 0f 00 43 63 0d 03 12 1f 0a 05 0f
+00 45 63 19 03 12 08 0a 05 0f 00 46 63 04 03 45 1a 00 00 39 66 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell.....9
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 15 09 03 0a 00 00 63 34 13 12 1f 0a 05 0f 00 40 63 0d 03 12 1f 0a 05 0f
+00 40 63 19 03 12 08 0a 05 0f 00 40 63 04 03 45 1a 00 00 39 66 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell....10
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 06 04 0a 00 04 3f 24 13 1f 0c 06 03 0f 00 04 3f 16 03 1f 06 07 03 0c
+00 45 48 0d 03 18 04 09 04 0c 00 06 63 08 03 43 1a 00 00 1c 66 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 31 30 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell....10
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 06 04 0a 00 01 3f 24 13 1f 0c 06 03 0f 00 01 3f 16 03 1f 06 07 03 0c
+00 41 48 0d 03 18 04 09 04 0c 00 01 63 08 03 43 1a 00 00 1c 66 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 31 30 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell....11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 0e 04 0f 00 02 48 1c 03 1f 0b 00 05 0a 00 04 5c 24 1b 1f 08 00 04 0a
+00 05 5d 08 03 1f 10 00 04 0b 00 05 63 08 03 7e 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bell....11
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 0e 04 0f 00 02 48 1c 03 1f 0b 00 05 0a 00 00 5c 24 1b 1f 08 00 04 0a
+00 00 5d 08 03 1f 10 00 04 0b 00 00 63 08 03 7e 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 65 6c 6c 2e 2e 2e 2e 31 31 63 63 63 32 32 32 00 00
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BelleBell*
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 08 06 02 0d 16 02 5c 07 0e 18 08 06 02 0d 15 02 5b 08 08 1f 0a 08 03 0e
+0d 01 61 00 00 1c 0a 08 04 0e 0b 01 63 00 06 04 19 00 24 00 32 1d 01 04 00
+28 63 00 00 00 30 00 42 65 6c 6c 65 42 65 6c 6c 2a 63 63 63 32 32 32 00 09
+00 0b 00 04 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bells
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0c 0d 04 05 00 00 57 11 03 1f 0c 0d 04 05 00 40 5f 04 03 1f 0c 0d 04 05
+00 38 61 36 03 1f 0c 0d 04 05 00 00 63 14 03 47 1d 00 03 13 5e 30 04 04 00
+63 32 00 00 00 32 00 42 65 6c 6c 73 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BellyStuff
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 0b 0f 04 07 00 40 43 1c 00 13 0c 07 07 0b 05 00 58 05 00 1f 07 02 07 0f
+08 03 5c 00 06 13 0c 04 05 0a 00 03 57 03 06 7e 1f 00 06 00 4a 1d 02 04 00
+63 32 00 00 00 32 00 42 65 6c 6c 79 53 74 75 66 66 63 63 63 32 32 32 06 70
+00 61 00 04 00 66 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 04 01 02 0d 00 03 51 0c 03 1b 0f 00 03 0e 58 03 55 1a 08 1d 0f 03 03 0e
+57 07 63 00 03 1e 02 03 03 0e 00 06 63 04 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 01 02 0d 00 01 51 0c 03 1b 0f 00 03 0e 58 03 55 1a 08 1d 0f 03 03 0e
+57 04 63 00 03 1e 02 03 03 0e 00 00 63 04 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 04 01 02 0d 00 04 52 15 03 1b 0f 00 03 0e 58 04 57 12 08 1d 0f 03 03 0e
+57 05 63 0d 03 1e 02 03 03 0e 00 05 63 04 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 32 63 63 63 32 32 32 00 20
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 01 02 0d 00 01 52 15 03 1b 0f 00 03 0e 58 02 57 12 08 1d 0f 03 03 0e
+57 02 63 0d 03 1e 02 03 03 0e 00 00 63 04 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 32 63 63 63 32 32 32 00 20
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 04 01 02 0d 00 01 51 18 03 1b 0f 00 03 0e 58 03 5a 00 08 1d 0f 03 03 0e
+57 06 63 08 03 1e 02 03 03 0e 00 05 63 00 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Bell.3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 01 02 0d 00 01 51 18 03 1b 0f 00 03 0e 58 03 5a 00 08 1d 0f 03 03 0e
+57 04 63 08 03 1e 02 03 03 0e 00 00 63 00 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 42 69 67 20 42 65 6c 6c 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BowedBell
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 6
+0b 04 05 04 0f 00 42 55 22 06 0a 07 04 04 0f 00 02 47 0a 00 0b 1f 02 04 0f
+00 02 63 0d 06 0b 1f 02 05 0f 00 02 62 04 00 1c 1e 06 11 09 5a 0c 04 04 00
+63 28 00 00 00 32 00 42 6f 77 65 64 42 65 6c 6c 20 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrightBell
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 0e 05 02 0d 27 02 63 16 06 1f 0e 05 02 0e 1a 02 58 16 00 1a 1f 07 04 0f
+00 06 60 08 0e 1a 1f 07 04 0f 00 01 5e 08 08 14 1a 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 42 72 69 67 68 74 42 65 6c 6c 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Brthbells
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 16
+1c 08 00 03 0e 00 01 55 12 03 1c 07 00 01 0e 2e 01 58 27 0b 0e 04 00 02 0a
+00 02 63 04 0a 0d 09 00 02 0c 01 02 63 10 0b 04 54 00 47 00 53 18 07 04 00
+63 32 00 00 00 32 00 42 72 74 68 62 65 6c 6c 73 20 63 63 63 32 32 32 00 04
+00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Carnival!
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 19
+1f 1f 01 0f 0f 22 00 2f 04 08 18 10 1c 0e 01 24 40 40 05 06 1f 04 10 0f 0b
+2c 00 2b 00 00 17 1f 09 08 0f 00 00 54 04 0e 3a 63 3f 31 2c 5e 0c 07 04 00
+63 63 00 32 00 32 00 43 61 72 6e 69 76 61 6c 21 20 63 63 63 32 32 32 00 00
+00 10 00 07 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChurchBell
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 09 1f 03 04 00 01 5b 3d 03 1c 09 1f 04 04 00 04 53 05 00 1c 09 1f 04 04
+00 07 5a 04 03 1c 09 1f 03 04 00 07 63 04 03 2c 19 2a 0e 00 10 18 04 04 00
+28 32 00 00 00 32 00 43 68 75 72 63 68 42 65 6c 6c 63 63 63 32 32 32 08 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChurchBell
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 09 1f 03 04 00 01 5b 3d 03 1c 09 1f 04 04 00 01 53 05 00 1c 09 1f 04 04
+00 00 5a 04 03 1c 09 1f 03 04 00 00 63 04 03 2c 19 2a 0e 00 10 18 04 04 00
+28 32 00 00 00 32 00 43 68 75 72 63 68 42 65 6c 6c 63 63 63 32 32 32 08 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ClickChime
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 16 00 03 07 00 01 43 00 03 18 18 03 03 03 22 00 60 00 0c 16 07 06 03 06
+00 01 3c 08 03 1a 05 07 03 00 00 01 63 04 0b 39 23 00 08 00 42 18 04 04 00
+63 32 00 00 00 32 00 43 6c 69 63 6b 43 68 69 6d 65 63 63 63 32 32 32 00 31
+00 03 00 11 00 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cloches *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 04 1f 04 00 00 00 4b 0f 0a 1f 05 1b 04 00 00 00 49 10 0c 1e 09 16 03 00
+00 00 63 03 08 1f 09 0a 03 00 00 00 63 04 0e 04 23 00 00 00 62 11 02 04 00
+28 32 00 00 00 32 00 43 6c 6f 63 68 65 73 20 20 2a 63 63 63 32 32 32 00 06
+00 04 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cow Bell
+** Source: Yamaha DX11 factory preset, bank D, voice 10
+1f 0a 1f 03 0c 00 00 43 20 03 1f 16 00 04 0b 00 00 4f 24 03 1f 12 10 08 07
+00 00 5f 34 03 1f 12 12 08 0f 00 00 63 38 03 3c 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 43 6f 77 20 42 65 6c 6c 20 20 63 63 63 32 32 32 0b 07
+0c 04 0b 0e 09 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cow-Belle*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 17 1f 09 00 00 00 51 38 03 1f 14 1f 0a 00 00 00 47 10 03 1a 0e 1f 09 00
+00 03 63 04 13 1a 10 1f 08 00 00 02 63 04 0b 04 23 00 00 00 62 18 01 04 00
+28 32 00 00 00 32 00 43 6f 77 2d 42 65 6c 6c 65 2a 63 63 63 32 32 32 0b 23
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 07 06 05 02 1f 04 41 04 0b 1f 1f 04 04 0f 00 05 4a 1c 0b 16 07 06 05 02
+1f 06 51 0c 0b 1f 1f 04 04 0f 00 06 63 04 0b 6a 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 07 06 05 02 1f 01 41 04 0b 1f 1f 04 04 0f 00 01 4a 1c 0b 16 07 06 05 02
+1f 01 51 0c 0b 1f 1f 04 04 0f 00 00 63 04 0b 6a 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+02 0c 06 03 0c 1f 05 3b 2b 0b 0c 09 0e 03 03 00 03 4d 1c 0b 18 09 07 03 03
+1f 07 50 0c 0b 18 09 05 06 0e 00 45 63 04 0b 72 19 00 00 40 56 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+02 0c 06 03 0c 1f 01 3b 2b 0b 0c 09 0e 03 03 00 01 4d 1c 0b 18 09 07 03 03
+1f 01 50 0c 0b 18 09 05 06 0e 00 40 63 04 0b 72 19 00 00 40 56 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 1f 02 02 0f 1f 04 35 03 0b 07 1f 02 02 0f 00 04 46 02 0b 13 1f 02 02 0f
+1f 06 4a 03 0b 1f 1f 03 03 0e 00 45 63 00 0b 72 0b 00 0d 40 66 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong.....3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 1f 02 02 0f 1f 00 35 03 0b 07 1f 02 02 0f 00 00 46 02 0b 13 1f 02 02 0f
+1f 00 4a 03 0b 1f 1f 03 03 0e 00 40 63 00 0b 72 0b 00 0d 40 56 0c 04 04 00
+63 32 00 00 00 32 00 47 6f 6e 67 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gong Ageng
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 04 01 01 0b 16 04 43 05 03 07 04 00 01 0d 00 04 47 05 16 10 06 04 02 07
+00 03 63 04 16 18 18 03 01 0e 00 03 5e 04 10 04 52 00 07 00 62 18 04 04 00
+28 32 00 00 00 32 00 47 6f 6e 67 20 41 67 65 6e 67 63 63 63 32 32 32 00 0a
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gongs *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 04 0f 00 03 53 05 0b 1f 1f 00 03 0f 00 00 55 01 0b 1f 0d 00 02 0a
+00 01 45 0a 0b 16 09 0f 03 0e 00 02 5a 00 0b 6b 63 20 50 00 73 18 03 04 00
+28 63 00 00 00 29 00 47 6f 6e 67 73 20 20 20 20 2a 63 63 63 32 32 32 00 70
+00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HiTine81Z
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 10
+1f 0d 09 0f 0c 27 02 3d 35 10 1f 12 02 04 0e 19 04 56 05 16 1f 0c 08 0d 0c
+00 43 60 04 0e 1f 08 04 07 0e 00 43 63 05 10 3c 14 08 02 1b 56 11 02 04 00
+63 32 00 00 00 32 00 48 69 54 69 6e 65 38 31 5a 20 63 63 63 32 32 32 00 7f
+00 01 00 18 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HumorBells
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 06 0a 04 0d 00 03 44 16 03 1f 06 06 04 0d 00 04 56 19 0b 13 06 06 05 0d
+00 06 62 04 0b 1f 06 06 04 0d 00 05 57 04 0a 7d 24 23 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 48 75 6d 6f 72 42 65 6c 6c 73 63 63 63 32 32 32 00 10
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HumorBells
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 06 0a 04 0d 00 01 44 16 03 1f 06 06 04 0d 00 00 56 19 0b 13 06 06 05 0d
+00 00 62 04 0b 1f 06 06 04 0d 00 00 57 04 0a 7d 24 23 00 00 02 0c 02 04 00
+63 63 00 00 00 32 00 48 75 6d 6f 72 42 65 6c 6c 73 63 63 63 32 32 32 00 10
+00 20 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KeyBell
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 0d 04 09 00 43 3f 2d 06 1f 0e 0d 04 09 00 43 3f 2d 00 1f 09 08 04 0d
+00 04 5f 05 0e 1f 09 08 04 0d 00 04 63 04 08 04 1f 0b 04 1a 5d 1d 02 04 00
+63 0a 50 00 00 32 00 4b 65 79 42 65 6c 6c 20 20 20 63 63 63 32 32 32 00 70
+00 60 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Large Ben
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 04 01 02 0d 00 04 54 0c 03 1b 0f 00 03 0e 58 06 63 1f 08 1d 0f 03 03 0e
+57 06 63 0c 03 1e 02 03 03 0e 00 05 63 05 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 4c 61 72 67 65 20 42 65 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Large Ben
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 04 01 02 0d 00 01 54 0c 03 1b 0f 00 03 0e 58 03 63 1f 08 1d 0f 03 03 0e
+57 04 63 0c 03 1e 02 03 03 0e 00 00 63 05 0e 74 0c 00 06 00 63 00 02 04 00
+63 11 06 00 00 32 00 4c 61 72 67 65 20 42 65 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LastTwango
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 0a 07 08 03 00 03 58 16 03 13 1c 09 04 09 00 03 63 00 1b 16 0c 02 08 04
+00 04 63 00 1b 13 09 06 09 0e 00 05 63 0d 1b 12 23 00 00 00 02 18 04 04 00
+63 01 63 00 00 32 00 4c 61 73 74 54 77 61 6e 67 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: LastTwango
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 0a 07 08 03 00 00 58 16 03 13 1c 09 04 09 00 00 63 00 1b 16 0c 02 08 04
+00 00 63 00 1b 13 09 06 09 0e 00 00 63 0d 1b 12 23 00 00 00 02 18 04 04 00
+63 01 63 00 00 32 00 4c 61 73 74 54 77 61 6e 67 6f 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+--Bank 23
+
+** Name: LoTine81Z
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank A, voice 9
+1f 09 09 0f 0c 27 02 35 37 10 1f 04 03 04 0d 19 04 56 05 16 1f 0f 08 0d 0c
+00 43 60 04 0e 1f 0c 03 07 0e 00 43 63 05 10 3c 14 08 02 1b 56 05 02 04 00
+63 32 00 00 00 32 00 4c 6f 54 69 6e 65 38 31 5a 20 63 63 63 32 32 32 00 7f
+00 01 00 18 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MellowSqar
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 23
+1f 06 00 03 0f 00 02 4f 09 00 1f 0e 00 03 0f 00 02 55 0a 06 15 12 00 07 0f
+00 01 63 05 06 14 0e 00 07 0f 00 01 63 04 00 34 20 00 00 00 52 05 07 0c 00
+63 32 00 00 00 32 00 4d 65 6c 6c 6f 77 53 71 61 72 63 63 63 32 32 32 00 02
+00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Moooo Bell
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 10 12 06 05 00 03 4a 05 13 1f 10 12 06 05 00 05 47 0d 03 1f 10 12 06 05
+00 05 63 08 03 1f 10 12 08 05 00 06 63 0a 03 2c 23 00 00 00 62 18 05 04 00
+63 32 00 00 00 32 00 4d 6f 6f 6f 6f 20 42 65 6c 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Moooo Bell
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 12 06 05 00 00 4a 05 13 1f 10 12 06 05 00 00 47 0d 03 1f 10 12 06 05
+00 00 63 08 03 1f 10 12 08 05 00 00 63 0a 03 2c 23 00 00 00 62 18 05 04 00
+63 32 00 00 00 32 00 4d 6f 6f 6f 6f 20 42 65 6c 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mr.Rogers
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 0f 00 06 01 06 04 50 18 0b 1f 0d 00 06 01 03 04 4f 1b 09 1f 0a 00 05 01
+00 02 63 04 0e 1f 0c 06 04 0b 00 03 63 04 00 04 19 00 00 00 52 23 02 04 00
+63 32 00 32 00 32 00 4d 72 2e 52 6f 67 65 72 73 20 63 63 63 32 32 32 00 00
+00 13 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OhMy!Bells
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 03 0f 00 40 49 10 08 1f 1f 00 03 0f 00 40 49 10 0e 11 1f 05 03 0f
+63 00 63 13 10 11 1f 05 03 0f 63 00 63 13 16 04 0c 00 00 0f 00 0c 02 04 00
+63 32 00 00 00 32 00 4f 68 4d 79 21 42 65 6c 6c 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntCowBel
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 10 12 06 05 00 02 4f 17 13 1f 10 12 06 05 00 02 46 08 03 1f 10 12 06 05
+00 05 49 04 03 1f 10 12 08 05 00 04 63 04 03 28 23 00 00 00 62 18 05 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 43 6f 77 42 65 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntCowBel
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 10 12 06 05 00 00 4f 17 13 1f 10 12 06 05 00 00 46 08 03 1f 10 12 06 05
+00 00 49 04 03 1f 10 12 08 05 00 00 63 04 03 28 23 00 00 00 62 18 05 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 43 6f 77 42 65 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PluckBell
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 07 04 0d 00 43 63 35 08 1f 16 0f 07 0e 00 04 63 00 0e 1f 1f 0f 07 0e
+00 05 63 10 0e 1f 16 0a 06 0e 00 03 63 00 08 04 43 00 04 29 6f 18 04 04 00
+63 00 00 00 00 32 00 50 6c 75 63 6b 42 65 6c 6c 20 63 63 63 32 32 32 26 60
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBell1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 03 03 0f 0a 03 63 0d 03 1f 11 0c 04 0f 00 05 55 08 0b 1f 00 00 04 0f
+00 05 51 08 13 09 0d 09 06 0f 00 06 63 08 0b 46 1f 00 0e 00 02 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 65 6c 6c 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBell1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 03 03 0f 0a 00 63 0d 03 1f 11 0c 04 0f 00 00 55 08 0b 1f 00 00 04 0f
+00 00 51 08 13 09 0d 09 06 0f 00 00 63 08 0b 46 1f 00 0e 00 02 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 65 6c 6c 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBell2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 07 01 09 0a 43 55 04 03 19 1f 0a 06 0f 00 44 63 3d 0b 1f 1f 0a 06 0f
+00 45 63 38 13 18 0f 0a 06 0f 00 45 63 2a 0b 65 16 00 09 04 36 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 65 6c 6c 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBell2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 07 01 09 0a 40 55 04 03 19 1f 0a 06 0f 00 40 63 3d 0b 1f 1f 0a 06 0f
+00 40 63 38 13 18 0f 0a 06 0f 00 40 63 2a 0b 65 16 00 09 04 36 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 65 6c 6c 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBell2
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 0f 07 00 09 0a 40 55 04 03 19 1f 0a 06 0f 00 40 63 3d 0b 1f 1f 0a 06 0f
+00 40 63 38 13 18 0f 0a 06 0f 00 40 63 2a 0b 65 16 00 09 04 36 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 65 6c 6c 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SundayBell
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 04 01 01 0b 16 04 4f 22 01 15 0e 00 01 0d 00 06 53 05 13 1c 06 04 02 07
+00 06 63 16 11 18 18 03 01 0e 00 05 5e 04 12 24 07 00 04 00 62 0c 04 04 00
+28 32 00 00 00 32 00 53 75 6e 64 61 79 42 65 6c 6c 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SundayBell
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 04 01 01 0b 16 01 4f 22 01 15 0e 00 01 0d 00 01 53 05 13 1c 06 04 02 07
+00 01 63 16 11 18 18 03 01 0e 00 00 5e 04 12 24 07 00 04 00 62 0c 04 04 00
+28 32 00 00 00 32 00 53 75 6e 64 61 79 42 65 6c 6c 63 63 63 32 32 32 00 00
+00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Perc. 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 12
+1f 11 06 01 08 46 01 4d 3f 03 1f 15 05 01 0c 1e 01 4c 3c 03 1f 0b 06 05 08
+00 01 63 0a 06 1f 0f 06 05 0a 00 01 63 04 00 3c 22 00 0a 00 52 11 02 04 00
+63 32 00 00 00 32 00 53 79 2e 50 65 72 63 2e 20 31 63 63 63 32 32 32 00 30
+00 20 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Perc. 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank A, voice 13
+1f 08 00 01 00 00 00 32 13 05 1f 07 00 01 00 00 00 39 28 01 1a 08 00 04 00
+00 02 5c 00 05 1b 09 00 05 00 00 02 5f 08 01 3c 20 00 12 00 42 18 02 04 00
+63 32 00 00 00 32 00 53 79 2e 50 65 72 63 2e 20 32 63 63 63 32 32 32 00 10
+00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Perc. 3
+** Source: Yamaha DX11 factory preset, bank A, voice 14
+1f 14 00 04 00 1e 00 4d 08 00 1f 1a 08 01 04 00 00 3c 04 06 1a 16 0c 09 0c
+00 00 5b 04 10 16 15 07 07 0e 00 40 5e 04 16 3c 1f 00 00 00 52 18 02 04 00
+63 32 00 32 00 32 00 53 79 2e 50 65 72 63 2e 20 33 63 63 63 30 32 32 00 00
+00 60 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sy.Perc. 4
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank A, voice 15
+1f 05 00 05 04 1e 04 51 20 0e 1e 0a 01 05 02 1e 04 53 1f 08 1e 1d 0a 05 0f
+00 02 5c 05 0e 1f 1f 0a 05 0f 00 03 5c 04 08 04 1a 00 00 00 52 1d 02 04 00
+63 32 00 32 00 32 00 53 79 2e 50 65 72 63 2e 20 34 63 63 63 32 32 32 00 30
+00 46 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthBell
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 06 04 0e 00 05 54 0d 06 1f 06 06 04 0e 00 05 63 08 04 1f 06 06 04 0e
+00 05 5b 08 02 1f 06 06 04 0e 00 05 63 00 03 05 23 00 00 00 03 00 04 04 00
+63 01 63 00 00 32 00 53 79 6e 74 68 42 65 6c 6c 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthBell
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 06 04 0e 00 02 54 0d 06 1f 06 06 04 0e 00 00 63 08 04 1f 06 06 04 0e
+00 00 5b 08 02 1f 06 06 04 0e 00 00 63 00 03 05 23 00 00 00 03 00 04 04 00
+63 01 63 00 00 32 00 53 79 6e 74 68 42 65 6c 6c 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tube Bell
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 23
+1f 0e 05 02 0a 27 02 50 16 06 1f 0e 05 02 0e 1a 02 43 16 00 1a 1f 07 04 0f
+00 06 60 08 0e 1a 1f 07 04 0f 00 01 5e 08 08 14 1a 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 54 75 62 65 20 42 65 6c 6c 20 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tube Bell
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 05 02 0d 27 02 50 16 06 1f 0e 05 02 0e 1a 02 43 16 00 1a 1f 07 04 0f
+00 06 60 08 0e 1a 1f 07 04 0f 00 01 5e 08 08 14 1a 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 54 75 62 65 20 42 65 6c 6c 20 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tube Bells
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 26
+1a 04 01 01 0b 16 00 47 05 03 15 0e 00 01 0d 00 00 4c 05 16 1c 06 04 02 07
+00 00 63 04 16 18 18 03 01 0e 00 00 5e 04 10 24 07 00 04 00 62 24 04 04 00
+63 32 00 00 00 32 00 54 75 62 65 20 42 65 6c 6c 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Block
+
+
+** Name: "Air"imba
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 20
+1f 03 1a 0f 0f 00 00 3e 3d 05 1f 00 1f 03 00 00 01 40 05 00 1f 13 0b 03 0b
+00 01 51 28 06 1f 11 0a 06 0f 00 00 5c 2c 06 3a 63 00 63 00 63 0e 07 04 00
+63 32 00 00 00 32 00 22 41 69 72 22 69 6d 62 61 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: "Air"imba
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 1a 0f 0f 00 00 3e 3d 05 1f 00 1f 03 00 00 01 40 05 00 1f 13 0b 03 0b
+00 01 51 28 06 1f 11 0d 06 0f 00 00 5c 2c 06 3a 63 00 63 00 63 0e 07 04 00
+63 32 00 00 00 32 00 22 41 69 72 22 69 6d 62 61 20 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Balafon *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 17 18 0c 03 22 07 4e 18 03 1d 12 1a 08 04 23 04 4f 0e 00 1c 08 09 04 09
+24 02 63 03 11 1f 0b 18 06 00 14 02 63 04 10 04 23 00 00 00 32 11 02 04 00
+28 00 00 00 00 32 00 42 61 6c 61 66 6f 6e 20 20 2a 63 63 63 32 32 32 0c 08
+00 09 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboBlock
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 22
+17 19 15 08 0c 02 00 57 07 0c 1f 17 15 0a 0b 02 00 55 0c 02 1a 12 16 0a 0b
+01 00 5c 04 0a 1f 10 10 09 0a 00 00 5a 04 04 34 52 00 07 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 61 6d 62 6f 42 6c 6f 63 6b 63 63 63 32 32 32 00 01
+00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboBlock
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 19 15 08 0c 02 00 57 07 0c 1f 17 15 0a 0b 02 00 55 0c 02 1a 12 16 0a 0b
+01 00 5c 04 0a 1f 10 10 09 0d 00 00 5a 04 04 34 52 00 07 00 62 18 04 04 00
+28 32 00 00 00 32 00 42 61 6d 62 6f 42 6c 6f 63 6b 63 63 63 32 32 32 00 01
+00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboChiff
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 12 0f 0f 0c 52 03 51 16 0a 12 1f 12 0f 0f 27 02 5e 22 0b 12 0f 0c 0f 0c
+11 07 5b 08 13 13 1f 09 0f 0f 00 06 63 04 03 44 23 00 02 00 12 18 01 04 00
+63 00 63 00 00 32 00 42 61 6d 62 6f 43 68 69 66 66 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboChiff
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 12 0f 0f 0c 52 00 51 16 0a 12 1f 12 0f 0f 27 00 5e 22 0b 12 0f 0c 0f 0c
+11 00 5b 08 13 13 1f 09 0f 0f 00 00 63 04 03 44 23 00 02 00 12 18 01 04 00
+63 00 63 00 00 32 00 42 61 6d 62 6f 43 68 69 66 66 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 07 0f 00 02 02 4c 19 1c 12 12 06 05 09 00 02 4d 22 1a 1f 0a 06 06 0c
+00 04 63 13 1c 12 0a 07 06 00 00 05 63 0a 1b 5c 2c 63 04 00 22 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 07 0f 00 02 00 4c 19 1c 12 12 06 05 09 00 00 4d 22 1a 1f 0a 06 06 0c
+00 00 63 13 1c 12 0a 07 06 00 00 00 63 0a 1b 5c 2c 63 04 00 22 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 0a 0a 0c 02 04 4d 10 1c 12 12 06 05 09 00 05 46 16 12 1b 0a 0a 06 0c
+00 05 63 04 1c 12 0a 07 06 00 00 05 63 04 1b 5c 15 00 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0a 0a 0c 02 00 4d 10 1c 12 12 06 05 09 00 00 46 16 12 1b 0a 0a 06 0c
+00 00 63 04 1c 12 0a 07 06 00 00 00 63 04 1b 5c 15 00 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 0a 0a 0c 02 01 48 19 1c 12 12 06 05 09 00 04 46 16 1a 1b 0a 0a 06 0c
+00 05 63 04 1c 12 0a 07 06 00 00 05 63 04 1b 7c 15 00 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BamboMar.3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0a 0a 0c 02 00 48 19 1c 12 12 06 05 09 00 00 46 16 1a 1b 0a 0a 06 0c
+00 00 63 04 1c 12 0a 07 06 00 00 00 63 04 1b 7c 15 00 00 00 02 00 02 04 00
+63 32 00 32 00 32 00 42 61 6d 62 6f 4d 61 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bamboo *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 06 1f 03 00 46 02 3c 00 10 1c 12 0f 05 04 00 00 5b 01 13 17 1b 0f 05 04
+00 03 50 04 13 1a 0a 1f 05 00 00 02 63 00 0d 2a 17 0c 31 00 32 0c 02 04 00
+28 63 00 00 00 32 00 42 61 6d 62 6f 6f 20 20 20 2a 63 63 63 32 32 32 00 10
+00 14 00 71 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Castanet
+** Source: Yamaha DX11 factory preset, bank D, voice 13
+19 16 1f 03 00 00 00 52 20 06 18 16 1f 03 00 00 00 52 27 00 1f 15 00 0c 00
+00 00 63 00 00 1f 15 15 0c 00 00 00 63 00 06 1c 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 43 61 73 74 61 6e 65 74 20 20 63 63 63 32 32 32 0c 18
+0c 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Claves *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 04 03 1f 1d 0d 07 08 00 01 3d 00 03 1f 16 0f 0b 07
+00 01 46 0d 03 1f 1c 11 08 0f 00 01 63 04 03 03 23 00 00 00 32 24 02 04 00
+28 63 00 00 00 32 00 43 6c 61 76 65 73 20 20 20 2a 63 63 63 32 32 32 00 00
+0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MarimbLead
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 10 01 0c 63 44 62 22 0b 1f 18 10 01 0c 63 45 59 04 0b 1f 06 06 07 0c
+0e 46 5e 04 0b 1f 06 06 07 0c 0e 45 5e 04 0b 7c 32 23 00 52 40 18 04 04 00
+63 01 63 00 00 32 00 4d 61 72 69 6d 62 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MarimbLead
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 10 01 0c 63 42 62 22 0b 1f 18 10 01 0c 63 41 59 04 0b 1f 06 06 07 0c
+0e 40 5e 04 0b 1f 06 06 07 0c 0e 40 5e 04 0b 7c 32 23 00 52 40 18 04 04 00
+63 01 63 00 00 32 00 4d 61 72 69 6d 62 4c 65 61 64 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 12 09 0f 00 03 47 10 06 1f 00 15 05 0f 00 00 3f 08 00 1f 0f 00 05 00
+00 01 60 04 08 1f 0d 00 06 00 00 05 63 04 0e 3c 23 00 00 00 62 18 04 04 00
+00 32 00 00 00 32 00 4d 61 72 69 6d 62 61 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 19
+1f 16 0e 07 05 15 06 52 0f 0b 1a 18 0c 07 05 0c 02 52 0a 0b 17 1f 0a 07 0f
+00 02 62 08 0b 16 1f 0a 05 0f 00 01 62 00 0b 04 23 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 4d 61 72 69 6d 62 61 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 0e 07 05 15 06 52 0f 0b 1a 18 0c 07 05 0c 02 52 0a 0b 17 1f 0d 07 0f
+00 02 62 08 0b 16 1f 0a 05 0f 00 01 62 00 0b 04 23 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 4d 61 72 69 6d 62 61 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0e 07 0f 48 04 49 17 1b 1f 0f 10 06 08 63 05 4f 1a 13 1f 1f 12 07 0f
+3b 05 4b 34 1b 1f 1f 0a 06 0f 00 04 63 0d 13 02 1e 09 00 00 52 00 04 04 00
+63 28 00 00 00 32 00 4d 61 72 69 6d 62 61 20 20 20 63 63 63 32 32 32 00 0b
+00 03 08 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 00 06 00 00 05 63 28 03 1f 12 00 06 00 00 05 45 13 03 1f 0d 00 06 00
+00 05 44 16 03 1f 0c 00 06 00 00 06 63 04 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 00 06 00 00 03 63 28 03 1f 12 00 06 00 00 03 45 13 03 1f 0d 00 06 00
+00 02 44 16 03 1f 0c 00 06 00 00 00 63 04 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 31 63 63 63 32 32 32 00 00
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 00 07 00 00 05 5b 1f 08 1f 11 00 07 00 00 04 50 13 0e 1f 0a 00 07 00
+11 06 63 04 0e 1f 0a 00 07 00 11 05 63 04 00 2c 15 00 00 00 52 0c 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 32 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 00 07 00 00 03 5b 1f 08 1f 11 00 07 00 00 02 50 13 0e 1f 0a 00 07 00
+11 00 63 04 0e 1f 0a 00 07 00 11 00 63 04 00 2c 15 00 00 00 52 0c 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 32 63 63 63 32 32 32 00 30
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 00 07 00 00 04 4c 19 08 1f 11 00 07 00 00 03 49 16 0e 1f 0a 00 07 00
+11 06 63 04 0e 1f 0a 00 07 00 11 06 62 04 00 2c 15 00 00 00 52 00 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 00 07 00 00 00 4c 19 08 1f 11 00 07 00 00 00 49 16 0e 1f 0a 00 07 00
+11 00 63 04 0e 1f 0a 00 07 00 11 00 62 04 00 2c 15 00 00 00 52 00 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 05 03 00 00 04 58 0a 18 1f 11 00 07 00 00 04 50 10 0e 1f 0a 00 07 00
+11 05 63 04 0e 1f 0a 00 07 00 11 06 62 04 00 2c 15 00 00 00 52 0c 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 05 03 00 00 02 58 0a 18 1f 11 00 07 00 00 01 50 10 0e 1f 0a 00 07 00
+11 00 63 04 0e 1f 0a 00 07 00 11 00 62 04 00 2c 15 00 00 00 52 0c 02 05 00
+63 32 00 32 00 32 00 4d 61 72 69 6d 62 61 2e 2e 34 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 00 06 00 00 05 5d 28 03 1f 12 00 06 00 00 05 4d 00 03 1f 0d 00 06 00
+00 07 46 10 03 1f 0c 00 06 00 00 07 61 00 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 00 06 00 00 02 5d 28 03 1f 12 00 06 00 00 02 4d 00 03 1f 0d 00 06 00
+00 04 46 10 03 1f 0c 00 06 00 00 01 61 00 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 02 06 04 00 05 62 19 03 1f 12 00 06 00 00 05 4b 04 03 1f 0d 00 06 00
+00 06 44 16 03 1f 0c 00 06 00 00 06 63 04 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..6
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 02 06 04 00 02 62 19 03 1f 12 00 06 00 00 01 4b 04 03 1f 0d 00 06 00
+00 01 44 16 03 1f 0c 00 06 00 00 00 63 04 03 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 02 06 03 00 05 63 19 03 1f 12 00 06 00 00 03 4f 0a 03 1f 0d 00 06 00
+00 06 42 04 03 1f 0c 00 06 00 00 05 63 08 03 03 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 37 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Marimba..7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 02 06 03 00 02 63 19 03 1f 12 00 06 00 00 01 4f 0a 03 1f 0d 00 06 00
+00 01 42 04 03 1f 0c 00 06 00 00 00 63 08 03 03 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 61 72 69 6d 62 61 2e 2e 37 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Block
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 0c 0f 0c 00 41 51 0a 1b 1f 10 09 07 0d 2e 42 40 04 13 1f 10 09 04 0d
+00 44 63 04 1b 1f 10 12 05 0d 01 46 62 04 13 7e 1e 28 24 0f 27 18 07 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 20 42 6c 6f 63 6b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Block
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 0c 0f 0c 00 40 51 0a 1b 1f 10 09 07 0d 2e 40 40 04 13 1f 10 09 04 0d
+00 40 63 04 1b 1f 10 12 05 0d 01 40 62 04 13 7e 1e 28 24 0f 27 18 07 04 00
+63 32 00 00 00 32 00 4f 72 6e 74 20 42 6c 6f 63 6b 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynGameran
+** Source: Yamaha DX11 factory preset, bank D, voice 17
+0a 14 00 01 0b 00 40 2d 11 03 14 03 00 0f 0e 2e 00 41 27 0c 1f 1b 11 05 0a
+00 40 3f 0a 0a 1f 0f 00 0b 00 01 00 5a 10 0b 38 3a 00 63 50 5f 0b 05 04 00
+63 00 00 00 00 32 00 53 79 6e 47 61 6d 65 72 61 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynGameran
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 14 00 01 0b 00 40 2d 11 03 14 03 00 0f 0e 2e 00 41 27 0c 1f 1b 11 05 0a
+00 40 3f 0d 0a 1f 0f 00 0b 00 01 00 5a 10 0b 38 3a 00 63 50 5f 0b 05 04 00
+63 00 00 00 00 32 00 53 79 6e 47 61 6d 65 72 61 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthMarib
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 18 10 01 0c 63 43 5d 38 0b 0a 01 07 07 0f 00 45 52 00 03 1f 09 0f 07 0c
+0e 45 63 04 0b 0f 02 07 07 0e 00 46 63 04 03 7c 32 23 00 52 40 18 04 04 00
+63 01 63 00 00 32 00 53 79 6e 74 68 4d 61 72 69 62 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthMarib
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 10 01 0c 63 41 5d 38 0b 0a 01 07 07 0f 00 41 52 00 03 1f 09 0f 07 0c
+0e 40 63 04 0b 0f 02 07 07 0e 00 41 63 04 03 7c 32 23 00 52 40 18 04 04 00
+63 01 63 00 00 32 00 53 79 6e 74 68 4d 61 72 69 62 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tablas *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 1c 17 09 0a 00 03 63 0d 0b 19 1f 1b 09 06 00 00 63 00 0b 1f 05 00 09 0f
+00 00 63 3c 0b 13 10 11 06 0a 00 03 63 00 0b 02 18 00 26 00 32 18 0c 04 00
+28 63 00 00 00 13 00 54 61 62 6c 61 73 20 20 20 2a 63 63 63 32 32 32 00 06
+00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Block
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 12
+1f 18 01 08 00 00 02 55 07 0b 1f 18 12 0a 0c 00 02 55 0a 0b 1f 15 13 0a 0a
+00 01 63 04 0b 1f 12 13 09 00 00 01 63 04 0b 2c 52 00 07 00 62 24 04 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 20 42 6c 6f 63 6b 63 63 63 32 32 32 00 11
+00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Block
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 01 08 00 00 02 55 07 0b 1f 18 12 0a 0c 00 02 55 0a 0b 1f 15 13 0a 0d
+00 01 63 04 0b 1f 12 13 09 00 00 01 63 04 0b 2c 52 00 07 00 62 24 04 04 00
+28 32 00 00 00 32 00 57 6f 6f 64 20 42 6c 6f 63 6b 63 63 63 32 32 32 00 11
+00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 17 00 08 00 00 00 4b 0b 0b 1f 1f 16 07 0f 20 03 49 0f 0b 1a 0f 00 07 00
+00 02 63 03 0b 1f 1f 0c 06 0f 00 01 63 05 13 44 0e 00 63 00 42 11 02 04 00
+28 63 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 2a 63 63 63 32 32 32 00 0a
+00 49 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 0f 0c 0a 00 00 4d 0c 13 1f 10 12 09 0d 00 00 45 04 0b 1f 16 10 08 0c
+00 05 63 04 13 1f 10 12 09 0d 00 05 63 04 0b 44 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0f 0c 0a 00 00 4d 0c 13 1f 10 12 09 0d 00 00 45 04 0b 1f 16 10 08 0c
+00 00 63 04 13 1f 10 12 09 0d 00 00 63 04 0b 44 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 0f 0c 0a 00 01 4d 0c 13 1f 10 12 09 0d 00 02 37 04 0b 1f 16 10 08 0c
+00 04 42 04 13 1f 10 12 09 0d 00 05 63 04 0b 42 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0f 0c 0a 00 00 4d 0c 13 1f 10 12 09 0d 00 00 37 04 0b 1f 16 10 08 0c
+00 00 42 04 13 1f 10 12 09 0d 00 00 63 04 0b 42 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 0f 0c 0a 00 00 44 0c 13 1f 10 12 09 0d 00 01 4b 05 0b 1f 16 10 08 0c
+00 05 48 07 13 1f 10 12 09 0d 00 05 63 04 0b 42 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WoodBlock3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0f 0c 0a 00 00 44 0c 13 1f 10 12 09 0d 00 00 4b 05 0b 1f 16 10 08 0c
+00 00 48 07 13 1f 10 12 09 0d 00 00 63 04 0b 42 30 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 42 6c 6f 63 6b 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 24
+
+* SUBCATEGORY Chime
+
+
+** Name: BriteCelst
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 31
+1f 0c 00 06 01 0a 04 50 20 0e 1f 0c 00 06 01 0a 04 50 1f 08 1f 0b 09 05 0e
+00 02 63 05 0e 1f 0b 09 05 0e 00 03 63 04 08 04 1a 00 00 00 52 1d 02 04 00
+63 32 00 32 00 32 00 42 72 69 74 65 43 65 6c 73 74 63 63 63 32 32 32 00 20
+00 26 00 01 00 08 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celeste
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank A, voice 30
+19 1c 00 06 01 00 04 52 07 08 1f 10 00 06 01 00 04 46 16 0e 1f 0a 00 06 01
+00 02 63 04 0e 1f 0d 00 04 01 00 03 63 04 00 04 19 00 00 00 52 24 02 04 00
+63 32 00 32 00 32 00 43 65 6c 65 73 74 65 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celeste..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 1c 00 06 01 00 03 51 2e 10 1f 10 00 06 01 00 05 3c 19 0e 1f 0a 00 06 01
+00 05 63 04 0e 1f 0d 00 04 01 00 05 63 04 00 04 19 00 00 00 52 24 00 04 00
+63 32 00 32 00 32 00 43 65 6c 65 73 74 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celeste..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 1c 00 06 01 00 01 51 2e 10 1f 10 00 06 01 00 01 3c 19 0e 1f 0a 00 06 01
+00 01 63 04 0e 1f 0d 00 04 01 00 01 63 04 00 04 19 00 00 00 52 24 00 04 00
+63 32 00 32 00 32 00 43 65 6c 65 73 74 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celeste..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 12 06 00 00 01 3b 1f 10 1f 10 00 06 01 00 05 3b 08 0e 1f 0a 00 06 01
+00 04 63 0d 0e 1f 0d 00 04 01 00 06 63 04 00 04 19 00 00 00 52 24 00 04 00
+63 32 00 32 00 32 00 43 65 6c 65 73 74 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celeste..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 15 12 06 00 00 01 3b 1f 10 1f 10 00 06 01 00 02 3b 08 0e 1f 0a 00 06 01
+00 01 63 0d 0e 1f 0d 00 04 01 00 01 63 04 00 04 19 00 00 00 52 24 00 04 00
+63 32 00 32 00 32 00 43 65 6c 65 73 74 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chimes *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 07 02 0d 12 02 5c 10 09 1f 1f 09 02 0d 11 01 56 11 09 19 1f 07 03 0d
+00 42 53 08 0c 17 1f 07 03 0d 00 40 63 08 0d 6c 29 00 00 00 0b 24 02 04 00
+28 00 36 00 00 32 00 43 68 69 6d 65 73 20 20 20 2a 63 63 63 32 32 32 00 00
+00 30 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chiming
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 02 01 00 00 43 3d 2d 03 1f 05 07 02 0d 00 43 4d 16 06 1f 18 00 02 00
+00 07 4c 3d 03 1f 08 0a 05 0d 00 04 63 04 0b 02 19 02 01 16 5a 11 02 04 00
+63 28 00 00 00 32 00 43 68 69 6d 69 6e 67 20 20 20 63 63 63 32 32 32 00 60
+10 07 00 40 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank B, voice 22
+1f 1d 00 06 00 00 07 63 0a 03 1f 0a 00 06 00 0a 07 63 1f 03 1f 0c 00 05 00
+0f 07 63 08 03 1f 0e 01 06 00 00 07 5b 2d 03 3d 21 00 0a 00 32 18 02 04 00
+28 32 00 00 00 32 00 47 6c 6f 63 6b 65 6e 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1d 00 06 00 00 07 63 0a 03 1f 0d 00 06 00 0a 07 63 1f 03 1f 0c 00 05 00
+0f 07 63 08 03 1f 0e 01 06 00 00 07 5b 2d 03 3d 21 00 0d 00 32 18 02 04 00
+28 32 00 00 00 32 00 47 6c 6f 63 6b 65 6e 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 04 05 0a 23 02 4d 2a 06 1f 0e 05 02 09 00 04 3d 04 00 18 11 08 05 0f
+0a 05 63 04 0e 1f 11 08 05 0f 05 43 63 0d 00 26 23 00 00 00 3e 18 05 04 00
+63 63 28 00 00 32 00 47 6c 6f 63 6b 65 6e 2e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken..1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 04 05 0a 23 02 4d 2a 06 1f 0e 05 02 09 00 01 3d 04 00 18 11 08 05 0f
+0a 01 63 04 0e 1f 11 08 05 0f 05 41 63 0d 00 26 23 00 00 00 3e 18 05 04 00
+63 63 28 00 00 32 00 47 6c 6f 63 6b 65 6e 2e 2e 31 63 63 63 32 32 32 00 00
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 04 05 0a 23 02 4c 2d 0e 1f 0e 05 02 09 00 06 39 19 00 1e 12 0a 05 0c
+0a 05 63 04 0e 1f 11 08 05 0f 05 46 63 04 00 24 23 00 00 00 3e 24 05 04 00
+63 63 28 00 00 32 00 47 6c 6f 63 6b 65 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Glocken..2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 04 05 0a 23 02 4c 2d 0e 1f 0e 05 02 09 00 01 39 19 00 1e 12 0a 05 0c
+0a 01 63 04 0e 1f 11 08 05 0f 05 41 63 04 00 24 23 00 00 00 3e 24 05 04 00
+63 63 28 00 00 32 00 47 6c 6f 63 6b 65 6e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GoodVibes*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 0f 07 0d 00 47 3a 2a 16 19 1a 0c 07 0d 00 44 41 0a 10 14 1a 07 07 0d
+00 41 63 04 08 14 1a 07 07 0d 00 41 63 04 0e 04 1a 00 08 00 0e 18 02 04 00
+28 17 3b 00 00 32 00 47 6f 6f 64 56 69 62 65 73 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GreatVibes
+** Controls: KV, MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank C, voice 28
+1f 14 07 07 0d 00 43 63 04 06 1f 10 15 06 00 00 43 63 2a 0e 1f 14 0b 07 0d
+00 43 63 0d 06 1f 14 07 07 0d 00 43 63 04 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 47 72 65 61 74 56 69 62 65 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mod Chime
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 08 0f 00 00 45 5b 3f 03 0f 08 0d 06 09 00 44 63 0d 01 1f 1f 0b 06 0f
+00 46 63 3e 03 0e 08 0d 06 09 00 45 63 08 05 5e 19 13 07 5c 36 00 0c 04 00
+63 00 00 00 00 32 00 4d 6f 64 20 43 68 69 6d 65 20 63 63 63 32 32 32 00 20
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mod Chime
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0f 08 0f 00 00 42 5b 3f 03 0f 08 0d 06 09 00 42 63 0d 01 1f 1f 0b 06 0f
+00 42 63 3e 03 0e 08 0d 06 09 00 40 63 08 05 5e 19 13 07 5c 36 00 0c 04 00
+63 00 00 00 00 32 00 4d 6f 64 20 43 68 69 6d 65 20 63 63 63 32 32 32 00 20
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthChime
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+00 1f 10 04 0d 0a 44 63 0d 0d 0d 0a 1f 03 01 0a 45 4c 08 09 1f 09 08 04 02
+0a 45 60 1f 0c 10 05 09 06 03 0a 45 63 08 0c 4c 23 00 03 0a 4a 0c 04 04 00
+63 32 00 00 00 32 00 53 79 6e 74 68 43 68 69 6d 65 63 63 63 32 32 32 00 20
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthChime
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+00 1f 10 04 0d 0a 41 63 0d 0d 0d 0a 1f 03 01 0a 42 4c 08 09 1f 09 08 04 02
+0a 40 60 1f 0c 10 05 09 06 03 0a 40 63 08 0c 4c 23 00 03 0a 4a 0c 04 04 00
+63 32 00 00 00 32 00 53 79 6e 74 68 43 68 69 6d 65 63 63 63 32 32 32 00 20
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Triangle.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0c 04 0e 00 05 39 22 13 1f 1f 0c 04 0e 00 03 40 08 03 1f 1f 0c 04 0f
+00 05 63 2f 03 1f 1f 0c 04 0f 00 05 63 08 03 45 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 54 72 69 61 6e 67 6c 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Triangle.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0c 04 0e 00 00 39 22 13 1f 1f 0c 04 0e 00 00 40 08 03 1f 1f 0c 04 0f
+00 00 63 2f 03 1f 1f 0c 04 0f 00 00 63 08 03 45 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 54 72 69 61 6e 67 6c 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Triangle.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0c 04 0e 00 03 30 22 13 1f 0d 1f 04 00 00 04 61 13 03 1f 1f 0c 04 0f
+00 06 63 2a 03 1f 1f 0c 04 0f 00 06 63 08 03 46 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 54 72 69 61 6e 67 6c 65 2e 32 63 63 63 32 32 32 0a 00
+08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Triangle.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0c 04 0e 00 00 30 22 13 1f 0d 1f 04 00 00 00 61 13 03 1f 1f 0c 04 0f
+00 00 63 2a 03 1f 1f 0c 04 0f 00 00 63 08 03 46 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 54 72 69 61 6e 67 6c 65 2e 32 63 63 63 32 32 32 0a 00
+08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vib Lead.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 03 07 09 0e 00 04 51 08 1b 16 0a 07 09 0f 00 04 63 04 1b 17 0a 07 09 0f
+00 07 63 08 1b 18 16 07 09 0f 00 05 63 04 1b 2d 27 00 00 00 42 18 04 04 00
+28 32 00 00 00 32 00 56 69 62 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vib Lead.1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 03 07 09 0e 00 02 51 08 1b 16 0a 07 09 0f 00 01 63 04 1b 17 0a 07 09 0f
+00 00 63 08 1b 18 16 07 09 0f 00 00 63 04 1b 2d 27 00 00 00 42 18 04 04 00
+28 32 00 00 00 32 00 56 69 62 20 4c 65 61 64 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vib Lead.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 03 07 09 0e 00 04 51 08 0b 1f 0f 0a 0c 0b 00 05 3e 2a 13 17 0a 07 09 0f
+00 05 63 04 1b 1f 07 07 0a 0e 00 06 63 04 0b 2c 27 00 00 00 42 18 04 04 00
+28 32 00 00 00 32 00 56 69 62 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vib Lead.2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 03 07 09 0e 00 01 51 08 0b 1f 0f 0a 0c 0b 00 01 3e 2a 13 17 0a 07 09 0f
+00 00 63 04 1b 1f 07 07 0a 0e 00 00 63 04 0b 2c 27 00 00 00 42 18 04 04 00
+28 32 00 00 00 32 00 56 69 62 20 4c 65 61 64 2e 32 63 63 63 32 32 32 00 20
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.
+** Controls: KV, MW (LFO amplitude)
+** Source: Yamaha DX11 factory preset, bank B, voice 21
+1f 0f 0e 0a 0a 00 02 36 24 00 1f 0e 08 06 09 00 02 36 10 06 1f 11 05 04 0f
+00 02 61 04 16 1f 11 05 04 0f 00 42 61 04 10 04 1f 00 00 1f 3e 18 02 04 00
+63 32 1e 00 00 32 00 56 69 62 65 2e 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 0a 0a 0d 00 03 3b 19 12 1b 16 00 0c 07 00 05 57 16 13 1f 0a 0a 0d 0c
+00 02 60 04 0b 1f 09 07 06 0c 00 05 5e 04 0b 7c 15 00 00 00 22 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0a 0a 0d 00 01 3b 19 12 1b 16 00 0c 07 00 01 57 16 13 1f 0a 0a 0d 0c
+00 00 60 04 0b 1f 09 07 06 0c 00 00 5e 04 0b 7c 15 00 00 00 22 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....2
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 14 07 07 0d 00 44 63 08 06 1f 10 15 06 00 00 45 63 24 0e 1f 14 0b 07 0d
+00 44 63 0d 06 1f 14 07 07 0d 00 47 63 04 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....2
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 07 07 0d 00 40 63 08 06 1f 10 15 06 00 00 40 63 24 0e 1f 14 0b 07 0d
+00 40 63 0d 06 1f 14 07 07 0d 00 40 63 04 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....3
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 14 07 07 0d 00 42 63 0d 16 1f 10 15 06 00 00 44 63 16 0e 1f 14 0b 07 0d
+00 45 63 04 06 1f 14 07 07 0d 00 47 63 04 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....3
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 07 07 0d 00 40 63 0d 16 1f 10 15 06 00 00 40 63 16 0e 1f 14 0b 07 0d
+00 40 63 04 06 1f 14 07 07 0d 00 40 63 04 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 06 1f 09 04 00 43 3a 24 16 1b 09 03 06 0d 00 45 63 0d 0e 1b 09 03 06 0d
+00 44 63 04 0e 1f 15 06 08 0c 00 47 63 04 00 6d 21 00 00 63 02 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 06 1f 09 04 00 41 3a 24 16 1b 09 03 06 0d 00 42 63 0d 0e 1b 09 03 06 0d
+00 41 63 04 0e 1f 15 06 08 0c 00 40 63 04 00 6d 21 00 00 63 02 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 06 1f 09 04 00 43 39 10 1e 1b 09 03 06 0d 00 44 5b 16 1e 1b 09 03 06 0d
+00 44 63 04 1e 1f 15 06 08 0c 00 46 63 04 08 6d 21 00 00 63 02 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....5
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 06 1f 09 04 00 41 39 10 1e 1b 09 03 06 0d 00 40 5b 16 1e 1b 09 03 06 0d
+00 40 63 04 1e 1f 15 06 08 0c 00 40 63 04 08 6d 21 00 00 63 02 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....6
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 14 07 07 0d 00 44 63 0d 06 1f 10 15 06 00 00 45 63 24 0e 1f 14 0b 07 0d
+00 45 63 0d 06 1f 14 07 07 0d 00 47 63 08 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibe.....6
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 14 07 07 0d 00 41 63 0d 06 1f 10 15 06 00 00 41 63 24 0e 1f 14 0b 07 0d
+00 41 63 0d 06 1f 14 07 07 0d 00 41 63 08 00 07 16 00 00 2a 66 0c 02 04 00
+63 08 32 00 00 32 00 56 69 62 65 2e 2e 2e 2e 2e 36 63 63 63 32 32 32 00 20
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Vibesyn *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 0a 1f 05 00 15 05 54 0a 0b 1f 14 12 01 00 00 07 59 13 0c 1c 1b 0b 06 0e
+0b 00 63 04 16 1b 1a 0a 05 0e 0b 03 63 04 10 3c 23 00 00 00 42 0c 02 04 00
+28 63 00 00 00 32 00 56 69 62 65 73 79 6e 20 20 2a 63 63 63 32 32 32 00 10
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindChime1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 09 03 0b 00 43 52 2d 03 06 0f 09 02 0b 00 44 63 22 03 1f 12 09 02 0b
+00 44 63 22 03 1f 12 09 04 0b 00 47 62 22 03 06 2d 00 05 06 37 18 04 04 00
+28 32 00 00 00 32 00 57 69 6e 64 43 68 69 6d 65 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindChime1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 09 03 0b 00 40 52 2d 03 06 0f 09 02 0b 00 40 63 22 03 1f 12 09 02 0b
+00 40 63 22 03 1f 12 09 04 0b 00 40 62 22 03 06 2d 00 05 06 37 18 04 04 00
+28 32 00 00 00 32 00 57 69 6e 64 43 68 69 6d 65 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindChime2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0c 00 03 0e 00 02 50 19 03 1c 12 00 02 0e 2e 03 50 27 0b 0e 10 00 02 0a
+00 05 59 09 0a 11 0d 00 03 0c 01 06 62 22 0b 0e 4e 00 38 00 53 0c 07 04 00
+63 32 00 00 00 32 00 57 69 6e 64 43 68 69 6d 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WindChime2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0c 00 03 0e 00 00 50 19 03 1c 12 00 02 0e 2e 00 50 27 0b 0e 10 00 02 0a
+00 00 59 09 0a 11 0d 00 03 0c 01 00 62 22 0b 0e 4e 00 38 00 53 0c 07 04 00
+63 32 00 00 00 32 00 57 69 6e 64 43 68 69 6d 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone*
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 0e 06 0e 11 01 4b 10 16 1f 12 0d 05 0e 00 41 5a 04 13 19 10 0e 05 0d
+20 42 4b 08 16 1f 11 0c 05 0e 00 41 63 04 10 75 29 2c 00 36 09 18 02 04 00
+28 00 31 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank C, voice 27
+1f 16 00 09 05 00 01 5a 08 03 1f 17 10 05 05 00 01 56 10 13 1f 1f 12 07 0f
+00 01 63 04 03 1f 1f 0f 07 0f 00 02 63 04 03 2a 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 20 63 63 63 32 32 32 00 00
+00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 20
+1f 1f 16 09 0f 26 02 41 1f 13 1f 1f 16 09 0f 00 03 50 19 0b 1f 1f 0f 07 0f
+00 01 62 04 0b 1f 1f 0f 07 0f 00 02 62 0a 13 04 23 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 16 09 0f 26 02 41 1f 13 1f 1f 16 09 0f 00 03 50 19 0b 1f 1f 0f 07 0f
+00 01 62 04 0b 1f 1f 0f 07 0f 00 02 62 0d 13 04 23 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 07 07 0e 00 04 53 13 1e 1b 10 06 06 0e 00 05 56 04 16 1f 0d 07 07 0e
+00 07 63 0c 1b 1b 10 06 06 0e 00 05 63 00 0b 75 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone1
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 07 07 0e 00 01 53 13 1e 1b 10 06 06 0e 00 02 56 04 16 1f 0d 07 07 0e
+00 04 63 0c 1b 1b 10 06 06 0e 00 00 63 00 0b 75 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 07 07 0d 14 03 4f 0d 12 1f 12 07 04 0d 19 05 5d 08 1e 1f 0c 06 07 0d
+00 07 63 04 09 1f 0a 06 07 0d 00 05 63 04 0b 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone2
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 07 07 0d 14 01 4f 0d 12 1f 12 07 04 0d 19 03 5d 08 1e 1f 0c 06 07 0d
+00 04 63 04 09 1f 0a 06 07 0d 00 00 63 04 0b 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 05 05 0c 14 03 4f 0d 12 1d 16 00 0c 07 19 03 5b 2a 1e 1f 0c 06 07 0d
+00 07 63 04 11 1f 09 07 06 0c 00 06 63 04 0b 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 33 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone3
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 05 05 0c 14 01 4f 0d 12 1d 16 00 0c 07 19 01 5b 2a 1e 1f 0c 06 07 0d
+00 04 63 04 11 1f 09 07 06 0c 00 00 63 04 0b 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 33 63 63 63 32 32 32 00 10
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 07 04 0e 00 04 40 08 1e 1b 10 06 05 0e 00 06 54 08 0e 1f 0d 07 05 0e
+00 07 63 0c 1b 1b 10 06 05 0e 00 06 63 00 0b 75 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone4
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 07 04 0e 00 01 40 08 1e 1b 10 06 05 0e 00 03 54 08 0e 1f 0d 07 05 0e
+00 04 63 0c 1b 1b 10 06 05 0e 00 00 63 00 0b 75 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 04 05 0a 00 04 41 28 01 1f 0e 05 05 09 00 04 43 13 0c 1f 1f 00 08 0f
+00 05 3e 00 05 1f 11 08 05 0f 00 05 63 04 0a 4d 23 00 19 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 35 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 04 05 0a 00 01 41 28 01 1f 0e 05 05 09 00 01 43 13 0c 1f 1f 00 08 0f
+00 01 3e 00 05 1f 11 08 05 0f 00 00 63 04 0a 4d 23 00 19 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 35 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 09 07 0a 00 03 52 30 19 1f 0e 05 06 09 00 04 42 08 0c 1f 1f 00 09 0f
+00 04 3b 0d 0d 1f 11 08 06 0f 00 04 63 04 0a 4d 23 00 19 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone6
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 09 07 0a 00 01 52 30 19 1f 0e 05 06 09 00 01 42 08 0c 1f 1f 00 09 0f
+00 00 3b 0d 0d 1f 11 08 06 0f 00 00 63 04 0a 4d 23 00 19 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 09 07 0a 00 05 55 13 19 12 12 05 06 09 00 06 5b 04 1c 1f 1f 00 09 0f
+00 04 5f 04 1d 1f 11 08 06 0f 00 07 63 00 0a 4c 23 00 00 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone7
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0e 09 07 0a 00 01 55 13 19 12 12 05 06 09 00 01 5b 04 1c 1f 1f 00 09 0f
+00 01 5f 04 1d 1f 11 08 06 0f 00 00 63 00 0a 4c 23 00 00 00 32 24 02 04 00
+63 32 00 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+16 0d 05 05 0d 00 04 4f 13 12 1f 15 00 0c 07 00 05 63 2a 0e 1f 0a 05 06 0c
+00 07 63 04 0b 1c 0f 06 06 0c 00 06 63 04 13 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Xylophone8
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 05 05 0d 00 01 4f 13 12 1f 15 00 0c 07 00 03 63 2a 0e 1f 0a 05 06 0c
+00 04 63 04 0b 1c 0f 06 06 0c 00 00 63 04 13 74 23 00 00 00 32 24 02 04 00
+63 11 06 00 00 32 00 58 79 6c 6f 70 68 6f 6e 65 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Cymbal
+
+
+** Name: Chin.Cymb*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 01 00 0b 00 44 04 00 1e 00 01 01 00 1f 41 4e 0a 00 1f 00 00 01 00
+00 01 56 14 06 1d 0b 1f 04 00 0a 04 63 00 06 7b 1f 0d 0e 1e 0e 18 0c 04 00
+63 32 00 32 00 32 00 43 68 69 6e 2e 43 79 6d 62 2a 63 63 63 32 32 32 01 73
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0e 00 40 59 35 03 19 16 00 01 0b 00 40 4e 03 0b 15 1c 06 01 0b
+00 40 57 3b 13 1f 1f 05 02 08 00 45 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0e 00 40 59 36 03 19 16 00 01 0b 00 40 4e 03 0b 15 1c 06 01 0b
+00 40 57 3b 13 1f 1f 05 02 08 00 40 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...1
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0e 00 40 59 36 03 19 16 00 01 0b 00 40 4e 03 0b 15 1c 06 00 0b
+00 40 57 3b 13 1f 1f 05 02 08 00 40 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0e 00 40 59 24 03 19 16 00 01 0b 00 40 55 1e 0b 15 1c 06 01 0b
+00 40 56 19 13 1f 1f 05 02 08 00 44 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0e 00 40 59 24 03 19 16 00 01 0b 00 40 55 1e 0b 15 1c 06 01 0b
+00 40 56 16 13 1f 1f 05 02 08 00 40 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...2
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0e 00 40 59 24 03 19 16 00 01 0b 00 40 55 1e 0b 15 1c 06 00 0b
+00 40 56 16 13 1f 1f 05 02 08 00 40 63 1b 13 31 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0e 00 40 5b 37 03 19 16 00 01 0b 00 41 55 17 0b 15 1c 06 01 0b
+00 40 5b 20 13 1f 1f 05 02 08 00 44 63 15 13 33 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0e 00 40 5b 37 03 19 16 00 01 0b 00 40 55 17 0b 15 1c 06 01 0b
+00 40 5b 20 13 1f 1f 05 02 08 00 40 63 15 13 33 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cymbal...3
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0e 00 40 5b 37 03 19 16 00 01 0b 00 40 55 17 0b 15 1c 06 00 0b
+00 40 5b 20 13 1f 1f 05 02 08 00 40 63 15 13 33 00 02 00 03 52 12 05 04 00
+63 32 00 00 00 32 00 43 79 6d 62 61 6c 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 25
+
+* SUBCATEGORY Drum1
+
+
+** Name: Bass/Snare
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 00 00 63 32 03 1f 12 00 05 07 00 00 4d 00 03 1f 1f 10 07 0f
+63 05 63 28 13 1f 1f 0b 08 0f 00 05 63 00 03 34 23 00 00 00 62 00 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 2f 53 6e 61 72 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass/Snare
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 00 00 63 32 03 1f 12 00 05 07 00 00 4d 00 03 1f 1f 10 07 0f
+63 00 63 28 13 1f 1f 0b 08 0f 00 00 63 00 03 34 23 00 00 00 62 00 04 04 00
+63 32 00 00 00 32 00 42 61 73 73 2f 53 6e 61 72 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Drum
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 25
+1f 1f 13 03 00 00 00 5f 2d 06 1f 12 13 02 00 00 01 52 00 02 1f 14 13 03 00
+00 02 56 1c 05 1e 14 13 0f 00 00 00 63 00 03 3b 63 00 00 00 03 0d 07 04 00
+63 32 00 00 00 32 00 42 61 73 73 20 44 72 75 6d 20 63 63 63 32 32 32 08 00
+00 00 08 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Drum1
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 1
+1f 0f 1f 07 00 00 00 4e 08 03 1f 18 00 06 08 00 00 5f 04 03 1f 15 08 07 0a
+00 00 49 01 03 1f 0b 12 0c 0e 00 00 5b 08 03 03 50 00 4a 00 72 00 04 04 00
+28 32 00 00 00 32 00 42 61 73 73 20 44 72 75 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 08 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Drum2
+** Source: Yamaha DX11 factory preset, bank D, voice 2
+1f 19 07 07 0b 00 00 46 20 01 1f 18 00 0b 0a 00 00 47 04 01 1f 15 00 0c 0a
+00 00 45 00 05 1f 0a 15 0a 0f 00 00 63 15 05 31 23 00 00 00 62 00 04 04 00
+28 32 00 00 00 32 00 42 61 73 73 20 44 72 75 6d 32 63 63 63 32 32 32 09 03
+08 05 08 05 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bass Drum2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 19 07 07 0b 00 00 46 20 01 1f 18 00 0b 0d 00 00 47 04 01 1f 15 00 0c 0d
+00 00 45 00 05 1f 0d 15 0a 0f 00 00 63 15 05 31 23 00 00 00 62 00 04 04 00
+28 32 00 00 00 32 00 42 61 73 73 20 44 72 75 6d 32 63 63 63 32 32 32 09 03
+08 05 08 05 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 19 0f 0e 00 00 55 03 03 18 10 19 0c 0d 00 01 63 03 13 1b 12 10 08 0e
+00 06 63 00 13 1f 0f 12 09 0f 00 05 63 02 13 35 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 19 0f 0e 00 00 55 03 03 18 10 19 0c 0d 00 00 63 03 13 1b 12 10 08 0e
+00 00 63 00 13 1f 0f 12 09 0f 00 00 63 02 13 35 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 19 0f 0e 00 00 4e 03 03 18 1b 19 0c 0d 00 02 46 03 13 1b 12 10 08 0e
+00 05 63 00 13 1f 0f 12 09 0f 00 03 63 00 13 34 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 19 0f 0e 00 00 4e 03 03 18 1b 19 0c 0d 00 00 46 03 13 1b 12 10 08 0e
+00 00 63 00 13 1f 0f 12 09 0f 00 00 63 00 13 34 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 19 0f 0e 00 00 48 04 03 18 1b 19 0c 0d 00 01 4e 00 13 1b 12 10 08 0e
+00 02 55 02 13 1f 0f 12 09 0f 00 03 63 00 13 32 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BassDrum.3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 19 0f 0e 00 00 48 04 03 18 1b 19 0c 0d 00 00 4e 00 13 1b 12 10 08 0e
+00 00 55 02 13 1f 0f 12 09 0f 00 00 63 00 13 32 00 00 00 00 02 0c 06 04 00
+63 32 00 32 00 32 00 42 61 73 73 44 72 75 6d 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BoConga
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank D, voice 15
+19 15 1f 0e 00 05 03 52 00 00 18 11 09 06 04 1e 02 42 04 16 18 0f 00 07 00
+02 00 63 04 10 1c 0c 14 06 0b 00 00 63 01 13 04 23 00 00 00 62 1d 04 04 00
+28 32 00 00 00 32 00 42 6f 43 6f 6e 67 61 20 20 20 63 11 2a 32 32 32 00 02
+00 57 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Congas *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 1d 17 09 09 00 03 63 00 0b 19 1f 1b 09 06 00 00 63 00 0b 1f 05 00 09 0b
+00 00 63 28 0b 13 10 11 06 0a 00 03 63 00 0b 02 18 00 26 00 32 18 02 04 00
+28 63 00 00 00 32 00 43 6f 6e 67 61 73 20 20 20 2a 63 63 63 32 32 32 00 06
+00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrmSpring1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 19 12 0f 0b 2e 03 4c 04 1a 1f 1b 1f 0f 0b 00 04 63 08 10 1f 1b 1f 0f 0b
+00 05 63 08 0a 1f 18 07 07 0f 00 06 63 04 0b 32 22 0a 09 00 02 0c 02 04 00
+63 32 00 32 00 32 00 44 72 6d 53 70 72 69 6e 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrmSpring1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 19 12 0f 0b 2e 00 4c 04 1a 1f 1b 1f 0f 0b 00 00 63 08 10 1f 1b 1f 0f 0b
+00 00 63 08 0a 1f 18 07 07 0f 00 00 63 04 0b 32 22 0a 09 00 02 0c 02 04 00
+63 32 00 32 00 32 00 44 72 6d 53 70 72 69 6e 67 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrmSpring2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 19 12 0f 0b 2e 03 63 02 1a 1f 1b 1f 0f 0b 00 05 60 07 10 1f 1b 1f 0f 0b
+00 06 60 09 0a 1f 18 07 07 0f 00 07 63 02 0b 3a 22 0a 19 00 02 0c 02 04 00
+63 32 00 32 00 32 00 44 72 6d 53 70 72 69 6e 67 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrmSpring2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 19 12 0f 0b 2e 00 63 02 1a 1f 1b 1f 0f 0b 00 00 60 07 10 1f 1b 1f 0f 0b
+00 00 60 09 0a 1f 18 07 07 0f 00 00 63 02 0b 3a 22 0a 19 00 02 0c 02 04 00
+63 32 00 32 00 32 00 44 72 6d 53 70 72 69 6e 67 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrumString
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+06 08 01 04 0d 63 02 51 1e 05 1f 0a 03 06 0d 00 03 52 08 0b 15 0a 04 07 0d
+00 06 62 09 04 1f 04 08 07 00 00 05 63 08 06 2c 21 23 0f 00 12 00 04 04 00
+28 32 00 00 00 32 00 44 72 75 6d 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: DrumString
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+06 08 01 04 0d 63 00 51 1e 05 1f 0a 03 06 0d 00 00 52 08 0b 15 0a 04 07 0d
+00 00 62 09 04 1f 04 08 07 00 00 00 63 08 06 2c 21 23 0f 00 12 00 04 04 00
+28 32 00 00 00 32 00 44 72 75 6d 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Efem Toms
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 32
+1f 12 13 03 05 00 00 5f 3d 06 1f 10 0b 02 05 00 01 52 05 02 1f 0f 0e 03 06
+00 01 56 28 05 1e 09 0d 06 09 00 00 63 06 03 3c 63 00 63 00 63 20 07 04 00
+63 32 00 00 00 32 00 45 66 65 6d 20 54 6f 6d 73 20 63 63 63 32 32 32 08 00
+00 00 08 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: El.Snare *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 08 02 00 00 01 57 0d 0b 1f 03 00 01 00 00 00 5f 00 0b 1b 04 0a 01 07
+00 01 54 18 0b 1f 0e 04 07 00 00 00 63 00 0b 03 23 00 00 00 32 00 02 04 00
+28 63 00 00 00 32 00 45 6c 2e 53 6e 61 72 65 20 2a 63 63 63 32 32 32 00 00
+08 00 08 04 08 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: El.Snare2*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0e 02 05 00 00 00 57 0c 0b 1f 03 00 03 07 00 00 44 04 0b 1f 02 01 01 00
+00 00 51 20 0b 1f 10 00 08 00 00 01 63 0a 0b 13 23 00 00 00 32 00 02 04 00
+28 63 00 00 00 32 00 45 6c 2e 53 6e 61 72 65 32 2a 63 63 63 32 32 32 00 01
+08 10 08 54 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FM Hi-Hats
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 24
+1f 0c 00 05 0f 00 00 63 3b 03 1f 09 00 04 0f 00 38 4b 16 03 1f 0c 00 06 0f
+00 00 56 16 03 1f 0d 1f 0f 04 00 02 63 08 03 3b 00 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 46 4d 20 48 69 2d 48 61 74 73 63 63 63 32 32 32 00 70
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hand Drum
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 30
+1f 16 00 03 07 00 01 50 00 03 1f 18 03 03 03 22 00 63 00 14 1d 07 06 03 06
+00 01 3c 08 03 1f 05 07 03 00 00 01 63 04 1b 39 23 00 08 00 42 18 04 04 00
+63 32 00 00 00 32 00 48 61 6e 64 20 44 72 75 6d 20 63 63 63 32 32 32 00 01
+00 03 00 01 00 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hand Drum1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 15 00 07 09 00 00 53 01 13 1f 18 03 04 0d 00 01 3b 03 13 1d 1a 06 04 04
+00 06 41 09 03 1f 00 07 03 0f 00 03 63 03 1b 29 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 48 61 6e 64 20 44 72 75 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hand Drum1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 15 00 07 09 00 00 53 01 13 1f 18 03 04 0d 00 00 3b 03 13 1d 1a 06 04 04
+00 00 41 09 03 1f 00 07 03 0f 00 00 63 03 1b 29 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 48 61 6e 64 20 44 72 75 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hand Drum2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 15 00 07 09 00 00 57 01 13 1f 18 03 04 0d 00 00 3b 04 13 1d 1a 06 04 04
+00 00 41 01 03 1f 00 07 08 0f 00 05 63 01 1b 29 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 48 61 6e 64 20 44 72 75 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hand Drum2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 15 00 07 09 00 00 57 01 13 1f 18 03 04 0d 00 00 3b 04 13 1d 1a 06 04 04
+00 00 41 01 03 1f 00 07 08 0f 00 00 63 01 1b 29 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 48 61 6e 64 20 44 72 75 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: "Hi!" Hat!
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 9
+1f 06 06 0f 0f 00 00 63 20 1b 1f 09 1f 0f 0f 00 00 63 24 1b 1f 0a 00 0f 00
+00 00 63 20 1b 1f 0a 00 0f 00 00 00 59 30 1b 3c 63 00 55 46 62 18 04 04 00
+28 32 00 00 00 32 00 22 48 69 21 22 20 48 61 74 21 63 63 63 32 32 32 0e 0f
+0e 08 0e 0c 0b 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hi-Hat *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0c 00 05 0f 00 00 63 3b 03 1f 09 00 04 0f 00 38 4e 16 03 1f 0c 00 06 0f
+00 00 5e 16 03 1f 13 1f 0f 00 00 02 63 08 03 3b 00 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 48 69 2d 48 61 74 20 20 20 2a 63 63 63 32 32 32 00 70
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Java Jive
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 26
+15 13 0d 03 0d 1e 02 50 18 0e 15 14 09 04 0c 1e 02 56 11 08 1b 1f 0f 07 0f
+00 01 63 04 06 1a 1f 0e 06 0f 00 02 63 04 00 7c 0b 00 08 00 62 18 04 04 00
+63 32 00 00 00 32 00 4a 61 76 61 20 4a 69 76 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KickDrum *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 00 05 03 00 00 5f 02 03 1f 11 01 08 00 00 00 53 04 13 1f 19 13 05 04
+00 02 5f 00 1b 1f 1d 10 08 0f 00 00 63 10 0b 38 23 00 00 00 62 0c 04 0c 00
+63 32 00 00 00 32 00 4b 69 63 6b 44 72 75 6d 20 2a 63 63 63 32 32 32 0d 30
+08 00 08 20 08 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Log Drum.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 18 0f 06 04 00 41 1d 08 1b 1f 18 0c 05 00 00 41 51 00 03 18 06 0f 06 04
+00 45 63 00 13 1b 0f 0d 06 00 00 44 63 00 0b 2c 24 00 00 50 02 18 04 04 00
+28 32 00 00 00 32 00 4c 6f 67 20 44 72 75 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Log Drum.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 18 0f 06 04 00 40 1d 08 1b 1f 18 0c 05 00 00 40 51 00 03 18 06 0f 06 04
+00 40 63 00 13 1b 0f 0d 06 00 00 40 63 00 0b 2c 24 00 00 50 02 18 04 04 00
+28 32 00 00 00 32 00 4c 6f 67 20 44 72 75 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Log Drum.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 18 0f 06 04 00 40 5d 05 1b 1f 18 0c 05 00 00 41 49 03 0b 18 06 0f 06 04
+00 44 63 01 13 1b 0f 0d 06 00 00 44 63 01 0b 2c 24 00 00 50 02 18 04 04 00
+28 32 00 00 00 32 00 4c 6f 67 20 44 72 75 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Log Drum.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 18 0f 06 04 00 40 5d 05 1b 1f 18 0c 05 00 00 40 49 03 0b 18 06 0f 06 04
+00 40 63 01 13 1b 0f 0d 06 00 00 40 63 01 0b 2c 24 00 00 50 02 18 04 04 00
+28 32 00 00 00 32 00 4c 6f 67 20 44 72 75 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MiamiToms*
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 00 03 00 21 01 48 07 0b 1f 0a 00 02 00 04 00 46 02 0b 1f 02 00 04 00
+00 01 40 00 0b 1f 0d 0f 06 0d 00 02 63 00 0b 68 04 00 45 00 62 18 02 04 00
+28 63 00 00 00 2a 00 4d 69 61 6d 69 54 6f 6d 73 2a 63 63 63 32 32 32 00 30
+00 52 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 19 18 0d 0d 00 02 62 03 0b 18 0f 0c 09 00 00 02 5a 08 13 1d 15 15 0f 0f
+00 03 63 07 03 19 0f 18 07 04 00 05 62 04 0b 7c 23 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 19 18 0d 0d 00 00 62 03 0b 18 0f 0c 09 00 00 00 5a 08 13 1d 15 15 0f 0f
+00 00 63 07 03 19 0f 18 07 04 00 00 62 04 0b 7c 23 00 00 00 02 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 01 07 04 00 00 02 49 02 0b 1f 16 00 03 00 00 42 56 00 0c 1f 09 06 04 0b
+00 03 63 00 13 1f 0c 1f 06 00 00 05 62 00 13 2c 28 00 10 2e 26 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 01 07 04 00 00 00 49 02 0b 1f 16 00 03 00 00 40 56 00 0c 1f 09 06 04 0b
+00 00 63 00 13 1f 0c 1f 06 00 00 00 62 00 13 2c 28 00 10 2e 26 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 01 07 04 00 00 04 48 02 0b 1f 16 00 03 00 00 04 55 00 0c 1f 09 06 04 0b
+00 04 3e 03 13 1f 0c 1f 06 00 00 05 62 00 13 2c 0b 00 10 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 01 07 04 00 00 00 48 02 0b 1f 16 00 03 00 00 00 55 00 0c 1f 09 06 04 0b
+00 00 3e 03 13 1f 0c 1f 06 00 00 00 62 00 13 2c 0b 00 10 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 06 00 00 02 4b 01 0b 1f 16 00 03 00 00 03 38 20 0c 1f 0b 09 06 0b
+00 05 59 01 13 1f 0c 1f 06 00 00 06 62 08 13 2c 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 06 00 00 00 4b 01 0b 1f 16 00 03 00 00 00 38 20 0c 1f 0b 09 06 0b
+00 00 59 01 13 1f 0c 1f 06 00 00 00 62 08 13 2c 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..5
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 12 07 0e 00 03 43 31 1b 1f 10 0c 06 0e 00 03 48 08 0c 1f 09 16 0a 0d
+00 04 61 04 0b 1b 0c 0c 06 0d 00 04 62 04 0b 2c 0b 00 10 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..5
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0d 12 07 0e 00 00 43 31 1b 1f 10 0c 06 0e 00 00 48 08 0c 1f 09 16 0a 0d
+00 00 61 04 0b 1b 0c 0c 06 0d 00 00 62 04 0b 2c 0b 00 10 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0a 05 05 0c 00 03 4d 04 1b 00 0f 00 01 09 00 02 61 09 03 1c 09 09 07 0d
+00 04 63 00 13 1c 09 09 07 0c 00 07 62 00 0b 4c 23 00 00 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..6
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 0a 05 05 0c 00 00 4d 04 1b 00 0f 00 01 09 00 00 61 09 03 1c 09 09 07 0d
+00 00 63 00 13 1c 09 09 07 0c 00 00 62 00 0b 4c 23 00 00 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..6
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+0f 0a 05 05 0c 00 00 4d 04 1b 00 0f 00 00 09 00 00 61 09 03 1c 09 09 07 0d
+00 00 63 00 13 1c 09 09 07 0c 00 00 62 00 0b 4c 23 00 00 00 22 18 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..7
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 06 00 00 05 48 02 13 1f 16 00 03 00 00 03 53 01 12 1f 0b 09 06 0b
+00 03 57 03 13 1f 0c 1f 06 00 00 05 62 00 13 2c 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..7
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 06 00 00 00 48 02 13 1f 16 00 03 00 00 00 53 01 12 1f 0b 09 06 0b
+00 00 57 03 13 1f 0c 1f 06 00 00 00 62 00 13 2c 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..8
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 09 06 00 00 02 48 02 13 1f 16 00 03 00 00 03 53 01 12 1f 0b 09 06 0b
+00 06 57 05 13 1f 0c 1f 06 00 00 04 62 00 13 32 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..8
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 09 06 00 00 00 48 02 13 1f 16 00 03 00 00 00 53 01 12 1f 0b 09 06 0b
+00 00 57 05 13 1f 0c 1f 06 00 00 00 62 00 13 32 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..9
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0b 09 06 00 00 03 30 08 1b 1f 16 00 03 00 00 02 44 01 12 1f 1a 09 06 0b
+00 05 5f 05 13 1f 0c 1f 06 00 00 04 62 00 13 32 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm..9
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0b 09 06 00 00 00 30 08 1b 1f 16 00 03 00 00 00 44 01 12 1f 1a 09 06 0b
+00 00 5f 05 13 1f 0c 1f 06 00 00 00 62 00 13 32 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm.10
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0b 09 06 00 00 03 30 03 1b 18 0f 18 07 05 00 04 44 09 12 1f 1a 09 06 0b
+00 03 37 07 13 18 0f 0c 08 00 00 06 62 01 13 33 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntDrm.10
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0b 09 06 00 00 00 30 03 1b 18 0f 18 07 05 00 00 44 09 12 1f 1a 09 06 0b
+00 00 37 07 13 18 0f 0c 08 00 00 00 62 01 13 33 0b 00 10 00 22 0c 02 04 00
+63 63 00 00 00 32 00 4f 72 6e 74 44 72 6d 2e 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntEchoDr
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 18 0f 06 0f 63 02 5b 08 1b 0f 0a 03 07 0d 00 04 48 00 03 19 06 0f 06 04
+00 06 63 00 13 1c 05 03 07 0d 00 05 5d 00 0b 2c 26 1c 0e 00 70 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 45 63 68 6f 44 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntEchoDr
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 18 0f 06 0f 63 00 5b 08 1b 0f 0a 03 07 0d 00 00 48 00 03 19 06 0f 06 04
+00 00 63 00 13 1c 05 03 07 0d 00 00 5d 00 0b 2c 26 1c 0e 00 70 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 45 63 68 6f 44 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Percussive
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 05 04 0f 00 00 5a 0b 03 1f 12 0c 05 08 46 00 5f 03 03 1f 12 09 06 0a
+00 05 4e 00 03 1f 1f 0c 06 0f 00 05 5a 07 0b 3c 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 50 65 72 63 75 73 73 69 76 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Percussive
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 05 04 0f 00 00 5a 0b 03 1f 12 0c 05 08 46 00 5f 01 03 1f 12 09 06 0a
+00 00 4e 00 03 1f 1f 0c 06 0f 00 00 5a 07 0b 3c 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 50 65 72 63 75 73 73 69 76 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Simmons1 *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 00 02 00 00 00 63 01 03 1f 00 00 02 00 00 00 42 00 03 1f 09 00 04 00
+00 00 53 0c 03 1f 10 00 07 00 00 00 63 00 0b 41 02 00 5f 00 72 18 02 04 00
+28 63 00 00 00 32 00 53 69 6d 6d 6f 6e 73 31 20 2a 63 63 63 32 32 32 00 01
+00 23 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Simmons2 *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0d 00 02 00 00 00 63 01 03 1f 00 00 05 00 00 00 3c 00 03 1f 09 00 01 00
+00 00 4b 0c 03 1f 0f 00 06 00 00 00 63 00 0b 41 02 00 5f 00 72 18 02 04 00
+28 63 00 00 00 32 00 53 69 6d 6d 6f 6e 73 32 20 2a 63 63 63 32 32 32 00 01
+00 23 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Skankin'
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 19 08 0a 03 00 03 63 0b 10 1f 13 05 0b 05 00 03 58 00 0b 1f 19 06 0b 05
+00 03 63 0a 0e 1f 0f 11 09 07 00 04 63 04 03 3a 14 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 53 6b 61 6e 6b 69 6e 27 20 20 63 63 63 32 32 32 00 30
+20 30 00 20 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 01 00 00 00 63 32 03 1f 0e 00 01 00 00 00 59 08 13 1f 00 00 01 00
+00 00 54 08 1b 1f 1a 10 08 0f 00 00 63 14 0b 3a 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 20 20 20 20 2a 63 63 63 32 32 32 0e 30
+08 0a 00 20 08 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare 1
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 3
+1f 18 00 01 0f 00 00 5a 38 06 1f 15 09 03 0b 00 00 63 00 00 1f 0a 12 08 0e
+00 02 63 00 00 1f 0f 10 08 0a 00 02 63 3c 06 7c 63 00 63 00 73 18 04 04 00
+28 32 00 00 00 32 00 53 6e 61 72 65 20 20 20 20 31 63 63 63 32 32 32 0f 0e
+01 07 08 00 09 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare 1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 18 00 01 0f 00 00 5a 38 06 1f 15 09 03 0b 00 00 63 00 00 1f 0d 12 08 0e
+00 02 63 00 00 1f 0f 10 08 0d 00 02 63 3c 06 7c 63 00 63 00 73 18 04 04 00
+28 32 00 00 00 32 00 53 6e 61 72 65 20 20 20 20 31 63 63 63 32 32 32 0f 0e
+01 07 08 00 09 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare 2
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 4
+1f 1a 00 05 0f 00 40 61 3c 1e 1f 15 09 04 0b 00 44 4e 2c 18 1b 13 13 09 0e
+00 42 63 30 00 1f 13 13 07 0e 00 42 63 2c 06 7c 63 00 30 0f 6a 0c 04 04 00
+28 32 00 00 00 32 00 53 6e 61 72 65 20 20 20 20 32 63 63 63 32 32 32 0c 09
+08 01 08 0c 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare 1
+** Source: Yamaha TX81Z factory preset, bank D, voice 28
+1f 1f 00 05 0f 00 00 62 32 03 1f 14 08 05 08 00 00 5f 00 0b 1f 1f 10 08 0f
+0c 00 63 0b 1b 1f 1f 0f 08 0f 00 00 63 05 0b 3b 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 20 31 20 20 20 63 63 63 32 32 32 08 00
+00 02 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare 2
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 29
+1f 00 00 05 0f 00 00 63 32 03 1f 14 08 05 08 00 01 63 02 0b 1f 04 10 08 0f
+00 00 63 0b 0b 1f 1f 0f 08 0f 00 00 63 05 0b 3c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 20 32 20 20 20 63 63 63 32 32 32 07 60
+00 00 00 70 08 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 00 00 60 0b 00 1f 1a 0a 05 0a 00 00 58 06 03 13 1f 11 08 0f
+00 05 5e 04 03 1f 1f 10 07 0f 00 04 57 00 03 3c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 00 00 60 0b 00 1f 1a 0a 05 0a 00 00 58 06 03 13 1f 11 08 0f
+00 00 5e 04 03 1f 1f 10 07 0f 00 00 57 00 03 3c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....1
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 00 00 60 0b 00 1f 1a 0a 05 0a 00 00 58 06 03 13 1f 11 08 0f
+00 00 5e 04 03 1f 1f 10 07 0f 00 00 57 00 03 3c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 00 00 63 3f 03 1f 1a 0a 05 0a 00 00 4f 06 03 13 16 11 08 0d
+00 05 63 06 03 1f 1f 10 08 0f 00 05 63 02 03 28 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 00 00 63 3f 03 1f 1a 0a 05 0a 00 00 4f 06 03 13 16 11 08 0d
+00 00 63 06 03 1f 1f 10 08 0f 00 00 63 02 03 28 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....2
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 00 00 63 3f 03 1f 1a 0a 05 0a 00 00 4f 06 03 13 16 11 08 0d
+00 00 63 06 03 1f 1f 10 08 0f 00 00 63 02 03 28 23 00 00 00 52 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 00 00 63 32 03 1f 15 0f 05 09 14 00 21 06 03 1f 1f 12 08 0f
+00 04 53 00 0b 1f 1f 10 08 0f 00 04 63 01 03 3b 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 00 00 63 32 03 1f 15 0f 05 09 14 00 21 06 03 1f 1f 12 08 0f
+00 00 53 00 0b 1f 1f 10 08 0f 00 00 63 01 03 3b 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 00 01 63 32 03 1f 13 10 05 05 14 01 47 3f 13 1f 1f 12 08 0f
+00 06 63 00 0b 1f 1f 0f 08 0f 00 05 43 3f 03 3c 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare....4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 00 00 63 32 03 1f 13 10 05 05 14 00 47 3f 13 1f 1f 12 08 0f
+00 00 63 00 0b 1f 1f 0f 08 0f 00 00 43 3f 03 3c 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SnareDrm.*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 1a 00 01 0f 00 00 63 1c 03 1f 14 00 01 00 00 00 51 1c 03 1f 1f 0e 07 0f
+00 02 63 00 0b 1f 12 0f 06 00 00 02 63 24 03 3c 23 00 00 00 62 24 02 04 00
+28 32 00 00 00 32 00 53 6e 61 72 65 44 72 6d 2e 2a 63 63 63 32 32 32 08 0e
+08 0d 08 02 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Snare&Tom
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 05 0f 00 00 63 32 03 1f 10 08 05 08 00 01 63 02 0b 1f 04 10 08 0f
+00 00 63 0b 0b 1f 1f 0f 00 0f 2e 00 63 05 0b 3c 23 24 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 53 6e 61 72 65 26 54 6f 6d 20 63 63 63 32 32 32 07 30
+00 00 00 70 08 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Steel Drum
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank B, voice 32
+14 10 10 06 0a 1a 03 27 30 03 13 08 00 04 0a 1a 01 42 04 01 15 0c 0e 06 0c
+00 02 4c 0b 03 18 0c 0f 05 0f 00 01 5f 04 0a 01 20 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 53 74 65 65 6c 20 44 72 75 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Steel Drum
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 10 10 06 0a 1a 03 27 30 03 13 08 00 04 0d 1a 01 42 04 01 15 0c 0e 06 0c
+00 02 4c 0b 03 18 0c 0f 05 0f 00 01 5f 04 0d 01 20 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 53 74 65 65 6c 20 44 72 75 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 04 03 0a 1a 07 44 05 08 0d 08 0c 05 0b 32 06 40 13 0b 0e 05 03 04 0a
+00 04 28 1a 0e 15 08 0c 06 0c 00 05 63 08 0c 02 10 00 09 00 52 0c 02 04 00
+63 32 00 00 00 32 00 53 74 65 65 6c 44 72 75 6d 20 63 63 63 32 32 32 10 37
+00 10 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 09 03 0e 00 03 54 0a 11 1b 0a 0d 06 0e 2d 03 63 04 15 1b 0a 0d 06 0e
+43 06 5f 04 15 1f 0c 0d 06 0e 00 05 63 04 0e 66 23 00 00 00 32 0c 06 04 00
+63 32 00 32 00 32 00 53 74 65 65 6c 44 72 75 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 09 03 0e 00 00 54 0a 11 1b 0a 0d 06 0e 2d 00 63 04 15 1b 0a 0d 06 0e
+43 00 5f 04 15 1f 0c 0d 06 0e 00 00 63 04 0e 66 23 00 00 00 32 0c 06 04 00
+63 32 00 32 00 32 00 53 74 65 65 6c 44 72 75 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 09 03 0e 00 42 54 07 11 1b 0a 0d 06 0e 2d 43 63 08 15 1b 0a 0d 06 0e
+43 46 5f 04 15 1f 0c 0d 06 0e 00 44 63 04 0e 2c 19 00 0a 15 26 0c 06 04 00
+63 32 00 32 00 32 00 53 74 65 65 6c 44 72 75 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 09 03 0e 00 40 54 07 11 1b 0a 0d 06 0e 2d 40 63 08 15 1b 0a 0d 06 0e
+43 40 5f 04 15 1f 0c 0d 06 0e 00 40 63 04 0e 2c 19 00 0a 15 26 0c 06 04 00
+63 32 00 32 00 32 00 53 74 65 65 6c 44 72 75 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 10 00 03 00 00 01 49 0b 0b 14 0a 00 04 00 00 03 3c 06 03 14 0a 00 04 00
+00 05 3f 04 03 14 0a 00 06 00 00 05 63 04 03 3a 23 00 00 00 62 18 05 04 00
+63 63 00 00 00 32 00 53 74 65 65 6c 44 72 75 6d 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 10 00 03 00 00 00 49 0b 0b 14 0a 00 04 00 00 00 3c 06 03 14 0a 00 04 00
+00 00 3f 04 03 14 0a 00 06 00 00 00 63 04 03 3a 23 00 00 00 62 18 05 04 00
+63 63 00 00 00 32 00 53 74 65 65 6c 44 72 75 6d 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 10 00 03 00 00 02 42 0b 03 14 0a 00 04 00 00 03 42 06 03 14 0a 00 04 00
+00 06 2f 06 03 14 0a 00 06 00 00 06 63 04 03 3a 23 00 00 00 62 18 05 04 00
+63 63 00 00 00 32 00 53 74 65 65 6c 44 72 75 6d 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelDrum4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 10 00 03 00 00 00 42 0b 03 14 0a 00 04 00 00 00 42 06 03 14 0a 00 04 00
+00 00 2f 06 03 14 0a 00 06 00 00 00 63 04 03 3a 23 00 00 00 62 18 05 04 00
+63 63 00 00 00 32 00 53 74 65 65 6c 44 72 75 6d 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SyBon
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank D, voice 14
+19 15 1f 02 00 4b 04 5f 00 1e 18 11 09 06 04 1e 04 5d 00 11 17 0b 04 04 0a
+32 00 59 04 18 1b 12 0a 05 0a 00 00 5d 00 16 03 23 00 00 00 62 0c 04 04 00
+28 32 00 00 00 32 00 53 79 42 6f 6e 20 20 20 20 20 63 19 19 32 15 15 00 02
+00 07 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SyBon
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 15 1f 02 00 4b 04 5f 00 1e 18 11 09 06 04 1e 04 5d 00 11 17 0b 04 04 0d
+32 00 59 04 18 1b 12 0d 05 0d 00 00 5d 00 16 03 23 00 00 00 62 0c 04 04 00
+28 32 00 00 00 32 00 53 79 42 6f 6e 20 20 20 20 20 63 19 19 32 15 15 00 02
+00 07 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+* SUBCATEGORY Drum2
+
+
+** Name: SynthDrm.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 02 3c 0f 03 18 18 16 0b 04 2d 03 55 04 05 15 15 0c 0a 00
+43 05 63 13 03 15 13 0c 0b 00 00 04 63 08 03 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 3c 0f 03 18 18 16 0b 04 2d 00 55 04 05 15 15 0c 0a 00
+43 00 63 13 03 15 13 0c 0b 00 00 00 63 08 03 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 01 5d 3f 03 18 18 16 0b 04 2d 01 55 04 15 15 15 0c 0a 00
+43 04 63 09 0b 15 13 0c 0b 00 00 05 63 00 0b 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 5d 3f 03 18 18 16 0b 04 2d 00 55 04 15 15 15 0c 0a 00
+43 00 63 09 0b 15 13 0c 0b 00 00 00 63 00 0b 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.3
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 02 63 04 03 1f 18 16 0b 04 2d 00 55 04 15 15 15 0c 0a 00
+43 03 63 04 0b 1c 13 0c 0b 00 00 05 63 00 0b 7c 3f 00 63 00 60 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.3
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 63 04 03 1f 18 16 0b 04 2d 00 55 04 15 15 15 0c 0a 00
+43 00 63 04 0b 1c 13 0c 0b 00 00 00 63 00 0b 7c 3f 00 63 00 60 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 01 63 30 03 19 0c 07 04 0f 2d 01 63 01 03 15 15 0c 0a 00
+43 05 63 04 0b 1f 12 09 07 00 00 06 63 00 03 24 1e 63 00 00 73 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 63 30 03 19 0c 07 04 0f 2d 00 63 01 03 15 15 0c 0a 00
+43 00 63 04 0b 1f 12 09 07 00 00 00 63 00 03 24 1e 63 00 00 73 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 03 63 2c 1b 1f 1f 07 05 0f 2d 03 5c 00 0b 1f 1f 00 0f 0f
+43 04 63 00 0b 1f 11 09 05 00 00 06 63 00 03 24 1e 63 00 00 73 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.5
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 63 2c 1b 1f 1f 07 05 0f 2d 00 5c 00 0b 1f 1f 00 0f 0f
+43 00 63 00 0b 1f 11 09 05 00 00 00 63 00 03 24 1e 63 00 00 73 18 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.6
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 02 5d 01 03 18 18 16 0b 04 2d 03 55 01 15 15 15 0c 0a 00
+43 05 63 00 0b 15 13 0c 0b 00 00 45 63 00 0b 5a 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.6
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 5d 01 03 18 18 16 0b 04 2d 00 55 01 15 15 15 0c 0a 00
+43 00 63 00 0b 15 13 0c 0b 00 00 40 63 00 0b 5a 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.7
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 02 5d 3f 03 18 18 16 0b 04 2d 03 55 01 15 15 15 0c 0a 00
+43 05 63 04 0b 1c 13 0c 0b 00 00 45 63 04 0b 5b 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.7
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 5d 3f 03 18 18 16 0b 04 2d 00 55 01 15 15 15 0c 0a 00
+43 00 63 04 0b 1c 13 0c 0b 00 00 40 63 04 0b 5b 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 37 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.8
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 07 02 00 00 02 19 3f 03 19 19 09 07 00 2d 02 63 04 15 1f 1f 06 06 0c
+43 03 63 07 0b 10 10 12 09 0c 00 45 63 00 0b 5a 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.8
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 07 02 00 00 00 19 3f 03 19 19 09 07 00 2d 00 63 04 15 1f 1f 06 06 0c
+43 00 63 07 0b 10 10 12 09 0c 00 40 63 00 0b 5a 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 38 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.9
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 1f 02 0a 00 01 39 3d 03 1f 13 1f 06 00 2d 02 63 04 13 1f 0c 00 06 00
+43 03 63 00 0b 1f 10 1f 09 06 00 45 63 00 0b 5c 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm.9
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 1f 02 0a 00 00 39 3d 03 1f 13 1f 06 00 2d 00 63 04 13 1f 0c 00 06 00
+43 00 63 00 0b 1f 10 1f 09 06 00 40 63 00 0b 5c 17 00 00 2a 66 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 2e 39 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm10
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 1f 02 0a 00 01 39 3a 03 1f 13 1f 06 00 2d 02 63 01 13 1f 0c 00 06 00
+43 05 63 01 0b 1f 10 1f 09 06 00 06 63 05 0b 64 08 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm10
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 1f 02 0a 00 00 39 3a 03 1f 13 1f 06 00 2d 00 63 01 13 1f 0c 00 06 00
+43 00 63 01 0b 1f 10 1f 09 06 00 00 63 05 0b 64 08 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 30 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm11
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 15 00 07 09 00 02 4a 00 13 1f 1f 10 04 0a 00 03 54 01 13 1d 1a 06 07 04
+00 05 63 05 03 1f 10 1f 05 00 00 05 63 00 0b 2c 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 53 79 6e 74 68 44 72 6d 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm11
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 15 00 07 09 00 00 4a 00 13 1f 1f 10 04 0a 00 00 54 01 13 1d 1a 06 07 04
+00 00 63 05 03 1f 10 1f 05 00 00 00 63 00 0b 2c 23 00 00 00 62 18 05 04 00
+63 00 00 00 00 32 00 53 79 6e 74 68 44 72 6d 31 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm12
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 1f 19 06 0f 00 02 2d 34 1b 1f 14 1f 06 00 2d 02 63 04 13 1f 0b 00 06 00
+43 44 63 00 0b 1f 10 1f 09 06 00 46 63 07 0b 5c 24 1c 02 4d 76 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm12
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 1f 19 06 0f 00 00 2d 34 1b 1f 14 1f 06 00 2d 00 63 04 13 1f 0b 00 06 00
+43 40 63 00 0b 1f 10 1f 09 06 00 40 63 07 0b 5c 24 1c 02 4d 76 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm13
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 04 61 3f 03 18 18 16 0b 04 2d 04 5f 06 05 15 15 0c 0a 00
+43 04 63 07 03 15 13 0c 0b 00 00 06 63 01 03 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm13
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 61 3f 03 18 18 16 0b 04 2d 00 5f 06 05 15 15 0c 0a 00
+43 00 63 07 03 15 13 0c 0b 00 00 00 63 01 03 7c 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm14
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 03 61 3f 03 18 18 16 0b 04 2d 03 56 01 05 15 15 0c 0a 00
+43 03 42 07 03 15 13 0c 0b 00 00 04 63 01 03 78 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm14
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 61 3f 03 18 18 16 0b 04 2d 00 56 01 05 15 15 0c 0a 00
+43 00 42 07 03 15 13 0c 0b 00 00 00 63 01 03 78 3f 00 63 00 60 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm15
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 18 1f 0a 0f 00 03 63 08 03 13 18 0e 0b 0a 2d 03 35 00 05 1f 18 0d 0a 09
+43 04 5e 04 03 15 11 0c 0b 00 00 05 63 00 03 7b 23 00 00 00 32 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm15
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 18 1f 0a 0f 00 00 63 08 03 13 18 0e 0b 0a 2d 00 35 00 05 1f 18 0d 0a 09
+43 00 5e 04 03 15 11 0c 0b 00 00 00 63 00 03 7b 23 00 00 00 32 0c 06 04 00
+63 32 00 32 00 32 00 53 79 6e 74 68 44 72 6d 31 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm16
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 1e 08 01 00 63 02 63 0a 0b 14 07 16 0f 00 00 02 51 00 1b 1f 0c 1f 06 00
+00 05 61 01 03 1c 0f 07 07 07 3e 04 63 03 0b 7c 00 00 00 00 73 0c 02 04 00
+63 62 00 00 00 32 00 53 79 6e 74 68 44 72 6d 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SynthDrm16
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 1e 08 01 00 63 00 63 0a 0b 14 07 16 0f 00 00 00 51 00 1b 1f 0c 1f 06 00
+00 00 61 01 03 1c 0f 07 07 07 3e 00 63 03 0b 7c 00 00 00 00 73 0c 02 04 00
+63 62 00 00 00 32 00 53 79 6e 74 68 44 72 6d 31 36 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tibet Drum
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0f 09 01 0c 32 02 59 0a 15 1c 0f 1f 02 0a 1e 03 34 10 0a 1c 09 0d 02 0a
+32 05 5d 04 0a 1c 09 0d 02 0a 1e 06 61 04 0e 24 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 54 69 62 65 74 20 44 72 75 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tibet Drum
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0f 09 01 0c 32 00 59 0a 15 1c 0f 1f 02 0a 1e 00 34 10 0a 1c 09 0d 02 0a
+32 00 5d 04 0a 1c 09 0d 02 0a 1e 00 61 04 0e 24 20 2c 14 00 42 0c 0c 04 00
+63 32 32 00 00 32 00 54 69 62 65 74 20 44 72 75 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timbale..1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 07 03 05 0f 00 00 37 02 06 15 09 04 04 0f 00 00 47 01 00 13 1f 00 06 0f
+00 04 5f 03 06 1f 0c 07 06 00 00 04 63 00 13 3c 0b 00 10 00 22 18 07 04 00
+63 32 63 32 00 32 00 54 69 6d 62 61 6c 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timbale..1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 07 03 05 0f 00 00 37 02 06 15 09 04 04 0f 00 00 47 01 00 13 1f 00 06 0f
+00 00 5f 03 06 1f 0c 07 06 00 00 00 63 00 13 3c 0b 00 10 00 22 18 07 04 00
+63 32 63 32 00 32 00 54 69 6d 62 61 6c 65 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timbale..2
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 01 07 04 00 00 00 3d 02 06 1f 18 09 03 0a 00 00 53 01 08 1f 09 06 04 0b
+00 05 57 03 06 1f 0c 07 06 00 00 05 63 00 13 2c 0b 00 10 00 22 18 07 04 00
+63 32 63 32 00 32 00 54 69 6d 62 61 6c 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timbale..2
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 01 07 04 00 00 00 3d 02 06 1f 18 09 03 0a 00 00 53 01 08 1f 09 06 04 0b
+00 00 57 03 06 1f 0c 07 06 00 00 00 63 00 13 2c 0b 00 10 00 22 18 07 04 00
+63 32 63 32 00 32 00 54 69 6d 62 61 6c 65 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timbales *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 02 00 13 00 50 04 0b 1f 0d 00 07 00 0c 00 55 01 03 1f 11 00 09 00
+32 00 3c 2b 03 1f 0e 00 06 00 00 06 63 08 03 41 02 00 5f 00 72 00 02 04 00
+28 63 00 00 00 32 00 54 69 6d 62 61 6c 65 73 20 2a 63 63 63 32 32 32 00 1a
+00 22 03 04 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 08 03 00 00 07 4f 00 00 1f 11 06 03 0b 36 02 4b 00 08 1f 12 0c 04 0f
+00 05 4f 01 0e 1d 0b 00 04 00 00 00 63 00 0b 02 07 00 00 00 62 18 0c 04 00
+28 50 00 00 00 32 00 54 69 6d 70 61 6e 69 20 20 2a 63 63 63 32 32 32 00 32
+00 02 10 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 23
+1d 12 00 03 00 00 00 41 3c 03 1f 0f 07 04 0f 00 00 3c 00 03 1f 0f 11 03 0c
+3b 01 52 02 03 1f 11 0c 04 0f 00 02 63 00 03 3a 15 00 03 00 6a 0c 07 04 00
+63 32 00 00 00 32 00 54 69 6d 70 61 6e 69 20 20 20 63 63 63 32 32 32 08 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 12 00 03 00 00 00 37 00 03 1f 13 0c 04 0b 00 00 48 00 03 1f 07 04 02 0c
+3b 05 3f 02 03 1f 0c 0c 04 0f 00 06 63 00 03 2a 15 00 03 00 6a 0c 07 04 00
+63 32 00 00 00 32 00 54 69 6d 70 61 6e 69 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 12 00 03 00 00 00 37 00 03 1f 13 0c 04 0b 00 00 48 00 03 1f 07 04 02 0c
+3b 00 3f 02 03 1f 0c 0c 04 0f 00 00 63 00 03 2a 15 00 03 00 6a 0c 07 04 00
+63 32 00 00 00 32 00 54 69 6d 70 61 6e 69 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 12 00 02 00 00 00 3d 02 0b 1f 1f 08 04 0f 00 00 37 00 03 1f 0f 07 03 0c
+3b 05 4f 00 03 1f 1f 0c 04 0f 00 05 63 02 0b 3a 15 00 03 00 6a 00 07 04 00
+63 32 00 00 00 32 00 54 69 6d 70 61 6e 69 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Timpani..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 12 00 02 00 00 00 3d 02 0b 1f 1f 08 04 0f 00 00 37 00 03 1f 0f 07 03 0c
+3b 00 4f 00 03 1f 1f 0c 04 0f 00 00 63 02 0b 3a 15 00 03 00 6a 00 07 04 00
+63 32 00 00 00 32 00 54 69 6d 70 61 6e 69 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 1
+** Source: Yamaha DX11 factory preset, bank D, voice 5
+1f 05 0a 08 0e 00 00 5d 08 03 1f 0c 10 07 04 00 00 34 18 03 1f 0e 0a 06 00
+00 00 51 20 03 1f 10 0a 07 0f 00 00 5e 04 03 01 23 00 00 00 62 00 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 31 63 17 23 32 2e 2e 08 05
+08 04 09 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 05 0d 08 0e 00 00 5d 08 03 1f 0c 10 07 04 00 00 34 18 03 1f 0e 0a 06 00
+00 00 51 20 03 1f 10 0d 07 0f 00 00 5e 04 03 01 23 00 00 00 62 00 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 31 63 17 23 32 2e 2e 08 05
+08 04 09 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 2
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank D, voice 6
+1f 1f 00 01 0f 00 00 63 00 03 1f 1f 00 01 0f 13 01 37 04 0b 1f 18 11 03 06
+00 01 5e 04 0b 1f 1f 0b 06 0f 00 01 63 00 0b 3b 23 00 00 00 62 18 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 32 63 25 26 32 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 3
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 7
+1f 1f 00 01 0f 00 00 46 1b 03 1f 1f 00 01 0f 13 01 37 04 0b 1f 18 05 03 06
+00 01 5e 03 0b 1f 14 0b 06 0e 00 01 63 00 0b 3b 63 00 63 00 63 18 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 33 63 25 26 32 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 4
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 8
+1f 1f 00 01 0f 00 00 46 06 03 1f 1f 00 01 0f 13 01 37 00 0b 1f 18 05 03 06
+00 01 5e 00 0b 1f 0b 1f 0a 0a 00 01 63 00 0b 23 63 00 63 00 63 18 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 34 63 25 26 32 2c 2c 00 00
+00 02 00 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom 4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 00 00 46 06 03 1f 1f 00 01 0f 13 01 37 00 0b 1f 18 05 03 06
+00 01 5e 00 0b 1f 0b 1f 0a 0d 00 01 63 00 0b 23 63 00 63 00 63 18 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 20 20 20 20 20 20 34 63 25 26 32 2c 2c 00 00
+00 02 00 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1f 17 0f 0f 00 00 00 04 03 15 1f 1b 0f 0f 00 00 5d 02 06 18 1f 10 0f 0f
+00 06 00 04 06 13 16 0d 0a 0f 00 04 63 00 08 03 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 17 0f 0f 00 00 00 04 03 15 1f 1b 0f 0f 00 00 5d 02 06 18 1f 10 0f 0f
+00 00 00 04 06 13 16 0d 0a 0f 00 00 63 00 08 03 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1f 1a 0f 0f 00 00 63 07 03 15 1f 1b 0f 0f 00 00 5d 02 06 18 1f 10 0f 0f
+00 05 47 02 06 13 16 0d 0a 0f 00 05 63 00 08 03 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 1a 0f 0f 00 00 63 07 03 15 1f 1b 0f 0f 00 00 5d 02 06 18 1f 10 0f 0f
+00 00 47 02 06 13 16 0d 0a 0f 00 00 63 00 08 03 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+18 1f 1a 0f 0f 00 00 63 01 03 15 1f 1b 0f 0f 00 00 63 01 16 18 1f 10 0f 0f
+00 05 63 02 06 13 16 0d 0a 0f 00 05 63 01 10 04 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 1a 0f 0f 00 00 63 01 03 15 1f 1b 0f 0f 00 00 63 01 16 18 1f 10 0f 0f
+00 00 63 02 06 13 16 0d 0a 0f 00 00 63 01 10 04 23 00 00 00 62 18 0c 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 0c 0a 0a 00 00 4d 0a 00 1f 13 0a 05 0d 32 00 4e 0c 03 1f 0d 0c 0a 0d
+1f 05 59 10 03 1f 1c 0f 07 0f 00 05 63 0a 03 2c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 34 63 63 63 32 32 32 00 00
+00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom Tom..4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 0c 0a 0a 00 00 4d 02 00 1f 13 0a 05 0d 32 00 4e 0c 03 1f 0d 0c 0a 0d
+1f 00 59 0e 03 1f 1c 0f 07 0f 00 00 63 09 03 2c 23 00 00 00 62 0c 04 04 00
+63 32 00 00 00 32 00 54 6f 6d 20 54 6f 6d 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tom-Pany
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 16
+1f 10 00 01 00 35 00 50 00 00 1f 16 04 03 09 36 00 63 00 00 13 0b 03 02 09
+3b 00 3c 03 06 1d 0c 00 06 00 00 00 5a 00 06 1a 07 00 51 00 52 0c 04 04 00
+28 32 00 00 00 32 00 54 6f 6d 2d 50 61 6e 79 20 20 63 40 43 32 18 16 00 50
+00 03 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Drum
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 1f 07 0f 00 00 63 3f 03 18 1f 1f 07 0f 46 01 63 00 03 1f 1f 1f 06 0f
+00 06 63 00 03 1b 1f 0f 06 0f 00 04 63 00 03 04 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 20 44 72 75 6d 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wood Drum
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 1f 07 0f 00 00 63 3f 03 18 1f 1f 07 0f 46 00 63 00 03 1f 1f 1f 06 0f
+00 00 63 00 03 1b 1f 0f 06 0f 00 00 63 00 03 04 23 00 00 00 62 18 04 04 00
+63 32 00 00 00 32 00 57 6f 6f 64 20 44 72 75 6d 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: XyloSpring
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 16 15 0f 05 2e 04 63 04 06 10 0c 0c 03 09 00 03 3f 01 01 1f 16 0f 06 03
+00 06 63 08 03 1f 09 09 06 0c 00 06 62 00 02 7c 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 58 79 6c 6f 53 70 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: XyloSpring
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 16 15 0f 05 2e 00 63 04 06 10 0c 0c 03 09 00 00 3f 01 01 1f 16 0f 06 03
+00 00 63 08 03 1f 09 09 06 0c 00 00 62 00 02 7c 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 58 79 6c 6f 53 70 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Other
+
+
+** Name: Cabassa *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 00 0f 00 00 00 63 1c 03 1f 0d 00 07 00 00 41 63 24 03 1f 0d 00 07 00
+00 42 63 38 03 1f 0d 00 06 00 00 42 63 24 03 7d 51 00 00 63 7f 30 02 04 00
+28 63 00 00 00 32 00 43 61 62 61 73 73 61 20 20 2a 63 63 63 32 32 32 0d 00
+0d 50 0c 00 0d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Maracas *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 15 00 09 00 00 00 62 1c 03 1f 0d 00 07 00 00 41 63 3c 03 1f 0d 00 06 00
+00 42 63 24 03 1f 0d 00 07 00 00 42 63 3c 03 7d 59 00 00 63 7f 30 02 04 00
+28 63 00 00 00 32 00 4d 61 72 61 63 61 73 20 20 2a 63 63 63 32 32 32 0e 00
+0d 43 0e 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Metalimba
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 4
+1f 17 00 05 05 1c 02 55 28 0b 1f 10 00 04 08 0a 02 4d 15 0e 1f 0b 00 05 08
+0c 02 4d 16 08 1f 0e 00 06 00 00 01 63 04 0b 02 23 00 00 00 62 0c 07 04 00
+63 63 00 00 00 32 00 4d 65 74 61 6c 69 6d 62 61 20 63 63 63 32 32 32 00 60
+00 01 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tambourin*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 00 0f 00 00 01 63 04 03 1f 00 00 01 0f 00 01 59 24 03 1f 12 00 01 0f
+00 00 45 04 03 18 10 1f 07 00 00 03 63 18 03 32 23 00 00 00 32 00 02 04 00
+28 63 00 00 00 32 00 54 61 6d 62 6f 75 72 69 6e 2a 63 63 63 32 32 32 0b 05
+0e 09 08 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 27
+
+* CATEGORY NOISES
+
+* SUBCATEGORY Noises1
+
+** Name: Airplane.1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 02 08 0f 00 45 4d 04 03 13 12 11 03 0c 03 45 63 00 03 0f 04 03 08 0f
+00 46 63 04 03 0c 12 03 03 0f 02 46 5f 00 03 0c 63 00 00 63 27 18 02 04 00
+63 63 00 00 00 32 00 41 69 72 70 6c 61 6e 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Airplane.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 04 02 08 0f 00 40 4d 04 03 13 12 11 03 0c 03 40 63 00 03 0f 04 03 08 0f
+00 40 63 04 03 0c 12 03 03 0f 02 40 5f 00 03 0c 63 00 00 63 27 18 02 04 00
+63 63 00 00 00 32 00 41 69 72 70 6c 61 6e 65 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Airplane.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 02 08 0f 00 44 56 09 03 13 12 11 03 0c 03 44 63 09 03 0f 04 03 08 0f
+00 44 63 04 03 0c 12 03 03 0f 02 47 5f 00 03 0c 63 00 00 63 27 18 02 04 00
+63 63 00 00 00 32 00 41 69 72 70 6c 61 6e 65 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Airplane.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 04 02 08 0f 00 40 56 09 03 13 12 11 03 0c 03 40 63 09 03 0f 04 03 08 0f
+00 40 63 04 03 0c 12 03 03 0f 02 40 5f 00 03 0c 63 00 00 63 27 18 02 04 00
+63 63 00 00 00 32 00 41 69 72 70 6c 61 6e 65 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alarm Call
+** Controls: MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank D, voice 18
+1f 1f 00 03 0f 00 00 2e 3f 00 1f 1f 00 04 0f 00 00 47 11 06 1f 1f 00 06 0f
+00 40 3a 0b 00 1f 1f 00 06 0f 00 40 5c 3f 06 22 37 00 00 28 6d 18 04 04 00
+63 01 63 00 00 32 00 41 6c 61 72 6d 20 43 61 6c 6c 63 63 63 32 32 32 00 40
+0e 50 00 00 0a 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alien 3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 05 02 04 0e 00 00 4d 08 01 19 07 04 05 0f 08 00 4c 06 00 0f 0a 00 07 0e
+06 02 63 05 05 14 15 03 05 0e 00 01 62 06 00 24 26 03 05 00 46 05 03 04 00
+63 2b 00 00 00 32 00 41 6c 69 65 6e 20 33 20 20 20 63 63 63 32 32 32 01 31
+00 21 00 23 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alien Chat
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 0c 01 06 0e 00 43 28 04 05 16 10 1f 05 0d 00 44 2c 04 02 16 0f 1f 06 0d
+00 45 46 0a 06 15 04 1f 06 0e 00 45 63 08 03 42 32 00 00 63 05 18 02 04 00
+28 02 00 00 00 32 00 41 6c 69 65 6e 20 43 68 61 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Alien Chat
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 0c 01 06 0e 00 40 28 04 05 16 10 1f 05 0d 00 40 2c 04 02 16 0f 1f 06 0d
+00 40 46 0a 06 15 04 1f 06 0e 00 40 63 08 03 42 32 00 00 63 05 18 02 04 00
+28 02 00 00 00 32 00 41 6c 69 65 6e 20 43 68 61 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Artofnoiz*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 0a 08 02 07 00 05 5e 0d 0b 1f 03 00 01 00 00 00 63 00 0b 1b 04 0a 01 07
+00 03 57 18 0b 1f 13 04 06 0f 00 00 63 00 13 03 23 00 00 00 32 00 02 04 00
+28 63 00 00 00 32 00 41 72 74 6f 66 6e 6f 69 7a 2a 63 63 63 32 32 32 00 00
+08 00 08 04 08 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoDecent
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+07 1b 0d 0d 0f 00 03 63 11 00 0c 1b 0d 0d 0f 00 04 63 13 03 0a 1b 0d 0d 0f
+00 04 63 12 06 1f 1b 0d 0d 0f 00 06 63 19 03 47 25 00 00 00 32 00 02 04 00
+28 02 00 00 00 32 00 41 75 74 6f 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoDecent
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 1b 0d 0d 0f 00 00 63 11 00 0c 1b 0d 0d 0f 00 00 63 13 03 0a 1b 0d 0d 0f
+00 00 63 12 06 1f 1b 0d 0d 0f 00 00 63 19 03 47 25 00 00 00 32 00 02 04 00
+28 02 00 00 00 32 00 41 75 74 6f 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoStorm1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 07 01 03 05 00 03 30 0a 00 14 0b 04 01 09 00 04 4d 15 00 14 06 01 03 05
+00 04 53 00 00 0f 09 00 01 0c 00 05 63 00 00 2b 63 00 40 00 73 00 05 04 00
+63 63 63 00 00 32 00 41 75 74 6f 53 74 6f 72 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoStorm1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 07 01 03 05 00 00 30 0a 00 14 0b 04 01 09 00 00 4d 15 00 14 06 01 03 05
+00 00 53 00 00 0f 09 00 01 0c 00 00 63 00 00 2b 63 00 40 00 73 00 05 04 00
+63 63 63 00 00 32 00 41 75 74 6f 53 74 6f 72 6d 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoStorm2
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 07 09 03 05 00 43 33 0d 00 12 0b 09 01 09 00 43 4d 15 00 18 06 09 03 05
+00 44 53 00 00 13 09 09 01 0c 00 45 63 00 00 5b 50 00 63 11 77 00 05 04 00
+63 63 63 00 00 32 00 41 75 74 6f 53 74 6f 72 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: AutoStorm2
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 07 09 03 05 00 40 33 0d 00 12 0b 09 01 09 00 40 4d 15 00 18 06 09 03 05
+00 40 53 00 00 13 09 09 01 0c 00 40 63 00 00 5b 50 00 63 11 77 00 05 04 00
+63 63 63 00 00 32 00 41 75 74 6f 53 74 6f 72 6d 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Belch
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 0c 0b 0b 00 44 42 0d 03 1f 1b 07 09 0c 00 43 54 0d 1b 1f 1c 0c 0b 0c
+00 44 63 0d 03 1f 1b 07 09 0f 00 45 63 00 1b 74 59 00 63 23 75 0c 07 04 00
+63 32 01 32 00 32 00 42 69 67 20 42 65 6c 63 68 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Big Belch
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 0c 0b 0b 00 40 42 0d 03 1f 1b 07 09 0c 00 40 54 0d 1b 1f 1c 0c 0b 0c
+00 40 63 0d 03 1f 1b 07 09 0f 00 40 63 00 1b 74 59 00 63 23 75 0c 07 04 00
+63 32 01 32 00 32 00 42 69 67 20 42 65 6c 63 68 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Birds *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 0f 0f 00 00 00 0c 03 1c 00 00 01 0f 00 00 55 20 03 1b 12 00 01 0f
+00 00 63 00 03 10 15 00 09 0e 00 03 63 00 03 02 23 00 00 00 32 00 02 04 00
+28 63 00 00 00 32 00 42 69 72 64 73 20 20 20 20 2a 63 63 63 32 32 32 0f 09
+0e 09 08 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Birds
+** Controls: MW (LFO pitch), MW (LFO amplitude), BC (voice pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 12
+1f 1f 00 07 0f 28 00 51 01 03 1f 1f 00 0f 0f 28 00 4b 01 03 13 1f 00 0e 0f
+0a 40 63 3f 03 1f 1f 00 0f 0f 0a 40 63 3f 03 04 22 00 50 5e 6e 0c 0c 04 00
+63 63 63 00 00 33 00 42 69 72 64 73 20 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BlendOrgan
+** Description: Strange, loud, obnoxious sound
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 00 00 0a 0f 09 00 45 0e 03 19 00 00 08 0f 23 00 61 07 08 13 00 00 08 0f
+00 00 5f 0b 01 12 00 00 05 0f 00 00 63 02 0d 3c 1f 00 23 00 42 0c 06 04 00
+63 3d 00 1d 00 32 00 42 6c 65 6e 64 4f 72 67 61 6e 63 63 63 32 32 32 00 00
+00 20 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Blow Up
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 04 04 06 02 00 3b 62 00 03 0f 06 04 06 0d 00 1d 63 00 1b 13 15 15 06 09
+00 1a 63 04 1b 0f 04 04 09 0c 00 3f 63 0d 03 3a 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 42 6c 6f 77 20 55 70 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Blow Up
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 04 04 06 02 00 38 62 00 03 0f 06 04 06 0d 00 18 63 00 1b 13 15 15 06 09
+00 18 63 04 1b 0f 04 04 09 0c 00 38 63 0d 03 3a 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 42 6c 6f 77 20 55 70 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Boingggggg
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 1b 03 00 00 42 4b 1d 15 1f 07 0c 04 00 00 44 32 16 15 1f 07 1c 03 00
+00 44 3a 38 13 1f 07 0c 0d 00 00 45 63 08 10 2b 11 00 49 5a 74 00 02 04 00
+63 63 00 00 00 32 00 42 6f 69 6e 67 67 67 67 67 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Boingggggg
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 1b 03 00 00 40 4b 1d 15 1f 07 0c 04 00 00 40 32 16 15 1f 07 1c 03 00
+00 40 3a 38 13 1f 07 0c 0d 00 00 40 63 08 10 2b 11 00 49 5a 74 00 02 04 00
+63 63 00 00 00 32 00 42 6f 69 6e 67 67 67 67 67 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrokWindow
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 06 06 06 00 03 3f 10 03 1f 0d 00 05 0b 00 03 50 31 03 1f 1f 00 08 0f
+00 05 39 3f 03 1f 1f 0f 07 0f 00 06 63 10 03 2a 34 00 37 49 73 1a 05 04 00
+63 32 00 00 00 32 00 42 72 6f 6b 57 69 6e 64 6f 77 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BrokWindow
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 06 06 06 00 00 3f 10 03 1f 0d 00 05 0b 00 00 50 31 03 1f 1f 00 08 0f
+00 00 39 3f 03 1f 1f 0f 07 0f 00 00 63 10 03 2a 34 00 37 49 73 1a 05 04 00
+63 32 00 00 00 32 00 42 72 6f 6b 57 69 6e 64 6f 77 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bubbly
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+17 06 00 04 0e 0a 04 3a 01 00 1f 1f 1f 0f 0f 00 04 00 04 00 1f 1f 1f 0f 0f
+00 43 41 01 0b 18 0d 0d 06 00 00 45 63 0a 13 7b 32 00 63 43 39 18 02 04 00
+28 02 00 00 00 32 00 42 75 62 62 6c 79 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Bubbly
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 06 00 04 0e 0a 00 3a 01 00 1f 1f 1f 0f 0f 00 00 00 04 00 1f 1f 1f 0f 0f
+00 40 41 01 0b 18 0d 0d 06 00 00 40 63 0a 13 7b 32 00 63 43 39 18 02 04 00
+28 02 00 00 00 32 00 42 75 62 62 6c 79 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Busy *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 04 03 1f 1f 00 0f 0f 00 40 5f 34 03 1f 1f 00 0f 0f
+00 40 3a 20 03 1f 1f 00 0f 0f 00 40 63 2c 03 46 13 46 00 63 4d 18 04 04 00
+28 32 00 00 00 32 00 42 75 73 79 20 20 20 20 20 2a 63 63 63 32 32 32 00 00
+09 0a 09 07 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Busy.....1
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 00 43 32 04 08 1f 1f 00 05 0f 00 43 34 00 0e 1f 1f 00 05 0f
+00 46 40 08 08 1f 1f 00 05 0f 00 45 63 00 0e 02 0f 00 00 5a 0d 18 04 04 00
+63 01 63 00 00 32 00 42 75 73 79 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Busy.....1
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 00 40 32 04 08 1f 1f 00 05 0f 00 40 34 00 0e 1f 1f 00 05 0f
+00 40 40 08 08 1f 1f 00 05 0f 00 40 63 00 0e 02 0f 00 00 5a 0d 18 04 04 00
+63 01 63 00 00 32 00 42 75 73 79 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Busy.....2
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 00 40 63 04 08 1f 1f 00 05 0f 00 40 63 00 0e 1f 1f 00 05 0f
+00 40 63 08 08 1f 1f 00 05 0f 00 40 63 00 0e 07 0f 00 00 63 0d 18 04 04 00
+63 01 63 00 00 32 00 42 75 73 79 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choo Choo
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 10 11 08 0f 00 03 48 04 15 1c 1f 1f 06 0f 00 04 63 18 1d 1c 10 03 06 0f
+00 05 63 08 1b 10 0c 03 09 0f 00 46 63 03 10 7a 63 00 10 54 06 18 02 04 00
+63 63 00 00 00 32 00 43 68 6f 6f 20 43 68 6f 6f 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Choo Choo
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 10 11 08 0f 00 00 48 04 15 1c 1f 1f 06 0f 00 00 63 18 1d 1c 10 03 06 0f
+00 00 63 08 1b 10 0c 03 09 0f 00 40 63 03 10 7a 63 00 10 54 06 18 02 04 00
+63 63 00 00 00 32 00 43 68 6f 6f 20 43 68 6f 6f 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chopper..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 43 63 3f 03 1f 1f 00 01 0f 00 43 63 29 03 1f 1f 00 03 0f
+00 45 63 35 03 0b 0b 00 07 0f 00 45 63 00 03 38 2a 00 42 5a 64 18 02 04 00
+28 02 00 00 00 32 00 43 68 6f 70 70 65 72 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chopper..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 40 63 3f 03 1f 1f 00 01 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 0b 0b 00 07 0f 00 40 63 00 03 38 2a 00 42 5a 64 18 02 04 00
+28 02 00 00 00 32 00 43 68 6f 70 70 65 72 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chopper..1
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 40 63 3f 03 1f 1f 00 00 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 0b 0b 00 07 0f 00 40 63 00 03 38 2a 00 42 5a 64 18 02 04 00
+28 02 00 00 00 32 00 43 68 6f 70 70 65 72 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chopper..2
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 02 0f 00 44 50 0a 04 1f 1f 00 03 0f 00 46 56 05 02 1f 1f 00 03 0f
+00 44 4e 08 04 1f 1f 00 03 0f 00 46 5f 02 04 6b 33 00 00 63 7c 0c 07 04 00
+63 32 01 32 00 32 00 43 68 6f 70 70 65 72 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Chopper..2
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 02 0f 00 40 50 0a 04 1f 1f 00 03 0f 00 40 56 05 02 1f 1f 00 03 0f
+00 40 4e 08 04 1f 1f 00 03 0f 00 40 5f 02 04 6b 33 00 00 63 7c 0c 07 04 00
+63 32 01 32 00 32 00 43 68 6f 70 70 65 72 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cricket *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 00 00 5a 2c 03 1f 1f 00 01 0f 00 00 5a 28 03 1c 1f 00 04 0f
+00 40 52 30 03 1d 1f 00 04 0f 00 40 52 34 03 24 20 00 00 63 0d 18 04 04 00
+28 32 00 00 00 32 00 43 72 69 63 6b 65 74 20 20 2a 63 63 63 32 32 32 08 0a
+08 02 0d 0f 0d 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Diving Fly
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0d 1f 00 08 0f 00 44 36 06 03 0d 1f 00 03 0f 00 44 63 04 03 0d 1f 00 04 0f
+00 46 63 05 03 0d 1f 00 03 0f 00 47 63 04 03 4d 63 00 00 31 7e 24 05 04 00
+63 63 63 00 00 32 00 44 69 76 69 6e 67 20 46 6c 79 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Diving Fly
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0d 1f 00 08 0f 00 40 36 06 03 0d 1f 00 03 0f 00 40 63 04 03 0d 1f 00 04 0f
+00 40 63 05 03 0d 1f 00 03 0f 00 40 63 04 03 4d 63 00 00 31 7e 24 05 04 00
+63 63 63 00 00 32 00 44 69 76 69 6e 67 20 46 6c 79 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dynamite
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 09 02 05 00 3c 4f 04 03 1f 03 0d 04 00 00 1c 38 04 03 1b 0a 0d 03 0f
+00 1d 49 3f 03 1f 03 0d 04 00 00 3e 5a 04 03 3a 55 00 2d 00 72 00 02 04 00
+63 32 00 00 00 32 00 44 79 6e 61 6d 69 74 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Dynamite
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 08 09 02 05 00 38 4f 04 03 1f 03 0d 04 00 00 18 38 04 03 1b 0a 0d 03 0f
+00 18 49 3f 03 1f 03 0d 04 00 00 38 5a 04 03 3a 55 00 2d 00 72 00 02 04 00
+63 32 00 00 00 32 00 44 79 6e 61 6d 69 74 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EarthQuake
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 02 09 05 00 00 3c 56 00 00 0f 06 12 03 0c 00 1c 3a 04 1b 13 15 15 03 09
+00 1c 3e 00 1b 0f 04 0a 07 0e 00 3f 5d 04 03 3a 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 45 61 72 74 68 51 75 61 6b 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EarthQuake
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 02 09 05 00 00 38 56 00 00 0f 06 12 03 0c 00 18 3a 04 1b 13 15 15 03 09
+00 18 3e 00 1b 0f 04 0a 07 0e 00 38 5d 04 03 3a 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 45 61 72 74 68 51 75 61 6b 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Earthquake
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 28
+17 0c 05 01 0e 03 43 4c 0a 0b 15 06 06 01 0e 00 40 56 07 0b 10 0b 05 01 0a
+00 40 4c 0a 03 17 07 06 04 0f 00 41 5d 00 0b 38 63 00 0c 00 67 00 04 04 00
+28 32 00 00 00 32 00 45 61 72 74 68 71 75 61 6b 65 63 63 12 32 32 00 00 0a
+00 01 00 03 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Earthquake
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+17 0c 05 01 0e 03 43 4c 0d 0b 15 06 06 01 0e 00 40 56 07 0b 10 0b 05 01 0d
+00 40 4c 0a 03 17 07 06 04 0f 00 41 5d 00 0b 38 63 00 0c 00 67 00 04 04 00
+28 32 00 00 00 32 00 45 61 72 74 68 71 75 61 6b 65 63 63 12 32 32 00 00 0d
+00 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Eng Siren
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 05 0f 23 04 2b 08 03 1f 1f 00 02 0f 00 04 4d 08 03 1f 1f 00 05 0f
+0a 05 5d 04 0b 15 1f 00 05 0f 05 06 63 04 03 04 0d 00 63 00 61 18 05 04 00
+63 63 28 00 00 32 00 45 6e 67 20 53 69 72 65 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Eng Siren
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 05 0f 23 00 2b 08 03 1f 1f 00 02 0f 00 00 4d 08 03 1f 1f 00 05 0f
+0a 00 5d 04 0b 15 1f 00 05 0f 05 00 63 04 03 04 0d 00 63 00 61 18 05 04 00
+63 63 28 00 00 32 00 45 6e 67 20 53 69 72 65 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Excuse Me
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1b 03 07 04 0e 4d 04 5b 04 03 12 1f 09 0a 0f 00 04 43 08 03 12 1f 0b 0a 0f
+4b 05 55 08 03 12 1f 08 0a 0f 01 05 5f 04 03 23 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 45 78 63 75 73 65 20 4d 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Excuse Me
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1b 03 07 04 0e 4d 00 5b 04 03 12 1f 09 0a 0f 00 00 43 08 03 12 1f 0b 0a 0f
+4b 00 55 08 03 12 1f 08 0a 0f 01 00 5f 04 03 23 00 00 00 00 02 00 02 04 00
+63 32 00 00 00 32 00 45 78 63 75 73 65 20 4d 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Exo/Bird *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 04 03 13 08 08 04 0f 00 00 51 0a 03 0d 03 01 04 0f
+00 00 5b 04 03 11 0d 1f 07 00 00 00 63 00 03 00 23 00 00 00 62 0e 04 04 00
+28 32 00 00 00 32 00 45 78 6f 2f 42 69 72 64 20 2a 63 63 63 32 32 32 00 00
+00 00 08 02 08 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explosion
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 09 04 07 0f 00 43 5f 10 08 10 09 04 07 0f 00 44 63 0d 0e 10 09 04 07 0f
+00 43 4e 06 08 10 09 04 07 0f 00 46 2c 04 08 05 47 00 63 63 37 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 73 69 6f 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Explosion
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 09 04 07 0f 00 40 5f 10 08 10 09 04 07 0f 00 40 63 0d 0e 10 09 04 07 0f
+00 40 4e 06 08 10 09 04 07 0f 00 40 2c 04 08 05 47 00 63 63 37 18 04 04 00
+63 01 63 00 00 32 00 45 78 70 6c 6f 73 69 6f 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FaucetDrip
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 08 1f 05 0d 0a 05 39 00 03 1f 0a 1f 0a 0f 00 06 63 04 03 1f 09 1f 0a 0f
+00 02 63 08 03 1f 0e 1f 0a 0d 00 05 63 04 03 7d 39 00 63 00 70 18 02 04 00
+28 02 00 00 00 32 00 46 61 75 63 65 74 44 72 69 70 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FaucetDrip
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 08 1f 05 0d 0a 00 39 00 03 1f 0a 1f 0a 0f 00 00 63 04 03 1f 09 1f 0a 0f
+00 00 63 08 03 1f 0e 1f 0a 0d 00 00 63 04 03 7d 39 00 63 00 70 18 02 04 00
+28 02 00 00 00 32 00 46 61 75 63 65 74 44 72 69 70 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Feedback *
+** Description: A raspy sound
+** Controls: MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 00 07 0f 30 00 40 13 01 1f 14 05 08 0b 00 00 61 04 00 1f 1f 00 07 0f
+05 00 49 04 04 1c 1f 01 08 0e 00 00 63 13 06 39 1d 14 06 00 62 24 0c 04 00
+28 32 00 00 00 36 00 46 65 65 64 62 61 63 6b 20 2a 63 63 63 32 32 32 00 00
+00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Flight Sim
+** Source: Yamaha TX81Z factory preset, bank D, voice 15
+1f 1f 00 04 0f 00 00 49 04 03 1f 1f 00 01 0f 32 00 59 04 03 1f 1f 00 05 0f
+3b 40 43 10 03 0e 1f 00 06 0f 00 00 5c 0d 03 3a 39 00 00 63 6a 00 0c 0c 63
+63 32 00 00 00 32 00 46 6c 69 67 68 74 20 53 69 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gizmo *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 0d 05 06 0f 1e 01 3f 10 06 1a 1a 05 05 0a 36 01 63 07 0e 0f 1a 04 05 0f
+13 01 63 00 10 1f 13 07 07 0f 00 01 63 04 0e 3b 14 00 00 00 42 18 02 04 00
+63 32 00 32 00 32 00 47 69 7a 6d 6f 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 27 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GrandPrix*
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 00 00 43 04 00 1f 1f 00 01 0f 00 00 4b 04 00 1f 1f 00 01 0f
+00 00 4e 04 06 1f 1f 00 07 0f 00 00 63 04 03 00 63 00 63 00 73 00 0c 0c 00
+28 63 00 00 00 32 00 47 72 61 6e 64 50 72 69 78 2a 63 63 63 32 32 32 00 0c
+00 20 00 04 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GuiRoach::
+** Controls: KV
+** Source: Yamaha DX11 factory preset, bank D, voice 25
+0f 00 0b 0a 0a 00 40 5b 2d 03 1f 00 00 03 0f 00 40 61 00 03 1f 00 00 03 0f
+00 40 4c 2d 03 0e 0b 0a 0f 0e 00 43 5c 00 03 3a 61 00 00 34 0a 18 04 04 00
+28 32 00 00 00 32 00 47 75 69 52 6f 61 63 68 3a 3a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GuiRoach::
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 00 0b 0a 0d 00 40 5b 2d 03 1f 00 00 03 0f 00 40 61 00 03 1f 00 00 03 0f
+00 40 4c 2d 03 0e 0b 0d 0f 0e 00 43 5c 00 03 3a 61 00 00 34 0d 18 04 04 00
+28 32 00 00 00 32 00 47 75 69 52 6f 61 63 68 3a 3a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gurgle
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 10
+1f 11 00 01 0f 47 00 44 06 06 19 0b 01 01 0f 00 40 55 00 05 01 10 00 06 0f
+18 00 63 08 00 02 03 00 06 0f 00 00 63 0c 01 3c 27 36 1b 44 7f 0c 07 04 00
+63 63 00 32 00 32 00 47 75 72 67 6c 65 20 20 20 20 63 63 63 32 32 32 1b 00
+00 00 08 70 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hard Rain
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 04 00 06 0f 2e 03 63 1c 02 1f 06 16 06 0f 00 04 30 31 0b 1f 15 00 06 0f
+00 05 63 04 0a 12 04 00 09 0f 00 04 5a 04 06 3a 21 00 63 00 02 00 02 04 00
+63 32 00 32 00 32 00 48 61 72 64 20 52 61 69 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hard Rain
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 04 00 06 0f 2e 00 63 1c 02 1f 06 16 06 0f 00 00 30 31 0b 1f 15 00 06 0f
+00 00 63 04 0a 12 04 00 09 0f 00 00 5a 04 06 3a 21 00 63 00 02 00 02 04 00
+63 32 00 32 00 32 00 48 61 72 64 20 52 61 69 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harley Hog
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 43 5b 09 13 1f 1f 00 02 0f 00 44 13 08 0e 1f 1f 06 09 0f
+00 45 5a 00 0b 1f 1f 00 04 0f 00 45 51 05 03 7a 63 00 63 63 34 00 00 04 00
+63 32 00 32 00 32 00 48 61 72 6c 65 79 20 48 6f 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Harley Hog
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 0f 0f 00 40 5b 09 13 1f 1f 00 02 0f 00 40 13 08 0e 1f 1f 06 09 0f
+00 40 5a 00 0b 1f 1f 00 04 0f 00 40 51 05 03 7a 63 00 63 63 34 00 00 04 00
+63 32 00 32 00 32 00 48 61 72 6c 65 79 20 48 6f 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Heart Beat
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 18 0f 0f 00 03 63 04 03 15 12 12 08 0c 00 04 34 04 03 07 13 12 08 0f
+00 04 63 00 1b 15 13 12 08 0c 00 05 63 00 03 44 00 00 00 00 02 0c 02 04 00
+28 02 00 00 00 32 00 48 65 61 72 74 20 42 65 61 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Heart Beat
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 18 0f 0f 00 00 63 04 03 15 12 12 08 0c 00 00 34 04 03 07 13 12 08 0f
+00 00 63 00 1b 15 13 12 08 0c 00 00 63 00 03 44 00 00 00 00 02 0c 02 04 00
+28 02 00 00 00 32 00 48 65 61 72 74 20 42 65 61 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Helicopter
+** Controls: MW (LFO amplitude)
+** Source: Yamaha TX81Z factory preset, bank D, voice 14
+0d 1f 00 01 0f 28 40 5c 00 03 1f 1f 00 01 0f 28 40 62 00 03 0e 1f 00 04 0f
+0a 40 63 29 03 0e 1f 00 04 0f 0a 00 63 16 03 3c 33 00 00 5b 6e 18 0c 04 00
+63 63 63 00 00 32 00 48 65 6c 69 63 6f 70 74 65 72 63 63 63 32 32 32 00 00
+00 20 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hi Alarm
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 04 0f 00 04 31 10 00 1f 1f 00 04 0f 00 04 43 13 06 1f 1f 00 04 0f
+00 44 37 0a 00 1f 1f 00 06 0f 00 45 63 1f 06 22 38 00 00 32 6d 18 04 04 00
+63 01 63 00 00 32 00 48 69 20 41 6c 61 72 6d 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hi Alarm
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 04 0f 00 00 31 10 00 1f 1f 00 04 0f 00 00 43 13 06 1f 1f 00 04 0f
+00 40 37 0a 00 1f 1f 00 06 0f 00 40 63 1f 06 22 38 00 00 32 6d 18 04 04 00
+63 01 63 00 00 32 00 48 69 20 41 6c 61 72 6d 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Hole in 1
+** Source: Yamaha TX81Z factory preset, bank D, voice 11
+1f 14 00 01 0b 00 40 54 11 03 15 07 00 0f 0e 2e 00 33 27 0b 14 0c 11 05 0a
+00 40 58 0d 0a 1f 12 10 0b 00 01 00 62 10 0b 3c 3a 00 63 50 5f 18 05 04 00
+63 00 00 00 00 32 00 48 6f 6c 65 20 69 6e 20 31 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: House Fly
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 05 06 04 0c 00 04 4b 1a 03 07 0c 06 04 0c 00 04 3e 1a 06 1f 1f 00 0f 0f
+00 05 3f 00 03 1f 1f 00 0f 0f 00 07 63 00 03 7c 2f 00 00 00 31 00 05 04 00
+63 63 63 00 00 32 00 48 6f 75 73 65 20 46 6c 79 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: House Fly
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 05 06 04 0c 00 00 4b 1a 03 07 0c 06 04 0c 00 00 3e 1a 06 1f 1f 00 0f 0f
+00 00 3f 00 03 1f 1f 00 0f 0f 00 00 63 00 03 7c 2f 00 00 00 31 00 05 04 00
+63 63 63 00 00 32 00 48 6f 75 73 65 20 46 6c 79 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HowlAtMoon
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 0a 06 0c 0f 0a 02 33 0f 03 12 10 06 0a 0d 00 04 3d 1c 0b 0f 09 03 09 0e
+00 04 52 0d 0b 0e 0c 09 0a 0f 00 05 5d 0c 0c 3c 19 2a 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 48 6f 77 6c 41 74 4d 6f 6f 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HowlAtMoon
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 0a 06 0c 0f 0a 00 33 0f 03 12 10 06 0a 0d 00 00 3d 1c 0b 0f 09 03 09 0e
+00 00 52 0d 0b 0e 0c 09 0a 0f 00 00 5d 0c 0c 3c 19 2a 00 00 22 00 02 04 00
+28 02 00 00 00 32 00 48 6f 77 6c 41 74 4d 6f 6f 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lil'Birdie
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude), BC (voice pitch), FC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+08 0d 17 07 0f 5d 19 09 2e 0b 02 09 0a 08 05 25 1f 63 0c 1c 0c 1d 0c 0d 07
+0c 0a 4b 34 0c 1f 04 0e 02 0b 2c 00 1e 0c 08 04 63 43 20 4a 42 18 0b 00 26
+51 29 1f 51 2f 25 1b 4c 69 6c 27 42 69 72 64 69 65 00 00 00 00 00 00 2a 29
+02 5c 34 18 39 48 04 15 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lo Alarm
+** Controls: KV, MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 03 0f 00 03 31 03 00 1f 1f 00 04 0f 00 04 43 18 06 1f 1f 00 06 0f
+00 45 37 07 00 1f 1f 00 06 0f 00 44 63 07 06 52 38 00 00 27 65 00 04 04 00
+63 01 63 00 00 32 00 4c 6f 20 41 6c 61 72 6d 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Lo Alarm
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 03 0f 00 00 31 03 00 1f 1f 00 04 0f 00 00 43 18 06 1f 1f 00 06 0f
+00 40 37 07 00 1f 1f 00 06 0f 00 40 63 07 06 52 38 00 00 27 65 00 04 04 00
+63 01 63 00 00 32 00 4c 6f 20 41 6c 61 72 6d 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MT:Apr'88
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 04 00 02 0f 0f 00 44 04 03 1f 09 03 02 0f 15 01 3a 08 00 1f 00 00 0b 0f
+0c 02 44 07 06 1a 0a 00 05 0f 05 01 5c 08 13 3c 18 06 10 00 5a 0c 04 04 00
+63 32 00 00 00 32 00 4d 54 3a 41 70 72 27 38 38 20 63 63 63 32 32 32 20 00
+30 30 10 04 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MachineGun
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1a 15 12 09 0f 00 40 63 00 00 19 09 08 09 0f 00 40 54 08 03 1f 15 1f 0a 0f
+00 45 63 06 03 19 15 03 09 0f 00 45 63 00 0b 7c 40 00 63 63 74 18 02 04 00
+28 02 00 00 00 32 00 4d 61 63 68 69 6e 65 47 75 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MachineGun
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1a 15 12 09 0f 00 40 63 00 00 19 09 08 09 0f 00 40 54 08 03 1f 15 1f 0a 0f
+00 40 63 06 03 19 15 03 09 0f 00 40 63 00 0b 7c 40 00 63 63 74 18 02 04 00
+28 02 00 00 00 32 00 4d 61 63 68 69 6e 65 47 75 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MalibuNite
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 13
+1f 1f 00 01 0f 00 00 63 3f 03 1f 1f 00 01 0f 00 00 63 29 03 1f 1f 00 03 0f
+00 00 63 35 03 0b 16 00 07 0f 00 40 5b 00 03 38 05 00 42 5a 6e 00 04 04 00
+63 32 00 00 00 32 00 4d 61 6c 69 62 75 4e 69 74 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Med Musak
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+07 11 00 01 09 00 45 4f 00 00 01 08 00 01 09 05 01 62 0a 03 01 07 00 01 08
+08 41 62 23 06 01 08 00 01 0a 00 43 63 00 00 3f 21 00 35 1c 6f 14 0c 04 1e
+63 32 00 00 00 32 00 4d 65 64 20 4d 75 73 61 6b 20 63 63 63 32 32 32 30 37
+20 1f 20 21 00 22 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mouse-Tom
+** Source: Yamaha DX11 factory preset, bank D, voice 18
+1f 1f 0c 07 0f 00 00 5c 32 03 1f 14 1f 09 01 00 00 63 00 0b 1f 1f 1f 0f 0f
+0c 00 3e 0b 1b 1f 1f 0e 0f 0f 00 00 5c 05 0b 3b 23 00 00 00 62 24 04 04 00
+63 32 00 00 00 32 00 4d 6f 75 73 65 2d 54 6f 6d 20 63 63 63 32 32 32 08 00
+00 03 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Mr.Mr.Noiz
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 13 03 00 00 00 5f 3d 06 14 12 13 02 00 00 01 52 05 02 17 14 13 03 00
+00 01 56 28 05 16 0b 13 0f 09 00 00 63 06 03 3b 63 00 63 00 73 10 07 04 00
+63 32 00 00 00 32 00 4d 72 2e 4d 72 2e 4e 6f 69 7a 63 63 63 32 32 32 08 00
+00 00 08 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Noise Shot
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 27
+1f 1f 13 03 00 00 00 5f 3d 06 1f 12 13 02 00 00 01 52 05 02 1f 14 13 03 00
+00 01 56 28 05 1e 0b 13 0f 09 00 00 63 06 03 3b 63 00 63 00 73 23 07 04 00
+63 32 00 00 00 32 00 4e 6f 69 73 65 20 53 68 6f 74 63 63 63 32 32 32 08 00
+00 00 08 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ofthewall*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 08 00 07 00 00 00 63 00 03 08 1f 00 09 0f 00 00 43 00 05 0b 1f 00 05 0f
+00 01 63 0a 06 0c 1f 00 06 0f 00 02 63 04 00 64 4f 2e 63 63 62 18 02 04 00
+28 63 00 00 00 32 00 4f 66 74 68 65 77 61 6c 6c 2a 63 63 63 32 32 32 08 20
+08 30 00 50 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OldClock
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 02 04 0f 00 43 3c 21 0e 1f 19 08 03 0f 63 07 63 17 08 1f 1f 0a 04 0a
+5a 07 63 0a 0a 1f 1f 07 03 0f 00 04 63 0a 08 3b 0e 00 00 00 56 0f 04 04 00
+63 37 00 00 00 32 00 4f 6c 64 43 6c 6f 63 6b 20 20 63 63 63 32 32 32 04 00
+08 08 08 1b 07 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OutOfTune
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0f 03 09 06 0e 0a 03 3c 00 03 1f 03 03 06 0d 00 04 60 04 02 1f 04 02 06 0d
+00 04 62 0a 03 1f 02 02 06 0d 00 06 63 04 03 3d 10 00 59 00 52 18 02 04 00
+28 02 00 00 00 32 00 4f 75 74 4f 66 54 75 6e 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OutOfTune
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0f 03 09 06 0e 0a 00 3c 00 03 1f 03 03 06 0d 00 00 60 04 02 1f 04 02 06 0d
+00 00 62 0a 03 1f 02 02 06 0d 00 00 63 04 03 3d 10 00 59 00 52 18 02 04 00
+28 02 00 00 00 32 00 4f 75 74 4f 66 54 75 6e 65 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Passing By
+** Source: Yamaha DX11 factory preset, bank D, voice 27
+1f 1f 00 01 0f 00 00 55 04 03 1f 1f 00 01 0f 00 00 52 0a 03 02 1f 1f 06 0f
+00 00 5a 04 0b 02 1f 1f 06 0f 00 00 5a 04 0b 7c 0a 00 00 00 71 0c 04 04 00
+28 32 00 00 00 32 00 50 61 73 73 69 6e 67 20 42 79 4a 02 1b 32 00 00 00 10
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Passing By
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 00 00 55 04 03 1f 1f 00 01 0f 00 00 52 0a 03 02 1f 1f 06 0f
+00 00 5a 04 0b 02 1f 1f 06 0f 00 00 5a 04 0b 7c 0d 00 00 00 71 0c 04 04 00
+28 32 00 00 00 32 00 50 61 73 73 69 6e 67 20 42 79 4a 02 1b 32 00 00 00 10
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pull Over
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 44 2b 08 03 1f 1f 00 09 0f 00 44 4a 08 03 10 1f 00 0f 0f
+00 05 5d 04 03 15 1f 00 09 0f 00 05 63 04 03 04 15 00 63 63 76 24 02 04 00
+28 02 00 00 00 32 00 50 75 6c 6c 20 4f 76 65 72 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pull Over
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 0f 0f 00 40 2b 08 03 1f 1f 00 09 0f 00 40 4a 08 03 10 1f 00 0f 0f
+00 00 5d 04 03 15 1f 00 09 0f 00 00 63 04 03 04 15 00 63 63 76 24 02 04 00
+28 02 00 00 00 32 00 50 75 6c 6c 20 4f 76 65 72 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: R2-D2 *
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 00 00 04 03 0d 1f 00 09 0f 00 00 00 04 03 1d 1f 00 09 0f
+00 00 63 3f 03 1d 1f 00 09 0f 00 00 63 31 03 44 2e 00 63 00 73 24 0c 04 00
+28 63 00 00 00 32 00 52 32 2d 44 32 20 20 20 20 2a 63 63 63 32 32 32 00 00
+00 00 00 50 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Racing Car
+** Controls: MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 19
+1f 1f 00 02 0f 00 00 47 00 03 1f 1f 00 01 0f 00 00 35 04 03 1f 1f 00 03 0f
+00 00 5b 01 03 15 1f 00 03 0f 00 00 63 04 03 3a 05 00 3c 00 62 18 0c 04 00
+63 32 00 00 00 32 00 52 61 63 69 6e 67 20 43 61 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RADIATION?
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 31
+03 03 00 01 0f 00 40 51 28 03 15 09 00 03 0f 00 00 61 0c 03 0b 05 00 02 0f
+00 40 33 34 03 12 18 00 06 0e 00 40 5a 30 03 7b 32 00 06 56 25 00 04 04 00
+28 32 00 00 00 32 00 52 41 44 49 41 54 49 4f 4e 3f 63 63 63 32 32 32 09 09
+08 02 0b 0e 08 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rain Storm
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 03 0f 22 04 63 0c 08 1f 00 00 05 0f 24 44 2c 08 00 1f 00 00 03 0f
+00 05 63 04 06 1f 00 00 04 0f 00 04 5a 01 0e 3a 55 00 2d 00 7e 00 04 04 00
+63 32 00 32 00 32 00 52 61 69 6e 20 53 74 6f 72 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Rain Storm
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 03 0f 22 00 63 0c 08 1f 00 00 05 0f 24 40 2c 08 00 1f 00 00 03 0f
+00 00 63 04 06 1f 00 00 04 0f 00 00 5a 01 0e 3a 55 00 2d 00 7e 00 04 04 00
+63 32 00 32 00 32 00 52 61 69 6e 20 53 74 6f 72 6d 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Refs.Wisl*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1d 15 00 08 0d 00 00 4b 34 03 12 0c 00 06 0f 00 00 5d 04 03 1f 1f 00 05 0f
+00 00 00 04 0b 0f 0c 00 08 0f 00 01 63 20 03 12 51 00 00 00 72 18 07 04 00
+28 63 00 00 00 32 00 52 65 66 73 2e 57 69 73 6c 2a 63 63 63 32 32 32 0d 35
+08 0d 00 00 0c 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 18 06 0a 0f 00 78 5f 00 04 16 04 06 07 09 00 58 42 04 06 16 04 06 07 09
+00 58 63 04 00 16 04 06 07 09 00 78 63 04 03 6c 29 00 00 63 34 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 18 06 0a 0f 00 7b 47 10 04 16 04 06 07 09 00 5b 37 10 06 16 04 06 07 09
+00 5d 61 04 00 16 04 06 07 09 00 7c 59 10 03 3a 29 3d 54 63 74 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 18 06 0a 0f 00 78 47 10 04 16 04 06 07 09 00 58 37 10 06 16 04 06 07 09
+00 58 61 04 00 16 04 06 07 09 00 78 59 10 03 3a 29 3d 54 63 74 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+13 0f 0a 0f 0f 00 79 58 16 04 16 09 06 0f 0f 00 5b 49 10 06 16 09 06 0f 0f
+00 5d 61 04 00 16 09 06 0f 0f 00 7d 59 04 03 7a 33 00 00 63 34 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+13 0f 0a 0f 0f 00 78 58 16 04 16 09 06 0f 0f 00 58 49 10 06 16 09 06 0f 0f
+00 58 61 04 00 16 09 06 0f 0f 00 78 59 04 03 7a 33 00 00 63 34 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 13 07 07 00 7b 47 08 03 1f 06 1f 04 00 00 5b 4c 04 04 15 06 0c 06 07
+00 5d 63 04 00 1f 06 1f 04 00 00 7d 63 04 06 6c 40 00 00 63 34 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 13 07 07 00 78 47 08 03 1f 06 1f 04 00 00 58 4c 04 04 15 06 0c 06 07
+00 58 63 04 00 1f 06 1f 04 00 00 78 63 04 06 6c 40 00 00 63 34 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.5
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 04 07 0f 00 7b 52 08 03 03 1b 04 07 0f 00 5c 56 04 03 13 1b 04 07 0f
+00 5d 51 08 03 1b 0f 04 07 0e 00 7e 63 04 03 45 25 00 00 63 35 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Repeater.5
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 04 07 0f 00 78 52 08 03 03 1b 04 07 0f 00 58 56 04 03 13 1b 04 07 0f
+00 58 51 08 03 1b 0f 04 07 0e 00 78 63 04 03 45 25 00 00 63 35 18 02 04 00
+63 32 00 00 00 32 00 52 65 70 65 61 74 65 72 2e 35 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+* SUBCATEGORY Noises2
+
+** Name: Ringing..1
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 00 03 0f 00 00 34 1a 03 1f 1f 00 02 0f 00 00 3e 19 03 1f 1f 00 02 0f
+00 00 39 1a 03 16 1f 00 06 0f 00 40 63 19 03 52 58 00 00 32 65 00 05 04 00
+63 63 63 00 00 32 00 52 69 6e 67 69 6e 67 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ringing..2
+** Controls: MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 1f 00 03 0f 00 00 1c 00 03 1f 1f 00 02 0f 00 00 3e 1f 03 1f 1f 00 02 0f
+00 00 39 04 03 16 1f 00 06 0f 00 40 63 1f 03 52 3b 00 00 3c 65 00 05 04 00
+63 63 63 00 00 32 00 52 69 6e 67 69 6e 67 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RiseDecent
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 06 06 04 0e 00 44 43 0d 03 0c 06 06 04 0e 00 44 63 08 03 1f 06 06 04 0e
+00 46 5b 04 03 1f 06 06 04 0e 00 45 63 00 03 7d 1e 00 48 3c 67 18 02 04 00
+28 02 00 00 00 32 00 52 69 73 65 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RiseDecent
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 06 06 04 0e 00 40 43 0d 03 0c 06 06 04 0e 00 40 63 08 03 1f 06 06 04 0e
+00 40 5b 04 03 1f 06 06 04 0e 00 40 63 00 03 7d 1e 00 48 3c 67 18 02 04 00
+28 02 00 00 00 32 00 52 69 73 65 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Description: An interesting use of portamento
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: GLIB (Michael Kesti and others)
+1f 17 03 06 0f 52 07 5c 08 03 1f 1f 05 09 0b 00 06 63 10 03 1f 09 00 09 00
+00 03 62 08 03 1f 0b 04 09 0b 00 07 63 04 03 02 1e 09 04 00 62 0c 07 02 03
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+0c 04 02 01 09 08 01 43 04 0b 11 07 02 07 09 00 01 50 04 03 12 07 02 07 09
+00 01 35 04 0b 0f 08 02 07 09 36 02 63 04 0b 30 1f 1c 13 00 52 18 07 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 02 03 06 00 52 03 50 04 03 1f 0b 00 09 0c 00 00 4e 04 03 1f 06 00 09 01
+00 00 5f 04 03 0b 09 04 09 0a 00 03 63 08 03 3c 1e 09 04 00 62 0c 07 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 1f 00 00 0f 00 00 31 04 03 1f 1f 00 00 0f 21 00 3c 04 06 1f 1f 00 00 0f
+1b 00 42 04 00 0b 1f 00 06 0f 00 00 60 04 03 3a 20 00 00 00 62 18 0c 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 1f 00 00 0f 00 00 32 08 03 1f 1f 00 00 0f 21 00 4e 04 06 1f 1f 00 00 0f
+1b 00 40 04 00 0b 1f 00 06 0f 00 00 5a 04 03 3a 20 00 00 00 62 18 0c 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 02 03 06 00 0a 43 52 08 1b 1f 0a 00 09 0c 00 04 63 08 03 1f 08 02 09 0a
+00 05 60 04 03 1f 1c 04 09 0c 00 07 63 04 03 3c 1e 09 03 00 62 18 07 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 17 03 06 0f 52 07 5c 08 03 1f 1f 05 09 0b 00 06 63 10 03 1f 09 00 09 00
+00 03 62 08 03 1f 0b 04 09 0b 00 07 63 04 03 02 1e 09 04 00 62 0c 07 0a 03
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 02 03 06 00 52 03 50 04 03 1f 0b 00 09 0c 00 00 4e 04 04 1f 06 00 09 01
+00 00 5f 04 03 1f 1c 04 09 0a 00 03 63 08 03 3c 1e 09 04 00 62 0c 02 04 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 02 03 06 00 52 03 50 04 03 1f 0b 00 09 0c 00 00 4e 04 04 1f 06 00 09 01
+00 00 5f 04 03 1f 1c 04 09 0a 00 03 63 08 03 3c 1e 09 04 00 62 0c 02 0a 07
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: RubberBand
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: DX100 GLIB patch (Michael Kesti and others)
+1f 02 03 06 00 0e 03 55 04 1b 1f 0b 00 09 0c 00 00 4e 04 04 1f 06 00 09 01
+00 00 5f 04 03 1f 1c 04 09 0a 00 03 63 08 03 3c 1e 09 04 00 62 0c 02 05 00
+63 32 00 32 00 32 00 52 75 62 62 65 72 42 61 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SCM Writer
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 44 63 3f 03 1f 0d 06 04 0f 00 44 55 20 1b 1f 1f 00 03 0f
+00 44 63 35 03 1f 0f 09 07 00 00 44 63 3f 1b 3b 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 53 43 4d 20 57 72 69 74 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SCM Writer
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 40 63 3f 03 1f 0d 06 04 0f 00 40 55 20 1b 1f 1f 00 03 0f
+00 40 63 35 03 1f 0f 09 07 00 00 40 63 3f 1b 3b 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 53 43 4d 20 57 72 69 74 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SCM Writer
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 40 63 3f 03 1f 0d 06 04 0f 00 40 55 20 1b 1f 1f 00 03 0f
+00 40 63 35 03 1f 0f 09 07 00 00 40 63 3f 1b 3b 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 53 43 4d 20 57 72 69 74 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Saron Gam
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1d 09 05 06 0a 00 05 50 19 0e 1f 0c 06 06 0c 00 05 5d 06 16 1f 0d 08 03 0f
+00 05 5e 11 1e 1f 11 07 06 0f 00 02 63 04 10 37 52 00 07 00 62 18 04 04 00
+28 32 00 00 00 32 00 53 61 72 6f 6e 20 47 61 6d 20 63 63 63 32 32 32 00 0f
+00 0c 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Shore Wave
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+10 0f 00 0d 0d 00 00 63 20 03 17 0e 00 0d 0f 00 00 63 20 03 17 0f 00 0a 0f
+00 00 63 3c 03 03 09 00 0f 00 00 00 52 3f 03 02 23 00 00 00 62 30 04 04 00
+28 32 00 00 00 32 00 53 68 6f 72 65 20 57 61 76 65 63 63 63 32 32 32 0c 06
+00 12 0b 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Shore Wv2
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+10 0f 00 07 0d 00 00 63 20 03 17 0e 00 07 0f 00 00 63 20 03 17 0f 00 04 0f
+00 00 63 3c 03 03 05 00 09 00 00 00 52 3f 03 02 23 00 00 00 62 30 04 04 00
+28 32 00 00 00 32 00 53 68 6f 72 65 20 57 76 32 20 63 63 63 32 32 32 0c 06
+00 12 0b 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sick Siren
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0e 1f 00 0f 0f 00 43 2b 08 03 0e 1f 00 09 0f 00 45 4a 08 03 10 1f 00 0f 0f
+00 45 5d 04 03 15 1f 00 09 0f 00 45 63 04 03 04 0d 00 00 63 64 24 02 04 00
+28 02 00 00 00 32 00 53 69 63 6b 20 53 69 72 65 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sick Siren
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 1f 00 0f 0f 00 40 2b 08 03 0e 1f 00 09 0f 00 40 4a 08 03 10 1f 00 0f 0f
+00 40 5d 04 03 15 1f 00 09 0f 00 40 63 04 03 04 0d 00 00 63 64 24 02 04 00
+28 02 00 00 00 32 00 53 69 63 6b 20 53 69 72 65 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space BUG?
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 26
+1f 1f 00 01 0f 06 00 63 01 1b 1f 1f 00 0f 0f 02 40 63 01 1b 0f 15 00 04 0f
+00 40 56 00 1b 19 1f 00 0a 0f 63 40 53 00 1b 7c 1f 00 2a 3c 3c 00 04 04 00
+28 32 00 00 00 32 00 53 70 61 63 65 20 42 55 47 3f 63 63 63 32 32 32 0f 06
+00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space BUG?
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 06 00 63 01 1b 1f 1f 00 0f 0f 02 40 63 01 1b 0f 15 00 04 0f
+00 40 56 00 1b 19 1f 00 0d 0f 63 40 53 00 1b 7c 1f 00 2a 3c 3c 00 04 04 00
+28 32 00 00 00 32 00 53 70 61 63 65 20 42 55 47 3f 63 63 63 32 32 32 0f 06
+00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Gong
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 30
+16 0a 0c 06 0f 03 00 53 04 08 0e 09 03 02 0f 03 00 59 07 0e 0a 06 05 04 0f
+00 40 5a 00 00 14 08 05 04 08 00 40 5a 00 06 3c 0a 08 2d 3c 36 1b 04 04 00
+28 32 00 00 00 32 00 53 70 61 63 65 20 47 6f 6e 67 5e 63 12 29 32 15 00 16
+00 20 00 15 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Gong
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+16 0d 0c 06 0f 03 00 53 04 08 0e 09 03 02 0f 03 00 59 07 0e 0a 06 05 04 0f
+00 40 5a 00 00 14 08 05 04 08 00 40 5a 00 06 3c 0a 08 2d 3c 36 1b 04 04 00
+28 32 00 00 00 32 00 53 70 61 63 65 20 47 6f 6e 67 5e 63 12 29 32 15 00 16
+00 20 00 15 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Gun
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 08 1f 05 0d 0a 02 39 00 03 1f 0a 1f 0a 0f 00 05 63 04 03 1f 09 1f 0a 0f
+00 04 63 08 03 1f 04 1f 0a 0d 00 04 63 04 03 7d 39 00 63 00 70 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 20 47 75 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Gun
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 08 1f 05 0d 0a 00 39 00 03 1f 0a 1f 0a 0f 00 00 63 04 03 1f 09 1f 0a 0f
+00 00 63 08 03 1f 04 1f 0a 0d 00 00 63 04 03 7d 39 00 63 00 70 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 20 47 75 6e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Talk
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 21
+05 1f 01 01 0f 60 44 63 0b 03 06 1f 03 01 0f 02 42 63 06 03 0b 1f 04 01 0f
+03 42 63 09 03 08 1f 02 09 0f 01 42 63 04 04 05 32 00 63 00 6d 18 05 04 3c
+63 32 00 00 00 32 00 53 70 61 63 65 20 54 61 6c 6b 63 63 63 32 32 32 00 70
+00 40 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space Vibe
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 22
+19 0f 0f 07 0f 05 00 62 0d 00 19 00 0f 07 0f 05 01 63 04 00 19 00 0f 07 0f
+05 02 63 0d 06 1f 00 06 02 0f 05 01 63 04 06 47 23 00 4b 00 71 1e 0c 04 00
+63 32 00 00 00 32 00 53 70 61 63 65 20 56 69 62 65 63 63 63 32 32 32 00 10
+00 00 00 50 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+04 0c 00 03 0f 00 03 57 2d 06 04 09 00 03 0f 00 03 59 04 01 06 09 00 04 0f
+00 03 63 04 05 06 09 00 04 0f 00 04 63 00 01 6c 23 21 00 00 02 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+04 0c 00 03 0f 00 00 57 2d 06 04 09 00 03 0f 00 00 59 04 01 06 09 00 04 0f
+00 00 63 04 05 06 09 00 04 0f 00 00 63 00 01 6c 23 21 00 00 02 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 07 0f 00 41 57 04 03 03 1f 00 04 0f 00 43 59 1c 05 09 1f 00 06 0f
+00 43 63 04 03 0c 1f 00 04 0f 00 45 63 13 00 2c 05 00 2f 63 14 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 07 0f 00 40 57 04 03 03 1f 00 04 0f 00 40 59 1c 05 09 1f 00 06 0f
+00 40 63 04 03 0c 1f 00 04 0f 00 40 63 13 00 2c 05 00 2f 63 14 18 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....3
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+19 12 06 06 00 00 42 63 04 13 04 09 1f 04 04 00 43 4a 0b 04 15 15 09 0a 0f
+00 43 5d 04 03 1c 09 04 04 04 00 44 5f 04 00 0c 2b 41 0b 5a 76 18 02 04 00
+63 63 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....3
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+19 12 06 06 00 00 40 63 04 13 04 09 1f 04 04 00 40 4a 0b 04 15 15 09 0a 0f
+00 40 5d 04 03 1c 09 04 04 04 00 40 5f 04 00 0c 2b 41 0b 5a 76 18 02 04 00
+63 63 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 15 04 00 00 02 46 13 0c 06 04 07 04 00 00 04 46 04 0b 14 1d 15 06 00
+00 04 63 08 0c 19 03 0c 04 00 00 04 5f 04 0b 4c 63 00 63 00 72 18 02 04 00
+63 63 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Space....4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 15 04 00 00 00 46 13 0c 06 04 07 04 00 00 00 46 04 0b 14 1d 15 06 00
+00 00 63 08 0c 19 03 0c 04 00 00 00 5f 04 0b 4c 63 00 63 00 72 18 02 04 00
+63 63 00 00 00 32 00 53 70 61 63 65 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBirds
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 0a 0e 0a 43 39 0d 00 1f 1f 00 09 0f 00 45 63 29 03 1f 0b 00 0a 0f
+00 44 36 08 06 0b 0b 00 0b 0f 00 45 63 00 03 07 25 00 42 5a 6e 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 69 72 64 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpaceBirds
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 0a 0e 0a 40 39 0d 00 1f 1f 00 09 0f 00 40 63 29 03 1f 0b 00 0a 0f
+00 40 36 08 06 0b 0b 00 0b 0f 00 40 63 00 03 07 25 00 42 5a 6e 00 02 04 00
+28 02 00 00 00 32 00 53 70 61 63 65 42 69 72 64 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Spc Midiot
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 9
+04 07 00 09 0d 22 00 4b 3d 08 14 14 00 05 0b 24 41 52 08 00 15 03 00 06 06
+00 01 60 14 06 05 15 00 08 0f 00 04 63 00 06 7b 1f 0d 0e 1e 0e 18 0c 04 00
+63 32 00 32 00 32 00 53 70 63 20 4d 69 64 69 6f 74 63 63 63 32 32 32 08 70
+00 00 00 10 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SteelPan *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+14 0c 07 04 0f 27 05 52 0a 08 14 07 08 03 0f 2b 03 52 09 0e 16 07 09 06 0f
+00 02 63 04 0e 11 07 09 05 0f 00 02 63 04 16 04 19 00 0a 63 52 18 02 04 00
+28 32 00 00 00 32 00 53 74 65 65 6c 50 61 6e 20 2a 63 63 63 32 32 32 00 01
+00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Storm Wind
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 17
+12 08 01 03 05 00 01 43 0a 00 14 0b 04 01 09 00 01 60 11 00 14 07 01 03 05
+00 01 63 00 00 0f 06 00 01 0c 00 02 63 00 00 33 63 00 63 00 73 00 05 04 00
+63 63 63 00 00 32 00 53 74 6f 72 6d 20 57 69 6e 64 63 63 63 32 32 32 00 50
+00 10 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TAP TAP<<<
+** Source: Yamaha DX11 factory preset, bank D, voice 29
+12 09 00 01 0f 06 00 3a 00 1b 12 09 00 01 0f 02 00 61 00 1b 17 08 00 01 0f
+00 00 33 00 1b 15 15 00 0a 0f 00 40 53 3e 1b 3a 1c 00 00 63 6e 00 04 04 00
+28 63 00 00 00 32 00 54 41 50 20 54 41 50 3c 3c 3c 63 63 63 32 32 32 00 00
+00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: TAP TAP<<<
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 09 00 01 0f 06 00 3a 00 1b 12 09 00 01 0f 02 00 61 00 1b 17 08 00 01 0f
+00 00 33 00 1b 15 15 00 0d 0f 00 40 53 3e 1b 3a 1c 00 00 63 6e 00 04 04 00
+28 63 00 00 00 32 00 54 41 50 20 54 41 50 3c 3c 3c 63 63 63 32 32 32 00 00
+00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Telephone*
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 0f 0f 00 40 4b 30 03 1f 1f 00 06 0f 00 40 48 28 03 1f 1f 00 06 0f
+00 00 63 30 03 1f 1f 00 06 0f 00 00 63 24 03 7c 3a 00 00 63 09 18 04 04 00
+28 32 00 00 00 32 00 54 65 6c 65 70 68 6f 6e 65 2a 63 63 63 32 32 32 0c 0a
+0c 05 0b 16 0e 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Terror!
+** Controls: MW (LFO pitch)
+** Source: Yamaha DX11 factory preset, bank D, voice 23
+0c 1f 00 03 0f 20 00 2e 31 03 1f 1f 00 03 0f 00 00 3b 08 06 0a 1f 00 03 0f
+2a 00 34 08 00 12 1f 00 04 0f 00 00 54 00 03 03 63 00 23 00 63 18 04 04 00
+28 32 00 00 00 32 00 54 65 72 72 6f 72 21 20 20 20 63 24 11 2d 32 25 04 6f
+00 20 00 40 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Terror!
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 1f 00 03 0f 20 00 2e 31 03 1f 1f 00 03 0f 00 00 3b 08 06 0d 1f 00 03 0f
+2a 00 34 08 00 12 1f 00 04 0f 00 00 54 00 03 03 63 00 23 00 63 18 04 04 00
+28 32 00 00 00 32 00 54 65 72 72 6f 72 21 20 20 20 63 24 11 2d 32 25 04 6f
+00 20 00 40 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Traffic..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 02 0f 00 02 42 02 03 1f 1f 00 01 0f 00 04 32 0a 03 1f 1f 00 03 0f
+00 05 46 01 03 15 1f 00 03 0f 00 05 63 04 03 3a 47 00 3c 00 62 18 0c 04 0e
+63 32 00 00 00 32 00 54 72 61 66 66 69 63 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Traffic..1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 02 0f 00 00 42 02 03 1f 1f 00 01 0f 00 00 32 0a 03 1f 1f 00 03 0f
+00 00 46 01 03 15 1f 00 03 0f 00 00 63 04 03 3a 47 00 3c 00 62 18 0c 04 0e
+63 32 00 00 00 32 00 54 72 61 66 66 69 63 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Traffic..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 02 0f 00 04 48 06 03 1f 1f 00 01 0f 00 05 32 07 03 1f 1f 00 03 0f
+00 05 46 00 03 15 1f 00 03 0f 00 05 63 04 03 3a 15 00 5f 00 73 18 0c 04 0e
+63 32 00 00 00 32 00 54 72 61 66 66 69 63 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Traffic..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 02 0f 00 00 48 06 03 1f 1f 00 01 0f 00 00 32 07 03 1f 1f 00 03 0f
+00 00 46 00 03 15 1f 00 03 0f 00 00 63 04 03 3a 15 00 5f 00 73 18 0c 04 0e
+63 32 00 00 00 32 00 54 72 61 66 66 69 63 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tug Boat
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+15 16 00 01 0f 0a 03 00 06 03 0f 0d 00 01 0f 00 04 3b 08 03 1f 07 00 03 0c
+00 06 3c 06 03 13 16 00 07 0f 00 06 63 04 03 7a 0c 00 00 00 40 18 02 04 00
+28 02 00 00 00 32 00 54 75 67 20 42 6f 61 74 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tug Boat
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 16 00 01 0f 0a 00 00 06 03 0f 0d 00 01 0f 00 00 3b 08 03 1f 07 00 03 0c
+00 00 3c 06 03 13 16 00 07 0f 00 00 63 04 03 7a 0c 00 00 00 40 18 02 04 00
+28 02 00 00 00 32 00 54 75 67 20 42 6f 61 74 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Tug Boat
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+15 16 00 00 0f 0a 00 00 06 03 0f 0d 00 00 0f 00 00 3b 08 03 1f 07 00 03 0c
+00 00 3c 06 03 13 16 00 07 0f 00 00 63 04 03 7a 0c 00 00 00 40 18 02 04 00
+28 02 00 00 00 32 00 54 75 67 20 42 6f 61 74 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Typwriter*
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 05 00 07 00 00 00 3e 00 03 1f 1f 00 03 0f 00 00 4d 24 03 1f 1f 00 07 0f
+00 00 59 18 03 1f 11 00 09 00 00 41 63 38 03 3b 4a 00 00 00 0d 18 02 04 00
+28 63 00 00 00 32 00 54 79 70 77 72 69 74 65 72 2a 63 63 63 32 32 32 08 70
+0c 02 08 04 09 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: UFO Decent
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 06 00 05 0e 0a 43 39 0d 00 1f 1f 00 01 0f 00 43 63 29 03 1f 0b 00 0a 0f
+00 45 36 08 06 0b 0b 00 07 0f 00 45 63 00 03 38 05 00 42 5a 6e 18 02 04 00
+28 02 00 00 00 32 00 55 46 4f 20 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: UFO Decent
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 06 00 05 0e 0a 40 39 0d 00 1f 1f 00 01 0f 00 40 63 29 03 1f 0b 00 0a 0f
+00 40 36 08 06 0b 0b 00 07 0f 00 40 63 00 03 38 05 00 42 5a 6e 18 02 04 00
+28 02 00 00 00 32 00 55 46 4f 20 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: UFO Decent
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+10 06 00 05 0e 0a 40 39 0d 00 1f 1f 00 00 0f 00 40 63 29 03 1f 0b 00 0a 0f
+00 40 36 08 06 0b 0b 00 07 0f 00 40 63 00 03 38 05 00 42 5a 6e 18 02 04 00
+28 02 00 00 00 32 00 55 46 4f 20 44 65 63 65 6e 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Uzzie
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 06 08 07 0f 0a 43 63 3f 03 1f 04 00 06 0f 00 45 63 29 03 1f 09 00 06 0f
+00 45 47 35 03 1f 0a 00 07 0f 00 45 63 00 03 12 44 00 00 63 04 18 02 04 00
+28 02 00 00 00 32 00 20 20 55 7a 7a 69 65 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Uzzie
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 08 07 0f 0a 40 63 3f 03 1f 04 00 06 0f 00 40 63 29 03 1f 09 00 06 0f
+00 40 47 35 03 1f 0a 00 07 0f 00 40 63 00 03 12 44 00 00 63 04 18 02 04 00
+28 02 00 00 00 32 00 20 20 55 7a 7a 69 65 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Water *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+06 00 06 04 0f 00 40 44 18 00 08 08 07 07 0f 00 00 63 04 06 06 07 08 07 0f
+00 00 5a 05 06 09 08 04 05 0f 00 03 63 03 00 7f 43 00 63 63 7b 18 02 04 00
+63 32 00 00 00 32 00 57 61 74 65 72 20 20 20 20 2a 63 63 63 32 32 32 00 08
+00 38 00 01 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 43 63 3f 03 1f 1f 00 01 0f 00 43 63 29 03 1f 1f 00 03 0f
+00 45 63 35 03 0b 0b 00 07 0f 00 45 63 00 03 38 06 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....1
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 40 63 3f 03 1f 1f 00 01 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 0b 0b 00 07 0f 00 40 63 00 03 38 06 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....1
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 40 63 3f 03 1f 1f 00 00 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 0b 0b 00 07 0f 00 40 63 00 03 38 06 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 43 63 3f 03 1f 1f 00 01 0f 00 43 63 29 03 1f 1f 00 03 0f
+00 45 63 35 03 04 0b 00 07 0f 00 45 63 00 03 38 04 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 40 63 3f 03 1f 1f 00 01 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 04 0b 00 07 0f 00 40 63 00 03 38 04 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....2
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 40 63 3f 03 1f 1f 00 00 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 04 0b 00 07 0f 00 40 63 00 03 38 04 00 42 5a 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 45 63 3f 03 1f 1f 00 01 0f 00 44 63 29 03 1f 1f 00 03 0f
+00 45 63 35 03 08 0b 00 07 0f 00 45 63 00 03 38 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 40 63 3f 03 1f 1f 00 01 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 08 0b 00 07 0f 00 40 63 00 03 38 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....3
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 40 63 3f 03 1f 1f 00 00 0f 00 40 63 29 03 1f 1f 00 03 0f
+00 40 63 35 03 08 0b 00 07 0f 00 40 63 00 03 38 05 00 00 58 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 33 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 1f 00 01 0f 0a 43 63 3f 03 1f 1f 00 01 0f 00 45 00 29 03 0a 1f 00 03 0f
+00 46 63 35 03 0b 0b 00 07 0f 00 46 01 00 03 3e 05 00 42 55 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 00 01 0f 0a 02 63 08 03 1f 1f 00 01 0f 00 04 63 0a 03 1f 1f 00 03 0f
+00 04 63 08 03 0c 0a 09 07 0e 00 05 63 00 03 38 23 00 00 00 62 00 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 1f 00 01 0f 0a 40 63 3f 03 1f 1f 00 01 0f 00 40 00 29 03 0a 1f 00 03 0f
+0f 40 63 35 03 0b 0b 00 07 0f 00 40 01 00 03 3e 05 00 42 55 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Controls: MW (LFO pitch)
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1e 1f 00 00 0f 0a 40 63 3f 03 1f 1f 00 00 0f 00 40 00 29 03 0a 1f 00 03 0f
+0f 40 63 35 03 0b 0b 00 07 0f 00 40 01 00 03 3e 05 00 42 55 66 18 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 00 01 0f 0a 00 63 08 03 1f 1f 00 01 0f 00 00 63 0a 03 1f 1f 00 03 0f
+00 00 63 08 03 0c 0a 09 07 0e 00 00 63 00 03 38 23 00 00 00 62 00 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Waves....4
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+1f 1f 00 00 0f 0a 00 63 08 03 1f 1f 00 00 0f 00 00 63 0a 03 1f 1f 00 03 0f
+00 00 63 08 03 0c 0a 09 07 0e 00 00 63 00 03 38 23 00 00 00 62 00 02 04 00
+28 02 00 00 00 32 00 57 61 76 65 73 2e 2e 2e 2e 34 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Wind *
+** Controls: KV, MW (LFO pitch), BC (voice pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 13 01 00 00 00 63 21 06 1f 05 13 01 00 00 00 00 00 02 1f 00 13 01 00
+00 00 40 28 05 06 08 00 02 0e 00 01 63 05 03 3b 63 00 63 00 73 24 0c 04 00
+63 32 00 00 00 53 00 57 69 6e 64 20 20 20 20 20 2a 63 63 63 32 32 32 08 00
+00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: >>WOW<<
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 7
+1f 0c 0d 08 0a 00 01 45 04 03 1f 10 00 04 0f 00 00 4c 00 03 0f 04 02 0a 0a
+00 01 55 00 03 1f 1f 00 0c 0f 00 02 63 04 03 39 23 00 00 00 62 0c 02 04 00
+63 32 00 32 00 32 00 3e 3e 57 4f 57 3c 3c 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WaterGlass
+** Controls: KV
+** Source: Yamaha TX81Z factory preset, bank D, voice 5
+1f 1f 00 05 0f 00 00 41 32 03 1f 14 10 05 05 01 02 63 07 03 1f 0b 12 08 0f
+00 01 63 0c 03 1f 1f 0f 08 0f 00 01 63 04 03 39 23 00 00 00 62 18 07 04 00
+63 32 00 00 00 32 00 57 61 74 65 72 47 6c 61 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WeirdAxe *
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0f 0d 09 0f 00 00 5f 3c 03 1f 0f 0d 09 0f 00 02 63 38 03 1d 0f 0d 07 0f
+00 01 63 1a 03 1f 0f 0d 07 0f 00 01 63 00 03 04 23 00 00 00 32 24 02 04 00
+28 63 00 00 00 32 00 57 65 69 72 64 41 78 65 20 2a 63 63 63 32 32 32 0d 03
+0d 31 00 04 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: White Blow
+** Source: Yamaha DX11 factory preset, bank D, voice 32
+18 13 00 0f 0a 00 00 3f 20 03 1f 12 00 0a 0f 00 00 56 20 03 1f 13 00 0c 0f
+00 00 5c 3c 03 0b 0a 0a 0b 0a 00 00 5a 3f 03 02 23 00 00 00 62 30 04 04 00
+28 32 00 00 00 32 00 57 68 69 74 65 20 42 6c 6f 77 63 63 63 32 32 32 0c 06
+00 02 0b 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: White Blow
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 13 00 0f 0d 00 00 3f 20 03 1f 12 00 0d 0f 00 00 56 20 03 1f 13 00 0c 0f
+00 00 5c 3c 03 0b 0d 0a 0b 0d 00 00 5a 3f 03 02 23 00 00 00 62 30 04 04 00
+28 32 00 00 00 32 00 57 68 69 74 65 20 42 6c 6f 77 63 63 63 32 32 32 0c 06
+00 02 0b 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+--Bank 29
+
+* CATEGORY OTHER
+
+* SUBCATEGORY Other
+
+** Name: 120 VAC
+** Description: A guitar-like sound
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 07 06 0f 00 3d 5e 04 0c 1f 07 07 05 0f 00 1d 46 28 01 1f 07 07 07 0f
+00 1d 63 10 0c 1f 07 0a 05 0f 00 3d 5d 04 01 24 1c 11 02 00 42 18 02 04 00
+63 32 00 00 00 32 00 31 32 30 20 56 41 43 20 20 20 63 63 63 32 32 32 00 00
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: 120 VAC
+** Description: A guitar-like sound
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 07 06 0f 00 3a 5e 04 0c 1f 07 07 05 0f 00 19 46 28 01 1f 07 07 07 0f
+00 19 63 10 0c 1f 07 0a 05 0f 00 38 5d 04 01 24 1c 11 02 00 42 18 02 04 00
+63 32 00 00 00 32 00 31 32 30 20 56 41 43 20 20 20 63 63 63 32 32 32 00 00
+00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Amazon
+** Description: A jungle sound
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 13 1f 03 05 00 06 4b 13 13 13 1f 1f 05 05 00 06 4a 10 13 1f 1f 01 05 0f
+00 03 63 03 0d 1f 1f 01 05 0f 00 03 63 05 09 2c 1c 09 07 00 52 05 04 04 00
+63 28 00 0f 00 32 00 41 6d 61 7a 6f 6e 20 20 20 20 63 63 63 32 32 32 00 10
+00 6d 00 16 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ArcoGlass*
+** Description: A glass harp
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 00 05 00 0a 01 47 12 0e 1f 09 00 05 00 0a 01 47 0d 0e 0b 0a 0a 05 00
+09 40 63 00 06 0b 0a 0a 05 00 09 40 63 00 00 2c 15 01 16 0c 3a 24 02 04 00
+28 37 00 00 00 32 00 41 72 63 6f 47 6c 61 73 73 2a 63 63 63 32 32 32 00 06
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Aviary
+** Description: A glassy sound
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1f 1f 0f 0f 0a 00 00 1e 03 1f 1f 0b 00 0f 00 00 2f 1a 03 0c 1f 0d 07 0f
+00 00 48 03 03 0c 0f 06 05 0f 00 00 50 03 03 7c 23 00 00 00 32 18 02 04 00
+28 02 00 00 00 32 00 41 76 69 61 72 79 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Aviary
+** Description: A glassy sound
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 1f 0f 0f 0a 00 00 1e 03 1f 1f 0b 01 0f 00 00 2f 1a 03 0c 1f 0d 07 0f
+00 00 48 03 03 0c 0f 06 05 0f 00 00 50 03 03 7c 23 00 00 00 32 18 02 04 00
+28 02 00 00 00 32 00 41 76 69 61 72 79 20 20 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: BC1 GlassV
+** Controls: KV, MW (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 03 03 06 0f 00 3b 4c 19 0b 0c 0c 05 05 0d 40 04 59 10 10 0b 0a 06 06 0c
+27 06 63 08 08 09 06 06 06 0d 00 06 5c 04 13 0c 1e 18 03 00 62 18 07 04 00
+63 32 01 00 00 32 63 42 43 31 20 47 6c 61 73 73 56 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Botl.Shff*
+** Description: Blowing across the top of a bottle
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 13 11 0a 0d 00 01 55 13 09 1f 19 00 07 0d 00 01 4f 0a 00 1f 11 0d 09 09
+00 02 5c 09 06 0e 08 00 07 0e 00 42 63 05 0b 3b 1c 00 00 00 5e 05 02 04 00
+63 10 2e 00 00 32 00 42 6f 74 6c 2e 53 68 66 66 2a 63 63 63 32 32 32 00 00
+00 00 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Cairo *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 08 06 07 0e 14 00 53 04 0e 1f 0f 0a 0b 0b 00 00 3d 38 0b 1f 1e 06 07 0e
+00 02 63 03 08 1f 07 07 0a 0b 00 02 63 04 0b 04 15 00 0a 00 32 05 02 04 00
+28 63 00 00 00 32 00 43 61 69 72 6f 20 20 20 20 2a 63 63 63 32 32 32 00 18
+00 06 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Celestial
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 04 0f 00 18 41 39 06 0b 02 03 04 00 00 00 50 05 06 0f 02 04 03 0a
+00 08 55 03 04 0e 00 01 06 00 00 02 63 04 00 7e 1a 00 05 01 62 11 0c 05 00
+63 32 00 00 00 32 00 43 65 6c 65 73 74 69 61 6c 20 63 63 63 32 32 32 00 21
+00 11 00 46 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChimeStrig
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 09 04 03 08 00 04 57 0a 03 1f 1f 00 03 0f 00 04 5e 00 06 1f 09 04 04 08
+00 04 5b 1f 02 0f 1f 00 04 0f 00 06 5e 08 06 2c 23 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 43 68 69 6d 65 53 74 72 69 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ChimeStrig
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 09 04 03 08 00 02 57 0a 03 1f 1f 00 03 0f 00 01 5e 00 06 1f 09 04 04 08
+00 00 5b 1f 02 0f 1f 00 04 0f 00 00 5e 08 06 2c 23 00 00 00 02 18 04 04 00
+28 32 00 00 00 32 00 43 68 69 6d 65 53 74 72 69 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Deep Space
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1b 07 07 00 0a 44 54 13 03 1f 0a 07 06 00 00 45 52 04 13 1f 12 07 06 00
+00 46 53 10 03 10 0a 0a 04 00 00 46 63 04 03 07 2a 48 01 4b 06 18 02 04 00
+28 02 00 00 00 32 00 44 65 65 70 20 53 70 61 63 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Deep Space
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1b 07 07 00 0a 40 54 13 03 1f 0a 07 06 00 00 40 52 04 13 1f 12 07 06 00
+00 40 53 10 03 10 0a 0a 04 00 00 40 63 04 03 07 2a 48 01 4b 06 18 02 04 00
+28 02 00 00 00 32 00 44 65 65 70 20 53 70 61 63 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EleChamber
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 06 02 03 0e 00 02 3f 08 02 0b 03 03 05 08 00 04 47 08 00 0a 08 03 07 0f
+00 05 63 08 06 09 10 03 05 0f 00 05 63 08 05 5c 21 23 09 00 32 0c 05 04 00
+63 63 63 00 00 32 00 45 6c 65 43 68 61 6d 62 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: EleChamber
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 06 02 03 0e 00 00 3f 08 02 0b 03 03 05 08 00 00 47 08 00 0a 08 03 07 0f
+00 01 63 08 06 09 10 03 05 0f 00 01 63 08 05 5c 21 23 09 00 32 0c 05 04 00
+63 63 63 00 00 32 00 45 6c 65 43 68 61 6d 62 65 72 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Enc3rdKind
+** Controls: KV, MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 00 06 00 00 44 63 00 03 1f 0d 00 06 00 00 43 63 04 03 1f 0c 00 06 00
+00 45 63 04 03 1f 0a 00 06 0a 00 45 63 04 03 47 14 4f 1e 02 15 18 04 04 00
+63 01 63 00 00 32 00 45 6e 63 33 72 64 4b 69 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Enc3rdKind
+** Controls: MW (LFO pitch), MW (LFO amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 00 06 00 00 40 63 00 03 1f 0d 00 06 00 00 40 63 04 03 1f 0c 00 06 00
+00 40 63 04 03 1f 0a 00 06 0a 00 40 63 04 03 47 14 4f 1e 02 15 18 04 04 00
+63 01 63 00 00 32 00 45 6e 63 33 72 64 4b 69 6e 64 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Etherial
+** Controls: MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 1f 00 03 0f 00 00 42 13 03 1f 1f 00 03 0f 00 00 3c 13 03 14 1f 00 05 0f
+1e 00 56 0a 03 14 1f 00 05 0f 1e 00 56 1c 03 3c 23 00 32 00 42 05 02 04 00
+63 63 00 00 00 32 00 45 74 68 65 72 69 61 6c 20 20 63 63 63 32 32 32 00 30
+00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Floot Base
+** Description: Almost a flute, and down a fifth
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+18 1f 16 0f 0f 00 00 63 05 00 18 07 00 0f 07 1b 00 45 03 0c 1f 1f 15 0f 0f
+03 00 63 1e 05 0f 14 00 0f 0f 05 01 5f 04 02 3b 20 00 00 00 62 0c 02 05 00
+63 13 63 00 00 32 00 46 6c 6f 6f 74 20 42 61 73 65 63 63 63 32 32 32 00 72
+00 36 00 04 00 08 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Full Ranks
+** Source: Unknown (downloaded from TX81Z patch directory on ucsd.edu)
+16 00 00 0a 0f 00 00 39 1f 02 18 00 00 05 0f 5b 00 5b 00 10 0f 00 00 08 0f
+00 00 63 08 10 0c 00 00 05 0f 00 00 63 00 16 3c 23 00 00 00 02 0c 00 04 00
+63 00 00 00 00 32 00 46 75 6c 6c 20 52 61 6e 6b 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: FuzzyPad
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 06 06 04 0f 00 40 40 05 00 14 08 07 05 0f 05 00 47 04 00 0f 07 03 07 0e
+08 03 63 04 06 13 08 04 05 0f 00 03 60 04 06 64 1f 00 06 00 4a 05 02 04 00
+63 32 00 00 00 32 00 46 75 7a 7a 79 50 61 64 20 20 63 63 63 32 32 32 06 31
+00 38 00 08 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Gender Gam
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+15 13 05 06 0a 00 04 54 19 0e 1f 0e 04 06 0c 00 04 4a 06 0e 18 13 03 08 0c
+00 04 59 10 06 1f 12 03 06 0d 00 01 63 04 00 37 52 00 07 00 62 18 04 04 00
+28 32 00 00 00 32 00 47 65 6e 64 65 72 20 47 61 6d 63 63 63 32 32 32 00 1e
+00 0b 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1c 0a 00 04 00 00 02 50 15 02 1f 0a 00 05 00 00 03 4e 0d 02 0f 0c 0a 06 00
+00 03 63 00 02 0f 0c 00 06 0f 00 04 63 00 04 2e 63 00 00 00 33 1b 04 04 00
+63 01 63 00 00 32 00 47 6c 61 73 73 48 61 72 70 31 63 63 63 32 32 32 0f 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1c 0a 00 04 00 00 00 50 15 02 1f 0a 00 05 00 00 00 4e 0d 02 0f 0c 0a 06 00
+00 00 63 00 02 0f 0c 00 06 0f 00 00 63 00 04 2e 63 00 00 00 33 1b 04 04 00
+63 01 63 00 00 32 00 47 6c 61 73 73 48 61 72 70 31 63 63 63 32 32 32 0f 00
+00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 03 03 06 0f 00 3c 40 19 0b 0c 0c 05 05 0d 40 04 4f 10 10 0b 0a 06 06 0c
+27 05 63 08 08 09 06 06 06 0d 00 05 5c 04 13 0c 1e 18 03 00 62 18 07 04 00
+63 32 01 00 00 32 00 47 6c 61 73 73 48 61 72 70 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 03 03 06 0f 00 38 40 19 0b 0c 0c 05 05 0d 40 00 4f 10 10 0b 0a 06 06 0c
+27 00 63 08 08 09 06 06 06 0d 00 00 5c 04 13 0c 1e 18 03 00 62 18 07 04 00
+63 32 01 00 00 32 00 47 6c 61 73 73 48 61 72 70 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp3
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 07 04 04 0a 00 04 3e 2a 03 07 07 04 04 09 00 04 27 2d 05 0c 06 07 07 03
+00 04 63 10 06 0a 08 05 05 0c 00 04 63 10 00 2e 63 00 00 00 23 18 04 04 00
+63 01 63 00 00 32 00 47 6c 61 73 73 48 61 72 70 33 63 63 63 32 32 32 0f 07
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: GlassHarp3
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 07 04 04 0a 00 00 3e 2a 03 07 07 04 04 09 00 00 27 2d 05 0c 06 07 07 03
+00 00 63 10 06 0a 08 05 05 0c 00 00 63 10 00 2e 63 00 00 00 33 18 04 04 00
+63 01 63 00 00 32 00 47 6c 61 73 73 48 61 72 70 33 63 63 63 32 32 32 0f 07
+00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: HarmoPad
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank B, voice 28
+0a 1f 02 05 0f 27 43 4d 05 06 0a 1f 02 05 0f 27 03 4f 04 00 0b 1f 00 04 0f
+00 01 63 05 0e 0b 1f 00 04 0f 00 01 63 04 08 04 1c 0e 1c 00 36 05 04 04 00
+28 32 00 00 00 32 00 48 61 72 6d 6f 50 61 64 20 20 63 63 63 32 32 32 04 41
+00 48 00 31 07 38 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Impression
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 15 04 07 0f 00 06 50 00 0b 09 15 04 07 0f 00 06 43 00 0b 16 07 04 07 0f
+00 05 63 00 03 16 07 04 07 0f 00 05 63 00 03 14 20 3b 02 00 02 18 04 04 00
+63 01 63 00 00 32 00 49 6d 70 72 65 73 73 69 6f 6e 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Impression
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 15 04 07 0f 00 02 50 00 0b 09 15 04 07 0f 00 01 43 00 0b 16 07 04 07 0f
+00 00 63 00 03 16 07 04 07 0f 00 00 63 00 03 14 20 3b 02 00 02 18 04 04 00
+63 01 63 00 00 32 00 49 6d 70 72 65 73 73 69 6f 6e 63 63 63 32 32 32 00 00
+00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jump.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 03 01 06 0e 00 03 54 04 03 12 04 01 04 0e 00 05 4d 08 03 15 03 02 09 0e
+00 05 63 04 03 15 0c 03 09 0e 00 05 63 04 01 34 26 02 0d 00 32 0c 04 04 00
+28 32 00 00 00 32 00 4a 75 6d 70 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jump.....1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 03 01 06 0e 00 01 54 04 03 12 04 01 04 0e 00 02 4d 08 03 15 03 02 09 0e
+00 00 63 04 03 15 0c 03 09 0e 00 00 63 04 01 34 26 02 0d 00 32 0c 04 04 00
+28 32 00 00 00 32 00 4a 75 6d 70 2e 2e 2e 2e 2e 31 63 63 63 32 32 32 00 00
+00 10 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jump.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 03 07 09 0e 00 03 57 04 03 1f 16 18 09 0c 00 05 63 08 1b 1f 16 00 09 0e
+00 05 63 04 03 1f 16 00 09 0c 00 05 63 08 03 2c 26 21 20 00 12 18 04 04 00
+28 32 00 00 00 32 00 4a 75 6d 70 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Jump.....2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 03 07 09 0e 00 01 57 04 03 1f 16 18 09 0c 00 02 63 08 1b 1f 16 00 09 0e
+00 00 63 04 03 1f 16 00 09 0c 00 00 63 08 03 2c 26 21 20 00 12 18 04 04 00
+28 32 00 00 00 32 00 4a 75 6d 70 2e 2e 2e 2e 2e 32 63 63 63 32 32 32 00 10
+00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KrstlChoir
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank D, voice 3
+1f 00 06 04 0f 00 40 43 18 00 0b 08 07 07 0f 05 00 63 04 06 0f 07 08 07 0f
+08 00 59 05 06 0e 08 04 05 0f 00 03 63 03 00 7e 22 00 0f 00 4a 1d 02 04 00
+63 32 00 00 00 32 00 4b 72 73 74 6c 43 68 6f 69 72 63 63 63 32 32 32 00 38
+00 38 00 01 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: KrystlPad1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 11 06 07 0f 00 45 4f 1a 00 0b 08 07 07 0f 05 01 62 04 03 0f 07 08 07 0f
+08 01 62 05 06 0e 08 04 05 0f 00 03 63 03 00 7f 22 00 0f 00 26 11 02 04 00
+63 32 00 00 00 32 00 4b 72 79 73 74 6c 50 61 64 31 63 63 63 32 32 32 00 38
+00 18 00 21 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: MilkBottle
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0c 1f 06 05 01 00 03 3f 09 08 13 1c 03 05 0b 00 02 53 09 0e 1c 1f 01 05 0f
+00 03 46 0a 08 0c 09 01 08 0d 00 04 63 04 00 33 1a 09 07 1f 52 05 02 04 00
+63 19 1f 10 1e 32 00 4d 69 6c 6b 42 6f 74 74 6c 65 63 63 63 32 32 32 20 33
+00 02 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Movement.1
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 09 03 06 0b 00 43 42 2a 10 1f 09 05 03 0f 00 43 63 04 04 1f 09 05 06 0b
+00 44 63 19 0a 1f 09 06 06 0f 00 46 63 04 05 64 18 39 09 19 35 00 00 04 00
+63 32 00 32 00 32 00 4d 6f 76 65 6d 65 6e 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Movement.1
+** Controls: MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 09 03 06 0b 00 40 42 2a 10 1f 09 05 03 0f 00 40 63 04 04 1f 09 05 06 0b
+00 40 63 19 0a 1f 09 06 06 0f 00 40 63 04 05 64 18 39 09 19 35 00 00 04 00
+63 32 00 32 00 32 00 4d 6f 76 65 6d 65 6e 74 2e 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Movement.2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0b 09 00 06 0e 00 43 3e 1c 18 1f 09 00 03 0f 00 44 53 08 01 1f 09 01 06 0e
+00 43 63 08 02 1f 09 00 06 0f 00 45 63 08 15 7c 25 00 00 27 37 00 00 04 00
+63 32 00 32 00 32 00 4d 6f 76 65 6d 65 6e 74 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Movement.2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0b 09 00 06 0e 00 40 3e 1c 18 1f 09 00 03 0f 00 40 53 08 01 1f 09 01 06 0e
+00 40 63 08 02 1f 09 00 06 0f 00 40 63 08 15 7c 25 00 00 27 37 00 00 04 00
+63 32 00 32 00 32 00 4d 6f 76 65 6d 65 6e 74 2e 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Musicbox *
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 1a 01 01 09 00 00 4b 1f 06 1f 1f 1f 0f 00 00 00 5e 30 03 1f 1c 0a 04 0b
+00 00 63 08 08 1b 16 1f 0f 00 00 00 52 30 03 04 04 00 00 00 52 18 02 04 00
+28 63 00 00 00 32 00 4d 75 73 69 63 62 6f 78 20 2a 63 63 63 32 32 32 00 10
+0c 0f 00 00 0a 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Obelisk
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+02 1d 00 04 0f 00 18 41 39 06 02 02 03 04 00 00 00 50 05 06 02 02 04 03 0a
+00 08 55 03 04 02 0d 01 06 00 00 02 63 04 00 7f 1a 00 05 01 62 11 0c 05 00
+63 32 00 00 00 32 00 4f 62 65 6c 69 73 6b 20 20 20 63 63 63 32 32 32 00 21
+00 11 00 46 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt E.T.
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 03 00 06 04 00 42 50 2a 05 1f 05 00 06 04 00 42 47 34 03 1f 03 00 06 04
+00 45 5d 22 04 1f 04 00 06 04 00 44 63 04 03 6c 48 2a 0a 27 36 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 45 2e 54 2e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt E.T.
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 03 00 06 04 00 40 50 2a 05 1f 05 00 06 04 00 40 47 34 03 1f 03 00 06 04
+00 40 5d 22 04 1f 04 00 06 04 00 40 63 04 03 6c 48 2a 0a 27 36 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 45 2e 54 2e 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Quest
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 08 1f 09 05 00 03 63 3f 1b 12 1f 0e 0f 0f 00 04 63 0d 03 0a 1f 09 0f 0f
+00 04 5e 19 03 1f 06 03 0f 0f 00 05 61 04 03 3f 15 00 15 23 12 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 51 75 65 73 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Ornt Quest
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 08 1f 09 05 00 00 63 3f 1b 12 1f 0e 0f 0f 00 00 63 0d 03 0a 1f 09 0f 0f
+00 00 5e 19 03 1f 06 03 0f 0f 00 00 61 04 03 3f 15 00 15 23 12 18 04 04 00
+28 32 00 00 00 32 00 4f 72 6e 74 20 51 75 65 73 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntFlight
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+12 06 00 04 00 2e 02 46 0d 1a 1f 13 1d 09 0a 00 02 63 34 04 12 02 00 04 00
+2e 05 63 08 1a 13 03 15 09 0d 00 04 5d 08 03 7c 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 46 6c 69 67 68 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntFlight
+** Source: from a library of patches collected by Duane Bowker, author unknown
+12 06 00 04 00 2e 00 46 0d 1a 1f 13 1d 09 0a 00 00 63 34 04 12 02 00 04 00
+2e 00 63 08 1a 13 03 15 09 0d 00 00 5d 08 03 7c 23 00 00 00 32 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 46 6c 69 67 68 74 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntSound1
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 03 02 05 00 00 02 40 0a 03 1f 0a 03 05 00 00 03 54 08 03 1f 12 04 05 00
+00 03 63 0a 03 06 05 00 05 00 00 05 63 04 06 77 38 44 00 3f 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 53 6f 75 6e 64 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntSound1
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 03 02 05 00 00 00 40 0a 03 1f 0a 03 05 00 00 00 54 08 03 1f 12 04 05 00
+00 00 63 0a 03 06 05 00 05 00 00 00 63 04 06 77 38 44 00 3f 12 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 53 6f 75 6e 64 31 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntSound2
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+09 03 09 04 0c 00 02 40 08 03 09 0d 03 02 0c 00 02 54 04 03 16 0f 04 05 0c
+00 05 63 04 03 16 06 01 07 0c 00 05 63 04 06 74 38 44 00 3f 31 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 53 6f 75 6e 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: OrntSound2
+** Source: from a library of patches collected by Duane Bowker, author unknown
+09 03 09 04 0c 00 00 40 08 03 09 0d 03 02 0c 00 00 54 04 03 16 0f 04 05 0c
+00 00 63 04 03 16 06 01 07 0c 00 00 63 04 06 74 38 44 00 3f 31 0c 02 04 00
+63 32 00 32 00 32 00 4f 72 6e 74 53 6f 75 6e 64 32 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: ParisDream
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 0b 06 0b 00 02 4b 1f 01 13 0b 0c 07 0a 00 02 63 16 01 1f 09 0c 06 0a
+00 02 54 0a 0d 0e 0f 0c 07 0d 00 00 63 16 05 3e 1a 00 05 00 42 0c 01 04 00
+63 32 00 00 00 32 00 50 61 72 69 73 44 72 65 61 6d 63 63 63 32 32 32 00 38
+00 10 00 08 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoVoice
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 0a 0e 07 06 63 04 4d 1f 03 0a 1f 00 03 0f 00 04 4c 08 03 1f 07 07 05 07
+00 05 63 04 03 08 0e 00 06 0f 00 45 63 04 03 7c 23 00 0e 00 36 18 02 04 00
+28 02 00 00 00 32 00 50 69 61 6e 6f 56 6f 69 63 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoVoice
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 0a 0e 07 06 63 03 4d 1f 03 0a 1f 00 03 0f 00 02 4c 08 03 1f 07 07 05 07
+00 00 63 04 03 08 0e 00 06 0f 00 40 63 04 03 7c 23 00 0e 00 36 18 02 04 00
+28 02 00 00 00 32 00 50 69 61 6e 6f 56 6f 69 63 65 63 63 63 32 32 32 00 00
+00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PianoStrng
+** Controls: KV, MW (LFO pitch)
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 1c 00 04 0f 1e 02 43 09 06 1f 1c 00 04 0f 1e 02 43 0a 00 1f 1f 00 05 0f
+1e 01 63 09 06 1f 1f 00 05 0f 1e 01 63 0a 00 3c 1f 06 0a 00 52 05 02 04 00
+63 32 00 00 00 32 00 50 69 61 6e 6f 53 74 72 6e 67 63 63 63 32 32 32 00 02
+00 00 02 32 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PlasticHit
+** Controls: KV, MW (LFO pitch)
+** Source: Yamaha TX81Z factory preset, bank C, voice 31
+1f 14 0e 07 04 00 04 5b 30 16 1f 12 04 0a 06 00 04 61 04 10 1f 0f 03 05 0b
+00 02 5e 04 10 1f 0b 03 06 0b 00 02 63 04 16 03 1b 0b 05 00 52 0c 04 04 00
+32 32 00 00 00 32 00 50 6c 61 73 74 69 63 48 69 74 63 63 63 32 32 32 00 30
+00 50 00 50 07 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pno String
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 07 07 05 07 00 04 43 2a 02 18 03 03 05 08 00 04 58 08 00 1f 08 06 06 07
+00 07 63 04 0e 09 10 03 05 0f 00 06 5e 08 05 2c 21 23 0f 00 12 0c 05 04 00
+63 63 63 00 00 32 00 50 6e 6f 20 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Pno String
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 07 07 05 07 00 03 43 2a 02 18 03 03 05 08 00 01 58 08 00 1f 08 06 06 07
+00 00 63 04 0e 09 10 03 05 0f 00 00 5e 08 05 2c 21 23 0f 00 12 0c 05 04 00
+63 63 63 00 00 32 00 50 6e 6f 20 53 74 72 69 6e 67 63 63 63 32 32 32 00 00
+00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PnoClouds
+** Controls: KV, MW (LFO pitch), BC (LFO pitch), BC (EG amplitude)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 1f 08 05 0f 17 45 47 05 02 06 0b 01 04 0e 00 24 4e 1a 00 1f 1f 08 05 0f
+00 04 63 04 03 07 07 01 04 0e 00 24 4e 1a 06 06 1c 0e 09 2e 4a 05 02 04 00
+63 32 00 07 00 32 39 50 6e 6f 43 6c 6f 75 64 73 20 63 63 63 32 32 32 06 41
+00 57 00 78 00 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: PopPercuss
+** Description: guitar / horn / electric piano mix
+** Controls: KV
+** Source: GLIB (Michael Kesti and others)
+1f 0c 06 0b 06 00 04 56 04 02 1f 02 03 0b 0e 43 04 61 04 10 1f 12 06 08 0e
+00 04 60 08 00 1a 17 08 08 0c 00 03 63 04 03 33 14 00 00 00 62 18 01 04 00
+63 32 00 32 00 32 00 50 6f 70 50 65 72 63 75 73 73 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Sawsy Pad1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0e 08 06 07 0e 1d 01 63 03 06 0e 08 07 07 0f 16 41 62 05 00 0e 08 05 07 0f
+1d 01 62 05 00 0e 08 04 05 0f 14 41 63 04 06 7f 22 00 0f 00 36 05 02 05 03
+63 32 00 00 00 32 00 53 61 77 73 79 20 50 61 64 31 63 63 63 32 32 32 00 36
+00 31 00 31 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Solstice
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0a 1b 0d 06 0f 00 04 31 12 00 0d 1b 0d 06 0f 00 04 43 13 06 0c 1b 0d 06 0f
+00 04 37 12 00 1f 1b 0d 06 0f 00 04 63 19 03 47 23 13 00 00 32 0c 04 04 00
+63 01 63 00 00 32 00 53 6f 6c 73 74 69 63 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Solstice
+** Source: from a library of patches collected by Duane Bowker, author unknown
+0a 1b 0d 06 0f 00 00 31 12 00 0d 1b 0d 06 0f 00 00 43 13 06 0c 1b 0d 06 0f
+00 00 37 12 00 1f 1b 0d 06 0f 00 00 63 19 03 47 23 13 00 00 32 0c 04 04 00
+63 01 63 00 00 32 00 53 6f 6c 73 74 69 63 65 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpoonChoir
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1e 0b 0f 04 07 00 40 43 1c 00 13 0c 07 07 0b 05 00 54 05 00 1f 07 02 07 0f
+08 03 5c 00 06 13 0c 04 05 0a 00 03 57 03 06 7c 1f 00 06 00 4a 11 02 04 00
+63 32 00 00 00 32 00 53 70 6f 6f 6e 43 68 6f 69 72 63 63 63 32 32 32 06 70
+00 71 00 04 00 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpreadThin
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+10 0a 06 08 0c 00 02 59 08 0b 18 12 06 0a 00 00 05 5a 04 0b 15 07 06 08 0c
+00 04 63 04 0b 15 1d 06 0f 0f 00 05 63 04 03 24 1e 00 00 00 22 00 05 04 00
+63 63 63 00 00 32 00 53 70 72 65 61 64 54 68 69 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: SpreadThin
+** Controls: KV
+** Source: from a library of patches collected by Duane Bowker, author unknown
+10 0a 06 08 0c 00 01 59 08 0b 18 12 06 0a 00 00 01 5a 04 0b 15 07 06 08 0c
+00 00 63 04 0b 15 1d 06 0f 0f 00 00 63 04 03 24 1e 00 00 00 22 00 05 04 00
+63 63 63 00 00 32 00 53 70 72 65 61 64 54 68 69 6e 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: St Nick..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 01 0f 00 04 4c 00 02 1f 1f 0c 05 0f 00 03 53 2a 0b 0c 0c 06 05 0f
+00 04 63 00 04 1f 0c 06 05 0f 00 07 63 08 0b 3c 1b 28 10 00 22 18 04 04 00
+28 32 00 00 00 32 00 53 74 20 4e 69 63 6b 2e 2e 31 63 63 63 32 32 32 00 20
+00 00 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: St Nick..1
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 01 0f 00 01 4c 00 02 1f 1f 0c 05 0f 00 00 53 2a 0b 0c 0c 06 05 0f
+00 00 63 00 04 1f 0c 06 05 0f 00 01 63 08 0b 3c 1b 28 10 00 22 18 04 04 00
+28 32 00 00 00 32 00 53 74 20 4e 69 63 6b 2e 2e 31 63 63 63 32 32 32 00 20
+00 00 00 40 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: St Nick..2
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 00 00 01 0f 00 02 4c 04 00 19 1f 0c 05 0f 00 03 63 0a 03 0c 0c 06 05 0f
+00 04 5a 04 06 19 0c 06 05 0f 00 06 63 04 03 36 22 28 2b 00 12 18 04 04 00
+28 32 00 00 00 32 00 53 74 20 4e 69 63 6b 2e 2e 32 63 63 63 32 32 32 00 20
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: St Nick..2
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 00 00 01 0f 00 00 4c 04 00 19 1f 0c 05 0f 00 00 63 0a 03 0c 0c 06 05 0f
+00 00 5a 04 06 19 0c 06 05 0f 00 00 63 04 03 36 22 28 2b 00 12 18 04 04 00
+28 32 00 00 00 32 00 53 74 20 4e 69 63 6b 2e 2e 32 63 63 63 32 32 32 00 20
+00 10 00 10 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StonedCycl
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+04 0f 07 06 0f 00 05 4d 08 00 04 0d 07 06 0f 00 04 63 04 06 04 0e 07 06 0f
+00 06 38 00 00 05 0e 07 06 0f 00 06 63 04 03 7a 63 63 06 00 53 00 04 04 00
+63 01 63 00 00 32 00 53 74 6f 6e 65 64 43 79 63 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: StonedCycl
+** Controls: MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+04 0f 07 06 0f 00 00 4d 08 00 04 0d 07 06 0f 00 00 63 04 06 04 0e 07 06 0f
+00 00 38 00 00 05 0e 07 06 0f 00 00 63 04 03 7a 63 63 06 00 53 00 04 04 00
+63 01 63 00 00 32 00 53 74 6f 6e 65 64 43 79 63 6c 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Texture *
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+0c 0f 0d 07 0f 00 00 63 00 00 1b 00 0d 07 0f 00 01 63 04 00 0f 00 0d 07 0f
+00 02 63 0d 06 1f 00 0d 07 0f 00 01 63 04 06 6f 32 00 63 00 33 18 0c 04 00
+63 32 00 00 00 32 00 54 65 78 74 75 72 65 20 20 2a 63 63 63 32 32 32 00 50
+00 40 00 60 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: That Girl*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1e 02 07 05 00 00 02 5e 05 19 1e 07 0a 08 0b 00 05 59 38 18 1e 06 0a 07 00
+00 02 63 03 0c 1b 06 1f 0b 00 00 02 60 04 13 04 1d 12 1e 00 32 05 02 04 00
+28 63 00 00 00 32 00 54 68 61 74 20 47 69 72 6c 2a 63 63 63 32 32 32 00 01
+00 06 00 06 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Up We Go
+** Controls: KV
+** Source: from a library of patches collected by Rod Lemcke, author unknown
+1f 12 0c 06 0e 00 04 5f 04 03 1f 0f 0c 04 0e 00 02 50 07 0b 1b 03 01 02 0e
+00 05 51 0e 03 1f 09 0f 06 0d 00 06 63 04 03 44 23 00 00 00 32 18 04 04 00
+63 01 63 00 00 32 00 55 70 20 57 65 20 47 6f 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: Up We Go
+** Source: from a library of patches collected by Duane Bowker, author unknown
+1f 12 0c 06 0e 00 00 5f 04 03 1f 0f 0c 04 0e 00 00 50 07 0b 1b 03 01 02 0e
+00 00 51 0e 03 1f 09 0f 06 0d 00 00 63 04 03 44 23 00 00 00 32 18 04 04 00
+63 01 63 00 00 32 00 55 70 20 57 65 20 47 6f 20 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WineGlass*
+** Controls: KV, MW (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+03 05 05 04 00 40 01 35 24 08 08 07 01 04 0c 40 41 34 19 0e 08 09 00 04 0c
+32 44 63 08 1e 03 01 00 04 0c 32 42 5b 08 18 04 08 00 08 22 3e 18 04 04 00
+63 32 00 00 00 32 60 57 69 6e 65 47 6c 61 73 73 2a 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: WireWaves
+** Controls: KV, MW (LFO pitch), BC (LFO pitch)
+** Source: from a library of patches collected by Duane Bowker, author unknown
+14 19 03 05 00 00 07 5d 18 12 19 09 00 05 00 1f 06 3e 2d 16 12 07 07 05 0c
+00 05 63 0b 08 10 09 07 05 0d 00 05 63 0d 08 34 1a 09 05 00 52 00 02 04 00
+63 19 00 10 00 32 00 57 69 72 65 57 61 76 65 73 20 63 63 63 32 32 32 20 32
+1d 74 00 69 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
+
+** Name: XyloSynth
+** Controls: KV
+** Source: by Steve Michelson, from the patch library of his dx11lib librarian
+1f 16 0e 07 07 15 06 63 24 0b 1a 18 0c 07 05 0c 02 63 0a 0b 17 1f 0d 07 0f
+00 02 63 0a 0b 16 1f 0a 05 0f 00 01 63 04 0b 3e 23 00 00 00 52 18 02 04 00
+28 32 00 00 00 32 00 58 79 6c 6f 53 79 6e 74 68 20 63 63 63 32 32 32 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00
+
diff --git a/muse_qt4_evolution/synti/deicsonze/CMakeLists.txt b/muse_qt4_evolution/synti/deicsonze/CMakeLists.txt
new file mode 100644
index 00000000..bbb1f13b
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/CMakeLists.txt
@@ -0,0 +1,59 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+include(${PROJECT_SOURCE_DIR}/pch.txt)
+
+QT4_WRAP_CPP ( deicsonze_mocs deicsonzegui.h )
+QT4_WRAP_UI ( deicsonze_uis deicsonzegui.ui )
+
+add_library ( deicsonze SHARED
+ ${PROJECT_BINARY_DIR}/all.h
+ ${PROJECT_BINARY_DIR}/all-pic.h.pch
+ deicsonze.cpp
+ deicsonzepreset.cpp
+ deicsonzeplugin.cpp
+ deicsonzefilter.cpp
+ deicsonzegui.cpp
+ deicsonzegui.h
+
+ ${deicsonze_mocs}
+ ${deicsonze_uis}
+ )
+
+target_link_libraries( deicsonze synti )
+
+# - tell cmake to name target deicsonze.so instead of
+# libdeicsonze.so
+# - use precompiled header files
+#
+set_target_properties ( deicsonze
+ PROPERTIES PREFIX ""
+ #COMPILE_FLAGS "-O2 -include ${PROJECT_BINARY_DIR}/all-pic.h"
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+target_link_libraries(deicsonze
+ al awl synti
+ ${QT_LIBRARIES}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ deicsonze )
+
+install_files ( /share/${MusE_INSTALL_NAME}/presets/deicsonze SutulaBank.dei )
diff --git a/muse_qt4_evolution/synti/deicsonze/README b/muse_qt4_evolution/synti/deicsonze/README
new file mode 100644
index 00000000..c9b36d02
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/README
@@ -0,0 +1,57 @@
+DeicsOnze
+
+Copyright (C) 2005-2006 by Nil Geisweiller
+
+-------
+License
+-------
+
+DeicsOnze is distributed under the terms of the GNU General Public License
+(see COPYING file).
+
+----------
+Descripion
+----------
+
+DeicsOnze is a virtual synthesizer plugin for MusE which reproduces the
+FM synthesis of the YAMAHA DX11 synthesizer/TX81Z sound module.
+
+-------
+Remarks
+-------
+
+It contains over 2000 presets archived by Bryan Sutula belonging to the public
+domain. If by any chance you find some of them that are under copyright please
+contact me to take them off.
+
+Not every function is implemented but it's already sounding like the original
+(even better). Pitch bend, modulation and some others are not implemented yet.
+
+The files with the extention .fig in the directory pics have been made
+with xfig.
+
+-----------
+Compilation
+-----------
+
+DeicsOnze is compiled with the optimization -O3. This permits it to be
+twice faster than without optimization, however the compilation time is longer
+(10 minutes on my Athlon XP-M 2000) and may not pass on any machine. If not
+remove -O3 in the file CMakeLists.txt.
+
+----
+Help
+----
+
+The last features (portamento and pitch envelope) have been implemented
+without DX11 only with the documentation. If you have a DX11 or TX81Z I need
+you! Please record your sound with different values of portamento and pitch
+envelope and send it to me so I can adjust the paramenter of DeicsOnze to fit
+the real DX11.
+
+-------
+Contact
+-------
+
+Nil Geisweiller
+a-lin[NO_SPAM_PLEASE]@users.sourceforge.net
diff --git a/muse_qt4_evolution/synti/deicsonze/SutulaBank.dei b/muse_qt4_evolution/synti/deicsonze/SutulaBank.dei
new file mode 100644
index 00000000..3a64e876
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/SutulaBank.dei
@@ -0,0 +1,177644 @@
+<?xml version="1.0" encoding="utf8"?>
+<deicsOnzeSet version="1.0">
+ <setName>Sutula Bank</setName>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>ORCHESTRA</categoryName>
+ <hbank>0</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Orchestra</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>24</AR2>
+ <AR3>17</AR3>
+ <AR4>9</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EleOrchtra</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>33</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>7</AR2>
+ <AR3>15</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>11</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Orchestra*</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>44</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>16</AR2>
+ <AR3>14</AR3>
+ <AR4>16</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>30</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntOrkest</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Symphony</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sympathy.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sympathy.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>14</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>12</LS1>
+ <LS2>29</LS2>
+ <LS3>14</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sympho *</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>12</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>1</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>17</AR2>
+ <AR3>12</AR3>
+ <AR4>21</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>12</MWPitch>
+ <MWAmplitude>7</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>25</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony *</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>24</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>14</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>24</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>12</AR3>
+ <AR4>25</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>77</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>28</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.3</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>11</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>23</AR2>
+ <AR3>21</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>52</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.4</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>26</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>13</AR3>
+ <AR4>29</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>21</LS1>
+ <LS2>10</LS2>
+ <LS3>26</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.5</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>26</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>13</AR3>
+ <AR4>29</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>21</LS1>
+ <LS2>10</LS2>
+ <LS3>26</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.5*</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>25</Delay>
+ <PModDepth>61</PModDepth>
+ <AModDepth>37</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>5</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>26</AR2>
+ <AR3>11</AR3>
+ <AR4>15</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.6</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>42</PModDepth>
+ <AModDepth>11</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>10</AR2>
+ <AR3>19</AR3>
+ <AR4>9</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.6*</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>14</AR3>
+ <AR4>15</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>81</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>73</LS3>
+ <LS4>73</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Symphony.7</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>WIND</categoryName>
+ <hbank>1</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Brass</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>14</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>13</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>14</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>13</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>1</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>21</AR2>
+ <AR3>22</AR3>
+ <AR4>18</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass5</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>37</Delay>
+ <PModDepth>37</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>18</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>15</LS1>
+ <LS2>30</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass6</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>36</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>22</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>14</RR1>
+ <RR2>14</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass7</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass8</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>43</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>13</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBrass9</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>21</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>15</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AtackBrass</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>13</AR2>
+ <AR3>31</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>0</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Back Brass</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>69</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 Feed </name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>5</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>5</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>4</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>9</AR2>
+ <AR3>10</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>15</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>33</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 Horns </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>6</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>16</AR2>
+ <AR3>20</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 1</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>0</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 1*</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>6</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>10</AR2>
+ <AR3>21</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 2</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>31</AR2>
+ <AR3>20</AR3>
+ <AR4>25</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 3</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>20</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>21</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 4</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>27</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>17</AR2>
+ <AR3>31</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>9</RR2>
+ <RR3>15</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>52</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>32</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 5</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>15</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 6</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>15</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>30</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 7</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>16</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass 5th </name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>45</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>8</AR2>
+ <AR3>20</AR3>
+ <AR4>8</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass....1</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>45</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>14</AR2>
+ <AR3>15</AR3>
+ <AR4>20</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass....2</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>45</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>14</AR2>
+ <AR3>15</AR3>
+ <AR4>20</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass....2*</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>12</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>-3</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>12</AR2>
+ <AR3>15</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass....3</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>35</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>43</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>20</AR3>
+ <AR4>17</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassChime</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>12</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>60</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassEns.1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>14</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>43</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassEns.2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>51</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>12</AR3>
+ <AR4>14</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassEns.3</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>51</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>20</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassEns.4</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>6</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>9</AR2>
+ <AR3>14</AR3>
+ <AR4>13</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrassSynth</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>90</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brass.Vibe</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>13</AR2>
+ <AR3>18</AR3>
+ <AR4>14</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>13</LS1>
+ <LS2>39</LS2>
+ <LS3>9</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>30</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brassy *</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>15</AR3>
+ <AR4>14</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>13</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chariots </name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>6</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>14</AR2>
+ <AR3>14</AR3>
+ <AR4>14</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChorusBras</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>45</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>11</AR3>
+ <AR4>28</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>47</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ensemble *</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>8</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>11</AR2>
+ <AR3>10</AR3>
+ <AR4>20</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ensemble 1</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>8</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>11</AR2>
+ <AR3>12</AR3>
+ <AR4>20</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ensemble 2</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>15</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Full Brass</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>52</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hard Brass</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>10</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>28</LS2>
+ <LS3>9</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>19</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn </name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....1</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8.48</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-2</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>22</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....2</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>11</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>66</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....3</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>19</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>18</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....4</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>17</AR2>
+ <AR3>21</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....5</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>17</AR2>
+ <AR3>21</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....6</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>16</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>85</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horn.....7</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>14</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>70</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horns short</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horns </name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>5</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>4</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>17</AR3>
+ <AR4>14</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Horns BC </name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>11</AR2>
+ <AR3>17</AR3>
+ <AR4>11</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>60</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JonesBrass</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>15</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>16</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>19</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>90</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LightBrass</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>15</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>14</AR2>
+ <AR3>15</AR3>
+ <AR4>14</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>90</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>MelloBrass</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>6</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>18</AR2>
+ <AR3>26</AR3>
+ <AR4>22</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MufflBrass</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>62</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>18</AR2>
+ <AR3>15</AR3>
+ <AR4>21</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>35</LS1>
+ <LS2>13</LS2>
+ <LS3>99</LS3>
+ <LS4>63</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Brass</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoBrass1</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>52</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>10</AR3>
+ <AR4>8</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>15</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>16</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoBrass2</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>17</AR3>
+ <AR4>11</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>52</LS2>
+ <LS3>0</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoBrass3</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>31</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>26</AR2>
+ <AR3>19</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>POWERBRASS</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>31</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>26</AR2>
+ <AR3>19</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PowerBrass</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>12</AR2>
+ <AR3>21</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>76</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SplatBrass</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>25</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>5</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>4</EBS3>
+ <EBS4>5</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>16</AR2>
+ <AR3>31</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>35</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpitBoneBC</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>18</AR2>
+ <AR3>24</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>9</RR2>
+ <RR3>11</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>95</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Brass 1</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W8</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>18</AR2>
+ <AR3>24</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>9</RR2>
+ <RR3>11</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Brass 2</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>18</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>45</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Brass 3</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>28</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>15</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>1</RR2>
+ <RR3>10</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>96</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Brass 4</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>19</AR2>
+ <AR3>21</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TightBrass</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>3</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>21</AR2>
+ <AR3>25</AR3>
+ <AR4>20</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tpt.Sect.*</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>14</Delay>
+ <PModDepth>28</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>7</AR2>
+ <AR3>17</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>12</LS1>
+ <LS2>39</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tpt&amp;Woodwd</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>30</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3.14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>15</AR2>
+ <AR3>18</AR3>
+ <AR4>14</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>69</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>WindEns..1</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>30</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>22</AR2>
+ <AR3>13</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>69</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WindEns..2</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>6</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>26</LS3>
+ <LS4>54</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Wind </name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>pianohorn </name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Accordion</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>2</EBS3>
+ <EBS4>2</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>2</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>56</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>16</LS1>
+ <LS2>0</LS2>
+ <LS3>35</LS3>
+ <LS4>16</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion*</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>14</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>6</LS1>
+ <LS2>0</LS2>
+ <LS3>14</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>18</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>18</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>18</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>18</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Accordion4</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Squeezebox</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Bag</subcategoryName>
+ <lbank>2</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>60</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>23</AR2>
+ <AR3>19</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>2</RR2>
+ <RR3>10</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> Bag Pipe </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Bassoon</subcategoryName>
+ <lbank>3</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>25</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>53</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>35</MWPitch>
+ <MWAmplitude>30</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bassoon </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>41</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>18</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>65</LS2>
+ <LS3>67</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bassoon..1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>12</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>24</AR2>
+ <AR3>17</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>56</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bassoon..2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>18</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bassoon..3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>19</AR3>
+ <AR4>19</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bassoon..4</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>22</AR2>
+ <AR3>15</AR3>
+ <AR4>22</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>10</RR1>
+ <RR2>4</RR2>
+ <RR3>11</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>0</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>30</BCPitch>
+ <BCAmplitude>10</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassoonSyn</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Clarinet</subcategoryName>
+ <lbank>4</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>41</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>85</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>65</LS2>
+ <LS3>90</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Clair</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>20</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>24</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>12</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>85</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>60</LS2>
+ <LS3>90</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Clairnet.1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>30</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>51</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>40</LS1>
+ <LS2>92</LS2>
+ <LS3>71</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clairnet.2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>2</Delay>
+ <PModDepth>31</PModDepth>
+ <AModDepth>81</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>14</LS1>
+ <LS2>52</LS2>
+ <LS3>14</LS3>
+ <LS4>54</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clairnet.3</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>11</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ClaraPiano</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>20</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>14</AR2>
+ <AR3>19</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>9</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>30</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clarinet </name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>5</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>31</LS3>
+ <LS4>47</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>26</MWPitch>
+ <MWAmplitude>15</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clarinet 1</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>5</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>15</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>82</LS2>
+ <LS3>58</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>26</MWPitch>
+ <MWAmplitude>15</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clarinet 2</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>7</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>60</LS2>
+ <LS3>4</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HolowClair</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>14</AR3>
+ <AR4>7</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>16</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>22</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>SynClarnet</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>EnglishHorn</subcategoryName>
+ <lbank>5</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>60</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>36</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>6</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>20</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>2</RR2>
+ <RR3>10</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>58</LS2>
+ <LS3>92</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>English Hn</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>FlugelHorn</subcategoryName>
+ <lbank>6</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>48</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>21</AR3>
+ <AR4>14</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>13</LS2>
+ <LS3>5</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flugel *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>25</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FlugelHorn</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Flute</subcategoryName>
+ <lbank>7</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>36</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>5</EBS3>
+ <EBS4>2</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>8.98</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>5</AR2>
+ <AR3>4</AR3>
+ <AR4>2</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>38</LS2>
+ <LS3>18</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>8</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>14</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AdditivFlt</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>41</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>22</AR3>
+ <AR4>15</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>40</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Alto Flute</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>41</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>22</AR3>
+ <AR4>15</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Flute1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>41</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>22</AR3>
+ <AR4>15</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Flute2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>24</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>25</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.76</Ratio2>
+ <Ratio3>1.12</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>16</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>49</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>41</BCPitch>
+ <BCAmplitude>18</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute *</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>7</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>13</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>25</AR2>
+ <AR3>18</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>11</LS2>
+ <LS3>13</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>30</MWPitch>
+ <MWAmplitude>64</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute </name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>11</AR2>
+ <AR3>17</AR3>
+ <AR4>17</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>24</LS2>
+ <LS3>27</LS3>
+ <LS4>14</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute 1</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>11</AR2>
+ <AR3>17</AR3>
+ <AR4>17</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>24</LS2>
+ <LS3>27</LS3>
+ <LS4>14</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute 1*</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.99</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>3</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute 2</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>20</Delay>
+ <PModDepth>45</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>22</AR2>
+ <AR3>11</AR3>
+ <AR4>27</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>89</LS2>
+ <LS3>70</LS3>
+ <LS4>69</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Flute....1</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>22</Delay>
+ <PModDepth>42</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>89</LS2>
+ <LS3>70</LS3>
+ <LS4>69</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute....2</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>41</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>70</LS3>
+ <LS4>69</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute....3</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>9</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2.05</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute....4</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>9</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flute....4*</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>4</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.82</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Flute....5</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>17</Delay>
+ <PModDepth>18</PModDepth>
+ <AModDepth>51</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>15</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>55</MWPitch>
+ <MWAmplitude>14</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Flute</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>13</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>35</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pan Floot </name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>46</Speed>
+ <Delay>14</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6.28</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pan Flute1</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>13</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>46</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pan Flute2</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>55</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>17</AR2>
+ <AR3>16</AR3>
+ <AR4>17</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>1</RR2>
+ <RR3>10</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>17</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Pan Flute3</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8.04</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>15</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>59</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>59</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>31</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>49</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PanFlute *</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>41</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>29</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Perc Flute1</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>41</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>29</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Perc Flute2</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>4</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>17</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Perc Flute3</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>18</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>53</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.05</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>11</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>44</OUT3>
+ <OUT4>52</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Soft Flute</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>7</AR3>
+ <AR4>24</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Song Flute</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>10.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>18</AR2>
+ <AR3>13</AR3>
+ <AR4>18</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthFlute</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>FrenchHorn</subcategoryName>
+ <lbank>8</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>10</AR2>
+ <AR3>14</AR3>
+ <AR4>12</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>29</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fr.Horn *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>25</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>14</AR2>
+ <AR3>31</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>14</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>30</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FrenchHorn</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>54</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FrnchHorn1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FrnchHorn2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Harmonica</subcategoryName>
+ <lbank>9</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>18</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>13</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>78</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonic.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>18</AR2>
+ <AR3>16</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>13</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonic.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>37</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>4</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>14</AR3>
+ <AR4>13</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>41</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica*</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>15</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>16</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>9</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>80</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica1</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>4</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>14</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7.07</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>41</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica3</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>29</Speed>
+ <Delay>60</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14.13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>47</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica4</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>42</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harmonica5</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Oboe</subcategoryName>
+ <lbank>10</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>11</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>15</AR2>
+ <AR3>14</AR3>
+ <AR4>11</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>18</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>24</BCPitch>
+ <BCAmplitude>30</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 Oboe </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>20</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>2</RR2>
+ <RR3>10</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>51</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>9</LS1>
+ <LS2>34</LS2>
+ <LS3>8</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>17</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>14</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>18</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>6</LS1>
+ <LS2>35</LS2>
+ <LS3>48</LS3>
+ <LS4>5</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>25</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>10</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>6</LS1>
+ <LS2>0</LS2>
+ <LS3>9</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>7</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>27</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe.....1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>7</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>27</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe.....2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>7</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>27</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe.....2*</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>37</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>12</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>80</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>18</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oboe.....3</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>10</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>20</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>66</LS2>
+ <LS3>66</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Oboe </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Ocarina</subcategoryName>
+ <lbank>11</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>46</Speed>
+ <Delay>39</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>10</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>49</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ocarina </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Piccolo</subcategoryName>
+ <lbank>12</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>13</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>33</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>5.99</Ratio3>
+ <Ratio4>11.89</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>12</AR2>
+ <AR3>14</AR3>
+ <AR4>25</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>11</LS1>
+ <LS2>19</LS2>
+ <LS3>10</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piccolo *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>41</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>5.65</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piccolo..1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>34</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>44</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piccolo..2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>34</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>44</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>71</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piccolo..2*</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>41</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>18</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piccolo..3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Recorder</subcategoryName>
+ <lbank>13</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>19</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntRecord</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>4</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>20</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>45</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>2</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>67</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>4</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>20</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>45</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>2</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>67</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>42</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>24</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder.1</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>42</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>24</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder.2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>42</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>19</AR2>
+ <AR3>16</AR3>
+ <AR4>24</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>10</RR1>
+ <RR2>12</RR2>
+ <RR3>10</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder.3</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>42</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>19</AR2>
+ <AR3>16</AR3>
+ <AR4>24</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>10</RR1>
+ <RR2>12</RR2>
+ <RR3>10</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder.4</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>42</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>24</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Recorder.5</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Saxophone</subcategoryName>
+ <lbank>14</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Alto Sax </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>10</BCPitch>
+ <BCAmplitude>86</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 AltSax</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>48</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;BC1&gt; Sax </name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>23</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>12.72</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>17</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>15</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BCSexyPhon</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>28</LS2>
+ <LS3>9</LS3>
+ <LS4>13</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>11</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ElectroSax</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>18</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GreatDXled</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>17</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>11</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>16</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>V24</SHFT3>
+ <SHFT4>V12</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>52</LS2>
+ <LS3>99</LS3>
+ <LS4>51</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>2</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MelloTenor</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7.25</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>17</AR2>
+ <AR3>17</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>43</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>49</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RaspAlto </name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>16</AR2>
+ <AR3>18</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>9</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>33</LS2>
+ <LS3>27</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sax 1</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4.24</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>17</AR2>
+ <AR3>21</AR3>
+ <AR4>16</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>9</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>15</LS2>
+ <LS3>0</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sax 2</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>10</AR2>
+ <AR3>10</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>41</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sax Synth </name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>17</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>4</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>11</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>15</AR2>
+ <AR3>12</AR3>
+ <AR4>10</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V12</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>15</LS3>
+ <LS4>29</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>4</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>35</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone*</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>11</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5.99</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>18</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Saxophone1</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5.99</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>14</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>46</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone2</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>14</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone3</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>20</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>75</LS2>
+ <LS3>61</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone4</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>6.92</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>20</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>75</LS2>
+ <LS3>61</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone5</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5.99</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Saxophone6</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Saxophone7</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>17</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7.22</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>17</AR2>
+ <AR3>17</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>47</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Saxophone8</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>5</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>12</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone9</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>5</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>12</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>42</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saxophone10</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>19</AR2>
+ <AR3>17</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>30</OUT3>
+ <OUT4>44</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>38</LS2>
+ <LS3>45</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>49</MWAmplitude>
+ <BCPitch>18</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SopranoSax</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Trombone</subcategoryName>
+ <lbank>15</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>22</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>44</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mute Trmbn</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.18</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>12</AR2>
+ <AR3>31</AR3>
+ <AR4>11</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>42</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>20</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trombone *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>9</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>14</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>82</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>28</LS2>
+ <LS3>9</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trombone1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>46</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trombone2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>20</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>54</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trombone.1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>43</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trombone.2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Trumpet</subcategoryName>
+ <lbank>16</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>25</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>3.12</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>15</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V24</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>45</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>15</LS2>
+ <LS3>26</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>29</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>8</BCPitch>
+ <BCAmplitude>39</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>2 Trumpets</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>19</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>36</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1Trumpet</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>19</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>32</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>3</BCPitch>
+ <BCAmplitude>3</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 Trumpt</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>97</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FanfarTpts</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>35</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>2</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mute Trmpt</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>19</AR3>
+ <AR4>17</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Trmpt</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>2</EBS1>
+ <EBS2>5</EBS2>
+ <EBS3>5</EBS3>
+ <EBS4>2</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>21</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>72</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet *</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>25</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>25</AR2>
+ <AR3>18</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>1</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>11</LS2>
+ <LS3>13</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>11</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>25</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Trumpet </name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>19</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>36</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> Trumpet</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>19</AR2>
+ <AR3>16</AR3>
+ <AR4>18</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>28</LS2>
+ <LS3>9</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>19</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet 1</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>26</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>16</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>3</RR2>
+ <RR3>9</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>18</LS1>
+ <LS2>40</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>60</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet 2</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>26</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>10</AR2>
+ <AR3>10</AR3>
+ <AR4>14</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>3</RR2>
+ <RR3>9</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>18</LS1>
+ <LS2>40</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet 3</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.05</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..1</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..1*</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>30</Delay>
+ <PModDepth>23</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>2</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..2</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>2</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..3</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>46</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>49</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>2</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..4</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>35</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>15</AR3>
+ <AR4>12</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>52</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>2</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet..5</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>25</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2.9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>14</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet81Z</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>3</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>3.23</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>TrumptSolo</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>19</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>47</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>0</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Trumpet V </name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Tuba</subcategoryName>
+ <lbank>17</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>20</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>89</LS2>
+ <LS3>70</LS3>
+ <LS4>69</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt; Tuba &gt;&gt;</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>15</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>14</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tuba </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Whistle</subcategoryName>
+ <lbank>18</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>22</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>11</AR2>
+ <AR3>10</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>28</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whistle *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>11</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>19</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>0</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whistle..1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>8</AR2>
+ <AR3>7</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Whistle..2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>9</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>25</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>26</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>51</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whistle..3</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>3</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>25</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>56</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>26</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>51</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whistling </name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>STRINGS</categoryName>
+ <hbank>2</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Strings</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>14</AR2>
+ <AR3>12</AR3>
+ <AR4>13</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>7</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>14</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>5</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>59</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>14</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>10</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.32</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>15</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>14</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>15</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>9</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..5</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>15</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>10</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..6</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>15</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>14</AR2>
+ <AR3>13</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..7</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>19</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>82</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr..8</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>14</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>10</AR3>
+ <AR4>14</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>AnlgStr..9</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>13</AR2>
+ <AR3>10</AR3>
+ <AR4>14</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>AnlgStr..9*</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>19</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>9</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr.10</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>19</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>9</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr.10*</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>16</AR2>
+ <AR3>12</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>88</LS2>
+ <LS3>38</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgStr.11</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>15</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>9</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>5</BCPitch>
+ <BCAmplitude>9</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 String</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>23</AR2>
+ <AR3>12</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>63</LS2>
+ <LS3>18</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DualStr..1</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>9</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>63</LS2>
+ <LS3>18</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DualStr..1*</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>22</AR2>
+ <AR3>9</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>63</LS2>
+ <LS3>18</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>DualStr..2</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>22</AR2>
+ <AR3>9</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>63</LS2>
+ <LS3>18</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>DualStr..2*</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>30</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>21</AR2>
+ <AR3>10</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>56</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>63</LS2>
+ <LS3>18</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DualStr..3</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>22</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ELKA Strg1</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>25</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>20</AR2>
+ <AR3>11</AR3>
+ <AR4>21</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ELKA Strg2</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>8</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>HiString 1</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>23</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V12</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>HiString 2</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>19.65</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>31</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>29</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>9</RR1>
+ <RR2>15</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Kalimba *</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>10</AR2>
+ <AR3>9</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>LowString </name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntPluck1</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>15</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>24</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>22</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntPluck2</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>29</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>14</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>11</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>9</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pizz. 1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>15</RR1>
+ <RR2>10</RR2>
+ <RR3>15</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pizz. 2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pizzicato*</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Pizzicato </name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>8</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>10</AR2>
+ <AR3>9</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>ReverbStrg</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>6</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>10</AR2>
+ <AR3>9</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>12</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>StrgPad A </name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>10</AR2>
+ <AR3>9</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>17</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>StrgPad B </name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>2</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>31</AR2>
+ <AR3>9</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>32</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>16</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Stringed *</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>3</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>2</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>10</AR2>
+ <AR3>11</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>99</LS2>
+ <LS3>18</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns1</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>11</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>99</LS2>
+ <LS3>18</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns1*</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>9</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>99</LS2>
+ <LS3>18</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns2</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>9</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>37</LS1>
+ <LS2>99</LS2>
+ <LS3>18</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns2*</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>33</Speed>
+ <Delay>46</Delay>
+ <PModDepth>30</PModDepth>
+ <AModDepth>9</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>26</D2R1>
+ <D2R2>26</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>40</LS1>
+ <LS2>40</LS2>
+ <LS3>30</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns3</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>19</AR2>
+ <AR3>11</AR3>
+ <AR4>16</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>20</LS2>
+ <LS3>20</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns4</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>16</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>20</LS2>
+ <LS3>20</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns4*</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>11</AR2>
+ <AR3>11</AR3>
+ <AR4>12</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>12</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns5</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>12</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns5*</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>21</AR2>
+ <AR3>11</AR3>
+ <AR4>21</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>12</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns6</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>21</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>12</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns6*</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>21</AR2>
+ <AR3>12</AR3>
+ <AR4>13</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>10</LS2>
+ <LS3>6</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns7</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>13</AR2>
+ <AR3>11</AR3>
+ <AR4>15</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>5</LS1>
+ <LS2>10</LS2>
+ <LS3>6</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringEns8</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>32</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>10</AR2>
+ <AR3>15</AR3>
+ <AR4>28</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StringLead</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>14</Delay>
+ <PModDepth>42</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>12</AR2>
+ <AR3>7</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>20</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Strings </name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>14</Delay>
+ <PModDepth>42</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>14</AR3>
+ <AR4>10</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>76</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>20</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Strings*</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>30</LS2>
+ <LS3>30</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Strings 1</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>26</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>12</AR3>
+ <AR4>20</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>1</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Strings 2</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W8</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>30</LS2>
+ <LS3>30</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Strings 3</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>46</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Syn.Str 1</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>75</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Syn.Str 2</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>11</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>21</LS2>
+ <LS3>12</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynString </name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>7</RR1>
+ <RR2>12</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>T Pluck..1</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>12</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>T Pluck..2</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>28</AR3>
+ <AR4>29</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>18</LS2>
+ <LS3>25</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>T Pluck..3</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>12</AR2>
+ <AR3>11</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>WarmString</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>6</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>92</LS1>
+ <LS2>41</LS2>
+ <LS3>76</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WindString</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>8</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>phantstrng</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Banjo</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>58</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>66</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Banjo *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>1</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Banjo </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>6</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Banjo....1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>6</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Banjo....2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Old Banjo </name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>BassGuitar</subcategoryName>
+ <lbank>2</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnalogBass</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>53</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>24</AR3>
+ <AR4>28</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>9</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>28</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.3</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>28</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.4</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>30</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>96</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.5</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.6</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.7</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass.8</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgBass9</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>25</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgCut.BS</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>8</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgFunkBS</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>8</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>24</AR2>
+ <AR3>13</AR3>
+ <AR4>21</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSplat </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>26</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>42</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass 1</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>26</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass 2</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>26</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass 3</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>26</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>4</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass 4</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass 5</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Pluck</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>25</AR2>
+ <AR3>27</AR3>
+ <AR4>28</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>14</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.0&gt;&gt;</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>41</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>14</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.1&gt;&gt;</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>30</AR2>
+ <AR3>26</AR3>
+ <AR4>25</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>99</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.2&gt;&gt;</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>99</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.3&gt;&gt;</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>14</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.4&gt;&gt;</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>21</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>14</LS1>
+ <LS2>35</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.5&gt;&gt;</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>27</AR2>
+ <AR3>30</AR3>
+ <AR4>25</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>99</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.6&gt;&gt;</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.7&gt;&gt;</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>18</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.8&gt;&gt;</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>24</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&lt;Bass.9&gt;&gt;</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass....FM</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>63</LS2>
+ <LS3>50</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BombBass </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>28</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>CutupBass </name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>43</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Bass 1</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>40</LS1>
+ <LS2>35</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Bass 2</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>16</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>21</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>6</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>4</LS2>
+ <LS3>4</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Bass 3</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ElecBass 1</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>2</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>59</LS2>
+ <LS3>59</LS3>
+ <LS4>49</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ElecBass 2</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>5</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>75</LS3>
+ <LS4>77</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fat Lead.1</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>17</AR2>
+ <AR3>22</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>39</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fat Lead.2</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>17</AR2>
+ <AR3>22</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>39</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fat Lead.3</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>38</Delay>
+ <PModDepth>52</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>17</AR2>
+ <AR3>22</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>39</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fat Lead.4</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>14</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>filtrsweep</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FlangeBass</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>33</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>0.75</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>0.75</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>17</AR2>
+ <AR3>17</AR3>
+ <AR4>10</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>49</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fretless *</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>27</AR2>
+ <AR3>30</AR3>
+ <AR4>8</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>99</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fretless.1</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>27</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>99</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fretless.2</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>24</AR3>
+ <AR4>30</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FunkyBass1</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>30</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FunkyBass2</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>8</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>16</AR2>
+ <AR3>21</AR3>
+ <AR4>7</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>20</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jaco Bass </name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>8</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>0</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jaco Bass2</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>V12</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JazzWalker</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>10</RR1>
+ <RR2>11</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>13</LS1>
+ <LS2>0</LS2>
+ <LS3>52</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Kai Bass *</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LatelyBass</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MonophBass</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MoogerBass</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntBass.1</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>46</Speed>
+ <Delay>0</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntBass.2</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>23</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>24</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>83</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Precision*</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ResoMonoBs</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>14</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Roto Bass </name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SUPER BASS</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>19</AR2>
+ <AR3>20</AR3>
+ <AR4>18</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>10</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Science.BS</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>7.85</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>80</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>60</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SlapBass </name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>24</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SlapBass.1</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>22</AR2>
+ <AR3>20</AR3>
+ <AR4>24</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SlapBass.2</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>12.11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>28</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SqncrBass </name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>12.11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>57</LS2>
+ <LS3>28</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SqncrBass2</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>23</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>94</LS2>
+ <LS3>61</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 1</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>66</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 2</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 3</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>26</AR2>
+ <AR3>21</AR3>
+ <AR4>26</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 4</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 5</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 6</name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Bass 7</name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>10.59</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>92</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>14</RR2>
+ <RR3>5</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>13</LS2>
+ <LS3>28</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynFunkBas</name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>10.59</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>76</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>42</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynFunkBs2</name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>16</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>30</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>16</LS1>
+ <LS2>10</LS2>
+ <LS3>23</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TeknoBass*</name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>23</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>49</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Bass </name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>23</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>49</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WoodBass2 </name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Cello</subcategoryName>
+ <lbank>3</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>7</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>13</AR2>
+ <AR3>18</AR3>
+ <AR4>28</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>9</LS2>
+ <LS3>44</LS3>
+ <LS4>53</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>BowCello </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>21</AR2>
+ <AR3>17</AR3>
+ <AR4>28</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>11</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>21</LS2>
+ <LS3>12</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>BoxCello*</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>15</AR2>
+ <AR3>17</AR3>
+ <AR4>28</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>11</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>21</LS2>
+ <LS3>12</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>BoxCello2 </name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>25</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>16</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>77</LS1>
+ <LS2>43</LS2>
+ <LS3>0</LS3>
+ <LS4>77</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cello *</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>18</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>21</AR2>
+ <AR3>25</AR3>
+ <AR4>22</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>86</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>16</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>80</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cello 1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>22</Delay>
+ <PModDepth>44</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>23</AR2>
+ <AR3>30</AR3>
+ <AR4>29</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>37</LS3>
+ <LS4>18</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cello 2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>22</Delay>
+ <PModDepth>44</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>23</AR2>
+ <AR3>30</AR3>
+ <AR4>29</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>37</LS3>
+ <LS4>18</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cello 2*</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>27</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>21</AR2>
+ <AR3>17</AR3>
+ <AR4>16</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>60</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>Cello....1</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>46</Delay>
+ <PModDepth>30</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>30</AR2>
+ <AR3>20</AR3>
+ <AR4>19</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>16</LS1>
+ <LS2>82</LS2>
+ <LS3>82</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cello....2</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>DoubleBass</subcategoryName>
+ <lbank>4</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>23</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>30</AR2>
+ <AR3>15</AR3>
+ <AR4>27</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>51</LS2>
+ <LS3>0</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ArcoBass *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>6</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>112</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>11</AR2>
+ <AR3>3</AR3>
+ <AR4>9</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>56</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassBeast </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>99</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassPluck2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>8</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>8.97</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>18</AR3>
+ <AR4>28</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>DoubleBass</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Guitar</subcategoryName>
+ <lbank>5</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>13</AR2>
+ <AR3>22</AR3>
+ <AR4>27</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>12 String1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>70</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>26</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>13</RR2>
+ <RR3>14</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>12 String2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>23</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>5th Lead.1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>23</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>64</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>5th Lead.2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>35</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Guitar1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Guitar2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>14</RR1>
+ <RR2>11</RR2>
+ <RR3>13</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Guitar3</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>51</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>26</AR2>
+ <AR3>29</AR3>
+ <AR4>27</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>14</RR1>
+ <RR2>11</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>43</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Guitar4</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>55</LS2>
+ <LS3>61</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AllThatJaz</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>40</LS2>
+ <LS3>40</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>A.Guitar </name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>28</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>85</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>8</LS2>
+ <LS3>8</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Guitar </name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>28</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>11</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>85</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>8</LS2>
+ <LS3>8</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Guitar*</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>Echo Lead </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>40</LS2>
+ <LS3>40</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>F.Guitar </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>40</LS2>
+ <LS3>40</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>F.Guitar*</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>31</AR2>
+ <AR3>23</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>7</LS2>
+ <LS3>17</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flamenco </name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>2</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>17</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Funkfifth*</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>11</RR2>
+ <RR3>11</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Funky Pick</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>21</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FuzzyLead </name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>30</LS1>
+ <LS2>60</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Guitar </name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>8</RR1>
+ <RR2>15</RR2>
+ <RR3>12</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>6</LS1>
+ <LS2>37</LS2>
+ <LS3>28</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Guitar #1 </name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>47</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HardHabits</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>56</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>55</LS2>
+ <LS3>61</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HawaiiGitr</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>39</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>17</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>47</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HeavyLead </name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>22</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>27</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HeavyMetal</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>18</AR2>
+ <AR3>20</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>13</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HollowLead</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>27</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>85</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Guit1</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>16.96</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>28</AR2>
+ <AR3>23</AR3>
+ <AR4>31</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>96</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>79</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Guit2</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>27</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>79</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Guit3</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>4</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>27</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>73</LS2>
+ <LS3>45</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Guit4</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>45</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JonesLead </name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>15</Speed>
+ <Delay>29</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>61</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>13</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>KickLead </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mute Gtr </name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>NastyLead1</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>NastyLead2</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>25</AR2>
+ <AR3>29</AR3>
+ <AR4>28</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>30</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Nuln Guit3</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>20</AR2>
+ <AR3>21</AR3>
+ <AR4>28</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Nyln Guit1</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>25.95</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>30</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Nyln Guit2</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>4.5</Ratio3>
+ <Ratio4>4.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>54</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>17</LS1>
+ <LS2>44</LS2>
+ <LS3>41</LS3>
+ <LS4>47</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Nylon *</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>55</LS2>
+ <LS3>61</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>NylonGuit </name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntGuitar</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ped Stl..1</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ped Stl..2</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ped Stl..3</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>22</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>10</RR2>
+ <RR3>11</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>55</LS2>
+ <LS3>61</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>10</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PedalSteel</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>53</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>13</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PercLead.1</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>53</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>13</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PercLead.2</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>22</AR2>
+ <AR3>28</AR3>
+ <AR4>26</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>8</RR1>
+ <RR2>15</RR2>
+ <RR3>12</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>6</LS1>
+ <LS2>32</LS2>
+ <LS3>20</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PhasedGuit</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>26</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>2</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>33</LS2>
+ <LS3>24</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Piknylon *</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>14</LS1>
+ <LS2>75</LS2>
+ <LS3>70</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Power Lead</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>22</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>50</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>28</AR2>
+ <AR3>21</AR3>
+ <AR4>26</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>80</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>27</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>PowerChord</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>22</AR2>
+ <AR3>21</AR3>
+ <AR4>19</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>12</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RecLead </name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>12</RR2>
+ <RR3>7</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit1</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>69</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit2</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit3</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit4</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>15</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit5</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>32</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>15</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rock Guit6</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>22</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>14</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>27</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StadiumSol</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>20</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>24</AR2>
+ <AR3>22</AR3>
+ <AR4>23</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>5</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>70</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Solo 1</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>40</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Solo 2</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>45</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Solo 3</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Solo 4</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>17</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>44</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sync Lead </name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>19.03</Ratio3>
+ <Ratio4>16</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>80</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>16</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TwangGuitr</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.48</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>11</RR2>
+ <RR3>11</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TwelveStrg</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>slowtacky </name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>slowtacky+</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Harp</subcategoryName>
+ <lbank>6</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>-1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>3</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>29</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Dbl Harp.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>41</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>-1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>90</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Dbl Harp.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>16</LS1>
+ <LS2>0</LS2>
+ <LS3>11</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>98</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp *</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>6.28</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>16</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>4</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp </name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>21</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>23</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp 1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>85</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp 2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>7</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>29</LS1>
+ <LS2>82</LS2>
+ <LS3>54</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp.....1</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>2</DET1>
+ <DET2>-1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>50</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp.....2</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>26</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>90</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harp....FM</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Koto</subcategoryName>
+ <lbank>7</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>1</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>23.55</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>48</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>32</LS2>
+ <LS3>0</LS3>
+ <LS4>9</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>2</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Fuzzy Koto</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>8</Delay>
+ <PModDepth>29</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>29</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>13</LS2>
+ <LS3>35</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>54</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Koto *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>11</LS2>
+ <LS3>37</LS3>
+ <LS4>28</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Koto </name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>29</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>25</LS3>
+ <LS4>17</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Koto.....1</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>20</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>29</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>25</LS3>
+ <LS4>17</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Koto.....2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>20</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>25</LS1>
+ <LS2>17</LS2>
+ <LS3>25</LS3>
+ <LS4>17</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Koto.....3</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Lute</subcategoryName>
+ <lbank>8</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>52</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>12</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntLute.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>52</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>24</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntLute.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Mandolin</subcategoryName>
+ <lbank>9</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>44</Speed>
+ <Delay>99</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>23</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>7</RR1>
+ <RR2>2</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mandolin.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>70</Speed>
+ <Delay>16</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mandolin.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Sitar</subcategoryName>
+ <lbank>10</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>30</AR2>
+ <AR3>17</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>13</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>51</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>19.78</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>73</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>17</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar....1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>1</RR1>
+ <RR2>3</RR2>
+ <RR3>2</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar....2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>44</Speed>
+ <Delay>99</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>15</AR3>
+ <AR4>29</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar....3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>15</AR3>
+ <AR4>29</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sitar.Vib </name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1.37</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>29</AR2>
+ <AR3>30</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Sitar </name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Viola</subcategoryName>
+ <lbank>11</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>15</AR2>
+ <AR3>11</AR3>
+ <AR4>25</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Viola 5th </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>16</AR2>
+ <AR3>10</AR3>
+ <AR4>29</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Viola 5th*</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>56</Delay>
+ <PModDepth>50</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>27</AR2>
+ <AR3>13</AR3>
+ <AR4>21</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Viola....1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>46</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>14</AR2>
+ <AR3>12</AR3>
+ <AR4>28</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Viola....2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>46</Delay>
+ <PModDepth>30</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>14</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Viola....2*</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>15</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>14</AR3>
+ <AR4>27</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>13</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ViolaSynth</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Violin</subcategoryName>
+ <lbank>12</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>6</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>25</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>13</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>2</LS1>
+ <LS2>73</LS2>
+ <LS3>0</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SoloViolin</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>10.38</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>64</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>3</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>16</LS2>
+ <LS3>20</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>49</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sradiv. *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>10</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>21</AR2>
+ <AR3>25</AR3>
+ <AR4>22</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>98</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>16</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>10</MWPitch>
+ <MWAmplitude>80</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin 1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>19</Delay>
+ <PModDepth>61</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>15</AR2>
+ <AR3>10</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>84</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>8</LS1>
+ <LS2>0</LS2>
+ <LS3>9</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin 2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>19</Delay>
+ <PModDepth>61</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>84</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>8</LS1>
+ <LS2>0</LS2>
+ <LS3>9</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin 2*</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>20</Delay>
+ <PModDepth>24</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>11</AR3>
+ <AR4>11</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...1</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>24</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>21</AR2>
+ <AR3>14</AR3>
+ <AR4>18</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...1*</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>21</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>6</EBS3>
+ <EBS4>5</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>11</AR2>
+ <AR3>10</AR3>
+ <AR4>21</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...2</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>44</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>15</AR2>
+ <AR3>12</AR3>
+ <AR4>15</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...2*</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>28</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>18</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>13</AR2>
+ <AR3>11</AR3>
+ <AR4>14</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...3</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>13</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>8</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violin...3*</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>25</Delay>
+ <PModDepth>46</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>96</FixRange1>
+ <FixRange2>32</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>8</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...4</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>96</FixRange1>
+ <FixRange2>32</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>16</AR2>
+ <AR3>12</AR3>
+ <AR4>17</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>3</ReverbRate>
+ </function>
+ <name>Violin...4*</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>39</Delay>
+ <PModDepth>52</PModDepth>
+ <AModDepth>50</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>17</AR2>
+ <AR3>10</AR3>
+ <AR4>16</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...5</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...5*</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>39</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>25</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>17</AR2>
+ <AR3>10</AR3>
+ <AR4>18</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...6</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...6*</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>14</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...7</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>21</AR2>
+ <AR3>12</AR3>
+ <AR4>20</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...8</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...8*</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>23</Delay>
+ <PModDepth>64</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...9</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin...9*</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>8</Delay>
+ <PModDepth>31</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>17</AR2>
+ <AR3>11</AR3>
+ <AR4>18</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violin..10</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>8</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>10</AR3>
+ <AR4>10</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violin..10*</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>44</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>14</AR2>
+ <AR3>10</AR3>
+ <AR4>24</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..11</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>39</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>22</AR2>
+ <AR3>10</AR3>
+ <AR4>17</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violin..12</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violin..12*</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>39</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>17</AR3>
+ <AR4>22</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>2</LS1>
+ <LS2>73</LS2>
+ <LS3>0</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..13</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>39</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>22</AR2>
+ <AR3>26</AR3>
+ <AR4>29</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>2</LS1>
+ <LS2>73</LS2>
+ <LS3>0</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..13*</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>39</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>19</AR2>
+ <AR3>13</AR3>
+ <AR4>15</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..14</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>39</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>14</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..14*</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>18</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>18</AR2>
+ <AR3>13</AR3>
+ <AR4>26</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..15</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>29</AR2>
+ <AR3>14</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..15*</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>39</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>10.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>40</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>26</AR3>
+ <AR4>28</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>46</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>73</LS2>
+ <LS3>0</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..16</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>44</Speed>
+ <Delay>10</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>13</AR2>
+ <AR3>10</AR3>
+ <AR4>24</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..17</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>44</Speed>
+ <Delay>10</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>13</AR2>
+ <AR3>10</AR3>
+ <AR4>24</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..17*</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>32</Speed>
+ <Delay>26</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>25</AR2>
+ <AR3>13</AR3>
+ <AR4>29</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..18</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>13</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violin..18*</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>33</Speed>
+ <Delay>39</Delay>
+ <PModDepth>33</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>1</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>21</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..19</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>39</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>10</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Violin..19*</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>25</Delay>
+ <PModDepth>46</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>22</AR2>
+ <AR3>15</AR3>
+ <AR4>27</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>25</LS2>
+ <LS3>1</LS3>
+ <LS4>66</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> VIOLINS </name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>81</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>25</LS2>
+ <LS3>1</LS3>
+ <LS4>66</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> VIOLINS *</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>24</Delay>
+ <PModDepth>59</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>18</AR2>
+ <AR3>11</AR3>
+ <AR4>19</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>40</LS1>
+ <LS2>9</LS2>
+ <LS3>20</LS3>
+ <LS4>60</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..1</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>10</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>12</AR3>
+ <AR4>16</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>40</LS1>
+ <LS2>9</LS2>
+ <LS3>20</LS3>
+ <LS4>60</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..1*</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>44</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>19</AR2>
+ <AR3>11</AR3>
+ <AR4>16</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>20</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..2</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>44</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>16</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>20</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..2*</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>39</Delay>
+ <PModDepth>52</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>18</AR2>
+ <AR3>11</AR3>
+ <AR4>18</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>40</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..3</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>39</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>40</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Violins..3*</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>28</Delay>
+ <PModDepth>37</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>15</AR2>
+ <AR3>10</AR3>
+ <AR4>21</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>17</LS1>
+ <LS2>51</LS2>
+ <LS3>20</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violins..4</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>20</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>15</AR2>
+ <AR3>10</AR3>
+ <AR4>15</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>17</LS1>
+ <LS2>51</LS2>
+ <LS3>20</LS3>
+ <LS4>65</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Violins..4*</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Other</subcategoryName>
+ <lbank>13</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>8 Stringer</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.3</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>4.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.4</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>33</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>16</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>9</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.5</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>60</Delay>
+ <PModDepth>64</PModDepth>
+ <AModDepth>96</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>15</AR2>
+ <AR3>28</AR3>
+ <AR4>15</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.6</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>90</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>19</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.7</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>30</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>4</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.8</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>46</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst.9</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>46</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>15</AR2>
+ <AR3>13</AR3>
+ <AR4>24</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst10</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>63</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntInst11</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>2</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>23</AR2>
+ <AR3>24</AR3>
+ <AR4>26</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>4</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>97</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Syamisen </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>20</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Zither </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>KEYBOARDS</categoryName>
+ <hbank>3</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Clavichord</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav Lead </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>26</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav Perc </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>26</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>30</AR3>
+ <AR4>30</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav Synth</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>12</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>94</LS3>
+ <LS4>16</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....1</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>23</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>2</LS1>
+ <LS2>9</LS2>
+ <LS3>50</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....3</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>23</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>2</LS1>
+ <LS2>9</LS2>
+ <LS3>50</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....4</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....5</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>20.76</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....6</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>23</AR2>
+ <AR3>29</AR3>
+ <AR4>28</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>9</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>2</LS1>
+ <LS2>9</LS2>
+ <LS3>50</LS3>
+ <LS4>53</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....7</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....8</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clav.....9</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>35</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Clavi </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>12</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>16</LS3>
+ <LS4>16</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EZ Clav </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>12</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>46</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fuzz Clavi</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>16</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Klavinet *</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>23</AR2>
+ <AR3>29</AR3>
+ <AR4>30</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>2</LS1>
+ <LS2>9</LS2>
+ <LS3>50</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Clav </name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rimbaclav </name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>85</Speed>
+ <Delay>0</Delay>
+ <PModDepth>57</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>16</AR2>
+ <AR3>28</AR3>
+ <AR4>19</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>20</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SplashClav</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>Synclav. *</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>12</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>35</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Thin Clav </name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Harpsichord</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>15</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harpschrd1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>15</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harpschrd2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>15</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harpschrd3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>15</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harpschrd4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hrpsicord1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>23</AR3>
+ <AR4>29</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hrpsicord2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hrpsicord3</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>V12</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>33</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LiteHarpsi</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>15</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RichHarpsi</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Organ</subcategoryName>
+ <lbank>2</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>16 8 4 2 F</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>39</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>99</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;6 Tease&gt; </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>21</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>9</LS2>
+ <LS3>10</LS3>
+ <LS4>9</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnalogOrgn</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>44</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>B3 Organ.1</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>44</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>B3 Organ.2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>B3 Organ.3</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>22</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Big Church</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>12</Speed>
+ <Delay>15</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>22</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>27</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChurchOrg*</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>32</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>25</LS2>
+ <LS3>25</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ClosedFlut</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>25</LS2>
+ <LS3>25</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cornopean </name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>2.25</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>16</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>15</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>5</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>60</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DistortOrg</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>23</AR2>
+ <AR3>23</AR3>
+ <AR4>23</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>30</LS2>
+ <LS3>40</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>48</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Drawbar1 *</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>23</AR2>
+ <AR3>23</AR3>
+ <AR4>23</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>25</LS2>
+ <LS3>44</LS3>
+ <LS4>47</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>48</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Drawbar2 *</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>14.1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>24</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Dyno *</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>3</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>12</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>24.11</Ratio3>
+ <Ratio4>12.11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>31</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>DynoWurlie</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>14</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>80</LS3>
+ <LS4>38</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..1</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>42</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>80</LS3>
+ <LS4>38</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..2</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..3</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>71</PModDepth>
+ <AModDepth>78</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..4</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>71</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..5</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..6</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>12</RR1>
+ <RR2>10</RR2>
+ <RR3>12</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..7</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>12</RR1>
+ <RR2>10</RR2>
+ <RR3>12</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..8</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>20</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ..9</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>46</Speed>
+ <Delay>0</Delay>
+ <PModDepth>34</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>13</RR1>
+ <RR2>12</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ.10</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>16</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ.11</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>4</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ.12</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>42</OUT3>
+ <OUT4>45</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Organ.13</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>14</RR1>
+ <RR2>14</RR2>
+ <RR3>14</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>24</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Organ 1</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>12</RR2>
+ <RR3>12</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>8</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Organ 2</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>21</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Organ 3</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>20</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>99</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Organ 4</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>18</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>11</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>99</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Farcheeza </name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>11</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.75</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>2.25</Ratio3>
+ <Ratio4>4.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>12</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>11</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>12</RR1>
+ <RR2>11</RR2>
+ <RR3>12</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>20</LS2>
+ <LS3>21</LS3>
+ <LS4>28</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>11</MWPitch>
+ <MWAmplitude>64</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond *</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>14</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>4</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>4</AR3>
+ <AR4>2</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>18</LS2>
+ <LS3>13</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..1</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>99</LS1>
+ <LS2>82</LS2>
+ <LS3>25</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..2</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>24</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..3</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..4</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>71</PModDepth>
+ <AModDepth>85</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>29</AR2>
+ <AR3>26</AR3>
+ <AR4>10</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>23</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>16</LS1>
+ <LS2>1</LS2>
+ <LS3>81</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..5</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>99</LS1>
+ <LS2>82</LS2>
+ <LS3>25</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..6</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>35</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>29</AR2>
+ <AR3>26</AR3>
+ <AR4>23</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>23</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>16</LS1>
+ <LS2>1</LS2>
+ <LS3>81</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hammond..7</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>15</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HamondLead</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>48</Speed>
+ <Delay>0</Delay>
+ <PModDepth>52</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hmnd LS f1</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hmnd LS f2</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>48</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hmnd LS s1</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>1</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>25</LS2>
+ <LS3>25</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hornopean </name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>79</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jazz Organ</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>23</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>18.05</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>11</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>66</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>55</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Leslie *</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>28</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Organ 1</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Organ 2 </name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>0</LS3>
+ <LS4>78</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Organ 3 </name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>99</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Organ</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>29</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>1</EBS1>
+ <EBS2>1</EBS2>
+ <EBS3>1</EBS3>
+ <EBS4>1</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..1</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>29</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..2</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>29</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>16</AR3>
+ <AR4>20</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..3</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>65</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>22</AR2>
+ <AR3>13</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..4</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>65</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>29</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>10</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..5</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>65</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>22</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..6</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>65</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>22</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..7</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>35</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>26</AR2>
+ <AR3>19</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..8</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>65</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>22</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ..9</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>56</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>16</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>62</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.10</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>22</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>P Organ.11</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>27</AR2>
+ <AR3>18</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.12</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>46</LS3>
+ <LS4>67</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.13</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>21</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>21</LS2>
+ <LS3>46</LS3>
+ <LS4>67</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.14</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>18</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>46</LS3>
+ <LS4>67</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.15</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>18</AR2>
+ <AR3>15</AR3>
+ <AR4>19</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>46</LS3>
+ <LS4>67</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.16</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>25</Delay>
+ <PModDepth>29</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P Organ.17</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>70</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>10</AR2>
+ <AR3>20</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>76</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 1</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 2</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>70</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>10</AR2>
+ <AR3>20</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>76</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 1*</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 2*</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>9</LS2>
+ <LS3>64</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 3 </name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>85</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 4 </name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>P.Organ 5 </name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>24</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PercOrgan </name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>17</AR2>
+ <AR3>23</AR3>
+ <AR4>22</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Pipe Organ</name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>14</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>7.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>13</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>35</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>10</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PumpOrgan </name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>6</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>14</AR2>
+ <AR3>11</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>35</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>15</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>12</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RevrbOrgan</name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>17</AR2>
+ <AR3>23</AR3>
+ <AR4>22</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>62</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Small Pipe</name>
+ <prog>80</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>35</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Organ 1</name>
+ <prog>81</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>13</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>35</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Organ 1*</name>
+ <prog>82</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>39</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>10</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>36</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>99</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Organ 2</name>
+ <prog>83</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>1</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>16</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>60</LS1>
+ <LS2>50</LS2>
+ <LS3>50</LS3>
+ <LS4>60</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tocc Organ</name>
+ <prog>84</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>21</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>5.99</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>6.05</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>25</AR3>
+ <AR4>30</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>43</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>65</LS2>
+ <LS3>65</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>35</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>VelocOrgan</name>
+ <prog>85</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>27</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>18</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wirlitzer*</name>
+ <prog>86</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Piano</subcategoryName>
+ <lbank>3</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>18</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>20</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>66</LS2>
+ <LS3>66</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>24</AR3>
+ <AR4>21</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>1</LS2>
+ <LS3>22</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>25</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.5</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.6</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>60</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>22</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>15</LS1>
+ <LS2>35</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.7</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>6</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>0</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.8</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano.9</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>66</LS2>
+ <LS3>99</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano10</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano11</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>17</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano12</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>25</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano13</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>56</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano14</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>47</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano15</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>24</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>45</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>43</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano16</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>19</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano17</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>5</RR1>
+ <RR2>9</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>0</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano18</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>19</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano19</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>1</LS2>
+ <LS3>1</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano20</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>20</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>66</LS2>
+ <LS3>66</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AC Piano21</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>30</AR2>
+ <AR3>30</AR3>
+ <AR4>30</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>43</LS2>
+ <LS3>17</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BabyGrand*</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>23</AR2>
+ <AR3>24</AR3>
+ <AR4>20</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>56</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>14</LS3>
+ <LS4>17</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>25</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bad Road *</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>12</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.75</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>12</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bel/Piano*</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>82</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>81</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BellPiano1</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>82</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>81</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BellPiano2</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>94</LS2>
+ <LS3>61</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BritePiano</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>94</LS2>
+ <LS3>61</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Buz&apos;dPiano</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>27</LS2>
+ <LS3>16</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChibyPiano</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>48</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>ChorusMeEP</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>18</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>65</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>104</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>98</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>37</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>CrsPopPno </name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>16</LS2>
+ <LS3>20</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DX7 EP </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>70</LS2>
+ <LS3>74</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Deep Grd </name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>17</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>16.97</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>77</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>22</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>23</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>73</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>28</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>51</MWAmplitude>
+ <BCPitch>30</BCPitch>
+ <BCAmplitude>51</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DirtoyPno </name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>22</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DynomiteEP</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..1</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..2</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>26</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>41</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..3</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>26</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>41</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..4</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>15</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>32</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>9</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>25</LS1>
+ <LS2>0</LS2>
+ <LS3>25</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..5</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>11</RR1>
+ <RR2>12</RR2>
+ <RR3>15</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>11</LS1>
+ <LS2>35</LS2>
+ <LS3>30</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..6</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>1</LS1>
+ <LS2>48</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..7</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>32</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>12</LS2>
+ <LS3>14</LS3>
+ <LS4>24</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..8</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>28</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>40</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano..9</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>11</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>24</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>40</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.10</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>75</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.11</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>75</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.12</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>30</AR2>
+ <AR3>28</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>15</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>11</LS1>
+ <LS2>99</LS2>
+ <LS3>30</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.13</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>30</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.14</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>85</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.15</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>52</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>10</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>85</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.16</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>11</RR1>
+ <RR2>12</RR2>
+ <RR3>15</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>11</LS1>
+ <LS2>35</LS2>
+ <LS3>30</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.17</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>11</RR1>
+ <RR2>12</RR2>
+ <RR3>15</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>11</LS1>
+ <LS2>45</LS2>
+ <LS3>30</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.18</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>11</LS1>
+ <LS2>36</LS2>
+ <LS3>30</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.19</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>11</LS1>
+ <LS2>36</LS2>
+ <LS3>30</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.20</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>13</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.21</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>1</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>0</LS3>
+ <LS4>13</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E Piano.22</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>16</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>25</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>13</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>16.96</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>29</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>17</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>42</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>20</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Piano 1</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>49</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>6</LS1>
+ <LS2>11</LS2>
+ <LS3>12</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E.Piano 2</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>1</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>77</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>E. Piano 3</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>15.5</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>30</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>11</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>El.Piano *</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Elec Grand</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>2</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>37</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>13</LS1>
+ <LS2>20</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ElecPiano4</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>29</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.99</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>15</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>ElecPiano5</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>29</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.98</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>0.97</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>ElecPiano6</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>26</AR2>
+ <AR3>23</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>10</RR2>
+ <RR3>5</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>7</LS2>
+ <LS3>17</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Electracou</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>8</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ElectroPno</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FadePiano </name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>76</LS2>
+ <LS3>65</LS3>
+ <LS4>26</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FingersGo!</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FlatFlange</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>50</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>14</Ratio3>
+ <Ratio4>6.92</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>10</RR1>
+ <RR2>11</RR2>
+ <RR3>9</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>95</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>22</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fuzz Piano</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FuzzPiano </name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>11.01</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>21</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>15</LS2>
+ <LS3>15</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>30</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GaragePno </name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>38</Speed>
+ <Delay>86</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>18</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>14</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>15</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GlassPiano</name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Grand 2 </name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>70</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Grand 3 </name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Grand Low </name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Grand PF </name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GrandLow2 </name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>4.49</Ratio2>
+ <Ratio3>13.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GrandLow3 </name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>94</LS2>
+ <LS3>61</LS3>
+ <LS4>52</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GrandPiano</name>
+ <prog>80</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HappyPiano</name>
+ <prog>81</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>37</LS2>
+ <LS3>33</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>14</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>HarpsPiano</name>
+ <prog>82</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hi-LowBell</name>
+ <prog>83</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>20</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>84</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>High&amp;Long$</name>
+ <prog>84</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>10.49</Ratio3>
+ <Ratio4>7.22</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>19</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>61</OUT3>
+ <OUT4>48</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HonkeyTonk</name>
+ <prog>85</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>30</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>66</LS2>
+ <LS3>81</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Ivory *</name>
+ <prog>86</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>75</LS2>
+ <LS3>91</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JazzyPiano</name>
+ <prog>87</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MetalWhip </name>
+ <prog>88</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>41</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>NewElectro</name>
+ <prog>89</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>NewElectro*</name>
+ <prog>90</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>37</LS2>
+ <LS3>0</LS3>
+ <LS4>37</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>9</MWPitch>
+ <MWAmplitude>15</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Old Rose </name>
+ <prog>91</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrganPiano</name>
+ <prog>92</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>23</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>24.22</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>25</AR2>
+ <AR3>30</AR3>
+ <AR4>22</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Piano</name>
+ <prog>93</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>8</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>3</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>87</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>PetalPiano</name>
+ <prog>94</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>22</AR3>
+ <AR4>29</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>7</RR2>
+ <RR3>2</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>12</LS1>
+ <LS2>53</LS2>
+ <LS3>79</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PhaseGrand</name>
+ <prog>95</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>39</LS3>
+ <LS4>57</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianGuitar</name>
+ <prog>96</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.31</Ratio1>
+ <Ratio2>3.87</Ratio2>
+ <Ratio3>11.72</Ratio3>
+ <Ratio4>1.31</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>13</FixRange1>
+ <FixRange2>20</FixRange2>
+ <FixRange3>13</FixRange3>
+ <FixRange4>13</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>51</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>25</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>-5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rag Piano </name>
+ <prog>97</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>17</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2.18</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>11</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>39</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>23</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Reed Piano</name>
+ <prog>98</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>22</AR2>
+ <AR3>24</AR3>
+ <AR4>29</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>86</LS3>
+ <LS4>26</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SkoolPiano</name>
+ <prog>99</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>81</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14.1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>21.2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>27</AR2>
+ <AR3>22</AR3>
+ <AR4>21</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>8</RR2>
+ <RR3>12</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpacePiano</name>
+ <prog>100</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SquareFlat</name>
+ <prog>101</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>8</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>22</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sus Piano </name>
+ <prog>102</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>85</LS2>
+ <LS3>63</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>22</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Thump Pno </name>
+ <prog>103</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7.67</Ratio2>
+ <Ratio3>5.5</Ratio3>
+ <Ratio4>3.43</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Toy Piano </name>
+ <prog>104</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7.67</Ratio2>
+ <Ratio3>5.5</Ratio3>
+ <Ratio4>3.43</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>8</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Toy Piano*</name>
+ <prog>105</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>25</Delay>
+ <PModDepth>60</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>4.64</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>19</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>23</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>11</RR2>
+ <RR3>1</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>31</LS1>
+ <LS2>88</LS2>
+ <LS3>94</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Upright *</name>
+ <prog>106</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>1.94</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>50</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>28</AR2>
+ <AR3>27</AR3>
+ <AR4>22</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>2</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>20</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Upright </name>
+ <prog>107</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>7</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>75</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>18</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>UprightBas</name>
+ <prog>108</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>19</AR3>
+ <AR4>19</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>69</LS2>
+ <LS3>72</LS3>
+ <LS4>72</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Uprt piano</name>
+ <prog>109</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>11</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V24</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>65</LS3>
+ <LS4>26</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WiredPiano</name>
+ <prog>110</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Piano</name>
+ <prog>111</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>22</AR3>
+ <AR4>29</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>7</RR2>
+ <RR3>2</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>12</LS1>
+ <LS2>53</LS2>
+ <LS3>79</LS3>
+ <LS4>7</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>britegrand</name>
+ <prog>112</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>callipiano</name>
+ <prog>113</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>flatfunk </name>
+ <prog>114</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>fuzzbass </name>
+ <prog>115</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>metlmarimb</name>
+ <prog>116</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>14</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>mildfilter</name>
+ <prog>117</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>phaseharp </name>
+ <prog>118</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>19</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>pizzapiano</name>
+ <prog>119</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>29</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>6</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>stringback</name>
+ <prog>120</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Rhodes</subcategoryName>
+ <lbank>4</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>16</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>43</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>16.96</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>16.96</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>19</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>36</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>11</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...5</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>19</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>36</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...6</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>57</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...7</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>57</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>19</LS1>
+ <LS2>92</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...8</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>44</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes...9</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>44</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes..10</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>52</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes..11</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>19</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>36</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>26</AR2>
+ <AR3>26</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>78</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes..12</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>19</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>36</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rhodes..13</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>22</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>12</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5.49</Ratio1>
+ <Ratio2>14.91</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>72</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>7</LS1>
+ <LS2>0</LS2>
+ <LS3>4</LS3>
+ <LS4>43</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>51</MWAmplitude>
+ <BCPitch>47</BCPitch>
+ <BCAmplitude>39</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RatRhodes </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Synthesizer1</subcategoryName>
+ <lbank>5</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>42</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>6</AR1>
+ <AR2>6</AR2>
+ <AR3>18</AR3>
+ <AR4>5</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>42</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>42</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>42</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>10</RR1>
+ <RR2>12</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.5</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>8</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.6</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>92</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.7</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.8</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt.9</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>5</RR1>
+ <RR2>9</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt10</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>28</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt11</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>7</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt12</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt13</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>11</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt14</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>27</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AnlgSynt15</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ariesynth1</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ariesynth2</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>31</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> A.R.P. *</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>54</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>1</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>14</LS2>
+ <LS3>12</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>51</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP 2500 </name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>22</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>3</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>96</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP 2600.1</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>54</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>14</LS2>
+ <LS3>12</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>51</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP 2600.2</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>24</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>20</LS1>
+ <LS2>20</LS2>
+ <LS3>20</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP Axxe.1</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>2</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP Axxe.2</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>8</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>14</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>82</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP Omni.1</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>5</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>11</AR2>
+ <AR3>10</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>30</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>30</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>37</LS1>
+ <LS2>35</LS2>
+ <LS3>21</LS3>
+ <LS4>86</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ARP Omni.2</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>17</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>60</LS2>
+ <LS3>32</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Axel F </name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>21</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>20</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Axel F...1</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>43</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>20</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Axel F...2</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>23</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>20</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BadSample*</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>48</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>13</AR2>
+ <AR3>28</AR3>
+ <AR4>5</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>47</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Beta.....1</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>48</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>13</AR2>
+ <AR3>28</AR3>
+ <AR4>9</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Beta.....2</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>22</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>12</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>2</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>94</LS3>
+ <LS4>24</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>30</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BigWash </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chroma...1</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>23</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>13</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chroma...2</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chroma...3</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>44</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Crazy 6502</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>50</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DigiAnnie </name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>&lt;&gt; DS 1 &lt;&gt;</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt; DS 11 &gt; </name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>19</AR3>
+ <AR4>21</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EML Synth1</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>19</AR3>
+ <AR4>21</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EML Synth2</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>48</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>21</AR3>
+ <AR4>21</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Explorer.1</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>21</AR3>
+ <AR4>21</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Explorer.2</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>21</AR3>
+ <AR4>21</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Explorer.3</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>21</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>5</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>17</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>32</LS2>
+ <LS3>0</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>30</MWPitch>
+ <MWAmplitude>85</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FMMelodica</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>8</AR2>
+ <AR3>6</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gamma....1</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>12</AR2>
+ <AR3>10</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gamma....2</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>71</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>12</AR2>
+ <AR3>21</AR3>
+ <AR4>13</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GleeSynth </name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>8</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>10.48</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>-2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>27</AR2>
+ <AR3>24</AR3>
+ <AR4>17</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>10</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>65</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HardSync </name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>8</AR2>
+ <AR3>7</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>60</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Helix....1</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>8</AR2>
+ <AR3>7</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>60</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Helix....2</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>0</Delay>
+ <PModDepth>60</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>24</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>27</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>46</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> \ ISAO \ </name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>24</AR2>
+ <AR3>20</AR3>
+ <AR4>23</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JP 4.....1</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>73</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>JP 4.....2</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>6</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Juno Juice</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Juno Who? </name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>12</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>5</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>7.94</Ratio3>
+ <Ratio4>11.93</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>59</LS3>
+ <LS4>53</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jupiter *</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>23</AR2>
+ <AR3>20</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>13</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>\ Kitaro.1</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>28</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>8</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>\ Kitaro.2</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>10</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>10</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Korg 770.1</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>2</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Korg 770.2</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>5</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>56</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>75</LS3>
+ <LS4>77</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Korg 770.3</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>47</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>9</AR3>
+ <AR4>11</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lambda...1</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>11</AR3>
+ <AR4>11</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lambda...2</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>47</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>7</AR3>
+ <AR4>7</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lambda...3</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>47</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>7</AR3>
+ <AR4>7</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>14</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lambda...4</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>24</AR2>
+ <AR3>5</AR3>
+ <AR4>5</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lambda...5</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>21</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>7</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth1</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>21</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth2</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth3</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>28</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>44</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth4</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>27</AR2>
+ <AR3>24</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth5</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>25</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>28</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>58</LS2>
+ <LS3>0</LS3>
+ <LS4>42</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth6</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>50</LS2>
+ <LS3>0</LS3>
+ <LS4>66</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth7</name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>66</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LeadSynth8</name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>5</AR2>
+ <AR3>12</AR3>
+ <AR4>5</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Luna.....1</name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Luna.....2</name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>5</AR3>
+ <AR4>5</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>75</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Luna.....3</name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lyrisyn </name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>60</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MaxiKorg.1</name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>53</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>23</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MaxiKorg.2</name>
+ <prog>80</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>20</AR2>
+ <AR3>21</AR3>
+ <AR4>20</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>10</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>39</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>17</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MicroMoog1</name>
+ <prog>81</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>20</AR2>
+ <AR3>21</AR3>
+ <AR4>20</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>2</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>39</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>17</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MicroMoog2</name>
+ <prog>82</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>11</AR3>
+ <AR4>14</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MiniMoog *</name>
+ <prog>83</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>12</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MiniMoog.1</name>
+ <prog>84</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>12</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MiniMoog.2</name>
+ <prog>85</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>27</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>12</RR1>
+ <RR2>15</RR2>
+ <RR3>12</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>4</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MiniMoog.3</name>
+ <prog>86</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>48</LS2>
+ <LS3>38</LS3>
+ <LS4>69</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mirage *</name>
+ <prog>87</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>15</LS2>
+ <LS3>35</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MoogBass *</name>
+ <prog>88</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MultiMoog1</name>
+ <prog>89</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MultiMoog2</name>
+ <prog>90</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>29</AR3>
+ <AR4>22</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>66</LS2>
+ <LS3>0</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>No!NotJump</name>
+ <prog>91</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&lt;&gt; OB 1 &lt;&gt;</name>
+ <prog>92</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>18</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>12</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> OB-8 *</name>
+ <prog>93</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>29</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oberheim.1</name>
+ <prog>94</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>18</AR2>
+ <AR3>11</AR3>
+ <AR4>11</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>5</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oberheim.2</name>
+ <prog>95</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>12</AR2>
+ <AR3>10</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>0</LS3>
+ <LS4>5</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Oberheim.3</name>
+ <prog>96</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Synthesizer2</subcategoryName>
+ <lbank>6</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Odyssey..1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>12</RR1>
+ <RR2>13</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Odyssey..2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Odyssey..3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>75</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>16</AR2>
+ <AR3>18</AR3>
+ <AR4>16</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>21</LS1>
+ <LS2>0</LS2>
+ <LS3>21</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OhB1Kanobe</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>8</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Omega....1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>70</Speed>
+ <Delay>40</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>28</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>57</LS2>
+ <LS3>99</LS3>
+ <LS4>55</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Omega....2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>13</AR2>
+ <AR3>11</AR3>
+ <AR4>14</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>13</RR1>
+ <RR2>6</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>22</LS2>
+ <LS3>14</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PCM Duck *</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>15</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>1</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>18</AR2>
+ <AR3>3</AR3>
+ <AR4>6</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>3</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>22</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>99</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoSynth</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>14</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>120</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>64</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>16</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>18</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PlkAnalog </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>11</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>19</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Poly 61 </name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>8</AR2>
+ <AR3>14</AR3>
+ <AR4>10</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PolyFusion</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>11</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PolyMoog.1</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>14</AR2>
+ <AR3>10</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>60</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PolyMoog.2</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>31</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>25.02</Ratio3>
+ <Ratio4>2.48</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>23</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>1</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>47</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>9</LS1>
+ <LS2>8</LS2>
+ <LS3>12</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> P.P.G *</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>18</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Prophet *</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>19</AR2>
+ <AR3>22</AR3>
+ <AR4>19</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>34</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Prophet..1</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>18</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>27</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Prophet..2</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>29</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Prophet..3</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>8</AR2>
+ <AR3>7</AR3>
+ <AR4>8</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>10</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PS 3100..1</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>7</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>15</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PS 3100..2</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>11</AR3>
+ <AR4>13</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>10</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PS 3300..1</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>29</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>15</AR2>
+ <AR3>7</AR3>
+ <AR4>13</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>78</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>8</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>15</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PS 3300..2</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Quadra...1</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>19</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Quadra...2</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ResoSynth1</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ResoSynth2</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RMI......1</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>25</AR3>
+ <AR4>27</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RMI......2</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>2</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>1</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>1</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>5</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SH 7.....1</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>2</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>23</AR2>
+ <AR3>25</AR3>
+ <AR4>16</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>1</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SH 7.....2</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sigma....1</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>73</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>25.95</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sigma....2</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sigma....3</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>5.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>39</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>35</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Soft Synth</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>15</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>24</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Softsynth*</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.62</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>82</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>17</LS2>
+ <LS3>40</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SoloSynth </name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>18</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>96</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpiralSynt</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sweeper </name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3.18</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>11</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>5</AR2>
+ <AR3>17</AR3>
+ <AR4>15</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>SweepSynt*</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>13</AR2>
+ <AR3>27</AR3>
+ <AR4>20</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>45</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>18</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>66</LS2>
+ <LS3>0</LS3>
+ <LS4>41</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>SweetSynth</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>46</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>1</EBS1>
+ <EBS2>5</EBS2>
+ <EBS3>1</EBS3>
+ <EBS4>5</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.AftrTch</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>5.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Decay 1</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>8</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>20.31</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-2</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>10</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Decay 2</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7.85</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>20.76</Ratio3>
+ <Ratio4>19.03</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synballs </name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>23</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....1</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>35</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>1</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....2</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>50</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>13</AR2>
+ <AR3>31</AR3>
+ <AR4>13</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....3</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>14</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....4</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....5</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>15</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....6</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synth....7</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>5</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.55</Ratio1>
+ <Ratio2>2.55</Ratio2>
+ <Ratio3>2.56</Ratio3>
+ <Ratio4>2.56</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>21</FixRange1>
+ <FixRange2>21</FixRange2>
+ <FixRange3>17</FixRange3>
+ <FixRange4>17</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>3</AR2>
+ <AR3>16</AR3>
+ <AR4>18</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-16</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Synthish *</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthRise1</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthRise2</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>17</AR3>
+ <AR4>17</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>22</LS2>
+ <LS3>29</LS3>
+ <LS4>29</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>3</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthyPad1</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System 15 </name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>11</AR2>
+ <AR3>14</AR3>
+ <AR4>7</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System35.1</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>21</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System35.2</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System35.3</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>9</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System55.1</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>9</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>System55.2</name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>12</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>7</AR3>
+ <AR4>10</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tamboura *</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.41</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tamboura.1</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tamboura.2</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tamboura.3</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>-2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>6</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>8</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Time X *</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>5.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>16</AR2>
+ <AR3>19</AR3>
+ <AR4>23</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>30</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>35</LS1>
+ <LS2>99</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TrdrpSynth</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>28</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>0.75</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>0.75</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>23</AR2>
+ <AR3>21</AR3>
+ <AR4>23</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>6</LS1>
+ <LS2>0</LS2>
+ <LS3>7</LS3>
+ <LS4>25</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Voyage *</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>38</Speed>
+ <Delay>0</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>30</AR2>
+ <AR3>10</AR3>
+ <AR4>10</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Walt/Wendy</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>41</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>18</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wapper...1</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>42</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>18</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>9</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wapper...2</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WarmSquare</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>16</AR2>
+ <AR3>18</AR3>
+ <AR4>14</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> Wendy : </name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>43</Speed>
+ <Delay>0</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>8</AR2>
+ <AR3>14</AR3>
+ <AR4>12</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wendy C </name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>46</Speed>
+ <Delay>58</Delay>
+ <PModDepth>69</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whos Upset</name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>14</AR2>
+ <AR3>21</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>X-Pander *</name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>27.57</Ratio3>
+ <Ratio4>27.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>23</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>17</AR3>
+ <AR4>19</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xuereb *</name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>VOICES</categoryName>
+ <hbank>4</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Breath</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BadBreath1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>41</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.58</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1.58</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>18</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>12</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>51</LS1>
+ <LS2>62</LS2>
+ <LS3>12</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BadBreath2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>10</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>50</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>25</LS1>
+ <LS2>21</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>2</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>3</ReverbRate>
+ </function>
+ <name>BadBreath3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>47</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>22.49</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>80</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>64</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>31</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>44</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BreathOrgn</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>6</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2.06</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>43</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BreathyEns</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Choir</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>31</Delay>
+ <PModDepth>63</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>11.13</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>71</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>31</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>77</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>23</LS1>
+ <LS2>74</LS2>
+ <LS3>0</LS3>
+ <LS4>8</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChoiChoir*</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>33</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>12</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Choir....1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>33</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>12</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choir....2</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>35</Delay>
+ <PModDepth>33</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>16</AR2>
+ <AR3>11</AR3>
+ <AR4>16</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choir....3</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>45</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>9</AR2>
+ <AR3>7</AR3>
+ <AR4>7</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>52</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>41</LS1>
+ <LS2>99</LS2>
+ <LS3>88</LS3>
+ <LS4>97</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>Choir....4</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>19</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>21</AR3>
+ <AR4>19</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>86</LS2>
+ <LS3>99</LS3>
+ <LS4>58</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choir....5</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>22</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>13</AR3>
+ <AR4>18</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>51</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>86</LS2>
+ <LS3>99</LS3>
+ <LS4>58</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choir....6</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>4</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>12</AR3>
+ <AR4>11</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>86</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>10</LS2>
+ <LS3>30</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choral </name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>23</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>71</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>88</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>13</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chorus </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.56</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>57</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>6</AR2>
+ <AR3>10</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>47</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>50</LS2>
+ <LS3>69</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Chorus...1</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>7</AR2>
+ <AR3>9</AR3>
+ <AR4>14</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>50</LS2>
+ <LS3>69</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chorus...2</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>35</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>6</AR2>
+ <AR3>13</AR3>
+ <AR4>11</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>50</LS2>
+ <LS3>69</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chorus...3</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>72</PModDepth>
+ <AModDepth>34</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>13</AR3>
+ <AR4>7</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>60</LS2>
+ <LS3>89</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Chorus...4</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>79</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-2</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>10</AR3>
+ <AR4>9</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>60</LS2>
+ <LS3>89</LS3>
+ <LS4>45</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chorus...5</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>79</PModDepth>
+ <AModDepth>61</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>10</AR3>
+ <AR4>12</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>50</LS2>
+ <LS3>67</LS3>
+ <LS4>62</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Chorus...6</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>79</PModDepth>
+ <AModDepth>61</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>9</AR2>
+ <AR3>8</AR3>
+ <AR4>6</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>42</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Chorus...7</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>15</Delay>
+ <PModDepth>79</PModDepth>
+ <AModDepth>61</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>9</AR2>
+ <AR3>9</AR3>
+ <AR4>6</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>50</LS2>
+ <LS3>42</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>1</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chorus...8</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>FVoice</subcategoryName>
+ <lbank>2</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>27</Delay>
+ <PModDepth>48</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>21</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>24</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>F Voice..1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>34</Delay>
+ <PModDepth>91</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>6</AR2>
+ <AR3>12</AR3>
+ <AR4>13</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>26</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>F Voice..2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>40</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>12</AR2>
+ <AR3>13</AR3>
+ <AR4>15</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>60</LS2>
+ <LS3>15</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>F Voice..3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>58</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>15</AR2>
+ <AR3>18</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>88</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>1</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>F Voice..4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>3</Delay>
+ <PModDepth>37</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>14</AR2>
+ <AR3>11</AR3>
+ <AR4>24</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>47</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>45</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Fem.Voice*</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>MVoice</subcategoryName>
+ <lbank>3</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>33</Delay>
+ <PModDepth>51</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>M Voice..1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>12</Delay>
+ <PModDepth>41</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>M Voice..2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>33</Delay>
+ <PModDepth>33</PModDepth>
+ <AModDepth>12</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6.96</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>55</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>18</AR2>
+ <AR3>9</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>42</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>M Voice..3</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>20</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>12</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>M Voice..4</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>48</PModDepth>
+ <AModDepth>38</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>13.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>72</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>18</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>25</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>2</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>78</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mal.Voice*</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>10</Speed>
+ <Delay>7</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>27.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>8</LS1>
+ <LS2>13</LS2>
+ <LS3>35</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>3</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Male Voice</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>9.06</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>8</LS1>
+ <LS2>13</LS2>
+ <LS3>35</LS3>
+ <LS4>44</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MaleVoices</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Other</subcategoryName>
+ <lbank>4</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>12</AR2>
+ <AR3>12</AR3>
+ <AR4>5</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Quartet..1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>14</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>8</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>14</AR2>
+ <AR3>14</AR3>
+ <AR4>14</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>14</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Quartet..2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>8</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>5.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>14</AR2>
+ <AR3>14</AR3>
+ <AR4>20</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Ensem.1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>12</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>21.98</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Ensem.2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Ensem.3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>1</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>7</AR2>
+ <AR3>16</AR3>
+ <AR4>8</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>20</LS2>
+ <LS3>20</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Ensem.4</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>11</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>14</AR3>
+ <AR4>14</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Ensem.5</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>80</PModDepth>
+ <AModDepth>4</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>10</AR2>
+ <AR3>10</AR3>
+ <AR4>12</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>86</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Voice 1</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>10</Delay>
+ <PModDepth>80</PModDepth>
+ <AModDepth>4</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>12</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>86</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Voice 1*</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>18</Delay>
+ <PModDepth>44</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>15</AR2>
+ <AR3>14</AR3>
+ <AR4>18</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>62</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>49</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>15</LS1>
+ <LS2>0</LS2>
+ <LS3>15</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Voice 2</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>11</Delay>
+ <PModDepth>33</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>11</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Syntvoice*</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>16</Speed>
+ <Delay>0</Delay>
+ <PModDepth>81</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>15.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>14</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>7</RR2>
+ <RR3>12</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-1</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>VocalNuts </name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>42</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>10</AR2>
+ <AR3>9</AR3>
+ <AR4>15</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>65</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>&gt; Voices &lt;</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>10.48</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Voices </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>79</Speed>
+ <Delay>0</Delay>
+ <PModDepth>68</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>24.22</Ratio3>
+ <Ratio4>22.38</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>11</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>38</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Whisper </name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>82</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7.4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>0</AR2>
+ <AR3>23</AR3>
+ <AR4>6</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>1</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>6</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wind Voice</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>PERCUSSION</categoryName>
+ <hbank>5</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Bell</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>18</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3.46</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.93</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Agogo *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>19</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>13.89</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>45</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>17</LS2>
+ <LS3>0</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Agogo Bell</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3.5</Ratio1>
+ <Ratio2>3.52</Ratio2>
+ <Ratio3>5.25</Ratio3>
+ <Ratio4>5.25</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>23</AR3>
+ <AR4>23</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>14</LS1>
+ <LS2>76</LS2>
+ <LS3>20</LS3>
+ <LS4>56</LS4>
+ </scaling>
+ <function>
+ <Transpose>-22</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Analobell*</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.82</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>30</AR2>
+ <AR3>28</AR3>
+ <AR4>25</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>2</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>38</MWAmplitude>
+ <BCPitch>42</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bangkok </name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>79</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Bells</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell </name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell* </name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>10.37</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>10.38</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>30</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>80</LS2>
+ <LS3>0</LS3>
+ <LS4>80</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell Ensem</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>14</AR3>
+ <AR4>18</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Bell Pad </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>87</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....1</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>56</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>98</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....2</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>9</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>21</AR2>
+ <AR3>28</AR3>
+ <AR4>26</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....3</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>57</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>15</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>23</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....4</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>10</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>57</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>19</LS1>
+ <LS2>0</LS2>
+ <LS3>19</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>21</MWPitch>
+ <MWAmplitude>39</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....5</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....6</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....7</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>92</Speed>
+ <Delay>0</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....8</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>57</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>18.37</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>24</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell.....9</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>28</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell....10</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bell....11</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>36</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.75</Ratio1>
+ <Ratio2>2.68</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>2.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>12</FixRange1>
+ <FixRange2>19</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>17</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>11</LS1>
+ <LS2>21</LS2>
+ <LS3>13</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>48</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BelleBell*</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>19</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>7</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6.28</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>19.03</Ratio3>
+ <Ratio4>5.19</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bells </name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>BellyStuff</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8.48</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>87</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Big Bell.1</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5.65</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>6.92</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>87</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Big Bell.2</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7.85</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>87</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Big Bell.3</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>6</Delay>
+ <PModDepth>17</PModDepth>
+ <AModDepth>9</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>10</AR2>
+ <AR3>11</AR3>
+ <AR4>11</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>BowedBell </name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrightBell</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>84</Speed>
+ <Delay>0</Delay>
+ <PModDepth>71</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>12.72</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>12</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>28</AR2>
+ <AR3>14</AR3>
+ <AR4>28</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Brthbells </name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>63</Delay>
+ <PModDepth>49</PModDepth>
+ <AModDepth>44</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.93</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>0.93</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>23</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>15</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>28</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>8</RR1>
+ <RR2>14</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>43</OUT3>
+ <OUT4>47</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>44</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Carnival! </name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>25</Speed>
+ <Delay>42</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>3</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChurchBell</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.06</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>2.06</Ratio3>
+ <Ratio4>0.56</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>24</AR2>
+ <AR3>22</AR3>
+ <AR4>25</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>3</ReverbRate>
+ </function>
+ <name>ClickChime</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>5.25</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>5.29</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>30</AR3>
+ <AR4>30</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>22</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>3</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cloches *</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>21.88</Ratio1>
+ <Ratio2>12.25</Ratio2>
+ <Ratio3>19.56</Ratio3>
+ <Ratio4>11.13</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>31</FixRange1>
+ <FixRange2>68</FixRange2>
+ <FixRange3>62</FixRange3>
+ <FixRange4>55</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>8</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cow Bell </name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>20.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>51</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cow-Belle*</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>22</AR3>
+ <AR4>22</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>2</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>31</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gong.....1</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>64</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>14.1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>12</AR2>
+ <AR3>24</AR3>
+ <AR4>2</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>14</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>31</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gong.....2</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>64</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.78</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>7</AR2>
+ <AR3>19</AR3>
+ <AR4>25</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>74</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>31</LS3>
+ <LS4>31</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gong.....3</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>82</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.29</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>18</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>7</AR2>
+ <AR3>16</AR3>
+ <AR4>11</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gong Ageng</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>32</Delay>
+ <PModDepth>80</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.79</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>2</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>41</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gongs *</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>8</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>20.31</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>13</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HiTine81Z </name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>35</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>12</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HumorBells</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>31</Speed>
+ <Delay>11</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>26</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>15</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>10</MWPitch>
+ <MWAmplitude>80</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>KeyBell </name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>27</AR2>
+ <AR3>29</AR3>
+ <AR4>29</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>88</LS2>
+ <LS3>87</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Large Ben </name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>22</AR3>
+ <AR4>29</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LastTwango</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>8</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>27</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>21.06</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>13</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>LoTine81Z </name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MellowSqar</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Moooo Bell</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.31</Ratio1>
+ <Ratio2>8.97</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7.85</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>13</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>11</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mr.Rogers </name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>31</AR2>
+ <AR3>17</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>99</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OhMy!Bells</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7.07</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>5</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntCowBel</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>67</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>41</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>18.84</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PluckBell </name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpaceBell1</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>4</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>14</Ratio1>
+ <Ratio2>23.55</Ratio2>
+ <Ratio3>20.41</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpaceBell2</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>7</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>0</DET2>
+ <DET3>-2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>21</AR2>
+ <AR3>28</AR3>
+ <AR4>26</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SundayBell</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>22.49</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>0</LS3>
+ <LS4>70</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Perc. 1</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>18</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>13</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Perc. 2</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>9</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Perc. 3</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>10.37</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>10.38</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>30</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>2</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sy.Perc. 4</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthBell </name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tube Bell </name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>7</Speed>
+ <Delay>0</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>21</AR2>
+ <AR3>28</AR3>
+ <AR4>26</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>22</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tube Bells</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Block</subcategoryName>
+ <lbank>1</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>14.13</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>26</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-10</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&quot;Air&quot;imba </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>5.02</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>8.63</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>17</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>72</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>29</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>24</D2R1>
+ <D2R2>26</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>6</RR1>
+ <RR2>8</RR2>
+ <RR3>4</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>35</LS2>
+ <LS3>36</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Balafon *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>82</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3.89</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.83</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>23</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>22</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>2</LS2>
+ <LS3>1</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BamboBlock</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>11</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>17</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BamboChiff</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>44</Speed>
+ <Delay>99</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>11</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BamboMar.1</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>27</AR3>
+ <AR4>22</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BamboMar.2</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>27</AR3>
+ <AR4>22</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>2</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BamboMar.3</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>12</Delay>
+ <PModDepth>49</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.05</Ratio2>
+ <Ratio3>1.06</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>28</AR2>
+ <AR3>23</AR3>
+ <AR4>26</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>80</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>70</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bamboo *</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>12.72</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>11.24</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>64</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>72</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>12</RR1>
+ <RR2>3</RR2>
+ <RR3>12</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Castanet </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>96</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>29</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>11</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Claves *</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>50</Speed>
+ <Delay>35</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>82</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>14</LS1>
+ <LS2>99</LS2>
+ <LS3>14</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MarimbLead</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>0</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba *</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>26</AR2>
+ <AR3>23</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>0</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8.72</Ratio2>
+ <Ratio3>18.37</Ratio3>
+ <Ratio4>8.01</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>19</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>59</LS3>
+ <LS4>72</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba*</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..1</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>17</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Marimba..2</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>27</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>17</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..3</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>17</LS1>
+ <LS2>0</LS2>
+ <LS3>17</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..4</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..5</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..6</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Marimba..7</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>30</Speed>
+ <Delay>40</Delay>
+ <PModDepth>36</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>4</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Block</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>58</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>12.72</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>5.19</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>20</AR2>
+ <AR3>31</AR3>
+ <AR4>10</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>15</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>45</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-13</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynGameran</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>50</Speed>
+ <Delay>35</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>82</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>20.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>10</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>1</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>14</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthMarib</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>0</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>22.49</Ratio3>
+ <Ratio4>4.37</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>23</D2R4>
+ <RR1>6</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>19</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tablas *</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>82</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3.62</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.83</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>18</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Block</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>5.59</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>4.12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>17</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>18</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>26</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>32</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WoodBlock*</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>48</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WoodBlock1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>48</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WoodBlock2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>48</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>8</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WoodBlock3</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Chime</subcategoryName>
+ <lbank>2</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>10.37</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>10.38</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>BriteCelst</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>1</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Celeste </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>1</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Celeste..1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>1</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Celeste..2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.5</Ratio1>
+ <Ratio2>5.19</Ratio2>
+ <Ratio3>2.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>3</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>17</LS2>
+ <LS3>0</LS3>
+ <LS4>18</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>54</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chimes *</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>2</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>22</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>7.43</Ratio2>
+ <Ratio3>23.55</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chiming </name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>15</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>15</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Glocken </name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>40</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Glocken..1</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>30</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>57</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>5</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>40</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Glocken..2</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>25</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>65</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>23</MWPitch>
+ <MWAmplitude>59</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GoodVibes*</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GreatVibes</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>19</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>92</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>24.22</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mod Chime </name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>10</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>1</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>13</AR2>
+ <AR3>31</AR3>
+ <AR4>0</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>3</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>2</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>10</LS1>
+ <LS2>10</LS2>
+ <LS3>10</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthChime</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>15.57</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Triangle.1</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>14</Ratio3>
+ <Ratio4>11</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>32</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>48</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Triangle.2</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>22</AR2>
+ <AR3>23</AR3>
+ <AR4>21</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vib Lead.1</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>39</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>23</AR3>
+ <AR4>21</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>12</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vib Lead.2</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>31</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>54</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>30</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe. </name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>6</RR1>
+ <RR2>12</RR2>
+ <RR3>13</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>87</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>59</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....1</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....2</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....3</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>18</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....4</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>18</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....5</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>22</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>21</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>8</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibe.....6</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>27</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>11</LS1>
+ <LS2>0</LS2>
+ <LS3>11</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Vibesyn *</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>45</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>6</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>11</Ratio1>
+ <Ratio2>11</Ratio2>
+ <Ratio3>11</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>6</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WindChime1</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>78</Speed>
+ <Delay>0</Delay>
+ <PModDepth>56</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>11</Ratio1>
+ <Ratio2>12.72</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>28</AR2>
+ <AR3>14</AR3>
+ <AR4>28</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WindChime2</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>41</Speed>
+ <Delay>44</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>54</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>25</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>32</LS3>
+ <LS4>17</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>49</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone.1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>23</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone.2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>38</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone.3</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>38</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone.4</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone1</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone2</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-2</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>29</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>12</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>25</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone3</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>27</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone4</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone5</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>15.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>59</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone6</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>9</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone7</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>22</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>12</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>17</MWPitch>
+ <MWAmplitude>6</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Xylophone8</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Cymbal</subcategoryName>
+ <lbank>3</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>13</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>6.28</Ratio3>
+ <Ratio4>1.18</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>19</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>30</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>31</LS2>
+ <LS3>0</LS3>
+ <LS4>11</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chin.Cymb*</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8.65</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>21.98</Ratio3>
+ <Ratio4>18.84</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cymbal...1</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8.65</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>21.98</Ratio3>
+ <Ratio4>19.03</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cymbal...1*</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8.65</Ratio1>
+ <Ratio2>10.13</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cymbal...2</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8.65</Ratio1>
+ <Ratio2>9.89</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cymbal...2*</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>2</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>3</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6.92</Ratio1>
+ <Ratio2>7.07</Ratio2>
+ <Ratio3>10.38</Ratio3>
+ <Ratio4>19.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cymbal...3</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Drum</subcategoryName>
+ <lbank>4</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>99</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass/Snare</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>9</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>19</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>15</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-11</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Bass Drum </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>80</Speed>
+ <Delay>0</Delay>
+ <PModDepth>74</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.31</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>13</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>12</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Drum1</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7.02</Ratio1>
+ <Ratio2>1.31</Ratio2>
+ <Ratio3>0.81</Ratio3>
+ <Ratio4>10.7</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>13</FixRange2>
+ <FixRange3>13</FixRange3>
+ <FixRange4>19</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>11</RR2>
+ <RR3>12</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Drum2</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>9</RR1>
+ <RR2>12</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassDrum.1</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>9</RR1>
+ <RR2>12</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>78</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassDrum.2</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>24</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>25</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>9</RR1>
+ <RR2>12</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BassDrum.3</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>1.43</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>24</AR2>
+ <AR3>24</AR3>
+ <AR4>25</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>20</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>14</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>17</PR2>
+ <PR3>42</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>2</LS3>
+ <LS4>5</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BoConga </name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>0</Delay>
+ <PModDepth>38</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>25</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>23</D2R4>
+ <RR1>6</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Congas *</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>10</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>7</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DrmSpring1</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>10</Delay>
+ <PModDepth>25</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>7</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DrmSpring2</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>9.89</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>6</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>DrumString</name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.57</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>8</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Efem Toms </name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.62</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>8.24</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>El.Snare *</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>10.81</Ratio3>
+ <Ratio4>3.56</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>14</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>1</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>El.Snare2*</name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>21.98</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FM Hi-Hats</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.06</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>2.06</Ratio3>
+ <Ratio4>0.56</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>3</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>34</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>3</ReverbRate>
+ </function>
+ <name>Hand Drum </name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.87</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>26</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hand Drum1</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>26</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hand Drum2</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>85</PModDepth>
+ <AModDepth>70</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>16.77</Ratio1>
+ <Ratio2>12.5</Ratio2>
+ <Ratio3>11.67</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>59</FixRange1>
+ <FixRange2>104</FixRange2>
+ <FixRange3>108</FixRange3>
+ <FixRange4>111</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&quot;Hi!&quot; Hat!</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>7</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>21.98</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hi-Hat *</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5.19</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7.85</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>21</AR2>
+ <AR3>27</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>14</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>0</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Java Jive </name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5.62</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>18</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>80</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>KickDrum *</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>19</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>29</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Log Drum.1</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>1.41</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>19</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Log Drum.2</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>4</Speed>
+ <Delay>0</Delay>
+ <PModDepth>69</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.98</Ratio2>
+ <Ratio3>0.68</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>4</LS2>
+ <LS3>0</LS3>
+ <LS4>33</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>42</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MiamiToms*</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>24</AR2>
+ <AR3>29</AR3>
+ <AR4>27</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>24</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>21</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>15</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>40</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>46</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..3</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>10.38</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>56</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..4</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>16.96</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>22</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>10</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..5</name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2.82</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>0</AR2>
+ <AR3>28</AR3>
+ <AR4>15</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..6</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..7</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1.41</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..8</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1.41</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>48</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm..9</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>2.82</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>24</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>8</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>68</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>48</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntDrm.10</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>38</Speed>
+ <Delay>28</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>15</AR2>
+ <AR3>25</AR3>
+ <AR4>18</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>2</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntEchoDr</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.73</Ratio1>
+ <Ratio2>0.87</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Percussive</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.73</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Percussive*</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>2</Speed>
+ <Delay>0</Delay>
+ <PModDepth>95</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>0.79</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Simmons1 *</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>2</Speed>
+ <Delay>0</Delay>
+ <PModDepth>95</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>0.79</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>1</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Simmons2 *</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>25</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>3</D1L4>
+ <D2R1>17</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>9</RR1>
+ <RR2>11</RR2>
+ <RR3>11</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Skankin&apos; </name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6.86</Ratio1>
+ <Ratio2>2.62</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>18</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>26</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare *</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>22.81</Ratio1>
+ <Ratio2>0.93</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>21.78</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>19</FixRange1>
+ <FixRange2>23</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>126</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare 1</name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>48</PModDepth>
+ <AModDepth>15</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>14.22</Ratio1>
+ <Ratio2>14.22</Ratio2>
+ <Ratio3>16.87</Ratio3>
+ <Ratio4>13.46</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>20</FixRange3>
+ <FixRange4>73</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare 2</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.62</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>12</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare 1 </name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.78</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>112</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Snare 2 </name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>96</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare....1</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare....2</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>33</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare....3</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>25.95</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>67</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>20</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Snare....4</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>12.06</Ratio1>
+ <Ratio2>9.81</Ratio2>
+ <Ratio3>0.62</Ratio3>
+ <Ratio4>9.87</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>17</FixRange1>
+ <FixRange2>21</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>22</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SnareDrm.*</name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>36</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.78</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>112</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>0</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>46</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>Snare&amp;Tom </name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>15.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>19</AR2>
+ <AR3>21</AR3>
+ <AR4>20</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>14</D2R3>
+ <D2R4>16</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>39</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>26</LS2>
+ <LS3>0</LS3>
+ <LS4>26</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Steel Drum</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>16</Speed>
+ <Delay>0</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>8.98</Ratio3>
+ <Ratio4>2.02</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>13</AR2>
+ <AR3>14</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>64</OUT2>
+ <OUT3>40</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>0</LS3>
+ <LS4>26</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelDrum </name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelDrum1</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>21</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelDrum2</name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>20</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelDrum3</name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>20</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>47</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelDrum4</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.93</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>23</AR3>
+ <AR4>25</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>25</PR2>
+ <PR3>25</PR3>
+ <PL1>21</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>50</LS3>
+ <LS4>75</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SyBon </name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.93</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>23</AR3>
+ <AR4>25</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>6</RR2>
+ <RR3>4</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>25</PR2>
+ <PR3>25</PR3>
+ <PL1>21</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>30</LS2>
+ <LS3>50</LS3>
+ <LS4>75</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SyBon*</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>63</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>6</Ratio3>
+ <Ratio4>4.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.1</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>63</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.2</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>63</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.3</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>30</Speed>
+ <Delay>99</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.4</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>30</Speed>
+ <Delay>99</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>14.13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>15</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>92</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.5</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.6</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.7</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>25</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.8</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>23</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>42</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm.9</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>8</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>21.2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm10</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1.41</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>26</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>74</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm11</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>36</Speed>
+ <Delay>28</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>77</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.73</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>18.37</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>6</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>25</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>45</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm12</name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>63</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm13</name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>63</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>24</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>97</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm14</name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>14</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>11</RR1>
+ <RR2>11</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>45</LS2>
+ <LS3>67</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm15</name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.87</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>20</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>30</D1R4>
+ <D1L1>7</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>7</RR1>
+ <RR2>15</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>62</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>98</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SynthDrm16</name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>44</Delay>
+ <PModDepth>20</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>28</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>2</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>30</LS1>
+ <LS2>30</LS2>
+ <LS3>50</LS3>
+ <LS4>50</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>50</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tibet Drum</name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timbale..1</name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>11</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>1</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timbale..2</name>
+ <prog>80</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>2</Speed>
+ <Delay>0</Delay>
+ <PModDepth>95</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.88</Ratio2>
+ <Ratio3>14.45</Ratio3>
+ <Ratio4>1.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>32</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>52</FixRange3>
+ <FixRange4>18</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>50</LS3>
+ <LS4>19</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timbales *</name>
+ <prog>81</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>7</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.62</Ratio2>
+ <Ratio3>0.88</Ratio3>
+ <Ratio4>0.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>17</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>80</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timpani *</name>
+ <prog>82</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>22.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timpani </name>
+ <prog>83</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>55</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timpani..1</name>
+ <prog>84</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>79</OUT3>
+ <OUT4>61</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Timpani..2</name>
+ <prog>85</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>8.24</Ratio2>
+ <Ratio3>11.46</Ratio3>
+ <Ratio4>2.31</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>12</FixRange2>
+ <FixRange3>26</FixRange3>
+ <FixRange4>13</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>23</PR2>
+ <PR3>35</PR3>
+ <PL1>46</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom 1</name>
+ <prog>86</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>37</PR2>
+ <PR3>38</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom 2</name>
+ <prog>87</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>8.65</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>37</PR2>
+ <PR3>38</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom 3</name>
+ <prog>88</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.62</Ratio2>
+ <Ratio3>0.62</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>37</PR2>
+ <PR3>38</PR3>
+ <PL1>44</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom 4</name>
+ <prog>89</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.62</Ratio2>
+ <Ratio3>0.62</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>24</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>37</PR2>
+ <PR3>38</PR3>
+ <PL1>44</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>19</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom 4*</name>
+ <prog>90</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.78</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>23</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>0</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom Tom..1</name>
+ <prog>91</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.78</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>1.73</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>26</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom Tom..2</name>
+ <prog>92</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>0.78</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>21</AR2>
+ <AR3>24</AR3>
+ <AR4>24</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>27</D2R2>
+ <D2R3>16</D2R3>
+ <D2R4>26</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom Tom..3</name>
+ <prog>93</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>13</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>31</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom Tom..4</name>
+ <prog>94</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>7</Speed>
+ <Delay>0</Delay>
+ <PModDepth>81</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>64</PR2>
+ <PR3>67</PR3>
+ <PL1>22</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>59</LS3>
+ <LS4>53</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tom-Pany </name>
+ <prog>95</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Drum </name>
+ <prog>96</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>70</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wood Drum*</name>
+ <prog>97</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-1</DET1>
+ <DET2>-2</DET2>
+ <DET3>0</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>16</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>63</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>XyloSpring</name>
+ <prog>98</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>255</FixRange1>
+ <FixRange2>255</FixRange2>
+ <FixRange3>255</FixRange3>
+ <FixRange4>255</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>11</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>93</PR1>
+ <PR2>72</PR2>
+ <PR3>99</PR3>
+ <PL1>67</PL1>
+ <PL2>6</PL2>
+ <PL3>0</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>0</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>SUS</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>0</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bass Drum3</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Other</subcategoryName>
+ <lbank>6</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>81</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>12</Ratio1>
+ <Ratio2>12</Ratio2>
+ <Ratio3>20.41</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>80</FixRange1>
+ <FixRange2>80</FixRange2>
+ <FixRange3>64</FixRange3>
+ <FixRange4>80</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cabassa *</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>89</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>22.49</Ratio1>
+ <Ratio2>22.81</Ratio2>
+ <Ratio3>12</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>80</FixRange1>
+ <FixRange2>83</FixRange2>
+ <FixRange3>96</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Maracas *</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>7.02</Ratio2>
+ <Ratio3>7</Ratio3>
+ <Ratio4>13</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>77</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>10</LS2>
+ <LS3>12</LS3>
+ <LS4>28</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Metalimba </name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7.85</Ratio1>
+ <Ratio2>12.56</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1.31</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>105</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>53</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>69</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tambourin*</name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>NOISES</categoryName>
+ <hbank>6</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Noises</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>2</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Airplane.1</name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2.82</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2.82</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>19</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>17</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>2</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Airplane.2</name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>55</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>40</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>27.57</Ratio1>
+ <Ratio2>5.19</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>47</FixRange1>
+ <FixRange2>96</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>46</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Alarm Call</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>3</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2.06</Ratio1>
+ <Ratio2>1.66</Ratio2>
+ <Ratio3>1.67</Ratio3>
+ <Ratio4>2.06</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>13</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>17</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>25</AR2>
+ <AR3>15</AR3>
+ <AR4>30</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>8</LS2>
+ <LS3>6</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>3</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>43</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Alien 3 </name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>50</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>3</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>10</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>44</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>40</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Alien Chat</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.62</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>8.24</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>29</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>87</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Artofnoiz*</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>5.19</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>12</AR2>
+ <AR3>10</AR3>
+ <AR4>7</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>13</RR1>
+ <RR2>13</RR2>
+ <RR3>13</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AutoDecent</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>64</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>6.92</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>18</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>48</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AutoStorm1</name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>80</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>17</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>6.92</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>18</AR2>
+ <AR3>24</AR3>
+ <AR4>15</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>51</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>AutoStorm2</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>89</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>35</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>11</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Big Belch </name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>80</PModDepth>
+ <AModDepth>94</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>0.71</Ratio2>
+ <Ratio3>25.95</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>14</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>40</LS2>
+ <LS3>10</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>51</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Birds </name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>4.24</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>-2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>25</AR2>
+ <AR3>19</AR3>
+ <AR4>30</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>35</LS2>
+ <LS3>0</LS3>
+ <LS4>9</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>6</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>61</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>29</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BlendOrgan</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>2</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>21</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Blow Up </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>17</Speed>
+ <Delay>0</Delay>
+ <PModDepth>73</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>20.41</Ratio3>
+ <Ratio4>9.42</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>28</D2R3>
+ <D2R4>27</D2R4>
+ <RR1>13</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Boingggggg</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>52</Speed>
+ <Delay>0</Delay>
+ <PModDepth>55</PModDepth>
+ <AModDepth>73</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>16.96</Ratio2>
+ <Ratio3>25.95</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>2</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BrokWindow</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>50</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>67</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>0.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>24</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>23</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>65</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Bubbly </name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>19</Speed>
+ <Delay>70</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>14.22</Ratio1>
+ <Ratio2>19.21</Ratio2>
+ <Ratio3>11.13</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>17</FixRange1>
+ <FixRange2>26</FixRange2>
+ <FixRange3>23</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>95</OUT2>
+ <OUT3>58</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Busy *</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>15</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Busy.....1</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>15</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Busy.....2</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>84</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.87</Ratio1>
+ <Ratio2>7.85</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>28</AR2>
+ <AR3>28</AR3>
+ <AR4>26</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>16</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>17</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Choo Choo </name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>42</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chopper..1</name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>51</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.78</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Chopper..2</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>19.47</Ratio1>
+ <Ratio2>13.12</Ratio2>
+ <Ratio3>17.17</Ratio3>
+ <Ratio4>15.11</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>93</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>95</FixRange3>
+ <FixRange4>18</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>31</AR2>
+ <AR3>28</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>90</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cricket *</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>49</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.41</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>13</AR1>
+ <AR2>13</AR2>
+ <AR3>13</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>54</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Diving Fly</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>85</Speed>
+ <Delay>0</Delay>
+ <PModDepth>45</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>25.95</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>56</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Dynamite </name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>15</AR2>
+ <AR3>19</AR3>
+ <AR4>15</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>21</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EarthQuake</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.83</Ratio2>
+ <Ratio3>3.18</Ratio3>
+ <Ratio4>3.62</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>18</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>23</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>18</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>3</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Earthquake</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>12</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.83</Ratio2>
+ <Ratio3>3.18</Ratio3>
+ <Ratio4>4.81</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>11</FixRange3>
+ <FixRange4>21</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>23</AR1>
+ <AR2>21</AR2>
+ <AR3>16</AR3>
+ <AR4>23</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>18</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>3</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Earthquake*</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>13</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>43</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>0</LS2>
+ <LS3>10</LS3>
+ <LS4>35</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>40</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Eng Siren </name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>18</AR2>
+ <AR3>18</AR3>
+ <AR4>27</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>9</D2R2>
+ <D2R3>11</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>0</LS2>
+ <LS3>75</LS3>
+ <LS4>77</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Excuse Me </name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.68</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1.12</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>11</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>19</AR2>
+ <AR3>13</AR3>
+ <AR4>31</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>81</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-10</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Exo/Bird *</name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>71</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>16</AR2>
+ <AR3>16</AR3>
+ <AR4>16</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>44</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Explosion </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>57</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FaucetDrip</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>20</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.25</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>73</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>5</LS3>
+ <LS4>48</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>54</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Feedback *</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>57</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>67</OUT3>
+ <OUT4>73</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>50</LS2>
+ <LS3>59</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>99</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>45</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Flight Sim</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.48</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>26</AR2>
+ <AR3>15</AR3>
+ <AR4>15</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>26</D1R2>
+ <D1R3>26</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>7</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>54</LS2>
+ <LS3>19</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gizmo *</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1.25</Ratio3>
+ <Ratio4>1.75</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>20</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>75</OUT2>
+ <OUT3>78</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GrandPrix*</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>97</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>52</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>15</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>15</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>76</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GuiRoach::</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>39</Speed>
+ <Delay>54</Delay>
+ <PModDepth>27</PModDepth>
+ <AModDepth>68</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3.46</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>48</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>2</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>2</AR1>
+ <AR2>25</AR2>
+ <AR3>1</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>16</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V48</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>24</LS3>
+ <LS4>71</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gurgle </name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>16.96</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>22</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>48</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hard Rain </name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2.82</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>9</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>81</OUT1>
+ <OUT2>19</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Harley Hog</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>0</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>21</AR2>
+ <AR3>7</AR3>
+ <AR4>31</AR4>
+ <D1R1>19</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>18</D2R1>
+ <D2R2>18</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>24</D2R4>
+ <RR1>8</RR1>
+ <RR2>8</RR2>
+ <RR3>8</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Heart Beat</name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>51</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>91</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>13.84</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>14</AR3>
+ <AR4>13</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>1</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>10</LS1>
+ <LS2>40</LS2>
+ <LS3>10</LS3>
+ <LS4>40</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Helicopter</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>56</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>50</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>10</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hi Alarm </name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>58</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>80</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>12.72</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>5.19</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>21</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>16</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>17</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>15</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>98</OUT1>
+ <OUT2>51</OUT2>
+ <OUT3>88</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>46</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Hole in 1 </name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>47</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>8.48</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>8.48</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>7</AR2>
+ <AR3>31</AR3>
+ <AR4>9</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>15</RR1>
+ <RR2>4</RR2>
+ <RR3>15</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>63</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>House Fly </name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>42</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3.46</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4.71</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>18</AR2>
+ <AR3>15</AR3>
+ <AR4>18</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>9</RR3>
+ <RR4>12</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>82</OUT3>
+ <OUT4>51</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>HowlAtMoon</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>67</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>74</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>1</EBS3>
+ <EBS4>3</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4.32</Ratio1>
+ <Ratio2>4.75</Ratio2>
+ <Ratio3>19.03</Ratio3>
+ <Ratio4>16.3</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>24</FixRange1>
+ <FixRange2>44</FixRange2>
+ <FixRange3>72</FixRange3>
+ <FixRange4>41</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>2</AR2>
+ <AR3>12</AR3>
+ <AR4>8</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>13</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>14</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>23</D2R4>
+ <RR1>2</RR1>
+ <RR2>8</RR2>
+ <RR3>13</RR3>
+ <RR4>7</RR4>
+ <SHFT1>V12</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>V12</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>0</PR1>
+ <PR2>0</PR2>
+ <PR3>0</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>30</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>75</OUT3>
+ <OUT4>9</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>44</LS1>
+ <LS2>37</LS2>
+ <LS3>12</LS3>
+ <LS4>93</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>11</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>38</PortaTime>
+ <FSW>SUS</FSW>
+ <FCVolume>81</FCVolume>
+ <FCPitch>21</FCPitch>
+ <FCAmplitude>28</FCAmplitude>
+ <MWPitch>41</MWPitch>
+ <MWAmplitude>31</MWAmplitude>
+ <BCPitch>81</BCPitch>
+ <BCAmplitude>47</BCAmplitude>
+ <BCPitchBias>37</BCPitchBias>
+ <BCEGBias>27</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>Lil&apos;Birdie</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>56</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.73</Ratio1>
+ <Ratio2>7.85</Ratio2>
+ <Ratio3>1.73</Ratio3>
+ <Ratio4>0.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Lo Alarm </name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>24</Speed>
+ <Delay>6</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2.16</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>2</RR2>
+ <RR3>11</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V12</SHFT2>
+ <SHFT3>V48</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>58</OUT2>
+ <OUT3>68</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>21</LS2>
+ <LS3>12</LS3>
+ <LS4>15</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MT:Apr&apos;88 </name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>64</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>31</AR3>
+ <AR4>26</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>18</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MachineGun</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MalibuNite</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>33</Speed>
+ <Delay>0</Delay>
+ <PModDepth>53</PModDepth>
+ <AModDepth>28</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.62</Ratio1>
+ <Ratio2>3.93</Ratio2>
+ <Ratio3>11.36</Ratio3>
+ <Ratio4>0.93</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>10</FixRange1>
+ <FixRange2>23</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>15</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>1</AR1>
+ <AR2>1</AR2>
+ <AR3>1</AR3>
+ <AR4>7</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V24</SHFT2>
+ <SHFT3>V24</SHFT3>
+ <SHFT4>V12</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-4</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>30</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>1</ReverbRate>
+ </function>
+ <name>Med Musak </name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.68</Ratio2>
+ <Ratio3>3.14</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>11</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>1</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>14</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>15</RR1>
+ <RR2>9</RR2>
+ <RR3>15</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>62</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>12</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Mouse-Tom </name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.57</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>20</AR2>
+ <AR3>23</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>19</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>15</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-8</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Mr.Mr.Noiz</name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.57</Ratio1>
+ <Ratio2>1.41</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>30</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>20</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>19</D2R1>
+ <D2R2>19</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>15</RR1>
+ <RR2>2</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>11</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Noise Shot</name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>79</Speed>
+ <Delay>46</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>8</AR2>
+ <AR3>11</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>9</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ofthewall*</name>
+ <prog>56</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>14</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>7</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3.5</Ratio1>
+ <Ratio2>7.75</Ratio2>
+ <Ratio3>3.68</Ratio3>
+ <Ratio4>10.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>120</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>19</FixRange3>
+ <FixRange4>64</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>3</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>99</LS2>
+ <LS3>90</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-9</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>55</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OldClock </name>
+ <prog>57</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>16</Speed>
+ <Delay>0</Delay>
+ <PModDepth>89</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>15</AR4>
+ <D1R1>2</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>13</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>60</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OutOfTune </name>
+ <prog>58</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>10</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>2</AR1>
+ <AR2>31</AR2>
+ <AR3>2</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>1</RR2>
+ <RR3>6</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>74</PR1>
+ <PR2>2</PR2>
+ <PR3>27</PR3>
+ <PL1>0</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Passing By</name>
+ <prog>59</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>16</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>43</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pull Over </name>
+ <prog>60</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>46</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>16.96</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>25.95</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W7</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>29</AR1>
+ <AR2>13</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>R2-D2 *</name>
+ <prog>61</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>60</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>53</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Racing Car</name>
+ <prog>62</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>50</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>86</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>16.87</Ratio1>
+ <Ratio2>3.67</Ratio2>
+ <Ratio3>19.56</Ratio3>
+ <Ratio4>13.56</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>20</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>62</FixRange3>
+ <FixRange4>25</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>21</AR2>
+ <AR3>11</AR3>
+ <AR4>3</AR4>
+ <D1R1>24</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>5</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>2</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>81</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RADIATION?</name>
+ <prog>63</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>85</Speed>
+ <Delay>0</Delay>
+ <PModDepth>45</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.71</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.46</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>44</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Rain Storm</name>
+ <prog>64</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>81</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>10.59</Ratio1>
+ <Ratio2>1.81</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>18.77</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>66</FixRange1>
+ <FixRange2>21</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>85</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>18</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>6</RR2>
+ <RR3>5</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>0</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Refs.Wisl*</name>
+ <prog>65</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>41</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>19</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>66</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Repeater.1</name>
+ <prog>66</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>41</Speed>
+ <Delay>61</Delay>
+ <PModDepth>84</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>19</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>24</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>55</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Repeater.2</name>
+ <prog>67</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>51</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>22</AR2>
+ <AR3>22</AR3>
+ <AR4>19</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>10</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>89</OUT1>
+ <OUT2>73</OUT2>
+ <OUT3>97</OUT3>
+ <OUT4>88</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Repeater.3</name>
+ <prog>68</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>64</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>1</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>21</AR3>
+ <AR4>31</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Repeater.4</name>
+ <prog>69</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>3</AR2>
+ <AR3>19</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Repeater.5</name>
+ <prog>70</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>88</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>50</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>8.48</Ratio3>
+ <Ratio4>8.48</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>52</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ringing..1</name>
+ <prog>71</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>59</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>60</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>10</Ratio1>
+ <Ratio2>10</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>2</RR2>
+ <RR3>2</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>57</OUT3>
+ <OUT4>28</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ringing..2</name>
+ <prog>72</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>72</PModDepth>
+ <AModDepth>60</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>12</AR2>
+ <AR3>31</AR3>
+ <AR4>10</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>6</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RiseDecent</name>
+ <prog>73</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>3</PortaTime>
+ <FSW>SUS</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand1</name>
+ <prog>74</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>28</Delay>
+ <PModDepth>19</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>17</AR2>
+ <AR3>18</AR3>
+ <AR4>12</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>4</D1R4>
+ <D1L1>9</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>53</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>54</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>8</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand2</name>
+ <prog>75</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand3</name>
+ <prog>76</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>0</RR2>
+ <RR3>0</RR3>
+ <RR4>0</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>66</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>33</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand4</name>
+ <prog>77</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>0</RR2>
+ <RR3>0</RR3>
+ <RR4>0</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>50</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>33</LS2>
+ <LS3>27</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand5</name>
+ <prog>78</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand6</name>
+ <prog>79</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>23</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>92</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>MONO</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>3</PortaTime>
+ <FSW>SUS</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand7</name>
+ <prog>80</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>82</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand8</name>
+ <prog>81</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>9</Delay>
+ <PModDepth>4</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>28</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>1</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>95</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>14</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>RubberBand9</name>
+ <prog>82</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>88</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>10.38</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>85</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SCM Writer</name>
+ <prog>83</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>82</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.74</Ratio2>
+ <Ratio3>5.4</Ratio3>
+ <Ratio4>8.93</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>20</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>23</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>29</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>13</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>3</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>93</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Saron Gam </name>
+ <prog>84</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>10.59</Ratio2>
+ <Ratio3>22.92</Ratio3>
+ <Ratio4>11.02</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>52</FixRange3>
+ <FixRange4>70</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>3</AR1>
+ <AR2>23</AR2>
+ <AR3>23</AR3>
+ <AR4>16</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>15</RR1>
+ <RR2>13</RR2>
+ <RR3>10</RR3>
+ <RR4>13</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Shore Wave</name>
+ <prog>85</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>10.59</Ratio2>
+ <Ratio3>22.92</Ratio3>
+ <Ratio4>11.02</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>52</FixRange3>
+ <FixRange4>70</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>3</AR1>
+ <AR2>23</AR2>
+ <AR3>23</AR3>
+ <AR4>16</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>7</RR2>
+ <RR3>4</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Shore Wv2 </name>
+ <prog>86</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>13</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>14</AR2>
+ <AR3>16</AR3>
+ <AR4>14</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>43</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sick Siren</name>
+ <prog>87</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>42</PModDepth>
+ <AModDepth>60</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.32</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1.23</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>118</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>15</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>99</LS1>
+ <LS2>2</LS2>
+ <LS3>0</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space BUG?</name>
+ <prog>88</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>10</Speed>
+ <Delay>8</Delay>
+ <PModDepth>45</PModDepth>
+ <AModDepth>60</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>0.81</Ratio3>
+ <Ratio4>1.37</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>13</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>14</AR2>
+ <AR3>10</AR3>
+ <AR4>22</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>8</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>4</RR1>
+ <RR2>2</RR2>
+ <RR3>4</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>94</PR1>
+ <PR2>99</PR2>
+ <PR3>18</PR3>
+ <PL1>21</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>3</LS2>
+ <LS3>0</LS3>
+ <LS4>3</LS4>
+ </scaling>
+ <function>
+ <Transpose>3</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space Gong</name>
+ <prog>89</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>57</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>28</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>31</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>10</RR1>
+ <RR2>10</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space Gun </name>
+ <prog>90</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SIXTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>50</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.57</Ratio2>
+ <Ratio3>2.82</Ratio3>
+ <Ratio4>3.14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>1</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>6</AR2>
+ <AR3>11</AR3>
+ <AR4>5</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>2</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>1</LS1>
+ <LS2>2</LS2>
+ <LS3>3</LS3>
+ <LS4>96</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>60</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space Talk</name>
+ <prog>91</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>75</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>25</AR2>
+ <AR3>25</AR3>
+ <AR4>25</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>15</D2R2>
+ <D2R3>15</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>2</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>98</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>5</LS2>
+ <LS3>5</LS3>
+ <LS4>5</LS4>
+ </scaling>
+ <function>
+ <Transpose>6</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space Vibe</name>
+ <prog>92</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>33</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>6</AR1>
+ <AR2>4</AR2>
+ <AR3>6</AR3>
+ <AR4>4</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space....1</name>
+ <prog>93</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>47</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>6</Ratio1>
+ <Ratio2>9</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>3</AR2>
+ <AR3>9</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space....2</name>
+ <prog>94</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>43</Speed>
+ <Delay>65</Delay>
+ <PModDepth>11</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3.14</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>1</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>28</AR1>
+ <AR2>4</AR2>
+ <AR3>21</AR3>
+ <AR4>25</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>21</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>10</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space....3</name>
+ <prog>95</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>6</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>29</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>21</D2R3>
+ <D2R4>21</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Space....4</name>
+ <prog>96</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>9</RR2>
+ <RR3>10</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpaceBirds</name>
+ <prog>97</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>13</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>30</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>6.28</Ratio3>
+ <Ratio4>23.55</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>5</AR1>
+ <AR2>20</AR2>
+ <AR3>21</AR3>
+ <AR4>4</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>6</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>36</LS2>
+ <LS3>0</LS3>
+ <LS4>34</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>Spc Midiot</name>
+ <prog>98</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>25</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>3.06</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>17</AR1>
+ <AR2>20</AR2>
+ <AR3>22</AR3>
+ <AR4>20</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>8</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>82</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>43</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SteelPan *</name>
+ <prog>99</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>5.19</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>20</AR2>
+ <AR3>20</AR3>
+ <AR4>18</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>5</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>1</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>96</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Storm Wind</name>
+ <prog>100</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.19</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>17</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>18</AR2>
+ <AR3>23</AR3>
+ <AR4>18</AR4>
+ <D1R1>21</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>10</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>83</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>51</OUT3>
+ <OUT4>58</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>3</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>2</LS2>
+ <LS3>0</LS3>
+ <LS4>6</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>TAP TAP&lt;&lt;&lt;</name>
+ <prog>101</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>58</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>12.5</Ratio1>
+ <Ratio2>13.31</Ratio2>
+ <Ratio3>16.28</Ratio3>
+ <Ratio4>16.68</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>104</FixRange1>
+ <FixRange2>69</FixRange2>
+ <FixRange3>54</FixRange3>
+ <FixRange4>74</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>72</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Telephone*</name>
+ <prog>102</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>35</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>18.24</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>79</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W7</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>18</AR1>
+ <AR2>31</AR2>
+ <AR3>10</AR3>
+ <AR4>12</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>3</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>36</PR2>
+ <PR3>17</PR3>
+ <PL1>37</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>84</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>52</OUT3>
+ <OUT4>46</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>42</LS3>
+ <LS4>32</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Terror! </name>
+ <prog>103</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>71</Speed>
+ <Delay>0</Delay>
+ <PModDepth>60</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>0.71</Ratio3>
+ <Ratio4>0.78</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>14</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Traffic..1</name>
+ <prog>104</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>95</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>3</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>2</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>50</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>72</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>14</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Traffic..2</name>
+ <prog>105</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>12</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1.57</Ratio3>
+ <Ratio4>1.57</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>15</AR2>
+ <AR3>31</AR3>
+ <AR4>21</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>59</OUT2>
+ <OUT3>60</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Tug Boat </name>
+ <prog>106</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>74</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>20.8</Ratio1>
+ <Ratio2>12.12</Ratio2>
+ <Ratio3>8.24</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>20</FixRange1>
+ <FixRange2>66</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>17</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>3</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Typwriter*</name>
+ <prog>107</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>16</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>10</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>54</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>UFO Decent</name>
+ <prog>108</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>SAWUP</Wave>
+ <Speed>68</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>7</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>71</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name> Uzzie </name>
+ <prog>109</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>67</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>99</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>8.63</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>8</AR2>
+ <AR3>6</AR3>
+ <AR4>6</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>68</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Water *</name>
+ <prog>110</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>6</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Waves....1</name>
+ <prog>111</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>4</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>90</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>4</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Waves....2</name>
+ <prog>112</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>88</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Waves....3</name>
+ <prog>113</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>5</Speed>
+ <Delay>0</Delay>
+ <PModDepth>66</PModDepth>
+ <AModDepth>85</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>13.84</Ratio2>
+ <Ratio3>18.84</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>10</AR3>
+ <AR4>30</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>1</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Waves....4</name>
+ <prog>114</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIRST</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>9</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>7</RR1>
+ <RR2>1</RR2>
+ <RR3>3</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Waves....5</name>
+ <prog>115</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>7</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.41</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>13</Ratio3>
+ <Ratio4>10.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>64</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-1</DET2>
+ <DET3>2</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>6</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>19</D2R2>
+ <D2R3>19</D2R3>
+ <D2R4>19</D2R4>
+ <RR1>2</RR1>
+ <RR2>1</RR2>
+ <RR3>1</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>0</OUT2>
+ <OUT3>64</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>83</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Wind *</name>
+ <prog>116</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>16</D1R2>
+ <D1R3>4</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>12</RR1>
+ <RR2>4</RR2>
+ <RR3>10</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>69</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>&gt;&gt;WOW&lt;&lt; </name>
+ <prog>117</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SECOND</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>3.46</Ratio3>
+ <Ratio4>17.27</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>20</D1R2>
+ <D1R3>11</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>16</D2R2>
+ <D2R3>18</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>1</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>7</ReverbRate>
+ </function>
+ <name>WaterGlass</name>
+ <prog>118</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>20.5</Ratio2>
+ <Ratio3>8.81</Ratio3>
+ <Ratio4>22.81</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>81</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>83</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>29</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>7</RR1>
+ <RR2>9</RR2>
+ <RR3>7</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WeirdAxe *</name>
+ <prog>119</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>25.95</Ratio1>
+ <Ratio2>10.59</Ratio2>
+ <Ratio3>22.92</Ratio3>
+ <Ratio4>11.02</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>yes</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>52</FixRange3>
+ <FixRange4>70</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>11</RR1>
+ <RR2>10</RR2>
+ <RR3>12</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>90</OUT1>
+ <OUT2>86</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>White Blow</name>
+ <prog>120</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ <deicsOnzeCategory version="1.0">
+ <categoryName>OTHER</categoryName>
+ <hbank>7</hbank>
+ <deicsOnzeSubcategory version="1.0">
+ <subcategoryName>Other</subcategoryName>
+ <lbank>0</lbank>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>17</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>7</EBS1>
+ <EBS2>3</EBS2>
+ <EBS3>3</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>13</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>-2</DET2>
+ <DET3>1</DET3>
+ <DET4>1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>70</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>120 VAC </name>
+ <prog>0</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>9</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>5.81</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>21</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W7</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-2</DET1>
+ <DET2>0</DET2>
+ <DET3>2</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>40</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>15</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Amazon </name>
+ <prog>1</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>1</Delay>
+ <PModDepth>22</PModDepth>
+ <AModDepth>12</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>2</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6.16</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>31</AR2>
+ <AR3>11</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>9</LS1>
+ <LS2>10</LS2>
+ <LS3>9</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>55</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ArcoGlass*</name>
+ <prog>2</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.87</Ratio1>
+ <Ratio2>8.48</Ratio2>
+ <Ratio3>0.87</Ratio3>
+ <Ratio4>9.89</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>11</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>5</RR1>
+ <RR2>0</RR2>
+ <RR3>7</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>80</OUT1>
+ <OUT2>47</OUT2>
+ <OUT3>72</OUT3>
+ <OUT4>0</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Aviary </name>
+ <prog>3</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>24</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>11</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>64</LS2>
+ <LS3>39</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>99</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>BC1 GlassV</name>
+ <prog>4</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.49</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>9</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>25</D1R2>
+ <D1R3>17</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>9</D1L3>
+ <D1L4>13</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>17</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>9</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>85</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>16</MWPitch>
+ <MWAmplitude>46</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Botl.Shff*</name>
+ <prog>5</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>20.99</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>30</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>10</RR1>
+ <RR2>11</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>61</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>83</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>20</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Cairo *</name>
+ <prog>6</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>1</EBS3>
+ <EBS4>3</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>20.86</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Celestial </name>
+ <prog>7</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>10</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>3</DET2>
+ <DET3>-1</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>8</D1L3>
+ <D1L4>8</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>4</RR1>
+ <RR2>3</RR2>
+ <RR3>4</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>91</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ChimeStrig</name>
+ <prog>8</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>42</Speed>
+ <Delay>72</Delay>
+ <PModDepth>1</PModDepth>
+ <AModDepth>75</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>4</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>82</OUT2>
+ <OUT3>83</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>10</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Deep Space</name>
+ <prog>9</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>3</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>11</AR2>
+ <AR3>10</AR3>
+ <AR4>12</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>EleChamber</name>
+ <prog>10</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>20</Speed>
+ <Delay>79</Delay>
+ <PModDepth>30</PModDepth>
+ <AModDepth>2</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>10</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Enc3rdKind</name>
+ <prog>11</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>50</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>9</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>6</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>20</AR1>
+ <AR2>31</AR2>
+ <AR3>20</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>3</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>86</OUT1>
+ <OUT2>60</OUT2>
+ <OUT3>86</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>0</LS2>
+ <LS3>30</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Etherial </name>
+ <prog>12</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.51</Ratio2>
+ <Ratio3>10.22</Ratio3>
+ <Ratio4>1.58</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>-1</DET1>
+ <DET2>1</DET2>
+ <DET3>2</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>24</AR4>
+ <D1R1>20</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>7</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>21</D2R3>
+ <D2R4>22</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>15</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>95</OUT1>
+ <OUT2>69</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>5</LS1>
+ <LS2>27</LS2>
+ <LS3>3</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>19</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>6</ReverbRate>
+ </function>
+ <name>Floot Base</name>
+ <prog>13</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>24</AR2>
+ <AR3>15</AR3>
+ <AR4>22</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>8</RR3>
+ <RR4>10</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>91</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>57</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>91</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>0</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Full Ranks</name>
+ <prog>14</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>97</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>20</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>FuzzyPad </name>
+ <prog>15</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>82</Speed>
+ <Delay>0</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2.64</Ratio2>
+ <Ratio3>5.12</Ratio3>
+ <Ratio4>8.87</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>19</FixRange2>
+ <FixRange3>10</FixRange3>
+ <FixRange4>22</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>24</AR3>
+ <AR4>21</AR4>
+ <D1R1>18</D1R1>
+ <D1R2>14</D1R2>
+ <D1R3>19</D1R3>
+ <D1R4>19</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>8</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>74</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Gender Gam</name>
+ <prog>16</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>6.92</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>112</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>1</DET1>
+ <DET2>-1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>15</AR1>
+ <AR2>31</AR2>
+ <AR3>15</AR3>
+ <AR4>28</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>3</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GlassHarp1</name>
+ <prog>17</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>1</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>24</Delay>
+ <PModDepth>3</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>7</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>5</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>8</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>12</AR2>
+ <AR3>11</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>10</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>13</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>92</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>64</LS2>
+ <LS3>39</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>7</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>1</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GlassHarp2</name>
+ <prog>18</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>5</Ratio1>
+ <Ratio2>15</Ratio2>
+ <Ratio3>5</Ratio3>
+ <Ratio4>14.43</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>yes</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>119</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W3</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>2</DET2>
+ <DET3>3</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>10</AR1>
+ <AR2>7</AR2>
+ <AR3>12</AR3>
+ <AR4>12</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>9</D1L2>
+ <D1L3>3</D1L3>
+ <D1L4>10</D1L4>
+ <D2R1>5</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>39</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>GlassHarp3</name>
+ <prog>19</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>14</Delay>
+ <PModDepth>28</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>120</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>65</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>11</AR1>
+ <AR2>10</AR2>
+ <AR3>11</AR3>
+ <AR4>10</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>2</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>4</RR1>
+ <RR2>5</RR2>
+ <RR3>4</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>79</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>39</LS2>
+ <LS3>0</LS3>
+ <LS4>39</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>4</ReverbRate>
+ </function>
+ <name>HarmoPad </name>
+ <prog>20</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>2</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>32</Speed>
+ <Delay>59</Delay>
+ <PModDepth>2</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>0</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>0.5</Ratio1>
+ <Ratio2>0.5</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>9</AR2>
+ <AR3>22</AR3>
+ <AR4>9</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>21</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>21</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>4</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Impression</name>
+ <prog>21</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>2</Delay>
+ <PModDepth>13</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-2</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>18</AR2>
+ <AR3>21</AR3>
+ <AR4>18</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>4</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>9</RR1>
+ <RR2>4</RR2>
+ <RR3>9</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>77</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>84</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jump.....1</name>
+ <prog>22</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>38</Speed>
+ <Delay>33</Delay>
+ <PModDepth>32</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>18</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>22</D1R2>
+ <D1R3>22</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>24</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>9</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>87</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>3</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Jump.....2</name>
+ <prog>23</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>8.63</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>89</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>5</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>KrstlChoir</name>
+ <prog>24</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>1</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.5</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>9.16</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>16</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W3</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W3</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>11</AR2>
+ <AR3>15</AR3>
+ <AR4>31</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>17</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>79</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>KrystlPad1</name>
+ <prog>25</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>9</Delay>
+ <PModDepth>7</PModDepth>
+ <AModDepth>31</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>2.99</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3.08</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>10</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>11</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>12</AR1>
+ <AR2>19</AR2>
+ <AR3>28</AR3>
+ <AR4>12</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>1</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>70</OUT3>
+ <OUT4>63</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>31</MWAmplitude>
+ <BCPitch>16</BCPitch>
+ <BCAmplitude>30</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>MilkBottle</name>
+ <prog>26</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>24</Speed>
+ <Delay>57</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>25</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>10</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>5</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>66</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Movement.1</name>
+ <prog>27</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>37</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>-1</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>11</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>9</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>62</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>0</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Movement.2</name>
+ <prog>28</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>4</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>15.89</Ratio1>
+ <Ratio2>17.17</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>yes</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>34</FixRange1>
+ <FixRange2>79</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W2</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>22</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>28</D1R3>
+ <D1R4>26</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>9</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>31</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>1</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>4</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>82</OUT1>
+ <OUT2>94</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Musicbox *</name>
+ <prog>29</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>1</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>1</EBS3>
+ <EBS4>3</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>0</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>20.86</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>1</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>2</AR1>
+ <AR2>2</AR2>
+ <AR3>2</AR3>
+ <AR4>2</AR4>
+ <D1R1>13</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>29</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>3</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>85</OUT3>
+ <OUT4>65</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Obelisk </name>
+ <prog>30</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>72</Speed>
+ <Delay>42</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>39</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>18.37</Ratio2>
+ <Ratio3>11</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>2</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>4</D1R1>
+ <D1R2>5</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>4</D1L1>
+ <D1L2>4</D1L2>
+ <D1L3>4</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>71</OUT2>
+ <OUT3>93</OUT3>
+ <OUT4>80</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt E.T. </name>
+ <prog>31</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>21</Speed>
+ <Delay>0</Delay>
+ <PModDepth>21</PModDepth>
+ <AModDepth>35</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>3</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>4</Ratio2>
+ <Ratio3>8</Ratio3>
+ <Ratio4>25.95</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>18</AR2>
+ <AR3>10</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>5</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>14</D2R2>
+ <D2R3>9</D2R3>
+ <D2R4>31</D2R4>
+ <RR1>15</RR1>
+ <RR2>15</RR2>
+ <RR3>15</RR3>
+ <RR4>9</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>97</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Ornt Quest</name>
+ <prog>32</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>18.37</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>4</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>1</DET2>
+ <DET3>-1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>31</AR2>
+ <AR3>18</AR3>
+ <AR4>18</AR4>
+ <D1R1>3</D1R1>
+ <D1R2>19</D1R2>
+ <D1R3>2</D1R3>
+ <D1R4>6</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>21</D2R1>
+ <D2R2>29</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>9</RR1>
+ <RR2>9</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>93</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>70</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>3</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>46</LS3>
+ <LS4>46</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntFlight</name>
+ <prog>33</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>56</Speed>
+ <Delay>68</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>63</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>3</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>6</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>9</AR4>
+ <D1R1>5</D1R1>
+ <D1R2>10</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>2</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntSound1</name>
+ <prog>34</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>SQUARE</Wave>
+ <Speed>56</Speed>
+ <Delay>68</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>63</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>3</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>9</AR2>
+ <AR3>22</AR3>
+ <AR4>9</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>3</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>4</D2R3>
+ <D2R4>9</D2R4>
+ <RR1>7</RR1>
+ <RR2>2</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>64</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>OrntSound2</name>
+ <prog>35</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>0</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>0</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>7</Ratio1>
+ <Ratio2>7</Ratio2>
+ <Ratio3>3.5</Ratio3>
+ <Ratio4>10.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>16</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>2</DET1>
+ <DET2>-2</DET2>
+ <DET3>2</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>15</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>10</D1L2>
+ <D1L3>10</D1L3>
+ <D1L4>11</D1L4>
+ <D2R1>12</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>12</D2R3>
+ <D2R4>11</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>84</OUT3>
+ <OUT4>75</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>ParisDream</name>
+ <prog>36</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>14</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>10</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>8</AR1>
+ <AR2>10</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>6</RR1>
+ <RR2>3</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>76</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>99</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>2</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoVoice</name>
+ <prog>37</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>6</Delay>
+ <PModDepth>10</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>3</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>2.99</Ratio3>
+ <Ratio4>2.99</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>34</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>28</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>28</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>30</LS1>
+ <LS2>30</LS2>
+ <LS3>30</LS3>
+ <LS4>30</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PianoStrng</name>
+ <prog>38</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>11</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>15.7</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>112</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W6</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>11</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>15</D1R3>
+ <D1R4>20</D1R4>
+ <D1L1>11</D1L1>
+ <D1L2>6</D1L2>
+ <D1L3>11</D1L3>
+ <D1L4>4</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>4</D2R2>
+ <D2R3>3</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>6</RR1>
+ <RR2>10</RR2>
+ <RR3>5</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>94</OUT3>
+ <OUT4>91</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>2</RS2>
+ <RS3>2</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>50</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PlasticHit</name>
+ <prog>39</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>33</Speed>
+ <Delay>35</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>7</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>2</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>14</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>2</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>9</AR1>
+ <AR2>24</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>16</D1R1>
+ <D1R2>3</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>7</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>8</D1L2>
+ <D1L3>7</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>3</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>6</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>94</OUT1>
+ <OUT2>88</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>1</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Pno String</name>
+ <prog>40</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>28</Speed>
+ <Delay>14</Delay>
+ <PModDepth>9</PModDepth>
+ <AModDepth>46</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>4</EBS1>
+ <EBS2>4</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8.98</Ratio1>
+ <Ratio2>9.07</Ratio2>
+ <Ratio3>1.5</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>15</FixRange2>
+ <FixRange3>16</FixRange3>
+ <FixRange4>97</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W6</OSW2>
+ <OSW3>W8</OSW3>
+ <OSW4>W5</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>0</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>7</AR1>
+ <AR2>6</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>7</D1R1>
+ <D1R2>11</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>31</D1R4>
+ <D1L1>14</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>1</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>8</D2R3>
+ <D2R4>8</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>78</OUT1>
+ <OUT2>78</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>71</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>23</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>7</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>57</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PnoClouds </name>
+ <prog>41</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FOURTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>20</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>6</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>26</AR1>
+ <AR2>31</AR2>
+ <AR3>31</AR3>
+ <AR4>31</AR4>
+ <D1R1>23</D1R1>
+ <D1R2>2</D1R2>
+ <D1R3>18</D1R3>
+ <D1R4>12</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>6</D1L4>
+ <D2R1>8</D2R1>
+ <D2R2>3</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>8</RR1>
+ <RR2>11</RR2>
+ <RR3>8</RR3>
+ <RR4>11</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>97</OUT2>
+ <OUT3>96</OUT3>
+ <OUT4>86</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>2</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>67</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>1</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>50</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>PopPercuss</name>
+ <prog>42</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>0</Delay>
+ <PModDepth>15</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>1</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>1</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>1.49</Ratio3>
+ <Ratio4>1.51</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>9</FixRange3>
+ <FixRange4>14</FixRange4>
+ </frequency>
+ <OSW1>W4</OSW1>
+ <OSW2>W4</OSW2>
+ <OSW3>W4</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>-3</DET3>
+ <DET4>3</DET4>
+ <eg>
+ <AR1>14</AR1>
+ <AR2>14</AR2>
+ <AR3>14</AR3>
+ <AR4>14</AR4>
+ <D1R1>8</D1R1>
+ <D1R2>8</D1R2>
+ <D1R3>8</D1R3>
+ <D1R4>8</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>5</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>98</OUT2>
+ <OUT3>98</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>20</LS1>
+ <LS2>22</LS2>
+ <LS3>29</LS3>
+ <LS4>29</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FINGER</PortaMode>
+ <PortaTime>3</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Sawsy Pad1</name>
+ <prog>43</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>19</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>4</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>8</Ratio1>
+ <Ratio2>6</Ratio2>
+ <Ratio3>5.65</Ratio3>
+ <Ratio4>5.65</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>13</AR2>
+ <AR3>12</AR3>
+ <AR4>10</AR4>
+ <D1R1>27</D1R1>
+ <D1R2>27</D1R2>
+ <D1R3>27</D1R3>
+ <D1R4>27</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>67</OUT2>
+ <OUT3>55</OUT3>
+ <OUT4>49</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-12</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Solstice </name>
+ <prog>44</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>31</Speed>
+ <Delay>0</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>4</PModSens>
+ <AMS>2</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>on</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>3</KVS1>
+ <KVS2>0</KVS2>
+ <KVS3>3</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.51</Ratio1>
+ <Ratio2>1.49</Ratio2>
+ <Ratio3>0.75</Ratio3>
+ <Ratio4>9</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>14</FixRange1>
+ <FixRange2>9</FixRange2>
+ <FixRange3>12</FixRange3>
+ <FixRange4>96</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W8</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>19</AR1>
+ <AR2>19</AR2>
+ <AR3>31</AR3>
+ <AR4>30</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>12</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>11</D1R4>
+ <D1L1>10</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>4</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>2</D2R3>
+ <D2R4>15</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>87</OUT1>
+ <OUT2>84</OUT2>
+ <OUT3>92</OUT3>
+ <OUT4>67</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>5</LS2>
+ <LS3>8</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-7</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpoonChoir</name>
+ <prog>45</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>4</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>30</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>21</AR1>
+ <AR2>24</AR2>
+ <AR3>21</AR3>
+ <AR4>16</AR4>
+ <D1R1>29</D1R1>
+ <D1R2>18</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>10</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>12</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>6</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>6</D2R4>
+ <RR1>15</RR1>
+ <RR2>10</RR2>
+ <RR3>8</RR3>
+ <RR4>8</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>90</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>89</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>5</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>SpreadThin</name>
+ <prog>46</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>27</Speed>
+ <Delay>40</Delay>
+ <PModDepth>16</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>2</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>7</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>14</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W5</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>1</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>83</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>St Nick..1</name>
+ <prog>47</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>34</Speed>
+ <Delay>40</Delay>
+ <PModDepth>43</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>1</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>3</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>1</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W2</OSW1>
+ <OSW2>W2</OSW2>
+ <OSW3>W2</OSW3>
+ <OSW4>W3</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>25</AR1>
+ <AR2>25</AR2>
+ <AR3>12</AR3>
+ <AR4>31</AR4>
+ <D1R1>12</D1R1>
+ <D1R2>31</D1R2>
+ <D1R3>12</D1R3>
+ <D1R4>0</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>6</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>6</D2R3>
+ <D2R4>0</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>1</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>90</OUT3>
+ <OUT4>76</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>St Nick..2</name>
+ <prog>48</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>THIRD</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>99</Speed>
+ <Delay>99</Delay>
+ <PModDepth>6</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>4</KVS2>
+ <KVS3>6</KVS3>
+ <KVS4>5</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>0.5</Ratio3>
+ <Ratio4>2</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>5</AR1>
+ <AR2>4</AR2>
+ <AR3>4</AR3>
+ <AR4>4</AR4>
+ <D1R1>14</D1R1>
+ <D1R2>13</D1R2>
+ <D1R3>14</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>7</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>6</RR1>
+ <RR2>6</RR2>
+ <RR3>6</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>56</OUT3>
+ <OUT4>77</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>StonedCycl</name>
+ <prog>49</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>EIGHTH</ALG>
+ <Feedback>5</Feedback>
+ <lfo>
+ <Wave>SHOLD</Wave>
+ <Speed>50</Speed>
+ <Delay>0</Delay>
+ <PModDepth>99</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>0</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1</Ratio2>
+ <Ratio3>4</Ratio3>
+ <Ratio4>0.5</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W6</OSW1>
+ <OSW2>W5</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W6</OSW4>
+ <DET1>3</DET1>
+ <DET2>-3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>27</AR2>
+ <AR3>15</AR3>
+ <AR4>12</AR4>
+ <D1R1>0</D1R1>
+ <D1R2>0</D1R2>
+ <D1R3>0</D1R3>
+ <D1R4>15</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>15</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>15</D1L4>
+ <D2R1>13</D2R1>
+ <D2R2>13</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>13</D2R4>
+ <RR1>7</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>0</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>12</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Texture *</name>
+ <prog>50</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>29</Speed>
+ <Delay>18</Delay>
+ <PModDepth>30</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>5</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>2</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1.5</Ratio1>
+ <Ratio2>20.99</Ratio2>
+ <Ratio3>1.51</Ratio3>
+ <Ratio4>1.49</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>16</FixRange1>
+ <FixRange2>14</FixRange2>
+ <FixRange3>14</FixRange3>
+ <FixRange4>9</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>-3</DET2>
+ <DET3>1</DET3>
+ <DET4>-2</DET4>
+ <eg>
+ <AR1>27</AR1>
+ <AR2>30</AR2>
+ <AR3>30</AR3>
+ <AR4>30</AR4>
+ <D1R1>6</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>6</D1R3>
+ <D1R4>2</D1R4>
+ <D1L1>0</D1L1>
+ <D1L2>11</D1L2>
+ <D1L3>0</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>31</D2R1>
+ <D2R2>10</D2R2>
+ <D2R3>10</D2R3>
+ <D2R4>7</D2R4>
+ <RR1>11</RR1>
+ <RR2>8</RR2>
+ <RR3>7</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>96</OUT1>
+ <OUT2>89</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>94</OUT4>
+ <scaling>
+ <RS1>2</RS1>
+ <RS2>3</RS2>
+ <RS3>1</RS3>
+ <RS4>3</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-19</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>99</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>That Girl*</name>
+ <prog>51</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>on</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>6</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>4</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>1.73</Ratio2>
+ <Ratio3>4.24</Ratio3>
+ <Ratio4>1</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>31</AR1>
+ <AR2>31</AR2>
+ <AR3>27</AR3>
+ <AR4>31</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>15</D1R2>
+ <D1R3>3</D1R3>
+ <D1R4>18</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>14</D1L2>
+ <D1L3>14</D1L3>
+ <D1L4>14</D1L4>
+ <D2R1>15</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>1</D2R3>
+ <D2R4>12</D2R4>
+ <RR1>6</RR1>
+ <RR2>4</RR2>
+ <RR3>2</RR3>
+ <RR4>6</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>80</OUT2>
+ <OUT3>81</OUT3>
+ <OUT4>95</OUT4>
+ <scaling>
+ <RS1>0</RS1>
+ <RS2>1</RS2>
+ <RS3>0</RS3>
+ <RS4>0</RS4>
+ <LS1>0</LS1>
+ <LS2>0</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>1</MWPitch>
+ <MWAmplitude>99</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>Up We Go </name>
+ <prog>52</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>0</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>8</Speed>
+ <Delay>0</Delay>
+ <PModDepth>8</PModDepth>
+ <AModDepth>34</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>3</PModSens>
+ <AMS>3</AMS>
+ <AME1>on</AME1>
+ <AME2>on</AME2>
+ <AME3>on</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>2</KVS1>
+ <KVS2>1</KVS2>
+ <KVS3>4</KVS3>
+ <KVS4>1</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>2</Ratio1>
+ <Ratio2>8</Ratio2>
+ <Ratio3>2</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>3</DET3>
+ <DET4>-3</DET4>
+ <eg>
+ <AR1>3</AR1>
+ <AR2>8</AR2>
+ <AR3>8</AR3>
+ <AR4>3</AR4>
+ <D1R1>1</D1R1>
+ <D1R2>7</D1R2>
+ <D1R3>9</D1R3>
+ <D1R4>5</D1R4>
+ <D1L1>12</D1L1>
+ <D1L2>12</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>0</D2R1>
+ <D2R2>1</D2R2>
+ <D2R3>0</D2R3>
+ <D2R4>5</D2R4>
+ <RR1>4</RR1>
+ <RR2>4</RR2>
+ <RR3>4</RR3>
+ <RR4>4</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>91</OUT1>
+ <OUT2>52</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>53</OUT4>
+ <scaling>
+ <RS1>3</RS1>
+ <RS2>1</RS2>
+ <RS3>3</RS3>
+ <RS4>1</RS4>
+ <LS1>50</LS1>
+ <LS2>64</LS2>
+ <LS3>50</LS3>
+ <LS4>64</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>4</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>96</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>5</ReverbRate>
+ </function>
+ <name>WineGlass*</name>
+ <prog>53</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>FIFTH</ALG>
+ <Feedback>6</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>26</Speed>
+ <Delay>9</Delay>
+ <PModDepth>5</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>5</KVS1>
+ <KVS2>6</KVS2>
+ <KVS3>5</KVS3>
+ <KVS4>7</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>4</Ratio1>
+ <Ratio2>15.25</Ratio2>
+ <Ratio3>4.02</Ratio3>
+ <Ratio4>8.04</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>yes</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>84</FixRange2>
+ <FixRange3>17</FixRange3>
+ <FixRange4>10</FixRange4>
+ </frequency>
+ <OSW1>W5</OSW1>
+ <OSW2>W8</OSW2>
+ <OSW3>W7</OSW3>
+ <OSW4>W4</OSW4>
+ <DET1>-3</DET1>
+ <DET2>3</DET2>
+ <DET3>-3</DET3>
+ <DET4>-1</DET4>
+ <eg>
+ <AR1>16</AR1>
+ <AR2>25</AR2>
+ <AR3>18</AR3>
+ <AR4>20</AR4>
+ <D1R1>9</D1R1>
+ <D1R2>9</D1R2>
+ <D1R3>7</D1R3>
+ <D1R4>25</D1R4>
+ <D1L1>13</D1L1>
+ <D1L2>0</D1L2>
+ <D1L3>12</D1L3>
+ <D1L4>0</D1L4>
+ <D2R1>7</D2R1>
+ <D2R2>0</D2R2>
+ <D2R3>7</D2R3>
+ <D2R4>3</D2R4>
+ <RR1>5</RR1>
+ <RR2>5</RR2>
+ <RR3>5</RR3>
+ <RR4>5</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>V48</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>V24</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>62</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>93</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>2</RS2>
+ <RS3>1</RS3>
+ <RS4>2</RS4>
+ <LS1>0</LS1>
+ <LS2>31</LS2>
+ <LS3>0</LS3>
+ <LS4>0</LS4>
+ </scaling>
+ <function>
+ <Transpose>-24</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>99</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>25</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>16</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>WireWaves </name>
+ <prog>54</prog>
+ </deicsOnzePreset>
+ <deicsOnzePreset version="1.0">
+ <ALG>SEVENTH</ALG>
+ <Feedback>7</Feedback>
+ <lfo>
+ <Wave>TRIANGL</Wave>
+ <Speed>35</Speed>
+ <Delay>0</Delay>
+ <PModDepth>0</PModDepth>
+ <AModDepth>0</AModDepth>
+ <Sync>off</Sync>
+ </lfo>
+ <sensitivity>
+ <PModSens>5</PModSens>
+ <AMS>0</AMS>
+ <AME1>off</AME1>
+ <AME2>off</AME2>
+ <AME3>off</AME3>
+ <AME4>off</AME4>
+ <EBS1>0</EBS1>
+ <EBS2>0</EBS2>
+ <EBS3>0</EBS3>
+ <EBS4>0</EBS4>
+ <KVS1>1</KVS1>
+ <KVS2>2</KVS2>
+ <KVS3>2</KVS3>
+ <KVS4>6</KVS4>
+ </sensitivity>
+ <frequency>
+ <Ratio1>1</Ratio1>
+ <Ratio2>3</Ratio2>
+ <Ratio3>3</Ratio3>
+ <Ratio4>12</Ratio4>
+ <FIX1>no</FIX1>
+ <FIX2>no</FIX2>
+ <FIX3>no</FIX3>
+ <FIX4>no</FIX4>
+ <FixRange1>8</FixRange1>
+ <FixRange2>8</FixRange2>
+ <FixRange3>8</FixRange3>
+ <FixRange4>8</FixRange4>
+ </frequency>
+ <OSW1>W1</OSW1>
+ <OSW2>W1</OSW2>
+ <OSW3>W1</OSW3>
+ <OSW4>W1</OSW4>
+ <DET1>0</DET1>
+ <DET2>0</DET2>
+ <DET3>0</DET3>
+ <DET4>0</DET4>
+ <eg>
+ <AR1>22</AR1>
+ <AR2>26</AR2>
+ <AR3>23</AR3>
+ <AR4>31</AR4>
+ <D1R1>31</D1R1>
+ <D1R2>24</D1R2>
+ <D1R3>31</D1R3>
+ <D1R4>22</D1R4>
+ <D1L1>15</D1L1>
+ <D1L2>5</D1L2>
+ <D1L3>15</D1L3>
+ <D1L4>7</D1L4>
+ <D2R1>10</D2R1>
+ <D2R2>12</D2R2>
+ <D2R3>13</D2R3>
+ <D2R4>14</D2R4>
+ <RR1>5</RR1>
+ <RR2>7</RR2>
+ <RR3>7</RR3>
+ <RR4>7</RR4>
+ <SHFT1>VOF</SHFT1>
+ <SHFT2>VOF</SHFT2>
+ <SHFT3>VOF</SHFT3>
+ <SHFT4>VOF</SHFT4>
+ </eg>
+ <pitchEg>
+ <PR1>99</PR1>
+ <PR2>99</PR2>
+ <PR3>99</PR3>
+ <PL1>50</PL1>
+ <PL2>50</PL2>
+ <PL3>50</PL3>
+ </pitchEg>
+ <OUT1>99</OUT1>
+ <OUT2>99</OUT2>
+ <OUT3>99</OUT3>
+ <OUT4>99</OUT4>
+ <scaling>
+ <RS1>1</RS1>
+ <RS2>1</RS2>
+ <RS3>1</RS3>
+ <RS4>1</RS4>
+ <LS1>0</LS1>
+ <LS2>12</LS2>
+ <LS3>0</LS3>
+ <LS4>21</LS4>
+ </scaling>
+ <function>
+ <Transpose>0</Transpose>
+ <PolyMode>POLY</PolyMode>
+ <PBendRange>2</PBendRange>
+ <PortaMode>FULL</PortaMode>
+ <PortaTime>0</PortaTime>
+ <FSW>POR</FSW>
+ <FCVolume>40</FCVolume>
+ <FCPitch>0</FCPitch>
+ <FCAmplitude>0</FCAmplitude>
+ <MWPitch>50</MWPitch>
+ <MWAmplitude>0</MWAmplitude>
+ <BCPitch>0</BCPitch>
+ <BCAmplitude>0</BCAmplitude>
+ <BCPitchBias>50</BCPitchBias>
+ <BCEGBias>0</BCEGBias>
+ <ATPitch>0</ATPitch>
+ <ATAmplitude>0</ATAmplitude>
+ <ATPitchBias>0</ATPitchBias>
+ <ATEGBias>0</ATEGBias>
+ <ReverbRate>0</ReverbRate>
+ </function>
+ <name>XyloSynth </name>
+ <prog>55</prog>
+ </deicsOnzePreset>
+ </deicsOnzeSubcategory>
+ </deicsOnzeCategory>
+ </deicsOnzeSet>
diff --git a/muse_qt4_evolution/synti/deicsonze/TODO b/muse_qt4_evolution/synti/deicsonze/TODO
new file mode 100644
index 00000000..f7d486f1
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/TODO
@@ -0,0 +1,13 @@
+- Fix sync
+- Eg Rate Scaling
+- Foot Control, Modulation Wheel, Breath Control, After Touch
+- analogue reverb
+- Change presetName subcategoryName category with SysEx
+- Internal restructure, private vs public, add comment, etc
+- Optimize the code
+- Remember the last directory
+- Pan per voices
+- Load BUMP preset
+- calibrate portamento and pitch envelope to fit real DX11
+- make deicsonze loadable as standalone by mus
+- It seems that there is still a bug on the note on, on some presets
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonze.cpp b/muse_qt4_evolution/synti/deicsonze/deicsonze.cpp
new file mode 100644
index 00000000..2f630a15
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonze.cpp
@@ -0,0 +1,4356 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+//
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+// #include <cmath>
+#include <list>
+
+// #include <stdio.h>
+
+#include "muse/midi.h"
+#include "libsynti/mess.h"
+#include "plugin.h"
+#include "muse/midictrl.h"
+#include "deicsonze.h"
+#include "config.h"
+
+#define ABS(x) (x>=0?x:-x)
+
+
+float DeicsOnze::waveTable[NBRWAVES][RESOLUTION];
+int DeicsOnze::useCount = 0;
+
+//---------------------------------------------------------
+// DeicsOnze
+//---------------------------------------------------------
+
+DeicsOnze::DeicsOnze() : Mess(2) {
+ if (useCount++ == 0) {
+ // create sinus wave table, W1
+ for(int i = 0; i < RESOLUTION; i++)
+ waveTable[W1][i] =
+ (float)(sin((i * 2.0 * M_PI) / (double)RESOLUTION));
+ // create sinus*abs(sinus) wave table, W2
+ for(int i = 0; i < RESOLUTION; i++){
+ double t = (i * 2.0 * M_PI) / (double)RESOLUTION;
+ waveTable[W2][i] = (float)(ABS(sin(t))*sin(t));}
+ // create halfsinus_ wave table, W3
+ for(int i = 0; i < RESOLUTION; i++)
+ waveTable[W3][i] = (float)
+ (i<RESOLUTION/2?sin((i*2.0*M_PI)/(double)RESOLUTION):0.0);
+ // create halfsinus*abs(sinus)_ wave table, W4
+ for(int i = 0; i < RESOLUTION; i++){
+ double t = (i * 2.0 * M_PI) / (double)RESOLUTION;
+ waveTable[W4][i] = (float)(i<RESOLUTION/2?ABS(sin(t))*sin(t):0.0);}
+ // create sinus_ wave table, W5
+ for(int i = 0; i < RESOLUTION; i++)
+ waveTable[W5][i] = (float)
+ (i<RESOLUTION/2?sin((i*4.0*M_PI) / (double)RESOLUTION):0.0);
+ // create sinus*abs(sinus)_ wave table, W6
+ for(int i = 0; i < RESOLUTION; i++){
+ double t = (i*4.0*M_PI) / (double)RESOLUTION;
+ waveTable[W6][i] = (float)(i<RESOLUTION/2?ABS(sin(t))*sin(t):0.0);}
+ // create 2halfsinus_ wave table, W7
+ for(int i = 0; i < RESOLUTION; i++)
+ waveTable[W7][i] = (float)
+ (i<RESOLUTION/2?ABS(sin((i*4.0*M_PI)/(double)RESOLUTION)):0.0);
+ // create 2halfsinus*abs(sinus)_ wave table, W8
+ for(int i = 0; i < RESOLUTION; i++){
+ double t = (i * 4.0 * M_PI) / (double)RESOLUTION;
+ waveTable[W8][i] = (float)(i<RESOLUTION/2?sin(t)*sin(t):0.0);}
+ }
+
+ //alloc temp buffers chorus and reverb
+ tempInputChorus = (float**) malloc(sizeof(float*)*NBRFXINPUTS);
+ for(int i = 0; i < NBRFXINPUTS; i++)
+ tempInputChorus[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+ tempOutputChorus = (float**) malloc(sizeof(float*)*NBRFXOUTPUTS);
+ for(int i = 0; i < NBRFXOUTPUTS; i++)
+ tempOutputChorus[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+ tempInputReverb = (float**) malloc(sizeof(float*)*NBRFXINPUTS);
+ for(int i = 0; i < NBRFXINPUTS; i++)
+ tempInputReverb[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+ tempOutputReverb = (float**) malloc(sizeof(float*)*NBRFXOUTPUTS);
+ for(int i = 0; i < NBRFXOUTPUTS; i++)
+ tempOutputReverb[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+ tempInputDelay = (float**) malloc(sizeof(float*)*NBRFXINPUTS);
+ for(int i = 0; i < NBRFXINPUTS; i++)
+ tempInputDelay[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+ tempOutputDelay = (float**) malloc(sizeof(float*)*NBRFXOUTPUTS);
+ for(int i = 0; i < NBRFXOUTPUTS; i++)
+ tempOutputDelay[i] = (float*) malloc(sizeof(float*)*MAXFXBUFFERSIZE);
+
+ srand(time(0)); // initialize random number generator
+
+ initCtrls();
+ initGlobal();
+
+ _numPatchProg = 0;
+ _saveOnlyUsed = true;
+ _saveConfig = true;
+ _isInitSet = true; //false if an initial bank must be download
+ _initSetPath = INSTPREFIX "/share/muse-" VERSION "/presets/deicsonze/SutulaBank.dei";
+ //"/usr/local/share/muse-1.0pre1/presets/deicsonze/SutulaBank.dei";
+ //TODO
+ //INSTPREFIX + "/share/" + PACKAGEVERSION + "/presets/deicsonze/ARCH_ALIN";
+ _isBackgroundPix = true; //false if an initial bank must be download
+ _backgroundPixPath = INSTPREFIX "/share/muse-" VERSION "/wallpapers/paper2.jpg";
+ //"/usr/local/share/muse-1.0pre1/wallpapers/abstractdeicsonze1.jpg";
+
+ //initialization GUI
+ _gui = new DeicsOnzeGui(this);
+ _gui->hide(); // to avoid flicker during MusE startup
+ _gui->setWindowTitle(QString("DeicsOnze"));
+
+ //FX
+ Plugin* p;
+ p = plugins.find("freeverb", "freeverb1");
+ _pluginIReverb = NULL;
+ if(p) initPluginReverb(p);
+ _pluginIChorus = NULL;
+ p = plugins.find("doublechorus", "doublechorus1");
+ if(p) initPluginChorus(p);
+ _pluginIDelay = NULL;
+ p = plugins.find("pandelay", "pandelay");
+ if(p) initPluginDelay(p);
+
+ //Filter
+ _dryFilter = new LowFilter();
+ _chorusFilter = new LowFilter();
+ _reverbFilter = new LowFilter();
+ _delayFilter = new LowFilter();
+
+ //Load configuration
+ QString defaultConf =
+ (QString(getenv("HOME")) + QString("/." DEICSONZESTR ".dco"));
+ FILE* f;
+ f = fopen(defaultConf.toAscii().data(), "r");
+ if(f) {
+ fclose(f);
+ loadConfiguration(defaultConf);
+ }
+
+ //load Set
+ _set=new Set("Initial Bank");
+ if(_isInitSet) loadSet(_initSetPath);
+
+ //loadSutulaPresets();
+
+ _initialPreset = new
+ Preset(new Subcategory(new Category(NULL, "NONE", 0), "NONE", 0), 0);
+ for(int c = 0; c < NBRCHANNELS; c++) {
+ _preset[c]=_initialPreset;
+ setPreset(c);
+ }
+ //update display gui
+ //update mastervol
+ unsigned char dataMasterVol[2];
+ dataMasterVol[0]=SYSEX_MASTERVOL;
+ dataMasterVol[1]=getMasterVol();
+ MidiEvent evSysexMasterVol(0, ME_SYSEX,
+ (const unsigned char*)dataMasterVol,
+ 2);
+ _gui->writeEvent(evSysexMasterVol);
+ //update return fx
+ unsigned char *dataReverbRet = new unsigned char[2];
+ dataReverbRet[0]=SYSEX_REVERBRETURN;
+ dataReverbRet[1]=(unsigned char)getReverbReturn();
+ MidiEvent evReverbRet(0,ME_SYSEX,(const unsigned char*)dataReverbRet, 2);
+ _gui->writeEvent(evReverbRet);
+ unsigned char *dataChorusRet = new unsigned char[2];
+ dataChorusRet[0]=SYSEX_CHORUSRETURN;
+ dataChorusRet[1]=(unsigned char)getChorusReturn();
+ MidiEvent evChorusRet(0,ME_SYSEX,(const unsigned char*)dataChorusRet, 2);
+ _gui->writeEvent(evChorusRet);
+ unsigned char *dataDelayRet = new unsigned char[2];
+ dataDelayRet[0]=SYSEX_DELAYRETURN;
+ dataDelayRet[1]=(unsigned char)getDelayReturn();
+ //printf("DELAY RET = %d, REVERB RET = %d\n",
+ //getDelayReturn(), getReverbReturn());
+ MidiEvent evDelayRet(0,ME_SYSEX,(const unsigned char*)dataDelayRet, 2);
+ _gui->writeEvent(evDelayRet);
+ //update font size
+ unsigned char *dataFontSize = new unsigned char[2];
+ dataFontSize[0]=SYSEX_FONTSIZE;
+ dataFontSize[1]=(unsigned char)_global.fontSize;
+ MidiEvent evFontSize(0, ME_SYSEX, (const unsigned char*)dataFontSize, 2);
+ _gui->writeEvent(evFontSize);
+ //display load preset
+ unsigned char dataUpdateGuiSet[1];
+ dataUpdateGuiSet[0]=SYSEX_UPDATESETGUI;
+ MidiEvent evSysexUpdateGuiSet(0, ME_SYSEX,
+ (const unsigned char*)dataUpdateGuiSet,
+ 1);
+ _gui->writeEvent(evSysexUpdateGuiSet);
+}
+
+//---------------------------------------------------------
+// ~DeicsOnze
+//---------------------------------------------------------
+
+DeicsOnze::~DeicsOnze()
+{
+ //if (--useCount == 0)
+ //delete[] sine_table;
+ //dealloc temp buffers chorus and reverb
+ for(int i = 0; i < NBRFXINPUTS; i++) free(tempInputChorus[i]);
+ free(tempInputChorus);
+ for(int i = 0; i < NBRFXOUTPUTS; i++) free(tempOutputChorus[i]);
+ free(tempOutputChorus);
+ for(int i = 0; i < NBRFXINPUTS; i++) free(tempInputReverb[i]);
+ free(tempInputReverb);
+ for(int i = 0; i < NBRFXOUTPUTS; i++) free(tempOutputReverb[i]);
+ free(tempOutputReverb);
+ for(int i = 0; i < NBRFXINPUTS; i++) free(tempInputDelay[i]);
+ free(tempInputDelay);
+ for(int i = 0; i < NBRFXOUTPUTS; i++) free(tempOutputDelay[i]);
+ free(tempOutputDelay);
+}
+
+//---------------------------------------------------------
+// getSinusWaveTable
+//---------------------------------------------------------
+float* DeicsOnze::getSinusWaveTable() {
+ return waveTable[W1];
+}
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+bool DeicsOnze::guiVisible() const
+{
+ return _gui->isVisible();
+}
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+void DeicsOnze::showGui(bool val)
+{
+ _gui->setShown(val);
+}
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void DeicsOnze::getGeometry(int* x, int* y, int* w, int* h) const {
+ QPoint pos(_gui->pos());
+ QSize size(_gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+}
+
+void DeicsOnze::setSampleRate(int sr) {
+ Mess::setSampleRate(sr);
+ _dryFilter->setSamplerate(sr);
+ _chorusFilter->setSamplerate(sr);
+ _reverbFilter->setSamplerate(sr);
+ _delayFilter->setSamplerate(sr);
+ setQuality(_global.quality);
+}
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void DeicsOnze::setGeometry(int x, int y, int w, int h) {
+ _gui->resize(QSize(w, h));
+ _gui->move(QPoint(x, y));
+}
+
+//---------------------------------------------------------
+// initCtrls
+//---------------------------------------------------------
+void DeicsOnze::initCtrls() {
+ int i=0;
+ for(int k=0; k<NBROP; k++) {
+ _ctrl[i].name=(QString(ARSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_AR+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXAR;
+ _ctrl[i].name=(QString(D1RSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_D1R+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXD1R;
+ _ctrl[i].name=(QString(D2RSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_D2R+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXD2R;
+ _ctrl[i].name=(QString(RRSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_RR+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXRR;
+ _ctrl[i].name=(QString(D1LSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_D1L+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXD1L;
+ _ctrl[i].name=(QString(LSSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_LS+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXLS;
+ _ctrl[i].name=(QString(RSSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_RS+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXRS;
+ _ctrl[i].name=(QString(EBSSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_EBS+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXEBS;
+ _ctrl[i].name=(QString(AMESTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_AME+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=1;
+ _ctrl[i].name=(QString(KVSSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_KVS+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXKVS;
+ _ctrl[i].name=(QString(OUTSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_OUT+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXOUT;
+ _ctrl[i].name=(QString("Centi")+QString(RATIOLONGSTR)+QString::number(k+1))
+ .toAscii().data();
+ _ctrl[i].num=CTRL_RATIO+k*DECAPAR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXRATIO*100;
+ _ctrl[i].name=(QString(DETSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_DET+k*DECAPAR1;
+ _ctrl[i].min=-MAXDET;
+ _ctrl[i++].max=MAXDET;
+ }
+ _ctrl[i].name=ALGSTR;
+ _ctrl[i].num=CTRL_ALG;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXALG;
+ _ctrl[i].name=FEEDBACKSTR;
+ _ctrl[i].num=CTRL_FEEDBACK;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFEEDBACK;
+ _ctrl[i].name=SPEEDSTR;
+ _ctrl[i].num=CTRL_SPEED;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXSPEED;
+ _ctrl[i].name=DELAYSTR;
+ _ctrl[i].num=CTRL_DELAY;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXDELAY;
+ _ctrl[i].name=PMODDEPTHSTR;
+ _ctrl[i].num=CTRL_PMODDEPTH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPMODDEPTH;
+ _ctrl[i].name=AMODDEPTHSTR;
+ _ctrl[i].num=CTRL_AMODDEPTH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXAMODDEPTH;
+ _ctrl[i].name=SYNCSTR;
+ _ctrl[i].num=CTRL_SYNC;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=1;
+ _ctrl[i].name=WAVESTR;
+ _ctrl[i].num=CTRL_WAVE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXWAVE;
+ _ctrl[i].name=PMODSENSSTR;
+ _ctrl[i].num=CTRL_PMODSENS;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPMODSENS;
+ _ctrl[i].name=AMSSTR;
+ _ctrl[i].num=CTRL_AMS;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXAMS;
+ _ctrl[i].name=TRANSPOSESTR;
+ _ctrl[i].num=CTRL_TRANSPOSE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXTRANSPOSE;
+ _ctrl[i].name=POLYMODESTR;
+ _ctrl[i].num=CTRL_POLYMODE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=1;
+ _ctrl[i].name=PBENDRANGESTR;
+ _ctrl[i].num=CTRL_PBENDRANGE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPBENDRANGE;
+ _ctrl[i].name=PORTAMODESTR;
+ _ctrl[i].num=CTRL_PORTAMODE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=1;
+ _ctrl[i].name=PORTATIMESTR;
+ _ctrl[i].num=CTRL_PORTATIME;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPROTATIME;
+ _ctrl[i].name=FCVOLUMESTR;
+ _ctrl[i].num=CTRL_FCVOLUME;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFCVOLUME;
+ _ctrl[i].name=FSWSTR;
+ _ctrl[i].num=CTRL_FSW;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFSW;
+ _ctrl[i].name=MWPITCHSTR;
+ _ctrl[i].num=CTRL_MWPITCH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXMWPITCH;
+ _ctrl[i].name=MWAMPLITUDESTR;
+ _ctrl[i].num=CTRL_MWAMPLITUDE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXMWAMPLITUDE;
+ _ctrl[i].name=BCPITCHSTR;
+ _ctrl[i].num=CTRL_BCPITCH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXBCPITCH;
+ _ctrl[i].name=BCAMPLITUDESTR;
+ _ctrl[i].num=CTRL_BCAMPLITUDE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXBCAMPLITUDE;
+ _ctrl[i].name=BCPITCHBIASSTR;
+ _ctrl[i].num=CTRL_BCPITCHBIAS;
+ _ctrl[i].min=-MAXBCPITCHBIAS;
+ _ctrl[i++].max=MAXBCPITCHBIAS;
+ _ctrl[i].name=BCEGBIASSTR;
+ _ctrl[i].num=CTRL_BCEGBIAS;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXBCEGBIAS;
+ _ctrl[i].name=ATPITCHSTR;
+ _ctrl[i].num=CTRL_ATPITCH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXATPITCH;
+ _ctrl[i].name=ATAMPLITUDESTR;
+ _ctrl[i].num=CTRL_ATAMPLITUDE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXATAMPLITUDE;
+ _ctrl[i].name=ATPITCHBIASSTR;
+ _ctrl[i].num=CTRL_ATPITCHBIAS;
+ _ctrl[i].min=-MAXATPITCHBIAS;
+ _ctrl[i++].max=MAXATPITCHBIAS;
+ _ctrl[i].name=ATEGBIASSTR;
+ _ctrl[i].num=CTRL_ATEGBIAS;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXATEGBIAS;
+ _ctrl[i].name=PR1STR;
+ _ctrl[i].num=CTRL_PR1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPR;
+ _ctrl[i].name=PR2STR;
+ _ctrl[i].num=CTRL_PR2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPR;
+ _ctrl[i].name=PR3STR;
+ _ctrl[i].num=CTRL_PR3;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPR;
+ _ctrl[i].name=PL1STR;
+ _ctrl[i].num=CTRL_PL1;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPL;
+ _ctrl[i].name=PL2STR;
+ _ctrl[i].num=CTRL_PL2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPL;
+ _ctrl[i].name=PL3STR;
+ _ctrl[i].num=CTRL_PL3;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXPL;
+ for(int k=0; k<NBROP; k++) {
+ _ctrl[i].name=(QString(FIXSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_FIX+k*DECAPAR2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=1;
+ _ctrl[i].name=(QString("Centi")+QString(FIXRANGESTR)
+ +QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_FIXRANGE+k*DECAPAR2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFIXRANGE*100;
+ _ctrl[i].name=(QString(OSWSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_OSW+k*DECAPAR2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXOSW;
+ _ctrl[i].name=(QString(SHFTSTR)+QString::number(k+1)).toAscii().data();
+ _ctrl[i].num=CTRL_SHFT+k*DECAPAR2;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXSHFT;
+ }
+ _ctrl[i].name=REVERBRATESTR;
+ _ctrl[i].num=CTRL_REVERBRATE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=7;
+ _ctrl[i].name=FCPITCHSTR;
+ _ctrl[i].num=CTRL_FCPITCH;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFCPITCH;
+ _ctrl[i].name=FCAMPLITUDESTR;
+ _ctrl[i].num=CTRL_FCAMPLITUDE;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFCAMPLITUDE;
+ _ctrl[i].name=CHANNELPANSTR;
+ _ctrl[i].num=CTRL_CHANNELPAN;
+ _ctrl[i].min=-MAXCHANNELPAN;
+ _ctrl[i++].max=MAXCHANNELPAN;
+ _ctrl[i].name=CHANNELDETUNESTR;
+ _ctrl[i].num=CTRL_CHANNELDETUNE;
+ _ctrl[i].min=-MAXCHANNELDETUNE;
+ _ctrl[i++].max=MAXCHANNELDETUNE;
+ _ctrl[i].name=CHANNELVOLUMESTR;
+ _ctrl[i].num=CTRL_CHANNELVOLUME;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXCHANNELVOLUME;
+ _ctrl[i].name=FINEBRIGHTNESSSTR;
+ _ctrl[i].num=CTRL_FINEBRIGHTNESS;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXFINEBRIGHTNESS;
+ _ctrl[i].name=NBRVOICESSTR;
+ _ctrl[i].num=CTRL_NBRVOICES;
+ _ctrl[i].min=0;
+ _ctrl[i++].max=MAXNBRVOICES;
+ nbrCtrl=i;
+}
+
+//---------------------------------------------------------
+// initGlobal
+//---------------------------------------------------------
+void DeicsOnze::initGlobal() {
+ setMasterVol(INITMASTERVOL);
+ _global.quality = high;
+ setFilter(false);
+ _global.fontSize = 9;
+ _global.isChorusActivated = false;
+ _global.chorusReturn = level2amp(INITFXRETURN);
+ _global.isReverbActivated = false;
+ _global.reverbReturn = level2amp(INITFXRETURN);
+ _global.isDelayActivated = false;
+ _global.delayReturn = level2amp(INITFXRETURN);
+ initChannels();
+}
+
+void DeicsOnze::initChannels() {
+ for(int c=0; c<NBRCHANNELS; c++) initChannel(c);
+ _global.channel[0].isEnable = true; //the first one is enable
+}
+
+void DeicsOnze::initChannel(int c) {
+ _global.channel[c].isEnable = false;
+ _global.channel[c].sustain = false;
+ _global.channel[c].volume = DEFAULTVOL;
+ _global.channel[c].pan = 0;
+ _global.channel[c].modulation = 0;
+ _global.channel[c].detune = 0;
+ _global.channel[c].brightness = MIDFINEBRIGHTNESS;
+ _global.channel[c].attack = MIDATTACK;
+ _global.channel[c].release = MIDRELEASE;
+ _global.channel[c].pitchBendCoef = 1.0;
+ _global.channel[c].lfoIndex = 0;
+ _global.channel[c].nbrVoices = 8;
+ _global.channel[c].isLastNote = false;
+ _global.channel[c].chorusAmount = 0.0;
+ _global.channel[c].reverbAmount = 0.0;
+ _global.channel[c].delayAmount = 0.0;
+ applyChannelAmp(c);
+ initVoices(c);
+}
+
+//---------------------------------------------------------
+// resetVoices
+//---------------------------------------------------------
+void DeicsOnze::resetVoices() {
+ for(int c = 0; c<NBRCHANNELS; c++) initVoices(c);
+ //take care of this if initVoices() changes
+}
+
+//---------------------------------------------------------
+// initVoice
+//---------------------------------------------------------
+void DeicsOnze::initVoice(int c /*channel*/, int v) {
+ _global.channel[c].voices[v].hasAttractor = false;
+ _global.channel[c].voices[v].isOn = false;
+ _global.channel[c].voices[v].keyOn = false;
+ _global.channel[c].voices[v].isSustained = false;
+ _global.channel[c].voices[v].pitchEnvCoefInct = 1.0;
+ _global.channel[c].voices[v].pitchEnvCoefInctInct = 1.0;
+ _global.channel[c].voices[v].pitchEnvState = OFF_PE;
+
+}
+//---------------------------------------------------------
+// initVoices
+//---------------------------------------------------------
+void DeicsOnze::initVoices(int c) {
+ for(int v=0; v<MAXNBRVOICES; v++) {
+ initVoice(c, v);
+ _global.channel[c].lastVoiceKeyOn.clear();
+ }
+}
+
+//--------------------------------------------------------
+// findPreset findSubcategory findCategory
+//--------------------------------------------------------
+Preset* DeicsOnze::findPreset(int hbank, int lbank, int prog) const {
+ return _set->findPreset(hbank, lbank, prog);
+}
+Subcategory* DeicsOnze::findSubcategory(int hbank, int lbank) const {
+ return _set->findSubcategory(hbank, lbank);
+}
+Category* DeicsOnze::findCategory(int hbank) const {
+ return _set->findCategory(hbank);
+}
+//---------------------------------------------------------
+// isPitchEnv
+// return true iff all levels are in the middle
+//---------------------------------------------------------
+inline bool isPitchEnv(PitchEg* pe) {
+ return(pe->pl1 != 50 || pe->pl2 != 50 || pe->pl3 != 50);
+}
+//---------------------------------------------------------
+// getPitchEnvCoefInct
+// returns the coefInct according to level pl
+//---------------------------------------------------------
+inline double getPitchEnvCoefInct(int pl) {
+ /*
+ pl = 0 <--> -4oct, pl = 50 <--> 0oct, pl = 100 <--> 4oct
+
+ y = a * exp((pl - 50)/b)
+ 1.0 = a*exp(0) ==> a = 1.0
+ 8.0 = exp(50/b) ==> log 8.0 = 50/b ==> b = 50/log(8.0)
+ */
+ double b = 50.0/log(8.0);
+ return exp((pl-50.0)/b);
+}
+
+//---------------------------------------------------------
+// getPitchEnvCoefInctInct
+//---------------------------------------------------------
+inline double getPitchEnvCoefInctInct(int pl1, int pl2, int pr, double sr) {
+ //TODO : depending on the sampleRate
+ int a = pr;
+ double c = 1.0 + COEFPITCHENV*((double)(a*a)+1.0);
+ double inctInct = exp(log(c)*48000.0/sr);
+ if(pl1<pl2) return(inctInct);
+ else if(pl1>pl2)
+ return(1.0/inctInct);
+ else return 1.0;
+}
+
+//---------------------------------------------------------
+// existsKeyOn
+//---------------------------------------------------------
+bool DeicsOnze::existsKeyOn(int ch) {
+ return !_global.channel[ch].lastVoiceKeyOn.empty();
+}
+
+//---------------------------------------------------------
+// note2Amp
+// return the Amp of a note depending on the level scaling
+//---------------------------------------------------------
+inline double note2Amp(double note, int ls)
+{
+ if(ls==0) return(1.0);
+ else return((note<LEVELSCALENOTE?1.0:exp((double)ls*COEFLEVELSCALE*
+ ((double)LEVELSCALENOTE-note))));
+}
+
+//---------------------------------------------------------
+// delay2Time
+// return the time in second corresponding to the LFO delay parameter
+//---------------------------------------------------------
+inline double delay2Time(int d) {
+ double t;
+ //fitting
+ t=0.07617*(double)d-0.002695*(double)(d*d)+4.214e-05*(double)(d*d*d);
+ //printf("delay2Time : %f\n", t);
+ return(t);
+}
+
+//----------------------------------------------------------------
+// setNbrVoices
+//----------------------------------------------------------------
+void DeicsOnze::setNbrVoices(int c, int nv) {
+ nv=(nv>MAXNBRVOICES?MAXNBRVOICES:(nv<1?1:nv));
+ //we assume that any voices
+ //that is not included in the active voices is properly initialized
+ for(int v=nv; v<_global.channel[c].nbrVoices; v++)
+ initVoice(c, v);
+ _global.channel[c].nbrVoices=nv;
+}
+
+//----------------------------------------------------------------
+// setMasterVol
+//----------------------------------------------------------------
+void DeicsOnze::setMasterVol(int mv) {
+ _global.masterVolume=level2amp(mv); //watch out that MAXMASTERVOLUME==255
+}
+//----------------------------------------------------------------
+// setChannelEnable
+//----------------------------------------------------------------
+void DeicsOnze::setChannelEnable(int c, bool e) {
+ _global.channel[c].isEnable = e;
+ setLfo(c);
+}
+
+//----------------------------------------------------------------
+// setChannelVol
+//----------------------------------------------------------------
+void DeicsOnze::setChannelVol(int c, int v) {
+ _global.channel[c].volume = v;
+}
+
+void DeicsOnze::applyChannelAmp(int c) {
+ _global.channel[c].ampLeft =
+ level2amp(_global.channel[c].volume)
+ * ((double)(MAXCHANNELPAN - _global.channel[c].pan)
+ /(double)(2*MAXCHANNELPAN));
+ _global.channel[c].ampRight =
+ level2amp(_global.channel[c].volume)
+ * ((double)(MAXCHANNELPAN + _global.channel[c].pan)
+ /(double)(2*MAXCHANNELPAN));
+}
+
+//----------------------------------------------------------------
+// setChannelPan
+//----------------------------------------------------------------
+void DeicsOnze::setChannelPan(int c, int p) {
+ _global.channel[c].pan = p;
+}
+//----------------------------------------------------------------
+// setChannelDetune
+//----------------------------------------------------------------
+void DeicsOnze::setChannelDetune(int c, int p) {
+ _global.channel[c].detune = p;
+}
+//----------------------------------------------------------------
+// setChannelBrightness
+//----------------------------------------------------------------
+void DeicsOnze::setChannelBrightness(int c, int b) {
+ _global.channel[c].brightness = b;
+}
+//----------------------------------------------------------------
+// setChannelModulation
+//----------------------------------------------------------------
+void DeicsOnze::setChannelModulation(int c, int m) {
+ _global.channel[c].modulation = m;
+}
+//----------------------------------------------------------------
+// setChannelAttack
+//----------------------------------------------------------------
+void DeicsOnze::setChannelAttack(int c, int a) {
+ _global.channel[c].attack = a;
+}
+//----------------------------------------------------------------
+// setChannelRelease
+//----------------------------------------------------------------
+void DeicsOnze::setChannelRelease(int c, int r) {
+ _global.channel[c].release = r;
+}
+//----------------------------------------------------------------
+// setChannelReverb
+//----------------------------------------------------------------
+void DeicsOnze::setChannelReverb(int c, int r) {
+ _global.channel[c].reverbAmount = (float)lowlevel2amp(r);
+}
+//----------------------------------------------------------------
+// setChannelChorus
+//----------------------------------------------------------------
+void DeicsOnze::setChannelChorus(int c, int val) {
+ _global.channel[c].chorusAmount = (float)lowlevel2amp(val);
+}
+//----------------------------------------------------------------
+// setChannelDelay
+//----------------------------------------------------------------
+void DeicsOnze::setChannelDelay(int c, int val) {
+ _global.channel[c].delayAmount = (float)lowlevel2amp(val);
+}
+
+//----------------------------------------------------------------
+// setChorusReturn
+//----------------------------------------------------------------
+void DeicsOnze::setChorusReturn(int val) {
+ _global.chorusReturn = 2.0*(float)level2amp(val); //beware MAXFXRETURN==255
+}
+
+//----------------------------------------------------------------
+// setReverbReturn
+//----------------------------------------------------------------
+void DeicsOnze::setReverbReturn(int val) {
+ _global.reverbReturn = 2.0*(float)level2amp(val); //beware MAXFXRETURN==255
+}
+
+//----------------------------------------------------------------
+// setDelayReturn
+//----------------------------------------------------------------
+void DeicsOnze::setDelayReturn(int val) {
+ _global.delayReturn = 2.0*(float)level2amp(val); //beware MAXFXRETURN==255
+}
+
+//----------------------------------------------------------------
+// getNbrVoices
+//----------------------------------------------------------------
+int DeicsOnze::getNbrVoices(int c) const {
+ return(_global.channel[c].nbrVoices);
+}
+//----------------------------------------------------------------
+// getMasterVol
+//----------------------------------------------------------------
+int DeicsOnze::getMasterVol(void) const {
+ return(amp2level(_global.masterVolume));
+}
+//----------------------------------------------------------------
+// getFilter
+//----------------------------------------------------------------
+bool DeicsOnze::getFilter(void) const {
+ return _global.filter;
+}
+//----------------------------------------------------------------
+// getChannelEnable
+//----------------------------------------------------------------
+bool DeicsOnze::getChannelEnable(int c) const {
+ return _global.channel[c].isEnable;
+}
+
+//----------------------------------------------------------------
+// getChannelVol
+//----------------------------------------------------------------
+int DeicsOnze::getChannelVol(int c) const { //TODO : to see if correct
+ //return((int)(MAX(_global.channel[c].ampLeft, _global.channel[c].ampRight)
+ //*(double)MAXCHANNELVOLUME));
+ return(_global.channel[c].volume);
+}
+//----------------------------------------------------------------
+// getChannelPan
+//----------------------------------------------------------------
+int DeicsOnze::getChannelPan(int c) const {
+ return(_global.channel[c].pan);
+}
+//----------------------------------------------------------------
+// setChannelDetune
+//----------------------------------------------------------------
+int DeicsOnze::getChannelDetune(int c) const {
+ return _global.channel[c].detune;
+}
+//----------------------------------------------------------------
+// getChannelBrightness
+//----------------------------------------------------------------
+int DeicsOnze::getChannelBrightness(int c) const {
+ return(_global.channel[c].brightness);
+}
+//----------------------------------------------------------------
+// getChannelModulation
+//----------------------------------------------------------------
+int DeicsOnze::getChannelModulation(int c) const {
+ return(_global.channel[c].modulation);
+}
+//----------------------------------------------------------------
+// getChannelAttack
+//----------------------------------------------------------------
+int DeicsOnze::getChannelAttack(int c) const {
+ return(_global.channel[c].attack);
+}
+//----------------------------------------------------------------
+// getChannelRelease
+//----------------------------------------------------------------
+int DeicsOnze::getChannelRelease(int c) const {
+ return(_global.channel[c].release);
+}
+//----------------------------------------------------------------
+// getChannelReverb
+//----------------------------------------------------------------
+int DeicsOnze::getChannelReverb(int c) const {
+ return(amp2lowlevel(_global.channel[c].reverbAmount));
+}
+//----------------------------------------------------------------
+// getChannelChorus
+//----------------------------------------------------------------
+int DeicsOnze::getChannelChorus(int c) const {
+ return(amp2lowlevel(_global.channel[c].chorusAmount));
+}
+//----------------------------------------------------------------
+// getChannelDelay
+//----------------------------------------------------------------
+int DeicsOnze::getChannelDelay(int c) const {
+ return(amp2lowlevel(_global.channel[c].delayAmount));
+}
+//----------------------------------------------------------------
+// getChorusReturn
+//----------------------------------------------------------------
+int DeicsOnze::getChorusReturn() const {
+ return(amp2level(_global.chorusReturn/2.0));
+}
+//----------------------------------------------------------------
+// getReverbReturn
+//----------------------------------------------------------------
+int DeicsOnze::getReverbReturn() const {
+ return(amp2level(_global.reverbReturn/2.0));
+}
+//----------------------------------------------------------------
+// getReverbReturn
+//----------------------------------------------------------------
+int DeicsOnze::getDelayReturn() const {
+ return(amp2level(_global.delayReturn/2.0));
+}
+
+//----------------------------------------------------------------
+// setLfo
+//----------------------------------------------------------------
+void DeicsOnze::setLfo(int c/*channel*/)
+{
+ double x;
+ x=(double)_preset[c]->lfo.speed;
+ // lfoSpeed to Hz, obtained by fitting the actual curve by a polynomial
+ _global.channel[c].lfoFreq =
+ -1.9389e-08*x*x*x*x*x+2.8826e-06*x*x*x*x-9.0316e-05*x*x*x
+ +4.7453e-03*x*x-1.2295e-02*x+7.0347e-02;//a revoir
+ //Pitch LFO
+ _global.channel[c].lfoMaxIndex =
+ (_global.channel[c].lfoFreq==0?0:(int)((1.0/_global.channel[c].lfoFreq)
+ *(double)_global.deiSampleRate));
+ double totalpDepth =
+ ((double)_preset[c]->lfo.pModDepth +
+ (((double)_global.channel[c].modulation)/127.0)
+ * ((double)(MAXPMODDEPTH - _preset[c]->lfo.pModDepth))
+ )/(double)MAXPMODDEPTH;
+ _global.channel[c].lfoPitch =
+ totalpDepth * (COEFPLFO(_preset[c]->sensitivity.pitch));
+ //Amplitude LFO
+ double totalaDepth =
+ ((double)_preset[c]->lfo.aModDepth +
+ (((double)_global.channel[c].modulation)/127.0)
+ * ((double)(MAXAMODDEPTH - _preset[c]->lfo.aModDepth))
+ )/(double)MAXAMODDEPTH;
+ _global.channel[c].lfoMaxAmp =
+ totalaDepth * (COEFALFO(_preset[c]->sensitivity.amplitude));
+ //index is concidered on the half of the frequency of the LFO
+ _global.channel[c].lfoDelayMaxIndex =
+ delay2Time(_preset[c]->lfo.delay)*_global.channel[c].lfoFreq*2;
+ _global.channel[c].lfoDelayInct =
+ (double)(RESOLUTION/4)/_global.channel[c].lfoDelayMaxIndex;
+
+ //update the actuall values controlling the modulation now
+ if(_global.channel[c].lfoDelayIndex<(double)(RESOLUTION/4)) {
+ double delayCoef =
+ (double)waveTable[W2][(int)_global.channel[c].lfoDelayIndex];
+ _global.channel[c].lfoMaxCoefInct =
+ exp((log(2.0)/12.0)*_global.channel[c].lfoPitch*delayCoef);
+ _global.channel[c].lfoCoefInctInct =
+ exp((log(2.0)/12.0)*((2*_global.channel[c].lfoPitch*delayCoef)
+ /_global.channel[c].lfoMaxIndex));
+ _global.channel[c].lfoMaxDAmp = delayCoef*_global.channel[c].lfoMaxAmp;
+ }
+ else
+ if(_global.channel[c].delayPassed) {
+ _global.channel[c].lfoMaxCoefInct =
+ exp((log(2.0)/12.0)*_global.channel[c].lfoPitch);
+ _global.channel[c].lfoCoefInctInct=
+ exp((log(2.0)/12.0)*((2*_global.channel[c].lfoPitch)
+ /_global.channel[c].lfoMaxIndex));
+ _global.channel[c].lfoMaxDAmp=_global.channel[c].lfoMaxAmp;
+ }
+}
+
+//-----------------------------------------------------------------
+// setOutLevel
+//-----------------------------------------------------------------
+void DeicsOnze::setOutLevel(int c, int k) {
+ for(int v=0; v<_global.channel[c].nbrVoices; v++) {
+ if(_global.channel[c].voices[v].op[k].envState!=OFF) {
+ _global.channel[c].voices[v].op[k].amp =
+ outLevel2Amp(_preset[c]->outLevel[k])
+ * _global.channel[c].voices[v].op[k].ampVeloNote
+ * brightness2Amp(c, k);
+ }
+ }
+}
+void DeicsOnze::setOutLevel(int c) {
+ for(int k=0; k<NBROP; k++) {
+ setOutLevel(c, k);
+ }
+}
+//-----------------------------------------------------------------
+// setEnvAttack
+//-----------------------------------------------------------------
+void DeicsOnze::setEnvAttack(int c, int v, int k) {
+ if(_global.channel[c].voices[v].op[k].envState==ATTACK)
+ _global.channel[c].voices[v].op[k].envInct=
+ (_preset[c]->eg[k].ar==0?0:
+ (double)(RESOLUTION/4)/(envAR2s(_preset[c]->eg[k].ar)
+ *_global.deiSampleRate))
+ *coefAttack(_global.channel[c].attack);
+}
+void DeicsOnze::setEnvAttack(int c, int k) {
+ for(int v=0; v<_global.channel[c].nbrVoices; v++) setEnvAttack(c, v, k);
+}
+void DeicsOnze::setEnvAttack(int c) {
+ for(int k=0; k<NBROP; k++) setEnvAttack(c, k);
+}
+//-----------------------------------------------------------------
+// setEnvRelease
+//-----------------------------------------------------------------
+void DeicsOnze::setEnvRelease(int c, int v, int k) {
+ if(_global.channel[c].voices[v].op[k].envState==RELEASE)
+ _global.channel[c].voices[v].op[k].coefVLevel =
+ envRR2coef(_preset[c]->eg[k].rr, _global.deiSampleRate,
+ _global.channel[c].release);
+}
+void DeicsOnze::setEnvRelease(int c, int k) {
+ for(int v=0; v<_global.channel[c].nbrVoices; v++) setEnvRelease(c, v, k);
+}
+void DeicsOnze::setEnvRelease(int c) {
+ for(int k=0; k<NBROP; k++) setEnvRelease(c, k);
+}
+//-----------------------------------------------------------------
+// setPitchEnvRelease
+//-----------------------------------------------------------------
+void DeicsOnze::setPitchEnvRelease(int c, int v) {
+ if(isPitchEnv(&_preset[c]->pitchEg)) {
+ if(_global.channel[c].voices[v].pitchEnvCoefInct
+ > _global.channel[c].voices[v].pitchEnvCoefInctPhase1) {
+ _global.channel[c].voices[v].pitchEnvCoefInctInct =
+ getPitchEnvCoefInctInct(1, 0, _preset[c]->pitchEg.pr3,
+ _global.deiSampleRate);
+ _global.channel[c].voices[v].pitchEnvState = RELEASE_PE;
+ }
+ else if(_global.channel[c].voices[v].pitchEnvCoefInct
+ < _global.channel[c].voices[v].pitchEnvCoefInctPhase1) {
+ _global.channel[c].voices[v].pitchEnvCoefInctInct =
+ getPitchEnvCoefInctInct(0, 1, _preset[c]->pitchEg.pr3,
+ _global.deiSampleRate);
+ _global.channel[c].voices[v].pitchEnvState = RELEASE_PE;
+ }
+ else {
+ _global.channel[c].voices[v].pitchEnvCoefInctInct = 1.0;
+ _global.channel[c].voices[v].pitchEnvState = OFF_PE;
+ }
+ }
+}
+
+//-----------------------------------------------------------------
+// setQuality
+//-----------------------------------------------------------------
+void DeicsOnze::setQuality(Quality q) {
+ _global.quality = q;
+ switch(q) {
+ case high :
+ _global.qualityCounterTop = 1;
+ break;
+ case middle :
+ _global.qualityCounterTop = 2;
+ break;
+ case low :
+ _global.qualityCounterTop = 4;
+ break;
+ case ultralow :
+ _global.qualityCounterTop = 6;
+ break;
+ default : printf("Error switch setQuality : out of value\n");
+ break;
+ }
+ //calculate _global.deiSampleRate
+ _global.deiSampleRate = (double)sampleRate()
+ / (double)_global.qualityCounterTop;
+ _global.qualityCounter = 0;
+ //update lfo to consider the new samplerate
+ for(int c = 0; c < 16; c++) if(_global.channel[c].isEnable) setLfo(c);
+ //update the cutoffs of the filters
+ _dryFilter->setCutoff(_global.deiSampleRate/4.0);
+ _reverbFilter->setCutoff(_global.deiSampleRate/4.0);
+ _chorusFilter->setCutoff(_global.deiSampleRate/4.0);
+ _delayFilter->setCutoff(_global.deiSampleRate/4.0);
+}
+
+//-----------------------------------------------------------------
+// setFilter
+//-----------------------------------------------------------------
+void DeicsOnze::setFilter(bool f) {
+ _global.filter = f;
+}
+//-----------------------------------------------------------------
+// brightness2Amp
+//-----------------------------------------------------------------
+double DeicsOnze::brightness2Amp(int c, int k) {
+ if(
+ (k==1 && (_preset[c]->algorithm!=SIXTH || _preset[c]->algorithm!=SEVENTH
+ || _preset[c]->algorithm!=EIGHTH))
+ ||
+ (k==2 && (_preset[c]->algorithm==FIRST || _preset[c]->algorithm==SECOND
+ || _preset[c]->algorithm==THIRD || _preset[c]->algorithm==FOURTH))
+ ||
+ (k==3 && (_preset[c]->algorithm!=EIGHTH))
+ ) {
+ double x = 2.0*(double)_global.channel[c].brightness
+ / (double)MAXFINEBRIGHTNESS;
+ double square_x = x*x;
+ return(square_x*x);
+ }
+ else return(1.0);
+}
+//-----------------------------------------------------------------
+// setFeedback
+//-----------------------------------------------------------------
+void DeicsOnze::setFeedback(int c) {
+ _global.channel[c].feedbackAmp =
+ COEFFEEDBACK*exp(log(2)*(double)(_preset[c]->feedback-MAXFEEDBACK));
+}
+
+//-----------------------------------------------------------------
+// setPreset
+//-----------------------------------------------------------------
+
+void DeicsOnze::setPreset(int c) {
+ setFeedback(c);
+ setLfo(c);
+ setEnvAttack(c);
+ setEnvRelease(c);
+ setOutLevel(c);
+}
+
+
+inline double coarseFine2Ratio(int c,int f) {
+ double tab[64][16]=
+ {
+ {0.50,0.56,0.62,0.68,0.75,0.81,0.87,0.93,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
+ {0.71,0.79,0.88,0.96,1.05,1.14,1.23,1.32,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
+ {0.78,0.88,0.98,1.07,1.17,1.27,1.37,1.47,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
+ {0.87,0.97,1.08,1.18,1.29,1.40,1.51,1.62,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
+ {1.00,1.06,1.12,1.18,1.25,1.31,1.37,1.43,1.50,1.56,1.62,1.68,1.75,1.81,1.87,1.93},
+ {1.41,1.49,1.58,1.67,1.76,1.85,1.93,2.02,2.11,2.20,2.29,2.37,2.46,2.55,2.64,2.73},
+ {1.57,1.66,1.76,1.86,1.96,2.06,2.15,2.25,2.35,2.45,2.55,2.64,2.74,2.84,2.94,3.04},
+ {1.73,1.83,1.94,2.05,2.16,2.27,2.37,2.48,2.59,2.70,2.81,2.91,3.02,3.13,3.24,3.35},
+ {2.00,2.06,2.12,2.18,2.25,2.31,2.37,2.43,2.50,2.56,2.62,2.68,2.75,2.81,2.87,2.93},
+ {2.82,2.90,2.99,3.08,3.17,3.26,3.34,3.43,3.52,3.61,3.70,3.78,3.87,3.96,4.05,3.14},
+ {3.00,3.06,3.12,3.18,3.25,3.31,3.37,3.43,3.50,3.56,3.62,3.68,3.75,3.81,3.87,3.93} ,
+ {3.14,3.23,3.33,3.43,3.53,3.63,3.72,3.82,3.92,4.02,4.12,4.21,4.31,4.41,4.51,4.61},
+ {3.46,3.56,3.67,3.78,3.89,4.00,4.10,4.21,4.32,4.43,4.54,4.64,4.75,4.86,4.97,5.08},
+ {4.00,4.06,4.12,4.18,4.25,4.31,4.37,4.43,4.50,4.56,4.62,4.68,4.75,4.81,4.87,4.93},
+ {4.24,4.31,4.40,4.49,4.58,4.67,4.75,4.84,4.93,5.02,5.11,5.19,5.28,5.37,5.46,5.55},
+ {4.71,4.80,4.90,5.00,5.10,5.20,5.29,5.39,5.49,5.59,5.69,5.78,5.88,5.98,6.08,6.18},
+ {5.00,5.06,5.12,5.18,5.25,5.31,5.37,5.43,5.50,5.56,5.62,5.68,5.75,5.81,5.87,5.93},
+ {5.19,5.29,5.40,5.51,5.62,5.73,5.83,5.94,6.05,6.16,6.27,6.37,6.48,6.59,6.70,6.81},
+ {5.65,5.72,5.81,5.90,5.99,6.08,6.16,6.25,6.34,6.43,6.52,6.60,6.69,6.78,6.87,6.96},
+ {6.00,6.06,6.12,6.18,6.25,6.31,6.37,6.43,6.50,6.56,6.62,6.68,6.75,6.81,6.87,6.93},
+ {6.28,6.37,6.47,6.57,6.67,6.77,6.86,6.96,7.06,7.16,7.26,7.35,7.45,7.55,7.65,7.75},
+ {6.92,7.02,7.13,7.24,7.35,7.46,7.56,7.67,7.78,7.89,8.00,8.10,8.21,8.32,8.43,8.54},
+ {7.00,7.06,7.12,7.18,7.25,7.31,7.37,7.43,7.50,7.56,7.62,7.68,7.75,7.81,7.87,7.93},
+ {7.07,7.13,7.22,7.31,7.40,7.49,7.57,7.66,7.75,7.84,7.93,8.01,8.10,8.19,8.28,8.37},
+ {7.85,7.94,8.04,8.14,8.24,8.34,8.43,8.53,8.63,8.73,8.83,8.92,9.02,9.12,9.22,9.32},
+ {8.00,8.06,8.12,8.18,8.25,8.31,8.37,8.43,8.50,8.56,8.62,8.68,8.75,8.81,8.87,8.93},
+ {8.48,8.54,8.63,8.72,8.81,8.90,8.98,9.07,9.16,9.25,9.34,9.42,9.51,9.60,9.69,9.78},
+ {8.65,8.75,8.86,8.97,9.08,9.19,9.29,9.40,9.51,9.62,9.73,9.83,9.94,10.05,10.16,10.27},
+ {9.00,9.06,9.12,9.18,9.25,9.31,9.37,9.43,9.50,9.56,9.62,9.68,9.75,9.81,9.87,9.93},
+ {9.42,9.51,9.61,9.71,9.81,9.91,10.00,10.10,10.20,10.30,10.40,10.49,10.59,10.69,10.79,10.89},
+ {9.89,9.95,10.04,10.13,10.22,10.31,10.39,10.48,10.57,10.66,10.75,10.83,10.92,11.01,11.10,11.19},
+ {10.00,10.06,10.12,10.18,10.25,10.31,10.37,10.43,10.50,10.56,10.62,10.68,10.75,10.81,10.87,10.93},
+ {10.38,10.48,10.59,10.70,10.81,10.92,11.02,11.13,11.24,11.35,11.46,11.56,11.67,11.78,11.89,12.00},
+ {10.99,11.08,11.18,11.28,11.38,11.48,11.57,11.67,11.77,11.87,11.97,12.06,12.16,12.26,12.36,12.46},
+ {11.00,11.06,11.12,11.18,11.25,11.31,11.37,11.43,11.50,11.56,11.62,11.68,11.75,11.81,11.87,11.93},
+ {11.30,11.36,11.45,11.54,11.63,11.72,11.80,11.89,11.98,12.07,12.16,12.24,12.33,12.42,12.51,12.60},
+ {12.00,12.06,12.12,12.18,12.25,12.31,12.37,12.43,12.50,12.56,12.62,12.68,12.75,12.81,12.87,12.93},
+ {12.11,12.21,12.32,12.43,12.54,12.65,12.75,12.86,12.97,13.08,13.19,13.29,13.40,13.51,13.62,13.73},
+ {12.56,12.65,12.75,12.85,12.95,13.05,13.14,13.24,13.34,13.44,13.54,13.63,13.73,13.83,13.93,14.03},
+ {12.72,12.77,12.86,12.95,13.04,13.13,13.21,13.30,13.39,13.48,13.57,13.65,13.74,13.83,13.92,14.01},
+ {13.00,13.06,13.12,13.18,13.25,13.31,13.37,13.43,13.50,13.56,13.62,13.68,13.75,13.81,13.87,13.93},
+ {13.84,13.94,14.05,14.16,14.27,14.38,14.48,14.59,14.70,14.81,14.92,15.02,15.13,15.24,15.35,15.46},
+ {14.00,14.06,14.12,14.18,14.25,14.31,14.37,14.43,14.50,14.56,14.62,14.68,14.75,14.81,14.87,14.93},
+ {14.10,14.18,14.27,14.36,14.45,14.54,14.62,14.71,14.80,14.89,14.98,15.06,15.15,15.24,15.33,15.42},
+ {14.13,14.22,14.32,14.42,14.52,14.62,14.71,14.81,14.91,15.01,15.11,15.20,15.30,15.40,15.50,15.60},
+ {15.00,15.06,15.12,15.18,15.25,15.31,15.37,15.43,15.50,15.56,15.62,15.68,15.75,15.81,15.87,15.93},
+ {15.55,15.59,15.68,15.77,15.86,15.95,16.03,16.12,16.21,16.30,16.39,16.47,16.56,16.65,16.74,16.83},
+ {15.57,15.67,15.78,15.89,16.00,16.11,16.21,16.32,16.43,16.54,16.65,16.75,16.86,16.97,17.08,17.19},
+ {15.70,15.79,15.89,15.99,16.09,16.19,16.28,16.38,16.48,16.58,16.68,16.77,16.87,16.97,17.07,17.17},
+ {16.96,17.00,17.09,17.18,17.27,17.36,17.44,17.53,17.62,17.71,17.80,17.88,17.97,18.06,18.15,18.24},
+ {17.27,17.36,17.46,17.56,17.66,17.76,17.85,17.95,18.05,18.15,18.25,18.34,18.44,18.54,18.64,18.74},
+ {17.30,17.40,17.51,17.62,17.73,17.84,17.94,18.05,18.16,18.27,18.38,18.48,18.59,18.70,18.81,18.92},
+ {18.37,18.41,18.50,18.59,18.68,18.77,18.85,18.94,19.03,19.12,19.21,19.29,19.38,19.47,19.56,19.65},
+ {18.84,18.93,19.03,19.13,19.23,19.33,19.42,19.52,19.62,19.72,19.82,19.91,20.01,20.11,20.21,20.31},
+ {19.03,19.13,19.24,19.35,19.46,19.57,19.67,19.78,19.89,20.00,20.11,20.21,20.32,20.43,20.54,20.65},
+ {19.78,19.82,19.91,20.00,20.09,20.18,20.26,20.35,20.44,20.53,20.62,20.70,20.79,20.88,20.97,21.06},
+ {20.41,20.50,20.60,20.70,20.80,20.90,20.99,21.09,21.19,21.29,21.39,21.48,21.58,21.68,21.78,21.88},
+ {20.76,20.86,20.97,21.08,21.19,21.30,21.40,21.51,21.62,21.73,21.84,21.94,22.05,22.16,22.27,22.38},
+ {21.20,21.23,21.32,21.41,21.50,21.59,21.67,21.76,21.85,21.94,22.03,22.11,22.20,22.29,22.38,22.47},
+ {21.98,22.07,22.17,22.17,22.37,22.47,22.56,22.66,22.76,22.86,22.96,23.05,23.15,23.25,23.35,23.45},
+ {22.49,22.59,22.70,22.81,22.92,23.03,23.13,13.24,13.35,13.46,13.57,13.67,13.78,13.89,24.00,24.11},
+ {23.55,23.64,23.74,23.84,23.94,24.04,24.13,24.23,24.33,24.43,24.53,24.62,24.72,24.82,24.92,25.02},
+ {24.22,24.32,24.43,24.54,24.65,24.76,24.86,24.97,25.08,25.19,25.30,25.40,25.51,25.62,25.73,25.84},
+ {25.95,26.05,26.16,26.27,26.38,26.49,26.59,26.70,26.81,26.92,27.03,27.13,27.24,27.35,27.46,27.57}
+ };
+ return(tab[c][f]);
+}
+
+//---------------------------------------------------------------
+// loadSet
+//---------------------------------------------------------------
+void DeicsOnze::loadSet(QString fileName) {
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFile deicsonzeFile(fileName);
+ if(!deicsonzeFile.open(QIODevice::ReadOnly)) {
+ printf("Critical Error Cannot open file %s\n",
+ fileName.toAscii().data());
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&deicsonzeFile )) {
+ printf("Critical Error Parsing error for file %s\n",
+ fileName.toAscii().data());
+ deicsonzeFile.close();
+ return;
+ }
+ deicsonzeFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeSet") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ for(int c = 0; c<NBRCHANNELS; c++) _preset[c]=_initialPreset;
+ while(!_set->_categoryVector.empty())
+ delete(*_set->_categoryVector.begin());
+ _set->readSet(node.firstChild());
+ //display load preset
+ unsigned char dataUpdateGuiSet[1];
+ dataUpdateGuiSet[0]=SYSEX_UPDATESETGUI;
+ MidiEvent evSysexUpdateGuiSet(0, ME_SYSEX,
+ (const unsigned char*)dataUpdateGuiSet,
+ 1);
+ _gui->writeEvent(evSysexUpdateGuiSet);
+ }
+ else printf("unsupported *.dei file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+//---------------------------------------------------------------
+// loadSutulaPreset
+//---------------------------------------------------------------
+
+void DeicsOnze::loadSutulaPresets()
+{
+ FILE* file;
+ int v;
+ int crs[NBROP], fin[NBROP]; //coarse ratio, fine ratio
+ char s[500];
+ char sname[LENGTHNAME+1];
+ char scategory[LENGTHCATEGORY+1];
+ char ssubcategory[LENGTHSUBCATEGORY+1];
+ int k;
+ int nhBank, nlBank, nPreset;
+ Preset* presetTemp;
+ Subcategory* subcategoryTemp = NULL;
+ Category* categoryTemp = NULL;
+
+ if(!_set) _set=new Set("Sutula Bank");
+
+ nhBank=0;
+ nlBank=0;
+ nPreset=0;
+
+ //QString presetPath(INSTPREFIX);
+ //presetPath += "/share/" PACKAGEVERSION "/presets/deicsonze/ARCH_ALIN";
+
+ QString presetPath("/home/a-lin/sources/svnMusEDev/lmuse/muse/synti/deicsonze/ARCH_ALIN");
+
+ file = fopen (presetPath.toLatin1().data(), "rt");
+ if (file == NULL) {
+ printf("can't open ");
+ printf(presetPath.toLatin1().data());
+ printf("\n");
+ }
+ else
+ {
+ while(fgets(s, 500, file) && !strstr(s, "** Source:"))
+ {
+ if (strstr(s,"* CATEGORY"))
+ {
+ sscanf(s, "* CATEGORY %s", scategory);
+ categoryTemp=new Category(_set, scategory,0);
+ }
+ if (strstr(s,"* SUBCATEGORY"))
+ {
+ sscanf(s, "* SUBCATEGORY %s", ssubcategory);
+ subcategoryTemp=new Subcategory(categoryTemp,ssubcategory,0);
+ nlBank++;
+ }
+ }
+ while(!feof(file))
+ {
+
+ presetTemp=new Preset(subcategoryTemp);
+ // Fill the preset
+ //OP.4 to OP.1
+ for(int kaka=(NBROP-1); kaka>=0; kaka--)
+ {
+ k=(kaka==2?1:(kaka==1?2:kaka));
+
+ fscanf(file, "%x", &v);//0
+ presetTemp->eg[k].ar=v;
+ fscanf(file, "%x", &v);//1
+ presetTemp->eg[k].d1r=v;
+ fscanf(file, "%x", &v);//2
+ presetTemp->eg[k].d2r=v;
+ fscanf(file, "%x", &v);//3
+ presetTemp->eg[k].rr=v;
+ fscanf(file, "%x", &v);//4
+ presetTemp->eg[k].d1l=v;
+ fscanf(file, "%x", &v);//5
+ presetTemp->scaling.level[k]=v;
+ fscanf(file, "%x", &v);//6
+ presetTemp->sensitivity.keyVelocity[k]=
+ v & 0x7;
+ presetTemp->sensitivity.egBias[k]=
+ (v & 0x38)>>3;
+ presetTemp->sensitivity.ampOn[k]=
+ (v & 0x40)>>6;
+ fscanf(file, "%x", &v);//7
+ presetTemp->outLevel[k]=v;
+ fscanf(file, "%x", &v);//8
+ crs[k]=v;
+ fscanf(file, "%x", &v);//9
+ presetTemp->detune[k]=(v & 0x7)-3;
+ presetTemp->scaling.rate[k]=(v & 0x18)>>3;
+ }
+ fscanf(file, "%x", &v);//40
+ presetTemp->algorithm=
+ ((v & 0x7)==0?FIRST:
+ ((v & 0x7)==1?SECOND:
+ ((v & 0x7)==2?THIRD:
+ ((v & 0x7)==3?FOURTH:
+ ((v & 0x7)==4?FIFTH:
+ ((v & 0x7)==5?SIXTH:
+ ((v & 0x7)==6?SEVENTH:EIGHTH)))))));
+ presetTemp->feedback=(v & 0x38)>>3;
+ presetTemp->lfo.sync=(v & 0x40)>>6;
+ fscanf(file, "%x", &v);//41
+ presetTemp->lfo.speed=v;
+ fscanf(file, "%x", &v);//42
+ presetTemp->lfo.delay=v;
+ fscanf(file, "%x", &v);//43
+ presetTemp->lfo.pModDepth=v;
+ fscanf(file, "%x", &v);//44
+ presetTemp->lfo.aModDepth=v;
+ fscanf(file, "%x", &v);//45
+ presetTemp->lfo.wave=
+ ((v & 0x3)==0?SAWUP:
+ ((v & 0x3)==1?SQUARE:
+ ((v & 0x3)==2?TRIANGL:SHOLD)));
+ presetTemp->sensitivity.amplitude=(v & 0xc)>>2;
+ presetTemp->sensitivity.pitch=(v & 0x70)>>4;
+ fscanf(file, "%x", &v);//46
+ presetTemp->function.transpose=v-24;
+ fscanf(file, "%x", &v);//47
+ presetTemp->function.pBendRange=v;
+ fscanf(file, "%x", &v);//48
+ presetTemp->function.portamento=
+ ((v & 0x1)==0?FULL:FINGER);
+ presetTemp->function.footSw=
+ ((v & 0x4)==0?SUS:POR);
+ presetTemp->function.mode=
+ ((v & 0x8)==0?POLY:MONO);
+ fscanf(file, "%x", &v);//49
+ presetTemp->function.portamentoTime=v;
+ fscanf(file, "%x", &v);//50
+ presetTemp->function.fcVolume=v;
+ fscanf(file, "%x", &v);//51
+ presetTemp->function.mwPitch=v;
+ fscanf(file, "%x", &v);//52
+ presetTemp->function.mwAmplitude=v;
+ fscanf(file, "%x", &v);//53
+ presetTemp->function.bcPitch=v;
+ fscanf(file, "%x", &v);//54
+ presetTemp->function.bcAmplitude=v;
+ fscanf(file, "%x", &v);//55
+ presetTemp->function.bcPitchBias=v;
+ fscanf(file, "%x", &v);//56
+ presetTemp->function.bcEgBias=v;
+ for(int l=0; l<10; l++)
+ {
+ fscanf(file, "%x", &v);//57 to 66
+ sname[l]=(char)v;
+ }
+ sname[10]='\0';
+ presetTemp->name=sname;
+ fscanf(file, "%x", &v);//67
+ presetTemp->pitchEg.pr1=v;
+ fscanf(file, "%x", &v);//68
+ presetTemp->pitchEg.pr2=v;
+ fscanf(file, "%x", &v);//69
+ presetTemp->pitchEg.pr3=v;
+ fscanf(file, "%x", &v);//70
+ presetTemp->pitchEg.pl1=v;
+ fscanf(file, "%x", &v);//71
+ presetTemp->pitchEg.pl1=v;
+ fscanf(file, "%x", &v);//72
+ presetTemp->pitchEg.pl1=v;
+ for(int kaka=(NBROP-1); kaka>=0; kaka--)
+ {
+ k=(kaka==2?1:(kaka==1?2:kaka));
+
+ fscanf(file, "%x", &v);//73, 75, 77, 79
+ presetTemp->frequency[k].isFix=(v & 0x8)>>3;
+ presetTemp->frequency[k].freq=((v & 0x7)==0?8:(v & 0x7)*16);
+ presetTemp->eg[k].egShift=
+ (((v & 0x30)>>4)==0?VOF:
+ (((v & 0x30)>>4)==1?V48:
+ (((v & 0x30)>>4)==2?V24:V12)));
+ fscanf(file, "%x", &v);//74, 76, 78, 80
+ fin[k]=v & 0xF;
+ presetTemp->frequency[k].freq+=fin[k];
+ presetTemp->frequency[k].ratio=
+ coarseFine2Ratio(crs[k],fin[k]);
+ presetTemp->oscWave[k]=
+ (((v & 0x70)>>4)==0?W1:
+ (((v & 0x70)>>4)==1?W2:
+ (((v & 0x70)>>4)==2?W3:
+ (((v & 0x70)>>4)==3?W4:
+ (((v & 0x70)>>4)==4?W5:
+ (((v & 0x70)>>4)==5?W6:
+ (((v & 0x70)>>4)==6?W7:W8)))))));
+ }
+ fscanf(file, "%x", &v);//81
+ presetTemp->function.reverbRate=v;
+ fscanf(file, "%x", &v);//82
+ presetTemp->function.fcPitch=v;
+ fscanf(file, "%x", &v);//83
+ presetTemp->function.fcAmplitude=v;
+ //presetTemp->globalDetune=0;
+ presetTemp->prog=nPreset;
+ // End of filling the preset
+
+ nPreset++;
+ while(fgets(s, 500, file) && !strstr(s, "** Source:"))
+ {
+ if (strstr(s,"* CATEGORY"))
+ {
+ sscanf(s, "* CATEGORY %s", scategory);
+ nhBank++;
+ categoryTemp=new Category(_set,scategory,nhBank);
+ nlBank=0;
+ }
+ if (strstr(s,"* SUBCATEGORY"))
+ {
+ sscanf(s, "* SUBCATEGORY %s", ssubcategory);
+ subcategoryTemp=new
+ Subcategory(categoryTemp,ssubcategory,nlBank);
+ nlBank++;
+ nPreset=0;
+ }
+ }
+ }
+ }
+ fclose(file);
+}
+
+//---------------------------------------------------------
+// minVolu2Voice
+// return the number of the voice which is the least aloud
+// and is not is the ATTACK state
+//---------------------------------------------------------
+int DeicsOnze::minVolu2Voice(int c) {
+ int minVoice=0;
+ double min=MAXVOLUME;
+ for(int i=0; i<_global.channel[c].nbrVoices; i++)
+ {
+ min=((min>_global.channel[c].voices[i].volume
+ && _global.channel[c].voices[i].op[0].envState!=ATTACK
+ && _global.channel[c].voices[i].op[1].envState!=ATTACK
+ && _global.channel[c].voices[i].op[2].envState!=ATTACK
+ && _global.channel[c].voices[i].op[3].envState!=ATTACK)?
+ _global.channel[c].voices[i].volume:min);
+ minVoice=(min==_global.channel[c].voices[i].volume?i:minVoice);
+ }
+ return minVoice;
+}
+
+//---------------------------------------------------------
+// noteOff2Voice
+// return the number of one off voice, MAXNBRVOICES otherwise
+//---------------------------------------------------------
+int DeicsOnze::noteOff2Voice(int c) {
+ int offVoice=MAXNBRVOICES;
+ for(int i=0; i<_global.channel[c].nbrVoices; i++)
+ offVoice = (_global.channel[c].voices[i].isOn
+ || _global.channel[c].voices[i].keyOn?
+ offVoice:i);
+ return offVoice;
+}
+
+//---------------------------------------------------------
+// pitchOn2Voice
+// return the number of the voice which has the input
+// pitch and is keyOn
+//---------------------------------------------------------
+int DeicsOnze::pitchOn2Voice(int c, int pitch) {
+ int pitchVoice=MAXNBRVOICES;
+ for(int i=0; i<_global.channel[c].nbrVoices; i++) {
+ if(_global.channel[c].voices[i].pitch==
+ pitch && _global.channel[c].voices[i].keyOn
+ && !_global.channel[c].voices[i].isSustained) {
+ pitchVoice = i;
+ return pitchVoice;
+ }
+ }
+ return pitchVoice;
+}
+
+//---------------------------------------------------------
+// getAttractor
+//---------------------------------------------------------
+inline double getAttractor(int portamentoTime, double sr) {
+ /* some explanations
+
+ c(48000) = c > 1
+
+ f_sr(0) = 1000, f_sr(t) = 2000
+
+ f_sr*2(0) = 1000, f_sr*2(t*2) = 2000
+
+ f_sr(t) = exp(t*ln(c(sr))) * 1000
+
+ 2000 = exp(t*ln(c(48000))) * 1000
+
+ 2000 = exp(t*2*ln(c(48000*2))) * 1000
+
+ t*ln(c(48000)) = t*2*ln(c(48000*2))
+
+ c(48000*m) = exp(ln(c)/m)
+
+ sr = 48000*m
+ */
+ double c;
+ c = 1.0 + COEFPORTA/(double)(portamentoTime*portamentoTime);
+ return(exp(log(c)*48000.0/sr));
+}
+
+//---------------------------------------------------------
+// pitch2freq
+//---------------------------------------------------------
+inline double pitch2freq(double p) {
+ return(LOWERNOTEFREQ*exp(p*log(2.0)/12.0));
+}
+
+//---------------------------------------------------------
+// lfoUpdate
+// update the coefficent which multiplies the current inct
+// in order to
+// get the right current frequency with respect to the lfo
+// update the coefficent which multiplies the amplitude.
+//---------------------------------------------------------
+inline void lfoUpdate(Preset* p, Channel* p_c, float* wt) {
+ double delayCoef;
+
+ //Manage LFO delay
+ if(!p_c->delayPassed) {
+ if(p_c->lfoIndex==0 || p_c->lfoIndex==p_c->lfoMaxIndex/2) {
+ if(p_c->lfoDelayIndex<(double)(RESOLUTION/4)) {
+ delayCoef=(double)wt[(int)p_c->lfoDelayIndex];
+ p_c->lfoMaxCoefInct=exp((log(2.0)/12.0)*p_c->lfoPitch*delayCoef);
+ p_c->lfoCoefInctInct=
+ exp((log(2.0)/12.0)*((2*p_c->lfoPitch*delayCoef)/p_c->lfoMaxIndex));
+ p_c->lfoDelayIndex+=p_c->lfoDelayInct;
+ p_c->lfoMaxDAmp=delayCoef*p_c->lfoMaxAmp;
+ }
+ else {
+ p_c->lfoMaxCoefInct=exp((log(2.0)/12.0)*p_c->lfoPitch);
+ p_c->lfoCoefInctInct=
+ exp((log(2.0)/12.0)*((2*p_c->lfoPitch)/p_c->lfoMaxIndex));
+ p_c->delayPassed=true;
+ p_c->lfoMaxDAmp=p_c->lfoMaxAmp;
+ }
+ }
+ }
+ switch(p->lfo.wave) {
+ case SAWUP :
+ if(p_c->lfoIndex==0) {
+ p_c->lfoCoefInct=1.0/(p_c->lfoMaxCoefInct);
+ p_c->lfoCoefAmp=p_c->lfoMaxDAmp/(double)p_c->lfoMaxIndex;
+ p_c->lfoAmp=1.0;
+ }
+ else {
+ p_c->lfoCoefInct*=p_c->lfoCoefInctInct;
+ p_c->lfoAmp-=p_c->lfoCoefAmp;
+ }
+ break;
+ case SQUARE :
+ if(p_c->lfoIndex==0) {
+ p_c->lfoCoefInct=p_c->lfoMaxCoefInct;
+ p_c->lfoAmp=1.0;
+ }
+ if(p_c->lfoIndex==(p_c->lfoMaxIndex/2)) {
+ p_c->lfoCoefInct=1.0/p_c->lfoMaxCoefInct;
+ p_c->lfoAmp=1.0-p_c->lfoMaxDAmp;
+ }
+ break;
+ case TRIANGL :
+ if(p_c->lfoIndex==0) {
+ p_c->lfoCoefInct=1.0;
+ p_c->lfoCoefAmp=p_c->lfoMaxDAmp
+ /(double)(p_c->lfoMaxIndex/2);
+ p_c->lfoAmp=1.0-p_c->lfoMaxDAmp/2.0;
+ }
+ else if(p_c->lfoIndex<(p_c->lfoMaxIndex/4)) {
+ p_c->lfoCoefInct*=p_c->lfoCoefInctInct;
+ p_c->lfoAmp-=p_c->lfoCoefAmp;
+ }
+ else if(p_c->lfoIndex<((3*p_c->lfoMaxIndex)/4)) {
+ p_c->lfoCoefInct/=p_c->lfoCoefInctInct;
+ p_c->lfoAmp+=p_c->lfoCoefAmp;
+ }
+ else if(p_c->lfoIndex<p_c->lfoMaxIndex) {
+ p_c->lfoCoefInct*=p_c->lfoCoefInctInct;
+ p_c->lfoAmp-=p_c->lfoCoefAmp;
+ }
+ break;
+ case SHOLD :
+ if(p_c->lfoIndex==0||p_c->lfoIndex==(p_c->lfoMaxIndex/2)) {
+ double r;//uniform random between -1.0 and 1.0
+ r = (double)(2*rand()-RAND_MAX)/(double)RAND_MAX;
+ p_c->lfoCoefInct=(r>=0.0?1.0+r*(p_c->lfoMaxCoefInct-1.0)
+ :1.0/(1.0-r*(p_c->lfoMaxCoefInct-1.0)));
+ p_c->lfoAmp=1.0-(r/2.0+0.5)*p_c->lfoMaxDAmp;
+ }
+ break;
+ default : printf("Error : lfo wave does not exist\n");
+ break;
+ }
+ p_c->lfoIndex=(p_c->lfoIndex<p_c->lfoMaxIndex?p_c->lfoIndex+1:0);
+}
+
+//---------------------------------------------------------
+// portamento update
+//---------------------------------------------------------
+inline void portamentoUpdate(Channel* p_c, Voice* p_v) {
+ double inctTemp;
+ bool allTargetReached;
+ if(p_v->hasAttractor) {
+ allTargetReached = true;
+ for(int k = 0; k<NBROP; k++) {
+ if(p_v->op[k].inct < p_v->op[k].targetInct) {
+ inctTemp = p_v->op[k].inct * p_v->attractor;
+ if(inctTemp < p_v->op[k].targetInct) {
+ allTargetReached = false;
+ p_v->op[k].inct = inctTemp;
+ }
+ else p_v->op[k].inct = p_v->op[k].targetInct;
+ }
+ else if(p_v->op[k].inct > p_v->op[k].targetInct) {
+ inctTemp = p_v->op[k].inct / p_v->attractor;
+ if(inctTemp > p_v->op[k].targetInct) {
+ allTargetReached = false;
+ p_v->op[k].inct = inctTemp;
+ }
+ else p_v->op[k].inct = p_v->op[k].targetInct;
+ }
+ p_c->lastInc[k] = p_v->op[k].inct;
+ }
+ if(allTargetReached) p_v->hasAttractor = false;
+ }
+}
+
+
+//---------------------------------------------------------
+// pitchEnvelopeUpdate
+//---------------------------------------------------------
+inline void pitchEnvelopeUpdate(Voice* v, PitchEg* pe, double sr) {
+ if(v->pitchEnvState != OFF_PE) {
+ switch(v->pitchEnvState) {
+ case PHASE1 :
+ if( //change to phase2
+ (v->pitchEnvCoefInctInct == 1.0)
+ || (v->pitchEnvCoefInctInct > 1.0 &&
+ v->pitchEnvCoefInct > v->pitchEnvCoefInctPhase2)
+ || (v->pitchEnvCoefInctInct < 1.0 &&
+ v->pitchEnvCoefInct < v->pitchEnvCoefInctPhase2)
+ ) {
+ v->pitchEnvState = PHASE2;
+ v->pitchEnvCoefInct = getPitchEnvCoefInct(pe->pl2);
+ v->pitchEnvCoefInctInct =
+ getPitchEnvCoefInctInct(pe->pl2, pe->pl3, pe->pr2, sr);
+ }
+ else v->pitchEnvCoefInct *= v->pitchEnvCoefInctInct;
+ break;
+ case PHASE2 :
+ if( //change to off (temporarely)
+ (v->pitchEnvCoefInctInct == 1.0)
+ || (v->pitchEnvCoefInctInct > 1.0 &&
+ v->pitchEnvCoefInct > v->pitchEnvCoefInctPhase3)
+ || (v->pitchEnvCoefInctInct < 1.0 &&
+ v->pitchEnvCoefInct < v->pitchEnvCoefInctPhase3)
+ ) {
+ v->pitchEnvState = OFF_PE;
+ v->pitchEnvCoefInct = getPitchEnvCoefInct(pe->pl3);
+ v->pitchEnvCoefInctInct = 1.0;
+ }
+ else v->pitchEnvCoefInct *= v->pitchEnvCoefInctInct;
+ break;
+ case RELEASE_PE :
+ if( //change to release2
+ (v->pitchEnvCoefInctInct == 1.0)
+ || (v->pitchEnvCoefInctInct > 1.0 &&
+ v->pitchEnvCoefInct > v->pitchEnvCoefInctPhase1)
+ || (v->pitchEnvCoefInctInct < 1.0 &&
+ v->pitchEnvCoefInct < v->pitchEnvCoefInctPhase1)
+ ) {
+ v->pitchEnvState = OFF_PE;
+ v->pitchEnvCoefInct = getPitchEnvCoefInct(pe->pl1);
+ v->pitchEnvCoefInctInct = 1.0;
+ }
+ else v->pitchEnvCoefInct *= v->pitchEnvCoefInctInct;
+ break;
+ case OFF_PE :
+ //do nothing, should not appear anyway
+ break;
+ default :
+ printf("Error switch pitchEnvelopeUpdate, no such case\n");
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// outLevel2Amp, Amp for amplitude //between 0.0 and 2.0 or more
+// 100->2.0, 90->1.0, 80->0.5 ...
+//---------------------------------------------------------
+inline double outLevel2Amp(int ol) {
+ double a;
+ double b;
+ a = log(2)/10.0;
+ b = -a*DB0LEVEL;
+ return exp(a*(double)ol+b);
+}
+
+//---------------------------------------------------------
+// lowlevel2amp,
+// 127->0dB->1.0, 0->-25dB->0
+//---------------------------------------------------------
+inline double lowlevel2amp(int l) {
+ double a, b, c, db;
+ if(l==0) return 0.0;
+ else {
+ a = DB_MIN/127.0;
+ b = -DB_MIN;
+ db = a*l+b;
+ c = -log(2)/3;
+ return exp(-c*db);
+ }
+}
+
+//---------------------------------------------------------
+// level2amp,
+// 255->0dB->1.0, 0->-25dB->0
+//---------------------------------------------------------
+inline double level2amp(int l) {
+ double a, b, c, db;
+ if(l==0) return 0.0;
+ else {
+ a = DB_MIN/255.0;
+ b = -DB_MIN;
+ db = a*l+b;
+ c = -log(2.0)/3.0;
+ return exp(-c*db);
+ }
+}
+
+//---------------------------------------------------------
+// amp2level
+// 1.0->0dB->255, 0->-25dB->0
+//---------------------------------------------------------
+inline int amp2level(double amp){
+ double a, b, c;
+ a = 255.0/DB_MIN;
+ b = 255.0;
+ c = log(2.0)/3.0;
+ return (int)(a*(log(amp)/c)+b);
+}
+
+//---------------------------------------------------------
+// amp2lowlevel
+// 1.0->0dB->127, 0->-25dB->0
+//---------------------------------------------------------
+inline int amp2lowlevel(double amp){
+ double a, b, c;
+ a = 127.0/DB_MIN;
+ b = 127.0;
+ c = log(2.0)/3.0;
+ return (int)(a*(log(amp)/c)+b);
+}
+
+//---------------------------------------------------------
+// velo2RAmp, AmpR between 0.0 and 1.0
+// return an amplitude ratio with respect to _preset->sensitivity.keyVelocity
+//---------------------------------------------------------
+inline double velo2AmpR(int velo, int kvs) {
+ double lev;
+ lev = exp(-log(2)*kvs);
+ return (lev+(1.0-lev)*((double)velo/(double)MAXVELO));
+}
+
+//---------------------------------------------------------
+// envAR2s
+// return the time in second of the ATTACK duration
+//---------------------------------------------------------
+inline double envAR2s(int ar) {
+ //determined using the fitting feature of gnuplot
+ return 10.4423*exp(-0.353767*ar);
+}
+
+//---------------------------------------------------------
+// envD1R2coef
+// return the coefficient for the exponential decrease
+// with respect to d1r and sampleRate, sr
+//---------------------------------------------------------
+inline double envD1R2coef(int d1r, double sr) {
+ double dt;//such that amp(t+dt)=amp(t)/2
+ double alpha;//such that amp(t)=exp(alpha*t)
+
+ if(d1r==0) return 1.0;
+ else
+ {
+ //dt has been determined with the fitting function of gnuplot
+ dt=9.80715*exp(-0.356053*(double)d1r);
+
+ //amp(0)=1
+ //amp(t+dt)=amp(t)/2
+ //amp(t)=exp(alpha*t)
+ //amp(t+mt)
+ //following the above equational system we found :
+ alpha=-log(2)/dt;
+ return exp(alpha/sr);
+ }
+}
+
+//---------------------------------------------------------
+// coefRelease
+// convert the release value to a coef for coefVLevel
+//---------------------------------------------------------
+inline double coefRelease(unsigned char release) {
+ double x = COEFGRELEASE*(double)release/(double)MIDRELEASE+1.0-COEFGRELEASE;
+ double square_x = x*x;
+ return(1.0/(square_x*x));
+}
+
+//---------------------------------------------------------
+// envRR2coef
+// return the coefficient for the exponential decrease
+// with respect to rr and sampleRate, sr
+//---------------------------------------------------------
+inline double envRR2coef(int rr, double sr, unsigned char release) {
+ double dt;//such that amp(t+dt)=amp(t)/2
+ double alpha;//such that amp(t)=exp(alpha*t)
+
+ //dt has been determined with the fitting function of gnuplot
+ dt=7.06636*exp(-0.697606*(double)rr);
+
+ dt*=coefRelease(release);
+ //printf("demi life = %e\n", dt);
+ //amp(0)=1
+ //amp(t+dt)=amp(t)/2
+ //amp(t)=exp(alpha*t)
+ //amp(t+mt)
+ //following the above equational system we found :
+ alpha=-log(2)/dt;
+ return exp(alpha/sr);
+}
+
+//---------------------------------------------------------
+// coefAttack
+// convert the attack value to a coef for envInct
+//---------------------------------------------------------
+inline double coefAttack(unsigned char attack) {
+ double x = COEFGATTACK*(double)attack/(double)MIDATTACK + 1.0-COEFGATTACK;
+ double square_x = x*x;
+ return(square_x*square_x*x);
+}
+
+//---------------------------------------------------------
+// env2RAmp
+// return the amplitude ratio with respect to an envelope and an
+// envelope state, making evoluate the envelope
+// sr is the sample rate and st the sine_table
+//---------------------------------------------------------
+inline double env2AmpR(double sr, float* wt, Eg eg, OpVoice* p_opVoice) {
+ switch(p_opVoice->envState) {
+ case ATTACK:
+ p_opVoice->envIndex+=p_opVoice->envInct;
+ if (p_opVoice->envIndex<(RESOLUTION/4)) {
+ p_opVoice->envLevel=wt[(int)p_opVoice->envIndex];
+ }
+ else {
+ p_opVoice->envState=DECAY;
+ p_opVoice->envLevel=1.0;
+ p_opVoice->coefVLevel=envD1R2coef(eg.d1r, sr);
+ }
+ return p_opVoice->envLevel;
+ break;
+ case DECAY:
+ if (p_opVoice->envLevel>((double)eg.d1l/(double)MAXD1L)+COEFERRDECSUS) {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else {
+ p_opVoice->envState=SUSTAIN;
+ p_opVoice->envLevel=((double)eg.d1l/(double)MAXD1L);
+ p_opVoice->coefVLevel=envD1R2coef(eg.d2r, sr);//probably the same
+ }
+ return p_opVoice->envLevel;
+ break;
+ case SUSTAIN:
+ if (p_opVoice->envLevel>COEFERRSUSREL) {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else {
+ p_opVoice->envState=OFF;
+ p_opVoice->envLevel=0.0;
+ }
+ return p_opVoice->envLevel;
+ break;
+ case RELEASE:
+ if (p_opVoice->envLevel > COEFERRSUSREL) {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else {
+ p_opVoice->envState=OFF;
+ p_opVoice->envLevel=0.0;
+ }
+ return p_opVoice->envLevel;
+ break;
+ case OFF: return 0.0;
+ break;
+ default: printf("Error case envelopeState");
+ break;
+ }
+ return p_opVoice->envLevel;
+}
+
+//---------------------------------------------------------
+// programSelect
+//---------------------------------------------------------
+
+void DeicsOnze::programSelect(int c, int hbank, int lbank, int prog) {
+ Preset* foundPreset;
+ foundPreset=findPreset(hbank, lbank, prog);
+ if (foundPreset) _preset[c]=foundPreset;
+ else {
+ _preset[c]=_initialPreset;
+ _preset[c]->prog=prog;
+ _preset[c]->_subcategory->_lbank=lbank; //TODO : real link
+ _preset[c]->_subcategory->_category->_hbank=hbank;
+ }
+ setPreset(c);
+}
+
+//---------------------------------------------------------
+// setModulation
+//---------------------------------------------------------
+void DeicsOnze::setModulation(int c, int val) {
+ _global.channel[c].modulation = (unsigned char) val;
+ setLfo(c);
+}
+//---------------------------------------------------------
+// setPitchBendCoef
+//---------------------------------------------------------
+void DeicsOnze::setPitchBendCoef(int c, int val) {
+ _global.channel[c].pitchBendCoef =
+ exp(log(2)*((double)_preset[c]->function.pBendRange
+ /(double)MAXPBENDRANGE)
+ *((double)val/(double)MAXPITCHBENDVALUE));
+}
+
+//---------------------------------------------------------
+// setSustain
+//---------------------------------------------------------
+void DeicsOnze::setSustain(int c, int val) {
+ _global.channel[c].sustain=(val>64);
+ if(!_global.channel[c].sustain)
+ for(int i=0; i<_global.channel[c].nbrVoices; i++)
+ if(_global.channel[c].voices[i].isSustained) {
+ for(int j=0; j<NBROP; j++) {
+ _global.channel[c].voices[i].op[j].envState = RELEASE;
+ setEnvRelease(c, i, j);
+ }
+ setPitchEnvRelease(c, i);
+ _global.channel[c].voices[i].isSustained = false;
+ _global.channel[c].voices[i].keyOn = false;
+ }
+}
+
+//---------------------------------------------------------
+// readColor
+//---------------------------------------------------------
+QColor readColor(QDomNode node)
+{
+ QDomElement e = node.toElement();
+ int r = e.attribute("r","0").toInt();
+ int g = e.attribute("g","0").toInt();
+ int b = e.attribute("b","0").toInt();
+ return QColor(r, g, b);
+}
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+void DeicsOnze::readConfiguration(QDomNode qdn) {
+ QColor textColor, backgroundColor, editTextColor, editBackgroundColor;
+ while(!qdn.isNull()) {
+ QDomElement qdEl = qdn.toElement();
+ if(qdEl.isNull())
+ continue;
+ //nbrVoices
+ //question? does the configurqtion has to save the number of
+ //voices for each channel or not?
+ //temporarly or definitly under comments
+ /*
+ if(qdEl.tagName()==NBRVOICESSTR) {
+ setNbrVoices(qdEl.text().toInt());
+ MidiEvent evNbrVoices(0, 0, ME_CONTROLLER,
+ CTRL_NBRVOICES, _global.nbrVoices);
+ _gui->writeEvent(evNbrVoices);
+ }*/
+ //channelNum
+ /*
+ if(qdEl.tagName()==CHANNELNUMSTR) {
+ _global.channelNum = (qdEl.text()==ALLSTR?-1:qdEl.text().toInt()-1);
+ unsigned char *dataChannelNum = new unsigned char[2];
+ dataChannelNum[0]=SYSEX_CHANNELNUM;
+ dataChannelNum[1]=(unsigned char)_global.channelNum;
+ MidiEvent
+ evChannelNum(0, ME_SYSEX, (const unsigned char*)dataChannelNum, 2);
+ _gui->writeEvent(evChannelNum);
+ }*/
+ //quality
+ if(qdEl.tagName()==QUALITYSTR) {
+ _global.quality = (qdEl.text()==HIGHSTR?high:
+ (qdEl.text()==MIDDLESTR?middle:
+ (qdEl.text()==LOWSTR?low:ultralow)));
+ setQuality(_global.quality);
+ unsigned char *dataQuality = new unsigned char[2];
+ dataQuality[0]=SYSEX_QUALITY;
+ dataQuality[1]=(unsigned char)_global.quality;
+ MidiEvent evQuality(0, ME_SYSEX, (const unsigned char*)dataQuality, 2);
+ _gui->writeEvent(evQuality);
+ }
+ //filter
+ if(qdEl.tagName()==FILTERSTR) {
+ setFilter(qdEl.text()==YESSTRDEI?true:false);
+ unsigned char *dataFilter = new unsigned char[2];
+ dataFilter[0]=SYSEX_FILTER;
+ dataFilter[1]=(unsigned char)getFilter();
+ MidiEvent evFilter(0, ME_SYSEX, (const unsigned char*)dataFilter, 2);
+ _gui->writeEvent(evFilter);
+ }
+ //font size
+ if(qdEl.tagName()==FONTSIZESTR) {
+ _global.fontSize = qdEl.text().toInt();
+ unsigned char *dataFontSize = new unsigned char[2];
+ dataFontSize[0]=SYSEX_FONTSIZE;
+ dataFontSize[1]=(unsigned char)_global.fontSize;
+ MidiEvent evFontSize(0, ME_SYSEX, (const unsigned char*)dataFontSize, 2);
+ _gui->writeEvent(evFontSize);
+ }
+ //saveConfig
+ if(qdEl.tagName()==SAVECONFIGSTR) {
+ _saveConfig = (qdEl.text()==YESSTRDEI?true:false);
+ unsigned char *dataSaveConfig = new unsigned char[2];
+ dataSaveConfig[0]=SYSEX_SAVECONFIG;
+ dataSaveConfig[1]=(unsigned char)_saveConfig;
+ MidiEvent
+ evSaveConfig(0, ME_SYSEX, (const unsigned char*)dataSaveConfig, 2);
+ _gui->writeEvent(evSaveConfig);
+ }
+ //saveOnlyUsed
+ if(qdEl.tagName()==SAVEONLYUSEDSTR) {
+ _saveOnlyUsed = (qdEl.text()==YESSTRDEI?true:false);
+ unsigned char *dataSaveOnlyUsed = new unsigned char[2];
+ dataSaveOnlyUsed[0]=SYSEX_SAVEONLYUSED;
+ dataSaveOnlyUsed[1]=(unsigned char)_saveOnlyUsed;
+ MidiEvent
+ evSaveOnlyUsed(0, ME_SYSEX, (const unsigned char*)dataSaveOnlyUsed, 2);
+ _gui->writeEvent(evSaveOnlyUsed);
+ }
+ //colors
+ if(qdEl.tagName()==TEXTCOLORSTR) textColor = readColor(qdn);
+ if(qdEl.tagName()==BACKGROUNDCOLORSTR) backgroundColor = readColor(qdn);
+ if(qdEl.tagName()==EDITTEXTCOLORSTR) editTextColor = readColor(qdn);
+ if(qdEl.tagName()==EDITBACKGROUNDCOLORSTR)
+ editBackgroundColor = readColor(qdn);
+
+ //must insert load image, later
+
+ //load init set
+ if(qdEl.tagName()==ISINITSETSTR) {
+ _isInitSet = (qdEl.text()==YESSTRDEI?true:false);
+ unsigned char *dataIsInitSet = new unsigned char[2];
+ dataIsInitSet[0]=SYSEX_ISINITSET;
+ dataIsInitSet[1]=(unsigned char)_isInitSet;
+ MidiEvent
+ evIsInitSet(0, ME_SYSEX, (const unsigned char*)dataIsInitSet, 2);
+ _gui->writeEvent(evIsInitSet);
+ }
+ if(qdEl.tagName()==INITSETPATHSTR) {
+ _initSetPath = qdEl.text();
+ unsigned char *dataInitSetPath =
+ new unsigned char[1+MAXSTRLENGTHINITSETPATH];
+ dataInitSetPath[0]=SYSEX_INITSETPATH;
+ strncpy((char*)&dataInitSetPath[1], _initSetPath.toLatin1().data(),
+ MAXSTRLENGTHINITSETPATH);
+ MidiEvent
+ evInitSetPath(0, ME_SYSEX, (const unsigned char*)dataInitSetPath,
+ 1+MAXSTRLENGTHINITSETPATH);
+ _gui->writeEvent(evInitSetPath);
+ }
+ //load background pix
+ if(qdEl.tagName()==ISBACKGROUNDPIXSTR) {
+ _isBackgroundPix = (qdEl.text()==YESSTRDEI?true:false);
+ unsigned char *dataIsBackgroundPix = new unsigned char[2];
+ dataIsBackgroundPix[0]=SYSEX_ISBACKGROUNDPIX;
+ dataIsBackgroundPix[1]=(unsigned char)_isBackgroundPix;
+ MidiEvent
+ evIsBackgroundPix(0, ME_SYSEX,
+ (const unsigned char*)dataIsBackgroundPix, 2);
+ _gui->writeEvent(evIsBackgroundPix);
+ }
+ if(qdEl.tagName()==BACKGROUNDPIXPATHSTR) {
+ _backgroundPixPath = qdEl.text();
+ unsigned char *dataBackgroundPixPath =
+ new unsigned char[1+MAXSTRLENGTHBACKGROUNDPIXPATH];
+ dataBackgroundPixPath[0]=SYSEX_BACKGROUNDPIXPATH;
+ strncpy((char*)&dataBackgroundPixPath[1],
+ _backgroundPixPath.toLatin1().data(),
+ MAXSTRLENGTHBACKGROUNDPIXPATH);
+ MidiEvent
+ evBackgroundPixPath(0, ME_SYSEX,
+ (const unsigned char*)dataBackgroundPixPath,
+ 1+MAXSTRLENGTHBACKGROUNDPIXPATH);
+ _gui->writeEvent(evBackgroundPixPath);
+ }
+ qdn = qdn.nextSibling();
+ }
+ //send colors
+ unsigned char dataColorGui[COLORSYSEXLENGTH+1];
+ dataColorGui[0]=SYSEX_COLORGUI;
+ dataColorGui[1]=(unsigned char)textColor.red();
+ dataColorGui[2]=(unsigned char)textColor.green();
+ dataColorGui[3]=(unsigned char)textColor.blue();
+ dataColorGui[4]=(unsigned char)backgroundColor.red();
+ dataColorGui[5]=(unsigned char)backgroundColor.green();
+ dataColorGui[6]=(unsigned char)backgroundColor.blue();
+ dataColorGui[7]=(unsigned char)editTextColor.red();
+ dataColorGui[8]=(unsigned char)editTextColor.green();
+ dataColorGui[9]=(unsigned char)editTextColor.blue();
+ dataColorGui[10]=(unsigned char)editBackgroundColor.red();
+ dataColorGui[11]=(unsigned char)editBackgroundColor.green();
+ dataColorGui[12]=(unsigned char)editBackgroundColor.blue();
+ MidiEvent evSysexColor(0, ME_SYSEX, (const unsigned char*)dataColorGui,
+ COLORSYSEXLENGTH+1);
+ _gui->writeEvent(evSysexColor);
+}
+
+//-----------------------------------------------------------
+// loadConfiguration
+//-----------------------------------------------------------
+void DeicsOnze::loadConfiguration(QString fileName) {
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFile confFile(fileName);
+ if(!confFile.open(QIODevice::ReadOnly)) {
+ printf("Critical Error. Cannot open file %s\n",
+ fileName.toAscii().data());
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&confFile )) {
+ printf("Critical Error. Parsing error for file %s\n",
+ fileName.toAscii().data());
+ confFile.close();
+ return;
+ }
+
+ confFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == DEICSONZECONFIGURATIONSTR) {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ readConfiguration(node.firstChild());
+ }
+ else printf("unsupported *.dco file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+void DeicsOnze::writeConfiguration(AL::Xml* xml) {
+ QString str;
+ xml->stag("deicsOnzeConfiguation version=\"1.0\"");
+ //xml->intTag(NBRVOICESSTR, (int)_global.nbrVoices);
+ //xml->strTag(CHANNELNUMSTR, (_global.channelNum==-1?ALLSTR:
+ // str.setNum(_global.channelNum+1)));
+ xml->tag(QUALITYSTR, QString((_global.quality==high?HIGHSTR:
+ (_global.quality==middle?MIDDLESTR:
+ (_global.quality==low?LOWSTR:ULTRALOWSTR)))));
+ xml->tag(FILTERSTR, QString(getFilter()==true?YESSTRDEI:NOSTRDEI));
+ xml->tag(FONTSIZESTR, _global.fontSize);
+ xml->tag(SAVECONFIGSTR, QString((_saveConfig?YESSTRDEI:NOSTRDEI)));
+ xml->tag(SAVEONLYUSEDSTR, QString((_saveOnlyUsed?YESSTRDEI:NOSTRDEI)));
+ xml->tag(TEXTCOLORSTR,
+ reinterpret_cast<const QColor &>(*_gui->tColor));
+ xml->tag(BACKGROUNDCOLORSTR,
+ reinterpret_cast<const QColor &>(*_gui->bColor));
+ xml->tag(EDITTEXTCOLORSTR,
+ reinterpret_cast<const QColor &>(*_gui->etColor));
+ xml->tag(EDITBACKGROUNDCOLORSTR,
+ reinterpret_cast<const QColor &>(*_gui->ebColor));
+ xml->tag(ISINITSETSTR, QString((_isInitSet?YESSTRDEI:NOSTRDEI)));
+ xml->tag(INITSETPATHSTR, QString(_initSetPath));
+ xml->tag(ISBACKGROUNDPIXSTR, QString((_isBackgroundPix?YESSTRDEI:NOSTRDEI)));
+ xml->tag(BACKGROUNDPIXPATHSTR, _backgroundPixPath);
+
+ xml->etag(DEICSONZECONFIGURATIONSTR);
+}
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+void DeicsOnze::getInitData(int* length, const unsigned char** data) {
+
+ //write the set in a temporary file and in a QByteArray
+ QTemporaryFile file;
+ file.open();
+ AL::Xml* xml=new AL::Xml(&file);
+ xml->header();
+ _set->writeSet(xml, _saveOnlyUsed);
+ file.reset(); //seek the start of the file
+ QByteArray ba = file.readAll();
+ file.close();
+
+ //compress the QByteArray at default rate
+ QByteArray baComp = qCompress(ba);
+
+ //save the set
+ *length = NUM_CONFIGLENGTH
+ + (_pluginIReverb?sizeof(float)*_pluginIReverb->plugin()->parameter():0)
+ + (_pluginIChorus?sizeof(float)*_pluginIChorus->plugin()->parameter():0)
+ + baComp.size();
+
+ unsigned char* buffer = new unsigned char[*length];
+ //save init data
+ buffer[0]=SYSEX_INIT_DATA;
+ buffer[1]=SYSEX_INIT_DATA_VERSION;
+ //save global data
+ buffer[NUM_MASTERVOL] = (unsigned char) getMasterVol();
+ for(int c = 0; c < NBRCHANNELS; c++) {
+ buffer[NUM_CHANNEL_ENABLE + c] = (unsigned char) getChannelEnable(c);
+ buffer[NUM_CHANNEL_VOL + c] = (unsigned char) getChannelVol(c);
+ buffer[NUM_CHANNEL_PAN + c] = (unsigned char) getChannelPan(c);
+ int b = getChannelBrightness(c);
+ buffer[NUM_CHANNEL_BRIGHTNESS + 2*c] = (unsigned char) (b%256);
+ buffer[NUM_CHANNEL_BRIGHTNESS + 2*c + 1] = (unsigned char) (b/256);
+ buffer[NUM_CHANNEL_MODULATION + c] =
+ (unsigned char) getChannelModulation(c);
+ buffer[NUM_CHANNEL_DETUNE + c] =
+ (unsigned char) getChannelDetune(c) + MAXCHANNELDETUNE;
+ buffer[NUM_CHANNEL_ATTACK + c] = (unsigned char) getChannelAttack(c);
+ buffer[NUM_CHANNEL_RELEASE + c] = (unsigned char) getChannelRelease(c);
+ buffer[NUM_CHANNEL_REVERB + c] = (unsigned char) getChannelReverb(c);
+ buffer[NUM_CHANNEL_CHORUS + c] = (unsigned char) getChannelChorus(c);
+ buffer[NUM_CHANNEL_DELAY + c] = (unsigned char) getChannelDelay(c);
+ buffer[NUM_CURRENTPROG + c] = (unsigned char) _preset[c]->prog;
+ buffer[NUM_CURRENTLBANK + c] =
+ (unsigned char) _preset[c]->_subcategory->_lbank;
+ buffer[NUM_CURRENTHBANK + c] =
+ (unsigned char) _preset[c]->_subcategory->_category->_hbank;
+ buffer[NUM_NBRVOICES + c] = (unsigned char) getNbrVoices(c);
+ }
+ buffer[NUM_SAVEONLYUSED]=(unsigned char) _saveOnlyUsed;
+ buffer[NUM_SAVECONFIG]=(unsigned char) _saveConfig;
+ //save config data
+ if(_saveConfig) {
+ buffer[NUM_QUALITY]=(unsigned char)_global.quality;
+ buffer[NUM_FILTER]=(unsigned char)getFilter();
+ buffer[NUM_FONTSIZE]=(unsigned char)_global.fontSize;
+ buffer[NUM_RED_TEXT]=(unsigned char)_gui->tColor->red();
+ buffer[NUM_GREEN_TEXT]=(unsigned char)_gui->tColor->green();
+ buffer[NUM_BLUE_TEXT]=(unsigned char)_gui->tColor->blue();
+ buffer[NUM_RED_BACKGROUND]=(unsigned char)_gui->bColor->red();
+ buffer[NUM_GREEN_BACKGROUND]=(unsigned char)_gui->bColor->green();
+ buffer[NUM_BLUE_BACKGROUND]=(unsigned char)_gui->bColor->blue();
+ buffer[NUM_RED_EDITTEXT]=(unsigned char)_gui->etColor->red();
+ buffer[NUM_GREEN_EDITTEXT]=(unsigned char)_gui->etColor->green();
+ buffer[NUM_BLUE_EDITTEXT]=(unsigned char)_gui->etColor->blue();
+ buffer[NUM_RED_EDITBACKGROUND]=(unsigned char)_gui->ebColor->red();
+ buffer[NUM_GREEN_EDITBACKGROUND]=(unsigned char)_gui->ebColor->green();
+ buffer[NUM_BLUE_EDITBACKGROUND]=(unsigned char)_gui->ebColor->blue();
+ buffer[NUM_ISINITSET]=(unsigned char)_isInitSet;
+ strncpy((char*)&buffer[NUM_INITSETPATH],
+ _initSetPath.toLatin1().data(), MAXSTRLENGTHINITSETPATH);
+ buffer[NUM_ISBACKGROUNDPIX]=(unsigned char)_isBackgroundPix;
+ strncpy((char*)&buffer[NUM_BACKGROUNDPIXPATH],
+ _backgroundPixPath.toLatin1().data(),
+ MAXSTRLENGTHBACKGROUNDPIXPATH);
+ }
+ //FX
+ //reverb
+ buffer[NUM_IS_REVERB_ON]=(unsigned char)_global.isReverbActivated;
+ buffer[NUM_REVERB_RETURN]=(unsigned char)getReverbReturn();
+ buffer[NUM_REVERB_PARAM_NBR]=
+ (_pluginIReverb?(unsigned char)_pluginIReverb->plugin()->parameter() : 0);
+ strncpy((char*)&buffer[NUM_REVERB_LIB],
+ (_pluginIReverb?
+ _pluginIReverb->plugin()->lib().toLatin1().data() : "\0"),
+ MAXSTRLENGTHFXLIB);
+ strncpy((char*)&buffer[NUM_REVERB_LABEL],
+ (_pluginIReverb?
+ _pluginIReverb->plugin()->label().toLatin1().data() : "\0"),
+ MAXSTRLENGTHFXLABEL);
+ //chorus
+ buffer[NUM_IS_CHORUS_ON]=(unsigned char)_global.isChorusActivated;
+ buffer[NUM_CHORUS_RETURN]=(unsigned char)getChorusReturn();
+ buffer[NUM_CHORUS_PARAM_NBR]=
+ (_pluginIChorus?(unsigned char)_pluginIChorus->plugin()->parameter() : 0);
+ strncpy((char*)&buffer[NUM_CHORUS_LIB],
+ (_pluginIChorus?
+ _pluginIChorus->plugin()->lib().toLatin1().data() : "\0"),
+ MAXSTRLENGTHFXLIB);
+ strncpy((char*)&buffer[NUM_CHORUS_LABEL],
+ (_pluginIChorus?
+ _pluginIChorus->plugin()->label().toLatin1().data() : "\0"),
+ MAXSTRLENGTHFXLABEL);
+ //delay
+ buffer[NUM_IS_DELAY_ON]=(unsigned char)_global.isDelayActivated;
+ buffer[NUM_DELAY_RETURN]=(unsigned char)getDelayReturn();
+ //save FX parameters
+ //reverb
+ for(int i = 0; i < (int)buffer[NUM_REVERB_PARAM_NBR]; i++) {
+ float val = (float)getReverbParam(i);
+ memcpy(&buffer[NUM_CONFIGLENGTH + sizeof(float)*i], &val, sizeof(float));
+ }
+ //chorus
+ for(int i = 0; i < (int)buffer[NUM_CHORUS_PARAM_NBR]; i++) {
+ float val = (float)getChorusParam(i);
+ memcpy(&buffer[NUM_CONFIGLENGTH
+ + sizeof(float)*(int)buffer[NUM_REVERB_PARAM_NBR]
+ + sizeof(float)*i], &val, sizeof(float));
+ }
+ //delay
+ float delayfloat;
+ delayfloat = getDelayBPM();
+ memcpy(&buffer[NUM_DELAY_BPM], &delayfloat, 4);
+ delayfloat = getDelayBeatRatio();
+ memcpy(&buffer[NUM_DELAY_BEATRATIO], &delayfloat, sizeof(float));
+ delayfloat = getDelayFeedback();
+ memcpy(&buffer[NUM_DELAY_FEEDBACK], &delayfloat, sizeof(float));
+ delayfloat = getDelayLFOFreq();
+ memcpy(&buffer[NUM_DELAY_LFO_FREQ], &delayfloat, sizeof(float));
+ delayfloat = getDelayLFODepth();
+ memcpy(&buffer[NUM_DELAY_LFO_DEPTH], &delayfloat, sizeof(float));
+
+ //save set data
+ int offset =
+ NUM_CONFIGLENGTH
+ + sizeof(float)*(int)buffer[NUM_REVERB_PARAM_NBR]
+ + sizeof(float)*(int)buffer[NUM_CHORUS_PARAM_NBR];
+ for(int i = offset; i < *length; i++)
+ buffer[i]=(unsigned char)baComp.at(i - offset);
+
+ *data=buffer;
+}
+//---------------------------------------------------------
+// parseInitData
+//---------------------------------------------------------
+void DeicsOnze::parseInitData(int length, const unsigned char* data) {
+ if(data[1]==SYSEX_INIT_DATA_VERSION) {
+ //load global parameters
+ //master volume
+ setMasterVol(data[NUM_MASTERVOL]);
+ unsigned char *dataMasterVol = new unsigned char[2];
+ dataMasterVol[0]=SYSEX_MASTERVOL;
+ dataMasterVol[1]=(unsigned char) getMasterVol();
+ MidiEvent
+ evMasterVol(0, ME_SYSEX, (const unsigned char*)dataMasterVol, 2);
+ _gui->writeEvent(evMasterVol);
+ //channel configuration
+ for(int c = 0; c < NBRCHANNELS; c++) {
+ //isEnable
+ setChannelEnable(c, data[NUM_CHANNEL_ENABLE + c]);
+ MidiEvent
+ evChEnable(0, c, ME_CONTROLLER,
+ CTRL_CHANNELENABLE, data[NUM_CHANNEL_ENABLE + c]);
+ _gui->writeEvent(evChEnable);
+ //nbrVoices
+ setNbrVoices(c, data[NUM_NBRVOICES + c]);
+ MidiEvent
+ evNbrVoices(0,c,ME_CONTROLLER,CTRL_NBRVOICES, data[NUM_NBRVOICES + c]);
+ _gui->writeEvent(evNbrVoices);
+ //channel volume
+ setChannelVol(c, data[NUM_CHANNEL_VOL + c]);
+ MidiEvent
+ evChVol(0, c, ME_CONTROLLER,
+ CTRL_CHANNELVOLUME, data[NUM_CHANNEL_VOL + c]);
+ _gui->writeEvent(evChVol);
+ //channel pan
+ setChannelPan(c, data[NUM_CHANNEL_PAN + c]);
+ MidiEvent
+ evChPan(0, c, ME_CONTROLLER, CTRL_CHANNELPAN,
+ data[NUM_CHANNEL_PAN + c]);
+ _gui->writeEvent(evChPan);
+ if(getChannelEnable(c)) applyChannelAmp(c);
+ //channel detune
+ setChannelDetune(c, data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
+ MidiEvent
+ evChDetune(0, c, ME_CONTROLLER, CTRL_CHANNELDETUNE,
+ data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
+ _gui->writeEvent(evChDetune);
+ //channel brightness
+ setChannelBrightness(c,
+ data[NUM_CHANNEL_BRIGHTNESS + 2*c]
+ + data[NUM_CHANNEL_BRIGHTNESS + 2*c + 1] * 256);
+ MidiEvent
+ evChBrightness(0, c, ME_CONTROLLER,
+ CTRL_FINEBRIGHTNESS, getChannelBrightness(c));
+ _gui->writeEvent(evChBrightness);
+ //channel modulation
+ setChannelModulation(c, data[NUM_CHANNEL_MODULATION + c]);
+ MidiEvent
+ evChMod(0, c, ME_CONTROLLER,
+ CTRL_MODULATION, data[NUM_CHANNEL_MODULATION + c]);
+ _gui->writeEvent(evChMod);
+ //channel attack
+ setChannelAttack(c, data[NUM_CHANNEL_ATTACK + c]);
+ MidiEvent
+ evChAttack(0, c, ME_CONTROLLER,
+ CTRL_ATTACK_TIME, data[NUM_CHANNEL_ATTACK + c]);
+ _gui->writeEvent(evChAttack);
+ //channel release
+ setChannelRelease(c, data[NUM_CHANNEL_RELEASE + c]);
+ MidiEvent
+ evChRelease(0, c, ME_CONTROLLER,
+ CTRL_RELEASE_TIME, data[NUM_CHANNEL_RELEASE + c]);
+ _gui->writeEvent(evChRelease);
+ //channel reverb
+ setChannelReverb(c, data[NUM_CHANNEL_REVERB + c]);
+ MidiEvent
+ evChReverb(0, c, ME_CONTROLLER,
+ CTRL_REVERB_SEND, data[NUM_CHANNEL_REVERB + c]);
+ _gui->writeEvent(evChReverb);
+ //channel chorus
+ setChannelChorus(c, data[NUM_CHANNEL_CHORUS + c]);
+ MidiEvent
+ evChChorus(0, c, ME_CONTROLLER,
+ CTRL_CHORUS_SEND, data[NUM_CHANNEL_CHORUS + c]);
+ _gui->writeEvent(evChChorus);
+ //channel delay
+ setChannelDelay(c, data[NUM_CHANNEL_DELAY + c]);
+ MidiEvent
+ evChDelay(0, c, ME_CONTROLLER,
+ CTRL_VARIATION_SEND, data[NUM_CHANNEL_DELAY + c]);
+ _gui->writeEvent(evChDelay);
+ }
+ //load configuration
+ _saveConfig = (bool)data[NUM_SAVECONFIG];
+ unsigned char *dataSaveConfig = new unsigned char[2];
+ dataSaveConfig[0]=SYSEX_SAVECONFIG;
+ dataSaveConfig[1]=(unsigned char)_saveConfig;
+ MidiEvent
+ evSaveConfig(0, ME_SYSEX, (const unsigned char*)dataSaveConfig, 2);
+ _gui->writeEvent(evSaveConfig);
+ if(_saveConfig) {
+ //saveOnlyUsed
+ _saveOnlyUsed = (bool)data[NUM_SAVEONLYUSED];
+ unsigned char *dataSaveOnlyUsed = new unsigned char[2];
+ dataSaveOnlyUsed[0]=SYSEX_SAVEONLYUSED;
+ dataSaveOnlyUsed[1]=(unsigned char)_saveOnlyUsed;
+ MidiEvent
+ evSaveOnlyUsed(0, ME_SYSEX, (const unsigned char*)dataSaveOnlyUsed, 2);
+ _gui->writeEvent(evSaveOnlyUsed);
+ //colors
+ unsigned char dataColorGui[COLORSYSEXLENGTH+1];
+ dataColorGui[0]=SYSEX_COLORGUI;
+ for (int i=0; i<COLORSYSEXLENGTH; i++)
+ dataColorGui[i+1]=data[NUM_RED_TEXT+i];
+ MidiEvent evSysexColor(0, ME_SYSEX, (const unsigned char*)dataColorGui,
+ COLORSYSEXLENGTH+1);
+ _gui->writeEvent(evSysexColor);
+ //quality
+ unsigned char dataQuality[2];
+ dataQuality[0]=SYSEX_QUALITY;
+ dataQuality[1]=data[NUM_QUALITY];
+ setQuality((Quality)data[NUM_QUALITY]);
+ MidiEvent evQuality(0, ME_SYSEX, (const unsigned char*)dataQuality, 2);
+ _gui->writeEvent(evQuality);
+ //filter
+ unsigned char dataFilter[2];
+ dataFilter[0]=SYSEX_FILTER;
+ dataFilter[1]=data[NUM_FILTER];
+ setFilter((bool)data[NUM_FILTER]);
+ MidiEvent evFilter(0, ME_SYSEX, (const unsigned char*)dataFilter, 2);
+ _gui->writeEvent(evFilter);
+ //font size
+ unsigned char dataFontSize[2];
+ dataFontSize[0]=SYSEX_FONTSIZE;
+ dataFontSize[1]=data[NUM_FONTSIZE];
+ MidiEvent evFontSize(0, ME_SYSEX, (const unsigned char*)dataFontSize, 2);
+ _gui->writeEvent(evFontSize);
+ //load init set
+ unsigned char dataIsInitSet[2];
+ dataIsInitSet[0]=SYSEX_ISINITSET;
+ dataIsInitSet[1]=data[NUM_ISINITSET];
+ MidiEvent evIsInitSet(0, ME_SYSEX,
+ (const unsigned char*)dataIsInitSet, 2);
+ _gui->writeEvent(evIsInitSet);
+ unsigned char dataInitSetPath[1+MAXSTRLENGTHINITSETPATH];
+ dataInitSetPath[0]=SYSEX_INITSETPATH;
+ for(int a = 0; a < MAXSTRLENGTHINITSETPATH; a++)
+ dataInitSetPath[a+1] = data[a+NUM_INITSETPATH];
+ MidiEvent evInitSetPath(0,ME_SYSEX,(const unsigned char*)dataInitSetPath,
+ 1+MAXSTRLENGTHINITSETPATH);
+ _gui->writeEvent(evInitSetPath);
+ //load background pix
+ unsigned char dataIsBackgroundPix[2];
+ dataIsBackgroundPix[0]=SYSEX_ISBACKGROUNDPIX;
+ dataIsBackgroundPix[1]=data[NUM_ISBACKGROUNDPIX];
+ MidiEvent evIsBackgroundPix(0, ME_SYSEX,
+ (const unsigned char*)dataIsBackgroundPix, 2);
+ _gui->writeEvent(evIsBackgroundPix);
+ unsigned char dataBackgroundPixPath[1+MAXSTRLENGTHBACKGROUNDPIXPATH];
+ dataBackgroundPixPath[0]=SYSEX_BACKGROUNDPIXPATH;
+ for(int a = 0; a < MAXSTRLENGTHBACKGROUNDPIXPATH; a++)
+ dataBackgroundPixPath[a+1] = data[a+NUM_BACKGROUNDPIXPATH];
+ MidiEvent evBackgroundPixPath(0,ME_SYSEX,
+ (const unsigned char*)dataBackgroundPixPath,
+ 1+MAXSTRLENGTHBACKGROUNDPIXPATH);
+ _gui->writeEvent(evBackgroundPixPath);
+ }
+ else _gui->saveConfigCheckBox->setChecked(false);
+ //load FX
+ //reverb
+ _global.isReverbActivated = (bool)data[NUM_IS_REVERB_ON];
+ unsigned char *dataReverbAct = new unsigned char[2];
+ dataReverbAct[0]=SYSEX_REVERBACTIV;
+ dataReverbAct[1]=(unsigned char)_global.isReverbActivated;
+ MidiEvent evReverbAct(0,ME_SYSEX,(const unsigned char*)dataReverbAct, 2);
+ _gui->writeEvent(evReverbAct);
+ setReverbReturn((int)data[NUM_REVERB_RETURN]);
+ unsigned char *dataReverbRet = new unsigned char[2];
+ dataReverbRet[0]=SYSEX_REVERBRETURN;
+ dataReverbRet[1]=(unsigned char)getReverbReturn();
+ MidiEvent evReverbRet(0,ME_SYSEX,(const unsigned char*)dataReverbRet, 2);
+ _gui->writeEvent(evReverbRet);
+ Plugin* p;
+ p = plugins.find((const char*)&data[NUM_REVERB_LIB],
+ (const char*)&data[NUM_REVERB_LABEL]);
+ if(p) {
+ initPluginReverb(p);
+ for(int i = 0; i < _pluginIReverb->plugin()->parameter(); i++) {
+ float val;
+ memcpy(&val, &data[NUM_CONFIGLENGTH + sizeof(float)*i], sizeof(float));
+ setReverbParam(i, (double)val);
+ }
+ char dataBuildRev;
+ dataBuildRev = SYSEX_BUILDGUIREVERB;
+ MidiEvent evSysexBuildRev(0,ME_SYSEX,
+ (const unsigned char*)&dataBuildRev, 1);
+ _gui->writeEvent(evSysexBuildRev);
+ }
+ else _pluginIReverb = NULL;
+ //chorus
+ _global.isChorusActivated = (bool)data[NUM_IS_CHORUS_ON];
+ unsigned char *dataChorusAct = new unsigned char[2];
+ dataChorusAct[0]=SYSEX_CHORUSACTIV;
+ dataChorusAct[1]=(unsigned char)_global.isChorusActivated;
+ MidiEvent evChorusAct(0,ME_SYSEX,(const unsigned char*)dataChorusAct, 2);
+ _gui->writeEvent(evChorusAct);
+ setChorusReturn((int)data[NUM_CHORUS_RETURN]);
+ unsigned char *dataChorusRet = new unsigned char[2];
+ dataChorusRet[0]=SYSEX_CHORUSRETURN;
+ dataChorusRet[1]=(unsigned char)getChorusReturn();
+ MidiEvent evChorusRet(0,ME_SYSEX,(const unsigned char*)dataChorusRet, 2);
+ _gui->writeEvent(evChorusRet);
+ p = plugins.find((const char*)&data[NUM_CHORUS_LIB],
+ (const char*)&data[NUM_CHORUS_LABEL]);
+ if(p) {
+ initPluginChorus(p);
+ for(int i = 0; i < _pluginIChorus->plugin()->parameter(); i++) {
+ float val;
+ memcpy(&val, &data[NUM_CONFIGLENGTH
+ + sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
+ + sizeof(float)*i],
+ sizeof(float));
+ setChorusParam(i, (double)val);
+ }
+ char dataBuildCho;
+ dataBuildCho = SYSEX_BUILDGUICHORUS;
+ MidiEvent evSysexBuildCho(0,ME_SYSEX,
+ (const unsigned char*)&dataBuildCho, 1);
+ _gui->writeEvent(evSysexBuildCho);
+ }
+ else _pluginIChorus = NULL;
+ //delay
+ _global.isDelayActivated = (bool)data[NUM_IS_DELAY_ON];
+ unsigned char *dataDelayAct = new unsigned char[2];
+ dataDelayAct[0]=SYSEX_DELAYACTIV;
+ dataDelayAct[1]=(unsigned char)_global.isDelayActivated;
+ MidiEvent evDelayAct(0,ME_SYSEX,(const unsigned char*)dataDelayAct, 2);
+ _gui->writeEvent(evDelayAct);
+ setDelayReturn((int)data[NUM_DELAY_RETURN]);
+ unsigned char *dataDelayRet = new unsigned char[2];
+ dataDelayRet[0]=SYSEX_DELAYRETURN;
+ dataDelayRet[1]=(unsigned char)getDelayReturn();
+ MidiEvent evDelayRet(0,ME_SYSEX,(const unsigned char*)dataDelayRet, 2);
+ _gui->writeEvent(evDelayRet);
+ //initPluginDelay(plugins.find("pandelay", "pandelay"));
+ float delayfloat;
+ memcpy(&delayfloat, &data[NUM_DELAY_BPM], sizeof(float));
+ setDelayBPM(delayfloat);
+ char dataDelayBPM[sizeof(float)+1];
+ dataDelayBPM[0] = SYSEX_DELAYBPM;
+ memcpy(&dataDelayBPM[1], &delayfloat, sizeof(float));
+ MidiEvent evSysexDelayBPM(0,ME_SYSEX,
+ (const unsigned char*)dataDelayBPM,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayBPM);
+ memcpy(&delayfloat, &data[NUM_DELAY_BEATRATIO], sizeof(float));
+ setDelayBeatRatio(delayfloat);
+ char dataDelayBeatRatio[sizeof(float)+1];
+ dataDelayBeatRatio[0] = SYSEX_DELAYBEATRATIO;
+ memcpy(&dataDelayBeatRatio[1], &delayfloat, sizeof(float));
+ MidiEvent evSysexDelayBeatRatio(0,ME_SYSEX,
+ (const unsigned char*)dataDelayBeatRatio,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayBeatRatio);
+ memcpy(&delayfloat, &data[NUM_DELAY_FEEDBACK], sizeof(float));
+ setDelayFeedback(delayfloat);
+ char dataDelayFeedback[sizeof(float)+1];
+ dataDelayFeedback[0] = SYSEX_DELAYFEEDBACK;
+ memcpy(&dataDelayFeedback[1], &delayfloat, sizeof(float));
+ MidiEvent evSysexDelayFeedback(0,ME_SYSEX,
+ (const unsigned char*)dataDelayFeedback,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayFeedback);
+ memcpy(&delayfloat, &data[NUM_DELAY_LFO_FREQ], sizeof(float));
+ setDelayLFOFreq(delayfloat);
+ char dataDelayLFOFreq[sizeof(float)+1];
+ dataDelayLFOFreq[0] = SYSEX_DELAYLFOFREQ;
+ memcpy(&dataDelayLFOFreq[1], &delayfloat, sizeof(float));
+ MidiEvent evSysexDelayLFOFreq(0,ME_SYSEX,
+ (const unsigned char*)dataDelayLFOFreq,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayLFOFreq);
+ memcpy(&delayfloat, &data[NUM_DELAY_LFO_DEPTH], sizeof(float));
+ setDelayLFODepth(delayfloat);
+ char dataDelayLFODepth[sizeof(float)+1];
+ dataDelayLFODepth[0] = SYSEX_DELAYLFODEPTH;
+ memcpy(&dataDelayLFODepth[1], &delayfloat, sizeof(float));
+ MidiEvent evSysexDelayLFODepth(0,ME_SYSEX,
+ (const unsigned char*)dataDelayLFODepth,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayLFODepth);
+
+ //load the set compressed
+ int offset =
+ NUM_CONFIGLENGTH
+ + sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
+ + sizeof(float)*(int)data[NUM_CHORUS_PARAM_NBR];
+ QByteArray baComp = QByteArray((const char*)&data[offset], length-offset);
+
+ //uncompress the set
+ QByteArray baUncomp = qUncompress(baComp);
+
+ //save the set in a temporary file and
+ // read the XML file and create DOM tree
+ QTemporaryFile file;
+ file.open();
+ file.write(baUncomp);
+ QDomDocument domTree;
+ file.reset(); //seek the start of the file
+ domTree.setContent(&file);
+ file.close();
+ QDomNode node = domTree.documentElement();
+
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeSet") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ for(int c = 0; c < NBRCHANNELS; c++) _preset[c]=_initialPreset;
+ //read the set
+ if((bool)data[NUM_SAVEONLYUSED]) {
+ //printf("Mini\n");
+ //updateSaveOnlyUsed(true);
+ }
+ else {
+ //printf("Huge\n");
+ while(!_set->_categoryVector.empty())
+ delete(*_set->_categoryVector.begin());
+ //updateSaveOnlyUsed(false);
+ }
+ _set->readSet(node.firstChild());
+ //display load preset
+ //setSet();
+ }
+ else printf("Wrong set version : %s\n",
+ version.toLatin1().data());
+ }
+ node = node.nextSibling();
+ }
+ //send sysex to the gui to load the set (actually not because it doesn't
+ //work -the code is just zapped in the middle???-, so it is done above
+ //int dL=2+baUncomp.size();
+ int dL = 2;
+ char dataSend[dL];
+ dataSend[0]=SYSEX_LOADSET;
+ dataSend[1]=data[NUM_SAVEONLYUSED];
+ //for(int i=2; i<dL; i++) dataSend[i]=baUncop.at(i-2);
+ MidiEvent evSysex(0,ME_SYSEX,(const unsigned char*)dataSend, dL);
+ _gui->writeEvent(evSysex);
+
+ //select programs per channel
+ for(int c = 0; c < NBRCHANNELS; c++) {
+ int hbank=(int)data[NUM_CURRENTHBANK+c];
+ int lbank=(int)data[NUM_CURRENTLBANK+c];
+ int prog=(int)data[NUM_CURRENTPROG+c];
+ programSelect(c, hbank, lbank, prog);
+ int val=prog+(lbank<<8)+(hbank<<16);
+ MidiEvent evProgSel(0, c, ME_CONTROLLER, CTRL_PROGRAM, val);
+ _gui->writeEvent(evProgSel);
+ }
+
+ }
+}
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+bool DeicsOnze::sysex(int length, const unsigned char* data) {
+ sysex(length, data, false);
+ return false;
+}
+bool DeicsOnze::sysex(int length, const unsigned char* data, bool fromGui) {
+ int cmd=data[0];
+ int index;
+ float f;
+ switch(cmd) {
+ case SYSEX_INIT_DATA:
+ parseInitData(length, data);
+ break;
+ case SYSEX_MASTERVOL:
+ setMasterVol((int)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ //case SYSEX_CHANNELNUM:
+ //_global.channelNum = (char)data[1];
+ //if(!fromGui) {
+ // MidiEvent evSysex(0, ME_SYSEX, data, length);
+ // _gui->writeEvent(evSysex);
+ //}
+ //break;
+ case SYSEX_QUALITY:
+ setQuality((Quality)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_FILTER:
+ setFilter((bool)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_FONTSIZE:
+ _global.fontSize = (int)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_SAVECONFIG:
+ _saveConfig = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_SAVEONLYUSED:
+ _saveOnlyUsed = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_ISINITSET:
+ _isInitSet = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_INITSETPATH:
+ _initSetPath = (char*)&data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_ISBACKGROUNDPIX:
+ _isBackgroundPix = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_BACKGROUNDPIXPATH:
+ _backgroundPixPath = (char*)&data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_PANIC:
+ resetVoices();
+ break;
+ case SYSEX_CHORUSACTIV:
+ _global.isChorusActivated = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_CHORUSPARAM:
+ index = (int)data[1];
+ memcpy(&f, &data[2], sizeof(float));
+ setChorusParam(index, (double)f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_REVERBACTIV:
+ _global.isReverbActivated = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_REVERBPARAM:
+ index = (int)data[1];
+ memcpy(&f, &data[2], sizeof(float));
+ setReverbParam(index, (double)f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYACTIV:
+ _global.isDelayActivated = (bool)data[1];
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_CHORUSRETURN:
+ setChorusReturn((int)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_REVERBRETURN:
+ setReverbReturn((int)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYRETURN:
+ setDelayReturn((int)data[1]);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_SELECTREVERB:
+ Plugin* pluginReverb;
+ memcpy(&pluginReverb, &data[1], sizeof(Plugin*));
+ initPluginReverb(pluginReverb);
+ break;
+ case SYSEX_SELECTCHORUS:
+ Plugin* pluginChorus;
+ memcpy(&pluginChorus, &data[1], sizeof(Plugin*));
+ initPluginChorus(pluginChorus);
+ break;
+ case SYSEX_DELAYBPM:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayBPM(f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYBEATRATIO:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayBeatRatio(f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYFEEDBACK:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayFeedback(f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYLFOFREQ:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayLFOFreq(f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYLFODEPTH:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayLFODepth(f);
+ if(!fromGui) {
+ MidiEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+bool DeicsOnze::setController(int channel, int id, int val) {
+ setController(channel, id, val, false);
+ return false;
+}
+bool DeicsOnze::setController(int ch, int ctrl, int val, bool fromGui) {
+ int deiPan, k=0;
+ if(_global.channel[ch].isEnable || ctrl==CTRL_CHANNELENABLE) {
+ if(ctrl>=CTRL_AR && ctrl<CTRL_ALG) {
+ k=(ctrl-CTRLOFFSET)/DECAPAR1;
+ ctrl=ctrl-DECAPAR1*k;
+ }
+ else if(ctrl>CTRL_PL3 && ctrl<CTRL_REVERBRATE) {
+ k=(ctrl-CTRLOFFSET-100)/DECAPAR2;
+ ctrl=ctrl-DECAPAR2*k;
+ }
+ switch(ctrl) {
+ case CTRL_AR:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].ar=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_AR+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_D1R:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].d1r=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_D1R+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_D2R:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].d2r=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_D2R+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_RR:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].rr=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_RR+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_D1L:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].d1l=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_D1L+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_LS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->scaling.level[k]=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_LS+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_RS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->scaling.rate[k]=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_RS+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_EBS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->sensitivity.egBias[k]=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_EBS+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_AME:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->sensitivity.ampOn[k]=val==1;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_AME+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_KVS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->sensitivity.keyVelocity[k]=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_KVS+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_OUT:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->outLevel[k]=val;
+ setOutLevel(k);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_OUT+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_RATIO:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->frequency[k].ratio=((double)val)/100.0;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,
+ CTRL_RATIO+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_DET:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->detune[k]=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_DET+k*DECAPAR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ALG:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->algorithm=(Algorithm)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_ALG,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FEEDBACK:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->feedback=val;
+ setFeedback(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FEEDBACK,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_SPEED:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.speed=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_SPEED,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_DELAY:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.delay=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_DELAY,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PMODDEPTH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.pModDepth=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PMODDEPTH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_AMODDEPTH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.aModDepth=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_AMODDEPTH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_SYNC:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.sync=val==1;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_SYNC,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_WAVE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->lfo.wave=(Wave)val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_WAVE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PMODSENS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->sensitivity.pitch=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PMODSENS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_AMS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->sensitivity.amplitude=val;
+ setLfo(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_AMS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_TRANSPOSE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.transpose=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_TRANSPOSE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_POLYMODE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.mode=(Mode)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_POLYMODE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PBENDRANGE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.pBendRange=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PBENDRANGE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PORTAMODE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.portamento=(Portamento)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PORTAMODE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PORTATIME:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.portamentoTime=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PORTATIME,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FCVOLUME:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.fcVolume=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FCVOLUME,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FSW:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.footSw=(FootSw)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FSW,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_MWPITCH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.mwPitch=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_MWPITCH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_MWAMPLITUDE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.mwAmplitude=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_MWAMPLITUDE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_BCPITCH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.bcPitch=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_BCPITCH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_BCAMPLITUDE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.bcAmplitude=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_BCAMPLITUDE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_BCPITCHBIAS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.bcPitchBias=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_BCPITCHBIAS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_BCEGBIAS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.bcEgBias=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_BCEGBIAS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ATPITCH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.atPitch=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_ATPITCH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ATAMPLITUDE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.atAmplitude=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_ATAMPLITUDE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ATPITCHBIAS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.atPitchBias=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_ATPITCHBIAS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ATEGBIAS:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.atEgBias=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_ATEGBIAS,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PR1:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pr1=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PR1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PR2:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pr2=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PR2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PR3:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pr3=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PR3,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PL1:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pl1=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PL1,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PL2:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pl2=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PL2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PL3:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->pitchEg.pl3=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_PL3,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FIX:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->frequency[k].isFix=val==1;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FIX+k*DECAPAR2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FIXRANGE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->frequency[k].freq=((double)val)/100.0;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,
+ CTRL_FIXRANGE+k*DECAPAR2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_OSW:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->oscWave[k]=(OscWave)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_OSW+k*DECAPAR2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_SHFT:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->eg[k].egShift=(egShiftValue)val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_SHFT+k*DECAPAR2,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_REVERBRATE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.reverbRate=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_REVERBRATE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FCPITCH:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.fcPitch=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FCPITCH,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FCAMPLITUDE:
+ _preset[ch]->setIsUsed(true);
+ _preset[ch]->function.fcAmplitude=val;
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_FCAMPLITUDE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELENABLE:
+ setChannelEnable(ch, (bool)val);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELENABLE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELDETUNE:
+ _preset[ch]->setIsUsed(true);
+ setChannelDetune(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELDETUNE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELVOLUME:
+ setChannelVol(ch, val);
+ applyChannelAmp(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELVOLUME,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_NBRVOICES:
+ setNbrVoices(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0, ch, ME_CONTROLLER, CTRL_NBRVOICES, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PROGRAM: {
+ int hbank = (val & 0xff0000) >> 16;
+ int lbank = (val & 0xff00) >> 8;
+ int prog = val & 0x7f;
+ if (hbank > 127) // map "dont care" to 0
+ hbank = 0;
+ if (lbank > 127)
+ lbank = 0;
+ programSelect(ch, hbank, lbank, prog);
+ _preset[ch]->setIsUsed(true);//TODO : not sure to put that
+ if(!fromGui) {
+ MidiEvent ev(0, ch, ME_CONTROLLER, CTRL_PROGRAM, val);
+ _gui->writeEvent(ev);
+ }
+ } break;
+ case CTRL_MODULATION:
+ setModulation(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0, ch, ME_CONTROLLER, CTRL_MODULATION, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_PITCH:
+ setPitchBendCoef(ch, val);
+ break;
+ case CTRL_PANPOT:
+ _preset[ch]->setIsUsed(true);
+ deiPan = val*2*MAXCHANNELPAN/127-MAXCHANNELPAN;
+ setChannelPan(ch, deiPan);
+ applyChannelAmp(ch);
+ if(!fromGui) {
+ MidiEvent ev(0, ch, ME_CONTROLLER, CTRL_CHANNELPAN, deiPan);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELPAN:
+ _preset[ch]->setIsUsed(true);
+ setChannelPan(ch, val);
+ applyChannelAmp(ch);
+ if(!fromGui) {
+ MidiEvent ev(0, ch, ME_CONTROLLER, CTRL_CHANNELPAN, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_FINEBRIGHTNESS:
+ _preset[ch]->setIsUsed(true);
+ setChannelBrightness(ch, val);
+ setOutLevel(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_FINEBRIGHTNESS, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_BRIGHTNESS:
+ _preset[ch]->setIsUsed(true);
+ setChannelBrightness(ch, val*(MIDFINEBRIGHTNESS/MIDBRIGHTNESS));
+ setOutLevel(ch);
+ if(!fromGui) {
+ MidiEvent
+ ev(0,ch,ME_CONTROLLER,CTRL_FINEBRIGHTNESS,getChannelBrightness(ch));
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ATTACK_TIME:
+ _preset[ch]->setIsUsed(true);
+ setChannelAttack(ch, val);
+ setEnvAttack(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_ATTACK_TIME, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_RELEASE_TIME:
+ _preset[ch]->setIsUsed(true);
+ setChannelRelease(ch, val);
+ setEnvRelease(ch);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_RELEASE_TIME, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_REVERB_SEND:
+ setChannelReverb(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_REVERB_SEND, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHORUS_SEND:
+ setChannelChorus(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_CHORUS_SEND, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_VARIATION_SEND:
+ setChannelDelay(ch, val);
+ if(!fromGui) {
+ MidiEvent ev(0,ch, ME_CONTROLLER, CTRL_VARIATION_SEND, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_SUSTAIN:
+ setSustain(ch, val);
+ break;
+ case CTRL_VOLUME:
+ setChannelVol(ch, val*(MAXCHANNELVOLUME/127));
+ applyChannelAmp(ch);
+ if(!fromGui) {
+ MidiEvent
+ ev(0, ch, ME_CONTROLLER, CTRL_CHANNELVOLUME, getChannelVol(ch));
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_ALL_SOUNDS_OFF:
+ resetVoices();
+ default:
+ break;
+ }
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* DeicsOnze::getPatchName(int ch, int val, int) const {
+ if(_global.channel[ch].isEnable) {
+ Preset* p_preset;
+ int hbank = (val & 0xff0000) >> 16;
+ int lbank = (val & 0xff00) >> 8;
+ if (hbank > 127)
+ hbank = 0;
+ if (lbank > 127)
+ lbank = 0;
+ if (lbank == 127) // drum HACK
+ lbank = 128;
+ int prog = val & 0x7f;
+ char* tempName="INITVOICE";
+ p_preset=_set->findPreset(hbank, lbank, prog);
+ if (p_preset) tempName=const_cast<char *>(p_preset->name.c_str());
+ return tempName;
+ }
+ return " ";
+}
+
+//---------------------------------------------------------
+// getPatchInfo
+//---------------------------------------------------------
+const MidiPatch* DeicsOnze::getPatchInfo(int /*ch*/, const MidiPatch* p) const {
+ Preset* preset = NULL;
+ Subcategory* sub = NULL;
+ Category* cat = NULL;
+ if(p) {
+ _patch.hbank = p->hbank;
+ _patch.lbank = p->lbank;
+ _patch.prog = p->prog;
+ switch(p->typ) {
+ case MP_TYPE_HBANK :
+ sub = findSubcategory(_patch.hbank, _patch.lbank);
+ if(sub) {
+ _patch.name = sub->_subcategoryName.c_str();
+ _patch.typ = MP_TYPE_LBANK;
+ return &_patch;
+ }
+ else {
+ if(_patch.lbank + 1 < LBANK_NBR) {
+ _patch.lbank++;
+ return getPatchInfo(0, &_patch);
+ }
+ else {
+ _patch.prog = PROG_NBR - 1; //hack to go faster
+ _patch.typ = 0;
+ return getPatchInfo(0, &_patch);
+ }
+ }
+ break;
+ case MP_TYPE_LBANK :
+ preset = findPreset(_patch.hbank, _patch.lbank, _patch.prog);
+ _patch.typ = 0;
+ if(preset) {
+ _patch.name = preset->name.c_str();
+ return &_patch;
+ }
+ else return getPatchInfo(0, &_patch);
+ break;
+ default :
+ if(_patch.prog + 1 < PROG_NBR) {
+ _patch.prog++;
+ preset = findPreset(_patch.hbank, _patch.lbank, _patch.prog);
+ if(preset) {
+ _patch.name = preset->name.c_str();
+ return &_patch;
+ }
+ else return getPatchInfo(0, &_patch);
+ }
+ else {
+ _patch.prog = 0;
+ if(_patch.lbank + 1 < LBANK_NBR) {
+ _patch.lbank++;
+ _patch.typ = MP_TYPE_HBANK;
+ return getPatchInfo(0, &_patch);
+ }
+ else {
+ _patch.lbank = 0;
+ if(_patch.hbank + 1 < HBANK_NBR) {
+ _patch.hbank++;
+ _patch.typ = MP_TYPE_HBANK;
+ cat = findCategory(_patch.hbank);
+ if(cat) {
+ _patch.name = cat->_categoryName.c_str();
+ return &_patch;
+ }
+ return getPatchInfo(0, &_patch);
+ }
+ else return NULL;
+ }
+ }
+ }
+ }
+ else {
+ _patch.typ = MP_TYPE_HBANK;
+ _patch.hbank = 0;
+ _patch.lbank = 0;
+ _patch.prog = 0;
+ cat = findCategory(_patch.hbank);
+ if(cat) {
+ _patch.name = cat->_categoryName.c_str();
+ return &_patch;
+ }
+ else {
+ _patch.hbank++;
+ return getPatchInfo(0, &_patch);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// getControllerInfo
+/*!
+ \fn SimpleSynth::getControllerInfo
+ \brief Called from host to collect info about which controllers
+ the synth supports
+ \param index current controller number
+ \param name pointer where name is stored
+ \param controller int pointer where muse controller number is stored
+ \param min int pointer where controller min value is stored
+ \param max int pointer where controller max value is stored
+ \return 0 when done, otherwise return next desired controller index
+*/
+//---------------------------------------------------------
+int DeicsOnze::getControllerInfo(int index, const char** name,
+ int* controller, int* min, int* max)
+{
+ if (index >= nbrCtrl) {
+ return 0;
+ }
+
+ *name = _ctrl[index].name.c_str();
+ *controller = _ctrl[index].num;
+ *min = _ctrl[index].min;
+ *max = _ctrl[index].max;
+ return (index +1);
+}
+
+//---------------------------------------------------------
+// playNote
+// process note on
+//---------------------------------------------------------
+bool DeicsOnze::playNote(int ch, int pitch, int velo) {
+ int newVoice;
+ int nO2V;
+ int p2V;
+ double tempTargetFreq;
+ if(_global.channel[ch].isEnable) {
+ if(velo==0) {//Note off
+ p2V=pitchOn2Voice(ch, pitch);
+ //printf("Note Off : pitchOn2Voice = %d\n", p2V);
+ if(p2V<_global.channel[ch].nbrVoices) {
+ if(_global.channel[ch].sustain)
+ _global.channel[ch].voices[p2V].isSustained = true;
+ else {
+ _global.channel[ch].voices[p2V].keyOn = false;
+ _global.channel[ch].lastVoiceKeyOff = p2V;
+ _global.channel[ch].lastVoiceKeyOn.remove(p2V);
+ if(_preset[ch]->function.mode == MONO && existsKeyOn(ch)
+ && _global.channel[ch].voices[p2V].isOn) {
+ newVoice = _global.channel[ch].lastVoiceKeyOn.back();
+ //portamento
+ if(_preset[ch]->function.portamentoTime!=0) {
+ _global.channel[ch].voices[newVoice].hasAttractor = true;
+ _global.channel[ch].voices[newVoice].attractor =
+ getAttractor(_preset[ch]->function.portamentoTime,
+ _global.deiSampleRate);
+ }
+ else _global.channel[ch].voices[newVoice].hasAttractor = false;
+ //feedback
+ _global.channel[ch].voices[newVoice].sampleFeedback =
+ _global.channel[ch].voices[p2V].sampleFeedback;
+ //on/off
+ _global.channel[ch].voices[p2V].isOn = false;
+ _global.channel[ch].voices[newVoice].isOn = true;
+ //per op
+ for(int i = 0; i < NBROP; i++) {
+ _global.channel[ch].voices[newVoice].op[i].index =
+ _global.channel[ch].voices[p2V].op[i].index;
+ _global.channel[ch].voices[newVoice].op[i].envState =
+ _global.channel[ch].voices[p2V].op[i].envState;
+ _global.channel[ch].voices[newVoice].op[i].envIndex =
+ _global.channel[ch].voices[p2V].op[i].envIndex;
+ _global.channel[ch].voices[newVoice].op[i].envInct =
+ _global.channel[ch].voices[p2V].op[i].envInct;
+ _global.channel[ch].voices[newVoice].op[i].envLevel =
+ _global.channel[ch].voices[p2V].op[i].envLevel;
+ _global.channel[ch].voices[newVoice].op[i].coefVLevel =
+ _global.channel[ch].voices[p2V].op[i].coefVLevel;
+ if(_global.channel[ch].voices[newVoice].hasAttractor)
+ _global.channel[ch].voices[newVoice].op[i].inct =
+ _global.channel[ch].voices[p2V].op[i].inct;
+ }
+ }
+ else {
+ setPitchEnvRelease(ch, p2V);
+ for(int i=0; i<NBROP; i++) {
+ _global.channel[ch].voices[p2V].op[i].envState = RELEASE;
+ setEnvRelease(ch, p2V, i);
+ }
+ }
+ }
+ return false;
+ }
+ //else printf("error over NBRVOICES\n");
+ }
+ else //Note on
+ {
+ nO2V=noteOff2Voice(ch);
+ newVoice=((nO2V==MAXNBRVOICES)?minVolu2Voice(ch):nO2V);
+ //printf("Note On : ch = %d, v = %d, p = %d\n", ch, newVoice, pitch);
+
+ //----------
+ //portamento
+ //----------
+ //if there is no previous note there is no portamento
+ if(_preset[ch]->function.portamentoTime!=0
+ && _global.channel[ch].isLastNote &&
+ (_preset[ch]->function.portamento==FULL) ||
+ (_preset[ch]->function.portamento==FINGER && existsKeyOn(ch))) {
+ _global.channel[ch].voices[newVoice].hasAttractor = true;
+ _global.channel[ch].voices[newVoice].attractor =
+ getAttractor(_preset[ch]->function.portamentoTime,
+ _global.deiSampleRate);
+ }
+ else _global.channel[ch].voices[newVoice].hasAttractor = false;
+
+ if(_preset[ch]->lfo.sync) _global.channel[ch].lfoIndex=0;
+
+ _global.channel[ch].lfoDelayIndex =
+ (_preset[ch]->lfo.delay==0?(double)(RESOLUTION/4):0.0);
+ _global.channel[ch].delayPassed = false;
+
+ //--------------
+ //PITCH ENVELOPE
+ //--------------
+ if(isPitchEnv(&_preset[ch]->pitchEg)) {
+ _global.channel[ch].voices[newVoice].pitchEnvState = PHASE1;
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInctPhase1 =
+ getPitchEnvCoefInct(_preset[ch]->pitchEg.pl1);
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInctPhase2 =
+ getPitchEnvCoefInct(_preset[ch]->pitchEg.pl2);
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInctPhase3 =
+ getPitchEnvCoefInct(_preset[ch]->pitchEg.pl3);
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInct =
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInctPhase1;
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInctInct =
+ getPitchEnvCoefInctInct(_preset[ch]->pitchEg.pl1,
+ _preset[ch]->pitchEg.pl2,
+ _preset[ch]->pitchEg.pr1,
+ _global.deiSampleRate);
+ }
+ else {
+ _global.channel[ch].voices[newVoice].pitchEnvState = OFF_PE;
+ _global.channel[ch].voices[newVoice].pitchEnvCoefInct = 1.0;
+ }
+ //per operator
+ for(int i=0; i<NBROP; i++) {
+ //------
+ //VOLUME
+ //------
+ _global.channel[ch].voices[newVoice].op[i].ampVeloNote =
+ velo2AmpR(velo, _preset[ch]->sensitivity.keyVelocity[i])
+ *note2Amp((double) (pitch+_preset[ch]->function.transpose),
+ _preset[ch]->scaling.level[i]);
+ _global.channel[ch].voices[newVoice].op[i].amp =
+ outLevel2Amp(_preset[ch]->outLevel[i])
+ *_global.channel[ch].voices[newVoice].op[i].ampVeloNote
+ * brightness2Amp(ch, i);
+ //----------------
+ //INDEX & ENVELOPE
+ //----------------
+ //if index get 0.0, it means that the offset is 0
+ if(existsKeyOn(ch)) {
+ int lastVoice = _global.channel[ch].lastVoiceKeyOn.back();
+ if(_preset[ch]->function.mode == MONO) {
+ _global.channel[ch].voices[newVoice].op[i].index =
+ _global.channel[ch].voices[lastVoice].op[i].index;
+ _global.channel[ch].voices[newVoice].sampleFeedback =
+ _global.channel[ch].voices[lastVoice].sampleFeedback;
+ _global.channel[ch].voices[newVoice].op[i].envState =
+ _global.channel[ch].voices[lastVoice].op[i].envState;
+ _global.channel[ch].voices[newVoice].op[i].envIndex =
+ _global.channel[ch].voices[lastVoice].op[i].envIndex;
+ _global.channel[ch].voices[newVoice].op[i].envInct =
+ _global.channel[ch].voices[lastVoice].op[i].envInct;
+ _global.channel[ch].voices[newVoice].op[i].envLevel =
+ _global.channel[ch].voices[lastVoice].op[i].envLevel;
+ _global.channel[ch].voices[newVoice].op[i].coefVLevel =
+ _global.channel[ch].voices[lastVoice].op[i].coefVLevel;
+ _global.channel[ch].voices[lastVoice].isOn = false;
+ }
+ else {
+ _global.channel[ch].voices[newVoice].op[i].index = 0.0;
+ _global.channel[ch].voices[newVoice].sampleFeedback = 0.0;
+ _global.channel[ch].voices[newVoice].op[i].envState = ATTACK;
+ _global.channel[ch].voices[newVoice].op[i].envIndex = 0.0;
+ setEnvAttack(ch, newVoice, i);
+ }
+ }
+ else {
+ _global.channel[ch].voices[newVoice].op[i].index = 0.0;
+ _global.channel[ch].voices[newVoice].sampleFeedback = 0.0;
+ _global.channel[ch].voices[newVoice].op[i].envState = ATTACK;
+ _global.channel[ch].voices[newVoice].op[i].envIndex = 0.0;
+ setEnvAttack(ch, newVoice, i);
+ if(_preset[ch]->function.mode == MONO &&
+ _global.channel[ch].isLastNote) {
+ _global.channel[ch].voices[_global.channel[ch].lastVoiceKeyOff]
+ .isOn = false;
+ }
+ }
+
+ //----
+ //FREQ
+ //----
+ //the frequence for each operator is calculated
+ //and is used later to calculate inct
+ tempTargetFreq =
+ (pitch2freq((double)getChannelDetune(ch)
+ /(double)MAXCHANNELDETUNE)
+ /LOWERNOTEFREQ)*
+ (_preset[ch]->frequency[i].isFix?
+ _preset[ch]->frequency[i].freq:
+ (_preset[ch]->frequency[i].ratio
+ *pitch2freq((double)(pitch+_preset[ch]->function.transpose)
+ +(double)_preset[ch]->detune[i]*COEFDETUNE)));
+ //----
+ //INCT
+ //----
+ //compute inct
+ _global.channel[ch].voices[newVoice].op[i].targetInct =
+ (double)RESOLUTION / ( _global.deiSampleRate / tempTargetFreq );
+ if(_global.channel[ch].voices[newVoice].hasAttractor &&
+ !_preset[ch]->frequency[i].isFix)
+ _global.channel[ch].voices[newVoice].op[i].inct =
+ _global.channel[ch].lastInc[i];
+ else _global.channel[ch].voices[newVoice].op[i].inct =
+ _global.channel[ch].voices[newVoice].op[i].targetInct;
+ }
+ //--------------------
+ //some initializations
+ //--------------------
+ _global.channel[ch].voices[newVoice].keyOn = true;
+ _global.channel[ch].voices[newVoice].isSustained = false;
+ _global.channel[ch].voices[newVoice].isOn = true;
+ _global.channel[ch].voices[newVoice].pitch = pitch;
+ _global.channel[ch].isLastNote = true;
+ _global.channel[ch].lastVoiceKeyOn.push_back(newVoice);
+ for(int k = 0; k < NBROP; k++)
+ _global.channel[ch].lastInc[k] =
+ _global.channel[ch].voices[newVoice].op[k].inct;
+ return false;
+ }
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// plusMod
+// add two doubles modulo RESOLUTION
+//---------------------------------------------------------
+inline double plusMod(double x, double y) {
+ double res;
+ res=x+y;
+ if (res>=0) while (res >= (double)RESOLUTION) res-=(double)RESOLUTION;
+ else while (res < 0) res+=(double)RESOLUTION;
+ return res;
+}
+
+
+//---------------------------------------------------------
+// write
+// synthesize n samples into buffer+offset
+//---------------------------------------------------------
+void DeicsOnze::process(float** buffer, int offset, int n) {
+ //Process messages from the gui
+ while (_gui->fifoSize()) {
+ MidiEvent ev = _gui->readEvent();
+ if (ev.type() == ME_SYSEX) {
+ sysex(ev.len(), ev.data(), true);
+ sendEvent(ev);
+ }
+ else if (ev.type() == ME_CONTROLLER) {
+ setController(ev.channel(), ev.dataA(), ev.dataB(), true);
+ sendEvent(ev);
+ }
+ }
+ float* leftOutput = buffer[0] + offset;
+ float* rightOutput = buffer[1] + offset;
+
+ float sample[MAXNBRVOICES];
+ float tempLeftOutput;
+ float tempRightOutput;
+ float tempChannelOutput;
+ float tempChannelLeftOutput;
+ float tempChannelRightOutput;
+ float tempIncChannel; //for optimization
+ float sampleOp[NBROP];
+ for(int i = 0; i < NBROP; i++) sampleOp[i] = 0.0;
+ float ampOp[NBROP];
+ for(int i = 0; i < n; i++) {
+ if(_global.qualityCounter == 0) {
+ tempLeftOutput = 0.0;
+ tempRightOutput = 0.0;
+ _global.lastInputLeftChorusSample = 0.0;
+ _global.lastInputRightChorusSample = 0.0;
+ _global.lastInputLeftReverbSample = 0.0;
+ _global.lastInputRightReverbSample = 0.0;
+ _global.lastInputLeftDelaySample = 0.0;
+ _global.lastInputRightDelaySample = 0.0;
+ //per channel
+ for(int c = 0; c < NBRCHANNELS; c++) {
+ tempChannelOutput = 0.0;
+ if(_global.channel[c].isEnable) {
+ //lfo, trick : we use the first quater of the wave W2
+ lfoUpdate(_preset[c], &_global.channel[c], waveTable[W2]);
+
+ //optimization
+ tempIncChannel =
+ _global.channel[c].lfoCoefInct * _global.channel[c].pitchBendCoef;
+
+ //per voice
+ for(int j=0; j<_global.channel[c].nbrVoices; j++) {
+ if (_global.channel[c].voices[j].isOn) {
+ //portamento
+ portamentoUpdate(&_global.channel[c],
+ &_global.channel[c].voices[j]);
+ //pitch envelope
+ pitchEnvelopeUpdate(&_global.channel[c].voices[j],
+ &_preset[c]->pitchEg, _global.deiSampleRate);
+ //per op
+ for(int k=0; k<NBROP; k++) {
+ //compute the next index on the wavetable,
+ //without taking account of the feedback and FM modulation
+ _global.channel[c].voices[j].op[k].index=
+ plusMod(_global.channel[c].voices[j].op[k].index,
+ _global.channel[c].voices[j].op[k].inct
+ * tempIncChannel
+ * _global.channel[c].voices[j].pitchEnvCoefInct);
+
+ ampOp[k]=_global.channel[c].voices[j].op[k].amp*COEFLEVEL
+ *(_preset[c]->sensitivity.ampOn[k]?
+ _global.channel[c].lfoAmp:1.0)
+ *env2AmpR(_global.deiSampleRate, waveTable[W2],
+ _preset[c]->eg[k],
+ &_global.channel[c].voices[j].op[k]);
+ }
+ switch(_preset[c]->algorithm) {
+ case FIRST :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)plusMod(_global.channel[c].voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)plusMod(_global.channel[c].voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[2])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[1])];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case SECOND :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)_global.channel[c].voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)plusMod(_global.channel[c].voices[j].op[1].index,
+ (float)RESOLUTION
+ *(sampleOp[2]+sampleOp[3])/2.0)];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION
+ *sampleOp[1])];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case THIRD :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)_global.channel[c].voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)plusMod(_global.channel[c].voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[2])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION
+ *(sampleOp[3]+sampleOp[1])/2.0)];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case FOURTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)plusMod(_global.channel[c].voices[j].op[2].index,
+ (float)RESOLUTION
+ *sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)_global.channel[c].voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION
+ *(sampleOp[1]+sampleOp[2])/2.0)];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case FIFTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)plusMod(_global.channel[c].voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)_global.channel[c].voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[1])];
+
+ sample[j]=(sampleOp[0]+sampleOp[2])/2.0;///COEFLEVEL;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF
+ ||_global.channel[c].voices[j].op[2].envState!=OFF);
+ break;
+ case SIXTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)plusMod(_global.channel[c].voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)plusMod(_global.channel[c].voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)plusMod(_global.channel[c].voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[3])];
+
+ sample[j]=(sampleOp[0]+sampleOp[1]+sampleOp[2])/3.0;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case SEVENTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)plusMod(_global.channel[c].voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)_global.channel[c].voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]*waveTable[_preset[c]->oscWave[0]]
+ [(int)_global.channel[c].voices[j].op[0].index];
+
+ sample[j]=(sampleOp[0]+sampleOp[1]+sampleOp[2])/3.0;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF);
+ break;
+ case EIGHTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset[c]->oscWave[3]]
+ [(int)plusMod(_global.channel[c].voices[j].op[3].index,
+ (float)RESOLUTION
+ *_global.channel[c].voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset[c]->oscWave[2]]
+ [(int)_global.channel[c].voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset[c]->oscWave[1]]
+ [(int)_global.channel[c].voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset[c]->oscWave[0]]
+ [(int)_global.channel[c].voices[j].op[0].index];
+
+ sample[j]=
+ (sampleOp[0]+sampleOp[1]+sampleOp[2]+sampleOp[3])
+ /4.0;
+
+ _global.channel[c].voices[j].isOn =
+ (_global.channel[c].voices[j].op[0].envState!=OFF
+ || _global.channel[c].voices[j].op[1].envState!=OFF
+ || _global.channel[c].voices[j].op[2].envState!=OFF
+ || _global.channel[c].voices[j].op[3].envState!=OFF);
+ break;
+ default : printf("Error : No algorithm");
+ break;
+ }
+
+ _global.channel[c].voices[j].volume=
+ ampOp[0]+ampOp[1]+ampOp[2]+ampOp[3];
+
+ _global.channel[c].voices[j].sampleFeedback =
+ sampleOp[3]*_global.channel[c].feedbackAmp;
+
+ tempChannelOutput += sample[j];
+ }
+ }
+ //printf("left out = %f, temp out = %f, left amp = %f\n",
+ //tempLeftOutput, tempChannelOutput, _global.channel[c].ampLeft);
+
+ tempChannelLeftOutput = tempChannelOutput*_global.channel[c].ampLeft;
+ tempChannelRightOutput=tempChannelOutput*_global.channel[c].ampRight;
+
+ if(_global.isChorusActivated) {
+ _global.lastInputLeftChorusSample += tempChannelLeftOutput *
+ _global.channel[c].chorusAmount;
+ _global.lastInputRightChorusSample += tempChannelRightOutput *
+ _global.channel[c].chorusAmount;
+ }
+ if(_global.isReverbActivated) {
+ _global.lastInputLeftReverbSample += tempChannelLeftOutput *
+ _global.channel[c].reverbAmount;
+ _global.lastInputRightReverbSample += tempChannelRightOutput *
+ _global.channel[c].reverbAmount;
+ }
+ if(_global.isDelayActivated) {
+ _global.lastInputLeftDelaySample += tempChannelLeftOutput *
+ _global.channel[c].delayAmount;
+ _global.lastInputRightDelaySample += tempChannelRightOutput *
+ _global.channel[c].delayAmount;
+ }
+ tempLeftOutput += tempChannelLeftOutput;
+ tempRightOutput += tempChannelRightOutput;
+ }
+ }
+ _global.lastLeftSample = tempLeftOutput * _global.masterVolume;
+ _global.lastRightSample = tempRightOutput * _global.masterVolume;
+ }
+ leftOutput[i] += _global.lastLeftSample;
+ rightOutput[i] += _global.lastRightSample;
+
+ if(_global.isChorusActivated) {
+ tempInputChorus[0][i] = _global.lastInputLeftChorusSample;
+ tempInputChorus[1][i] = _global.lastInputRightChorusSample;
+ }
+ if(_global.isReverbActivated) {
+ tempInputReverb[0][i] = _global.lastInputLeftReverbSample;
+ tempInputReverb[1][i] = _global.lastInputRightReverbSample;
+ }
+ if(_global.isDelayActivated) {
+ tempInputDelay[0][i] = _global.lastInputLeftDelaySample;
+ tempInputDelay[1][i] = _global.lastInputRightDelaySample;
+ }
+
+ _global.qualityCounter++;
+ _global.qualityCounter %= _global.qualityCounterTop;
+ }
+ //apply Filter
+ if(_global.filter) _dryFilter->process(leftOutput, rightOutput, n);
+ //Chorus
+ if(_pluginIChorus && _global.isChorusActivated) {
+ //apply Filter
+ if(_global.filter) _chorusFilter->process(tempOutputChorus[0],
+ tempOutputChorus[1], n);
+ //apply Chorus
+ _pluginIChorus->apply(n, 2, tempInputChorus, tempOutputChorus);
+ for(int i = 0; i < n; i++) {
+ leftOutput[i] +=
+ tempOutputChorus[0][i] * _global.chorusReturn * _global.masterVolume;
+ rightOutput[i] +=
+ tempOutputChorus[1][i] * _global.chorusReturn * _global.masterVolume;
+ }
+ }
+ //Reverb
+ if(_pluginIReverb && _global.isReverbActivated) {
+ //apply Filter
+ if(_global.filter) _reverbFilter->process(tempOutputReverb[0],
+ tempOutputReverb[1], n);
+ //apply Reverb
+ _pluginIReverb->apply(n, 2, tempInputReverb, tempOutputReverb);
+ for(int i = 0; i < n; i++) {
+ leftOutput[i] +=
+ tempOutputReverb[0][i] * _global.reverbReturn * _global.masterVolume;
+ rightOutput[i] +=
+ tempOutputReverb[1][i] * _global.reverbReturn * _global.masterVolume;
+ }
+ }
+ //Delay
+ if(_pluginIDelay && _global.isDelayActivated) {
+ //apply Filter
+ if(_global.filter) _delayFilter->process(tempOutputDelay[0],
+ tempOutputDelay[1], n);
+ //apply Delay
+ _pluginIDelay->apply(n, 2, tempInputDelay, tempOutputDelay);
+ for(int i = 0; i < n; i++) {
+ leftOutput[i] +=
+ tempOutputDelay[0][i] * _global.delayReturn * _global.masterVolume;
+ rightOutput[i] +=
+ tempOutputDelay[1][i] * _global.delayReturn * _global.masterVolume;
+ }
+ }
+}
+
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+class QWidget;
+
+static Mess* instantiate(int sr, const char*)
+{
+ DeicsOnze* deicsonze = new DeicsOnze();
+ deicsonze->setSampleRate(sr);
+ return deicsonze;
+}
+
+extern "C" {
+ static MESS descriptor = {
+ "DeicsOnze",
+ "DeicsOnze FM DX11/TX81Z emulator",
+ "0.5.5", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate
+ };
+
+ const MESS* mess_descriptor() { return &descriptor; }
+}
+
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonze.h b/muse_qt4_evolution/synti/deicsonze/deicsonze.h
new file mode 100644
index 00000000..26316690
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonze.h
@@ -0,0 +1,603 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+//
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+
+#ifndef __DEICSONZE_H
+#define __DEICSONZE_H
+
+#include <list>
+
+#include "deicsonzepreset.h"
+#include "deicsonzegui.h"
+#include "deicsonzeplugin.h"
+#include "deicsonzefilter.h"
+#include "libsynti/mess.h"
+#include "plugin.h"
+
+#define DEICSONZESTR "deicsonze"
+
+#define MAXPITCHBENDVALUE 8191
+
+#define RESOLUTION 96000
+
+#define MAXFXBUFFERSIZE 48000
+#define NBRFXINPUTS 2
+#define NBRFXOUTPUTS 2
+
+#define NBRCTRLS 127
+
+#define NBRPRESETS 128
+
+#define LOWERNOTEFREQ 8.176
+
+#define DB0LEVEL 90
+
+#define LENGTHNAME 20
+#define LENGTHCATEGORY 20
+#define LENGTHSUBCATEGORY 20
+
+#define MAXVELO 127
+#define MAXVOLUME 100.0
+#define MAXSTRLENGTHINITSETPATH 256
+#define MAXSTRLENGTHBACKGROUNDPIXPATH 256
+#define MAXSTRLENGTHFXLIB 256
+#define MAXSTRLENGTHFXLABEL 256
+
+#define DB_MIN 25.0
+
+//coef determined by ear to sound like the YAMAHA DX11
+#define COEFFEEDBACK 0.3
+#define COEFPLFO(x) (x==0?0.0:(x==1?0.06:(x==2?0.12:(x==3?0.25:(x==4?0.5:(x==5?0.9:(x==6?3.9:7.9))))))) //return pitch amplitude with respect to sensitivity pitch
+#define COEFALFO(x) (x==0?0.0:(x==1?0.4:(x==2?0.9:1.0)))
+#define MAX(x,y) (x<y?y:x)
+#define COEFLEVEL 1.0//19.0
+#define COEFMAXATTACK 7.5
+#define COEFERRDECSUS 0.01 //for the transition between DECAY and SUSTAIN
+#define COEFERRSUSREL 0.001 //from SUSTAIN or RELEASE until no sound
+//#define ERRPORTA 0.001 //dectection to stop portamento
+#define COEFPORTA 0.01 //adjusted such that 10 second/octave with max porta
+#define COEFPITCHENV 0.00000025 //adjust according to a real DX11....???
+#define COEFDECAY 1.0
+#define COEFSUSTAIN 0.2
+#define COEFRELEASE 1.0
+#define COEFDETUNE 0.008
+#define COEFLEVELSCALE 0.0005
+#define COEFGATTACK 0.9
+#define COEFGRELEASE 0.9
+#define LEVELSCALENOTE 24.0
+
+#define NBRWAVES 8 //number wave forms, do not change
+#define NBRBANKPRESETS 32
+#define MAXNBRVOICES 64
+#define NBRCHANNELS 16
+
+#define SYSEX_INIT_DATA 1
+#define SYSEX_INIT_DATA_VERSION 1
+#define SAVEINITLENGTH 2
+
+#define DEICSONZECONFIGURATIONSTR "deicsOnzeConfiguation"
+#define SYSEX_MASTERVOL 4
+#define MASTERVOLSTR "MasterVolume"
+#define MAXMASTERVOLUME 255
+#define INITMASTERVOL 192
+#define SYSEX_QUALITY 5
+#define QUALITYSTR "Quality"
+#define HIGHSTR "High"
+#define MIDDLESTR "Middle"
+#define LOWSTR "Low"
+#define ULTRALOWSTR "UltraLow"
+#define SYSEX_FONTSIZE 6
+#define FONTSIZESTR "fontSize"
+#define SYSEX_SAVECONFIG 7
+#define SAVECONFIGSTR "SaveConfig"
+#define SYSEX_SAVEONLYUSED 8
+#define SAVEONLYUSEDSTR "SaveOnlyUsed"
+#define YESSTRDEI "yes"
+#define NOSTRDEI "no"
+#define SYSEX_LOADSET 10
+#define SYSEX_ISINITSET 12
+#define ISINITSETSTR "IsInitSet"
+#define SYSEX_INITSETPATH 13
+#define INITSETPATHSTR "InitSetPath"
+#define SYSEX_ISBACKGROUNDPIX 14
+#define ISBACKGROUNDPIXSTR "IsBackgroundPix"
+#define SYSEX_BACKGROUNDPIXPATH 15
+#define BACKGROUNDPIXPATHSTR "backgroundPixPath"
+#define SYSEX_COLORGUI 20
+#define TEXTCOLORSTR "TextColor"
+#define BACKGROUNDCOLORSTR "BackgroundColor"
+#define EDITTEXTCOLORSTR "EditTextColor"
+#define EDITBACKGROUNDCOLORSTR "EditBackgroundColor"
+#define COLORSYSEXLENGTH 12
+#define SYSEX_UPDATESETGUI 25
+#define SYSEX_PANIC 30
+#define SYSEX_CHORUSACTIV 40
+#define SYSEX_CHORUSPARAM 41
+#define SYSEX_REVERBACTIV 60
+#define SYSEX_REVERBPARAM 61
+#define SYSEX_CHORUSRETURN 80
+#define SYSEX_REVERBRETURN 81
+#define MAXFXRETURN 255
+#define INITFXRETURN 192
+#define SYSEX_SELECTREVERB 82
+#define SYSEX_SELECTCHORUS 83
+#define SYSEX_BUILDGUIREVERB 84
+#define SYSEX_BUILDGUICHORUS 85
+#define SYSEX_FILTER 90
+#define FILTERSTR "Filter"
+#define SYSEX_DELAYACTIV 91
+#define SYSEX_DELAYRETURN 92
+#define SYSEX_DELAYBPM 93
+#define SYSEX_DELAYBEATRATIO 94
+#define SYSEX_DELAYFEEDBACK 95
+#define SYSEX_DELAYLFOFREQ 96
+#define SYSEX_DELAYLFODEPTH 97
+
+//REVERB PARAMETERS
+
+#define DEFAULTVOL 200
+
+enum {
+ NUM_MASTERVOL = SAVEINITLENGTH,
+ NUM_CHANNEL_ENABLE,
+ NUM_CHANNEL_VOL = NUM_CHANNEL_ENABLE + NBRCHANNELS + 1,
+ NUM_CHANNEL_PAN = NUM_CHANNEL_VOL + NBRCHANNELS + 1,
+ NUM_CHANNEL_BRIGHTNESS = NUM_CHANNEL_PAN + NBRCHANNELS + 1,
+ NUM_CHANNEL_MODULATION = NUM_CHANNEL_BRIGHTNESS + 2*NBRCHANNELS +1,
+ NUM_CHANNEL_DETUNE = NUM_CHANNEL_MODULATION + NBRCHANNELS + 1,
+ NUM_CHANNEL_ATTACK = NUM_CHANNEL_DETUNE + NBRCHANNELS + 1,
+ NUM_CHANNEL_RELEASE = NUM_CHANNEL_ATTACK + NBRCHANNELS + 1,
+ NUM_CHANNEL_REVERB = NUM_CHANNEL_RELEASE + NBRCHANNELS + 1,
+ NUM_CHANNEL_CHORUS = NUM_CHANNEL_REVERB + NBRCHANNELS + 1,
+ NUM_CHANNEL_DELAY = NUM_CHANNEL_CHORUS + NBRCHANNELS + 1,
+ NUM_CURRENTPROG = NUM_CHANNEL_DELAY + NBRCHANNELS + 1,
+ NUM_CURRENTLBANK = NUM_CURRENTPROG + NBRCHANNELS + 1,
+ NUM_CURRENTHBANK = NUM_CURRENTLBANK + NBRCHANNELS + 1,
+ NUM_NBRVOICES = NUM_CURRENTHBANK + NBRCHANNELS + 1,
+ NUM_SAVEONLYUSED = NUM_NBRVOICES + NBRCHANNELS + 1,
+ NUM_SAVECONFIG,
+ NUM_RED_TEXT,
+ NUM_GREEN_TEXT,
+ NUM_BLUE_TEXT,
+ NUM_RED_BACKGROUND,
+ NUM_GREEN_BACKGROUND,
+ NUM_BLUE_BACKGROUND,
+ NUM_RED_EDITTEXT,
+ NUM_GREEN_EDITTEXT,
+ NUM_BLUE_EDITTEXT,
+ NUM_RED_EDITBACKGROUND,
+ NUM_GREEN_EDITBACKGROUND,
+ NUM_BLUE_EDITBACKGROUND,
+ NUM_QUALITY,
+ NUM_FILTER,
+ NUM_FONTSIZE,
+ NUM_ISINITSET,
+ NUM_INITSETPATH,
+ NUM_ISBACKGROUNDPIX = NUM_INITSETPATH + MAXSTRLENGTHINITSETPATH + 1,
+ NUM_BACKGROUNDPIXPATH,
+ NUM_IS_REVERB_ON = NUM_BACKGROUNDPIXPATH + MAXSTRLENGTHBACKGROUNDPIXPATH + 1,
+ NUM_REVERB_RETURN,
+ NUM_REVERB_PARAM_NBR,
+ NUM_REVERB_LIB,
+ NUM_REVERB_LABEL = NUM_REVERB_LIB + MAXSTRLENGTHFXLIB + 1,
+ NUM_IS_CHORUS_ON = NUM_REVERB_LABEL + MAXSTRLENGTHFXLABEL + 1,
+ NUM_CHORUS_RETURN,
+ NUM_CHORUS_PARAM_NBR,
+ NUM_CHORUS_LIB,
+ NUM_CHORUS_LABEL = NUM_CHORUS_LIB + MAXSTRLENGTHFXLIB + 1,
+ NUM_IS_DELAY_ON = NUM_CHORUS_LABEL + MAXSTRLENGTHFXLABEL + 1,
+ NUM_DELAY_RETURN,
+ NUM_DELAY_BPM,
+ NUM_DELAY_BEATRATIO = NUM_DELAY_BPM + sizeof(float),
+ NUM_DELAY_FEEDBACK = NUM_DELAY_BEATRATIO + sizeof(float),
+ NUM_DELAY_LFO_FREQ = NUM_DELAY_FEEDBACK + sizeof(float),
+ NUM_DELAY_LFO_DEPTH = NUM_DELAY_LFO_FREQ + sizeof(float),
+ NUM_CONFIGLENGTH = NUM_DELAY_LFO_DEPTH + sizeof(float)
+};
+
+class DeicsOnzeGui;
+class DeicsOnzePlugin;
+
+//---------------------------------------------------------
+// outLevel2Amp, Amp for amplitude //between 0.0 and 2.0 or more
+// 100->2.0, 90->1.0, 80->0.5 ...
+//---------------------------------------------------------
+inline double outLevel2Amp(int ol);
+
+//---------------------------------------------------------
+// level2amp,
+// 255->0dB->1.0, 0->-27dB->0
+//---------------------------------------------------------
+inline double level2amp(int l);
+
+//---------------------------------------------------------
+// amp2level
+// 1.0->0dB->255, 0->-27dB->0
+//---------------------------------------------------------
+inline int amp2level(double amp);
+
+//---------------------------------------------------------
+// amp2lowlevel
+// 1.0->0dB->127, 0->-27dB->0
+//---------------------------------------------------------
+inline int amp2lowlevel(double amp);
+
+//---------------------------------------------------------
+// lowlevel2amp,
+// 127->0dB->1.0, 0->-27dB->0
+//---------------------------------------------------------
+inline double lowlevel2amp(int l);
+
+//---------------------------------------------------------
+// envAR2s
+// return the time in second of the ATTACK duration
+//---------------------------------------------------------
+inline double envAR2s(int ar);
+
+//---------------------------------------------------------
+// coefAttack
+// convert the attack value to a coef for envInct
+//---------------------------------------------------------
+inline double coefAttack(unsigned char attack);
+
+//---------------------------------------------------------
+// envRR2coef
+// return the coefficient for the exponential decrease
+// with respect to rr and sampleRate, sr
+//---------------------------------------------------------
+inline double envRR2coef(int rr, double sr, unsigned char release);
+
+//--------------------------------------------------------
+// DeicsOnzeCtrl
+//--------------------------------------------------------
+struct DeicsOnzeCtlr
+{
+ std::string name;
+ int num;
+ int min, max;
+};
+
+//---------------------------------------------------------
+// EnvState
+//---------------------------------------------------------
+
+enum EnvState{
+ ATTACK,
+ DECAY,
+ SUSTAIN,
+ RELEASE,
+ OFF
+};
+
+//---------------------------------------------------------
+// OpVoice
+//---------------------------------------------------------
+
+struct OpVoice {
+ double index;
+ double inct;
+ double targetInct; //used if portamento
+ double amp; //between 0 and 1
+ double ampVeloNote; //keeps the ratio amplitude from velo2AmpR and note2Amp
+ //in order to change independently the output level
+ //after pressing the note
+ EnvState envState;
+ double envIndex;
+ double envInct;
+ double envLevel;
+ double coefVLevel;
+};
+
+//---------------------------------------------------------
+// PitchEnvState
+//---------------------------------------------------------
+enum PitchEnvState{
+ PHASE1,
+ PHASE2,
+ RELEASE_PE,
+ OFF_PE
+};
+
+//---------------------------------------------------------
+// Voice
+//---------------------------------------------------------
+
+struct Voice {
+ bool hasAttractor;//true iff the voice has an attractor (portamento occuring)
+ double attractor; //contains some coeficent for portamento TODO
+ PitchEnvState pitchEnvState;
+ double pitchEnvCoefInct;
+ double pitchEnvCoefInctPhase1;
+ double pitchEnvCoefInctPhase2;
+ double pitchEnvCoefInctPhase3;
+ double pitchEnvCoefInctRelease;
+ double pitchEnvCoefInctInct;
+ bool isOn;
+ bool keyOn;
+ bool isSustained;
+ int pitch; //number of the note
+ double volume;
+ OpVoice op[NBROP];
+ float sampleFeedback;
+};
+
+//---------------------------------------------------------
+// Channel
+//---------------------------------------------------------
+struct Channel {
+ bool isEnable;
+ float ampLeft;
+ float ampRight;
+ int volume; //0 to 255
+ int pan; //TODO -63 +64 or -127 +128
+ int modulation;//0 to 127
+ int detune;//-31 to 31
+ int brightness; //0 to 4095
+ int attack; //0 to 127
+ int release; //0 to 127
+ float feedbackAmp;
+ float lfoFreq;
+ float lfoPitch;
+ float lfoMaxCoefInct;
+ float lfoCoefInct;
+ float lfoCoefInctInct;
+ unsigned int lfoIndex;
+ unsigned int lfoMaxIndex;
+ float lfoMaxAmp;
+ float lfoMaxDAmp;
+ float lfoAmp;
+ float lfoCoefAmp;
+ double lfoDelayIndex;
+ double lfoDelayInct;
+ double lfoDelayMaxIndex;
+ bool delayPassed;
+ bool sustain;
+ double pitchBendCoef;//speed coef to read the sample
+ unsigned char nbrVoices;
+ Voice voices[MAXNBRVOICES];
+ double lastInc[NBROP];
+ std::list<int> lastVoiceKeyOn; //stack of the voice number
+ int lastVoiceKeyOff;
+ bool isLastNote;
+ //FX
+ float chorusAmount; //between 0.0 and 1.0
+ float reverbAmount; //between 0.0 and 1.0
+ float delayAmount; //between 0.0 and 1.0
+};
+
+//---------------------------------------------------------
+// Global
+//---------------------------------------------------------
+enum Quality {
+ high,
+ middle,
+ low,
+ ultralow
+};
+
+struct Global {
+ float masterVolume;
+ Quality quality; //high, middle, low
+ int qualityCounter; //counter to skip some sample depending on quality
+ int qualityCounterTop; //number of sample - 1 to skip
+ double deiSampleRate; //depending on quality deicsOnze sample rate varies
+ bool filter; //low passe filter used when the sampling is low
+ int fontSize;
+ float lastLeftSample;
+ float lastRightSample;
+ float lastInputLeftChorusSample;
+ float lastInputRightChorusSample;
+ float lastInputLeftReverbSample;
+ float lastInputRightReverbSample;
+ float lastInputLeftDelaySample;
+ float lastInputRightDelaySample;
+ Channel channel[NBRCHANNELS];
+ bool isChorusActivated;
+ float chorusReturn;
+ bool isReverbActivated;
+ float reverbReturn;
+ bool isDelayActivated;
+ float delayReturn;
+};
+
+//---------------------------------------------------------
+// DeicsOnze : DX11 emulator
+//---------------------------------------------------------
+
+class DeicsOnze : public Mess {
+ DeicsOnzeGui* _gui;
+
+ static int useCount;
+ static float waveTable[NBRWAVES][RESOLUTION];
+
+ private:
+ void parseInitData(int length, const unsigned char* data);
+ void loadConfiguration(QString fileName);
+
+ public:
+ float** tempInputChorus;
+ float** tempOutputChorus;
+ float** tempInputReverb;
+ float** tempOutputReverb;
+ float** tempInputDelay;
+ float** tempOutputDelay;
+
+ float* getSinusWaveTable();
+
+ int nbrCtrl;
+
+ QString _initSetPath;
+ bool _isInitSet;
+ QString _backgroundPixPath;
+ bool _isBackgroundPix;
+ bool _saveOnlyUsed;
+ bool _saveConfig;
+ DeicsOnzeCtlr _ctrl[NBRCTRLS];
+ Global _global;
+ Preset* _preset[NBRCHANNELS];
+ Preset* _initialPreset;
+
+ //FX
+ PluginI* _pluginIReverb;
+ PluginI* _pluginIChorus;
+ PluginI* _pluginIDelay;
+
+ void initPluginReverb(Plugin*);
+ void initPluginChorus(Plugin*);
+ void initPluginDelay(Plugin*);
+
+ void setReverbParam(int i, double val);
+ double getReverbParam(int i);
+ void setChorusParam(int i, double val);
+ double getChorusParam(int i);
+ void setDelayBPM(float val);
+ void setDelayBeatRatio(float val);
+ void setDelayFeedback(float val);
+ void setDelayLFOFreq(float val);
+ void setDelayLFODepth(float val);
+ void setDelayDryWet(float val);
+ float getDelayBPM();
+ float getDelayBeatRatio();
+ float getDelayFeedback();
+ float getDelayLFOFreq();
+ float getDelayLFODepth();
+
+ //Filter
+ LowFilter* _dryFilter;
+ LowFilter* _chorusFilter;
+ LowFilter* _reverbFilter;
+ LowFilter* _delayFilter;
+
+ mutable MidiPatch _patch;
+ mutable int _numPatchProg; //used by getPatchInfo
+
+ //preset tree
+ Set* _set;
+
+ void setSampleRate(int sr);
+ Preset* findPreset(int hbank, int lbank, int prog) const;
+ Subcategory* findSubcategory(int hbank, int lbank) const;
+ Category* findCategory(int hbank) const;
+ void initCtrls();
+ void initGlobal();
+ void initChannels();
+ void initChannel(int c);
+ void resetVoices(); //when panic is pressed
+ void initVoice(int c, int v);
+ void initVoices(int c);
+ void setPreset(int c);
+ void setFeedback(int c);
+ void setLfo(int c);
+ void setOutLevel(int c, int k); //set the output level of the op k
+ void setOutLevel(int c); //do the same for all operators
+ void setEnvAttack(int c, int v, int k); //set envInct of voice v and op k
+ void setEnvAttack(int c, int k); //do the same for all voices of operator k
+ void setEnvAttack(int c); //do the same for all voices all operators
+ void setEnvRelease(int c, int v, int k); //set coefVLevel of voice v and op k
+ void setEnvRelease(int c, int k); //do the same for all voices of operator k
+ void setEnvRelease(int c); //do the same for all voices all operators
+ void setPitchEnvRelease(int c, int v);
+ void setQuality(Quality q);
+ void setFilter(bool f);
+ double brightness2Amp(int c, int k); //get the brightness of the operator k
+ void loadSutulaPresets();
+ void loadSet(QString s);
+ int noteOff2Voice(int c); //return the first free voice
+ int minVolu2Voice(int c);
+ int pitchOn2Voice(int c, int pitch);
+ void programSelect(int c, int hbank, int lbank, int prog);
+ bool existsKeyOn(int ch);
+ void setNbrVoices(int c, int nv);
+ void setMasterVol(int v);
+ void setChannelEnable(int c, bool e);
+ void setChannelVol(int c, int v);
+ void setChannelPan(int c, int v);
+ void applyChannelAmp(int c);
+ void setChannelDetune(int c, int d);
+ void setChannelBrightness(int c, int b);
+ void setChannelModulation(int c, int m);
+ void setChannelAttack(int c, int a);
+ void setChannelRelease(int c, int r);
+ void setChannelReverb(int c, int r);
+ void setChannelChorus(int c, int val);
+ void setChannelDelay(int c, int val);
+ void setChorusReturn(int val);
+ void setReverbReturn(int val);
+ void setDelayReturn(int val);
+ bool getChannelEnable(int c) const;
+ int getNbrVoices(int c) const;
+ int getMasterVol(void) const;
+ bool getFilter(void) const;
+ int getChannelVol(int c) const;
+ int getChannelPan(int c) const;
+ int getChannelDetune(int c) const;
+ int getChannelBrightness(int c) const;
+ int getChannelModulation(int c) const;
+ int getChannelAttack(int c) const;
+ int getChannelRelease(int c) const;
+ int getChannelReverb(int c) const;
+ int getChannelChorus(int c) const;
+ int getChannelDelay(int c) const;
+ int getChorusReturn(void) const;
+ int getReverbReturn(void) const;
+ int getDelayReturn(void) const;
+ void setPitchBendCoef(int c, int val);
+ void setModulation(int c, int val); //TODO check between setChannelModulation
+ void setSustain(int c, int val);
+
+ void readConfiguration(QDomNode qdn);
+ void writeConfiguration(AL::Xml* xml);
+
+ bool setController(int ch, int ctrl, int val, bool fromGui);
+ virtual bool setController(int ch, int ctrl, int val);
+ bool sysex(int length, const unsigned char* data, bool fromGui);
+ virtual bool sysex(int length, const unsigned char* data);
+
+ virtual const char* getPatchName(int ch, int number, int) const;
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch *) const;
+
+ virtual int getControllerInfo(int arg1, const char** arg2,
+ int* arg3, int* arg4, int* arg5);
+ virtual void getInitData(int* length, const unsigned char** data);
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual void process(float** buffer, int offset, int n);
+
+ // GUI interface routines
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const;
+ virtual void showGui(bool);
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ DeicsOnze();
+ ~DeicsOnze();
+};
+
+
+#endif /* __DEICSONZE_H */
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.cpp b/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.cpp
new file mode 100644
index 00000000..d4bef946
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.cpp
@@ -0,0 +1,67 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzefilter.cpp
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "deicsonzefilter.h"
+
+LowFilter::LowFilter() {
+ _li = 0.0;
+ _ri = 0.0;
+ _lo = 0.0;
+ _ro = 0.0;
+}
+
+void LowFilter::setSamplerate(int sr) {
+ _samplerate = sr;
+}
+
+void LowFilter::setCutoff(double cut) {
+ _cutoff = cut;
+ float w = 2.0 * (float)_samplerate;
+ float fCut = _cutoff * 2.0 * M_PI;
+ float norm = 1.0 / (fCut + w);
+ _a = fCut * norm;
+ _b = (w - fCut) * norm;
+}
+
+void LowFilter::process(float* leftSamples, float* rightSamples, unsigned n) {
+ float cl, cr;
+ for(unsigned i = 0; i < n; i++) {
+ cl = leftSamples[i];
+ cr = rightSamples[i];
+
+ leftSamples[i] = _a * (cl + _li) + _b * _lo;
+ rightSamples[i] = _a * (cr + _ri) + _b * _ro;
+
+ _li = cl;
+ _ri = cr;
+ _lo = leftSamples[i];
+ _ro = rightSamples[i];
+ }
+}
+
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.h b/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.h
new file mode 100644
index 00000000..fc92142a
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzefilter.h
@@ -0,0 +1,59 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzefilter.h
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __DEICSONZEFILTER_H
+#define __DEICSONZEFILTER_H
+
+#include <math.h>
+
+class LowFilter {
+ private:
+ int _samplerate;
+
+ double _cutoff; //frequency cutoff
+ float _a;
+ float _b;
+
+ float _li; //last left input sample
+ float _ri; //last right input sample
+ float _lo; //last left output sample
+ float _ro; //last right output sample
+ public:
+ LowFilter();
+ ~LowFilter() {}
+
+ void setSamplerate(int sr);
+ void setCutoff(double cut);
+ //int getSamplerate();
+ //double getCutoff();
+
+ void process(float* leftSamples, float* RightSamples, unsigned n);
+};
+
+#endif /* __DEICSONZEFILTER_H */
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzegui.cpp b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.cpp
new file mode 100644
index 00000000..a651bcb1
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.cpp
@@ -0,0 +1,4545 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzegui.cpp
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+#include "config.h"
+#include "plugin.h"
+#include "plugingui.h"
+#include "plugins/pandelay/pandelaymodel.h"
+
+#include "deicsonzegui.h"
+
+class PluginDialog;
+
+DeicsOnzeGui::DeicsOnzeGui(DeicsOnze* deicsOnze)
+ : QDialog(0),
+ MessGui()
+{
+ setupUi(this);
+ _deicsOnze = deicsOnze;
+ lastDir = QDir::currentPath();
+
+ _currentChannel = 0;
+
+ //FX
+ _chorusSuperWidget = NULL;
+ _reverbSuperWidget = NULL;
+
+ tColor = new TCOLOR;
+ bColor = new BCOLOR;
+ etColor = new ETCOLOR;
+ ebColor = new EBCOLOR;
+ curColor = new QColor(0, 0, 0);
+
+ pitchEnvelopeGraph = new QFramePitchEnvelope(pitchEnvFrame, this);
+
+ envelopeGraph[0] = new QFrameEnvelope(envelope1Frame, this, 0);
+ envelopeGraph[1] = new QFrameEnvelope(envelope2Frame, this, 1);
+ envelopeGraph[2] = new QFrameEnvelope(envelope3Frame, this, 2);
+ envelopeGraph[3] = new QFrameEnvelope(envelope4Frame, this, 3);
+
+ //change/enable channel
+ connect(ChannelCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(setEnabledChannel(bool)));
+ connect(ChannelNumSpinBox, SIGNAL(valueChanged(int)), this,
+ SLOT(setChangeChannel(int)));
+ //MasterVolume
+ connect(masterVolKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setMasterVolKnob(double)));
+ //Panic
+ connect(panicButton, SIGNAL(pressed()), this, SLOT(setPanic()));
+ //reset Ctrls
+ connect(resCtrlButton, SIGNAL(pressed()), this, SLOT(setResCtrl()));
+ //FX
+ connect(chorusActivCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setChorusActiv(bool)));
+ connect(chChorusSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setChannelChorus(int)));
+ connect(returnChorusSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setChorusReturn(int)));
+ connect(selectLadspaChorusPushButton, SIGNAL(pressed()),
+ this, SLOT(setSelectChorusPlugin()));
+ /*connect(panChorus1Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setPanChorus1(double)));
+ connect(LFOFreqChorus1Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setLFOFreqChorus1(double)));
+ connect(depthChorus1Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setDepthChorus1(double)));
+ connect(panChorus2Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setPanChorus2(double)));
+ connect(LFOFreqChorus2Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setLFOFreqChorus2(double)));
+ connect(depthChorus2Knob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setDepthChorus2(double)));*/
+ connect(reverbActivCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setReverbActiv(bool)));
+ connect(chReverbSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setChannelReverb(int)));
+ connect(returnReverbSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setReverbReturn(int)));
+ connect(selectLadspaReverbPushButton, SIGNAL(pressed()),
+ this, SLOT(setSelectReverbPlugin()));
+ //Quick edit
+ connect(channelVolumeKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setChannelVolKnob(double)));
+ connect(channelPanKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setChannelPan(double)));
+ connect(brightnessKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setBrightnessKnob(double)));
+ connect(modulationKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setModulationKnob(double)));
+ connect(detuneKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setDetuneKnob(double)));
+ connect(attackKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setAttackKnob(double)));
+ connect(releaseKnob, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setReleaseKnob(double)));
+ //nbr of voices
+ connect(nbrVoicesSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setNbrVoices(int)));
+ //quality
+ connect(qualityComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setQuality(const QString&)));
+ connect(filterCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setFilter(bool)));
+ //change font size
+ connect(fontSizeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFontSize(int)));
+ //load save configuration
+ connect(saveConfPushButton, SIGNAL(pressed()),
+ this, SLOT(saveConfiguration()));
+ connect(loadConfPushButton, SIGNAL(pressed()),
+ this, SLOT(loadConfiguration()));
+ connect(saveDefaultPushButton, SIGNAL(pressed()),
+ this, SLOT(saveDefaultConfiguration()));
+ //load init set
+ connect(initSetCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setIsInitSet(bool)));
+ connect(initSetPathLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setInitSetPath(const QString&)));
+ connect(initSetBrowsePushButton, SIGNAL(pressed()),
+ this, SLOT(setBrowseInitSetPath()));
+ //load background pix
+ connect(imageCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setIsBackgroundPix(bool)));
+ connect(imagePathLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setBackgroundPixPath(const QString&)));
+ connect(imageBrowsePushButton, SIGNAL(pressed()),
+ this, SLOT(setBrowseBackgroundPixPath()));
+
+ //Midi in channel
+ //connect(MidiInChComboBox, SIGNAL(activated(int)),
+ // this, SLOT(setMidiInCh(int)));
+ //Save mode ratio button
+ connect(minSaveRadioButton, SIGNAL(toggled(bool)),
+ this, SLOT(setSaveOnlyUsed(bool)));
+ connect(hugeSaveRadioButton, SIGNAL(toggled(bool)),
+ this, SLOT(setSaveOnlyUsedComp(bool)));
+ connect(saveConfigCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(setSaveConfig(bool)));
+ //Colors
+ connect(redSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setRedColor(int)));
+ connect(greenSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setGreenColor(int)));
+ connect(blueSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setBlueColor(int)));
+ connect(colorListBox,
+ SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
+ this, SLOT(setRGBSliders(QListWidgetItem*)));
+ //PopupMenu Category Subcategory Preset
+ connect(categoryListView,
+ SIGNAL(customContextMenuRequested(const QPoint&)),
+ this, SLOT(categoryPopupMenu(const QPoint&)));
+ connect(subcategoryListView,
+ SIGNAL(customContextMenuRequested(const QPoint&)),
+ this, SLOT(subcategoryPopupMenu(const QPoint&)));
+ connect(presetListView,
+ SIGNAL(customContextMenuRequested(const QPoint &)),
+ this, SLOT(presetPopupMenu(const QPoint &)));
+ //Preset and bank
+ connect(presetLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setPresetName(const QString&)));
+ connect(subcategoryLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setSubcategoryName(const QString&)));
+ connect(categoryLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setCategoryName(const QString&)));
+ connect(hbankSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setHBank(int)));
+ connect(lbankSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setLBank(int)));
+ connect(progSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setProg(int)));
+ //Global
+ //connect(channelPanSlider, SIGNAL(valueChanged(int)),
+ //this, SLOT(setChannelPan(int)));
+ connect(feedbackSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setFeedback(int)));
+ connect(LFOWaveComboBox, SIGNAL(activated(int)),
+ this, SLOT(setLfoWave(int)));
+ connect(LFOSpeedSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoSpeed(int)));
+ connect(LFODelaySlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoDelay(int)));
+ connect(PModDepthSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoPModDepth(int)));
+ connect(PModSensSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoPitchSens(int)));
+ connect(AModDepthSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoAModDepth(int)));
+ connect(AModSensSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setLfoAmpSens(int)));
+ connect(transposeSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setTranspose(int)));
+ //connect(channelDetuneSlider, SIGNAL(valueChanged(int)),
+ // this, SLOT(setChannelDetune(int)));
+ connect(algorithmComboBox, SIGNAL(activated(int)),
+ this, SLOT(setAlgorithm(int)));
+ connect(pitchBendRangeSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setPitchBendRange(int)));
+ //Pitch Envelope
+ connect(PL1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPL1(int)));
+ connect(PL2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPL2(int)));
+ connect(PL3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPL3(int)));
+ connect(PR1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPR1(int)));
+ connect(PR2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPR2(int)));
+ connect(PR3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setPR3(int)));
+ //Function
+ connect(fcVolumeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFcVolume(int)));
+ connect(fcPitchSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFcPitch(int)));
+ connect(fcAmplitudeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFcAmplitude(int)));
+ connect(mwPitchSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setMwPitch(int)));
+ connect(mwAmplitudeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setMwAmplitude(int)));
+ connect(bcPitchSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setBcPitch(int)));
+ connect(bcAmplitudeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setBcAmplitude(int)));
+ connect(bcPitchBiasSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setBcPitchBias(int)));
+ connect(bcEgBiasSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setBcEgBias(int)));
+ connect(atPitchSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setAtPitch(int)));
+ connect(atAmplitudeSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setAtAmplitude(int)));
+ connect(atPitchBiasSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setAtPitchBias(int)));
+ connect(atEgBiasSpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setAtEgBias(int)));
+ //connect(reverbSpinBox, SIGNAL(valueChanged(int)),
+ // this, SLOT(setReverbRate(int)));
+ connect(polyMonoComboBox, SIGNAL(activated(int)),
+ this, SLOT(setPolyMode(int)));
+ connect(PortFingerFullComboBox, SIGNAL(activated(int)),
+ this, SLOT(setPortFingerFull(int)));
+ connect(PortamentoTimeSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setPortaTime(int)));
+ //envelope
+ connect(AR1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setAR1(int)));
+ connect(D1R1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1R1(int)));
+ connect(D1L1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1L1(int)));
+ connect(D2R1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD2R1(int)));
+ connect(RR1SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setRR1(int)));
+ connect(AR2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setAR2(int)));
+ connect(D1R2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1R2(int)));
+ connect(D1L2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1L2(int)));
+ connect(D2R2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD2R2(int)));
+ connect(RR2SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setRR2(int)));
+ connect(AR3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setAR3(int)));
+ connect(D1R3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1R3(int)));
+ connect(D1L3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1L3(int)));
+ connect(D2R3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD2R3(int)));
+ connect(RR3SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setRR3(int)));
+ connect(AR4SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setAR4(int)));
+ connect(D1R4SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1R4(int)));
+ connect(D1L4SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD1L4(int)));
+ connect(D2R4SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setD2R4(int)));
+ connect(RR4SpinBox, SIGNAL(valueChanged(int)), this, SLOT(setRR4(int)));
+ //Scaling
+ connect(LS1Slider, SIGNAL(valueChanged(int)), this, SLOT(setLS1(int)));
+ connect(RS1Slider, SIGNAL(valueChanged(int)), this, SLOT(setRS1(int)));
+ connect(LS2Slider, SIGNAL(valueChanged(int)), this, SLOT(setLS2(int)));
+ connect(RS2Slider, SIGNAL(valueChanged(int)), this, SLOT(setRS2(int)));
+ connect(LS3Slider, SIGNAL(valueChanged(int)), this, SLOT(setLS3(int)));
+ connect(RS3Slider, SIGNAL(valueChanged(int)), this, SLOT(setRS3(int)));
+ connect(LS4Slider, SIGNAL(valueChanged(int)), this, SLOT(setLS4(int)));
+ connect(RS4Slider, SIGNAL(valueChanged(int)), this, SLOT(setRS4(int)));
+ //Volume
+ connect(OUT1Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol1(int)));
+ connect(OUT2Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol2(int)));
+ connect(OUT3Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol3(int)));
+ connect(OUT4Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol4(int)));
+ //Ratio and Frequency
+ connect(CoarseRatio1SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setCoarseRatio1(int)));
+ connect(FineRatio1SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFineRatio1(int)));
+ connect(Freq1SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFreq1(int)));
+ connect(Fix1CheckBox, SIGNAL(toggled(bool)), this, SLOT(setFix1(bool)));
+ connect(CoarseRatio2SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setCoarseRatio2(int)));
+ connect(FineRatio2SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFineRatio2(int)));
+ connect(Freq2SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFreq2(int)));
+ connect(Fix2CheckBox, SIGNAL(toggled(bool)), this, SLOT(setFix2(bool)));
+ connect(CoarseRatio3SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setCoarseRatio3(int)));
+ connect(FineRatio3SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFineRatio3(int)));
+ connect(Freq3SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFreq3(int)));
+ connect(Fix3CheckBox, SIGNAL(toggled(bool)), this, SLOT(setFix3(bool)));
+ connect(CoarseRatio4SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setCoarseRatio4(int)));
+ connect(FineRatio4SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFineRatio4(int)));
+ connect(Freq4SpinBox, SIGNAL(valueChanged(int)),
+ this, SLOT(setFreq4(int)));
+ connect(Fix4CheckBox, SIGNAL(toggled(bool)), this, SLOT(setFix4(bool)));
+ //Sensitivity
+ connect(AME1CheckBox, SIGNAL(toggled(bool)), this, SLOT(setAME1(bool)));
+ connect(EBS1Slider, SIGNAL(valueChanged(int)), this, SLOT(setEBS1(int)));
+ connect(KVS1Slider, SIGNAL(valueChanged(int)), this, SLOT(setKVS1(int)));
+ connect(AME2CheckBox, SIGNAL(toggled(bool)), this, SLOT(setAME2(bool)));
+ connect(EBS2Slider, SIGNAL(valueChanged(int)), this, SLOT(setEBS2(int)));
+ connect(KVS2Slider, SIGNAL(valueChanged(int)), this, SLOT(setKVS2(int)));
+ connect(AME3CheckBox, SIGNAL(toggled(bool)), this, SLOT(setAME3(bool)));
+ connect(EBS3Slider, SIGNAL(valueChanged(int)), this, SLOT(setEBS3(int)));
+ connect(KVS3Slider, SIGNAL(valueChanged(int)), this, SLOT(setKVS3(int)));
+ connect(AME4CheckBox, SIGNAL(toggled(bool)), this, SLOT(setAME4(bool)));
+ connect(EBS4Slider, SIGNAL(valueChanged(int)), this, SLOT(setEBS4(int)));
+ connect(KVS4Slider, SIGNAL(valueChanged(int)), this, SLOT(setKVS4(int)));
+ //detune
+ connect(DET1Slider, SIGNAL(valueChanged(int)), this, SLOT(setDET1(int)));
+ connect(DET2Slider, SIGNAL(valueChanged(int)), this, SLOT(setDET2(int)));
+ connect(DET3Slider, SIGNAL(valueChanged(int)), this, SLOT(setDET3(int)));
+ connect(DET4Slider, SIGNAL(valueChanged(int)), this, SLOT(setDET4(int)));
+ //WaveForm
+ connect(WaveForm1ComboBox, SIGNAL(activated(int)),
+ this, SLOT(setWaveForm1(int)));
+ connect(WaveForm2ComboBox, SIGNAL(activated(int)),
+ this, SLOT(setWaveForm2(int)));
+ connect(WaveForm3ComboBox, SIGNAL(activated(int)),
+ this, SLOT(setWaveForm3(int)));
+ connect(WaveForm4ComboBox, SIGNAL(activated(int)),
+ this, SLOT(setWaveForm4(int)));
+ //PanDelay
+ connect(delayActivCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(setActivDelay(bool)));
+ connect(delayReturnSlider, SIGNAL(valueChanged(int)), this,
+ SLOT(setDelayReturn(int)));
+ connect(chDelaySlider, SIGNAL(valueChanged(int)), this,
+ SLOT(setChannelDelay(int)));
+ connect(delayBPMFloatentry, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayBPM(double)));
+ connect(delayBPMKnob, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayBPM(double)));
+ connect(delayBeatRatioFloatentry, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayBeatRatio(double)));
+ connect(delayBeatRatioKnob, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayBeatRatio(double)));
+ connect(delayFeedbackFloatentry, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayFeedback(double)));
+ connect(delayFeedbackKnob, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayFeedback(double)));
+ connect(delayPanLFOFreqFloatentry, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayPanLFOFreq(double)));
+ connect(delayPanLFOFreqKnob, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayPanLFOFreq(double)));
+ delayPanLFOFreqKnob->setMinLogValue(0.1);
+ delayPanLFOFreqKnob->setMaxLogValue(10.0);
+ connect(delayPanLFODepthFloatentry, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayPanLFODepth(double)));
+ connect(delayPanLFODepthKnob, SIGNAL(valueChanged(double, int)), this,
+ SLOT(setDelayPanLFODepth(double)));
+ //category subcategory preset
+ connect(categoryListView,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
+ this, SLOT(setCategory(QTreeWidgetItem*)));
+ connect(categoryListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
+ this, SLOT(setCategory(QTreeWidgetItem*)));
+ connect(subcategoryListView,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
+ this, SLOT(setSubcategory(QTreeWidgetItem*)));
+ connect(subcategoryListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
+ this, SLOT(setSubcategory(QTreeWidgetItem*)));
+ connect(presetListView,
+ SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
+ this, SLOT(setPreset(QTreeWidgetItem*)));
+ connect(presetListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
+ this, SLOT(setPreset(QTreeWidgetItem*)));
+ //Connect socketnotifier to fifo
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+
+ setTextColor(reinterpret_cast<const QColor &>(*tColor));
+ setBackgroundColor(reinterpret_cast<const QColor &>(*bColor));
+ setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*ebColor));
+
+ //select the first item in the color list
+ colorListBox->setCurrentItem(colorListBox->item(0));
+
+ //color the colorFrame with the color of the text
+ QPalette p = colorFrame->palette();
+ p.setColor(QPalette::Window, (reinterpret_cast<const QColor &>(*tColor)));
+ colorFrame->setPalette(p);
+
+ //update maaster volume
+ //updateMasterVolume(INITMASTERVOL);
+ //update Quick edit
+ updateQuickEdit();
+
+ //updatePreset();
+ _enabledPreset = true;
+ setEnabledPreset(false);
+
+ updateInitSetPath
+ (INSTPREFIX "/share/muse-" VERSION "/presets/deicsonze/SutulaBank.dei");
+ //"/usr/local/share/muse-1.0pre1/presets/deicsonze/SutulaBank.dei")
+ //);
+ updateBackgroundPixPath
+ (INSTPREFIX "/share/muse-" VERSION "/wallpapers/paper2.jpg");
+ updateBackgroundPixCheckBox(true);
+ applyBackgroundPix();
+}
+
+//-----------------------------------------------------------
+// setEnabledChannel
+//-----------------------------------------------------------
+void DeicsOnzeGui::setEnabledChannel(bool e) {
+ sendController(_currentChannel, CTRL_CHANNELENABLE, (int)e);
+ updateEnabledChannel(e);
+}
+//-----------------------------------------------------------
+// setUpdateEnabledChannelCheckBox
+//-----------------------------------------------------------
+void DeicsOnzeGui::updateChannelCheckBox(bool b) {
+ ChannelCheckBox->blockSignals(true);
+ ChannelCheckBox->setChecked(b);
+ ChannelCheckBox->blockSignals(false);
+}
+
+//-----------------------------------------------------------
+// setChangeChannel
+//-----------------------------------------------------------
+void DeicsOnzeGui::setChangeChannel(int c) {
+ _currentChannel = c-1;
+ updateChannelEnable(_deicsOnze->getChannelEnable(_currentChannel));
+ updateNbrVoices(_deicsOnze->getNbrVoices(_currentChannel));
+ //update quick edit
+ updateQuickEdit();
+ //update preset
+ int p, l, h;
+ _deicsOnze->_preset[_currentChannel]->getHBankLBankProg(&h, &l, &p);
+ updateSelectPreset(h, l, p);
+ updatePreset();
+}
+//-----------------------------------------------------------
+// setPanic
+//-----------------------------------------------------------
+void DeicsOnzeGui::setPanic() {
+ unsigned char* message = new unsigned char[1];
+ message[0]=SYSEX_PANIC;
+ sendSysex(message, 1);
+}
+
+//-----------------------------------------------------------
+// setResCtrl
+//-----------------------------------------------------------
+void DeicsOnzeGui::setResCtrl() {
+ //Detune
+ updateChannelDetune(0);
+ sendController(_currentChannel, CTRL_CHANNELDETUNE, 0);
+ //Brightness
+ updateBrightness(MIDFINEBRIGHTNESS);
+ sendController(_currentChannel, CTRL_FINEBRIGHTNESS, MIDFINEBRIGHTNESS);
+ //Attack
+ updateAttack(MIDATTACK);
+ sendController(_currentChannel, CTRL_ATTACK_TIME, MIDATTACK);
+ //Release
+ updateRelease(MIDRELEASE);
+ sendController(_currentChannel, CTRL_RELEASE_TIME, MIDRELEASE);
+}
+
+//-----------------------------------------------------------
+// setNbrVoices
+//-----------------------------------------------------------
+void DeicsOnzeGui::setNbrVoices(int nv) {
+ sendController(_currentChannel, CTRL_NBRVOICES, nv);
+}
+
+//----------------------------------------------------------
+// setMidiInCh
+//----------------------------------------------------------
+//void DeicsOnzeGui::setMidiInCh(int m) {
+// unsigned char* message = new unsigned char[2];
+// message[0]=SYSEX_CHANNELNUM;
+// message[1]=(unsigned char)(m-1);
+// sendSysex(message, 2);
+//}
+
+//-----------------------------------------------------------
+// saveConfiguration
+//-----------------------------------------------------------
+void DeicsOnzeGui::saveConfiguration() {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save configuration"),
+ lastDir,
+ QString("*.dco"));
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+ if(!filename.endsWith(".dco")) filename+=".dco";
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+ AL::Xml* xml = new AL::Xml(&f);
+ xml->header();
+ _deicsOnze->writeConfiguration(xml);
+ f.close();
+ }
+}
+
+//-----------------------------------------------------------
+// saveDefaultConfiguration
+//-----------------------------------------------------------
+void DeicsOnzeGui::saveDefaultConfiguration() {
+ QString filename = QString(getenv("HOME")) + QString("/." DEICSONZESTR ".dco");
+ if(!filename.isEmpty()) {
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+
+ AL::Xml* xml = new AL::Xml(&f);
+ xml->header();
+ _deicsOnze->writeConfiguration(xml);
+ f.close();
+ }
+}
+
+//-----------------------------------------------------------
+// loadConfiguration
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadConfiguration(QString fileName) {
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFile confFile(fileName);
+ if(!confFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&confFile )) {
+ QMessageBox::critical
+ (0, tr("Critical Error"),
+ tr("Parsing error for file %1").arg(fileName));
+ confFile.close();
+ return;
+ }
+
+ confFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == DEICSONZECONFIGURATIONSTR) {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ _deicsOnze->readConfiguration(node.firstChild());
+ }
+ else printf("unsupported *.dco file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// loadConfiguration
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadConfiguration() {
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load category dialog"),
+ lastDir,
+ QString("*.dco"));
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ loadConfiguration(fileName);
+}
+
+//-----------------------------------------------------------
+// setQuality
+//-----------------------------------------------------------
+void DeicsOnzeGui::setQuality(const QString& q) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_QUALITY;
+ message[1]=(unsigned char)(q=="High"?
+ high:(q=="Middle"?
+ middle:(q=="Low"?low:ultralow)));
+ sendSysex(message, 2);
+}
+//-----------------------------------------------------------
+// setFilter
+//-----------------------------------------------------------
+void DeicsOnzeGui::setFilter(bool f) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_FILTER;
+ message[1]=(unsigned char)f;
+ sendSysex(message, 2);
+}
+//-----------------------------------------------------------
+// setFontSize
+//-----------------------------------------------------------
+void DeicsOnzeGui::setFontSize(int fs) {
+ applyFontSize(fs);
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_FONTSIZE;
+ message[1]=(unsigned char)fs;
+ sendSysex(message, 2);
+}
+//-----------------------------------------------------------
+// setSaveOnlyUsed
+//-----------------------------------------------------------
+void DeicsOnzeGui::setSaveOnlyUsed(bool sou) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_SAVEONLYUSED;
+ message[1]=(unsigned char)sou;
+ sendSysex(message, 2);
+ updateSaveOnlyUsed(sou);
+}
+void DeicsOnzeGui::setSaveOnlyUsedComp(bool souc) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_SAVEONLYUSED;
+ message[1]=(unsigned char)!souc;
+ sendSysex(message, 2);
+ updateSaveOnlyUsed(!souc);
+}
+//-----------------------------------------------------------
+// setSaveConfig
+//-----------------------------------------------------------
+void DeicsOnzeGui::setSaveConfig(bool ssc) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_SAVECONFIG;
+ message[1]=(unsigned char)ssc;
+ sendSysex(message, 2);
+}
+//-----------------------------------------------------------
+// setColor
+//-----------------------------------------------------------
+void DeicsOnzeGui::setRedColor(int r) {
+ QListWidgetItem* i=colorListBox->selectedItems().at(0);
+ if(i){
+ curColor->setRgb(r, curColor->green(), curColor->blue());
+ if(i->text()==QString("Text")) {
+ tColor->setRgb(curColor->rgb());
+ setTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Background")) {
+ bColor->setRgb(curColor->rgb());
+ setBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Text")) {
+ etColor->setRgb(curColor->rgb());
+ setEditTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Background")) {
+ ebColor->setRgb(curColor->rgb());
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ QPalette p = colorFrame->palette();
+ p.setColor(QPalette::Window,
+ (reinterpret_cast<const QColor &>(*curColor)));
+ colorFrame->setPalette(p);
+ }
+}
+void DeicsOnzeGui::setGreenColor(int g) {
+ QListWidgetItem* i=colorListBox->selectedItems().at(0);
+ if(i) {
+ curColor->setRgb(curColor->red(), g, curColor->blue());
+ if(i->text()==QString("Text")) {
+ tColor->setRgb(curColor->rgb());
+ setTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Background")) {
+ bColor->setRgb(curColor->rgb());
+ setBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Text")) {
+ etColor->setRgb(curColor->rgb());
+ setEditTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Background")) {
+ ebColor->setRgb(curColor->rgb());
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ QPalette p = colorFrame->palette();
+ p.setColor(QPalette::Window, (reinterpret_cast<const QColor &>(*curColor)));
+ colorFrame->setPalette(p);
+ }
+}
+void DeicsOnzeGui::setBlueColor(int b) {
+ QListWidgetItem* i=colorListBox->selectedItems().at(0);
+ if(i) {
+ curColor->setRgb(curColor->red(), curColor->green(), b);
+ if(i->text()==QString("Text")) {
+ tColor->setRgb(curColor->rgb());
+ setTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Background")) {
+ bColor->setRgb(curColor->rgb());
+ setBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Text")) {
+ etColor->setRgb(curColor->rgb());
+ setEditTextColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ else if(i->text()==QString("Edit Background")) {
+ ebColor->setRgb(curColor->rgb());
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*curColor));
+ }
+ QPalette p = colorFrame->palette();
+ p.setColor(QPalette::Window, (reinterpret_cast<const QColor &>(*curColor)));
+ colorFrame->setPalette(p);
+ }
+}
+void DeicsOnzeGui::setRGBSliders(QListWidgetItem* i) {
+ if(i->text()==QString("Text"))
+ curColor->setRgb(tColor->red(), tColor->green(), tColor->blue());
+ else if(i->text()==QString("Background"))
+ curColor->setRgb(bColor->red(), bColor->green(), bColor->blue());
+ else if(i->text()==QString("Edit Text"))
+ curColor->setRgb(etColor->red(), etColor->green(), etColor->blue());
+ else if(i->text()==QString("Edit Background"))
+ curColor->setRgb(ebColor->red(), ebColor->green(), ebColor->blue());
+
+ redSlider->blockSignals(true);
+ redSlider->setValue(curColor->red());
+ redSlider->blockSignals(false);
+ redSpinBox->blockSignals(true);
+ redSpinBox->setValue(curColor->red());
+ redSpinBox->blockSignals(false);
+ greenSlider->blockSignals(true);
+ greenSlider->setValue(curColor->green());
+ greenSlider->blockSignals(false);
+ greenSpinBox->blockSignals(true);
+ greenSpinBox->setValue(curColor->green());
+ greenSpinBox->blockSignals(false);
+ blueSlider->blockSignals(true);
+ blueSlider->setValue(curColor->blue());
+ blueSlider->blockSignals(false);
+ blueSpinBox->blockSignals(true);
+ blueSpinBox->setValue(curColor->blue());
+ blueSpinBox->blockSignals(false);
+ QPalette p = colorFrame->palette();
+ p.setColor(QPalette::Window, (reinterpret_cast<const QColor &>(*curColor)));
+ colorFrame->setPalette(p);
+}
+void DeicsOnzeGui::setTextColor(const QColor & c) {
+ QPalette p = this->palette();
+ p.setColor(QPalette::WindowText, c);
+ this->setPalette(p);
+ channelCtrlGroupBox->setPalette(p);
+ //channelPanGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ LFOGroupBox->setPalette(p);
+ ModulationMatrixGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ pitchEnvGroupBox->setPalette(p);
+ Frequency1groupBox->setPalette(p);
+ OUT1groupBox->setPalette(p);
+ Env1GroupBox->setPalette(p);
+ Scaling1GroupBox->setPalette(p);
+ DetWaveEGS1GroupBox->setPalette(p);
+ sensitivity1groupBox->setPalette(p);
+ Frequency2groupBox->setPalette(p);
+ OUT2groupBox->setPalette(p);
+ Env2GroupBox->setPalette(p);
+ Scaling2GroupBox->setPalette(p);
+ DetWaveEGS2GroupBox->setPalette(p);
+ sensitivity2groupBox->setPalette(p);
+ Frequency3groupBox->setPalette(p);
+ OUT3groupBox->setPalette(p);
+ Env3GroupBox->setPalette(p);
+ Scaling3GroupBox->setPalette(p);
+ DetWaveEGS3GroupBox->setPalette(p);
+ sensitivity3groupBox->setPalette(p);
+ Frequency4groupBox->setPalette(p);
+ OUT4groupBox->setPalette(p);
+ Env4GroupBox->setPalette(p);
+ Scaling4GroupBox->setPalette(p);
+ DetWaveEGS4GroupBox->setPalette(p);
+ sensitivity4groupBox->setPalette(p);
+ transposeGroupBox->setPalette(p);
+ //detuneGroupBox->setPalette(p);
+ //footSWGroupBox->setPalette(p);
+ pitchBendRangeGroupBox->setPalette(p);
+ //reverbGroupBox->setPalette(p);
+ modeGroupBox->setPalette(p);
+ portamentoGroupBox->setPalette(p);
+ colorGroupBox->setPalette(p);
+ pathGroupBox->setPalette(p);
+ qualityGroupBox->setPalette(p);
+ saveModeButtonGroup->setPalette(p);
+ fileGroupBox->setPalette(p);
+ onReverbGroupBox->setPalette(p);
+ selectLadspaReverbGroupBox->setPalette(p);
+ channelReverbGroupBox->setPalette(p);
+ parametersReverbGroupBox->setPalette(p);
+ onChorusGroupBox->setPalette(p);
+ selectLadspaChorusGroupBox->setPalette(p);
+ channelChorusGroupBox->setPalette(p);
+ parametersChorusGroupBox->setPalette(p);
+ fontSizeGroupBox->setPalette(p);
+ delayBPMGroupBox->setPalette(p);
+ delayBeatRatioGroupBox->setPalette(p);
+ delayFeedbackGroupBox->setPalette(p);
+ delayPanLFOGroupBox->setPalette(p);
+ delayPanDepthGroupBox->setPalette(p);
+ delayReturnGroupBox->setPalette(p);
+ channelDelayGroupBox->setPalette(p);
+}
+
+void DeicsOnzeGui::setBackgroundColor(const QColor & c) {
+ if(imageCheckBox->checkState()==Qt::Unchecked) {
+ QPalette p = this->palette();
+ p.setColor(QPalette::Window, c);
+ this->setPalette(p);
+ }
+}
+void DeicsOnzeGui::setEditTextColor(const QColor & c) {
+ QPalette p = this->palette();
+ p.setColor(QPalette::Text, c);
+ this->setPalette(p);
+ channelCtrlGroupBox->setPalette(p);
+ //channelPanGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ LFOGroupBox->setPalette(p);
+ ModulationMatrixGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ pitchEnvGroupBox->setPalette(p);
+ Frequency1groupBox->setPalette(p);
+ OUT1groupBox->setPalette(p);
+ Env1GroupBox->setPalette(p);
+ Scaling1GroupBox->setPalette(p);
+ DetWaveEGS1GroupBox->setPalette(p);
+ sensitivity1groupBox->setPalette(p);
+ Frequency2groupBox->setPalette(p);
+ OUT2groupBox->setPalette(p);
+ Env2GroupBox->setPalette(p);
+ Scaling2GroupBox->setPalette(p);
+ DetWaveEGS2GroupBox->setPalette(p);
+ sensitivity2groupBox->setPalette(p);
+ Frequency3groupBox->setPalette(p);
+ OUT3groupBox->setPalette(p);
+ Env3GroupBox->setPalette(p);
+ Scaling3GroupBox->setPalette(p);
+ DetWaveEGS3GroupBox->setPalette(p);
+ sensitivity3groupBox->setPalette(p);
+ Frequency4groupBox->setPalette(p);
+ OUT4groupBox->setPalette(p);
+ Env4GroupBox->setPalette(p);
+ Scaling4GroupBox->setPalette(p);
+ DetWaveEGS4GroupBox->setPalette(p);
+ sensitivity4groupBox->setPalette(p);
+ transposeGroupBox->setPalette(p);
+ //detuneGroupBox->setPalette(p);
+ //footSWGroupBox->setPalette(p);
+ pitchBendRangeGroupBox->setPalette(p);
+ //reverbGroupBox->setPalette(p);
+ modeGroupBox->setPalette(p);
+ portamentoGroupBox->setPalette(p);
+ colorGroupBox->setPalette(p);
+ pathGroupBox->setPalette(p);
+ qualityGroupBox->setPalette(p);
+ saveModeButtonGroup->setPalette(p);
+ fileGroupBox->setPalette(p);
+ masterVolKnob->setScaleValueColor(c);
+ channelVolumeKnob->setScaleValueColor(c);
+ channelPanKnob->setScaleValueColor(c);
+ brightnessKnob->setScaleValueColor(c);
+ modulationKnob->setScaleValueColor(c);
+ detuneKnob->setScaleValueColor(c);
+ attackKnob->setScaleValueColor(c);
+ releaseKnob->setScaleValueColor(c);
+ channelChorusGroupBox->setPalette(p);
+ selectLadspaChorusGroupBox->setPalette(p);
+ parametersChorusGroupBox->setPalette(p);
+ for(int i=0; i < (int)_chorusSliderVector.size(); i++)
+ if(_chorusSliderVector[i]) _chorusSliderVector[i]->setScaleValueColor(c);
+ channelReverbGroupBox->setPalette(p);
+ selectLadspaReverbGroupBox->setPalette(p);
+ parametersReverbGroupBox->setPalette(p);
+ for(int i=0; i < (int)_reverbSliderVector.size(); i++)
+ if(_reverbSliderVector[i]) _reverbSliderVector[i]->setScaleValueColor(c);
+ channelDelayGroupBox->setPalette(p);
+ delayBPMKnob->setScaleValueColor(c);
+ delayBPMGroupBox->setPalette(p);
+ delayBeatRatioKnob->setScaleValueColor(c);
+ delayBeatRatioGroupBox->setPalette(p);
+ delayFeedbackKnob->setScaleValueColor(c);
+ delayFeedbackGroupBox->setPalette(p);
+ delayPanLFOFreqKnob->setScaleValueColor(c);
+ delayPanLFOGroupBox->setPalette(p);
+ delayPanLFODepthKnob->setScaleValueColor(c);
+ delayPanDepthGroupBox->setPalette(p);
+ fontSizeGroupBox->setPalette(p);
+}
+void DeicsOnzeGui::setEditBackgroundColor(const QColor & c) {
+ QPalette p = this->palette();
+ p.setColor(QPalette::Base, c);
+ this->setPalette(p);
+ channelCtrlGroupBox->setPalette(p);
+ //channelPanGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ LFOGroupBox->setPalette(p);
+ ModulationMatrixGroupBox->setPalette(p);
+ FeedbackGroupBox->setPalette(p);
+ pitchEnvGroupBox->setPalette(p);
+ Frequency1groupBox->setPalette(p);
+ OUT1groupBox->setPalette(p);
+ Env1GroupBox->setPalette(p);
+ Scaling1GroupBox->setPalette(p);
+ DetWaveEGS1GroupBox->setPalette(p);
+ sensitivity1groupBox->setPalette(p);
+ Frequency2groupBox->setPalette(p);
+ OUT2groupBox->setPalette(p);
+ Env2GroupBox->setPalette(p);
+ Scaling2GroupBox->setPalette(p);
+ DetWaveEGS2GroupBox->setPalette(p);
+ sensitivity2groupBox->setPalette(p);
+ Frequency3groupBox->setPalette(p);
+ OUT3groupBox->setPalette(p);
+ Env3GroupBox->setPalette(p);
+ Scaling3GroupBox->setPalette(p);
+ DetWaveEGS3GroupBox->setPalette(p);
+ sensitivity3groupBox->setPalette(p);
+ Frequency4groupBox->setPalette(p);
+ OUT4groupBox->setPalette(p);
+ Env4GroupBox->setPalette(p);
+ Scaling4GroupBox->setPalette(p);
+ DetWaveEGS4GroupBox->setPalette(p);
+ sensitivity4groupBox->setPalette(p);
+ transposeGroupBox->setPalette(p);
+ //detuneGroupBox->setPalette(p);
+ //footSWGroupBox->setPalette(p);
+ pitchBendRangeGroupBox->setPalette(p);
+ //reverbGroupBox->setPalette(p);
+ modeGroupBox->setPalette(p);
+ portamentoGroupBox->setPalette(p);
+ colorGroupBox->setPalette(p);
+ pathGroupBox->setPalette(p);
+ qualityGroupBox->setPalette(p);
+ saveModeButtonGroup->setPalette(p);
+ fileGroupBox->setPalette(p);
+ p = pitchEnvFrame->palette();
+ p.setColor(QPalette::Window, c);
+ pitchEnvFrame->setPalette(p);
+ p = envelope1Frame->palette();
+ p.setColor(QPalette::Window, c);
+ envelope1Frame->setPalette(p);
+ p = envelope2Frame->palette();
+ p.setColor(QPalette::Window, c);
+ envelope2Frame->setPalette(p);
+ p = envelope3Frame->palette();
+ p.setColor(QPalette::Window, c);
+ envelope3Frame->setPalette(p);
+ p = envelope4Frame->palette();
+ p.setColor(QPalette::Window, c);
+ envelope4Frame->setPalette(p);
+ masterVolKnob->setScaleColor(c);
+ channelVolumeKnob->setScaleColor(c);
+ channelPanKnob->setScaleColor(c);
+ brightnessKnob->setScaleColor(c);
+ modulationKnob->setScaleColor(c);
+ detuneKnob->setScaleColor(c);
+ attackKnob->setScaleColor(c);
+ releaseKnob->setScaleColor(c);
+ channelChorusGroupBox->setPalette(p);
+ selectLadspaChorusGroupBox->setPalette(p);
+ parametersChorusGroupBox->setPalette(p);
+ for(int i=0; i < (int)_chorusSliderVector.size(); i++)
+ if(_chorusSliderVector[i]) _chorusSliderVector[i]->setScaleColor(c);
+ channelReverbGroupBox->setPalette(p);
+ selectLadspaReverbGroupBox->setPalette(p);
+ parametersReverbGroupBox->setPalette(p);
+ for(int i=0; i < (int)_reverbSliderVector.size(); i++)
+ if(_reverbSliderVector[i]) _reverbSliderVector[i]->setScaleColor(c);
+ channelDelayGroupBox->setPalette(p);
+ delayBPMKnob->setScaleColor(c);
+ delayBPMGroupBox->setPalette(p);
+ delayBeatRatioKnob->setScaleColor(c);
+ delayBeatRatioGroupBox->setPalette(p);
+ delayFeedbackKnob->setScaleColor(c);
+ delayFeedbackGroupBox->setPalette(p);
+ delayPanLFOFreqKnob->setScaleColor(c);
+ delayPanLFOGroupBox->setPalette(p);
+ delayPanLFODepthKnob->setScaleColor(c);
+ delayPanDepthGroupBox->setPalette(p);
+ fontSizeGroupBox->setPalette(p);
+}
+
+//-----------------------------------------------------------
+// QFramePitchEnvelope
+//-----------------------------------------------------------
+void QFramePitchEnvelope::paintEvent(QPaintEvent* /*e*/) {
+ QPainter paint(this);
+ QPen pen;
+ pen.setColor(*(_deicsOnzeGui->etColor));
+ //if the size of pitchEnvFrame is different than QFramePitchEnvelope resize
+ //and update the envelope
+ if(_deicsOnzeGui->pitchEnvFrame->width()!=width() ||
+ _deicsOnzeGui->pitchEnvFrame->height()!=height()) {
+ resize(_deicsOnzeGui->pitchEnvFrame->width(),
+ _deicsOnzeGui->pitchEnvFrame->height());
+ //update the positions of the envelope
+ PitchEg* pe = &_deicsOnzeGui->_deicsOnze
+ ->_preset[_deicsOnzeGui->_currentChannel]->pitchEg;
+ env2Points(pe->pl1, pe->pl2, pe->pl3, pe->pr1, pe->pr2, pe->pr3);
+ }
+ //Draw the verticale line on the release time
+ pen.setWidth(1);
+ pen.setStyle(Qt::DotLine);
+ paint.setPen(pen);
+ paint.drawLine(P2linkP3.x(), height(), P2linkP3.x(), 0);
+ //Draw the horisontal line for the center of the pitch
+ pen.setStyle(Qt::DashDotLine);
+ paint.setPen(pen);
+ paint.drawLine(0, height()/2-DOTWIDTH/2, width(), height()/2-DOTWIDTH/2);
+ //Draw the pitch envelope
+ pen.setWidth(PENWIDTH);
+ pen.setStyle(Qt::SolidLine);
+ paint.setPen(pen);
+ paint.drawRect(startlinkP1.x()-DOTWIDTH/2, startlinkP1.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(P1linkP2.x()-DOTWIDTH/2, P1linkP2.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(P2linkP3.x()-DOTWIDTH/2, P2linkP3.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(P3linkEnd.x()-DOTWIDTH/2, P3linkEnd.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawLine(startlinkP1,P1linkP2);
+ paint.drawLine(P1linkP2, P2linkP3);
+ paint.drawLine(P2linkP3, P3linkEnd);
+}
+void QFramePitchEnvelope::mousePressEvent(QMouseEvent * e) {
+ //startlinkP1
+ if(e->x()<startlinkP1.x()+DRAGWIDTH && e->x()>startlinkP1.x()-DRAGWIDTH
+ && e->y()<startlinkP1.y()+DRAGWIDTH && e->y()>startlinkP1.y()-DRAGWIDTH)
+ isStartlinkP1Edit=true;
+ //P1linkP2
+ if(e->x()<P1linkP2.x()+DRAGWIDTH && e->x()>P1linkP2.x()-DRAGWIDTH
+ && e->y()<P1linkP2.y()+DRAGWIDTH && e->y()>P1linkP2.y()-DRAGWIDTH)
+ isP1linkP2Edit=true;
+ //P2linkP3
+ if(e->x()<P2linkP3.x()+DRAGWIDTH && e->x()>P2linkP3.x()-DRAGWIDTH
+ && e->y()<P2linkP3.y()+DRAGWIDTH && e->y()>P2linkP3.y()-DRAGWIDTH)
+ isP2linkP3Edit=true;
+ //P3linkEnd
+ if(e->x()<P3linkEnd.x()+DRAGWIDTH && e->x()>P3linkEnd.x()-DRAGWIDTH
+ && e->y()<P3linkEnd.y()+DRAGWIDTH && e->y()>P3linkEnd.y()-DRAGWIDTH)
+ isP3linkEndEdit=true;
+}
+void QFramePitchEnvelope::mouseReleaseEvent(QMouseEvent* /*e*/) {
+ isStartlinkP1Edit=false;
+ isP1linkP2Edit=false;
+ isP2linkP3Edit=false;
+ isP3linkEndEdit=false;
+}
+void QFramePitchEnvelope::mouseMoveEvent(QMouseEvent* e) {
+ if(isStartlinkP1Edit) {
+ if(e->y()>startlinkP1.y()) _deicsOnzeGui->PL1SpinBox->stepDown();
+ if(e->y()<startlinkP1.y()) _deicsOnzeGui->PL1SpinBox->stepUp();
+ }
+ if(isP1linkP2Edit) {
+ if(e->x()>P1linkP2.x()) _deicsOnzeGui->PR1SpinBox->stepDown();
+ if(e->x()<P1linkP2.x()) _deicsOnzeGui->PR1SpinBox->stepUp();
+ if(e->y()>P1linkP2.y()) _deicsOnzeGui->PL2SpinBox->stepDown();
+ if(e->y()<P1linkP2.y()) _deicsOnzeGui->PL2SpinBox->stepUp();
+ }
+ if(isP2linkP3Edit) {
+ if(e->x()>P2linkP3.x()) _deicsOnzeGui->PR2SpinBox->stepDown();
+ if(e->x()<P2linkP3.x()) _deicsOnzeGui->PR2SpinBox->stepUp();
+ if(e->y()>P2linkP3.y()) _deicsOnzeGui->PL3SpinBox->stepDown();
+ if(e->y()<P2linkP3.y()) _deicsOnzeGui->PL3SpinBox->stepUp();
+ }
+ if(isP3linkEndEdit) {
+ if(e->x()>P3linkEnd.x()) _deicsOnzeGui->PR3SpinBox->stepDown();
+ if(e->x()<P3linkEnd.x()) _deicsOnzeGui->PR3SpinBox->stepUp();
+ if(e->y()>P3linkEnd.y()) _deicsOnzeGui->PL1SpinBox->stepDown();
+ if(e->y()<P3linkEnd.y()) _deicsOnzeGui->PL1SpinBox->stepUp();
+ }
+}
+//-----------------------------------------------------------
+// env2Points
+// assigns the right coordinates to the points
+// to draw the pitch envelope
+//-----------------------------------------------------------
+void QFramePitchEnvelope::env2Points(int pl1, int pl2, int pl3,
+ int pr1, int pr2, int pr3) {
+ startlinkP1.setY(YOFFSET+MAXPHEIGHT
+ -PENWIDTH-((PL1HEIGHT-PENWIDTH)*pl1)/MAXPL);
+ startlinkP1.setX(XOFFSET);
+ P1linkP2.setY(YOFFSET+MAXPHEIGHT-PENWIDTH-((PL2HEIGHT-PENWIDTH)*pl2)/MAXPL);
+ P1linkP2.setX(XOFFSET+WALLWIDTH+PR1WIDTH-(PR1WIDTH*pr1)/MAXPR);
+ P2linkP3.setY(YOFFSET+MAXPHEIGHT-PENWIDTH-((PL3HEIGHT-PENWIDTH)*pl3)/MAXPL);
+ P2linkP3.setX(P1linkP2.x()+WALLWIDTH+PR2WIDTH-(PR2WIDTH*pr2)/MAXPR);
+ P3linkEnd.setY(YOFFSET+MAXPHEIGHT-PENWIDTH-((PL1HEIGHT-PENWIDTH)*pl1)/MAXPL);
+ P3linkEnd.setX(P2linkP3.x()+WALLWIDTH+PR3WIDTH-(PR3WIDTH*pr3)/MAXPR);
+}
+//-----------------------------------------------------------
+// QFrameEnvelope
+//-----------------------------------------------------------
+void QFrameEnvelope::paintEvent(QPaintEvent* /*e*/) {
+ QPainter paint(this);
+ QPen pen;
+ pen.setColor(*(_deicsOnzeGui->etColor));
+ //if the size of pitchEnvFrame is different than QFramePitchEnvelope resize
+ //and update the envelope
+ int op = _deicsOnzeGui->deicsOnzeTabWidget->currentIndex()-2;
+ //-2 because of the presetsTab and globalTab
+ Eg* eg=&(_deicsOnzeGui->_deicsOnze->
+ _preset[_deicsOnzeGui->_currentChannel]->eg[op]);
+ switch(op) {
+ case 0 :
+ if(_deicsOnzeGui->envelope1Frame->width()!=width() ||
+ _deicsOnzeGui->envelope1Frame->height()!=height()) {
+ resize(_deicsOnzeGui->envelope1Frame->width(),
+ _deicsOnzeGui->envelope1Frame->height());
+ //update the positions of the envelope
+ env2Points(eg->ar, eg->d1r, eg->d1l, eg->d2r, eg->rr);
+ }
+ break;
+ case 1 :
+ if(_deicsOnzeGui->envelope2Frame->width()!=width() ||
+ _deicsOnzeGui->envelope2Frame->height()!=height()) {
+ resize(_deicsOnzeGui->envelope2Frame->width(),
+ _deicsOnzeGui->envelope2Frame->height());
+ //update the positions of the envelope
+ env2Points(eg->ar, eg->d1r, eg->d1l, eg->d2r, eg->rr);
+ }
+ break;
+ case 2 :
+ if(_deicsOnzeGui->envelope3Frame->width()!=width() ||
+ _deicsOnzeGui->envelope3Frame->height()!=height()) {
+ resize(_deicsOnzeGui->envelope3Frame->width(),
+ _deicsOnzeGui->envelope3Frame->height());
+ //update the positions of the envelope
+ env2Points(eg->ar, eg->d1r, eg->d1l, eg->d2r, eg->rr);
+ }
+ break;
+ case 3 :
+ if(_deicsOnzeGui->envelope4Frame->width()!=width() ||
+ _deicsOnzeGui->envelope4Frame->height()!=height()) {
+ resize(_deicsOnzeGui->envelope4Frame->width(),
+ _deicsOnzeGui->envelope4Frame->height());
+ //update the positions of the envelope
+ env2Points(eg->ar, eg->d1r, eg->d1l, eg->d2r, eg->rr);
+ }
+ break;
+ default :
+ printf("QFrameEnvelope::paintEvent switch case error\n");
+ break;
+ }
+ //Draw the vertical line of the release note
+ pen.setWidth(1);
+ pen.setStyle(Qt::DotLine);
+ paint.setPen(pen);
+ paint.drawLine(D2linkRR.x(), MAXHEIGHT, D2linkRR.x(), YOFFSET);
+ //Draw the volume envelope
+ pen.setWidth(PENWIDTH);
+ pen.setStyle(Qt::SolidLine);
+ paint.setPen(pen);
+ paint.drawRect(startlinkAR.x()-DOTWIDTH/2, startlinkAR.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(ARlinkD1.x()-DOTWIDTH/2, ARlinkD1.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(D1linkD2.x()-DOTWIDTH/2, D1linkD2.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(D2linkRR.x()-DOTWIDTH/2, D2linkRR.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawRect(RRlinkEnd.x()-DOTWIDTH/2, RRlinkEnd.y()-DOTWIDTH/2,
+ DOTWIDTH, DOTWIDTH);
+ paint.drawLine(startlinkAR,ARlinkD1);
+ paint.drawLine(ARlinkD1, D1linkD2);
+ paint.drawLine(D1linkD2, D2linkRR);
+ paint.drawLine(D2linkRR, RRlinkEnd);
+}
+void QFrameEnvelope::mousePressEvent(QMouseEvent * e) {
+ //ARlinkD1
+ if(e->x()<ARlinkD1.x()+DRAGWIDTH && e->x()>ARlinkD1.x()-DRAGWIDTH
+ && e->y()<ARlinkD1.y()+DRAGWIDTH && e->y()>ARlinkD1.y()-DRAGWIDTH)
+ isARlinkD1Edit=true;
+ //D1linkD2
+ if(e->x()<D1linkD2.x()+DRAGWIDTH && e->x()>D1linkD2.x()-DRAGWIDTH
+ && e->y()<D1linkD2.y()+DRAGWIDTH && e->y()>D1linkD2.y()-DRAGWIDTH)
+ isD1linkD2Edit=true;
+ //D2linkRR
+ if(e->x()<D2linkRR.x()+DRAGWIDTH && e->x()>D2linkRR.x()-DRAGWIDTH
+ && e->y()<D2linkRR.y()+DRAGWIDTH && e->y()>D2linkRR.y()-DRAGWIDTH)
+ isD2linkRREdit=true;
+ //RRlinkEnd
+ if(e->x()<RRlinkEnd.x()+DRAGWIDTH && e->x()>RRlinkEnd.x()-DRAGWIDTH
+ && e->y()<RRlinkEnd.y()+DRAGWIDTH && e->y()>RRlinkEnd.y()-DRAGWIDTH)
+ isRRlinkEndEdit=true;
+}
+void QFrameEnvelope::mouseReleaseEvent(QMouseEvent* /*e*/) {
+ isARlinkD1Edit=false;
+ isD1linkD2Edit=false;
+ isD2linkRREdit=false;
+ isRRlinkEndEdit=false;
+}
+void QFrameEnvelope::mouseMoveEvent(QMouseEvent* e) {
+ if(isARlinkD1Edit)
+ {
+ switch(op) {
+ case 0 :
+ if(e->x()>ARlinkD1.x()) _deicsOnzeGui->AR1SpinBox->stepDown();
+ if(e->x()<ARlinkD1.x()) _deicsOnzeGui->AR1SpinBox->stepUp();
+ break;
+ case 1 :
+ if(e->x()>ARlinkD1.x()) _deicsOnzeGui->AR2SpinBox->stepDown();
+ if(e->x()<ARlinkD1.x()) _deicsOnzeGui->AR2SpinBox->stepUp();
+ break;
+ case 2 :
+ if(e->x()>ARlinkD1.x()) _deicsOnzeGui->AR3SpinBox->stepDown();
+ if(e->x()<ARlinkD1.x()) _deicsOnzeGui->AR3SpinBox->stepUp();
+ break;
+ case 3 :
+ if(e->x()>ARlinkD1.x()) _deicsOnzeGui->AR4SpinBox->stepDown();
+ if(e->x()<ARlinkD1.x()) _deicsOnzeGui->AR4SpinBox->stepUp();
+ break;
+ default :
+ break;
+ }
+ }
+ if(isD1linkD2Edit)
+ {
+ switch(op) {
+ case 0 :
+ if(e->x()>D1linkD2.x()) _deicsOnzeGui->D1R1SpinBox->stepDown();
+ if(e->x()<D1linkD2.x()) _deicsOnzeGui->D1R1SpinBox->stepUp();
+ if(e->y()>D1linkD2.y()) _deicsOnzeGui->D1L1SpinBox->stepDown();
+ if(e->y()<D1linkD2.y()) _deicsOnzeGui->D1L1SpinBox->stepUp();
+ break;
+ case 1 :
+ if(e->x()>D1linkD2.x()) _deicsOnzeGui->D1R2SpinBox->stepDown();
+ if(e->x()<D1linkD2.x()) _deicsOnzeGui->D1R2SpinBox->stepUp();
+ if(e->y()>D1linkD2.y()) _deicsOnzeGui->D1L2SpinBox->stepDown();
+ if(e->y()<D1linkD2.y()) _deicsOnzeGui->D1L2SpinBox->stepUp();
+ break;
+ case 2 :
+ if(e->x()>D1linkD2.x()) _deicsOnzeGui->D1R3SpinBox->stepDown();
+ if(e->x()<D1linkD2.x()) _deicsOnzeGui->D1R3SpinBox->stepUp();
+ if(e->y()>D1linkD2.y()) _deicsOnzeGui->D1L3SpinBox->stepDown();
+ if(e->y()<D1linkD2.y()) _deicsOnzeGui->D1L3SpinBox->stepUp();
+ break;
+ case 3 :
+ if(e->x()>D1linkD2.x()) _deicsOnzeGui->D1R4SpinBox->stepDown();
+ if(e->x()<D1linkD2.x()) _deicsOnzeGui->D1R4SpinBox->stepUp();
+ if(e->y()>D1linkD2.y()) _deicsOnzeGui->D1L4SpinBox->stepDown();
+ if(e->y()<D1linkD2.y()) _deicsOnzeGui->D1L4SpinBox->stepUp();
+ break;
+ default :
+ break;
+ }
+ }
+ if(isD2linkRREdit)
+ {
+ switch(op) {
+ case 0 :
+ if(e->x()>D2linkRR.x() /*&& e->y()<D2linkRR.y()*/)
+ _deicsOnzeGui->D2R1SpinBox->stepDown();
+ if(e->x()<D2linkRR.x() /*&& e->y()>D2linkRR.y()*/)
+ _deicsOnzeGui->D2R1SpinBox->stepUp();
+ break;
+ case 1 :
+ if(e->x()>D2linkRR.x() /*&& e->y()<D2linkRR.y()*/)
+ _deicsOnzeGui->D2R2SpinBox->stepDown();
+ if(e->x()<D2linkRR.x() /*&& e->y()>D2linkRR.y()*/)
+ _deicsOnzeGui->D2R2SpinBox->stepUp();
+ break;
+ case 2 :
+ if(e->x()>D2linkRR.x() /*&& e->y()<D2linkRR.y()*/)
+ _deicsOnzeGui->D2R3SpinBox->stepDown();
+ if(e->x()<D2linkRR.x() /*&& e->y()>D2linkRR.y()*/)
+ _deicsOnzeGui->D2R3SpinBox->stepUp();
+ break;
+ case 3 :
+ if(e->x()>D2linkRR.x() /*&& e->y()<D2linkRR.y()*/)
+ _deicsOnzeGui->D2R4SpinBox->stepDown();
+ if(e->x()<D2linkRR.x() /*&& e->y()>D2linkRR.y()*/)
+ _deicsOnzeGui->D2R4SpinBox->stepUp();
+ break;
+ default :
+ break;
+ }
+ }
+ if(isRRlinkEndEdit)
+ {
+ switch(op) {
+ case 0 :
+ if(e->x()>RRlinkEnd.x()) _deicsOnzeGui->RR1SpinBox->stepDown();
+ if(e->x()<RRlinkEnd.x()) _deicsOnzeGui->RR1SpinBox->stepUp();
+ break;
+ case 1 :
+ if(e->x()>RRlinkEnd.x()) _deicsOnzeGui->RR2SpinBox->stepDown();
+ if(e->x()<RRlinkEnd.x()) _deicsOnzeGui->RR2SpinBox->stepUp();
+ break;
+ case 2 :
+ if(e->x()>RRlinkEnd.x()) _deicsOnzeGui->RR3SpinBox->stepDown();
+ if(e->x()<RRlinkEnd.x()) _deicsOnzeGui->RR3SpinBox->stepUp();
+ break;
+ case 3 :
+ if(e->x()>RRlinkEnd.x()) _deicsOnzeGui->RR4SpinBox->stepDown();
+ if(e->x()<RRlinkEnd.x()) _deicsOnzeGui->RR4SpinBox->stepUp();
+ break;
+ default :
+ break;
+ }
+ }
+}
+//-----------------------------------------------------------
+// env2Points
+// assigns the right coordinates to the points
+// to draw the envelope
+//-----------------------------------------------------------
+void QFrameEnvelope::env2Points(int ar, int d1r, int d1l, int d2r, int rr) {
+ startlinkAR.setY(MAXHEIGHT-PENWIDTH);
+ startlinkAR.setX(PENWIDTH);
+ ARlinkD1.setY(PENWIDTH);
+ ARlinkD1.setX(PENWIDTH+ARWIDTH-(ARWIDTH*ar)/MAXAR);
+ D1linkD2.setY(PENWIDTH+
+ (D1LHEIGHT-2*PENWIDTH-((D1LHEIGHT-2*PENWIDTH)*d1l)/MAXD1L));
+ D1linkD2.setX(ARlinkD1.x()+D1RWIDTH-(D1RWIDTH*d1r)/MAXD1R);
+ D2linkRR.setY(D1linkD2.y()
+ +((D1LHEIGHT-2*PENWIDTH-D1linkD2.y())*d2r)/MAXD2R);
+ D2linkRR.setX(D1linkD2.x()+D2RWIDTH-(D2RWIDTH*d2r)/MAXD2R);
+ RRlinkEnd.setY(MAXHEIGHT-PENWIDTH);
+ RRlinkEnd.setX(D2linkRR.x()
+ +(RRWIDTH-PENWIDTH-((RRWIDTH-PENWIDTH)*rr)/MAXRR));
+}
+
+//-----------------------------------------------------------
+// processEvent(const MidiEvent&);
+//-----------------------------------------------------------
+void DeicsOnzeGui::processEvent(const MidiEvent& ev) {
+ //Controler
+ if (ev.type() == ME_CONTROLLER) {
+ //printf("ME_CONTROLLER\n");
+ int id=ev.dataA();
+ int ch=ev.channel();
+ int val=ev.dataB();
+ if(ch == _currentChannel || id == CTRL_CHANNELENABLE) {
+ switch(id) {
+ case CTRL_AR: updateAR(0, val); break;
+ case CTRL_D1R: updateD1R(0, val); break;
+ case CTRL_D2R: updateD2R(0, val); break;
+ case CTRL_RR: updateRR(0, val); break;
+ case CTRL_D1L: updateD1L(0, val); break;
+ case CTRL_LS: updateLS(0, val); break;
+ case CTRL_RS: updateRS(0, val); break;
+ case CTRL_EBS: updateEBS(0, val); break;
+ case CTRL_AME: updateAME(0, val==1); break;
+ case CTRL_KVS: updateKVS(0, val); break;
+ case CTRL_OUT: updateOUT(0, val); break;
+ case CTRL_RATIO: updateRATIO(0, val); break;
+ case CTRL_DET: updateDET(0, val); break;
+ case CTRL_AR+DECAPAR1: updateAR(1, val); break;
+ case CTRL_D1R+DECAPAR1: updateD1R(1, val); break;
+ case CTRL_D2R+DECAPAR1: updateD2R(1, val); break;
+ case CTRL_RR+DECAPAR1: updateRR(1, val); break;
+ case CTRL_D1L+DECAPAR1: updateD1L(1, val); break;
+ case CTRL_LS+DECAPAR1: updateLS(1, val); break;
+ case CTRL_RS+DECAPAR1: updateRS(1, val); break;
+ case CTRL_EBS+DECAPAR1: updateEBS(1, val); break;
+ case CTRL_AME+DECAPAR1: updateAME(1, val==1); break;
+ case CTRL_KVS+DECAPAR1: updateKVS(1, val); break;
+ case CTRL_OUT+DECAPAR1: updateOUT(1, val); break;
+ case CTRL_RATIO+DECAPAR1: updateRATIO(1, val); break;
+ case CTRL_DET+DECAPAR1: updateDET(1, val); break;
+ case CTRL_AR+2*DECAPAR1: updateAR(2, val); break;
+ case CTRL_D1R+2*DECAPAR1: updateD1R(2, val); break;
+ case CTRL_D2R+2*DECAPAR1: updateD2R(2, val); break;
+ case CTRL_RR+2*DECAPAR1: updateRR(2, val); break;
+ case CTRL_D1L+2*DECAPAR1: updateD1L(2, val); break;
+ case CTRL_LS+2*DECAPAR1: updateLS(2, val); break;
+ case CTRL_RS+2*DECAPAR1: updateRS(2, val); break;
+ case CTRL_EBS+2*DECAPAR1: updateEBS(2, val); break;
+ case CTRL_AME+2*DECAPAR1: updateAME(2, val==1); break;
+ case CTRL_KVS+2*DECAPAR1: updateKVS(2, val); break;
+ case CTRL_OUT+2*DECAPAR1: updateOUT(2, val); break;
+ case CTRL_RATIO+2*DECAPAR1: updateRATIO(2, val); break;
+ case CTRL_DET+2*DECAPAR1: updateDET(2, val); break;
+ case CTRL_AR+3*DECAPAR1: updateAR(3, val); break;
+ case CTRL_D1R+3*DECAPAR1: updateD1R(3, val); break;
+ case CTRL_D2R+3*DECAPAR1: updateD2R(3, val); break;
+ case CTRL_RR+3*DECAPAR1: updateRR(3, val); break;
+ case CTRL_D1L+3*DECAPAR1: updateD1L(3, val); break;
+ case CTRL_LS+3*DECAPAR1: updateLS(3, val); break;
+ case CTRL_RS+3*DECAPAR1: updateRS(3, val); break;
+ case CTRL_EBS+3*DECAPAR1: updateEBS(3, val); break;
+ case CTRL_AME+3*DECAPAR1: updateAME(3, val==1); break;
+ case CTRL_KVS+3*DECAPAR1: updateKVS(3, val); break;
+ case CTRL_OUT+3*DECAPAR1: updateOUT(3, val); break;
+ case CTRL_RATIO+3*DECAPAR1: updateRATIO(3, val); break;
+ case CTRL_DET+3*DECAPAR1: updateDET(3, val); break;
+ case CTRL_ALG: updateALG(val); break;
+ case CTRL_FEEDBACK: updateFEEDBACK(val); break;
+ case CTRL_SPEED: updateSPEED(val); break;
+ case CTRL_DELAY: updateDELAY(val); break;
+ case CTRL_PMODDEPTH: updatePMODDEPTH(val); break;
+ case CTRL_AMODDEPTH: updateAMODDEPTH(val); break;
+ case CTRL_SYNC: updateSYNC(val==1); break;
+ case CTRL_WAVE: updateWAVE(val); break;
+ case CTRL_PMODSENS: updatePMODSENS(val); break;
+ case CTRL_AMS: updateAMS(val); break;
+ case CTRL_TRANSPOSE: updateTRANSPOSE(val); break;
+ case CTRL_POLYMODE: updatePOLYMODE(val); break;
+ case CTRL_PBENDRANGE: updatePBENDRANGE(val); break;
+ case CTRL_PORTAMODE: updatePORTAMODE(val); break;
+ case CTRL_PORTATIME: updatePORTATIME(val); break;
+ case CTRL_FCVOLUME: updateFcVolume(val); break;
+ case CTRL_FSW:
+ break;
+ case CTRL_MWPITCH: updateMwPitch(val); break;
+ case CTRL_MWAMPLITUDE: updateMwAmplitude(val); break;
+ case CTRL_BCPITCH: updateBcPitch(val); break;
+ case CTRL_BCAMPLITUDE: updateBcAmplitude(val); break;
+ case CTRL_BCPITCHBIAS: updateBcPitchBias(val); break;
+ case CTRL_BCEGBIAS: updateBcEgBias(val); break;
+ case CTRL_PR1: updatePR1(val); break;
+ case CTRL_PR2: updatePR2(val); break;
+ case CTRL_PR3: updatePR3(val); break;
+ case CTRL_PL1: updatePL1(val); break;
+ case CTRL_PL2: updatePL2(val); break;
+ case CTRL_PL3: updatePL3(val); break;
+ case CTRL_FIX: updateFIX(0, val==1); break;
+ case CTRL_FIXRANGE: updateFIXRANGE(0, val); break;
+ case CTRL_OSW: updateOSW(0, val); break;
+ case CTRL_SHFT: updateSHFT(0, val); break;
+ case CTRL_FIX+DECAPAR2: updateFIX(1, val==1); break;
+ case CTRL_FIXRANGE+DECAPAR2: updateFIXRANGE(1, val); break;
+ case CTRL_OSW+DECAPAR2: updateOSW(1, val); break;
+ case CTRL_SHFT+DECAPAR2: updateSHFT(1, val); break;
+ case CTRL_FIX+2*DECAPAR2: updateFIX(2, val==1); break;
+ case CTRL_FIXRANGE+2*DECAPAR2: updateFIXRANGE(2, val); break;
+ case CTRL_OSW+2*DECAPAR2: updateOSW(2, val); break;
+ case CTRL_SHFT+2*DECAPAR2: updateSHFT(2, val); break;
+ case CTRL_FIX+3*DECAPAR2: updateFIX(3, val==1); break;
+ case CTRL_FIXRANGE+3*DECAPAR2: updateFIXRANGE(3, val); break;
+ case CTRL_OSW+3*DECAPAR2: updateOSW(3, val); break;
+ case CTRL_SHFT+3*DECAPAR2: updateSHFT(3, val); break;
+ case CTRL_REVERBRATE: /*updateReverbRate(val);*/ break;
+ case CTRL_FCPITCH: updateFcPitch(val); break;
+ case CTRL_FCAMPLITUDE: updateFcAmplitude(val); break;
+ case CTRL_CHANNELENABLE:
+ if(ch == _currentChannel) updateChannelEnable(val);
+ break;
+ case CTRL_CHANNELDETUNE: updateChannelDetune(val); break;
+ case CTRL_CHANNELPAN: updateChannelPan(val); break;
+ case CTRL_CHANNELVOLUME: updateChannelVolume(val); break;
+ case CTRL_NBRVOICES: updateNbrVoices(val); break;
+ case CTRL_FINEBRIGHTNESS: updateBrightness(val); break;
+ case CTRL_ATTACK_TIME: updateAttack(val); break;
+ case CTRL_RELEASE_TIME: updateRelease(val); break;
+ case CTRL_CHORUS_SEND: updateChannelChorus(val); break;
+ case CTRL_REVERB_SEND: updateChannelReverb(val); break;
+ case CTRL_VARIATION_SEND: updateChannelDelay(val); break;
+ case CTRL_MODULATION: updateModulation(val); break;
+ case CTRL_PROGRAM :
+ int hbank = (val & 0xff0000) >> 16;
+ int lbank = (val & 0xff00) >> 8;
+ if (hbank > 127) // map "dont care" to 0
+ hbank = 0;
+ if (lbank > 127)
+ lbank = 0;
+ int prog = val & 0x7f;
+ //printf("GUI program : ch = %d, hbank = %d, lbank = %d, prog = %d\n",
+ // ch, hbank, lbank, prog);
+ //change the _deicsonze preset
+ //to update the right preset
+ _deicsOnze->programSelect(ch, hbank, lbank, prog);
+ //only display _deicsonze preset
+ updateSelectPreset(hbank, lbank, prog);
+ updatePreset();
+ break;
+ }
+ }
+ }
+ // Sysexes
+ else if (ev.type() == ME_SYSEX) {
+ //printf("ME_SYSEX\n");
+ unsigned char* data = ev.data();
+ int cmd = *data;
+ float f;
+ switch (cmd) {
+ case SYSEX_CHORUSACTIV :
+ updateChorusActiv((bool)data[1]);
+ break;
+ case SYSEX_CHORUSRETURN :
+ updateChorusReturn((int)data[1]);
+ break;
+ case SYSEX_REVERBACTIV :
+ updateReverbActiv((bool)data[1]);
+ break;
+ case SYSEX_REVERBRETURN :
+ updateReverbReturn((int)data[1]);
+ break;
+ /*case SYSEX_CHORUS1PAN :
+ updatePanChorus1((int)data[1]);
+ break;
+ case SYSEX_CHORUS1LFOFREQ :
+ updateLFOFreqChorus1((int)data[1]);
+ break;
+ case SYSEX_CHORUS1DEPTH :
+ updateDepthChorus1((int)data[1]);
+ break;
+ case SYSEX_CHORUS2PAN :
+ updatePanChorus2((int)data[1]);
+ break;
+ case SYSEX_CHORUS2LFOFREQ :
+ updateLFOFreqChorus2((int)data[1]);
+ break;
+ case SYSEX_CHORUS2DEPTH :
+ updateDepthChorus2((int)data[1]);
+ break;*/
+ case SYSEX_DELAYACTIV :
+ updateDelayActiv((bool)data[1]);
+ break;
+ case SYSEX_DELAYRETURN :
+ updateDelayReturn((int)data[1]);
+ break;
+ case SYSEX_DELAYBPM :
+ memcpy(&f, &data[1], sizeof(float));
+ updateDelayBPM(f);
+ break;
+ case SYSEX_DELAYBEATRATIO :
+ memcpy(&f, &data[1], sizeof(float));
+ updateDelayBeatRatio(f);
+ break;
+ case SYSEX_DELAYFEEDBACK :
+ memcpy(&f, &data[1], sizeof(float));
+ updateDelayFeedback(f);
+ break;
+ case SYSEX_DELAYLFOFREQ :
+ memcpy(&f, &data[1], sizeof(float));
+ updateDelayPanLFOFreq(f);
+ break;
+ case SYSEX_DELAYLFODEPTH :
+ memcpy(&f, &data[1], sizeof(float));
+ updateDelayPanLFODepth(f);
+ break;
+ case SYSEX_QUALITY :
+ updateQuality((int)data[1]);
+ break;
+ case SYSEX_FILTER :
+ updateFilter((bool)data[1]);
+ break;
+ case SYSEX_FONTSIZE :
+ updateFontSize((int)data[1]);
+ applyFontSize((int)data[1]);
+ break;
+ case SYSEX_MASTERVOL :
+ updateMasterVolume((int)data[1]);
+ break;
+ case SYSEX_SAVECONFIG :
+ updateSaveConfig((bool)data[1]);
+ break;
+ case SYSEX_SAVEONLYUSED :
+ updateSaveOnlyUsed((bool)data[1]);
+ break;
+ case SYSEX_COLORGUI :
+ tColor->setRgb(data[1], data[2], data[3]);
+ bColor->setRgb(data[4], data[5], data[6]);
+ etColor->setRgb(data[7], data[8], data[9]);
+ ebColor->setRgb(data[10], data[11], data[12]);
+ setTextColor(reinterpret_cast<const QColor &>(*tColor));
+ setBackgroundColor(reinterpret_cast<const QColor &>(*bColor));
+ setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*ebColor));
+ setRGBSliders(colorListBox->currentItem());
+ break;
+ case SYSEX_ISINITSET :
+ updateInitSetCheckBox((bool)data[1]);
+ break;
+ case SYSEX_INITSETPATH :
+ updateInitSetPath(QString((char*)&data[1]));
+ break;
+ case SYSEX_ISBACKGROUNDPIX :
+ updateBackgroundPixCheckBox((bool)data[1]);
+ if((bool)data[1]) applyBackgroundPix();
+ break;
+ case SYSEX_BACKGROUNDPIXPATH :
+ updateBackgroundPixPath(QString((char*)&data[1]));
+ applyBackgroundPix();
+ break;
+ case SYSEX_UPDATESETGUI :
+ setSet();
+ subcategoryListView->clear();
+ presetListView->clear();
+ updateCategoryName("NONE", false);
+ hbankSpinBox->setEnabled(false);
+ updatePreset();
+ updateSubcategoryName("NONE", false);
+ progSpinBox->setEnabled(false);
+ updatePresetName("INITVOICE", false);
+ break;
+ case SYSEX_BUILDGUIREVERB :
+ buildGuiReverb();
+ break;
+ case SYSEX_BUILDGUICHORUS :
+ buildGuiChorus();
+ break;
+ case SYSEX_LOADSET :
+ //printf("LoadSet\n");
+ // read the XML file and create DOM tree
+ /*QString filename = (const char*) (data+2);
+ QFile deicsonzeFile(filename);
+ deicsonzeFile.open(IO_ReadOnly);
+ QDomDocument domTree;
+ domTree.setContent(&deicsonzeFile);
+ deicsonzeFile.close();
+ QDomNode node = domTree.documentElement();
+
+ printf("After XML\n");
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeSet") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ _deicsOnze->_preset=_deicsOnze->_initialPreset;*/
+ //read the set
+ if((bool)data[1]) {
+ //printf("Mini\n");
+ updateSaveOnlyUsed(true);
+ }
+ else {
+ //printf("Huge\n");
+ //while(!_deicsOnze->_set->_categoryVector.empty())
+ // delete(*_deicsOnze->_set->_categoryVector.begin());
+ updateSaveOnlyUsed(false);
+ }
+ //_deicsOnze->_set->readSet(node.firstChild());
+ //display load preset
+ setSet();
+ /*}
+ else printf("Wrong set version : %s\n",
+ version.toLatin1().data());
+ }
+ node = node.nextSibling();
+ }
+ break;
+ // delete the temporary file created
+ QString rmfile;
+ rmfile="rm ";
+ rmfile+=filename;
+ system(rmfile);
+ printf("Finit\n");*/
+ }
+ }
+}
+
+/*!
+ \fn SimpleSynthGui::readMessage(int)
+ */
+void DeicsOnzeGui::readMessage(int)
+{
+ MessGui::readMessage();
+}
+
+//-----------------------------------------------------------
+// num3Digits(int n)
+//-----------------------------------------------------------
+QString DeicsOnzeGui::num3Digits(int n) {
+ QString sn=QString::number(n);
+ return(sn.length()==1?"00"+sn:(sn.length()==2?"0"+sn:sn));
+}
+
+//-----------------------------------------------------------
+// deleteSet
+//-----------------------------------------------------------
+void DeicsOnzeGui::deleteSetDialog() {
+ //TODO : maybe to put this in sysex to deicsonze.cpp
+ for(int c = 0; c < NBRCHANNELS; c++)
+ _deicsOnze->_preset[c]=_deicsOnze->_initialPreset;
+ while(!_deicsOnze->_set->_categoryVector.empty())
+ delete(*_deicsOnze->_set->_categoryVector.begin());
+ setSet();
+ //_currentQLVCategory = NULL;
+ presetListView->clear();
+ subcategoryListView->clear();
+ updateCategoryName("NONE", false);
+ hbankSpinBox->setEnabled(false);
+ updateSubcategoryName("NONE", false);
+ lbankSpinBox->setEnabled(false);
+ updatePresetName("INITVOICE", false);
+ progSpinBox->setEnabled(false);
+ updatePreset();
+}
+//-----------------------------------------------------------
+// loadSetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadSetDialog() {
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load set dialog"),
+ lastDir,
+ QString("*.dei")
+ );
+
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ QFile deicsonzeFile(fileName);
+ if(!deicsonzeFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&deicsonzeFile )) {
+ QMessageBox::critical
+ (0, tr("Critical Error"),
+ tr("Parsing error for file %1").arg(fileName));
+ deicsonzeFile.close();
+ return;
+ }
+ deicsonzeFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeSet") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ for(int c = 0; c < NBRCHANNELS; c++)
+ _deicsOnze->_preset[c]=_deicsOnze->_initialPreset;
+ while(!_deicsOnze->_set->_categoryVector.empty())
+ delete(*_deicsOnze->_set->_categoryVector.begin());
+ _deicsOnze->_set->readSet(node.firstChild());
+ //display load preset
+ setSet();
+ subcategoryListView->clear();
+ presetListView->clear();
+ updateCategoryName("NONE", false);
+ hbankSpinBox->setEnabled(false);
+ updatePreset();
+ updateSubcategoryName("NONE", false);
+ progSpinBox->setEnabled(false);
+ updatePresetName("INITVOICE", false);
+ }
+ else printf("unsupported *.dei file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// saveSetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::saveSetDialog() {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save set dialog"),
+ lastDir,
+ QString("*.dei"));
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+ if(!filename.endsWith(".dei")) filename+=".dei";
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+
+ AL::Xml* xml = new AL::Xml(&f);
+ xml->header();
+ _deicsOnze->_set->writeSet(xml, false);
+
+ f.close();
+ }
+}
+
+//-----------------------------------------------------------
+// popupMenuCategory
+//-----------------------------------------------------------
+void DeicsOnzeGui::categoryPopupMenu(const QPoint&) {
+ QTreeWidgetItem* cat = categoryListView->currentItem();
+ QMenu *categoryMenu = new QMenu;
+ categoryMenu->addAction(tr("New category"),
+ this, SLOT(newCategoryDialog()));
+ QAction* deleteItem = categoryMenu->addAction(tr("Delete category"), this,
+ SLOT(deleteCategoryDialog()));
+ categoryMenu->addAction(tr("Load category"),
+ this, SLOT(loadCategoryDialog()));
+ QAction* saveItem = categoryMenu->addAction(tr("Save category"), this,
+ SLOT(saveCategoryDialog()));
+ if(!cat || !categoryListView->isItemSelected(cat)) {
+ deleteItem->setEnabled(false);
+ saveItem->setEnabled(false);
+ }
+ categoryMenu->addSeparator();
+ categoryMenu->addAction(tr("Load set"),
+ this, SLOT(loadSetDialog()));;
+ categoryMenu->addAction(tr("Save set"),
+ this, SLOT(saveSetDialog()));;
+ categoryMenu->addAction(tr("Delete set"),
+ this, SLOT(deleteSetDialog()));;
+ categoryMenu->exec(QCursor::pos());
+}
+void DeicsOnzeGui::subcategoryPopupMenu(const QPoint&) {
+ QTreeWidgetItem* sub = subcategoryListView->currentItem();
+ QMenu *subcategoryMenu = new QMenu;
+ QAction* newItem =
+ subcategoryMenu->addAction(tr("New subcategory"), this,
+ SLOT(newSubcategoryDialog()));
+ QAction* deleteItem =
+ subcategoryMenu->addAction(tr("Delete subcategory"),
+ this, SLOT(deleteSubcategoryDialog()));
+ QAction* loadItem =
+ subcategoryMenu->addAction(tr("Load subcategory"), this,
+ SLOT(loadSubcategoryDialog()));
+ QAction* saveItem =
+ subcategoryMenu->addAction(tr("Save subcategory"), this,
+ SLOT(saveSubcategoryDialog()));
+ if(!sub || !subcategoryListView->isItemSelected(sub)) {
+ deleteItem->setEnabled(false);
+ saveItem->setEnabled(false);
+ }
+ if(!categoryListView->currentItem()
+ || !categoryListView->isItemSelected(categoryListView->currentItem())) {
+ newItem->setEnabled(false);
+ loadItem->setEnabled(false);
+ }
+ subcategoryMenu->exec(QCursor::pos());
+}
+void DeicsOnzeGui::presetPopupMenu(const QPoint&) {
+ QTreeWidgetItem* pre = presetListView->currentItem();
+ QMenu *presetMenu = new QMenu;
+ QAction* newItem = presetMenu->addAction(tr("New preset"), this,
+ SLOT(newPresetDialog()));
+ QAction* deleteItem = presetMenu->addAction(tr("Delete preset"), this,
+ SLOT(deletePresetDialog()));
+ QAction* loadItem = presetMenu->addAction(tr("Load preset"), this,
+ SLOT(loadPresetDialog()));
+ QAction* saveItem = presetMenu->addAction(tr("Save preset"), this,
+ SLOT(savePresetDialog()));
+ if(!pre || !presetListView->isItemSelected(pre)) {
+ deleteItem->setEnabled(false);
+ saveItem->setEnabled(false);
+ }
+ if(!subcategoryListView->currentItem() ||
+ !subcategoryListView->isItemSelected(subcategoryListView->currentItem())){
+ newItem->setEnabled(false);
+ loadItem->setEnabled(false);
+ }
+ presetMenu->exec(QCursor::pos());
+}
+
+//-----------------------------------------------------------
+// newCategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::newCategoryDialog() {
+ int nhbank=_deicsOnze->_set->firstFreeHBank();
+ if(nhbank==-1)
+ QMessageBox::information(this,
+ tr("No more category supported"),
+ tr("You can not add more categories"),
+ QMessageBox::Ok);
+ else {
+ new Category(_deicsOnze->_set, "NEWCAT", nhbank);
+ setSet();
+ QTreeWidgetItem* ci=
+ categoryListView->findItems(num3Digits(nhbank+1), Qt::MatchExactly).at(0);
+ categoryListView->setItemSelected(ci, true);
+ categoryListView->setCurrentItem(ci);
+ setCategory(ci);
+ categoryListView->scrollToItem(ci);
+ }
+}
+
+//-----------------------------------------------------------
+// deleteCategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::deleteCategoryDialog() {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat && categoryListView->isItemSelected(cat)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Delete category"),
+ tr("Do you really want to delete %1 ?")
+ .arg(cat->_category->_categoryName.c_str()),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 ))
+ {
+ for(int c = 0; c < NBRCHANNELS; c++)
+ _deicsOnze->_preset[c]=_deicsOnze->_initialPreset;
+ delete(cat->_category);
+ delete(cat);
+ subcategoryListView->clear();
+ presetListView->clear();
+ updateCategoryName("NONE", false);
+ hbankSpinBox->setEnabled(false);
+ updatePreset();
+ updateSubcategoryName("NONE", false);
+ progSpinBox->setEnabled(false);
+ updatePresetName("INITVOICE", false);
+ }
+ }
+ else QMessageBox::warning(this, tr("No category selected"),
+ tr("You must first select a category."));
+}
+
+//-----------------------------------------------------------
+// loadCategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadCategoryDialog() {
+ QString buffstr;
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load category dialog"),
+ lastDir,
+ QString("*.dec"));
+
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ QFile deicsonzeFile(fileName);
+ if(!deicsonzeFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&deicsonzeFile )) {
+ QMessageBox::critical
+ (0, tr("Critical Error"),
+ tr("Parsing error for file %1").arg(fileName));
+ deicsonzeFile.close();
+ return;
+ }
+ deicsonzeFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeCategory") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ Category* lCategory = new Category();
+ lCategory->readCategory(node.firstChild());
+ if (!_deicsOnze->_set->isFreeHBank(lCategory->_hbank)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Replace or add"),
+ tr("%1 is supposed to be affected to the hbank number %2, but there is already one on this slot.\n Do you want to replace it or to add it in the next free slot ?")
+ .arg((lCategory->_categoryName).c_str())
+ .arg(buffstr.setNum(lCategory->_hbank+1)),
+ tr("&Replace"), tr("&Add"),
+ QString::null, 0, 1 )) {
+ delete(_deicsOnze->_set
+ ->findCategory(lCategory->_hbank));
+ lCategory->linkSet(_deicsOnze->_set);
+ }
+ else {
+ int ffhb=_deicsOnze->_set->firstFreeHBank();
+ if(ffhb==-1)
+ QMessageBox::warning
+ (this, tr("Download error"),
+ tr("There is no more free category slot."));
+ else lCategory->_hbank=ffhb;
+ lCategory->linkSet(_deicsOnze->_set);
+ }
+ }
+ else lCategory->linkSet(_deicsOnze->_set);
+ //display category
+ setSet();
+ }
+ else printf("unsupported *.dec file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// saveCategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::saveCategoryDialog() {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat) {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save category dialog"),
+ lastDir,
+ QString("*.dec"));
+
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+ if(!filename.endsWith(".dec")) filename+=".dec";
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+ AL::Xml* xml = new AL::Xml(&f);
+ xml->header();
+ cat->_category->writeCategory(xml, false);
+
+ f.close();
+ }
+ }
+ else QMessageBox::warning(this, tr("No category selected"),
+ tr("You must first select a category."));
+}
+
+//-----------------------------------------------------------
+// newSubcategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::newSubcategoryDialog() {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat && categoryListView->isItemSelected(cat)) {
+ int nlbank=cat->_category->firstFreeLBank();
+ if(nlbank==-1)
+ QMessageBox::information(this,
+ tr("No more subcategory supported"),
+ tr("You can not add more subcategories"),
+ QMessageBox::Ok);
+ else {
+ new Subcategory(cat->_category, "NEWSUB", nlbank);
+ setCategory(cat);
+ QTreeWidgetItem* si=
+ subcategoryListView->findItems(num3Digits(nlbank+1),
+ Qt::MatchExactly).at(0);
+ subcategoryListView->setItemSelected(si, true);
+ subcategoryListView->setCurrentItem(si);
+ setSubcategory(si);
+ subcategoryListView->scrollToItem(si);
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// deleteSubcategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::deleteSubcategoryDialog() {
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub && subcategoryListView->isItemSelected(sub)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Delete subcategory"),
+ tr("Do you really want to delete %1 ?")
+ .arg(sub->_subcategory
+ ->_subcategoryName.c_str()),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 )) {
+ for(int c = 0; c < NBRCHANNELS; c++)
+ _deicsOnze->_preset[c]=_deicsOnze->_initialPreset;
+ delete(sub->_subcategory);
+ delete(sub);
+ presetListView->clear();
+ //subcategoryLineEdit->setEnabled(false);
+ updateSubcategoryName("NONE", false);
+ lbankSpinBox->setEnabled(false);
+ updatePreset();
+ }
+ }
+ else QMessageBox::warning(this, tr("No subcategory selected"),
+ tr("You must first select a subcategory."));
+}
+
+//-----------------------------------------------------------
+// loadSubcategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadSubcategoryDialog() {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ QString buffstr;
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load subcategory dialog"),
+ lastDir,
+ QString("*.des"));
+
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ QFile deicsonzeFile(fileName);
+ if(!deicsonzeFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&deicsonzeFile )) {
+ QMessageBox::critical
+ (0, tr("Critical Error"),
+ tr("Parsing error for file %1").arg(fileName));
+ deicsonzeFile.close();
+ return;
+ }
+ deicsonzeFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if (e.isNull())
+ continue;
+ if (e.tagName() == "deicsOnzeSubcategory") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ Subcategory* lSubcategory = new Subcategory();
+ lSubcategory->readSubcategory(node.firstChild());
+ if (!cat->_category->isFreeLBank(lSubcategory->_lbank)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Replace or add"),
+ tr("%1 is supposed to be affected to the lbank number %2, but there is already one on this slot.\n Do you want to replace it or to add it in the next free slot ?")
+ .arg((lSubcategory->_subcategoryName)
+ .c_str())
+ .arg(buffstr.setNum(lSubcategory->_lbank+1)),
+ tr("&Replace"), tr("&Add"),
+ QString::null, 0, 1 )) {
+ delete(cat->_category->findSubcategory(lSubcategory->_lbank));
+ lSubcategory->linkCategory(cat->_category);
+ }
+ else {
+ int fflb=cat->_category->firstFreeLBank();
+ if(fflb==-1)
+ QMessageBox::warning
+ (this, tr("Download error"),
+ tr("There is no more free subcategory slot."));
+ else lSubcategory->_lbank=fflb;
+ lSubcategory->linkCategory(cat->_category);
+ }
+ }
+ else lSubcategory->linkCategory(cat->_category);
+ //display subcategory
+ setCategory(cat);
+ }
+ else printf("unsupported *.des file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// saveSubcategoryDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::saveSubcategoryDialog() {
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub) {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save subcategory dialog"),
+ lastDir,
+ QString("*.des"));
+
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+ if(!filename.endsWith(".des")) filename+=".des";
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+
+ AL::Xml* xml = new AL::Xml(&f);
+ xml->header();
+ sub->_subcategory->writeSubcategory(xml, false);
+
+ f.close();
+ }
+ }
+ else QMessageBox::warning(this, tr("No subcategory selected"),
+ tr("You must first select a subcategory."));
+}
+
+
+//-----------------------------------------------------------
+// newPresetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::newPresetDialog() {
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub && subcategoryListView->isItemSelected(sub)) {
+ int nprog=sub->_subcategory->firstFreeProg();
+ if(nprog==-1)
+ QMessageBox::information(this,
+ tr("No more preset supported"),
+ tr("You can not add more presets"),
+ QMessageBox::Ok);
+ else {
+ new Preset(sub->_subcategory, nprog);
+ setSubcategory(sub);
+ QTreeWidgetItem* pi=
+ presetListView->findItems(num3Digits(nprog+1),
+ Qt::MatchExactly).at(0);
+ presetListView->setItemSelected(pi, true);
+ presetListView->setCurrentItem(pi);
+ setPreset(pi);
+ presetListView->scrollToItem(pi);
+ }
+ }
+}
+
+//-----------------------------------------------------------
+// deletePresetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::deletePresetDialog() {
+ QTreePreset* pre = (QTreePreset*) presetListView->currentItem();
+ if(pre) {
+ if(presetListView->isItemSelected(pre)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Delete preset"),
+ tr("Do you really want to delete %1 ?")
+ .arg(pre->_preset->name.c_str()),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 )) {
+ for(int c = 0; c < NBRCHANNELS; c++)
+ _deicsOnze->_preset[c]=_deicsOnze->_initialPreset;
+ delete(pre->_preset);
+ delete(pre);
+ presetLineEdit->setEnabled(false);
+ progSpinBox->setEnabled(false);
+ updatePreset();
+ }
+ }
+ else QMessageBox::warning(this, tr("No preset selected"),
+ tr("You must first select a preset."));
+ }
+ else QMessageBox::warning(this, tr("No preset selected"),
+ tr("You must first select a preset."));
+}
+
+//-----------------------------------------------------------
+// loadPresetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadPresetDialog() {
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ QString buffstr;
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load preset dialog"),
+ lastDir,
+ QString("*.dep"));
+
+ // read the XML file and create DOM tree
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ QFile deicsonzeFile(fileName);
+ if(!deicsonzeFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0,
+ tr("Critical Error"),
+ tr("Cannot open file %1").arg(fileName));
+ return;
+ }
+ QDomDocument domTree;
+ if (!domTree.setContent(&deicsonzeFile )) {
+ QMessageBox::critical
+ (0, tr("Critical Error"),
+ tr("Parsing error for file %1").arg(fileName));
+ deicsonzeFile.close();
+ return;
+ }
+ deicsonzeFile.close();
+
+ QDomNode node = domTree.documentElement();
+ while (!node.isNull()) {
+ QDomElement e = node.toElement();
+ if(e.isNull())
+ continue;
+ if(e.tagName() == "deicsOnzePreset") {
+ QString version = e.attribute(QString("version"));
+ if (version == "1.0") {
+ Preset* lPreset = new Preset();
+ lPreset->readPreset(node.firstChild());
+ if(!sub->_subcategory->isFreeProg(lPreset->prog)) {
+ if(!QMessageBox::question(
+ this,
+ tr("Replace or add"),
+ tr("%1 is supposed to be affected to the prog number %2, but there is already one on this slot.\n Do you want to replace it or to add it in the next free slot ?")
+ .arg((lPreset->name).c_str())
+ .arg(buffstr.setNum(lPreset->prog+1)),
+ tr("&Replace"), tr("&Add"),
+ QString::null, 0, 1 )) {
+ delete(sub->_subcategory->findPreset(lPreset->prog));
+ lPreset->linkSubcategory(sub->_subcategory);
+ }
+ else {
+ int ffp=sub->_subcategory->firstFreeProg();
+ if(ffp==-1)
+ QMessageBox::warning
+ (this, tr("Download error"),
+ tr("There is no more free preset slot."));
+ else lPreset->prog=ffp;
+ lPreset->linkSubcategory(sub->_subcategory);
+ }
+ }
+ else lPreset->linkSubcategory(sub->_subcategory);
+ //display preset
+ setSubcategory(sub->_subcategory);
+ }
+ else printf("unsupported *.dep file version %s\n",
+ version.toLatin1().data());
+ }
+ else printf("DeicsOnze: %s not supported\n",
+ e.tagName().toLatin1().data());
+ node = node.nextSibling();
+ }
+ }
+}
+
+
+//-----------------------------------------------------------
+// savePresetDialog
+//-----------------------------------------------------------
+void DeicsOnzeGui::savePresetDialog() {
+ QTreePreset* pre = (QTreePreset*) presetListView->currentItem();
+ if(pre) {
+ QString filename =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save preset dialog"),
+ lastDir,
+ QString("*.dep"));
+ if(!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+ if(!filename.endsWith(".dep")) filename+=".dep";
+ QFile f(filename);
+ f.open(QIODevice::WriteOnly);
+ AL::Xml* xml = new AL::Xml(&f);
+
+ xml->header();
+ pre->_preset->writePreset(xml, false);
+ f.close();
+ }
+ }
+ else QMessageBox::warning(this, tr("No preset selected"),
+ tr("You must first select a preset."));
+}
+
+//-----------------------------------------------------------
+// Preset and bank
+//-----------------------------------------------------------
+void DeicsOnzeGui::setPresetName(const QString& n) {
+ QTreeWidgetItem* pre = presetListView->currentItem();
+ if(pre) {
+ //TODO : must be changed with SysEx
+ _deicsOnze->_preset[_currentChannel]->name = n.toAscii().data();
+ pre->setText(1,n.toAscii().data());
+ }
+}
+void DeicsOnzeGui::setSubcategoryName(const QString& s) {
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub) {//must be changed with SysEx
+ sub->_subcategory->_subcategoryName=s.toAscii().data();
+ sub->setText(1, s.toAscii().data());
+ }
+}
+void DeicsOnzeGui::setCategoryName(const QString& c) {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat) {//must be changed with SysEx
+ cat->_category->_categoryName=c.toAscii().data();
+ cat->setText(1, c.toAscii().data());
+ }
+}
+void DeicsOnzeGui::setHBank(int hb) {
+ QTreeCategory* cat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat) {//must be changed with SysEx
+ if(!_deicsOnze->_set->isFreeHBank(hb-1)) {
+ QTreeWidgetItem* qcat;
+ qcat=categoryListView->findItems(num3Digits(hb), Qt::MatchExactly).at(0);
+ ((QTreeCategory*)qcat)->_category->_hbank=
+ cat->_category->_hbank;
+ qcat->setText(0, num3Digits(((QTreeCategory*)qcat)
+ ->_category->_hbank+1));
+ }
+ cat->_category->_hbank=hb-1;
+ cat->setText(0,num3Digits(hb));
+ categoryListView->sortItems(0, Qt::AscendingOrder);
+ categoryListView->scrollToItem(cat);
+ }
+}
+void DeicsOnzeGui::setLBank(int lb) {//must be changed with SysEx
+ QTreeSubcategory* sub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub) {
+ Category* currentCat=sub->_subcategory->_category;
+ if(!currentCat->isFreeLBank(lb-1)) {
+ QTreeWidgetItem* qsub;
+ qsub=subcategoryListView->findItems(num3Digits(lb),
+ Qt::MatchExactly).at(0);
+ ((QTreeSubcategory*)qsub)->_subcategory->_lbank=
+ sub->_subcategory->_lbank;
+ qsub->setText(0, num3Digits(((QTreeSubcategory*)qsub)
+ ->_subcategory->_lbank+1));
+ }
+ sub->_subcategory->_lbank=lb-1;
+ sub->setText(0,num3Digits(lb));
+ subcategoryListView->sortItems(0, Qt::AscendingOrder);
+ subcategoryListView->scrollToItem(sub);
+ }
+}
+void DeicsOnzeGui::setProg(int pr) {//must be changed with SysEx
+ QTreePreset* pre = (QTreePreset*) presetListView->currentItem();
+ if(pre) {
+ Subcategory* currentSub=pre->_preset->_subcategory;
+ if(!currentSub->isFreeProg(pr-1)) {
+ QTreeWidgetItem* qpre;
+ qpre=presetListView->findItems(num3Digits(pr), Qt::MatchExactly).at(0);
+ ((QTreePreset*)qpre)->_preset->prog=pre->_preset->prog;
+ qpre->setText(0, num3Digits(((QTreePreset*)qpre)->_preset->prog+1));
+ }
+ pre->_preset->prog=pr-1;
+ pre->setText(0,num3Digits(pr));
+ presetListView->sortItems(0,Qt::AscendingOrder);
+ presetListView->scrollToItem(pre);
+ }
+}
+//-----------------------------------------------------------
+// load init set
+//-----------------------------------------------------------
+void DeicsOnzeGui::setIsInitSet(bool b) {
+ initSetPathLineEdit->setEnabled(b);
+ initSetBrowsePushButton->setEnabled(b);
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_ISINITSET;
+ message[1]=(unsigned char)b;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setInitSetPath(const QString& s) {
+ unsigned char* message = new unsigned char[1+MAXSTRLENGTHINITSETPATH];
+ message[0]=SYSEX_INITSETPATH;
+ strncpy((char*)&message[1], s.toAscii().data(), MAXSTRLENGTHINITSETPATH);
+ sendSysex(message, 1+MAXSTRLENGTHINITSETPATH);
+}
+void DeicsOnzeGui::setBrowseInitSetPath() {
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Browse set dialog"),
+ lastDir,
+ QString("*.dei"));
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ updateInitSetPath(fileName);
+ setInitSetPath(fileName);
+ }
+}
+//-----------------------------------------------------------
+// load background pix
+//-----------------------------------------------------------
+void DeicsOnzeGui::setIsBackgroundPix(bool b) {
+ if(b && !imagePathLineEdit->text().isEmpty()) applyBackgroundPix();
+ else setBackgroundColor(reinterpret_cast<const QColor &>(*bColor));
+ imagePathLineEdit->setEnabled(b);
+ imageBrowsePushButton->setEnabled(b);
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_ISBACKGROUNDPIX;
+ message[1]=(unsigned char)b;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setBackgroundPixPath(const QString& s) {
+ applyBackgroundPix();
+ unsigned char* message = new unsigned char[1+MAXSTRLENGTHBACKGROUNDPIXPATH];
+ message[0]=SYSEX_BACKGROUNDPIXPATH;
+ strncpy((char*)&message[1], s.toAscii().data(),
+ MAXSTRLENGTHBACKGROUNDPIXPATH);
+ sendSysex(message, 1+MAXSTRLENGTHBACKGROUNDPIXPATH);
+}
+void DeicsOnzeGui::setBrowseBackgroundPixPath() {
+ QString fileName =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Browse image dialog"),
+ lastDir,
+ QString("*.jpg *.png"));
+ if(!fileName.isEmpty()) {
+ QFileInfo fi(fileName);
+ lastDir = fi.path();
+ updateBackgroundPixPath(fileName);
+ setBackgroundPixPath(fileName);
+ }
+}
+//-----------------------------------------------------------
+// FX
+//-----------------------------------------------------------
+void DeicsOnzeGui::setChorusActiv(bool a) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUSACTIV;
+ message[1]=(unsigned char)a;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setChannelChorus(int c) {
+ sendController(_currentChannel, CTRL_CHORUS_SEND, c);
+}
+void DeicsOnzeGui::setChorusReturn(int val) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUSRETURN;
+ message[1]=(unsigned char)val;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setSelectChorusPlugin() {
+ Plugin* pluginChorus = PluginDialog::getPlugin(this);
+ if(pluginChorus) {
+ unsigned char* message = new unsigned char[1+sizeof(Plugin*)];
+ message[0]=SYSEX_SELECTCHORUS;
+ memcpy(&message[1], &pluginChorus, sizeof(Plugin*));
+ sendSysex(message, 1+sizeof(Plugin*));
+ }
+}
+/*void DeicsOnzeGui::setPanChorus1(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS1PAN;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setLFOFreqChorus1(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS1LFOFREQ;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setDepthChorus1(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS1DEPTH;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setPanChorus2(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS2PAN;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setLFOFreqChorus2(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS2LFOFREQ;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setDepthChorus2(double i) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_CHORUS2DEPTH;
+ message[1]=(unsigned char)(i*(double)MAXCHORUSPARAM);
+ sendSysex(message, 2);
+ }*/
+void DeicsOnzeGui::setReverbActiv(bool a) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_REVERBACTIV;
+ message[1]=(unsigned char)a;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setChannelReverb(int r) {
+ sendController(_currentChannel, CTRL_REVERB_SEND, r);
+}
+void DeicsOnzeGui::setReverbReturn(int val) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_REVERBRETURN;
+ message[1]=(unsigned char)val;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setSelectReverbPlugin() {
+ Plugin* pluginReverb = PluginDialog::getPlugin(this);
+ if(pluginReverb) {
+ unsigned char* message = new unsigned char[1+sizeof(Plugin*)];
+ message[0]=SYSEX_SELECTREVERB;
+ memcpy(&message[1], &pluginReverb, sizeof(Plugin*));
+ sendSysex(message, 1+sizeof(Plugin*));
+ }
+}
+
+//-----------------------------------------------------------
+// Quick Edit
+//-----------------------------------------------------------
+void DeicsOnzeGui::setChannelVolKnob(double val) {
+ sendController(_currentChannel, CTRL_CHANNELVOLUME,
+ (int)(val*(double)MAXCHANNELVOLUME));
+}
+void DeicsOnzeGui::setBrightnessKnob(double val) {
+ sendController(_currentChannel, CTRL_FINEBRIGHTNESS,
+ (int)(val*(double)MAXFINEBRIGHTNESS));
+}
+void DeicsOnzeGui::setModulationKnob(double val) {
+ sendController(_currentChannel, CTRL_MODULATION,
+ (int)(val*(double)MAXMODULATION));
+}
+void DeicsOnzeGui::setDetuneKnob(double val) {
+ //channelDetuneSlider->setValue((int)((2.0*val-1.0)*(double)MAXCHANNELDETUNE));
+ setChannelDetune((int)((2.0*val-1.0)*(double)MAXCHANNELDETUNE));
+}
+void DeicsOnzeGui::setAttackKnob(double val) {
+ sendController(_currentChannel, CTRL_ATTACK_TIME,
+ (int)(val*(double)MAXATTACK));
+}
+void DeicsOnzeGui::setReleaseKnob(double val) {
+ sendController(_currentChannel, CTRL_RELEASE_TIME, (int)(val*(double)MAXRELEASE));
+}
+//-----------------------------------------------------------
+// Global control
+//-----------------------------------------------------------
+void DeicsOnzeGui::setChannelPan(double mv) {
+ sendController(_currentChannel, CTRL_CHANNELPAN,
+ (int)((mv-0.5)*2*(double)MAXCHANNELPAN));
+}
+void DeicsOnzeGui::setMasterVolKnob(double mv) {
+ setMasterVol((int)(mv*(double)MAXMASTERVOLUME));
+}
+void DeicsOnzeGui::setMasterVol(int mv) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_MASTERVOL;
+ message[1]=(unsigned char)mv;
+ sendSysex(message, 2);
+}
+
+void DeicsOnzeGui::setFeedback(int f) {sendController(_currentChannel, CTRL_FEEDBACK, f);}
+
+void DeicsOnzeGui::setLfoWave(int lw) {sendController(_currentChannel, CTRL_WAVE, lw);}
+
+void DeicsOnzeGui::setLfoSpeed(int ls) {sendController(_currentChannel, CTRL_SPEED, ls);}
+
+void DeicsOnzeGui::setLfoDelay(int ld) {sendController(_currentChannel, CTRL_DELAY, ld);}
+
+void DeicsOnzeGui::setLfoPModDepth(int lpmd) {
+ sendController(_currentChannel, CTRL_PMODDEPTH, lpmd);
+}
+
+void DeicsOnzeGui::setLfoPitchSens(int lps) {
+ sendController(_currentChannel, CTRL_PMODSENS, lps);
+}
+
+void DeicsOnzeGui::setLfoAModDepth(int lamd) {
+ sendController(_currentChannel, CTRL_AMODDEPTH, lamd);
+}
+void DeicsOnzeGui::setLfoAmpSens(int las) {sendController(_currentChannel, CTRL_AMS, las);}
+
+void DeicsOnzeGui::setTranspose(int t) {sendController(_currentChannel, CTRL_TRANSPOSE, t);}
+
+void DeicsOnzeGui::setChannelDetune(int d) {
+ sendController(_currentChannel, CTRL_CHANNELDETUNE, d);
+ updateChannelDetuneKnob(d);
+}
+
+void DeicsOnzeGui::setAlgorithm(int a) {
+ sendController(_currentChannel, CTRL_ALG, (int) (a==0?FIRST:
+ (a==1?SECOND:
+ (a==2?THIRD:
+ (a==3?FOURTH:
+ (a==4?FIFTH:
+ (a==5?SIXTH:
+ (a==6?SEVENTH:EIGHTH))))))));
+}
+
+void DeicsOnzeGui::setPitchBendRange(int pbr) {
+ sendController(_currentChannel, CTRL_PBENDRANGE, pbr);
+}
+
+//---------------------------------------------------------------
+// Pitch Envelope
+//---------------------------------------------------------------
+void DeicsOnzeGui::setPL1(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(val, pe->pl2, pe->pl3,
+ pe->pr1, pe->pr2, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PL1, val);
+}
+void DeicsOnzeGui::setPL2(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(pe->pl1, val, pe->pl3,
+ pe->pr1, pe->pr2, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PL2, val);
+}
+void DeicsOnzeGui::setPL3(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(pe->pl1, pe->pl2, val,
+ pe->pr1, pe->pr2, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PL3, val);
+}
+void DeicsOnzeGui::setPR1(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(pe->pl1, pe->pl2, pe->pl3,
+ val, pe->pr2, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PR1, val);
+}
+void DeicsOnzeGui::setPR2(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(pe->pl1, pe->pl2, pe->pl3,
+ pe->pr1, val, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PR2, val);
+}
+void DeicsOnzeGui::setPR3(int val) {
+ PitchEg* pe=&_deicsOnze->_preset[_currentChannel]->pitchEg;
+ pitchEnvelopeGraph->env2Points(pe->pl1, pe->pl2, pe->pl3,
+ pe->pr1, pe->pr2, val);
+ pitchEnvelopeGraph->updateEnv();
+ sendController(_currentChannel, CTRL_PR3, val);
+}
+//---------------------------------------------------------------
+// Function
+//---------------------------------------------------------------
+void DeicsOnzeGui::setFcVolume(int val){sendController(_currentChannel, CTRL_FCVOLUME, val);}
+void DeicsOnzeGui::setFcPitch(int val){sendController(_currentChannel, CTRL_FCPITCH, val);}
+void DeicsOnzeGui::setFcAmplitude(int val) {
+ sendController(_currentChannel, CTRL_FCAMPLITUDE, val);
+}
+void DeicsOnzeGui::setMwPitch(int val){sendController(_currentChannel, CTRL_MWPITCH, val);}
+void DeicsOnzeGui::setMwAmplitude(int val) {
+ sendController(_currentChannel, CTRL_MWAMPLITUDE, val);
+}
+void DeicsOnzeGui::setBcPitch(int val){sendController(_currentChannel, CTRL_BCPITCH, val);}
+void DeicsOnzeGui::setBcAmplitude(int val) {
+ sendController(_currentChannel, CTRL_BCAMPLITUDE, val);
+}
+void DeicsOnzeGui::setBcPitchBias(int val) {
+ sendController(_currentChannel, CTRL_BCPITCHBIAS, val);}
+void DeicsOnzeGui::setBcEgBias(int val) {
+ sendController(_currentChannel, CTRL_BCEGBIAS, val);
+}
+void DeicsOnzeGui::setAtPitch(int val){sendController(_currentChannel, CTRL_ATPITCH, val);}
+void DeicsOnzeGui::setAtAmplitude(int val) {
+ sendController(_currentChannel, CTRL_ATAMPLITUDE, val);
+}
+void DeicsOnzeGui::setAtPitchBias(int val) {
+ sendController(_currentChannel, CTRL_ATPITCHBIAS, val);}
+void DeicsOnzeGui::setAtEgBias(int val) {
+ sendController(_currentChannel, CTRL_ATEGBIAS, val);
+}
+void DeicsOnzeGui::setReverbRate(int val) {
+ sendController(_currentChannel, CTRL_REVERBRATE, val);
+}
+void DeicsOnzeGui::setPolyMode(int val) {
+ sendController(_currentChannel, CTRL_POLYMODE, val);
+}
+void DeicsOnzeGui::setPortFingerFull(int val) {
+ sendController(_currentChannel, CTRL_PORTAMODE, val);
+}
+void DeicsOnzeGui::setPortaTime(int val) {
+ sendController(_currentChannel, CTRL_PORTATIME, val);
+}
+
+//---------------------------------------------------------------
+// envelope controle
+//---------------------------------------------------------------
+void DeicsOnzeGui::setAR1(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[0]);
+ //printf("ar : %d, d1r : %d, d1l : %d, d2r : %d, rr : %d\n",
+ // val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[0]->env2Points(val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[0]->updateEnv();
+ sendController(_currentChannel, CTRL_AR, val);
+}
+void DeicsOnzeGui::setD1R1(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[0]);
+ envelopeGraph[0]->env2Points(_eg->ar, val, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[0]->updateEnv();
+ sendController(_currentChannel, CTRL_D1R, val);
+}
+void DeicsOnzeGui::setD1L1(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[0]);
+ envelopeGraph[0]->env2Points(_eg->ar, _eg->d1r, val, _eg->d2r, _eg->rr);
+ envelopeGraph[0]->updateEnv();
+ sendController(_currentChannel, CTRL_D1L, val);
+}
+void DeicsOnzeGui::setD2R1(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[0]);
+ envelopeGraph[0]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, val, _eg->rr);
+ envelopeGraph[0]->updateEnv();
+ sendController(_currentChannel, CTRL_D2R, val);
+}
+void DeicsOnzeGui::setRR1(int val){
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[0]);
+ envelopeGraph[0]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, val);
+ envelopeGraph[0]->updateEnv();
+ sendController(_currentChannel, CTRL_RR, val);
+}
+void DeicsOnzeGui::setAR2(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[1]);
+ envelopeGraph[1]->env2Points(val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[1]->updateEnv();
+ sendController(_currentChannel, CTRL_AR+DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1R2(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[1]);
+ envelopeGraph[1]->env2Points(_eg->ar, val, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[1]->updateEnv();
+ sendController(_currentChannel, CTRL_D1R+DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1L2(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[1]);
+ envelopeGraph[1]->env2Points(_eg->ar, _eg->d1r, val, _eg->d2r, _eg->rr);
+ envelopeGraph[1]->updateEnv();
+ sendController(_currentChannel, CTRL_D1L+DECAPAR1, val);
+}
+void DeicsOnzeGui::setD2R2(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[1]);
+ envelopeGraph[1]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, val, _eg->rr);
+ envelopeGraph[1]->updateEnv();
+ sendController(_currentChannel, CTRL_D2R+DECAPAR1, val);
+}
+void DeicsOnzeGui::setRR2(int val){
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[1]);
+ envelopeGraph[1]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, val);
+ envelopeGraph[1]->updateEnv();
+ sendController(_currentChannel, CTRL_RR+DECAPAR1, val);
+}
+void DeicsOnzeGui::setAR3(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[2]);
+ envelopeGraph[2]->env2Points(val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[2]->updateEnv();
+ sendController(_currentChannel, CTRL_AR+2*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1R3(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[2]);
+ envelopeGraph[2]->env2Points(_eg->ar, val, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[2]->updateEnv();
+ sendController(_currentChannel, CTRL_D1R+2*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1L3(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[2]);
+ envelopeGraph[2]->env2Points(_eg->ar, _eg->d1r, val, _eg->d2r, _eg->rr);
+ envelopeGraph[2]->updateEnv();
+ sendController(_currentChannel, CTRL_D1L+2*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD2R3(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[2]);
+ envelopeGraph[2]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, val, _eg->rr);
+ envelopeGraph[2]->updateEnv();
+ sendController(_currentChannel, CTRL_D2R+2*DECAPAR1, val);
+}
+void DeicsOnzeGui::setRR3(int val){
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[2]);
+ envelopeGraph[2]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, val);
+ envelopeGraph[2]->updateEnv();
+ sendController(_currentChannel, CTRL_RR+2*DECAPAR1, val);
+}
+void DeicsOnzeGui::setAR4(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[3]);
+ envelopeGraph[3]->env2Points(val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[3]->updateEnv();
+ sendController(_currentChannel, CTRL_AR+3*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1R4(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[3]);
+ envelopeGraph[3]->env2Points(_eg->ar, val, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[3]->updateEnv();
+ sendController(_currentChannel, CTRL_D1R+3*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD1L4(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[3]);
+ envelopeGraph[3]->env2Points(_eg->ar, _eg->d1r, val, _eg->d2r, _eg->rr);
+ envelopeGraph[3]->updateEnv();
+ sendController(_currentChannel, CTRL_D1L+3*DECAPAR1, val);
+}
+void DeicsOnzeGui::setD2R4(int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[3]);
+ envelopeGraph[3]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, val, _eg->rr);
+ envelopeGraph[3]->updateEnv();
+ sendController(_currentChannel, CTRL_D2R+3*DECAPAR1, val);
+}
+void DeicsOnzeGui::setRR4(int val){
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[3]);
+ envelopeGraph[3]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, val);
+ envelopeGraph[3]->updateEnv();
+ sendController(_currentChannel, CTRL_RR+3*DECAPAR1, val);
+}
+
+//--------------------------------------------------------------
+// set Scaling
+//--------------------------------------------------------------
+void DeicsOnzeGui::setLS1(int val){sendController(_currentChannel, CTRL_LS, val);}
+void DeicsOnzeGui::setRS1(int val){sendController(_currentChannel, CTRL_RS, val);}
+void DeicsOnzeGui::setLS2(int val){sendController(_currentChannel, CTRL_LS+DECAPAR1, val);}
+void DeicsOnzeGui::setRS2(int val){sendController(_currentChannel, CTRL_RS+DECAPAR1, val);}
+void DeicsOnzeGui::setLS3(int val){sendController(_currentChannel, CTRL_LS+2*DECAPAR1, val);}
+void DeicsOnzeGui::setRS3(int val){sendController(_currentChannel, CTRL_RS+2*DECAPAR1, val);}
+void DeicsOnzeGui::setLS4(int val){sendController(_currentChannel, CTRL_LS+3*DECAPAR1, val);}
+void DeicsOnzeGui::setRS4(int val){sendController(_currentChannel, CTRL_RS+3*DECAPAR1, val);}
+
+//--------------------------------------------------------------
+// set Volume
+//--------------------------------------------------------------
+void DeicsOnzeGui::setVol1(int val){sendController(_currentChannel, CTRL_OUT, val);}
+void DeicsOnzeGui::setVol2(int val){sendController(_currentChannel, CTRL_OUT+DECAPAR1, val);}
+void DeicsOnzeGui::setVol3(int val){sendController(_currentChannel,CTRL_OUT+2*DECAPAR1,val);}
+void DeicsOnzeGui::setVol4(int val){sendController(_currentChannel,CTRL_OUT+3*DECAPAR1,val);}
+
+//--------------------------------------------------------------
+// set Ratio and Frequency
+//--------------------------------------------------------------
+void DeicsOnzeGui::setCoarseRatio1(int val) {
+ sendController(_currentChannel, CTRL_RATIO, val*100+FineRatio1SpinBox->value());
+}
+void DeicsOnzeGui::setFineRatio1(int val) {
+ sendController(_currentChannel, CTRL_RATIO, val+CoarseRatio1SpinBox->value()*100);
+}
+void DeicsOnzeGui::setFreq1(int val) {
+ sendController(_currentChannel,CTRL_FIXRANGE,val*100);}
+void DeicsOnzeGui::setFix1(bool f) {
+ sendController(_currentChannel, CTRL_FIX, (f==false?0:1));}
+void DeicsOnzeGui::setCoarseRatio2(int val) {
+ sendController(_currentChannel, CTRL_RATIO+DECAPAR1, val*100+FineRatio2SpinBox->value());
+}
+void DeicsOnzeGui::setFineRatio2(int val) {
+ sendController(_currentChannel,CTRL_RATIO+DECAPAR1,val+CoarseRatio2SpinBox->value()*100);
+}
+void DeicsOnzeGui::setFreq2(int val) {
+ sendController(_currentChannel,CTRL_FIXRANGE+DECAPAR2,val*100);}
+void DeicsOnzeGui::setFix2(bool f) {
+ sendController(_currentChannel, CTRL_FIX+DECAPAR2, (f==false?0:1));}
+void DeicsOnzeGui::setCoarseRatio3(int val) {
+ sendController(_currentChannel,CTRL_RATIO+2*DECAPAR1,val*100+FineRatio3SpinBox->value());
+}
+void DeicsOnzeGui::setFineRatio3(int val) {
+ sendController(_currentChannel,CTRL_RATIO+2*DECAPAR1,
+ val+CoarseRatio3SpinBox->value()*100);
+}
+void DeicsOnzeGui::setFreq3(int val) {
+ sendController(_currentChannel,CTRL_FIXRANGE+2*DECAPAR2,val*100);}
+void DeicsOnzeGui::setFix3(bool f) {
+ sendController(_currentChannel, CTRL_FIX+2*DECAPAR2, (f==false?0:1));}
+void DeicsOnzeGui::setCoarseRatio4(int val) {
+ sendController(_currentChannel,CTRL_RATIO+3*DECAPAR1,val*100+FineRatio4SpinBox->value());
+}
+void DeicsOnzeGui::setFineRatio4(int val) {
+ sendController(_currentChannel,CTRL_RATIO+3*DECAPAR1,
+ val+CoarseRatio4SpinBox->value()*100);
+}
+void DeicsOnzeGui::setFreq4(int val) {
+ sendController(_currentChannel,CTRL_FIXRANGE+3*DECAPAR2,val*100);}
+void DeicsOnzeGui::setFix4(bool f) {
+ sendController(_currentChannel, CTRL_FIX+3*DECAPAR2, (f==false?0:1));}
+
+//--------------------------------------------------------------
+// set Sensitivity
+//--------------------------------------------------------------
+void DeicsOnzeGui::setAME1(bool val) {sendController(_currentChannel, CTRL_AME, val);}
+void DeicsOnzeGui::setEBS1(int val) {sendController(_currentChannel, CTRL_EBS, val);}
+void DeicsOnzeGui::setKVS1(int val) {sendController(_currentChannel, CTRL_KVS, val);}
+void DeicsOnzeGui::setAME2(bool val) {sendController(_currentChannel,CTRL_AME+DECAPAR1,val);}
+void DeicsOnzeGui::setEBS2(int val) {sendController(_currentChannel,CTRL_EBS+DECAPAR1,val);}
+void DeicsOnzeGui::setKVS2(int val) {sendController(_currentChannel,CTRL_KVS+DECAPAR1,val);}
+void DeicsOnzeGui::setAME3(bool val) {
+ sendController(_currentChannel,CTRL_AME+2*DECAPAR1,val);}
+void DeicsOnzeGui::setEBS3(int val) {
+ sendController(_currentChannel, CTRL_EBS+2*DECAPAR1, val);}
+void DeicsOnzeGui::setKVS3(int val) {
+ sendController(_currentChannel, CTRL_KVS+2*DECAPAR1, val);}
+void DeicsOnzeGui::setAME4(bool val) {
+ sendController(_currentChannel, CTRL_AME+3*DECAPAR1, val);}
+void DeicsOnzeGui::setEBS4(int val) {
+ sendController(_currentChannel, CTRL_EBS+3*DECAPAR1, val);}
+void DeicsOnzeGui::setKVS4(int val) {
+ sendController(_currentChannel, CTRL_KVS+3*DECAPAR1, val);}
+
+//--------------------------------------------------------------
+// set detune
+//--------------------------------------------------------------
+void DeicsOnzeGui::setDET1(int val){sendController(_currentChannel, CTRL_DET, val);}
+void DeicsOnzeGui::setDET2(int val){sendController(_currentChannel, CTRL_DET+DECAPAR1, val);}
+void DeicsOnzeGui::setDET3(int val){sendController(_currentChannel,CTRL_DET+2*DECAPAR1,val);}
+void DeicsOnzeGui::setDET4(int val){sendController(_currentChannel,CTRL_DET+3*DECAPAR1,val);}
+
+//--------------------------------------------------------------
+// set WaveForm
+//--------------------------------------------------------------
+void DeicsOnzeGui::setWaveForm1(int w) {
+ sendController(_currentChannel, CTRL_OSW, w);
+}
+void DeicsOnzeGui::setWaveForm2(int w) {
+ sendController(_currentChannel, CTRL_OSW+DECAPAR2, w);
+}
+void DeicsOnzeGui::setWaveForm3(int w) {
+ sendController(_currentChannel, CTRL_OSW+2*DECAPAR2, w);
+}
+void DeicsOnzeGui::setWaveForm4(int w) {
+ sendController(_currentChannel, CTRL_OSW+3*DECAPAR2, w);
+}
+//--------------------------------------------------------------
+// set delay
+//--------------------------------------------------------------
+void DeicsOnzeGui::setActivDelay(bool a) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_DELAYACTIV;
+ message[1]=(unsigned char)a;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setDelayReturn(int r) {
+ unsigned char* message = new unsigned char[2];
+ message[0]=SYSEX_DELAYRETURN;
+ message[1]=(unsigned char)r;
+ sendSysex(message, 2);
+}
+void DeicsOnzeGui::setChannelDelay(int d) {
+ sendController(_currentChannel, CTRL_VARIATION_SEND, (unsigned char)d);
+}
+//void DeicsOnzeGui::setDelayTime(int t) {
+// unsigned char* message = new unsigned char[2];
+// message[0]=SYSEX_DELAYTIME;
+// message[1]=(unsigned char)t;
+// sendSysex(message, 2);
+// updateDelayTime(t);
+//}
+void DeicsOnzeGui::setDelayBPM(double t) {
+ //int it = (int)(((t - MINDELAYTIME) / (MAXDELAYTIME - MINDELAYTIME))*255.0);
+ unsigned char* message = new unsigned char[sizeof(float)+1];
+ message[0]=SYSEX_DELAYBPM;
+ float f = (float)t;
+ memcpy(&message[1], &f, sizeof(float));
+ message[1]=(unsigned char)f;
+ sendSysex(message, sizeof(float)+1);
+ //updateDelayTime(it);
+}
+void DeicsOnzeGui::setDelayBeatRatio(double t) {
+ unsigned char* message = new unsigned char[sizeof(float)+1];
+ message[0]=SYSEX_DELAYBEATRATIO;
+ float f = (float)t;
+ memcpy(&message[1], &f, sizeof(float));
+ message[1]=(unsigned char)f;
+ sendSysex(message, sizeof(float)+1);
+}
+//void DeicsOnzeGui::setDelayFeedback(int f) {
+// unsigned char* message = new unsigned char[2];
+// message[0]=SYSEX_DELAYFEEDBACK;
+// message[1]=(unsigned char)f;
+// sendSysex(message, 2);
+// updateDelayFeedback(f);
+//}
+void DeicsOnzeGui::setDelayFeedback(double t) {
+ //int idf = (int)(f*128.0+128.0);
+ unsigned char* message = new unsigned char[sizeof(float)+1];
+ message[0]=SYSEX_DELAYFEEDBACK;
+ float f = (float)t;
+ memcpy(&message[1], &f, sizeof(float));
+ sendSysex(message, sizeof(float)+1);
+ //updateDelayFeedback(idf);
+}
+//void DeicsOnzeGui::setDelayPanLFOFreq(int pf) {
+// unsigned char* message = new unsigned char[2];
+// message[0]=SYSEX_DELAYLFOFREQ;
+// message[1]=(unsigned char)pf;
+// sendSysex(message, 2);
+// updateDelayPanLFOFreq(pf);
+//}
+void DeicsOnzeGui::setDelayPanLFOFreq(double pf) {
+ //int ipf = (int)(((pf - MINFREQ) / (MAXFREQ - MINFREQ))*255.0);
+ unsigned char* message = new unsigned char[sizeof(float)+1];
+ message[0]=SYSEX_DELAYLFOFREQ;
+ float f = (float)pf;
+ memcpy(&message[1], &f, sizeof(float));
+ sendSysex(message, sizeof(float)+1);
+ //updateDelayPanLFOFreq(ipf);
+}
+//void DeicsOnzeGui::setDelayPanLFODepth(int pd) {
+// unsigned char* message = new unsigned char[2];
+// message[0]=SYSEX_DELAYLFODEPTH;
+// message[1]=(unsigned char)pd;
+// sendSysex(message, 2);
+// updateDelayPanLFODepth(pd);
+//}
+void DeicsOnzeGui::setDelayPanLFODepth(double pd) {
+ //int ipd = (int)(pd*255.0);
+ unsigned char* message = new unsigned char[sizeof(float)+1];
+ message[0]=SYSEX_DELAYLFODEPTH;
+ float f = (float)pd;
+ memcpy(&message[1], &f, sizeof(float));
+ sendSysex(message, sizeof(float)+1);
+ //updateDelayPanLFODepth(ipd);
+}
+
+
+//--------------------------------------------------------------
+// setSet
+// Display the set, that is the category list
+//--------------------------------------------------------------
+void DeicsOnzeGui::setSet() {
+ categoryListView->clear();
+ hbankSpinBox->setEnabled(false);
+ categoryLineEdit->setEnabled(false);
+ for(std::vector<Category*>::iterator
+ i=_deicsOnze->_set->_categoryVector.begin();
+ i!=_deicsOnze->_set->_categoryVector.end(); i++)
+ (void) new QTreeCategory
+ (categoryListView, num3Digits((*i)->_hbank+1),
+ (*i)->_categoryName.c_str(), *i);
+ categoryListView->resizeColumnToContents(0);
+ categoryListView->sortItems(0,Qt::AscendingOrder);
+}
+
+//--------------------------------------------------------------
+// setCategory
+//--------------------------------------------------------------
+void DeicsOnzeGui::setCategory(Category* cat) {
+ subcategoryListView->clear();
+ lbankSpinBox->setEnabled(false);
+ subcategoryLineEdit->setEnabled(false);
+ for(std::vector<Subcategory*>::iterator i=cat->_subcategoryVector.begin();
+ i!=cat->_subcategoryVector.end(); i++)
+ (void) new QTreeSubcategory(subcategoryListView,
+ num3Digits((*i)->_lbank+1),
+ (*i)->_subcategoryName.c_str(),*i);
+ subcategoryListView->resizeColumnToContents(0);
+ subcategoryListView->sortItems(0,Qt::AscendingOrder);
+}
+void DeicsOnzeGui::setCategory(QTreeWidgetItem* cat) {
+ QTreeCategory* ccat = (QTreeCategory*) categoryListView->currentItem();
+ if(cat) {
+ categoryLineEdit->setEnabled(true);
+ hbankSpinBox->setEnabled(true);
+ categoryLineEdit
+ ->setText(((QTreeCategory*)cat)->_category->_categoryName.c_str());
+ hbankSpinBox->setValue(((QTreeCategory*)cat)->_category->_hbank+1);
+ ccat=(QTreeCategory*)cat;
+ setCategory(ccat->_category);
+ }
+}
+
+//--------------------------------------------------------------
+// setSubcategory
+//--------------------------------------------------------------
+void DeicsOnzeGui::setSubcategory(Subcategory* sub) {
+ presetListView->clear();
+ progSpinBox->setEnabled(false);
+ presetLineEdit->setEnabled(false);
+ for(std::vector<Preset*>::iterator i=sub->_presetVector.begin();
+ i!=sub->_presetVector.end(); i++)
+ (void) new QTreePreset(presetListView,
+ num3Digits((*i)->prog+1),
+ (*i)->name.c_str(),*i);
+ presetListView->resizeColumnToContents(0);
+ presetListView->sortItems(0,Qt::AscendingOrder);
+}
+void DeicsOnzeGui::setSubcategory(QTreeWidgetItem* sub) {
+ QTreeSubcategory* csub =
+ (QTreeSubcategory*) subcategoryListView->currentItem();
+ if(sub) {
+ subcategoryLineEdit->setEnabled(true);
+ lbankSpinBox->setEnabled(true);
+ subcategoryLineEdit->setText(((QTreeSubcategory*)sub)
+ ->_subcategory->_subcategoryName.c_str());
+ lbankSpinBox->setValue(((QTreeSubcategory*)sub)
+ ->_subcategory->_lbank+1);
+ csub=(QTreeSubcategory*)sub;
+ setSubcategory(csub->_subcategory);
+ }
+}
+//--------------------------------------------------------------
+// setPreset
+//--------------------------------------------------------------
+void DeicsOnzeGui::setPreset(QTreeWidgetItem* pre) {
+ if(pre) {
+ QTreePreset* cpre=(QTreePreset*)pre;
+ updatePresetName(cpre->_preset->name.c_str(), true);
+ updateProg(cpre->_preset->prog, true);
+ int prog = cpre->_preset->prog;
+ int lbank = cpre->_preset->_subcategory->_lbank;
+ int hbank = cpre->_preset->_subcategory->_category->_hbank;
+ setEnabledPreset(true);
+ updatePreset(cpre->_preset);
+ sendController(_currentChannel, CTRL_PROGRAM, (hbank<<16)+(lbank<<8)+prog);
+ }
+}
+//--------------------------------------------------------------
+// update the gui
+//--------------------------------------------------------------
+void DeicsOnzeGui::setEnabledPreset(bool b) {
+ if(_enabledPreset!=b) {
+ FeedbackGroupBox->setEnabled(b);
+ LFOGroupBox->setEnabled(b);
+ pitchEnvGroupBox->setEnabled(b);
+ ModulationMatrixGroupBox->setEnabled(b);
+ Op1Tab->setEnabled(b);
+ Op2Tab->setEnabled(b);
+ Op3Tab->setEnabled(b);
+ Op4Tab->setEnabled(b);
+ FunctionsTab->setEnabled(b);
+ chorusTab->setEnabled(b);
+ reverbTab->setEnabled(b);
+
+ _enabledPreset=b;
+ }
+}
+void DeicsOnzeGui::updateChannelEnable(bool e) {
+ updateChannelCheckBox(e);
+ updateEnabledChannel(e);
+}
+void DeicsOnzeGui::updateEnabledChannel(bool e) {
+ numberVoicesLabel->setEnabled(e);
+ nbrVoicesSpinBox->setEnabled(e);
+ channelCtrlGroupBox->setEnabled(e);
+ deicsOnzeTabWidget->setEnabled(e);
+}
+void DeicsOnzeGui::updateNbrVoices(int val) {
+ nbrVoicesSpinBox->blockSignals(true);
+ nbrVoicesSpinBox->setValue(val);
+ nbrVoicesSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateMasterVolume(int val) {
+ double d = (double)val/(double)MAXMASTERVOLUME;
+ //printf("D = %d, %f\n", val, d);
+ masterVolKnob->blockSignals(true);
+ masterVolKnob->setValue(d);
+ masterVolKnob->blockSignals(false);
+}
+//void DeicsOnzeGui::updateMidiInCh(int val) {
+ //MidiInChComboBox->blockSignals(true);
+ //MidiInChComboBox->setCurrentIndex(val);
+ //MidiInChComboBox->blockSignals(false);
+//}
+void DeicsOnzeGui::updateQuality(int val) {
+ qualityComboBox->blockSignals(true);
+ qualityComboBox->setCurrentIndex(val);
+ qualityComboBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateFilter(bool f) {
+ filterCheckBox->blockSignals(true);
+ filterCheckBox->setChecked(f);
+ filterCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateFontSize(int val) {
+ fontSizeSpinBox->blockSignals(true);
+ fontSizeSpinBox->setValue(val);
+ fontSizeSpinBox->blockSignals(false);
+}
+//FX
+void DeicsOnzeGui::updateChorusActiv(bool a) {
+ chorusActivCheckBox->blockSignals(true);
+ chorusActivCheckBox->setChecked(a);
+ chorusActivCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateChannelChorus(int c) {
+ chChorusSlider->blockSignals(true);
+ chChorusSlider->setValue(c);
+ chChorusSlider->blockSignals(false);
+ chChorusSpinBox->blockSignals(true);
+ chChorusSpinBox->setValue(c);
+ chChorusSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateChorusReturn(int r) {
+ returnChorusSlider->blockSignals(true);
+ returnChorusSlider->setValue(r);
+ returnChorusSlider->blockSignals(false);
+}
+/*void DeicsOnzeGui::updatePanChorus1(int c) {
+ panChorus1Knob->blockSignals(true);
+ panChorus1Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ panChorus1Knob->blockSignals(false);
+}
+void DeicsOnzeGui::updateLFOFreqChorus1(int c) {
+ LFOFreqChorus1Knob->blockSignals(true);
+ LFOFreqChorus1Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ LFOFreqChorus1Knob->blockSignals(false);
+}
+void DeicsOnzeGui::updateDepthChorus1(int c) {
+ depthChorus1Knob->blockSignals(true);
+ depthChorus1Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ depthChorus1Knob->blockSignals(false);
+}
+void DeicsOnzeGui::updatePanChorus2(int c) {
+ panChorus2Knob->blockSignals(true);
+ panChorus2Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ panChorus2Knob->blockSignals(false);
+}
+void DeicsOnzeGui::updateLFOFreqChorus2(int c) {
+ LFOFreqChorus2Knob->blockSignals(true);
+ LFOFreqChorus2Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ LFOFreqChorus2Knob->blockSignals(false);
+}
+void DeicsOnzeGui::updateDepthChorus2(int c) {
+ depthChorus2Knob->blockSignals(true);
+ depthChorus2Knob->setValue((double)c/(double)MAXCHORUSPARAM);
+ depthChorus2Knob->blockSignals(false);
+ }*/
+void DeicsOnzeGui::updateReverbActiv(bool a) {
+ reverbActivCheckBox->blockSignals(true);
+ reverbActivCheckBox->setChecked(a);
+ reverbActivCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateChannelReverb(int r) {
+ chReverbSlider->blockSignals(true);
+ chReverbSlider->setValue(r);
+ chReverbSlider->blockSignals(false);
+ chReverbSpinBox->blockSignals(true);
+ chReverbSpinBox->setValue(r);
+ chReverbSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateReverbReturn(int r) {
+ returnReverbSlider->blockSignals(true);
+ returnReverbSlider->setValue(r);
+ returnReverbSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateLadspaReverbLineEdit(QString s) {
+ selectLadspaReverbLineEdit->blockSignals(true);
+ selectLadspaReverbLineEdit->setText(s);
+ selectLadspaReverbLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::updateLadspaChorusLineEdit(QString s) {
+ selectLadspaChorusLineEdit->blockSignals(true);
+ selectLadspaChorusLineEdit->setText(s);
+ selectLadspaChorusLineEdit->blockSignals(false);
+}
+
+void DeicsOnzeGui::updateDelayActiv(bool a) {
+ delayActivCheckBox->blockSignals(true);
+ delayActivCheckBox->setChecked(a);
+ delayActivCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateChannelDelay(int r) {
+ chDelaySlider->blockSignals(true);
+ chDelaySlider->setValue(r);
+ chDelaySlider->blockSignals(false);
+ chDelaySpinBox->blockSignals(true);
+ chDelaySpinBox->setValue(r);
+ chDelaySpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayReturn(int r) {
+ delayReturnSlider->blockSignals(true);
+ delayReturnSlider->setValue(r);
+ delayReturnSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayPanLFOFreq(float plf) {
+ delayPanLFOFreqKnob->blockSignals(true);
+ delayPanLFOFreqKnob->setValue((double)plf);
+ delayPanLFOFreqKnob->blockSignals(false);
+ delayPanLFOFreqFloatentry->blockSignals(true);
+ delayPanLFOFreqFloatentry->setValue((double)plf);
+ delayPanLFOFreqFloatentry->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayBPM(float dt) {
+ delayBPMKnob->blockSignals(true);
+ delayBPMKnob->setValue((double)dt);
+ delayBPMKnob->blockSignals(false);
+ delayBPMFloatentry->blockSignals(true);
+ delayBPMFloatentry->setValue((double)dt);
+ delayBPMFloatentry->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayBeatRatio(float dt) {
+ delayBeatRatioKnob->blockSignals(true);
+ delayBeatRatioKnob->setValue((double)dt);
+ delayBeatRatioKnob->blockSignals(false);
+ delayBeatRatioFloatentry->blockSignals(true);
+ delayBeatRatioFloatentry->setValue((double)dt);
+ delayBeatRatioFloatentry->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayFeedback(float df) {
+ delayFeedbackKnob->blockSignals(true);
+ delayFeedbackKnob->setValue((double)df);
+ delayFeedbackKnob->blockSignals(false);
+ delayFeedbackFloatentry->blockSignals(true);
+ delayFeedbackFloatentry->setValue((double)df);
+ delayFeedbackFloatentry->blockSignals(false);
+}
+void DeicsOnzeGui::updateDelayPanLFODepth(float dpd) {
+ delayPanLFODepthKnob->blockSignals(true);
+ delayPanLFODepthKnob->setValue((double)dpd);
+ delayPanLFODepthKnob->blockSignals(false);
+ delayPanLFODepthFloatentry->blockSignals(true);
+ delayPanLFODepthFloatentry->setValue((double)dpd);
+ delayPanLFODepthFloatentry->blockSignals(false);
+}
+
+void DeicsOnzeGui::applyFontSize(int fs) {
+ QFont f = font();
+ f.setPointSize(fs);
+ setFont(f);
+}
+void DeicsOnzeGui::updateSaveConfig(bool usc) {
+ saveConfigCheckBox->blockSignals(true);
+ saveConfigCheckBox->setChecked(usc);
+ saveConfigCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateSaveOnlyUsed(bool usou) {
+ hugeSaveRadioButton->blockSignals(true);
+ hugeSaveRadioButton->setChecked(!usou);
+ hugeSaveRadioButton->blockSignals(false);
+ minSaveRadioButton->blockSignals(true);
+ minSaveRadioButton->setChecked(usou);
+ minSaveRadioButton->blockSignals(false);
+}
+//Pitch Envelope
+void DeicsOnzeGui::updatePL1(int val) {
+ PL1SpinBox->blockSignals(true);
+ PL1SpinBox->setValue(val);
+ PL1SpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePL2(int val) {
+ PL2SpinBox->blockSignals(true);
+ PL2SpinBox->setValue(val);
+ PL2SpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePL3(int val) {
+ PL3SpinBox->blockSignals(true);
+ PL3SpinBox->setValue(val);
+ PL3SpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePR1(int val) {
+ PR1SpinBox->blockSignals(true);
+ PR1SpinBox->setValue(val);
+ PR1SpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePR2(int val) {
+ PR2SpinBox->blockSignals(true);
+ PR2SpinBox->setValue(val);
+ PR2SpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePR3(int val) {
+ PR3SpinBox->blockSignals(true);
+ PR3SpinBox->setValue(val);
+ PR3SpinBox->blockSignals(false);
+}
+//Function
+void DeicsOnzeGui::updateFcVolume(int val) {
+ fcVolumeSpinBox->blockSignals(true);
+ fcVolumeSpinBox->setValue(val);
+ fcVolumeSpinBox->blockSignals(false);
+ fcVolumeSlider->blockSignals(true);
+ fcVolumeSlider->setValue(val);
+ fcVolumeSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateFcPitch(int val) {
+ fcPitchSpinBox->blockSignals(true);
+ fcPitchSpinBox->setValue(val);
+ fcPitchSpinBox->blockSignals(false);
+ fcPitchSlider->blockSignals(true);
+ fcPitchSlider->setValue(val);
+ fcPitchSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateFcAmplitude(int val) {
+ fcAmplitudeSpinBox->blockSignals(true);
+ fcAmplitudeSpinBox->setValue(val);
+ fcAmplitudeSpinBox->blockSignals(false);
+ fcAmplitudeSlider->blockSignals(true);
+ fcAmplitudeSlider->setValue(val);
+ fcAmplitudeSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateMwPitch(int val) {
+ mwPitchSpinBox->blockSignals(true);
+ mwPitchSpinBox->setValue(val);
+ mwPitchSpinBox->blockSignals(false);
+ mwPitchSlider->blockSignals(true);
+ mwPitchSlider->setValue(val);
+ mwPitchSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateMwAmplitude(int val) {
+ mwAmplitudeSpinBox->blockSignals(true);
+ mwAmplitudeSpinBox->setValue(val);
+ mwAmplitudeSpinBox->blockSignals(false);
+ mwAmplitudeSlider->blockSignals(true);
+ mwAmplitudeSlider->setValue(val);
+ mwAmplitudeSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateBcPitch(int val) {
+ bcPitchSpinBox->blockSignals(true);
+ bcPitchSpinBox->setValue(val);
+ bcPitchSpinBox->blockSignals(false);
+ bcPitchSlider->blockSignals(true);
+ bcPitchSlider->setValue(val);
+ bcPitchSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateBcAmplitude(int val) {
+ bcAmplitudeSpinBox->blockSignals(true);
+ bcAmplitudeSpinBox->setValue(val);
+ bcAmplitudeSpinBox->blockSignals(false);
+ bcAmplitudeSlider->blockSignals(true);
+ bcAmplitudeSlider->setValue(val);
+ bcAmplitudeSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateBcPitchBias(int val) {
+ bcPitchBiasSpinBox->blockSignals(true);
+ bcPitchBiasSpinBox->setValue(val);
+ bcPitchBiasSpinBox->blockSignals(false);
+ bcPitchBiasSlider->blockSignals(true);
+ bcPitchBiasSlider->setValue(val);
+ bcPitchBiasSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateBcEgBias(int val) {
+ bcEgBiasSpinBox->blockSignals(true);
+ bcEgBiasSpinBox->setValue(val);
+ bcEgBiasSpinBox->blockSignals(false);
+ bcEgBiasSlider->blockSignals(true);
+ bcEgBiasSlider->setValue(val);
+ bcEgBiasSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateAtPitch(int val) {
+ atPitchSpinBox->blockSignals(true);
+ atPitchSpinBox->setValue(val);
+ atPitchSpinBox->blockSignals(false);
+ atPitchSlider->blockSignals(true);
+ atPitchSlider->setValue(val);
+ atPitchSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateAtAmplitude(int val) {
+ atAmplitudeSpinBox->blockSignals(true);
+ atAmplitudeSpinBox->setValue(val);
+ atAmplitudeSpinBox->blockSignals(false);
+ atAmplitudeSlider->blockSignals(true);
+ atAmplitudeSlider->setValue(val);
+ atAmplitudeSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateAtPitchBias(int val) {
+ atPitchBiasSpinBox->blockSignals(true);
+ atPitchBiasSpinBox->setValue(val);
+ atPitchBiasSpinBox->blockSignals(false);
+ atPitchBiasSlider->blockSignals(true);
+ atPitchBiasSlider->setValue(val);
+ atPitchBiasSlider->blockSignals(false);
+}
+void DeicsOnzeGui::updateAtEgBias(int val) {
+ atEgBiasSpinBox->blockSignals(true);
+ atEgBiasSpinBox->setValue(val);
+ atEgBiasSpinBox->blockSignals(false);
+ atEgBiasSlider->blockSignals(true);
+ atEgBiasSlider->setValue(val);
+ atEgBiasSlider->blockSignals(false);
+}
+//void DeicsOnzeGui::updateReverbRate(int val) {
+ //reverbSpinBox->blockSignals(true);
+ //reverbSpinBox->setValue(val);
+ //reverbSpinBox->blockSignals(false);
+ //reverbSlider->blockSignals(true);
+ //reverbSlider->setValue(val);
+ //reverbSlider->blockSignals(false);
+//}
+//Envelope
+void DeicsOnzeGui::updateAR(int op, int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[op]);
+ envelopeGraph[op]->env2Points(val, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[op]->updateEnv();
+ switch(op) {
+ case 0:
+ AR1SpinBox->blockSignals(true);
+ AR1SpinBox->setValue(val);
+ AR1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ AR2SpinBox->blockSignals(true);
+ AR2SpinBox->setValue(val);
+ AR2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ AR3SpinBox->blockSignals(true);
+ AR3SpinBox->setValue(val);
+ AR3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ AR4SpinBox->blockSignals(true);
+ AR4SpinBox->setValue(val);
+ AR4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateAR : Error switch\n");
+ }
+}
+
+void DeicsOnzeGui::updateD1R(int op, int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[op]);
+ envelopeGraph[op]->env2Points(_eg->ar, val, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[op]->updateEnv();
+ switch(op) {
+ case 0:
+ D1R1SpinBox->blockSignals(true);
+ D1R1SpinBox->setValue(val);
+ D1R1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ D1R2SpinBox->blockSignals(true);
+ D1R2SpinBox->setValue(val);
+ D1R2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ D1R3SpinBox->blockSignals(true);
+ D1R3SpinBox->setValue(val);
+ D1R3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ D1R4SpinBox->blockSignals(true);
+ D1R4SpinBox->setValue(val);
+ D1R4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateD1R : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateD2R(int op, int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[op]);
+ envelopeGraph[op]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, val, _eg->rr);
+ envelopeGraph[op]->updateEnv();
+ switch(op) {
+ case 0:
+ D2R1SpinBox->blockSignals(true);
+ D2R1SpinBox->setValue(val);
+ D2R1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ D2R2SpinBox->blockSignals(true);
+ D2R2SpinBox->setValue(val);
+ D2R2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ D2R3SpinBox->blockSignals(true);
+ D2R3SpinBox->setValue(val);
+ D2R3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ D2R4SpinBox->blockSignals(true);
+ D2R4SpinBox->setValue(val);
+ D2R4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateD2R : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateRR(int op, int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[op]);
+ envelopeGraph[op]->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, val);
+ envelopeGraph[op]->updateEnv();
+ switch(op) {
+ case 0:
+ RR1SpinBox->blockSignals(true);
+ RR1SpinBox->setValue(val);
+ RR1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ RR2SpinBox->blockSignals(true);
+ RR2SpinBox->setValue(val);
+ RR2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ RR3SpinBox->blockSignals(true);
+ RR3SpinBox->setValue(val);
+ RR3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ RR4SpinBox->blockSignals(true);
+ RR4SpinBox->setValue(val);
+ RR4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateRR : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateD1L(int op, int val) {
+ Eg* _eg=&(_deicsOnze->_preset[_currentChannel]->eg[op]);
+ envelopeGraph[op]->env2Points(_eg->ar, _eg->d1r, val, _eg->d2r, _eg->rr);
+ envelopeGraph[op]->updateEnv();
+ switch(op) {
+ case 0:
+ D1L1SpinBox->blockSignals(true);
+ D1L1SpinBox->setValue(val);
+ D1L1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ D1L2SpinBox->blockSignals(true);
+ D1L2SpinBox->setValue(val);
+ D1L2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ D1L3SpinBox->blockSignals(true);
+ D1L3SpinBox->setValue(val);
+ D1L3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ D1L4SpinBox->blockSignals(true);
+ D1L4SpinBox->setValue(val);
+ D1L4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateD1L : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateLS(int op, int val) {
+ switch(op) {
+ case 0:
+ LS1Slider->blockSignals(true);
+ LS1Slider->setValue(val);
+ LS1Slider->blockSignals(false);
+ LS1SpinBox->blockSignals(true);
+ LS1SpinBox->setValue(val);
+ LS1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ LS2Slider->blockSignals(true);
+ LS2Slider->setValue(val);
+ LS2Slider->blockSignals(false);
+ LS2SpinBox->blockSignals(true);
+ LS2SpinBox->setValue(val);
+ LS2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ LS3Slider->blockSignals(true);
+ LS3Slider->setValue(val);
+ LS3Slider->blockSignals(false);
+ LS3SpinBox->blockSignals(true);
+ LS3SpinBox->setValue(val);
+ LS3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ LS4Slider->blockSignals(true);
+ LS4Slider->setValue(val);
+ LS4Slider->blockSignals(false);
+ LS4SpinBox->blockSignals(true);
+ LS4SpinBox->setValue(val);
+ LS4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateLS : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateRS(int op, int val) {
+ switch(op) {
+ case 0:
+ RS1Slider->blockSignals(true);
+ RS1Slider->setValue(val);
+ RS1Slider->blockSignals(false);
+ RS1SpinBox->blockSignals(true);
+ RS1SpinBox->setValue(val);
+ RS1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ RS2Slider->blockSignals(true);
+ RS2Slider->setValue(val);
+ RS2Slider->blockSignals(false);
+ RS2SpinBox->blockSignals(true);
+ RS2SpinBox->setValue(val);
+ RS2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ RS3Slider->blockSignals(true);
+ RS3Slider->setValue(val);
+ RS3Slider->blockSignals(false);
+ RS3SpinBox->blockSignals(true);
+ RS3SpinBox->setValue(val);
+ RS3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ RS4Slider->blockSignals(true);
+ RS4Slider->setValue(val);
+ RS4Slider->blockSignals(false);
+ RS4SpinBox->blockSignals(true);
+ RS4SpinBox->setValue(val);
+ RS4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateRS : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateEBS(int op, int val) {
+ switch(op) {
+ case 0:
+ EBS1Slider->blockSignals(true);
+ EBS1Slider->setValue(val);
+ EBS1Slider->blockSignals(false);
+ EBS1SpinBox->blockSignals(true);
+ EBS1SpinBox->setValue(val);
+ EBS1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ EBS2Slider->blockSignals(true);
+ EBS2Slider->setValue(val);
+ EBS2Slider->blockSignals(false);
+ EBS2SpinBox->blockSignals(true);
+ EBS2SpinBox->setValue(val);
+ EBS2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ EBS3Slider->blockSignals(true);
+ EBS3Slider->setValue(val);
+ EBS3Slider->blockSignals(false);
+ EBS3SpinBox->blockSignals(true);
+ EBS3SpinBox->setValue(val);
+ EBS3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ EBS4Slider->blockSignals(true);
+ EBS4Slider->setValue(val);
+ EBS4Slider->blockSignals(false);
+ EBS4SpinBox->blockSignals(true);
+ EBS4SpinBox->setValue(val);
+ EBS4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateEBS : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateAME(int op, bool val) {
+ switch(op) {
+ case 0:
+ AME1CheckBox->blockSignals(true);
+ AME1CheckBox->setChecked(val);
+ AME1CheckBox->blockSignals(false);
+ break;
+ case 1:
+ AME2CheckBox->blockSignals(true);
+ AME2CheckBox->setChecked(val);
+ AME2CheckBox->blockSignals(false);
+ break;
+ case 2:
+ AME3CheckBox->blockSignals(true);
+ AME3CheckBox->setChecked(val);
+ AME3CheckBox->blockSignals(false);
+ break;
+ case 3:
+ AME4CheckBox->blockSignals(true);
+ AME4CheckBox->setChecked(val);
+ AME4CheckBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateAME : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateKVS(int op, int val) {
+ switch(op) {
+ case 0:
+ KVS1Slider->blockSignals(true);
+ KVS1Slider->setValue(val);
+ KVS1Slider->blockSignals(false);
+ KVS1SpinBox->blockSignals(true);
+ KVS1SpinBox->setValue(val);
+ KVS1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ KVS2Slider->blockSignals(true);
+ KVS2Slider->setValue(val);
+ KVS2Slider->blockSignals(false);
+ KVS2SpinBox->blockSignals(true);
+ KVS2SpinBox->setValue(val);
+ KVS2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ KVS3Slider->blockSignals(true);
+ KVS3Slider->setValue(val);
+ KVS3Slider->blockSignals(false);
+ KVS3SpinBox->blockSignals(true);
+ KVS3SpinBox->setValue(val);
+ KVS3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ KVS4Slider->blockSignals(true);
+ KVS4Slider->setValue(val);
+ KVS4Slider->blockSignals(false);
+ KVS4SpinBox->blockSignals(true);
+ KVS4SpinBox->setValue(val);
+ KVS4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateKVS : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateOUT(int op, int val) {
+ switch(op) {
+ case 0:
+ OUT1Slider->blockSignals(true);
+ OUT1Slider->setValue(val);
+ OUT1Slider->blockSignals(false);
+ OUT1SpinBox->blockSignals(true);
+ OUT1SpinBox->setValue(val);
+ OUT1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ OUT2Slider->blockSignals(true);
+ OUT2Slider->setValue(val);
+ OUT2Slider->blockSignals(false);
+ OUT2SpinBox->blockSignals(true);
+ OUT2SpinBox->setValue(val);
+ OUT2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ OUT3Slider->blockSignals(true);
+ OUT3Slider->setValue(val);
+ OUT3Slider->blockSignals(false);
+ OUT3SpinBox->blockSignals(true);
+ OUT3SpinBox->setValue(val);
+ OUT3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ OUT4Slider->blockSignals(true);
+ OUT4Slider->setValue(val);
+ OUT4Slider->blockSignals(false);
+ OUT4SpinBox->blockSignals(true);
+ OUT4SpinBox->setValue(val);
+ OUT4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateOUT : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateRATIO(int op, int val) {
+ switch(op) {
+ case 0:
+ CoarseRatio1SpinBox->blockSignals(true);
+ CoarseRatio1SpinBox->setValue(val/100);
+ CoarseRatio1SpinBox->blockSignals(false);
+ FineRatio1SpinBox->blockSignals(true);
+ FineRatio1SpinBox->setValue(val%100);
+ FineRatio1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ CoarseRatio2SpinBox->blockSignals(true);
+ CoarseRatio2SpinBox->setValue(val/100);
+ CoarseRatio2SpinBox->blockSignals(false);
+ FineRatio2SpinBox->blockSignals(true);
+ FineRatio2SpinBox->setValue(val%100);
+ FineRatio2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ CoarseRatio3SpinBox->blockSignals(true);
+ CoarseRatio3SpinBox->setValue(val/100);
+ CoarseRatio3SpinBox->blockSignals(false);
+ FineRatio3SpinBox->blockSignals(true);
+ FineRatio3SpinBox->setValue(val%100);
+ FineRatio3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ CoarseRatio4SpinBox->blockSignals(true);
+ CoarseRatio4SpinBox->setValue(val/100);
+ CoarseRatio4SpinBox->blockSignals(false);
+ FineRatio4SpinBox->blockSignals(true);
+ FineRatio4SpinBox->setValue(val%100);
+ FineRatio4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateRATIO : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateDET(int op, int val) {
+ switch(op) {
+ case 0:
+ DET1Slider->blockSignals(true);
+ DET1Slider->setValue(val);
+ DET1Slider->blockSignals(false);
+ DET1SpinBox->blockSignals(true);
+ DET1SpinBox->setValue(val);
+ DET1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ DET2Slider->blockSignals(true);
+ DET2Slider->setValue(val);
+ DET2Slider->blockSignals(false);
+ DET2SpinBox->blockSignals(true);
+ DET2SpinBox->setValue(val);
+ DET2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ DET3Slider->blockSignals(true);
+ DET3Slider->setValue(val);
+ DET3Slider->blockSignals(false);
+ DET3SpinBox->blockSignals(true);
+ DET3SpinBox->setValue(val);
+ DET3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ DET4Slider->blockSignals(true);
+ DET4Slider->setValue(val);
+ DET4Slider->blockSignals(false);
+ DET4SpinBox->blockSignals(true);
+ DET4SpinBox->setValue(val);
+ DET4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateDET : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateALG(int val) {
+ algorithmComboBox->blockSignals(true);
+ algorithmComboBox->setCurrentIndex(val);
+ algorithmComboBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateFEEDBACK(int val) {
+ feedbackSlider->blockSignals(true);
+ feedbackSlider->setValue(val);
+ feedbackSlider->blockSignals(false);
+ feedbackSpinBox->blockSignals(true);
+ feedbackSpinBox->setValue(val);
+ feedbackSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateSPEED(int val) {
+ LFOSpeedSlider->blockSignals(true);
+ LFOSpeedSlider->setValue(val);
+ LFOSpeedSlider->blockSignals(false);
+ LFOSpeedSpinBox->blockSignals(true);
+ LFOSpeedSpinBox->setValue(val);
+ LFOSpeedSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateDELAY(int val) {
+ LFODelaySlider->blockSignals(true);
+ LFODelaySlider->setValue(val);
+ LFODelaySlider->blockSignals(false);
+ LFODelaySpinBox->blockSignals(true);
+ LFODelaySpinBox->setValue(val);
+ LFODelaySpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePMODDEPTH(int val) {
+ PModDepthSlider->blockSignals(true);
+ PModDepthSlider->setValue(val);
+ PModDepthSlider->blockSignals(false);
+ PModDepthSpinBox->blockSignals(true);
+ PModDepthSpinBox->setValue(val);
+ PModDepthSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateAMODDEPTH(int val) {
+ AModDepthSlider->blockSignals(true);
+ AModDepthSlider->setValue(val);
+ AModDepthSlider->blockSignals(false);
+ AModDepthSpinBox->blockSignals(true);
+ AModDepthSpinBox->setValue(val);
+ AModDepthSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateSYNC(bool val) {
+ LFOSyncCheckBox->blockSignals(true);
+ LFOSyncCheckBox->setChecked(val);
+ LFOSyncCheckBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateWAVE(int val) {
+ LFOWaveComboBox->blockSignals(true);
+ LFOWaveComboBox->setCurrentIndex(val);
+ LFOWaveComboBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePMODSENS(int val) {
+ PModSensSlider->blockSignals(true);
+ PModSensSlider->setValue(val);
+ PModSensSlider->blockSignals(false);
+ PModSensSpinBox->blockSignals(true);
+ PModSensSpinBox->setValue(val);
+ PModSensSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateAMS(int val) {
+ AModSensSlider->blockSignals(true);
+ AModSensSlider->setValue(val);
+ AModSensSlider->blockSignals(false);
+ AModSensSpinBox->blockSignals(true);
+ AModSensSpinBox->setValue(val);
+ AModSensSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateTRANSPOSE(int val) {
+ transposeSlider->blockSignals(true);
+ transposeSlider->setValue(val);
+ transposeSlider->blockSignals(false);
+ transposeSpinBox->blockSignals(true);
+ transposeSpinBox->setValue(val);
+ transposeSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePOLYMODE(int val) {
+ polyMonoComboBox->blockSignals(true);
+ polyMonoComboBox->setCurrentIndex(val);
+ polyMonoComboBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePBENDRANGE(int val) {
+ pitchBendRangeSlider->blockSignals(true);
+ pitchBendRangeSlider->setValue(val);
+ pitchBendRangeSlider->blockSignals(false);
+ pitchBendRangeSpinBox->blockSignals(true);
+ pitchBendRangeSpinBox->setValue(val);
+ pitchBendRangeSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePORTAMODE(int val) {
+ PortFingerFullComboBox->blockSignals(true);
+ PortFingerFullComboBox->setCurrentIndex(val);
+ PortFingerFullComboBox->blockSignals(false);
+}
+void DeicsOnzeGui::updatePORTATIME(int val) {
+ PortamentoTimeSlider->blockSignals(true);
+ PortamentoTimeSlider->setValue(val);
+ PortamentoTimeSlider->blockSignals(false);
+ PortamentoTimeSpinBox->blockSignals(true);
+ PortamentoTimeSpinBox->setValue(val);
+ PortamentoTimeSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateFIX(int op, bool val) {
+ switch(op) {
+ case 0:
+ Fix1CheckBox->blockSignals(true);
+ Fix1CheckBox->setChecked(val);
+ Fix1CheckBox->blockSignals(false);
+ FineRatio1SpinBox->blockSignals(true);
+ FineRatio1SpinBox->setEnabled(!val);
+ FineRatio1SpinBox->blockSignals(false);
+ CoarseRatio1SpinBox->blockSignals(true);
+ CoarseRatio1SpinBox->setEnabled(!val);
+ CoarseRatio1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ Fix2CheckBox->blockSignals(true);
+ Fix2CheckBox->setChecked(val);
+ Fix2CheckBox->blockSignals(false);
+ FineRatio2SpinBox->blockSignals(true);
+ FineRatio2SpinBox->setEnabled(!val);
+ FineRatio2SpinBox->blockSignals(false);
+ CoarseRatio2SpinBox->blockSignals(true);
+ CoarseRatio2SpinBox->setEnabled(!val);
+ CoarseRatio2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ Fix3CheckBox->blockSignals(true);
+ Fix3CheckBox->setChecked(val);
+ Fix3CheckBox->blockSignals(false);
+ FineRatio3SpinBox->blockSignals(true);
+ FineRatio3SpinBox->setEnabled(!val);
+ FineRatio3SpinBox->blockSignals(false);
+ CoarseRatio3SpinBox->blockSignals(true);
+ CoarseRatio3SpinBox->setEnabled(!val);
+ CoarseRatio3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ Fix4CheckBox->blockSignals(true);
+ Fix4CheckBox->setChecked(val);
+ Fix4CheckBox->blockSignals(false);
+ FineRatio4SpinBox->blockSignals(true);
+ FineRatio4SpinBox->setEnabled(!val);
+ FineRatio4SpinBox->blockSignals(false);
+ CoarseRatio4SpinBox->blockSignals(true);
+ CoarseRatio4SpinBox->setEnabled(!val);
+ CoarseRatio4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateFIX : error switch\n");
+ }
+}
+void DeicsOnzeGui::updateFIXRANGE(int op, int val) {
+ switch(op) {
+ case 0:
+ Freq1SpinBox->blockSignals(true);
+ Freq1SpinBox->setValue(val/100);
+ //val/100 because it is still a coarse display
+ Freq1SpinBox->blockSignals(false);
+ break;
+ case 1:
+ Freq2SpinBox->blockSignals(true);
+ Freq2SpinBox->setValue(val/100);
+ Freq2SpinBox->blockSignals(false);
+ break;
+ case 2:
+ Freq3SpinBox->blockSignals(true);
+ Freq3SpinBox->setValue(val/100);
+ Freq3SpinBox->blockSignals(false);
+ break;
+ case 3:
+ Freq4SpinBox->blockSignals(true);
+ Freq4SpinBox->setValue(val/100);
+ Freq4SpinBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateFIXRANGE : error switch\n");
+ }
+}
+void DeicsOnzeGui::updateOSW(int op, int val) {
+ switch(op) {
+ case 0:
+ WaveForm1ComboBox->blockSignals(true);
+ WaveForm1ComboBox->setCurrentIndex(val);
+ WaveForm1ComboBox->blockSignals(false);
+ break;
+ case 1:
+ WaveForm2ComboBox->blockSignals(true);
+ WaveForm2ComboBox->setCurrentIndex(val);
+ WaveForm2ComboBox->blockSignals(false);
+ break;
+ case 2:
+ WaveForm3ComboBox->blockSignals(true);
+ WaveForm3ComboBox->setCurrentIndex(val);
+ WaveForm3ComboBox->blockSignals(false);
+ break;
+ case 3:
+ WaveForm4ComboBox->blockSignals(true);
+ WaveForm4ComboBox->setCurrentIndex(val);
+ WaveForm4ComboBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateOSW : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateSHFT(int op, int val) {
+ switch(op) {
+ case 0:
+ EGS1ComboBox->blockSignals(true);
+ EGS1ComboBox->setCurrentIndex(val);
+ EGS1ComboBox->blockSignals(false);
+ break;
+ case 1:
+ EGS2ComboBox->blockSignals(true);
+ EGS2ComboBox->setCurrentIndex(val);
+ EGS2ComboBox->blockSignals(false);
+ break;
+ case 2:
+ EGS3ComboBox->blockSignals(true);
+ EGS3ComboBox->setCurrentIndex(val);
+ EGS3ComboBox->blockSignals(false);
+ break;
+ case 3:
+ EGS4ComboBox->blockSignals(true);
+ EGS4ComboBox->setCurrentIndex(val);
+ EGS4ComboBox->blockSignals(false);
+ break;
+ default: printf("DeicsOnzeGui::updateSHFT : Error switch\n");
+ }
+}
+void DeicsOnzeGui::updateChannelDetune(int val) {
+ updateChannelDetuneKnob(val);
+ //updateChannelDetuneSlider(val);
+}
+void DeicsOnzeGui::updateChannelDetuneKnob(int val) {
+ detuneKnob->blockSignals(true);
+ detuneKnob->setValue((((double)val)/((double)MAXCHANNELDETUNE))/2.0+0.5);
+ detuneKnob->blockSignals(false);
+}
+//void DeicsOnzeGui::updateChannelDetuneSlider(int val) {
+ //channelDetuneSlider->blockSignals(true);
+ //channelDetuneSlider->setValue(val);
+ //channelDetuneSlider->blockSignals(false);
+ //channelDetuneSpinBox->blockSignals(true);
+ //channelDetuneSpinBox->setValue(val);
+ //channelDetuneSpinBox->blockSignals(false);
+//}
+void DeicsOnzeGui::updateChannelVolume(int val) {
+ channelVolumeKnob->blockSignals(true);
+ channelVolumeKnob->setValue(((double)val)/(double)MAXCHANNELVOLUME);
+ channelVolumeKnob->blockSignals(false);
+}
+void DeicsOnzeGui::updateCategoryName(QString cn, bool enable) {
+ categoryLineEdit->setEnabled(enable);
+ categoryLineEdit->blockSignals(true);
+ categoryLineEdit->setText(cn);
+ categoryLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::updateSubcategoryName(QString sn, bool enable) {
+ subcategoryLineEdit->setEnabled(enable);
+ subcategoryLineEdit->blockSignals(true);
+ subcategoryLineEdit->setText(sn);
+ subcategoryLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::updatePresetName(QString pn) {
+ //presetNameLineEdit->blockSignals(true);
+ //presetNameLineEdit->setText(pn);
+ //presetNameLineEdit->blockSignals(false);
+ //presetNameLabel->setText(pn);
+ presetLineEdit->blockSignals(true);
+ presetLineEdit->setText(pn);
+ presetLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::updatePresetName(QString pn, bool enable) {
+ presetLineEdit->setEnabled(enable);
+ //presetNameLineEdit->setEnabled(enable);
+ updatePresetName(pn);
+}
+void DeicsOnzeGui::updateHBank(int n, bool enable) {
+ hbankSpinBox->setEnabled(enable);
+ hbankSpinBox->blockSignals(true);
+ hbankSpinBox->setValue(n+1);
+ hbankSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateLBank(int n, bool enable) {
+ lbankSpinBox->setEnabled(enable);
+ lbankSpinBox->blockSignals(true);
+ lbankSpinBox->setValue(n+1);
+ lbankSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateProg(int n, bool enable) {
+ progSpinBox->setEnabled(enable);
+ progSpinBox->blockSignals(true);
+ progSpinBox->setValue(n+1);
+ progSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateInitSetCheckBox(bool b) {
+ initSetCheckBox->blockSignals(true);
+ initSetCheckBox->setChecked(b);
+ initSetCheckBox->blockSignals(false);
+ initSetPathLineEdit->setEnabled(b);
+ initSetBrowsePushButton-> setEnabled(b);
+}
+void DeicsOnzeGui::updateInitSetPath(QString s) {
+ initSetPathLineEdit->blockSignals(true);
+ initSetPathLineEdit->setText(s);
+ initSetPathLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::updateBackgroundPixCheckBox(bool b) {
+ imageCheckBox->blockSignals(true);
+ imageCheckBox->setChecked(b);
+ imageCheckBox->blockSignals(false);
+ imagePathLineEdit->setEnabled(b);
+ imageBrowsePushButton-> setEnabled(b);
+}
+void DeicsOnzeGui::updateBackgroundPixPath(QString s) {
+ imagePathLineEdit->blockSignals(true);
+ imagePathLineEdit->setText(s);
+ imagePathLineEdit->blockSignals(false);
+}
+void DeicsOnzeGui::applyBackgroundPix() {
+ QPalette p = this->palette();
+ QPixmap pixmap = QPixmap(imagePathLineEdit->text());
+ p.setBrush((this)->backgroundRole(), QBrush(pixmap));
+ (this)->setPalette(p);
+}
+void DeicsOnzeGui::updateChannelPan(int val) {
+ channelPanKnob->blockSignals(true);
+ channelPanKnob->setValue((((double)val/(double)MAXCHANNELPAN)+1.0)/2.0);
+ channelPanKnob->blockSignals(false);
+ //channelPanSpinBox->blockSignals(true);
+ //channelPanSpinBox->setValue(val);
+ //channelPanSpinBox->blockSignals(false);
+}
+void DeicsOnzeGui::updateBrightness(int val) {
+ brightnessKnob->blockSignals(true);
+ brightnessKnob->setValue((double)val/((double)MAXFINEBRIGHTNESS));
+ brightnessKnob->blockSignals(false);
+}
+void DeicsOnzeGui::updateModulation(int val) {
+ modulationKnob->blockSignals(true);
+ modulationKnob->setValue((double)val/((double)MAXMODULATION));
+ modulationKnob->blockSignals(false);
+}
+void DeicsOnzeGui::updateAttack(int val) {
+ attackKnob->blockSignals(true);
+ attackKnob->setValue((double)val/((double)MAXATTACK));
+ attackKnob->blockSignals(false);
+}
+void DeicsOnzeGui::updateRelease(int val) {
+ releaseKnob->blockSignals(true);
+ releaseKnob->setValue((double)val/((double)MAXRELEASE));
+ releaseKnob->blockSignals(false);
+}
+void DeicsOnzeGui::updateQuickEdit() {
+ updateChannelVolume(_deicsOnze->getChannelVol(_currentChannel));
+ updateChannelPan(_deicsOnze->getChannelPan(_currentChannel));
+ updateBrightness(_deicsOnze->getChannelBrightness(_currentChannel));
+ updateModulation(_deicsOnze->getChannelModulation(_currentChannel));
+ updateChannelDetune(_deicsOnze->getChannelDetune(_currentChannel));
+ updateAttack(_deicsOnze->getChannelAttack(_currentChannel));
+ updateRelease(_deicsOnze->getChannelRelease(_currentChannel));
+ updateChannelReverb(_deicsOnze->getChannelReverb(_currentChannel));
+ updateChannelChorus(_deicsOnze->getChannelChorus(_currentChannel));
+ updateChannelDelay(_deicsOnze->getChannelDelay(_currentChannel));
+}
+//--------------------------------------------------------------
+// updatePreset
+//--------------------------------------------------------------
+void DeicsOnzeGui::updatePreset(Preset* p) {
+ //TODO : why updateMasterVolume
+ //updateMasterVolume(_deicsOnze->getMasterVol()); //to change
+ updatePresetName(p->name.c_str());
+ updateFEEDBACK(p->feedback);
+ updateWAVE((int)p->lfo.wave);
+ updateSPEED(p->lfo.speed);
+ updateDELAY(p->lfo.delay);
+ updatePMODDEPTH(p->lfo.pModDepth);
+ updatePMODSENS(p->sensitivity.pitch);
+ updateAMODDEPTH(p->lfo.aModDepth);
+ updateAMS(p->sensitivity.amplitude);
+ updateTRANSPOSE(p->function.transpose);
+ updateALG((int)p->algorithm);
+ updatePBENDRANGE(p->function.pBendRange);
+ //pitch envelope
+ PitchEg* pe=&(p->pitchEg);
+ pitchEnvelopeGraph
+ ->env2Points(pe->pl1, pe->pl2, pe->pl3, pe->pr1, pe->pr2, pe->pr3);
+ pitchEnvelopeGraph->updateEnv();
+ updatePL1(pe->pl1);
+ updatePL2(pe->pl2);
+ updatePL3(pe->pl3);
+ updatePR1(pe->pr1);
+ updatePR2(pe->pr2);
+ updatePR3(pe->pr3);
+ //function
+ updateFcVolume(p->function.fcVolume);
+ updateFcPitch(p->function.fcPitch);
+ updateFcAmplitude(p->function.fcAmplitude);
+ updateMwPitch(p->function.mwPitch);
+ updateMwAmplitude(p->function.mwAmplitude);
+ updateBcPitch(p->function.bcPitch);
+ updateBcAmplitude(p->function.bcAmplitude);
+ updateBcPitchBias(p->function.bcPitchBias);
+ updateBcEgBias(p->function.bcEgBias);
+ updateAtPitch(p->function.atPitch);
+ updateAtAmplitude(p->function.atAmplitude);
+ updateAtPitchBias(p->function.atPitchBias);
+ updateAtEgBias(p->function.atEgBias);
+ //updateReverbRate(p->function.reverbRate);
+ updatePOLYMODE((int)p->function.mode);
+ updatePORTAMODE((int)p->function.portamento);
+ updatePORTATIME((int)p->function.portamentoTime);
+ for(int k=0; k<NBROP; k++) {
+ //envelope
+ Eg* _eg=&(p->eg[k]);
+ envelopeGraph[k]
+ ->env2Points(_eg->ar, _eg->d1r, _eg->d1l, _eg->d2r, _eg->rr);
+ envelopeGraph[k]->updateEnv();
+ updateAR(k, _eg->ar);
+ updateD1R(k, _eg->d1r);
+ updateD1L(k, _eg->d1l);
+ updateD2R(k, _eg->d2r);
+ updateRR(k, _eg->rr);
+ //scaling
+ updateLS(k, p->scaling.level[k]);
+ updateRS(k, p->scaling.rate[k]);
+ //Volume
+ updateOUT(k, p->outLevel[k]);
+ //Ratio and Frequency
+ updateRATIO(k, (int)(100*p->frequency[k].ratio));
+ updateFIXRANGE(k, (int)(100*p->frequency[k].freq));
+ updateFIX(k, p->frequency[k].isFix);
+ //Sensitivity
+ updateAME(k, p->sensitivity.ampOn[k]);
+ updateEBS(k, p->sensitivity.egBias[k]);
+ updateKVS(k, p->sensitivity.keyVelocity[k]);
+ //detune
+ updateDET(k, p->detune[k]);
+ //Waveform
+ updateOSW(k, (int)p->oscWave[0]);
+ }
+}
+/*void DeicsOnzeGui::updateCurrentChannel() {
+ updateBrightness(_deicsOnze->_global.channel[_currentChannel].brightness);
+ updateModulation(_deicsOnze->_global.channel[_currentChannel].modulation);
+ updateChannelDetune(_deicsOnze->_global.channel[_currentChannel].detune);
+ updateAttack(_deicsOnze->_global.channel[_currentChannel].attack);
+ updateRelease(_deicsOnze->_global.channel[_currentChannel].release);
+ }*/
+void DeicsOnzeGui::updatePreset() {
+ updatePreset(_deicsOnze->_preset[_currentChannel]);
+}
+
+void DeicsOnzeGui::updateSelectPreset(int hbank, int lbank, int prog) {
+ //QTreeWidgetItem* cat = categoryListView->currentItem();
+ //QTreeWidgetItem* sub = subcategoryListView->currentItem();
+ QTreeWidgetItem* pre = presetListView->currentItem();
+ //select category, subcategory, preset
+ //category
+ QList<QTreeWidgetItem *> qlcat =
+ categoryListView->findItems(num3Digits(hbank+1), Qt::MatchExactly);
+ QTreeWidgetItem* qcat = qlcat.empty()? NULL:qlcat.at(0);
+ //if the category is different than the last one then select the new one
+ //if(!cat || !qcat || qcat!= cat) {
+ if(qcat) {
+ categoryListView->setItemSelected(qcat, true);
+ categoryListView->setCurrentItem(qcat);
+ categoryListView->scrollToItem(qcat);
+ setEnabledPreset(true);
+ }
+ else {
+ updateCategoryName(QString("NONE"), false);
+ updateHBank(hbank, false);
+ categoryListView->clearSelection();
+ subcategoryListView->clear();
+ setEnabledPreset(false);
+ }
+ //}
+ //subcategory
+ //if(cat) {
+ QList<QTreeWidgetItem *> qlsub =
+ subcategoryListView->findItems(num3Digits(lbank+1), Qt::MatchExactly);
+ QTreeWidgetItem* qsub = qlsub.empty()? NULL:qlsub.at(0);
+ // if(!sub || qsub!=sub) {
+ if(qsub) {
+ subcategoryListView->setItemSelected(qsub, true);
+ subcategoryListView->setCurrentItem(qsub);
+ subcategoryListView->scrollToItem(qsub);
+ setEnabledPreset(true);
+ }
+ else {
+ updateSubcategoryName(QString("NONE"), false);
+ updateLBank(lbank, false);
+ subcategoryListView->clearSelection();
+ presetListView->clear();
+ setEnabledPreset(false);
+ }
+ // }
+ //}
+ //else {
+ // updateSubcategoryName(QString("NONE"), false);
+ // updateLBank(lbank, false);
+ // subcategoryListView->clearSelection();
+ // presetListView->clear();
+ // setEnabledPreset(false);
+ //}
+ //preset
+ //if(sub) {
+ QList<QTreeWidgetItem *> qlpre =
+ presetListView->findItems(num3Digits(prog+1), Qt::MatchExactly);
+ QTreeWidgetItem* qpre = qlpre.empty()? NULL:qlpre.at(0);
+ if(qpre) {
+ presetListView->blockSignals(true);
+ presetListView->setItemSelected(qpre, true);
+ presetListView->setCurrentItem(qpre);
+ presetListView->blockSignals(false);
+ presetListView->scrollToItem(qpre);
+ updatePresetName(qpre->text(1), true);
+ updateProg(prog, true);
+ pre=(QTreePreset*) qpre;
+ setEnabledPreset(true);
+ }
+ else {
+ updatePresetName(QString("INITVOICE"), false);
+ updateProg(prog, false);
+ presetListView->clearSelection();
+ setEnabledPreset(false);
+ }
+ //}
+ //else {
+ // updatePresetName(QString("INITVOICE"), false);
+ // updateProg(prog, false);
+ // presetListView->clearSelection();
+ // setEnabledPreset(false);
+ //}
+}
+
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzegui.h b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.h
new file mode 100644
index 00000000..236b4a9f
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.h
@@ -0,0 +1,562 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzegui.h
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __DEICSONZEGUI_H
+#define __DEICSONZEGUI_H
+
+#include "deicsonze.h"
+
+#include "deicsonzepreset.h"
+#include "ui_deicsonzegui.h"
+#include "libsynti/gui.h"
+#include "awl/floatentry.h"
+#include "awl/slider.h"
+#include "awl/checkbox.h"
+
+using Awl::FloatEntry;
+using Awl::Slider;
+using Awl::CheckBox;
+
+//Envelope Gui constants
+#define XOFFSET 2
+#define YOFFSET 2
+#define PENWIDTH 2
+#define DOTWIDTH 3
+#define DRAGWIDTH 6 //size of the mousetracking threshold
+//pitch envelope constants
+#define WALLWIDTH 6
+#define PR1WIDTH (width()/3-9)
+#define PR2WIDTH PR1WIDTH
+#define PR3WIDTH PR1WIDTH
+#define PL1HEIGHT (height()-4)
+#define PL2HEIGHT PL1HEIGHT
+#define PL3HEIGHT PL1HEIGHT
+#define MAXPWIDTH PR1WIDTH+WALLWIDTH+PR2WIDTH+WALLWIDTH+PR3WIDTH+WALLWIDTH+PR1WIDTH
+#define MAXPHEIGHT PL1HEIGHT
+#define STEPVALUE 10
+//amplitude envelope constants
+#define ARWIDTH (width()/4-1)
+#define D1RWIDTH ARWIDTH
+#define D1LHEIGHT (height()-2)
+#define D2RWIDTH ARWIDTH
+#define RRWIDTH ARWIDTH
+#define MAXWIDTH ARWIDTH+D1RWIDTH+D1RWIDTH+RRWIDTH
+#define MAXHEIGHT D1LHEIGHT
+
+//COLOR
+#define TCOLOR QColor(0, 0, 0) //text color
+#define BCOLOR QColor(210, 180, 90) //background color
+#define ETCOLOR QColor(0, 150, 0) //edit text color
+#define EBCOLOR QColor(255, 255, 30) //edit background color
+
+class DeicsOnze;
+class QFramePitchEnvelope;
+class QFrameEnvelope;
+
+class QTreeCategory:public QTreeWidgetItem {
+ public:
+ Category* _category;
+ QTreeCategory(QTreeWidget* p, QString shbank, QString l, Category* c)
+ :QTreeWidgetItem(p) {
+ setText(0, shbank);
+ setText(1, l);
+ _category=c;
+ };
+};
+
+class QTreeSubcategory:public QTreeWidgetItem {
+ public:
+ Subcategory* _subcategory;
+ QTreeSubcategory(QTreeWidget* p, QString slbank,
+ QString l, Subcategory* s)
+ :QTreeWidgetItem(p) {
+ setText(0, slbank);
+ setText(1, l);
+ _subcategory=s;
+ };
+};
+
+class QTreePreset:public QTreeWidgetItem {
+ public:
+ Preset* _preset;
+ QTreePreset(QTreeWidget* pa, QString sprog, QString l, Preset* p)
+ :QTreeWidgetItem(pa) {
+ setText(0, sprog);
+ setText(1, l);
+ _preset=p;
+ };
+};
+
+//---------------------------------------------------------
+// DeicsOnzeGui
+//---------------------------------------------------------
+class DeicsOnzeGui : public QDialog, public Ui::DeicsOnzeGuiBase, public MessGui {
+ bool _enabledPreset;
+
+ QFramePitchEnvelope* pitchEnvelopeGraph;
+ QFrameEnvelope* envelopeGraph[NBROP];
+
+ QWidget* _chorusSuperWidget;
+ QWidget* _reverbSuperWidget;
+ std::vector<Slider*> _chorusSliderVector;
+ std::vector<FloatEntry*> _chorusFloatEntryVector;
+ std::vector<CheckBox*> _chorusCheckBoxVector;
+ std::vector<Slider*> _reverbSliderVector;
+ std::vector<FloatEntry*> _reverbFloatEntryVector;
+ std::vector<CheckBox*> _reverbCheckBoxVector;
+
+ Q_OBJECT
+ QString lastDir;
+ private slots:
+ void readMessage(int);
+ void setEnabledChannel(bool);
+ void setChangeChannel(int);
+ void setPanic();
+ void setResCtrl();
+ void setNbrVoices(int);
+ void setSaveOnlyUsed(bool);
+ void setSaveOnlyUsedComp(bool);
+ void setSaveConfig(bool);
+// void setMidiInCh(int); //to change
+ void setQuality(const QString&);
+ void setFilter(bool);
+ void setFontSize(int);
+ void saveConfiguration();
+ void saveDefaultConfiguration();
+ void loadConfiguration();
+ void loadConfiguration(QString s);
+ //load init set
+ void setIsInitSet(bool);
+ void setInitSetPath(const QString&);
+ void setBrowseInitSetPath();
+ //load init set
+ void setIsBackgroundPix(bool);
+ void setBackgroundPixPath(const QString&);
+ void setBrowseBackgroundPixPath();
+ //FX
+ void setChorusActiv(bool a);
+ void setChannelChorus(int c);
+ void setChorusReturn(int al);
+ void setSelectChorusPlugin();
+ void setReverbCheckBox(double v, int i);
+ void setChorusCheckBox(double v, int i);
+ void setReverbActiv(bool a);
+ void setChannelReverb(int r);
+ void setReverbReturn(int val);
+ void setSelectReverbPlugin();
+ void setReverbFloatEntry(double v, int i);
+ void setReverbSlider(double v, int i);
+ void setChorusFloatEntry(double v, int i);
+ void setChorusSlider(double v, int i);
+ //quick edit
+ void setChannelVolKnob(double val);
+ void setChannelPan(double val);
+ void setBrightnessKnob(double val);
+ void setModulationKnob(double val);
+ void setDetuneKnob(double val);
+ void setAttackKnob(double val);
+ void setReleaseKnob(double val);
+ //Color
+ void setRedColor(int);
+ void setGreenColor(int);
+ void setBlueColor(int);
+ void setRGBSliders(QListWidgetItem*);
+ void setTextColor(const QColor &);
+ void setBackgroundColor(const QColor &);
+ void setEditTextColor(const QColor &);
+ void setEditBackgroundColor(const QColor &);
+ //New Delete Load Save
+ void deleteSetDialog();
+ void loadSetDialog();
+ void saveSetDialog();
+ void deleteCategoryDialog();
+ void newCategoryDialog();
+ void loadCategoryDialog();
+ void saveCategoryDialog();
+ void deleteSubcategoryDialog();
+ void newSubcategoryDialog();
+ void loadSubcategoryDialog();
+ void saveSubcategoryDialog();
+ void newPresetDialog();
+ void loadPresetDialog();
+ void deletePresetDialog();
+ void savePresetDialog();
+ //popupMenu
+ void categoryPopupMenu(const QPoint&);
+ void subcategoryPopupMenu(const QPoint&);
+ void presetPopupMenu(const QPoint&);
+ //Preset and bank
+ void setPresetName(const QString&);
+ void setSubcategoryName(const QString&);
+ void setCategoryName(const QString&);
+ void setHBank(int);
+ void setLBank(int);
+ void setProg(int);
+ //Global
+ void setMasterVolKnob(double);
+ void setMasterVol(int);
+ void setFeedback(int);
+ void setLfoWave(int);
+ void setLfoSpeed(int);
+ void setLfoDelay(int);
+ void setLfoPModDepth(int);
+ void setLfoPitchSens(int);
+ void setLfoAModDepth(int);
+ void setLfoAmpSens(int);
+ void setTranspose(int);
+ void setChannelDetune(int);
+ void setAlgorithm(int);
+ void setPitchBendRange(int);
+ //Pitch Envelope
+ void setPL1(int);
+ void setPL2(int);
+ void setPL3(int);
+ void setPR1(int);
+ void setPR2(int);
+ void setPR3(int);
+ //Function
+ void setFcVolume(int);
+ void setFcPitch(int);
+ void setFcAmplitude(int);
+ void setMwPitch(int);
+ void setMwAmplitude(int);
+ void setBcPitch(int);
+ void setBcAmplitude(int);
+ void setBcPitchBias(int);
+ void setBcEgBias(int);
+ void setAtPitch(int);
+ void setAtAmplitude(int);
+ void setAtPitchBias(int);
+ void setAtEgBias(int);
+ void setReverbRate(int);
+ void setPolyMode(int);
+ void setPortFingerFull(int);
+ void setPortaTime(int);
+ //envelope
+ void setAR1(int val);
+ void setD1R1(int val);
+ void setD1L1(int val);
+ void setD2R1(int val);
+ void setRR1(int val);
+ void setAR2(int val);
+ void setD1R2(int val);
+ void setD1L2(int val);
+ void setD2R2(int val);
+ void setRR2(int val);
+ void setAR3(int val);
+ void setD1R3(int val);
+ void setD1L3(int val);
+ void setD2R3(int val);
+ void setRR3(int val);
+ void setAR4(int val);
+ void setD1R4(int val);
+ void setD1L4(int val);
+ void setD2R4(int val);
+ void setRR4(int val);
+ //scaling
+ void setLS1(int val);
+ void setRS1(int val);
+ void setLS2(int val);
+ void setRS2(int val);
+ void setLS3(int val);
+ void setRS3(int val);
+ void setLS4(int val);
+ void setRS4(int val);
+ //vol
+ void setVol1(int val);
+ void setVol2(int val);
+ void setVol3(int val);
+ void setVol4(int val);
+ //Ratio and Frequency
+ void setCoarseRatio1(int val);
+ void setFineRatio1(int val);
+ void setFreq1(int val);
+ void setFix1(bool f);
+ void setCoarseRatio2(int val);
+ void setFineRatio2(int val);
+ void setFreq2(int val);
+ void setFix2(bool f);
+ void setCoarseRatio3(int val);
+ void setFineRatio3(int val);
+ void setFreq3(int val);
+ void setFix3(bool f);
+ void setCoarseRatio4(int val);
+ void setFineRatio4(int val);
+ void setFreq4(int val);
+ void setFix4(bool f);
+ //Sensitivity
+ void setAME1(bool val);
+ void setEBS1(int val);
+ void setKVS1(int val);
+ void setAME2(bool val);
+ void setEBS2(int val);
+ void setKVS2(int val);
+ void setAME3(bool val);
+ void setEBS3(int val);
+ void setKVS3(int val);
+ void setAME4(bool val);
+ void setEBS4(int val);
+ void setKVS4(int val);
+ //detune
+ void setDET1(int val);
+ void setDET2(int val);
+ void setDET3(int val);
+ void setDET4(int val);
+ //WaveForm
+ void setWaveForm1(int);
+ void setWaveForm2(int);
+ void setWaveForm3(int);
+ void setWaveForm4(int);
+ //Delay
+ void setActivDelay(bool);
+ void setDelayReturn(int);
+ void setChannelDelay(int);
+ //void setDelayTime(int);
+ void setDelayBPM(double);
+ void setDelayBeatRatio(double);
+ //void setDelayFeedback(int);
+ void setDelayFeedback(double);
+ //void setDelayPanLFOFreq(int);
+ void setDelayPanLFOFreq(double);
+ //void setDelayPanLFODepth(int);
+ void setDelayPanLFODepth(double);
+ //category subcategory preset
+ void setSet(void); //display the set, that is the category list
+ void setCategory(Category*);
+ void setCategory(QTreeWidgetItem*);
+ void setSubcategory(Subcategory*);
+ void setSubcategory(QTreeWidgetItem*);
+ void setPreset(QTreeWidgetItem*);
+ public:
+ virtual void processEvent(const MidiEvent&);
+ void updateSelectPreset(int hbank, int lbank, int prog);
+ //update the gui
+ void setEnabledPreset(bool b);
+ void updateChannelCheckBox(bool b);
+ void updateEnabledChannel(bool e);//put enabled the display concerning channel and preset
+ void updateChannelEnable(bool e);//update channel enable
+ void updateMasterVolume(int val);
+ void updateNbrVoices(int val);
+ //void updateMidiInCh(int val); //to change
+ void updateQuality(int val);
+ void updateFilter(bool f);
+ void updateFontSize(int fs);
+ void applyFontSize(int fs);
+ void updateSaveOnlyUsed(bool);
+ void updateSaveConfig(bool);
+ //FX
+ void updateChorusActiv(bool a);
+ void updateChannelChorus(int c);
+ void updateChorusReturn(int r);
+ void updateReverbActiv(bool a);
+ void updateChannelReverb(int r);
+ void updateReverbReturn(int r);
+ void updateLadspaReverbLineEdit(QString s);
+ void updateLadspaChorusLineEdit(QString s);
+ void updateDelayActiv(bool a);
+ void updateChannelDelay(int r);
+ void updateDelayReturn(int r);
+ void updateDelayPanLFOFreq(float plf);
+ void updateDelayBPM(float dt);
+ void updateDelayBeatRatio(float dt);
+ void updateDelayFeedback(float df);
+ void updateDelayPanLFODepth(float dpd);
+ void addPluginCheckBox(int index, QString text, bool toggled,
+ QWidget* parent, QGridLayout* grid, bool isReverb);
+ void addPluginIntSlider(int index, QString text, double min, double max,
+ double val, QWidget* parent, QGridLayout* grid,
+ bool isReverb);
+ void addPluginSlider(int index, QString text, bool isLog, double min,
+ double max, double val, QWidget* parent,
+ QGridLayout* grid, bool isReverb);
+ void buildGuiReverb();
+ void buildGuiChorus();
+ void updateReverbSlider(double v, int i);
+ void updateReverbFloatEntry(double v, int i);
+ void updateChorusSlider(double v, int i);
+ void updateChorusFloatEntry(double v, int i);
+ //update load init set
+ void updateInitSetCheckBox(bool);
+ void updateInitSetPath(QString);
+ //update background pix
+ void updateBackgroundPixCheckBox(bool);
+ void updateBackgroundPixPath(QString);
+ void applyBackgroundPix();
+ //update quick edit
+ void updateChannelPan(int val);
+ void updateBrightness(int val);
+ void updateModulation(int val);
+ void updateAttack(int val);
+ void updateRelease(int val);
+ void updateQuickEdit();
+ //update pitch envelope
+ void updatePL1(int val);
+ void updatePL2(int val);
+ void updatePL3(int val);
+ void updatePR1(int val);
+ void updatePR2(int val);
+ void updatePR3(int val);
+ //update function
+ void updateFcVolume(int val);
+ void updateFcPitch(int val);
+ void updateFcAmplitude(int val);
+ void updateMwPitch(int val);
+ void updateMwAmplitude(int val);
+ void updateBcPitch(int val);
+ void updateBcAmplitude(int val);
+ void updateBcPitchBias(int val);
+ void updateBcEgBias(int val);
+ void updateAtPitch(int val);
+ void updateAtAmplitude(int val);
+ void updateAtPitchBias(int val);
+ void updateAtEgBias(int val);
+ //void updateReverbRate(int val);
+ //update envelope
+ void updateAR(int op, int val);
+ void updateD1R(int op, int val);
+ void updateD2R(int op, int val);
+ void updateRR(int op, int val);
+ void updateD1L(int op, int val);
+ //update scale
+ void updateLS(int op, int val);
+ void updateRS(int op, int val);
+ void updateEBS(int op, int val);
+ void updateAME(int op, bool val);
+ void updateKVS(int op, int val);
+ void updateOUT(int op, int val);
+ void updateRATIO(int op, int val);
+ void updateDET(int op, int val);
+ //update global
+ void updateALG(int val);
+ void updateFEEDBACK(int val);
+ void updateSPEED(int val);
+ void updateDELAY(int val);
+ void updatePMODDEPTH(int val);
+ void updateAMODDEPTH(int val);
+ void updateSYNC(bool val);
+ void updateWAVE(int val);
+ void updatePMODSENS(int val);
+ void updateAMS(int val);
+ void updateTRANSPOSE(int val);
+ void updatePOLYMODE(int val);
+ void updatePBENDRANGE(int val);
+ void updatePORTAMODE(int val);
+ void updatePORTATIME(int val);
+ void updateFIX(int op, bool val);
+ void updateFIXRANGE(int op, int val);
+ void updateOSW(int op, int val);
+ void updateSHFT(int op, int val);
+ void updateChannelDetune(int val);
+ void updateChannelDetuneKnob(int val);
+ //void updateChannelDetuneSlider(int val);
+ void updateChannelVolume(int val);
+ void updateCategoryName(QString cn, bool enable);
+ void updateSubcategoryName(QString sn, bool enable);
+ void updatePresetName(QString pn, bool enable);
+ void updatePresetName(QString pn);
+ void updateHBank(int hbank, bool enable);
+ void updateLBank(int lbank, bool enable);
+ void updateProg(int prog, bool enable);
+ void updatePreset(Preset* p);
+ void updatePreset(void); //update gui following the current preset
+ //void updateCurrentChannel(); //update gui channel attributes
+ QString num3Digits(int);
+ DeicsOnzeGui(DeicsOnze*);
+
+ int _currentChannel;
+
+ QColor* tColor; //text color
+ QColor* bColor; //background color
+ QColor* etColor;//edit text color
+ QColor* ebColor;//edit background color
+ QColor* curColor;//current color
+
+ DeicsOnze* _deicsOnze;
+};
+
+class QFramePitchEnvelope:private QFrame {
+ QPoint startlinkP1, //first point
+ P1linkP2, //point linking P1 to P2
+ P2linkP3, //point linking P2 to P3
+ P3linkEnd; //point linking P3 to End
+ bool isStartlinkP1Edit;
+ bool isP1linkP2Edit;
+ bool isP2linkP3Edit;
+ bool isP3linkEndEdit;
+ public:
+ DeicsOnzeGui* _deicsOnzeGui;
+ QFramePitchEnvelope(QWidget* parent, DeicsOnzeGui* dog):QFrame(parent){
+ _deicsOnzeGui = dog;
+ isStartlinkP1Edit=false;
+ isP1linkP2Edit=false;
+ isP2linkP3Edit=false;
+ isP3linkEndEdit=false;
+ };
+ void env2Points(int pl1, int pl2, int pl3, int pr1, int pr2, int pr3);
+ void updateEnv(void) {update();};
+ protected:
+ void paintEvent(QPaintEvent* e);
+ void mouseMoveEvent(QMouseEvent* e);
+ void mousePressEvent(QMouseEvent * e);
+ void mouseReleaseEvent(QMouseEvent * e);
+};
+
+class QFrameEnvelope:private QFrame {
+ unsigned char op; //operator number, between 0 and 3
+ QPoint startlinkAR, //first point
+ ARlinkD1, //point linking AR to D1
+ D1linkD2, //point linking D1 to D2
+ D2linkRR, //point linking D2 to RR
+ RRlinkEnd; //last point
+ bool isARlinkD1Edit;
+ bool isD1linkD2Edit;
+ bool isD2linkRREdit;
+ bool isRRlinkEndEdit;
+ public:
+ DeicsOnzeGui* _deicsOnzeGui;
+ QFrameEnvelope(QWidget* parent, DeicsOnzeGui* dog, unsigned char k):QFrame(parent){
+ _deicsOnzeGui = dog;
+ isARlinkD1Edit=false;
+ isD1linkD2Edit=false;
+ isD2linkRREdit=false;
+ isRRlinkEndEdit=false;
+ op = k;
+ //setGeometry(XOFFSET, YOFFSET, XOFFSET+MAXWIDTH, MAXHEIGHT);
+ //setMouseTracking(true);
+ };
+ void env2Points(int ar, int d1r, int d1l, int d2r, int rr);
+ void updateEnv(void) {update();};
+ protected:
+ void paintEvent(QPaintEvent* e);
+ void mouseMoveEvent(QMouseEvent* e);
+ void mousePressEvent(QMouseEvent * e);
+ void mouseReleaseEvent(QMouseEvent * e);
+};
+
+#endif /* __DEICSONZEGUI_H */
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzegui.ui b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.ui
new file mode 100644
index 00000000..6b91cf49
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzegui.ui
@@ -0,0 +1,10237 @@
+<ui version="4.0" >
+ <author>Nil Geisweiller</author>
+ <class>DeicsOnzeGuiBase</class>
+ <widget class="QDialog" name="DeicsOnzeGuiBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>728</width>
+ <height>568</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>DeicsOnze</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>false</bool>
+ </property>
+ <property name="modal" >
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" colspan="4" >
+ <widget class="QTabWidget" name="deicsOnzeTabWidget" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="cursor" >
+ <cursorShape>ArrowCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string/>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>false</bool>
+ </property>
+ <property name="tabShape" >
+ <enum>QTabWidget::Rounded</enum>
+ </property>
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="PresetsTab" >
+ <attribute name="title" >
+ <string>&amp;Preset</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="progSpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Program numerous</string>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>128</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QLineEdit" name="presetLineEdit" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>INITVOICE</string>
+ </property>
+ <property name="maxLength" >
+ <number>12</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2" >
+ <widget class="QTreeWidget" name="subcategoryListView" >
+ <property name="contextMenuPolicy" >
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>LBank</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Subcategory</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="hbankSpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Bank numerous</string>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>128</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="categoryLineEdit" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>NONE</string>
+ </property>
+ <property name="maxLength" >
+ <number>12</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLineEdit" name="subcategoryLineEdit" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>NONE</string>
+ </property>
+ <property name="maxLength" >
+ <number>12</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="lbankSpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Bank numerous</string>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>128</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QTreeWidget" name="categoryListView" >
+ <property name="contextMenuPolicy" >
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="layoutDirection" >
+ <enum>Qt::LeftToRight</enum>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>false</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="lineWidth" >
+ <number>1</number>
+ </property>
+ <property name="midLineWidth" >
+ <number>0</number>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights" >
+ <bool>true</bool>
+ </property>
+ <property name="columnCount" >
+ <number>2</number>
+ </property>
+ <column>
+ <property name="text" >
+ <string>HBank</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Category</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item row="1" column="4" colspan="2" >
+ <widget class="QTreeWidget" name="presetListView" >
+ <property name="contextMenuPolicy" >
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="rootIsDecorated" >
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>Prog</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Preset</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="6" >
+ <widget class="QLabel" name="presentTextLAbel" >
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>8</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="text" >
+ <string>DeicsOnze v0.5.5 Copyright (c) 2004-2006 Nil Geisweiller. Published under GPL licence.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="GlobalTab" >
+ <attribute name="title" >
+ <string>&amp;Global</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item rowspan="2" row="1" column="1" >
+ <widget class="QGroupBox" name="pitchEnvGroupBox" >
+ <property name="title" >
+ <string>Pitch Envelope</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="PL3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PL3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="PL2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PL2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="PL1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PL1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="PR1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PR1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="PR2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PR2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLabel" name="PR3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PR3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="4" >
+ <widget class="QFrame" name="pitchEnvFrame" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="PL1SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>2</number>
+ </property>
+ <property name="value" >
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="PL2SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>2</number>
+ </property>
+ <property name="value" >
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSpinBox" name="PL3SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>2</number>
+ </property>
+ <property name="value" >
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="PR1SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>3</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="PR3SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>3</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QSpinBox" name="PR2SpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>3</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="LFOGroupBox" >
+ <property name="title" >
+ <string>LFO</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QCheckBox" name="LFOSyncCheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>LFO Sync</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="PModSensSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSlider" name="PModSensSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Modulation Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1" colspan="3" >
+ <widget class="QSlider" name="LFODelaySlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>LFO Delay</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="4" >
+ <widget class="QSpinBox" name="LFODelaySpinBox" >
+ <property name="toolTip" >
+ <string>LFO delay</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="4" >
+ <widget class="QSpinBox" name="LFOSpeedSpinBox" >
+ <property name="toolTip" >
+ <string>LFO speed</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="4" >
+ <widget class="QSpinBox" name="AModDepthSpinBox" >
+ <property name="toolTip" >
+ <string>Amplitude modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="4" >
+ <widget class="QSpinBox" name="PModDepthSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch modulation depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QSpinBox" name="AModSensSpinBox" >
+ <property name="toolTip" >
+ <string>Amplitude modulation sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QSlider" name="AModSensSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Amplitude Modulation Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="AModSensLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AMS</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QComboBox" name="LFOWaveComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>LFO Waveform</string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>38</width>
+ <height>16</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/sawUp.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/square.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/triangl.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/SHold.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="3" >
+ <widget class="QSlider" name="PModDepthSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Modulation Depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="PModDepthLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PMD</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="3" >
+ <widget class="QSlider" name="LFOSpeedSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>LFO Speed</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="3" >
+ <widget class="QSlider" name="AModDepthSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Modulation Depth</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="AModDepthLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AMD</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="LFOSpeedLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Speed</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <widget class="QLabel" name="LFODelayLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Delay</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="PModSensLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PMS</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QGroupBox" name="ModulationMatrixGroupBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="title" >
+ <string>Modulation Matrix</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QComboBox" name="algorithmComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Modulation Matrix</string>
+ </property>
+ <property name="whatsThis" >
+ <string>&lt;b>Algorithm 1&lt;/b> : &lt;i>Op 1&lt;/i> modulated by &lt;i>Op 2&lt;/i> modulated by &lt;i>Op 3&lt;/i> modulated by &lt;i>Op 4&lt;/i>&lt;br>
+&lt;b>Algorithm 2&lt;/b> : &lt;i>Op 1&lt;/i> modulated by &lt;i>Op 2&lt;/i> modulated by both &lt;i>Op 3&lt;/i> and &lt;i>Op 4&lt;/i>&lt;br>
+&lt;b>Algorithm 3&lt;/b> : &lt;i>Op 1&lt;/i> modulated by both &lt;i>Op 4&lt;/i> and &lt;i>Op 2&lt;/i> modulated by &lt;i>Op 3&lt;/i>&lt;br>
+&lt;b>Algorithm 4&lt;/b> : &lt;i>Op 1&lt;/i> modulated by both &lt;i>Op 2&lt;/i> and &lt;i>Op 3&lt;/i> modulated by &lt;i>Op 4&lt;/i>&lt;br>
+&lt;b>Algorithm 5&lt;/b> : (&lt;i>Op 1&lt;/i> modulated by &lt;i>Op 2&lt;/i>) add to (&lt;i>Op 3&lt;/i> modulated by &lt;i>Op 4&lt;/i>) &lt;br>
+&lt;b>Algorithm 6&lt;/b> : addition of the three &lt;i>Op 1, 2, 3&lt;/i> all modulated by &lt;i>Op 4&lt;/i>&lt;br>
+&lt;b>Algorithm 7&lt;/b> : addition of the three &lt;i>Op 1, 2, 3&lt;/i> with &lt;i>Op 3&lt;/i> modulated by &lt;i>Op 4&lt;/i>&lt;br>
+&lt;b>Algorithm 8&lt;/b> : addition of the four &lt;i>Op 1, 2, 3, 4&lt;/i></string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>160</width>
+ <height>32</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo1.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo4.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo5.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo6.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo7.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/algo8.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="FeedbackGroupBox" >
+ <property name="toolTip" >
+ <string/>
+ </property>
+ <property name="title" >
+ <string>Op4 Feedback</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSlider" name="feedbackSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Feedback level of the operator 4</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="feedbackSpinBox" >
+ <property name="toolTip" >
+ <string>Feedback level of the operator 4</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="transposeGroupBox" >
+ <property name="title" >
+ <string>Transpose</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSlider" name="transposeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Transpose</string>
+ </property>
+ <property name="minimum" >
+ <number>-24</number>
+ </property>
+ <property name="maximum" >
+ <number>24</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="transposeSpinBox" >
+ <property name="toolTip" >
+ <string>Transpose</string>
+ </property>
+ <property name="minimum" >
+ <number>-24</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="Op1Tab" >
+ <attribute name="title" >
+ <string>Op &amp;1</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="3" >
+ <widget class="QGroupBox" name="Scaling1GroupBox" >
+ <property name="title" >
+ <string>Scaling 1</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="LS1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>LS1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="RS1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RS1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="RS1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSlider" name="LS1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="LS1SpinBox" >
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="RS1SpinBox" >
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QGroupBox" name="Env1GroupBox" >
+ <property name="title" >
+ <string>Amplitude Envelope 1</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="RR1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RR1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="D1R1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1R1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="D1L1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1L1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="D2R1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D2R1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="RR1SpinBox" >
+ <property name="toolTip" >
+ <string>Release Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="D2R1SpinBox" >
+ <property name="toolTip" >
+ <string>2° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="D1L1SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Level</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="D1R1SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="AR1SpinBox" >
+ <property name="toolTip" >
+ <string>Attack Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="AR1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AR1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="5" >
+ <widget class="QFrame" name="envelope1Frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="DetWaveEGS1GroupBox" >
+ <property name="title" >
+ <string>Detune, OSCWave, EGShift 1</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="DET1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>DET1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="DET1SpinBox" >
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="DET1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2" >
+ <widget class="QComboBox" name="EGS1ComboBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Shift</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>96dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>48dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>24dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>12dB</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QComboBox" name="WaveForm1ComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Wave form</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Wave form 1 = &lt;i>sin(&lt;b>t&lt;/b>)&lt;/i>&lt;br>
+Wave form 2 = &lt;i>sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>))&lt;/i>&lt;br>
+Wave form 3 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 4 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 5 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 6 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 7 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 8 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*sin(2*&lt;b>t&lt;/b>) else 0&lt;/i></string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>48</width>
+ <height>16</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave1.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave2.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave4.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave5.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave6.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave7.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave8.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <widget class="QGroupBox" name="sensitivity1groupBox" >
+ <property name="title" >
+ <string>Sensitivity 1</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="KVS1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>KVS1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QCheckBox" name="AME1CheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ <property name="text" >
+ <string>AME1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QSpinBox" name="KVS1SpinBox" >
+ <property name="toolTip" >
+ <string>Keyboard Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="3" >
+ <widget class="QSlider" name="KVS1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="acceptDrops" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="EGS1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>EBS1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" colspan="2" >
+ <widget class="QSlider" name="EBS1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="EBS1SpinBox" >
+ <property name="toolTip" >
+ <string>Eg Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="4" >
+ <widget class="QGroupBox" name="Frequency1groupBox" >
+ <property name="title" >
+ <string>Frequency 1</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="CoarseRatio1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Coarse 1</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="CoarseRatio1SpinBox" >
+ <property name="toolTip" >
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="FineRatio1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Fine 1</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="FineRatio1SpinBox" >
+ <property name="toolTip" >
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="Freq1Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Freq 1</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="Freq1SpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Fixed Frequency</string>
+ </property>
+ <property name="maximum" >
+ <number>32000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="Fix1CheckBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Toggle Fix Frequency</string>
+ </property>
+ <property name="text" >
+ <string>FIX</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="OUT1groupBox" >
+ <property name="title" >
+ <string>OUT 1</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSpinBox" name="OUT1SpinBox" >
+ <property name="toolTip" >
+ <string>Output Volume</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="OUT1Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" >
+ <string/>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="singleStep" >
+ <number>1</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="Op2Tab" >
+ <attribute name="title" >
+ <string>Op &amp;2</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QGroupBox" name="Env2GroupBox" >
+ <property name="title" >
+ <string>Amplitude Envelope 2</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="AR2SpinBox" >
+ <property name="toolTip" >
+ <string>Attack Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="D1R2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1R2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="D1L2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1L2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="D2R2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D2R2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="RR2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RR2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="AR2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AR2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="RR2SpinBox" >
+ <property name="toolTip" >
+ <string>Release Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="D2R2SpinBox" >
+ <property name="toolTip" >
+ <string>2° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="D1L2SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Level</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="D1R2SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="5" >
+ <widget class="QFrame" name="envelope2Frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="4" >
+ <widget class="QGroupBox" name="Frequency2groupBox" >
+ <property name="title" >
+ <string>Frequency 2</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="CoarseRatio2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Coarse 2</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="CoarseRatio2SpinBox" >
+ <property name="toolTip" >
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="FineRatio2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Fine 2</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="FineRatio2SpinBox" >
+ <property name="toolTip" >
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="Freq2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Freq 2</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="Freq2SpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Fixed Frequency</string>
+ </property>
+ <property name="maximum" >
+ <number>32000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="Fix2CheckBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Toggle Fix Frequency</string>
+ </property>
+ <property name="text" >
+ <string>FIX</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QGroupBox" name="Scaling2GroupBox" >
+ <property name="title" >
+ <string>Scaling 2</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="LS2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>LS2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="RS2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RS2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSlider" name="LS2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="RS2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="LS2SpinBox" >
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="RS2SpinBox" >
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="OUT2groupBox" >
+ <property name="title" >
+ <string>OUT 2</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSpinBox" name="OUT2SpinBox" >
+ <property name="toolTip" >
+ <string>Output Volume</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="OUT2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" >
+ <string/>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="DetWaveEGS2GroupBox" >
+ <property name="title" >
+ <string>Detune, OSCWave, EGShift 2</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="DET2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>DET2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="DET2SpinBox" >
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="DET2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2" >
+ <widget class="QComboBox" name="EGS2ComboBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Shift</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>96dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>48dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>24dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>12dB</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QComboBox" name="WaveForm2ComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Wave form</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Wave form 1 = &lt;i>sin(&lt;b>t&lt;/b>)&lt;/i>&lt;br>
+Wave form 2 = &lt;i>sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>))&lt;/i>&lt;br>
+Wave form 3 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 4 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 5 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 6 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 7 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 8 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*sin(2*&lt;b>t&lt;/b>) else 0&lt;/i></string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>48</width>
+ <height>16</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave1.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave2.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave4.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave5.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave6.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave7.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave8.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <widget class="QGroupBox" name="sensitivity2groupBox" >
+ <property name="title" >
+ <string>Sensitivity 2</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="EGS2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>EBS2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="KVS2Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>KVS2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QCheckBox" name="AME2CheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ <property name="text" >
+ <string>AME2</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="3" >
+ <widget class="QSlider" name="KVS2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="acceptDrops" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QSpinBox" name="KVS2SpinBox" >
+ <property name="toolTip" >
+ <string>Keyboard Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" colspan="2" >
+ <widget class="QSlider" name="EBS2Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="EBS2SpinBox" >
+ <property name="toolTip" >
+ <string>Eg Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="Op3Tab" >
+ <attribute name="title" >
+ <string>Op &amp;3</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QGroupBox" name="Env3GroupBox" >
+ <property name="title" >
+ <string>Amplitude Envelope 3</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="AR3SpinBox" >
+ <property name="toolTip" >
+ <string>Attack Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="D1R3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1R3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="D1L3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1L3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="D2R3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D2R3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="RR3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RR3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="AR3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AR3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="RR3SpinBox" >
+ <property name="toolTip" >
+ <string>Release Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="D2R3SpinBox" >
+ <property name="toolTip" >
+ <string>2° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="D1L3SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Level</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="D1R3SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="5" >
+ <widget class="QFrame" name="envelope3Frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QGroupBox" name="Scaling3GroupBox" >
+ <property name="title" >
+ <string>Scaling 3</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="LS3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>LS3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="RS3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RS3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSlider" name="LS3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="RS3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="LS3SpinBox" >
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="RS3SpinBox" >
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="OUT3groupBox" >
+ <property name="title" >
+ <string>OUT 3</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSpinBox" name="OUT3SpinBox" >
+ <property name="toolTip" >
+ <string>Output Volume</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="OUT3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" >
+ <string/>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="4" >
+ <widget class="QGroupBox" name="Frequency3groupBox" >
+ <property name="title" >
+ <string>Frequency 3</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="CoarseRatio3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Coarse 3</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="CoarseRatio3SpinBox" >
+ <property name="cursor" >
+ <cursorShape>ArrowCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="FineRatio3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Fine 3</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="FineRatio3SpinBox" >
+ <property name="cursor" >
+ <cursorShape>ArrowCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="Freq3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Freq 3</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="Freq3SpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Fixed Frequency</string>
+ </property>
+ <property name="maximum" >
+ <number>32000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="Fix3CheckBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Toggle Fix Frequency</string>
+ </property>
+ <property name="text" >
+ <string>FIX</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="DetWaveEGS3GroupBox" >
+ <property name="title" >
+ <string>Detune, OSCWave, EGShift 3</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="DET3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>DET3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="DET3SpinBox" >
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="DET3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2" >
+ <widget class="QComboBox" name="EGS3ComboBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Shift</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>96dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>48dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>24dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>12dB</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QComboBox" name="WaveForm3ComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Wave form</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Wave form 1 = &lt;i>sin(&lt;b>t&lt;/b>)&lt;/i>&lt;br>
+Wave form 2 = &lt;i>sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>))&lt;/i>&lt;br>
+Wave form 3 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 4 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 5 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 6 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 7 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 8 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*sin(2*&lt;b>t&lt;/b>) else 0&lt;/i></string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>48</width>
+ <height>16</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave1.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave2.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave4.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave5.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave6.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave7.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave8.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <widget class="QGroupBox" name="sensitivity3groupBox" >
+ <property name="title" >
+ <string>Sensitivity 3</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="EGS3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>EBS3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="KVS3Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>KVS3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QCheckBox" name="AME3CheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ <property name="text" >
+ <string>AME3</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="3" >
+ <widget class="QSlider" name="KVS3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="acceptDrops" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QSpinBox" name="KVS3SpinBox" >
+ <property name="toolTip" >
+ <string>Keyboard Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" colspan="2" >
+ <widget class="QSlider" name="EBS3Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="EBS3SpinBox" >
+ <property name="toolTip" >
+ <string>Eg Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="Op4Tab" >
+ <attribute name="title" >
+ <string>Op &amp;4</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QGroupBox" name="Env4GroupBox" >
+ <property name="title" >
+ <string>amplitude Envelope 4</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="AR4SpinBox" >
+ <property name="toolTip" >
+ <string>Attack Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="AR4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>AR4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="D1R4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1R4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="D1L4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D1L4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="D2R4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>D2R4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="RR4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RR4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="RR4SpinBox" >
+ <property name="toolTip" >
+ <string>Release Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="D2R4SpinBox" >
+ <property name="toolTip" >
+ <string>2° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="D1L4SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Level</string>
+ </property>
+ <property name="maximum" >
+ <number>15</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="D1R4SpinBox" >
+ <property name="toolTip" >
+ <string>1° Decay Rate</string>
+ </property>
+ <property name="maximum" >
+ <number>31</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="5" >
+ <widget class="QFrame" name="envelope4Frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="4" >
+ <widget class="QGroupBox" name="Frequency4groupBox" >
+ <property name="title" >
+ <string>Frequency 4</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="CoarseRatio4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Coarse 4</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="CoarseRatio4SpinBox" >
+ <property name="toolTip" >
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="FineRatio4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Fine 4</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="FineRatio4SpinBox" >
+ <property name="toolTip" >
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="Freq4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Freq 4</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="Freq4SpinBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Fixed Frequency</string>
+ </property>
+ <property name="maximum" >
+ <number>32000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="Fix4CheckBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Toggle Fix Frequency</string>
+ </property>
+ <property name="text" >
+ <string>FIX</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QGroupBox" name="Scaling4GroupBox" >
+ <property name="title" >
+ <string>Scaling 4</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="LS4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>LS4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="RS4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>RS4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QSlider" name="LS4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="RS4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="LS4SpinBox" >
+ <property name="toolTip" >
+ <string>Level Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="RS4SpinBox" >
+ <property name="toolTip" >
+ <string>Rate Scaling</string>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="OUT4groupBox" >
+ <property name="title" >
+ <string>OUT 4</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSpinBox" name="OUT4SpinBox" >
+ <property name="toolTip" >
+ <string>Output Volume</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="OUT4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" >
+ <string/>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="DetWaveEGS4GroupBox" >
+ <property name="title" >
+ <string>Detune, OSCWave, EGShift 4</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="DET4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>DET4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="DET4SpinBox" >
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="DET4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ <property name="minimum" >
+ <number>-3</number>
+ </property>
+ <property name="maximum" >
+ <number>3</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2" >
+ <widget class="QComboBox" name="EGS4ComboBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Shift</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>96dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>48dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>24dB</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>12dB</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QComboBox" name="WaveForm4ComboBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Wave form</string>
+ </property>
+ <property name="whatsThis" >
+ <string>Wave form 1 = &lt;i>sin(&lt;b>t&lt;/b>)&lt;/i>&lt;br>
+Wave form 2 = &lt;i>sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>))&lt;/i>&lt;br>
+Wave form 3 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 4 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(&lt;b>t&lt;/b>)*abs(sin(&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 5 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>) else 0&lt;/i>&lt;br>
+Wave form 6 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 7 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then abs(sin(2*&lt;b>t&lt;/b>)) else 0&lt;/i>&lt;br>
+Wave form 8 = &lt;i>if &lt;b>t&lt;/b>&amp;#060 pi then sin(2*&lt;b>t&lt;/b>)*sin(2*&lt;b>t&lt;/b>) else 0&lt;/i></string>
+ </property>
+ <property name="iconSize" >
+ <size>
+ <width>48</width>
+ <height>16</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave1.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave2.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave3.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave4.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave5.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave6.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave7.png</iconset>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>pics/wave8.png</iconset>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <widget class="QGroupBox" name="sensitivity4groupBox" >
+ <property name="title" >
+ <string>Sensitivity 4</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="QLabel" name="EGS4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>EBS4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="KVS4Label" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>KVS4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2" >
+ <widget class="QCheckBox" name="AME4CheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ <property name="text" >
+ <string>AME4</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="3" >
+ <widget class="QSlider" name="KVS4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="acceptDrops" >
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QSpinBox" name="KVS4SpinBox" >
+ <property name="toolTip" >
+ <string>Keyboard Velocity Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" colspan="2" >
+ <widget class="QSlider" name="EBS4Slider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>EG Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="EBS4SpinBox" >
+ <property name="toolTip" >
+ <string>Eg Bias Sensitivity</string>
+ </property>
+ <property name="maximum" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="FunctionsTab" >
+ <attribute name="title" >
+ <string>&amp;Func</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="6" >
+ <widget class="QGroupBox" name="delayPanDepthGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay Pan Depth</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="delayPanLFODepthFloatentry" >
+ <property name="maximumSize" >
+ <size>
+ <width>48</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="delayPanLFODepthKnob" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="6" >
+ <widget class="QGroupBox" name="delayPanLFOGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay Pan LFO Freq</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="delayPanLFOFreqKnob" >
+ <property name="value" >
+ <double>1.137891684385393</double>
+ </property>
+ <property name="minValue" >
+ <double>0.100000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>10.000000000000000</double>
+ </property>
+ <property name="log" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="delayPanLFOFreqFloatentry" >
+ <property name="maximumSize" >
+ <size>
+ <width>48</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="minValue" >
+ <double>0.100000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>10.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="3" colspan="3" >
+ <widget class="QGroupBox" name="channelDelayGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay Ch Send Level </string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="chDelaySpinBox" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSlider" name="chDelaySlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="whatsThis" >
+ <string>Channel Chorus</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="4" colspan="2" >
+ <widget class="QGroupBox" name="delayFeedbackGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay Feedback</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="delayFeedbackKnob" >
+ <property name="value" >
+ <double>0.000000000000000</double>
+ </property>
+ <property name="minValue" >
+ <double>-1.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="delayFeedbackFloatentry" >
+ <property name="maximumSize" >
+ <size>
+ <width>48</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="minValue" >
+ <double>-1.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="3" >
+ <widget class="QGroupBox" name="delayReturnGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay On/Off, Return Level</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="delayActivCheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>On</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="delayReturnSlider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="value" >
+ <number>128</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2" >
+ <widget class="QGroupBox" name="delayBeatRatioGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay Beat Ratio</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="delayBeatRatioKnob" >
+ <property name="value" >
+ <double>1.000000000000000</double>
+ </property>
+ <property name="minValue" >
+ <double>0.125000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>2.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="delayBeatRatioFloatentry" >
+ <property name="maximumSize" >
+ <size>
+ <width>48</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="minValue" >
+ <double>0.010000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>2.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="delayBPMGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Delay BPM</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="delayBPMKnob" >
+ <property name="value" >
+ <double>100.000000000000000</double>
+ </property>
+ <property name="minValue" >
+ <double>60.000000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>255.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::FloatEntry" name="delayBPMFloatentry" >
+ <property name="maximumSize" >
+ <size>
+ <width>48</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="maxLength" >
+ <number>6</number>
+ </property>
+ <property name="minValue" >
+ <double>60.000000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>255.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="7" >
+ <widget class="QTabWidget" name="controlTabWidget" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="FCTab" >
+ <attribute name="title" >
+ <string>Foot Control</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="fcVolumeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="fcAmplitudeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="fcPitchSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="fcPitchLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="fcPitchSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSlider" name="fcAmplitudeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="fcAmpliLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="fcVolumeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Volume</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="fcVolumeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="MWTab" >
+ <attribute name="title" >
+ <string>Modulation Wheel</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="mwAmplitudeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="mwPitchSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="mwPitchSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="mwAmplitudeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="mwAmplitudeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="mwPitchLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="BCTab" >
+ <attribute name="title" >
+ <string>Breath Control</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="1" >
+ <widget class="QSlider" name="bcPitchBiasSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="bcPitchBiasSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="bcAmplitudeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="bcPitchSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="bcEgBiasSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="bcVolumeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="bcPitchBiasLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch Bias</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="bcEgBiasLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Envelope Bias</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="bcAmpliLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="bcPitchSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSlider" name="bcEgBiasSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="bcAmplitudeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="ATTab" >
+ <attribute name="title" >
+ <string>After Touch</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="atPitchLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSpinBox" name="atPitchSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="atPitchSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSpinBox" name="atPitchBiasSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSlider" name="atPitchBiasSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QSpinBox" name="atEgBiasSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="atAmplitudeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="atPitchBiasLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Pitch Bias</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="atAmplitudeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="atEgBiasLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Envelope Bias</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSlider" name="atEgBiasSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="atAmplitudeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QGroupBox" name="modeGroupBox" >
+ <property name="title" >
+ <string>Phony Mode</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="polyMonoComboBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <item>
+ <property name="text" >
+ <string>POLY</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>MONO</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="5" colspan="2" >
+ <widget class="QGroupBox" name="pitchBendRangeGroupBox" >
+ <property name="title" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSlider" name="pitchBendRangeSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>12</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="pitchBendRangeSpinBox" >
+ <property name="toolTip" >
+ <string>Pitch Bend Range</string>
+ </property>
+ <property name="maximum" >
+ <number>12</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="4" >
+ <widget class="QGroupBox" name="portamentoGroupBox" >
+ <property name="title" >
+ <string>Potamento</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="PortFingerFullComboBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Portamento Mode</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>FINGER</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>FULL</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="PotamentoTimeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>PT</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="PortamentoTimeSlider" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Portamento Time</string>
+ </property>
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>0</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="PortamentoTimeSpinBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Portamento Time</string>
+ </property>
+ <property name="maximum" >
+ <number>99</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="chorusTab" >
+ <attribute name="title" >
+ <string>C&amp;horus</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" colspan="3" >
+ <widget class="QGroupBox" name="parametersChorusGroupBox" >
+ <property name="title" >
+ <string>Chorus Parameters</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QGroupBox" name="channelChorusGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Channel send level</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="chChorusSpinBox" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSlider" name="chChorusSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="whatsThis" >
+ <string>Channel Chorus</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="onChorusGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>On/Off and Return level</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="chorusActivCheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>On</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="returnChorusSlider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="value" >
+ <number>128</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="selectLadspaChorusGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Select LADSPA plugin</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QPushButton" name="selectLadspaChorusPushButton" >
+ <property name="text" >
+ <string>Change plugin</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLineEdit" name="selectLadspaChorusLineEdit" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="reverbTab" >
+ <attribute name="title" >
+ <string>&amp;Reverb</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="onReverbGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>On/Off and Return level</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="reverbActivCheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>On</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSlider" name="returnReverbSlider" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="value" >
+ <number>128</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="selectLadspaReverbGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Select LADSPA plugin</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QPushButton" name="selectLadspaReverbPushButton" >
+ <property name="text" >
+ <string>Change plugin</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLineEdit" name="selectLadspaReverbLineEdit" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QGroupBox" name="channelReverbGroupBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Channel send level</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="chReverbSpinBox" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QSlider" name="chReverbSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="whatsThis" >
+ <string>Channel Chorus</string>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="3" >
+ <widget class="QGroupBox" name="parametersReverbGroupBox" >
+ <property name="title" >
+ <string>Reverb Parameters</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="ConfigureTab" >
+ <attribute name="title" >
+ <string>&amp;Config</string>
+ </attribute>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="1" >
+ <widget class="QGroupBox" name="fontSizeGroupBox" >
+ <property name="title" >
+ <string>Font Size</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QSpinBox" name="fontSizeSpinBox" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>32</number>
+ </property>
+ <property name="value" >
+ <number>9</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QGroupBox" name="qualityGroupBox" >
+ <property name="title" >
+ <string>Quality</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="qualityComboBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <item>
+ <property name="text" >
+ <string>High</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Middle</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Low</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Ultra low</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="filterCheckBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Filter</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item rowspan="2" row="2" column="2" >
+ <widget class="QGroupBox" name="saveModeButtonGroup" >
+ <property name="title" >
+ <string>Save Mode (into the song)</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="leftMargin" >
+ <number>10</number>
+ </property>
+ <property name="topMargin" >
+ <number>10</number>
+ </property>
+ <property name="rightMargin" >
+ <number>10</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="minSaveRadioButton" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>Save only the used presets</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="hugeSaveRadioButton" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>Save the entire set</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="saveConfigCheckBox" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="text" >
+ <string>Save the configuration</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2" >
+ <widget class="QGroupBox" name="fileGroupBox" >
+ <property name="title" >
+ <string>Configuration File</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QPushButton" name="saveConfPushButton" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Save...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QPushButton" name="loadConfPushButton" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>Load...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QPushButton" name="saveDefaultPushButton" >
+ <property name="text" >
+ <string>Save as default</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="3" >
+ <widget class="QGroupBox" name="colorGroupBox" >
+ <property name="title" >
+ <string>Colors</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="3" column="0" colspan="4" >
+ <widget class="QFrame" name="colorFrame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="3" row="0" column="0" >
+ <widget class="QListWidget" name="colorListBox" >
+ <item>
+ <property name="text" >
+ <string>Text</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Background</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Edit Text</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Edit Background</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="redSpinBox" >
+ <property name="toolTip" >
+ <string>Red</string>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QSlider" name="blueSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Blue</string>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSlider" name="greenSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Green</string>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QSlider" name="redSlider" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="toolTip" >
+ <string>Red</string>
+ </property>
+ <property name="layoutDirection" >
+ <enum>Qt::LeftToRight</enum>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition" >
+ <enum>QSlider::NoTicks</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QSpinBox" name="blueSpinBox" >
+ <property name="toolTip" >
+ <string>Blue</string>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QSpinBox" name="greenSpinBox" >
+ <property name="toolTip" >
+ <string>Green</string>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QLabel" name="blueLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Blue</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="greenLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Green</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="redLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="text" >
+ <string>Red</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="3" >
+ <widget class="QGroupBox" name="pathGroupBox" >
+ <property name="title" >
+ <string>Set Path</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QCheckBox" name="imageCheckBox" >
+ <property name="text" >
+ <string>Image in the background :</string>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLineEdit" name="imagePathLineEdit" >
+ <property name="maxLength" >
+ <number>128</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QPushButton" name="imageBrowsePushButton" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Browse...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="initSetPathLineEdit" >
+ <property name="maxLength" >
+ <number>128</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QPushButton" name="initSetBrowsePushButton" >
+ <property name="text" >
+ <string>Browse...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="initSetCheckBox" >
+ <property name="text" >
+ <string>Load the set at the initialization :</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QPushButton" name="resCtrlButton" >
+ <property name="maximumSize" >
+ <size>
+ <width>1000</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="palette" >
+ <palette>
+ <active>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>10</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="toolTip" >
+ <string>Set Brightness, Detune, Attack and Release of the current channel to default</string>
+ </property>
+ <property name="text" >
+ <string>Res. Ctrl</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QPushButton" name="panicButton" >
+ <property name="maximumSize" >
+ <size>
+ <width>1000</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="palette" >
+ <palette>
+ <active>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="WindowText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Button" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Light" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>237</red>
+ <green>237</green>
+ <blue>237</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Midlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Dark" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Mid" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>166</red>
+ <green>166</green>
+ <blue>166</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Text" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="BrightText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="ButtonText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Base" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Shadow" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Highlight" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>121</red>
+ <green>125</green>
+ <blue>121</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="HighlightedText" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>207</red>
+ <green>207</green>
+ <blue>207</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Link" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="LinkVisited" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="AlternateBase" >
+ <brush brushstyle="SolidPattern" >
+ <color alpha="255" >
+ <red>231</red>
+ <green>231</green>
+ <blue>231</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="font" >
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>10</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="toolTip" >
+ <string>Cut all notes off</string>
+ </property>
+ <property name="text" >
+ <string>Panic!</string>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="2" row="0" column="2" >
+ <widget class="QGroupBox" name="generalBox" >
+ <property name="title" >
+ <string/>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="4" >
+ <widget class="QSpinBox" name="nbrVoicesSpinBox" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Number of Voices</string>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>64</number>
+ </property>
+ <property name="value" >
+ <number>8</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="numberVoicesLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Number of voices</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QCheckBox" name="ChannelCheckBox" >
+ <property name="text" >
+ <string>Enable</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="ChannelNumSpinBox" >
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="maximum" >
+ <number>16</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="channelNumLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Channel</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item rowspan="2" row="0" column="0" >
+ <widget class="QLabel" name="masterVolumeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Vol</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="2" row="0" column="1" >
+ <widget class="Awl::VolKnob" name="masterVolKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>40</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="value" >
+ <double>-28.144332654385916</double>
+ </property>
+ <property name="minValue" >
+ <double>0.000000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>1.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.100000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>0.200000000000000</double>
+ </property>
+ <property name="log" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item rowspan="3" row="0" column="4" >
+ <widget class="QGroupBox" name="channelCtrlGroupBox" >
+ <property name="minimumSize" >
+ <size>
+ <width>96</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Channel Ctrl</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>9</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>9</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>9</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="Awl::VolKnob" name="channelPanKnob" >
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="minValue" >
+ <double>0.000000000000000</double>
+ </property>
+ <property name="maxValue" >
+ <double>1.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.100000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>0.200000000000000</double>
+ </property>
+ <property name="log" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="13" column="0" >
+ <widget class="QLabel" name="releaseLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Release</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="12" column="0" >
+ <widget class="Awl::Knob" name="releaseKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="0" >
+ <widget class="QLabel" name="attackTimeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Attack</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="0" >
+ <widget class="Awl::Knob" name="attackKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="0" >
+ <widget class="QLabel" name="detuneLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Detune</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0" >
+ <widget class="Awl::Knob" name="detuneKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" >
+ <widget class="QLabel" name="brightnessLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Brightness</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" >
+ <widget class="Awl::Knob" name="brightnessKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <widget class="QLabel" name="modulationLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Modulation</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="Awl::Knob" name="modulationKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="channelPanLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Pan</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="channelVolumeLabel" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="text" >
+ <string>Volume</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="channelVolumeKnob" >
+ <property name="minimumSize" >
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="cursor" >
+ <cursorShape>PointingHandCursor</cursorShape>
+ </property>
+ <property name="maxValue" >
+ <double>1.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>0.100000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>0.200000000000000</double>
+ </property>
+ <property name="scaleSize" >
+ <number>270</number>
+ </property>
+ <property name="markSize" >
+ <number>6</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <customwidgets>
+ <customwidget>
+ <class>Awl::VolKnob</class>
+ <extends>Awl::Knob</extends>
+ <header>awl/volknob.h</header>
+ </customwidget>
+ <customwidget>
+ <class>Awl::Knob</class>
+ <extends>QWidget</extends>
+ <header>awl/knob.h</header>
+ </customwidget>
+ <customwidget>
+ <class>Awl::FloatEntry</class>
+ <extends>QLineEdit</extends>
+ <header>awl/floatentry.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>deicsOnzeTabWidget</tabstop>
+ <tabstop>presetLineEdit</tabstop>
+ <tabstop>feedbackSlider</tabstop>
+ <tabstop>LFOSyncCheckBox</tabstop>
+ <tabstop>PModSensSlider</tabstop>
+ <tabstop>LFOWaveComboBox</tabstop>
+ <tabstop>AModSensSlider</tabstop>
+ <tabstop>PModDepthSlider</tabstop>
+ <tabstop>AModDepthSlider</tabstop>
+ <tabstop>LFOSpeedSlider</tabstop>
+ <tabstop>LFODelaySlider</tabstop>
+ <tabstop>algorithmComboBox</tabstop>
+ <tabstop>LS1Slider</tabstop>
+ <tabstop>RS1Slider</tabstop>
+ <tabstop>OUT1Slider</tabstop>
+ <tabstop>Fix1CheckBox</tabstop>
+ <tabstop>AME1CheckBox</tabstop>
+ <tabstop>EBS1Slider</tabstop>
+ <tabstop>DET1Slider</tabstop>
+ <tabstop>KVS1Slider</tabstop>
+ <tabstop>WaveForm1ComboBox</tabstop>
+ <tabstop>EGS1ComboBox</tabstop>
+ <tabstop>LS2Slider</tabstop>
+ <tabstop>RS2Slider</tabstop>
+ <tabstop>OUT2Slider</tabstop>
+ <tabstop>AME2CheckBox</tabstop>
+ <tabstop>EBS2Slider</tabstop>
+ <tabstop>DET2Slider</tabstop>
+ <tabstop>KVS2Slider</tabstop>
+ <tabstop>WaveForm2ComboBox</tabstop>
+ <tabstop>EGS2ComboBox</tabstop>
+ <tabstop>LS3Slider</tabstop>
+ <tabstop>RS3Slider</tabstop>
+ <tabstop>OUT3Slider</tabstop>
+ <tabstop>AME3CheckBox</tabstop>
+ <tabstop>EBS3Slider</tabstop>
+ <tabstop>DET3Slider</tabstop>
+ <tabstop>KVS3Slider</tabstop>
+ <tabstop>WaveForm3ComboBox</tabstop>
+ <tabstop>EGS3ComboBox</tabstop>
+ <tabstop>LS4Slider</tabstop>
+ <tabstop>RS4Slider</tabstop>
+ <tabstop>OUT4Slider</tabstop>
+ <tabstop>AME4CheckBox</tabstop>
+ <tabstop>EBS4Slider</tabstop>
+ <tabstop>DET4Slider</tabstop>
+ <tabstop>KVS4Slider</tabstop>
+ <tabstop>WaveForm4ComboBox</tabstop>
+ <tabstop>EGS4ComboBox</tabstop>
+ <tabstop>subcategoryLineEdit</tabstop>
+ <tabstop>categoryLineEdit</tabstop>
+ <tabstop>lbankSpinBox</tabstop>
+ <tabstop>progSpinBox</tabstop>
+ <tabstop>feedbackSpinBox</tabstop>
+ <tabstop>PModSensSpinBox</tabstop>
+ <tabstop>AModSensSpinBox</tabstop>
+ <tabstop>PModDepthSpinBox</tabstop>
+ <tabstop>AModDepthSpinBox</tabstop>
+ <tabstop>LFOSpeedSpinBox</tabstop>
+ <tabstop>LFODelaySpinBox</tabstop>
+ <tabstop>CoarseRatio1SpinBox</tabstop>
+ <tabstop>FineRatio1SpinBox</tabstop>
+ <tabstop>Freq1SpinBox</tabstop>
+ <tabstop>LS1SpinBox</tabstop>
+ <tabstop>RS1SpinBox</tabstop>
+ <tabstop>OUT1SpinBox</tabstop>
+ <tabstop>EBS1SpinBox</tabstop>
+ <tabstop>KVS1SpinBox</tabstop>
+ <tabstop>DET1SpinBox</tabstop>
+ <tabstop>AR1SpinBox</tabstop>
+ <tabstop>D1R1SpinBox</tabstop>
+ <tabstop>D1L1SpinBox</tabstop>
+ <tabstop>D2R1SpinBox</tabstop>
+ <tabstop>RR1SpinBox</tabstop>
+ <tabstop>Fix2CheckBox</tabstop>
+ <tabstop>Freq2SpinBox</tabstop>
+ <tabstop>CoarseRatio2SpinBox</tabstop>
+ <tabstop>FineRatio2SpinBox</tabstop>
+ <tabstop>LS2SpinBox</tabstop>
+ <tabstop>RS2SpinBox</tabstop>
+ <tabstop>OUT2SpinBox</tabstop>
+ <tabstop>EBS2SpinBox</tabstop>
+ <tabstop>KVS2SpinBox</tabstop>
+ <tabstop>DET2SpinBox</tabstop>
+ <tabstop>AR2SpinBox</tabstop>
+ <tabstop>D1R2SpinBox</tabstop>
+ <tabstop>D1L2SpinBox</tabstop>
+ <tabstop>D2R2SpinBox</tabstop>
+ <tabstop>RR2SpinBox</tabstop>
+ <tabstop>Fix3CheckBox</tabstop>
+ <tabstop>CoarseRatio3SpinBox</tabstop>
+ <tabstop>FineRatio3SpinBox</tabstop>
+ <tabstop>Freq3SpinBox</tabstop>
+ <tabstop>AR3SpinBox</tabstop>
+ <tabstop>D1R3SpinBox</tabstop>
+ <tabstop>D1L3SpinBox</tabstop>
+ <tabstop>D2R3SpinBox</tabstop>
+ <tabstop>RR3SpinBox</tabstop>
+ <tabstop>LS3SpinBox</tabstop>
+ <tabstop>RS3SpinBox</tabstop>
+ <tabstop>OUT3SpinBox</tabstop>
+ <tabstop>EBS3SpinBox</tabstop>
+ <tabstop>KVS3SpinBox</tabstop>
+ <tabstop>DET3SpinBox</tabstop>
+ <tabstop>Fix4CheckBox</tabstop>
+ <tabstop>CoarseRatio4SpinBox</tabstop>
+ <tabstop>FineRatio4SpinBox</tabstop>
+ <tabstop>Freq4SpinBox</tabstop>
+ <tabstop>LS4SpinBox</tabstop>
+ <tabstop>RS4SpinBox</tabstop>
+ <tabstop>OUT4SpinBox</tabstop>
+ <tabstop>EBS4SpinBox</tabstop>
+ <tabstop>KVS4SpinBox</tabstop>
+ <tabstop>DET4SpinBox</tabstop>
+ <tabstop>AR4SpinBox</tabstop>
+ <tabstop>D1R4SpinBox</tabstop>
+ <tabstop>D1L4SpinBox</tabstop>
+ <tabstop>D2R4SpinBox</tabstop>
+ <tabstop>RR4SpinBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>feedbackSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>feedbackSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>feedbackSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>feedbackSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PModSensSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModSensSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PModSensSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModSensSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>AModSensSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModSensSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>AModSensSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModSensSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PModDepthSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModDepthSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>AModDepthSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModDepthSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LFOSpeedSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFOSpeedSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LFOSpeedSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFOSpeedSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LFODelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFODelaySpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LFODelaySpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFODelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PModDepthSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModDepthSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq1SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio1SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio1SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq2SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio2SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio2SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq3SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio3SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio3SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq4SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio4SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio4SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>LS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>RS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>DET4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>EBS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>KVS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>110</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>redSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>redSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>redSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>redSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>greenSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>greenSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>greenSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>greenSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>blueSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>blueSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>blueSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>blueSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcVolumeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcVolumeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>285</x>
+ <y>155</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>494</x>
+ <y>158</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcVolumeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcVolumeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>494</x>
+ <y>158</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>285</x>
+ <y>155</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcPitchSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcPitchSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>285</x>
+ <y>180</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>494</x>
+ <y>177</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcPitchSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcPitchSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>494</x>
+ <y>177</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>285</x>
+ <y>180</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcAmplitudeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcAmplitudeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>494</x>
+ <y>216</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>285</x>
+ <y>219</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fcAmplitudeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>fcAmplitudeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>285</x>
+ <y>219</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>494</x>
+ <y>216</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pitchBendRangeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>pitchBendRangeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>486</x>
+ <y>483</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>538</x>
+ <y>486</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pitchBendRangeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>pitchBendRangeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>538</x>
+ <y>486</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>486</x>
+ <y>483</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PortamentoTimeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PortamentoTimeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>293</x>
+ <y>483</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>345</x>
+ <y>486</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>PortamentoTimeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PortamentoTimeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>345</x>
+ <y>486</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>293</x>
+ <y>483</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mwPitchSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>mwPitchSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>224</x>
+ <y>168</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>171</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mwAmplitudeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>mwAmplitudeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>223</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>224</x>
+ <y>220</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mwAmplitudeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>mwAmplitudeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>224</x>
+ <y>220</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>223</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>mwPitchSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>mwPitchSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>171</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>224</x>
+ <y>168</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcPitchSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcPitchSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>147</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>150</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcAmplitudeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcAmplitudeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>178</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>181</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcPitchBiasSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcPitchBiasSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>209</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>212</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcEgBiasSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcEgBiasSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>240</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>243</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcPitchSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcPitchSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>150</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcEgBiasSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcEgBiasSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>243</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>240</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atPitchSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atPitchSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>147</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>150</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atAmplitudeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atAmplitudeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>181</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>178</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atAmplitudeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atAmplitudeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>178</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>181</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atPitchBiasSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atPitchBiasSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>209</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>212</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atPitchBiasSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atPitchBiasSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>212</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>209</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atEgBiasSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atEgBiasSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>240</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>243</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atPitchSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atPitchSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>150</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>atEgBiasSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>atEgBiasSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>243</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>240</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcPitchSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcPitchSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>150</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcAmplitudeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcAmplitudeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>181</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>178</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcPitchBiasSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcPitchBiasSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>212</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>209</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bcEgBiasSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bcEgBiasSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>243</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>248</x>
+ <y>240</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>OUT2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>OUT2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>66</x>
+ <y>109</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>96</x>
+ <y>109</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chChorusSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chChorusSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>487</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>152</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chChorusSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chChorusSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>152</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>487</x>
+ <y>149</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chReverbSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chReverbSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>487</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>539</x>
+ <y>152</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chReverbSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chReverbSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>539</x>
+ <y>152</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>487</x>
+ <y>149</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>transposeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>transposeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>transposeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>transposeSlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>111</x>
+ <y>114</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chDelaySpinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>351</x>
+ <y>319</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>403</x>
+ <y>322</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>chDelaySpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>chDelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>403</x>
+ <y>322</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>351</x>
+ <y>319</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayPanLFOFreqKnob</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayPanLFOFreqFloatentry</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>477</x>
+ <y>308</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>498</x>
+ <y>308</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayPanLFOFreqFloatentry</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayPanLFOFreqKnob</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>497</x>
+ <y>319</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>477</x>
+ <y>326</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayBPMKnob</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayBPMFloatentry</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>84</x>
+ <y>389</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>104</x>
+ <y>393</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayBPMFloatentry</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayBPMKnob</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>121</x>
+ <y>404</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>78</x>
+ <y>409</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayBeatRatioKnob</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayBeatRatioFloatentry</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>212</x>
+ <y>386</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>252</x>
+ <y>392</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayBeatRatioFloatentry</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayBeatRatioKnob</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>271</x>
+ <y>398</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>228</x>
+ <y>411</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayFeedbackKnob</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayFeedbackFloatentry</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>347</x>
+ <y>388</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>368</x>
+ <y>393</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayFeedbackFloatentry</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayFeedbackKnob</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>379</x>
+ <y>405</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>352</x>
+ <y>409</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayPanLFODepthKnob</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayPanLFODepthFloatentry</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>464</x>
+ <y>387</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>507</x>
+ <y>396</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>delayPanLFODepthFloatentry</sender>
+ <signal>valueChanged(double,int)</signal>
+ <receiver>delayPanLFODepthKnob</receiver>
+ <slot>setValue(double)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>518</x>
+ <y>407</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>471</x>
+ <y>409</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.cpp b/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.cpp
new file mode 100644
index 00000000..14c45ab9
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.cpp
@@ -0,0 +1,499 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+//
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "deicsonzeplugin.h"
+#include "plugin.h"
+#include "plugingui.h"
+#include "ctrl.h"
+#include "fastlog.h"
+#include "muse/midi.h"
+#include "awl/floatentry.h"
+#include "awl/slider.h"
+#include "awl/checkbox.h"
+
+using Awl::FloatEntry;
+using Awl::Slider;
+using Awl::CheckBox;
+
+class PluginDialog;
+
+void DeicsOnze::initPluginReverb(Plugin* pluginReverb) {
+ //init plugin
+ if(_pluginIReverb) delete(_pluginIReverb);
+ _pluginIReverb = new PluginI(NULL);
+
+ _pluginIReverb->initPluginInstance(pluginReverb, 2);
+
+ for(int i = 0; i < pluginReverb->parameter(); i++) {
+ Ctrl* c = new Ctrl();
+ c->setCurVal((float)pluginReverb->defaultValue(i));
+ _pluginIReverb->setControllerList(c);
+ //setReverbParam(i, pluginReverb->defaultValue(i));
+ }
+
+ //send build gui to the gui
+ char data;
+ data = SYSEX_BUILDGUIREVERB;
+ MidiEvent evSysex(0,ME_SYSEX,(const unsigned char*)&data, 1);
+ _gui->writeEvent(evSysex);
+}
+
+void DeicsOnze::initPluginChorus(Plugin* pluginChorus) {
+ if(_pluginIChorus) delete(_pluginIChorus);
+ _pluginIChorus = new PluginI(NULL);
+
+ _pluginIChorus->initPluginInstance(pluginChorus, 2);
+
+ for(int i = 0; i < pluginChorus->parameter(); i++) {
+ Ctrl* c = new Ctrl();
+ c->setCurVal((float)pluginChorus->defaultValue(i));
+ _pluginIChorus->setControllerList(c);
+ //setChorusParam(i, pluginChorus->defaultValue(i));
+}
+
+ //send build gui to the gui
+ char data;
+ data = SYSEX_BUILDGUICHORUS;
+ MidiEvent evSysex(0,ME_SYSEX,(const unsigned char*)&data, 1);
+ _gui->writeEvent(evSysex);
+}
+
+void DeicsOnze::initPluginDelay(Plugin* pluginDelay) {
+ if(_pluginIDelay) delete(_pluginIDelay);
+ _pluginIDelay = new PluginI(NULL);
+
+ _pluginIDelay->initPluginInstance(pluginDelay, 2);
+
+ for(int i = 0; i < pluginDelay->parameter(); i++) {
+ Ctrl* c = new Ctrl();
+ c->setCurVal((float)pluginDelay->defaultValue(i));
+ _pluginIDelay->setControllerList(c);
+ //setChorusParam(i, pluginDelay->defaultValue(i));
+ }
+ setDelayDryWet(1);
+
+ float f;
+ char dataDelayBPM[sizeof(float)+1];
+ dataDelayBPM[0] = SYSEX_DELAYBPM;
+ f = getDelayBPM();
+ memcpy(&dataDelayBPM[1], &f, sizeof(float));
+ MidiEvent evSysexDelayBPM(0,ME_SYSEX,
+ (const unsigned char*)dataDelayBPM,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayBPM);
+ char dataDelayBeatRatio[sizeof(float)+1];
+ dataDelayBeatRatio[0] = SYSEX_DELAYBEATRATIO;
+ f = getDelayBeatRatio();
+ memcpy(&dataDelayBeatRatio[1], &f, sizeof(float));
+ MidiEvent evSysexDelayBeatRatio(0,ME_SYSEX,
+ (const unsigned char*)dataDelayBeatRatio,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayBeatRatio);
+ char dataDelayFeedback[sizeof(float)+1];
+ dataDelayFeedback[0] = SYSEX_DELAYFEEDBACK;
+ f = getDelayFeedback();
+ memcpy(&dataDelayFeedback[1], &f, sizeof(float));
+ MidiEvent evSysexDelayFeedback(0,ME_SYSEX,
+ (const unsigned char*)dataDelayFeedback,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayFeedback);
+ char dataDelayLFOFreq[sizeof(float)+1];
+ dataDelayLFOFreq[0] = SYSEX_DELAYLFOFREQ;
+ f = getDelayLFOFreq();
+ memcpy(&dataDelayLFOFreq[1], &f, sizeof(float));
+ MidiEvent evSysexDelayLFOFreq(0,ME_SYSEX,
+ (const unsigned char*)dataDelayLFOFreq,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayLFOFreq);
+ char dataDelayLFODepth[sizeof(float)+1];
+ dataDelayLFODepth[0] = SYSEX_DELAYLFODEPTH;
+ f = getDelayLFODepth();
+ memcpy(&dataDelayLFODepth, &f, sizeof(float)+1);
+ MidiEvent evSysexDelayLFODepth(0,ME_SYSEX,
+ (const unsigned char*)dataDelayLFODepth,
+ sizeof(float)+1);
+ _gui->writeEvent(evSysexDelayLFODepth);
+}
+
+void DeicsOnze::setReverbParam(int index, double val) {
+ if(_pluginIReverb) _pluginIReverb->controller(index)->setCurVal((float)val);
+ else printf("Warning : no DeicsOnze reverb loaded\n");
+}
+void DeicsOnze::setChorusParam(int index, double val) {
+ if(_pluginIChorus) _pluginIChorus->controller(index)->setCurVal((float)val);
+ else printf("Warning : no DeicsOnze chorus loaded\n");
+}
+
+double DeicsOnze::getReverbParam(int index) {
+ if(_pluginIReverb) return _pluginIReverb->controller(index)->curVal().f;
+ else {
+ return 0.0;
+ printf("Warning : no DeicsOnze reverb loaded\n");
+ }
+}
+
+double DeicsOnze::getChorusParam(int index) {
+ if(_pluginIChorus) return _pluginIChorus->controller(index)->curVal().f;
+ else {
+ return 0.0;
+ printf("Warning : no DeicsOnze chorus loaded\n");
+ }
+}
+
+void DeicsOnzeGui::addPluginCheckBox(int index, QString text, bool toggled,
+ QWidget* parent, QGridLayout* grid,
+ bool isReverb) {
+ CheckBox* cb = new CheckBox(parent);
+ cb->setId(index);
+ cb->setText(text);
+ cb->setChecked(toggled);
+ grid->addWidget(cb, index, 0);
+ //push on vectors
+ if(isReverb) {
+ _reverbSliderVector.push_back(NULL);
+ _reverbFloatEntryVector.push_back(NULL);
+ _reverbCheckBoxVector.push_back(cb);
+ }
+ else {
+ _chorusSliderVector.push_back(NULL);
+ _chorusFloatEntryVector.push_back(NULL);
+ _chorusCheckBoxVector.push_back(cb);
+ }
+ //connect slots
+ if(isReverb) {
+ connect(cb, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setReverbCheckBox(double, int)));
+ }
+ else {
+ connect(cb, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setChorusCheckBox(double, int)));
+ }
+}
+
+void DeicsOnzeGui::addPluginIntSlider(int index, QString text, double min,
+ double max, double val, QWidget* parent,
+ QGridLayout* grid, bool isReverb) {
+ addPluginSlider(index, text, false, min, max, val, parent, grid, isReverb);
+}
+
+void DeicsOnzeGui::addPluginSlider(int index, QString text, bool isLog,
+ double min, double max, double val,
+ QWidget* parent, QGridLayout* grid,
+ bool isReverb) {
+ QLabel* l = new QLabel(text, parent);
+ grid->addWidget(l, index, 0);
+ FloatEntry* f = new FloatEntry(parent);
+ f->setValue(val);
+ f->setMinValue(min);
+ f->setMaxValue(max);
+ f->setMaximumWidth(72);
+ grid->addWidget(f, index, 1);
+ Slider* s = new Slider(parent);
+ s->setId(index);
+ s->setLog(isLog);
+ s->setLogRange(min, max);
+ s->setValue(val);
+ s->setOrientation(Qt::Horizontal);
+ //s->setFixedHeight(h);
+ s->setLineStep((min-max)/100.0);
+ s->setPageStep((min-max)/10.0);
+ grid->addWidget(s, index, 2);
+ //push on vectors
+ if(isReverb) {
+ _reverbSliderVector.push_back(s);
+ _reverbFloatEntryVector.push_back(f);
+ _reverbCheckBoxVector.push_back(NULL);
+ }
+ else {
+ _chorusSliderVector.push_back(s);
+ _chorusFloatEntryVector.push_back(f);
+ _chorusCheckBoxVector.push_back(NULL);
+ }
+ //connect slots
+ if(isReverb) {
+ connect(f, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setReverbFloatEntry(double, int)));
+ connect(s, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setReverbSlider(double, int)));
+ }
+ else {
+ connect(f, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setChorusFloatEntry(double, int)));
+ connect(s, SIGNAL(valueChanged(double, int)),
+ this, SLOT(setChorusSlider(double, int)));
+ }
+}
+
+void DeicsOnzeGui::buildGuiReverb() {
+ PluginI* plugI = _deicsOnze->_pluginIReverb;
+ QString name = plugI->name();
+ name.resize(name.size()-2);
+ updateLadspaReverbLineEdit(name);
+ //build super layout
+ if(parametersReverbGroupBox->layout())
+ delete(parametersReverbGroupBox->layout());
+ QGridLayout* superLayout = new QGridLayout(parametersReverbGroupBox);
+ parametersReverbGroupBox->setLayout(superLayout);
+ //build super widget
+ if(_reverbSuperWidget) delete(_reverbSuperWidget);
+ _reverbSuperWidget = new QWidget(parametersReverbGroupBox);
+ superLayout->addWidget(_reverbSuperWidget);
+ //build grid
+ QGridLayout* grid = new QGridLayout(_reverbSuperWidget);
+ _reverbSuperWidget->setLayout(grid);
+ grid->setSpacing(0);
+ //init vectors
+ if(!_reverbSliderVector.empty()) _reverbSliderVector.clear();
+ if(!_reverbFloatEntryVector.empty()) _reverbFloatEntryVector.clear();
+ if(!_reverbCheckBoxVector.empty()) _reverbCheckBoxVector.clear();
+ //build sliders
+ for(int i = 0; i < plugI->plugin()->parameter(); i++) {
+ double min, max, val;
+ plugI->range(i, &min, &max);
+ val = _deicsOnze->getReverbParam(i);
+ if(plugI->isBool(i))
+ addPluginCheckBox(i, plugI->getParameterName(i), val > 0.0,
+ _reverbSuperWidget, grid, true);
+ else if(plugI->isInt(i)) {
+ addPluginIntSlider(i, plugI->getParameterName(i), rint(min), rint(max),
+ rint(val), _reverbSuperWidget, grid, true);
+ }
+ else {
+ addPluginSlider(i, plugI->getParameterName(i), plugI->isLog(i),
+ min, max, val, _reverbSuperWidget, grid, true);
+ }
+ }
+ //update colors of the new sliders (and the whole gui actually)
+ setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*ebColor));
+}
+
+void DeicsOnzeGui::buildGuiChorus() {
+ PluginI* plugI = _deicsOnze->_pluginIChorus;
+ QString name = plugI->name();
+ name.resize(name.size()-2);
+ updateLadspaChorusLineEdit(name);
+ //build super layout
+ if(parametersChorusGroupBox->layout())
+ delete(parametersChorusGroupBox->layout());
+ QGridLayout* superLayout = new QGridLayout(parametersChorusGroupBox);
+ parametersChorusGroupBox->setLayout(superLayout);
+ //build super widget
+ if(_chorusSuperWidget) delete(_chorusSuperWidget);
+ _chorusSuperWidget = new QWidget(parametersChorusGroupBox);
+ superLayout->addWidget(_chorusSuperWidget);
+ //build grid
+ QGridLayout* grid = new QGridLayout(_chorusSuperWidget);
+ _chorusSuperWidget->setLayout(grid);
+ grid->setSpacing(2);
+ //init vectors
+ if(!_chorusSliderVector.empty()) _chorusSliderVector.clear();
+ if(!_chorusFloatEntryVector.empty()) _chorusFloatEntryVector.clear();
+ if(!_chorusCheckBoxVector.empty()) _chorusCheckBoxVector.clear();
+ //build sliders
+ for(int i = 0; i < plugI->plugin()->parameter(); i++) {
+ double min, max, val;
+ plugI->range(i, &min, &max);
+ val = _deicsOnze->getChorusParam(i);
+ if(plugI->isBool(i))
+ addPluginCheckBox(i, plugI->getParameterName(i), val > 0.0,
+ _chorusSuperWidget, grid, false);
+ else if(plugI->isInt(i)) {
+ addPluginIntSlider(i, plugI->getParameterName(i), rint(min), rint(max),
+ rint(val), _chorusSuperWidget, grid, false);
+ }
+ else {
+ addPluginSlider(i, plugI->getParameterName(i), plugI->isLog(i),
+ min, max, val, _chorusSuperWidget, grid, false);
+ }
+ }
+ //update colors of the new sliders (and the whole gui actually)
+ setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
+ setEditBackgroundColor(reinterpret_cast<const QColor &>(*ebColor));
+}
+
+//setReverbCheckBox is used, by the way, to send the value
+//of the parameter because it sends a double and does not
+//change any thing
+void DeicsOnzeGui::setReverbCheckBox(double v, int i) {
+ float f = (float)v;
+ unsigned char* message = new unsigned char[2+sizeof(float)];
+ message[0]=SYSEX_REVERBPARAM;
+ if(i<256) {
+ message[1]=(unsigned char)i;
+ memcpy(&message[2], &f, sizeof(float));
+ sendSysex(message, 2+sizeof(float));
+ }
+ else printf("setReverbCheckBox Error : cannot send controller upper than 225\n");
+}
+
+//setChorusCheckBox is used, by the way, to send the value
+//of the parameter because it sends a double and does not
+//change any thing
+void DeicsOnzeGui::setChorusCheckBox(double v, int i) {
+ float f = (float)v;
+ unsigned char* message = new unsigned char[2+sizeof(float)];
+ message[0]=SYSEX_CHORUSPARAM;
+ if(i<256) {
+ message[1]=(unsigned char)i;
+ memcpy(&message[2], &f, sizeof(float));
+ sendSysex(message, 2+sizeof(float));
+ }
+ else printf("setChorusCheckBox Error : cannot send controller upper than 225\n");
+}
+
+void DeicsOnzeGui::setReverbFloatEntry(double v, int i) {
+ if(_deicsOnze->_pluginIReverb) {
+ if(_deicsOnze->_pluginIReverb->isInt(i)) v = rint(v);
+ updateReverbFloatEntry(v, i);
+ updateReverbSlider(v, i);
+ setReverbCheckBox(v, i); //because this send the SYSEX
+ }
+ else printf("Warning : no DeicsOnze reverb loaded\n");
+}
+void DeicsOnzeGui::setReverbSlider(double v, int i) {
+ if(_deicsOnze->_pluginIReverb) {
+ if(_deicsOnze->_pluginIReverb->isInt(i)) v = rint(v);
+ updateReverbFloatEntry(v, i);
+ updateReverbSlider(v, i);
+ setReverbCheckBox(v, i); //because this send the SYSEX
+ }
+ else printf("Warning : no DeicsOnze reverb loaded\n");
+}
+void DeicsOnzeGui::setChorusFloatEntry(double v, int i) {
+ if(_deicsOnze->_pluginIReverb) {
+ if(_deicsOnze->_pluginIChorus->isInt(i)) v = rint(v);
+ updateChorusFloatEntry(v, i);
+ updateChorusSlider(v, i);
+ setChorusCheckBox(v, i); //because this send the SYSEX
+ }
+ else printf("Warning : no DeicsOnze chorus loaded\n");
+}
+void DeicsOnzeGui::setChorusSlider(double v, int i) {
+ if(_deicsOnze->_pluginIReverb) {
+ if(_deicsOnze->_pluginIChorus->isInt(i)) v = rint(v);
+ updateChorusSlider(v, i);
+ updateChorusFloatEntry(v, i);
+ setChorusCheckBox(v, i); //because this send the SYSEX
+ }
+ else printf("Warning : no DeicsOnze chorus loaded\n");
+}
+
+//updates
+void DeicsOnzeGui::updateReverbSlider(double v, int i) {
+ if(i < (int)_reverbSliderVector.size() && _reverbSliderVector[i]) {
+ _reverbSliderVector[i]->blockSignals(true);
+ _reverbSliderVector[i]->setValue(v);
+ _reverbSliderVector[i]->blockSignals(false);
+ }
+}
+void DeicsOnzeGui::updateReverbFloatEntry(double v, int i) {
+ if(i < (int)_reverbFloatEntryVector.size() && _reverbFloatEntryVector[i]) {
+ _reverbFloatEntryVector[i]->blockSignals(true);
+ _reverbFloatEntryVector[i]->setValue(v);
+ _reverbFloatEntryVector[i]->blockSignals(false);
+ }
+}
+void DeicsOnzeGui::updateChorusSlider(double v, int i) {
+ if(i < (int)_reverbSliderVector.size() && _reverbSliderVector[i]) {
+ _chorusSliderVector[i]->blockSignals(true);
+ _chorusSliderVector[i]->setValue(v);
+ _chorusSliderVector[i]->blockSignals(false);
+ }
+}
+void DeicsOnzeGui::updateChorusFloatEntry(double v, int i) {
+ if(i < (int)_chorusFloatEntryVector.size() && _chorusFloatEntryVector[i]) {
+ _chorusFloatEntryVector[i]->blockSignals(true);
+ _chorusFloatEntryVector[i]->setValue(v);
+ _chorusFloatEntryVector[i]->blockSignals(false);
+ }
+}
+
+//-------------------------------------------------------------
+// set Delay
+//-------------------------------------------------------------
+void DeicsOnze::setDelayBPM(float val) {
+ if(_pluginIDelay) _pluginIDelay->controller(0)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
+void DeicsOnze::setDelayBeatRatio(float val) {
+ if(_pluginIDelay) _pluginIDelay->controller(1)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
+float DeicsOnze::getDelayBPM() {
+ if(_pluginIDelay) return _pluginIDelay->controller(0)->curVal().f;
+ else {
+ printf("Warning : no DeicsOnze delay loaded\n");
+ return 0.0;
+ }
+}
+float DeicsOnze::getDelayBeatRatio() {
+ if(_pluginIDelay) return _pluginIDelay->controller(1)->curVal().f;
+ else {
+ printf("Warning : no DeicsOnze delay loaded\n");
+ return 0.0;
+ }
+}
+void DeicsOnze::setDelayFeedback(float val) {
+ if(_pluginIDelay) return _pluginIDelay->controller(2)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
+float DeicsOnze::getDelayFeedback() {
+ if(_pluginIDelay) return _pluginIDelay->controller(2)->curVal().f;
+ else {
+ printf("Warning : no DeicsOnze delay loaded\n");
+ return 0.0;
+ }
+}
+void DeicsOnze::setDelayLFOFreq(float val) {
+ if(_pluginIDelay) _pluginIDelay->controller(3)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
+float DeicsOnze::getDelayLFOFreq() {
+ if(_pluginIDelay) return _pluginIDelay->controller(3)->curVal().f;
+ else {
+ printf("Warning : no DeicsOnze delay loaded\n");
+ return 0.0;
+ }
+}
+void DeicsOnze::setDelayLFODepth(float val) {
+ if(_pluginIDelay) _pluginIDelay->controller(4)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
+float DeicsOnze::getDelayLFODepth() {
+ if(_pluginIDelay) return _pluginIDelay->controller(4)->curVal().f;
+ else {
+ printf("Warning : no DeicsOnze delay loaded\n");
+ return 0.0;
+ }
+}
+void DeicsOnze::setDelayDryWet(float val) {
+ if(_pluginIDelay) _pluginIDelay->controller(5)->setCurVal(val);
+ else printf("Warning : no DeicsOnze delay loaded\n");
+}
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.h b/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.h
new file mode 100644
index 00000000..d9527e23
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzeplugin.h
@@ -0,0 +1,40 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+//
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __DEICSONZEPLUGIN_H
+#define __DEICSONZEPLUGIN_H
+
+#include "deicsonze.h"
+#include "deicsonzegui.h"
+#include "plugins/pandelay/pandelaymodel.h"
+
+class DeicsOnze;
+class DeicsOnzeGui;
+
+#endif
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.cpp b/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.cpp
new file mode 100644
index 00000000..ef114014
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.cpp
@@ -0,0 +1,1194 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzepreset.cpp
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#include "deicsonzepreset.h"
+#include <iostream>
+#include <algorithm>
+
+//-----------------------------------------------------------
+// Constructor destructor
+//-----------------------------------------------------------
+Preset::Preset() {_subcategory=NULL;_isUsed=false;initPreset();}
+Preset::Preset(Subcategory* sub) {
+ _subcategory=sub;
+ _isUsed=false;
+ initPreset();
+ if(sub) sub->_presetVector.push_back(this);
+}
+Preset::Preset(Subcategory* sub, int pr) {
+ _subcategory=sub;
+ _isUsed=false;
+ initPreset();
+ prog=pr;
+ if(sub) sub->_presetVector.push_back(this);
+}
+Preset::~Preset() {
+ if(_subcategory) {
+ std::vector<Preset*>::iterator iB=_subcategory->_presetVector.begin();
+ std::vector<Preset*>::iterator iE=_subcategory->_presetVector.end();
+ std::vector<Preset*>::iterator iP=std::find(iB, iE, this);
+ if(iP!=iE) _subcategory->_presetVector.erase(iP);
+ else printf("Error : preset %s not found\n", name.c_str());
+ }
+}
+//----------------------------------------------------------
+// setIsUsed(bool b)
+// set the flag _isUsed and transmit in the parents
+//----------------------------------------------------------
+void Preset::setIsUsed(bool b) {
+ if(!_isUsed) {
+ _isUsed=b;
+ if(_subcategory) {
+ _subcategory->_isUsed=b;
+ if(_subcategory->_category) {
+ _subcategory->_category->_isUsed=b;
+ }
+ }
+ }
+}
+//----------------------------------------------------------
+// getHBankLBankProg
+// return the hbank, lbank and prog of the preset
+// warning : if there is not subcategory of category
+// the value l or h are let unchanged
+//----------------------------------------------------------
+void Preset::getHBankLBankProg(int* h, int* l, int* p) {
+ *p = prog;
+ if(_subcategory) {
+ *l = _subcategory->_lbank;
+ if(_subcategory->_category) *h = _subcategory->_category->_hbank;
+ }
+}
+//----------------------------------------------------------
+// linkSubcategory
+// links the preset to a subcategory parent and erase itself
+// from the last subcategory if not NULL
+//----------------------------------------------------------
+void Preset::linkSubcategory(Subcategory* sub) {
+ if(_subcategory) {
+ std::vector<Preset*> pv=_subcategory->_presetVector;
+ std::vector<Preset*>::iterator iP=find(pv.begin(),pv.end(),this);
+ if(iP!=pv.end()) pv.erase(iP);
+ else printf("Error linkSubcategory: preset %s not found\n",
+ name.c_str());
+ }
+ _subcategory=sub;
+ if(sub) sub->_presetVector.push_back(this);
+}
+//----------------------------------------------------------
+// linkCategory
+// links the subcategory to a category parent and erase itself
+// from the last category if not NULL
+//----------------------------------------------------------
+void Subcategory::linkCategory(Category* cat) {
+ if(_category) {
+ std::vector<Subcategory*> sv=_category->_subcategoryVector;
+ std::vector<Subcategory*>::iterator iS=find(sv.begin(),sv.end(),this);
+ if(iS!=sv.end()) sv.erase(iS);
+ else printf("Error linkCategory: preset %s not found\n",
+ _subcategoryName.c_str());
+ }
+ _category=cat;
+ if(cat) cat->_subcategoryVector.push_back(this);
+}
+
+
+//----------------------------------------------------------
+// linkSet
+// links the category to a set parent (there is always only one set)
+//----------------------------------------------------------
+void Category::linkSet(Set* s) {
+ _set=s;
+ if(s) s->_categoryVector.push_back(this);
+}
+
+//----------------------------------------------------------
+// Subcategory constructor and destruction
+//----------------------------------------------------------
+Subcategory::Subcategory() {_category=NULL;}
+Subcategory::Subcategory(Category* cat) {
+ _category=cat;
+ _isUsed=false;
+ if(cat) cat->_subcategoryVector.push_back(this);
+}
+Subcategory::Subcategory(const std::string name) {
+ _category=NULL;
+ _isUsed=false;
+ _subcategoryName=name;
+}
+Subcategory::Subcategory(Category* cat, const std::string name, int lbank) {
+ _category=cat;
+ _isUsed=false;
+ _subcategoryName=name;
+ _lbank=lbank;
+ if(cat) cat->_subcategoryVector.push_back(this);
+}
+Subcategory::~Subcategory() {
+ while(!_presetVector.empty()) delete(*_presetVector.begin());
+ if(_category) {
+ std::vector<Subcategory*>::iterator
+ iB=_category->_subcategoryVector.begin();
+ std::vector<Subcategory*>::iterator
+ iE=_category->_subcategoryVector.end();
+ std::vector<Subcategory*>::iterator iS=std::find(iB, iE, this);
+ if(iS!=iE) _category->_subcategoryVector.erase(iS);
+ else printf("Error : subcategory %s not found\n",
+ _subcategoryName.c_str());
+ }
+}
+
+//--------------------------------------------------------
+// Category constructor destructor
+//--------------------------------------------------------
+Category::Category() {_set=NULL;_isUsed=false;}
+Category::Category(Set* s) {
+ _set=s;
+ _isUsed=false;
+ if(s) s->_categoryVector.push_back(this);
+}
+Category::Category(Set* s,const std::string name, int hbank) {
+ _set=s;
+ _isUsed=false;
+ _categoryName=name;
+ _hbank=hbank;
+ if(s) s->_categoryVector.push_back(this);
+}
+Category::~Category() {
+ while(!_subcategoryVector.empty()) delete(*_subcategoryVector.begin());
+ if(_set) {
+ std::vector<Category*>::iterator iB=_set->_categoryVector.begin();
+ std::vector<Category*>::iterator iE=_set->_categoryVector.end();
+ std::vector<Category*>::iterator iC=std::find(iB, iE, this);
+ if(iC!=iE) _set->_categoryVector.erase(iC);
+ else printf("Error : category %s not found\n", _categoryName.c_str());
+ }
+}
+
+//---------------------------------------------------------
+// initPreset
+// put the preset in the initial state as defined by YAMAHA
+//---------------------------------------------------------
+void Preset::initPreset() {
+ //algorithm
+ algorithm=FIRST;
+ //feedeback
+ feedback=0;
+ //lfo
+ lfo.wave=TRIANGL;
+ lfo.speed=35;
+ lfo.delay=0;
+ lfo.pModDepth=0;
+ lfo.aModDepth=0;
+ lfo.sync=false;
+ //sensitivity
+ sensitivity.pitch=6;
+ sensitivity.amplitude=0;
+ sensitivity.ampOn[0]=false;
+ sensitivity.ampOn[1]=false;
+ sensitivity.ampOn[2]=false;
+ sensitivity.ampOn[3]=false;
+ sensitivity.egBias[0]=0;
+ sensitivity.egBias[1]=0;
+ sensitivity.egBias[2]=0;
+ sensitivity.egBias[3]=0;
+ sensitivity.keyVelocity[0]=0;
+ sensitivity.keyVelocity[1]=0;
+ sensitivity.keyVelocity[2]=0;
+ sensitivity.keyVelocity[3]=0;
+ //frequency
+ frequency[0].ratio=1.0;
+ frequency[1].ratio=1.0;
+ frequency[2].ratio=1.0;
+ frequency[3].ratio=1.0;
+ frequency[0].isFix=false;
+ frequency[1].isFix=false;
+ frequency[2].isFix=false;
+ frequency[3].isFix=false;
+ frequency[0].freq=255.0;
+ frequency[1].freq=255.0;
+ frequency[2].freq=255.0;
+ frequency[3].freq=255.0;
+ //oscWave
+ oscWave[0]=W1;
+ oscWave[1]=W1;
+ oscWave[2]=W1;
+ oscWave[3]=W1;
+ //detune
+ detune[0]=0;
+ detune[1]=0;
+ detune[2]=0;
+ detune[3]=0;
+ //eg
+ eg[0].ar=31;
+ eg[1].ar=31;
+ eg[2].ar=31;
+ eg[3].ar=31;
+ eg[0].d1r=31;
+ eg[1].d1r=31;
+ eg[2].d1r=31;
+ eg[3].d1r=31;
+ eg[0].d1l=15;
+ eg[1].d1l=15;
+ eg[2].d1l=15;
+ eg[3].d1l=15;
+ eg[0].d2r=0;
+ eg[1].d2r=0;
+ eg[2].d2r=0;
+ eg[3].d2r=0;
+ eg[0].rr=15;
+ eg[1].rr=15;
+ eg[2].rr=15;
+ eg[3].rr=15;
+ eg[0].egShift=VOF;
+ eg[1].egShift=VOF;
+ eg[2].egShift=VOF;
+ eg[3].egShift=VOF;
+ //pitchEg
+ pitchEg.pr1=99;
+ pitchEg.pr2=99;
+ pitchEg.pr3=99;
+ pitchEg.pl1=50;
+ pitchEg.pl2=50;
+ pitchEg.pl3=50;
+ //outLevel
+ outLevel[0]=90;
+ outLevel[1]=0;
+ outLevel[2]=0;
+ outLevel[3]=0;
+ //scaling
+ scaling.rate[0]=0;
+ scaling.rate[1]=0;
+ scaling.rate[2]=0;
+ scaling.rate[3]=0;
+ scaling.level[0]=0;
+ scaling.level[1]=0;
+ scaling.level[2]=0;
+ scaling.level[3]=0;
+ //function
+ function.transpose=0;
+ function.mode=POLY;
+ function.pBendRange=4;
+ function.portamento=FULL;
+ function.portamentoTime=0;
+ function.fcVolume=40;
+ function.fcPitch=0;
+ function.fcAmplitude=0;
+ function.mwPitch=50;
+ function.mwAmplitude=0;
+ function.bcPitch=0;
+ function.bcAmplitude=0;
+ function.bcPitchBias=0;
+ function.bcEgBias=0;
+ function.atPitch=0;
+ function.atAmplitude=0;
+ function.atPitchBias=0;
+ function.atEgBias=0;
+ function.reverbRate=0;
+ //globalDetune=0;
+ //Name
+ name="INITVOICE";
+}
+//---------------------------------------------------------
+// Preset::merge
+// copy the preset
+//---------------------------------------------------------
+void Preset::merge(Preset* p) {
+ if(p) {
+ //algorithm
+ algorithm=p->algorithm;
+ //feedeback
+ feedback=p->feedback;
+ //lfo
+ lfo.wave=p->lfo.wave;
+ lfo.speed=p->lfo.speed;
+ lfo.delay=p->lfo.delay;
+ lfo.pModDepth=p->lfo.pModDepth;
+ lfo.aModDepth=p->lfo.aModDepth;
+ lfo.sync=p->lfo.sync;
+ //sensitivity
+ sensitivity.pitch=p->sensitivity.pitch;
+ sensitivity.amplitude=p->sensitivity.amplitude;
+ for(int k=0; k<NBROP; k++) {
+ sensitivity.ampOn[k]=p->sensitivity.ampOn[k];
+ sensitivity.egBias[k]=p->sensitivity.egBias[k];
+ sensitivity.keyVelocity[k]=p->sensitivity.keyVelocity[k];
+ //frequency
+ frequency[k].ratio=p->frequency[k].ratio;
+ frequency[k].isFix=p->frequency[k].isFix;
+ frequency[k].freq=p->frequency[k].freq;
+ //oscWave
+ oscWave[k]=p->oscWave[k];
+ //detune
+ detune[k]=p->detune[k];
+ //eg
+ eg[k].ar=p->eg[k].ar;
+ eg[k].d1r=p->eg[k].d1r;
+ eg[k].d1l=p->eg[k].d1l;
+ eg[k].d2r=p->eg[k].d2r;
+ eg[k].rr=p->eg[k].rr;
+ eg[k].egShift=p->eg[k].egShift;
+ //outLevel
+ outLevel[k]=p->outLevel[k];
+ //scaling
+ scaling.rate[k]=p->scaling.rate[k];
+ scaling.level[k]=p->scaling.level[k];
+ }
+ //pitchEg
+ pitchEg.pr1=p->pitchEg.pr1;
+ pitchEg.pr2=p->pitchEg.pr2;
+ pitchEg.pr3=p->pitchEg.pr3;
+ pitchEg.pl1=p->pitchEg.pl1;
+ pitchEg.pl2=p->pitchEg.pl2;
+ pitchEg.pl3=p->pitchEg.pl3;
+ //function
+ function.transpose=p->function.transpose;
+ function.mode=p->function.mode;
+ function.pBendRange=p->function.pBendRange;
+ function.portamento=p->function.portamento;
+ function.portamentoTime=p->function.portamentoTime;
+ function.fcVolume=p->function.fcVolume;
+ function.fcPitch=p->function.fcPitch;
+ function.fcAmplitude=p->function.fcAmplitude;
+ function.mwPitch=p->function.mwPitch;
+ function.mwAmplitude=p->function.mwAmplitude;
+ function.bcPitch=p->function.bcPitch;
+ function.bcAmplitude=p->function.bcAmplitude;
+ function.bcPitchBias=p->function.bcPitchBias;
+ function.bcEgBias=p->function.bcEgBias;
+ function.atPitch=p->function.atPitch;
+ function.atAmplitude=p->function.atAmplitude;
+ function.atPitchBias=p->function.atPitchBias;
+ function.atEgBias=p->function.atEgBias;
+ function.reverbRate=p->function.reverbRate;
+ //globalDetune=p->globalDetune;
+ //Name
+ name=p->name;
+ }
+}
+//---------------------------------------------------------
+// findPreset
+// return the first preset corresponding of hbank, lbank, prog
+//---------------------------------------------------------
+Preset* Subcategory::findPreset(int prog) {
+ std::vector<Preset*>::iterator pvi;
+ for(pvi=_presetVector.begin(); pvi!=_presetVector.end(); pvi++) {
+ if((*pvi)->prog==prog) return(*pvi);
+ }
+ return NULL;
+}
+Preset* Category::findPreset(int lbank, int prog) {
+ Subcategory* s=findSubcategory(lbank);
+ if(s) {
+ Preset* p=s->findPreset(prog);
+ if(p) return(p);
+ }
+ return(NULL);
+}
+Preset* Set::findPreset(int hbank, int lbank, int prog) {
+ Category* c=findCategory(hbank);
+ if(c) {
+ Preset* p=c->findPreset(lbank, prog);
+ if(p) return(p);
+ }
+ return NULL;
+}
+
+//---------------------------------------------------------
+// isFreeHBank, firstFreeHBank -1 otherwise
+//---------------------------------------------------------
+bool Set::isFreeHBank(int hbank) {
+ if(findCategory(hbank)) return(false);
+ else return(true);
+}
+int Set::firstFreeHBank() {
+ for(int hbank=0; hbank<128; hbank++) if(isFreeHBank(hbank)) return(hbank);
+ return(-1);
+}
+//--------------------------------------------------------------
+// Set::merge
+//--------------------------------------------------------------
+void Set::merge(Category* c) {
+ if(isFreeHBank(c->_hbank)) c->linkSet(this);
+ else {
+ Category* cFromSet=findCategory(c->_hbank);
+ cFromSet->_categoryName=c->_categoryName;
+ for(std::vector<Subcategory*>::iterator
+ i=c->_subcategoryVector.begin();
+ i!=c->_subcategoryVector.end(); i++) cFromSet->merge(*i);
+ //delete(c);
+ }
+}
+
+bool Category::isFreeLBank(int lbank) {
+ if(findSubcategory(lbank)) return(false);
+ else return(true);
+}
+int Category::firstFreeLBank() {
+ for(int lbank=0; lbank<128; lbank++) if(isFreeLBank(lbank)) return(lbank);
+ return(-1);
+}
+//--------------------------------------------------------------
+// Category::merge
+//--------------------------------------------------------------
+void Category::merge(Subcategory* s) {
+ if(isFreeLBank(s->_lbank)) s->linkCategory(this);
+ else {
+ Subcategory* sFromCat=findSubcategory(s->_lbank);
+ sFromCat->_subcategoryName=s->_subcategoryName;
+ for(std::vector<Preset*>::iterator
+ i=s->_presetVector.begin();
+ i!=s->_presetVector.end(); i++) sFromCat->merge(*i);
+ //delete(s);
+ }
+}
+//---------------------------------------------------------
+// Category::unlink
+// unlink the subcategories, so don't delete them when delete
+//---------------------------------------------------------
+void Category::unlink() {
+ while(!_subcategoryVector.empty())
+ _subcategoryVector.erase(_subcategoryVector.begin());
+}
+
+bool Subcategory::isFreeProg(int pr) {
+ if(findPreset(pr)) return(false);
+ else return(true);
+}
+int Subcategory::firstFreeProg() {
+ for(int pr=0; pr<128; pr++) if(isFreeProg(pr)) return(pr);
+ return(-1);
+}
+//---------------------------------------------------------
+// Subcategory::unlink
+// unlink the presets, so don't delete them when delete
+//---------------------------------------------------------
+void Subcategory::unlink() {
+ while(!_presetVector.empty()) _presetVector.erase(_presetVector.begin());
+}
+
+//---------------------------------------------------------
+// findSubcategory
+// take hbank and lbank and return the subcategory corresponding,
+// NULL if doesn't exist
+//---------------------------------------------------------
+Subcategory* Set::findSubcategory(int hbank, int lbank) {
+ Category* c = findCategory(hbank);
+ Subcategory* s;
+ if(c) {
+ s = c->findSubcategory(lbank);
+ return s;
+ }
+ else return NULL;
+}
+
+//---------------------------------------------------------
+// findCategory
+// takes hbank a category and return the first category,
+// NULL if doesn't exist
+//---------------------------------------------------------
+Category* Set::findCategory(int hbank) {
+ std::vector<Category*>::iterator cvi;
+ for(cvi=_categoryVector.begin(); cvi!=_categoryVector.end(); cvi++)
+ if((*cvi)->_hbank==hbank) return(*cvi);
+ return(NULL);
+}
+//---------------------------------------------------------
+// findSubcategory
+// takes lbank a subcategory and return the subcategory
+// NULL if doesn't exist
+//---------------------------------------------------------
+Subcategory* Category::findSubcategory(int lbank) {
+ std::vector<Subcategory*>::iterator svi;
+ for(svi=_subcategoryVector.begin(); svi!=_subcategoryVector.end(); svi++)
+ if((*svi)->_lbank==lbank) return(*svi);
+ return(NULL);
+}
+//--------------------------------------------------------------
+// Subcategory::merge
+//--------------------------------------------------------------
+void Subcategory::merge(Preset* p) {
+ if(isFreeProg(p->prog)) p->linkSubcategory(this);
+ else {
+ Preset* pFromSub=findPreset(p->prog);
+ pFromSub->merge(p);
+ }
+}
+
+//---------------------------------------------------------
+// readSet
+//---------------------------------------------------------
+void Set::readSet(QDomNode setNode) {
+ while(!setNode.isNull()) {
+ QDomElement setEl = setNode.toElement();
+ if (setEl.isNull())
+ continue;
+ if (setEl.tagName() == "setName")
+ _setName=setEl.text().toAscii().data();
+ if (setEl.tagName() == "deicsOnzeCategory") {
+ //load category
+ QString version = setEl.attribute(QString("version"));
+ if (version == "1.0") {
+ Category* lCategory = new Category();
+ lCategory->readCategory(setNode.firstChild());
+ //printf("Ready to merge!\n");
+ merge(lCategory);
+ }
+ }
+ setNode = setNode.nextSibling();
+ }
+}
+
+//---------------------------------------------------------
+// writeSet
+//---------------------------------------------------------
+void Set::writeSet(AL::Xml* xml, bool onlyUsed) {
+ xml->stag("deicsOnzeSet version=\"1.0\"");
+ xml->tag("setName", QString(_setName.c_str()));
+ for(std::vector<Category*>::iterator i=_categoryVector.begin();
+ i!=_categoryVector.end(); i++) (*i)->writeCategory(xml, onlyUsed);
+ xml->etag("deicsOnzeSet");
+}
+
+//---------------------------------------------------------
+// readCategory
+//---------------------------------------------------------
+void Category::readCategory(QDomNode catNode) {
+ while(!catNode.isNull()) {
+ QDomElement catEl = catNode.toElement();
+ if (catEl.isNull())
+ continue;
+ if (catEl.tagName() == "categoryName")
+ _categoryName=catEl.text().toAscii().data();
+ if (catEl.tagName() == "hbank")
+ _hbank=catEl.text().toInt();
+ if (catEl.tagName() == "deicsOnzeSubcategory") {
+ //load Subcategory
+ QString version = catEl.attribute(QString("version"));
+ if (version == "1.0") {
+ Subcategory* lSubcategory = new Subcategory(this);
+ lSubcategory->readSubcategory(catNode.firstChild());
+ }
+ }
+ catNode = catNode.nextSibling();
+ }
+}
+
+//---------------------------------------------------------
+// writeCategory
+//---------------------------------------------------------
+void Category::writeCategory(AL::Xml* xml, bool onlyUsed) {
+ if((!onlyUsed || _isUsed)) {
+ xml->stag("deicsOnzeCategory version=\"1.0\"");
+ xml->tag("categoryName", QString(_categoryName.c_str()));
+ xml->tag("hbank", _hbank);
+ for(std::vector<Subcategory*>::iterator i=_subcategoryVector.begin();
+ i!=_subcategoryVector.end(); i++)
+ (*i)->writeSubcategory(xml, onlyUsed);
+ xml->etag("deicsOnzeCategory");
+ }
+}
+
+//---------------------------------------------------------
+// readSubcategory
+//---------------------------------------------------------
+void Subcategory::readSubcategory(QDomNode subNode) {
+ while(!subNode.isNull()) {
+ QDomElement subEl = subNode.toElement();
+ if (subEl.isNull())
+ continue;
+ if (subEl.tagName() == "subcategoryName")
+ _subcategoryName=subEl.text().toAscii().data();
+ if (subEl.tagName() == "lbank")
+ _lbank=subEl.text().toInt();
+ if (subEl.tagName() == "deicsOnzePreset") {
+ //load preset
+ QString version = subEl.attribute(QString("version"));
+ if (version == "1.0") {
+ Preset* lPreset = new Preset(this);
+ lPreset->readPreset(subNode.firstChild());
+ }
+ }
+ subNode = subNode.nextSibling();
+ }
+}
+
+//---------------------------------------------------------
+// writeSubcategory
+//---------------------------------------------------------
+void Subcategory::writeSubcategory(AL::Xml* xml, bool onlyUsed) {
+ if((!onlyUsed || _isUsed)) {
+ xml->stag("deicsOnzeSubcategory version=\"1.0\"");
+ xml->tag("subcategoryName", QString(_subcategoryName.c_str()));
+ xml->tag("lbank", _lbank);
+ for(std::vector<Preset*>::iterator i=_presetVector.begin();
+ i!=_presetVector.end(); i++) (*i)->writePreset(xml, onlyUsed);
+ xml->etag("deicsOnzeSubcategory");
+ }
+}
+
+//---------------------------------------------------------
+// readPreset
+//---------------------------------------------------------
+void Preset::readPreset(QDomNode presetNode) {
+ while(!presetNode.isNull()) {
+ QDomElement presetEl = presetNode.toElement();
+ if (presetEl.isNull())
+ continue;
+ //algorithm
+ if(presetEl.tagName()==ALGSTR)
+ algorithm=(presetEl.text()=="FIRST"? FIRST:
+ (presetEl.text()=="SECOND"? SECOND:
+ (presetEl.text()=="THIRD"? THIRD:
+ (presetEl.text()=="FOURTH"? FOURTH:
+ (presetEl.text()=="FIFTH"? FIFTH:
+ (presetEl.text()=="SIXTH"? SIXTH:
+ (presetEl.text()=="SEVENTH"? SEVENTH:EIGHTH)))))));
+ //feedback
+ else if(presetEl.tagName()==FEEDBACKSTR)
+ feedback=presetEl.text().toInt();
+ //quick edit
+ //else if(presetEl.tagName()==FINEBRIGHTNESSSTR)
+ // brightness=presetEl.text().toInt();
+ //else if(presetEl.tagName()==MODULATIONSTR)
+ // modulation=(unsigned char)presetEl.text().toInt();
+ //else if(presetEl.tagName()==GLOBALDETUNESTR)
+ // globalDetune=presetEl.text().toInt();
+ //else if(presetEl.tagName()==ATTACKSTR)
+ // attack=presetEl.text().toInt();
+ //else if(presetEl.tagName()==RELEASESTR)
+ // release=presetEl.text().toInt();
+ //lfo
+ else if(presetEl.tagName()=="lfo") {
+ QDomNode lfoNode = presetNode.firstChild();
+ while(!lfoNode.isNull()) {
+ QDomElement lfoEl = lfoNode.toElement();
+ if (lfoEl.isNull())
+ continue;
+ if(lfoEl.tagName()==WAVESTR)
+ lfo.wave=(lfoEl.text()=="SAWUP"? SAWUP:
+ (lfoEl.text()=="SQUARE"? SQUARE:
+ (lfoEl.text()=="TRIANGL"? TRIANGL:SHOLD)));
+ else if(lfoEl.tagName()==SPEEDSTR)
+ lfo.speed=lfoEl.text().toInt();
+ else if(lfoEl.tagName()==DELAYSTR)
+ lfo.delay=lfoEl.text().toInt();
+ else if(lfoEl.tagName()==PMODDEPTHSTR)
+ lfo.pModDepth=lfoEl.text().toInt();
+ else if(lfoEl.tagName()==AMODDEPTHSTR)
+ lfo.aModDepth=lfoEl.text().toInt();
+ else if(lfoEl.tagName()==SYNCSTR)
+ lfo.sync=(lfoEl.text()=="on"? true:false);
+ lfoNode = lfoNode.nextSibling();
+ }
+ }
+ //sensitivity
+ else if(presetEl.tagName()=="sensitivity") {
+ QDomNode sensitivityNode = presetNode.firstChild();
+ while(!sensitivityNode.isNull()) {
+ QDomElement sensitivityEl = sensitivityNode.toElement();
+ if (sensitivityEl.isNull())
+ continue;
+ QString st=sensitivityEl.tagName();
+ if(st==PMODSENSSTR)
+ sensitivity.pitch=sensitivityEl.text().toInt();
+ else if(st==AMSSTR)
+ sensitivity.amplitude=sensitivityEl.text().toInt();
+ else if(st.contains(AMESTR, Qt::CaseSensitive)) {
+ int op = (st.remove(AMESTR, Qt::CaseSensitive)).toInt()-1;
+ sensitivity.ampOn[op]=(sensitivityEl.text()=="on"? true:false);
+ }
+ else if(st.contains(EBSSTR, Qt::CaseSensitive)) {
+ int op = (st.remove(EBSSTR, Qt::CaseSensitive)).toInt()-1;
+ sensitivity.egBias[op]=sensitivityEl.text().toInt();
+ }
+ else if(st.contains(KVSSTR, Qt::CaseSensitive)) {
+ int op = (st.remove(KVSSTR, Qt::CaseSensitive)).toInt()-1;
+ sensitivity.keyVelocity[op]=sensitivityEl.text().toInt();
+ }
+ sensitivityNode =sensitivityNode.nextSibling();
+ }
+ }
+ //frequency
+ else if(presetEl.tagName()=="frequency") {
+ QDomNode frequencyNode = presetNode.firstChild();
+ while(!frequencyNode.isNull()) {
+ QDomElement frequencyEl = frequencyNode.toElement();
+ if (frequencyEl.isNull())
+ continue;
+ QString ft = frequencyEl.tagName();
+ if(ft.contains(RATIOSTR, Qt::CaseSensitive)) {
+ int op = (ft.remove(RATIOSTR, Qt::CaseSensitive)).toInt()-1;
+ frequency[op].ratio=frequencyEl.text().toDouble();
+ }
+ else if(ft.contains(FIXSTR, Qt::CaseSensitive)) {
+ int op = (ft.remove(FIXSTR, Qt::CaseSensitive)).toInt()-1;
+ frequency[op].isFix=(frequencyEl.text()=="yes"?true:false);
+ }
+ else if(ft.contains(FIXRANGESTR, Qt::CaseSensitive)) {
+ int op= (ft.remove(FIXRANGESTR, Qt::CaseSensitive)).toInt()-1;
+ frequency[op].freq=frequencyEl.text().toDouble();
+ }
+ frequencyNode =frequencyNode.nextSibling();
+ }
+ }
+ //oscWave
+ else if(presetEl.tagName().contains(OSWSTR, Qt::CaseSensitive)) {
+ int op=(presetEl.tagName().remove(OSWSTR, Qt::CaseSensitive)).toInt()-1;
+ oscWave[op]=(presetEl.text()=="W1"? W1:
+ (presetEl.text()=="W2"?W2:
+ (presetEl.text()=="W3"?W3:
+ (presetEl.text()=="W4"?W4:
+ (presetEl.text()=="W5"?W5:
+ (presetEl.text()=="W6"?W6:
+ (presetEl.text()=="W7"?W7:W8)))))));
+
+ }
+ //detune
+ else if(presetEl.tagName().contains(DETSTR, Qt::CaseSensitive)) {
+ int op=(presetEl.tagName().remove(DETSTR, Qt::CaseSensitive)).toInt()-1;
+ detune[op]=presetEl.text().toInt();
+ }
+ //eg
+ else if(presetEl.tagName()=="eg") {
+ QDomNode egNode = presetNode.firstChild();
+ while(!egNode.isNull()) {
+ QDomElement egEl = egNode.toElement();
+ if (egEl.isNull())
+ continue;
+ QString et=egEl.tagName();
+ if(et.contains(ARSTR, Qt::CaseSensitive)) {
+ int op=(et.remove(ARSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].ar=egEl.text().toInt();
+ }
+ else if(et.contains(D1RSTR, Qt::CaseSensitive)) {
+ int op=(et.remove(D1RSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].d1r=egEl.text().toInt();
+ }
+ else if(et.contains(D1LSTR, Qt::CaseSensitive)) {
+ int op = (et.remove(D1LSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].d1l=egEl.text().toInt();
+ }
+ else if(et.contains(D2RSTR, Qt::CaseSensitive)) {
+ int op=(et.remove(D2RSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].d2r=egEl.text().toInt();
+ }
+ else if(et.contains(RRSTR, Qt::CaseSensitive)) {
+ int op=(et.remove(RRSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].rr=egEl.text().toInt();
+ }
+ else if(et.contains(SHFTSTR, Qt::CaseSensitive)) {
+ int op=(et.remove(SHFTSTR, Qt::CaseSensitive)).toInt()-1;
+ eg[op].egShift=(egEl.text()=="VOF"?VOF:
+ (egEl.text()=="V48"?V48:
+ (egEl.text()=="V24"?V24:V12)));
+ }
+ egNode =egNode.nextSibling();
+ }
+ }
+ //pitchEg
+ else if(presetEl.tagName()=="pitchEg") {
+ QDomNode pitchEgNode = presetNode.firstChild();
+ while(!pitchEgNode.isNull()) {
+ QDomElement pitchEgEl = pitchEgNode.toElement();
+ if (pitchEgEl.isNull())
+ continue;
+ QString pt=pitchEgEl.tagName();
+ if(pt==PR1STR) pitchEg.pr1=pitchEgEl.text().toInt();
+ else if(pt==PR2STR) pitchEg.pr2=pitchEgEl.text().toInt();
+ else if(pt==PR3STR) pitchEg.pr3=pitchEgEl.text().toInt();
+ else if(pt==PL1STR) pitchEg.pl1=pitchEgEl.text().toInt();
+ else if(pt==PL2STR) pitchEg.pl2=pitchEgEl.text().toInt();
+ else if(pt==PL3STR) pitchEg.pl3=pitchEgEl.text().toInt();
+ pitchEgNode=pitchEgNode.nextSibling();
+ }
+ }
+ //outLevel
+ else if(presetEl.tagName().contains(OUTSTR, Qt::CaseSensitive)) {
+ int op=(presetEl.tagName().remove(OUTSTR, Qt::CaseSensitive)).toInt()-1;
+ outLevel[op]=presetEl.text().toInt();
+ }
+ //scaling
+ else if(presetEl.tagName()=="scaling") {
+ QDomNode scalingNode = presetNode.firstChild();
+ while(!scalingNode.isNull()) {
+ QDomElement scalingEl = scalingNode.toElement();
+ if (scalingEl.isNull())
+ continue;
+ QString st=scalingEl.tagName();
+ if(st.contains(RSSTR, Qt::CaseSensitive)) {
+ int op=(st.remove(RSSTR, Qt::CaseSensitive)).toInt()-1;
+ scaling.rate[op]=scalingEl.text().toInt();
+ }
+ else if(st.contains(LSSTR, Qt::CaseSensitive)) {
+ int op=(st.remove(LSSTR, Qt::CaseSensitive)).toInt()-1;
+ scaling.level[op]=scalingEl.text().toInt();
+ }
+ scalingNode =scalingNode.nextSibling();
+ }
+ }
+ //function
+ else if(presetEl.tagName()=="function") {
+ QDomNode functionNode = presetNode.firstChild();
+ while(!functionNode.isNull()) {
+ QDomElement functionEl = functionNode.toElement();
+ if (functionEl.isNull())
+ continue;
+ QString ft=functionEl.tagName();
+ if(ft==TRANSPOSESTR)
+ function.transpose=functionEl.text().toInt();
+ else if(ft==POLYMODESTR)
+ function.mode=(functionEl.text()=="POLY"?POLY:MONO);
+ else if(ft==PBENDRANGESTR)
+ function.pBendRange=functionEl.text().toInt();
+ else if(ft==PORTAMODESTR)
+ function.portamento=
+ functionEl.text()=="FINGER"?FINGER:FULL;
+ else if(ft==PORTATIMESTR)
+ function.portamentoTime=functionEl.text().toInt();
+ else if(ft==FSWSTR)
+ function.footSw=(functionEl.text()=="POR"?POR:SUS);
+ else if(ft==FCVOLUMESTR)
+ function.fcVolume=functionEl.text().toInt();
+ else if(ft==FCPITCHSTR)
+ function.fcPitch=functionEl.text().toInt();
+ else if(ft==FCAMPLITUDESTR)
+ function.fcAmplitude=functionEl.text().toInt();
+ else if(ft==MWPITCHSTR)
+ function.mwPitch=functionEl.text().toInt();
+ else if(ft==MWAMPLITUDESTR)
+ function.mwAmplitude=functionEl.text().toInt();
+ else if(ft==BCPITCHSTR)
+ function.bcPitch=functionEl.text().toInt();
+ else if(ft==BCAMPLITUDESTR)
+ function.bcAmplitude=functionEl.text().toInt();
+ else if(ft==BCPITCHBIASSTR)
+ function.bcPitchBias=functionEl.text().toInt();
+ else if(ft==BCEGBIASSTR)
+ function.bcEgBias=functionEl.text().toInt();
+ else if(ft==ATPITCHSTR)
+ function.atPitch=functionEl.text().toInt();
+ else if(ft==ATAMPLITUDESTR)
+ function.atAmplitude=functionEl.text().toInt();
+ else if(ft==ATPITCHBIASSTR)
+ function.atPitchBias=functionEl.text().toInt();
+ else if(ft==ATEGBIASSTR)
+ function.atEgBias=functionEl.text().toInt();
+ else if(ft==REVERBRATESTR)
+ function.reverbRate=functionEl.text().toInt();
+ functionNode=functionNode.nextSibling();
+ }
+ }
+ //globalDetune
+ //else if(presetEl.tagName()=="globalDetune")
+ // globalDetune=presetEl.text().toInt();
+ //Names
+ else if(presetEl.tagName()=="name")
+ name=presetEl.text().toAscii().data();
+ //prog
+ else if(presetEl.tagName()=="prog")
+ prog=presetEl.text().toInt();
+ presetNode = presetNode.nextSibling();
+ }
+}
+
+//---------------------------------------------------------
+// witePreset
+//---------------------------------------------------------
+void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {
+ char s[MAXCHARTAG];
+ if((!onlyUsed || _isUsed)) {
+ xml->stag("deicsOnzePreset version=\"1.0\"");
+
+ //algorithm
+ xml->tag(ALGSTR, QString((algorithm==FIRST? "FIRST":
+ (algorithm==SECOND? "SECOND":
+ (algorithm==THIRD? "THIRD":
+ (algorithm==FOURTH? "FOURTH":
+ (algorithm==FIFTH? "FIFTH":
+ (algorithm==SIXTH? "SIXTH":
+ (algorithm==SEVENTH? "SEVENTH":
+ "EIGHTH")))))))));
+ //feedback
+ xml->tag(FEEDBACKSTR, feedback);
+ //quick edit
+ //xml->tag(FINEBRIGHTNESSSTR, brightness);
+ //xml->tag(MODULATIONSTR, (int)modulation);
+ //xml->tag(GLOBALDETUNESTR, globalDetune);
+ //xml->tag(ATTACKSTR, attack);
+ //xml->tag(RELEASESTR, release);
+ //lfo
+ xml->stag("lfo");
+ xml->tag(WAVESTR, QString((lfo.wave==SAWUP? "SAWUP":
+ (lfo.wave==SQUARE? "SQUARE":
+ (lfo.wave==TRIANGL? "TRIANGL":"SHOLD")))));
+ xml->tag(SPEEDSTR, lfo.speed);
+ xml->tag(DELAYSTR, lfo.delay);
+ xml->tag(PMODDEPTHSTR, lfo.pModDepth);
+ xml->tag(AMODDEPTHSTR, lfo.aModDepth);
+ xml->tag(SYNCSTR, QString((lfo.sync==true? "on":"off")));
+ xml->etag("lfo");
+ //sensitivity
+ xml->stag("sensitivity");
+ xml->tag(PMODSENSSTR, sensitivity.pitch);
+ xml->tag(AMSSTR, sensitivity.amplitude);
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, AMESTR "%d",i+1);
+ xml->tag(s, QString((sensitivity.ampOn[i]==true? "on":"off")));
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s,EBSSTR "%d",i+1);
+ xml->tag(s, sensitivity.egBias[i]);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, KVSSTR "%d",i+1);
+ xml->tag(s, sensitivity.keyVelocity[i]);
+ }
+ xml->etag("sensitivity");
+ //frequency
+ xml->stag("frequency");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RATIOSTR "%d",i+1);
+ xml->tag(s, frequency[i].ratio);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, FIXSTR "%d",i+1);
+ xml->tag(s, QString((frequency[i].isFix==true? "yes":"no")));
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, FIXRANGESTR "%d",i+1);
+ xml->tag(s, frequency[i].freq);
+ }
+ xml->etag("frequency");
+ //oscWave
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, OSWSTR "%d",i+1);
+ xml->tag(s, QString((oscWave[i]==W1?"W1":
+ (oscWave[i]==W2?"W2":
+ (oscWave[i]==W3?"W3":
+ (oscWave[i]==W4?"W4":
+ (oscWave[i]==W5?"W5":
+ (oscWave[i]==W6?"W6":
+ (oscWave[i]==W7?"W7":"W8")))))))));
+ }
+ //detune
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, DETSTR "%d",i+1);
+ xml->tag(s, detune[i]);
+ }
+ //eg
+ xml->stag("eg");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, ARSTR "%d",i+1);
+ xml->tag(s, eg[i].ar);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D1RSTR "%d",i+1);
+ xml->tag(s, eg[i].d1r);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D1LSTR "%d",i+1);
+ xml->tag(s, eg[i].d1l);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D2RSTR "%d",i+1);
+ xml->tag(s, eg[i].d2r);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RRSTR "%d",i+1);
+ xml->tag(s, eg[i].rr);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, SHFTSTR "%d",i+1);
+ xml->tag(s, QString((eg[i].egShift==VOF?"VOF":
+ (eg[i].egShift==V48?"V48":
+ (eg[i].egShift==V24?"V24":"V12")))));
+ }
+ xml->etag("eg");
+ //pitchEg
+ xml->stag("pitchEg");
+ xml->tag(PR1STR,pitchEg.pr1);
+ xml->tag(PR2STR,pitchEg.pr2);
+ xml->tag(PR3STR,pitchEg.pr3);
+ xml->tag(PL1STR,pitchEg.pl1);
+ xml->tag(PL2STR,pitchEg.pl2);
+ xml->tag(PL3STR,pitchEg.pl3);
+ xml->etag("pitchEg");
+ //outLevel
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, OUTSTR "%d",i+1);
+ xml->tag(s, outLevel[i]);
+ }
+ //scaling
+ xml->stag("scaling");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RSSTR "%d",i+1);
+ xml->tag(s, scaling.rate[i]);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, LSSTR "%d",i+1);
+ xml->tag(s, scaling.level[i]);
+ }
+ xml->etag("scaling");
+ //function
+ xml->stag("function");
+ xml->tag(TRANSPOSESTR, function.transpose);
+ xml->tag(POLYMODESTR, QString((function.mode==POLY? "POLY":"MONO")));
+ xml->tag(PBENDRANGESTR, function.pBendRange);
+ xml->tag(PORTAMODESTR, QString((function.portamento==FINGER?
+ "FINGER":"FULL")));
+ xml->tag(PORTATIMESTR, function.portamentoTime);
+ xml->tag(FSWSTR, QString((function.footSw==POR? "POR":"SUS")));
+ xml->tag(FCVOLUMESTR, function.fcVolume);
+ xml->tag(FCPITCHSTR, function.fcPitch);
+ xml->tag(FCAMPLITUDESTR, function.fcAmplitude);
+ xml->tag(MWPITCHSTR, function.mwPitch);
+ xml->tag(MWAMPLITUDESTR, function.mwAmplitude);
+ xml->tag(BCPITCHSTR, function.bcPitch);
+ xml->tag(BCAMPLITUDESTR, function.bcAmplitude);
+ xml->tag(BCPITCHBIASSTR, function.bcPitchBias);
+ xml->tag(BCEGBIASSTR, function.bcEgBias);
+ xml->tag(ATPITCHSTR, function.atPitch);
+ xml->tag(ATAMPLITUDESTR, function.atAmplitude);
+ xml->tag(ATPITCHBIASSTR, function.atPitchBias);
+ xml->tag(ATEGBIASSTR, function.atEgBias);
+ xml->tag(REVERBRATESTR, function.reverbRate);
+ xml->etag("function");
+ //globalDetune
+ //xml->tag("globalDetune", globalDetune);
+ //preset name
+ xml->tag("name", QString(name.c_str()));
+ //bank prog
+ xml->tag("prog",prog);
+
+ xml->etag("deicsOnzePreset");
+ }
+}
+
+//---------------------------------------------------------
+// printPreset
+//---------------------------------------------------------
+
+void Preset::printPreset()
+{
+ printf("\n");
+ printf("Algorithm : %d, Feedback : %d\n", algorithm, feedback);
+ printf("LFO : ");
+ switch(lfo.wave)
+ {
+ case(SAWUP) : printf("SAWUP ,"); break;
+ case(SQUARE) : printf("SQUARE ,"); break;
+ case(TRIANGL) : printf("TRIANGL ,"); break;
+ case(SHOLD) : printf("SHOLD ,"); break;
+ default : printf("No defined, "); break;
+ }
+ printf("Speed : %d, Delay : %d, PModD : %d, AModD : %d, ",
+ lfo.speed, lfo.delay, lfo.pModDepth, lfo.aModDepth);
+ if(lfo.sync) printf("Sync\n"); else printf("Not Sync\n");
+ printf("LFO Pitch Sensitivity : %d, LFO Amplitude Sensitivity : %d\n",
+ sensitivity.pitch, sensitivity.amplitude);
+ for(int i=0; i<NBROP; i++)
+ {
+ printf("amp%d ",i+1);
+ if(sensitivity.ampOn) printf("ON "); else printf("OFF ");
+ }
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("EgBias%d : %d ",i+1, sensitivity.egBias[i]);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("KVS%d : %d ",i+1, sensitivity.keyVelocity[i]);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ {
+ if(frequency[i].isFix)
+ printf("Freq%d : %f ",i+1, frequency[i].ratio);
+ else printf("Ratio%d : %f ",i+1, frequency[i].ratio);
+ }
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ {
+ printf("OscWave%d ", i+1);
+ switch(oscWave[i])
+ {
+ case(W1) : printf("W1 "); break;
+ case(W2) : printf("W2 "); break;
+ case(W3) : printf("W3 "); break;
+ case(W4) : printf("W4 "); break;
+ case(W5) : printf("W5 "); break;
+ case(W6) : printf("W6 "); break;
+ case(W7) : printf("W7 "); break;
+ case(W8) : printf("W8 "); break;
+ default : printf("No defined "); break;
+ }
+ }
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("Detune%d : %d ",i+1, detune[i]);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ {
+ printf("AR%d : %d, D1R%d : %d, D1L%d : %d, D2R%d : %d, RR%d : %d, EgShift%d : ",
+ i+1, eg[i].ar, i+1, eg[i].d1r,
+ i+1, eg[i].d1l, i+1, eg[i].d2r, i+1, eg[i].rr, i+1);
+ switch(eg[i].egShift)
+ {
+ case(VOF) : printf("VOF");
+ case(V48) : printf("48");
+ case(V24) : printf("24");
+ case(V12) : printf("12");
+ }
+ printf("\n");
+ }
+ printf("PitchEg pr1 : %d, pr2 : %d, pr3 : %d, pl1 : %d, pl2 : %d, pl3 : %d"
+ , pitchEg.pr1, pitchEg.pr2, pitchEg.pr3,
+ pitchEg.pl1, pitchEg.pl2, pitchEg.pl3);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("OutLevel%d : %d ",i+1, outLevel[i]);
+ printf("\n");
+ printf("Name : %s\n", name.c_str());
+}
+
+void Subcategory::printSubcategory() {
+ std::cout << " " << _subcategoryName << "\n";
+ for(std::vector<Preset*>::iterator i=_presetVector.begin();
+ i!=_presetVector.end(); i++) (*i)->printPreset();
+}
+
+void Category::printCategory() {
+ std::cout << " " << _categoryName << "\n";
+ for(unsigned int i=0; i<_subcategoryVector.size(); i++)
+ _subcategoryVector[i]->printSubcategory();
+}
+
+void Set::printSet() {
+ std::cout << _setName << "\n";
+ for(unsigned int i=0; i<_categoryVector.size(); i++)
+ _categoryVector[i]->printCategory();
+}
diff --git a/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.h b/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.h
new file mode 100644
index 00000000..d0cbdfab
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/deicsonzepreset.h
@@ -0,0 +1,563 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.5.5
+//
+// deicsonzepreset.h
+//
+//
+// Copyright (c) 2004-2006 Nil Geisweiller
+//
+//
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//===========================================================================
+
+#ifndef __DEICSONZEPRESET_H
+#define __DEICSONZEPRESET_H
+
+#include <string>
+#include "al/xml.h"
+
+#define NBROP 4 //do not change
+#define MAXCHARTAG 64
+
+#define PROG_NBR 128
+#define LBANK_NBR 128
+#define HBANK_NBR 128
+
+//---------------------------------------------------------
+// define strings of the parameter names for load save and ctrl interface
+// number of ctrl
+// following the internal DX11 organization (c.f T81Z manual)
+//---------------------------------------------------------
+#define CTRLOFFSET 0x100
+#define DECAPAR1 13
+#define ARSTR "AR"
+#define ARLONGSTR "AttackRate"
+#define CTRL_AR 0+CTRLOFFSET
+#define MAXAR 31
+#define D1RSTR "D1R"
+#define D1RLONGSTR "Decay1Rate"
+#define CTRL_D1R 1+CTRLOFFSET
+#define MAXD1R 31
+#define D2RSTR "D2R"
+#define D2RLONGSTR "Decay2Rate"
+#define CTRL_D2R 2+CTRLOFFSET
+#define MAXD2R 31
+#define RRSTR "RR"
+#define RRLONGSTR "ReleaseRate"
+#define CTRL_RR 3+CTRLOFFSET
+#define MAXRR 15
+#define D1LSTR "D1L"
+#define D1LLONGSTR "Decay1Level"
+#define CTRL_D1L 4+CTRLOFFSET
+#define MAXD1L 15
+#define LSSTR "LS"
+#define LSLONGSTR "LevelScaling"
+#define CTRL_LS 5+CTRLOFFSET
+#define MAXLS 99
+#define RSSTR "RS"
+#define RSLONGSTR "RateScaling"
+#define CTRL_RS 6+CTRLOFFSET
+#define MAXRS 3
+#define EBSSTR "EBS"
+#define EBSLONGSTR "EGBiasSensitivity"
+#define CTRL_EBS 7+CTRLOFFSET
+#define MAXEBS 7
+#define AMESTR "AME"
+#define AMELONGSTR "AmplitudeModulationEnable"
+#define CTRL_AME 8+CTRLOFFSET
+#define KVSSTR "KVS"
+#define KVSLONGSTR "KeyVelocitySensitivity"
+#define CTRL_KVS 9+CTRLOFFSET
+#define MAXKVS 7
+#define OUTSTR "OUT"
+#define OUTLONGSTR "OperatorOutputLevel"
+#define CTRL_OUT 10+CTRLOFFSET
+#define MAXOUT 99
+#define RATIOSTR "Ratio"
+#define RATIOLONGSTR "Ratio"
+#define CTRL_RATIO 11+CTRLOFFSET
+#define MAXRATIO 64
+#define DETSTR "DET"
+#define DETLONGSTR "Detune"
+#define CTRL_DET 12+CTRLOFFSET
+#define MAXDET 3
+#define ALGSTR "ALG"
+#define ALGLONGSTR "Algorithm"
+#define CTRL_ALG 52+CTRLOFFSET
+#define MAXALG 7
+#define FEEDBACKSTR "Feedback"
+#define CTRL_FEEDBACK 53+CTRLOFFSET
+#define MAXFEEDBACK 7
+#define SPEEDSTR "Speed"
+#define SPEEDLONGSTR "LFOSpeed"
+#define CTRL_SPEED 54+CTRLOFFSET
+#define MAXSPEED 99
+#define DELAYSTR "Delay" //TODO LFOD
+#define DELAYLONGSTR "LFODelay"
+#define CTRL_DELAY 55+CTRLOFFSET
+#define MAXDELAY 99
+#define PMODDEPTHSTR "PModDepth"
+#define PMODDEPTHLONGSTR "PitchModulationDepth"
+#define CTRL_PMODDEPTH 56+CTRLOFFSET
+#define MAXPMODDEPTH 99
+#define AMODDEPTHSTR "AModDepth"
+#define AMODDEPTHLONGSTR "AmplitudeModulationDepth"
+#define CTRL_AMODDEPTH 57+CTRLOFFSET
+#define MAXAMODDEPTH 99
+#define SYNCSTR "Sync"
+#define SYNCLONGSTR "LFOSync"
+#define CTRL_SYNC 58+CTRLOFFSET
+#define WAVESTR "Wave"
+#define WAVELONGSTR "LFOWave"
+#define CTRL_WAVE 59+CTRLOFFSET
+#define MAXWAVE 3
+#define PMODSENSSTR "PModSens"
+#define PMODSENSLONGSTR "PitchModulationSensitivity"
+#define CTRL_PMODSENS 60+CTRLOFFSET
+#define MAXPMODSENS 7
+#define AMSSTR "AMS"
+#define AMSLONGSTR "AmplitudeModulationSensitivity"
+#define CTRL_AMS 61+CTRLOFFSET
+#define MAXAMS 3
+#define TRANSPOSESTR "Transpose"
+#define CTRL_TRANSPOSE 62+CTRLOFFSET
+#define MAXTRANSPOSE 24
+#define POLYMODESTR "PolyMode"
+#define CTRL_POLYMODE 63+CTRLOFFSET
+#define PBENDRANGESTR "PBendRange"
+#define PBENDRANGELONGSTR "PitchBendRange"
+#define CTRL_PBENDRANGE 64+CTRLOFFSET
+#define MAXPBENDRANGE 12
+#define PORTAMODESTR "PortaMode"
+#define PORTAMODELONGSTR "PortamentoMode"
+#define CTRL_PORTAMODE 65+CTRLOFFSET
+#define PORTATIMESTR "PortaTime"
+#define PORTATIMELONGSTR "PortamentoTime"
+#define CTRL_PORTATIME 66+CTRLOFFSET
+#define MAXPROTATIME 99
+#define FCVOLUMESTR "FCVolume"
+#define FCVOLUMELONGSTR "FootControllerVolume"
+#define CTRL_FCVOLUME 67+CTRLOFFSET
+#define MAXFCVOLUME 99
+#define FSWSTR "FSW"
+#define FSWLONGSTR "FootSwitch"
+#define CTRL_FSW 68+CTRLOFFSET
+#define MAXFSW 99
+#define MWPITCHSTR "MWPitch"
+#define MWPITCHLONGSTR "ModulationWheelPitch"
+#define CTRL_MWPITCH 71+CTRLOFFSET
+#define MAXMWPITCH 99
+#define MWAMPLITUDESTR "MWAmplitude"
+#define MWAMPLITUDELONGSTR "ModulationWheelAmplitude"
+#define CTRL_MWAMPLITUDE 72+CTRLOFFSET
+#define MAXMWAMPLITUDE 99
+#define BCPITCHSTR "BCPitch"
+#define BCPITCHLONGSTR "BreathControlPitch"
+#define CTRL_BCPITCH 73+CTRLOFFSET
+#define MAXBCPITCH 99
+#define BCAMPLITUDESTR "BCAmplitude"
+#define BCAMPLITUDELONGSTR "BreathControlAmplitude"
+#define CTRL_BCAMPLITUDE 74+CTRLOFFSET
+#define MAXBCAMPLITUDE 99
+#define BCPITCHBIASSTR "BCPitchBias"
+#define BCPITCHBIASLONGSTR "BreathControlPitchBias"
+#define CTRL_BCPITCHBIAS 75+CTRLOFFSET
+#define MAXBCPITCHBIAS 50
+#define BCEGBIASSTR "BCEGBias"
+#define BCEGBIASLONGSTR "BreathControlEGBias"
+#define CTRL_BCEGBIAS 76+CTRLOFFSET
+#define MAXBCEGBIAS 99
+#define MIDATTACK 64
+#define ATPITCHSTR "ATPitch"
+#define ATPITCHLONGSTR "AfterTouchPitch"
+#define CTRL_ATPITCH 77+CTRLOFFSET
+#define MAXATPITCH 99
+#define ATAMPLITUDESTR "ATAmplitude"
+#define ATAMPLITUDELONGSTR "AfterTouchAmplitude"
+#define CTRL_ATAMPLITUDE 78+CTRLOFFSET
+#define MAXATAMPLITUDE 99
+#define ATPITCHBIASSTR "ATPitchBias"
+#define ATPITCHBIASLONGSTR "AfterTouchPitchBias"
+#define CTRL_ATPITCHBIAS 79+CTRLOFFSET
+#define MAXATPITCHBIAS 50
+#define ATEGBIASSTR "ATEGBias"
+#define ATEGBIASLONGSTR "AfterTouchEGBias"
+#define CTRL_ATEGBIAS 80+CTRLOFFSET
+#define MAXATEGBIAS 99
+#define PR1STR "PR1"
+#define PR1LONGSTR "PitchRateEG1"
+#define CTRL_PR1 81+CTRLOFFSET
+#define MAXPR 99
+#define PR2STR "PR2"
+#define PR2LONGSTR "PitchRateEG2"
+#define CTRL_PR2 82+CTRLOFFSET
+#define PR3STR "PR3"
+#define PR3LONGSTR "PitchRateEG3"
+#define CTRL_PR3 83+CTRLOFFSET
+#define PL1STR "PL1"
+#define PL1LONGSTR "PitchLevelEG1"
+#define CTRL_PL1 84+CTRLOFFSET
+#define MAXPL 99
+#define PL2STR "PL2"
+#define PL2LONGSTR "PitchLevelEG2"
+#define CTRL_PL2 85+CTRLOFFSET
+#define PL3STR "PL3"
+#define PL3LONGSTR "PitchLevelEG3"
+#define CTRL_PL3 86+CTRLOFFSET
+#define DECAPAR2 5
+#define FIXSTR "FIX"
+#define FIXLONGSTR "FixedFrequency"
+#define CTRL_FIX 100+CTRLOFFSET
+#define FIXRANGESTR "FixRange"
+#define FIXRANGELONGSTR "FixedFrequencyRange"
+#define CTRL_FIXRANGE 101+CTRLOFFSET
+#define MAXFIXRANGE 255
+#define OSWSTR "OSW"
+#define OSWLONGSTR "OperatorWaveform"
+#define CTRL_OSW 103+CTRLOFFSET
+#define MAXOSW 7
+#define SHFTSTR "SHFT"
+#define SHFTLONGSTR "EGShift"
+#define CTRL_SHFT 104+CTRLOFFSET
+#define MAXSHFT 3
+#define REVERBRATESTR "ReverbRate"
+#define CTRL_REVERBRATE 120+CTRLOFFSET
+#define MAXREVERBRATE 7
+#define FCPITCHSTR "FCPitch"
+#define FCPITCHLONGSTR "FootControllerPitch"
+#define CTRL_FCPITCH 121+CTRLOFFSET
+#define MAXFCPITCH 99
+#define FCAMPLITUDESTR "FCAmplitude"
+#define FCAMPLITUDELONGSTR "FootControllerAmplitude"
+#define CTRL_FCAMPLITUDE 122+CTRLOFFSET
+#define MAXFCAMPLITUDE 99
+#define CHANNELPANSTR "ChannelPan"
+#define CTRL_CHANNELPAN 123+CTRLOFFSET
+#define MAXCHANNELPAN 127
+#define CHANNELDETUNESTR "ChannelDetune"
+#define CTRL_CHANNELDETUNE 124+CTRLOFFSET
+#define MAXCHANNELDETUNE 63
+#define CHANNELVOLUMESTR "ChannelVolume"
+#define CTRL_CHANNELVOLUME 125+CTRLOFFSET
+#define MAXCHANNELVOLUME 255
+#define FINEBRIGHTNESSSTR "FineBrightness"
+#define CTRL_FINEBRIGHTNESS 126+CTRLOFFSET
+#define MAXFINEBRIGHTNESS 4095
+#define MIDFINEBRIGHTNESS (MAXFINEBRIGHTNESS+1)/2
+#define BRIGHTNESSSTR "Brightness"
+#define MAXBRIGHTNESS 127
+#define MIDBRIGHTNESS 64
+#define MAXMODULATION 127
+#define MODULATIONSTR "Modulation"
+#define ATTACKSTR "Attack"
+#define MAXATTACK 127
+#define MIDATTACK 64
+#define RELEASESTR "Attack"
+#define MAXRELEASE 127
+#define MIDRELEASE 64
+#define NBRVOICESSTR "NumberOfVoices"
+#define MINNBRVOICES 1
+#define CTRL_NBRVOICES 127+CTRLOFFSET
+#define CHANNELENABLESTR "ChannelEnable"
+#define MAXCHANNELENABLE 1
+#define MINCHANNELENABLE 0
+#define CTRL_CHANNELENABLE 128+CTRLOFFSET
+
+class Preset;
+class Subcategory;
+class Category;
+class Set;
+
+//---------------------------------------------------------
+// Algorithm
+//---------------------------------------------------------
+
+enum Algorithm {
+ FIRST, // Op 0 modulated by Op 1 modulated by Op 2 modulated by Op3
+ SECOND, // Op 0 modulated by Op 1 modulated by both Op 2 and Op 3
+ THIRD, // Op 0 modulated by both Op 3 and Op 1 modulated by Op 2
+ FOURTH, // Op 0 modulated by both Op 1 and Op 2 modulated by Op 3
+ FIFTH, // (Op 0 modulated by Op 1) add to (Op 2 modulated by Op 3)
+ SIXTH, // addition of the three Op 0, 1, 2 all modulated by Op 3
+ SEVENTH, // addition of the three Op 0, 1, 2 with 2 modulated by Op3
+ EIGHTH // addition of the four Op 0, 1, 2, 3
+};
+
+//---------------------------------------------------------
+// Wave of the low frequency modulation
+//---------------------------------------------------------
+enum Wave {
+ SAWUP,
+ SQUARE,
+ TRIANGL,
+ SHOLD
+};
+
+//---------------------------------------------------------
+// Lfo, low frequency modulation
+//---------------------------------------------------------
+struct Lfo {
+ Wave wave;
+ unsigned char speed; //0 to 99
+ unsigned char delay; //0 to 99
+ unsigned char pModDepth; //0 to 99
+ unsigned char aModDepth; //0 to 99
+ bool sync;
+};
+
+//---------------------------------------------------------
+// Sensitivity
+// of the frequency and amplitude of the lfo
+// and the key velocity
+//---------------------------------------------------------
+struct Sensitivity {
+ unsigned char pitch; //0 to 7
+ unsigned char amplitude; //0 to 3
+ bool ampOn[NBROP];
+ unsigned char egBias[NBROP]; //O to 7
+ unsigned char keyVelocity[NBROP]; //0 to 7
+};
+
+//---------------------------------------------------------
+// Frequency
+//---------------------------------------------------------
+struct Frequency {
+ double ratio;
+ bool isFix; //if isFix no ratio but frequency
+ double freq;
+};
+
+//---------------------------------------------------------
+// OscWave
+//---------------------------------------------------------
+enum OscWave {
+ W1, //sine wave
+ W2, //sine² relative
+ W3, //half sine
+ W4, //half sine² relative
+ W5,
+ W6,
+ W7,
+ W8
+};
+
+enum egShiftValue {VOF, V48, V24, V12};
+
+//---------------------------------------------------------
+// Eg
+// Envelope
+//---------------------------------------------------------
+struct Eg {
+ unsigned char ar; //0 to 31 speed attack
+ unsigned char d1r; //0 to 31 speed decay
+ unsigned char d1l; //0 to 15 level sustain
+ unsigned char d2r; //0 to 31 speed of sustain
+ unsigned char rr; //1 to 15
+ egShiftValue egShift;
+};
+
+//---------------------------------------------------------
+// PitchEg
+//---------------------------------------------------------
+struct PitchEg {
+ unsigned char pr1;//0 to 99
+ unsigned char pr2;//0 to 99
+ unsigned char pr3;//0 to 99
+ unsigned char pl1;//0 to 99
+ unsigned char pl2;//0 to 99
+ unsigned char pl3;//0 to 99
+};
+
+//---------------------------------------------------------
+// Scaling
+//---------------------------------------------------------
+struct Scaling {
+ unsigned char rate[NBROP];//0 to 3
+ unsigned char level[NBROP];//0 to 99
+};
+
+//---------------------------------------------------------
+// Mode
+//---------------------------------------------------------
+enum Mode {
+ POLY,
+ MONO
+};
+
+//---------------------------------------------------------
+// Portamento
+//---------------------------------------------------------
+enum Portamento {
+ FINGER,
+ FULL
+};
+
+//---------------------------------------------------------
+// FootSw
+//---------------------------------------------------------
+enum FootSw {
+ POR,
+ SUS
+};
+//---------------------------------------------------------
+// Function
+//---------------------------------------------------------
+struct Function {
+ int transpose;
+ Mode mode;
+ unsigned char pBendRange;//0 to 12
+ Portamento portamento;
+ unsigned char portamentoTime;//0 to 99
+ FootSw footSw;
+ unsigned char fcVolume;//0 to 99
+ unsigned char fcPitch;//0 to 99
+ unsigned char fcAmplitude;//0 to 99
+ unsigned char mwPitch;//0 to 99
+ unsigned char mwAmplitude;//0 to 99
+ unsigned char bcPitch;//0 to 99
+ unsigned char bcAmplitude;//0 to 99
+ signed char bcPitchBias;//-50 to 50
+ unsigned char bcEgBias;//0 to 99
+ unsigned char atPitch;//0 to 99
+ unsigned char atAmplitude;//0 to 99
+ signed char atPitchBias;//-50 to 50
+ unsigned char atEgBias;//0 to 99
+ signed char reverbRate;//O=off, 1 to 7
+};
+
+//---------------------------------------------------------
+// Preset class
+//---------------------------------------------------------
+
+class Preset {
+ public:
+ Subcategory* _subcategory; //subcategory parent
+ bool _isUsed; //false if the preset has never been used or modified,
+ //in this case the preset is not going to be
+ //save with the project
+ //Attributes
+ Algorithm algorithm;
+ unsigned char feedback; //0 to 7
+ Lfo lfo;
+ Sensitivity sensitivity;
+ Frequency frequency[NBROP];
+ OscWave oscWave[NBROP];
+ signed char detune[NBROP]; //-3 to 3
+ Eg eg[NBROP];
+ PitchEg pitchEg;
+ unsigned char outLevel[NBROP]; //0 to 99
+ Scaling scaling;
+ Function function;
+ //int globalDetune; //-31 to 31 //now to the channel
+ std::string name;
+ //unsigned char modulation; //0 to 127
+ int prog; //0 to 127
+ //Methods
+ void printPreset();
+ void initPreset();
+ void readPreset(QDomNode qdn);
+ void writePreset(AL::Xml* xml, bool onlyUsed);
+ void linkSubcategory(Subcategory* sub);
+ void merge(Preset* p); //copy the data of p in the preset
+ void setIsUsed(bool b); //set flag _isUsed and transmit in the parents
+ void getHBankLBankProg(int* h, int* l, int* p); //return the hbank, lbank and prog of the preset
+ //Constructor destructor
+ Preset();
+ Preset(Subcategory* sub);
+ Preset(Subcategory* sub, int prog);
+ ~Preset();
+};
+
+//---------------------------------------------------------------
+// Bank, organized by a tree of category, subcategory, preset
+//---------------------------------------------------------------
+class Subcategory {
+ public:
+ Category* _category;//parent category
+ bool _isUsed; //false if the subcategory has never been used or modified,
+ //in this case the subcategory is not going to be
+ //save with the project
+ std::string _subcategoryName;
+ int _lbank; //0 to 127
+ std::vector<Preset*> _presetVector;
+ Preset* findPreset(int prog);
+ void readSubcategory(QDomNode subNode);
+ void writeSubcategory(AL::Xml* xml, bool onlyUsed);
+ void printSubcategory();
+ void linkCategory(Category* cat);
+ void unlink();
+ bool isFreeProg(int prog);
+ int firstFreeProg();
+ void merge(Preset*);
+ //Constructor destructor
+ Subcategory();
+ Subcategory(Category* cat);
+ Subcategory(const std::string name);
+ Subcategory(Category* cat, const std::string name, int lbank);
+ ~Subcategory();
+};
+
+class Category {
+ public:
+ Set* _set;//parent set
+ bool _isUsed; //false if the category has never been used or modified,
+ //in this case the category is not going to be
+ //save with the project
+ std::string _categoryName;
+ int _hbank; //0 to 127
+ std::vector<Subcategory*> _subcategoryVector;
+ Subcategory* findSubcategory(int lbank);
+ Preset* findPreset(int lbank, int prog);
+ void readCategory(QDomNode catNode);
+ void writeCategory(AL::Xml* xml, bool onlyUsed);
+ void printCategory();
+ void linkSet(Set* s);
+ void unlink();
+ bool isFreeLBank(int lbank);
+ int firstFreeLBank(); //return -1 if no free
+ void merge(Subcategory*);
+ //Constructor Destructor
+ Category();
+ Category(Set* s);
+ Category(Set* s,const std::string name, int hbank);
+ ~Category();
+};
+
+class Set {
+ public:
+ std::string _setName;
+ std::vector<Category*> _categoryVector;
+ Preset* findPreset(int hbank, int lbank, int prog);
+ Subcategory* findSubcategory(int hbank, int lbank);
+ Category* findCategory(int hbank);
+ void readSet(QDomNode setNode);
+ void writeSet(AL::Xml* xml, bool onlyUsed);
+ void printSet();
+ bool isFreeHBank(int hbank);
+ int firstFreeHBank();
+ void merge(Category*);
+ //Constructor Destructor
+ Set(const std::string name){_setName=name;}
+ ~Set() {
+ while(!_categoryVector.empty()) delete(*_categoryVector.begin());
+ }
+};
+
+#endif /* __DEICSONZE_H */
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/SHold.fig b/muse_qt4_evolution/synti/deicsonze/pics/SHold.fig
new file mode 100644
index 00000000..2e1d2431
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/SHold.fig
@@ -0,0 +1,12 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 8
+ 720 968 855 968 855 1035 990 1035 990 900 1125 900
+ 1125 945 1260 945
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/SHold.png b/muse_qt4_evolution/synti/deicsonze/pics/SHold.png
new file mode 100644
index 00000000..b500ca67
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/SHold.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo1.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo1.fig
new file mode 100644
index 00000000..f90714b7
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo1.fig
@@ -0,0 +1,31 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 2070 1530 4275 1890
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2430 1665 2655 1665
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3015 1665 3240 1665
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3600 1665 3825 1665
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4185 1665 4275 1665 4275 1890 4006 1890 4006 1800
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2070 1530 2430 1530 2430 1800 2070 1800 2070 1530
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2655 1530 3015 1530 3015 1800 2655 1800 2655 1530
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3240 1530 3600 1530 3600 1800 3240 1800 3240 1530
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3825 1530 4185 1530 4185 1800 3825 1800 3825 1530
+4 0 0 50 -1 0 12 0.0000 4 180 336 2093 1718 Op1\001
+4 0 0 50 -1 0 12 0.0000 4 180 336 2677 1718 Op2\001
+4 0 0 50 -1 0 12 0.0000 4 180 336 3262 1718 Op3\001
+4 0 0 50 -1 0 12 0.0000 4 180 336 3847 1718 Op4\001
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo1.png b/muse_qt4_evolution/synti/deicsonze/pics/algo1.png
new file mode 100644
index 00000000..1347af71
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo1.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo2.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo2.fig
new file mode 100644
index 00000000..d0dbea38
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo2.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2475 1710 2700 1710
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3060 1710 3195 1710
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+ 3285 1530 3195 1530 3195 1800 3285 1800
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2700 1575 3060 1575 3060 1845 2700 1845 2700 1575
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3285 1665 3645 1665 3645 1890 3285 1890 3285 1665
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3285 1440 3645 1440 3645 1665 3285 1665 3285 1440
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 3645 1800 3735 1800 3735 1935 3465 1935 3465 1890
+4 0 0 50 -1 0 12 0.0000 4 150 315 3307 1590 Op3\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 3315 1822 Op4\001
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 2722 1762 Op2\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo2.png b/muse_qt4_evolution/synti/deicsonze/pics/algo2.png
new file mode 100644
index 00000000..7d623227
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo2.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo3.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo3.fig
new file mode 100644
index 00000000..9efaa53f
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo3.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3060 1575 3285 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2475 1710 2610 1710
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 3060 1800 3150 1800 3150 1935 2880 1935 2880 1890
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+ 2700 1530 2610 1530 2610 1800 2700 1800
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3285 1440 3645 1440 3645 1710 3285 1710 3285 1440
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2700 1665 3060 1665 3060 1890 2700 1890 2700 1665
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2700 1440 3060 1440 3060 1665 2700 1665 2700 1440
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 2722 1590 Op2\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 2730 1822 Op4\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 3307 1627 Op3\001
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo3.png b/muse_qt4_evolution/synti/deicsonze/pics/algo3.png
new file mode 100644
index 00000000..b091cc16
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo3.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo4.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo4.fig
new file mode 100644
index 00000000..26d12f54
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo4.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2475 1710 2610 1710
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+ 2700 1530 2610 1530 2610 1800 2700 1800
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2700 1665 3060 1665 3060 1890 2700 1890 2700 1665
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2700 1440 3060 1440 3060 1665 2700 1665 2700 1440
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3285 1620 3645 1620 3645 1890 3285 1890 3285 1620
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 3645 1755 3735 1755 3735 1530 3465 1530 3465 1620
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3060 1755 3285 1755
+4 0 0 50 -1 0 12 0.0000 4 150 315 2722 1590 Op2\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 2730 1822 Op3\001
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+4 0 0 50 -1 0 12 0.0000 4 150 315 3307 1807 Op4\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo4.png b/muse_qt4_evolution/synti/deicsonze/pics/algo4.png
new file mode 100644
index 00000000..de0e6d26
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo4.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo5.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo5.fig
new file mode 100644
index 00000000..63731eba
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo5.fig
@@ -0,0 +1,34 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 2115 1575 2475 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+-6
+6 3330 1575 4320 1935
+6 3870 1575 4320 1935
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3870 1575 4230 1575 4230 1845 3870 1845 3870 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4230 1710 4320 1710 4320 1935 4050 1935 4050 1845
+4 0 0 50 -1 0 12 0.0000 4 150 315 3892 1762 Op4\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3690 1710 3870 1710
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3330 1575 3690 1575 3690 1845 3330 1845 3330 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 3353 1762 Op3\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2475 1710 2655 1710
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2655 1575 3015 1575 3015 1845 2655 1845 2655 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 2678 1762 Op2\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 3127 1763 +\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo5.png b/muse_qt4_evolution/synti/deicsonze/pics/algo5.png
new file mode 100644
index 00000000..2e41a1db
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo5.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo6.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo6.fig
new file mode 100644
index 00000000..4e23b8fa
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo6.fig
@@ -0,0 +1,37 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 2115 1575 2475 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+-6
+6 3195 1575 3555 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3195 1575 3555 1575 3555 1845 3195 1845 3195 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 3218 1762 Op3\001
+-6
+6 3825 1575 4275 1935
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3825 1575 4185 1575 4185 1845 3825 1845 3825 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4185 1710 4275 1710 4275 1935 4005 1935 4005 1845
+4 0 0 50 -1 0 12 0.0000 4 150 315 3847 1762 Op4\001
+-6
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2655 1575 3015 1575 3015 1845 2655 1845 2655 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3825 1710 3555 1710
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+ 3690 1710 3690 1530 2835 1530 2835 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3
+ 2835 1530 2295 1530 2295 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 2678 1762 Op2\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 3060 1755 +\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 2520 1755 +\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo6.png b/muse_qt4_evolution/synti/deicsonze/pics/algo6.png
new file mode 100644
index 00000000..80de4a94
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo6.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo7.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo7.fig
new file mode 100644
index 00000000..6d0fe501
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo7.fig
@@ -0,0 +1,35 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 2115 1575 2475 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+-6
+6 2745 1575 3105 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2745 1575 3105 1575 3105 1845 2745 1845 2745 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 2768 1762 Op2\001
+-6
+6 3375 1575 3735 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3375 1575 3735 1575 3735 1845 3375 1845 3375 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 3398 1762 Op3\001
+-6
+6 3915 1575 4365 1935
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3915 1575 4275 1575 4275 1845 3915 1845 3915 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4275 1710 4365 1710 4365 1935 4095 1935 4095 1845
+4 0 0 50 -1 0 12 0.0000 4 150 315 3937 1762 Op4\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3735 1710 3915 1710
+4 0 0 50 -1 0 12 0.0000 4 75 105 2565 1755 +\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 3195 1755 +\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo7.png b/muse_qt4_evolution/synti/deicsonze/pics/algo7.png
new file mode 100644
index 00000000..0cdda327
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo7.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo8.fig b/muse_qt4_evolution/synti/deicsonze/pics/algo8.fig
new file mode 100644
index 00000000..8bf9dcc9
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo8.fig
@@ -0,0 +1,34 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 2115 1575 2475 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2115 1575 2475 1575 2475 1845 2115 1845 2115 1575
+4 0 0 50 -1 0 12 0.0000 4 165 315 2138 1762 Op1\001
+-6
+6 2745 1575 3105 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 2745 1575 3105 1575 3105 1845 2745 1845 2745 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 2768 1762 Op2\001
+-6
+6 3375 1575 3735 1845
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 3375 1575 3735 1575 3735 1845 3375 1845 3375 1575
+4 0 0 50 -1 0 12 0.0000 4 150 315 3398 1762 Op3\001
+-6
+6 4005 1575 4455 1935
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 4005 1575 4365 1575 4365 1845 4005 1845 4005 1575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4365 1710 4455 1710 4455 1935 4185 1935 4185 1845
+4 0 0 50 -1 0 12 0.0000 4 150 315 4027 1762 Op4\001
+-6
+4 0 0 50 -1 0 12 0.0000 4 75 105 2565 1755 +\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 3195 1755 +\001
+4 0 0 50 -1 0 12 0.0000 4 75 105 3825 1755 +\001
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/algo8.png b/muse_qt4_evolution/synti/deicsonze/pics/algo8.png
new file mode 100644
index 00000000..17ca60d7
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/algo8.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/sawUp.fig b/muse_qt4_evolution/synti/deicsonze/pics/sawUp.fig
new file mode 100644
index 00000000..2c701818
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/sawUp.fig
@@ -0,0 +1,13 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 450 720 990 855
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 450 855 720 720 720 855 990 720 990 855
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/sawUp.png b/muse_qt4_evolution/synti/deicsonze/pics/sawUp.png
new file mode 100644
index 00000000..d0541858
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/sawUp.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/square.fig b/muse_qt4_evolution/synti/deicsonze/pics/square.fig
new file mode 100644
index 00000000..0adb802e
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/square.fig
@@ -0,0 +1,14 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 540 540 1080 675
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 10
+ 540 608 540 540 675 540 675 675 810 675 810 540
+ 945 540 945 675 1080 675 1080 608
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/square.png b/muse_qt4_evolution/synti/deicsonze/pics/square.png
new file mode 100644
index 00000000..f2293267
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/square.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/triangl.fig b/muse_qt4_evolution/synti/deicsonze/pics/triangl.fig
new file mode 100644
index 00000000..95970995
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/triangl.fig
@@ -0,0 +1,13 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 360 630 900 765
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 6
+ 360 698 428 630 563 765 698 630 833 765 900 698
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/triangl.png b/muse_qt4_evolution/synti/deicsonze/pics/triangl.png
new file mode 100644
index 00000000..c0937be9
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/triangl.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave1.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave1.fig
new file mode 100644
index 00000000..9cf6f065
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave1.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1424 1665 1415 1670 1406 1678 1397 1684 1388 1692 1380
+ 1697 1373 1704 1367 1711 1361 1718 1357 1724 1353 1731 1351
+ 1738 1350 1745 1350 1751 1352 1758 1354 1765 1358 1770 1363
+ 1778 1368 1784 1375 1792 1382 1797 1390 1804 1399 1811 1408
+ 1818 1418 1824 1427 1831 1436 1837 1445 1845 1454 1850 1463
+ 1858 1471 1864 1477 1871 1484 1877 1489 1884 1493 1891 1496
+ 1898 1498 1904 1499 1911 1498 1918 1497 1925 1494 1931 1490
+ 1937 1485 1945 1479 1950 1472 1958 1465 1964 1456 1971 1447
+ 1977 1439 1984 1429 1991 1420 1998 1411 2003 1401 2011 1392
+ 2017 1384 2025 1376 2030 1370 2037 1364 2044 1359 2051 1355
+ 2057 1352 2064 1350 2071 1350 2078 1351 2084 1353 2091 1356
+ 2098 1360 2103 1365 2111 1371 2117 1379 2125 1386 2130 1395
+ 2137 1403 2144 1413 2151 1422 2157 1432 2164 1441 2170 1450
+ 2178 1458 2183 1466 2191 1474 2197 1481 2204 1486 2210 1491
+ 2217 1495 2224 1497 2231 1499 2237 1499 2244 1497 2251 1496
+ 2258 1492 2264 1487 2270 1482 2278 1476 2283 1468 2291 1461
+ 2297 1452 2304 1443 2310 1434 2317 1424
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave1.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave1.gnuplot
new file mode 100644
index 00000000..ff4aa2ed
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave1.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] sin(x)
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave1.png b/muse_qt4_evolution/synti/deicsonze/pics/wave1.png
new file mode 100644
index 00000000..009aa7f7
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave1.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave2.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave2.fig
new file mode 100644
index 00000000..2da89e13
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave2.fig
@@ -0,0 +1,31 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 2
+ 2079 1350 2079 1353
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1425 1665 1423 1670 1419 1678 1414 1685 1407 1692 1398
+ 1697 1389 1704 1380 1711 1371 1719 1363 1724 1357 1731 1353
+ 1738 1350 1743 1351 1751 1353 1758 1358 1765 1365 1770 1373
+ 1777 1382 1784 1391 1792 1401 1797 1409 1804 1415 1811 1421
+ 1818 1424 1824 1425 1831 1426 1838 1431 1845 1436 1850 1444
+ 1857 1453 1865 1462 1872 1472 1877 1480 1884 1487 1891 1494
+ 1899 1497 1904 1499 1911 1498 1918 1495 1923 1489 1930 1483
+ 1938 1473 1945 1465 1950 1455 1957 1446 1964 1438 1971 1431
+ 1977 1427 1984 1425 1991 1425 1998 1422 2003 1417 2011 1411
+ 2018 1403 2025 1394 2030 1385 2037 1375 2044 1367 2052 1359
+ 2057 1354 2064 1351 2071 1350 2076 1351 2084 1355 2091 1361
+ 2098 1369 2103 1377 2110 1387 2118 1396 2125 1405 2130 1412
+ 2137 1419 2144 1422 2151 1425 2157 1425 2164 1428 2171 1433
+ 2178 1440 2183 1448 2190 1457 2198 1467 2205 1476 2210 1484
+ 2217 1491 2224 1496 2232 1499 2237 1499 2244 1497 2251 1493
+ 2256 1486 2263 1478 2271 1469 2278 1459 2283 1451 2290 1442
+ 2297 1435 2304 1429 2310 1425 2317 1425
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave2.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave2.gnuplot
new file mode 100644
index 00000000..01e57a9b
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave2.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] sin(x)*abs(sin(x))
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave2.png b/muse_qt4_evolution/synti/deicsonze/pics/wave2.png
new file mode 100644
index 00000000..5f4daaee
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave2.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave3.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave3.fig
new file mode 100644
index 00000000..5051c2ef
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave3.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1496 1665 1478 1671 1458 1678 1442 1685 1424 1691 1408
+ 1697 1396 1704 1382 1711 1372 1718 1362 1724 1358 1731 1352
+ 1738 1350 1745 1352 1751 1352 1758 1358 1765 1364 1772 1374
+ 1777 1386 1784 1398 1791 1412 1797 1428 1804 1446 1811 1462
+ 1818 1482 1824 1496 1831 1496 1838 1496 1845 1496 1851 1496
+ 1857 1496 1864 1496 1871 1496 1877 1496 1884 1496 1891 1496
+ 1898 1496 1904 1496 1911 1496 1918 1496 1925 1496 1931 1496
+ 1938 1496 1944 1496 1950 1496 1957 1496 1964 1496 1971 1496
+ 1977 1496 1984 1496 1991 1486 1998 1468 2004 1450 2011 1432
+ 2018 1418 2025 1402 2030 1388 2037 1378 2044 1368 2051 1360
+ 2057 1354 2064 1352 2071 1350 2078 1352 2084 1354 2091 1362
+ 2098 1370 2105 1380 2110 1392 2117 1406 2124 1420 2130 1438
+ 2137 1454 2144 1472 2151 1492 2157 1496 2164 1496 2171 1496
+ 2178 1496 2184 1496 2191 1496 2197 1496 2204 1496 2210 1496
+ 2217 1496 2224 1496 2231 1496 2237 1496 2244 1496 2251 1496
+ 2258 1496 2264 1496 2271 1496 2277 1496 2283 1496 2290 1496
+ 2297 1496 2304 1496 2310 1496 2317 1496
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave3.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave3.gnuplot
new file mode 100644
index 00000000..e97c06b8
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave3.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?sin(x):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave3.png b/muse_qt4_evolution/synti/deicsonze/pics/wave3.png
new file mode 100644
index 00000000..6e0ada6d
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave3.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave4.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave4.fig
new file mode 100644
index 00000000..cb54e0e6
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave4.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1495 1665 1493 1671 1486 1678 1475 1685 1461 1691 1444
+ 1697 1426 1704 1408 1711 1390 1718 1375 1724 1363 1731 1354
+ 1738 1350 1745 1351 1751 1356 1758 1366 1765 1379 1772 1394
+ 1777 1412 1784 1431 1791 1448 1797 1465 1804 1479 1811 1489
+ 1818 1494 1824 1495 1831 1495 1838 1495 1845 1495 1851 1495
+ 1857 1495 1864 1495 1871 1495 1877 1495 1884 1495 1891 1495
+ 1898 1495 1904 1495 1911 1495 1918 1495 1925 1495 1931 1495
+ 1938 1495 1944 1495 1950 1495 1957 1495 1964 1495 1971 1495
+ 1977 1495 1984 1495 1991 1495 1998 1490 2004 1481 2011 1469
+ 2018 1453 2025 1435 2030 1417 2037 1399 2044 1383 2051 1369
+ 2057 1358 2064 1352 2071 1350 2078 1353 2084 1361 2091 1372
+ 2098 1386 2105 1403 2110 1421 2117 1440 2124 1457 2130 1472
+ 2137 1484 2144 1492 2151 1495 2157 1495 2164 1495 2171 1495
+ 2178 1495 2184 1495 2191 1495 2197 1495 2204 1495 2210 1495
+ 2217 1495 2224 1495 2231 1495 2237 1495 2244 1495 2251 1495
+ 2258 1495 2264 1495 2271 1495 2277 1495 2283 1495 2290 1495
+ 2297 1495 2304 1495 2310 1495 2317 1495
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave4.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave4.gnuplot
new file mode 100644
index 00000000..bf7b43c9
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave4.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?sin(x)*abs(sin(x)):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave4.png b/muse_qt4_evolution/synti/deicsonze/pics/wave4.png
new file mode 100644
index 00000000..f104e06c
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave4.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave5.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave5.fig
new file mode 100644
index 00000000..5d60ea7e
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave5.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1425 1665 1406 1671 1388 1678 1373 1685 1361 1691 1353
+ 1697 1350 1704 1352 1711 1358 1718 1368 1724 1382 1731 1399
+ 1738 1417 1745 1436 1751 1454 1758 1470 1765 1484 1772 1493
+ 1777 1498 1784 1498 1791 1494 1797 1485 1804 1472 1811 1456
+ 1818 1438 1824 1425 1831 1425 1838 1425 1845 1425 1851 1425
+ 1857 1425 1864 1425 1871 1425 1877 1425 1884 1425 1891 1425
+ 1898 1425 1904 1425 1911 1425 1918 1425 1925 1425 1931 1425
+ 1938 1425 1944 1425 1950 1425 1957 1425 1964 1425 1971 1425
+ 1977 1425 1984 1425 1991 1415 1998 1397 2004 1380 2011 1367
+ 2018 1357 2025 1351 2030 1350 2037 1354 2044 1363 2051 1375
+ 2057 1390 2064 1408 2071 1427 2078 1446 2084 1463 2091 1477
+ 2098 1489 2105 1496 2110 1499 2117 1497 2124 1490 2130 1479
+ 2137 1465 2144 1448 2151 1429 2157 1425 2164 1425 2171 1425
+ 2178 1425 2184 1425 2191 1425 2197 1425 2204 1425 2210 1425
+ 2217 1425 2224 1425 2231 1425 2237 1425 2244 1425 2251 1425
+ 2258 1425 2264 1425 2271 1425 2277 1425 2283 1425 2290 1425
+ 2297 1425 2304 1425 2310 1425 2317 1425
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave5.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave5.gnuplot
new file mode 100644
index 00000000..066cb3d4
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave5.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?sin(2*x):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave5.png b/muse_qt4_evolution/synti/deicsonze/pics/wave5.png
new file mode 100644
index 00000000..003af248
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave5.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave6.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave6.fig
new file mode 100644
index 00000000..5bad4b67
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave6.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1425 1665 1420 1671 1407 1678 1389 1685 1371 1691 1357
+ 1697 1350 1704 1353 1711 1365 1718 1382 1724 1401 1731 1416
+ 1738 1424 1745 1426 1751 1436 1758 1453 1765 1472 1772 1488
+ 1777 1497 1784 1498 1791 1490 1797 1474 1804 1455 1811 1438
+ 1818 1427 1824 1425 1831 1425 1838 1425 1845 1425 1851 1425
+ 1857 1425 1864 1425 1871 1425 1877 1425 1884 1425 1891 1425
+ 1898 1425 1904 1425 1911 1425 1918 1425 1925 1425 1931 1425
+ 1938 1425 1944 1425 1950 1425 1957 1425 1964 1425 1971 1425
+ 1977 1425 1984 1425 1991 1423 1998 1414 2004 1398 2011 1380
+ 2018 1363 2025 1352 2030 1350 2037 1358 2044 1373 2051 1391
+ 2057 1409 2064 1421 2071 1425 2078 1430 2084 1444 2091 1462
+ 2098 1480 2105 1494 2110 1499 2117 1495 2124 1482 2130 1464
+ 2137 1446 2144 1432 2151 1425 2157 1425 2164 1425 2171 1425
+ 2178 1425 2184 1425 2191 1425 2197 1425 2204 1425 2210 1425
+ 2217 1425 2224 1425 2231 1425 2237 1425 2244 1425 2251 1425
+ 2258 1425 2264 1425 2271 1425 2277 1425 2283 1425 2290 1425
+ 2297 1425 2304 1425 2310 1425 2317 1425
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave6.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave6.gnuplot
new file mode 100644
index 00000000..e1eed2e5
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave6.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?sin(2*x)*abs(sin(2*x)):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave6.png b/muse_qt4_evolution/synti/deicsonze/pics/wave6.png
new file mode 100644
index 00000000..08e717ce
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave6.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave7.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave7.fig
new file mode 100644
index 00000000..b5ad0ea2
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave7.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1495 1665 1459 1671 1425 1678 1395 1685 1372 1691 1357
+ 1697 1350 1704 1353 1711 1364 1718 1385 1724 1413 1731 1446
+ 1738 1482 1745 1472 1751 1437 1758 1405 1765 1380 1772 1361
+ 1777 1352 1784 1351 1791 1360 1797 1377 1804 1402 1811 1433
+ 1818 1468 1824 1495 1831 1495 1838 1495 1845 1495 1851 1495
+ 1857 1495 1864 1495 1871 1495 1877 1495 1884 1495 1891 1495
+ 1898 1495 1904 1495 1911 1495 1918 1495 1925 1495 1931 1495
+ 1938 1495 1944 1495 1950 1495 1957 1495 1964 1495 1971 1495
+ 1977 1495 1984 1495 1991 1477 1998 1441 2004 1409 2011 1382
+ 2018 1363 2025 1353 2030 1351 2037 1359 2044 1375 2051 1399
+ 2057 1428 2064 1463 2071 1491 2078 1454 2084 1421 2091 1392
+ 2098 1370 2105 1355 2110 1350 2117 1354 2124 1367 2130 1388
+ 2137 1417 2144 1450 2151 1486 2157 1495 2164 1495 2171 1495
+ 2178 1495 2184 1495 2191 1495 2197 1495 2204 1495 2210 1495
+ 2217 1495 2224 1495 2231 1495 2237 1495 2244 1495 2251 1495
+ 2258 1495 2264 1495 2271 1495 2277 1495 2283 1495 2290 1495
+ 2297 1495 2304 1495 2310 1495 2317 1495
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave7.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave7.gnuplot
new file mode 100644
index 00000000..294b2423
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave7.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?abs(sin(2*x)):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave7.png b/muse_qt4_evolution/synti/deicsonze/pics/wave7.png
new file mode 100644
index 00000000..44e5928f
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave7.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave8.fig b/muse_qt4_evolution/synti/deicsonze/pics/wave8.fig
new file mode 100644
index 00000000..017deb5b
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave8.fig
@@ -0,0 +1,29 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1650 1350 2325 1500
+2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 100
+ 1658 1495 1665 1486 1671 1461 1678 1426 1685 1390 1691 1363
+ 1697 1350 1704 1356 1711 1379 1718 1412 1724 1448 1731 1479
+ 1738 1494 1745 1492 1751 1472 1758 1440 1765 1403 1772 1372
+ 1777 1353 1784 1352 1791 1369 1797 1399 1804 1435 1811 1469
+ 1818 1490 1824 1495 1831 1495 1838 1495 1845 1495 1851 1495
+ 1857 1495 1864 1495 1871 1495 1877 1495 1884 1495 1891 1495
+ 1898 1495 1904 1495 1911 1495 1918 1495 1925 1495 1931 1495
+ 1938 1495 1944 1495 1950 1495 1957 1495 1964 1495 1971 1495
+ 1977 1495 1984 1495 1991 1493 1998 1475 2004 1444 2011 1408
+ 2018 1375 2025 1354 2030 1351 2037 1366 2044 1394 2051 1431
+ 2057 1465 2064 1489 2071 1495 2078 1484 2084 1457 2091 1421
+ 2098 1386 2105 1361 2110 1350 2117 1358 2124 1383 2130 1417
+ 2137 1453 2144 1481 2151 1495 2157 1495 2164 1495 2171 1495
+ 2178 1495 2184 1495 2191 1495 2197 1495 2204 1495 2210 1495
+ 2217 1495 2224 1495 2231 1495 2237 1495 2244 1495 2251 1495
+ 2258 1495 2264 1495 2271 1495 2277 1495 2283 1495 2290 1495
+ 2297 1495 2304 1495 2310 1495 2317 1495
+-6
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave8.gnuplot b/muse_qt4_evolution/synti/deicsonze/pics/wave8.gnuplot
new file mode 100644
index 00000000..e86332c7
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave8.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] [-1:1] (x<pi || (x>2*pi && x<3*pi))?sin(2*x)*sin(2*x):0
diff --git a/muse_qt4_evolution/synti/deicsonze/pics/wave8.png b/muse_qt4_evolution/synti/deicsonze/pics/wave8.png
new file mode 100644
index 00000000..6df0dda5
--- /dev/null
+++ b/muse_qt4_evolution/synti/deicsonze/pics/wave8.png
Binary files differ
diff --git a/muse_qt4_evolution/synti/fluid/CMakeLists.txt b/muse_qt4_evolution/synti/fluid/CMakeLists.txt
new file mode 100644
index 00000000..e51ea9c6
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/CMakeLists.txt
@@ -0,0 +1,50 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( fluid_mocs fluidgui.h )
+QT4_WRAP_UI ( fluid_uis fluidgui.ui )
+
+add_library ( fluid SHARED
+ fluid.cpp
+ fluidgui.cpp
+ fluidgui.h
+ ${fluid_mocs}
+ ${fluid_uis}
+ )
+
+target_link_libraries( fluid synti )
+
+# - tell cmake to name target fluid.so instead of
+# libfluid.so
+# - use precompiled header files
+#
+set_target_properties ( fluid
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ LINK_FLAGS "-L${FLUID_LIBDIR} ${FLUID_LIB}"
+ )
+target_link_libraries(fluid
+ synti
+ ${QT_LIBRARIES}
+ ${FLUID_LIB}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ fluid )
+
diff --git a/muse_qt4_evolution/synti/fluid/fluid.cpp b/muse_qt4_evolution/synti/fluid/fluid.cpp
new file mode 100644
index 00000000..601b1899
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/fluid.cpp
@@ -0,0 +1,518 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluid.cpp,v 1.21 2005/11/23 13:55:32 wschweer Exp $
+//
+// This file is derived from fluid Synth and modified
+// for MusE.
+// Parts of fluid are derived from Smurf Sound Font Editor.
+// Parts of Smurf Sound Font Editor are derived from
+// awesfx utilities
+// Smurf: Copyright (C) 1999-2000 Josh Green
+// fluid: Copyright (C) 2001 Peter Hanappe
+// MusE: Copyright (C) 2001 Werner Schweer
+// awesfx: Copyright (C) 1996-1999 Takashi Iwai
+//=========================================================
+
+#include "muse/midictrl.h"
+#include "fluid.h"
+#include "fluidgui.h"
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+static Mess* instantiate(int sr, const char* name)
+ {
+ ISynth* synth = new ISynth();
+ synth->setSampleRate(sr);
+ if (synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+
+//---------------------------------------------------------
+// MESS
+//---------------------------------------------------------
+
+extern "C" {
+ static MESS descriptor = {
+ "fluid",
+ "Werner Schweer",
+ "0.1", // fluid version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
+//---------------------------------------------------------
+// ISynth
+//---------------------------------------------------------
+
+ISynth::ISynth()
+ : Mess(2)
+ {
+ _busy = false;
+ sfont = 0;
+ _gmMode = false; // General Midi Mode
+ _fluidsynth = 0;
+ initBuffer = 0;
+ initLen = 0;
+ fontId = -1;
+ }
+
+//---------------------------------------------------------
+// playNote
+// return true if busy
+//---------------------------------------------------------
+
+bool ISynth::playNote(int channel, int pitch, int velo)
+ {
+ if (_busy) {
+// printf("fluid: playNote(): busy!\n");
+ return true;
+ }
+ if (velo) {
+ int err = fluid_synth_noteon(_fluidsynth, channel, pitch, velo);
+ if (err) {
+ printf("ISynth: noteon error, channel %d pitch %d<%s>\n",
+ channel, pitch, fluid_synth_error(_fluidsynth));
+ }
+ }
+ else
+ fluid_synth_noteoff(_fluidsynth, channel, pitch);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setController
+// return true if busy
+//---------------------------------------------------------
+
+bool ISynth::setController(int ch, int ctrl, int val)
+ {
+ if (_busy) {
+// printf("fluid: setController(%d,%d,%d): busy!\n", ch, ctrl, val);
+ return true;
+ }
+ switch(ctrl) {
+ case CTRL_PROGRAM:
+ {
+ int hbank = (val & 0xff0000) >> 16;
+ int lbank = (val & 0xff00) >> 8;
+ if (hbank > 127) // map "dont care" to 0
+ hbank = 0;
+ if (lbank > 127)
+ lbank = 0;
+ if (lbank == 127 || ch == 9) // drum HACK
+ lbank = 128;
+ int prog = val & 0x7f;
+ fluid_synth_program_select(_fluidsynth, ch,
+ hbank, lbank, prog);
+ }
+ break;
+
+ case CTRL_PITCH:
+ fluid_synth_pitch_bend (_fluidsynth, ch, val);
+ break;
+
+ default:
+// printf("controller %x val %x\n", ctrl & 0x3fff, val);
+ fluid_synth_cc(_fluidsynth, ch, ctrl & 0x3fff, val);
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sysex
+// 7e 7f 09 01 GM on
+// 7e 7f 09 02 GM off
+// 7f 7f 04 01 ll hh Master Volume (ll-low byte, hh-high byte)
+// 7c 00 01 nn ... replace Soundfont (nn-ascii char of path
+// 7c 00 02 nn ... add Soundfont
+// 7c 00 03 nn ... remove Soundfont
+//
+// return true if busy
+//---------------------------------------------------------
+
+bool ISynth::sysex(int len, const unsigned char* data)
+ {
+ if (_busy) {
+// printf("fluid: sysex(): busy!\n");
+ return true;
+ }
+ if (len >= 4) {
+ //---------------------------------------------
+ // Universal Non Realtime
+ //---------------------------------------------
+
+ if (data[0] == 0x7e) {
+ if (data[1] == 0x7f) { // device Id
+ if (data[2] == 0x9) { // GM
+ if (data[3] == 0x1) {
+ gmOn(true);
+ return false;
+ }
+ else if (data[3] == 0x2) {
+ gmOn(false);
+ return false;
+ }
+ }
+ }
+ }
+
+ //---------------------------------------------
+ // Universal Realtime
+ //---------------------------------------------
+
+ else if (data[0] == 0x7f) {
+ if (data[1] == 0x7f) { // device Id
+ if ((data[2] == 0x4) && (data[3] == 0x1)) {
+ float v = (data[5]*128 + data[4])/32767.0;
+ fluid_synth_set_gain(_fluidsynth, v);
+ return false;
+ }
+ }
+ }
+
+ //---------------------------------------------
+ // MusE Soft Synth
+ //---------------------------------------------
+
+ else if (data[0] == 0x7c) {
+ int n = len - 3;
+ if (n < 1) {
+ printf("fluid: bad sysEx:\n");
+ return false;
+ }
+ char buffer[n+1];
+ memcpy(buffer, (char*)data+3, n);
+ buffer[n] = 0;
+ if (data[1] == 0) { // fluid
+ if (data[2] == 1) { // load sound font
+ sysexSoundFont(SF_REPLACE, buffer);
+ return false;
+ }
+ else if (data[2] == 2) { // load sound font
+ sysexSoundFont(SF_ADD, buffer);
+ return false;
+ }
+ else if (data[2] == 3) { // load sound font
+ sysexSoundFont(SF_REMOVE, buffer);
+ return false;
+ }
+ }
+ }
+ else if (data[0] == 0x41) { // roland
+ if (data[1] == 0x10 && data[2] == 0x42 && data[3] == 0x12
+ && data[4] == 0x40 && data[5] == 00 && data[6] == 0x7f
+ && data[7] == 0x41) {
+ // gs on
+ gmOn(true);
+ return false;
+ }
+ }
+ }
+ printf("fluid: unknown sysex received, len %d:\n", len);
+ for (int i = 0; i < len; ++i)
+ printf("%02x ", data[i]);
+ printf("\n");
+ return false;
+ }
+
+//---------------------------------------------------------
+// gmOn
+//---------------------------------------------------------
+
+void ISynth::gmOn(bool flag)
+ {
+ _gmMode = flag;
+ allNotesOff();
+ }
+
+//---------------------------------------------------------
+// allNotesOff
+// stop all notes
+//---------------------------------------------------------
+
+void ISynth::allNotesOff()
+ {
+ for (int ch = 0; ch < 16; ++ch) {
+ fluid_synth_cc(_fluidsynth, ch, 0x7b, 0); // all notes off
+ }
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool ISynth::guiVisible() const
+ {
+ return gui->isVisible();
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void ISynth::showGui(bool flag)
+ {
+ gui->setShown(flag);
+ }
+
+//---------------------------------------------------------
+// ~ISynth
+//---------------------------------------------------------
+
+ISynth::~ISynth()
+ {
+ // TODO delete settings
+ if (_fluidsynth)
+ delete_fluid_synth(_fluidsynth);
+ if (initBuffer)
+ delete [] initBuffer;
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void ISynth::process(float** ports, int offset, int n)
+ {
+ if (!_busy) {
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize())
+ processEvent(gui->readEvent());
+ fluid_synth_write_float(_fluidsynth, n, ports[0],
+ offset, 1, ports[1], offset, 1);
+ }
+ // printf("%f %f\n", *ports[0], *(ports[0]+1));
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* ISynth::getPatchName(int /*ch*/, int val, int) const
+ {
+ int hbank = (val & 0xff0000) >> 16;
+ int lbank = (val & 0xff00) >> 8;
+ if (hbank > 127)
+ hbank = 0;
+ if (lbank > 127)
+ lbank = 0;
+ if (lbank == 127) // drum HACK
+ lbank = 128;
+ int prog = val & 0x7f;
+ char* name = "---";
+
+ if (_busy) {
+ printf("fluid: getPatchName(): busy!\n");
+ return name;
+ }
+ fluid_font = fluid_synth_get_sfont_by_id(_fluidsynth, hbank);
+ if (fluid_font) {
+ fluid_preset_t* preset = (*fluid_font->get_preset)(fluid_font, lbank, prog);
+ if (preset)
+ name = (*preset->get_name)(preset);
+ else
+ fprintf(stderr, "no fluid preset for bank %d prog %d\n",
+ lbank, prog);
+ }
+ else
+ fprintf(stderr, "ISynth::getPatchName(): no fluid font id=%d found\n", hbank);
+ return name;
+ }
+
+//---------------------------------------------------------
+// getNextPatch
+//---------------------------------------------------------
+
+const MidiPatch* ISynth::getPatchInfo(int ch, const MidiPatch* p) const
+ {
+ if (_busy) {
+ printf("fluid: getPatchInfo(): busy!\n");
+ return 0;
+ }
+ if (p == 0) {
+ // get font at font stack index 0
+ fluid_font = fluid_synth_get_sfont(_fluidsynth, 0);
+ if (fluid_font == 0)
+ return 0;
+ (*fluid_font->iteration_start)(fluid_font);
+ }
+ fluid_preset_t preset;
+
+ while ((*fluid_font->iteration_next)(fluid_font, &preset)) {
+ patch.hbank = fluid_sfont_get_id(fluid_font);
+ int bank = (*preset.get_banknum)(&preset);
+ if (ch == 9 && bank != 128) // show only drums for channel 10
+ continue;
+ if (bank == 128)
+ bank = 127;
+ patch.typ = 0;
+ patch.name = (*preset.get_name)(&preset);
+ patch.lbank = bank;
+ patch.prog = (*preset.get_num)(&preset);
+ return &patch;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getInitData
+// construct an initialization string which can be used
+// as a sysex to restore current state
+//---------------------------------------------------------
+
+void ISynth::getInitData(int* len, const unsigned char** data)
+ {
+ if (sfont == 0) {
+ *len = 0;
+ return;
+ }
+ int n = 4 + strlen(sfont);
+ if (n > initLen) {
+ if (initBuffer)
+ delete [] initBuffer;
+ initBuffer = new unsigned char[n];
+ }
+ initBuffer[0] = 0x7c;
+ initBuffer[1] = 0x00;
+ initBuffer[2] = SF_REPLACE;
+ strcpy((char*)(initBuffer+3), sfont);
+ *len = n;
+ *data = initBuffer;
+ }
+
+//---------------------------------------------------------
+// sysexSoftfont
+//---------------------------------------------------------
+
+void ISynth::sysexSoundFont(SfOp op, const char* data)
+ {
+ char c = 'x';
+ allNotesOff();
+ switch(op) {
+ case SF_REMOVE:
+ break;
+ case SF_REPLACE:
+ case SF_ADD:
+ if (sfont && (strcmp(sfont, data) == 0)) {
+ fprintf(stderr, "fluid: font already loaded\n");
+ break;
+ }
+ if (_busy) {
+ fprintf(stderr, "fluid: busy!\n");
+ break;
+ }
+ _busy = true;
+ if (sfont)
+ delete[] sfont;
+ sfont = new char[strlen(data)+1];
+ strcpy(sfont, data);
+ _busy = true;
+ write(writeFd, &c, 1);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// fontLoad
+// helper thread to load soundfont in the
+// background
+//---------------------------------------------------------
+
+static void* helper(void* t)
+ {
+ ISynth* is = (ISynth*) t;
+ is->noRTHelper();
+ pthread_exit(0);
+ }
+
+//------------------------------------
+// noRTHelper
+//---------------------------------------------------------
+
+void ISynth::noRTHelper()
+ {
+ for (;;) {
+ char c;
+ int n = read(readFd, &c, 1);
+ if (n != 1) {
+ perror("ISynth::read ipc failed\n");
+ continue;
+ }
+ int id = getFontId();
+ if (id != -1) {
+ fprintf(stderr, "ISynth: unload old font\n");
+ fluid_synth_sfunload(synth(), (unsigned)id, true);
+ }
+ int rv = fluid_synth_sfload(synth(), getFont(), true);
+ if (rv == -1) {
+ fprintf(stderr, "ISynth: sfload %s failed\n",
+ fluid_synth_error(synth()));
+ }
+ else {
+ setFontId(rv);
+ fprintf(stderr, "ISynth: sfont %s loaded as %d\n ",
+ getFont(), rv);
+ }
+ fluid_synth_set_gain(synth(), 1.0); //?
+ _busy = false;
+ }
+ }
+
+//---------------------------------------------------------
+// init
+// return true on error
+//---------------------------------------------------------
+
+bool ISynth::init(const char* name)
+ {
+ fluid_settings_t* settings;
+ settings = new_fluid_settings();
+ fluid_settings_setnum(settings, "synth.sample-rate", float(sampleRate()));
+
+ _fluidsynth = new_fluid_synth(settings);
+
+ //---------------------------------------
+ // create non realtime helper thread
+ // create message channels
+ //
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("ISynth::thread:creating pipe");
+ return true;
+ }
+ readFd = filedes[0];
+ writeFd = filedes[1];
+
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+ if (pthread_create(&helperThread, attributes, ::helper, this))
+ perror("creating thread failed:");
+ pthread_attr_destroy(attributes);
+
+ char* p = getenv("DEFAULT_SOUNDFONT");
+ if (p) {
+ sfont = new char[strlen(p)+1];
+ strcpy(sfont, p);
+ char c = 'x';
+ _busy = true;
+ write(writeFd, &c, 1);
+ }
+
+ gui = new FLUIDGui;
+ gui->hide(); // to avoid flicker during MusE startup
+ gui->setWindowTitle(QString(name));
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/synti/fluid/fluid.h b/muse_qt4_evolution/synti/fluid/fluid.h
new file mode 100644
index 00000000..af8ff3a1
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/fluid.h
@@ -0,0 +1,80 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluid.h,v 1.8 2005/11/23 13:55:32 wschweer Exp $
+//
+// This file is derived from fluid Synth and modified
+// for MusE.
+// Parts of fluid are derived from Smurf Sound Font Editor.
+// Parts of Smurf Sound Font Editor are derived from
+// awesfx utilities
+// Smurf: Copyright (C) 1999-2000 Josh Green
+// fluid: Copyright (C) 2001 Peter Hanappe
+// MusE: Copyright (C) 2001 Werner Schweer
+// awesfx: Copyright (C) 1996-1999 Takashi Iwai
+//=========================================================
+
+#ifndef _SYNTH_H
+#define _SYNTH_H
+
+#include <fluidsynth.h>
+#include "libsynti/mess.h"
+
+enum SfOp { SF_REPLACE = 1, SF_ADD, SF_REMOVE };
+class FLUIDGui;
+
+//---------------------------------------------------------
+// ISynth
+//---------------------------------------------------------
+
+class ISynth : public Mess {
+ bool _busy;
+ bool _gmMode;
+
+ unsigned char* initBuffer;
+ int initLen;
+
+ fluid_synth_t* _fluidsynth;
+ char* sfont;
+ mutable fluid_sfont_t* fluid_font;
+ int fontId;
+
+ int readFd, writeFd;
+
+ mutable MidiPatch patch;
+
+ pthread_t helperThread;
+ FLUIDGui* gui;
+
+ void gmOn(bool);
+ void sysexSoundFont(SfOp op, const char* data);
+
+ void allNotesOff();
+ void resetAllController(int);
+
+ virtual void process(float**, int, int);
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual bool setController(int, int, int);
+ virtual bool sysex(int len, const unsigned char* p);
+ virtual const char* getPatchName (int, int, int) const;
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch *) const;
+ virtual void getInitData(int*, const unsigned char**);
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool);
+ virtual bool hasGui() const { return true; }
+
+ public:
+ ISynth();
+ ~ISynth();
+
+ fluid_synth_t* synth() { return _fluidsynth; }
+ const fluid_synth_t* synth() const { return _fluidsynth; }
+ char* getFont() const { return sfont; }
+ void setFontId(int id) { fontId = id; }
+ int getFontId() const { return fontId; }
+ bool init(const char* name);
+ void noRTHelper();
+ };
+
+#endif /* _SYNTH_H */
diff --git a/muse_qt4_evolution/synti/fluid/fluidgui.cpp b/muse_qt4_evolution/synti/fluid/fluidgui.cpp
new file mode 100644
index 00000000..aea6e38a
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/fluidgui.cpp
@@ -0,0 +1,68 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluidgui.cpp,v 1.10 2005/11/23 13:55:32 wschweer Exp $
+//
+// This is a simple GUI implemented with QT for
+// fluid software synthesizer.
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "fluidgui.h"
+#include "muse/midi.h"
+
+//---------------------------------------------------------
+// FLUIDGui
+//---------------------------------------------------------
+
+FLUIDGui::FLUIDGui()
+ : QDialog(0), MessGui()
+ {
+ setupUi(this);
+ connect(fdialogButton, SIGNAL(clicked()), SLOT(soundFontFileDialog()));
+ connect(loadButton, SIGNAL(clicked()), SLOT(loadFont()));
+ }
+
+//---------------------------------------------------------
+// loadFont
+// sysex f0 lenH lenM lenL 7c 00 01 name
+//---------------------------------------------------------
+
+void FLUIDGui::loadFont()
+ {
+ if (pathEntry->text().isEmpty())
+ return;
+ QFileInfo fi(pathEntry->text());
+ if (!fi.exists()) {
+ QString s = QString("SoundFont ") + pathEntry->text() + QString(" does not exists");
+ QMessageBox::critical(this, tr("FLUID: open Soundfile"), s);
+ return;
+ }
+ const char* path = pathEntry->text().toLatin1().data();
+ int len = strlen(path) + 1 + 3;
+ unsigned char buffer[len];
+ int k = 0;
+ buffer[k++] = 0x7c;
+ buffer[k++] = 0x00; // fluid
+ buffer[k++] = 0x01; // load sound font
+ strcpy((char*)(&buffer[k]), path);
+ sendSysex(buffer, len);
+ }
+
+//---------------------------------------------------------
+// soundFontFileDialog
+//---------------------------------------------------------
+
+void FLUIDGui::soundFontFileDialog()
+ {
+ QString s = QFileDialog::getOpenFileName(
+ this,
+ tr("Fluid: select Sound Font"),
+ ".",
+ QString("*.[Ss][Ff]2"));
+ if (!s.isEmpty()) {
+ pathEntry->setText(s);
+ }
+ }
+
diff --git a/muse_qt4_evolution/synti/fluid/fluidgui.h b/muse_qt4_evolution/synti/fluid/fluidgui.h
new file mode 100644
index 00000000..3b42280f
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/fluidgui.h
@@ -0,0 +1,31 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluidgui.h,v 1.3 2005/10/04 21:37:44 lunar_shuttle Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __GUI_H__
+#define __GUI_H
+
+#include "ui_fluidgui.h"
+#include "libsynti/gui.h"
+
+//---------------------------------------------------------
+// FLUIDGui
+//---------------------------------------------------------
+
+class FLUIDGui : public QDialog, public Ui::FLUIDGuiBase, public MessGui {
+
+ Q_OBJECT
+
+ private slots:
+ void soundFontFileDialog();
+ void loadFont();
+
+ public:
+ FLUIDGui();
+ };
+
+#endif
diff --git a/muse_qt4_evolution/synti/fluid/fluidgui.ui b/muse_qt4_evolution/synti/fluid/fluidgui.ui
new file mode 100644
index 00000000..dde416d2
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluid/fluidgui.ui
@@ -0,0 +1,115 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>FLUIDGuiBase</class>
+ <widget class="QDialog" name="FLUIDGuiBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>318</width>
+ <height>228</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form1</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Soundfont</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="pathEntry" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="fdialogButton" >
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>230</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="loadButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Load</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ <widget class="QWidget" name="" />
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/fluidsynth/CMakeLists.txt b/muse_qt4_evolution/synti/fluidsynth/CMakeLists.txt
new file mode 100644
index 00000000..5fdc3533
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/CMakeLists.txt
@@ -0,0 +1,51 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( fluidsynth_mocs fluidsynthgui.h )
+QT4_WRAP_UI ( fluidsynth_uis fluidsynthgui.ui )
+
+add_library ( fluidsynth SHARED
+ fluidsynti.cpp
+ fluidsynthgui.cpp
+ fluidsynthgui.h
+ ${fluidsynth_mocs}
+ ${fluidsynth_uis}
+ )
+
+target_link_libraries( fluidsynth synti )
+
+# - tell cmake to name target fluidsynth.so instead of
+# libfluidsynth.so
+# - use precompiled header files
+#
+set_target_properties ( fluidsynth
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ LINK_FLAGS "-L${FLUID_LIBDIR} ${FLUID_LIB}"
+ )
+
+target_link_libraries(fluidsynth
+ synti
+ ${QT_LIBRARIES}
+ ${FLUID_LIB}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ fluidsynth )
+
diff --git a/muse_qt4_evolution/synti/fluidsynth/README.txt b/muse_qt4_evolution/synti/fluidsynth/README.txt
new file mode 100644
index 00000000..7764edb6
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/README.txt
@@ -0,0 +1,45 @@
+README.txt
+----------
+
+Graphical frontend and built-in softsynth (MusE Experimental Soft Synth) for MusE, based on Fluidsynth
+(http://www.fluidsynth.org).
+
+Features:
+---------
+- Loading/unloading of soundfonts
+- Easy control of fluidsynth's send effects and their parameters
+- Mapping of soundfonts to fluidsynth channels
+- Stores all settings in the current project file and automatically loads all effect parameters,
+ soundfonts, channel settings and presets when re-opening the project.
+- Makes it possible to use several soundfonts in one single fluidsynth instance (thereby reducing CPU usage since they share
+ the same send effects)
+
+
+Changelog/History
+-----------------
+040524
+- Err... Fount out that this changelog is neglected. See ../../Changelog.txt instead.
+031019
+- Bugfixes and changes in storing/retrieving init parameters (Mathias Lundgren)
+031009
+- Unloading of soundfonts works (Mathias Lundgren)
+- Last dir stored in project-file (Mathias Lundgren)
+- Ordinary controller-events enabled (Mathias Lundgren)
+031008
+- Mapping of soundfonts to fluidchannels and selection of patches implemented. (Mathias Lundgren)
+- Permanent storage of channels & patches. Extended GUI. (Mathias Lundgren)
+031002
+- Various communication problems fixed between GUI and client (Mathias Lundgren)
+- Storage of synth parameters and soundfonts enabled (Mathias Lundgren/Robert Jonsson)
+
+0309xx
+- Problem with loading of soundfonts resulting in Jack timeout fixed by moving loading of soundfonts to separate thread. (Robert Jonsson)
+
+Original code written by Robert Ham (no information about the history of his work)
+
+
+Known problems/TODO:
+--------------------------------------------------------------
+* Turning on the chorus and/or modifying chorus parameters locks the client.
+* Illegal chorus parameters can be sent to fluidsynth.
+* Drum patches (lbank=128) not implemented yet
diff --git a/muse_qt4_evolution/synti/fluidsynth/TODO b/muse_qt4_evolution/synti/fluidsynth/TODO
new file mode 100644
index 00000000..e941e1e9
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/TODO
@@ -0,0 +1,13 @@
+ TODO
+
+o preset loading/saving
+o configuration loading/saving
+o soundfont information display
+o remembering the last directory that was dealt with
+o change gui<->synth communication to nrpns
+
+ DONE
+
+o get all controllers working
+o soundfont stack operations
+o patch name retrieval
diff --git a/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.cpp b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.cpp
new file mode 100644
index 00000000..42f812b5
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.cpp
@@ -0,0 +1,596 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynthgui.cpp,v 1.19 2006/01/06 22:48:09 wschweer Exp $
+ *
+ */
+
+#include "fluidsynthgui.h"
+#include "fluidsynti.h"
+#include <iostream>
+#include "muse/midi.h"
+#include "xpm/buttondown.xpm"
+
+
+//#define MUSE_FLUID_DEBUG false
+
+FluidSynthGui::FluidSynthGui()
+ : MessGui()
+ {
+ setupUi(this);
+ //Connect socketnotifier to fifo
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+ connect (Push, SIGNAL (clicked()), SLOT(loadClicked()));
+
+ pendingFont = "";
+
+ //channelListView->setColumnWidthMode(FS_CHANNEL_COL, Q3ListView::Maximum);
+ //channelListView->setColumnWidthMode(FS_SF_ID_COL,Q3ListView::Maximum);
+ ReverbFrame->setEnabled(true);
+ ChorusFrame->setEnabled(true);
+
+ if (!FS_DEBUG)
+ dumpInfoButton->hide();
+
+ connect(Gain, SIGNAL(valueChanged(int)), SLOT(changeGain(int)));
+ connect(dumpInfoButton , SIGNAL(clicked()), SLOT(dumpInfo()));
+
+ connect(channelTreeWidget, SIGNAL(itemPressed(QTreeWidgetItem*,int)),
+ this, SLOT(channelItemClicked(QTreeWidgetItem*,int)));
+ connect(sfTreeWidget, SIGNAL(itemPressed(QTreeWidgetItem*,int)),
+ this, SLOT(sfItemClicked(QTreeWidgetItem*,int)));
+
+ connect(Reverb, SIGNAL (toggled(bool)), SLOT(toggleReverb(bool)));
+ connect(ReverbLevel, SIGNAL (valueChanged (int)), SLOT(changeReverbLevel(int)));
+ connect(ReverbRoomSize, SIGNAL (valueChanged (int)), SLOT(changeReverbRoomSize(int)));
+ connect(ReverbDamping, SIGNAL (valueChanged (int)), SLOT(changeReverbDamping(int)));
+ connect(ReverbWidth, SIGNAL (valueChanged (int)), SLOT(changeReverbWidth(int)));
+
+ connect (Pop, SIGNAL (clicked()), SLOT(popClicked()));
+ connect(Chorus, SIGNAL (toggled (bool)), SLOT(toggleChorus (bool)));
+ connect(ChorusNumber, SIGNAL (valueChanged (int)), SLOT(changeChorusNumber (int)));
+ connect(ChorusType, SIGNAL (activated (int)), SLOT(changeChorusType (int)));
+ connect(ChorusSpeed, SIGNAL (valueChanged (int)), SLOT(changeChorusSpeed (int)));
+ connect(ChorusDepth, SIGNAL (valueChanged (int)), SLOT(changeChorusDepth (int)));
+ connect(ChorusLevel, SIGNAL (valueChanged (int)), SLOT(changeChorusLevel (int)));
+
+ //Clear channels
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++)
+ channels[i] = FS_UNSPECIFIED_ID;
+ }
+
+FluidSynthGui::~FluidSynthGui()
+ {
+ /*
+ delete _notifier;
+ */
+ }
+
+void FluidSynthGui::toggleReverb(bool on) { sendController(0, FS_REVERB_ON, on); }
+void FluidSynthGui::changeReverbLevel(int val) { sendController(0, FS_REVERB_LEVEL, val); }
+void FluidSynthGui::changeReverbRoomSize(int val) { sendController(0, FS_REVERB_ROOMSIZE, val); }
+void FluidSynthGui::changeReverbWidth(int val) { sendController(0, FS_REVERB_WIDTH, val); }
+void FluidSynthGui::changeReverbDamping(int val) { sendController(0, FS_REVERB_DAMPING, val); }
+
+void FluidSynthGui::toggleChorus(bool val) { sendController(0, FS_CHORUS_ON, val); }
+void FluidSynthGui::changeChorusNumber(int val) { sendController(0, FS_CHORUS_NUM, val); }
+void FluidSynthGui::changeChorusType(int val) { sendController(0, FS_CHORUS_TYPE, val); }
+void FluidSynthGui::changeChorusSpeed(int val) { sendController(0, FS_CHORUS_SPEED, val); }
+void FluidSynthGui::changeChorusDepth(int val) { sendController(0, FS_CHORUS_DEPTH, val); }
+void FluidSynthGui::changeChorusLevel(int val) { sendController(0, FS_CHORUS_LEVEL, val); }
+
+
+void FluidSynthGui::loadClicked()
+ {
+ QString filename = QFileDialog::getOpenFileName(
+ this,
+ tr("Choose soundfont"),
+ lastdir,
+ QString("*.[Ss][Ff]2")
+ );
+ if (!filename.isEmpty()) {
+ QFileInfo fi(filename);
+ lastdir = fi.absolutePath();
+ sendLastdir(lastdir);
+ sendLoadFont(filename);
+ pendingFont = filename;
+ }
+ }
+
+//---------------------------------------------------------
+// sendLastdir
+// Send the last dir-value to the client
+//---------------------------------------------------------
+
+void FluidSynthGui::sendLastdir(QString dir)
+ {
+ int l = dir.size() + 2;
+ byte data[l];
+ data[0] = FS_LASTDIR_CHANGE;
+ memcpy(data+1, dir.toLatin1().data(), dir.size()+1);
+ sendSysex(data,l);
+ }
+
+//---------------------------------------------------------
+// sendLoadFont
+// Tell the client to load a font with first available id
+//---------------------------------------------------------
+
+void FluidSynthGui::sendLoadFont(QString filename)
+ {
+ int l = filename.length()+3;
+ byte data[l];
+ data[0] = FS_PUSH_FONT;
+ data[1] = FS_UNSPECIFIED_ID;
+ memcpy(data+2, filename.toLatin1().data(), filename.length()+1);
+ sendSysex(data,l);
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void FluidSynthGui::processEvent(const MidiEvent& ev)
+ {
+ //Sysexes sent from the client
+ if (ev.type() == ME_SYSEX) {
+ byte* data = ev.data();
+ switch (*data) {
+ case FS_LASTDIR_CHANGE:
+ lastdir = QString((const char*)data+1);
+ break;
+ case FS_ERROR: {
+ char* msg = (char*) (data+1);
+ QMessageBox::critical(this, "Fluidsynth",QString(msg));
+ break;
+ }
+ case FS_SEND_SOUNDFONTDATA: {
+ int chunk_len;
+ int filename_len;
+
+ int count = (int)*(data+1); //Number of elements
+ byte* cp = data+2; //Point to beginning of first chunk
+ sfTreeWidget->clear(); //Clear the listview
+ stack.clear(); //Clear the stack since we're starting over again
+
+ while (count) {
+ FluidGuiSoundFont font;
+ filename_len = strlen((const char*)cp) + 1;
+ font.name = (const char*)cp;
+ font.id = *(cp + filename_len);
+ chunk_len = filename_len + FS_SFDATALEN;
+ stack.push_front(font);
+ cp += chunk_len; //Move to next chunk
+ count--;
+ }
+ updateSoundfontTreeWidget();
+ updateChannelTreeWidget();
+ break;
+ }
+ case FS_SEND_CHANNELINFO: {
+ byte* chptr = (data+1);
+ for (int i=0; i< FS_MAX_NR_OF_CHANNELS; i++) {
+ byte id = *chptr;
+ byte channel = *(chptr+1);
+ channels[channel] = id;
+ chptr+=2;
+ }
+ updateChannelTreeWidget();
+
+ break;
+ }
+ case FS_SEND_DRUMCHANNELINFO: {
+ byte* drumchptr = (data+1);
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ drumchannels[i] = *drumchptr;
+ drumchptr++;
+ }
+ updateChannelTreeWidget();
+ break;
+ }
+ case FS_FONT_SUCCESSFULLY_LOADED: {
+ byte extid = *(data+1);
+ QString fn = (const char*) (data+2);
+ if (FS_DEBUG) {
+ printf("Font successfully loaded: %s, extid: %d\n", fn.toLatin1().data(), extid);
+ }
+ // Try to add last loaded font (if any) to first available channel:
+ if (pendingFont == fn) {
+ if (FS_DEBUG)
+ printf("Pending font successfully loaded. Add it to first available channel.\n");
+
+ for (int i=0; i < FS_MAX_NR_OF_CHANNELS; i++) {
+ if (channels[i] == FS_UNSPECIFIED_ID) {
+ if (FS_DEBUG)
+ printf ("sendChannelChange: %d %d\n", extid, i);
+ sendChannelChange(extid, i);
+ channels[i] = extid;
+ updateChannelTreeWidget();
+ break;
+ }
+ }
+ }
+ pendingFont = "";
+ break;
+ }
+ default:
+ if (FS_DEBUG)
+ printf("FluidSynthGui::processEvent() : Unknown Sysex received: %d\n", ev.type());
+ break;
+ }
+ }
+ //Controllers sent from the client:
+ else
+ if(ev.type() == ME_CONTROLLER) {
+ int id = ev.dataA();
+ int val = ev.dataB();
+ switch (id) {
+ case FS_GAIN: {
+ bool sb = Gain->signalsBlocked();
+ Gain->blockSignals(true);
+ // Update Gain-slider without causing it to respond to it's own signal (and send another msg to the synth)
+ Gain->setValue(val);
+ Gain->blockSignals(sb);
+ break;
+ }
+ case FS_REVERB_ON: {
+ bool sb = Reverb->signalsBlocked();
+ Reverb->blockSignals(true);
+ Reverb->setChecked(val);
+ Reverb->blockSignals(sb);
+ break;
+ }
+ case FS_REVERB_LEVEL: {
+ bool sb = ReverbLevel->signalsBlocked();
+ ReverbLevel->blockSignals(true);
+ ReverbLevel->setValue(val);
+ ReverbLevel->blockSignals(sb);
+ break;
+ }
+ case FS_REVERB_DAMPING: {
+ bool sb = ReverbDamping->signalsBlocked();
+ ReverbDamping->blockSignals(true);
+ ReverbDamping->setValue(val);
+ ReverbDamping->blockSignals(sb);
+ break;
+ }
+ case FS_REVERB_ROOMSIZE: {
+ bool sb = ReverbRoomSize->signalsBlocked();
+ ReverbRoomSize->blockSignals(true);
+ ReverbRoomSize->setValue(val);
+ ReverbRoomSize->blockSignals(sb);
+ break;
+ }
+ case FS_REVERB_WIDTH: {
+ bool sb = ReverbWidth->signalsBlocked();
+ ReverbWidth->blockSignals(true);
+ ReverbWidth->setValue(val);
+ ReverbWidth->blockSignals(sb);
+ break;
+ }
+ case FS_CHORUS_ON: {
+ Chorus->blockSignals(true);
+ Chorus->setChecked(val);
+ Chorus->blockSignals(false);
+ break;
+ }
+ case FS_CHORUS_SPEED: {
+ ChorusSpeed->blockSignals(true);
+ ChorusSpeed->setValue(val);
+ ChorusSpeed->blockSignals(false);
+ break;
+ }
+ case FS_CHORUS_NUM: {
+ ChorusNumber->blockSignals(true);
+ ChorusNumber->setValue(val);
+ ChorusNumber->blockSignals(false);
+ break;
+ }
+ case FS_CHORUS_TYPE: {
+ ChorusType->blockSignals(true);
+ ChorusType->setCurrentIndex(val);
+ ChorusType->blockSignals(false);
+ break;
+ }
+ case FS_CHORUS_DEPTH: {
+ ChorusDepth->blockSignals(true);
+ ChorusDepth->setValue(val);
+ ChorusDepth->blockSignals(false);
+ break;
+ }
+ case FS_CHORUS_LEVEL: {
+ ChorusLevel->blockSignals(true);
+ ChorusLevel->setValue(val);
+ ChorusLevel->blockSignals(false);
+ break;
+ }
+ default:
+ if (FS_DEBUG)
+ printf("FluidSynthGui::processEvent() : Unknown controller sent to gui: %x\n",id);
+ break;
+ }
+ }
+ else
+ if (FS_DEBUG)
+ printf("FluidSynthGui::processEvent - unknown event of type %dreceived from synth.\n", ev.type());
+ }
+
+//---------------------------------------------------------
+// readMessage
+//---------------------------------------------------------
+void FluidSynthGui::readMessage(int)
+ {
+ MessGui::readMessage();
+ }
+
+//---------------------------------------------------------
+// updateChannels
+//---------------------------------------------------------
+void FluidSynthGui::updateChannelTreeWidget()
+ {
+ if (FS_DEBUG)
+ printf("FluidSynthGui::updateChannelListView\n");
+ channelTreeWidget->clear();
+ QIcon btndown = QIcon(buttondown_xpm);
+
+ QTreeWidgetItem* header = new QTreeWidgetItem();
+ header->setText(FS_CHANNEL_COL, "Channel");
+ header->setText(FS_SF_ID_COL, "Soundfont");
+ header->setText(FS_DRUM_CHANNEL_COL, "Drum Chnl");
+ channelTreeWidget->setHeaderItem(header);
+
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ QString chanstr, sfidstr, drumchanstr;
+
+ //Soundfont id string:
+ if (channels[i] == FS_UNSPECIFIED_ID)
+ sfidstr = "unspecified";
+ else
+ sfidstr = getSoundFontName(channels[i]);
+ //Channel string:
+ chanstr = QString::number(i+1);
+ if (chanstr.length()==1)
+ chanstr = "0" + chanstr;
+
+ //Drumchan string:
+ if (drumchannels[i])
+ drumchanstr = "Yes";
+ else
+ drumchanstr = "No";
+ QTreeWidgetItem* qlvNewItem = new QTreeWidgetItem(channelTreeWidget);
+ qlvNewItem->setText(FS_CHANNEL_COL, chanstr);
+ qlvNewItem->setIcon(FS_SF_ID_COL, btndown);
+ qlvNewItem->setText(FS_SF_ID_COL, sfidstr);
+ qlvNewItem->setIcon(FS_DRUM_CHANNEL_COL, btndown);
+ qlvNewItem->setText(FS_DRUM_CHANNEL_COL, drumchanstr);
+ }
+ }
+
+//---------------------------------------------------------
+// updateSoundfontTreeWidget
+//---------------------------------------------------------
+void FluidSynthGui::updateSoundfontTreeWidget()
+ {
+ sfTreeWidget->clear(); //Clear the listview
+
+ QTreeWidgetItem* header = new QTreeWidgetItem();
+ header->setText(FS_ID_COL, "ID");
+ header->setText(FS_SFNAME_COL, "Fontname");
+ sfTreeWidget->setHeaderItem(header);
+
+ for (std::list<FluidGuiSoundFont>::iterator it = stack.begin(); it != stack.end(); it++) {
+ QTreeWidgetItem* qlvNewItem;
+
+ qlvNewItem = new QTreeWidgetItem(sfTreeWidget);
+ QString qsid = QString("%1").arg(it->id);
+ qlvNewItem->setText(FS_ID_COL, qsid);
+ qlvNewItem->setText(FS_SFNAME_COL, QString(it->name));
+ }
+ //sfTreeWidget->sort();
+ }
+
+//---------------------------------------------------------
+// changeGain
+//---------------------------------------------------------
+void FluidSynthGui::changeGain(int value)
+ {
+ sendController(0, FS_GAIN, value);
+ }
+
+
+//---------------------------------------------------------
+// dumpInfoButton
+//---------------------------------------------------------
+void FluidSynthGui::dumpInfo()
+ {
+ byte data[1];
+ data[0] = FS_DUMP_INFO;
+ sendSysex(data, 1);
+ }
+
+//---------------------------------------------------------
+// getSoundFontName
+//---------------------------------------------------------
+
+QString FluidSynthGui::getSoundFontName(int id)
+ {
+ QString name = NULL;
+ for (std::list<FluidGuiSoundFont>::iterator it = stack.begin(); it != stack.end(); it++) {
+ if (id == it->id) {
+ name = it->name;
+ continue;
+ }
+ }
+ return name;
+ }
+
+//---------------------------------------------------------
+// channelItemClicked
+// change channel parameters like soundfont / drumchannel on/off
+//---------------------------------------------------------
+
+void FluidSynthGui::channelItemClicked(QTreeWidgetItem* item, int col)
+ {
+ //
+ // Soundfont ID column
+ //
+ if (col == FS_SF_ID_COL) {
+ QMenu* popup = new QMenu(this);
+ QPoint ppt = channelTreeWidget->visualItemRect(item).bottomLeft();
+ QTreeWidget* treeWidget = item->treeWidget();
+ ppt += QPoint(treeWidget->header()->sectionPosition(col), treeWidget->header()->height());
+ ppt = treeWidget->mapToGlobal(ppt);
+
+ int i = 0;
+ for (std::list<FluidGuiSoundFont>::reverse_iterator it = stack.rbegin(); it != stack.rend(); it++) {
+ i++;
+ QAction* a = popup->addAction(it->name);
+ a->setData(i);
+ }
+
+ int lastindex = i+1;
+ QAction* a = popup->addAction("unspecified");
+ a->setData(lastindex);
+ a = popup->exec(ppt, 0);
+ if (a) {
+ int index = a->data().toInt();
+ byte sfid;
+ QString fontname;
+ if (index == lastindex) {
+ sfid = FS_UNSPECIFIED_ID;
+ fontname = "unspecified"; //Actually, it's not possible to reset fluid-channels as for now,
+ } //so this is just a dummy that makes the synth block any events for the channel
+ else {
+ sfid = getSoundFontId(a->text());
+ fontname = getSoundFontName(sfid);
+ }
+ byte channel = atoi(item->text(FS_CHANNEL_COL).toLatin1().data()) - 1;
+ sendChannelChange(sfid, channel);
+ item->setText(FS_SF_ID_COL, fontname);
+ }
+ delete popup;
+ }
+ //
+ // Drumchannel column:
+ //
+ else if (col == FS_DRUM_CHANNEL_COL) {
+ QMenu* popup = new QMenu(this);
+ QPoint ppt = channelTreeWidget->visualItemRect(item).bottomLeft();
+ QTreeWidget* treeWidget = item->treeWidget();
+ ppt += QPoint(treeWidget->header()->sectionPosition(col), treeWidget->header()->height());
+ ppt = treeWidget->mapToGlobal(ppt);
+ QAction* a = popup->addAction("Yes");
+ a->setData(1);
+ a = popup->addAction("No");
+ a->setData(0);
+ byte channel = atoi(item->text(FS_CHANNEL_COL).toLatin1().data()) - 1;
+
+ a = popup->exec(ppt, 0);
+ if (a) {
+ int index = a->data().toInt();
+ if (index != drumchannels[channel]) {
+ sendDrumChannelChange(index, channel);
+ drumchannels[channel] = index;
+ item->setText(FS_DRUM_CHANNEL_COL, index == 0 ? "No" : "Yes" );
+ }
+ }
+ }
+#if 0
+ else if (col == FS_DRUM_CHANNEL_COL) {
+ Q3PopupMenu* popup = new Q3PopupMenu(this);
+ QPoint ppt = channelListView->itemRect(item).bottomLeft();
+ Q3ListView* listView = item->listView();
+ ppt += QPoint(listView->header()->sectionPos(col), listView->header()->height());
+ ppt = listView->mapToGlobal(ppt);
+ popup->insertItem("Yes", 1);
+ popup->insertItem("No", 0);
+ byte channel = atoi(item->text(FS_CHANNEL_COL).toLatin1().data()) - 1;
+
+ int index = popup->exec(ppt, 0);
+ if (index != drumchannels[channel] && index !=-1) {
+ sendDrumChannelChange(index, channel);
+ drumchannels[channel] = index;
+ item->setText(FS_DRUM_CHANNEL_COL, index == 0 ? "No" : "Yes" );
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// getSoundFontId
+//---------------------------------------------------------
+
+int FluidSynthGui::getSoundFontId(QString q)
+ {
+ int id = -1;
+ for (std::list<FluidGuiSoundFont>::iterator it = stack.begin(); it != stack.end(); it++) {
+ if (q == it->name)
+ id = it->id;
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// sendChannelChange
+// Tell the client to set a soundfont to a specific fluid channel
+//---------------------------------------------------------
+
+void FluidSynthGui::sendChannelChange(byte font_id, byte channel)
+ {
+ byte data[3];
+ data[0] = FS_SOUNDFONT_CHANNEL_SET;
+ data[1] = font_id;
+ data[2] = channel;
+ sendSysex(data, 3);
+ }
+
+//---------------------------------------------------------
+// sendDrumChannelChange
+// Tell the client to set a specific channel to drum channel (equiv to midichan 10)
+//---------------------------------------------------------
+void FluidSynthGui::sendDrumChannelChange(byte onoff, byte channel)
+ {
+ byte data[3];
+ data[0] = FS_DRUMCHANNEL_SET;
+ data[1] = onoff;
+ data[2] = channel;
+ sendSysex(data, 3);
+ if (FS_DEBUG)
+ printf("Sent FS_DRUMCHANNEL_SET for channel %d, status: %d\n", channel, onoff);
+ }
+
+void FluidSynthGui::popClicked()
+ {
+ byte data[2];
+ data[0] = FS_SOUNDFONT_POP;
+ data[1] = currentlySelectedFont;
+ sendSysex(data,2);
+ }
+
+void FluidSynthGui::sfItemClicked(QTreeWidgetItem* item, int /*column*/)
+ {
+ if (item != 0) {
+ currentlySelectedFont = atoi(item->text(FS_ID_COL).toLatin1().data());
+ Pop->setEnabled(true);
+ }
+ else {
+ currentlySelectedFont = -1;
+ Pop->setEnabled(false);
+ }
+ }
+
+#if 0
+
+
+
+void FluidSynthGui::readData (int fd)
+ {
+ unsigned char buffer[512];
+ int n = ::read(fd, buffer, 512);
+// dataInput(buffer, n);
+ }
+
+#endif
diff --git a/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.h b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.h
new file mode 100644
index 00000000..9884e636
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.h
@@ -0,0 +1,136 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynthgui.h,v 1.15 2005/10/05 21:51:04 lunar_shuttle Exp $
+ *
+ */
+
+#ifndef __MUSE_FLUIDSYNTHGUI_H__
+#define __MUSE_FLUIDSYNTHGUI_H__
+
+#include "ui_fluidsynthgui.h"
+#include "libsynti/gui.h"
+#include <list>
+
+struct FluidChannel;
+#define FS_DEBUG 0 //Turn on/off debug
+
+#define FS_MAX_NR_OF_CHANNELS 16
+#define FS_UNSPECIFIED_FONT 126
+#define FS_UNSPECIFIED_ID 127
+#define FS_UNSPECIFIED_PRESET 129
+#define FS_CHANNEL_COL 0
+#define FS_ID_COL 0
+#define FS_SFNAME_COL 1
+#define FS_SF_ID_COL 1
+#define FS_DRUM_CHANNEL_COL 2
+
+#define FS_SFDATALEN 1
+#define FS_VERSION_MAJOR 0
+#define FS_VERSION_MINOR 4
+#define FS_INIT_DATA_HEADER_SIZE 4
+#define FS_INIT_CHANNEL_SECTION 255
+
+// Predefined init-values for fluidsynth
+#define FS_PREDEF_VOLUME 0.2
+#define FS_PREDEF_REVERB_LEVEL 0.25
+#define FS_PREDEF_REVERB_ROOMSIZE 0.3
+#define FS_PREDEF_REVERB_DAMPING 0.3
+#define FS_PREDEF_REVERB_WIDTH 0.2
+#define FS_PREDEF_CHORUS_NUM 3
+#define FS_PREDEF_CHORUS_TYPE 1
+#define FS_PREDEF_CHORUS_SPEED 0.5
+#define FS_PREDEF_CHORUS_DEPTH 0.3
+#define FS_PREDEF_CHORUS_LEVEL 0.5
+typedef unsigned char byte;
+
+
+//Various messages the gui and the client uses to communicate
+enum {
+ FS_LASTDIR_CHANGE = 1,
+ FS_PUSH_FONT
+ };
+
+enum {
+ //FS_GAIN_SET,
+ FS_SEND_SOUNDFONTDATA = 4,
+ FS_SEND_CHANNELINFO, //Used by synth to send info about all channels, on init
+ FS_SOUNDFONT_CHANNEL_SET,
+ FS_SOUNDFONT_POP,
+ FS_SEND_DRUMCHANNELINFO, //Used by synth to send drumchannel status about all channels, on init
+ FS_DRUMCHANNEL_SET, //Used by gui to set drumchannel status for specific channel
+ FS_FONT_SUCCESSFULLY_LOADED // synth tells gui it loaded a font successfully, and gives it it's external id
+ };
+
+enum
+ {
+ FS_DUMP_INFO = 240,
+ FS_ERROR,
+ FS_INIT_DATA
+ };
+
+struct FluidGuiSoundFont
+ {
+ QString filename;
+ QString name;
+ byte id;
+ };
+
+//---------------------------------------------------------
+// FluidSynthGui
+//---------------------------------------------------------
+
+class FluidSynthGui : public QDialog, Ui::FLUIDSynthGuiBase, public MessGui
+ {
+ Q_OBJECT
+ private:
+ virtual void processEvent(const MidiEvent& ev);
+ void sendLastdir(QString);
+ void sendLoadFont(QString);
+ void sendChannelChange(byte font_id, byte channel);
+ void sendDrumChannelChange(byte onoff, byte channel);
+ void updateSoundfontTreeWidget();
+ void updateChannelTreeWidget();
+
+ QString getSoundFontName(int id);
+ int getSoundFontId(QString q);
+ QString lastdir;
+ std::list<FluidGuiSoundFont> stack;
+ byte channels[FS_MAX_NR_OF_CHANNELS]; //Array of bytes, for mapping soundfonts to individual channels
+ byte drumchannels[FS_MAX_NR_OF_CHANNELS]; // Array of bytes for setting channels to drumchannels or not (equiv to midichan 10)
+
+ int currentlySelectedFont; //Font currently selected in sfListView. -1 if none selected
+ QString pendingFont;
+
+ private slots:
+ void loadClicked();
+ void readMessage(int);
+ void changeGain(int);
+ void dumpInfo();
+ void channelItemClicked(QTreeWidgetItem* item, int column);
+ void toggleReverb(bool);
+ void changeReverbLevel (int);
+ void changeReverbRoomSize(int val);
+ void changeReverbWidth(int val);
+ void changeReverbDamping(int val);
+ void toggleChorus(bool);
+ void changeChorusNumber(int);
+ void changeChorusType(int);
+ void changeChorusSpeed(int);
+ void changeChorusDepth(int);
+ void changeChorusLevel(int);
+ void popClicked();
+ void sfItemClicked(QTreeWidgetItem* item, int column);
+
+ public:
+// virtual void sysexReceived (const unsigned char *, int);
+// virtual void controllerReceived(int, int, int);
+
+ FluidSynthGui();
+ ~FluidSynthGui();
+};
+
+
+#endif /* __MUSE_FLUIDSYNTHGUI_H__ */
diff --git a/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.ui b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.ui
new file mode 100644
index 00000000..558f4133
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/fluidsynthgui.ui
@@ -0,0 +1,641 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>FLUIDSynthGuiBase</class>
+ <widget class="QDialog" name="FLUIDSynthGuiBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>656</width>
+ <height>514</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>FLUID Synth</string>
+ </property>
+ <property name="windowIcon" >
+ <iconset/>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QFrame" name="frame_2" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="loadedFontsLabel" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; />&lt;/head>&lt;body style=&quot; white-space: pre-wrap; font-family:Sans Serif; font-weight:400; font-style:normal; text-decoration:none;&quot;>&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;>&lt;span style=&quot; font-weight:600;&quot;>Loaded Soundfonts&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::AutoText</enum>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignHCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="sfTreeWidget" >
+ <property name="columnCount" >
+ <number>2</number>
+ </property>
+ <property name="sortingEnabled" >
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>0</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>1</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QFrame" name="frame_3" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="fontSetupLabel" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; />&lt;/head>&lt;body style=&quot; white-space: pre-wrap; font-family:Sans Serif; font-weight:400; font-style:normal; text-decoration:none;&quot;>&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;>&lt;span style=&quot; font-weight:600;&quot;>Channel Setup&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignHCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="channelTreeWidget" >
+ <property name="columnCount" >
+ <number>3</number>
+ </property>
+ <property name="sortingEnabled" >
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text" >
+ <string>0</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>1</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>2</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item rowspan="2" row="1" column="1" >
+ <widget class="QFrame" name="ChorusFrame" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="Chorus" >
+ <property name="text" >
+ <string>Chorus</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="ChorusNumberLabel" >
+ <property name="text" >
+ <string>Number</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="ChorusNumber" >
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="ChorusTypeLabel" >
+ <property name="text" >
+ <string>Type</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="ChorusType" >
+ <item>
+ <property name="text" >
+ <string>Sine</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Triangle</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="ChorusSpeedLabel" >
+ <property name="text" >
+ <string>Speed</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ChorusSpeed" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="ChorusDepthLabel" >
+ <property name="text" >
+ <string>Depth</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ChorusDepth" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="ChorusLevelLabel" >
+ <property name="text" >
+ <string>Level</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ChorusLevel" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QFrame" name="frame" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="Push" >
+ <property name="text" >
+ <string>Load</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="Pop" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="dumpInfoButton" >
+ <property name="text" >
+ <string>Dump Info</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2" >
+ <widget class="QGroupBox" name="GainBox" >
+ <property name="title" >
+ <string/>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>&lt;html>&lt;head>&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; />&lt;/head>&lt;body style=&quot; white-space: pre-wrap; font-family:Sans Serif; font-weight:400; font-style:normal; text-decoration:none;&quot;>&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;>Gain&lt;/p>&lt;/body>&lt;/html></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="Gain" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>127</number>
+ </property>
+ <property name="pageStep" >
+ <number>5</number>
+ </property>
+ <property name="value" >
+ <number>13</number>
+ </property>
+ <property name="tracking" >
+ <bool>true</bool>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>7</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QFrame" name="ReverbFrame" >
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>8</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="Reverb" >
+ <property name="text" >
+ <string>Reverb</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="ReverbRoomSizeLabel" >
+ <property name="text" >
+ <string>Room Size</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="ReverbDampingLabel" >
+ <property name="text" >
+ <string>Damping</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="ReverbWidthLabel" >
+ <property name="text" >
+ <string>Width</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="ReverbLevelLabel" >
+ <property name="text" >
+ <string>Level</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QSlider" name="ReverbRoomSize" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ReverbDamping" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ReverbWidth" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="ReverbLevel" >
+ <property name="maximum" >
+ <number>16383</number>
+ </property>
+ <property name="singleStep" >
+ <number>16</number>
+ </property>
+ <property name="pageStep" >
+ <number>1638</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>1638</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ <widget class="QWidget" name="widget_2" >
+ <property name="geometry" >
+ <rect>
+ <x>11</x>
+ <y>36</y>
+ <width>260</width>
+ <height>17</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QWidget" name="widget_3" >
+ <property name="geometry" >
+ <rect>
+ <x>11</x>
+ <y>59</y>
+ <width>260</width>
+ <height>17</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QWidget" name="widget_4" >
+ <property name="geometry" >
+ <rect>
+ <x>11</x>
+ <y>82</y>
+ <width>260</width>
+ <height>17</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QWidget" name="widget_5" >
+ <property name="geometry" >
+ <rect>
+ <x>11</x>
+ <y>105</y>
+ <width>260</width>
+ <height>17</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="3" margin="8" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/fluidsynth/fluidsynti.cpp b/muse_qt4_evolution/synti/fluidsynth/fluidsynti.cpp
new file mode 100644
index 00000000..57e72262
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/fluidsynti.cpp
@@ -0,0 +1,1174 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynti.cpp,v 1.28 2005/12/18 14:09:54 wschweer Exp $
+ *
+ */
+
+#include "fluidsynti.h"
+#include "muse/midi.h"
+
+#include <list>
+#include <iostream>
+
+
+FluidCtrl FluidSynth::fluidCtrl[] = {
+ { "Gain", FS_GAIN ,0, 127},
+ { "Master reverb on/off", FS_REVERB_ON , 0, 1},
+ { "Master reverb level", FS_REVERB_LEVEL, 0, 16384 },
+ { "Master reverb size", FS_REVERB_ROOMSIZE, 0, 16384 }, // Interval: [0,1]
+ { "Master reverb damping", FS_REVERB_DAMPING, 0, 16384 }, // Interval: [0,1]
+ { "Master reverb width", FS_REVERB_WIDTH, 0, 16384 }, // Interval: [0,100]
+ { "Master chorus on/off", FS_CHORUS_ON, 0, 1},
+ { "Master chorus num delay lines", FS_CHORUS_NUM, 0, 10 }, //Default: 3
+ { "Master chorus type", FS_CHORUS_TYPE, 0, 1 },
+ { "Master chorus speed", FS_CHORUS_SPEED, 0, 16384 }, // (0.291,5) Hz
+ { "Master chorus depth", FS_CHORUS_DEPTH, 0, 16384 }, // [0,40]
+ { "Master chorus level", FS_CHORUS_LEVEL, 0, 16384 }, // [0,1]
+ { "Modulation", CTRL_MODULATION, 0, 127 },
+ { "Portamento time", CTRL_PORTAMENTO_TIME, 0, 127 },
+ { "Volume", CTRL_VOLUME, 0, 127 },
+ { "Pan", CTRL_PANPOT, 0, 127 },
+ { "Expression", CTRL_EXPRESSION, 0, 127 },
+ { "Sustain", CTRL_SUSTAIN, 0, 127 },
+ { "Portamento", CTRL_PORTAMENTO, 0, 127 },
+ { "Soft Pedal", CTRL_SOFT_PEDAL, 0, 127 },
+ { "Variation", CTRL_VARIATION_SEND, 0, 127 },
+ { "Channel reverb send", CTRL_REVERB_SEND, 0, 127 },
+ { "Channel chorus send", CTRL_CHORUS_SEND, 0, 127 },
+ { "Pitch", CTRL_PITCH, -8192, 8191 }
+ };
+
+static int NUM_CONTROLLER = sizeof(FluidSynth::fluidCtrl)/sizeof(*(FluidSynth::fluidCtrl));
+
+//
+// Fluidsynth
+//
+FluidSynth::FluidSynth(int sr) : Mess(2)
+ {
+ setSampleRate(sr);
+ fluid_settings_t* s = new_fluid_settings();
+ fluid_settings_setnum(s, "synth.sample-rate", float(sampleRate()));
+ fluidsynth = new_fluid_synth(s);
+ if (!fluidsynth) {
+ printf("Error while creating fluidsynth!\n");
+ return;
+ }
+
+ //Set up channels:
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ //channels[i].font = 0;
+ channels[i].font_extid = FS_UNSPECIFIED_ID;
+ channels[i].font_intid = FS_UNSPECIFIED_ID;
+ channels[i].preset = FS_UNSPECIFIED_PRESET;
+ channels[i].drumchannel= false;
+ }
+ pthread_mutex_init(&_sfloader_mutex,NULL);
+
+/*
+ buffer = 0;
+ bufferlen = 0;
+ */
+ }
+
+FluidSynth::~FluidSynth()
+ {
+ /*
+ int err = delete_fluid_synth (_fluidsynth);
+ if (buffer)
+ delete [] buffer;
+ if (err == -1) {
+ std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(_fluidsynth) << std::endl;
+ return;
+ }
+ //Destroy the mutex
+ if (pthread_mutex_destroy(&_sfloader_mutex) != 0)
+ std::cerr << DEBUG_ARGS << "Strange, mutex busy! Should not be!" << std::endl;
+ */
+ }
+
+bool FluidSynth::init(const char* name)
+ {
+ debug("FluidSynth::init\n");
+
+ gui = new FluidSynthGui();
+ gui->show();
+ gui->setWindowTitle(name);
+
+ lastdir= "";
+ currentlyLoadedFonts = 0;
+ nrOfSoundfonts = 0;
+ sendChannelData();
+ cho_on = false;
+ cho_num = FS_PREDEF_CHORUS_NUM;
+ cho_type = FS_PREDEF_CHORUS_TYPE;
+ cho_level = FS_PREDEF_CHORUS_LEVEL;
+ cho_speed = FS_PREDEF_CHORUS_SPEED;
+ cho_depth = FS_PREDEF_CHORUS_DEPTH;
+ setController(0, FS_GAIN, (int)(fluidCtrl[0].max*FS_PREDEF_VOLUME));
+ setController(0, FS_REVERB_ON, 0);
+ setController(0, FS_REVERB_LEVEL, (int)(fluidCtrl[2].max*FS_PREDEF_REVERB_LEVEL));
+ setController(0, FS_REVERB_ROOMSIZE, (int)(fluidCtrl[3].max*FS_PREDEF_REVERB_ROOMSIZE));
+ setController(0, FS_REVERB_DAMPING, (int)(fluidCtrl[4].max*FS_PREDEF_REVERB_DAMPING));
+ setController(0, FS_REVERB_WIDTH, (int)(fluidCtrl[5].max*FS_PREDEF_REVERB_WIDTH));
+ setController(0, FS_CHORUS_ON, 0);
+ setController(0, FS_CHORUS_NUM, FS_PREDEF_CHORUS_NUM);
+ //setController(0, FS_CHORUS_TYPE, FS_PREDEF_CHORUS_TYPE); //?
+ setController(0, FS_CHORUS_SPEED, (int)(fluidCtrl[9].max*FS_PREDEF_CHORUS_SPEED));
+ setController(0, FS_CHORUS_DEPTH, (int)(fluidCtrl[10].max*FS_PREDEF_CHORUS_DEPTH));
+ setController(0, FS_CHORUS_LEVEL, (int)(fluidCtrl[11].max*FS_PREDEF_CHORUS_LEVEL));
+ return false;
+ }
+
+//---------------------------------------------------------
+// process
+// called from host
+//---------------------------------------------------------
+
+void FluidSynth::process(float** ports, int offset, int len)
+ {
+ //Process messages from the gui
+ while (gui->fifoSize()) {
+ MidiEvent ev = gui->readEvent();
+ if (ev.type() == ME_SYSEX) {
+ sysex(ev.len(), ev.data());
+ sendEvent(ev);
+ }
+ else if (ev.type() == ME_CONTROLLER) {
+ setController(ev.channel(), ev.dataA(), ev.dataB(), true);
+ sendEvent(ev);
+ }
+ else {
+ if (FS_DEBUG)
+ printf("FluidSynth::process(): unknown event, type: %d\n", ev.type());
+ }
+ }
+
+ if (fluid_synth_write_float(fluidsynth, len, ports[0], offset, 1, ports[1], offset, 1)) {
+ M_ERROR("Error writing from synth!");
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// getInitData
+// Prepare data that will restore the synth's state on load
+//---------------------------------------------------------
+void FluidSynth::getInitData(int* n, const unsigned char** data)
+ {
+ // Data setup:
+ // FS_INIT_DATA (1 byte)
+ // FluidSynth version (2 bytes, x.y)
+ // n = Number of soundfonts (1 byte)
+ // Lastdir (variable size)
+ //
+ // FS_FONTS_BEGIN
+ // n blocks with font path (variable size)
+ // n bytes with font external id
+ //
+ // for all channels (16), 1 byte each for external id + 1 byte for preset + 1 byte for bankno
+ // which is mapped to internal id after all fonts are loaded.
+ //
+ // reverb + chorus on/off (2 bytes)
+ if (FS_DEBUG)
+ printf("FluidSynth::getInitData()\n");
+
+ //Calculate length:
+ int len = FS_INIT_DATA_HEADER_SIZE + strlen(lastdir.c_str()) + 1; //header size
+ for (std::list<FluidSoundFont>::const_iterator it = stack.begin(); it!=stack.end(); it++) {
+ len+=strlen(it->filename.c_str()) + 2;
+ }
+ //Add length for lastdir and channels:
+ len+=strlen(lastdir.c_str())+1;
+ len+=(FS_MAX_NR_OF_CHANNELS*4); // 4 bytes: ext+int id + bankno + drumchannel status
+ // + reverb
+ len+=2;
+
+ if (FS_DEBUG)
+ printf("Total length of init sysex: %d\n", len);
+ byte* d = new byte[len];
+
+ // Header:
+ d[0] = FS_INIT_DATA;
+ d[1] = FS_VERSION_MAJOR;
+ d[2] = FS_VERSION_MINOR;
+ d[3] = stack.size();
+
+ //Lastdir:
+ byte* chptr = d + FS_INIT_DATA_HEADER_SIZE;
+ memcpy(chptr, lastdir.c_str(), strlen(lastdir.c_str())+1);
+
+ //For each font...
+ chptr+=strlen(lastdir.c_str())+1;
+ for (std::list<FluidSoundFont>::const_iterator it =stack.begin(); it!=stack.end(); it++) {
+ memcpy(chptr, it->filename.c_str(), strlen(it->filename.c_str())+1);
+ chptr = chptr + 1 + strlen(it->filename.c_str());
+ }
+
+ //For each font again...
+ *chptr = FS_INIT_CHANNEL_SECTION;
+ chptr++;
+ for (std::list<FluidSoundFont>::const_iterator it =stack.begin(); it!=stack.end(); it++) {
+ *chptr = it->extid;
+ chptr++;
+ }
+
+ //External id:s & preset for all channels:
+ for(int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ *chptr = channels[i].font_extid; chptr++;
+ *chptr = channels[i].preset; chptr++;
+ *chptr = channels[i].banknum; chptr++;
+ *chptr = channels[i].drumchannel; chptr++;
+ }
+
+ //Reverb:
+ *chptr = rev_on; chptr++;
+ *chptr = cho_on; chptr++;
+ if (FS_DEBUG) {
+ for (int i=0; i<len; i++)
+ printf("%c ", d[i]);
+ printf("\n");
+ for (int i=0; i<len; i++)
+ printf("%x ", d[i]);
+ printf("\n");
+ }
+ // Give values to host:
+ *data = d;
+ *n = len;
+ }
+
+//-----------------------------------
+// parseInitData
+//-----------------------------------
+void FluidSynth::parseInitData(int n, const byte* d)
+ {
+ bool load_drumchannels = true; // Introduced in initdata ver 0.3
+ bool handle_bankvalue = true; // Introduced in initdata ver 0.4
+
+ if (FS_DEBUG) {
+ printf("--- PARSING INIT DATA ---\n");
+ for (int i=0; i<n; i++)
+ printf("%c ", d[i]);
+ printf("\n");
+ }
+
+ byte version_major, version_minor;
+ version_major = d[1]; version_minor = d[2];
+
+ // Check which version of the initdata we're using and if it's OK
+ if (!(version_major == FS_VERSION_MAJOR && version_minor == FS_VERSION_MINOR)) {
+ if (FS_DEBUG) {
+ printf("Project saved with other version of fluidsynth format. Ver: %d.%d\n", version_major, version_minor);
+ }
+
+ if (version_major == 0 && version_minor == 1) {
+ sendError("Initialization data created with different version of FluidSynth Mess, will be ignored.");
+ return;
+ }
+
+ if (version_major == 0 && version_minor <= 2) {
+ load_drumchannels = false;
+ }
+
+ if (version_major == 0 && version_minor <= 3) {
+ handle_bankvalue = false;
+ }
+ }
+
+ byte nr_of_fonts = d[3];
+ nrOfSoundfonts = nr_of_fonts; //"Global" counter
+ const byte* chptr = (d + 4);
+
+ //Get lastdir:
+ lastdir = std::string((char*)chptr);
+ sendLastdir(lastdir.c_str());
+
+ chptr+=strlen(lastdir.c_str())+1;
+
+ FluidSoundFont fonts[nrOfSoundfonts]; //Just a temp one
+ //Fonts:
+ for (int i=0; i<nr_of_fonts; i++) {
+ fonts[i].filename = (char*)(chptr);
+ chptr+=(strlen(fonts[i].filename.c_str())+1);
+ }
+
+ if (*chptr != FS_INIT_CHANNEL_SECTION) {
+ sendError("Init-data corrupt... Projectfile error. Initdata ignored.\n");
+ return;
+ }
+
+ chptr++;
+ for (int i=0; i<nr_of_fonts; i++) {
+ fonts[i].extid = *chptr;
+ chptr++;
+ //printf("Extid, %d: %d\n",i,fonts[i].extid);
+ }
+
+ // All channels external id + preset
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ channels[i].font_extid = *chptr; chptr++;
+ channels[i].preset = *chptr; chptr++;
+ if (handle_bankvalue) { // Ver 0.4 and later
+ channels[i].banknum = *chptr; chptr++;
+ }
+ else {
+ channels[i].banknum = 0;
+ }
+
+ if (load_drumchannels) { // Ver 0.3 and later
+ channels[i].drumchannel = *chptr;
+ chptr++;
+ }
+ }
+
+ //Reverb:
+ setController(0, FS_REVERB_ON, *chptr); chptr++;
+ setController(0, FS_CHORUS_ON, *chptr); chptr++;
+
+ if (FS_DEBUG)
+ printf("--- END PARSE INIT DATA ---\n");
+ //Load the shit:
+ for (int i=0; i<nrOfSoundfonts; i++) {
+ pushSoundfont(fonts[i].filename.c_str(), fonts[i].extid);
+ }
+ }
+
+
+//---------------------------------------------------------
+// processEvent
+// All events from the sequencer goes here
+//---------------------------------------------------------
+
+bool FluidSynth::processEvent(const MidiEvent& ev)
+ {
+ switch(ev.type()) {
+ case ME_CONTROLLER:
+ if (FS_DEBUG_DATA) {
+ printf("*** FluidSynth::process - Controller. Chan: %x dataA: %x dataB: %x\n", ev.channel(), ev.dataA(), ev.dataB());
+ for (int i=0; i< ev.len(); i++)
+ printf("%x ", ev.data()[i]);
+ }
+ setController(ev.channel(), ev.dataA(), ev.dataB(), false);
+ return true;
+ case ME_NOTEON:
+ return playNote(ev.channel(), ev.dataA(), ev.dataB());
+ case ME_NOTEOFF:
+ return playNote(ev.channel(), ev.dataA(), 0);
+ case ME_SYSEX:
+ //Debug print
+ if (FS_DEBUG_DATA) {
+ printf("*** FluidSynth::process - Sysex received\n");
+ for (int i=0; i< ev.len(); i++)
+ printf("%x ", ev.data()[i]);
+ printf("\n");
+ }
+ return sysex(ev.len(), ev.data());
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool FluidSynth::sysex(int n, const unsigned char* d)
+ {
+ if (n == 0 || d == 0)
+ return false;
+ switch(*d) {
+ case FS_LASTDIR_CHANGE: {
+ lastdir = std::string((char*)(d+1));
+ sendLastdir(lastdir.c_str());
+ break;
+ }
+ case FS_PUSH_FONT: {
+ int extid = d[1];
+
+ if (FS_DEBUG)
+ printf("Client: Got push font %s, id: %d\n",(d+1), extid);
+
+ const char* filename = (const char*)(d+2);
+ if (!pushSoundfont(filename, extid))
+ sendError("Could not load soundfont ");
+ break;
+ }
+ case FS_DUMP_INFO: {
+ dumpInfo();
+ break;
+ }
+ case FS_SOUNDFONT_CHANNEL_SET: {
+ sfChannelChange(*(d+1), *(d+2));
+ break;
+ }
+ case FS_INIT_DATA: {
+ parseInitData(n,d);
+ break;
+ }
+ case FS_SOUNDFONT_POP:
+ popSoundfont(*(d+1));
+ break;
+ case FS_DRUMCHANNEL_SET: {
+ byte onoff = (*(d+1));
+ byte channel = (*(d+2));
+ channels[channel].drumchannel = onoff;
+ if (FS_DEBUG)
+ printf("Client: Set drumchannel on chan %d to %d\n",channel, onoff);
+ break;
+ }
+ default:
+ if (FS_DEBUG)
+ printf("FluidSynth::sysex() : unknown sysex received: %d\n",*d);
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sendSysex
+//---------------------------------------------------------
+void FluidSynth::sendSysex(int l, const unsigned char* d)
+ {
+ MidiEvent ev(0, ME_SYSEX, d, l);
+ gui->writeEvent(ev);
+ }
+
+//-----------------------------------
+// pushSoundfont - load a soundfont
+//-----------------------------------
+bool FluidSynth::pushSoundfont (const char* filename, int extid)
+ {
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+ pthread_attr_setdetachstate(attributes, PTHREAD_CREATE_DETACHED);
+
+ FS_Helper* helper = new FS_Helper;
+ helper->fptr = this;
+ helper->filename = filename;
+ helper->id = extid;
+
+ if (pthread_create(&fontThread, attributes, FluidSynth::fontLoadThread, (void*) helper))
+ perror("creating thread failed:");
+
+ pthread_attr_destroy(attributes);
+ return true;
+ }
+
+//---------------------------------------------------------
+// fontLoadThread
+// helper thread to load soundfont in the
+// background
+//---------------------------------------------------------
+
+void* FluidSynth::fontLoadThread(void* t)
+ {
+ //Init vars
+ FS_Helper* h = (FS_Helper*) t;
+ FluidSynth* fptr = h->fptr;
+ const char* filename = h->filename.c_str();
+ pthread_mutex_t* sfloader_mutex = &(fptr->_sfloader_mutex);
+
+ //Let only one loadThread have access to the fluidsynth-object at the time
+ pthread_mutex_lock(sfloader_mutex);
+ int rv = fluid_synth_sfload(fptr->fluidsynth, filename, 1);
+
+ if (rv ==-1) {
+ fptr->sendError(fluid_synth_error(fptr->fluidsynth));
+ if (FS_DEBUG)
+ std::cerr << DEBUG_ARGS << "error loading soundfont: " << fluid_synth_error(fptr->fluidsynth) << std::endl;
+
+ //Unlock the mutex, or else we might be stuck here forever...
+ pthread_mutex_unlock(sfloader_mutex);
+ delete h;
+ pthread_exit(0);
+ }
+
+ //Deal with internal and external id etc.
+ if (FS_DEBUG)
+ printf("Soundfont %s loaded, index %d\n", filename, rv);
+
+ FluidSoundFont font;
+ font.filename = h->filename;//strdup(filename);
+
+ font.intid = rv;
+ if (h->id == FS_UNSPECIFIED_ID) {
+ font.extid = fptr->getNextAvailableExternalId();
+ if (FS_DEBUG)
+ printf("Font got extid %d\n",font.extid);
+ }
+ else
+ font.extid = h->id;
+ if (FS_DEBUG)
+ printf("Font has external id: %d int id:%d\n", font.extid, font.intid);
+
+ //Strip off the filename
+ QFileInfo fi(filename);
+ font.name = fi.baseName().toLatin1().data();
+ fptr->stack.push_front(font);
+ fptr->currentlyLoadedFonts++;
+
+ //Cleanup & unlock:
+ pthread_mutex_unlock(sfloader_mutex);
+ delete h;
+
+ if (FS_DEBUG)
+ printf("Currently loaded fonts: %d Nr of soundfonts: %d\n",fptr->currentlyLoadedFonts, fptr->nrOfSoundfonts);
+ //Check whether this was the last font or not. If so, run initSynth();
+ if (fptr->nrOfSoundfonts <= fptr->currentlyLoadedFonts) {
+ if (FS_DEBUG)
+ printf("This was the last font, rewriting channel settings...\n");
+ fptr->rewriteChannelSettings();
+ //Update data in GUI-window.
+ fptr->sendSoundFontData();
+ fptr->sendChannelData();
+ fptr->sendFontSuccessfullyLoaded(filename, font.extid);
+ }
+
+ pthread_exit(0);
+ }
+
+//---------------------------------------------------------
+// playNote
+// called from host
+//---------------------------------------------------------
+
+bool FluidSynth::playNote(int channel, int pitch, int velo)
+ {
+ if (channels[channel].font_intid == FS_UNSPECIFIED_FONT)
+ return false;
+ if (velo) {
+ if (fluid_synth_noteon(fluidsynth, channel, pitch, velo)) {
+ if (FS_DEBUG)
+ std::cerr << DEBUG_ARGS << "error processing noteon event: " << fluid_synth_error(fluidsynth);
+ }
+ }
+ else {
+ if (fluid_synth_noteoff(fluidsynth, channel, pitch))
+ if (FS_DEBUG)
+ std::cerr << DEBUG_ARGS << "error processing noteoff event: " << fluid_synth_error(fluidsynth) << std::endl;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sendSoundFontData
+//---------------------------------------------------------
+void FluidSynth::sendSoundFontData()
+ {
+ int ndatalen = 2; //2 bytes for command and length
+
+ //Calculate length in chars of all strings in the soundfontstack in one string
+ for (std::list<FluidSoundFont>::iterator it = stack.begin(); it != stack.end(); it++) {
+ ndatalen += 1 + strlen(it->name.c_str());
+ ndatalen += FS_SFDATALEN; //unsigned char for ID
+ }
+ byte ndata[ndatalen];
+ *ndata = FS_SEND_SOUNDFONTDATA; //The command
+ *(ndata + 1) = (unsigned char)stack.size (); //Nr of Soundfonts
+
+ // Copy the stuff to ndatalen:
+ char* chunk_start = (char*)(ndata + 2);
+ int chunk_len, name_len;
+ for (std::list<FluidSoundFont>::iterator it = stack.begin(); it != stack.end(); ++it) {
+ name_len = strlen(it->name.c_str()) + 1;
+ chunk_len = name_len + FS_SFDATALEN;
+ memcpy(chunk_start, it->name.c_str(), name_len); //First, store the fontname
+ *(chunk_start + name_len) = it->extid; //The GUI only needs to know about the external id, store that here
+ chunk_start += chunk_len;
+ }
+ sendSysex(ndatalen, ndata);
+ }
+
+//---------------------------------------------------------
+// sendChannelData
+//---------------------------------------------------------
+void FluidSynth::sendChannelData()
+ {
+ int chunk_size = 2;
+ int chdata_length = (chunk_size * FS_MAX_NR_OF_CHANNELS) +1 ; //Command and the 2 channels * 16
+ byte chdata[chdata_length];
+ byte* chdptr;
+ chdata[0] = FS_SEND_CHANNELINFO;
+ chdptr = (chdata + 1);
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ *(chdptr) = channels[i].font_extid; //Font external id
+ *(chdptr+1) = i; //Channel nr
+ chdptr += chunk_size;
+ }
+ sendSysex(chdata_length, chdata);
+ // Send drum channel info afterwards (later addition, not very neat, but works...)
+
+ int drumchdata_length = FS_MAX_NR_OF_CHANNELS + 1; //1 byte for the command, one byte for each channel
+ byte drumchdata[drumchdata_length ];
+ byte* drumchdataptr = drumchdata;
+ *drumchdata = FS_SEND_DRUMCHANNELINFO;
+
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ drumchdataptr++;
+ *drumchdataptr = channels[i].drumchannel;
+ }
+ sendSysex(drumchdata_length, drumchdata);
+ }
+
+//---------------------------------------------------------
+// dumpInfo
+//---------------------------------------------------------
+
+void FluidSynth::dumpInfo()
+ {
+ printf("-----------------------------------------------------\n");
+ printf("Dumping info...\n");
+ printf("Last dir: %s\n", lastdir.c_str());
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++)
+ printf("Chan %d\tFont extid:%d\tintid:%d\tdrumchan:%d\tpreset: %d\n", i, channels[i].font_extid, channels[i].font_intid, channels[i].drumchannel, channels[i].preset);
+
+ printf("\n");
+ for (std::list<FluidSoundFont>::iterator it = stack.begin(); it != stack.end(); it++)
+ printf("Font: %s\tintid: %d\textid %d\tfilename:%s\n", it->name.c_str(), it->intid, it->extid, it->filename.c_str());
+ printf("Reverb on: %d, width: %f, size: %f level: %f damp: %f\n",rev_on, rev_width, rev_size, rev_level, rev_damping);
+ printf("-----------------------------------------------------\n");
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool FluidSynth::guiVisible() const
+ {
+ return gui->isVisible();
+ }
+
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void FluidSynth::showGui(bool val)
+ {
+ gui->setShown(val);
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool FluidSynth::setController(int channel, int id, int val)
+ {
+ setController(channel, id, val, false);
+ return false;
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+void FluidSynth::setController(int channel, int id, int val, bool fromGui)
+ {
+ //
+ // Channelless controllers
+ //
+ int err = 0;
+ switch (id) {
+ case FS_GAIN: {
+ fluid_synth_set_gain(fluidsynth, (float) val/25); //gives val an interval of approximately[0,5]
+ //Forward to gui if not from Gui
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_GAIN, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_REVERB_ON: {
+ rev_on = val;
+ fluid_synth_set_reverb_on(fluidsynth, val); // 0 or 1
+ //if (rev_on)
+ // fluid_synth_set_reverb(fluidsynth, rev_size, rev_damping, rev_width, rev_level);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_REVERB_ON, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_REVERB_LEVEL:
+ //Interval: 0-2
+ rev_level = (double)2*val/16384; //[0,2]
+ //if (rev_on)
+ fluid_synth_set_reverb(fluidsynth, rev_size, rev_damping, rev_width, rev_level);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_REVERB_LEVEL, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ case FS_REVERB_WIDTH: //
+ rev_width = (double)val/164; //[0,100]
+ //if (rev_on)
+ fluid_synth_set_reverb(fluidsynth, rev_size, rev_damping, rev_width, rev_level);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_REVERB_WIDTH, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ case FS_REVERB_DAMPING: //[0,1]
+ rev_damping = (double)val/16384;
+ //if (rev_on)
+ fluid_synth_set_reverb(fluidsynth, rev_size, rev_damping, rev_width, rev_level);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_REVERB_DAMPING, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ case FS_REVERB_ROOMSIZE: //[0,1]
+ rev_size = (double)val/16384;
+ //if (rev_on)
+ fluid_synth_set_reverb(fluidsynth, rev_size, rev_damping, rev_width, rev_level);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_REVERB_ROOMSIZE, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ case FS_CHORUS_ON: {// 0 or 1
+ cho_on = val;
+ fluid_synth_set_chorus_on(fluidsynth, val);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_ON, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_CHORUS_NUM: {//Number of delay lines
+ cho_num = val;
+ fluid_synth_set_chorus(fluidsynth, cho_num, cho_level, cho_speed, cho_depth, cho_type);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_NUM, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_CHORUS_TYPE: {//?
+ cho_type = val;
+ fluid_synth_set_chorus(fluidsynth, cho_num, cho_level, cho_speed, cho_depth, cho_type);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_TYPE, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_CHORUS_SPEED: {//(0.291,5) Hz
+ cho_speed = (double)(0.291 + (double)val/3479);
+ fluid_synth_set_chorus(fluidsynth, cho_num, cho_level, cho_speed, cho_depth, cho_type);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_SPEED, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_CHORUS_DEPTH: { //[0,40]
+ cho_depth = (double) val*40/16383;
+ fluid_synth_set_chorus(fluidsynth, cho_num, cho_level, cho_speed, cho_depth, cho_type);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_DEPTH, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ case FS_CHORUS_LEVEL: { //[0,1]
+ cho_level = (double) val/16383;
+ fluid_synth_set_chorus(fluidsynth, cho_num, cho_level, cho_speed, cho_depth, cho_type);
+ if (!fromGui) {
+ MidiEvent ev(0, 0, ME_CONTROLLER, FS_CHORUS_LEVEL, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ //
+ // Controllers that depend on channels
+ //
+ case CTRL_PITCH:
+ err = fluid_synth_pitch_bend (fluidsynth, channel, val);
+ break;
+ case CTRL_PROGRAM: {
+ //Check if MusE is trying to set a preset on an unspecified font. If so, ignore.
+ if (FS_DEBUG)
+ printf("Program select : channel %d val %d\n",channel, val);
+ byte font_intid = channels[channel].font_intid;
+
+ if (font_intid == FS_UNSPECIFIED_ID || font_intid == FS_UNSPECIFIED_FONT)
+ return;
+
+ byte banknum = ((val >> 16) & 0xff);
+ byte patch = (val & 0xff);
+ //printf("val: %d banknum: %x patch: %d\n", val, banknum, patch);
+
+ err = fluid_synth_program_select(fluidsynth, channel, font_intid , banknum, patch);
+ if (err)
+ printf("FluidSynth::setController() - Error changing program on soundfont %s, channel: %d\n", fluid_synth_error(fluidsynth), channel);
+ else {
+ channels[channel].preset = val;//setChannelPreset(val, channel);
+ channels[channel].banknum = banknum;
+ }
+ break;
+ }
+ default:
+ if (FS_DEBUG)
+ printf("Setting controller on channel: %d with id: 0x%x to val: %d\n",channel, id, val);
+ err = fluid_synth_cc(fluidsynth, channel, id, val);
+ break;
+ }
+
+ if (err)
+ printf ("FluidSynth::setController() - error processing controller event: %s\n", fluid_synth_error(fluidsynth));
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+int FluidSynth::getControllerInfo(int id, const char** name, int* controller, int* min, int* max)
+ {
+ if (id >= NUM_CONTROLLER)
+ return 0;
+ *controller = fluidCtrl[id].num;
+ *name = fluidCtrl[id].name;
+ *min = fluidCtrl[id].min;
+ *max = fluidCtrl[id].max;
+ if (FS_DEBUG)
+ printf("FluidSynth::getControllerInfo() id: %d name: %s controller: %d min: %d max: %d\n",id,*name,*controller,*min,*max);
+ return ++id;
+ }
+
+//---------------------------------------------------------
+// sendError
+//---------------------------------------------------------
+void FluidSynth::sendError(const char *errorMessage)
+ {
+ int len = 2 + strlen(errorMessage);
+ unsigned char data[len];
+ *data = FS_ERROR;
+ memcpy(data + 1, errorMessage, len - 1);
+ sendSysex(len, data);
+ }
+
+//---------------------------------------------------------
+// getNextAvailableExternalId
+//---------------------------------------------------------
+
+int FluidSynth::getNextAvailableExternalId()
+ {
+ unsigned char place[FS_MAX_NR_OF_CHANNELS];
+ for(int i=0; i<FS_MAX_NR_OF_CHANNELS; i++)
+ place[i] = 0;
+ for (std::list<FluidSoundFont>::iterator it = stack.begin(); it != stack.end(); it++)
+ place[it->extid] = 1;
+
+ int i=0;
+ while (i < FS_MAX_NR_OF_CHANNELS && place[i] == 1)
+ i++;
+
+ return i;
+ }
+
+//---------------------------------------------------------
+// sfChannelChange
+//---------------------------------------------------------
+
+void FluidSynth::sfChannelChange(byte extid, byte channel)
+ {
+ if (FS_DEBUG)
+ printf("FluidSynth::sfChannelChange()-Setting channel %d to font with extid %d intid %d\n",channel, extid, getFontInternalIdByExtId(extid));
+ channels[channel].font_extid = extid;
+ channels[channel].font_intid = getFontInternalIdByExtId(extid);
+ }
+
+//---------------------------------------------------------
+// getFontInternalIdByExtId
+//---------------------------------------------------------
+byte FluidSynth::getFontInternalIdByExtId(byte ext_id)
+ {
+ for (std::list<FluidSoundFont>::iterator it = stack.begin(); it !=stack.end(); it++) {
+ if (it->extid == ext_id)
+ return it->intid;
+ }
+ return FS_UNSPECIFIED_FONT;
+ }
+
+//---------------------------------------------------------
+// sendLastDir
+//---------------------------------------------------------
+void FluidSynth::sendLastdir(const char* lastdir)
+ {
+ int n = strlen(lastdir) + 2;
+ byte d[n];
+ d[0] = FS_LASTDIR_CHANGE;
+ memcpy(d+1,lastdir, strlen(lastdir)+1);
+
+ MidiEvent ev(0, ME_SYSEX, d, n);
+ gui->writeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// sendLastDir
+//---------------------------------------------------------
+void FluidSynth::sendFontSuccessfullyLoaded(const char* filename, byte extid)
+ {
+ // extid first, then filename:
+ int n = strlen(filename) + 3;
+ byte d[n];
+ d[0] = FS_FONT_SUCCESSFULLY_LOADED;
+ d[1] = extid;
+ memcpy(d+2, filename, strlen(filename)+1);
+ MidiEvent ev(0, ME_SYSEX, d, n);
+ gui->writeEvent(ev);
+ }
+//---------------------------------------------------------
+// rewriteChannelSettings
+//---------------------------------------------------------
+void FluidSynth::rewriteChannelSettings()
+ {
+ //Walk through the channels, remap internal ID:s to external ID:s (something that actually only needs to be done at
+ //startup, since the fonts aren't loaded yet at that time and it isn't possible to give them a correct internal id
+ //since they don't have any at that time, this can probably be fixed in a smarter way (but it works..))
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ int ext_id = channels[i].font_extid;//getFontExternalIdByChannel(i);
+ if (ext_id != FS_UNSPECIFIED_ID) //Check if ext_id is set to any sane font
+ {
+ channels[i].font_intid = getFontInternalIdByExtId(ext_id);//(getFontInternalIdByExtId(ext_id));//if so, get value from the stack
+ }
+ else
+ channels[i].font_intid = FS_UNSPECIFIED_FONT; //if not, set it to unspecified
+ }
+
+ //Assign correct presets to all channels
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ int preset = channels[i].preset;
+ int int_id = channels[i].font_intid;
+ byte banknum = channels[i].banknum;
+
+ if (channels[i].drumchannel)
+ banknum = 128;
+
+ //printf("Channel %d, font int-id %d ext_id %d, preset %d\n",i, int_id, getFontExternalIdByChannel(i), preset);
+ if (!(preset == FS_UNSPECIFIED_PRESET || int_id == FS_UNSPECIFIED_FONT)) {
+ int rv = fluid_synth_program_select(fluidsynth, i, int_id, banknum, preset);
+ if (rv)
+ std::cerr << DEBUG_ARGS << "Error changing preset! " << fluid_synth_error(fluidsynth) << std::endl;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+const char* FluidSynth::getPatchName(int i, int, int) const
+ {
+ if (channels[i].font_intid == FS_UNSPECIFIED_FONT)
+ return "no preset";
+ else if (channels[i].preset == FS_UNSPECIFIED_PRESET)
+ return "no preset";
+ else {
+ //printf("Getpatchname, channel: %d\n",channel);
+ fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i);
+ if (!preset) return "no preset";
+ return preset->get_name(preset);
+ }
+ }
+
+//---------------------------------------------------------
+// getPatchInfo
+//---------------------------------------------------------
+const MidiPatch* FluidSynth::getPatchInfo(int i, const MidiPatch* patch) const
+ {
+ if (channels[i].font_intid == FS_UNSPECIFIED_FONT)
+ return 0;
+ //else if (channels[i].preset == FS_UNSPECIFIED_PRESET)
+ // return 0;
+ else {
+ //printf("Getpatchname, channel: %d\n",channel);
+ if (!patch)
+ //Deliver first patch
+ return getFirstPatch(i);
+ else
+ //Deliver next patch
+ return getNextPatch(i, patch);
+ }
+ }
+
+//---------------------------------------------------------
+// getFirstPatch
+//---------------------------------------------------------
+const MidiPatch* FluidSynth::getFirstPatch (int channel) const
+ {
+ static MidiPatch midiPatch;
+
+ midiPatch.typ = 0;
+ midiPatch.lbank = 0;
+
+ fluid_preset_t* preset;
+ int font_id = channels[channel].font_intid;
+ if (font_id == FS_UNSPECIFIED_FONT)
+ return 0;
+
+ fluid_sfont_t* sfont = fluid_synth_get_sfont_by_id(fluidsynth, font_id);
+
+ if (!channels[channel].drumchannel) {
+ for (unsigned bank = 0; bank < 128; ++bank) {
+ for (unsigned patch = 0; patch < 128; ++patch) {
+ preset = sfont->get_preset (sfont, bank, patch);
+ if (preset) {
+ midiPatch.hbank = bank;
+ midiPatch.prog = patch;
+ midiPatch.name = preset->get_name (preset);
+ return &midiPatch;
+ }
+ }
+ }
+ return 0;
+ }
+ else { //This is a drumchannel
+ int bank = 128;
+ for (unsigned patch = 0; patch < 128; ++patch) {
+ preset = sfont->get_preset (sfont, bank, patch);
+ if (preset) {
+ midiPatch.hbank = bank;
+ midiPatch.prog = patch;
+ midiPatch.name = preset->get_name(preset);
+ return &midiPatch;
+ }
+ }
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getNextPatch
+//---------------------------------------------------------
+const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch) const
+ {
+ static MidiPatch midiPatch;
+ //First check if there actually is any soundfont associated to the channel. If not, don't bother
+ int font_id = channels[channel].font_intid;
+ if (font_id == FS_UNSPECIFIED_FONT)
+ return 0;
+ if (patch == 0)
+ return getFirstPatch(channel);
+
+ midiPatch.typ = 0;
+ midiPatch.lbank = 0;
+
+ if (font_id == FS_UNSPECIFIED_FONT)
+ return 0;
+ //printf("Font has internal id: %d\n",font_id);
+ fluid_preset_t* preset;
+ fluid_sfont_t* sfont = fluid_synth_get_sfont_by_id(fluidsynth, font_id);
+
+ if (!channels[channel].drumchannel) {
+ unsigned prog = patch->prog + 1;
+
+ for (unsigned bank = patch->hbank; bank < 128; ++bank) {
+ for ( ; prog < 128; ++prog) {
+ preset = sfont->get_preset (sfont, bank, prog);
+ if (preset) {
+ //printf("Preset info: bank: %d prog: %d name: %s\n", bank, prog, preset->get_name(preset));
+ midiPatch.hbank = bank;
+ midiPatch.prog = prog;
+ midiPatch.name = preset->get_name (preset);
+ return &midiPatch;
+ }
+ }
+ prog = 0; // Reset if we "come around"
+ }
+ }
+ else { //This is a drum channel
+ unsigned bank = 128;
+ unsigned prog = patch->prog;
+ for (prog = patch->prog + 1; prog < 128; ++prog) {
+ preset = sfont->get_preset (sfont, bank, prog);
+ if (preset) {
+ //printf("Preset info: bank: %d prog: %d name: %s\n",bank, prog, preset->get_name(preset));
+ midiPatch.hbank = bank;
+ midiPatch.prog = prog;
+ midiPatch.name = preset->get_name (preset);
+ return &midiPatch;
+ }
+ }
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// popSoundfont
+//---------------------------------------------------------
+
+bool FluidSynth::popSoundfont (int ext_id)
+ {
+ bool success = false;
+ int int_id = getFontInternalIdByExtId(ext_id);
+
+ if (int_id == FS_UNSPECIFIED_FONT) {
+ std::cerr << DEBUG_ARGS << "Internal error! Request for deletion of Soundfont that is not registered!" << std::endl;
+ }
+ else
+ {
+ //Try to unload soundfont
+ int err = fluid_synth_sfunload(fluidsynth, int_id, 0);
+ if (err != -1) {//Success
+ //Check all channels that the font is used in
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ //Set them to unspecified and reset preset settings
+ if (channels[i].font_intid == int_id) {
+ channels[i].font_intid = FS_UNSPECIFIED_ID;
+ channels[i].font_extid = FS_UNSPECIFIED_ID;
+ channels[i].preset = FS_UNSPECIFIED_PRESET;
+ }
+ }
+ //Remove it from soundfont stack
+ for (std::list<FluidSoundFont>::iterator it =stack.begin(); it !=stack.end(); it++) {
+ if (it->intid == int_id) {
+ stack.erase(it);
+ break;
+ }
+ }
+ //Resend fontdata & re-initialize
+ sendSoundFontData();
+ sendChannelData();
+ rewriteChannelSettings();
+ success = true;
+ currentlyLoadedFonts--;
+ }
+ else //OK, there was trouble
+ std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl;
+ }
+ if (FS_DEBUG)
+ printf("Removed soundfont with ext it: %d\n",ext_id);
+ return success;
+ }
+
+//---------------------------------------------------------
+// instantiate
+// construct a new synthesizer instance
+//---------------------------------------------------------
+
+class QWidget;
+
+static Mess* instantiate(int sr, const char* name)
+ {
+ printf("fluidsynth sampleRate %d\n", sr);
+ FluidSynth* synth = new FluidSynth(sr);
+ if (synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+
+extern "C"
+ {
+ static MESS descriptor = {
+ "FluidSynth",
+ "Mathias Lundgren (lunar_shuttle@users.sf.net)",
+ "0.1", //Version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/synti/fluidsynth/fluidsynti.h b/muse_qt4_evolution/synti/fluidsynth/fluidsynti.h
new file mode 100644
index 00000000..c66b1faf
--- /dev/null
+++ b/muse_qt4_evolution/synti/fluidsynth/fluidsynti.h
@@ -0,0 +1,141 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynti.h,v 1.20 2006/01/06 22:48:09 wschweer Exp $
+ *
+ */
+
+#ifndef __MUSE_FLUIDSYNTI_H__
+#define __MUSE_FLUIDSYNTI_H__
+
+#include <fluidsynth.h>
+#include <pthread.h>
+#include <string>
+#include "fluidsynthgui.h"
+#include "libsynti/mess.h"
+#include "muse/debug.h"
+#include "libsynti/midievent.h"
+#include "muse/midictrl.h"
+
+#define FS_DEBUG_DATA 0 //Turn on/off debug print of midi data sent to fluidsynth
+
+typedef unsigned char byte;
+
+struct FluidSoundFont
+ {
+ std::string filename;
+ std::string name;
+ byte extid, intid;
+ };
+
+struct FluidCtrl {
+ const char* name;
+ int num;
+ int min, max;
+ //int val;
+ };
+
+// NRPN-controllers:
+static const int FS_GAIN = 0 + CTRL_NRPN14_OFFSET;
+static const int FS_REVERB_ON = 1 + CTRL_NRPN14_OFFSET;
+static const int FS_REVERB_LEVEL = 2 + CTRL_NRPN14_OFFSET;
+static const int FS_REVERB_ROOMSIZE = 3 + CTRL_NRPN14_OFFSET;
+static const int FS_REVERB_DAMPING = 4 + CTRL_NRPN14_OFFSET;
+static const int FS_REVERB_WIDTH = 5 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_ON = 6 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_NUM = 7 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_TYPE = 8 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_SPEED = 9 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_DEPTH = 10 + CTRL_NRPN14_OFFSET;
+static const int FS_CHORUS_LEVEL = 11 + CTRL_NRPN14_OFFSET;
+
+// FluidChannel is used to map different soundfonts to different fluid-channels
+// This is to be able to select different presets from specific soundfonts, since
+// Fluidsynth has a quite strange way of dealing with fontloading and channels
+// We also need this since getFirstPatch and getNextPatch only tells us which channel is
+// used, so this works as a connection between soundfonts and fluid-channels (one channel
+// can only have one soundfont, but one soundfont can have many channels)
+
+struct FluidChannel
+ {
+ byte font_extid, font_intid, preset, drumchannel;
+ byte banknum; // hbank
+ };
+
+class FluidSynth : public Mess {
+ private:
+ bool pushSoundfont (const char*, int);
+ void sendSysex(int l, const unsigned char* d);
+ void sendLastdir(const char*);
+ void sfChannelChange(unsigned char font_id, unsigned char channel);
+ void parseInitData(int n, const byte* d);
+
+ byte getFontInternalIdByExtId (byte channel);
+
+ void debug(const char* msg) { if (FS_DEBUG) printf("Debug: %s\n",msg); }
+ void dumpInfo(); //Prints out debug info
+
+ FluidChannel channels[FS_MAX_NR_OF_CHANNELS];
+ std::string lastdir;
+ pthread_t fontThread;
+ const MidiPatch * getFirstPatch (int channel) const;
+ const MidiPatch* getNextPatch (int, const MidiPatch *) const;
+
+ //For reverb and chorus:
+ double rev_size, rev_damping, rev_width, rev_level, cho_level, cho_speed, cho_depth;
+ bool rev_on, cho_on;
+ int cho_num, cho_type;
+
+public:
+ FluidSynth(int sr);
+ ~FluidSynth();
+ bool init(const char*);
+ virtual void process(float**, int, int);
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual bool sysex(int, const unsigned char*);
+ virtual bool setController(int, int, int);
+ void setController(int, int , int, bool);
+ virtual void getInitData(int*, const unsigned char**);
+ virtual const char* getPatchName(int, int, int) const;
+ virtual const MidiPatch* getPatchInfo(int i, const MidiPatch* patch) const;
+ virtual int getControllerInfo(int, const char**, int*, int*, int*);
+ virtual bool processEvent(const MidiEvent&);
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const;
+ virtual void showGui(bool val);
+
+ void sendError(const char*);
+ void sendSoundFontData();
+ void sendChannelData();
+ void sendFontSuccessfullyLoaded(const char* filename, byte extid);
+ void rewriteChannelSettings(); //used because fluidsynth does some very nasty things when loading a font!
+ bool popSoundfont (int ext_id);
+
+ int getNextAvailableExternalId();
+
+ fluid_synth_t* fluidsynth;
+ FluidSynthGui* gui;
+ pthread_mutex_t _sfloader_mutex;
+ int currentlyLoadedFonts; //To know whether or not to run the init-parameters
+ std::list<FluidSoundFont> stack;
+ int nrOfSoundfonts;
+
+ void initInternal();
+
+ static FluidCtrl fluidCtrl[];
+ static void* fontLoadThread(void* t);
+
+ };
+
+struct FS_Helper //Only used to pass parameters when calling the loading thread
+ {
+ FluidSynth* fptr;
+ std::string filename;
+ int id;
+ };
+
+
+#endif /* __MUSE_FLUIDSYNTI_H__ */
diff --git a/muse_qt4_evolution/synti/libsynti/CMakeLists.txt b/muse_qt4_evolution/synti/libsynti/CMakeLists.txt
new file mode 100644
index 00000000..c30048dc
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/CMakeLists.txt
@@ -0,0 +1,39 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+include(${PROJECT_SOURCE_DIR}/pch.txt)
+
+add_library(synti
+ ${PROJECT_BINARY_DIR}/all-pic.h.pch
+ mess.cpp
+ mess2.cpp
+ gui.cpp
+ mono.cpp
+ poly.cpp
+ midievent.cpp
+ )
+
+#
+# -fPIC is necessary for 64 bit systems
+#
+set_target_properties( synti
+ PROPERTIES COMPILE_FLAGS "-fPIC -include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
diff --git a/muse_qt4_evolution/synti/libsynti/evdata.h b/muse_qt4_evolution/synti/libsynti/evdata.h
new file mode 100644
index 00000000..29f6441e
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/evdata.h
@@ -0,0 +1,66 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: evdata.h,v 1.1 2004/02/13 13:55:03 wschweer Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EVDATA_H__
+#define __EVDATA_H__
+
+#include <memory.h>
+
+//---------------------------------------------------------
+// EvData
+// variable len event data (sysex, meta etc.)
+//---------------------------------------------------------
+
+class EvData {
+ int* refCount;
+
+ public:
+ unsigned char* data;
+ int dataLen;
+
+ EvData() {
+ data = 0;
+ dataLen = 0;
+ refCount = new int(1);
+ }
+ EvData(const EvData& ed) {
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ }
+
+ EvData& operator=(const EvData& ed) {
+ if (data == ed.data)
+ return *this;
+ if (--(*refCount) == 0) {
+ delete refCount;
+ delete[] data;
+ }
+ data = ed.data;
+ dataLen = ed.dataLen;
+ refCount = ed.refCount;
+ (*refCount)++;
+ return *this;
+ }
+
+ ~EvData() {
+ if (--(*refCount) == 0) {
+ delete[] data;
+ delete refCount;
+ }
+ }
+ void setData(const unsigned char* p, int l) {
+ data = new unsigned char[l];
+ memcpy(data, p, l);
+ dataLen = l;
+ }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/gui.cpp b/muse_qt4_evolution/synti/libsynti/gui.cpp
new file mode 100644
index 00000000..30fd177b
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/gui.cpp
@@ -0,0 +1,124 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.cpp,v 1.7 2005/05/11 14:18:48 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "gui.h"
+#include "muse/midi.h"
+
+#include <unistd.h>
+
+//---------------------------------------------------------
+// MessGui
+//---------------------------------------------------------
+
+MessGui::MessGui()
+ {
+ //
+ // prepare for interprocess communication:
+ //
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("thread:creating pipe4");
+ exit(-1);
+ }
+ readFd = filedes[0];
+ writeFd = filedes[1];
+ wFifoSize = 0;
+ wFifoWindex = 0;
+ wFifoRindex = 0;
+ rFifoSize = 0;
+ rFifoWindex = 0;
+ rFifoRindex = 0;
+ }
+
+//---------------------------------------------------------
+// MessGui
+//---------------------------------------------------------
+
+MessGui::~MessGui()
+ {
+ }
+
+//---------------------------------------------------------
+// readMessage
+//---------------------------------------------------------
+
+void MessGui::readMessage()
+ {
+ char c;
+ while (rFifoSize) {
+ ::read(readFd, &c, 1);
+ processEvent(rFifo[rFifoRindex]);
+ rFifoRindex = (rFifoRindex + 1) % EVENT_FIFO_SIZE;
+ --rFifoSize;
+ }
+ }
+
+//---------------------------------------------------------
+// sendController
+//---------------------------------------------------------
+
+void MessGui::sendController(int ch, int idx, int val)
+ {
+ sendEvent(MidiEvent(0, ch, ME_CONTROLLER, idx, val));
+ }
+
+//---------------------------------------------------------
+// sendSysex
+//---------------------------------------------------------
+
+void MessGui::sendSysex(unsigned char* p, int n)
+ {
+ sendEvent(MidiEvent(0, ME_SYSEX, p, n));
+ }
+
+//---------------------------------------------------------
+// writeEvent
+// send an event to synti gui
+//---------------------------------------------------------
+
+void MessGui::writeEvent(const MidiEvent& ev)
+ {
+ if (rFifoSize == EVENT_FIFO_SIZE) {
+ printf("event synti->gui fifo overflow\n");
+ return;
+ }
+ rFifo[rFifoWindex] = ev;
+ rFifoWindex = (rFifoWindex + 1) % EVENT_FIFO_SIZE;
+ ++rFifoSize;
+ write(writeFd, "x", 1); // wakeup GUI
+ }
+
+//---------------------------------------------------------
+// sendEvent
+//---------------------------------------------------------
+
+void MessGui::sendEvent(const MidiEvent& ev)
+ {
+ if (wFifoSize == EVENT_FIFO_SIZE) {
+ printf("event gui->synti fifo overflow\n");
+ return;
+ }
+ wFifo[wFifoWindex] = ev;
+ wFifoWindex = (wFifoWindex + 1) % EVENT_FIFO_SIZE;
+ ++wFifoSize;
+ }
+
+//---------------------------------------------------------
+// readEvent
+// read event from synti gui
+//---------------------------------------------------------
+
+MidiEvent MessGui::readEvent()
+ {
+ MidiEvent ev = wFifo[wFifoRindex];
+ wFifoRindex = (wFifoRindex + 1) % EVENT_FIFO_SIZE;
+ --wFifoSize;
+ return ev;
+ }
+
diff --git a/muse_qt4_evolution/synti/libsynti/gui.h b/muse_qt4_evolution/synti/libsynti/gui.h
new file mode 100644
index 00000000..27bebe3f
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/gui.h
@@ -0,0 +1,72 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.h,v 1.5 2005/05/11 14:18:48 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_GUI_H__
+#define __SYNTH_GUI_H__
+
+#include "midievent.h"
+
+const int EVENT_FIFO_SIZE = 256;
+class QWidget;
+
+//---------------------------------------------------------
+// MessGui
+// manage IO from synti-GUI to Host
+//---------------------------------------------------------
+
+class MessGui {
+ int writeFd;
+
+ // Event Fifo synti -> GUI
+ MidiEvent rFifo[EVENT_FIFO_SIZE];
+ volatile int rFifoSize;
+ int rFifoWindex;
+ int rFifoRindex;
+
+ // Event Fifo GUI -> synti
+ MidiEvent wFifo[EVENT_FIFO_SIZE];
+ volatile int wFifoSize;
+ int wFifoWindex;
+ int wFifoRindex;
+
+ protected:
+ int readFd;
+ void readMessage();
+ void sendEvent(const MidiEvent& ev);
+ void sendController(int ch, int idx, int val);
+ void sendSysex(unsigned char*, int);
+
+ virtual void processEvent(const MidiEvent&) {};
+
+ public:
+ MessGui();
+ virtual ~MessGui();
+
+ void writeEvent(const MidiEvent&);
+ int fifoSize() const { return wFifoSize; }
+ MidiEvent readEvent();
+ };
+
+//---------------------------------------------------------
+// SynthGuiCtrl
+//---------------------------------------------------------
+
+struct SynthGuiCtrl {
+ enum EditorType { SLIDER, SWITCH, COMBOBOX };
+ QWidget* editor;
+ QWidget* label;
+ EditorType type;
+
+ SynthGuiCtrl() {}
+ SynthGuiCtrl(QWidget* w, QWidget* l, const EditorType t)
+ : editor(w), label(l), type(t) {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/mess.cpp b/muse_qt4_evolution/synti/libsynti/mess.cpp
new file mode 100644
index 00000000..49f030f8
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mess.cpp
@@ -0,0 +1,123 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mess.cpp,v 1.3 2005/05/11 14:18:48 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mess.h"
+#include "muse/midi.h"
+
+static const int FIFO_SIZE = 32;
+
+//---------------------------------------------------------
+// MessP
+// private data for class Mess
+//---------------------------------------------------------
+
+struct MessP {
+ // Event Fifo synti -> Host:
+ MidiEvent fifo[FIFO_SIZE];
+ volatile int fifoSize;
+ int fifoWindex;
+ int fifoRindex;
+ };
+
+//---------------------------------------------------------
+// Mess
+//---------------------------------------------------------
+
+Mess::Mess(int n)
+ {
+ _channels = n;
+ _sampleRate = 44100;
+ d = new MessP;
+ d->fifoSize = 0;
+ d->fifoWindex = 0;
+ d->fifoRindex = 0;
+ }
+
+//---------------------------------------------------------
+// Mess
+//---------------------------------------------------------
+
+Mess::~Mess()
+ {
+ delete d;
+ }
+
+//---------------------------------------------------------
+// getGeometry
+// dummy
+//---------------------------------------------------------
+
+void Mess::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ x = 0;
+ y = 0;
+ w = 0;
+ h = 0;
+ }
+
+//---------------------------------------------------------
+// sendEvent
+// send Event synti -> host
+//---------------------------------------------------------
+
+void Mess::sendEvent(MidiEvent ev)
+ {
+ if (d->fifoSize == FIFO_SIZE) {
+ printf("event synti->host fifo overflow\n");
+ return;
+ }
+ d->fifo[d->fifoWindex] = ev;
+ d->fifoWindex = (d->fifoWindex + 1) % FIFO_SIZE;
+ ++(d->fifoSize);
+ }
+
+//---------------------------------------------------------
+// receiveEvent
+// called from host
+//---------------------------------------------------------
+
+MidiEvent Mess::receiveEvent()
+ {
+ MidiEvent ev = d->fifo[d->fifoRindex];
+ d->fifoRindex = (d->fifoRindex + 1) % FIFO_SIZE;
+ --(d->fifoSize);
+ return ev;
+ }
+
+//---------------------------------------------------------
+// eventsPending
+// called from host:
+// while (eventsPending()) {
+// receiveEvent();
+// ...
+//---------------------------------------------------------
+
+int Mess::eventsPending() const
+ {
+ return d->fifoSize;
+ }
+
+//---------------------------------------------------------
+// processEvent
+// return true if synti is busy
+//---------------------------------------------------------
+
+bool Mess::processEvent(const MidiEvent& ev)
+ {
+ switch(ev.type()) {
+ case ME_NOTEON:
+ return playNote(ev.channel(), ev.dataA(), ev.dataB());
+ case ME_NOTEOFF:
+ return playNote(ev.channel(), ev.dataA(), 0);
+ case ME_SYSEX:
+ return sysex(ev.len(), ev.data());
+ case ME_CONTROLLER:
+ return setController(ev.channel(), ev.dataA(), ev.dataB());
+ }
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/synti/libsynti/mess.h b/muse_qt4_evolution/synti/libsynti/mess.h
new file mode 100644
index 00000000..c407d17e
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mess.h
@@ -0,0 +1,105 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mess.h,v 1.6 2005/05/11 14:18:48 wschweer Exp $
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MESS_H__
+#define __MESS_H__
+
+#define MESS_MAJOR_VERSION 3
+#define MESS_MINOR_VERSION 1
+
+#include "midievent.h"
+
+class QWidget;
+class MessP;
+
+//---------------------------------------------------------
+// MidiPatch
+//---------------------------------------------------------
+
+#define MP_TYPE_GM 1
+#define MP_TYPE_GS 2
+#define MP_TYPE_XG 4
+#define MP_TYPE_LBANK 8
+#define MP_TYPE_HBANK 16
+
+struct MidiPatch {
+ signed char typ; // 1 - GM 2 - GS 4 - XG 8 - LBANK 16 - HBANK
+ signed char hbank, lbank, prog;
+ const char* name;
+ };
+
+//---------------------------------------------------------
+// Mess
+// MusE experimental software synth
+// Instance virtual interface class
+//---------------------------------------------------------
+
+class Mess {
+ MessP* d;
+
+ int _sampleRate;
+ int _channels; // 1 - mono, 2 - stereo
+
+ public:
+ Mess(int channels);
+ virtual ~Mess();
+
+ int channels() const { return _channels; }
+ int sampleRate() const { return _sampleRate; }
+ void setSampleRate(int r) { _sampleRate = r; }
+
+ virtual void process(float** data, int offset, int len) = 0;
+
+ // The synti has to (re-)implement processEvent() or provide
+ // the playNote()/setControll()/sysex() functions.
+ // The even routines return true if synti is busy and the
+ // event must be send again.
+
+ virtual bool processEvent(const MidiEvent&);
+ virtual bool setController(int, int, int) { return false; }
+ virtual bool playNote(int, int, int) { return false; }
+ virtual bool sysex(int, const unsigned char*) { return false; }
+
+ virtual void getInitData(int*, const unsigned char**) {}
+ virtual int getControllerInfo(int, const char**, int*, int*, int*) {return 0;}
+ virtual const char* getPatchName(int, int, int) const { return "?"; }
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch*) const { return 0; }
+
+ // synthesizer -> host communication
+ void sendEvent(MidiEvent); // called from synti
+ MidiEvent receiveEvent(); // called from host
+ int eventsPending() const;
+
+ // GUI interface routines
+ virtual bool hasGui() const { return false; }
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int) {}
+ };
+
+//---------------------------------------------------------
+// MESS
+// Class descriptor
+//---------------------------------------------------------
+
+struct MESS {
+ const char* name;
+ const char* description;
+ const char* version;
+ int majorMessVersion, minorMessVersion;
+ // QWidget* parent allows for a threaded GUI using the Qt Library
+ // can be ignored by synti
+ Mess* (*instantiate)(int sr, const char* name);
+ };
+
+extern "C" {
+ const MESS* mess_descriptor();
+ }
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/mess2.cpp b/muse_qt4_evolution/synti/libsynti/mess2.cpp
new file mode 100644
index 00000000..588edac9
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mess2.cpp
@@ -0,0 +1,128 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+// (C) Copyright 2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mess2.h"
+
+QList<SynthCtrl*> Mess2::ctrl;
+
+//---------------------------------------------------------
+// Mess2
+//---------------------------------------------------------
+
+Mess2::Mess2(int channels)
+ : Mess(channels)
+ {
+ initData = 0;
+ }
+
+//---------------------------------------------------------
+// Mess2
+//---------------------------------------------------------
+
+Mess2::~Mess2()
+ {
+ if (initData)
+ delete[] initData;
+ }
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+void Mess2::addController(const char* name, int id, int min, int max, int init)
+ {
+ SynthCtrl* c = new SynthCtrl(name, id, min, max, init);
+ ctrl.append(c);
+ }
+
+//---------------------------------------------------------
+// controllerIdx
+//---------------------------------------------------------
+
+int Mess2::controllerIdx(const char* name)
+ {
+ for (int i = 0; i < ctrl.size(); ++i) {
+ if (strcmp(ctrl[i]->name, name) == 0)
+ return i;
+ }
+ return -1;
+ }
+
+//---------------------------------------------------------
+// controllerIdx
+//---------------------------------------------------------
+
+int Mess2::controllerIdx(int ctrlId)
+ {
+ for (int i = 0; i < ctrl.size(); ++i) {
+ if (ctrl[i]->ctrl == ctrlId)
+ return i;
+ }
+ return -1;
+ }
+
+//---------------------------------------------------------
+// controllerId
+//---------------------------------------------------------
+
+int Mess2::controllerId(int idx)
+ {
+ if (idx < 0 || idx >= ctrl.size()) {
+ printf("controllId::illegal controller index %d\n", idx);
+ return -1;
+ }
+ return ctrl[idx]->ctrl;
+ }
+
+//---------------------------------------------------------
+// controllerName
+//---------------------------------------------------------
+
+const char* Mess2::controllerName(int idx)
+ {
+ if (idx < 0 || idx >= ctrl.size()) {
+ printf("controllerName::illegal controller index %d\n", idx);
+ return "?";
+ }
+ return ctrl[idx]->name;
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void Mess2::getInitData(int* bytes, const unsigned char** data)
+ {
+ if (initData)
+ delete[] initData;
+ int n = ctrl.size() * sizeof(int);
+ initData = new unsigned char[n];
+ int* p = (int*)initData;
+ foreach(SynthCtrl* c, ctrl) {
+ *p++ = c->val;
+ }
+ *data = initData;
+ *bytes = n;
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+
+int Mess2::getControllerInfo(int idx, const char** name, int* id, int* min, int* max)
+ {
+ if (idx < 0 || idx >= ctrl.size())
+ return 0;
+ *name = ctrl[idx]->name;
+ *id = ctrl[idx]->ctrl;
+ *min = ctrl[idx]->min;
+ *max = ctrl[idx]->max;
+ ++idx;
+ return (idx >= ctrl.size()) ? 0 : idx;
+ }
+
+
diff --git a/muse_qt4_evolution/synti/libsynti/mess2.h b/muse_qt4_evolution/synti/libsynti/mess2.h
new file mode 100644
index 00000000..207eb6c3
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mess2.h
@@ -0,0 +1,57 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+// (C) Copyright 2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MESS2_H__
+#define __MESS2_H__
+
+#include "mess.h"
+
+//---------------------------------------------------------
+// SynthCtlr
+//---------------------------------------------------------
+
+struct SynthCtrl {
+ const char* name;
+ int ctrl;
+ int min;
+ int max;
+ int init;
+ int val;
+ SynthCtrl(const char* n, int i, int a, int b, int c)
+ : name(n), ctrl(i), min(a), max(b), init(c)
+ {}
+ };
+
+//---------------------------------------------------------
+// Mess2
+// MusE experimental software synth
+// extended interface
+//---------------------------------------------------------
+
+class Mess2 : public Mess {
+ unsigned char* initData;
+
+ void getInitData(int*, const unsigned char**);
+ int getControllerInfo(int, const char**, int*, int*, int*);
+
+ protected:
+ static QList<SynthCtrl*> ctrl;
+
+ static void addController(const char* name,
+ int ctrl, int min = 0, int max = 16384, int init = 0);
+ static int controllerIdx(const char* name);
+ static int controllerId(int idx);
+ static int controllerIdx(int id);
+ static const char* controllerName(int idx);
+
+ public:
+ Mess2(int channels);
+ virtual ~Mess2();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/midievent.cpp b/muse_qt4_evolution/synti/libsynti/midievent.cpp
new file mode 100644
index 00000000..7c1e14fd
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/midievent.cpp
@@ -0,0 +1,21 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.cpp,v 1.3 2005/05/11 14:18:48 wschweer Exp $
+//
+// (C) Copyright 2002-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "midievent.h"
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+MidiEvent::MidiEvent(unsigned t, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ edata.setData(data, len);
+ _type = tpe;
+ }
+
diff --git a/muse_qt4_evolution/synti/libsynti/midievent.h b/muse_qt4_evolution/synti/libsynti/midievent.h
new file mode 100644
index 00000000..a435d257
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/midievent.h
@@ -0,0 +1,55 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.h,v 1.3 2005/05/11 14:18:48 wschweer Exp $
+//
+// (C) Copyright 1999-2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIEVENT_H__
+#define __MIDIEVENT_H__
+
+#include "evdata.h"
+
+//---------------------------------------------------------
+// MidiEvent
+//---------------------------------------------------------
+
+class MidiEvent {
+ unsigned _time;
+ EvData edata;
+ unsigned char _channel, _type;
+ int _a, _b;
+
+ public:
+ MidiEvent() {}
+ MidiEvent(unsigned tm, int c, int t, int a, int b)
+ : _time(tm), _channel(c & 0xf), _type(t), _a(a), _b(b) {}
+ MidiEvent(unsigned t, int type, const unsigned char* data, int len);
+ MidiEvent(unsigned t, int tpe, EvData d) : _time(t), edata(d), _type(tpe) {}
+
+ ~MidiEvent() {}
+
+ int channel() const { return _channel; }
+ int type() const { return _type; }
+ int dataA() const { return _a; }
+ int dataB() const { return _b; }
+ unsigned time() const { return _time; }
+
+ void setChannel(int val) { _channel = val; }
+ void setType(int val) { _type = val; }
+ void setA(int val) { _a = val; }
+ void setB(int val) { _b = val; }
+ void setTime(unsigned val) { _time = val; }
+
+ const EvData& eventData() const { return edata; }
+ unsigned char* data() const { return edata.data; }
+ int len() const { return edata.dataLen; }
+ void setData(const EvData& e) { edata = e; }
+ void setData(const unsigned char* p, int len) { edata.setData(p, len); }
+ bool isNote() const { return _type == 0x90; }
+ bool isNoteOff() const { return (_type == 0x80)||(_type == 0x90 && _b == 0); }
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/mono.cpp b/muse_qt4_evolution/synti/libsynti/mono.cpp
new file mode 100644
index 00000000..14a23aca
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mono.cpp
@@ -0,0 +1,47 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: mono.cpp,v 1.2 2004/04/15 13:46:18 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mono.h"
+
+//---------------------------------------------------------
+// playNote
+//---------------------------------------------------------
+
+bool MessMono::playNote(int channel, int pitch, int velo)
+ {
+ if (velo == 0) {
+ if (pitchStack.empty())
+ return false;
+ if (pitchStack.back().pitch == pitch) {
+ pitchStack.pop_back();
+ if (pitchStack.empty()) {
+ note(channel, pitch, 0);
+ return false;
+ }
+ PitchVelo pv = pitchStack.back();
+ note(pv.channel, pv.pitch, pv.velo); // change pitch
+ return false;
+ }
+ for (std::list<PitchVelo>::iterator i = pitchStack.begin();
+ i != pitchStack.end(); ++i) {
+ if ((*i).pitch == pitch) {
+ pitchStack.erase(i);
+ return false;
+ }
+ }
+ // no noteon found
+ // emergency stop:
+ note(channel, pitch, velo);
+ return false;
+ }
+ pitchStack.push_back(PitchVelo(channel, pitch, velo));
+ note(channel, pitch, velo);
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/synti/libsynti/mono.h b/muse_qt4_evolution/synti/libsynti/mono.h
new file mode 100644
index 00000000..f2f8bdf7
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/mono.h
@@ -0,0 +1,47 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: mono.h,v 1.4 2004/04/15 13:46:18 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_MONO_H__
+#define __SYNTH_MONO_H
+
+#include <list>
+#include "mess.h"
+
+//---------------------------------------------------------
+// PitchVelo
+//---------------------------------------------------------
+
+struct PitchVelo {
+ signed char channel;
+ signed char pitch;
+ signed char velo;
+ PitchVelo(signed char a, signed char b, signed char c)
+ : channel(a), pitch(b), velo(c) {}
+ };
+
+//---------------------------------------------------------
+// MessMono
+// implements some functions for monophone
+// synthesizer
+//---------------------------------------------------------
+
+class MessMono : public Mess {
+ std::list<PitchVelo> pitchStack;
+
+ protected:
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual void note(int channel, int pitch, int velo) = 0;
+
+ public:
+ MessMono() : Mess(1) {}
+ virtual ~MessMono() {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/libsynti/poly.cpp b/muse_qt4_evolution/synti/libsynti/poly.cpp
new file mode 100644
index 00000000..e76fe966
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/poly.cpp
@@ -0,0 +1,35 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: poly.cpp,v 1.3 2004/06/01 14:25:50 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "poly.h"
+#include "muse/midictrl.h"
+
+//---------------------------------------------------------
+// playNote
+//---------------------------------------------------------
+
+bool MessPoly::playNote(int /*channel*/, int /*pitch*/, int /*velo*/)
+ {
+ return false;
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool MessPoly::setController(int /*channel*/, int num, int /*val*/)
+ {
+ switch(num) {
+ case CTRL_VOLUME:
+ case CTRL_EXPRESSION:
+ break;
+ }
+ return false;
+ }
+
diff --git a/muse_qt4_evolution/synti/libsynti/poly.h b/muse_qt4_evolution/synti/libsynti/poly.h
new file mode 100644
index 00000000..b990b198
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/poly.h
@@ -0,0 +1,39 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: poly.h,v 1.2 2004/04/15 13:46:18 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_POLY_H__
+#define __SYNTH_POLY_H
+
+#include <list>
+#include "mess.h"
+
+//---------------------------------------------------------
+// MessPoly
+// implements some functions for monophone
+// synthesizer
+//---------------------------------------------------------
+
+class MessPoly : public Mess {
+ float volume;
+ float expression;
+
+ // cached values:
+ float mainLevel;
+
+ protected:
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual bool setController(int, int, int);
+
+ public:
+ MessPoly() : Mess(1) {}
+ virtual ~MessPoly() {}
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/mus/CMakeLists.txt b/muse_qt4_evolution/synti/mus/CMakeLists.txt
new file mode 100644
index 00000000..f7d8a0ad
--- /dev/null
+++ b/muse_qt4_evolution/synti/mus/CMakeLists.txt
@@ -0,0 +1,28 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_executable ( mus mus.cpp )
+install_targets ( /bin mus )
+target_link_libraries(mus
+ synti
+ ${QT_LIBRARIES}
+ ${JACK_LIB}
+ )
+
diff --git a/muse_qt4_evolution/synti/mus/mus.cpp b/muse_qt4_evolution/synti/mus/mus.cpp
new file mode 100644
index 00000000..a112b450
--- /dev/null
+++ b/muse_qt4_evolution/synti/mus/mus.cpp
@@ -0,0 +1,276 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include "all.h"
+#include <stdio.h>
+#include <getopt.h>
+#include <dlfcn.h>
+
+#include "config.h"
+#include "libsynti/mess.h"
+#include "jackaudio.h"
+#include <jack/midiport.h>
+
+static const char* versionString = "1.0";
+static bool debug = false;
+
+static int sampleRate;
+static int segmentSize;
+
+static Mess* mess;
+static const int MAX_OUTPORTS = 8;
+static jack_port_t* inPort;
+static jack_port_t* outPorts[MAX_OUTPORTS];
+static float* outBuffer[MAX_OUTPORTS];
+
+//---------------------------------------------------------
+// processAudio
+// JACK callback
+//---------------------------------------------------------
+
+static int processAudio(jack_nframes_t nFrames, void*)
+ {
+ int nch = mess->channels();
+ for (int i = 0; i < nch; ++i) {
+ outBuffer[i] = (float*)jack_port_get_buffer(outPorts[i], nFrames);
+#ifdef JACK107
+ jack_midi_clear_buffer(outBuffer[i]);
+#endif
+#ifdef JACK103
+ jack_midi_clear_buffer(outBuffer[i], nFrames);
+#endif
+ // memset(outBuffer[i], 0, sizeof(float) * nFrames);
+ }
+ while(mess->eventsPending())
+ mess->processEvent(mess->receiveEvent());
+
+ void* midi = jack_port_get_buffer(inPort, nFrames);
+#ifdef JACK107
+ int n = jack_midi_get_event_count(midi);
+#endif
+#ifdef JACK103
+ int n = jack_midi_get_event_count(midi, nFrames);
+#endif
+ unsigned offset = 0;
+
+ for (int i = 0; i < n; ++i) {
+ jack_midi_event_t event;
+
+#ifdef JACK107
+ jack_midi_event_get(&event, midi, i);
+#endif
+#ifdef JACK103
+ jack_midi_event_get(&event, midi, i, nFrames);
+#endif
+ mess->process(outBuffer, offset, event.time - offset);
+ offset = event.time;
+ MidiEvent e;
+ e.setType(event.buffer[0] & 0xf0);
+ e.setChannel(event.buffer[0] & 0xf);
+ e.setA(event.buffer[1]);
+ e.setB(event.buffer[2]);
+ mess->processEvent(e);
+ }
+ if (offset < nFrames)
+ mess->process(outBuffer, offset, nFrames - offset);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// jackError
+//---------------------------------------------------------
+
+static void jackError(const char* s)
+ {
+ fprintf(stderr, "JACK ERROR: %s\n", s);
+ }
+
+//---------------------------------------------------------
+// noJackError
+//---------------------------------------------------------
+
+static void noJackError(const char* /* s */)
+ {
+ }
+
+//---------------------------------------------------------
+// printVersion
+//---------------------------------------------------------
+
+static void printVersion(const char* programName)
+ {
+ printf("%s: Version %s\n", programName, versionString);
+ }
+
+//---------------------------------------------------------
+// usage
+//---------------------------------------------------------
+
+static void usage(const char* programName)
+ {
+ fprintf(stderr, "%s: usage <options> MusE-synthesizer-plugin-name\n"
+ " options: -v print version\n"
+ " -d debug mode on\n",
+ programName
+ );
+ }
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int argc, char* argv[])
+ {
+ new QApplication(argc, argv);
+ int c;
+ while ((c = getopt(argc, argv, "vd")) != EOF) {
+ switch (c) {
+ case 'v':
+ printVersion(argv[0]);
+ return 0;
+ case 'd':
+ debug = true;
+ break;
+ default:
+ usage(argv[0]);
+ return -1;
+ }
+ }
+ argc -= optind;
+ if (argc != 1) {
+ usage(argv[0]);
+ return -1;
+ }
+ //
+ // load synthesizer plugin
+ //
+ QDir pluginDir(INSTPREFIX "/lib/" INSTALL_NAME "/synthi");
+ if (!pluginDir.exists()) {
+ fprintf(stderr, "plugin directory <%s> not found\n",
+ pluginDir.path().toLocal8Bit().data());
+ return -2;
+ }
+ QString pluginName(argv[1]);
+ if (!pluginName.endsWith(".so", Qt::CaseInsensitive))
+ pluginName += ".so";
+ if (!pluginDir.exists(pluginName)) {
+ fprintf(stderr, "plugin <%s> in directory <%s> not found\n",
+ pluginName.toLocal8Bit().data(),
+ pluginDir.path().toLocal8Bit().data());
+ return -3;
+ }
+ QString path = pluginDir.filePath(pluginName);
+ void* handle = dlopen(path.toLocal8Bit().data(), RTLD_LAZY);
+ if (handle == 0) {
+ fprintf(stderr, "%s: dlopen(%s) failed: %s\n",
+ argv[0], path.toLocal8Bit().data(), dlerror());
+ return -4;
+ }
+ typedef const MESS* (*MESS_Function)();
+ MESS_Function msynth = (MESS_Function)dlsym(handle, "mess_descriptor");
+ if (!msynth) {
+ fprintf(stderr,
+ "%s: Unable to find msynth_descriptor() function in plugin\n"
+ "Are you sure this is a MESS plugin file?\n%s",
+ argv[0], dlerror());
+ return -5;
+ }
+ const MESS* descr = msynth();
+ if (descr == 0) {
+ fprintf(stderr, "%s: instantiate: no MESS descr found\n",
+ argv[0]);
+ return 6;
+ }
+ //
+ // initialize JACK
+ //
+ if (debug) {
+ fprintf(stderr, "init JACK audio\n");
+ jack_set_error_function(jackError);
+ }
+ else
+ jack_set_error_function(noJackError);
+
+ jack_client_t* client;
+ int i = 0;
+ QString instanceName;
+ QString s(pluginName.left(pluginName.size()-3));
+ s += "-%1";
+ static const int MAX_INSTANCES = 100;
+ for (i = 0; i < MAX_INSTANCES; ++i) {
+ instanceName = s.arg(i);
+ const char* jackIdString = strdup(instanceName.toLocal8Bit().data());
+ client = jack_client_new(jackIdString);
+ if (client)
+ break;
+ }
+ if (i == MAX_INSTANCES) {
+ fprintf(stderr, "%s: too many instances of the synth! (>%d)\n",
+ argv[0], MAX_INSTANCES);
+ return -7;
+ }
+ jack_set_error_function(jackError);
+ if (debug)
+ fprintf(stderr, "init Jack Audio: register device\n");
+ // jackAudio = new JackAudio(client, jackIdString);
+ if (debug)
+ fprintf(stderr, "init Jack Audio: register client\n");
+
+ jack_set_process_callback(client, processAudio, 0);
+// jack_set_sync_callback(_client, processSync, 0);
+// jack_on_shutdown(_client, processShutdown, 0);
+// jack_set_buffer_size_callback(_client, bufsize_callback, 0);
+// jack_set_sample_rate_callback(_client, srate_callback, 0);
+// jack_set_port_registration_callback(_client, registration_callback, 0);
+// jack_set_graph_order_callback(_client, graph_callback, 0);
+// jack_set_freewheel_callback (_client, freewheel_callback, 0);
+// jack_set_timebase_callback(_client, 0, timebase_callback, 0);
+
+ sampleRate = jack_get_sample_rate(client);
+ segmentSize = jack_get_buffer_size(client);
+ //
+ // instantiate Synthesizer
+ //
+ mess = descr->instantiate(sampleRate, instanceName.toLocal8Bit().data());
+ if (mess == 0) {
+ fprintf(stderr, "%s: instantiate failed\n",
+ argv[0]);
+ }
+
+ int channels = mess->channels();
+ if (channels > MAX_OUTPORTS) {
+ channels = MAX_OUTPORTS;
+ fprintf(stderr, "%s: too many outports %d > %d\n",
+ argv[0], channels, MAX_OUTPORTS);
+ }
+ for (int i = 0; i < channels; ++i) {
+ char portName[64];
+ snprintf(portName, 64, "audioOut-%d", i);
+ outPorts[i] = jack_port_register(client, portName,
+ JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
+ }
+ inPort = jack_port_register(client, "midiIn",
+ JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
+ if (mess->hasGui())
+ mess->showGui(true);
+ jack_activate(client);
+ qApp->exec();
+ }
+
diff --git a/muse_qt4_evolution/synti/organ/CMakeLists.txt b/muse_qt4_evolution/synti/organ/CMakeLists.txt
new file mode 100644
index 00000000..01540c88
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/CMakeLists.txt
@@ -0,0 +1,50 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( organ_mocs organgui.h )
+QT4_WRAP_UI ( organ_uis organgui.ui )
+
+add_library ( organ SHARED
+ organ.cpp
+ organgui.cpp
+ reverb.cpp
+ routing.cpp
+ organgui.h
+ ${organ_mocs}
+ ${organ_uis}
+ )
+
+# - tell cmake to name target organ.so instead of
+# liborgan.so
+# - use precompiled header files
+#
+set_target_properties ( organ
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-O2 -include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+target_link_libraries(organ
+ synti
+ awl
+ ${QT_LIBRARIES}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ organ )
+
diff --git a/muse_qt4_evolution/synti/organ/organ.cpp b/muse_qt4_evolution/synti/organ/organ.cpp
new file mode 100644
index 00000000..7c83a463
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/organ.cpp
@@ -0,0 +1,621 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organ.cpp,v 1.23 2005/12/16 15:36:51 wschweer Exp $
+//
+// Parts of this file taken from:
+// Organ - Additive Organ Synthesizer Voice
+// Copyright (C) 1999, 2000 David A. Bartold
+// Some information was gathered form the "beatrix" organ
+// from Fredrik Kilander
+//
+// (C) Copyright 2001-2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "muse/midi.h"
+#include "libsynti/midievent.h"
+
+#include "organ.h"
+#include "organgui.h"
+#include "reverb.h"
+
+float* Organ::attackEnv;
+float* Organ::releaseEnv;
+int Organ::envSize;
+float* Organ::waveTable;
+int Organ::useCount;
+double Organ::cb2amp_tab[MAX_ATTENUATION];
+float Organ::keyCompression[NO_VOICES];
+
+//---------------------------------------------------------
+// dBToGain
+//---------------------------------------------------------
+
+static double dBToGain(double dB)
+ {
+ return pow(10.0, (dB / 20.0));
+ }
+
+//---------------------------------------------------------
+// cb2amp
+// convert centibel to amplification (0 - 96dB)
+//---------------------------------------------------------
+
+double Organ::cb2amp(int cb)
+ {
+ if (cb < 0)
+ return 1.0;
+ if (cb >= MAX_ATTENUATION)
+ return 0.0;
+ return cb2amp_tab[cb];
+ }
+
+static const unsigned SHIFT = 16;
+static const double RESO = 256.0 * 256.0 * 256.0 * 256.0;
+static const unsigned resolution = 256 * 256; // 16 Bit
+
+//---------------------------------------------------------
+// Organ
+//---------------------------------------------------------
+
+Organ::Organ(int sr)
+ : Mess2(2)
+ {
+ setSampleRate(sr);
+ gui = 0;
+ reverb = new Reverb();
+
+ ++useCount;
+ if (useCount > 1)
+ return;
+
+ // centibels to amplitude conversion
+ for (int i = 0; i < MAX_ATTENUATION; i++)
+ cb2amp_tab[i] = pow(10.0, double(i) / -200.0);
+
+ // Initialize sine table.
+ waveTable = new float[resolution];
+ for (unsigned i = 0; i < resolution; i++)
+ waveTable[i] = sin (double(i) * 2.0 * M_PI / double(resolution));
+
+ // Initialize envelope tables
+
+ envSize = sr * 4 / 1000; // 4 msec
+ attackEnv = new float[envSize];
+ releaseEnv = new float[envSize];
+
+ for (int i = 0; i < envSize; ++i) {
+ attackEnv[i] = float(i) / float(envSize);
+ releaseEnv[i] = float(i) / float(envSize);
+ }
+
+ // Initialize key compression table
+
+ keyCompression[ 0] = 1.0;
+ keyCompression[ 1] = 1.0;
+ keyCompression[ 2] = dBToGain(-1.1598);
+ keyCompression[ 3] = dBToGain(-2.0291);
+ keyCompression[ 4] = dBToGain(-2.4987);
+ keyCompression[ 5] = dBToGain(-2.9952);
+ keyCompression[ 6] = dBToGain(-3.5218);
+ keyCompression[ 7] = dBToGain(-4.0823);
+ keyCompression[ 8] = dBToGain(-4.6815);
+ keyCompression[ 9] = dBToGain(-4.9975);
+ keyCompression[10] = dBToGain(-4.9998);
+
+ /* Linear interpolation from u to v. */
+
+ static const float u = -5.0;
+ static const float v = -9.0;
+ static const float m = 1.0 / (NO_VOICES - 12);
+ for (int i = 11; i < NO_VOICES; i++) {
+ keyCompression[i] = dBToGain(u + ((v - u) * float(i - 11) * m));
+ }
+
+ // Initialize controller table
+
+ addController("drawbar16", DRAWBAR0, 0, 8, 8);
+ addController("drawbar513", DRAWBAR1, 0, 8, 8);
+ addController("drawbar8", DRAWBAR2, 0, 8, 8);
+ addController("drawbar4", DRAWBAR3, 0, 8, 0);
+ addController("drawbar223", DRAWBAR4, 0, 8, 0);
+ addController("drawbar2", DRAWBAR5, 0, 8, 0);
+ addController("drawbar135", DRAWBAR6, 0, 8, 0);
+ addController("drawbar113", DRAWBAR7, 0, 8, 0);
+ addController("drawbar1", DRAWBAR8, 0, 8, 0);
+ addController("reverbOn", REVERB_ON, 0, 1, 0);
+ addController("reverbRoomSize", REVERB_ROOM_SIZE, 0, 127, 60);
+ addController("reverbMix", REVERB_MIX, 0, 127, 100);
+ addController("vibratoOn", VIBRATO_ON, 0, 1, 1);
+ addController("vibratoFreq", VIBRATO_FREQ, 0, 127, 100);
+ addController("vibratoDepth", VIBRATO_DEPTH, 0, 127, 50);
+ addController("volume", CTRL_VOLUME, 0, 127, 100);
+ addController("percOn", PERC_ON, 0, 1, 1);
+ addController("percGain", PERC_GAIN, 0, 127, 60);
+ addController("percDecay", PERC_DECAY, 0, 127, 60);
+ addController("percHarmony", PERC_HARMONY, 0, 8, 3);
+ addController("rotaryOn", ROTARY_ON, 0, 1, 0);
+ addController("rot1Freq", ROT1_FREQ, 0, 127, 100);
+ addController("rot1Depth", ROT1_DEPTH, 0, 127, 50);
+ addController("rot2Freq", ROT2_FREQ, 0, 127, 100);
+ addController("rot2Depth", ROT2_DEPTH, 0, 127, 50);
+ }
+
+//---------------------------------------------------------
+// ~Organ
+//---------------------------------------------------------
+
+Organ::~Organ()
+ {
+ if (gui)
+ delete gui;
+ delete reverb;
+
+ --useCount;
+ if (useCount == 0) {
+ delete[] waveTable;
+ delete[] attackEnv;
+ delete[] releaseEnv;
+ }
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool Organ::init(const char* name)
+ {
+ gui = new OrganGui;
+ gui->hide();
+ gui->setWindowTitle(QString(name));
+
+ //
+ // Initialize controller
+ //
+ int idx = 0;
+ foreach(SynthCtrl* c, ctrl) {
+ setController(c->ctrl, c->init); // init synti
+ gui->setParamIdx(idx, c->init); // init gui
+ ++idx;
+ }
+
+ // see: http://www.dairiki.org/HammondWiki/GearRatio
+ static const int gearA[12] = { 85, 71,67,35,69,12,37,49,48,11,67,54 };
+ static const int gearB[12] = { 104,82,73,36,67,11,32,40,37, 8,46,35 };
+ static const int teeth[] = { 2, 4, 8, 16, 32, 64, 128, 192 };
+
+ vibratoAccu = 0;
+ rot1AccuL = 0;
+ rot1AccuR = 0x80000000;
+ rot2AccuL = 0;
+ rot2AccuR = 0x80000000;
+
+ for (int i = 0; i < NO_WHEELS; ++i) {
+ int note = i % 12;
+ int octave = i / 12;
+ if (octave == 7)
+ note += 5;
+ // in 60Hz organs, the motor turns at 1200 RPM (20 revolutions /sec)
+ double freq = 20.0 * teeth[octave] * gearA[note] / gearB[note];
+ wheels[i].frameStep = lrint(freq * RESO / double(sampleRate()));
+ wheels[i].accu = 0;
+ wheels[i].refCount = 0;
+ wheels[i].active = false;
+ for (int k = 0; k < NO_BUSES; ++k)
+ wheels[i].envCount[k] = 0;
+ }
+ keyCompressionValue = 1.0;
+ keyCompressionCount = 0;
+ percGain = 0.0;
+ return false;
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Organ::process(float** ports, int offset, int sampleCount)
+ {
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize()) {
+ MidiEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER) {
+ setController(ev.dataA(), ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("Organ::process(): unknown event\n");
+ }
+
+ float* buffer1 = ports[0] + offset;
+ float* buffer2 = ports[1] + offset;
+ memset(buffer1, 0, sizeof(float) * sampleCount);
+ memset(buffer2, 0, sizeof(float) * sampleCount);
+
+ float vibrato[sampleCount];
+
+ if (vibratoOn) {
+ //
+ // compute partial vibrato sinus
+ //
+ for (int i = 0; i < sampleCount; ++i) {
+ vibratoAccu += vibratoStep;
+ vibrato[i] = waveTable[vibratoAccu >> SHIFT] * vibratoDepth;
+ }
+ }
+
+ foreach (Wheel* w, activeWheels) {
+ for (int i = 0; i < sampleCount; ++i) {
+
+ unsigned step = w->frameStep;
+ if (vibratoOn)
+ step += unsigned(step * vibrato[i]);
+
+ w->accu += step;
+
+ int idx = w->accu >> SHIFT;
+ float val1 = waveTable[idx];
+ idx = (idx + 1) & 0xffff;
+ float val2 = waveTable[idx];
+ float val = val1 + (val2 - val1) * double(w->accu & 0xffff)/double(0x10000);
+
+ for (int k = 0; k < NO_BUSES; ++k) {
+ int* envCnt = &(w->envCount[k]);
+ float v;
+ if (*envCnt > 0) {
+ (*envCnt)--;
+ float gain = w->gain[k] - w->deltaGain[k] * w->env[k][*envCnt];
+ v = val * gain;
+ if ((*envCnt == 0) && (w->refCount == 0)) {
+ int idx = activeWheels.indexOf(w);
+ if (idx != -1) {
+ activeWheels.removeAt(idx);
+ w->active = false;
+ }
+ }
+ }
+ else {
+ v = val * w->gain[k];
+ }
+ buffer1[i] += v * drawBarGain[k];
+ if (k == percussionBus)
+ buffer2[i] += v;
+ }
+ }
+ }
+ if (percussionOn) {
+ for (int i = 0; i < sampleCount; ++i) {
+ buffer1[i] = buffer1[i] * volume * keyCompressionValue
+ + buffer2[i] * percGain;
+ percGain *= percussionEnvDecay;
+ if (keyCompressionCount) {
+ keyCompressionValue += keyCompressionDelta;
+ --keyCompressionCount;
+ }
+ }
+ }
+ else {
+ for (int i = 0; i < sampleCount; ++i) {
+ buffer1[i] *= volume * keyCompressionValue;
+ if (keyCompressionCount) {
+ keyCompressionValue += keyCompressionDelta;
+ --keyCompressionCount;
+ }
+ }
+ }
+ memcpy(buffer2, buffer1, sizeof(float) * sampleCount);
+ if (reverbOn)
+ reverb->process(buffer1, buffer2, sampleCount);
+ }
+
+//---------------------------------------------------------
+// changeKeyCompression
+//---------------------------------------------------------
+
+void Organ::changeKeyCompression()
+ {
+ float kc = keyCompression[pressedKeys.size()];
+ keyCompressionCount = int(sampleRate() * .005); // 5 msec envelope
+ if (keyCompressionCount < 2)
+ keyCompressionCount = 2;
+ keyCompressionDelta = (kc - keyCompressionValue) / keyCompressionCount;
+ }
+
+//---------------------------------------------------------
+// playNote
+//---------------------------------------------------------
+
+bool Organ::playNote(int /*channel*/, int pitch, int velo)
+ {
+ if (pitch < 36 || pitch > 97)
+ return false;
+ if (velo == 0) {
+ int idx = pressedKeys.indexOf(pitch);
+ if (idx == -1) {
+ printf("Organ: noteoff %d not found\n", pitch);
+ return false;
+ }
+ pressedKeys.removeAt(idx);
+ }
+ else {
+ if (pressedKeys.isEmpty())
+ percGain = percGainInit;
+ pressedKeys.append(pitch);
+ }
+ changeKeyCompression();
+
+ for (int k = 0; k < NO_ELEMENTS; ++k) {
+ const Elem* e = &routing[pitch - 36][k];
+ if (e->bus == -1)
+ break;
+ Wheel* w = &wheels[int(e->wheel)];
+ int bus = e->bus;
+ float level = e->level;
+
+ if (velo) {
+ if (!w->active) {
+ // activate wheel
+ for (int k = 0; k < NO_BUSES; ++k) {
+ w->gain[k] = 0.0;
+ w->envCount[k] = 0;
+ }
+ activeWheels.append(w);
+ w->active = true;
+ }
+ float deltaGain = level;
+
+ if (w->envCount[bus]) {
+ deltaGain += w->deltaGain[bus] * w->env[bus][w->envCount[bus]];
+ }
+ w->env[bus] = attackEnv;
+ w->deltaGain[bus] = deltaGain;
+ w->gain[bus] += level;
+ w->refCount++;
+ }
+ else {
+ float deltaGain = -level;
+
+ if (w->envCount[bus]) {
+ deltaGain += w->deltaGain[bus] * w->env[bus][w->envCount[bus]];
+ }
+ w->env[bus] = releaseEnv;
+ w->deltaGain[bus] = deltaGain;
+ w->gain[bus] -= level;
+ if (w->refCount)
+ w->refCount--;
+ }
+ w->envCount[bus] = envSize;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// percussionChanged
+//---------------------------------------------------------
+
+void Organ::percussionChanged()
+ {
+ percussionEnvDecay = exp(log(0.001/percGainInit) / (percDecay * double(sampleRate())));
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+void Organ::setController(int ctrlId, int data)
+ {
+ int ctrlIdx = controllerIdx(ctrlId);
+ if (ctrlIdx != -1)
+ ctrl[ctrlIdx]->val = data;
+ switch (ctrlId) {
+ case DRAWBAR0 ... DRAWBAR8:
+ {
+ int db = ctrlId - DRAWBAR0;
+ drawBarGain[db] = float(data) / 8.0;
+ }
+ break;
+ case REVERB_ROOM_SIZE:
+ reverb->setRoomSize(float(data) / 127.0);
+ break;
+
+ case REVERB_MIX:
+ reverb->setMix(float(data) / 127.0);
+ break;
+
+ case REVERB_ON:
+ reverbOn = data != 0;
+ break;
+
+ case VIBRATO_ON:
+ vibratoOn = data != 0;
+ break;
+
+ case VIBRATO_FREQ:
+ vibratoFreq = float(data) * 6.0 / 127.0 + 4;
+ vibratoStep = lrint(vibratoFreq * RESO / double(sampleRate()));
+ break;
+
+ case VIBRATO_DEPTH:
+ vibratoDepth = float(data) / 127.0 * .01;
+ break;
+
+ case PERC_ON:
+ percussionOn = data != 0;
+ break;
+
+ case PERC_GAIN: // 0.01 - 0.4
+ percGainInit = float(data) * .39 / 127.0 + 0.01;
+ percussionChanged();
+ break;
+
+ case PERC_DECAY: // 0.5 - 4.5 sec
+ percDecay = float(data) * 4.0 / 127.0 + 0.5;
+ percussionChanged();
+ break;
+
+ case PERC_HARMONY:
+ percussionBus = data;
+ break;
+
+ case ROTARY_ON:
+ rotaryOn = data != 0;
+ break;
+
+ case ROT1_FREQ:
+ rot1Freq = float(data) * 6.0 / 127.0 + 0.67;
+ rot1Step = lrint(rot1Freq * RESO / double(sampleRate()));
+ break;
+
+ case ROT1_DEPTH:
+ rot1Depth = float(data) / 127.0 * 1.0;
+ break;
+
+ case ROT2_FREQ:
+ rot1Freq = float(data) * 5.0 / 127.0 + 0.5;
+ rot1Step = lrint(rot1Freq * RESO / double(sampleRate()));
+ break;
+
+ case ROT2_DEPTH:
+ rot2Depth = float(data) / 127.0 * 1.0;
+ break;
+
+ case CTRL_VOLUME:
+ data &= 0x7f;
+ volume = data == 0 ? 0.0 : cb2amp(int(200 * log10((127.0 * 127)/(data*data))));
+ volume *= .04;
+ break;
+
+ case CTRL_ALL_SOUNDS_OFF:
+ foreach(Wheel* w, activeWheels) {
+ for (int k = 0; k < NO_ELEMENTS; ++k) {
+ w->gain[k] = 0.0;
+ w->envCount[k] = 0;
+ }
+ w->refCount = 0;
+ }
+ pressedKeys.clear();
+ break;
+
+ case CTRL_RESET_ALL_CTRL:
+// for (int i = 0; i < NUM_CONTROLLER; ++i)
+// setController(0, synthCtrl[i].num, synthCtrl[i].val);
+ break;
+ default:
+ fprintf(stderr, "Organ:set unknown Ctrl 0x%x to 0x%x\n", ctrlId, data);
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool Organ::setController(int channel, int ctrlId, int data)
+ {
+ MidiEvent ev(0, channel, ME_CONTROLLER, ctrlId, data);
+ gui->writeEvent(ev);
+ setController(ctrlId, data);
+ return false;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool Organ::sysex(int n, const unsigned char* data)
+ {
+ int nn = ctrl.size() * sizeof(int);
+ if (nn != n) {
+ printf("unknown sysex %d %02x %02x\n", n, data[0], data[1]);
+ return false;
+ }
+ const int* s = (const int*) data;
+ for (int i = 0; i < ctrl.size(); ++i) {
+ setController(0, ctrl[i]->ctrl, *s);
+ setController(ctrl[i]->ctrl, *s);
+ s++;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// MESS
+//---------------------------------------------------------
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool Organ::guiVisible() const
+ {
+ return gui->isVisible();
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void Organ::showGui(bool val)
+ {
+ gui->setShown(val);
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void Organ::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void Organ::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// instantiate
+// construct a new synthesizer instance
+//---------------------------------------------------------
+
+static Mess* instantiate(int sr, const char* name)
+ {
+ Organ* synth = new Organ(sr);
+ if (synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+
+//---------------------------------------------------------
+// msynth_descriptor
+// Return a descriptor of the requested plugin type.
+//---------------------------------------------------------
+
+extern "C" {
+ static MESS descriptor = {
+ "Organ",
+ "Organ; based on David A. Bartold's LADSPA plugin",
+ "0.1", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/synti/organ/organ.h b/muse_qt4_evolution/synti/organ/organ.h
new file mode 100644
index 00000000..971e6cc9
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/organ.h
@@ -0,0 +1,151 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organ.h,v 1.5 2004/04/15 13:46:18 wschweer Exp $
+//
+// Parts of this file taken from:
+// Organ - Additive Organ Synthesizer Voice
+// Copyright (c) 1999, 2000 David A. Bartold
+//
+// (C) Copyright 2001-2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ORGAN_H__
+#define __ORGAN_H__
+
+#include "muse/midictrl.h"
+#include "libsynti/mess2.h"
+
+static const int NO_VOICES = 128; // max polyphony
+static const int NO_KEYS = 97 - 36;
+class OrganGui;
+class Reverb;
+
+static const int MAX_ATTENUATION = 960;
+static const int NO_BUSES = 9;
+static const int NO_WHEELS = 91;
+static const int NO_ELEMENTS = 194;
+
+enum {
+ DRAWBAR0 = CTRL_RPN14_OFFSET, DRAWBAR1, DRAWBAR2,
+ DRAWBAR3, DRAWBAR4, DRAWBAR5, DRAWBAR6, DRAWBAR7, DRAWBAR8,
+ REVERB_ON, REVERB_ROOM_SIZE, REVERB_MIX,
+ VIBRATO_ON, VIBRATO_FREQ, VIBRATO_DEPTH,
+ PERC_ON, PERC_GAIN, PERC_DECAY, PERC_HARMONY,
+ ROTARY_ON, ROT1_FREQ, ROT1_DEPTH, ROT2_FREQ, ROT2_DEPTH
+ };
+
+//---------------------------------------------------------
+// Wheel
+//---------------------------------------------------------
+
+struct Wheel {
+ unsigned frameStep;
+ unsigned accu;
+
+ int refCount;
+ bool active;
+ float gain[NO_BUSES];
+
+ // envelopes:
+ float* env[NO_BUSES];
+ int envCount[NO_BUSES];
+ float deltaGain[NO_BUSES];
+ };
+
+//---------------------------------------------------------
+// Elem
+//---------------------------------------------------------
+
+struct Elem {
+ char wheel;
+ char bus;
+ float level;
+
+ Elem() { bus = -1; }
+ Elem(char w, char b, float l) : wheel(w), bus(b), level(l) {}
+ };
+
+//---------------------------------------------------------
+// Organ
+//---------------------------------------------------------
+
+class Organ : public Mess2 {
+ static int useCount;
+
+ static float* waveTable;
+ static double cb2amp_tab[MAX_ATTENUATION];
+ static double cb2amp(int cb);
+ static Elem routing[NO_KEYS][NO_ELEMENTS];
+ static float* attackEnv;
+ static float* releaseEnv;
+ static int envSize;
+ static float keyCompression[NO_VOICES];
+
+ OrganGui* gui;
+ Reverb* reverb;
+ bool reverbOn;
+ double volume;
+
+ unsigned vibratoStep;
+ unsigned vibratoAccu;
+
+ bool vibratoOn;
+ double vibratoFreq;
+ double vibratoDepth;
+
+ // key compression
+ float keyCompressionDelta;
+ float keyCompressionValue;
+ int keyCompressionCount;
+
+ // percussion
+ int percussionBus; // usually drawbar 3 or drawbar 4
+ bool percussionOn;
+ double percDecay;
+ double percussionEnvDecay;
+ double percGain;
+ double percGainInit;
+
+ // rotary speaker emulation
+ bool rotaryOn;
+ double rot1Freq; // horn: 0,67 - 6,7
+ double rot1Depth;
+ double rot2Freq; // drum: 0,5 - 5,5
+ double rot2Depth;
+ unsigned rot1Step;
+ unsigned rot1AccuL;
+ unsigned rot1AccuR;
+ unsigned rot2Step;
+ unsigned rot2AccuL;
+ unsigned rot2AccuR;
+
+ float drawBarGain[NO_BUSES];
+ Wheel wheels[NO_WHEELS];
+ QList<char> pressedKeys;
+ QList<Wheel*> activeWheels;
+
+ void setController(int ctrl, int val);
+ void changeKeyCompression();
+ void percussionChanged();
+
+ virtual void process(float**, int, int);
+ virtual bool playNote(int channel, int pitch, int velo);
+ virtual bool setController(int channel, int ctrl, int val);
+ virtual bool sysex(int, const unsigned char*);
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool);
+ virtual bool hasGui() const { return true; }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int x, int y, int w, int h);
+
+ public:
+ friend class OrganGui;
+ Organ(int sampleRate);
+ ~Organ();
+ bool init(const char* name);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/organ/organgui.cpp b/muse_qt4_evolution/synti/organ/organgui.cpp
new file mode 100644
index 00000000..c00d23fb
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/organgui.cpp
@@ -0,0 +1,184 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organgui.cpp,v 1.21 2005/12/16 15:36:51 wschweer Exp $
+//
+// This is a simple GUI implemented with QT for
+// organ software synthesizer.
+//
+// (C) Copyright 2001-2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "organgui.h"
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+#include "awl/knob.h"
+
+//---------------------------------------------------------
+// OrganGui
+//---------------------------------------------------------
+
+OrganGui::OrganGui()
+ : QWidget(0),
+ MessGui()
+ {
+ setupUi(this);
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+
+ map = new QSignalMapper(this);
+ QList<QWidget*> wl = findChildren<QWidget*>();
+ foreach(QWidget* w, wl) {
+ int idx = Mess2::controllerIdx(w->objectName().toAscii().data());
+ if (idx == -1)
+ continue;
+ w->setProperty("ctrlIdx", idx);
+ map->setMapping(w, w);
+ const char* cname = w->metaObject()->className();
+ if (strcmp(cname, "QSlider") == 0) {
+ QSlider* slider = (QSlider*)w;
+ w->setProperty("ctrlType", 0);
+ connect(slider, SIGNAL(valueChanged(int)), map, SLOT(map()));
+ }
+ else if (strcmp(cname, "QCheckBox") == 0) {
+ w->setProperty("ctrlType", 1);
+ connect(w, SIGNAL(toggled(bool)), map, SLOT(map()));
+ }
+ else if (strcmp(cname, "QGroupBox") == 0) {
+ w->setProperty("ctrlType", 2);
+ connect(w, SIGNAL(toggled(bool)), map, SLOT(map()));
+ }
+ else if (strcmp(cname, "Awl::Knob") == 0) {
+ w->setProperty("ctrlType", 3);
+ connect(w, SIGNAL(valueChanged(double,int)), map, SLOT(map()));
+ }
+ else if (strcmp(cname, "QPushButton") == 0) {
+ w->setProperty("ctrlType", 4);
+ connect(w, SIGNAL(toggled(bool)), map, SLOT(map()));
+ }
+ else if (strcmp(cname, "Awl::Drawbar") == 0) {
+ Awl::Drawbar* drawbar = (Awl::Drawbar*)w;
+ w->setProperty("ctrlType", 5);
+ connect(drawbar, SIGNAL(valueChanged(double,int)), map, SLOT(map()));
+ }
+ else
+ printf("Gui Element <%s> not supported\n", cname);
+ }
+ ignoreControllerChange = false;
+ connect(map, SIGNAL(mapped(QWidget*)), this, SLOT(ctrlChanged(QWidget*)));
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void OrganGui::ctrlChanged(QWidget* w)
+ {
+ if (ignoreControllerChange)
+ return;
+ int ctrlIdx = w->property("ctrlIdx").toInt();
+ int ctrlType = w->property("ctrlType").toInt();
+ int value = 0;
+
+ switch(ctrlType) {
+ case 0: // QSlider
+ value = ((QSlider*)w)->value();
+ break;
+ case 1:
+ value = ((QCheckBox*)w)->isChecked();
+ break;
+ case 2:
+ value = ((QGroupBox*)w)->isChecked();
+ break;
+ case 3:
+ value = lrint(((Awl::Knob*)w)->value());
+ break;
+ case 4:
+ value = ((QPushButton*)w)->isChecked();
+ break;
+ case 5:
+ value = lrint(((Awl::Drawbar*)w)->value());
+ break;
+ default:
+ printf("OrganGui::ctrlChanged: illegal ctrlType %d\n", ctrlType);
+ break;
+ }
+ int id = Mess2::controllerId(ctrlIdx);
+ sendController(0, id, value); // to synth
+ }
+
+//---------------------------------------------------------
+// setParam
+//---------------------------------------------------------
+
+void OrganGui::setParam(int ctrlId, int val)
+ {
+ int ctrlIdx = Mess2::controllerIdx(ctrlId);
+ if (ctrlIdx == -1)
+ return;
+ setParamIdx(ctrlIdx, val);
+ }
+
+//---------------------------------------------------------
+// setParamIdx
+// set controller value in gui
+//---------------------------------------------------------
+
+void OrganGui::setParamIdx(int ctrlIdx, int val)
+ {
+ const char* name = Organ::controllerName(ctrlIdx);
+ if (name == 0)
+ return;
+ ignoreControllerChange = true;
+ QList<QWidget*> wl = findChildren<QWidget*>(name);
+
+ foreach(QWidget* w, wl) {
+ int ctrlType = w->property("ctrlType").toInt();
+ switch(ctrlType) {
+ case 0:
+ ((QSlider*)w)->setValue(val);
+ break;
+ case 1:
+ ((QCheckBox*)w)->setChecked(val);
+ break;
+ case 2:
+ ((QGroupBox*)w)->setChecked(val);
+ break;
+ case 3:
+ ((Awl::Knob*)w)->setValue(double(val));
+ break;
+ case 4:
+ ((QPushButton*)w)->setChecked(val);
+ break;
+ case 5:
+ ((Awl::Drawbar*)w)->setValue(double(val));
+ break;
+ default:
+ printf("OrganGui::setParamIdx: illegal ctrlType %d\n", ctrlType);
+ break;
+ }
+ }
+ ignoreControllerChange = false;
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void OrganGui::processEvent(const MidiEvent& ev)
+ {
+ if (ev.type() == ME_CONTROLLER)
+ setParam(ev.dataA(), ev.dataB());
+ else
+ printf("OrganGui::illegal event type received\n");
+ }
+
+//---------------------------------------------------------
+// readMessage
+//---------------------------------------------------------
+
+void OrganGui::readMessage(int)
+ {
+ MessGui::readMessage();
+ }
+
diff --git a/muse_qt4_evolution/synti/organ/organgui.h b/muse_qt4_evolution/synti/organ/organgui.h
new file mode 100644
index 00000000..c691b1a1
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/organgui.h
@@ -0,0 +1,48 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organgui.h,v 1.8 2005/10/04 21:37:44 lunar_shuttle Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ORGANGUI_H__
+#define __ORGANGUI_H__
+
+#include "ui_organgui.h"
+#include "organ.h"
+#include "libsynti/gui.h"
+#include "libsynti/midievent.h"
+
+class QSignalMapper;
+
+#define NUM_GUI_CONTROLLER 18
+
+//---------------------------------------------------------
+// OrganGui
+//---------------------------------------------------------
+
+class OrganGui : public QWidget, public Ui::OrganGuiBase, public MessGui {
+ Q_OBJECT
+
+ bool ignoreControllerChange;
+
+ QSignalMapper* map;
+ virtual void processEvent(const MidiEvent&);
+
+ protected:
+ void setParam(int, int);
+ void setParamIdx(int ctrlIdx, int val);
+
+ private slots:
+ void ctrlChanged(QWidget*);
+ void readMessage(int);
+
+ public:
+ friend class Organ;
+ friend class Mess2;
+ OrganGui();
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/organ/organgui.ui b/muse_qt4_evolution/synti/organ/organgui.ui
new file mode 100644
index 00000000..297042c7
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/organgui.ui
@@ -0,0 +1,791 @@
+<ui version="4.0" >
+ <class>OrganGuiBase</class>
+ <widget class="QWidget" name="OrganGuiBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>611</width>
+ <height>342</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>MusE: Organ</string>
+ </property>
+ <property name="styleSheet" >
+ <string>QWidget {
+background-color: rgb(93,106,121);
+color: rgb(240, 240, 240);
+}
+QLabel#name {
+font-size: 64px;
+font-weight: bold;
+}
+Awl--Drawbar {
+font-size: 10px;
+}
+Awl--Knob {
+font-size: 10px;
+}
+
+QGroupBox::indicator:checked {
+background-color: yellow;
+}
+QGroupBox::indicator:unchecked {
+background-color: gray;
+}
+QCheckBox::indicator:checked:disabled {
+background-color: darkGray;
+}
+QCheckBox::indicator:unchecked:disabled {
+background-color: gray;
+}
+QCheckBox::indicator:checked:enabled {
+background-color: yellow;
+}
+QCheckBox::indicator:unchecked:enabled {
+background-color: gray;
+}
+</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QLabel" name="name" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font" >
+ <font>
+ <pointsize>-1</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text" >
+ <string>O-1</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="percOn" >
+ <property name="title" >
+ <string>Percussion</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="percGain" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::Knob" name="percDecay" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="Awl::Knob" name="percHarmony" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>1.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>1.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_9" >
+ <property name="text" >
+ <string>Gain</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_10" >
+ <property name="text" >
+ <string>Decay</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_11" >
+ <property name="text" >
+ <string>Harmony</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="reverbOn" >
+ <property name="title" >
+ <string>Reverb</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="reverbRoomSize" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Room</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Mix</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::Knob" name="reverbMix" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="vibratoOn" >
+ <property name="title" >
+ <string>Vibrato</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="vibratoFreq" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::Knob" name="vibratoDepth" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Freq</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_4" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Depth</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QGroupBox" name="GroupBox1" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>UPPER MANUAL</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar16" >
+ <property name="value" >
+ <double>4.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>60</red>
+ <green>60</green>
+ <blue>60</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar513" >
+ <property name="value" >
+ <double>5.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>60</red>
+ <green>60</green>
+ <blue>60</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar8" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>150</height>
+ </size>
+ </property>
+ <property name="value" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>240</red>
+ <green>240</green>
+ <blue>240</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar4" >
+ <property name="value" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>240</red>
+ <green>240</green>
+ <blue>240</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar223" >
+ <property name="value" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>128</red>
+ <green>102</green>
+ <blue>86</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar2" >
+ <property name="value" >
+ <double>0.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>240</red>
+ <green>240</green>
+ <blue>240</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar135" >
+ <property name="value" >
+ <double>5.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>128</red>
+ <green>102</green>
+ <blue>86</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar113" >
+ <property name="value" >
+ <double>2.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>128</red>
+ <green>102</green>
+ <blue>86</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Awl::Drawbar" name="drawbar1" >
+ <property name="value" >
+ <double>0.000000000000000</double>
+ </property>
+ <property name="sliderColor" >
+ <color>
+ <red>240</red>
+ <green>240</green>
+ <blue>240</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="rotaryOn" >
+ <property name="title" >
+ <string>RotarySpeaker (test)</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="Awl::Knob" name="rot1Freq" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="Awl::Knob" name="rot1Depth" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>f1</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QLabel" name="label_6" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>depth1</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="Awl::Knob" name="rot2Freq" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="Awl::Knob" name="rot2Depth" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="scaleWidth" >
+ <number>5</number>
+ </property>
+ <property name="scaleValueColor" >
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="maxValue" >
+ <double>127.000000000000000</double>
+ </property>
+ <property name="lineStep" >
+ <double>8.000000000000000</double>
+ </property>
+ <property name="pageStep" >
+ <double>20.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>f2</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QLabel" name="label_8" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>depth2</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <customwidgets>
+ <customwidget>
+ <class>Awl::Knob</class>
+ <extends>QWidget</extends>
+ <header>awl/knob.h</header>
+ </customwidget>
+ <customwidget>
+ <class>Awl::Drawbar</class>
+ <extends>Awl::Slider</extends>
+ <header>awl/drawbar.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/organ/reverb.cpp b/muse_qt4_evolution/synti/organ/reverb.cpp
new file mode 100644
index 00000000..72775bc5
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/reverb.cpp
@@ -0,0 +1,163 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// based on "freeverb" written by Jezar at Dreampoint,
+// June 2000
+//
+// (C) Copyright 2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "reverb.h"
+
+//---------------------------------------------------------
+// Reverb
+//---------------------------------------------------------
+
+Reverb::Reverb()
+ {
+ // Tie the components to their buffers
+ combL[0].setbuffer(bufcombL1,combtuningL1);
+ combR[0].setbuffer(bufcombR1,combtuningR1);
+ combL[1].setbuffer(bufcombL2,combtuningL2);
+ combR[1].setbuffer(bufcombR2,combtuningR2);
+ combL[2].setbuffer(bufcombL3,combtuningL3);
+ combR[2].setbuffer(bufcombR3,combtuningR3);
+ combL[3].setbuffer(bufcombL4,combtuningL4);
+ combR[3].setbuffer(bufcombR4,combtuningR4);
+ combL[4].setbuffer(bufcombL5,combtuningL5);
+ combR[4].setbuffer(bufcombR5,combtuningR5);
+ combL[5].setbuffer(bufcombL6,combtuningL6);
+ combR[5].setbuffer(bufcombR6,combtuningR6);
+ combL[6].setbuffer(bufcombL7,combtuningL7);
+ combR[6].setbuffer(bufcombR7,combtuningR7);
+ combL[7].setbuffer(bufcombL8,combtuningL8);
+ combR[7].setbuffer(bufcombR8,combtuningR8);
+ allpassL[0].setbuffer(bufallpassL1,allpasstuningL1);
+ allpassR[0].setbuffer(bufallpassR1,allpasstuningR1);
+ allpassL[1].setbuffer(bufallpassL2,allpasstuningL2);
+ allpassR[1].setbuffer(bufallpassR2,allpasstuningR2);
+ allpassL[2].setbuffer(bufallpassL3,allpasstuningL3);
+ allpassR[2].setbuffer(bufallpassR3,allpasstuningR3);
+ allpassL[3].setbuffer(bufallpassL4,allpasstuningL4);
+ allpassR[3].setbuffer(bufallpassR4,allpasstuningR4);
+
+ // Set default values
+ allpassL[0].setfeedback(0.5f);
+ allpassR[0].setfeedback(0.5f);
+ allpassL[1].setfeedback(0.5f);
+ allpassR[1].setfeedback(0.5f);
+ allpassL[2].setfeedback(0.5f);
+ allpassR[2].setfeedback(0.5f);
+ allpassL[3].setfeedback(0.5f);
+ allpassR[3].setfeedback(0.5f);
+
+ setRoomSize(.5);
+ setMix(.5);
+ setdamp(.5);
+ setwidth(initialwidth);
+
+ // Buffer will be full of rubbish - so we MUST mute them
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].mute();
+ combR[i].mute();
+ }
+ for (int i=0;i<numallpasses;i++) {
+ allpassL[i].mute();
+ allpassR[i].mute();
+ }
+ }
+
+//---------------------------------------------------------
+// update
+// Recalculate internal values after parameter change
+//---------------------------------------------------------
+
+void Reverb::update()
+ {
+ roomsize1 = roomsize;
+ damp1 = damp;
+ gain = fixedgain;
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].setfeedback(roomsize1);
+ combR[i].setfeedback(roomsize1);
+ }
+
+ for (int i = 0; i < numcombs; i++) {
+ combL[i].setdamp(damp1);
+ combR[i].setdamp(damp1);
+ }
+ }
+
+//---------------------------------------------------------
+// setroomsize
+//---------------------------------------------------------
+
+void Reverb::setRoomSize(float value)
+ {
+ roomsize = (value*scaleroom) + offsetroom;
+ update();
+ }
+
+//---------------------------------------------------------
+// setdamp
+//---------------------------------------------------------
+
+void Reverb::setdamp(float value)
+ {
+ damp = value*scaledamp;
+ update();
+ }
+
+//---------------------------------------------------------
+// setwidth
+//---------------------------------------------------------
+
+void Reverb::setwidth(float value)
+ {
+ width = value;
+ update();
+ }
+
+//---------------------------------------------------------
+// setMix
+//---------------------------------------------------------
+
+void Reverb::setMix(float value)
+ {
+ wetLevel = value;
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void Reverb::process(float* l, float* r, int n)
+ {
+ float wet = wetLevel;
+ float dry = 1.0 - wetLevel;
+
+ for (int i = 0; i < n; ++i) {
+ float outL = 0.0;
+ float outR = 0.0;
+ float input = (l[i] + r[i]) * gain;
+
+ // Accumulate comb filters in parallel
+ for (int k = 0; k < numcombs; k++) {
+ outL += combL[k].process(input);
+ outR += combR[k].process(input);
+ }
+
+ // Feed through allpasses in series
+ for (int k = 0; k < numallpasses; k++) {
+ outL = allpassL[k].process(outL);
+ outR = allpassR[k].process(outR);
+ }
+ l[i] = outL * wet + l[i] * dry;
+ r[i] = outR * wet + r[i] * dry;
+ }
+ }
+
diff --git a/muse_qt4_evolution/synti/organ/reverb.h b/muse_qt4_evolution/synti/organ/reverb.h
new file mode 100644
index 00000000..d19fb18e
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/reverb.h
@@ -0,0 +1,204 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// based on "freeverb" written by Jezar at Dreampoint,
+// June 2000
+//
+// (C) Copyright 2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __REVERB_H__
+#define __REVERB_H__
+
+#define undenormalise(sample) \
+ do { \
+ volatile float __forced_float = 1e-29 + sample; \
+ sample = __forced_float - 1e-29; \
+ } while (0)
+
+const int numcombs = 8;
+const int numallpasses = 4;
+const float muted = 0;
+const float fixedgain = 0.015f;
+const float scaledamp = 0.4f;
+const float scaleroom = 0.28f;
+const float offsetroom = 0.7f;
+const float initialwidth = 1.0;
+const int stereospread = 23;
+
+// These values assume 44.1KHz sample rate
+// they will probably be OK for 48KHz sample rate
+// but would need scaling for 96KHz (or other) sample rates.
+// The values were obtained by listening tests.
+const int combtuningL1 = 1116;
+const int combtuningR1 = 1116+stereospread;
+const int combtuningL2 = 1188;
+const int combtuningR2 = 1188+stereospread;
+const int combtuningL3 = 1277;
+const int combtuningR3 = 1277+stereospread;
+const int combtuningL4 = 1356;
+const int combtuningR4 = 1356+stereospread;
+const int combtuningL5 = 1422;
+const int combtuningR5 = 1422+stereospread;
+const int combtuningL6 = 1491;
+const int combtuningR6 = 1491+stereospread;
+const int combtuningL7 = 1557;
+const int combtuningR7 = 1557+stereospread;
+const int combtuningL8 = 1617;
+const int combtuningR8 = 1617+stereospread;
+const int allpasstuningL1 = 556;
+const int allpasstuningR1 = 556+stereospread;
+const int allpasstuningL2 = 441;
+const int allpasstuningR2 = 441+stereospread;
+const int allpasstuningL3 = 341;
+const int allpasstuningR3 = 341+stereospread;
+const int allpasstuningL4 = 225;
+const int allpasstuningR4 = 225+stereospread;
+
+//---------------------------------------------------------
+// allpass
+//---------------------------------------------------------
+
+class allpass
+ {
+ float feedback;
+ float *buffer;
+ int bufsize;
+ int bufidx;
+
+ public:
+ allpass() { bufidx = 0; }
+ void setbuffer(float *buf, int size) {
+ buffer = buf;
+ bufsize = size;
+ }
+ float process(float input) {
+ float bufout = buffer[bufidx];
+ undenormalise(bufout);
+ float output = -input + bufout;
+ buffer[bufidx] = input + (bufout*feedback);
+ if (++bufidx >= bufsize)
+ bufidx = 0;
+ return output;
+ }
+ void mute() {
+ memset(buffer, 0, sizeof(float) * bufsize);
+ }
+ void setfeedback(float val) { feedback = val; }
+ float getfeedback() { return feedback; }
+ };
+
+//---------------------------------------------------------
+// comb
+//---------------------------------------------------------
+
+class comb
+ {
+ float feedback;
+ float filterstore;
+ float damp1;
+ float damp2;
+ float *buffer;
+ int bufsize;
+ int bufidx;
+
+ public:
+ comb() {
+ filterstore = 0;
+ bufidx = 0;
+ }
+ void setbuffer(float *buf, int size) {
+ buffer = buf;
+ bufsize = size;
+ }
+ float process(float input) {
+ float output = buffer[bufidx];
+ undenormalise(output);
+ filterstore = (output*damp2) + (filterstore*damp1);
+ undenormalise(filterstore);
+ buffer[bufidx] = input + (filterstore*feedback);
+ if (++bufidx >= bufsize)
+ bufidx = 0;
+ return output;
+ }
+ void mute() {
+ for (int i=0; i<bufsize; i++)
+ buffer[i]=0;
+ }
+ void setdamp(float val) {
+ damp1 = val;
+ damp2 = 1-val;
+ }
+ float getdamp() { return damp1; }
+ void setfeedback(float val) { feedback = val; }
+ float getfeedback() { return feedback; }
+ };
+
+
+//---------------------------------------------------------
+// Reverb
+//---------------------------------------------------------
+
+class Reverb {
+ float gain;
+ float roomsize,roomsize1;
+ float damp,damp1;
+ float width;
+ float mode;
+
+ // Comb filters
+ comb combL[numcombs];
+ comb combR[numcombs];
+
+ // Allpass filters
+ allpass allpassL[numallpasses];
+ allpass allpassR[numallpasses];
+
+ // Buffers for the combs
+ float bufcombL1[combtuningL1];
+ float bufcombR1[combtuningR1];
+ float bufcombL2[combtuningL2];
+ float bufcombR2[combtuningR2];
+ float bufcombL3[combtuningL3];
+ float bufcombR3[combtuningR3];
+ float bufcombL4[combtuningL4];
+ float bufcombR4[combtuningR4];
+ float bufcombL5[combtuningL5];
+ float bufcombR5[combtuningR5];
+ float bufcombL6[combtuningL6];
+ float bufcombR6[combtuningR6];
+ float bufcombL7[combtuningL7];
+ float bufcombR7[combtuningR7];
+ float bufcombL8[combtuningL8];
+ float bufcombR8[combtuningR8];
+
+ // Buffers for the allpasses
+ float bufallpassL1[allpasstuningL1];
+ float bufallpassR1[allpasstuningR1];
+ float bufallpassL2[allpasstuningL2];
+ float bufallpassR2[allpasstuningR2];
+ float bufallpassL3[allpasstuningL3];
+ float bufallpassR3[allpasstuningR3];
+ float bufallpassL4[allpasstuningL4];
+ float bufallpassR4[allpasstuningR4];
+
+ float roomSize;
+ float damping;
+ float wetLevel;
+
+ void update();
+
+ public:
+ Reverb();
+ void process(float* l, float* r, int numsamples);
+ void setdamp(float value);
+ void setwidth(float value);
+
+ void setRoomSize(float value);
+ void setMix(float value);
+ };
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/organ/routing.cpp b/muse_qt4_evolution/synti/organ/routing.cpp
new file mode 100644
index 00000000..09f9ceb7
--- /dev/null
+++ b/muse_qt4_evolution/synti/organ/routing.cpp
@@ -0,0 +1,1343 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// (C) Copyright 2007 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "organ.h"
+
+Elem Organ::routing[NO_KEYS][NO_ELEMENTS] = {
+#if 1
+ { Elem(0,0,0.003210), Elem(0,1,0.000105), Elem(0,2,0.004516), Elem(0,3,0.000095), Elem(0,4,0.000080), Elem(0,5,0.000088), Elem(0,6,0.000116), Elem(0,7,0.000213),
+ Elem(0,8,0.020011), Elem(7,0,0.000067), Elem(7,1,0.006683), Elem(7,2,0.000067), Elem(7,3,0.000033), Elem(7,4,0.000022), Elem(7,5,0.000017), Elem(12,0,0.315277),
+ Elem(12,1,0.007553), Elem(12,2,0.443782), Elem(12,3,0.005466), Elem(12,4,0.002994), Elem(12,5,0.002100), Elem(12,6,0.001627), Elem(12,7,0.001332), Elem(12,8,0.001128),
+ Elem(19,0,0.006617), Elem(19,1,0.661660), Elem(19,2,0.006617), Elem(19,3,0.003308), Elem(19,4,0.002206), Elem(19,5,0.001654), Elem(19,6,0.001323), Elem(19,7,0.001103),
+ Elem(19,8,0.000945), Elem(24,0,0.002250), Elem(24,1,0.003364), Elem(24,2,0.006691), Elem(24,3,0.661772), Elem(24,4,0.006840), Elem(24,5,0.025696), Elem(24,6,0.002429),
+ Elem(24,7,0.001766), Elem(24,8,0.001398), Elem(28,0,0.000025), Elem(28,1,0.000030), Elem(28,2,0.000037), Elem(28,3,0.000050), Elem(28,4,0.000075), Elem(28,5,0.000150),
+ Elem(28,6,0.014962), Elem(28,7,0.000150), Elem(28,8,0.000075), Elem(31,0,0.005541), Elem(31,1,0.007388), Elem(31,2,0.011082), Elem(31,3,0.022163), Elem(31,4,2.216334),
+ Elem(31,5,0.022163), Elem(31,6,0.011082), Elem(31,7,0.007388), Elem(31,8,0.005541), Elem(36,0,0.004469), Elem(36,1,0.005591), Elem(36,2,0.007475), Elem(36,3,0.017790),
+ Elem(36,4,0.022264), Elem(36,5,2.216417), Elem(36,6,0.022286), Elem(36,7,0.021098), Elem(36,8,0.007501), Elem(40,0,0.002469), Elem(40,1,0.002963), Elem(40,2,0.003703),
+ Elem(40,3,0.004938), Elem(40,4,0.007406), Elem(40,5,0.014813), Elem(40,6,1.481273), Elem(40,7,0.014813), Elem(40,8,0.007406), Elem(43,0,0.001459), Elem(43,1,0.001706),
+ Elem(43,2,0.002055), Elem(43,3,0.002587), Elem(43,4,0.003524), Elem(43,5,0.027337), Elem(43,6,0.010124), Elem(43,7,0.990112), Elem(43,8,0.009975), Elem(47,0,0.000025),
+ Elem(47,1,0.000030), Elem(47,2,0.000037), Elem(47,3,0.000050), Elem(47,4,0.000075), Elem(47,5,0.000150), Elem(47,6,0.014962), Elem(47,7,0.000150), Elem(47,8,0.000075),
+ Elem(48,0,0.001237), Elem(48,1,0.001414), Elem(48,2,0.001650), Elem(48,3,0.001980), Elem(48,4,0.002475), Elem(48,5,0.003300), Elem(48,6,0.004950), Elem(48,7,0.009900),
+ Elem(48,8,0.990000), Elem(55,1,0.000017), Elem(55,2,0.000020), Elem(55,3,0.000025), Elem(55,4,0.000033), Elem(55,5,0.000050), Elem(55,6,0.000100), Elem(55,7,0.010000),
+ Elem(55,8,0.000100), Elem(60,0,0.006369), Elem(60,1,0.000153), Elem(60,2,0.008965), Elem(60,3,0.000110), Elem(60,4,0.000060), Elem(60,5,0.000042), Elem(60,6,0.000033),
+ Elem(60,7,0.000027), Elem(60,8,0.000023), Elem(67,0,0.000134), Elem(67,1,0.013367), Elem(67,2,0.000134), Elem(67,3,0.000067), Elem(67,4,0.000045), Elem(67,5,0.000033),
+ Elem(67,6,0.000027), Elem(67,7,0.000022), Elem(67,8,0.000019), Elem(72,0,0.000045), Elem(72,1,0.000067), Elem(72,2,0.000134), Elem(72,3,0.013367), Elem(72,4,0.000134),
+ Elem(72,5,0.000067), Elem(72,6,0.000045), Elem(72,7,0.000033), Elem(72,8,0.000027), Elem(79,0,0.000112), Elem(79,1,0.000149), Elem(79,2,0.000224), Elem(79,3,0.000448),
+ Elem(79,4,0.044774), Elem(79,5,0.000448), Elem(79,6,0.000224), Elem(79,7,0.000149), Elem(79,8,0.000112), Elem(86,0,0.000070), Elem(86,1,0.000091), Elem(86,2,0.000132),
+ Elem(86,3,0.000249), Elem(86,4,0.022421), Elem(86,5,0.000274), Elem(86,6,0.000212), Elem(86,7,0.010075), Elem(86,8,0.000156), },
+ { Elem(1,0,0.003210), Elem(1,1,0.000105), Elem(1,2,0.004516), Elem(1,3,0.000095), Elem(1,4,0.000080), Elem(1,5,0.000088), Elem(1,6,0.000116), Elem(1,7,0.000213),
+ Elem(1,8,0.020011), Elem(8,0,0.000067), Elem(8,1,0.006683), Elem(8,2,0.000067), Elem(8,3,0.000033), Elem(8,4,0.000022), Elem(8,5,0.000017), Elem(13,0,0.315277),
+ Elem(13,1,0.007553), Elem(13,2,0.443782), Elem(13,3,0.005466), Elem(13,4,0.002994), Elem(13,5,0.002100), Elem(13,6,0.001627), Elem(13,7,0.001332), Elem(13,8,0.001128),
+ Elem(20,0,0.006617), Elem(20,1,0.661660), Elem(20,2,0.006617), Elem(20,3,0.003308), Elem(20,4,0.002206), Elem(20,5,0.001654), Elem(20,6,0.001323), Elem(20,7,0.001103),
+ Elem(20,8,0.000945), Elem(25,0,0.002206), Elem(25,1,0.003308), Elem(25,2,0.006617), Elem(25,3,0.661660), Elem(25,4,0.006617), Elem(25,5,0.003308), Elem(25,6,0.002206),
+ Elem(25,7,0.001654), Elem(25,8,0.001323), Elem(29,0,0.000025), Elem(29,1,0.000030), Elem(29,2,0.000037), Elem(29,3,0.000050), Elem(29,4,0.000075), Elem(29,5,0.000150),
+ Elem(29,6,0.014962), Elem(29,7,0.000150), Elem(29,8,0.000075), Elem(32,0,0.005541), Elem(32,1,0.007388), Elem(32,2,0.011082), Elem(32,3,0.022163), Elem(32,4,2.216334),
+ Elem(32,5,0.022163), Elem(32,6,0.011082), Elem(32,7,0.007388), Elem(32,8,0.005541), Elem(33,0,0.000037), Elem(33,1,0.000050), Elem(33,2,0.000087), Elem(33,3,0.006708),
+ Elem(33,4,0.000100), Elem(33,5,0.000083), Elem(33,6,0.000122), Elem(33,7,0.010017), Elem(33,8,0.000113), Elem(37,0,0.004433), Elem(37,1,0.005541), Elem(37,2,0.007388),
+ Elem(37,3,0.011082), Elem(37,4,0.022163), Elem(37,5,2.216334), Elem(37,6,0.022163), Elem(37,7,0.011082), Elem(37,8,0.007388), Elem(41,0,0.002469), Elem(41,1,0.002963),
+ Elem(41,2,0.003703), Elem(41,3,0.004938), Elem(41,4,0.007406), Elem(41,5,0.014813), Elem(41,6,1.481273), Elem(41,7,0.014813), Elem(41,8,0.007406), Elem(44,0,0.001414),
+ Elem(44,1,0.001650), Elem(44,2,0.001980), Elem(44,3,0.002475), Elem(44,4,0.003300), Elem(44,5,0.004950), Elem(44,6,0.009900), Elem(44,7,0.990000), Elem(44,8,0.009900),
+ Elem(49,0,0.001237), Elem(49,1,0.001414), Elem(49,2,0.001650), Elem(49,3,0.001980), Elem(49,4,0.002475), Elem(49,5,0.003300), Elem(49,6,0.004950), Elem(49,7,0.009900),
+ Elem(49,8,0.990000), Elem(56,1,0.000017), Elem(56,2,0.000020), Elem(56,3,0.000025), Elem(56,4,0.000033), Elem(56,5,0.000050), Elem(56,6,0.000100), Elem(56,7,0.010000),
+ Elem(56,8,0.000100), Elem(61,0,0.006369), Elem(61,1,0.000153), Elem(61,2,0.008965), Elem(61,3,0.000110), Elem(61,4,0.000060), Elem(61,5,0.000042), Elem(61,6,0.000033),
+ Elem(61,7,0.000027), Elem(61,8,0.000023), Elem(68,0,0.000134), Elem(68,1,0.013367), Elem(68,2,0.000134), Elem(68,3,0.000067), Elem(68,4,0.000045), Elem(68,5,0.000033),
+ Elem(68,6,0.000027), Elem(68,7,0.000022), Elem(68,8,0.000019), Elem(73,0,0.000045), Elem(73,1,0.000067), Elem(73,2,0.000134), Elem(73,3,0.013367), Elem(73,4,0.000134),
+ Elem(73,5,0.000067), Elem(73,6,0.000045), Elem(73,7,0.000033), Elem(73,8,0.000027), Elem(80,0,0.000112), Elem(80,1,0.000149), Elem(80,2,0.000224), Elem(80,3,0.000448),
+ Elem(80,4,0.044774), Elem(80,5,0.000448), Elem(80,6,0.000224), Elem(80,7,0.000149), Elem(80,8,0.000112), Elem(84,0,0.000050), Elem(84,1,0.000060), Elem(84,2,0.000075),
+ Elem(84,3,0.000100), Elem(84,4,0.000150), Elem(84,5,0.000299), Elem(84,6,0.029925), Elem(84,7,0.000299), Elem(84,8,0.000150), Elem(85,2,0.000017), Elem(85,3,0.000020),
+ Elem(85,4,0.000025), Elem(85,5,0.000033), Elem(85,6,0.000050), Elem(85,7,0.000100), Elem(85,8,0.010000), Elem(87,0,0.000070), Elem(87,1,0.000091), Elem(87,2,0.000132),
+ Elem(87,3,0.000249), Elem(87,4,0.022421), Elem(87,5,0.000274), Elem(87,6,0.000212), Elem(87,7,0.010075), Elem(87,8,0.000156), },
+ { Elem(2,0,0.003210), Elem(2,1,0.000105), Elem(2,2,0.004516), Elem(2,3,0.000095), Elem(2,4,0.000080), Elem(2,5,0.000088), Elem(2,6,0.000116), Elem(2,7,0.000213),
+ Elem(2,8,0.020011), Elem(9,0,0.000067), Elem(9,1,0.006683), Elem(9,2,0.000067), Elem(9,3,0.000033), Elem(9,4,0.000022), Elem(9,5,0.000017), Elem(14,0,0.315277),
+ Elem(14,1,0.007553), Elem(14,2,0.443782), Elem(14,3,0.005466), Elem(14,4,0.002994), Elem(14,5,0.002100), Elem(14,6,0.001627), Elem(14,7,0.001332), Elem(14,8,0.001128),
+ Elem(21,0,0.006617), Elem(21,1,0.661660), Elem(21,2,0.006617), Elem(21,3,0.003308), Elem(21,4,0.002206), Elem(21,5,0.001654), Elem(21,6,0.001323), Elem(21,7,0.001103),
+ Elem(21,8,0.000945), Elem(25,0,0.000056), Elem(25,1,0.000075), Elem(25,2,0.000112), Elem(25,3,0.000224), Elem(25,4,0.022387), Elem(25,5,0.000224), Elem(25,6,0.000112),
+ Elem(25,7,0.000075), Elem(25,8,0.000056), Elem(26,0,0.002250), Elem(26,1,0.003364), Elem(26,2,0.006691), Elem(26,3,0.661772), Elem(26,4,0.006840), Elem(26,5,0.025696),
+ Elem(26,6,0.002429), Elem(26,7,0.001766), Elem(26,8,0.001398), Elem(30,0,0.000025), Elem(30,1,0.000030), Elem(30,2,0.000037), Elem(30,3,0.000050), Elem(30,4,0.000075),
+ Elem(30,5,0.000150), Elem(30,6,0.014962), Elem(30,7,0.000150), Elem(30,8,0.000075), Elem(33,0,0.005541), Elem(33,1,0.007388), Elem(33,2,0.011082), Elem(33,3,0.022163),
+ Elem(33,4,2.216334), Elem(33,5,0.022163), Elem(33,6,0.011082), Elem(33,7,0.007388), Elem(33,8,0.005541), Elem(38,0,0.004469), Elem(38,1,0.005591), Elem(38,2,0.007475),
+ Elem(38,3,0.017790), Elem(38,4,0.022264), Elem(38,5,2.216417), Elem(38,6,0.022286), Elem(38,7,0.021098), Elem(38,8,0.007501), Elem(42,0,0.002469), Elem(42,1,0.002963),
+ Elem(42,2,0.003703), Elem(42,3,0.004938), Elem(42,4,0.007406), Elem(42,5,0.014813), Elem(42,6,1.481273), Elem(42,7,0.014813), Elem(42,8,0.007406), Elem(44,0,0.000056),
+ Elem(44,1,0.000075), Elem(44,2,0.000112), Elem(44,3,0.000224), Elem(44,4,0.022387), Elem(44,5,0.000224), Elem(44,6,0.000112), Elem(44,7,0.000075), Elem(44,8,0.000056),
+ Elem(45,0,0.001459), Elem(45,1,0.001706), Elem(45,2,0.002055), Elem(45,3,0.002587), Elem(45,4,0.003524), Elem(45,5,0.027337), Elem(45,6,0.010124), Elem(45,7,0.990112),
+ Elem(45,8,0.009975), Elem(50,0,0.001237), Elem(50,1,0.001414), Elem(50,2,0.001650), Elem(50,3,0.001980), Elem(50,4,0.002475), Elem(50,5,0.003300), Elem(50,6,0.004950),
+ Elem(50,7,0.009900), Elem(50,8,0.990000), Elem(57,1,0.000017), Elem(57,2,0.000020), Elem(57,3,0.000025), Elem(57,4,0.000033), Elem(57,5,0.000050), Elem(57,6,0.000100),
+ Elem(57,7,0.010000), Elem(57,8,0.000100), Elem(62,0,0.006369), Elem(62,1,0.000153), Elem(62,2,0.008965), Elem(62,3,0.000110), Elem(62,4,0.000060), Elem(62,5,0.000042),
+ Elem(62,6,0.000033), Elem(62,7,0.000027), Elem(62,8,0.000023), Elem(69,0,0.000134), Elem(69,1,0.013367), Elem(69,2,0.000134), Elem(69,3,0.000067), Elem(69,4,0.000045),
+ Elem(69,5,0.000033), Elem(69,6,0.000027), Elem(69,7,0.000022), Elem(69,8,0.000019), Elem(74,0,0.000045), Elem(74,1,0.000067), Elem(74,2,0.000134), Elem(74,3,0.013367),
+ Elem(74,4,0.000134), Elem(74,5,0.000067), Elem(74,6,0.000045), Elem(74,7,0.000033), Elem(74,8,0.000027), Elem(81,0,0.000056), Elem(81,1,0.000075), Elem(81,2,0.000112),
+ Elem(81,3,0.000224), Elem(81,4,0.022387), Elem(81,5,0.000224), Elem(81,6,0.000112), Elem(81,7,0.000075), Elem(81,8,0.000056), Elem(85,0,0.000050), Elem(85,1,0.000060),
+ Elem(85,2,0.000075), Elem(85,3,0.000100), Elem(85,4,0.000150), Elem(85,5,0.000299), Elem(85,6,0.029925), Elem(85,7,0.000299), Elem(85,8,0.000150), Elem(86,2,0.000017),
+ Elem(86,3,0.000020), Elem(86,4,0.000025), Elem(86,5,0.000033), Elem(86,6,0.000050), Elem(86,7,0.000100), Elem(86,8,0.010000), Elem(88,1,0.000017), Elem(88,2,0.000020),
+ Elem(88,3,0.000025), Elem(88,4,0.000033), Elem(88,5,0.000050), Elem(88,6,0.000100), Elem(88,7,0.010000), Elem(88,8,0.000100), },
+ { Elem(3,0,0.003210), Elem(3,1,0.000105), Elem(3,2,0.004516), Elem(3,3,0.000095), Elem(3,4,0.000080), Elem(3,5,0.000088), Elem(3,6,0.000116), Elem(3,7,0.000213),
+ Elem(3,8,0.020011), Elem(10,0,0.000067), Elem(10,1,0.006683), Elem(10,2,0.000067), Elem(10,3,0.000033), Elem(10,4,0.000022), Elem(10,5,0.000017), Elem(15,0,0.315277),
+ Elem(15,1,0.007553), Elem(15,2,0.443782), Elem(15,3,0.005466), Elem(15,4,0.002994), Elem(15,5,0.002100), Elem(15,6,0.001627), Elem(15,7,0.001332), Elem(15,8,0.001128),
+ Elem(22,0,0.006617), Elem(22,1,0.661660), Elem(22,2,0.006617), Elem(22,3,0.003308), Elem(22,4,0.002206), Elem(22,5,0.001654), Elem(22,6,0.001323), Elem(22,7,0.001103),
+ Elem(22,8,0.000945), Elem(27,0,0.002250), Elem(27,1,0.003364), Elem(27,2,0.006691), Elem(27,3,0.661772), Elem(27,4,0.006840), Elem(27,5,0.025696), Elem(27,6,0.002429),
+ Elem(27,7,0.001766), Elem(27,8,0.001398), Elem(34,0,0.005541), Elem(34,1,0.007388), Elem(34,2,0.011082), Elem(34,3,0.022163), Elem(34,4,2.216334), Elem(34,5,0.022163),
+ Elem(34,6,0.011082), Elem(34,7,0.007388), Elem(34,8,0.005541), Elem(36,0,0.000025), Elem(36,1,0.000030), Elem(36,2,0.000037), Elem(36,3,0.000050), Elem(36,4,0.000075),
+ Elem(36,5,0.000150), Elem(36,6,0.014962), Elem(36,7,0.000150), Elem(36,8,0.000075), Elem(39,0,0.004469), Elem(39,1,0.005591), Elem(39,2,0.007475), Elem(39,3,0.017790),
+ Elem(39,4,0.022264), Elem(39,5,2.216417), Elem(39,6,0.022286), Elem(39,7,0.021098), Elem(39,8,0.007501), Elem(43,0,0.002469), Elem(43,1,0.002963), Elem(43,2,0.003703),
+ Elem(43,3,0.004938), Elem(43,4,0.007406), Elem(43,5,0.014813), Elem(43,6,1.481273), Elem(43,7,0.014813), Elem(43,8,0.007406), Elem(46,0,0.001459), Elem(46,1,0.001706),
+ Elem(46,2,0.002055), Elem(46,3,0.002587), Elem(46,4,0.003524), Elem(46,5,0.027337), Elem(46,6,0.010124), Elem(46,7,0.990112), Elem(46,8,0.009975), Elem(51,0,0.001237),
+ Elem(51,1,0.001414), Elem(51,2,0.001650), Elem(51,3,0.001980), Elem(51,4,0.002475), Elem(51,5,0.003300), Elem(51,6,0.004950), Elem(51,7,0.009900), Elem(51,8,0.990000),
+ Elem(55,0,0.000025), Elem(55,1,0.000030), Elem(55,2,0.000037), Elem(55,3,0.000050), Elem(55,4,0.000075), Elem(55,5,0.000150), Elem(55,6,0.014962), Elem(55,7,0.000150),
+ Elem(55,8,0.000075), Elem(58,1,0.000017), Elem(58,2,0.000020), Elem(58,3,0.000025), Elem(58,4,0.000033), Elem(58,5,0.000050), Elem(58,6,0.000100), Elem(58,7,0.010000),
+ Elem(58,8,0.000100), Elem(63,0,0.006369), Elem(63,1,0.000153), Elem(63,2,0.008965), Elem(63,3,0.000110), Elem(63,4,0.000060), Elem(63,5,0.000042), Elem(63,6,0.000033),
+ Elem(63,7,0.000027), Elem(63,8,0.000023), Elem(70,0,0.000134), Elem(70,1,0.013367), Elem(70,2,0.000134), Elem(70,3,0.000067), Elem(70,4,0.000045), Elem(70,5,0.000033),
+ Elem(70,6,0.000027), Elem(70,7,0.000022), Elem(70,8,0.000019), Elem(75,0,0.000045), Elem(75,1,0.000067), Elem(75,2,0.000134), Elem(75,3,0.013367), Elem(75,4,0.000134),
+ Elem(75,5,0.000067), Elem(75,6,0.000045), Elem(75,7,0.000033), Elem(75,8,0.000027), Elem(82,0,0.000112), Elem(82,1,0.000149), Elem(82,2,0.000224), Elem(82,3,0.000448),
+ Elem(82,4,0.044774), Elem(82,5,0.000448), Elem(82,6,0.000224), Elem(82,7,0.000149), Elem(82,8,0.000112), Elem(86,0,0.000025), Elem(86,1,0.000030), Elem(86,2,0.000037),
+ Elem(86,3,0.000050), Elem(86,4,0.000075), Elem(86,5,0.000150), Elem(86,6,0.014962), Elem(86,7,0.000150), Elem(86,8,0.000075), Elem(87,2,0.000017), Elem(87,3,0.000020),
+ Elem(87,4,0.000025), Elem(87,5,0.000033), Elem(87,6,0.000050), Elem(87,7,0.000100), Elem(87,8,0.010000), Elem(89,0,0.000070), Elem(89,1,0.000091), Elem(89,2,0.000132),
+ Elem(89,3,0.000249), Elem(89,4,0.022421), Elem(89,5,0.000274), Elem(89,6,0.000212), Elem(89,7,0.010075), Elem(89,8,0.000156), },
+ { Elem(4,0,0.003210), Elem(4,1,0.000105), Elem(4,2,0.004516), Elem(4,3,0.000095), Elem(4,4,0.000080), Elem(4,5,0.000088), Elem(4,6,0.000116), Elem(4,7,0.000213),
+ Elem(4,8,0.020011), Elem(11,0,0.000067), Elem(11,1,0.006683), Elem(11,2,0.000067), Elem(11,3,0.000033), Elem(11,4,0.000022), Elem(11,5,0.000017), Elem(16,0,0.315277),
+ Elem(16,1,0.007553), Elem(16,2,0.443782), Elem(16,3,0.005466), Elem(16,4,0.002994), Elem(16,5,0.002100), Elem(16,6,0.001627), Elem(16,7,0.001332), Elem(16,8,0.001128),
+ Elem(23,0,0.006617), Elem(23,1,0.661660), Elem(23,2,0.006617), Elem(23,3,0.003308), Elem(23,4,0.002206), Elem(23,5,0.001654), Elem(23,6,0.001323), Elem(23,7,0.001103),
+ Elem(23,8,0.000945), Elem(28,0,0.002250), Elem(28,1,0.003364), Elem(28,2,0.006691), Elem(28,3,0.661772), Elem(28,4,0.006840), Elem(28,5,0.025696), Elem(28,6,0.002429),
+ Elem(28,7,0.001766), Elem(28,8,0.001398), Elem(33,0,0.000025), Elem(33,1,0.000030), Elem(33,2,0.000037), Elem(33,3,0.000050), Elem(33,4,0.000075), Elem(33,5,0.000150),
+ Elem(33,6,0.014962), Elem(33,7,0.000150), Elem(33,8,0.000075), Elem(35,0,0.005541), Elem(35,1,0.007388), Elem(35,2,0.011082), Elem(35,3,0.022163), Elem(35,4,2.216334),
+ Elem(35,5,0.022163), Elem(35,6,0.011082), Elem(35,7,0.007388), Elem(35,8,0.005541), Elem(40,0,0.004469), Elem(40,1,0.005591), Elem(40,2,0.007475), Elem(40,3,0.017790),
+ Elem(40,4,0.022264), Elem(40,5,2.216417), Elem(40,6,0.022286), Elem(40,7,0.021098), Elem(40,8,0.007501), Elem(44,0,0.002469), Elem(44,1,0.002963), Elem(44,2,0.003703),
+ Elem(44,3,0.004938), Elem(44,4,0.007406), Elem(44,5,0.014813), Elem(44,6,1.481273), Elem(44,7,0.014813), Elem(44,8,0.007406), Elem(47,0,0.001459), Elem(47,1,0.001706),
+ Elem(47,2,0.002055), Elem(47,3,0.002587), Elem(47,4,0.003524), Elem(47,5,0.027337), Elem(47,6,0.010124), Elem(47,7,0.990112), Elem(47,8,0.009975), Elem(52,0,0.001237),
+ Elem(52,1,0.001414), Elem(52,2,0.001650), Elem(52,3,0.001980), Elem(52,4,0.002475), Elem(52,5,0.003300), Elem(52,6,0.004950), Elem(52,7,0.009900), Elem(52,8,0.990000),
+ Elem(56,0,0.000025), Elem(56,1,0.000030), Elem(56,2,0.000037), Elem(56,3,0.000050), Elem(56,4,0.000075), Elem(56,5,0.000150), Elem(56,6,0.014962), Elem(56,7,0.000150),
+ Elem(56,8,0.000075), Elem(59,1,0.000017), Elem(59,2,0.000020), Elem(59,3,0.000025), Elem(59,4,0.000033), Elem(59,5,0.000050), Elem(59,6,0.000100), Elem(59,7,0.010000),
+ Elem(59,8,0.000100), Elem(64,0,0.006369), Elem(64,1,0.000153), Elem(64,2,0.008965), Elem(64,3,0.000110), Elem(64,4,0.000060), Elem(64,5,0.000042), Elem(64,6,0.000033),
+ Elem(64,7,0.000027), Elem(64,8,0.000023), Elem(71,0,0.000134), Elem(71,1,0.013367), Elem(71,2,0.000134), Elem(71,3,0.000067), Elem(71,4,0.000045), Elem(71,5,0.000033),
+ Elem(71,6,0.000027), Elem(71,7,0.000022), Elem(71,8,0.000019), Elem(76,0,0.000045), Elem(76,1,0.000067), Elem(76,2,0.000134), Elem(76,3,0.013367), Elem(76,4,0.000134),
+ Elem(76,5,0.000067), Elem(76,6,0.000045), Elem(76,7,0.000033), Elem(76,8,0.000027), Elem(83,0,0.000112), Elem(83,1,0.000149), Elem(83,2,0.000224), Elem(83,3,0.000448),
+ Elem(83,4,0.044774), Elem(83,5,0.000448), Elem(83,6,0.000224), Elem(83,7,0.000149), Elem(83,8,0.000112), Elem(87,0,0.000025), Elem(87,1,0.000030), Elem(87,2,0.000037),
+ Elem(87,3,0.000050), Elem(87,4,0.000075), Elem(87,5,0.000150), Elem(87,6,0.014962), Elem(87,7,0.000150), Elem(87,8,0.000075), Elem(88,2,0.000017), Elem(88,3,0.000020),
+ Elem(88,4,0.000025), Elem(88,5,0.000033), Elem(88,6,0.000050), Elem(88,7,0.000100), Elem(88,8,0.010000), Elem(90,0,0.000070), Elem(90,1,0.000091), Elem(90,2,0.000132),
+ Elem(90,3,0.000249), Elem(90,4,0.022421), Elem(90,5,0.000274), Elem(90,6,0.000212), Elem(90,7,0.010075), Elem(90,8,0.000156), },
+ { Elem(0,0,0.000029), Elem(0,1,0.000033), Elem(0,2,0.000040), Elem(0,3,0.000050), Elem(0,4,0.000067), Elem(0,5,0.000100), Elem(0,6,0.000200), Elem(0,7,0.020000),
+ Elem(0,8,0.000200), Elem(5,0,0.003210), Elem(5,1,0.000105), Elem(5,2,0.004516), Elem(5,3,0.000095), Elem(5,4,0.000080), Elem(5,5,0.000088), Elem(5,6,0.000116),
+ Elem(5,7,0.000213), Elem(5,8,0.020011), Elem(17,0,0.315277), Elem(17,1,0.007553), Elem(17,2,0.443782), Elem(17,3,0.005466), Elem(17,4,0.002994), Elem(17,5,0.002100),
+ Elem(17,6,0.001627), Elem(17,7,0.001332), Elem(17,8,0.001128), Elem(24,0,0.006673), Elem(24,1,0.661735), Elem(24,2,0.006729), Elem(24,3,0.003532), Elem(24,4,0.024593),
+ Elem(24,5,0.001878), Elem(24,6,0.001435), Elem(24,7,0.001177), Elem(24,8,0.001001), Elem(29,0,0.002250), Elem(29,1,0.003364), Elem(29,2,0.006691), Elem(29,3,0.661772),
+ Elem(29,4,0.006840), Elem(29,5,0.025696), Elem(29,6,0.002429), Elem(29,7,0.001766), Elem(29,8,0.001398), Elem(36,0,0.005608), Elem(36,1,0.014071), Elem(36,2,0.011149),
+ Elem(36,3,0.022197), Elem(36,4,2.216356), Elem(36,5,0.022180), Elem(36,6,0.011095), Elem(36,7,0.007399), Elem(36,8,0.005550), Elem(38,0,0.000025), Elem(38,1,0.000030),
+ Elem(38,2,0.000037), Elem(38,3,0.000050), Elem(38,4,0.000075), Elem(38,5,0.000150), Elem(38,6,0.014962), Elem(38,7,0.000150), Elem(38,8,0.000075), Elem(41,0,0.004455),
+ Elem(41,1,0.005574), Elem(41,2,0.007455), Elem(41,3,0.017765), Elem(41,4,0.022230), Elem(41,5,2.216367), Elem(41,6,0.022186), Elem(41,7,0.011098), Elem(41,8,0.007401),
+ Elem(43,0,0.000056), Elem(43,1,0.000075), Elem(43,2,0.000112), Elem(43,3,0.000224), Elem(43,4,0.022387), Elem(43,5,0.000224), Elem(43,6,0.000112), Elem(43,7,0.000075),
+ Elem(43,8,0.000056), Elem(45,0,0.002469), Elem(45,1,0.002963), Elem(45,2,0.003703), Elem(45,3,0.004938), Elem(45,4,0.007406), Elem(45,5,0.014813), Elem(45,6,1.481273),
+ Elem(45,7,0.014813), Elem(45,8,0.007406), Elem(48,0,0.001414), Elem(48,1,0.001650), Elem(48,2,0.001980), Elem(48,3,0.002475), Elem(48,4,0.003300), Elem(48,5,0.004950),
+ Elem(48,6,0.009900), Elem(48,7,0.990000), Elem(48,8,0.009900), Elem(53,0,0.001237), Elem(53,1,0.001414), Elem(53,2,0.001650), Elem(53,3,0.001980), Elem(53,4,0.002475),
+ Elem(53,5,0.003300), Elem(53,6,0.004950), Elem(53,7,0.009900), Elem(53,8,0.990000), Elem(57,0,0.000025), Elem(57,1,0.000030), Elem(57,2,0.000037), Elem(57,3,0.000050),
+ Elem(57,4,0.000075), Elem(57,5,0.000150), Elem(57,6,0.014962), Elem(57,7,0.000150), Elem(57,8,0.000075), Elem(65,0,0.006369), Elem(65,1,0.000153), Elem(65,2,0.008965),
+ Elem(65,3,0.000110), Elem(65,4,0.000060), Elem(65,5,0.000042), Elem(65,6,0.000033), Elem(65,7,0.000027), Elem(65,8,0.000023), Elem(72,0,0.000134), Elem(72,1,0.013367),
+ Elem(72,2,0.000134), Elem(72,3,0.000067), Elem(72,4,0.000045), Elem(72,5,0.000033), Elem(72,6,0.000027), Elem(72,7,0.000022), Elem(72,8,0.000019), Elem(75,0,0.000022),
+ Elem(75,1,0.000033), Elem(75,2,0.000067), Elem(75,3,0.006683), Elem(75,4,0.000067), Elem(75,5,0.000033), Elem(75,6,0.000022), Elem(75,7,0.000017), Elem(77,0,0.000022),
+ Elem(77,1,0.000033), Elem(77,2,0.000067), Elem(77,3,0.006683), Elem(77,4,0.000067), Elem(77,5,0.000033), Elem(77,6,0.000022), Elem(77,7,0.000017), Elem(84,0,0.000090),
+ Elem(84,1,0.000112), Elem(84,2,0.000149), Elem(84,3,0.000224), Elem(84,4,0.000448), Elem(84,5,0.044774), Elem(84,6,0.000448), Elem(84,7,0.000224), Elem(84,8,0.000149),
+ Elem(88,0,0.000025), Elem(88,1,0.000030), Elem(88,2,0.000037), Elem(88,3,0.000050), Elem(88,4,0.000075), Elem(88,5,0.000150), Elem(88,6,0.014962), Elem(88,7,0.000150),
+ Elem(88,8,0.000075), Elem(89,2,0.000017), Elem(89,3,0.000020), Elem(89,4,0.000025), Elem(89,5,0.000033), Elem(89,6,0.000050), Elem(89,7,0.000100), Elem(89,8,0.010000),
+ },
+ { Elem(1,0,0.000029), Elem(1,1,0.000033), Elem(1,2,0.000040), Elem(1,3,0.000050), Elem(1,4,0.000067), Elem(1,5,0.000100), Elem(1,6,0.000200), Elem(1,7,0.020000),
+ Elem(1,8,0.000200), Elem(6,0,0.003210), Elem(6,1,0.000105), Elem(6,2,0.004516), Elem(6,3,0.000095), Elem(6,4,0.000080), Elem(6,5,0.000088), Elem(6,6,0.000116),
+ Elem(6,7,0.000213), Elem(6,8,0.020011), Elem(18,0,0.315277), Elem(18,1,0.007553), Elem(18,2,0.443782), Elem(18,3,0.005466), Elem(18,4,0.002994), Elem(18,5,0.002100),
+ Elem(18,6,0.001627), Elem(18,7,0.001332), Elem(18,8,0.001128), Elem(25,0,0.006617), Elem(25,1,0.661660), Elem(25,2,0.006617), Elem(25,3,0.003308), Elem(25,4,0.002206),
+ Elem(25,5,0.001654), Elem(25,6,0.001323), Elem(25,7,0.001103), Elem(25,8,0.000945), Elem(30,0,0.002250), Elem(30,1,0.003364), Elem(30,2,0.006691), Elem(30,3,0.661772),
+ Elem(30,4,0.006840), Elem(30,5,0.025696), Elem(30,6,0.002429), Elem(30,7,0.001766), Elem(30,8,0.001398), Elem(33,0,0.000067), Elem(33,1,0.006683), Elem(33,2,0.000067),
+ Elem(33,3,0.000033), Elem(33,4,0.000022), Elem(33,5,0.000017), Elem(37,0,0.005541), Elem(37,1,0.007388), Elem(37,2,0.011082), Elem(37,3,0.022163), Elem(37,4,2.216334),
+ Elem(37,5,0.022163), Elem(37,6,0.011082), Elem(37,7,0.007388), Elem(37,8,0.005541), Elem(39,0,0.000025), Elem(39,1,0.000030), Elem(39,2,0.000037), Elem(39,3,0.000050),
+ Elem(39,4,0.000075), Elem(39,5,0.000150), Elem(39,6,0.014962), Elem(39,7,0.000150), Elem(39,8,0.000075), Elem(42,0,0.004455), Elem(42,1,0.005574), Elem(42,2,0.007455),
+ Elem(42,3,0.017765), Elem(42,4,0.022230), Elem(42,5,2.216367), Elem(42,6,0.022186), Elem(42,7,0.011098), Elem(42,8,0.007401), Elem(46,0,0.002469), Elem(46,1,0.002963),
+ Elem(46,2,0.003703), Elem(46,3,0.004938), Elem(46,4,0.007406), Elem(46,5,0.014813), Elem(46,6,1.481273), Elem(46,7,0.014813), Elem(46,8,0.007406), Elem(49,0,0.001414),
+ Elem(49,1,0.001650), Elem(49,2,0.001980), Elem(49,3,0.002475), Elem(49,4,0.003300), Elem(49,5,0.004950), Elem(49,6,0.009900), Elem(49,7,0.990000), Elem(49,8,0.009900),
+ Elem(54,0,0.001237), Elem(54,1,0.001414), Elem(54,2,0.001650), Elem(54,3,0.001980), Elem(54,4,0.002475), Elem(54,5,0.003300), Elem(54,6,0.004950), Elem(54,7,0.009900),
+ Elem(54,8,0.990000), Elem(58,0,0.000025), Elem(58,1,0.000030), Elem(58,2,0.000037), Elem(58,3,0.000050), Elem(58,4,0.000075), Elem(58,5,0.000150), Elem(58,6,0.014962),
+ Elem(58,7,0.000150), Elem(58,8,0.000075), Elem(66,0,0.006369), Elem(66,1,0.000153), Elem(66,2,0.008965), Elem(66,3,0.000110), Elem(66,4,0.000060), Elem(66,5,0.000042),
+ Elem(66,6,0.000033), Elem(66,7,0.000027), Elem(66,8,0.000023), Elem(73,0,0.000134), Elem(73,1,0.013367), Elem(73,2,0.000134), Elem(73,3,0.000067), Elem(73,4,0.000045),
+ Elem(73,5,0.000033), Elem(73,6,0.000027), Elem(73,7,0.000022), Elem(73,8,0.000019), Elem(78,0,0.000045), Elem(78,1,0.000067), Elem(78,2,0.000134), Elem(78,3,0.013367),
+ Elem(78,4,0.000134), Elem(78,5,0.000067), Elem(78,6,0.000045), Elem(78,7,0.000033), Elem(78,8,0.000027), Elem(85,0,0.000104), Elem(85,1,0.000129), Elem(85,2,0.000169),
+ Elem(85,3,0.000249), Elem(85,4,0.000481), Elem(85,5,0.044824), Elem(85,6,0.000548), Elem(85,7,0.010224), Elem(85,8,0.000249), Elem(89,0,0.000025), Elem(89,1,0.000030),
+ Elem(89,2,0.000037), Elem(89,3,0.000050), Elem(89,4,0.000075), Elem(89,5,0.000150), Elem(89,6,0.014962), Elem(89,7,0.000150), Elem(89,8,0.000075), Elem(90,2,0.000017),
+ Elem(90,3,0.000020), Elem(90,4,0.000025), Elem(90,5,0.000033), Elem(90,6,0.000050), Elem(90,7,0.000100), Elem(90,8,0.010000), },
+ { Elem(2,0,0.000029), Elem(2,1,0.000033), Elem(2,2,0.000040), Elem(2,3,0.000050), Elem(2,4,0.000067), Elem(2,5,0.000100), Elem(2,6,0.000200), Elem(2,7,0.020000),
+ Elem(2,8,0.000200), Elem(7,0,0.003210), Elem(7,1,0.000105), Elem(7,2,0.004516), Elem(7,3,0.000095), Elem(7,4,0.000080), Elem(7,5,0.000088), Elem(7,6,0.000116),
+ Elem(7,7,0.000213), Elem(7,8,0.020011), Elem(19,0,0.315277), Elem(19,1,0.007553), Elem(19,2,0.443782), Elem(19,3,0.005466), Elem(19,4,0.002994), Elem(19,5,0.002100),
+ Elem(19,6,0.001627), Elem(19,7,0.001332), Elem(19,8,0.001128), Elem(26,0,0.006673), Elem(26,1,0.661735), Elem(26,2,0.006729), Elem(26,3,0.003532), Elem(26,4,0.024593),
+ Elem(26,5,0.001878), Elem(26,6,0.001435), Elem(26,7,0.001177), Elem(26,8,0.001001), Elem(31,0,0.002206), Elem(31,1,0.003308), Elem(31,2,0.006617), Elem(31,3,0.661660),
+ Elem(31,4,0.006617), Elem(31,5,0.003308), Elem(31,6,0.002206), Elem(31,7,0.001654), Elem(31,8,0.001323), Elem(36,0,0.000045), Elem(36,1,0.000056), Elem(36,2,0.000075),
+ Elem(36,3,0.000112), Elem(36,4,0.000224), Elem(36,5,0.022387), Elem(36,6,0.000224), Elem(36,7,0.000112), Elem(36,8,0.000075), Elem(38,0,0.005608), Elem(38,1,0.014071),
+ Elem(38,2,0.011149), Elem(38,3,0.022197), Elem(38,4,2.216356), Elem(38,5,0.022180), Elem(38,6,0.011095), Elem(38,7,0.007399), Elem(38,8,0.005550), Elem(40,0,0.000025),
+ Elem(40,1,0.000030), Elem(40,2,0.000037), Elem(40,3,0.000050), Elem(40,4,0.000075), Elem(40,5,0.000150), Elem(40,6,0.014962), Elem(40,7,0.000150), Elem(40,8,0.000075),
+ Elem(43,0,0.004445), Elem(43,1,0.005555), Elem(43,2,0.007404), Elem(43,3,0.011102), Elem(43,4,0.022188), Elem(43,5,2.216367), Elem(43,6,0.022213), Elem(43,7,0.011182),
+ Elem(43,8,0.017388), Elem(45,0,0.000056), Elem(45,1,0.000075), Elem(45,2,0.000112), Elem(45,3,0.000224), Elem(45,4,0.022387), Elem(45,5,0.000224), Elem(45,6,0.000112),
+ Elem(45,7,0.000075), Elem(45,8,0.000056), Elem(47,0,0.002469), Elem(47,1,0.002963), Elem(47,2,0.003703), Elem(47,3,0.004938), Elem(47,4,0.007406), Elem(47,5,0.014813),
+ Elem(47,6,1.481273), Elem(47,7,0.014813), Elem(47,8,0.007406), Elem(50,0,0.001414), Elem(50,1,0.001650), Elem(50,2,0.001980), Elem(50,3,0.002475), Elem(50,4,0.003300),
+ Elem(50,5,0.004950), Elem(50,6,0.009900), Elem(50,7,0.990000), Elem(50,8,0.009900), Elem(55,0,0.001282), Elem(55,1,0.001470), Elem(55,2,0.001725), Elem(55,3,0.002092),
+ Elem(55,4,0.002699), Elem(55,5,0.025687), Elem(55,6,0.005174), Elem(55,7,0.010012), Elem(55,8,0.990075), Elem(59,0,0.000025), Elem(59,1,0.000030), Elem(59,2,0.000037),
+ Elem(59,3,0.000050), Elem(59,4,0.000075), Elem(59,5,0.000150), Elem(59,6,0.014962), Elem(59,7,0.000150), Elem(59,8,0.000075), Elem(67,0,0.006369), Elem(67,1,0.000153),
+ Elem(67,2,0.008965), Elem(67,3,0.000110), Elem(67,4,0.000060), Elem(67,5,0.000042), Elem(67,6,0.000033), Elem(67,7,0.000027), Elem(67,8,0.000023), Elem(74,0,0.000134),
+ Elem(74,1,0.013367), Elem(74,2,0.000134), Elem(74,3,0.000067), Elem(74,4,0.000045), Elem(74,5,0.000033), Elem(74,6,0.000027), Elem(74,7,0.000022), Elem(74,8,0.000019),
+ Elem(79,0,0.000045), Elem(79,1,0.000067), Elem(79,2,0.000134), Elem(79,3,0.013367), Elem(79,4,0.000134), Elem(79,5,0.000067), Elem(79,6,0.000045), Elem(79,7,0.000033),
+ Elem(79,8,0.000027), Elem(86,0,0.000081), Elem(86,1,0.000106), Elem(86,2,0.000161), Elem(86,3,0.006820), Elem(86,4,0.000324), Elem(86,5,0.022471), Elem(86,6,0.000346),
+ Elem(86,7,0.010129), Elem(86,8,0.000188), Elem(90,0,0.000025), Elem(90,1,0.000030), Elem(90,2,0.000037), Elem(90,3,0.000050), Elem(90,4,0.000075), Elem(90,5,0.000150),
+ Elem(90,6,0.014962), Elem(90,7,0.000150), Elem(90,8,0.000075), },
+ { Elem(0,0,0.000050), Elem(0,1,0.000060), Elem(0,2,0.000075), Elem(0,3,0.000100), Elem(0,4,0.000150), Elem(0,5,0.000299), Elem(0,6,0.029925), Elem(0,7,0.000299),
+ Elem(0,8,0.000150), Elem(3,0,0.000029), Elem(3,1,0.000033), Elem(3,2,0.000040), Elem(3,3,0.000050), Elem(3,4,0.000067), Elem(3,5,0.000100), Elem(3,6,0.000200),
+ Elem(3,7,0.020000), Elem(3,8,0.000200), Elem(8,0,0.003210), Elem(8,1,0.000105), Elem(8,2,0.004516), Elem(8,3,0.000095), Elem(8,4,0.000080), Elem(8,5,0.000088),
+ Elem(8,6,0.000116), Elem(8,7,0.000213), Elem(8,8,0.020011), Elem(20,0,0.315277), Elem(20,1,0.007553), Elem(20,2,0.443782), Elem(20,3,0.005466), Elem(20,4,0.002994),
+ Elem(20,5,0.002100), Elem(20,6,0.001627), Elem(20,7,0.001332), Elem(20,8,0.001128), Elem(27,0,0.006673), Elem(27,1,0.661735), Elem(27,2,0.006729), Elem(27,3,0.003532),
+ Elem(27,4,0.024593), Elem(27,5,0.001878), Elem(27,6,0.001435), Elem(27,7,0.001177), Elem(27,8,0.001001), Elem(32,0,0.002206), Elem(32,1,0.003308), Elem(32,2,0.006617),
+ Elem(32,3,0.661660), Elem(32,4,0.006617), Elem(32,5,0.003308), Elem(32,6,0.002206), Elem(32,7,0.001654), Elem(32,8,0.001323), Elem(33,0,0.000045), Elem(33,1,0.000056),
+ Elem(33,2,0.000075), Elem(33,3,0.000112), Elem(33,4,0.000224), Elem(33,5,0.022387), Elem(33,6,0.000224), Elem(33,7,0.000112), Elem(33,8,0.000075), Elem(39,0,0.005608),
+ Elem(39,1,0.014071), Elem(39,2,0.011149), Elem(39,3,0.022197), Elem(39,4,2.216356), Elem(39,5,0.022180), Elem(39,6,0.011095), Elem(39,7,0.007399), Elem(39,8,0.005550),
+ Elem(44,0,0.004445), Elem(44,1,0.005555), Elem(44,2,0.007404), Elem(44,3,0.011102), Elem(44,4,0.022188), Elem(44,5,2.216367), Elem(44,6,0.022213), Elem(44,7,0.011182),
+ Elem(44,8,0.017388), Elem(46,0,0.000056), Elem(46,1,0.000075), Elem(46,2,0.000112), Elem(46,3,0.000224), Elem(46,4,0.022387), Elem(46,5,0.000224), Elem(46,6,0.000112),
+ Elem(46,7,0.000075), Elem(46,8,0.000056), Elem(48,0,0.002469), Elem(48,1,0.002963), Elem(48,2,0.003703), Elem(48,3,0.004938), Elem(48,4,0.007406), Elem(48,5,0.014813),
+ Elem(48,6,1.481273), Elem(48,7,0.014813), Elem(48,8,0.007406), Elem(51,0,0.001414), Elem(51,1,0.001650), Elem(51,2,0.001980), Elem(51,3,0.002475), Elem(51,4,0.003300),
+ Elem(51,5,0.004950), Elem(51,6,0.009900), Elem(51,7,0.990000), Elem(51,8,0.009900), Elem(56,0,0.001282), Elem(56,1,0.001470), Elem(56,2,0.001725), Elem(56,3,0.002092),
+ Elem(56,4,0.002699), Elem(56,5,0.025687), Elem(56,6,0.005174), Elem(56,7,0.010012), Elem(56,8,0.990075), Elem(68,0,0.006369), Elem(68,1,0.000153), Elem(68,2,0.008965),
+ Elem(68,3,0.000110), Elem(68,4,0.000060), Elem(68,5,0.000042), Elem(68,6,0.000033), Elem(68,7,0.000027), Elem(68,8,0.000023), Elem(75,0,0.000134), Elem(75,1,0.013367),
+ Elem(75,2,0.000134), Elem(75,3,0.000067), Elem(75,4,0.000045), Elem(75,5,0.000033), Elem(75,6,0.000027), Elem(75,7,0.000022), Elem(75,8,0.000019), Elem(80,0,0.000045),
+ Elem(80,1,0.000067), Elem(80,2,0.000134), Elem(80,3,0.013367), Elem(80,4,0.000134), Elem(80,5,0.000067), Elem(80,6,0.000045), Elem(80,7,0.000033), Elem(80,8,0.000027),
+ Elem(87,0,0.000081), Elem(87,1,0.000106), Elem(87,2,0.000161), Elem(87,3,0.006820), Elem(87,4,0.000324), Elem(87,5,0.022471), Elem(87,6,0.000346), Elem(87,7,0.010129),
+ Elem(87,8,0.000188), },
+ { Elem(1,0,0.000050), Elem(1,1,0.000060), Elem(1,2,0.000075), Elem(1,3,0.000100), Elem(1,4,0.000150), Elem(1,5,0.000299), Elem(1,6,0.029925), Elem(1,7,0.000299),
+ Elem(1,8,0.000150), Elem(4,0,0.000029), Elem(4,1,0.000033), Elem(4,2,0.000040), Elem(4,3,0.000050), Elem(4,4,0.000067), Elem(4,5,0.000100), Elem(4,6,0.000200),
+ Elem(4,7,0.020000), Elem(4,8,0.000200), Elem(9,0,0.003210), Elem(9,1,0.000105), Elem(9,2,0.004516), Elem(9,3,0.000095), Elem(9,4,0.000080), Elem(9,5,0.000088),
+ Elem(9,6,0.000116), Elem(9,7,0.000213), Elem(9,8,0.020011), Elem(21,0,0.315277), Elem(21,1,0.007553), Elem(21,2,0.443782), Elem(21,3,0.005466), Elem(21,4,0.002994),
+ Elem(21,5,0.002100), Elem(21,6,0.001627), Elem(21,7,0.001332), Elem(21,8,0.001128), Elem(25,0,0.000022), Elem(25,1,0.000033), Elem(25,2,0.000067), Elem(25,3,0.006683),
+ Elem(25,4,0.000067), Elem(25,5,0.000033), Elem(25,6,0.000022), Elem(25,7,0.000017), Elem(28,0,0.006673), Elem(28,1,0.661735), Elem(28,2,0.006729), Elem(28,3,0.003532),
+ Elem(28,4,0.024593), Elem(28,5,0.001878), Elem(28,6,0.001435), Elem(28,7,0.001177), Elem(28,8,0.001001), Elem(33,0,0.002206), Elem(33,1,0.003308), Elem(33,2,0.006617),
+ Elem(33,3,0.661660), Elem(33,4,0.006617), Elem(33,5,0.003308), Elem(33,6,0.002206), Elem(33,7,0.001654), Elem(33,8,0.001323), Elem(38,0,0.000045), Elem(38,1,0.000056),
+ Elem(38,2,0.000075), Elem(38,3,0.000112), Elem(38,4,0.000224), Elem(38,5,0.022387), Elem(38,6,0.000224), Elem(38,7,0.000112), Elem(38,8,0.000075), Elem(40,0,0.005608),
+ Elem(40,1,0.014071), Elem(40,2,0.011149), Elem(40,3,0.022197), Elem(40,4,2.216356), Elem(40,5,0.022180), Elem(40,6,0.011095), Elem(40,7,0.007399), Elem(40,8,0.005550),
+ Elem(44,0,0.000022), Elem(44,1,0.000033), Elem(44,2,0.000067), Elem(44,3,0.006683), Elem(44,4,0.000067), Elem(44,5,0.000033), Elem(44,6,0.000022), Elem(44,7,0.000017),
+ Elem(45,0,0.004445), Elem(45,1,0.005555), Elem(45,2,0.007404), Elem(45,3,0.011102), Elem(45,4,0.022188), Elem(45,5,2.216367), Elem(45,6,0.022213), Elem(45,7,0.011182),
+ Elem(45,8,0.017388), Elem(47,0,0.000056), Elem(47,1,0.000075), Elem(47,2,0.000112), Elem(47,3,0.000224), Elem(47,4,0.022387), Elem(47,5,0.000224), Elem(47,6,0.000112),
+ Elem(47,7,0.000075), Elem(47,8,0.000056), Elem(49,0,0.002469), Elem(49,1,0.002963), Elem(49,2,0.003703), Elem(49,3,0.004938), Elem(49,4,0.007406), Elem(49,5,0.014813),
+ Elem(49,6,1.481273), Elem(49,7,0.014813), Elem(49,8,0.007406), Elem(52,0,0.001414), Elem(52,1,0.001650), Elem(52,2,0.001980), Elem(52,3,0.002475), Elem(52,4,0.003300),
+ Elem(52,5,0.004950), Elem(52,6,0.009900), Elem(52,7,0.990000), Elem(52,8,0.009900), Elem(57,0,0.001282), Elem(57,1,0.001470), Elem(57,2,0.001725), Elem(57,3,0.002092),
+ Elem(57,4,0.002699), Elem(57,5,0.025687), Elem(57,6,0.005174), Elem(57,7,0.010012), Elem(57,8,0.990075), Elem(69,0,0.006369), Elem(69,1,0.000153), Elem(69,2,0.008965),
+ Elem(69,3,0.000110), Elem(69,4,0.000060), Elem(69,5,0.000042), Elem(69,6,0.000033), Elem(69,7,0.000027), Elem(69,8,0.000023), Elem(76,0,0.000134), Elem(76,1,0.013367),
+ Elem(76,2,0.000134), Elem(76,3,0.000067), Elem(76,4,0.000045), Elem(76,5,0.000033), Elem(76,6,0.000027), Elem(76,7,0.000022), Elem(76,8,0.000019), Elem(81,0,0.000022),
+ Elem(81,1,0.000033), Elem(81,2,0.000067), Elem(81,3,0.006683), Elem(81,4,0.000067), Elem(81,5,0.000033), Elem(81,6,0.000022), Elem(81,7,0.000017), Elem(85,0,0.000025),
+ Elem(85,1,0.000030), Elem(85,2,0.000037), Elem(85,3,0.000050), Elem(85,4,0.000075), Elem(85,5,0.000150), Elem(85,6,0.014962), Elem(85,7,0.000150), Elem(85,8,0.000075),
+ Elem(88,0,0.000059), Elem(88,1,0.000073), Elem(88,2,0.000095), Elem(88,3,0.000137), Elem(88,4,0.000257), Elem(88,5,0.022437), Elem(88,6,0.000324), Elem(88,7,0.010112),
+ Elem(88,8,0.000175), },
+ { Elem(2,0,0.000050), Elem(2,1,0.000060), Elem(2,2,0.000075), Elem(2,3,0.000100), Elem(2,4,0.000150), Elem(2,5,0.000299), Elem(2,6,0.029925), Elem(2,7,0.000299),
+ Elem(2,8,0.000150), Elem(5,0,0.000029), Elem(5,1,0.000033), Elem(5,2,0.000040), Elem(5,3,0.000050), Elem(5,4,0.000067), Elem(5,5,0.000100), Elem(5,6,0.000200),
+ Elem(5,7,0.020000), Elem(5,8,0.000200), Elem(10,0,0.003210), Elem(10,1,0.000105), Elem(10,2,0.004516), Elem(10,3,0.000095), Elem(10,4,0.000080), Elem(10,5,0.000088),
+ Elem(10,6,0.000116), Elem(10,7,0.000213), Elem(10,8,0.020011), Elem(22,0,0.315277), Elem(22,1,0.007553), Elem(22,2,0.443782), Elem(22,3,0.005466), Elem(22,4,0.002994),
+ Elem(22,5,0.002100), Elem(22,6,0.001627), Elem(22,7,0.001332), Elem(22,8,0.001128), Elem(29,0,0.006673), Elem(29,1,0.661735), Elem(29,2,0.006729), Elem(29,3,0.003532),
+ Elem(29,4,0.024593), Elem(29,5,0.001878), Elem(29,6,0.001435), Elem(29,7,0.001177), Elem(29,8,0.001001), Elem(34,0,0.002206), Elem(34,1,0.003308), Elem(34,2,0.006617),
+ Elem(34,3,0.661660), Elem(34,4,0.006617), Elem(34,5,0.003308), Elem(34,6,0.002206), Elem(34,7,0.001654), Elem(34,8,0.001323), Elem(39,0,0.000045), Elem(39,1,0.000056),
+ Elem(39,2,0.000075), Elem(39,3,0.000112), Elem(39,4,0.000224), Elem(39,5,0.022387), Elem(39,6,0.000224), Elem(39,7,0.000112), Elem(39,8,0.000075), Elem(41,0,0.005608),
+ Elem(41,1,0.014071), Elem(41,2,0.011149), Elem(41,3,0.022197), Elem(41,4,2.216356), Elem(41,5,0.022180), Elem(41,6,0.011095), Elem(41,7,0.007399), Elem(41,8,0.005550),
+ Elem(46,0,0.004445), Elem(46,1,0.005555), Elem(46,2,0.007404), Elem(46,3,0.011102), Elem(46,4,0.022188), Elem(46,5,2.216367), Elem(46,6,0.022213), Elem(46,7,0.011182),
+ Elem(46,8,0.017388), Elem(50,0,0.002469), Elem(50,1,0.002963), Elem(50,2,0.003703), Elem(50,3,0.004938), Elem(50,4,0.007406), Elem(50,5,0.014813), Elem(50,6,1.481273),
+ Elem(50,7,0.014813), Elem(50,8,0.007406), Elem(53,0,0.001414), Elem(53,1,0.001650), Elem(53,2,0.001980), Elem(53,3,0.002475), Elem(53,4,0.003300), Elem(53,5,0.004950),
+ Elem(53,6,0.009900), Elem(53,7,0.990000), Elem(53,8,0.009900), Elem(58,0,0.001282), Elem(58,1,0.001470), Elem(58,2,0.001725), Elem(58,3,0.002092), Elem(58,4,0.002699),
+ Elem(58,5,0.025687), Elem(58,6,0.005174), Elem(58,7,0.010012), Elem(58,8,0.990075), Elem(70,0,0.006369), Elem(70,1,0.000153), Elem(70,2,0.008965), Elem(70,3,0.000110),
+ Elem(70,4,0.000060), Elem(70,5,0.000042), Elem(70,6,0.000033), Elem(70,7,0.000027), Elem(70,8,0.000023), Elem(75,0,0.000067), Elem(75,1,0.006683), Elem(75,2,0.000067),
+ Elem(75,3,0.000033), Elem(75,4,0.000022), Elem(75,5,0.000017), Elem(77,0,0.000067), Elem(77,1,0.006683), Elem(77,2,0.000067), Elem(77,3,0.000033), Elem(77,4,0.000022),
+ Elem(77,5,0.000017), Elem(82,0,0.000045), Elem(82,1,0.000067), Elem(82,2,0.000134), Elem(82,3,0.013367), Elem(82,4,0.000134), Elem(82,5,0.000067), Elem(82,6,0.000045),
+ Elem(82,7,0.000033), Elem(82,8,0.000027), Elem(84,0,0.000112), Elem(84,1,0.000149), Elem(84,2,0.000224), Elem(84,3,0.000448), Elem(84,4,0.044774), Elem(84,5,0.000448),
+ Elem(84,6,0.000224), Elem(84,7,0.000149), Elem(84,8,0.000112), Elem(86,0,0.000025), Elem(86,1,0.000030), Elem(86,2,0.000037), Elem(86,3,0.000050), Elem(86,4,0.000075),
+ Elem(86,5,0.000150), Elem(86,6,0.014962), Elem(86,7,0.000150), Elem(86,8,0.000075), Elem(89,0,0.000081), Elem(89,1,0.000106), Elem(89,2,0.000161), Elem(89,3,0.006820),
+ Elem(89,4,0.000324), Elem(89,5,0.022471), Elem(89,6,0.000346), Elem(89,7,0.010129), Elem(89,8,0.000188), },
+ { Elem(3,0,0.000050), Elem(3,1,0.000060), Elem(3,2,0.000075), Elem(3,3,0.000100), Elem(3,4,0.000150), Elem(3,5,0.000299), Elem(3,6,0.029925), Elem(3,7,0.000299),
+ Elem(3,8,0.000150), Elem(6,0,0.000029), Elem(6,1,0.000033), Elem(6,2,0.000040), Elem(6,3,0.000050), Elem(6,4,0.000067), Elem(6,5,0.000100), Elem(6,6,0.000200),
+ Elem(6,7,0.020000), Elem(6,8,0.000200), Elem(11,0,0.003210), Elem(11,1,0.000105), Elem(11,2,0.004516), Elem(11,3,0.000095), Elem(11,4,0.000080), Elem(11,5,0.000088),
+ Elem(11,6,0.000116), Elem(11,7,0.000213), Elem(11,8,0.020011), Elem(23,0,0.315277), Elem(23,1,0.007553), Elem(23,2,0.443782), Elem(23,3,0.005466), Elem(23,4,0.002994),
+ Elem(23,5,0.002100), Elem(23,6,0.001627), Elem(23,7,0.001332), Elem(23,8,0.001128), Elem(30,0,0.006673), Elem(30,1,0.661735), Elem(30,2,0.006729), Elem(30,3,0.003532),
+ Elem(30,4,0.024593), Elem(30,5,0.001878), Elem(30,6,0.001435), Elem(30,7,0.001177), Elem(30,8,0.001001), Elem(35,0,0.002206), Elem(35,1,0.003308), Elem(35,2,0.006617),
+ Elem(35,3,0.661660), Elem(35,4,0.006617), Elem(35,5,0.003308), Elem(35,6,0.002206), Elem(35,7,0.001654), Elem(35,8,0.001323), Elem(40,0,0.000045), Elem(40,1,0.000056),
+ Elem(40,2,0.000075), Elem(40,3,0.000112), Elem(40,4,0.000224), Elem(40,5,0.022387), Elem(40,6,0.000224), Elem(40,7,0.000112), Elem(40,8,0.000075), Elem(42,0,0.005608),
+ Elem(42,1,0.014071), Elem(42,2,0.011149), Elem(42,3,0.022197), Elem(42,4,2.216356), Elem(42,5,0.022180), Elem(42,6,0.011095), Elem(42,7,0.007399), Elem(42,8,0.005550),
+ Elem(47,0,0.004445), Elem(47,1,0.005555), Elem(47,2,0.007404), Elem(47,3,0.011102), Elem(47,4,0.022188), Elem(47,5,2.216367), Elem(47,6,0.022213), Elem(47,7,0.011182),
+ Elem(47,8,0.017388), Elem(51,0,0.002469), Elem(51,1,0.002963), Elem(51,2,0.003703), Elem(51,3,0.004938), Elem(51,4,0.007406), Elem(51,5,0.014813), Elem(51,6,1.481273),
+ Elem(51,7,0.014813), Elem(51,8,0.007406), Elem(54,0,0.001414), Elem(54,1,0.001650), Elem(54,2,0.001980), Elem(54,3,0.002475), Elem(54,4,0.003300), Elem(54,5,0.004950),
+ Elem(54,6,0.009900), Elem(54,7,0.990000), Elem(54,8,0.009900), Elem(59,0,0.001282), Elem(59,1,0.001470), Elem(59,2,0.001725), Elem(59,3,0.002092), Elem(59,4,0.002699),
+ Elem(59,5,0.025687), Elem(59,6,0.005174), Elem(59,7,0.010012), Elem(59,8,0.990075), Elem(71,0,0.006369), Elem(71,1,0.000153), Elem(71,2,0.008965), Elem(71,3,0.000110),
+ Elem(71,4,0.000060), Elem(71,5,0.000042), Elem(71,6,0.000033), Elem(71,7,0.000027), Elem(71,8,0.000023), Elem(78,0,0.000134), Elem(78,1,0.013367), Elem(78,2,0.000134),
+ Elem(78,3,0.000067), Elem(78,4,0.000045), Elem(78,5,0.000033), Elem(78,6,0.000027), Elem(78,7,0.000022), Elem(78,8,0.000019), Elem(83,0,0.000045), Elem(83,1,0.000067),
+ Elem(83,2,0.000134), Elem(83,3,0.013367), Elem(83,4,0.000134), Elem(83,5,0.000067), Elem(83,6,0.000045), Elem(83,7,0.000033), Elem(83,8,0.000027), Elem(85,0,0.000112),
+ Elem(85,1,0.000149), Elem(85,2,0.000224), Elem(85,3,0.000448), Elem(85,4,0.044774), Elem(85,5,0.000448), Elem(85,6,0.000224), Elem(85,7,0.000149), Elem(85,8,0.000112),
+ Elem(87,0,0.000025), Elem(87,1,0.000030), Elem(87,2,0.000037), Elem(87,3,0.000050), Elem(87,4,0.000075), Elem(87,5,0.000150), Elem(87,6,0.014962), Elem(87,7,0.000150),
+ Elem(87,8,0.000075), Elem(90,0,0.000081), Elem(90,1,0.000106), Elem(90,2,0.000161), Elem(90,3,0.006820), Elem(90,4,0.000324), Elem(90,5,0.022471), Elem(90,6,0.000346),
+ Elem(90,7,0.010129), Elem(90,8,0.000188), },
+ { Elem(0,0,0.004527), Elem(0,1,0.000119), Elem(0,2,0.000122), Elem(0,3,0.000165), Elem(0,4,0.000310), Elem(0,5,0.029934), Elem(0,6,0.000307), Elem(0,7,0.000156),
+ Elem(0,8,0.000105), Elem(4,0,0.000050), Elem(4,1,0.000060), Elem(4,2,0.000075), Elem(4,3,0.000100), Elem(4,4,0.000150), Elem(4,5,0.000299), Elem(4,6,0.029925),
+ Elem(4,7,0.000299), Elem(4,8,0.000150), Elem(7,0,0.000029), Elem(7,1,0.000033), Elem(7,2,0.000040), Elem(7,3,0.000050), Elem(7,4,0.000067), Elem(7,5,0.000100),
+ Elem(7,6,0.000200), Elem(7,7,0.020000), Elem(7,8,0.000200), Elem(12,0,0.442242), Elem(12,1,0.004451), Elem(12,2,0.002244), Elem(12,3,0.001514), Elem(12,4,0.001156),
+ Elem(12,5,0.000951), Elem(12,6,0.000837), Elem(12,7,0.000832), Elem(12,8,0.020553), Elem(24,0,0.002233), Elem(24,1,0.004456), Elem(24,2,0.442284), Elem(24,3,0.011106),
+ Elem(24,4,0.002278), Elem(24,5,0.001507), Elem(24,6,0.001128), Elem(24,7,0.000901), Elem(24,8,0.000750), Elem(31,0,0.006617), Elem(31,1,0.661660), Elem(31,2,0.006617),
+ Elem(31,3,0.003308), Elem(31,4,0.002206), Elem(31,5,0.001654), Elem(31,6,0.001323), Elem(31,7,0.001103), Elem(31,8,0.000945), Elem(36,0,0.002284), Elem(36,1,0.003428),
+ Elem(36,2,0.011195), Elem(36,3,0.661929), Elem(36,4,0.029026), Elem(36,5,0.003547), Elem(36,6,0.002329), Elem(36,7,0.001738), Elem(36,8,0.001387), Elem(43,0,0.005577),
+ Elem(43,1,0.007438), Elem(43,2,0.011169), Elem(43,3,0.028872), Elem(43,4,2.216434), Elem(43,5,0.022247), Elem(43,6,0.011204), Elem(43,7,0.017404), Elem(43,8,0.005654),
+ Elem(48,0,0.002963), Elem(48,1,0.003703), Elem(48,2,0.004938), Elem(48,3,0.007406), Elem(48,4,0.014813), Elem(48,5,1.481273), Elem(48,6,0.014813), Elem(48,7,0.007406),
+ Elem(48,8,0.004938), Elem(52,0,0.002469), Elem(52,1,0.002963), Elem(52,2,0.003703), Elem(52,3,0.004938), Elem(52,4,0.007406), Elem(52,5,0.014813), Elem(52,6,1.481273),
+ Elem(52,7,0.014813), Elem(52,8,0.007406), Elem(55,0,0.001470), Elem(55,1,0.001725), Elem(55,2,0.002092), Elem(55,3,0.002699), Elem(55,4,0.025687), Elem(55,5,0.005174),
+ Elem(55,6,0.010012), Elem(55,7,0.990075), Elem(55,8,0.009956), Elem(60,0,0.010171), Elem(60,1,0.001504), Elem(60,2,0.001695), Elem(60,3,0.002010), Elem(60,4,0.002497),
+ Elem(60,5,0.003318), Elem(60,6,0.004965), Elem(60,7,0.009913), Elem(60,8,0.990011), Elem(72,0,0.000057), Elem(72,1,0.000104), Elem(72,2,0.008950), Elem(72,3,0.000109),
+ Elem(72,4,0.000070), Elem(72,5,0.000063), Elem(72,6,0.000072), Elem(72,7,0.000118), Elem(72,8,0.010015), Elem(79,0,0.000134), Elem(79,1,0.013367), Elem(79,2,0.000134),
+ Elem(79,3,0.000067), Elem(79,4,0.000045), Elem(79,5,0.000033), Elem(79,6,0.000027), Elem(79,7,0.000022), Elem(79,8,0.000019), Elem(86,0,0.000123), Elem(86,1,0.006758),
+ Elem(86,2,0.000179), Elem(86,3,0.000257), Elem(86,4,0.022409), Elem(86,5,0.000241), Elem(86,6,0.000125), Elem(86,7,0.000086), Elem(86,8,0.000066), Elem(88,0,0.000025),
+ Elem(88,1,0.000030), Elem(88,2,0.000037), Elem(88,3,0.000050), Elem(88,4,0.000075), Elem(88,5,0.000150), Elem(88,6,0.014962), Elem(88,7,0.000150), Elem(88,8,0.000075),
+ },
+ { Elem(1,0,0.004527), Elem(1,1,0.000119), Elem(1,2,0.000122), Elem(1,3,0.000165), Elem(1,4,0.000310), Elem(1,5,0.029934), Elem(1,6,0.000307), Elem(1,7,0.000156),
+ Elem(1,8,0.000105), Elem(5,0,0.000050), Elem(5,1,0.000060), Elem(5,2,0.000075), Elem(5,3,0.000100), Elem(5,4,0.000150), Elem(5,5,0.000299), Elem(5,6,0.029925),
+ Elem(5,7,0.000299), Elem(5,8,0.000150), Elem(8,0,0.000029), Elem(8,1,0.000033), Elem(8,2,0.000040), Elem(8,3,0.000050), Elem(8,4,0.000067), Elem(8,5,0.000100),
+ Elem(8,6,0.000200), Elem(8,7,0.020000), Elem(8,8,0.000200), Elem(13,0,0.442242), Elem(13,1,0.004451), Elem(13,2,0.002244), Elem(13,3,0.001514), Elem(13,4,0.001156),
+ Elem(13,5,0.000951), Elem(13,6,0.000837), Elem(13,7,0.000832), Elem(13,8,0.020553), Elem(25,0,0.002211), Elem(25,1,0.004422), Elem(25,2,0.442217), Elem(25,3,0.004422),
+ Elem(25,4,0.002211), Elem(25,5,0.001474), Elem(25,6,0.001106), Elem(25,7,0.000884), Elem(25,8,0.000737), Elem(32,0,0.006617), Elem(32,1,0.661660), Elem(32,2,0.006617),
+ Elem(32,3,0.003308), Elem(32,4,0.002206), Elem(32,5,0.001654), Elem(32,6,0.001323), Elem(32,7,0.001103), Elem(32,8,0.000945), Elem(33,0,0.000078), Elem(33,1,0.000119),
+ Elem(33,2,0.004579), Elem(33,3,0.000269), Elem(33,4,0.022410), Elem(33,5,0.000239), Elem(33,6,0.000123), Elem(33,7,0.000084), Elem(33,8,0.000063), Elem(37,0,0.002206),
+ Elem(37,1,0.003308), Elem(37,2,0.006617), Elem(37,3,0.661660), Elem(37,4,0.006617), Elem(37,5,0.003308), Elem(37,6,0.002206), Elem(37,7,0.001654), Elem(37,8,0.001323),
+ Elem(44,0,0.005555), Elem(44,1,0.007404), Elem(44,2,0.011102), Elem(44,3,0.022188), Elem(44,4,2.216367), Elem(44,5,0.022213), Elem(44,6,0.011182), Elem(44,7,0.017388),
+ Elem(44,8,0.005641), Elem(49,0,0.002963), Elem(49,1,0.003703), Elem(49,2,0.004938), Elem(49,3,0.007406), Elem(49,4,0.014813), Elem(49,5,1.481273), Elem(49,6,0.014813),
+ Elem(49,7,0.007406), Elem(49,8,0.004938), Elem(53,0,0.002469), Elem(53,1,0.002963), Elem(53,2,0.003703), Elem(53,3,0.004938), Elem(53,4,0.007406), Elem(53,5,0.014813),
+ Elem(53,6,1.481273), Elem(53,7,0.014813), Elem(53,8,0.007406), Elem(56,0,0.001470), Elem(56,1,0.001725), Elem(56,2,0.002092), Elem(56,3,0.002699), Elem(56,4,0.025687),
+ Elem(56,5,0.005174), Elem(56,6,0.010012), Elem(56,7,0.990075), Elem(56,8,0.009956), Elem(61,0,0.010171), Elem(61,1,0.001504), Elem(61,2,0.001695), Elem(61,3,0.002010),
+ Elem(61,4,0.002497), Elem(61,5,0.003318), Elem(61,6,0.004965), Elem(61,7,0.009913), Elem(61,8,0.990011), Elem(73,0,0.000057), Elem(73,1,0.000104), Elem(73,2,0.008950),
+ Elem(73,3,0.000109), Elem(73,4,0.000070), Elem(73,5,0.000063), Elem(73,6,0.000072), Elem(73,7,0.000118), Elem(73,8,0.010015), Elem(80,0,0.000134), Elem(80,1,0.013367),
+ Elem(80,2,0.000134), Elem(80,3,0.000067), Elem(80,4,0.000045), Elem(80,5,0.000033), Elem(80,6,0.000027), Elem(80,7,0.000022), Elem(80,8,0.000019), Elem(85,0,0.000030),
+ Elem(85,1,0.000037), Elem(85,2,0.000050), Elem(85,3,0.000075), Elem(85,4,0.000150), Elem(85,5,0.014962), Elem(85,6,0.000150), Elem(85,7,0.000075), Elem(85,8,0.000050),
+ Elem(87,0,0.000123), Elem(87,1,0.006758), Elem(87,2,0.000179), Elem(87,3,0.000257), Elem(87,4,0.022409), Elem(87,5,0.000241), Elem(87,6,0.000125), Elem(87,7,0.000086),
+ Elem(87,8,0.000066), Elem(89,0,0.000025), Elem(89,1,0.000030), Elem(89,2,0.000037), Elem(89,3,0.000050), Elem(89,4,0.000075), Elem(89,5,0.000150), Elem(89,6,0.014962),
+ Elem(89,7,0.000150), Elem(89,8,0.000075), },
+ { Elem(2,0,0.004527), Elem(2,1,0.000119), Elem(2,2,0.000122), Elem(2,3,0.000165), Elem(2,4,0.000310), Elem(2,5,0.029934), Elem(2,6,0.000307), Elem(2,7,0.000156),
+ Elem(2,8,0.000105), Elem(6,0,0.000033), Elem(6,1,0.000040), Elem(6,2,0.000050), Elem(6,3,0.000067), Elem(6,4,0.000100), Elem(6,5,0.000200), Elem(6,6,0.020000),
+ Elem(6,7,0.000200), Elem(6,8,0.000100), Elem(9,0,0.000029), Elem(9,1,0.000033), Elem(9,2,0.000040), Elem(9,3,0.000050), Elem(9,4,0.000067), Elem(9,5,0.000100),
+ Elem(9,6,0.000200), Elem(9,7,0.020000), Elem(9,8,0.000200), Elem(14,0,0.442242), Elem(14,1,0.004451), Elem(14,2,0.002244), Elem(14,3,0.001514), Elem(14,4,0.001156),
+ Elem(14,5,0.000951), Elem(14,6,0.000837), Elem(14,7,0.000832), Elem(14,8,0.020553), Elem(25,0,0.000067), Elem(25,1,0.006683), Elem(25,2,0.000067), Elem(25,3,0.000033),
+ Elem(25,4,0.000022), Elem(25,5,0.000017), Elem(26,0,0.002233), Elem(26,1,0.004456), Elem(26,2,0.442284), Elem(26,3,0.011106), Elem(26,4,0.002278), Elem(26,5,0.001507),
+ Elem(26,6,0.001128), Elem(26,7,0.000901), Elem(26,8,0.000750), Elem(33,0,0.006617), Elem(33,1,0.661660), Elem(33,2,0.006617), Elem(33,3,0.003308), Elem(33,4,0.002206),
+ Elem(33,5,0.001654), Elem(33,6,0.001323), Elem(33,7,0.001103), Elem(33,8,0.000945), Elem(38,0,0.002265), Elem(38,1,0.003403), Elem(38,2,0.011158), Elem(38,3,0.661855),
+ Elem(38,4,0.021601), Elem(38,5,0.003473), Elem(38,6,0.002292), Elem(38,7,0.001713), Elem(38,8,0.001368), Elem(44,0,0.000067), Elem(44,1,0.006683), Elem(44,2,0.000067),
+ Elem(44,3,0.000033), Elem(44,4,0.000022), Elem(44,5,0.000017), Elem(45,0,0.003740), Elem(45,1,0.004988), Elem(45,2,0.007493), Elem(45,3,0.021521), Elem(45,4,1.481374),
+ Elem(45,5,0.014896), Elem(45,6,0.007529), Elem(45,7,0.014954), Elem(45,8,0.003817), Elem(50,0,0.002963), Elem(50,1,0.003703), Elem(50,2,0.004938), Elem(50,3,0.007406),
+ Elem(50,4,0.014813), Elem(50,5,1.481273), Elem(50,6,0.014813), Elem(50,7,0.007406), Elem(50,8,0.004938), Elem(54,0,0.001650), Elem(54,1,0.001980), Elem(54,2,0.002475),
+ Elem(54,3,0.003300), Elem(54,4,0.004950), Elem(54,5,0.009900), Elem(54,6,0.990000), Elem(54,7,0.009900), Elem(54,8,0.004950), Elem(57,0,0.001452), Elem(57,1,0.001700),
+ Elem(57,2,0.002055), Elem(57,3,0.002625), Elem(57,4,0.018262), Elem(57,5,0.005100), Elem(57,6,0.009975), Elem(57,7,0.990050), Elem(57,8,0.009937), Elem(62,0,0.010171),
+ Elem(62,1,0.001504), Elem(62,2,0.001695), Elem(62,3,0.002010), Elem(62,4,0.002497), Elem(62,5,0.003318), Elem(62,6,0.004965), Elem(62,7,0.009913), Elem(62,8,0.990011),
+ Elem(74,0,0.000057), Elem(74,1,0.000104), Elem(74,2,0.008950), Elem(74,3,0.000109), Elem(74,4,0.000070), Elem(74,5,0.000063), Elem(74,6,0.000072), Elem(74,7,0.000118),
+ Elem(74,8,0.010015), Elem(81,0,0.000067), Elem(81,1,0.006683), Elem(81,2,0.000067), Elem(81,3,0.000033), Elem(81,4,0.000022), Elem(81,5,0.000017), Elem(86,0,0.000030),
+ Elem(86,1,0.000037), Elem(86,2,0.000050), Elem(86,3,0.000075), Elem(86,4,0.000150), Elem(86,5,0.014962), Elem(86,6,0.000150), Elem(86,7,0.000075), Elem(86,8,0.000050),
+ Elem(88,0,0.000037), Elem(88,1,0.000050), Elem(88,2,0.000075), Elem(88,3,0.000150), Elem(88,4,0.014962), Elem(88,5,0.000150), Elem(88,6,0.000075), Elem(88,7,0.000050),
+ Elem(88,8,0.000037), Elem(90,0,0.000017), Elem(90,1,0.000020), Elem(90,2,0.000025), Elem(90,3,0.000033), Elem(90,4,0.000050), Elem(90,5,0.000100), Elem(90,6,0.010000),
+ Elem(90,7,0.000100), Elem(90,8,0.000050), },
+ { Elem(3,0,0.004507), Elem(3,1,0.000095), Elem(3,2,0.000089), Elem(3,3,0.000115), Elem(3,4,0.000211), Elem(3,5,0.020009), Elem(3,6,0.000207), Elem(3,7,0.000106),
+ Elem(3,8,0.000072), Elem(7,0,0.000033), Elem(7,1,0.000040), Elem(7,2,0.000050), Elem(7,3,0.000067), Elem(7,4,0.000100), Elem(7,5,0.000200), Elem(7,6,0.020000),
+ Elem(7,7,0.000200), Elem(7,8,0.000100), Elem(10,0,0.000029), Elem(10,1,0.000033), Elem(10,2,0.000040), Elem(10,3,0.000050), Elem(10,4,0.000067), Elem(10,5,0.000100),
+ Elem(10,6,0.000200), Elem(10,7,0.020000), Elem(10,8,0.000200), Elem(15,0,0.442242), Elem(15,1,0.004451), Elem(15,2,0.002244), Elem(15,3,0.001514), Elem(15,4,0.001156),
+ Elem(15,5,0.000951), Elem(15,6,0.000837), Elem(15,7,0.000832), Elem(15,8,0.020553), Elem(27,0,0.002233), Elem(27,1,0.004456), Elem(27,2,0.442284), Elem(27,3,0.011106),
+ Elem(27,4,0.002278), Elem(27,5,0.001507), Elem(27,6,0.001128), Elem(27,7,0.000901), Elem(27,8,0.000750), Elem(34,0,0.009900), Elem(34,1,0.990000), Elem(34,2,0.009900),
+ Elem(34,3,0.004950), Elem(34,4,0.003300), Elem(34,5,0.002475), Elem(34,6,0.001980), Elem(34,7,0.001650), Elem(34,8,0.001414), Elem(39,0,0.002265), Elem(39,1,0.003403),
+ Elem(39,2,0.011158), Elem(39,3,0.661855), Elem(39,4,0.021601), Elem(39,5,0.003473), Elem(39,6,0.002292), Elem(39,7,0.001713), Elem(39,8,0.001368), Elem(43,0,0.000017),
+ Elem(43,1,0.000020), Elem(43,2,0.000025), Elem(43,3,0.000033), Elem(43,4,0.000050), Elem(43,5,0.000100), Elem(43,6,0.010000), Elem(43,7,0.000100), Elem(43,8,0.000050),
+ Elem(46,0,0.003740), Elem(46,1,0.004988), Elem(46,2,0.007493), Elem(46,3,0.021521), Elem(46,4,1.481374), Elem(46,5,0.014896), Elem(46,6,0.007529), Elem(46,7,0.014954),
+ Elem(46,8,0.003817), Elem(51,0,0.001980), Elem(51,1,0.002475), Elem(51,2,0.003300), Elem(51,3,0.004950), Elem(51,4,0.009900), Elem(51,5,0.990000), Elem(51,6,0.009900),
+ Elem(51,7,0.004950), Elem(51,8,0.003300), Elem(55,0,0.001650), Elem(55,1,0.001980), Elem(55,2,0.002475), Elem(55,3,0.003300), Elem(55,4,0.004950), Elem(55,5,0.009900),
+ Elem(55,6,0.990000), Elem(55,7,0.009900), Elem(55,8,0.004950), Elem(58,0,0.001452), Elem(58,1,0.001700), Elem(58,2,0.002055), Elem(58,3,0.002625), Elem(58,4,0.018262),
+ Elem(58,5,0.005100), Elem(58,6,0.009975), Elem(58,7,0.990050), Elem(58,8,0.009937), Elem(63,0,0.010171), Elem(63,1,0.001504), Elem(63,2,0.001695), Elem(63,3,0.002010),
+ Elem(63,4,0.002497), Elem(63,5,0.003318), Elem(63,6,0.004965), Elem(63,7,0.009913), Elem(63,8,0.990011), Elem(75,0,0.000057), Elem(75,1,0.000104), Elem(75,2,0.008950),
+ Elem(75,3,0.000109), Elem(75,4,0.000070), Elem(75,5,0.000063), Elem(75,6,0.000072), Elem(75,7,0.000118), Elem(75,8,0.010015), Elem(82,0,0.000200), Elem(82,1,0.020000),
+ Elem(82,2,0.000200), Elem(82,3,0.000100), Elem(82,4,0.000067), Elem(82,5,0.000050), Elem(82,6,0.000040), Elem(82,7,0.000033), Elem(82,8,0.000029), Elem(87,0,0.000020),
+ Elem(87,1,0.000025), Elem(87,2,0.000033), Elem(87,3,0.000050), Elem(87,4,0.000100), Elem(87,5,0.010000), Elem(87,6,0.000100), Elem(87,7,0.000050), Elem(87,8,0.000033),
+ Elem(89,0,0.000137), Elem(89,1,0.010050), Elem(89,2,0.000175), Elem(89,3,0.000200), Elem(89,4,0.014996), Elem(89,5,0.000175), Elem(89,6,0.000095), Elem(89,7,0.000067),
+ Elem(89,8,0.000052), },
+ { Elem(4,0,0.004507), Elem(4,1,0.000095), Elem(4,2,0.000089), Elem(4,3,0.000115), Elem(4,4,0.000211), Elem(4,5,0.020009), Elem(4,6,0.000207), Elem(4,7,0.000106),
+ Elem(4,8,0.000072), Elem(8,0,0.000033), Elem(8,1,0.000040), Elem(8,2,0.000050), Elem(8,3,0.000067), Elem(8,4,0.000100), Elem(8,5,0.000200), Elem(8,6,0.020000),
+ Elem(8,7,0.000200), Elem(8,8,0.000100), Elem(11,0,0.000029), Elem(11,1,0.000033), Elem(11,2,0.000040), Elem(11,3,0.000050), Elem(11,4,0.000067), Elem(11,5,0.000100),
+ Elem(11,6,0.000200), Elem(11,7,0.020000), Elem(11,8,0.000200), Elem(16,0,0.442242), Elem(16,1,0.004451), Elem(16,2,0.002244), Elem(16,3,0.001514), Elem(16,4,0.001156),
+ Elem(16,5,0.000951), Elem(16,6,0.000837), Elem(16,7,0.000832), Elem(16,8,0.020553), Elem(28,0,0.002233), Elem(28,1,0.004456), Elem(28,2,0.442284), Elem(28,3,0.011106),
+ Elem(28,4,0.002278), Elem(28,5,0.001507), Elem(28,6,0.001128), Elem(28,7,0.000901), Elem(28,8,0.000750), Elem(35,0,0.009900), Elem(35,1,0.990000), Elem(35,2,0.009900),
+ Elem(35,3,0.004950), Elem(35,4,0.003300), Elem(35,5,0.002475), Elem(35,6,0.001980), Elem(35,7,0.001650), Elem(35,8,0.001414), Elem(40,0,0.002265), Elem(40,1,0.003403),
+ Elem(40,2,0.011158), Elem(40,3,0.661855), Elem(40,4,0.021601), Elem(40,5,0.003473), Elem(40,6,0.002292), Elem(40,7,0.001713), Elem(40,8,0.001368), Elem(44,0,0.000017),
+ Elem(44,1,0.000020), Elem(44,2,0.000025), Elem(44,3,0.000033), Elem(44,4,0.000050), Elem(44,5,0.000100), Elem(44,6,0.010000), Elem(44,7,0.000100), Elem(44,8,0.000050),
+ Elem(47,0,0.003740), Elem(47,1,0.004988), Elem(47,2,0.007493), Elem(47,3,0.021521), Elem(47,4,1.481374), Elem(47,5,0.014896), Elem(47,6,0.007529), Elem(47,7,0.014954),
+ Elem(47,8,0.003817), Elem(52,0,0.001980), Elem(52,1,0.002475), Elem(52,2,0.003300), Elem(52,3,0.004950), Elem(52,4,0.009900), Elem(52,5,0.990000), Elem(52,6,0.009900),
+ Elem(52,7,0.004950), Elem(52,8,0.003300), Elem(56,0,0.001650), Elem(56,1,0.001980), Elem(56,2,0.002475), Elem(56,3,0.003300), Elem(56,4,0.004950), Elem(56,5,0.009900),
+ Elem(56,6,0.990000), Elem(56,7,0.009900), Elem(56,8,0.004950), Elem(59,0,0.001452), Elem(59,1,0.001700), Elem(59,2,0.002055), Elem(59,3,0.002625), Elem(59,4,0.018262),
+ Elem(59,5,0.005100), Elem(59,6,0.009975), Elem(59,7,0.990050), Elem(59,8,0.009937), Elem(64,0,0.010171), Elem(64,1,0.001504), Elem(64,2,0.001695), Elem(64,3,0.002010),
+ Elem(64,4,0.002497), Elem(64,5,0.003318), Elem(64,6,0.004965), Elem(64,7,0.009913), Elem(64,8,0.990011), Elem(76,0,0.000057), Elem(76,1,0.000104), Elem(76,2,0.008950),
+ Elem(76,3,0.000109), Elem(76,4,0.000070), Elem(76,5,0.000063), Elem(76,6,0.000072), Elem(76,7,0.000118), Elem(76,8,0.010015), Elem(83,0,0.000200), Elem(83,1,0.020000),
+ Elem(83,2,0.000200), Elem(83,3,0.000100), Elem(83,4,0.000067), Elem(83,5,0.000050), Elem(83,6,0.000040), Elem(83,7,0.000033), Elem(83,8,0.000029), Elem(88,0,0.000020),
+ Elem(88,1,0.000025), Elem(88,2,0.000033), Elem(88,3,0.000050), Elem(88,4,0.000100), Elem(88,5,0.010000), Elem(88,6,0.000100), Elem(88,7,0.000050), Elem(88,8,0.000033),
+ Elem(90,0,0.000137), Elem(90,1,0.010050), Elem(90,2,0.000175), Elem(90,3,0.000200), Elem(90,4,0.014996), Elem(90,5,0.000175), Elem(90,6,0.000095), Elem(90,7,0.000067),
+ Elem(90,8,0.000052), },
+ { Elem(0,0,0.000075), Elem(0,1,0.000100), Elem(0,2,0.000150), Elem(0,3,0.000299), Elem(0,4,0.029925), Elem(0,5,0.000299), Elem(0,6,0.000150), Elem(0,7,0.000100),
+ Elem(0,8,0.000075), Elem(5,0,0.006723), Elem(5,1,0.000117), Elem(5,2,0.000100), Elem(5,3,0.000122), Elem(5,4,0.000217), Elem(5,5,0.020013), Elem(5,6,0.000211),
+ Elem(5,7,0.000110), Elem(5,8,0.000075), Elem(9,0,0.000033), Elem(9,1,0.000040), Elem(9,2,0.000050), Elem(9,3,0.000067), Elem(9,4,0.000100), Elem(9,5,0.000200),
+ Elem(9,6,0.020000), Elem(9,7,0.000200), Elem(9,8,0.000100), Elem(12,0,0.000029), Elem(12,1,0.000033), Elem(12,2,0.000040), Elem(12,3,0.000050), Elem(12,4,0.000067),
+ Elem(12,5,0.000100), Elem(12,6,0.000200), Elem(12,7,0.020000), Elem(12,8,0.000200), Elem(17,0,0.661686), Elem(17,1,0.006645), Elem(17,2,0.003342), Elem(17,3,0.002246),
+ Elem(17,4,0.001704), Elem(17,5,0.001390), Elem(17,6,0.001203), Elem(17,7,0.001145), Elem(17,8,0.020827), Elem(24,0,0.000100), Elem(24,1,0.010000), Elem(24,2,0.000100),
+ Elem(24,3,0.000050), Elem(24,4,0.000033), Elem(24,5,0.000025), Elem(24,6,0.000020), Elem(24,7,0.000017), Elem(29,0,0.003342), Elem(29,1,0.006667), Elem(29,2,0.661761),
+ Elem(29,3,0.016617), Elem(29,4,0.003408), Elem(29,5,0.002256), Elem(29,6,0.001687), Elem(29,7,0.001348), Elem(29,8,0.001123), Elem(36,0,0.009900), Elem(36,1,0.990000),
+ Elem(36,2,0.009900), Elem(36,3,0.004950), Elem(36,4,0.003300), Elem(36,5,0.002475), Elem(36,6,0.001980), Elem(36,7,0.001650), Elem(36,8,0.001414), Elem(41,0,0.003333),
+ Elem(41,1,0.005017), Elem(41,2,0.016583), Elem(41,3,0.990067), Elem(41,4,0.009933), Elem(41,5,0.004972), Elem(41,6,0.003317), Elem(41,7,0.002488), Elem(41,8,0.001991),
+ Elem(43,0,0.000100), Elem(43,1,0.010000), Elem(43,2,0.000100), Elem(43,3,0.000050), Elem(43,4,0.000033), Elem(43,5,0.000025), Elem(43,6,0.000020), Elem(43,7,0.000017),
+ Elem(45,0,0.000017), Elem(45,1,0.000020), Elem(45,2,0.000025), Elem(45,3,0.000033), Elem(45,4,0.000050), Elem(45,5,0.000100), Elem(45,6,0.010000), Elem(45,7,0.000100),
+ Elem(45,8,0.000050), Elem(48,0,0.003703), Elem(48,1,0.004938), Elem(48,2,0.007406), Elem(48,3,0.014813), Elem(48,4,1.481273), Elem(48,5,0.014813), Elem(48,6,0.007406),
+ Elem(48,7,0.004938), Elem(48,8,0.003703), Elem(53,0,0.001980), Elem(53,1,0.002475), Elem(53,2,0.003300), Elem(53,3,0.004950), Elem(53,4,0.009900), Elem(53,5,0.990000),
+ Elem(53,6,0.009900), Elem(53,7,0.004950), Elem(53,8,0.003300), Elem(57,0,0.001650), Elem(57,1,0.001980), Elem(57,2,0.002475), Elem(57,3,0.003300), Elem(57,4,0.004950),
+ Elem(57,5,0.009900), Elem(57,6,0.990000), Elem(57,7,0.009900), Elem(57,8,0.004950), Elem(60,0,0.001414), Elem(60,1,0.001650), Elem(60,2,0.001980), Elem(60,3,0.002475),
+ Elem(60,4,0.003300), Elem(60,5,0.004950), Elem(60,6,0.009900), Elem(60,7,0.990000), Elem(60,8,0.009900), Elem(65,0,0.014604), Elem(65,1,0.001548), Elem(65,2,0.001717),
+ Elem(65,3,0.002025), Elem(65,4,0.002508), Elem(65,5,0.003327), Elem(65,6,0.004972), Elem(65,7,0.009919), Elem(65,8,0.990017), Elem(72,1,0.000017), Elem(72,2,0.000020),
+ Elem(72,3,0.000025), Elem(72,4,0.000033), Elem(72,5,0.000050), Elem(72,6,0.000100), Elem(72,7,0.010000), Elem(72,8,0.000100), Elem(75,0,0.000046), Elem(75,1,0.000081),
+ Elem(75,2,0.006700), Elem(75,3,0.000087), Elem(75,4,0.000058), Elem(75,5,0.000056), Elem(75,6,0.000067), Elem(75,7,0.000113), Elem(75,8,0.010011), Elem(77,0,0.000033),
+ Elem(77,1,0.000067), Elem(77,2,0.006683), Elem(77,3,0.000067), Elem(77,4,0.000033), Elem(77,5,0.000022), Elem(77,6,0.000017), Elem(84,0,0.000067), Elem(84,1,0.000100),
+ Elem(84,2,0.000200), Elem(84,3,0.020000), Elem(84,4,0.000200), Elem(84,5,0.000100), Elem(84,6,0.000067), Elem(84,7,0.000050), Elem(84,8,0.000040), Elem(89,0,0.000020),
+ Elem(89,1,0.000025), Elem(89,2,0.000033), Elem(89,3,0.000050), Elem(89,4,0.000100), Elem(89,5,0.010000), Elem(89,6,0.000100), Elem(89,7,0.000050), Elem(89,8,0.000033),
+ },
+ { Elem(1,0,0.000075), Elem(1,1,0.000100), Elem(1,2,0.000150), Elem(1,3,0.000299), Elem(1,4,0.029925), Elem(1,5,0.000299), Elem(1,6,0.000150), Elem(1,7,0.000100),
+ Elem(1,8,0.000075), Elem(6,0,0.006723), Elem(6,1,0.000117), Elem(6,2,0.000100), Elem(6,3,0.000122), Elem(6,4,0.000217), Elem(6,5,0.020013), Elem(6,6,0.000211),
+ Elem(6,7,0.000110), Elem(6,8,0.000075), Elem(10,0,0.000033), Elem(10,1,0.000040), Elem(10,2,0.000050), Elem(10,3,0.000067), Elem(10,4,0.000100), Elem(10,5,0.000200),
+ Elem(10,6,0.020000), Elem(10,7,0.000200), Elem(10,8,0.000100), Elem(13,0,0.000029), Elem(13,1,0.000033), Elem(13,2,0.000040), Elem(13,3,0.000050), Elem(13,4,0.000067),
+ Elem(13,5,0.000100), Elem(13,6,0.000200), Elem(13,7,0.020000), Elem(13,8,0.000200), Elem(18,0,0.661686), Elem(18,1,0.006645), Elem(18,2,0.003342), Elem(18,3,0.002246),
+ Elem(18,4,0.001704), Elem(18,5,0.001390), Elem(18,6,0.001203), Elem(18,7,0.001145), Elem(18,8,0.020827), Elem(30,0,0.003342), Elem(30,1,0.006667), Elem(30,2,0.661761),
+ Elem(30,3,0.016617), Elem(30,4,0.003408), Elem(30,5,0.002256), Elem(30,6,0.001687), Elem(30,7,0.001348), Elem(30,8,0.001123), Elem(37,0,0.009900), Elem(37,1,0.990000),
+ Elem(37,2,0.009900), Elem(37,3,0.004950), Elem(37,4,0.003300), Elem(37,5,0.002475), Elem(37,6,0.001980), Elem(37,7,0.001650), Elem(37,8,0.001414), Elem(42,0,0.003333),
+ Elem(42,1,0.005017), Elem(42,2,0.016583), Elem(42,3,0.990067), Elem(42,4,0.009933), Elem(42,5,0.004972), Elem(42,6,0.003317), Elem(42,7,0.002488), Elem(42,8,0.001991),
+ Elem(46,0,0.000017), Elem(46,1,0.000020), Elem(46,2,0.000025), Elem(46,3,0.000033), Elem(46,4,0.000050), Elem(46,5,0.000100), Elem(46,6,0.010000), Elem(46,7,0.000100),
+ Elem(46,8,0.000050), Elem(49,0,0.003703), Elem(49,1,0.004938), Elem(49,2,0.007406), Elem(49,3,0.014813), Elem(49,4,1.481273), Elem(49,5,0.014813), Elem(49,6,0.007406),
+ Elem(49,7,0.004938), Elem(49,8,0.003703), Elem(54,0,0.001980), Elem(54,1,0.002475), Elem(54,2,0.003300), Elem(54,3,0.004950), Elem(54,4,0.009900), Elem(54,5,0.990000),
+ Elem(54,6,0.009900), Elem(54,7,0.004950), Elem(54,8,0.003300), Elem(58,0,0.001650), Elem(58,1,0.001980), Elem(58,2,0.002475), Elem(58,3,0.003300), Elem(58,4,0.004950),
+ Elem(58,5,0.009900), Elem(58,6,0.990000), Elem(58,7,0.009900), Elem(58,8,0.004950), Elem(61,0,0.001414), Elem(61,1,0.001650), Elem(61,2,0.001980), Elem(61,3,0.002475),
+ Elem(61,4,0.003300), Elem(61,5,0.004950), Elem(61,6,0.009900), Elem(61,7,0.990000), Elem(61,8,0.009900), Elem(66,0,0.014604), Elem(66,1,0.001548), Elem(66,2,0.001717),
+ Elem(66,3,0.002025), Elem(66,4,0.002508), Elem(66,5,0.003327), Elem(66,6,0.004972), Elem(66,7,0.009919), Elem(66,8,0.990017), Elem(73,1,0.000017), Elem(73,2,0.000020),
+ Elem(73,3,0.000025), Elem(73,4,0.000033), Elem(73,5,0.000050), Elem(73,6,0.000100), Elem(73,7,0.010000), Elem(73,8,0.000100), Elem(78,0,0.000079), Elem(78,1,0.000148),
+ Elem(78,2,0.013384), Elem(78,3,0.000154), Elem(78,4,0.000092), Elem(78,5,0.000078), Elem(78,6,0.000083), Elem(78,7,0.000127), Elem(78,8,0.010022), Elem(85,0,0.000104),
+ Elem(85,1,0.000150), Elem(85,2,0.000275), Elem(85,3,0.020150), Elem(85,4,0.015162), Elem(85,5,0.000250), Elem(85,6,0.000141), Elem(85,7,0.000100), Elem(85,8,0.000077),
+ Elem(90,0,0.000020), Elem(90,1,0.000025), Elem(90,2,0.000033), Elem(90,3,0.000050), Elem(90,4,0.000100), Elem(90,5,0.010000), Elem(90,6,0.000100), Elem(90,7,0.000050),
+ Elem(90,8,0.000033), },
+ { Elem(2,0,0.000075), Elem(2,1,0.000100), Elem(2,2,0.000150), Elem(2,3,0.000299), Elem(2,4,0.029925), Elem(2,5,0.000299), Elem(2,6,0.000150), Elem(2,7,0.000100),
+ Elem(2,8,0.000075), Elem(7,0,0.006723), Elem(7,1,0.000117), Elem(7,2,0.000100), Elem(7,3,0.000122), Elem(7,4,0.000217), Elem(7,5,0.020013), Elem(7,6,0.000211),
+ Elem(7,7,0.000110), Elem(7,8,0.000075), Elem(11,0,0.000033), Elem(11,1,0.000040), Elem(11,2,0.000050), Elem(11,3,0.000067), Elem(11,4,0.000100), Elem(11,5,0.000200),
+ Elem(11,6,0.020000), Elem(11,7,0.000200), Elem(11,8,0.000100), Elem(14,0,0.000029), Elem(14,1,0.000033), Elem(14,2,0.000040), Elem(14,3,0.000050), Elem(14,4,0.000067),
+ Elem(14,5,0.000100), Elem(14,6,0.000200), Elem(14,7,0.020000), Elem(14,8,0.000200), Elem(19,0,0.661686), Elem(19,1,0.006645), Elem(19,2,0.003342), Elem(19,3,0.002246),
+ Elem(19,4,0.001704), Elem(19,5,0.001390), Elem(19,6,0.001203), Elem(19,7,0.001145), Elem(19,8,0.020827), Elem(26,0,0.000100), Elem(26,1,0.010000), Elem(26,2,0.000100),
+ Elem(26,3,0.000050), Elem(26,4,0.000033), Elem(26,5,0.000025), Elem(26,6,0.000020), Elem(26,7,0.000017), Elem(31,0,0.003308), Elem(31,1,0.006617), Elem(31,2,0.661660),
+ Elem(31,3,0.006617), Elem(31,4,0.003308), Elem(31,5,0.002206), Elem(31,6,0.001654), Elem(31,7,0.001323), Elem(31,8,0.001103), Elem(36,0,0.000033), Elem(36,1,0.000050),
+ Elem(36,2,0.000100), Elem(36,3,0.010000), Elem(36,4,0.000100), Elem(36,5,0.000050), Elem(36,6,0.000033), Elem(36,7,0.000025), Elem(36,8,0.000020), Elem(38,0,0.009900),
+ Elem(38,1,0.990000), Elem(38,2,0.009900), Elem(38,3,0.004950), Elem(38,4,0.003300), Elem(38,5,0.002475), Elem(38,6,0.001980), Elem(38,7,0.001650), Elem(38,8,0.001414),
+ Elem(43,0,0.003320), Elem(43,1,0.004975), Elem(43,2,0.009933), Elem(43,3,0.990050), Elem(43,4,0.010000), Elem(43,5,0.014950), Elem(43,6,0.003400), Elem(43,7,0.002525),
+ Elem(43,8,0.002013), Elem(45,0,0.000100), Elem(45,1,0.010000), Elem(45,2,0.000100), Elem(45,3,0.000050), Elem(45,4,0.000033), Elem(45,5,0.000025), Elem(45,6,0.000020),
+ Elem(45,7,0.000017), Elem(47,0,0.000017), Elem(47,1,0.000020), Elem(47,2,0.000025), Elem(47,3,0.000033), Elem(47,4,0.000050), Elem(47,5,0.000100), Elem(47,6,0.010000),
+ Elem(47,7,0.000100), Elem(47,8,0.000050), Elem(50,0,0.003703), Elem(50,1,0.004938), Elem(50,2,0.007406), Elem(50,3,0.014813), Elem(50,4,1.481273), Elem(50,5,0.014813),
+ Elem(50,6,0.007406), Elem(50,7,0.004938), Elem(50,8,0.003703), Elem(55,0,0.002013), Elem(55,1,0.002525), Elem(55,2,0.003400), Elem(55,3,0.014950), Elem(55,4,0.010000),
+ Elem(55,5,0.990050), Elem(55,6,0.009933), Elem(55,7,0.004975), Elem(55,8,0.003320), Elem(59,0,0.001650), Elem(59,1,0.001980), Elem(59,2,0.002475), Elem(59,3,0.003300),
+ Elem(59,4,0.004950), Elem(59,5,0.009900), Elem(59,6,0.990000), Elem(59,7,0.009900), Elem(59,8,0.004950), Elem(62,0,0.001414), Elem(62,1,0.001650), Elem(62,2,0.001980),
+ Elem(62,3,0.002475), Elem(62,4,0.003300), Elem(62,5,0.004950), Elem(62,6,0.009900), Elem(62,7,0.990000), Elem(62,8,0.009900), Elem(67,0,0.014604), Elem(67,1,0.001548),
+ Elem(67,2,0.001717), Elem(67,3,0.002025), Elem(67,4,0.002508), Elem(67,5,0.003327), Elem(67,6,0.004972), Elem(67,7,0.009919), Elem(67,8,0.990017), Elem(74,1,0.000017),
+ Elem(74,2,0.000020), Elem(74,3,0.000025), Elem(74,4,0.000033), Elem(74,5,0.000050), Elem(74,6,0.000100), Elem(74,7,0.010000), Elem(74,8,0.000100), Elem(79,0,0.000079),
+ Elem(79,1,0.000148), Elem(79,2,0.013384), Elem(79,3,0.000154), Elem(79,4,0.000092), Elem(79,5,0.000078), Elem(79,6,0.000083), Elem(79,7,0.000127), Elem(79,8,0.010022),
+ Elem(86,0,0.000104), Elem(86,1,0.000167), Elem(86,2,0.006858), Elem(86,3,0.010216), Elem(86,4,0.015096), Elem(86,5,0.000222), Elem(86,6,0.000125), Elem(86,7,0.000088),
+ Elem(86,8,0.000069), },
+ { Elem(3,0,0.000050), Elem(3,1,0.000067), Elem(3,2,0.000100), Elem(3,3,0.000200), Elem(3,4,0.020000), Elem(3,5,0.000200), Elem(3,6,0.000100), Elem(3,7,0.000067),
+ Elem(3,8,0.000050), Elem(8,0,0.006723), Elem(8,1,0.000117), Elem(8,2,0.000100), Elem(8,3,0.000122), Elem(8,4,0.000217), Elem(8,5,0.020013), Elem(8,6,0.000211),
+ Elem(8,7,0.000110), Elem(8,8,0.000075), Elem(12,0,0.000033), Elem(12,1,0.000040), Elem(12,2,0.000050), Elem(12,3,0.000067), Elem(12,4,0.000100), Elem(12,5,0.000200),
+ Elem(12,6,0.020000), Elem(12,7,0.000200), Elem(12,8,0.000100), Elem(15,0,0.000029), Elem(15,1,0.000033), Elem(15,2,0.000040), Elem(15,3,0.000050), Elem(15,4,0.000067),
+ Elem(15,5,0.000100), Elem(15,6,0.000200), Elem(15,7,0.020000), Elem(15,8,0.000200), Elem(20,0,0.661686), Elem(20,1,0.006645), Elem(20,2,0.003342), Elem(20,3,0.002246),
+ Elem(20,4,0.001704), Elem(20,5,0.001390), Elem(20,6,0.001203), Elem(20,7,0.001145), Elem(20,8,0.020827), Elem(27,0,0.000100), Elem(27,1,0.010000), Elem(27,2,0.000100),
+ Elem(27,3,0.000050), Elem(27,4,0.000033), Elem(27,5,0.000025), Elem(27,6,0.000020), Elem(27,7,0.000017), Elem(32,0,0.003308), Elem(32,1,0.006617), Elem(32,2,0.661660),
+ Elem(32,3,0.006617), Elem(32,4,0.003308), Elem(32,5,0.002206), Elem(32,6,0.001654), Elem(32,7,0.001323), Elem(32,8,0.001103), Elem(33,0,0.000033), Elem(33,1,0.000050),
+ Elem(33,2,0.000100), Elem(33,3,0.010000), Elem(33,4,0.000100), Elem(33,5,0.000050), Elem(33,6,0.000033), Elem(33,7,0.000025), Elem(33,8,0.000020), Elem(39,0,0.009900),
+ Elem(39,1,0.990000), Elem(39,2,0.009900), Elem(39,3,0.004950), Elem(39,4,0.003300), Elem(39,5,0.002475), Elem(39,6,0.001980), Elem(39,7,0.001650), Elem(39,8,0.001414),
+ Elem(44,0,0.003320), Elem(44,1,0.004975), Elem(44,2,0.009933), Elem(44,3,0.990050), Elem(44,4,0.010000), Elem(44,5,0.014950), Elem(44,6,0.003400), Elem(44,7,0.002525),
+ Elem(44,8,0.002013), Elem(46,0,0.000100), Elem(46,1,0.010000), Elem(46,2,0.000100), Elem(46,3,0.000050), Elem(46,4,0.000033), Elem(46,5,0.000025), Elem(46,6,0.000020),
+ Elem(46,7,0.000017), Elem(51,0,0.002475), Elem(51,1,0.003300), Elem(51,2,0.004950), Elem(51,3,0.009900), Elem(51,4,0.990000), Elem(51,5,0.009900), Elem(51,6,0.004950),
+ Elem(51,7,0.003300), Elem(51,8,0.002475), Elem(56,0,0.002013), Elem(56,1,0.002525), Elem(56,2,0.003400), Elem(56,3,0.014950), Elem(56,4,0.010000), Elem(56,5,0.990050),
+ Elem(56,6,0.009933), Elem(56,7,0.004975), Elem(56,8,0.003320), Elem(60,0,0.001650), Elem(60,1,0.001980), Elem(60,2,0.002475), Elem(60,3,0.003300), Elem(60,4,0.004950),
+ Elem(60,5,0.009900), Elem(60,6,0.990000), Elem(60,7,0.009900), Elem(60,8,0.004950), Elem(63,0,0.001414), Elem(63,1,0.001650), Elem(63,2,0.001980), Elem(63,3,0.002475),
+ Elem(63,4,0.003300), Elem(63,5,0.004950), Elem(63,6,0.009900), Elem(63,7,0.990000), Elem(63,8,0.009900), Elem(68,0,0.014604), Elem(68,1,0.001548), Elem(68,2,0.001717),
+ Elem(68,3,0.002025), Elem(68,4,0.002508), Elem(68,5,0.003327), Elem(68,6,0.004972), Elem(68,7,0.009919), Elem(68,8,0.990017), Elem(72,0,0.000017), Elem(72,1,0.000020),
+ Elem(72,2,0.000025), Elem(72,3,0.000033), Elem(72,4,0.000050), Elem(72,5,0.000100), Elem(72,6,0.010000), Elem(72,7,0.000100), Elem(72,8,0.000050), Elem(75,1,0.000017),
+ Elem(75,2,0.000020), Elem(75,3,0.000025), Elem(75,4,0.000033), Elem(75,5,0.000050), Elem(75,6,0.000100), Elem(75,7,0.010000), Elem(75,8,0.000100), Elem(80,0,0.000079),
+ Elem(80,1,0.000148), Elem(80,2,0.013384), Elem(80,3,0.000154), Elem(80,4,0.000092), Elem(80,5,0.000078), Elem(80,6,0.000083), Elem(80,7,0.000127), Elem(80,8,0.010022),
+ Elem(87,0,0.000092), Elem(87,1,0.000150), Elem(87,2,0.006833), Elem(87,3,0.010167), Elem(87,4,0.010133), Elem(87,5,0.000172), Elem(87,6,0.000100), Elem(87,7,0.000072),
+ Elem(87,8,0.000056), },
+ { Elem(4,0,0.000050), Elem(4,1,0.000067), Elem(4,2,0.000100), Elem(4,3,0.000200), Elem(4,4,0.020000), Elem(4,5,0.000200), Elem(4,6,0.000100), Elem(4,7,0.000067),
+ Elem(4,8,0.000050), Elem(9,0,0.006723), Elem(9,1,0.000117), Elem(9,2,0.000100), Elem(9,3,0.000122), Elem(9,4,0.000217), Elem(9,5,0.020013), Elem(9,6,0.000211),
+ Elem(9,7,0.000110), Elem(9,8,0.000075), Elem(13,0,0.000033), Elem(13,1,0.000040), Elem(13,2,0.000050), Elem(13,3,0.000067), Elem(13,4,0.000100), Elem(13,5,0.000200),
+ Elem(13,6,0.020000), Elem(13,7,0.000200), Elem(13,8,0.000100), Elem(16,0,0.000029), Elem(16,1,0.000033), Elem(16,2,0.000040), Elem(16,3,0.000050), Elem(16,4,0.000067),
+ Elem(16,5,0.000100), Elem(16,6,0.000200), Elem(16,7,0.020000), Elem(16,8,0.000200), Elem(21,0,0.661686), Elem(21,1,0.006645), Elem(21,2,0.003342), Elem(21,3,0.002246),
+ Elem(21,4,0.001704), Elem(21,5,0.001390), Elem(21,6,0.001203), Elem(21,7,0.001145), Elem(21,8,0.020827), Elem(25,0,0.000033), Elem(25,1,0.000067), Elem(25,2,0.006683),
+ Elem(25,3,0.000067), Elem(25,4,0.000033), Elem(25,5,0.000022), Elem(25,6,0.000017), Elem(28,0,0.000100), Elem(28,1,0.010000), Elem(28,2,0.000100), Elem(28,3,0.000050),
+ Elem(28,4,0.000033), Elem(28,5,0.000025), Elem(28,6,0.000020), Elem(28,7,0.000017), Elem(33,0,0.003308), Elem(33,1,0.006617), Elem(33,2,0.661660), Elem(33,3,0.006617),
+ Elem(33,4,0.003308), Elem(33,5,0.002206), Elem(33,6,0.001654), Elem(33,7,0.001323), Elem(33,8,0.001103), Elem(38,0,0.000033), Elem(38,1,0.000050), Elem(38,2,0.000100),
+ Elem(38,3,0.010000), Elem(38,4,0.000100), Elem(38,5,0.000050), Elem(38,6,0.000033), Elem(38,7,0.000025), Elem(38,8,0.000020), Elem(40,0,0.009900), Elem(40,1,0.990000),
+ Elem(40,2,0.009900), Elem(40,3,0.004950), Elem(40,4,0.003300), Elem(40,5,0.002475), Elem(40,6,0.001980), Elem(40,7,0.001650), Elem(40,8,0.001414), Elem(44,0,0.000033),
+ Elem(44,1,0.000067), Elem(44,2,0.006683), Elem(44,3,0.000067), Elem(44,4,0.000033), Elem(44,5,0.000022), Elem(44,6,0.000017), Elem(45,0,0.003320), Elem(45,1,0.004975),
+ Elem(45,2,0.009933), Elem(45,3,0.990050), Elem(45,4,0.010000), Elem(45,5,0.014950), Elem(45,6,0.003400), Elem(45,7,0.002525), Elem(45,8,0.002013), Elem(47,0,0.000100),
+ Elem(47,1,0.010000), Elem(47,2,0.000100), Elem(47,3,0.000050), Elem(47,4,0.000033), Elem(47,5,0.000025), Elem(47,6,0.000020), Elem(47,7,0.000017), Elem(52,0,0.002475),
+ Elem(52,1,0.003300), Elem(52,2,0.004950), Elem(52,3,0.009900), Elem(52,4,0.990000), Elem(52,5,0.009900), Elem(52,6,0.004950), Elem(52,7,0.003300), Elem(52,8,0.002475),
+ Elem(57,0,0.002013), Elem(57,1,0.002525), Elem(57,2,0.003400), Elem(57,3,0.014950), Elem(57,4,0.010000), Elem(57,5,0.990050), Elem(57,6,0.009933), Elem(57,7,0.004975),
+ Elem(57,8,0.003320), Elem(61,0,0.001650), Elem(61,1,0.001980), Elem(61,2,0.002475), Elem(61,3,0.003300), Elem(61,4,0.004950), Elem(61,5,0.009900), Elem(61,6,0.990000),
+ Elem(61,7,0.009900), Elem(61,8,0.004950), Elem(64,0,0.001414), Elem(64,1,0.001650), Elem(64,2,0.001980), Elem(64,3,0.002475), Elem(64,4,0.003300), Elem(64,5,0.004950),
+ Elem(64,6,0.009900), Elem(64,7,0.990000), Elem(64,8,0.009900), Elem(69,0,0.014604), Elem(69,1,0.001548), Elem(69,2,0.001717), Elem(69,3,0.002025), Elem(69,4,0.002508),
+ Elem(69,5,0.003327), Elem(69,6,0.004972), Elem(69,7,0.009919), Elem(69,8,0.990017), Elem(73,0,0.000017), Elem(73,1,0.000020), Elem(73,2,0.000025), Elem(73,3,0.000033),
+ Elem(73,4,0.000050), Elem(73,5,0.000100), Elem(73,6,0.010000), Elem(73,7,0.000100), Elem(73,8,0.000050), Elem(76,1,0.000017), Elem(76,2,0.000020), Elem(76,3,0.000025),
+ Elem(76,4,0.000033), Elem(76,5,0.000050), Elem(76,6,0.000100), Elem(76,7,0.010000), Elem(76,8,0.000100), Elem(81,0,0.000046), Elem(81,1,0.000081), Elem(81,2,0.006700),
+ Elem(81,3,0.000087), Elem(81,4,0.000058), Elem(81,5,0.000056), Elem(81,6,0.000067), Elem(81,7,0.000113), Elem(81,8,0.010011), Elem(88,0,0.000058), Elem(88,1,0.000083),
+ Elem(88,2,0.000150), Elem(88,3,0.010100), Elem(88,4,0.010100), Elem(88,5,0.000150), Elem(88,6,0.000083), Elem(88,7,0.000058), Elem(88,8,0.000045), },
+ { Elem(5,0,0.000050), Elem(5,1,0.000067), Elem(5,2,0.000100), Elem(5,3,0.000200), Elem(5,4,0.020000), Elem(5,5,0.000200), Elem(5,6,0.000100), Elem(5,7,0.000067),
+ Elem(5,8,0.000050), Elem(10,0,0.006723), Elem(10,1,0.000117), Elem(10,2,0.000100), Elem(10,3,0.000122), Elem(10,4,0.000217), Elem(10,5,0.020013), Elem(10,6,0.000211),
+ Elem(10,7,0.000110), Elem(10,8,0.000075), Elem(14,0,0.000033), Elem(14,1,0.000040), Elem(14,2,0.000050), Elem(14,3,0.000067), Elem(14,4,0.000100), Elem(14,5,0.000200),
+ Elem(14,6,0.020000), Elem(14,7,0.000200), Elem(14,8,0.000100), Elem(17,0,0.000029), Elem(17,1,0.000033), Elem(17,2,0.000040), Elem(17,3,0.000050), Elem(17,4,0.000067),
+ Elem(17,5,0.000100), Elem(17,6,0.000200), Elem(17,7,0.020000), Elem(17,8,0.000200), Elem(22,0,0.661686), Elem(22,1,0.006645), Elem(22,2,0.003342), Elem(22,3,0.002246),
+ Elem(22,4,0.001704), Elem(22,5,0.001390), Elem(22,6,0.001203), Elem(22,7,0.001145), Elem(22,8,0.020827), Elem(29,0,0.000100), Elem(29,1,0.010000), Elem(29,2,0.000100),
+ Elem(29,3,0.000050), Elem(29,4,0.000033), Elem(29,5,0.000025), Elem(29,6,0.000020), Elem(29,7,0.000017), Elem(34,0,0.004950), Elem(34,1,0.009900), Elem(34,2,0.990000),
+ Elem(34,3,0.009900), Elem(34,4,0.004950), Elem(34,5,0.003300), Elem(34,6,0.002475), Elem(34,7,0.001980), Elem(34,8,0.001650), Elem(39,0,0.000033), Elem(39,1,0.000050),
+ Elem(39,2,0.000100), Elem(39,3,0.010000), Elem(39,4,0.000100), Elem(39,5,0.000050), Elem(39,6,0.000033), Elem(39,7,0.000025), Elem(39,8,0.000020), Elem(41,0,0.009900),
+ Elem(41,1,0.990000), Elem(41,2,0.009900), Elem(41,3,0.004950), Elem(41,4,0.003300), Elem(41,5,0.002475), Elem(41,6,0.001980), Elem(41,7,0.001650), Elem(41,8,0.001414),
+ Elem(46,0,0.003320), Elem(46,1,0.004975), Elem(46,2,0.009933), Elem(46,3,0.990050), Elem(46,4,0.010000), Elem(46,5,0.014950), Elem(46,6,0.003400), Elem(46,7,0.002525),
+ Elem(46,8,0.002013), Elem(53,0,0.002475), Elem(53,1,0.003300), Elem(53,2,0.004950), Elem(53,3,0.009900), Elem(53,4,0.990000), Elem(53,5,0.009900), Elem(53,6,0.004950),
+ Elem(53,7,0.003300), Elem(53,8,0.002475), Elem(58,0,0.002013), Elem(58,1,0.002525), Elem(58,2,0.003400), Elem(58,3,0.014950), Elem(58,4,0.010000), Elem(58,5,0.990050),
+ Elem(58,6,0.009933), Elem(58,7,0.004975), Elem(58,8,0.003320), Elem(62,0,0.001650), Elem(62,1,0.001980), Elem(62,2,0.002475), Elem(62,3,0.003300), Elem(62,4,0.004950),
+ Elem(62,5,0.009900), Elem(62,6,0.990000), Elem(62,7,0.009900), Elem(62,8,0.004950), Elem(65,0,0.001414), Elem(65,1,0.001650), Elem(65,2,0.001980), Elem(65,3,0.002475),
+ Elem(65,4,0.003300), Elem(65,5,0.004950), Elem(65,6,0.009900), Elem(65,7,0.990000), Elem(65,8,0.009900), Elem(70,0,0.014604), Elem(70,1,0.001548), Elem(70,2,0.001717),
+ Elem(70,3,0.002025), Elem(70,4,0.002508), Elem(70,5,0.003327), Elem(70,6,0.004972), Elem(70,7,0.009919), Elem(70,8,0.990017), Elem(74,0,0.000017), Elem(74,1,0.000020),
+ Elem(74,2,0.000025), Elem(74,3,0.000033), Elem(74,4,0.000050), Elem(74,5,0.000100), Elem(74,6,0.010000), Elem(74,7,0.000100), Elem(74,8,0.000050), Elem(75,1,0.000017),
+ Elem(75,2,0.000020), Elem(75,3,0.000025), Elem(75,4,0.000033), Elem(75,5,0.000050), Elem(75,6,0.000100), Elem(75,7,0.010000), Elem(75,8,0.000100), Elem(82,0,0.000112),
+ Elem(82,1,0.000214), Elem(82,2,0.020017), Elem(82,3,0.000220), Elem(82,4,0.000125), Elem(82,5,0.000100), Elem(82,6,0.000100), Elem(82,7,0.000140), Elem(82,8,0.010033),
+ Elem(84,0,0.000200), Elem(84,1,0.020000), Elem(84,2,0.000200), Elem(84,3,0.000100), Elem(84,4,0.000067), Elem(84,5,0.000050), Elem(84,6,0.000040), Elem(84,7,0.000033),
+ Elem(84,8,0.000029), Elem(89,0,0.000108), Elem(89,1,0.000183), Elem(89,2,0.010150), Elem(89,3,0.010200), Elem(89,4,0.010150), Elem(89,5,0.000183), Elem(89,6,0.000108),
+ Elem(89,7,0.000078), Elem(89,8,0.000062), },
+ { Elem(6,0,0.000050), Elem(6,1,0.000067), Elem(6,2,0.000100), Elem(6,3,0.000200), Elem(6,4,0.020000), Elem(6,5,0.000200), Elem(6,6,0.000100), Elem(6,7,0.000067),
+ Elem(6,8,0.000050), Elem(11,0,0.006723), Elem(11,1,0.000117), Elem(11,2,0.000100), Elem(11,3,0.000122), Elem(11,4,0.000217), Elem(11,5,0.020013), Elem(11,6,0.000211),
+ Elem(11,7,0.000110), Elem(11,8,0.000075), Elem(15,0,0.000033), Elem(15,1,0.000040), Elem(15,2,0.000050), Elem(15,3,0.000067), Elem(15,4,0.000100), Elem(15,5,0.000200),
+ Elem(15,6,0.020000), Elem(15,7,0.000200), Elem(15,8,0.000100), Elem(18,0,0.000029), Elem(18,1,0.000033), Elem(18,2,0.000040), Elem(18,3,0.000050), Elem(18,4,0.000067),
+ Elem(18,5,0.000100), Elem(18,6,0.000200), Elem(18,7,0.020000), Elem(18,8,0.000200), Elem(23,0,0.661686), Elem(23,1,0.006645), Elem(23,2,0.003342), Elem(23,3,0.002246),
+ Elem(23,4,0.001704), Elem(23,5,0.001390), Elem(23,6,0.001203), Elem(23,7,0.001145), Elem(23,8,0.020827), Elem(30,0,0.000100), Elem(30,1,0.010000), Elem(30,2,0.000100),
+ Elem(30,3,0.000050), Elem(30,4,0.000033), Elem(30,5,0.000025), Elem(30,6,0.000020), Elem(30,7,0.000017), Elem(35,0,0.004950), Elem(35,1,0.009900), Elem(35,2,0.990000),
+ Elem(35,3,0.009900), Elem(35,4,0.004950), Elem(35,5,0.003300), Elem(35,6,0.002475), Elem(35,7,0.001980), Elem(35,8,0.001650), Elem(40,0,0.000033), Elem(40,1,0.000050),
+ Elem(40,2,0.000100), Elem(40,3,0.010000), Elem(40,4,0.000100), Elem(40,5,0.000050), Elem(40,6,0.000033), Elem(40,7,0.000025), Elem(40,8,0.000020), Elem(42,0,0.009900),
+ Elem(42,1,0.990000), Elem(42,2,0.009900), Elem(42,3,0.004950), Elem(42,4,0.003300), Elem(42,5,0.002475), Elem(42,6,0.001980), Elem(42,7,0.001650), Elem(42,8,0.001414),
+ Elem(47,0,0.003320), Elem(47,1,0.004975), Elem(47,2,0.009933), Elem(47,3,0.990050), Elem(47,4,0.010000), Elem(47,5,0.014950), Elem(47,6,0.003400), Elem(47,7,0.002525),
+ Elem(47,8,0.002013), Elem(54,0,0.002475), Elem(54,1,0.003300), Elem(54,2,0.004950), Elem(54,3,0.009900), Elem(54,4,0.990000), Elem(54,5,0.009900), Elem(54,6,0.004950),
+ Elem(54,7,0.003300), Elem(54,8,0.002475), Elem(59,0,0.002013), Elem(59,1,0.002525), Elem(59,2,0.003400), Elem(59,3,0.014950), Elem(59,4,0.010000), Elem(59,5,0.990050),
+ Elem(59,6,0.009933), Elem(59,7,0.004975), Elem(59,8,0.003320), Elem(63,0,0.001650), Elem(63,1,0.001980), Elem(63,2,0.002475), Elem(63,3,0.003300), Elem(63,4,0.004950),
+ Elem(63,5,0.009900), Elem(63,6,0.990000), Elem(63,7,0.009900), Elem(63,8,0.004950), Elem(66,0,0.001414), Elem(66,1,0.001650), Elem(66,2,0.001980), Elem(66,3,0.002475),
+ Elem(66,4,0.003300), Elem(66,5,0.004950), Elem(66,6,0.009900), Elem(66,7,0.990000), Elem(66,8,0.009900), Elem(71,0,0.014604), Elem(71,1,0.001548), Elem(71,2,0.001717),
+ Elem(71,3,0.002025), Elem(71,4,0.002508), Elem(71,5,0.003327), Elem(71,6,0.004972), Elem(71,7,0.009919), Elem(71,8,0.990017), Elem(75,0,0.000017), Elem(75,1,0.000020),
+ Elem(75,2,0.000025), Elem(75,3,0.000033), Elem(75,4,0.000050), Elem(75,5,0.000100), Elem(75,6,0.010000), Elem(75,7,0.000100), Elem(75,8,0.000050), Elem(78,1,0.000017),
+ Elem(78,2,0.000020), Elem(78,3,0.000025), Elem(78,4,0.000033), Elem(78,5,0.000050), Elem(78,6,0.000100), Elem(78,7,0.010000), Elem(78,8,0.000100), Elem(83,0,0.000112),
+ Elem(83,1,0.000214), Elem(83,2,0.020017), Elem(83,3,0.000220), Elem(83,4,0.000125), Elem(83,5,0.000100), Elem(83,6,0.000100), Elem(83,7,0.000140), Elem(83,8,0.010033),
+ Elem(85,0,0.000200), Elem(85,1,0.020000), Elem(85,2,0.000200), Elem(85,3,0.000100), Elem(85,4,0.000067), Elem(85,5,0.000050), Elem(85,6,0.000040), Elem(85,7,0.000033),
+ Elem(85,8,0.000029), Elem(90,0,0.000108), Elem(90,1,0.000183), Elem(90,2,0.010150), Elem(90,3,0.010200), Elem(90,4,0.010150), Elem(90,5,0.000183), Elem(90,6,0.000108),
+ Elem(90,7,0.000078), Elem(90,8,0.000062), },
+ { Elem(0,0,0.000067), Elem(0,1,0.000100), Elem(0,2,0.000200), Elem(0,3,0.020000), Elem(0,4,0.000200), Elem(0,5,0.000100), Elem(0,6,0.000067), Elem(0,7,0.000050),
+ Elem(0,8,0.000040), Elem(7,0,0.000050), Elem(7,1,0.000067), Elem(7,2,0.000100), Elem(7,3,0.000200), Elem(7,4,0.020000), Elem(7,5,0.000200), Elem(7,6,0.000100),
+ Elem(7,7,0.000067), Elem(7,8,0.000050), Elem(12,0,0.000040), Elem(12,1,0.000050), Elem(12,2,0.000067), Elem(12,3,0.000100), Elem(12,4,0.000200), Elem(12,5,0.020000),
+ Elem(12,6,0.000200), Elem(12,7,0.000100), Elem(12,8,0.000067), Elem(16,0,0.000033), Elem(16,1,0.000040), Elem(16,2,0.000050), Elem(16,3,0.000067), Elem(16,4,0.000100),
+ Elem(16,5,0.000200), Elem(16,6,0.020000), Elem(16,7,0.000200), Elem(16,8,0.000100), Elem(19,0,0.000029), Elem(19,1,0.000033), Elem(19,2,0.000040), Elem(19,3,0.000050),
+ Elem(19,4,0.000067), Elem(19,5,0.000100), Elem(19,6,0.000200), Elem(19,7,0.020000), Elem(19,8,0.000200), Elem(24,0,0.990075), Elem(24,1,0.010029), Elem(24,2,0.014983),
+ Elem(24,3,0.003440), Elem(24,4,0.002575), Elem(24,5,0.002080), Elem(24,6,0.001775), Elem(24,7,0.001634), Elem(24,8,0.021254), Elem(36,0,0.015050), Elem(36,1,0.020000),
+ Elem(36,2,0.990150), Elem(36,3,0.009983), Elem(36,4,0.005008), Elem(36,5,0.003345), Elem(36,6,0.002512), Elem(36,7,0.002011), Elem(36,8,0.001677), Elem(43,0,0.009975),
+ Elem(43,1,0.990133), Elem(43,2,0.019950), Elem(43,3,0.005150), Elem(43,4,0.013350), Elem(43,5,0.002608), Elem(43,6,0.002055), Elem(43,7,0.001703), Elem(43,8,0.001456),
+ Elem(48,0,0.003300), Elem(48,1,0.004950), Elem(48,2,0.009900), Elem(48,3,0.990000), Elem(48,4,0.009900), Elem(48,5,0.004950), Elem(48,6,0.003300), Elem(48,7,0.002475),
+ Elem(48,8,0.001980), Elem(55,0,0.002575), Elem(55,1,0.013300), Elem(55,2,0.005050), Elem(55,3,0.009950), Elem(55,4,0.990033), Elem(55,5,0.009925), Elem(55,6,0.004970),
+ Elem(55,7,0.003317), Elem(55,8,0.002489), Elem(60,0,0.001993), Elem(60,1,0.002489), Elem(60,2,0.003317), Elem(60,3,0.004970), Elem(60,4,0.009925), Elem(60,5,0.990033),
+ Elem(60,6,0.009950), Elem(60,7,0.005050), Elem(60,8,0.013300), Elem(64,0,0.001650), Elem(64,1,0.001980), Elem(64,2,0.002475), Elem(64,3,0.003300), Elem(64,4,0.004950),
+ Elem(64,5,0.009900), Elem(64,6,0.990000), Elem(64,7,0.009900), Elem(64,8,0.004950), Elem(67,0,0.001414), Elem(67,1,0.001650), Elem(67,2,0.001980), Elem(67,3,0.002475),
+ Elem(67,4,0.003300), Elem(67,5,0.004950), Elem(67,6,0.009900), Elem(67,7,0.990000), Elem(67,8,0.009900), Elem(72,0,0.021257), Elem(72,1,0.001639), Elem(72,2,0.001783),
+ Elem(72,3,0.002097), Elem(72,4,0.002625), Elem(72,5,0.013340), Elem(72,6,0.005083), Elem(72,7,0.009979), Elem(72,8,0.990058), Elem(76,0,0.000017), Elem(76,1,0.000020),
+ Elem(76,2,0.000025), Elem(76,3,0.000033), Elem(76,4,0.000050), Elem(76,5,0.000100), Elem(76,6,0.010000), Elem(76,7,0.000100), Elem(76,8,0.000050), Elem(79,1,0.000017),
+ Elem(79,2,0.000020), Elem(79,3,0.000025), Elem(79,4,0.000033), Elem(79,5,0.000050), Elem(79,6,0.000100), Elem(79,7,0.010000), Elem(79,8,0.000100), Elem(86,0,0.000100),
+ Elem(86,1,0.010000), Elem(86,2,0.000100), Elem(86,3,0.000050), Elem(86,4,0.000033), Elem(86,5,0.000025), Elem(86,6,0.000020), Elem(86,7,0.000017), },
+ { Elem(1,0,0.000067), Elem(1,1,0.000100), Elem(1,2,0.000200), Elem(1,3,0.020000), Elem(1,4,0.000200), Elem(1,5,0.000100), Elem(1,6,0.000067), Elem(1,7,0.000050),
+ Elem(1,8,0.000040), Elem(8,0,0.000050), Elem(8,1,0.000067), Elem(8,2,0.000100), Elem(8,3,0.000200), Elem(8,4,0.020000), Elem(8,5,0.000200), Elem(8,6,0.000100),
+ Elem(8,7,0.000067), Elem(8,8,0.000050), Elem(13,0,0.000040), Elem(13,1,0.000050), Elem(13,2,0.000067), Elem(13,3,0.000100), Elem(13,4,0.000200), Elem(13,5,0.020000),
+ Elem(13,6,0.000200), Elem(13,7,0.000100), Elem(13,8,0.000067), Elem(17,0,0.000033), Elem(17,1,0.000040), Elem(17,2,0.000050), Elem(17,3,0.000067), Elem(17,4,0.000100),
+ Elem(17,5,0.000200), Elem(17,6,0.020000), Elem(17,7,0.000200), Elem(17,8,0.000100), Elem(20,0,0.000029), Elem(20,1,0.000033), Elem(20,2,0.000040), Elem(20,3,0.000050),
+ Elem(20,4,0.000067), Elem(20,5,0.000100), Elem(20,6,0.000200), Elem(20,7,0.020000), Elem(20,8,0.000200), Elem(25,0,0.990025), Elem(25,1,0.009929), Elem(25,2,0.004983),
+ Elem(25,3,0.003340), Elem(25,4,0.002525), Elem(25,5,0.002047), Elem(25,6,0.001750), Elem(25,7,0.001614), Elem(25,8,0.021238), Elem(33,0,0.010100), Elem(33,1,0.010100),
+ Elem(33,2,0.000150), Elem(33,3,0.000083), Elem(33,4,0.000058), Elem(33,5,0.000045), Elem(33,6,0.000037), Elem(33,7,0.000031), Elem(33,8,0.000027), Elem(37,0,0.004950),
+ Elem(37,1,0.009900), Elem(37,2,0.990000), Elem(37,3,0.009900), Elem(37,4,0.004950), Elem(37,5,0.003300), Elem(37,6,0.002475), Elem(37,7,0.001980), Elem(37,8,0.001650),
+ Elem(44,0,0.009925), Elem(44,1,0.990033), Elem(44,2,0.009950), Elem(44,3,0.005050), Elem(44,4,0.013300), Elem(44,5,0.002575), Elem(44,6,0.002030), Elem(44,7,0.001683),
+ Elem(44,8,0.001439), Elem(49,0,0.003300), Elem(49,1,0.004950), Elem(49,2,0.009900), Elem(49,3,0.990000), Elem(49,4,0.009900), Elem(49,5,0.004950), Elem(49,6,0.003300),
+ Elem(49,7,0.002475), Elem(49,8,0.001980), Elem(56,0,0.002575), Elem(56,1,0.013300), Elem(56,2,0.005050), Elem(56,3,0.009950), Elem(56,4,0.990033), Elem(56,5,0.009925),
+ Elem(56,6,0.004970), Elem(56,7,0.003317), Elem(56,8,0.002489), Elem(61,0,0.001993), Elem(61,1,0.002489), Elem(61,2,0.003317), Elem(61,3,0.004970), Elem(61,4,0.009925),
+ Elem(61,5,0.990033), Elem(61,6,0.009950), Elem(61,7,0.005050), Elem(61,8,0.013300), Elem(65,0,0.001650), Elem(65,1,0.001980), Elem(65,2,0.002475), Elem(65,3,0.003300),
+ Elem(65,4,0.004950), Elem(65,5,0.009900), Elem(65,6,0.990000), Elem(65,7,0.009900), Elem(65,8,0.004950), Elem(68,0,0.001414), Elem(68,1,0.001650), Elem(68,2,0.001980),
+ Elem(68,3,0.002475), Elem(68,4,0.003300), Elem(68,5,0.004950), Elem(68,6,0.009900), Elem(68,7,0.990000), Elem(68,8,0.009900), Elem(73,0,0.021257), Elem(73,1,0.001639),
+ Elem(73,2,0.001783), Elem(73,3,0.002097), Elem(73,4,0.002625), Elem(73,5,0.013340), Elem(73,6,0.005083), Elem(73,7,0.009979), Elem(73,8,0.990058), Elem(75,0,0.000017),
+ Elem(75,1,0.000020), Elem(75,2,0.000025), Elem(75,3,0.000033), Elem(75,4,0.000050), Elem(75,5,0.000100), Elem(75,6,0.010000), Elem(75,7,0.000100), Elem(75,8,0.000050),
+ Elem(80,1,0.000017), Elem(80,2,0.000020), Elem(80,3,0.000025), Elem(80,4,0.000033), Elem(80,5,0.000050), Elem(80,6,0.000100), Elem(80,7,0.010000), Elem(80,8,0.000100),
+ Elem(85,0,0.000033), Elem(85,1,0.000050), Elem(85,2,0.000100), Elem(85,3,0.010000), Elem(85,4,0.000100), Elem(85,5,0.000050), Elem(85,6,0.000033), Elem(85,7,0.000025),
+ Elem(85,8,0.000020), Elem(87,0,0.000100), Elem(87,1,0.010000), Elem(87,2,0.000100), Elem(87,3,0.000050), Elem(87,4,0.000033), Elem(87,5,0.000025), Elem(87,6,0.000020),
+ Elem(87,7,0.000017), },
+ { Elem(2,0,0.000067), Elem(2,1,0.000100), Elem(2,2,0.000200), Elem(2,3,0.020000), Elem(2,4,0.000200), Elem(2,5,0.000100), Elem(2,6,0.000067), Elem(2,7,0.000050),
+ Elem(2,8,0.000040), Elem(9,0,0.000050), Elem(9,1,0.000067), Elem(9,2,0.000100), Elem(9,3,0.000200), Elem(9,4,0.020000), Elem(9,5,0.000200), Elem(9,6,0.000100),
+ Elem(9,7,0.000067), Elem(9,8,0.000050), Elem(14,0,0.000040), Elem(14,1,0.000050), Elem(14,2,0.000067), Elem(14,3,0.000100), Elem(14,4,0.000200), Elem(14,5,0.020000),
+ Elem(14,6,0.000200), Elem(14,7,0.000100), Elem(14,8,0.000067), Elem(18,0,0.000033), Elem(18,1,0.000040), Elem(18,2,0.000050), Elem(18,3,0.000067), Elem(18,4,0.000100),
+ Elem(18,5,0.000200), Elem(18,6,0.020000), Elem(18,7,0.000200), Elem(18,8,0.000100), Elem(21,0,0.000029), Elem(21,1,0.000033), Elem(21,2,0.000040), Elem(21,3,0.000050),
+ Elem(21,4,0.000067), Elem(21,5,0.000100), Elem(21,6,0.000200), Elem(21,7,0.020000), Elem(21,8,0.000200), Elem(26,0,0.990075), Elem(26,1,0.010029), Elem(26,2,0.014983),
+ Elem(26,3,0.003440), Elem(26,4,0.002575), Elem(26,5,0.002080), Elem(26,6,0.001775), Elem(26,7,0.001634), Elem(26,8,0.021254), Elem(38,0,0.015050), Elem(38,1,0.020000),
+ Elem(38,2,0.990150), Elem(38,3,0.009983), Elem(38,4,0.005008), Elem(38,5,0.003345), Elem(38,6,0.002512), Elem(38,7,0.002011), Elem(38,8,0.001677), Elem(45,0,0.009975),
+ Elem(45,1,0.990133), Elem(45,2,0.019950), Elem(45,3,0.005150), Elem(45,4,0.013350), Elem(45,5,0.002608), Elem(45,6,0.002055), Elem(45,7,0.001703), Elem(45,8,0.001456),
+ Elem(50,0,0.003300), Elem(50,1,0.004950), Elem(50,2,0.009900), Elem(50,3,0.990000), Elem(50,4,0.009900), Elem(50,5,0.004950), Elem(50,6,0.003300), Elem(50,7,0.002475),
+ Elem(50,8,0.001980), Elem(57,0,0.002575), Elem(57,1,0.013300), Elem(57,2,0.005050), Elem(57,3,0.009950), Elem(57,4,0.990033), Elem(57,5,0.009925), Elem(57,6,0.004970),
+ Elem(57,7,0.003317), Elem(57,8,0.002489), Elem(62,0,0.001993), Elem(62,1,0.002489), Elem(62,2,0.003317), Elem(62,3,0.004970), Elem(62,4,0.009925), Elem(62,5,0.990033),
+ Elem(62,6,0.009950), Elem(62,7,0.005050), Elem(62,8,0.013300), Elem(66,0,0.001650), Elem(66,1,0.001980), Elem(66,2,0.002475), Elem(66,3,0.003300), Elem(66,4,0.004950),
+ Elem(66,5,0.009900), Elem(66,6,0.990000), Elem(66,7,0.009900), Elem(66,8,0.004950), Elem(69,0,0.001414), Elem(69,1,0.001650), Elem(69,2,0.001980), Elem(69,3,0.002475),
+ Elem(69,4,0.003300), Elem(69,5,0.004950), Elem(69,6,0.009900), Elem(69,7,0.990000), Elem(69,8,0.009900), Elem(74,0,0.021257), Elem(74,1,0.001639), Elem(74,2,0.001783),
+ Elem(74,3,0.002097), Elem(74,4,0.002625), Elem(74,5,0.013340), Elem(74,6,0.005083), Elem(74,7,0.009979), Elem(74,8,0.990058), Elem(78,0,0.000017), Elem(78,1,0.000020),
+ Elem(78,2,0.000025), Elem(78,3,0.000033), Elem(78,4,0.000050), Elem(78,5,0.000100), Elem(78,6,0.010000), Elem(78,7,0.000100), Elem(78,8,0.000050), Elem(81,1,0.000017),
+ Elem(81,2,0.000020), Elem(81,3,0.000025), Elem(81,4,0.000033), Elem(81,5,0.000050), Elem(81,6,0.000100), Elem(81,7,0.010000), Elem(81,8,0.000100), Elem(86,0,0.000033),
+ Elem(86,1,0.000050), Elem(86,2,0.000100), Elem(86,3,0.010000), Elem(86,4,0.000100), Elem(86,5,0.000050), Elem(86,6,0.000033), Elem(86,7,0.000025), Elem(86,8,0.000020),
+ Elem(88,0,0.000100), Elem(88,1,0.010000), Elem(88,2,0.000100), Elem(88,3,0.000050), Elem(88,4,0.000033), Elem(88,5,0.000025), Elem(88,6,0.000020), Elem(88,7,0.000017),
+ },
+ { Elem(3,0,0.000067), Elem(3,1,0.000100), Elem(3,2,0.000200), Elem(3,3,0.020000), Elem(3,4,0.000200), Elem(3,5,0.000100), Elem(3,6,0.000067), Elem(3,7,0.000050),
+ Elem(3,8,0.000040), Elem(10,0,0.000050), Elem(10,1,0.000067), Elem(10,2,0.000100), Elem(10,3,0.000200), Elem(10,4,0.020000), Elem(10,5,0.000200), Elem(10,6,0.000100),
+ Elem(10,7,0.000067), Elem(10,8,0.000050), Elem(15,0,0.000040), Elem(15,1,0.000050), Elem(15,2,0.000067), Elem(15,3,0.000100), Elem(15,4,0.000200), Elem(15,5,0.020000),
+ Elem(15,6,0.000200), Elem(15,7,0.000100), Elem(15,8,0.000067), Elem(19,0,0.000033), Elem(19,1,0.000040), Elem(19,2,0.000050), Elem(19,3,0.000067), Elem(19,4,0.000100),
+ Elem(19,5,0.000200), Elem(19,6,0.020000), Elem(19,7,0.000200), Elem(19,8,0.000100), Elem(22,0,0.000029), Elem(22,1,0.000033), Elem(22,2,0.000040), Elem(22,3,0.000050),
+ Elem(22,4,0.000067), Elem(22,5,0.000100), Elem(22,6,0.000200), Elem(22,7,0.020000), Elem(22,8,0.000200), Elem(27,0,0.990063), Elem(27,1,0.010014), Elem(27,2,0.014967),
+ Elem(27,3,0.003420), Elem(27,4,0.002550), Elem(27,5,0.002047), Elem(27,6,0.001725), Elem(27,7,0.001534), Elem(27,8,0.011254), Elem(29,2,0.000017), Elem(29,3,0.000020),
+ Elem(29,4,0.000025), Elem(29,5,0.000033), Elem(29,6,0.000050), Elem(29,7,0.000100), Elem(29,8,0.010000), Elem(39,0,0.015050), Elem(39,1,0.020000), Elem(39,2,0.990150),
+ Elem(39,3,0.009983), Elem(39,4,0.005008), Elem(39,5,0.003345), Elem(39,6,0.002512), Elem(39,7,0.002011), Elem(39,8,0.001677), Elem(46,0,0.009975), Elem(46,1,0.990133),
+ Elem(46,2,0.019950), Elem(46,3,0.005150), Elem(46,4,0.013350), Elem(46,5,0.002608), Elem(46,6,0.002055), Elem(46,7,0.001703), Elem(46,8,0.001456), Elem(51,0,0.003300),
+ Elem(51,1,0.004950), Elem(51,2,0.009900), Elem(51,3,0.990000), Elem(51,4,0.009900), Elem(51,5,0.004950), Elem(51,6,0.003300), Elem(51,7,0.002475), Elem(51,8,0.001980),
+ Elem(58,0,0.002575), Elem(58,1,0.013300), Elem(58,2,0.005050), Elem(58,3,0.009950), Elem(58,4,0.990033), Elem(58,5,0.009925), Elem(58,6,0.004970), Elem(58,7,0.003317),
+ Elem(58,8,0.002489), Elem(63,0,0.001980), Elem(63,1,0.002475), Elem(63,2,0.003300), Elem(63,3,0.004950), Elem(63,4,0.009900), Elem(63,5,0.990000), Elem(63,6,0.009900),
+ Elem(63,7,0.004950), Elem(63,8,0.003300), Elem(65,2,0.000017), Elem(65,3,0.000020), Elem(65,4,0.000025), Elem(65,5,0.000033), Elem(65,6,0.000050), Elem(65,7,0.000100),
+ Elem(65,8,0.010000), Elem(67,0,0.001650), Elem(67,1,0.001980), Elem(67,2,0.002475), Elem(67,3,0.003300), Elem(67,4,0.004950), Elem(67,5,0.009900), Elem(67,6,0.990000),
+ Elem(67,7,0.009900), Elem(67,8,0.004950), Elem(70,0,0.001414), Elem(70,1,0.001650), Elem(70,2,0.001980), Elem(70,3,0.002475), Elem(70,4,0.003300), Elem(70,5,0.004950),
+ Elem(70,6,0.009900), Elem(70,7,0.990000), Elem(70,8,0.009900), Elem(75,0,0.021257), Elem(75,1,0.001639), Elem(75,2,0.001783), Elem(75,3,0.002097), Elem(75,4,0.002625),
+ Elem(75,5,0.013340), Elem(75,6,0.005083), Elem(75,7,0.009979), Elem(75,8,0.990058), Elem(79,0,0.000017), Elem(79,1,0.000020), Elem(79,2,0.000025), Elem(79,3,0.000033),
+ Elem(79,4,0.000050), Elem(79,5,0.000100), Elem(79,6,0.010000), Elem(79,7,0.000100), Elem(79,8,0.000050), Elem(82,1,0.000017), Elem(82,2,0.000020), Elem(82,3,0.000025),
+ Elem(82,4,0.000033), Elem(82,5,0.000050), Elem(82,6,0.000100), Elem(82,7,0.010000), Elem(82,8,0.000100), Elem(87,0,0.000033), Elem(87,1,0.000050), Elem(87,2,0.000100),
+ Elem(87,3,0.010000), Elem(87,4,0.000100), Elem(87,5,0.000050), Elem(87,6,0.000033), Elem(87,7,0.000025), Elem(87,8,0.000020), Elem(89,0,0.000100), Elem(89,1,0.010000),
+ Elem(89,2,0.000100), Elem(89,3,0.000050), Elem(89,4,0.000033), Elem(89,5,0.000025), Elem(89,6,0.000020), Elem(89,7,0.000017), },
+ { Elem(4,0,0.000067), Elem(4,1,0.000100), Elem(4,2,0.000200), Elem(4,3,0.020000), Elem(4,4,0.000200), Elem(4,5,0.000100), Elem(4,6,0.000067), Elem(4,7,0.000050),
+ Elem(4,8,0.000040), Elem(11,0,0.000050), Elem(11,1,0.000067), Elem(11,2,0.000100), Elem(11,3,0.000200), Elem(11,4,0.020000), Elem(11,5,0.000200), Elem(11,6,0.000100),
+ Elem(11,7,0.000067), Elem(11,8,0.000050), Elem(16,0,0.000040), Elem(16,1,0.000050), Elem(16,2,0.000067), Elem(16,3,0.000100), Elem(16,4,0.000200), Elem(16,5,0.020000),
+ Elem(16,6,0.000200), Elem(16,7,0.000100), Elem(16,8,0.000067), Elem(20,0,0.000033), Elem(20,1,0.000040), Elem(20,2,0.000050), Elem(20,3,0.000067), Elem(20,4,0.000100),
+ Elem(20,5,0.000200), Elem(20,6,0.020000), Elem(20,7,0.000200), Elem(20,8,0.000100), Elem(23,0,0.000029), Elem(23,1,0.000033), Elem(23,2,0.000040), Elem(23,3,0.000050),
+ Elem(23,4,0.000067), Elem(23,5,0.000100), Elem(23,6,0.000200), Elem(23,7,0.020000), Elem(23,8,0.000200), Elem(28,0,0.990075), Elem(28,1,0.010029), Elem(28,2,0.014983),
+ Elem(28,3,0.003440), Elem(28,4,0.002575), Elem(28,5,0.002080), Elem(28,6,0.001775), Elem(28,7,0.001634), Elem(28,8,0.021254), Elem(40,0,0.015050), Elem(40,1,0.020000),
+ Elem(40,2,0.990150), Elem(40,3,0.009983), Elem(40,4,0.005008), Elem(40,5,0.003345), Elem(40,6,0.002512), Elem(40,7,0.002011), Elem(40,8,0.001677), Elem(47,0,0.009975),
+ Elem(47,1,0.990133), Elem(47,2,0.019950), Elem(47,3,0.005150), Elem(47,4,0.013350), Elem(47,5,0.002608), Elem(47,6,0.002055), Elem(47,7,0.001703), Elem(47,8,0.001456),
+ Elem(52,0,0.003300), Elem(52,1,0.004950), Elem(52,2,0.009900), Elem(52,3,0.990000), Elem(52,4,0.009900), Elem(52,5,0.004950), Elem(52,6,0.003300), Elem(52,7,0.002475),
+ Elem(52,8,0.001980), Elem(59,0,0.002575), Elem(59,1,0.013300), Elem(59,2,0.005050), Elem(59,3,0.009950), Elem(59,4,0.990033), Elem(59,5,0.009925), Elem(59,6,0.004970),
+ Elem(59,7,0.003317), Elem(59,8,0.002489), Elem(64,0,0.001993), Elem(64,1,0.002489), Elem(64,2,0.003317), Elem(64,3,0.004970), Elem(64,4,0.009925), Elem(64,5,0.990033),
+ Elem(64,6,0.009950), Elem(64,7,0.005050), Elem(64,8,0.013300), Elem(68,0,0.001650), Elem(68,1,0.001980), Elem(68,2,0.002475), Elem(68,3,0.003300), Elem(68,4,0.004950),
+ Elem(68,5,0.009900), Elem(68,6,0.990000), Elem(68,7,0.009900), Elem(68,8,0.004950), Elem(71,0,0.001414), Elem(71,1,0.001650), Elem(71,2,0.001980), Elem(71,3,0.002475),
+ Elem(71,4,0.003300), Elem(71,5,0.004950), Elem(71,6,0.009900), Elem(71,7,0.990000), Elem(71,8,0.009900), Elem(76,0,0.021257), Elem(76,1,0.001639), Elem(76,2,0.001783),
+ Elem(76,3,0.002097), Elem(76,4,0.002625), Elem(76,5,0.013340), Elem(76,6,0.005083), Elem(76,7,0.009979), Elem(76,8,0.990058), Elem(80,0,0.000017), Elem(80,1,0.000020),
+ Elem(80,2,0.000025), Elem(80,3,0.000033), Elem(80,4,0.000050), Elem(80,5,0.000100), Elem(80,6,0.010000), Elem(80,7,0.000100), Elem(80,8,0.000050), Elem(83,1,0.000017),
+ Elem(83,2,0.000020), Elem(83,3,0.000025), Elem(83,4,0.000033), Elem(83,5,0.000050), Elem(83,6,0.000100), Elem(83,7,0.010000), Elem(83,8,0.000100), Elem(88,0,0.000033),
+ Elem(88,1,0.000050), Elem(88,2,0.000100), Elem(88,3,0.010000), Elem(88,4,0.000100), Elem(88,5,0.000050), Elem(88,6,0.000033), Elem(88,7,0.000025), Elem(88,8,0.000020),
+ Elem(90,0,0.000100), Elem(90,1,0.010000), Elem(90,2,0.000100), Elem(90,3,0.000050), Elem(90,4,0.000033), Elem(90,5,0.000025), Elem(90,6,0.000020), Elem(90,7,0.000017),
+ },
+ { Elem(0,0,0.000200), Elem(0,1,0.020000), Elem(0,2,0.000200), Elem(0,3,0.000100), Elem(0,4,0.000067), Elem(0,5,0.000050), Elem(0,6,0.000040), Elem(0,7,0.000033),
+ Elem(0,8,0.000029), Elem(5,0,0.000067), Elem(5,1,0.000100), Elem(5,2,0.000200), Elem(5,3,0.020000), Elem(5,4,0.000200), Elem(5,5,0.000100), Elem(5,6,0.000067),
+ Elem(5,7,0.000050), Elem(5,8,0.000040), Elem(12,0,0.000050), Elem(12,1,0.000067), Elem(12,2,0.000100), Elem(12,3,0.000200), Elem(12,4,0.020000), Elem(12,5,0.000200),
+ Elem(12,6,0.000100), Elem(12,7,0.000067), Elem(12,8,0.000050), Elem(17,0,0.000040), Elem(17,1,0.000050), Elem(17,2,0.000067), Elem(17,3,0.000100), Elem(17,4,0.000200),
+ Elem(17,5,0.020000), Elem(17,6,0.000200), Elem(17,7,0.000100), Elem(17,8,0.000067), Elem(21,0,0.000033), Elem(21,1,0.000040), Elem(21,2,0.000050), Elem(21,3,0.000067),
+ Elem(21,4,0.000100), Elem(21,5,0.000200), Elem(21,6,0.020000), Elem(21,7,0.000200), Elem(21,8,0.000100), Elem(24,0,0.000029), Elem(24,1,0.000033), Elem(24,2,0.000040),
+ Elem(24,3,0.000050), Elem(24,4,0.000067), Elem(24,5,0.000100), Elem(24,6,0.000200), Elem(24,7,0.020000), Elem(24,8,0.000200), Elem(29,0,0.990063), Elem(29,1,0.010014),
+ Elem(29,2,0.014967), Elem(29,3,0.003420), Elem(29,4,0.002550), Elem(29,5,0.002047), Elem(29,6,0.001725), Elem(29,7,0.001534), Elem(29,8,0.011254), Elem(41,0,0.014950),
+ Elem(41,1,0.010000), Elem(41,2,0.990050), Elem(41,3,0.009933), Elem(41,4,0.004975), Elem(41,5,0.003320), Elem(41,6,0.002492), Elem(41,7,0.001994), Elem(41,8,0.001663),
+ Elem(48,0,0.009900), Elem(48,1,0.990000), Elem(48,2,0.009900), Elem(48,3,0.004950), Elem(48,4,0.003300), Elem(48,5,0.002475), Elem(48,6,0.001980), Elem(48,7,0.001650),
+ Elem(48,8,0.001414), Elem(53,0,0.003300), Elem(53,1,0.004950), Elem(53,2,0.009900), Elem(53,3,0.990000), Elem(53,4,0.009900), Elem(53,5,0.004950), Elem(53,6,0.003300),
+ Elem(53,7,0.002475), Elem(53,8,0.001980), Elem(60,0,0.002489), Elem(60,1,0.003317), Elem(60,2,0.004970), Elem(60,3,0.009925), Elem(60,4,0.990033), Elem(60,5,0.009950),
+ Elem(60,6,0.005050), Elem(60,7,0.013300), Elem(60,8,0.002575), Elem(65,0,0.001980), Elem(65,1,0.002475), Elem(65,2,0.003300), Elem(65,3,0.004950), Elem(65,4,0.009900),
+ Elem(65,5,0.990000), Elem(65,6,0.009900), Elem(65,7,0.004950), Elem(65,8,0.003300), Elem(69,0,0.001650), Elem(69,1,0.001980), Elem(69,2,0.002475), Elem(69,3,0.003300),
+ Elem(69,4,0.004950), Elem(69,5,0.009900), Elem(69,6,0.990000), Elem(69,7,0.009900), Elem(69,8,0.004950), Elem(72,0,0.001439), Elem(72,1,0.001683), Elem(72,2,0.002030),
+ Elem(72,3,0.002575), Elem(72,4,0.013300), Elem(72,5,0.005050), Elem(72,6,0.009950), Elem(72,7,0.990033), Elem(72,8,0.009925), Elem(75,0,0.010020), Elem(75,1,0.000125),
+ Elem(75,2,0.000083), Elem(75,3,0.000083), Elem(75,4,0.000125), Elem(75,5,0.010020), Elem(75,6,0.000117), Elem(75,7,0.000064), Elem(75,8,0.000046), Elem(77,0,0.011237),
+ Elem(77,1,0.001514), Elem(77,2,0.001700), Elem(77,3,0.002013), Elem(77,4,0.002500), Elem(77,5,0.003320), Elem(77,6,0.004967), Elem(77,7,0.009914), Elem(77,8,0.990013),
+ Elem(81,0,0.000017), Elem(81,1,0.000020), Elem(81,2,0.000025), Elem(81,3,0.000033), Elem(81,4,0.000050), Elem(81,5,0.000100), Elem(81,6,0.010000), Elem(81,7,0.000100),
+ Elem(81,8,0.000050), Elem(84,0,0.000100), Elem(84,1,0.000200), Elem(84,2,0.020000), Elem(84,3,0.000200), Elem(84,4,0.000100), Elem(84,5,0.000067), Elem(84,6,0.000050),
+ Elem(84,7,0.000040), Elem(84,8,0.000033), Elem(89,0,0.000033), Elem(89,1,0.000050), Elem(89,2,0.000100), Elem(89,3,0.010000), Elem(89,4,0.000100), Elem(89,5,0.000050),
+ Elem(89,6,0.000033), Elem(89,7,0.000025), Elem(89,8,0.000020), },
+ { Elem(1,0,0.000200), Elem(1,1,0.020000), Elem(1,2,0.000200), Elem(1,3,0.000100), Elem(1,4,0.000067), Elem(1,5,0.000050), Elem(1,6,0.000040), Elem(1,7,0.000033),
+ Elem(1,8,0.000029), Elem(6,0,0.000067), Elem(6,1,0.000100), Elem(6,2,0.000200), Elem(6,3,0.020000), Elem(6,4,0.000200), Elem(6,5,0.000100), Elem(6,6,0.000067),
+ Elem(6,7,0.000050), Elem(6,8,0.000040), Elem(13,0,0.000050), Elem(13,1,0.000067), Elem(13,2,0.000100), Elem(13,3,0.000200), Elem(13,4,0.020000), Elem(13,5,0.000200),
+ Elem(13,6,0.000100), Elem(13,7,0.000067), Elem(13,8,0.000050), Elem(18,0,0.000040), Elem(18,1,0.000050), Elem(18,2,0.000067), Elem(18,3,0.000100), Elem(18,4,0.000200),
+ Elem(18,5,0.020000), Elem(18,6,0.000200), Elem(18,7,0.000100), Elem(18,8,0.000067), Elem(22,0,0.000033), Elem(22,1,0.000040), Elem(22,2,0.000050), Elem(22,3,0.000067),
+ Elem(22,4,0.000100), Elem(22,5,0.000200), Elem(22,6,0.020000), Elem(22,7,0.000200), Elem(22,8,0.000100), Elem(25,0,0.000029), Elem(25,1,0.000033), Elem(25,2,0.000040),
+ Elem(25,3,0.000050), Elem(25,4,0.000067), Elem(25,5,0.000100), Elem(25,6,0.000200), Elem(25,7,0.020000), Elem(25,8,0.000200), Elem(30,0,0.990075), Elem(30,1,0.010029),
+ Elem(30,2,0.014983), Elem(30,3,0.003440), Elem(30,4,0.002575), Elem(30,5,0.002080), Elem(30,6,0.001775), Elem(30,7,0.001634), Elem(30,8,0.021254), Elem(42,0,0.014950),
+ Elem(42,1,0.010000), Elem(42,2,0.990050), Elem(42,3,0.009933), Elem(42,4,0.004975), Elem(42,5,0.003320), Elem(42,6,0.002492), Elem(42,7,0.001994), Elem(42,8,0.001663),
+ Elem(49,0,0.009900), Elem(49,1,0.990000), Elem(49,2,0.009900), Elem(49,3,0.004950), Elem(49,4,0.003300), Elem(49,5,0.002475), Elem(49,6,0.001980), Elem(49,7,0.001650),
+ Elem(49,8,0.001414), Elem(54,0,0.003300), Elem(54,1,0.004950), Elem(54,2,0.009900), Elem(54,3,0.990000), Elem(54,4,0.009900), Elem(54,5,0.004950), Elem(54,6,0.003300),
+ Elem(54,7,0.002475), Elem(54,8,0.001980), Elem(61,0,0.002489), Elem(61,1,0.003317), Elem(61,2,0.004970), Elem(61,3,0.009925), Elem(61,4,0.990033), Elem(61,5,0.009950),
+ Elem(61,6,0.005050), Elem(61,7,0.013300), Elem(61,8,0.002575), Elem(66,0,0.001993), Elem(66,1,0.002489), Elem(66,2,0.003317), Elem(66,3,0.004970), Elem(66,4,0.009925),
+ Elem(66,5,0.990033), Elem(66,6,0.009950), Elem(66,7,0.005050), Elem(66,8,0.013300), Elem(70,0,0.001650), Elem(70,1,0.001980), Elem(70,2,0.002475), Elem(70,3,0.003300),
+ Elem(70,4,0.004950), Elem(70,5,0.009900), Elem(70,6,0.990000), Elem(70,7,0.009900), Elem(70,8,0.004950), Elem(73,0,0.001439), Elem(73,1,0.001683), Elem(73,2,0.002030),
+ Elem(73,3,0.002575), Elem(73,4,0.013300), Elem(73,5,0.005050), Elem(73,6,0.009950), Elem(73,7,0.990033), Elem(73,8,0.009925), Elem(78,0,0.021257), Elem(78,1,0.001639),
+ Elem(78,2,0.001783), Elem(78,3,0.002097), Elem(78,4,0.002625), Elem(78,5,0.013340), Elem(78,6,0.005083), Elem(78,7,0.009979), Elem(78,8,0.990058), Elem(82,0,0.000017),
+ Elem(82,1,0.000020), Elem(82,2,0.000025), Elem(82,3,0.000033), Elem(82,4,0.000050), Elem(82,5,0.000100), Elem(82,6,0.010000), Elem(82,7,0.000100), Elem(82,8,0.000050),
+ Elem(85,0,0.000200), Elem(85,1,0.010200), Elem(85,2,0.020100), Elem(85,3,0.000250), Elem(85,4,0.000133), Elem(85,5,0.000092), Elem(85,6,0.000070), Elem(85,7,0.000057),
+ Elem(85,8,0.000048), Elem(90,0,0.000033), Elem(90,1,0.000050), Elem(90,2,0.000100), Elem(90,3,0.010000), Elem(90,4,0.000100), Elem(90,5,0.000050), Elem(90,6,0.000033),
+ Elem(90,7,0.000025), Elem(90,8,0.000020), },
+ { Elem(2,0,0.000200), Elem(2,1,0.020000), Elem(2,2,0.000200), Elem(2,3,0.000100), Elem(2,4,0.000067), Elem(2,5,0.000050), Elem(2,6,0.000040), Elem(2,7,0.000033),
+ Elem(2,8,0.000029), Elem(7,0,0.000067), Elem(7,1,0.000100), Elem(7,2,0.000200), Elem(7,3,0.020000), Elem(7,4,0.000200), Elem(7,5,0.000100), Elem(7,6,0.000067),
+ Elem(7,7,0.000050), Elem(7,8,0.000040), Elem(14,0,0.000050), Elem(14,1,0.000067), Elem(14,2,0.000100), Elem(14,3,0.000200), Elem(14,4,0.020000), Elem(14,5,0.000200),
+ Elem(14,6,0.000100), Elem(14,7,0.000067), Elem(14,8,0.000050), Elem(19,0,0.000040), Elem(19,1,0.000050), Elem(19,2,0.000067), Elem(19,3,0.000100), Elem(19,4,0.000200),
+ Elem(19,5,0.020000), Elem(19,6,0.000200), Elem(19,7,0.000100), Elem(19,8,0.000067), Elem(23,0,0.000033), Elem(23,1,0.000040), Elem(23,2,0.000050), Elem(23,3,0.000067),
+ Elem(23,4,0.000100), Elem(23,5,0.000200), Elem(23,6,0.020000), Elem(23,7,0.000200), Elem(23,8,0.000100), Elem(26,0,0.000029), Elem(26,1,0.000033), Elem(26,2,0.000040),
+ Elem(26,3,0.000050), Elem(26,4,0.000067), Elem(26,5,0.000100), Elem(26,6,0.000200), Elem(26,7,0.020000), Elem(26,8,0.000200), Elem(31,0,0.990025), Elem(31,1,0.009929),
+ Elem(31,2,0.004983), Elem(31,3,0.003340), Elem(31,4,0.002525), Elem(31,5,0.002047), Elem(31,6,0.001750), Elem(31,7,0.001614), Elem(31,8,0.021238), Elem(36,0,0.000050),
+ Elem(36,1,0.000100), Elem(36,2,0.010000), Elem(36,3,0.000100), Elem(36,4,0.000050), Elem(36,5,0.000033), Elem(36,6,0.000025), Elem(36,7,0.000020), Elem(36,8,0.000017),
+ Elem(43,0,0.004983), Elem(43,1,0.009950), Elem(43,2,0.990100), Elem(43,3,0.019900), Elem(43,4,0.005050), Elem(43,5,0.003350), Elem(43,6,0.002508), Elem(43,7,0.002005),
+ Elem(43,8,0.001670), Elem(50,0,0.009900), Elem(50,1,0.990000), Elem(50,2,0.009900), Elem(50,3,0.004950), Elem(50,4,0.003300), Elem(50,5,0.002475), Elem(50,6,0.001980),
+ Elem(50,7,0.001650), Elem(50,8,0.001414), Elem(55,0,0.003350), Elem(55,1,0.005050), Elem(55,2,0.019900), Elem(55,3,0.990100), Elem(55,4,0.009950), Elem(55,5,0.004983),
+ Elem(55,6,0.003325), Elem(55,7,0.002495), Elem(55,8,0.001997), Elem(62,0,0.002489), Elem(62,1,0.003317), Elem(62,2,0.004970), Elem(62,3,0.009925), Elem(62,4,0.990033),
+ Elem(62,5,0.009950), Elem(62,6,0.005050), Elem(62,7,0.013300), Elem(62,8,0.002575), Elem(67,0,0.001993), Elem(67,1,0.002489), Elem(67,2,0.003317), Elem(67,3,0.004970),
+ Elem(67,4,0.009925), Elem(67,5,0.990033), Elem(67,6,0.009950), Elem(67,7,0.005050), Elem(67,8,0.013300), Elem(71,0,0.001650), Elem(71,1,0.001980), Elem(71,2,0.002475),
+ Elem(71,3,0.003300), Elem(71,4,0.004950), Elem(71,5,0.009900), Elem(71,6,0.990000), Elem(71,7,0.009900), Elem(71,8,0.004950), Elem(74,0,0.001439), Elem(74,1,0.001683),
+ Elem(74,2,0.002030), Elem(74,3,0.002575), Elem(74,4,0.013300), Elem(74,5,0.005050), Elem(74,6,0.009950), Elem(74,7,0.990033), Elem(74,8,0.009925), Elem(79,0,0.021257),
+ Elem(79,1,0.001639), Elem(79,2,0.001783), Elem(79,3,0.002097), Elem(79,4,0.002625), Elem(79,5,0.013340), Elem(79,6,0.005083), Elem(79,7,0.009979), Elem(79,8,0.990058),
+ Elem(83,0,0.000017), Elem(83,1,0.000020), Elem(83,2,0.000025), Elem(83,3,0.000033), Elem(83,4,0.000050), Elem(83,5,0.000100), Elem(83,6,0.010000), Elem(83,7,0.000100),
+ Elem(83,8,0.000050), Elem(86,0,0.010150), Elem(86,1,0.010200), Elem(86,2,0.010150), Elem(86,3,0.000183), Elem(86,4,0.000108), Elem(86,5,0.000078), Elem(86,6,0.000062),
+ Elem(86,7,0.000051), Elem(86,8,0.000043), },
+ { Elem(3,0,0.000200), Elem(3,1,0.020000), Elem(3,2,0.000200), Elem(3,3,0.000100), Elem(3,4,0.000067), Elem(3,5,0.000050), Elem(3,6,0.000040), Elem(3,7,0.000033),
+ Elem(3,8,0.000029), Elem(8,0,0.000067), Elem(8,1,0.000100), Elem(8,2,0.000200), Elem(8,3,0.020000), Elem(8,4,0.000200), Elem(8,5,0.000100), Elem(8,6,0.000067),
+ Elem(8,7,0.000050), Elem(8,8,0.000040), Elem(15,0,0.000050), Elem(15,1,0.000067), Elem(15,2,0.000100), Elem(15,3,0.000200), Elem(15,4,0.020000), Elem(15,5,0.000200),
+ Elem(15,6,0.000100), Elem(15,7,0.000067), Elem(15,8,0.000050), Elem(20,0,0.000040), Elem(20,1,0.000050), Elem(20,2,0.000067), Elem(20,3,0.000100), Elem(20,4,0.000200),
+ Elem(20,5,0.020000), Elem(20,6,0.000200), Elem(20,7,0.000100), Elem(20,8,0.000067), Elem(24,0,0.000033), Elem(24,1,0.000040), Elem(24,2,0.000050), Elem(24,3,0.000067),
+ Elem(24,4,0.000100), Elem(24,5,0.000200), Elem(24,6,0.020000), Elem(24,7,0.000200), Elem(24,8,0.000100), Elem(27,1,0.000017), Elem(27,2,0.000020), Elem(27,3,0.000025),
+ Elem(27,4,0.000033), Elem(27,5,0.000050), Elem(27,6,0.000100), Elem(27,7,0.010000), Elem(27,8,0.000100), Elem(29,1,0.000017), Elem(29,2,0.000020), Elem(29,3,0.000025),
+ Elem(29,4,0.000033), Elem(29,5,0.000050), Elem(29,6,0.000100), Elem(29,7,0.010000), Elem(29,8,0.000100), Elem(32,0,0.990025), Elem(32,1,0.009929), Elem(32,2,0.004983),
+ Elem(32,3,0.003340), Elem(32,4,0.002525), Elem(32,5,0.002047), Elem(32,6,0.001750), Elem(32,7,0.001614), Elem(32,8,0.021238), Elem(33,0,0.000050), Elem(33,1,0.000100),
+ Elem(33,2,0.010000), Elem(33,3,0.000100), Elem(33,4,0.000050), Elem(33,5,0.000033), Elem(33,6,0.000025), Elem(33,7,0.000020), Elem(33,8,0.000017), Elem(44,0,0.004983),
+ Elem(44,1,0.009950), Elem(44,2,0.990100), Elem(44,3,0.019900), Elem(44,4,0.005050), Elem(44,5,0.003350), Elem(44,6,0.002508), Elem(44,7,0.002005), Elem(44,8,0.001670),
+ Elem(51,0,0.009900), Elem(51,1,0.990000), Elem(51,2,0.009900), Elem(51,3,0.004950), Elem(51,4,0.003300), Elem(51,5,0.002475), Elem(51,6,0.001980), Elem(51,7,0.001650),
+ Elem(51,8,0.001414), Elem(56,0,0.003350), Elem(56,1,0.005050), Elem(56,2,0.019900), Elem(56,3,0.990100), Elem(56,4,0.009950), Elem(56,5,0.004983), Elem(56,6,0.003325),
+ Elem(56,7,0.002495), Elem(56,8,0.001997), Elem(60,0,0.000017), Elem(60,1,0.000020), Elem(60,2,0.000025), Elem(60,3,0.000033), Elem(60,4,0.000050), Elem(60,5,0.000100),
+ Elem(60,6,0.010000), Elem(60,7,0.000100), Elem(60,8,0.000050), Elem(63,0,0.002475), Elem(63,1,0.003300), Elem(63,2,0.004950), Elem(63,3,0.009900), Elem(63,4,0.990000),
+ Elem(63,5,0.009900), Elem(63,6,0.004950), Elem(63,7,0.003300), Elem(63,8,0.002475), Elem(65,1,0.000017), Elem(65,2,0.000020), Elem(65,3,0.000025), Elem(65,4,0.000033),
+ Elem(65,5,0.000050), Elem(65,6,0.000100), Elem(65,7,0.010000), Elem(65,8,0.000100), Elem(68,0,0.001993), Elem(68,1,0.002489), Elem(68,2,0.003317), Elem(68,3,0.004970),
+ Elem(68,4,0.009925), Elem(68,5,0.990033), Elem(68,6,0.009950), Elem(68,7,0.005050), Elem(68,8,0.013300), Elem(72,0,0.001650), Elem(72,1,0.001980), Elem(72,2,0.002475),
+ Elem(72,3,0.003300), Elem(72,4,0.004950), Elem(72,5,0.009900), Elem(72,6,0.990000), Elem(72,7,0.009900), Elem(72,8,0.004950), Elem(75,0,0.001439), Elem(75,1,0.001683),
+ Elem(75,2,0.002030), Elem(75,3,0.002575), Elem(75,4,0.013300), Elem(75,5,0.005050), Elem(75,6,0.009950), Elem(75,7,0.990033), Elem(75,8,0.009925), Elem(80,0,0.021257),
+ Elem(80,1,0.001639), Elem(80,2,0.001783), Elem(80,3,0.002097), Elem(80,4,0.002625), Elem(80,5,0.013340), Elem(80,6,0.005083), Elem(80,7,0.009979), Elem(80,8,0.990058),
+ Elem(87,0,0.010150), Elem(87,1,0.010200), Elem(87,2,0.010150), Elem(87,3,0.000183), Elem(87,4,0.000108), Elem(87,5,0.000078), Elem(87,6,0.000062), Elem(87,7,0.000051),
+ Elem(87,8,0.000043), },
+ { Elem(4,0,0.000200), Elem(4,1,0.020000), Elem(4,2,0.000200), Elem(4,3,0.000100), Elem(4,4,0.000067), Elem(4,5,0.000050), Elem(4,6,0.000040), Elem(4,7,0.000033),
+ Elem(4,8,0.000029), Elem(9,0,0.000067), Elem(9,1,0.000100), Elem(9,2,0.000200), Elem(9,3,0.020000), Elem(9,4,0.000200), Elem(9,5,0.000100), Elem(9,6,0.000067),
+ Elem(9,7,0.000050), Elem(9,8,0.000040), Elem(16,0,0.000050), Elem(16,1,0.000067), Elem(16,2,0.000100), Elem(16,3,0.000200), Elem(16,4,0.020000), Elem(16,5,0.000200),
+ Elem(16,6,0.000100), Elem(16,7,0.000067), Elem(16,8,0.000050), Elem(21,0,0.000040), Elem(21,1,0.000050), Elem(21,2,0.000067), Elem(21,3,0.000100), Elem(21,4,0.000200),
+ Elem(21,5,0.020000), Elem(21,6,0.000200), Elem(21,7,0.000100), Elem(21,8,0.000067), Elem(25,0,0.010033), Elem(25,1,0.000140), Elem(25,2,0.000100), Elem(25,3,0.000100),
+ Elem(25,4,0.000125), Elem(25,5,0.000220), Elem(25,6,0.020017), Elem(25,7,0.000214), Elem(25,8,0.000112), Elem(28,0,0.000029), Elem(28,1,0.000033), Elem(28,2,0.000040),
+ Elem(28,3,0.000050), Elem(28,4,0.000067), Elem(28,5,0.000100), Elem(28,6,0.000200), Elem(28,7,0.020000), Elem(28,8,0.000200), Elem(33,0,0.990025), Elem(33,1,0.009929),
+ Elem(33,2,0.004983), Elem(33,3,0.003340), Elem(33,4,0.002525), Elem(33,5,0.002047), Elem(33,6,0.001750), Elem(33,7,0.001614), Elem(33,8,0.021238), Elem(38,0,0.000050),
+ Elem(38,1,0.000100), Elem(38,2,0.010000), Elem(38,3,0.000100), Elem(38,4,0.000050), Elem(38,5,0.000033), Elem(38,6,0.000025), Elem(38,7,0.000020), Elem(38,8,0.000017),
+ Elem(44,0,0.010000), Elem(44,1,0.000100), Elem(44,2,0.000050), Elem(44,3,0.000033), Elem(44,4,0.000025), Elem(44,5,0.000020), Elem(44,6,0.000017), Elem(45,0,0.004983),
+ Elem(45,1,0.009950), Elem(45,2,0.990100), Elem(45,3,0.019900), Elem(45,4,0.005050), Elem(45,5,0.003350), Elem(45,6,0.002508), Elem(45,7,0.002005), Elem(45,8,0.001670),
+ Elem(52,0,0.009900), Elem(52,1,0.990000), Elem(52,2,0.009900), Elem(52,3,0.004950), Elem(52,4,0.003300), Elem(52,5,0.002475), Elem(52,6,0.001980), Elem(52,7,0.001650),
+ Elem(52,8,0.001414), Elem(57,0,0.003350), Elem(57,1,0.005050), Elem(57,2,0.019900), Elem(57,3,0.990100), Elem(57,4,0.009950), Elem(57,5,0.004983), Elem(57,6,0.003325),
+ Elem(57,7,0.002495), Elem(57,8,0.001997), Elem(61,0,0.000017), Elem(61,1,0.000020), Elem(61,2,0.000025), Elem(61,3,0.000033), Elem(61,4,0.000050), Elem(61,5,0.000100),
+ Elem(61,6,0.010000), Elem(61,7,0.000100), Elem(61,8,0.000050), Elem(64,0,0.002489), Elem(64,1,0.003317), Elem(64,2,0.004970), Elem(64,3,0.009925), Elem(64,4,0.990033),
+ Elem(64,5,0.009950), Elem(64,6,0.005050), Elem(64,7,0.013300), Elem(64,8,0.002575), Elem(69,0,0.001993), Elem(69,1,0.002489), Elem(69,2,0.003317), Elem(69,3,0.004970),
+ Elem(69,4,0.009925), Elem(69,5,0.990033), Elem(69,6,0.009950), Elem(69,7,0.005050), Elem(69,8,0.013300), Elem(73,0,0.001650), Elem(73,1,0.001980), Elem(73,2,0.002475),
+ Elem(73,3,0.003300), Elem(73,4,0.004950), Elem(73,5,0.009900), Elem(73,6,0.990000), Elem(73,7,0.009900), Elem(73,8,0.004950), Elem(76,0,0.001439), Elem(76,1,0.001683),
+ Elem(76,2,0.002030), Elem(76,3,0.002575), Elem(76,4,0.013300), Elem(76,5,0.005050), Elem(76,6,0.009950), Elem(76,7,0.990033), Elem(76,8,0.009925), Elem(81,0,0.011257),
+ Elem(81,1,0.001539), Elem(81,2,0.001733), Elem(81,3,0.002063), Elem(81,4,0.002600), Elem(81,5,0.013320), Elem(81,6,0.005067), Elem(81,7,0.009964), Elem(81,8,0.990046),
+ Elem(88,0,0.000150), Elem(88,1,0.010100), Elem(88,2,0.010100), Elem(88,3,0.000150), Elem(88,4,0.000083), Elem(88,5,0.000058), Elem(88,6,0.000045), Elem(88,7,0.000037),
+ Elem(88,8,0.000031), },
+ { Elem(5,0,0.000200), Elem(5,1,0.020000), Elem(5,2,0.000200), Elem(5,3,0.000100), Elem(5,4,0.000067), Elem(5,5,0.000050), Elem(5,6,0.000040), Elem(5,7,0.000033),
+ Elem(5,8,0.000029), Elem(10,0,0.000067), Elem(10,1,0.000100), Elem(10,2,0.000200), Elem(10,3,0.020000), Elem(10,4,0.000200), Elem(10,5,0.000100), Elem(10,6,0.000067),
+ Elem(10,7,0.000050), Elem(10,8,0.000040), Elem(17,0,0.000050), Elem(17,1,0.000067), Elem(17,2,0.000100), Elem(17,3,0.000200), Elem(17,4,0.020000), Elem(17,5,0.000200),
+ Elem(17,6,0.000100), Elem(17,7,0.000067), Elem(17,8,0.000050), Elem(22,0,0.000040), Elem(22,1,0.000050), Elem(22,2,0.000067), Elem(22,3,0.000100), Elem(22,4,0.000200),
+ Elem(22,5,0.020000), Elem(22,6,0.000200), Elem(22,7,0.000100), Elem(22,8,0.000067), Elem(26,0,0.000033), Elem(26,1,0.000040), Elem(26,2,0.000050), Elem(26,3,0.000067),
+ Elem(26,4,0.000100), Elem(26,5,0.000200), Elem(26,6,0.020000), Elem(26,7,0.000200), Elem(26,8,0.000100), Elem(29,1,0.000017), Elem(29,2,0.000020), Elem(29,3,0.000025),
+ Elem(29,4,0.000033), Elem(29,5,0.000050), Elem(29,6,0.000100), Elem(29,7,0.010000), Elem(29,8,0.000100), Elem(34,0,0.990025), Elem(34,1,0.009929), Elem(34,2,0.004983),
+ Elem(34,3,0.003340), Elem(34,4,0.002525), Elem(34,5,0.002047), Elem(34,6,0.001750), Elem(34,7,0.001614), Elem(34,8,0.021238), Elem(39,0,0.000050), Elem(39,1,0.000100),
+ Elem(39,2,0.010000), Elem(39,3,0.000100), Elem(39,4,0.000050), Elem(39,5,0.000033), Elem(39,6,0.000025), Elem(39,7,0.000020), Elem(39,8,0.000017), Elem(46,0,0.004983),
+ Elem(46,1,0.009950), Elem(46,2,0.990100), Elem(46,3,0.019900), Elem(46,4,0.005050), Elem(46,5,0.003350), Elem(46,6,0.002508), Elem(46,7,0.002005), Elem(46,8,0.001670),
+ Elem(53,0,0.009900), Elem(53,1,0.990000), Elem(53,2,0.009900), Elem(53,3,0.004950), Elem(53,4,0.003300), Elem(53,5,0.002475), Elem(53,6,0.001980), Elem(53,7,0.001650),
+ Elem(53,8,0.001414), Elem(58,0,0.003350), Elem(58,1,0.005050), Elem(58,2,0.019900), Elem(58,3,0.990100), Elem(58,4,0.009950), Elem(58,5,0.004983), Elem(58,6,0.003325),
+ Elem(58,7,0.002495), Elem(58,8,0.001997), Elem(62,0,0.000017), Elem(62,1,0.000020), Elem(62,2,0.000025), Elem(62,3,0.000033), Elem(62,4,0.000050), Elem(62,5,0.000100),
+ Elem(62,6,0.010000), Elem(62,7,0.000100), Elem(62,8,0.000050), Elem(65,0,0.002475), Elem(65,1,0.003300), Elem(65,2,0.004950), Elem(65,3,0.009900), Elem(65,4,0.990000),
+ Elem(65,5,0.009900), Elem(65,6,0.004950), Elem(65,7,0.003300), Elem(65,8,0.002475), Elem(70,0,0.001993), Elem(70,1,0.002489), Elem(70,2,0.003317), Elem(70,3,0.004970),
+ Elem(70,4,0.009925), Elem(70,5,0.990033), Elem(70,6,0.009950), Elem(70,7,0.005050), Elem(70,8,0.013300), Elem(74,0,0.001650), Elem(74,1,0.001980), Elem(74,2,0.002475),
+ Elem(74,3,0.003300), Elem(74,4,0.004950), Elem(74,5,0.009900), Elem(74,6,0.990000), Elem(74,7,0.009900), Elem(74,8,0.004950), Elem(75,0,0.000025), Elem(75,1,0.000033),
+ Elem(75,2,0.000050), Elem(75,3,0.000100), Elem(75,4,0.010000), Elem(75,5,0.000100), Elem(75,6,0.000050), Elem(75,7,0.000033), Elem(75,8,0.000025), Elem(77,0,0.001414),
+ Elem(77,1,0.001650), Elem(77,2,0.001980), Elem(77,3,0.002475), Elem(77,4,0.003300), Elem(77,5,0.004950), Elem(77,6,0.009900), Elem(77,7,0.990000), Elem(77,8,0.009900),
+ Elem(82,0,0.021257), Elem(82,1,0.001639), Elem(82,2,0.001783), Elem(82,3,0.002097), Elem(82,4,0.002625), Elem(82,5,0.013340), Elem(82,6,0.005083), Elem(82,7,0.009979),
+ Elem(82,8,0.990058), Elem(89,0,0.010150), Elem(89,1,0.010200), Elem(89,2,0.010150), Elem(89,3,0.000183), Elem(89,4,0.000108), Elem(89,5,0.000078), Elem(89,6,0.000062),
+ Elem(89,7,0.000051), Elem(89,8,0.000043), },
+ { Elem(6,0,0.000200), Elem(6,1,0.020000), Elem(6,2,0.000200), Elem(6,3,0.000100), Elem(6,4,0.000067), Elem(6,5,0.000050), Elem(6,6,0.000040), Elem(6,7,0.000033),
+ Elem(6,8,0.000029), Elem(11,0,0.000067), Elem(11,1,0.000100), Elem(11,2,0.000200), Elem(11,3,0.020000), Elem(11,4,0.000200), Elem(11,5,0.000100), Elem(11,6,0.000067),
+ Elem(11,7,0.000050), Elem(11,8,0.000040), Elem(18,0,0.000050), Elem(18,1,0.000067), Elem(18,2,0.000100), Elem(18,3,0.000200), Elem(18,4,0.020000), Elem(18,5,0.000200),
+ Elem(18,6,0.000100), Elem(18,7,0.000067), Elem(18,8,0.000050), Elem(23,0,0.000040), Elem(23,1,0.000050), Elem(23,2,0.000067), Elem(23,3,0.000100), Elem(23,4,0.000200),
+ Elem(23,5,0.020000), Elem(23,6,0.000200), Elem(23,7,0.000100), Elem(23,8,0.000067), Elem(27,0,0.000017), Elem(27,1,0.000020), Elem(27,2,0.000025), Elem(27,3,0.000033),
+ Elem(27,4,0.000050), Elem(27,5,0.000100), Elem(27,6,0.010000), Elem(27,7,0.000100), Elem(27,8,0.000050), Elem(29,0,0.000017), Elem(29,1,0.000020), Elem(29,2,0.000025),
+ Elem(29,3,0.000033), Elem(29,4,0.000050), Elem(29,5,0.000100), Elem(29,6,0.010000), Elem(29,7,0.000100), Elem(29,8,0.000050), Elem(30,0,0.000029), Elem(30,1,0.000033),
+ Elem(30,2,0.000040), Elem(30,3,0.000050), Elem(30,4,0.000067), Elem(30,5,0.000100), Elem(30,6,0.000200), Elem(30,7,0.020000), Elem(30,8,0.000200), Elem(35,0,0.990025),
+ Elem(35,1,0.009929), Elem(35,2,0.004983), Elem(35,3,0.003340), Elem(35,4,0.002525), Elem(35,5,0.002047), Elem(35,6,0.001750), Elem(35,7,0.001614), Elem(35,8,0.021238),
+ Elem(40,0,0.000050), Elem(40,1,0.000100), Elem(40,2,0.010000), Elem(40,3,0.000100), Elem(40,4,0.000050), Elem(40,5,0.000033), Elem(40,6,0.000025), Elem(40,7,0.000020),
+ Elem(40,8,0.000017), Elem(47,0,0.004983), Elem(47,1,0.009950), Elem(47,2,0.990100), Elem(47,3,0.019900), Elem(47,4,0.005050), Elem(47,5,0.003350), Elem(47,6,0.002508),
+ Elem(47,7,0.002005), Elem(47,8,0.001670), Elem(54,0,0.009900), Elem(54,1,0.990000), Elem(54,2,0.009900), Elem(54,3,0.004950), Elem(54,4,0.003300), Elem(54,5,0.002475),
+ Elem(54,6,0.001980), Elem(54,7,0.001650), Elem(54,8,0.001414), Elem(59,0,0.003350), Elem(59,1,0.005050), Elem(59,2,0.019900), Elem(59,3,0.990100), Elem(59,4,0.009950),
+ Elem(59,5,0.004983), Elem(59,6,0.003325), Elem(59,7,0.002495), Elem(59,8,0.001997), Elem(65,0,0.000017), Elem(65,1,0.000020), Elem(65,2,0.000025), Elem(65,3,0.000033),
+ Elem(65,4,0.000050), Elem(65,5,0.000100), Elem(65,6,0.010000), Elem(65,7,0.000100), Elem(65,8,0.000050), Elem(66,0,0.002489), Elem(66,1,0.003317), Elem(66,2,0.004970),
+ Elem(66,3,0.009925), Elem(66,4,0.990033), Elem(66,5,0.009950), Elem(66,6,0.005050), Elem(66,7,0.013300), Elem(66,8,0.002575), Elem(71,0,0.001993), Elem(71,1,0.002489),
+ Elem(71,2,0.003317), Elem(71,3,0.004970), Elem(71,4,0.009925), Elem(71,5,0.990033), Elem(71,6,0.009950), Elem(71,7,0.005050), Elem(71,8,0.013300), Elem(75,0,0.001650),
+ Elem(75,1,0.001980), Elem(75,2,0.002475), Elem(75,3,0.003300), Elem(75,4,0.004950), Elem(75,5,0.009900), Elem(75,6,0.990000), Elem(75,7,0.009900), Elem(75,8,0.004950),
+ Elem(78,0,0.001439), Elem(78,1,0.001683), Elem(78,2,0.002030), Elem(78,3,0.002575), Elem(78,4,0.013300), Elem(78,5,0.005050), Elem(78,6,0.009950), Elem(78,7,0.990033),
+ Elem(78,8,0.009925), Elem(83,0,0.021257), Elem(83,1,0.001639), Elem(83,2,0.001783), Elem(83,3,0.002097), Elem(83,4,0.002625), Elem(83,5,0.013340), Elem(83,6,0.005083),
+ Elem(83,7,0.009979), Elem(83,8,0.990058), Elem(90,0,0.010150), Elem(90,1,0.010200), Elem(90,2,0.010150), Elem(90,3,0.000183), Elem(90,4,0.000108), Elem(90,5,0.000078),
+ Elem(90,6,0.000062), Elem(90,7,0.000051), Elem(90,8,0.000043), },
+ { Elem(0,0,0.000100), Elem(0,1,0.000200), Elem(0,2,0.020000), Elem(0,3,0.000200), Elem(0,4,0.000100), Elem(0,5,0.000067), Elem(0,6,0.000050), Elem(0,7,0.000040),
+ Elem(0,8,0.000033), Elem(7,0,0.000200), Elem(7,1,0.020000), Elem(7,2,0.000200), Elem(7,3,0.000100), Elem(7,4,0.000067), Elem(7,5,0.000050), Elem(7,6,0.000040),
+ Elem(7,7,0.000033), Elem(7,8,0.000029), Elem(12,0,0.000067), Elem(12,1,0.000100), Elem(12,2,0.000200), Elem(12,3,0.020000), Elem(12,4,0.000200), Elem(12,5,0.000100),
+ Elem(12,6,0.000067), Elem(12,7,0.000050), Elem(12,8,0.000040), Elem(19,0,0.000050), Elem(19,1,0.000067), Elem(19,2,0.000100), Elem(19,3,0.000200), Elem(19,4,0.020000),
+ Elem(19,5,0.000200), Elem(19,6,0.000100), Elem(19,7,0.000067), Elem(19,8,0.000050), Elem(24,0,0.015002), Elem(24,1,0.000200), Elem(24,2,0.000141), Elem(24,3,0.000150),
+ Elem(24,4,0.000237), Elem(24,5,0.020030), Elem(24,6,0.000225), Elem(24,7,0.000121), Elem(24,8,0.000085), Elem(28,0,0.000033), Elem(28,1,0.000040), Elem(28,2,0.000050),
+ Elem(28,3,0.000067), Elem(28,4,0.000100), Elem(28,5,0.000200), Elem(28,6,0.020000), Elem(28,7,0.000200), Elem(28,8,0.000100), Elem(31,0,0.000029), Elem(31,1,0.000033),
+ Elem(31,2,0.000040), Elem(31,3,0.000050), Elem(31,4,0.000067), Elem(31,5,0.000100), Elem(31,6,0.000200), Elem(31,7,0.020000), Elem(31,8,0.000200), Elem(36,0,1.481273),
+ Elem(36,1,0.014813), Elem(36,2,0.007406), Elem(36,3,0.004938), Elem(36,4,0.003703), Elem(36,5,0.002963), Elem(36,6,0.002469), Elem(36,7,0.002116), Elem(36,8,0.001852),
+ Elem(41,0,0.000025), Elem(41,1,0.000029), Elem(41,2,0.000033), Elem(41,3,0.000040), Elem(41,4,0.000050), Elem(41,5,0.000067), Elem(41,6,0.000100), Elem(41,7,0.000200),
+ Elem(41,8,0.020000), Elem(43,0,0.015062), Elem(43,1,0.010150), Elem(43,2,0.000175), Elem(43,3,0.000100), Elem(43,4,0.000071), Elem(43,5,0.000055), Elem(43,6,0.000045),
+ Elem(43,7,0.000038), Elem(43,8,0.000033), Elem(48,0,0.004950), Elem(48,1,0.009900), Elem(48,2,0.990000), Elem(48,3,0.009900), Elem(48,4,0.004950), Elem(48,5,0.003300),
+ Elem(48,6,0.002475), Elem(48,7,0.001980), Elem(48,8,0.001650), Elem(55,0,0.009900), Elem(55,1,0.990000), Elem(55,2,0.009900), Elem(55,3,0.004950), Elem(55,4,0.003300),
+ Elem(55,5,0.002475), Elem(55,6,0.001980), Elem(55,7,0.001650), Elem(55,8,0.001414), Elem(60,0,0.003320), Elem(60,1,0.004975), Elem(60,2,0.009933), Elem(60,3,0.990050),
+ Elem(60,4,0.010000), Elem(60,5,0.014950), Elem(60,6,0.003400), Elem(60,7,0.002525), Elem(60,8,0.002013), Elem(64,0,0.000017), Elem(64,1,0.000020), Elem(64,2,0.000025),
+ Elem(64,3,0.000033), Elem(64,4,0.000050), Elem(64,5,0.000100), Elem(64,6,0.010000), Elem(64,7,0.000100), Elem(64,8,0.000050), Elem(67,0,0.002489), Elem(67,1,0.003317),
+ Elem(67,2,0.004970), Elem(67,3,0.009925), Elem(67,4,0.990033), Elem(67,5,0.009950), Elem(67,6,0.005050), Elem(67,7,0.013300), Elem(67,8,0.002575), Elem(72,0,0.002013),
+ Elem(72,1,0.002525), Elem(72,2,0.003400), Elem(72,3,0.014950), Elem(72,4,0.010000), Elem(72,5,0.990050), Elem(72,6,0.009933), Elem(72,7,0.004975), Elem(72,8,0.003320),
+ Elem(76,0,0.001650), Elem(76,1,0.001980), Elem(76,2,0.002475), Elem(76,3,0.003300), Elem(76,4,0.004950), Elem(76,5,0.009900), Elem(76,6,0.990000), Elem(76,7,0.009900),
+ Elem(76,8,0.004950), Elem(79,0,0.001439), Elem(79,1,0.001683), Elem(79,2,0.002030), Elem(79,3,0.002575), Elem(79,4,0.013300), Elem(79,5,0.005050), Elem(79,6,0.009950),
+ Elem(79,7,0.990033), Elem(79,8,0.009925), Elem(84,0,0.001237), Elem(84,1,0.001414), Elem(84,2,0.001650), Elem(84,3,0.001980), Elem(84,4,0.002475), Elem(84,5,0.003300),
+ Elem(84,6,0.004950), Elem(84,7,0.009900), Elem(84,8,0.990000), },
+ { Elem(1,0,0.000150), Elem(1,1,0.000299), Elem(1,2,0.029925), Elem(1,3,0.000299), Elem(1,4,0.000150), Elem(1,5,0.000100), Elem(1,6,0.000075), Elem(1,7,0.000060),
+ Elem(1,8,0.000050), Elem(8,0,0.000200), Elem(8,1,0.020000), Elem(8,2,0.000200), Elem(8,3,0.000100), Elem(8,4,0.000067), Elem(8,5,0.000050), Elem(8,6,0.000040),
+ Elem(8,7,0.000033), Elem(8,8,0.000029), Elem(13,0,0.000067), Elem(13,1,0.000100), Elem(13,2,0.000200), Elem(13,3,0.020000), Elem(13,4,0.000200), Elem(13,5,0.000100),
+ Elem(13,6,0.000067), Elem(13,7,0.000050), Elem(13,8,0.000040), Elem(20,0,0.000050), Elem(20,1,0.000067), Elem(20,2,0.000100), Elem(20,3,0.000200), Elem(20,4,0.020000),
+ Elem(20,5,0.000200), Elem(20,6,0.000100), Elem(20,7,0.000067), Elem(20,8,0.000050), Elem(25,0,0.000040), Elem(25,1,0.000050), Elem(25,2,0.000067), Elem(25,3,0.000100),
+ Elem(25,4,0.000200), Elem(25,5,0.020000), Elem(25,6,0.000200), Elem(25,7,0.000100), Elem(25,8,0.000067), Elem(29,0,0.000017), Elem(29,1,0.000020), Elem(29,2,0.000025),
+ Elem(29,3,0.000033), Elem(29,4,0.000050), Elem(29,5,0.000100), Elem(29,6,0.010000), Elem(29,7,0.000100), Elem(29,8,0.000050), Elem(32,0,0.000029), Elem(32,1,0.000033),
+ Elem(32,2,0.000040), Elem(32,3,0.000050), Elem(32,4,0.000067), Elem(32,5,0.000100), Elem(32,6,0.000200), Elem(32,7,0.020000), Elem(32,8,0.000200), Elem(37,0,1.481273),
+ Elem(37,1,0.014813), Elem(37,2,0.007406), Elem(37,3,0.004938), Elem(37,4,0.003703), Elem(37,5,0.002963), Elem(37,6,0.002469), Elem(37,7,0.002116), Elem(37,8,0.001852),
+ Elem(42,0,0.000025), Elem(42,1,0.000029), Elem(42,2,0.000033), Elem(42,3,0.000040), Elem(42,4,0.000050), Elem(42,5,0.000067), Elem(42,6,0.000100), Elem(42,7,0.000200),
+ Elem(42,8,0.020000), Elem(44,0,0.000100), Elem(44,1,0.010000), Elem(44,2,0.000100), Elem(44,3,0.000050), Elem(44,4,0.000033), Elem(44,5,0.000025), Elem(44,6,0.000020),
+ Elem(44,7,0.000017), Elem(49,0,0.007419), Elem(49,1,0.014827), Elem(49,2,1.481290), Elem(49,3,0.014833), Elem(49,4,0.007431), Elem(49,5,0.004971), Elem(49,6,0.003753),
+ Elem(49,7,0.003063), Elem(49,8,0.012469), Elem(56,0,0.009900), Elem(56,1,0.990000), Elem(56,2,0.009900), Elem(56,3,0.004950), Elem(56,4,0.003300), Elem(56,5,0.002475),
+ Elem(56,6,0.001980), Elem(56,7,0.001650), Elem(56,8,0.001414), Elem(61,0,0.003320), Elem(61,1,0.004975), Elem(61,2,0.009933), Elem(61,3,0.990050), Elem(61,4,0.010000),
+ Elem(61,5,0.014950), Elem(61,6,0.003400), Elem(61,7,0.002525), Elem(61,8,0.002013), Elem(68,0,0.002489), Elem(68,1,0.003317), Elem(68,2,0.004970), Elem(68,3,0.009925),
+ Elem(68,4,0.990033), Elem(68,5,0.009950), Elem(68,6,0.005050), Elem(68,7,0.013300), Elem(68,8,0.002575), Elem(73,0,0.002013), Elem(73,1,0.002525), Elem(73,2,0.003400),
+ Elem(73,3,0.014950), Elem(73,4,0.010000), Elem(73,5,0.990050), Elem(73,6,0.009933), Elem(73,7,0.004975), Elem(73,8,0.003320), Elem(77,0,0.001650), Elem(77,1,0.001980),
+ Elem(77,2,0.002475), Elem(77,3,0.003300), Elem(77,4,0.004950), Elem(77,5,0.009900), Elem(77,6,0.990000), Elem(77,7,0.009900), Elem(77,8,0.004950), Elem(80,0,0.001439),
+ Elem(80,1,0.001683), Elem(80,2,0.002030), Elem(80,3,0.002575), Elem(80,4,0.013300), Elem(80,5,0.005050), Elem(80,6,0.009950), Elem(80,7,0.990033), Elem(80,8,0.009925),
+ Elem(85,0,0.001312), Elem(85,1,0.001564), Elem(85,2,0.016612), Elem(85,3,0.002130), Elem(85,4,0.002550), Elem(85,5,0.003350), Elem(85,6,0.004987), Elem(85,7,0.009930),
+ Elem(85,8,0.990025), },
+ { Elem(2,0,0.000150), Elem(2,1,0.000299), Elem(2,2,0.029925), Elem(2,3,0.000299), Elem(2,4,0.000150), Elem(2,5,0.000100), Elem(2,6,0.000075), Elem(2,7,0.000060),
+ Elem(2,8,0.000050), Elem(9,0,0.000299), Elem(9,1,0.029925), Elem(9,2,0.000299), Elem(9,3,0.000150), Elem(9,4,0.000100), Elem(9,5,0.000075), Elem(9,6,0.000060),
+ Elem(9,7,0.000050), Elem(9,8,0.000043), Elem(14,0,0.000067), Elem(14,1,0.000100), Elem(14,2,0.000200), Elem(14,3,0.020000), Elem(14,4,0.000200), Elem(14,5,0.000100),
+ Elem(14,6,0.000067), Elem(14,7,0.000050), Elem(14,8,0.000040), Elem(21,0,0.000050), Elem(21,1,0.000067), Elem(21,2,0.000100), Elem(21,3,0.000200), Elem(21,4,0.020000),
+ Elem(21,5,0.000200), Elem(21,6,0.000100), Elem(21,7,0.000067), Elem(21,8,0.000050), Elem(26,0,0.015002), Elem(26,1,0.000200), Elem(26,2,0.000141), Elem(26,3,0.000150),
+ Elem(26,4,0.000237), Elem(26,5,0.020030), Elem(26,6,0.000225), Elem(26,7,0.000121), Elem(26,8,0.000085), Elem(30,0,0.000033), Elem(30,1,0.000040), Elem(30,2,0.000050),
+ Elem(30,3,0.000067), Elem(30,4,0.000100), Elem(30,5,0.000200), Elem(30,6,0.020000), Elem(30,7,0.000200), Elem(30,8,0.000100), Elem(31,2,0.000017), Elem(31,3,0.000020),
+ Elem(31,4,0.000025), Elem(31,5,0.000033), Elem(31,6,0.000050), Elem(31,7,0.000100), Elem(31,8,0.010000), Elem(33,0,0.000029), Elem(33,1,0.000033), Elem(33,2,0.000040),
+ Elem(33,3,0.000050), Elem(33,4,0.000067), Elem(33,5,0.000100), Elem(33,6,0.000200), Elem(33,7,0.020000), Elem(33,8,0.000200), Elem(38,0,1.481273), Elem(38,1,0.014813),
+ Elem(38,2,0.007406), Elem(38,3,0.004938), Elem(38,4,0.003703), Elem(38,5,0.002963), Elem(38,6,0.002469), Elem(38,7,0.002116), Elem(38,8,0.001852), Elem(43,2,0.000017),
+ Elem(43,3,0.000020), Elem(43,4,0.000025), Elem(43,5,0.000033), Elem(43,6,0.000050), Elem(43,7,0.000100), Elem(43,8,0.010000), Elem(45,0,0.015112), Elem(45,1,0.015112),
+ Elem(45,2,0.000224), Elem(45,3,0.000125), Elem(45,4,0.000087), Elem(45,5,0.000067), Elem(45,6,0.000055), Elem(45,7,0.000046), Elem(45,8,0.000040), Elem(50,0,0.007419),
+ Elem(50,1,0.014827), Elem(50,2,1.481290), Elem(50,3,0.014833), Elem(50,4,0.007431), Elem(50,5,0.004971), Elem(50,6,0.003753), Elem(50,7,0.003063), Elem(50,8,0.012469),
+ Elem(57,0,0.014813), Elem(57,1,1.481273), Elem(57,2,0.014813), Elem(57,3,0.007406), Elem(57,4,0.004938), Elem(57,5,0.003703), Elem(57,6,0.002963), Elem(57,7,0.002469),
+ Elem(57,8,0.002116), Elem(62,0,0.003320), Elem(62,1,0.004975), Elem(62,2,0.009933), Elem(62,3,0.990050), Elem(62,4,0.010000), Elem(62,5,0.014950), Elem(62,6,0.003400),
+ Elem(62,7,0.002525), Elem(62,8,0.002013), Elem(66,0,0.000017), Elem(66,1,0.000020), Elem(66,2,0.000025), Elem(66,3,0.000033), Elem(66,4,0.000050), Elem(66,5,0.000100),
+ Elem(66,6,0.010000), Elem(66,7,0.000100), Elem(66,8,0.000050), Elem(69,0,0.002489), Elem(69,1,0.003317), Elem(69,2,0.004970), Elem(69,3,0.009925), Elem(69,4,0.990033),
+ Elem(69,5,0.009950), Elem(69,6,0.005050), Elem(69,7,0.013300), Elem(69,8,0.002575), Elem(74,0,0.002013), Elem(74,1,0.002525), Elem(74,2,0.003400), Elem(74,3,0.014950),
+ Elem(74,4,0.010000), Elem(74,5,0.990050), Elem(74,6,0.009933), Elem(74,7,0.004975), Elem(74,8,0.003320), Elem(78,0,0.001650), Elem(78,1,0.001980), Elem(78,2,0.002475),
+ Elem(78,3,0.003300), Elem(78,4,0.004950), Elem(78,5,0.009900), Elem(78,6,0.990000), Elem(78,7,0.009900), Elem(78,8,0.004950), Elem(81,0,0.001439), Elem(81,1,0.001683),
+ Elem(81,2,0.002030), Elem(81,3,0.002575), Elem(81,4,0.013300), Elem(81,5,0.005050), Elem(81,6,0.009950), Elem(81,7,0.990033), Elem(81,8,0.009925), Elem(86,0,0.001312),
+ Elem(86,1,0.001564), Elem(86,2,0.016612), Elem(86,3,0.002130), Elem(86,4,0.002550), Elem(86,5,0.003350), Elem(86,6,0.004987), Elem(86,7,0.009930), Elem(86,8,0.990025),
+ },
+ { Elem(3,0,0.000150), Elem(3,1,0.000299), Elem(3,2,0.029925), Elem(3,3,0.000299), Elem(3,4,0.000150), Elem(3,5,0.000100), Elem(3,6,0.000075), Elem(3,7,0.000060),
+ Elem(3,8,0.000050), Elem(10,0,0.000299), Elem(10,1,0.029925), Elem(10,2,0.000299), Elem(10,3,0.000150), Elem(10,4,0.000100), Elem(10,5,0.000075), Elem(10,6,0.000060),
+ Elem(10,7,0.000050), Elem(10,8,0.000043), Elem(15,0,0.000045), Elem(15,1,0.000067), Elem(15,2,0.000134), Elem(15,3,0.013367), Elem(15,4,0.000134), Elem(15,5,0.000067),
+ Elem(15,6,0.000045), Elem(15,7,0.000033), Elem(15,8,0.000027), Elem(22,0,0.000050), Elem(22,1,0.000067), Elem(22,2,0.000100), Elem(22,3,0.000200), Elem(22,4,0.020000),
+ Elem(22,5,0.000200), Elem(22,6,0.000100), Elem(22,7,0.000067), Elem(22,8,0.000050), Elem(27,0,0.014982), Elem(27,1,0.000175), Elem(27,2,0.000108), Elem(27,3,0.000100),
+ Elem(27,4,0.000137), Elem(27,5,0.010030), Elem(27,6,0.000125), Elem(27,7,0.000071), Elem(27,8,0.000052), Elem(29,0,0.000020), Elem(29,1,0.000025), Elem(29,2,0.000033),
+ Elem(29,3,0.000050), Elem(29,4,0.000100), Elem(29,5,0.010000), Elem(29,6,0.000100), Elem(29,7,0.000050), Elem(29,8,0.000033), Elem(31,0,0.000033), Elem(31,1,0.000040),
+ Elem(31,2,0.000050), Elem(31,3,0.000067), Elem(31,4,0.000100), Elem(31,5,0.000200), Elem(31,6,0.020000), Elem(31,7,0.000200), Elem(31,8,0.000100), Elem(32,2,0.000017),
+ Elem(32,3,0.000020), Elem(32,4,0.000025), Elem(32,5,0.000033), Elem(32,6,0.000050), Elem(32,7,0.000100), Elem(32,8,0.010000), Elem(34,0,0.000029), Elem(34,1,0.000033),
+ Elem(34,2,0.000040), Elem(34,3,0.000050), Elem(34,4,0.000067), Elem(34,5,0.000100), Elem(34,6,0.000200), Elem(34,7,0.020000), Elem(34,8,0.000200), Elem(39,0,1.481273),
+ Elem(39,1,0.014813), Elem(39,2,0.007406), Elem(39,3,0.004938), Elem(39,4,0.003703), Elem(39,5,0.002963), Elem(39,6,0.002469), Elem(39,7,0.002116), Elem(39,8,0.001852),
+ Elem(44,2,0.000017), Elem(44,3,0.000020), Elem(44,4,0.000025), Elem(44,5,0.000033), Elem(44,6,0.000050), Elem(44,7,0.000100), Elem(44,8,0.010000), Elem(46,0,0.015112),
+ Elem(46,1,0.015112), Elem(46,2,0.000224), Elem(46,3,0.000125), Elem(46,4,0.000087), Elem(46,5,0.000067), Elem(46,6,0.000055), Elem(46,7,0.000046), Elem(46,8,0.000040),
+ Elem(51,0,0.007419), Elem(51,1,0.014827), Elem(51,2,1.481290), Elem(51,3,0.014833), Elem(51,4,0.007431), Elem(51,5,0.004971), Elem(51,6,0.003753), Elem(51,7,0.003063),
+ Elem(51,8,0.012469), Elem(58,0,0.014813), Elem(58,1,1.481273), Elem(58,2,0.014813), Elem(58,3,0.007406), Elem(58,4,0.004938), Elem(58,5,0.003703), Elem(58,6,0.002963),
+ Elem(58,7,0.002469), Elem(58,8,0.002116), Elem(63,0,0.002206), Elem(63,1,0.003308), Elem(63,2,0.006617), Elem(63,3,0.661660), Elem(63,4,0.006617), Elem(63,5,0.003308),
+ Elem(63,6,0.002206), Elem(63,7,0.001654), Elem(63,8,0.001323), Elem(65,0,0.000020), Elem(65,1,0.000025), Elem(65,2,0.000033), Elem(65,3,0.000050), Elem(65,4,0.000100),
+ Elem(65,5,0.010000), Elem(65,6,0.000100), Elem(65,7,0.000050), Elem(65,8,0.000033), Elem(67,0,0.000017), Elem(67,1,0.000020), Elem(67,2,0.000025), Elem(67,3,0.000033),
+ Elem(67,4,0.000050), Elem(67,5,0.000100), Elem(67,6,0.010000), Elem(67,7,0.000100), Elem(67,8,0.000050), Elem(70,0,0.002489), Elem(70,1,0.003317), Elem(70,2,0.004970),
+ Elem(70,3,0.009925), Elem(70,4,0.990033), Elem(70,5,0.009950), Elem(70,6,0.005050), Elem(70,7,0.013300), Elem(70,8,0.002575), Elem(75,0,0.002002), Elem(75,1,0.002508),
+ Elem(75,2,0.003367), Elem(75,3,0.011633), Elem(75,4,0.009967), Elem(75,5,0.990033), Elem(75,6,0.009922), Elem(75,7,0.004967), Elem(75,8,0.003313), Elem(79,0,0.001650),
+ Elem(79,1,0.001980), Elem(79,2,0.002475), Elem(79,3,0.003300), Elem(79,4,0.004950), Elem(79,5,0.009900), Elem(79,6,0.990000), Elem(79,7,0.009900), Elem(79,8,0.004950),
+ Elem(82,0,0.001439), Elem(82,1,0.001683), Elem(82,2,0.002030), Elem(82,3,0.002575), Elem(82,4,0.013300), Elem(82,5,0.005050), Elem(82,6,0.009950), Elem(82,7,0.990033),
+ Elem(82,8,0.009925), Elem(87,0,0.001312), Elem(87,1,0.001564), Elem(87,2,0.016612), Elem(87,3,0.002130), Elem(87,4,0.002550), Elem(87,5,0.003350), Elem(87,6,0.004987),
+ Elem(87,7,0.009930), Elem(87,8,0.990025), },
+ { Elem(4,0,0.000150), Elem(4,1,0.000299), Elem(4,2,0.029925), Elem(4,3,0.000299), Elem(4,4,0.000150), Elem(4,5,0.000100), Elem(4,6,0.000075), Elem(4,7,0.000060),
+ Elem(4,8,0.000050), Elem(11,0,0.000299), Elem(11,1,0.029925), Elem(11,2,0.000299), Elem(11,3,0.000150), Elem(11,4,0.000100), Elem(11,5,0.000075), Elem(11,6,0.000060),
+ Elem(11,7,0.000050), Elem(11,8,0.000043), Elem(16,0,0.000045), Elem(16,1,0.000067), Elem(16,2,0.000134), Elem(16,3,0.013367), Elem(16,4,0.000134), Elem(16,5,0.000067),
+ Elem(16,6,0.000045), Elem(16,7,0.000033), Elem(16,8,0.000027), Elem(23,0,0.000033), Elem(23,1,0.000045), Elem(23,2,0.000067), Elem(23,3,0.000134), Elem(23,4,0.013367),
+ Elem(23,5,0.000134), Elem(23,6,0.000067), Elem(23,7,0.000045), Elem(23,8,0.000033), Elem(28,0,0.015002), Elem(28,1,0.000200), Elem(28,2,0.000141), Elem(28,3,0.000150),
+ Elem(28,4,0.000237), Elem(28,5,0.020030), Elem(28,6,0.000225), Elem(28,7,0.000121), Elem(28,8,0.000085), Elem(32,0,0.000033), Elem(32,1,0.000040), Elem(32,2,0.000050),
+ Elem(32,3,0.000067), Elem(32,4,0.000100), Elem(32,5,0.000200), Elem(32,6,0.020000), Elem(32,7,0.000200), Elem(32,8,0.000100), Elem(33,2,0.000017), Elem(33,3,0.000020),
+ Elem(33,4,0.000025), Elem(33,5,0.000033), Elem(33,6,0.000050), Elem(33,7,0.000100), Elem(33,8,0.010000), Elem(35,0,0.000029), Elem(35,1,0.000033), Elem(35,2,0.000040),
+ Elem(35,3,0.000050), Elem(35,4,0.000067), Elem(35,5,0.000100), Elem(35,6,0.000200), Elem(35,7,0.020000), Elem(35,8,0.000200), Elem(40,0,1.481273), Elem(40,1,0.014813),
+ Elem(40,2,0.007406), Elem(40,3,0.004938), Elem(40,4,0.003703), Elem(40,5,0.002963), Elem(40,6,0.002469), Elem(40,7,0.002116), Elem(40,8,0.001852), Elem(45,2,0.000017),
+ Elem(45,3,0.000020), Elem(45,4,0.000025), Elem(45,5,0.000033), Elem(45,6,0.000050), Elem(45,7,0.000100), Elem(45,8,0.010000), Elem(47,0,0.015112), Elem(47,1,0.015112),
+ Elem(47,2,0.000224), Elem(47,3,0.000125), Elem(47,4,0.000087), Elem(47,5,0.000067), Elem(47,6,0.000055), Elem(47,7,0.000046), Elem(47,8,0.000040), Elem(52,0,0.007419),
+ Elem(52,1,0.014827), Elem(52,2,1.481290), Elem(52,3,0.014833), Elem(52,4,0.007431), Elem(52,5,0.004971), Elem(52,6,0.003753), Elem(52,7,0.003063), Elem(52,8,0.012469),
+ Elem(59,0,0.014813), Elem(59,1,1.481273), Elem(59,2,0.014813), Elem(59,3,0.007406), Elem(59,4,0.004938), Elem(59,5,0.003703), Elem(59,6,0.002963), Elem(59,7,0.002469),
+ Elem(59,8,0.002116), Elem(64,0,0.002226), Elem(64,1,0.003333), Elem(64,2,0.006650), Elem(64,3,0.661711), Elem(64,4,0.006717), Elem(64,5,0.013308), Elem(64,6,0.002306),
+ Elem(64,7,0.001704), Elem(64,8,0.001357), Elem(68,0,0.000017), Elem(68,1,0.000020), Elem(68,2,0.000025), Elem(68,3,0.000033), Elem(68,4,0.000050), Elem(68,5,0.000100),
+ Elem(68,6,0.010000), Elem(68,7,0.000100), Elem(68,8,0.000050), Elem(71,0,0.001668), Elem(71,1,0.002222), Elem(71,2,0.003328), Elem(71,3,0.006642), Elem(71,4,0.661694),
+ Elem(71,5,0.006667), Elem(71,6,0.003408), Elem(71,7,0.012206), Elem(71,8,0.001754), Elem(76,0,0.002002), Elem(76,1,0.002508), Elem(76,2,0.003367), Elem(76,3,0.011633),
+ Elem(76,4,0.009967), Elem(76,5,0.990033), Elem(76,6,0.009922), Elem(76,7,0.004967), Elem(76,8,0.003313), Elem(80,0,0.001650), Elem(80,1,0.001980), Elem(80,2,0.002475),
+ Elem(80,3,0.003300), Elem(80,4,0.004950), Elem(80,5,0.009900), Elem(80,6,0.990000), Elem(80,7,0.009900), Elem(80,8,0.004950), Elem(83,0,0.001431), Elem(83,1,0.001672),
+ Elem(83,2,0.002013), Elem(83,3,0.002542), Elem(83,4,0.009983), Elem(83,5,0.005017), Elem(83,6,0.009933), Elem(83,7,0.990022), Elem(83,8,0.009917), Elem(88,0,0.001312),
+ Elem(88,1,0.001564), Elem(88,2,0.016612), Elem(88,3,0.002130), Elem(88,4,0.002550), Elem(88,5,0.003350), Elem(88,6,0.004987), Elem(88,7,0.009930), Elem(88,8,0.990025),
+ },
+ { Elem(5,0,0.000150), Elem(5,1,0.000299), Elem(5,2,0.029925), Elem(5,3,0.000299), Elem(5,4,0.000150), Elem(5,5,0.000100), Elem(5,6,0.000075), Elem(5,7,0.000060),
+ Elem(5,8,0.000050), Elem(12,0,0.000299), Elem(12,1,0.029925), Elem(12,2,0.000299), Elem(12,3,0.000150), Elem(12,4,0.000100), Elem(12,5,0.000075), Elem(12,6,0.000060),
+ Elem(12,7,0.000050), Elem(12,8,0.000043), Elem(17,0,0.000045), Elem(17,1,0.000067), Elem(17,2,0.000134), Elem(17,3,0.013367), Elem(17,4,0.000134), Elem(17,5,0.000067),
+ Elem(17,6,0.000045), Elem(17,7,0.000033), Elem(17,8,0.000027), Elem(24,0,0.000033), Elem(24,1,0.000045), Elem(24,2,0.000067), Elem(24,3,0.000134), Elem(24,4,0.013367),
+ Elem(24,5,0.000134), Elem(24,6,0.000067), Elem(24,7,0.000045), Elem(24,8,0.000033), Elem(29,0,0.014976), Elem(29,1,0.000166), Elem(29,2,0.000097), Elem(29,3,0.000083),
+ Elem(29,4,0.000104), Elem(29,5,0.006713), Elem(29,6,0.000092), Elem(29,7,0.000055), Elem(29,8,0.000041), Elem(33,0,0.000033), Elem(33,1,0.000040), Elem(33,2,0.000050),
+ Elem(33,3,0.000067), Elem(33,4,0.000100), Elem(33,5,0.000200), Elem(33,6,0.020000), Elem(33,7,0.000200), Elem(33,8,0.000100), Elem(34,2,0.000017), Elem(34,3,0.000020),
+ Elem(34,4,0.000025), Elem(34,5,0.000033), Elem(34,6,0.000050), Elem(34,7,0.000100), Elem(34,8,0.010000), Elem(41,0,1.481302), Elem(41,1,0.014846), Elem(41,2,0.007446),
+ Elem(41,3,0.004988), Elem(41,4,0.003770), Elem(41,5,0.003063), Elem(41,6,0.002669), Elem(41,7,0.022116), Elem(41,8,0.002052), Elem(46,2,0.000017), Elem(46,3,0.000020),
+ Elem(46,4,0.000025), Elem(46,5,0.000033), Elem(46,6,0.000050), Elem(46,7,0.000100), Elem(46,8,0.010000), Elem(53,0,0.007419), Elem(53,1,0.014827), Elem(53,2,1.481290),
+ Elem(53,3,0.014833), Elem(53,4,0.007431), Elem(53,5,0.004971), Elem(53,6,0.003753), Elem(53,7,0.003063), Elem(53,8,0.012469), Elem(60,0,0.014829), Elem(60,1,1.481296),
+ Elem(60,2,0.014846), Elem(60,3,0.007473), Elem(60,4,0.011621), Elem(60,5,0.003770), Elem(60,6,0.002996), Elem(60,7,0.002491), Elem(60,8,0.002133), Elem(65,0,0.002206),
+ Elem(65,1,0.003308), Elem(65,2,0.006617), Elem(65,3,0.661660), Elem(65,4,0.006617), Elem(65,5,0.003308), Elem(65,6,0.002206), Elem(65,7,0.001654), Elem(65,8,0.001323),
+ Elem(69,0,0.000017), Elem(69,1,0.000020), Elem(69,2,0.000025), Elem(69,3,0.000033), Elem(69,4,0.000050), Elem(69,5,0.000100), Elem(69,6,0.010000), Elem(69,7,0.000100),
+ Elem(69,8,0.000050), Elem(72,0,0.001804), Elem(72,1,0.017168), Elem(72,2,0.003458), Elem(72,3,0.006691), Elem(72,4,0.661710), Elem(72,5,0.006654), Elem(72,6,0.003338),
+ Elem(72,7,0.002230), Elem(72,8,0.001676), Elem(75,0,0.000022), Elem(75,1,0.000033), Elem(75,2,0.000067), Elem(75,3,0.006683), Elem(75,4,0.000067), Elem(75,5,0.000033),
+ Elem(75,6,0.000022), Elem(75,7,0.000017), Elem(77,0,0.001323), Elem(77,1,0.001654), Elem(77,2,0.002206), Elem(77,3,0.003308), Elem(77,4,0.006617), Elem(77,5,0.661660),
+ Elem(77,6,0.006617), Elem(77,7,0.003308), Elem(77,8,0.002206), Elem(81,0,0.001650), Elem(81,1,0.001980), Elem(81,2,0.002475), Elem(81,3,0.003300), Elem(81,4,0.004950),
+ Elem(81,5,0.009900), Elem(81,6,0.990000), Elem(81,7,0.009900), Elem(81,8,0.004950), Elem(84,0,0.031339), Elem(84,1,0.001949), Elem(84,2,0.002130), Elem(84,3,0.002575),
+ Elem(84,4,0.003375), Elem(84,5,0.005010), Elem(84,6,0.009950), Elem(84,7,0.990043), Elem(84,8,0.009937), Elem(89,0,0.001312), Elem(89,1,0.001564), Elem(89,2,0.016612),
+ Elem(89,3,0.002130), Elem(89,4,0.002550), Elem(89,5,0.003350), Elem(89,6,0.004987), Elem(89,7,0.009930), Elem(89,8,0.990025), },
+ { Elem(6,0,0.000150), Elem(6,1,0.000299), Elem(6,2,0.029925), Elem(6,3,0.000299), Elem(6,4,0.000150), Elem(6,5,0.000100), Elem(6,6,0.000075), Elem(6,7,0.000060),
+ Elem(6,8,0.000050), Elem(13,0,0.000299), Elem(13,1,0.029925), Elem(13,2,0.000299), Elem(13,3,0.000150), Elem(13,4,0.000100), Elem(13,5,0.000075), Elem(13,6,0.000060),
+ Elem(13,7,0.000050), Elem(13,8,0.000043), Elem(18,0,0.000045), Elem(18,1,0.000067), Elem(18,2,0.000134), Elem(18,3,0.013367), Elem(18,4,0.000134), Elem(18,5,0.000067),
+ Elem(18,6,0.000045), Elem(18,7,0.000033), Elem(18,8,0.000027), Elem(25,0,0.000033), Elem(25,1,0.000045), Elem(25,2,0.000067), Elem(25,3,0.000134), Elem(25,4,0.013367),
+ Elem(25,5,0.000134), Elem(25,6,0.000067), Elem(25,7,0.000045), Elem(25,8,0.000033), Elem(30,0,0.014989), Elem(30,1,0.000183), Elem(30,2,0.000119), Elem(30,3,0.000117),
+ Elem(30,4,0.000171), Elem(30,5,0.013397), Elem(30,6,0.000159), Elem(30,7,0.000088), Elem(30,8,0.000063), Elem(34,0,0.000022), Elem(34,1,0.000027), Elem(34,2,0.000033),
+ Elem(34,3,0.000045), Elem(34,4,0.000067), Elem(34,5,0.000134), Elem(34,6,0.013367), Elem(34,7,0.000134), Elem(34,8,0.000067), Elem(35,2,0.000017), Elem(35,3,0.000020),
+ Elem(35,4,0.000025), Elem(35,5,0.000033), Elem(35,6,0.000050), Elem(35,7,0.000100), Elem(35,8,0.010000), Elem(42,0,1.481302), Elem(42,1,0.014846), Elem(42,2,0.007446),
+ Elem(42,3,0.004988), Elem(42,4,0.003770), Elem(42,5,0.003063), Elem(42,6,0.002669), Elem(42,7,0.022116), Elem(42,8,0.002052), Elem(47,2,0.000017), Elem(47,3,0.000020),
+ Elem(47,4,0.000025), Elem(47,5,0.000033), Elem(47,6,0.000050), Elem(47,7,0.000100), Elem(47,8,0.010000), Elem(49,1,0.000017), Elem(49,2,0.000020), Elem(49,3,0.000025),
+ Elem(49,4,0.000033), Elem(49,5,0.000050), Elem(49,6,0.000100), Elem(49,7,0.010000), Elem(49,8,0.000100), Elem(54,0,0.007419), Elem(54,1,0.014827), Elem(54,2,1.481290),
+ Elem(54,3,0.014833), Elem(54,4,0.007431), Elem(54,5,0.004971), Elem(54,6,0.003753), Elem(54,7,0.003063), Elem(54,8,0.012469), Elem(61,0,0.014829), Elem(61,1,1.481296),
+ Elem(61,2,0.014846), Elem(61,3,0.007473), Elem(61,4,0.011621), Elem(61,5,0.003770), Elem(61,6,0.002996), Elem(61,7,0.002491), Elem(61,8,0.002133), Elem(66,0,0.002219),
+ Elem(66,1,0.003325), Elem(66,2,0.006639), Elem(66,3,0.661694), Elem(66,4,0.006683), Elem(66,5,0.009992), Elem(66,6,0.002272), Elem(66,7,0.001688), Elem(66,8,0.001346),
+ Elem(70,2,0.000017), Elem(70,3,0.000022), Elem(70,4,0.000033), Elem(70,5,0.000067), Elem(70,6,0.006683), Elem(70,7,0.000067), Elem(70,8,0.000033), Elem(73,0,0.001804),
+ Elem(73,1,0.017168), Elem(73,2,0.003458), Elem(73,3,0.006691), Elem(73,4,0.661710), Elem(73,5,0.006654), Elem(73,6,0.003338), Elem(73,7,0.002230), Elem(73,8,0.001676),
+ Elem(78,0,0.001346), Elem(78,1,0.001688), Elem(78,2,0.002272), Elem(78,3,0.009992), Elem(78,4,0.006683), Elem(78,5,0.661694), Elem(78,6,0.006639), Elem(78,7,0.003325),
+ Elem(78,8,0.002219), Elem(82,0,0.001103), Elem(82,1,0.001323), Elem(82,2,0.001654), Elem(82,3,0.002206), Elem(82,4,0.003308), Elem(82,5,0.006617), Elem(82,6,0.661660),
+ Elem(82,7,0.006617), Elem(82,8,0.003308), Elem(85,0,0.031339), Elem(85,1,0.001949), Elem(85,2,0.002130), Elem(85,3,0.002575), Elem(85,4,0.003375), Elem(85,5,0.005010),
+ Elem(85,6,0.009950), Elem(85,7,0.990043), Elem(85,8,0.009937), Elem(90,0,0.001312), Elem(90,1,0.001564), Elem(90,2,0.016612), Elem(90,3,0.002130), Elem(90,4,0.002550),
+ Elem(90,5,0.003350), Elem(90,6,0.004987), Elem(90,7,0.009930), Elem(90,8,0.990025), },
+ { Elem(7,0,0.000150), Elem(7,1,0.000299), Elem(7,2,0.029925), Elem(7,3,0.000299), Elem(7,4,0.000150), Elem(7,5,0.000100), Elem(7,6,0.000075), Elem(7,7,0.000060),
+ Elem(7,8,0.000050), Elem(14,0,0.000299), Elem(14,1,0.029925), Elem(14,2,0.000299), Elem(14,3,0.000150), Elem(14,4,0.000100), Elem(14,5,0.000075), Elem(14,6,0.000060),
+ Elem(14,7,0.000050), Elem(14,8,0.000043), Elem(19,0,0.000045), Elem(19,1,0.000067), Elem(19,2,0.000134), Elem(19,3,0.013367), Elem(19,4,0.000134), Elem(19,5,0.000067),
+ Elem(19,6,0.000045), Elem(19,7,0.000033), Elem(19,8,0.000027), Elem(26,0,0.000033), Elem(26,1,0.000045), Elem(26,2,0.000067), Elem(26,3,0.000134), Elem(26,4,0.013367),
+ Elem(26,5,0.000134), Elem(26,6,0.000067), Elem(26,7,0.000045), Elem(26,8,0.000033), Elem(31,0,0.000047), Elem(31,1,0.000057), Elem(31,2,0.000073), Elem(31,3,0.000101),
+ Elem(31,4,0.000178), Elem(31,5,0.013430), Elem(31,6,0.000245), Elem(31,7,0.006840), Elem(31,8,0.009045), Elem(35,0,0.000022), Elem(35,1,0.000027), Elem(35,2,0.000033),
+ Elem(35,3,0.000045), Elem(35,4,0.000067), Elem(35,5,0.000134), Elem(35,6,0.013367), Elem(35,7,0.000134), Elem(35,8,0.000067), Elem(36,0,0.014962), Elem(36,1,0.000150),
+ Elem(36,2,0.000075), Elem(36,3,0.000050), Elem(36,4,0.000037), Elem(36,5,0.000030), Elem(36,6,0.000025), Elem(36,7,0.000021), Elem(36,8,0.000019), Elem(43,0,1.481358),
+ Elem(43,1,0.014973), Elem(43,2,0.022382), Elem(43,3,0.005104), Elem(43,4,0.003800), Elem(43,5,0.003046), Elem(43,6,0.002573), Elem(43,7,0.008829), Elem(43,8,0.001943),
+ Elem(50,3,0.000017), Elem(50,4,0.000022), Elem(50,5,0.000033), Elem(50,6,0.000067), Elem(50,7,0.006683), Elem(50,8,0.000067), Elem(55,0,0.022369), Elem(55,1,0.014962),
+ Elem(55,2,1.481348), Elem(55,3,0.014863), Elem(55,4,0.007444), Elem(55,5,0.004968), Elem(55,6,0.003728), Elem(55,7,0.002984), Elem(55,8,0.002487), Elem(62,0,0.014829),
+ Elem(62,1,1.481296), Elem(62,2,0.014846), Elem(62,3,0.007473), Elem(62,4,0.011621), Elem(62,5,0.003770), Elem(62,6,0.002996), Elem(62,7,0.002491), Elem(62,8,0.002133),
+ Elem(67,0,0.002224), Elem(67,1,0.003331), Elem(67,2,0.006646), Elem(67,3,0.661703), Elem(67,4,0.006695), Elem(67,5,0.010007), Elem(67,6,0.002295), Elem(67,7,0.001732),
+ Elem(67,8,0.005812), Elem(71,2,0.000017), Elem(71,3,0.000022), Elem(71,4,0.000033), Elem(71,5,0.000067), Elem(71,6,0.006683), Elem(71,7,0.000067), Elem(71,8,0.000033),
+ Elem(74,0,0.001804), Elem(74,1,0.017168), Elem(74,2,0.003458), Elem(74,3,0.006691), Elem(74,4,0.661710), Elem(74,5,0.006654), Elem(74,6,0.003338), Elem(74,7,0.002230),
+ Elem(74,8,0.001676), Elem(79,0,0.001898), Elem(79,1,0.002319), Elem(79,2,0.003009), Elem(79,3,0.010876), Elem(79,4,0.007789), Elem(79,5,0.663168), Elem(79,6,0.008850),
+ Elem(79,7,0.007747), Elem(79,8,0.444436), Elem(83,0,0.001103), Elem(83,1,0.001323), Elem(83,2,0.001654), Elem(83,3,0.002206), Elem(83,4,0.003308), Elem(83,5,0.006617),
+ Elem(83,6,0.661660), Elem(83,7,0.006617), Elem(83,8,0.003308), Elem(86,0,0.015908), Elem(86,1,0.001252), Elem(86,2,0.001398), Elem(86,3,0.001704), Elem(86,4,0.002243),
+ Elem(86,5,0.003338), Elem(86,6,0.006642), Elem(86,7,0.661682), Elem(86,8,0.006635), },
+ { Elem(8,0,0.000150), Elem(8,1,0.000299), Elem(8,2,0.029925), Elem(8,3,0.000299), Elem(8,4,0.000150), Elem(8,5,0.000100), Elem(8,6,0.000075), Elem(8,7,0.000060),
+ Elem(8,8,0.000050), Elem(15,0,0.000299), Elem(15,1,0.029925), Elem(15,2,0.000299), Elem(15,3,0.000150), Elem(15,4,0.000100), Elem(15,5,0.000075), Elem(15,6,0.000060),
+ Elem(15,7,0.000050), Elem(15,8,0.000043), Elem(20,0,0.000045), Elem(20,1,0.000067), Elem(20,2,0.000134), Elem(20,3,0.013367), Elem(20,4,0.000134), Elem(20,5,0.000067),
+ Elem(20,6,0.000045), Elem(20,7,0.000033), Elem(20,8,0.000027), Elem(27,0,0.000017), Elem(27,1,0.000022), Elem(27,2,0.000033), Elem(27,3,0.000067), Elem(27,4,0.006683),
+ Elem(27,5,0.000067), Elem(27,6,0.000033), Elem(27,7,0.000022), Elem(27,8,0.000017), Elem(29,0,0.000017), Elem(29,1,0.000022), Elem(29,2,0.000033), Elem(29,3,0.000067),
+ Elem(29,4,0.006683), Elem(29,5,0.000067), Elem(29,6,0.000033), Elem(29,7,0.000022), Elem(29,8,0.000017), Elem(32,0,0.000047), Elem(32,1,0.000057), Elem(32,2,0.000073),
+ Elem(32,3,0.000101), Elem(32,4,0.000178), Elem(32,5,0.013430), Elem(32,6,0.000245), Elem(32,7,0.006840), Elem(32,8,0.009045), Elem(33,0,0.014962), Elem(33,1,0.000150),
+ Elem(33,2,0.000075), Elem(33,3,0.000050), Elem(33,4,0.000037), Elem(33,5,0.000030), Elem(33,6,0.000025), Elem(33,7,0.000021), Elem(33,8,0.000019), Elem(41,0,0.000022),
+ Elem(41,1,0.000027), Elem(41,2,0.000033), Elem(41,3,0.000045), Elem(41,4,0.000067), Elem(41,5,0.000134), Elem(41,6,0.013367), Elem(41,7,0.000134), Elem(41,8,0.000067),
+ Elem(44,0,1.481358), Elem(44,1,0.014973), Elem(44,2,0.022382), Elem(44,3,0.005104), Elem(44,4,0.003800), Elem(44,5,0.003046), Elem(44,6,0.002573), Elem(44,7,0.008829),
+ Elem(44,8,0.001943), Elem(51,3,0.000017), Elem(51,4,0.000022), Elem(51,5,0.000033), Elem(51,6,0.000067), Elem(51,7,0.006683), Elem(51,8,0.000067), Elem(56,0,0.022369),
+ Elem(56,1,0.014962), Elem(56,2,1.481348), Elem(56,3,0.014863), Elem(56,4,0.007444), Elem(56,5,0.004968), Elem(56,6,0.003728), Elem(56,7,0.002984), Elem(56,8,0.002487),
+ Elem(63,0,0.014813), Elem(63,1,1.481273), Elem(63,2,0.014813), Elem(63,3,0.007406), Elem(63,4,0.004938), Elem(63,5,0.003703), Elem(63,6,0.002963), Elem(63,7,0.002469),
+ Elem(63,8,0.002116), Elem(65,0,0.000017), Elem(65,1,0.000022), Elem(65,2,0.000033), Elem(65,3,0.000067), Elem(65,4,0.006683), Elem(65,5,0.000067), Elem(65,6,0.000033),
+ Elem(65,7,0.000022), Elem(65,8,0.000017), Elem(68,0,0.002224), Elem(68,1,0.003331), Elem(68,2,0.006646), Elem(68,3,0.661703), Elem(68,4,0.006695), Elem(68,5,0.010007),
+ Elem(68,6,0.002295), Elem(68,7,0.001732), Elem(68,8,0.005812), Elem(75,0,0.001804), Elem(75,1,0.017168), Elem(75,2,0.003458), Elem(75,3,0.006691), Elem(75,4,0.661710),
+ Elem(75,5,0.006654), Elem(75,6,0.003338), Elem(75,7,0.002230), Elem(75,8,0.001676), Elem(80,0,0.001898), Elem(80,1,0.002319), Elem(80,2,0.003009), Elem(80,3,0.010876),
+ Elem(80,4,0.007789), Elem(80,5,0.663168), Elem(80,6,0.008850), Elem(80,7,0.007747), Elem(80,8,0.444436), Elem(84,0,0.001103), Elem(84,1,0.001323), Elem(84,2,0.001654),
+ Elem(84,3,0.002206), Elem(84,4,0.003308), Elem(84,5,0.006617), Elem(84,6,0.661660), Elem(84,7,0.006617), Elem(84,8,0.003308), Elem(87,0,0.015908), Elem(87,1,0.001252),
+ Elem(87,2,0.001398), Elem(87,3,0.001704), Elem(87,4,0.002243), Elem(87,5,0.003338), Elem(87,6,0.006642), Elem(87,7,0.661682), Elem(87,8,0.006635), },
+ { Elem(9,0,0.000150), Elem(9,1,0.000299), Elem(9,2,0.029925), Elem(9,3,0.000299), Elem(9,4,0.000150), Elem(9,5,0.000100), Elem(9,6,0.000075), Elem(9,7,0.000060),
+ Elem(9,8,0.000050), Elem(16,0,0.000299), Elem(16,1,0.029925), Elem(16,2,0.000299), Elem(16,3,0.000150), Elem(16,4,0.000100), Elem(16,5,0.000075), Elem(16,6,0.000060),
+ Elem(16,7,0.000050), Elem(16,8,0.000043), Elem(21,0,0.000045), Elem(21,1,0.000067), Elem(21,2,0.000134), Elem(21,3,0.013367), Elem(21,4,0.000134), Elem(21,5,0.000067),
+ Elem(21,6,0.000045), Elem(21,7,0.000033), Elem(21,8,0.000027), Elem(28,0,0.000033), Elem(28,1,0.000045), Elem(28,2,0.000067), Elem(28,3,0.000134), Elem(28,4,0.013367),
+ Elem(28,5,0.000134), Elem(28,6,0.000067), Elem(28,7,0.000045), Elem(28,8,0.000033), Elem(33,0,0.000047), Elem(33,1,0.000057), Elem(33,2,0.000073), Elem(33,3,0.000101),
+ Elem(33,4,0.000178), Elem(33,5,0.013430), Elem(33,6,0.000245), Elem(33,7,0.006840), Elem(33,8,0.009045), Elem(38,0,0.014962), Elem(38,1,0.000150), Elem(38,2,0.000075),
+ Elem(38,3,0.000050), Elem(38,4,0.000037), Elem(38,5,0.000030), Elem(38,6,0.000025), Elem(38,7,0.000021), Elem(38,8,0.000019), Elem(42,0,0.000022), Elem(42,1,0.000027),
+ Elem(42,2,0.000033), Elem(42,3,0.000045), Elem(42,4,0.000067), Elem(42,5,0.000134), Elem(42,6,0.013367), Elem(42,7,0.000134), Elem(42,8,0.000067), Elem(45,0,1.481358),
+ Elem(45,1,0.014973), Elem(45,2,0.022382), Elem(45,3,0.005104), Elem(45,4,0.003800), Elem(45,5,0.003046), Elem(45,6,0.002573), Elem(45,7,0.008829), Elem(45,8,0.001943),
+ Elem(49,2,0.000017), Elem(49,3,0.000022), Elem(49,4,0.000033), Elem(49,5,0.000067), Elem(49,6,0.006683), Elem(49,7,0.000067), Elem(49,8,0.000033), Elem(52,3,0.000017),
+ Elem(52,4,0.000022), Elem(52,5,0.000033), Elem(52,6,0.000067), Elem(52,7,0.006683), Elem(52,8,0.000067), Elem(57,0,0.022369), Elem(57,1,0.014962), Elem(57,2,1.481348),
+ Elem(57,3,0.014863), Elem(57,4,0.007444), Elem(57,5,0.004968), Elem(57,6,0.003728), Elem(57,7,0.002984), Elem(57,8,0.002487), Elem(64,0,0.014829), Elem(64,1,1.481296),
+ Elem(64,2,0.014846), Elem(64,3,0.007473), Elem(64,4,0.011621), Elem(64,5,0.003770), Elem(64,6,0.002996), Elem(64,7,0.002491), Elem(64,8,0.002133), Elem(69,0,0.002224),
+ Elem(69,1,0.003331), Elem(69,2,0.006646), Elem(69,3,0.661703), Elem(69,4,0.006695), Elem(69,5,0.010007), Elem(69,6,0.002295), Elem(69,7,0.001732), Elem(69,8,0.005812),
+ Elem(76,0,0.001804), Elem(76,1,0.017168), Elem(76,2,0.003458), Elem(76,3,0.006691), Elem(76,4,0.661710), Elem(76,5,0.006654), Elem(76,6,0.003338), Elem(76,7,0.002230),
+ Elem(76,8,0.001676), Elem(81,0,0.001898), Elem(81,1,0.002319), Elem(81,2,0.003009), Elem(81,3,0.010876), Elem(81,4,0.007789), Elem(81,5,0.663168), Elem(81,6,0.008850),
+ Elem(81,7,0.007747), Elem(81,8,0.444436), Elem(85,0,0.001103), Elem(85,1,0.001323), Elem(85,2,0.001654), Elem(85,3,0.002206), Elem(85,4,0.003308), Elem(85,5,0.006617),
+ Elem(85,6,0.661660), Elem(85,7,0.006617), Elem(85,8,0.003308), Elem(88,0,0.015908), Elem(88,1,0.001252), Elem(88,2,0.001398), Elem(88,3,0.001704), Elem(88,4,0.002243),
+ Elem(88,5,0.003338), Elem(88,6,0.006642), Elem(88,7,0.661682), Elem(88,8,0.006635), },
+ { Elem(10,0,0.000150), Elem(10,1,0.000299), Elem(10,2,0.029925), Elem(10,3,0.000299), Elem(10,4,0.000150), Elem(10,5,0.000100), Elem(10,6,0.000075), Elem(10,7,0.000060),
+ Elem(10,8,0.000050), Elem(17,0,0.000299), Elem(17,1,0.029925), Elem(17,2,0.000299), Elem(17,3,0.000150), Elem(17,4,0.000100), Elem(17,5,0.000075), Elem(17,6,0.000060),
+ Elem(17,7,0.000050), Elem(17,8,0.000043), Elem(22,0,0.000045), Elem(22,1,0.000067), Elem(22,2,0.000134), Elem(22,3,0.013367), Elem(22,4,0.000134), Elem(22,5,0.000067),
+ Elem(22,6,0.000045), Elem(22,7,0.000033), Elem(22,8,0.000027), Elem(29,0,0.000017), Elem(29,1,0.000022), Elem(29,2,0.000033), Elem(29,3,0.000067), Elem(29,4,0.006683),
+ Elem(29,5,0.000067), Elem(29,6,0.000033), Elem(29,7,0.000022), Elem(29,8,0.000017), Elem(31,2,0.000017), Elem(31,3,0.000022), Elem(31,4,0.000033), Elem(31,5,0.000067),
+ Elem(31,6,0.006683), Elem(31,7,0.000067), Elem(31,8,0.000033), Elem(34,0,0.000047), Elem(34,1,0.000057), Elem(34,2,0.000073), Elem(34,3,0.000101), Elem(34,4,0.000178),
+ Elem(34,5,0.013430), Elem(34,6,0.000245), Elem(34,7,0.006840), Elem(34,8,0.009045), Elem(39,0,0.014962), Elem(39,1,0.000150), Elem(39,2,0.000075), Elem(39,3,0.000050),
+ Elem(39,4,0.000037), Elem(39,5,0.000030), Elem(39,6,0.000025), Elem(39,7,0.000021), Elem(39,8,0.000019), Elem(43,2,0.000017), Elem(43,3,0.000022), Elem(43,4,0.000033),
+ Elem(43,5,0.000067), Elem(43,6,0.006683), Elem(43,7,0.000067), Elem(43,8,0.000033), Elem(46,0,1.481358), Elem(46,1,0.014973), Elem(46,2,0.022382), Elem(46,3,0.005104),
+ Elem(46,4,0.003800), Elem(46,5,0.003046), Elem(46,6,0.002573), Elem(46,7,0.008829), Elem(46,8,0.001943), Elem(50,2,0.000017), Elem(50,3,0.000022), Elem(50,4,0.000033),
+ Elem(50,5,0.000067), Elem(50,6,0.006683), Elem(50,7,0.000067), Elem(50,8,0.000033), Elem(53,3,0.000017), Elem(53,4,0.000022), Elem(53,5,0.000033), Elem(53,6,0.000067),
+ Elem(53,7,0.006683), Elem(53,8,0.000067), Elem(58,0,0.022369), Elem(58,1,0.014962), Elem(58,2,1.481348), Elem(58,3,0.014863), Elem(58,4,0.007444), Elem(58,5,0.004968),
+ Elem(58,6,0.003728), Elem(58,7,0.002984), Elem(58,8,0.002487), Elem(65,0,0.014813), Elem(65,1,1.481273), Elem(65,2,0.014813), Elem(65,3,0.007406), Elem(65,4,0.004938),
+ Elem(65,5,0.003703), Elem(65,6,0.002963), Elem(65,7,0.002469), Elem(65,8,0.002116), Elem(70,0,0.002224), Elem(70,1,0.003331), Elem(70,2,0.006646), Elem(70,3,0.661703),
+ Elem(70,4,0.006695), Elem(70,5,0.010007), Elem(70,6,0.002295), Elem(70,7,0.001732), Elem(70,8,0.005812), Elem(75,0,0.000150), Elem(75,1,0.014962), Elem(75,2,0.000150),
+ Elem(75,3,0.000075), Elem(75,4,0.000050), Elem(75,5,0.000037), Elem(75,6,0.000030), Elem(75,7,0.000025), Elem(75,8,0.000021), Elem(77,0,0.001654), Elem(77,1,0.002206),
+ Elem(77,2,0.003308), Elem(77,3,0.006617), Elem(77,4,0.661660), Elem(77,5,0.006617), Elem(77,6,0.003308), Elem(77,7,0.002206), Elem(77,8,0.001654), Elem(82,0,0.001898),
+ Elem(82,1,0.002319), Elem(82,2,0.003009), Elem(82,3,0.010876), Elem(82,4,0.007789), Elem(82,5,0.663168), Elem(82,6,0.008850), Elem(82,7,0.007747), Elem(82,8,0.444436),
+ Elem(86,0,0.001103), Elem(86,1,0.001323), Elem(86,2,0.001654), Elem(86,3,0.002206), Elem(86,4,0.003308), Elem(86,5,0.006617), Elem(86,6,0.661660), Elem(86,7,0.006617),
+ Elem(86,8,0.003308), Elem(89,0,0.015908), Elem(89,1,0.001252), Elem(89,2,0.001398), Elem(89,3,0.001704), Elem(89,4,0.002243), Elem(89,5,0.003338), Elem(89,6,0.006642),
+ Elem(89,7,0.661682), Elem(89,8,0.006635), },
+ { Elem(11,0,0.000150), Elem(11,1,0.000299), Elem(11,2,0.029925), Elem(11,3,0.000299), Elem(11,4,0.000150), Elem(11,5,0.000100), Elem(11,6,0.000075), Elem(11,7,0.000060),
+ Elem(11,8,0.000050), Elem(18,0,0.000299), Elem(18,1,0.029925), Elem(18,2,0.000299), Elem(18,3,0.000150), Elem(18,4,0.000100), Elem(18,5,0.000075), Elem(18,6,0.000060),
+ Elem(18,7,0.000050), Elem(18,8,0.000043), Elem(23,0,0.000045), Elem(23,1,0.000067), Elem(23,2,0.000134), Elem(23,3,0.013367), Elem(23,4,0.000134), Elem(23,5,0.000067),
+ Elem(23,6,0.000045), Elem(23,7,0.000033), Elem(23,8,0.000027), Elem(30,0,0.000033), Elem(30,1,0.000045), Elem(30,2,0.000067), Elem(30,3,0.000134), Elem(30,4,0.013367),
+ Elem(30,5,0.000134), Elem(30,6,0.000067), Elem(30,7,0.000045), Elem(30,8,0.000033), Elem(32,2,0.000017), Elem(32,3,0.000022), Elem(32,4,0.000033), Elem(32,5,0.000067),
+ Elem(32,6,0.006683), Elem(32,7,0.000067), Elem(32,8,0.000033), Elem(35,0,0.000047), Elem(35,1,0.000057), Elem(35,2,0.000073), Elem(35,3,0.000101), Elem(35,4,0.000178),
+ Elem(35,5,0.013430), Elem(35,6,0.000245), Elem(35,7,0.006840), Elem(35,8,0.009045), Elem(40,0,0.014962), Elem(40,1,0.000150), Elem(40,2,0.000075), Elem(40,3,0.000050),
+ Elem(40,4,0.000037), Elem(40,5,0.000030), Elem(40,6,0.000025), Elem(40,7,0.000021), Elem(40,8,0.000019), Elem(44,2,0.000017), Elem(44,3,0.000022), Elem(44,4,0.000033),
+ Elem(44,5,0.000067), Elem(44,6,0.006683), Elem(44,7,0.000067), Elem(44,8,0.000033), Elem(47,0,1.481358), Elem(47,1,0.014973), Elem(47,2,0.022382), Elem(47,3,0.005104),
+ Elem(47,4,0.003800), Elem(47,5,0.003046), Elem(47,6,0.002573), Elem(47,7,0.008829), Elem(47,8,0.001943), Elem(51,2,0.000017), Elem(51,3,0.000022), Elem(51,4,0.000033),
+ Elem(51,5,0.000067), Elem(51,6,0.006683), Elem(51,7,0.000067), Elem(51,8,0.000033), Elem(54,3,0.000017), Elem(54,4,0.000022), Elem(54,5,0.000033), Elem(54,6,0.000067),
+ Elem(54,7,0.006683), Elem(54,8,0.000067), Elem(59,0,0.022369), Elem(59,1,0.014962), Elem(59,2,1.481348), Elem(59,3,0.014863), Elem(59,4,0.007444), Elem(59,5,0.004968),
+ Elem(59,6,0.003728), Elem(59,7,0.002984), Elem(59,8,0.002487), Elem(66,0,0.014829), Elem(66,1,1.481296), Elem(66,2,0.014846), Elem(66,3,0.007473), Elem(66,4,0.011621),
+ Elem(66,5,0.003770), Elem(66,6,0.002996), Elem(66,7,0.002491), Elem(66,8,0.002133), Elem(71,0,0.002224), Elem(71,1,0.003331), Elem(71,2,0.006646), Elem(71,3,0.661703),
+ Elem(71,4,0.006695), Elem(71,5,0.010007), Elem(71,6,0.002295), Elem(71,7,0.001732), Elem(71,8,0.005812), Elem(78,0,0.001804), Elem(78,1,0.017168), Elem(78,2,0.003458),
+ Elem(78,3,0.006691), Elem(78,4,0.661710), Elem(78,5,0.006654), Elem(78,6,0.003338), Elem(78,7,0.002230), Elem(78,8,0.001676), Elem(83,0,0.001898), Elem(83,1,0.002319),
+ Elem(83,2,0.003009), Elem(83,3,0.010876), Elem(83,4,0.007789), Elem(83,5,0.663168), Elem(83,6,0.008850), Elem(83,7,0.007747), Elem(83,8,0.444436), Elem(87,0,0.001103),
+ Elem(87,1,0.001323), Elem(87,2,0.001654), Elem(87,3,0.002206), Elem(87,4,0.003308), Elem(87,5,0.006617), Elem(87,6,0.661660), Elem(87,7,0.006617), Elem(87,8,0.003308),
+ Elem(90,0,0.015908), Elem(90,1,0.001252), Elem(90,2,0.001398), Elem(90,3,0.001704), Elem(90,4,0.002243), Elem(90,5,0.003338), Elem(90,6,0.006642), Elem(90,7,0.661682),
+ Elem(90,8,0.006635), },
+ { Elem(0,0,0.044774), Elem(0,1,0.000448), Elem(0,2,0.000224), Elem(0,3,0.000149), Elem(0,4,0.000112), Elem(0,5,0.000090), Elem(0,6,0.000075), Elem(0,7,0.000064),
+ Elem(0,8,0.000056), Elem(12,0,0.000150), Elem(12,1,0.000299), Elem(12,2,0.029925), Elem(12,3,0.000299), Elem(12,4,0.000150), Elem(12,5,0.000100), Elem(12,6,0.000075),
+ Elem(12,7,0.000060), Elem(12,8,0.000050), Elem(19,0,0.000299), Elem(19,1,0.029925), Elem(19,2,0.000299), Elem(19,3,0.000150), Elem(19,4,0.000100), Elem(19,5,0.000075),
+ Elem(19,6,0.000060), Elem(19,7,0.000050), Elem(19,8,0.000043), Elem(24,0,0.000045), Elem(24,1,0.000067), Elem(24,2,0.000134), Elem(24,3,0.013367), Elem(24,4,0.000134),
+ Elem(24,5,0.000067), Elem(24,6,0.000045), Elem(24,7,0.000033), Elem(24,8,0.000027), Elem(31,0,0.000046), Elem(31,1,0.000059), Elem(31,2,0.000085), Elem(31,3,0.000156),
+ Elem(31,4,0.013397), Elem(31,5,0.000178), Elem(31,6,0.000156), Elem(31,7,0.008978), Elem(31,8,0.000123), Elem(33,2,0.000017), Elem(33,3,0.000022), Elem(33,4,0.000033),
+ Elem(33,5,0.000067), Elem(33,6,0.006683), Elem(33,7,0.000067), Elem(33,8,0.000033), Elem(41,0,0.000038), Elem(41,1,0.000046), Elem(41,2,0.000059), Elem(41,3,0.000085),
+ Elem(41,4,0.000156), Elem(41,5,0.013397), Elem(41,6,0.000178), Elem(41,7,0.000156), Elem(41,8,0.008978), Elem(45,2,0.000017), Elem(45,3,0.000022), Elem(45,4,0.000033),
+ Elem(45,5,0.000067), Elem(45,6,0.006683), Elem(45,7,0.000067), Elem(45,8,0.000033), Elem(48,0,2.216334), Elem(48,1,0.022163), Elem(48,2,0.011082), Elem(48,3,0.007388),
+ Elem(48,4,0.005541), Elem(48,5,0.004433), Elem(48,6,0.003694), Elem(48,7,0.003166), Elem(48,8,0.002770), Elem(52,2,0.000017), Elem(52,3,0.000022), Elem(52,4,0.000033),
+ Elem(52,5,0.000067), Elem(52,6,0.006683), Elem(52,7,0.000067), Elem(52,8,0.000033), Elem(60,0,0.007429), Elem(60,1,0.014846), Elem(60,2,1.481340), Elem(60,3,0.021496),
+ Elem(60,4,0.007473), Elem(60,5,0.004971), Elem(60,6,0.003725), Elem(60,7,0.002979), Elem(60,8,0.002482), Elem(67,0,0.014836), Elem(67,1,1.481303), Elem(67,2,0.014855),
+ Elem(67,3,0.007484), Elem(67,4,0.011636), Elem(67,5,0.003792), Elem(67,6,0.003041), Elem(67,7,0.006958), Elem(67,8,0.002177), Elem(72,0,0.002280), Elem(72,1,0.003458),
+ Elem(72,2,0.021579), Elem(72,3,0.661810), Elem(72,4,0.006691), Elem(72,5,0.003358), Elem(72,6,0.002243), Elem(72,7,0.001684), Elem(72,8,0.001348), Elem(79,0,0.002436),
+ Elem(79,1,0.017905), Elem(79,2,0.004342), Elem(79,3,0.007797), Elem(79,4,0.663184), Elem(79,5,0.008865), Elem(79,6,0.007760), Elem(79,7,0.444447), Elem(79,8,0.006098),
+ Elem(84,0,0.001876), Elem(84,1,0.002286), Elem(84,2,0.002943), Elem(84,3,0.004193), Elem(84,4,0.007722), Elem(84,5,0.663135), Elem(84,6,0.008828), Elem(84,7,0.007730),
+ Elem(84,8,0.444422), Elem(88,0,0.001103), Elem(88,1,0.001323), Elem(88,2,0.001654), Elem(88,3,0.002206), Elem(88,4,0.003308), Elem(88,5,0.006617), Elem(88,6,0.661660),
+ Elem(88,7,0.006617), Elem(88,8,0.003308), },
+ { Elem(1,0,0.044774), Elem(1,1,0.000448), Elem(1,2,0.000224), Elem(1,3,0.000149), Elem(1,4,0.000112), Elem(1,5,0.000090), Elem(1,6,0.000075), Elem(1,7,0.000064),
+ Elem(1,8,0.000056), Elem(13,0,0.000224), Elem(13,1,0.000448), Elem(13,2,0.044774), Elem(13,3,0.000448), Elem(13,4,0.000224), Elem(13,5,0.000149), Elem(13,6,0.000112),
+ Elem(13,7,0.000090), Elem(13,8,0.000075), Elem(20,0,0.000299), Elem(20,1,0.029925), Elem(20,2,0.000299), Elem(20,3,0.000150), Elem(20,4,0.000100), Elem(20,5,0.000075),
+ Elem(20,6,0.000060), Elem(20,7,0.000050), Elem(20,8,0.000043), Elem(25,0,0.000045), Elem(25,1,0.000067), Elem(25,2,0.000134), Elem(25,3,0.013367), Elem(25,4,0.000134),
+ Elem(25,5,0.000067), Elem(25,6,0.000045), Elem(25,7,0.000033), Elem(25,8,0.000027), Elem(32,0,0.000046), Elem(32,1,0.000059), Elem(32,2,0.000085), Elem(32,3,0.000156),
+ Elem(32,4,0.013397), Elem(32,5,0.000178), Elem(32,6,0.000156), Elem(32,7,0.008978), Elem(32,8,0.000123), Elem(34,2,0.000017), Elem(34,3,0.000022), Elem(34,4,0.000033),
+ Elem(34,5,0.000067), Elem(34,6,0.006683), Elem(34,7,0.000067), Elem(34,8,0.000033), Elem(42,0,0.000038), Elem(42,1,0.000046), Elem(42,2,0.000059), Elem(42,3,0.000085),
+ Elem(42,4,0.000156), Elem(42,5,0.013397), Elem(42,6,0.000178), Elem(42,7,0.000156), Elem(42,8,0.008978), Elem(46,2,0.000017), Elem(46,3,0.000022), Elem(46,4,0.000033),
+ Elem(46,5,0.000067), Elem(46,6,0.006683), Elem(46,7,0.000067), Elem(46,8,0.000033), Elem(49,0,2.216353), Elem(49,1,0.022186), Elem(49,2,0.011111), Elem(49,3,0.007430),
+ Elem(49,4,0.005619), Elem(49,5,0.011131), Elem(49,6,0.003783), Elem(49,7,0.003244), Elem(49,8,0.007260), Elem(53,2,0.000017), Elem(53,3,0.000022), Elem(53,4,0.000033),
+ Elem(53,5,0.000067), Elem(53,6,0.006683), Elem(53,7,0.000067), Elem(53,8,0.000033), Elem(61,0,0.011104), Elem(61,1,0.022197), Elem(61,2,2.216401), Elem(61,3,0.028847),
+ Elem(61,4,0.011149), Elem(61,5,0.007421), Elem(61,6,0.005563), Elem(61,7,0.004449), Elem(61,8,0.003707), Elem(68,0,0.014836), Elem(68,1,1.481303), Elem(68,2,0.014855),
+ Elem(68,3,0.007484), Elem(68,4,0.011636), Elem(68,5,0.003792), Elem(68,6,0.003041), Elem(68,7,0.006958), Elem(68,8,0.002177), Elem(73,0,0.002317), Elem(73,1,0.003532),
+ Elem(73,2,0.029004), Elem(73,3,0.661884), Elem(73,4,0.006729), Elem(73,5,0.003383), Elem(73,6,0.002262), Elem(73,7,0.001699), Elem(73,8,0.001361), Elem(80,0,0.002436),
+ Elem(80,1,0.017905), Elem(80,2,0.004342), Elem(80,3,0.007797), Elem(80,4,0.663184), Elem(80,5,0.008865), Elem(80,6,0.007760), Elem(80,7,0.444447), Elem(80,8,0.006098),
+ Elem(85,0,0.024263), Elem(85,1,0.002510), Elem(85,2,0.003054), Elem(85,3,0.004267), Elem(85,4,0.007778), Elem(85,5,0.663179), Elem(85,6,0.008865), Elem(85,7,0.007762),
+ Elem(85,8,0.444450), Elem(89,0,0.001103), Elem(89,1,0.001323), Elem(89,2,0.001654), Elem(89,3,0.002206), Elem(89,4,0.003308), Elem(89,5,0.006617), Elem(89,6,0.661660),
+ Elem(89,7,0.006617), Elem(89,8,0.003308), },
+ { Elem(2,0,0.044774), Elem(2,1,0.000448), Elem(2,2,0.000224), Elem(2,3,0.000149), Elem(2,4,0.000112), Elem(2,5,0.000090), Elem(2,6,0.000075), Elem(2,7,0.000064),
+ Elem(2,8,0.000056), Elem(14,0,0.000224), Elem(14,1,0.000448), Elem(14,2,0.044774), Elem(14,3,0.000448), Elem(14,4,0.000224), Elem(14,5,0.000149), Elem(14,6,0.000112),
+ Elem(14,7,0.000090), Elem(14,8,0.000075), Elem(21,0,0.000448), Elem(21,1,0.044774), Elem(21,2,0.000448), Elem(21,3,0.000224), Elem(21,4,0.000149), Elem(21,5,0.000112),
+ Elem(21,6,0.000090), Elem(21,7,0.000075), Elem(21,8,0.000064), Elem(26,0,0.000045), Elem(26,1,0.000067), Elem(26,2,0.000134), Elem(26,3,0.013367), Elem(26,4,0.000134),
+ Elem(26,5,0.000067), Elem(26,6,0.000045), Elem(26,7,0.000033), Elem(26,8,0.000027), Elem(31,0,0.000019), Elem(31,1,0.000023), Elem(31,2,0.000030), Elem(31,3,0.000042),
+ Elem(31,4,0.000078), Elem(31,5,0.006698), Elem(31,6,0.000089), Elem(31,7,0.000078), Elem(31,8,0.004489), Elem(33,0,0.000035), Elem(33,1,0.000045), Elem(33,2,0.000063),
+ Elem(33,3,0.000112), Elem(33,4,0.008963), Elem(33,5,0.000134), Elem(33,6,0.000134), Elem(33,7,0.008963), Elem(33,8,0.000112), Elem(35,4,0.000022), Elem(35,5,0.000045),
+ Elem(35,6,0.004467), Elem(35,7,0.000045), Elem(35,8,0.000022), Elem(43,0,0.000019), Elem(43,1,0.000023), Elem(43,2,0.000030), Elem(43,3,0.000042), Elem(43,4,0.000078),
+ Elem(43,5,0.006698), Elem(43,6,0.000089), Elem(43,7,0.000078), Elem(43,8,0.004489), Elem(47,4,0.000022), Elem(47,5,0.000045), Elem(47,6,0.004467), Elem(47,7,0.000045),
+ Elem(47,8,0.000022), Elem(50,0,2.216353), Elem(50,1,0.022186), Elem(50,2,0.011111), Elem(50,3,0.007430), Elem(50,4,0.005619), Elem(50,5,0.011131), Elem(50,6,0.003783),
+ Elem(50,7,0.003244), Elem(50,8,0.007260), Elem(54,4,0.000022), Elem(54,5,0.000045), Elem(54,6,0.004467), Elem(54,7,0.000045), Elem(54,8,0.000022), Elem(62,0,0.011104),
+ Elem(62,1,0.022197), Elem(62,2,2.216401), Elem(62,3,0.028847), Elem(62,4,0.011149), Elem(62,5,0.007421), Elem(62,6,0.005563), Elem(62,7,0.004449), Elem(62,8,0.003707),
+ Elem(69,0,0.022181), Elem(69,1,2.216356), Elem(69,2,0.022195), Elem(69,3,0.011138), Elem(69,4,0.011870), Elem(69,5,0.005608), Elem(69,6,0.004500), Elem(69,7,0.008176),
+ Elem(69,8,0.003222), Elem(74,0,0.002317), Elem(74,1,0.003532), Elem(74,2,0.029004), Elem(74,3,0.661884), Elem(74,4,0.006729), Elem(74,5,0.003383), Elem(74,6,0.002262),
+ Elem(74,7,0.001699), Elem(74,8,0.001361), Elem(81,0,0.001961), Elem(81,1,0.024598), Elem(81,2,0.003319), Elem(81,3,0.005640), Elem(81,4,0.443765), Elem(81,5,0.006689),
+ Elem(81,6,0.006678), Elem(81,7,0.443728), Elem(81,8,0.005560), Elem(86,0,0.024263), Elem(86,1,0.002510), Elem(86,2,0.003054), Elem(86,3,0.004267), Elem(86,4,0.007778),
+ Elem(86,5,0.663179), Elem(86,6,0.008865), Elem(86,7,0.007762), Elem(86,8,0.444450), Elem(90,0,0.000737), Elem(90,1,0.000884), Elem(90,2,0.001106), Elem(90,3,0.001474),
+ Elem(90,4,0.002211), Elem(90,5,0.004422), Elem(90,6,0.442217), Elem(90,7,0.004422), Elem(90,8,0.002211), },
+ { Elem(3,0,0.044774), Elem(3,1,0.000448), Elem(3,2,0.000224), Elem(3,3,0.000149), Elem(3,4,0.000112), Elem(3,5,0.000090), Elem(3,6,0.000075), Elem(3,7,0.000064),
+ Elem(3,8,0.000056), Elem(15,0,0.000224), Elem(15,1,0.000448), Elem(15,2,0.044774), Elem(15,3,0.000448), Elem(15,4,0.000224), Elem(15,5,0.000149), Elem(15,6,0.000112),
+ Elem(15,7,0.000090), Elem(15,8,0.000075), Elem(22,0,0.000448), Elem(22,1,0.044774), Elem(22,2,0.000448), Elem(22,3,0.000224), Elem(22,4,0.000149), Elem(22,5,0.000112),
+ Elem(22,6,0.000090), Elem(22,7,0.000075), Elem(22,8,0.000064), Elem(27,0,0.000022), Elem(27,1,0.000033), Elem(27,2,0.000067), Elem(27,3,0.006683), Elem(27,4,0.000067),
+ Elem(27,5,0.000033), Elem(27,6,0.000022), Elem(27,7,0.000017), Elem(29,0,0.000022), Elem(29,1,0.000033), Elem(29,2,0.000067), Elem(29,3,0.006683), Elem(29,4,0.000067),
+ Elem(29,5,0.000033), Elem(29,6,0.000022), Elem(29,7,0.000017), Elem(31,1,0.000018), Elem(31,2,0.000022), Elem(31,3,0.000030), Elem(31,4,0.000045), Elem(31,5,0.000089),
+ Elem(31,6,0.008934), Elem(31,7,0.000089), Elem(31,8,0.000045), Elem(32,0,0.000019), Elem(32,1,0.000023), Elem(32,2,0.000030), Elem(32,3,0.000042), Elem(32,4,0.000078),
+ Elem(32,5,0.006698), Elem(32,6,0.000089), Elem(32,7,0.000078), Elem(32,8,0.004489), Elem(34,0,0.000035), Elem(34,1,0.000045), Elem(34,2,0.000063), Elem(34,3,0.000112),
+ Elem(34,4,0.008963), Elem(34,5,0.000134), Elem(34,6,0.000134), Elem(34,7,0.008963), Elem(34,8,0.000112), Elem(44,0,0.000019), Elem(44,1,0.000023), Elem(44,2,0.000030),
+ Elem(44,3,0.000042), Elem(44,4,0.000078), Elem(44,5,0.006698), Elem(44,6,0.000089), Elem(44,7,0.000078), Elem(44,8,0.004489), Elem(51,0,2.216353), Elem(51,1,0.022186),
+ Elem(51,2,0.011111), Elem(51,3,0.007430), Elem(51,4,0.005619), Elem(51,5,0.011131), Elem(51,6,0.003783), Elem(51,7,0.003244), Elem(51,8,0.007260), Elem(63,0,0.011082),
+ Elem(63,1,0.022163), Elem(63,2,2.216334), Elem(63,3,0.022163), Elem(63,4,0.011082), Elem(63,5,0.007388), Elem(63,6,0.005541), Elem(63,7,0.004433), Elem(63,8,0.003694),
+ Elem(65,0,0.000022), Elem(65,1,0.000033), Elem(65,2,0.000067), Elem(65,3,0.006683), Elem(65,4,0.000067), Elem(65,5,0.000033), Elem(65,6,0.000022), Elem(65,7,0.000017),
+ Elem(67,4,0.000022), Elem(67,5,0.000045), Elem(67,6,0.004467), Elem(67,7,0.000045), Elem(67,8,0.000022), Elem(70,0,0.022181), Elem(70,1,2.216356), Elem(70,2,0.022195),
+ Elem(70,3,0.011138), Elem(70,4,0.011870), Elem(70,5,0.005608), Elem(70,6,0.004500), Elem(70,7,0.008176), Elem(70,8,0.003222), Elem(75,0,0.002317), Elem(75,1,0.003532),
+ Elem(75,2,0.029004), Elem(75,3,0.661884), Elem(75,4,0.006729), Elem(75,5,0.003383), Elem(75,6,0.002262), Elem(75,7,0.001699), Elem(75,8,0.001361), Elem(79,0,0.000737),
+ Elem(79,1,0.000884), Elem(79,2,0.001106), Elem(79,3,0.001474), Elem(79,4,0.002211), Elem(79,5,0.004422), Elem(79,6,0.442217), Elem(79,7,0.004422), Elem(79,8,0.002211),
+ Elem(82,0,0.001961), Elem(82,1,0.024598), Elem(82,2,0.003319), Elem(82,3,0.005640), Elem(82,4,0.443765), Elem(82,5,0.006689), Elem(82,6,0.006678), Elem(82,7,0.443728),
+ Elem(82,8,0.005560), Elem(87,0,0.024263), Elem(87,1,0.002510), Elem(87,2,0.003054), Elem(87,3,0.004267), Elem(87,4,0.007778), Elem(87,5,0.663179), Elem(87,6,0.008865),
+ Elem(87,7,0.007762), Elem(87,8,0.444450), },
+ { Elem(4,0,0.044774), Elem(4,1,0.000448), Elem(4,2,0.000224), Elem(4,3,0.000149), Elem(4,4,0.000112), Elem(4,5,0.000090), Elem(4,6,0.000075), Elem(4,7,0.000064),
+ Elem(4,8,0.000056), Elem(16,0,0.000224), Elem(16,1,0.000448), Elem(16,2,0.044774), Elem(16,3,0.000448), Elem(16,4,0.000224), Elem(16,5,0.000149), Elem(16,6,0.000112),
+ Elem(16,7,0.000090), Elem(16,8,0.000075), Elem(23,0,0.000448), Elem(23,1,0.044774), Elem(23,2,0.000448), Elem(23,3,0.000224), Elem(23,4,0.000149), Elem(23,5,0.000112),
+ Elem(23,6,0.000090), Elem(23,7,0.000075), Elem(23,8,0.000064), Elem(28,0,0.000045), Elem(28,1,0.000067), Elem(28,2,0.000134), Elem(28,3,0.013367), Elem(28,4,0.000134),
+ Elem(28,5,0.000067), Elem(28,6,0.000045), Elem(28,7,0.000033), Elem(28,8,0.000027), Elem(32,1,0.000018), Elem(32,2,0.000022), Elem(32,3,0.000030), Elem(32,4,0.000045),
+ Elem(32,5,0.000089), Elem(32,6,0.008934), Elem(32,7,0.000089), Elem(32,8,0.000045), Elem(33,0,0.000019), Elem(33,1,0.000023), Elem(33,2,0.000030), Elem(33,3,0.000042),
+ Elem(33,4,0.000078), Elem(33,5,0.006698), Elem(33,6,0.000089), Elem(33,7,0.000078), Elem(33,8,0.004489), Elem(35,0,0.000035), Elem(35,1,0.000045), Elem(35,2,0.000063),
+ Elem(35,3,0.000112), Elem(35,4,0.008963), Elem(35,5,0.000134), Elem(35,6,0.000134), Elem(35,7,0.008963), Elem(35,8,0.000112), Elem(45,0,0.000019), Elem(45,1,0.000023),
+ Elem(45,2,0.000030), Elem(45,3,0.000042), Elem(45,4,0.000078), Elem(45,5,0.006698), Elem(45,6,0.000089), Elem(45,7,0.000078), Elem(45,8,0.004489), Elem(52,0,2.216353),
+ Elem(52,1,0.022186), Elem(52,2,0.011111), Elem(52,3,0.007430), Elem(52,4,0.005619), Elem(52,5,0.011131), Elem(52,6,0.003783), Elem(52,7,0.003244), Elem(52,8,0.007260),
+ Elem(64,0,0.011104), Elem(64,1,0.022197), Elem(64,2,2.216401), Elem(64,3,0.028847), Elem(64,4,0.011149), Elem(64,5,0.007421), Elem(64,6,0.005563), Elem(64,7,0.004449),
+ Elem(64,8,0.003707), Elem(68,4,0.000022), Elem(68,5,0.000045), Elem(68,6,0.004467), Elem(68,7,0.000045), Elem(68,8,0.000022), Elem(71,0,0.022181), Elem(71,1,2.216356),
+ Elem(71,2,0.022195), Elem(71,3,0.011138), Elem(71,4,0.011870), Elem(71,5,0.005608), Elem(71,6,0.004500), Elem(71,7,0.008176), Elem(71,8,0.003222), Elem(76,0,0.002317),
+ Elem(76,1,0.003532), Elem(76,2,0.029004), Elem(76,3,0.661884), Elem(76,4,0.006729), Elem(76,5,0.003383), Elem(76,6,0.002262), Elem(76,7,0.001699), Elem(76,8,0.001361),
+ Elem(80,0,0.000737), Elem(80,1,0.000884), Elem(80,2,0.001106), Elem(80,3,0.001474), Elem(80,4,0.002211), Elem(80,5,0.004422), Elem(80,6,0.442217), Elem(80,7,0.004422),
+ Elem(80,8,0.002211), Elem(83,0,0.001961), Elem(83,1,0.024598), Elem(83,2,0.003319), Elem(83,3,0.005640), Elem(83,4,0.443765), Elem(83,5,0.006689), Elem(83,6,0.006678),
+ Elem(83,7,0.443728), Elem(83,8,0.005560), Elem(88,0,0.024263), Elem(88,1,0.002510), Elem(88,2,0.003054), Elem(88,3,0.004267), Elem(88,4,0.007778), Elem(88,5,0.663179),
+ Elem(88,6,0.008865), Elem(88,7,0.007762), Elem(88,8,0.444450), },
+ { Elem(5,0,0.044774), Elem(5,1,0.000448), Elem(5,2,0.000224), Elem(5,3,0.000149), Elem(5,4,0.000112), Elem(5,5,0.000090), Elem(5,6,0.000075), Elem(5,7,0.000064),
+ Elem(5,8,0.000056), Elem(17,0,0.000224), Elem(17,1,0.000448), Elem(17,2,0.044774), Elem(17,3,0.000448), Elem(17,4,0.000224), Elem(17,5,0.000149), Elem(17,6,0.000112),
+ Elem(17,7,0.000090), Elem(17,8,0.000075), Elem(24,0,0.000448), Elem(24,1,0.044774), Elem(24,2,0.000448), Elem(24,3,0.000224), Elem(24,4,0.000149), Elem(24,5,0.000112),
+ Elem(24,6,0.000090), Elem(24,7,0.000075), Elem(24,8,0.000064), Elem(29,0,0.000022), Elem(29,1,0.000033), Elem(29,2,0.000067), Elem(29,3,0.006683), Elem(29,4,0.000067),
+ Elem(29,5,0.000033), Elem(29,6,0.000022), Elem(29,7,0.000017), Elem(33,1,0.000018), Elem(33,2,0.000022), Elem(33,3,0.000030), Elem(33,4,0.000045), Elem(33,5,0.000089),
+ Elem(33,6,0.008934), Elem(33,7,0.000089), Elem(33,8,0.000045), Elem(34,0,0.000019), Elem(34,1,0.000023), Elem(34,2,0.000030), Elem(34,3,0.000042), Elem(34,4,0.000078),
+ Elem(34,5,0.006698), Elem(34,6,0.000089), Elem(34,7,0.000078), Elem(34,8,0.004489), Elem(41,0,0.000035), Elem(41,1,0.000045), Elem(41,2,0.000063), Elem(41,3,0.000112),
+ Elem(41,4,0.008963), Elem(41,5,0.000134), Elem(41,6,0.000134), Elem(41,7,0.008963), Elem(41,8,0.000112), Elem(46,0,0.000019), Elem(46,1,0.000023), Elem(46,2,0.000030),
+ Elem(46,3,0.000042), Elem(46,4,0.000078), Elem(46,5,0.006698), Elem(46,6,0.000089), Elem(46,7,0.000078), Elem(46,8,0.004489), Elem(53,0,2.216353), Elem(53,1,0.022186),
+ Elem(53,2,0.011111), Elem(53,3,0.007430), Elem(53,4,0.005619), Elem(53,5,0.011131), Elem(53,6,0.003783), Elem(53,7,0.003244), Elem(53,8,0.007260), Elem(60,0,0.000224),
+ Elem(60,1,0.022387), Elem(60,2,0.000224), Elem(60,3,0.000112), Elem(60,4,0.000075), Elem(60,5,0.000056), Elem(60,6,0.000045), Elem(60,7,0.000037), Elem(60,8,0.000032),
+ Elem(65,0,0.011082), Elem(65,1,0.022163), Elem(65,2,2.216334), Elem(65,3,0.022163), Elem(65,4,0.011082), Elem(65,5,0.007388), Elem(65,6,0.005541), Elem(65,7,0.004433),
+ Elem(65,8,0.003694), Elem(69,4,0.000022), Elem(69,5,0.000045), Elem(69,6,0.004467), Elem(69,7,0.000045), Elem(69,8,0.000022), Elem(72,0,0.022163), Elem(72,1,2.216334),
+ Elem(72,2,0.022163), Elem(72,3,0.011082), Elem(72,4,0.007388), Elem(72,5,0.005541), Elem(72,6,0.004433), Elem(72,7,0.003694), Elem(72,8,0.003166), Elem(75,0,0.000112),
+ Elem(75,1,0.000224), Elem(75,2,0.022387), Elem(75,3,0.000224), Elem(75,4,0.000112), Elem(75,5,0.000075), Elem(75,6,0.000056), Elem(75,7,0.000045), Elem(75,8,0.000037),
+ Elem(77,0,0.002206), Elem(77,1,0.003308), Elem(77,2,0.006617), Elem(77,3,0.661660), Elem(77,4,0.006617), Elem(77,5,0.003308), Elem(77,6,0.002206), Elem(77,7,0.001654),
+ Elem(77,8,0.001323), Elem(81,0,0.000737), Elem(81,1,0.000884), Elem(81,2,0.001106), Elem(81,3,0.001474), Elem(81,4,0.002211), Elem(81,5,0.004422), Elem(81,6,0.442217),
+ Elem(81,7,0.004422), Elem(81,8,0.002211), Elem(84,0,0.001737), Elem(84,1,0.002211), Elem(84,2,0.003096), Elem(84,3,0.005528), Elem(84,4,0.443691), Elem(84,5,0.006633),
+ Elem(84,6,0.006633), Elem(84,7,0.443691), Elem(84,8,0.005528), Elem(89,0,0.024263), Elem(89,1,0.002510), Elem(89,2,0.003054), Elem(89,3,0.004267), Elem(89,4,0.007778),
+ Elem(89,5,0.663179), Elem(89,6,0.008865), Elem(89,7,0.007762), Elem(89,8,0.444450), },
+ { Elem(6,0,0.044774), Elem(6,1,0.000448), Elem(6,2,0.000224), Elem(6,3,0.000149), Elem(6,4,0.000112), Elem(6,5,0.000090), Elem(6,6,0.000075), Elem(6,7,0.000064),
+ Elem(6,8,0.000056), Elem(18,0,0.000224), Elem(18,1,0.000448), Elem(18,2,0.044774), Elem(18,3,0.000448), Elem(18,4,0.000224), Elem(18,5,0.000149), Elem(18,6,0.000112),
+ Elem(18,7,0.000090), Elem(18,8,0.000075), Elem(25,0,0.000448), Elem(25,1,0.044774), Elem(25,2,0.000448), Elem(25,3,0.000224), Elem(25,4,0.000149), Elem(25,5,0.000112),
+ Elem(25,6,0.000090), Elem(25,7,0.000075), Elem(25,8,0.000064), Elem(30,0,0.000045), Elem(30,1,0.000067), Elem(30,2,0.000134), Elem(30,3,0.013367), Elem(30,4,0.000134),
+ Elem(30,5,0.000067), Elem(30,6,0.000045), Elem(30,7,0.000033), Elem(30,8,0.000027), Elem(34,1,0.000018), Elem(34,2,0.000022), Elem(34,3,0.000030), Elem(34,4,0.000045),
+ Elem(34,5,0.000089), Elem(34,6,0.008934), Elem(34,7,0.000089), Elem(34,8,0.000045), Elem(35,1,0.000018), Elem(35,2,0.000022), Elem(35,3,0.000031), Elem(35,4,0.000056),
+ Elem(35,5,0.004482), Elem(35,6,0.000067), Elem(35,7,0.000067), Elem(35,8,0.004482), Elem(42,0,0.000035), Elem(42,1,0.000045), Elem(42,2,0.000063), Elem(42,3,0.000112),
+ Elem(42,4,0.008963), Elem(42,5,0.000134), Elem(42,6,0.000134), Elem(42,7,0.008963), Elem(42,8,0.000112), Elem(47,1,0.000018), Elem(47,2,0.000022), Elem(47,3,0.000031),
+ Elem(47,4,0.000056), Elem(47,5,0.004482), Elem(47,6,0.000067), Elem(47,7,0.000067), Elem(47,8,0.004482), Elem(49,0,0.000018), Elem(49,1,0.000022), Elem(49,2,0.000031),
+ Elem(49,3,0.000056), Elem(49,4,0.004482), Elem(49,5,0.000067), Elem(49,6,0.000067), Elem(49,7,0.004482), Elem(49,8,0.000056), Elem(54,0,2.216348), Elem(54,1,0.022181),
+ Elem(54,2,0.011104), Elem(54,3,0.007419), Elem(54,4,0.005597), Elem(54,5,0.008914), Elem(54,6,0.003761), Elem(54,7,0.003233), Elem(54,8,0.007252), Elem(61,0,0.000224),
+ Elem(61,1,0.022387), Elem(61,2,0.000224), Elem(61,3,0.000112), Elem(61,4,0.000075), Elem(61,5,0.000056), Elem(61,6,0.000045), Elem(61,7,0.000037), Elem(61,8,0.000032),
+ Elem(66,0,0.011104), Elem(66,1,0.022197), Elem(66,2,2.216401), Elem(66,3,0.028847), Elem(66,4,0.011149), Elem(66,5,0.007421), Elem(66,6,0.005563), Elem(66,7,0.004449),
+ Elem(66,8,0.003707), Elem(70,4,0.000022), Elem(70,5,0.000045), Elem(70,6,0.004467), Elem(70,7,0.000045), Elem(70,8,0.000022), Elem(73,0,0.022163), Elem(73,1,2.216334),
+ Elem(73,2,0.022163), Elem(73,3,0.011082), Elem(73,4,0.007388), Elem(73,5,0.005541), Elem(73,6,0.004433), Elem(73,7,0.003694), Elem(73,8,0.003166), Elem(78,0,0.002317),
+ Elem(78,1,0.003532), Elem(78,2,0.029004), Elem(78,3,0.661884), Elem(78,4,0.006729), Elem(78,5,0.003383), Elem(78,6,0.002262), Elem(78,7,0.001699), Elem(78,8,0.001361),
+ Elem(82,0,0.000737), Elem(82,1,0.000884), Elem(82,2,0.001106), Elem(82,3,0.001474), Elem(82,4,0.002211), Elem(82,5,0.004422), Elem(82,6,0.442217), Elem(82,7,0.004422),
+ Elem(82,8,0.002211), Elem(85,0,0.001737), Elem(85,1,0.002211), Elem(85,2,0.003096), Elem(85,3,0.005528), Elem(85,4,0.443691), Elem(85,5,0.006633), Elem(85,6,0.006633),
+ Elem(85,7,0.443691), Elem(85,8,0.005528), Elem(90,0,0.023824), Elem(90,1,0.001961), Elem(90,2,0.002323), Elem(90,3,0.003170), Elem(90,4,0.005584), Elem(90,5,0.443736),
+ Elem(90,6,0.006671), Elem(90,7,0.006665), Elem(90,8,0.443719), },
+ { Elem(7,0,0.044774), Elem(7,1,0.000448), Elem(7,2,0.000224), Elem(7,3,0.000149), Elem(7,4,0.000112), Elem(7,5,0.000090), Elem(7,6,0.000075), Elem(7,7,0.000064),
+ Elem(7,8,0.000056), Elem(19,0,0.000224), Elem(19,1,0.000448), Elem(19,2,0.044774), Elem(19,3,0.000448), Elem(19,4,0.000224), Elem(19,5,0.000149), Elem(19,6,0.000112),
+ Elem(19,7,0.000090), Elem(19,8,0.000075), Elem(26,0,0.000448), Elem(26,1,0.044774), Elem(26,2,0.000448), Elem(26,3,0.000224), Elem(26,4,0.000149), Elem(26,5,0.000112),
+ Elem(26,6,0.000090), Elem(26,7,0.000075), Elem(26,8,0.000064), Elem(31,0,0.000091), Elem(31,1,0.000124), Elem(31,2,0.000210), Elem(31,3,0.013485), Elem(31,4,0.004727),
+ Elem(31,5,0.009097), Elem(31,6,0.000246), Elem(31,7,0.004649), Elem(31,8,0.009046), Elem(35,1,0.000018), Elem(35,2,0.000022), Elem(35,3,0.000030), Elem(35,4,0.000045),
+ Elem(35,5,0.000089), Elem(35,6,0.008934), Elem(35,7,0.000089), Elem(35,8,0.000045), Elem(43,0,0.022405), Elem(43,1,0.000246), Elem(43,2,0.000143), Elem(43,3,0.000130),
+ Elem(43,4,0.004538), Elem(43,5,0.000112), Elem(43,6,0.000104), Elem(43,7,0.004514), Elem(43,8,0.000084), Elem(50,0,0.000018), Elem(50,1,0.000022), Elem(50,2,0.000031),
+ Elem(50,3,0.000056), Elem(50,4,0.004482), Elem(50,5,0.000067), Elem(50,6,0.000067), Elem(50,7,0.004482), Elem(50,8,0.000056), Elem(55,0,2.216334), Elem(55,1,0.022163),
+ Elem(55,2,0.011082), Elem(55,3,0.007388), Elem(55,4,0.005541), Elem(55,5,0.004433), Elem(55,6,0.003694), Elem(55,7,0.003166), Elem(55,8,0.002770), Elem(62,0,0.000224),
+ Elem(62,1,0.022387), Elem(62,2,0.000224), Elem(62,3,0.000112), Elem(62,4,0.000075), Elem(62,5,0.000056), Elem(62,6,0.000045), Elem(62,7,0.000037), Elem(62,8,0.000032),
+ Elem(67,0,0.011118), Elem(67,1,0.022214), Elem(67,2,2.216423), Elem(67,3,0.028878), Elem(67,4,0.011204), Elem(67,5,0.011903), Elem(67,6,0.005630), Elem(67,7,0.004516),
+ Elem(67,8,0.008189), Elem(71,4,0.000022), Elem(71,5,0.000045), Elem(71,6,0.004467), Elem(71,7,0.000045), Elem(71,8,0.000022), Elem(74,0,0.022163), Elem(74,1,2.216334),
+ Elem(74,2,0.022163), Elem(74,3,0.011082), Elem(74,4,0.007388), Elem(74,5,0.005541), Elem(74,6,0.004433), Elem(74,7,0.003694), Elem(74,8,0.003166), Elem(79,0,0.003755),
+ Elem(79,1,0.005269), Elem(79,2,0.031215), Elem(79,3,0.664980), Elem(79,4,0.012256), Elem(79,5,0.447074), Elem(79,6,0.008895), Elem(79,7,0.008332), Elem(79,8,0.445051),
+ Elem(83,0,0.000737), Elem(83,1,0.000884), Elem(83,2,0.001106), Elem(83,3,0.001474), Elem(83,4,0.002211), Elem(83,5,0.004422), Elem(83,6,0.442217), Elem(83,7,0.004422),
+ Elem(83,8,0.002211), Elem(86,0,0.001737), Elem(86,1,0.002211), Elem(86,2,0.003096), Elem(86,3,0.005528), Elem(86,4,0.443691), Elem(86,5,0.006633), Elem(86,6,0.006633),
+ Elem(86,7,0.443691), Elem(86,8,0.005528), },
+ { Elem(8,0,0.044774), Elem(8,1,0.000448), Elem(8,2,0.000224), Elem(8,3,0.000149), Elem(8,4,0.000112), Elem(8,5,0.000090), Elem(8,6,0.000075), Elem(8,7,0.000064),
+ Elem(8,8,0.000056), Elem(20,0,0.000224), Elem(20,1,0.000448), Elem(20,2,0.044774), Elem(20,3,0.000448), Elem(20,4,0.000224), Elem(20,5,0.000149), Elem(20,6,0.000112),
+ Elem(20,7,0.000090), Elem(20,8,0.000075), Elem(27,0,0.000224), Elem(27,1,0.022387), Elem(27,2,0.000224), Elem(27,3,0.000112), Elem(27,4,0.000075), Elem(27,5,0.000056),
+ Elem(27,6,0.000045), Elem(27,7,0.000037), Elem(27,8,0.000032), Elem(29,0,0.000224), Elem(29,1,0.022387), Elem(29,2,0.000224), Elem(29,3,0.000112), Elem(29,4,0.000075),
+ Elem(29,5,0.000056), Elem(29,6,0.000045), Elem(29,7,0.000037), Elem(29,8,0.000032), Elem(32,0,0.000091), Elem(32,1,0.000124), Elem(32,2,0.000210), Elem(32,3,0.013485),
+ Elem(32,4,0.004727), Elem(32,5,0.009097), Elem(32,6,0.000246), Elem(32,7,0.004649), Elem(32,8,0.009046), Elem(41,1,0.000018), Elem(41,2,0.000022), Elem(41,3,0.000030),
+ Elem(41,4,0.000045), Elem(41,5,0.000089), Elem(41,6,0.008934), Elem(41,7,0.000089), Elem(41,8,0.000045), Elem(44,0,0.022405), Elem(44,1,0.000246), Elem(44,2,0.000143),
+ Elem(44,3,0.000130), Elem(44,4,0.004538), Elem(44,5,0.000112), Elem(44,6,0.000104), Elem(44,7,0.004514), Elem(44,8,0.000084), Elem(51,0,0.000018), Elem(51,1,0.000022),
+ Elem(51,2,0.000031), Elem(51,3,0.000056), Elem(51,4,0.004482), Elem(51,5,0.000067), Elem(51,6,0.000067), Elem(51,7,0.004482), Elem(51,8,0.000056), Elem(56,0,2.216334),
+ Elem(56,1,0.022163), Elem(56,2,0.011082), Elem(56,3,0.007388), Elem(56,4,0.005541), Elem(56,5,0.004433), Elem(56,6,0.003694), Elem(56,7,0.003166), Elem(56,8,0.002770),
+ Elem(65,0,0.000224), Elem(65,1,0.022387), Elem(65,2,0.000224), Elem(65,3,0.000112), Elem(65,4,0.000075), Elem(65,5,0.000056), Elem(65,6,0.000045), Elem(65,7,0.000037),
+ Elem(65,8,0.000032), Elem(68,0,0.011118), Elem(68,1,0.022214), Elem(68,2,2.216423), Elem(68,3,0.028878), Elem(68,4,0.011204), Elem(68,5,0.011903), Elem(68,6,0.005630),
+ Elem(68,7,0.004516), Elem(68,8,0.008189), Elem(75,0,0.022163), Elem(75,1,2.216334), Elem(75,2,0.022163), Elem(75,3,0.011082), Elem(75,4,0.007388), Elem(75,5,0.005541),
+ Elem(75,6,0.004433), Elem(75,7,0.003694), Elem(75,8,0.003166), Elem(80,0,0.003755), Elem(80,1,0.005269), Elem(80,2,0.031215), Elem(80,3,0.664980), Elem(80,4,0.012256),
+ Elem(80,5,0.447074), Elem(80,6,0.008895), Elem(80,7,0.008332), Elem(80,8,0.445051), Elem(84,0,0.000737), Elem(84,1,0.000884), Elem(84,2,0.001106), Elem(84,3,0.001474),
+ Elem(84,4,0.002211), Elem(84,5,0.004422), Elem(84,6,0.442217), Elem(84,7,0.004422), Elem(84,8,0.002211), Elem(87,0,0.001737), Elem(87,1,0.002211), Elem(87,2,0.003096),
+ Elem(87,3,0.005528), Elem(87,4,0.443691), Elem(87,5,0.006633), Elem(87,6,0.006633), Elem(87,7,0.443691), Elem(87,8,0.005528), },
+ { Elem(9,0,0.044774), Elem(9,1,0.000448), Elem(9,2,0.000224), Elem(9,3,0.000149), Elem(9,4,0.000112), Elem(9,5,0.000090), Elem(9,6,0.000075), Elem(9,7,0.000064),
+ Elem(9,8,0.000056), Elem(21,0,0.000224), Elem(21,1,0.000448), Elem(21,2,0.044774), Elem(21,3,0.000448), Elem(21,4,0.000224), Elem(21,5,0.000149), Elem(21,6,0.000112),
+ Elem(21,7,0.000090), Elem(21,8,0.000075), Elem(28,0,0.000448), Elem(28,1,0.044774), Elem(28,2,0.000448), Elem(28,3,0.000224), Elem(28,4,0.000149), Elem(28,5,0.000112),
+ Elem(28,6,0.000090), Elem(28,7,0.000075), Elem(28,8,0.000064), Elem(33,0,0.000091), Elem(33,1,0.000124), Elem(33,2,0.000210), Elem(33,3,0.013485), Elem(33,4,0.004727),
+ Elem(33,5,0.009097), Elem(33,6,0.000246), Elem(33,7,0.004649), Elem(33,8,0.009046), Elem(42,1,0.000018), Elem(42,2,0.000022), Elem(42,3,0.000030), Elem(42,4,0.000045),
+ Elem(42,5,0.000089), Elem(42,6,0.008934), Elem(42,7,0.000089), Elem(42,8,0.000045), Elem(45,0,0.022405), Elem(45,1,0.000246), Elem(45,2,0.000143), Elem(45,3,0.000130),
+ Elem(45,4,0.004538), Elem(45,5,0.000112), Elem(45,6,0.000104), Elem(45,7,0.004514), Elem(45,8,0.000084), Elem(49,4,0.000022), Elem(49,5,0.000045), Elem(49,6,0.004467),
+ Elem(49,7,0.000045), Elem(49,8,0.000022), Elem(52,0,0.000018), Elem(52,1,0.000022), Elem(52,2,0.000031), Elem(52,3,0.000056), Elem(52,4,0.004482), Elem(52,5,0.000067),
+ Elem(52,6,0.000067), Elem(52,7,0.004482), Elem(52,8,0.000056), Elem(57,0,2.216334), Elem(57,1,0.022163), Elem(57,2,0.011082), Elem(57,3,0.007388), Elem(57,4,0.005541),
+ Elem(57,5,0.004433), Elem(57,6,0.003694), Elem(57,7,0.003166), Elem(57,8,0.002770), Elem(64,0,0.000224), Elem(64,1,0.022387), Elem(64,2,0.000224), Elem(64,3,0.000112),
+ Elem(64,4,0.000075), Elem(64,5,0.000056), Elem(64,6,0.000045), Elem(64,7,0.000037), Elem(64,8,0.000032), Elem(69,0,0.011118), Elem(69,1,0.022214), Elem(69,2,2.216423),
+ Elem(69,3,0.028878), Elem(69,4,0.011204), Elem(69,5,0.011903), Elem(69,6,0.005630), Elem(69,7,0.004516), Elem(69,8,0.008189), Elem(76,0,0.022163), Elem(76,1,2.216334),
+ Elem(76,2,0.022163), Elem(76,3,0.011082), Elem(76,4,0.007388), Elem(76,5,0.005541), Elem(76,6,0.004433), Elem(76,7,0.003694), Elem(76,8,0.003166), Elem(81,0,0.003755),
+ Elem(81,1,0.005269), Elem(81,2,0.031215), Elem(81,3,0.664980), Elem(81,4,0.012256), Elem(81,5,0.447074), Elem(81,6,0.008895), Elem(81,7,0.008332), Elem(81,8,0.445051),
+ Elem(85,0,0.000737), Elem(85,1,0.000884), Elem(85,2,0.001106), Elem(85,3,0.001474), Elem(85,4,0.002211), Elem(85,5,0.004422), Elem(85,6,0.442217), Elem(85,7,0.004422),
+ Elem(85,8,0.002211), Elem(88,0,0.001737), Elem(88,1,0.002211), Elem(88,2,0.003096), Elem(88,3,0.005528), Elem(88,4,0.443691), Elem(88,5,0.006633), Elem(88,6,0.006633),
+ Elem(88,7,0.443691), Elem(88,8,0.005528), },
+ { Elem(10,0,0.044774), Elem(10,1,0.000448), Elem(10,2,0.000224), Elem(10,3,0.000149), Elem(10,4,0.000112), Elem(10,5,0.000090), Elem(10,6,0.000075), Elem(10,7,0.000064),
+ Elem(10,8,0.000056), Elem(22,0,0.000224), Elem(22,1,0.000448), Elem(22,2,0.044774), Elem(22,3,0.000448), Elem(22,4,0.000224), Elem(22,5,0.000149), Elem(22,6,0.000112),
+ Elem(22,7,0.000090), Elem(22,8,0.000075), Elem(29,0,0.000224), Elem(29,1,0.022387), Elem(29,2,0.000224), Elem(29,3,0.000112), Elem(29,4,0.000075), Elem(29,5,0.000056),
+ Elem(29,6,0.000045), Elem(29,7,0.000037), Elem(29,8,0.000032), Elem(31,4,0.000022), Elem(31,5,0.000045), Elem(31,6,0.004467), Elem(31,7,0.000045), Elem(31,8,0.000022),
+ Elem(34,0,0.000091), Elem(34,1,0.000124), Elem(34,2,0.000210), Elem(34,3,0.013485), Elem(34,4,0.004727), Elem(34,5,0.009097), Elem(34,6,0.000246), Elem(34,7,0.004649),
+ Elem(34,8,0.009046), Elem(43,4,0.000022), Elem(43,5,0.000045), Elem(43,6,0.004467), Elem(43,7,0.000045), Elem(43,8,0.000022), Elem(46,0,0.022405), Elem(46,1,0.000246),
+ Elem(46,2,0.000143), Elem(46,3,0.000130), Elem(46,4,0.004538), Elem(46,5,0.000112), Elem(46,6,0.000104), Elem(46,7,0.004514), Elem(46,8,0.000084), Elem(50,4,0.000022),
+ Elem(50,5,0.000045), Elem(50,6,0.004467), Elem(50,7,0.000045), Elem(50,8,0.000022), Elem(53,0,0.000018), Elem(53,1,0.000022), Elem(53,2,0.000031), Elem(53,3,0.000056),
+ Elem(53,4,0.004482), Elem(53,5,0.000067), Elem(53,6,0.000067), Elem(53,7,0.004482), Elem(53,8,0.000056), Elem(58,0,2.216334), Elem(58,1,0.022163), Elem(58,2,0.011082),
+ Elem(58,3,0.007388), Elem(58,4,0.005541), Elem(58,5,0.004433), Elem(58,6,0.003694), Elem(58,7,0.003166), Elem(58,8,0.002770), Elem(70,0,0.011118), Elem(70,1,0.022214),
+ Elem(70,2,2.216423), Elem(70,3,0.028878), Elem(70,4,0.011204), Elem(70,5,0.011903), Elem(70,6,0.005630), Elem(70,7,0.004516), Elem(70,8,0.008189), Elem(77,0,0.022163),
+ Elem(77,1,2.216334), Elem(77,2,0.022163), Elem(77,3,0.011082), Elem(77,4,0.007388), Elem(77,5,0.005541), Elem(77,6,0.004433), Elem(77,7,0.003694), Elem(77,8,0.003166),
+ Elem(82,0,0.003755), Elem(82,1,0.005269), Elem(82,2,0.031215), Elem(82,3,0.664980), Elem(82,4,0.012256), Elem(82,5,0.447074), Elem(82,6,0.008895), Elem(82,7,0.008332),
+ Elem(82,8,0.445051), Elem(86,0,0.000737), Elem(86,1,0.000884), Elem(86,2,0.001106), Elem(86,3,0.001474), Elem(86,4,0.002211), Elem(86,5,0.004422), Elem(86,6,0.442217),
+ Elem(86,7,0.004422), Elem(86,8,0.002211), Elem(89,0,0.001737), Elem(89,1,0.002211), Elem(89,2,0.003096), Elem(89,3,0.005528), Elem(89,4,0.443691), Elem(89,5,0.006633),
+ Elem(89,6,0.006633), Elem(89,7,0.443691), Elem(89,8,0.005528), },
+ { Elem(11,0,0.044774), Elem(11,1,0.000448), Elem(11,2,0.000224), Elem(11,3,0.000149), Elem(11,4,0.000112), Elem(11,5,0.000090), Elem(11,6,0.000075), Elem(11,7,0.000064),
+ Elem(11,8,0.000056), Elem(23,0,0.000224), Elem(23,1,0.000448), Elem(23,2,0.044774), Elem(23,3,0.000448), Elem(23,4,0.000224), Elem(23,5,0.000149), Elem(23,6,0.000112),
+ Elem(23,7,0.000090), Elem(23,8,0.000075), Elem(30,0,0.000448), Elem(30,1,0.044774), Elem(30,2,0.000448), Elem(30,3,0.000224), Elem(30,4,0.000149), Elem(30,5,0.000112),
+ Elem(30,6,0.000090), Elem(30,7,0.000075), Elem(30,8,0.000064), Elem(32,4,0.000022), Elem(32,5,0.000045), Elem(32,6,0.004467), Elem(32,7,0.000045), Elem(32,8,0.000022),
+ Elem(35,0,0.000091), Elem(35,1,0.000124), Elem(35,2,0.000210), Elem(35,3,0.013485), Elem(35,4,0.004727), Elem(35,5,0.009097), Elem(35,6,0.000246), Elem(35,7,0.004649),
+ Elem(35,8,0.009046), Elem(44,4,0.000022), Elem(44,5,0.000045), Elem(44,6,0.004467), Elem(44,7,0.000045), Elem(44,8,0.000022), Elem(47,0,0.022405), Elem(47,1,0.000246),
+ Elem(47,2,0.000143), Elem(47,3,0.000130), Elem(47,4,0.004538), Elem(47,5,0.000112), Elem(47,6,0.000104), Elem(47,7,0.004514), Elem(47,8,0.000084), Elem(51,4,0.000022),
+ Elem(51,5,0.000045), Elem(51,6,0.004467), Elem(51,7,0.000045), Elem(51,8,0.000022), Elem(54,0,0.000018), Elem(54,1,0.000022), Elem(54,2,0.000031), Elem(54,3,0.000056),
+ Elem(54,4,0.004482), Elem(54,5,0.000067), Elem(54,6,0.000067), Elem(54,7,0.004482), Elem(54,8,0.000056), Elem(59,0,2.216334), Elem(59,1,0.022163), Elem(59,2,0.011082),
+ Elem(59,3,0.007388), Elem(59,4,0.005541), Elem(59,5,0.004433), Elem(59,6,0.003694), Elem(59,7,0.003166), Elem(59,8,0.002770), Elem(66,0,0.000224), Elem(66,1,0.022387),
+ Elem(66,2,0.000224), Elem(66,3,0.000112), Elem(66,4,0.000075), Elem(66,5,0.000056), Elem(66,6,0.000045), Elem(66,7,0.000037), Elem(66,8,0.000032), Elem(71,0,0.011118),
+ Elem(71,1,0.022214), Elem(71,2,2.216423), Elem(71,3,0.028878), Elem(71,4,0.011204), Elem(71,5,0.011903), Elem(71,6,0.005630), Elem(71,7,0.004516), Elem(71,8,0.008189),
+ Elem(78,0,0.022163), Elem(78,1,2.216334), Elem(78,2,0.022163), Elem(78,3,0.011082), Elem(78,4,0.007388), Elem(78,5,0.005541), Elem(78,6,0.004433), Elem(78,7,0.003694),
+ Elem(78,8,0.003166), Elem(83,0,0.003755), Elem(83,1,0.005269), Elem(83,2,0.031215), Elem(83,3,0.664980), Elem(83,4,0.012256), Elem(83,5,0.447074), Elem(83,6,0.008895),
+ Elem(83,7,0.008332), Elem(83,8,0.445051), Elem(87,0,0.000737), Elem(87,1,0.000884), Elem(87,2,0.001106), Elem(87,3,0.001474), Elem(87,4,0.002211), Elem(87,5,0.004422),
+ Elem(87,6,0.442217), Elem(87,7,0.004422), Elem(87,8,0.002211), Elem(90,0,0.001737), Elem(90,1,0.002211), Elem(90,2,0.003096), Elem(90,3,0.005528), Elem(90,4,0.443691),
+ Elem(90,5,0.006633), Elem(90,6,0.006633), Elem(90,7,0.443691), Elem(90,8,0.005528), },
+ { Elem(12,0,0.044774), Elem(12,1,0.000448), Elem(12,2,0.000224), Elem(12,3,0.000149), Elem(12,4,0.000112), Elem(12,5,0.000090), Elem(12,6,0.000075), Elem(12,7,0.000064),
+ Elem(12,8,0.000056), Elem(24,0,0.000224), Elem(24,1,0.000448), Elem(24,2,0.044774), Elem(24,3,0.000448), Elem(24,4,0.000224), Elem(24,5,0.000149), Elem(24,6,0.000112),
+ Elem(24,7,0.000090), Elem(24,8,0.000075), Elem(31,0,0.000483), Elem(31,1,0.044819), Elem(31,2,0.000510), Elem(31,3,0.000336), Elem(31,4,0.009113), Elem(31,5,0.000246),
+ Elem(31,6,0.000224), Elem(31,7,0.009038), Elem(31,8,0.000176), Elem(33,4,0.000022), Elem(33,5,0.000045), Elem(33,6,0.004467), Elem(33,7,0.000045), Elem(33,8,0.000022),
+ Elem(41,0,0.000074), Elem(41,1,0.000102), Elem(41,2,0.000178), Elem(41,3,0.013429), Elem(41,4,0.000245), Elem(41,5,0.009030), Elem(41,6,0.000179), Elem(41,7,0.000167),
+ Elem(41,8,0.008990), Elem(45,4,0.000022), Elem(45,5,0.000045), Elem(45,6,0.004467), Elem(45,7,0.000045), Elem(45,8,0.000022), Elem(52,4,0.000022), Elem(52,5,0.000045),
+ Elem(52,6,0.004467), Elem(52,7,0.000045), Elem(52,8,0.000022), Elem(60,0,2.216446), Elem(60,1,0.022387), Elem(60,2,0.033469), Elem(60,3,0.007612), Elem(60,4,0.005653),
+ Elem(60,5,0.004507), Elem(60,6,0.003750), Elem(60,7,0.003211), Elem(60,8,0.002808), Elem(67,0,0.000241), Elem(67,1,0.022410), Elem(67,2,0.000255), Elem(67,3,0.000168),
+ Elem(67,4,0.004556), Elem(67,5,0.000123), Elem(67,6,0.000112), Elem(67,7,0.004519), Elem(67,8,0.000088), Elem(72,0,0.033469), Elem(72,1,0.022387), Elem(72,2,2.216446),
+ Elem(72,3,0.022238), Elem(72,4,0.011138), Elem(72,5,0.007433), Elem(72,6,0.005578), Elem(72,7,0.004465), Elem(72,8,0.003722), Elem(79,0,0.023901), Elem(79,1,2.218545),
+ Elem(79,2,0.025259), Elem(79,3,0.016609), Elem(79,4,0.451079), Elem(79,5,0.012174), Elem(79,6,0.011066), Elem(79,7,0.447385), Elem(79,8,0.008694), Elem(84,0,0.003643),
+ Elem(84,1,0.005046), Elem(84,2,0.008828), Elem(84,3,0.664756), Elem(84,4,0.012144), Elem(84,5,0.446999), Elem(84,6,0.008839), Elem(84,7,0.008287), Elem(84,8,0.445014),
+ Elem(88,0,0.000737), Elem(88,1,0.000884), Elem(88,2,0.001106), Elem(88,3,0.001474), Elem(88,4,0.002211), Elem(88,5,0.004422), Elem(88,6,0.442217), Elem(88,7,0.004422),
+ Elem(88,8,0.002211), },
+#else
+ { Elem(12,0,0.315277), Elem(19,1,0.661660), Elem(12,2,0.443782), Elem(24,3,0.661772), Elem(31,4,2.216334), Elem(36,5,2.216417), Elem(40,6,1.481273), Elem(43,7,0.990112), Elem(48,8,0.990000) },
+ { Elem(13,0,0.315277), Elem(20,1,0.661660), Elem(13,2,0.443782), Elem(25,3,0.661660), Elem(32,4,2.216334), Elem(37,5,2.216334), Elem(41,6,1.481273), Elem(44,7,0.990000), Elem(49,8,0.990000) },
+ { Elem(14,0,0.315277), Elem(21,1,0.661660), Elem(14,2,0.443782), Elem(26,3,0.661772), Elem(33,4,2.216334), Elem(38,5,2.216417), Elem(42,6,1.481273), Elem(45,7,0.990112), Elem(50,8,0.990000) },
+ { Elem(15,0,0.315277), Elem(22,1,0.661660), Elem(15,2,0.443782), Elem(27,3,0.661772), Elem(34,4,2.216334), Elem(39,5,2.216417), Elem(43,6,1.481273), Elem(46,7,0.990112), Elem(51,8,0.990000) },
+ { Elem(16,0,0.315277), Elem(23,1,0.661660), Elem(16,2,0.443782), Elem(28,3,0.661772), Elem(35,4,2.216334), Elem(40,5,2.216417), Elem(44,6,1.481273), Elem(47,7,0.990112), Elem(52,8,0.990000) },
+ { Elem(17,0,0.315277), Elem(24,1,0.661735), Elem(17,2,0.443782), Elem(29,3,0.661772), Elem(36,4,2.216356), Elem(41,5,2.216367), Elem(45,6,1.481273), Elem(48,7,0.990000), Elem(53,8,0.990000) },
+ { Elem(18,0,0.315277), Elem(25,1,0.661660), Elem(18,2,0.443782), Elem(30,3,0.661772), Elem(37,4,2.216334), Elem(42,5,2.216367), Elem(46,6,1.481273), Elem(49,7,0.990000), Elem(54,8,0.990000) },
+ { Elem(19,0,0.315277), Elem(26,1,0.661735), Elem(19,2,0.443782), Elem(31,3,0.661660), Elem(38,4,2.216356), Elem(43,5,2.216367), Elem(47,6,1.481273), Elem(50,7,0.990000), Elem(55,8,0.990075) },
+ { Elem(20,0,0.315277), Elem(27,1,0.661735), Elem(20,2,0.443782), Elem(32,3,0.661660), Elem(39,4,2.216356), Elem(44,5,2.216367), Elem(48,6,1.481273), Elem(51,7,0.990000), Elem(56,8,0.990075) },
+ { Elem(21,0,0.315277), Elem(28,1,0.661735), Elem(21,2,0.443782), Elem(33,3,0.661660), Elem(40,4,2.216356), Elem(45,5,2.216367), Elem(49,6,1.481273), Elem(52,7,0.990000), Elem(57,8,0.990075) },
+ { Elem(22,0,0.315277), Elem(29,1,0.661735), Elem(22,2,0.443782), Elem(34,3,0.661660), Elem(41,4,2.216356), Elem(46,5,2.216367), Elem(50,6,1.481273), Elem(53,7,0.990000), Elem(58,8,0.990075) },
+ { Elem(23,0,0.315277), Elem(30,1,0.661735), Elem(23,2,0.443782), Elem(35,3,0.661660), Elem(42,4,2.216356), Elem(47,5,2.216367), Elem(51,6,1.481273), Elem(54,7,0.990000), Elem(59,8,0.990075) },
+ { Elem(12,0,0.442242), Elem(31,1,0.661660), Elem(24,2,0.442284), Elem(36,3,0.661929), Elem(43,4,2.216434), Elem(48,5,1.481273), Elem(52,6,1.481273), Elem(55,7,0.990075), Elem(60,8,0.990011) },
+ { Elem(13,0,0.442242), Elem(32,1,0.661660), Elem(25,2,0.442217), Elem(37,3,0.661660), Elem(44,4,2.216367), Elem(49,5,1.481273), Elem(53,6,1.481273), Elem(56,7,0.990075), Elem(61,8,0.990011) },
+ { Elem(14,0,0.442242), Elem(33,1,0.661660), Elem(26,2,0.442284), Elem(38,3,0.661855), Elem(45,4,1.481374), Elem(50,5,1.481273), Elem(54,6,0.990000), Elem(57,7,0.990050), Elem(62,8,0.990011) },
+ { Elem(15,0,0.442242), Elem(34,1,0.990000), Elem(27,2,0.442284), Elem(39,3,0.661855), Elem(46,4,1.481374), Elem(51,5,0.990000), Elem(55,6,0.990000), Elem(58,7,0.990050), Elem(63,8,0.990011) },
+ { Elem(16,0,0.442242), Elem(35,1,0.990000), Elem(28,2,0.442284), Elem(40,3,0.661855), Elem(47,4,1.481374), Elem(52,5,0.990000), Elem(56,6,0.990000), Elem(59,7,0.990050), Elem(64,8,0.990011) },
+ { Elem(17,0,0.661686), Elem(36,1,0.990000), Elem(29,2,0.661761), Elem(41,3,0.990067), Elem(48,4,1.481273), Elem(53,5,0.990000), Elem(57,6,0.990000), Elem(60,7,0.990000), Elem(65,8,0.990017) },
+ { Elem(18,0,0.661686), Elem(37,1,0.990000), Elem(30,2,0.661761), Elem(42,3,0.990067), Elem(49,4,1.481273), Elem(54,5,0.990000), Elem(58,6,0.990000), Elem(61,7,0.990000), Elem(66,8,0.990017) },
+ { Elem(19,0,0.661686), Elem(38,1,0.990000), Elem(31,2,0.661660), Elem(43,3,0.990050), Elem(50,4,1.481273), Elem(55,5,0.990050), Elem(59,6,0.990000), Elem(62,7,0.990000), Elem(67,8,0.990017) },
+ { Elem(20,0,0.661686), Elem(39,1,0.990000), Elem(32,2,0.661660), Elem(44,3,0.990050), Elem(51,4,0.990000), Elem(56,5,0.990050), Elem(60,6,0.990000), Elem(63,7,0.990000), Elem(68,8,0.990017) },
+ { Elem(21,0,0.661686), Elem(40,1,0.990000), Elem(33,2,0.661660), Elem(45,3,0.990050), Elem(52,4,0.990000), Elem(57,5,0.990050), Elem(61,6,0.990000), Elem(64,7,0.990000), Elem(69,8,0.990017) },
+ { Elem(22,0,0.661686), Elem(41,1,0.990000), Elem(34,2,0.990000), Elem(46,3,0.990050), Elem(53,4,0.990000), Elem(58,5,0.990050), Elem(62,6,0.990000), Elem(65,7,0.990000), Elem(70,8,0.990017) },
+ { Elem(23,0,0.661686), Elem(42,1,0.990000), Elem(35,2,0.990000), Elem(47,3,0.990050), Elem(54,4,0.990000), Elem(59,5,0.990050), Elem(63,6,0.990000), Elem(66,7,0.990000), Elem(71,8,0.990017) },
+ { Elem(24,0,0.990075), Elem(43,1,0.990133), Elem(36,2,0.990150), Elem(48,3,0.990000), Elem(55,4,0.990033), Elem(60,5,0.990033), Elem(64,6,0.990000), Elem(67,7,0.990000), Elem(72,8,0.990058) },
+ { Elem(25,0,0.990025), Elem(44,1,0.990033), Elem(37,2,0.990000), Elem(49,3,0.990000), Elem(56,4,0.990033), Elem(61,5,0.990033), Elem(65,6,0.990000), Elem(68,7,0.990000), Elem(73,8,0.990058) },
+ { Elem(26,0,0.990075), Elem(45,1,0.990133), Elem(38,2,0.990150), Elem(50,3,0.990000), Elem(57,4,0.990033), Elem(62,5,0.990033), Elem(66,6,0.990000), Elem(69,7,0.990000), Elem(74,8,0.990058) },
+ { Elem(27,0,0.990063), Elem(46,1,0.990133), Elem(39,2,0.990150), Elem(51,3,0.990000), Elem(58,4,0.990033), Elem(63,5,0.990000), Elem(67,6,0.990000), Elem(70,7,0.990000), Elem(75,8,0.990058) },
+ { Elem(28,0,0.990075), Elem(47,1,0.990133), Elem(40,2,0.990150), Elem(52,3,0.990000), Elem(59,4,0.990033), Elem(64,5,0.990033), Elem(68,6,0.990000), Elem(71,7,0.990000), Elem(76,8,0.990058) },
+ { Elem(29,0,0.990063), Elem(48,1,0.990000), Elem(41,2,0.990050), Elem(53,3,0.990000), Elem(60,4,0.990033), Elem(65,5,0.990000), Elem(69,6,0.990000), Elem(72,7,0.990033), Elem(77,8,0.990013) },
+ { Elem(30,0,0.990075), Elem(49,1,0.990000), Elem(42,2,0.990050), Elem(54,3,0.990000), Elem(61,4,0.990033), Elem(66,5,0.990033), Elem(70,6,0.990000), Elem(73,7,0.990033), Elem(78,8,0.990058) },
+ { Elem(31,0,0.990025), Elem(50,1,0.990000), Elem(43,2,0.990100), Elem(55,3,0.990100), Elem(62,4,0.990033), Elem(67,5,0.990033), Elem(71,6,0.990000), Elem(74,7,0.990033), Elem(79,8,0.990058) },
+ { Elem(32,0,0.990025), Elem(51,1,0.990000), Elem(44,2,0.990100), Elem(56,3,0.990100), Elem(63,4,0.990000), Elem(68,5,0.990033), Elem(72,6,0.990000), Elem(75,7,0.990033), Elem(80,8,0.990058) },
+ { Elem(33,0,0.990025), Elem(52,1,0.990000), Elem(45,2,0.990100), Elem(57,3,0.990100), Elem(64,4,0.990033), Elem(69,5,0.990033), Elem(73,6,0.990000), Elem(76,7,0.990033), Elem(81,8,0.990046) },
+ { Elem(34,0,0.990025), Elem(53,1,0.990000), Elem(46,2,0.990100), Elem(58,3,0.990100), Elem(65,4,0.990000), Elem(70,5,0.990033), Elem(74,6,0.990000), Elem(77,7,0.990000), Elem(82,8,0.990058) },
+ { Elem(35,0,0.990025), Elem(54,1,0.990000), Elem(47,2,0.990100), Elem(59,3,0.990100), Elem(66,4,0.990033), Elem(71,5,0.990033), Elem(75,6,0.990000), Elem(78,7,0.990033), Elem(83,8,0.990058) },
+ { Elem(36,0,1.481273), Elem(55,1,0.990000), Elem(48,2,0.990000), Elem(60,3,0.990050), Elem(67,4,0.990033), Elem(72,5,0.990050), Elem(76,6,0.990000), Elem(79,7,0.990033), Elem(84,8,0.990000) },
+ { Elem(37,0,1.481273), Elem(56,1,0.990000), Elem(49,2,1.481290), Elem(61,3,0.990050), Elem(68,4,0.990033), Elem(73,5,0.990050), Elem(77,6,0.990000), Elem(80,7,0.990033), Elem(85,8,0.990025) },
+ { Elem(38,0,1.481273), Elem(57,1,1.481273), Elem(50,2,1.481290), Elem(62,3,0.990050), Elem(69,4,0.990033), Elem(74,5,0.990050), Elem(78,6,0.990000), Elem(81,7,0.990033), Elem(86,8,0.990025) },
+ { Elem(39,0,1.481273), Elem(58,1,1.481273), Elem(51,2,1.481290), Elem(63,3,0.661660), Elem(70,4,0.990033), Elem(75,5,0.990033), Elem(79,6,0.990000), Elem(82,7,0.990033), Elem(87,8,0.990025) },
+ { Elem(40,0,1.481273), Elem(59,1,1.481273), Elem(52,2,1.481290), Elem(64,3,0.661711), Elem(71,4,0.661694), Elem(76,5,0.990033), Elem(80,6,0.990000), Elem(83,7,0.990022), Elem(88,8,0.990025) },
+ { Elem(41,0,1.481302), Elem(60,1,1.481296), Elem(53,2,1.481290), Elem(65,3,0.661660), Elem(72,4,0.661710), Elem(77,5,0.661660), Elem(81,6,0.990000), Elem(84,7,0.990043), Elem(89,8,0.990025) },
+ { Elem(42,0,1.481302), Elem(61,1,1.481296), Elem(54,2,1.481290), Elem(66,3,0.661694), Elem(73,4,0.661710), Elem(78,5,0.661694), Elem(82,6,0.661660), Elem(85,7,0.990043), Elem(90,8,0.990025) },
+ { Elem(43,0,1.481358), Elem(62,1,1.481296), Elem(55,2,1.481348), Elem(67,3,0.661703), Elem(74,4,0.661710), Elem(79,5,0.663168), Elem(83,6,0.661660), Elem(86,7,0.661682), Elem(79,8,0.444436) },
+ { Elem(44,0,1.481358), Elem(63,1,1.481273), Elem(56,2,1.481348), Elem(68,3,0.661703), Elem(75,4,0.661710), Elem(80,5,0.663168), Elem(84,6,0.661660), Elem(87,7,0.661682), Elem(80,8,0.444436) },
+ { Elem(45,0,1.481358), Elem(64,1,1.481296), Elem(57,2,1.481348), Elem(69,3,0.661703), Elem(76,4,0.661710), Elem(81,5,0.663168), Elem(85,6,0.661660), Elem(88,7,0.661682), Elem(81,8,0.444436) },
+ { Elem(46,0,1.481358), Elem(65,1,1.481273), Elem(58,2,1.481348), Elem(70,3,0.661703), Elem(77,4,0.661660), Elem(82,5,0.663168), Elem(86,6,0.661660), Elem(89,7,0.661682), Elem(82,8,0.444436) },
+ { Elem(47,0,1.481358), Elem(66,1,1.481296), Elem(59,2,1.481348), Elem(71,3,0.661703), Elem(78,4,0.661710), Elem(83,5,0.663168), Elem(87,6,0.661660), Elem(90,7,0.661682), Elem(83,8,0.444436) },
+ { Elem(48,0,2.216334), Elem(67,1,1.481303), Elem(60,2,1.481340), Elem(72,3,0.661810), Elem(79,4,0.663184), Elem(84,5,0.663135), Elem(88,6,0.661660), Elem(79,7,0.444447), Elem(84,8,0.444422) },
+ { Elem(49,0,2.216353), Elem(68,1,1.481303), Elem(61,2,2.216401), Elem(73,3,0.661884), Elem(80,4,0.663184), Elem(85,5,0.663179), Elem(89,6,0.661660), Elem(80,7,0.444447), Elem(85,8,0.444450) },
+ { Elem(50,0,2.216353), Elem(69,1,2.216356), Elem(62,2,2.216401), Elem(74,3,0.661884), Elem(81,4,0.443765), Elem(86,5,0.663179), Elem(90,6,0.442217), Elem(81,7,0.443728), Elem(86,8,0.444450) },
+ { Elem(51,0,2.216353), Elem(70,1,2.216356), Elem(63,2,2.216334), Elem(75,3,0.661884), Elem(82,4,0.443765), Elem(87,5,0.663179), Elem(79,6,0.442217), Elem(82,7,0.443728), Elem(87,8,0.444450) },
+ { Elem(52,0,2.216353), Elem(71,1,2.216356), Elem(64,2,2.216401), Elem(76,3,0.661884), Elem(83,4,0.443765), Elem(88,5,0.663179), Elem(80,6,0.442217), Elem(83,7,0.443728), Elem(88,8,0.444450) },
+ { Elem(53,0,2.216353), Elem(72,1,2.216334), Elem(65,2,2.216334), Elem(77,3,0.661660), Elem(84,4,0.443691), Elem(89,5,0.663179), Elem(81,6,0.442217), Elem(84,7,0.443691), Elem(89,8,0.444450) },
+ { Elem(54,0,2.216348), Elem(73,1,2.216334), Elem(66,2,2.216401), Elem(78,3,0.661884), Elem(85,4,0.443691), Elem(90,5,0.443736), Elem(82,6,0.442217), Elem(85,7,0.443691), Elem(90,8,0.443719) },
+ { Elem(55,0,2.216334), Elem(74,1,2.216334), Elem(67,2,2.216423), Elem(79,3,0.664980), Elem(86,4,0.443691), Elem(79,5,0.447074), Elem(83,6,0.442217), Elem(86,7,0.443691), Elem(79,8,0.445051) },
+ { Elem(56,0,2.216334), Elem(75,1,2.216334), Elem(68,2,2.216423), Elem(80,3,0.664980), Elem(87,4,0.443691), Elem(80,5,0.447074), Elem(84,6,0.442217), Elem(87,7,0.443691), Elem(80,8,0.445051) },
+ { Elem(57,0,2.216334), Elem(76,1,2.216334), Elem(69,2,2.216423), Elem(81,3,0.664980), Elem(88,4,0.443691), Elem(81,5,0.447074), Elem(85,6,0.442217), Elem(88,7,0.443691), Elem(81,8,0.445051) },
+ { Elem(58,0,2.216334), Elem(77,1,2.216334), Elem(70,2,2.216423), Elem(82,3,0.664980), Elem(89,4,0.443691), Elem(82,5,0.447074), Elem(86,6,0.442217), Elem(89,7,0.443691), Elem(82,8,0.445051) },
+ { Elem(59,0,2.216334), Elem(78,1,2.216334), Elem(71,2,2.216423), Elem(83,3,0.664980), Elem(90,4,0.443691), Elem(83,5,0.447074), Elem(87,6,0.442217), Elem(90,7,0.443691), Elem(83,8,0.445051) },
+ { Elem(60,0,2.216446), Elem(79,1,2.218545), Elem(72,2,2.216446), Elem(84,3,0.664756), Elem(79,4,0.451079), Elem(84,5,0.446999), Elem(88,6,0.442217), Elem(79,7,0.447385), Elem(84,8,0.445014) },
+#endif
+ };
+
+
diff --git a/muse_qt4_evolution/synti/s1/CMakeLists.txt b/muse_qt4_evolution/synti/s1/CMakeLists.txt
new file mode 100644
index 00000000..fe5a3393
--- /dev/null
+++ b/muse_qt4_evolution/synti/s1/CMakeLists.txt
@@ -0,0 +1,34 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+add_library ( s1 SHARED s1.cpp )
+
+target_link_libraries( s1 synti )
+
+# tell cmake to name target s1.so instead of
+# libs1.so
+#
+set_target_properties ( s1 PROPERTIES PREFIX "" )
+
+target_link_libraries(s1
+ synti
+ )
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ s1 )
+
diff --git a/muse_qt4_evolution/synti/s1/s1.cpp b/muse_qt4_evolution/synti/s1/s1.cpp
new file mode 100644
index 00000000..596a5797
--- /dev/null
+++ b/muse_qt4_evolution/synti/s1/s1.cpp
@@ -0,0 +1,156 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: s1.cpp,v 1.10 2005/01/13 21:16:27 wschweer Exp $
+//
+// S1 - simple mono demo synthesizer
+// - plays only one note at a time
+// - has no gui nor any controller
+//
+// Version 0.2: stop note on wave zero crossing to avoid
+// clicks
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include <list>
+
+#include "synti/libsynti/mono.h"
+
+#define RESOLUTION 16384
+
+//---------------------------------------------------------
+// S1 - simple mono demo synthesizer
+//---------------------------------------------------------
+
+class S1 : public MessMono {
+ static int useCount;
+ static float *wave_table;
+
+ int gate;
+ float freq;
+ unsigned accu;
+ float sample;
+
+ virtual void note(int channel, int pitch, int velo);
+ virtual void process(float** buffer, int offset, int n);
+
+ public:
+ S1();
+ ~S1();
+ };
+
+float* S1::wave_table;
+int S1::useCount = 0;
+
+//---------------------------------------------------------
+// S1
+//---------------------------------------------------------
+
+S1::S1() : MessMono()
+ {
+ if (useCount++ == 0) {
+ //
+ // create sinus wave table
+ //
+ wave_table = new float[RESOLUTION];
+ for (int i = 0; i < RESOLUTION; i++)
+ wave_table[i] = sin ((i * 2.0 * M_PI) / RESOLUTION) / 6.0;
+ }
+ gate = 0;
+ }
+
+//---------------------------------------------------------
+// ~S1
+//---------------------------------------------------------
+
+S1::~S1()
+ {
+ if (--useCount == 0)
+ delete[] wave_table;
+ }
+
+//---------------------------------------------------------
+// noteon
+// process note on
+//---------------------------------------------------------
+
+void S1::note(int /*channel*/, int pitch, int velo)
+ {
+ if (velo == 0) {
+ //
+ // note off
+ //
+ if (sample == 0.0)
+ gate = 0;
+ else if (sample > 0.0)
+ gate = 2;
+ else if (sample < 0.0)
+ gate = 3;
+ }
+ else {
+ //
+ // note on
+ //
+ accu = 0;
+ gate = 1;
+ freq = 8.176 * exp(float(pitch)*log(2.0)/12.0);
+ }
+ }
+
+//---------------------------------------------------------
+// write
+// synthesize n samples into buffer+offset
+//---------------------------------------------------------
+
+void S1::process(float** buffer, int offset, int n)
+ {
+ if (gate == 0)
+ return;
+ float* p = buffer[0] + offset;
+ unsigned freq_256 = (int) (freq * ((double) RESOLUTION) / sampleRate() * 256.0);
+ for (int i = 0; i < n; i++) {
+ accu += freq_256;
+ while (accu >= RESOLUTION * 256)
+ accu -= RESOLUTION * 256;
+ sample = wave_table[accu >> 8];
+ //
+ // stop on zero crossing
+ // if in decay state
+ //
+ if (gate == 2 && sample <= 0.0) {
+ gate = 0;
+ break;
+ }
+ else if (gate == 3 && sample >= 0.0) {
+ gate = 0;
+ break;
+ }
+ p[i] += sample;
+ }
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mess* instantiate(int sr, const char*)
+ {
+ S1* s1 = new S1();
+ s1->setSampleRate(sr);
+ return s1;
+ }
+
+extern "C" {
+ static MESS descriptor = {
+ "S1",
+ "S1 MusE Demo Software Synthesizer",
+ "0.2", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate
+ };
+
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/synti/simpledrums/CMakeLists.txt b/muse_qt4_evolution/synti/simpledrums/CMakeLists.txt
new file mode 100644
index 00000000..b29bab02
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/CMakeLists.txt
@@ -0,0 +1,52 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( simpledrums_mocs simpledrumsgui.h ssplugingui.h )
+QT4_WRAP_UI ( simpledrums_uis simpledrumsguibase.ui sspluginchooserbase.ui )
+
+add_library ( simpledrums SHARED
+ simpledrums.cpp
+ simpledrumsgui.cpp
+ simpledrums.h
+ ssplugin.cpp
+ ssplugingui.cpp
+ ssplugin.h
+ common.h
+ ${simpledrums_mocs}
+ ${simpledrums_uis}
+ )
+
+# - tell cmake to name target simpledrums.so instead of
+# libsimpledrums.so
+# - use precompiled header files
+#
+set_target_properties ( simpledrums
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-O6 -include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+target_link_libraries(simpledrums
+ synti
+# awl
+ ${QT_LIBRARIES}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ simpledrums )
+
diff --git a/muse_qt4_evolution/synti/simpledrums/COPYING b/muse_qt4_evolution/synti/simpledrums/COPYING
new file mode 100644
index 00000000..5c3cefc2
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/COPYING
@@ -0,0 +1,3 @@
+COPYING
+---------------------------------------
+This software is licensed under GNU GPL.
diff --git a/muse_qt4_evolution/synti/simpledrums/README b/muse_qt4_evolution/synti/simpledrums/README
new file mode 100644
index 00000000..468640b1
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/README
@@ -0,0 +1,43 @@
+--------------------------------------
+Simpledrums v 0.2, by Mathias Lundgren
+--------------------------------------
+
+Simpledrums is a simple MESS-synth sampler (MusE Experimental Soft
+Synth) aiming at becoming a simple, tightly integrated sampler for
+MusE, specifically aimed at drumsamples.
+
+Features:
+- 16 channels/samples (1 sample/channel)
+- Simple controls for each individual channel: volume, balance, noteoff-ignore, channel on/off
+- Main volume
+- 4 LADSPA send-effects can be used, 4 effect taps for each individual channel
+- All channel parameters are controllable via the GUI, or by MusE:s controller handling (controller pane in pianoroll/drumeditor)
+- All effect parameters can be controlled via the GUI, or by Sysex messages (f.ex. turn effect on/off, modify effect parameters)
+- Complete synth state (fx-parameters, samples etc) is saved together with MusE project, and restored later when loaded
+- Samples automatically resampled when loaded (if needed)
+
+That's all folks!
+
+-------------
+Known issues:
+-------------
+- Not the prettiest gui in the world
+- All samples are read directly into memory (no caching)
+- Some obscure LADSPA-effects make SimpleSynth segfault
+- More...
+
+-------------
+Future plans:
+-------------
+- Fix all the known issues! ;-)
+- Sample loops
+- Sample offset variation w respect to note velocity
+- Treble/eq-controller for each individual channel
+- Treble level variation w respect to note velocity
+- More...
+
+Mathias Lundgren, (lunar_shuttle@users.sourceforge.net), 2004
+Plugin management code based on Werner Schweers plugin management handling for MusE
+
+(C) Copyright Mathias Lundgren, Werner Schweer 2000-2004
+Licensed under the GNU General Public License
diff --git a/muse_qt4_evolution/synti/simpledrums/ReleaseNotes.txt b/muse_qt4_evolution/synti/simpledrums/ReleaseNotes.txt
new file mode 100644
index 00000000..e0d633d8
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/ReleaseNotes.txt
@@ -0,0 +1,18 @@
+RELEASE NOTES:
+--------------
+????-??-?? ver 0.2
+- Support for 4 LADSPA sendeffects added
+- Resampling of samples when loading (libsamplerate)
+- Synth state is saved to/restored from project file
+- Channel settings: balance, volume, effect tap for each sendeffect
+- Effect settings: all LADSPA parameters controllable and saved to MusE project, effect master volume, effect on/off
+- Support for mono + stereo samples
+- Support for stereo + mono LADSPA effects
+- Bugfixes, GUI-improvements etc...
+
+2004-11-09 ver 0.1
+- Simpledrums initial release
+- 16 channels (1 sample for each channel) with parameters: volume, balance, noteoff-ignore
+
+(C) Copyright Mathias Lundgren, Werner Schweer 2000-2004
+Licensed under the GNU General Public License
diff --git a/muse_qt4_evolution/synti/simpledrums/common.h b/muse_qt4_evolution/synti/simpledrums/common.h
new file mode 100644
index 00000000..e4763540
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/common.h
@@ -0,0 +1,110 @@
+//
+// C++ Interface: common
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef __MUSE_TESTO_COMMON_H__
+#define __MUSE_TESTO_COMMON_H__
+
+#include "muse/midictrl.h"
+
+#define SS_VERSIONSTRING "1.0"
+
+#define SS_DEBUG 0
+#define SS_DEBUG_INIT 0
+#define SS_TRACE_FUNC 0
+#define SS_DEBUG_MIDI 0
+#define SS_DEBUG_LADSPA 0
+#define SS_DEBUG_STATE 0
+
+#define SS_DBG(string) if (SS_DEBUG) fprintf(stderr, "%s:%d:%s: %s\n", __FILE__ , __LINE__ , __PRETTY_FUNCTION__, string);
+#define SS_DBG2(string1, string2) if (SS_DEBUG) fprintf(stderr, "%s:%d:%s: %s: %s\n", __FILE__ , __LINE__ , __PRETTY_FUNCTION__, string1, string2);
+#define SS_DBG_I(string1, int) if (SS_DEBUG) fprintf(stderr, "%s:%d:%s: %s: %d\n", __FILE__ , __LINE__ , __PRETTY_FUNCTION__, string1, int);
+
+#define SS_TRACE_IN if (SS_TRACE_FUNC) fprintf (stderr, "->%s:%d\n", __PRETTY_FUNCTION__, __LINE__);
+#define SS_TRACE_OUT if (SS_TRACE_FUNC) fprintf (stderr, "<-%s:%d\n", __PRETTY_FUNCTION__, __LINE__);
+#define SS_ERROR(string) fprintf(stderr, "SimpleDrums error: %s\n", string)
+#define SS_DBG_LADSPA(string1) if (SS_DEBUG_LADSPA) fprintf(stderr, "%s:%d:%s: %s\n", __FILE__ , __LINE__ , __PRETTY_FUNCTION__, string1);
+#define SS_DBG_LADSPA2(string1, string2) if (SS_DEBUG_LADSPA) fprintf(stderr, "%s:%d:%s: %s: %s\n", __FILE__ , __LINE__ , __PRETTY_FUNCTION__, string1, string2);
+
+#define SS_SYSEX_INIT_DATA_VERSION 1
+
+#define SS_NR_OF_CHANNELS 16
+#define SS_AUDIO_CHANNELS 2
+#define SS_NR_OF_SENDEFFECTS 4
+
+// Controller-related:
+#define SS_CHANNEL_CTRL_VOLUME 0
+#define SS_CHANNEL_CTRL_PAN 1
+#define SS_CHANNEL_CTRL_NOFF 2
+#define SS_CHANNEL_CTRL_ONOFF 3
+#define SS_CHANNEL_SENDFX1 4
+#define SS_CHANNEL_SENDFX2 5
+#define SS_CHANNEL_SENDFX3 6
+#define SS_CHANNEL_SENDFX4 7
+
+#define SS_PLUGIN_RETURN 0
+#define SS_PLUGIN_ONOFF 1
+
+#define SS_NR_OF_MASTER_CONTROLLERS 1
+#define SS_NR_OF_CHANNEL_CONTROLLERS 8
+#define SS_NR_OF_PLUGIN_CONTROLLERS 2
+
+#define SS_NR_OF_CONTROLLERS (SS_NR_OF_MASTER_CONTROLLERS + (SS_NR_OF_CHANNELS * SS_NR_OF_CHANNEL_CONTROLLERS) + (SS_NR_OF_PLUGIN_CONTROLLERS*SS_NR_OF_SENDEFFECTS))
+#define SS_FIRST_MASTER_CONTROLLER CTRL_NRPN14_OFFSET
+#define SS_FIRST_CHANNEL_CONTROLLER (SS_FIRST_MASTER_CONTROLLER + SS_NR_OF_MASTER_CONTROLLERS)
+#define SS_LAST_MASTER_CONTROLLER (SS_FIRST_CHANNEL_CONTROLLER - 1)
+#define SS_LAST_CHANNEL_CONTROLLER (SS_FIRST_CHANNEL_CONTROLLER -1 + (SS_NR_OF_CHANNEL_CONTROLLERS * SS_NR_OF_CHANNELS))
+
+#define SS_FIRST_PLUGIN_CONTROLLER (SS_LAST_CHANNEL_CONTROLLER + 1)
+#define SS_LAST_PLUGIN_CONTROLLER (SS_FIRST_PLUGIN_CONTROLLER -1 + SS_NR_OF_SENDEFFECTS*SS_NR_OF_PLUGIN_CONTROLLERS)
+
+#define SS_MASTER_CTRL_VOLUME SS_FIRST_MASTER_CONTROLLER
+
+#define SS_CHANNEL_VOLUME_CONTROLLER(int) (SS_FIRST_CHANNEL_CONTROLLER + (SS_NR_OF_CHANNEL_CONTROLLERS * int) + SS_CHANNEL_CTRL_VOLUME)
+#define SS_CHANNEL_PAN_CONTROLLER(int) (SS_FIRST_CHANNEL_CONTROLLER + (SS_NR_OF_CHANNEL_CONTROLLERS * int) + SS_CHANNEL_CTRL_PAN)
+#define SS_CHANNEL_NOFF_CONTROLLER(int) (SS_FIRST_CHANNEL_CONTROLLER + (SS_NR_OF_CHANNEL_CONTROLLERS * int) + SS_CHANNEL_CTRL_NOFF)
+#define SS_CHANNEL_ONOFF_CONTROLLER(int) (SS_FIRST_CHANNEL_CONTROLLER + (SS_NR_OF_CHANNEL_CONTROLLERS * int) + SS_CHANNEL_CTRL_ONOFF)
+#define SS_CHANNEL_SENDFX_CONTROLLER(int1,int2) (SS_FIRST_CHANNEL_CONTROLLER + (SS_NR_OF_CHANNEL_CONTROLLERS * int1) + SS_CHANNEL_SENDFX1 + int2)
+
+#define SS_PLUGIN_RETURNLEVEL_CONTROLLER(int) (SS_FIRST_PLUGIN_CONTROLLER + (int * SS_NR_OF_PLUGIN_CONTROLLERS))
+#define SS_PLUGIN_ONOFF_CONTROLLER(int) (SS_FIRST_PLUGIN_CONTROLLER + (int * SS_NR_OF_PLUGIN_CONTROLLERS) + 1)
+
+#define SS_LOWEST_NOTE 36
+#define SS_HIGHEST_NOTE (SS_LOWEST_NOTE + SS_NR_OF_CHANNELS)
+
+#define SS_PLUGIN_PARAM_MIN 0
+#define SS_PLUGIN_PARAM_MAX 127
+
+typedef unsigned char byte;
+
+enum {
+ SS_SYSEX_LOAD_SAMPLE = 0, // gui -> synth: tell synth to load sample
+ SS_SYSEX_INIT_DATA, // synth reinitialization, the position of this (1) in the enum must not be changed since this value is written into proj file
+ SS_SYSEX_LOAD_SAMPLE_OK, // synth -> gui: tell gui sample loaded OK
+ SS_SYSEX_LOAD_SAMPLE_ERROR, // synth -> gui: tell gui sample ! loaded OK
+ SS_SYSEX_CLEAR_SAMPLE, // gui -> synth: tell synth to clear sample
+ SS_SYSEX_CLEAR_SAMPLE_OK, // synth->gui: confirm sample cleared OK
+ SS_SYSEX_LOAD_SENDEFFECT, // gui -> synth: tell synth to load laspa-effect
+ SS_SYSEX_LOAD_SENDEFFECT_OK,// synth->gui: plugin loaded ok
+ SS_SYSEX_LOAD_SENDEFFECT_ERROR, // synth->gui: plugin _not_ loaded ok
+ SS_SYSEX_CLEAR_SENDEFFECT, // gui->synth: clear plugin
+ SS_SYSEX_CLEAR_SENDEFFECT_OK,// synth->gui: plugin cleared
+ SS_SYSEX_SET_PLUGIN_PARAMETER, //gui->synth: set plugin parameter
+ SS_SYSEX_SET_PLUGIN_PARAMETER_OK, // synth->gui: set plugin parameter (update gui)
+ SS_SYSEX_ERRORMSG, // synth -> gui: general error message from synth
+ SS_SYSEX_GET_INIT_DATA, // gui->synth: request init data
+ SS_SYSEX_SEND_INIT_DATA // synth->gui: give gui init data
+ };
+
+extern int SS_samplerate;
+extern float SS_map_pluginparam2logdomain(int pluginparam_val);
+extern int SS_map_logdomain2pluginparam(float pluginparam_log);
+#endif
+
diff --git a/muse_qt4_evolution/synti/simpledrums/simpledrums.cpp b/muse_qt4_evolution/synti/simpledrums/simpledrums.cpp
new file mode 100644
index 00000000..93be946d
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/simpledrums.cpp
@@ -0,0 +1,1719 @@
+//
+// C++ Implementation: simplesynth
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include "muse/midictrl.h"
+#include "muse/midi.h"
+#include "libsynti/midievent.h"
+#include "simpledrums.h"
+// #include <qstring.h>
+#include <samplerate.h>
+
+const char* SimpleSynth::synth_state_descr[] =
+ {
+ "SS_INITIALIZING",
+ "SS_LOADING_SAMPLE",
+ "SS_CLEARING_SAMPLE",
+ "SS_RUNNING"
+ };
+
+const char* SimpleSynth::channel_state_descr[] =
+ {
+ "SS_CHANNEL_INACTIVE",
+ "SS_SAMPLE_PLAYING"
+ };
+
+#define SWITCH_SYNTH_STATE(state)\
+synth_state = state; \
+if (SS_DEBUG_STATE) \
+ fprintf (stderr, "SS STATE: %s\n", SimpleSynth::synth_state_descr[state]);
+
+#define SWITCH_CHAN_STATE(ch, s)\
+channels[ch].state = s; \
+if (SS_DEBUG_STATE) \
+ fprintf (stderr, "SS CHAN %d STATE: %s\n", ch, SimpleSynth::channel_state_descr[s]);
+
+#define SS_CHANNEL_VOLUME_QUOT 100.0
+#define SS_MASTER_VOLUME_QUOT 100.0
+int SS_samplerate;
+
+#define SS_LOG_MAX 0
+#define SS_LOG_MIN -10
+#define SS_LOG_OFFSET SS_LOG_MIN
+
+
+//
+// Map plugin parameter on domain [SS_PLUGIN_PARAM_MIN, SS_PLUGIN_PARAM_MAX] to domain [SS_LOG_MIN, SS_LOG_MAX] (log domain)
+//
+float SS_map_pluginparam2logdomain(int pluginparam_val)
+ {
+ float scale = (float) (SS_LOG_MAX - SS_LOG_MIN)/ (float) SS_PLUGIN_PARAM_MAX;
+ float scaled = (float) pluginparam_val * scale;
+ float mapped = scaled + SS_LOG_OFFSET;
+ return mapped;
+ }
+//
+// Map plugin parameter on domain to domain [SS_LOG_MIN, SS_LOG_MAX] to [SS_PLUGIN_PARAM_MIN, SS_PLUGIN_PARAM_MAX] (from log-> [0,127])
+// (inverse func to the above)
+int SS_map_logdomain2pluginparam(float pluginparam_log)
+ {
+ float mapped = pluginparam_log - SS_LOG_OFFSET;
+ float scale = (float) SS_PLUGIN_PARAM_MAX / (float) (SS_LOG_MAX - SS_LOG_MIN);
+ int scaled = (int) round(mapped * scale);
+ return scaled;
+ }
+
+//---------------------------------------------------------
+// SimpleSynth
+//---------------------------------------------------------
+SimpleSynth::SimpleSynth(int sr)
+ : Mess(SS_AUDIO_CHANNELS)
+ {
+ SS_TRACE_IN
+ SS_samplerate = sr;
+ SS_initPlugins();
+
+ simplesynth_ptr = this;
+ master_vol = 100.0 / SS_MASTER_VOLUME_QUOT;
+ master_vol_ctrlval = 100;
+
+ //initialize
+ for (int i=0; i<SS_NR_OF_CHANNELS; i++) {
+ channels[i].sample = 0;
+ channels[i].playoffset = 0;
+ channels[i].noteoff_ignore = false;
+ channels[i].volume = (double) (100.0/SS_CHANNEL_VOLUME_QUOT );
+ channels[i].volume_ctrlval = 100;
+ channels[i].pan = 64;
+ channels[i].balanceFactorL = 1.0;
+ channels[i].balanceFactorR = 1.0;
+ SWITCH_CHAN_STATE(i, SS_CHANNEL_INACTIVE);
+ channels[i].channel_on = false;
+ for (int j=0; j<SS_NR_OF_SENDEFFECTS; j++) {
+ channels[i].sendfxlevel[j] = 0.0;
+ }
+ }
+
+ //Process buffer:
+ processBuffer[0] = new double[SS_PROCESS_BUFFER_SIZE]; //left
+ processBuffer[1] = new double[SS_PROCESS_BUFFER_SIZE]; //right
+
+ //Send effects
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ sendFxLineOut[i][0] = new float[SS_SENDFX_BUFFER_SIZE]; //left out
+ sendFxLineOut[i][1] = new float[SS_SENDFX_BUFFER_SIZE]; //right out
+ sendFxReturn[i][0] = new float[SS_SENDFX_BUFFER_SIZE]; //left in
+ sendFxReturn[i][1] = new float[SS_SENDFX_BUFFER_SIZE]; //right in
+ }
+
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ sendEffects[i].state = SS_SENDFX_OFF;
+ sendEffects[i].plugin = 0;
+ sendEffects[i].retgain = 1.0;
+ sendEffects[i].retgain_ctrlval = 100;
+ sendEffects[i].nrofparameters = 0;
+ }
+
+ //Build controller list:
+ controllers[0].name = "Master volume";
+ controllers[0].num = CTRL_NRPN14_OFFSET;
+ controllers[0].min = 0;
+ controllers[0].max = 127;
+
+ int i=1;
+ for (int ch=0; ch<SS_NR_OF_CHANNELS; ch++) {
+ QString c1 = "Channel " + QString::number(ch + 1) + " volume";
+ QString c2 = "Channel " + QString::number(ch + 1) + " pan";
+ QString c3 = "Channel " + QString::number(ch + 1) + " noteoff ignore";
+ QString c4 = "Channel " + QString::number(ch + 1) + " on/off";
+ QString c5 = "Channel " + QString::number(ch + 1) + " fx send 1";
+ QString c6 = "Channel " + QString::number(ch + 1) + " fx send 2";
+ QString c7 = "Channel " + QString::number(ch + 1) + " fx send 3";
+ QString c8 = "Channel " + QString::number(ch + 1) + " fx send 4";
+ controllers[i].name = c1.toLatin1().data();
+ controllers[i].num = CTRL_NRPN14_OFFSET+i;
+ controllers[i].min = 0;
+ controllers[i].max = 127;
+
+ controllers[i+1].name = c2.toLatin1().data();
+ controllers[i+1].num = CTRL_NRPN14_OFFSET+i+1;
+ controllers[i+1].min = 0;
+ controllers[i+1].max = 127;
+
+ controllers[i+2].name = c3.toLatin1().data();
+ controllers[i+2].num = CTRL_NRPN14_OFFSET+i+2;
+ controllers[i+2].min = 0;
+ controllers[i+2].max = 1;
+
+ controllers[i+3].name = c4.toLatin1().data();
+ controllers[i+3].num = CTRL_NRPN14_OFFSET+i+3;
+ controllers[i+3].min = 0;
+ controllers[i+3].max = 1;
+
+ controllers[i+4].name = c5.toLatin1().data();
+ controllers[i+4].num = CTRL_NRPN14_OFFSET+i+4;
+
+ controllers[i+5].name = c6.toLatin1().data();
+ controllers[i+5].num = CTRL_NRPN14_OFFSET+i+5;
+
+ controllers[i+6].name = c7.toLatin1().data();
+ controllers[i+6].num = CTRL_NRPN14_OFFSET+i+6;
+
+ controllers[i+7].name = c8.toLatin1().data();
+ controllers[i+7].num = CTRL_NRPN14_OFFSET+i+7;
+
+ controllers[i+4].min = controllers[i+5].min = controllers[i+6].min = controllers[i+7].min = 0;
+ controllers[i+4].max = controllers[i+5].max = controllers[i+6].max = controllers[i+7].max = 127;
+
+ i+=8;
+ }
+
+ for (int sfx=0; sfx<SS_NR_OF_SENDEFFECTS; sfx++) {
+ QString c1 = "Sendfx " + QString::number(sfx) + " ret gain";
+ QString c2 = "Sendfx " + QString::number(sfx) + " on/off";
+ controllers[i].name = c1.toLatin1().data();
+ controllers[i].num = CTRL_NRPN14_OFFSET+i;
+ controllers[i].min = 0;
+ controllers[i].max = 127;
+
+ controllers[i+1].name = c2.toLatin1().data();
+ controllers[i+1].num = CTRL_NRPN14_OFFSET+i+1;
+ controllers[i+1].min = 0;
+ controllers[i+1].max = 1;
+ i+=2;
+ }
+
+ pthread_mutex_init(&SS_LoaderMutex, NULL);
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// ~SimpleSynth
+//---------------------------------------------------------
+SimpleSynth::~SimpleSynth()
+ {
+ SS_TRACE_IN
+
+ // Cleanup channels and samples:
+ SS_DBG("Cleaning up sample data");
+ for (int i=0; i<SS_NR_OF_CHANNELS; i++) {
+ if (channels[i].sample) {
+ delete[] channels[i].sample->data;
+ delete channels[i].sample;
+ }
+ }
+ simplesynth_ptr = NULL;
+
+ SS_DBG("Deleting pluginlist");
+ //Cleanup plugins:
+ for (iPlugin i = plugins.begin(); i != plugins.end(); ++i) {
+ delete (*i);
+ }
+ plugins.clear();
+
+ SS_DBG("Deleting sendfx buffers");
+ //Delete sendfx buffers:
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ delete[] sendFxLineOut[i][0];
+ delete[] sendFxLineOut[i][1];
+ delete[] sendFxReturn[i][0];
+ delete[] sendFxReturn[i][1];
+ }
+
+ //processBuffer:
+ SS_DBG("Deleting process buffer");
+ delete[] processBuffer[0];
+ delete[] processBuffer[1];
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// guiVisible
+/*!
+ \fn SimpleSynth::guiVisible
+ \brief Tells if the gui is hidden or shown
+ \return true/false if gui is shown/hidden
+ */
+//---------------------------------------------------------
+bool SimpleSynth::guiVisible() const
+ {
+ SS_TRACE_IN
+ bool v = gui->isVisible();
+ SS_TRACE_OUT
+ return v;
+ }
+
+//---------------------------------------------------------
+// hasGui
+/*!
+ \fn SimpleSynth::hasGui
+ \brief Tells if the synth has a gui or not
+ \return true if synth has gui, false it synth has no gui
+ */
+//---------------------------------------------------------
+bool SimpleSynth::hasGui() const
+ {
+ SS_TRACE_IN
+ SS_TRACE_OUT
+ return true;
+ }
+
+//---------------------------------------------------------
+// playNote
+/*!
+ \fn SimpleSynth::playNote
+ \brief Triggers a note on (noteoffs are noteons with velo=0)
+ \param channel midi channel
+ \param pitch note pitch
+ \param velo note velocity
+ \return false for ok, true for not ok (not sure these are handled differently, but...)
+ */
+//---------------------------------------------------------
+bool SimpleSynth::playNote(int /*channel*/, int pitch, int velo)
+ {
+ SS_TRACE_IN
+ //Don't bother about channel, we're processing every playnote!
+ if ((pitch >= SS_LOWEST_NOTE) && (pitch <= SS_HIGHEST_NOTE)) {
+ bool noteOff = (velo == 0 ? 1 : 0);
+ int ch = pitch - SS_LOWEST_NOTE;
+ if(!noteOff) {
+ if (channels[ch].sample) {
+ //Turn on the white stuff:
+ channels[ch].playoffset = 0;
+ SWITCH_CHAN_STATE(ch , SS_SAMPLE_PLAYING);
+ channels[ch].cur_velo = (double) velo / 127.0;
+ channels[ch].gain_factor = channels[ch].cur_velo * channels[ch].volume;
+ if (SS_DEBUG_MIDI) {
+ printf("Playing note %d on channel %d\n", pitch, ch);
+ }
+ }
+ }
+ else {
+ //Note off:
+ if (channels[ch].noteoff_ignore) {
+ if (SS_DEBUG_MIDI) {
+ printf("Note off on channel %d\n", ch);
+ }
+ SWITCH_CHAN_STATE(ch , SS_CHANNEL_INACTIVE);
+ channels[ch].playoffset = 0;
+ channels[ch].cur_velo = 0;
+ }
+ }
+ }
+ SS_TRACE_OUT
+ return false;
+ }
+
+//---------------------------------------------------------
+// processEvent
+/*!
+ \fn SimpleSynth::processEvent
+ \brief All events from sequencer first shows up here and are forwarded to their correct functions
+ \param event The event sent from sequencer
+ \return false for ok, true for not ok
+ */
+//---------------------------------------------------------
+bool SimpleSynth::processEvent(const MidiEvent& ev)
+ {
+ SS_TRACE_IN
+ switch(ev.type()) {
+ case ME_CONTROLLER:
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynth::processEvent - Controller. Chan: %x dataA: %x dataB: %x\n", ev.channel(), ev.dataA(), ev.dataB());
+ for (int i=0; i< ev.len(); i++)
+ printf("%x ", ev.data()[i]);
+ }
+ setController(ev.channel(), ev.dataA(), ev.dataB(), false);
+ return true;
+ case ME_NOTEON:
+ return playNote(ev.channel(), ev.dataA(), ev.dataB());
+ case ME_NOTEOFF:
+ return playNote(ev.channel(), ev.dataA(), 0);
+ case ME_SYSEX:
+ //Debug print
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynth::processEvent - Sysex received\n");
+ for (int i=0; i< ev.len(); i++)
+ printf("%x ", ev.data()[i]);
+ printf("\n");
+ }
+ return sysex(ev.len(), ev.data());
+ }
+ return false;
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// setController
+/*!
+ \fn SimpleSynth::setController
+ \brief Called from sequencer indirectly via SimpleSynth::processEvent
+ \brief when the synth is supposed to set a controller value
+ \param channel channel nr
+ \param id controller id
+ \param val value of controller
+ \return false for ok, true for not ok
+ */
+//---------------------------------------------------------
+bool SimpleSynth::setController(int channel, int id, int val)
+ {
+ SS_TRACE_IN
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynth::setController - received controller on channel %d, id %d value %d\n", channel, id, val);
+ }
+
+ // Channel controllers:
+ if (id >= SS_FIRST_CHANNEL_CONTROLLER && id <= SS_LAST_CHANNEL_CONTROLLER ) {
+ // Find out which channel we're dealing with:
+ id-= SS_FIRST_CHANNEL_CONTROLLER;
+ int ch = (id / SS_NR_OF_CHANNEL_CONTROLLERS);
+ id = (id % SS_NR_OF_CHANNEL_CONTROLLERS);
+
+ switch (id) {
+ case SS_CHANNEL_CTRL_VOLUME:
+ if (SS_DEBUG_MIDI)
+ printf("Received channel ctrl volume %d for channel %d\n", val, ch);
+ channels[ch].volume_ctrlval = val;
+ updateVolume(ch, val);
+ break;
+ case SS_CHANNEL_CTRL_NOFF:
+ if (SS_DEBUG_MIDI)
+ printf("Received ctrl noff %d for channel %d\n", val, ch);
+ channels[ch].noteoff_ignore = val;
+ break;
+ case SS_CHANNEL_CTRL_PAN:
+ {
+ if (SS_DEBUG_MIDI)
+ printf("Received ctrl pan %d for channel %d\n", val, ch);
+ channels[ch].pan = val;
+ updateBalance(ch, val);
+ break;
+ }
+ case SS_CHANNEL_CTRL_ONOFF:
+ {
+ if (SS_DEBUG_MIDI)
+ printf("Received ctrl onoff %d for channel %d\n", val, ch);
+
+ if (val == false && channels[ch].channel_on == true) {
+ SWITCH_CHAN_STATE(ch, SS_CHANNEL_INACTIVE);
+ channels[ch].channel_on = val;
+ }
+ else if (val == true && channels[ch].channel_on == false) { // if it actually _was_ off:
+ SWITCH_CHAN_STATE(ch, SS_CHANNEL_INACTIVE);
+ channels[ch].playoffset = 0;
+ channels[ch].channel_on = val;
+ }
+ break;
+ }
+ case SS_CHANNEL_SENDFX1:
+ case SS_CHANNEL_SENDFX2:
+ case SS_CHANNEL_SENDFX3:
+ case SS_CHANNEL_SENDFX4:
+ {
+ int fxid = id - SS_CHANNEL_SENDFX1;
+ channels[ch].sendfxlevel[fxid] = (double)val/127.0;
+ break;
+ }
+
+ default:
+ if (SS_DEBUG_MIDI)
+ printf("Unknown controller received for channel %d. id=%d\n", ch, id);
+ break;
+ }
+ }
+ // Master controllers:
+ else if (id >= SS_FIRST_MASTER_CONTROLLER && id <= SS_LAST_MASTER_CONTROLLER) {
+ if (SS_DEBUG_MIDI)
+ printf("Mastervol controller received: %d\n", id);
+ master_vol_ctrlval = val;
+ master_vol = (double) master_vol_ctrlval / SS_MASTER_VOLUME_QUOT;
+ }
+ // Emmm, this one should've been there in the beginning
+ else if (id == CTRL_VOLUME) {
+ if (SS_DEBUG_MIDI) {
+ printf("Ctrl volume received: vol: %d\n", val);
+ }
+ master_vol_ctrlval = val;
+ master_vol = (double) master_vol_ctrlval / SS_MASTER_VOLUME_QUOT;
+ //This one can't be from the gui, update gui:
+ guiUpdateMasterVol(val);
+ }
+ // Plugin controllers:
+ else if (id >= SS_FIRST_PLUGIN_CONTROLLER && id <= SS_LAST_PLUGIN_CONTROLLER) {
+
+ int fxid = (id - SS_FIRST_PLUGIN_CONTROLLER) / SS_NR_OF_PLUGIN_CONTROLLERS;
+ int cmd = (id - SS_FIRST_PLUGIN_CONTROLLER) % SS_NR_OF_PLUGIN_CONTROLLERS;
+
+ // Plugin return-gain:
+ if (cmd == SS_PLUGIN_RETURN) {
+ if (SS_DEBUG_MIDI)
+ printf("Ctrl fx retgain received: fxid: %d val: %d\n", fxid, val);
+ sendEffects[fxid].retgain_ctrlval = val;
+ sendEffects[fxid].retgain = (double) val / 75.0;
+ }
+ // Plugin on/off:
+ else if (cmd == SS_PLUGIN_ONOFF) {
+ if (SS_DEBUG_MIDI)
+ printf("Ctrl fx onoff received: fxid: %d val: %d\n", fxid, val);
+ sendEffects[fxid].state = (SS_SendFXState) val;
+ }
+ }
+ else {
+ if (SS_DEBUG_MIDI)
+ printf("Unknown controller received: %d\n", id);
+ }
+ SS_TRACE_OUT
+ return false;
+ }
+
+//---------------------------------------------------------
+/*!
+ \fn SimpleSynth::setController
+ */
+//---------------------------------------------------------
+bool SimpleSynth::setController(int channel, int id, int val, bool /*fromGui*/)
+ {
+ SS_TRACE_IN
+ bool ret = setController(channel, id, val); //Perhaps TODO... Separate events from the gui
+ SS_TRACE_OUT
+ return ret;
+ }
+//---------------------------------------------------------
+// sysex
+/*!
+ \fn SimpleSynth::sysex
+ \brief Called from sequencer indirectly via SimpleSynth::processEvent
+ \param len length of the sysex data
+ \param data the sysex data
+ \return false for ok, true for not ok
+*/
+//---------------------------------------------------------
+bool SimpleSynth::sysex(int /*len*/, const unsigned char* data)
+ {
+ SS_TRACE_IN
+ int cmd = data[0];
+ switch (cmd) {
+ case SS_SYSEX_LOAD_SAMPLE:
+ {
+ int channel = data[1];
+ //int l = data[2];
+ const char* filename = (const char*)(data+3);
+ if (SS_DEBUG_MIDI) {
+ printf("Sysex cmd: load sample, filename %s, on channel: %d\n", filename, channel);
+ }
+ loadSample(channel, filename);
+ break;
+ }
+ case SS_SYSEX_CLEAR_SAMPLE:
+ {
+ int ch = data[1];
+ clearSample(ch);
+ break;
+ }
+
+ case SS_SYSEX_INIT_DATA:
+ {
+ parseInitData(data);
+ break;
+ }
+
+ case SS_SYSEX_LOAD_SENDEFFECT:
+ {
+ int fxid = data[1];
+ QString lib = (const char*) (data + 2);
+ QString label = (const char*) (data + lib.length() + 3);
+ if (SS_DEBUG_MIDI) {
+ printf("Sysex cmd load effect: %d %s %s\n", fxid, lib.toLatin1().data(), label.toLatin1().data());
+ }
+ initSendEffect(fxid, lib, label);
+ break;
+ }
+
+ case SS_SYSEX_CLEAR_SENDEFFECT:
+ {
+ int fxid = data[1];
+ if (SS_DEBUG_MIDI) {
+ printf("Sysex cmd clear effect: %d\n", fxid);
+ }
+ sendEffects[fxid].state = SS_SENDFX_OFF;
+ cleanupPlugin(fxid);
+ sendEffects[fxid].plugin = 0;
+ break;
+ }
+
+ case SS_SYSEX_SET_PLUGIN_PARAMETER:
+ {
+ int fxid = data[1];
+ int parameter = data[2];
+ int val = data[3];
+ // Write it to the plugin:
+ float floatval = sendEffects[fxid].plugin->convertGuiControlValue(parameter, val);
+ setFxParameter(fxid, parameter, floatval);
+ break;
+ }
+
+ case SS_SYSEX_GET_INIT_DATA:
+ {
+ int initdata_len = 0;
+ const byte* tmp_initdata = NULL;
+ byte* event_data = NULL;
+
+ getInitData(&initdata_len, &tmp_initdata);
+ int totlen = initdata_len + 1;
+
+ event_data = new byte[initdata_len + 1];
+ event_data[0] = SS_SYSEX_SEND_INIT_DATA;
+ memcpy(event_data + 1, tmp_initdata, initdata_len);
+ delete[] tmp_initdata;
+ tmp_initdata = NULL;
+
+ MidiEvent ev(0, ME_SYSEX, event_data, totlen);
+ gui->writeEvent(ev);
+ delete[] event_data;
+
+ break;
+ }
+
+ default:
+ if (SS_DEBUG_MIDI)
+ printf("Unknown sysex cmd received: %d\n", cmd);
+ break;
+ }
+ SS_TRACE_OUT
+ return false;
+ }
+
+//---------------------------------------------------------
+// getPatchName
+/*!
+ \fn SimpleSynth::getPatchName
+ \brief Called from host to get names of patches
+ \param index - which patchnr we're about to deliver
+ \return const char* with patchname
+ */
+//---------------------------------------------------------
+const char* SimpleSynth::getPatchName(int /*index*/, int, int) const
+ {
+ SS_TRACE_IN
+ SS_TRACE_OUT
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getPatchInfo
+/*!
+ \fn SimpleSynth::getPatchInfo
+ \brief Called from host to get info about patches
+ \param index - which patchnr we're about to deliver
+ \param patch - if this one is 0, this is the first call, otherwise keep deliver the host patches... or something
+ \return MidiPatch with patch info for host
+ */
+//---------------------------------------------------------
+const MidiPatch* SimpleSynth::getPatchInfo(int index, const MidiPatch* patch) const
+ {
+ SS_TRACE_IN
+ index = 0; patch = 0;
+ SS_TRACE_OUT
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+/*!
+ \fn SimpleSynth::getControllerInfo
+ \brief Called from host to collect info about which controllers the synth supports
+ \param index current controller number
+ \param name pointer where name is stored
+ \param controller int pointer where muse controller number is stored
+ \param min int pointer where controller min value is stored
+ \param max int pointer where controller max value is stored
+ \return 0 when done, otherwise return next desired controller index
+ */
+//---------------------------------------------------------
+int SimpleSynth::getControllerInfo(int index, const char** name, int* controller, int* min, int* max)
+ {
+ SS_TRACE_IN
+ if (index >= SS_NR_OF_CONTROLLERS) {
+ SS_TRACE_OUT
+ return 0;
+ }
+
+ *name = controllers[index].name.c_str();
+ *controller = controllers[index].num;
+ *min = controllers[index].min;
+ *max = controllers[index].max;
+
+ if (SS_DEBUG_MIDI) {
+ printf("setting controller info: index %d name %s controller %d min %d max %d\n", index, *name, *controller, *min, *max);
+ }
+ SS_TRACE_OUT
+ return (index +1);
+ }
+
+//---------------------------------------------------------
+// process
+/*!
+ \fn SimpleSynth::process
+ \brief Realtime function where the processing actually occurs
+ \param channels - audio data
+ \param offset - sample offset
+ \param len - nr of samples to process
+ */
+//---------------------------------------------------------
+void SimpleSynth::process(float** out, int offset, int len)
+ {
+ //Process messages from the gui
+ while (gui->fifoSize()) {
+ MidiEvent ev = gui->readEvent();
+ if (ev.type() == ME_SYSEX) {
+ sysex(ev.len(), ev.data());
+ sendEvent(ev);
+ }
+ else if (ev.type() == ME_CONTROLLER) {
+ setController(ev.channel(), ev.dataA(), ev.dataB(), true);
+ sendEvent(ev);
+ }
+ else {
+ if (SS_DEBUG)
+ printf("SimpleSynth::process(): unknown event, type: %d\n", ev.type());
+ }
+ }
+
+ if (synth_state == SS_RUNNING) {
+
+ //Temporary mix-doubles
+ double out1, out2;
+ //double ltemp, rtemp;
+ float* data;
+ // Velocity factor:
+ double gain_factor;
+
+
+ // Clear send-channels. Skips if fx not turned on
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ if (sendEffects[i].state == SS_SENDFX_ON) {
+ memset(sendFxLineOut[i][0], 0, SS_SENDFX_BUFFER_SIZE * sizeof(float));
+ memset(sendFxLineOut[i][1], 0, SS_SENDFX_BUFFER_SIZE * sizeof(float));
+ }
+ }
+
+
+ memset(out[0] + offset, 0, len * sizeof(float));
+ memset(out[1] + offset, 0, len * sizeof(float));
+
+ //Process 1 channel at a time
+ for (int ch=0; ch < SS_NR_OF_CHANNELS; ch++) {
+ // If channels is turned off, skip:
+ if (channels[ch].channel_on == false)
+ continue;
+
+ //If sample isn't playing, skip:
+ if (channels[ch].state == SS_SAMPLE_PLAYING) {
+ memset(processBuffer[0], 0, SS_PROCESS_BUFFER_SIZE * sizeof(double));
+ memset(processBuffer[1], 0, SS_PROCESS_BUFFER_SIZE * sizeof(double));
+
+ for (int i=0; i<len; i++) {
+ // Current channel sample data:
+ data = channels[ch].sample->data;
+ gain_factor = channels[ch].gain_factor;
+ // Current velocity factor:
+
+ if (channels[ch].sample->channels == 2) {
+ //
+ // Stereo sample:
+ //
+ // Add from sample:
+ out1 = (double) (data[channels[ch].playoffset] * gain_factor * channels[ch].balanceFactorL);
+ out2 = (double) (data[channels[ch].playoffset + 1] * gain_factor * channels[ch].balanceFactorR);
+ channels[ch].playoffset += 2;
+ }
+ else {
+ //
+ // Mono sample:
+ //
+ out1 = (double) (data[channels[ch].playoffset] * gain_factor * channels[ch].balanceFactorL);
+ out2 = (double) (data[channels[ch].playoffset] * gain_factor * channels[ch].balanceFactorR);
+ channels[ch].playoffset++;
+ }
+
+ processBuffer[0][i] = out1;
+ processBuffer[1][i] = out2;
+
+ // If send-effects tap is on, tap signal to respective lineout channel
+ for (int j=0; j<SS_NR_OF_SENDEFFECTS; j++) {
+ if (channels[ch].sendfxlevel[j] != 0.0) {
+ //If the effect has 2 inputs (stereo in):
+ if (sendEffects[j].inputs == 2) {
+ sendFxLineOut[j][0][i]+= (out1 * channels[ch].sendfxlevel[j]);
+ sendFxLineOut[j][1][i]+= (out2 * channels[ch].sendfxlevel[j]);
+ }
+ //If the effect is mono (1 input), only use first fxLineOut
+ else if (sendEffects[j].inputs == 1) {
+ sendFxLineOut[j][0][i]+= ((out1 + out2) * channels[ch].sendfxlevel[j] / 2.0);
+ }
+ //Effects with 0 or >2 inputs are ignored
+ }
+ }
+
+ //
+ // If we've reached the last sample, set state to inactive
+ //
+ if (channels[ch].playoffset >= channels[ch].sample->samples) {
+ SWITCH_CHAN_STATE(ch, SS_CHANNEL_INACTIVE);
+ channels[ch].playoffset = 0;
+ break;
+ }
+ }
+ // Add contribution for this channel, for this frame, to final result:
+ for (int i=0; i<len; i++) {
+ out[0][i+offset]+=processBuffer[0][i];
+ out[1][i+offset]+=processBuffer[1][i];
+ }
+ }
+ }
+ // Do something funny with the sendies:
+ for (int j=0; j<SS_NR_OF_SENDEFFECTS; j++) {
+ if (sendEffects[j].state == SS_SENDFX_ON) {
+ sendEffects[j].plugin->process(len);
+ for (int i=0; i<len; i++) {
+ //Effect has mono output:
+ if (sendEffects[j].outputs == 1) {
+ //Add the result to both channels:
+ out[0][i+offset]+=((sendEffects[j].retgain * sendFxReturn[j][0][i]) / 2.0);
+ out[1][i+offset]+=((sendEffects[j].retgain * sendFxReturn[j][0][i]) / 2.0);
+ }
+ else if (sendEffects[j].outputs == 2) {
+ // Effect has stereo output
+ out[0][i+offset]+=(sendEffects[j].retgain * sendFxReturn[j][0][i]);
+ out[1][i+offset]+=(sendEffects[j].retgain * sendFxReturn[j][1][i]);
+ }
+ }
+ }
+ }
+ // Finally master gain:
+ for (int i=0; i<len; i++) {
+ out[0][i+offset] = (out[0][i+offset] * master_vol);
+ out[1][i+offset] = (out[1][i+offset] * master_vol);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// showGui
+/*!
+ \fn SimpleSynth::showGui
+ \brief Displays or hides the gui window
+ \param val true or false = gui shown or hidden
+ */
+//---------------------------------------------------------
+void SimpleSynth::showGui(bool val)
+ {
+ SS_TRACE_IN
+ gui->setShown(val);
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+/*!
+ \fn SimpleSynth::init
+ \brief Initializes the SimpleSynth
+ \param name string set to caption in the gui dialog
+ \return true if successful, false if unsuccessful
+ */
+//---------------------------------------------------------
+bool SimpleSynth::init(const char* name)
+ {
+ SS_TRACE_IN
+ SWITCH_SYNTH_STATE(SS_INITIALIZING);
+ gui = new SimpleSynthGui();
+ gui->show();
+ gui->setWindowTitle(name);
+ SWITCH_SYNTH_STATE(SS_RUNNING);
+ SS_TRACE_OUT
+ return true;
+ }
+
+//---------------------------------------------------------
+/*!
+ \fn SimpleSynth::getInitData
+ \brief Data for reinitialization of SimpleSynth when loading project
+ \param n - number of chars used in the data
+ \param data - data that is sent as a sysex to the synth on reload of project
+ */
+//---------------------------------------------------------
+void SimpleSynth::getInitData(int* n, const unsigned char** data)
+ {
+ SS_TRACE_IN
+ // Calculate length of data
+ // For each channel, we need to store volume, pan, noff, onoff
+ int len = SS_NR_OF_CHANNEL_CONTROLLERS * SS_NR_OF_CHANNELS;
+ // Sampledata: filenames len
+ for (int i=0; i<SS_NR_OF_CHANNELS; i++) {
+ if (channels[i].sample) {
+ int filenamelen = strlen(channels[i].sample->filename.c_str()) + 2;
+ len+=filenamelen;
+ }
+ else
+ len++; //Add place for SS_NO_SAMPLE
+ }
+ len+=3; // 1 place for SS_SYSEX_INIT_DATA, 1 byte for master vol, 1 byte for version data
+
+ // Effect data length
+ len++; //Add place for SS_SYSEX_INIT_DATA_VERSION, as control
+
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ Plugin* plugin = sendEffects[i].plugin;
+ if (plugin) {
+ int namelen = plugin->lib().size() + 2;
+ int labelnamelen = plugin->label().size() + 2;
+ len+=(namelen + labelnamelen);
+
+ len+=3; //1 byte for nr of parameters, 1 byte for return gain, 1 byte for effect on/off
+ len+=sendEffects[i].nrofparameters; // 1 byte for each parameter value
+ }
+ else {
+ len++; //place for SS_NO_PLUGIN
+ }
+ }
+
+ // First, SS_SYSEX_INIT_DATA
+ byte* buffer = new byte[len];
+ memset(buffer, 0, len);
+ buffer[0] = SS_SYSEX_INIT_DATA;
+ buffer[1] = SS_SYSEX_INIT_DATA_VERSION;
+ if (SS_DEBUG_INIT) {
+ printf("Length of init data: %d\n", len);
+ printf("buffer[0] - SS_SYSEX_INIT_DATA: %d\n", SS_SYSEX_INIT_DATA);
+ printf("buffer[1] - SS_SYSEX_INIT_DATA_VERSION: %d\n", SS_SYSEX_INIT_DATA_VERSION);
+ }
+ int i = 2;
+ // All channels:
+ // 0 - volume ctrlval (0-127)
+ // 1 - pan (0-127)
+ // 2 - noff ignore (0-1)
+ // 3 - channel on/off (0-1)
+ // 4 - 7 - sendfx 1-4 (0-127)
+ // 8 - len of filename, n
+ // 9 - 9+n - filename
+ for (int ch=0; ch<SS_NR_OF_CHANNELS; ch++) {
+ buffer[i] = (byte) channels[ch].volume_ctrlval;
+ buffer[i+1] = (byte) channels[ch].pan;
+ buffer[i+2] = (byte) channels[ch].noteoff_ignore;
+ buffer[i+3] = (byte) channels[ch].channel_on;
+ buffer[i+4] = (byte) round(channels[ch].sendfxlevel[0] * 127.0);
+ buffer[i+5] = (byte) round(channels[ch].sendfxlevel[1] * 127.0);
+ buffer[i+6] = (byte) round(channels[ch].sendfxlevel[2] * 127.0);
+ buffer[i+7] = (byte) round(channels[ch].sendfxlevel[3] * 127.0);
+
+ if (SS_DEBUG_INIT) {
+ printf("Channel %d:\n", ch);
+ printf("buffer[%d] - channels[ch].volume_ctrlval = \t%d\n", i, channels[ch].volume_ctrlval);
+ printf("buffer[%d] - channels[ch].pan = \t\t%d\n", i+1, channels[ch].pan);
+ printf("buffer[%d] - channels[ch].noteoff_ignore = \t%d\n", i+2, channels[ch].noteoff_ignore );
+ printf("buffer[%d] - channels[ch].channel_on = \t%d\n", i+3, channels[ch].channel_on);
+ for (int j= i+4; j < i+8; j++) {
+ printf("buffer[%d] - channels[ch].sendfxlevel[%d]= \t%d\n", j, j-i-4, (int)round(channels[ch].sendfxlevel[j-i-4] * 127.0));
+ }
+ }
+ if (channels[ch].sample) {
+ int filenamelen = strlen(channels[ch].sample->filename.c_str()) + 1;
+ buffer[i+8] = (byte) filenamelen;
+ memcpy((buffer+(i+9)), channels[ch].sample->filename.c_str(), filenamelen);
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d] - filenamelen: %d\n", i+8, filenamelen);
+ printf("buffer[%d] - buffer[%d] - filename: ", (i+9), (i+9) + filenamelen - 1);
+ for (int j = i+9; j< i+9+filenamelen; j++) {
+ printf("%c",buffer[j]);
+ }
+ printf("\n");
+ }
+ i+= (SS_NR_OF_CHANNEL_CONTROLLERS + 1 + filenamelen);
+ }
+ else {
+ buffer[i+8] = SS_NO_SAMPLE;
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: SS_NO_SAMPLE: - %d\n", i+8, SS_NO_SAMPLE);
+ }
+ i+= (SS_NR_OF_CHANNEL_CONTROLLERS + 1);
+ }
+ }
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: Master vol: - %d\n", i, master_vol_ctrlval);
+ }
+ buffer[i] = master_vol_ctrlval;
+ *(data) = buffer; *n = len;
+ i++;
+
+ //Send effects:
+ buffer[i] = SS_SYSEX_INIT_DATA_VERSION; //Just for check
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: Control value, SS_SYSEX_INIT_DATA_VERSION\n", i);
+ }
+
+ i++;
+ for (int j=0; j<SS_NR_OF_SENDEFFECTS; j++) {
+ if (sendEffects[j].plugin) {
+ int labelnamelen = sendEffects[j].plugin->label().size() + 1;
+ buffer[i] = labelnamelen;
+ memcpy((buffer+i+1), sendEffects[j].plugin->label().toLatin1().data(), labelnamelen);
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d] - labelnamelen: %d\n", i, labelnamelen);
+ printf("buffer[%d] - buffer[%d] - filename: ", (i+1), (i+1) + labelnamelen - 1);
+ for (int k = i+1; k < i+1+labelnamelen; k++) {
+ printf("%c",buffer[k]);
+ }
+ printf("\n");
+ }
+
+ i+=(labelnamelen + 1);
+
+ int namelen = sendEffects[j].plugin->lib().size() + 1;
+ buffer[i] = namelen;
+ memcpy((buffer+i+1), sendEffects[j].plugin->lib().toLatin1().data(), namelen);
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d] - libnamelen : %d\n", i, namelen);
+ printf("buffer[%d] - buffer[%d] - filename: ", (i+1), (i+1) + namelen - 1);
+ for (int k = i+1; k < i+1+namelen; k++) {
+ printf("%c",buffer[k]);
+ }
+ printf("\n");
+ }
+
+ i+=(namelen + 1);
+
+ buffer[i]=sendEffects[j].nrofparameters;
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: sendEffects[%d].nrofparameters=%d\n", i, j, buffer[i]);
+ }
+ i++;
+
+ buffer[i]=sendEffects[j].retgain_ctrlval;
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: sendEffects[%d].retgain_ctrlval=%d\n", i, j, buffer[i]);
+ }
+ i++;
+
+ for (int k=0; k<sendEffects[j].nrofparameters; k++) {
+ //TODO: Convert to 127-scale
+ buffer[i] = sendEffects[j].plugin->getGuiControlValue(k);
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: sendEffects[%d].parameterval[%d]=%d\n", i, j, k, buffer[i]);
+ }
+ i++;
+ }
+ }
+ // No plugin loaded:
+ else {
+ buffer[i] = SS_NO_PLUGIN;
+ if (SS_DEBUG_INIT) {
+ printf("buffer[%d]: SS_NO_PLUGIN\n", i);
+ }
+ i++;
+ }
+ }
+
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::parseInitData()
+ */
+void SimpleSynth::parseInitData(const unsigned char* data)
+ {
+ SS_TRACE_IN
+ //int len = strlen((const char*)data);
+ if (SS_DEBUG_INIT) {
+ printf("buffer[1], SS_SYSEX_INIT_DATA_VERSION=%d\n", *(data+1));
+ }
+ const byte* ptr = data+2;
+ for (int ch=0; ch<SS_NR_OF_CHANNELS; ch++) {
+ channels[ch].volume_ctrlval = (byte) *(ptr);
+
+ if (SS_DEBUG_INIT) {
+ printf("Channel %d:\n", ch);
+ printf("buffer[%ld] - channels[ch].volume_ctrlval = \t%d\n", ptr-data, *ptr);
+ printf("buffer[%ld] - channels[ch].pan = \t\t%d\n", ptr-data+1, *(ptr+1));
+ printf("buffer[%ld] - channels[ch].noteoff_ignore = \t%d\n", ptr-data+2, *(ptr+2));
+ printf("buffer[%ld] - channels[ch].channel_on = \t%d\n", ptr-data+3, *(ptr+3));
+ }
+ updateVolume(ch, *(ptr));
+ guiUpdateVolume(ch, *(ptr));
+
+ channels[ch].pan = *(ptr+1);
+ updateBalance(ch, *(ptr+1));
+ guiUpdateBalance(ch, *(ptr+1));
+
+ channels[ch].noteoff_ignore = *(ptr+2);
+ guiUpdateNoff(ch, *(ptr+2));
+
+ channels[ch].channel_on = *(ptr+3);
+ guiUpdateChoff(ch, *(ptr+3));
+
+ ptr+=4;
+
+ for (int i=0; i<4; i++) {
+ channels[ch].sendfxlevel[i] = (float) (*(ptr)/127.0);
+ guiUpdateSendFxLevel(ch, i, *(ptr));
+ ptr++;
+ }
+
+ bool hasSample = *(ptr);
+ ptr++;
+
+ channels[ch].sample = 0;
+ channels[ch].playoffset = 0;
+ SWITCH_CHAN_STATE(ch, SS_CHANNEL_INACTIVE);
+ if (SS_DEBUG_INIT) {
+ printf("parseInitData: channel %d, volume: %f pan: %d bfL %f bfR %f chON %d s1: %f s2: %f s3: %f s4: %f\n",
+ ch,
+ channels[ch].volume,
+ channels[ch].pan,
+ channels[ch].balanceFactorL,
+ channels[ch].balanceFactorR,
+ channels[ch].channel_on,
+ channels[ch].sendfxlevel[0],
+ channels[ch].sendfxlevel[1],
+ channels[ch].sendfxlevel[2],
+ channels[ch].sendfxlevel[3]
+ );
+ }
+ if (hasSample) {
+ std::string filenametmp = (const char*) ptr;
+ ptr+= strlen(filenametmp.c_str()) + 1;
+ //printf("We should load %s\n", filenametmp.c_str());
+ loadSample(ch, filenametmp.c_str());
+ }
+ else {
+ //Clear sample
+ clearSample(ch);
+ guiNotifySampleCleared(ch);
+ }
+ }
+ //Master vol:
+ master_vol_ctrlval = *(ptr);
+ master_vol = (double) master_vol_ctrlval / SS_MASTER_VOLUME_QUOT;
+ guiUpdateMasterVol(master_vol_ctrlval);
+ if (SS_DEBUG_INIT) {
+ printf("Master vol: %d\n", master_vol_ctrlval);
+ }
+ ptr++;
+
+ // Effects:
+ if (*(ptr) != SS_SYSEX_INIT_DATA_VERSION) {
+ fprintf(stderr, "Error loading init data - control byte not found. Skipping...\n");
+ SS_TRACE_OUT
+ return;
+ }
+ ptr++;
+
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ if (SS_DEBUG_INIT)
+ printf("buffer[%ld] - sendeffect[%d], labelnamelen=%d\n", ptr-data, i, *ptr);
+ int labelnamelen = *(ptr);
+
+ if (labelnamelen != SS_NO_PLUGIN) {
+ ptr++;
+ std::string labelnametmp = (const char*) ptr;
+ ptr+= labelnamelen;
+
+ //int libnamelen = *(ptr);
+ ptr++;
+ std::string libnametmp = (const char*) ptr;
+ ptr+= strlen(libnametmp.c_str()) + 1;
+
+
+ initSendEffect(i, libnametmp.c_str(), labelnametmp.c_str());
+ //initSendEffect(0, "cmt", "freeverb3");
+
+ byte params = *(ptr);
+ byte retgain = *(ptr+1);
+ ptr+=2;
+
+ sendEffects[i].nrofparameters = params;
+
+ sendEffects[i].retgain_ctrlval = retgain;
+ sendEffects[i].retgain = retgain;
+ sendEffects[i].retgain = (double) retgain/ 75.0;
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_PLUGIN_RETURNLEVEL_CONTROLLER(i), retgain);
+ gui->writeEvent(ev);
+
+ for (int j=0; j<params; j++) {
+ if (SS_DEBUG_INIT)
+ printf("buffer[%ld] - sendeffect[%d], parameter[%d]=%d\n", ptr-data, i, j, *ptr);
+ setFxParameter(i, j, sendEffects[i].plugin->convertGuiControlValue(j, *(ptr)));
+ ptr++;
+ }
+ }
+ else {
+ if (sendEffects[i].plugin)
+ cleanupPlugin(i);
+ ptr++;
+ }
+ }
+
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SimpleSynth::loadSample(int chno, const char* filename)
+ */
+bool SimpleSynth::loadSample(int chno, const char* filename)
+ {
+ SS_TRACE_IN
+ SS_Channel* ch = &channels[chno];
+
+ // Thread stuff:
+ SS_SampleLoader* loader = new SS_SampleLoader;
+ loader->channel = ch;
+ loader->filename = std::string(filename);
+ loader->ch_no = chno;
+ if (SS_DEBUG) {
+ printf("Loader filename is: %s\n", filename);
+ }
+ pthread_t sampleThread;
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+ pthread_attr_setdetachstate(attributes, PTHREAD_CREATE_DETACHED);
+ if (pthread_create(&sampleThread, attributes, ::loadSampleThread, (void*) loader)) {
+ perror("creating thread failed:");
+ pthread_attr_destroy(attributes);
+ delete loader;
+ return false;
+ }
+
+ pthread_attr_destroy(attributes);
+ SS_TRACE_OUT
+ return true;
+ }
+
+/*!
+ \fn loadSampleThread(void* p)
+ \brief Since process needs to respond withing a certain time, loading of samples need to be done in a separate thread
+ */
+static void* loadSampleThread(void* p)
+ {
+ SS_TRACE_IN
+ pthread_mutex_lock(&SS_LoaderMutex);
+
+ // Crit section:
+ SS_State prevState = synth_state;
+ SWITCH_SYNTH_STATE(SS_LOADING_SAMPLE);
+ SS_SampleLoader* loader = (SS_SampleLoader*) p;
+ SS_Channel* ch = loader->channel;
+ int ch_no = loader->ch_no;
+
+ if (ch->sample) {
+ delete[] ch->sample->data;
+ delete ch->sample;
+ }
+ ch->sample = new SS_Sample;
+ SS_Sample* smp = ch->sample;
+
+ SNDFILE* sf;
+ const char* filename = loader->filename.c_str();
+ SF_INFO sfi;
+
+ if (SS_DEBUG)
+ printf("loadSampleThread: filename = %s\n", filename);
+
+ sf = sf_open(filename, SFM_READ, &sfi);
+ if (sf == 0) {
+ fprintf(stderr,"Error opening file: %s\n", filename);
+ SWITCH_SYNTH_STATE(prevState);
+ simplesynth_ptr->guiSendSampleLoaded(false, loader->ch_no, filename);
+ delete ch->sample; ch->sample = 0;
+ delete loader;
+ pthread_mutex_unlock(&SS_LoaderMutex);
+ SS_TRACE_OUT
+ pthread_exit(0);
+ }
+
+ //Print some info:
+ if (SS_DEBUG) {
+ printf("Sample info:\n");
+ printf("Frames: \t%ld\n", (long) sfi.frames);
+ printf("Channels: \t%d\n", sfi.channels);
+ printf("Samplerate: \t%d\n", sfi.samplerate);
+ }
+
+ //
+ // Allocate and read the thingie
+ //
+
+ // If current samplerate is the same as MusE's:
+ if (SS_samplerate == sfi.samplerate) {
+ smp->data = new float[sfi.channels * sfi.frames];
+ sf_count_t n = sf_readf_float(sf, smp->data, sfi.frames);
+ smp->frames = sfi.frames;
+ smp->samples = (n * sfi.channels);
+ smp->channels = sfi.channels;
+ if (SS_DEBUG) {
+ printf("%ld frames read\n", (long) n);
+ }
+ }
+ else // otherwise, resample:
+ {
+ smp->channels = sfi.channels;
+ // Get new nr of frames:
+ double srcratio = (double) SS_samplerate/ (double) sfi.samplerate;
+ smp->frames = (long) floor(((double) sfi.frames * srcratio));
+ smp->frames = (sfi.channels == 1 ? smp->frames * 2 : smp->frames ); // Double nr of new frames if mono->stereo
+ smp->samples = smp->frames * smp->channels;
+
+ if (SS_DEBUG) {
+ printf("Resampling from %ld frames to %ld frames - srcration: %lf\n", sfi.frames, smp->frames, srcratio);
+ printf("Nr of new samples: %ld\n", smp->samples);
+ }
+
+ // Read to temporary:
+ float temp[sfi.frames * sfi.channels];
+ int frames_read = sf_readf_float(sf, temp, sfi.frames);
+ if (frames_read != sfi.frames) {
+ fprintf(stderr,"Error reading sample %s\n", filename);
+ simplesynth_ptr->guiSendSampleLoaded(false, loader->ch_no, filename);
+ sf_close(sf);
+ SWITCH_SYNTH_STATE(prevState);
+ delete ch->sample; ch->sample = 0;
+ delete loader;
+ pthread_mutex_unlock(&SS_LoaderMutex);
+ pthread_exit(0);
+ SS_TRACE_OUT
+ }
+
+ // Allocate mem for the new one
+ smp->data = new float[smp->frames * smp->channels];
+ memset(smp->data, 0, sizeof(float)* smp->frames * smp->channels);
+
+ // libsamplerate & co (secret rabbits in the code!)
+ SRC_DATA srcdata;
+ srcdata.data_in = temp;
+ srcdata.data_out = smp->data;
+ srcdata.input_frames = sfi.frames;
+ srcdata.output_frames = smp->frames;
+ srcdata.src_ratio = (double) SS_samplerate / (double) sfi.samplerate;
+
+ if (SS_DEBUG) {
+ printf("Converting sample....\n");
+ }
+
+ if (src_simple(&srcdata, SRC_SINC_BEST_QUALITY, sfi.channels)) {
+ SS_ERROR("Error when resampling, ignoring current sample");
+ //TODO: deallocate and stuff
+ }
+ else if (SS_DEBUG) {
+ printf("Sample converted. %ld input frames used, %ld output frames generated\n",
+ srcdata.input_frames_used,
+ srcdata.output_frames_gen);
+ }
+ }
+ //Just close the dam thing
+ sf_close(sf);
+ SWITCH_SYNTH_STATE(prevState);
+ ch->sample->filename = loader->filename;
+ simplesynth_ptr->guiSendSampleLoaded(true, ch_no, filename);
+ delete loader;
+ pthread_mutex_unlock(&SS_LoaderMutex);
+ SS_TRACE_OUT
+ pthread_exit(0);
+ }
+
+
+static Mess* instantiate(int sr, const char* name)
+ {
+ printf("SimpleSynth sampleRate %d\n", sr);
+ SimpleSynth* synth = new SimpleSynth(sr);
+ if (!synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+
+
+/*!
+ \fn SimpleSynth::updateBalance(int pan)
+ */
+void SimpleSynth::updateBalance(int ch, int val)
+ {
+ SS_TRACE_IN
+ channels[ch].pan = val;
+
+ // Balance:
+ channels[ch].balanceFactorL = 1.0;
+ channels[ch].balanceFactorR = 1.0;
+ double offset = 0;
+ int dev = val - 64;
+ offset = (double) dev / 64.0;
+ if (offset < 0) {
+ channels[ch].balanceFactorR = 1.0 + offset;
+ }
+ else {
+ channels[ch].balanceFactorL = 1.0 - offset;
+ }
+
+ if (SS_DEBUG_MIDI)
+ printf("balanceFactorL %f balanceFactorR %f\n", channels[ch].balanceFactorL, channels[ch].balanceFactorR);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::updateVolume(int invol_ctrlval)
+ */
+void SimpleSynth::updateVolume(int ch, int invol_ctrlval)
+ {
+ SS_TRACE_IN
+ channels[ch].volume = (double)invol_ctrlval/ (double) SS_CHANNEL_VOLUME_QUOT;
+ channels[ch].volume_ctrlval = invol_ctrlval;
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiUpdateBalance(int ch, int bal)
+ */
+void SimpleSynth::guiUpdateBalance(int ch, int bal)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, ch, ME_CONTROLLER, SS_CHANNEL_PAN_CONTROLLER(ch), bal);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiUpdateVolume(int ch, int val)
+ */
+void SimpleSynth::guiUpdateVolume(int ch, int val)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_CHANNEL_VOLUME_CONTROLLER(ch), val);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiUpdateNoff(bool b)
+ */
+void SimpleSynth::guiUpdateNoff(int ch, bool b)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_CHANNEL_NOFF_CONTROLLER(ch), b);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiUpdateChoff(int ch, bool b)
+ */
+void SimpleSynth::guiUpdateChoff(int ch, bool b)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_CHANNEL_ONOFF_CONTROLLER(ch), b);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiUpdateMasterVol(int val)
+ */
+void SimpleSynth::guiUpdateMasterVol(int val)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_MASTER_CTRL_VOLUME, val);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SimpleSynth::guiUpdateSendFxLevel(int fxid, int level)
+ */
+void SimpleSynth::guiUpdateSendFxLevel(int channel, int fxid, int level)
+ {
+ SS_TRACE_IN
+ MidiEvent ev(0, 0, ME_CONTROLLER, SS_CHANNEL_SENDFX_CONTROLLER(channel, fxid), level);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiSendSampleLoaded(int ch, const char* filename)
+ */
+void SimpleSynth::guiSendSampleLoaded(bool success, int ch, const char* filename)
+ {
+ SS_TRACE_IN
+ int len = strlen(filename) + 3; //2 + filenamelen + 1;
+ byte out[len];
+
+ if (success) {
+ out[0] = SS_SYSEX_LOAD_SAMPLE_OK;
+ }
+ else {
+ out[0] = SS_SYSEX_LOAD_SAMPLE_ERROR;
+ }
+ out[1] = ch;
+ memcpy(out+2, filename, strlen(filename)+1);
+ MidiEvent ev(0, ME_SYSEX, out, len);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiSendError(const char* errorstring)
+ */
+void SimpleSynth::guiSendError(const char* errorstring)
+ {
+ SS_TRACE_IN
+ byte out[strlen(errorstring)+2];
+ out[0] = SS_SYSEX_ERRORMSG;
+ memcpy(out+1, errorstring, strlen(errorstring) +1);
+ SS_TRACE_OUT
+ }
+
+extern "C"
+ {
+ static MESS descriptor = {
+ "SimpleSynth",
+ "Mathias Lundgren (lunar_shuttle@users.sf.net)",
+ "0.1", //Version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
+
+/*!
+ \fn SimpleSynth::initSendEffect(int sendeffectid, QString lib, QString name)
+ */
+bool SimpleSynth::initSendEffect(int id, QString lib, QString name)
+ {
+ SS_TRACE_IN
+ bool success = false;
+ if (sendEffects[id].plugin) {
+ //Cleanup if one was already there:
+ cleanupPlugin(id);
+ }
+ sendEffects[id].plugin = (LadspaPlugin*) plugins.find(lib, name);
+ LadspaPlugin* plugin = sendEffects[id].plugin;
+ if (plugin) { //We found one
+
+ sendEffects[id].inputs = plugin->inports();
+ sendEffects[id].outputs = plugin->outports();
+
+ if (plugin->instantiate()) {
+ SS_DBG2("Plugin instantiated", name.toLatin1().data());
+ SS_DBG_I("Parameters", plugin->parameter());
+ SS_DBG_I("No of inputs", plugin->inports());
+ SS_DBG_I("No of outputs",plugin->outports());
+ SS_DBG_I("Inplace-capable", plugin->inPlaceCapable());
+
+ // Connect inputs/outputs:
+ // If single output/input, only use first channel in sendFxLineOut/sendFxReturn
+ SS_DBG("Connecting ports...");
+ plugin->connectInport(0, sendFxLineOut[id][0]);
+ if (plugin->inports() == 2)
+ plugin->connectInport(1, sendFxLineOut[id][1]);
+ else if (plugin->inports() > 2) {
+ fprintf(stderr, "Plugin has more than 2 inputs, not supported\n");
+ }
+
+ plugin->connectOutport(0, sendFxReturn[id][0]);
+ if (plugin->outports() == 2)
+ plugin->connectOutport(1, sendFxReturn[id][1]);
+ else if (plugin->outports() > 2) {
+ fprintf(stderr, "Plugin has more than 2 outputs, not supported\n");
+ }
+ SS_DBG("Ports connected");
+ if (plugin->start()) {
+ sendEffects[id].state = SS_SENDFX_ON;
+ success = true;
+
+ int n = plugin->parameter();
+ sendEffects[id].nrofparameters = n;
+
+ // This is not nice, but freeverb doesn't want to play until some values are set:
+ if (name == "freeverb3") {
+ setFxParameter(id, 2, 0.5);
+ setFxParameter(id, 3, 0.5);
+ setFxParameter(id, 4, 0.5);
+ guiUpdateFxParameter(id, 2, 0.5);
+ guiUpdateFxParameter(id, 3, 0.5);
+ guiUpdateFxParameter(id, 4, 0.5);
+ }
+ }
+ //TODO: cleanup if failed
+ }
+ }
+ //Notify gui
+ int len = 3;
+ byte out[len];
+ out[0] = SS_SYSEX_LOAD_SENDEFFECT_OK;
+ out[1] = id;
+ int j=0;
+ for (iPlugin i = plugins.begin(); i!=plugins.end(); i++, j++) {
+ if ((*i)->lib() == plugin->lib() && (*i)->label() == plugin->label()) {
+ out[2] = j;
+ MidiEvent ev(0, ME_SYSEX, out, len);
+ gui->writeEvent(ev);
+ }
+ }
+
+ if (!success) {
+ QString errorString = "Error loading plugin \"" + plugin->label() + "\"";
+ guiSendError(errorString.toLatin1().data());
+ }
+ return success;
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::setSendFxLevel(int channel, int effectid, double val)
+ */
+void SimpleSynth::setSendFxLevel(int channel, int effectid, double val)
+ {
+ SS_TRACE_IN
+ channels[channel].sendfxlevel[effectid] = val;
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::cleanupPlugin(int id)
+ */
+void SimpleSynth::cleanupPlugin(int id)
+ {
+ SS_TRACE_IN
+ LadspaPlugin* plugin = sendEffects[id].plugin;
+ plugin->stop();
+ SS_DBG2("Stopped fx", plugin->label().toLatin1().data());
+ sendEffects[id].nrofparameters = 0;
+ sendEffects[id].state = SS_SENDFX_OFF;
+ sendEffects[id].plugin = 0;
+
+ byte d[2];
+ d[0] = SS_SYSEX_CLEAR_SENDEFFECT_OK;
+ d[1] = id;
+ MidiEvent ev(0, ME_SYSEX, d, 2);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::setFxParameter(int fxid, int param, float val)
+ \brief Set fx-parameter on plugin and notify gui
+ */
+void SimpleSynth::setFxParameter(int fxid, int param, float val)
+ {
+ SS_TRACE_IN
+ LadspaPlugin* plugin = sendEffects[fxid].plugin;
+ if (SS_DEBUG_LADSPA) {
+ printf("Setting fx parameter: %f\n", val);
+ }
+ plugin->setParam(param, val);
+ //sendEffects[fxid].parameter[param] = val;
+ //guiUpdateFxParameter(fxid, param, val);
+ SS_TRACE_OUT
+ }
+
+
+
+/*!
+ \fn SimpleSynth::guiUpdateFxParameter(int fxid, int param, float val)
+ \brief Notify gui of changed fx-parameter
+ */
+void SimpleSynth::guiUpdateFxParameter(int fxid, int param, float val)
+ {
+ SS_TRACE_IN
+ LadspaPlugin* plugin = sendEffects[fxid].plugin;
+ float min, max;
+ plugin->range(param, &min, &max);
+ //offset:
+ val-= min;
+
+ int intval = plugin->getGuiControlValue(param);
+ /*if (plugin->isLog(param)) {
+ intval = SS_map_logdomain2pluginparam(logf(val/(max - min) + min));
+ }
+ else if (plugin->isBool(param)) {
+ intval = (int) val;
+ }
+ else {
+ float scale = SS_PLUGIN_PARAM_MAX / (max - min);
+ intval = (int) ((val - min) * scale);
+ }*/
+ if (SS_DEBUG_MIDI) {
+ printf("Updating gui, fx parameter. fxid=%d, param=%d val=%d\n", fxid, param, intval);
+ }
+
+ byte d[4];
+ d[0] = SS_SYSEX_SET_PLUGIN_PARAMETER_OK;
+ d[1] = fxid;
+ d[2] = param;
+ d[3] = intval;
+ MidiEvent ev(0, ME_SYSEX, d, 4);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::clearSample(int ch)
+ \brief Clears a sample (actually clears a channel)
+ */
+void SimpleSynth::clearSample(int ch)
+ {
+ SS_TRACE_IN
+ if (channels[ch].sample) {
+ if (SS_DEBUG)
+ printf("Clearing sample on channel %d\n", ch);
+ SS_State prevstate = synth_state;
+ SWITCH_CHAN_STATE(ch, SS_CHANNEL_INACTIVE);
+ SWITCH_SYNTH_STATE(SS_CLEARING_SAMPLE);
+ if (channels[ch].sample->data) {
+ delete[] channels[ch].sample->data;
+ channels[ch].sample->data = 0;
+ }
+ if (channels[ch].sample) {
+ delete channels[ch].sample;
+ channels[ch].sample = 0;
+ }
+ SWITCH_SYNTH_STATE(prevstate);
+ guiNotifySampleCleared(ch);
+ if (SS_DEBUG) {
+ printf("Clear sample - sample cleared on channel %d\n", ch);
+ }
+ }
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynth::guiNotifySampleCleared(int ch)
+ */
+void SimpleSynth::guiNotifySampleCleared(int ch)
+ {
+ SS_TRACE_IN
+ byte d[2];
+ d[0] = SS_SYSEX_CLEAR_SAMPLE_OK;
+ d[1] = (byte) ch;
+ MidiEvent ev(0, ME_SYSEX, d, 2);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
diff --git a/muse_qt4_evolution/synti/simpledrums/simpledrums.h b/muse_qt4_evolution/synti/simpledrums/simpledrums.h
new file mode 100644
index 00000000..d52f90af
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/simpledrums.h
@@ -0,0 +1,173 @@
+//
+// C++ Interface: simplesynth
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef SIMPLESYNTH_H
+#define SIMPLESYNTH_H
+
+#include <sndfile.h>
+#include "libsynti/mess.h"
+#include "common.h"
+#include "libsynti/midievent.h"
+#include "simpledrumsgui.h"
+#include "ssplugin.h"
+
+#define SS_NO_SAMPLE 0
+#define SS_NO_PLUGIN 0
+
+#define SS_PROCESS_BUFFER_SIZE 4096 //TODO: Add initialization method for nr of frames in each process from MusE - if nr of frames > than this, this will fail
+#define SS_SENDFX_BUFFER_SIZE SS_PROCESS_BUFFER_SIZE
+
+enum SS_ChannelState
+ {
+ SS_CHANNEL_INACTIVE=0,
+ SS_SAMPLE_PLAYING,
+ };
+
+enum SS_State
+ {
+ SS_INITIALIZING=0,
+ SS_LOADING_SAMPLE,
+ SS_CLEARING_SAMPLE,
+ SS_RUNNING,
+ };
+
+enum SS_SendFXState
+ {
+ SS_SENDFX_OFF=0,
+ SS_SENDFX_ON
+ };
+
+struct SS_SendFx
+ {
+ SS_SendFXState state;
+ LadspaPlugin* plugin;
+ int inputs;
+ int outputs;
+ int retgain_ctrlval;
+ double retgain;
+ int nrofparameters;
+ };
+
+struct SS_Sample
+ {
+ float* data;
+ int samplerate;
+ int bits;
+ std::string filename;
+ long samples;
+ long frames;
+ int channels;
+ SF_INFO sfinfo;
+ };
+
+struct SS_Channel
+ {
+ SS_ChannelState state;
+ const char* name;
+ SS_Sample* sample;
+ int playoffset;
+ bool noteoff_ignore;
+
+ double volume;
+ int volume_ctrlval;
+
+ double cur_velo;
+ double gain_factor;
+
+ int pan;
+ double balanceFactorL;
+ double balanceFactorR;
+
+ bool channel_on;
+
+ //Send fx:
+ double sendfxlevel[SS_NR_OF_SENDEFFECTS];
+ };
+
+struct SS_Controller
+ {
+ std::string name;
+ int num;
+ int min, max;
+ };
+
+struct SS_SampleLoader
+ {
+ SS_Channel* channel;
+ std::string filename;
+ int ch_no;
+ };
+
+class SimpleSynth : public Mess
+ {
+ public:
+ SimpleSynth(int);
+
+ virtual ~SimpleSynth();
+
+ virtual bool guiVisible() const;
+ virtual bool hasGui() const;
+ virtual bool playNote(int arg1, int arg2, int arg3);
+ virtual bool processEvent(const MidiEvent& arg1);
+ virtual bool setController(int arg1, int arg2, int arg3);
+ virtual bool sysex(int arg1, const unsigned char* arg2);
+ virtual const char* getPatchName(int arg1, int arg2, int arg3) const;
+ virtual const MidiPatch* getPatchInfo(int arg1, const MidiPatch* arg2) const;
+ virtual int getControllerInfo(int arg1, const char** arg2, int* arg3, int* arg4, int* arg5);
+ virtual void process(float** data, int offset, int len);
+ virtual void showGui(bool arg1);
+ virtual void getInitData(int*, const unsigned char**);
+ bool init(const char* name);
+ void guiSendSampleLoaded(bool success, int ch, const char* filename);
+ void guiSendError(const char* errorstring);
+
+ static const char* synth_state_descr[];
+ static const char* channel_state_descr[];
+
+private:
+ SimpleSynthGui* gui;
+
+ SS_Channel channels[SS_NR_OF_CHANNELS];
+ SS_Controller controllers[SS_NR_OF_CONTROLLERS];
+ bool setController(int channel, int id, int val, bool fromGui);
+ bool loadSample(int ch_no, const char* filename);
+ void parseInitData(const unsigned char* data);
+ void updateVolume(int ch, int in_volume_ctrlval);
+ void updateBalance(int ch, int pan);
+ void guiNotifySampleCleared(int ch);
+ void guiUpdateBalance(int ch, int bal);
+ void guiUpdateVolume(int ch, int val);
+ void guiUpdateNoff(int ch, bool b);
+ void guiUpdateChoff(int ch, bool b);
+ void guiUpdateMasterVol(int val);
+ void guiUpdateFxParameter(int fxid, int param, float val);
+ void guiUpdateSendFxLevel(int channel, int fxid, int level);
+ bool initSendEffect(int sendeffectid, QString lib, QString name);
+ void setSendFxLevel(int channel, int effectid, double val);
+ void cleanupPlugin(int id);
+ void setFxParameter(int fxid, int param, float val);
+ void clearSample(int ch);
+ double master_vol;
+ int master_vol_ctrlval;
+
+ //Send effects:
+ SS_SendFx sendEffects[SS_NR_OF_SENDEFFECTS];
+ float* sendFxLineOut[SS_NR_OF_SENDEFFECTS][2]; //stereo output (fed into LADSPA inputs),sent from the individual channels -> LADSPA fx
+ float* sendFxReturn[SS_NR_OF_SENDEFFECTS][2]; //stereo inputs, from LADSPA plugins, sent from LADSPA -> SS and added to the mix
+ double* processBuffer[2];
+ };
+
+static void* loadSampleThread(void*);
+static pthread_mutex_t SS_LoaderMutex;
+static SS_State synth_state;
+static SimpleSynth* simplesynth_ptr;
+
+#endif
diff --git a/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.cpp b/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.cpp
new file mode 100644
index 00000000..bc3e3e92
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.cpp
@@ -0,0 +1,881 @@
+//
+// C++ Implementation: testogui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include "simpledrumsgui.h"
+#include "libsynti/midievent.h"
+#include "muse/midi.h"
+#include "ssplugingui.h"
+
+#define SS_VOLUME_MIN_VALUE 0
+#define SS_VOLUME_MAX_VALUE 127
+#define SS_VOLUME_DEFAULT_VALUE 100
+#define SS_MASTERVOL_MAX_VALUE 127
+#define SS_MASTERVOL_DEFAULT_VALUE 100.0/127.0
+#define SS_SENDFX_MIN_VALUE 0
+#define SS_SENDFX_MAX_VALUE 127
+
+//Gui constants:
+#define SS_BTNGRP_WIDTH 50
+#define SS_BTNGRP_HEIGHT 80
+#define SS_ONOFF_WIDTH 16
+#define SS_ONOFF_HEIGHT 21
+#define SS_VOLSLDR_WIDTH (SS_BTNGRP_WIDTH - 8)
+#define SS_VOLSLDR_LENGTH 120
+#define SS_PANSLDR_WIDTH (SS_BTNGRP_WIDTH - 8)
+#define SS_PANSLDR_LENGTH 20
+#define SS_PANSLDR_DEFAULT_VALUE 63
+#define SS_NONOFF_LABEL_WIDTH 30
+#define SS_NONOFF_LABEL_HEIGHT 16
+#define SS_NONOFF_WIDTH SS_ONOFF_WIDTH
+#define SS_NONOFF_HEIGHT SS_ONOFF_HEIGHT
+#define SS_SENDFX_WIDTH ((SS_BTNGRP_WIDTH/2) - 4)
+//#define SS_SENDFX_WIDTH 28
+#define SS_SENDFX_HEIGHT SS_SENDFX_WIDTH
+#define SS_MASTERSLDR_WIDTH (SS_BTNGRP_WIDTH - 8)
+#define SS_MASTERSLDR_HEIGHT (SS_BTNGRP_HEIGHT - 4)
+
+
+// Sample groupbox
+
+#define SS_SAMPLENAME_LABEL_WIDTH 30
+#define SS_SAMPLENAME_LABEL_HEIGHT 21
+#define SS_SAMPLENAME_LABEL_XOFF 4
+
+#define SS_SAMPLE_LOAD_WIDTH 15
+#define SS_SAMPLE_LOAD_HEIGHT 19
+
+#define SS_SAMPLE_CLEAR_WIDTH SS_SAMPLE_LOAD_WIDTH
+#define SS_SAMPLE_CLEAR_HEIGHT SS_SAMPLE_LOAD_HEIGHT
+
+#define SS_SAMPLENAME_LINEEDIT_WIDTH 90
+#define SS_SAMPLENAME_LINEEDIT_HEIGHT 21
+
+#define SS_SAMPLE_INFO_LINE_HEIGHT 22
+#define SS_SAMPLE_INFO_LINE_WIDTH (SS_SAMPLENAME_LINEEDIT_XOFF + SS_SAMPLENAME_LINEEDIT_WIDTH)
+
+#define SS_GUI_WINDOW_WIDTH ((SS_NR_OF_CHANNELS +1) * SS_BTNGRP_XOFF)
+#define SS_MAIN_GROUPBOX_HEIGHT 200
+#define SS_GUI_WINDOW_HEIGHT (SS_BTNGRP_HEIGHT + SS_MAIN_GROUPBOX_HEIGHT)
+#define SS_MAIN_GROUPBOX_WIDTH SS_GUI_WINDOW_WIDTH
+
+SimpleSynthGui* simplesynthgui_ptr;
+
+
+/*!
+ \fn QChannelSlider::QChannelSlider(Qt::Orientation orientation, int ch, QWidget* parent, const char* name)
+ */
+QChannelSlider::QChannelSlider(Qt::Orientation orientation, int ch, QWidget* parent)
+ : QSlider(orientation, parent)
+ {
+ channel = ch;
+ }
+
+
+/*!
+ \fn QChannelSlider::getChannel()
+ */
+int QChannelSlider::getChannel()
+ {
+ return channel;
+ }
+
+
+/*!
+ \fn QChannelSlider::setChannel(int ch)
+ */
+void QChannelSlider::setChannel(int ch)
+ {
+ channel = ch;
+ }
+
+/*!
+ \fn QChannelSlider::setValue(int val)
+ */
+void QChannelSlider::setValue(int val)
+ {
+ val = (val > 127 ? 127 : val);
+ val = (val < 0 ? 0 : val);
+ QSlider::setValue(val);
+ emit valueChanged(channel, val);
+ }
+
+/*!
+ \fn QInvertedChannelSlider::setValue(int val)
+ */
+void QInvertedChannelSlider::setValue(int val)
+ {
+ int inverted = this->maximum() - val;
+ inverted = (inverted > 127 ? 127 : inverted);
+ inverted = (inverted < 0 ? 0 : inverted);
+ QSlider::setValue(val);
+ emit valueChanged(channel, inverted);
+ }
+
+/*!
+ \fn QInvertedSlider::setValue(int val)
+ */
+void QInvertedSlider::setValue(int val)
+ {
+ int inverted = this->maximum() - val;
+ inverted = (inverted > 127 ? 127 : inverted);
+ inverted = (inverted < 0 ? 0 : inverted);
+ emit invertedValueChanged(inverted);
+ QSlider::setValue(val);
+ }
+
+
+/*!
+ \fn QChannelCheckbox::QChannelCheckbox(QWidget* parent, int ch)
+ */
+QChannelCheckbox::QChannelCheckbox(QWidget* parent, int ch)
+ : QCheckBox(parent)
+ {
+ channel = ch;
+ connect(this, SIGNAL(clicked()), SLOT(isClicked()));
+ }
+
+
+/*!
+ \fn QChannelCheckbox::isClicked()
+ */
+void QChannelCheckbox::isClicked()
+ {
+ emit channelState(channel, this->isChecked());
+ }
+
+/*!
+ \fn QChannelButton::QChannelButton(QWidget* parent, const char* text, int ch, const char* name)
+ */
+QChannelButton::QChannelButton(QWidget* parent, const char* text, int ch)
+ : QPushButton(parent), channel (ch)
+ {
+ connect(this, SIGNAL(clicked()), SLOT(isClicked()));
+ setText(text);
+ }
+
+/*!
+ \fn QChannelButton::isClicked()
+ */
+void QChannelButton::isClicked()
+ {
+ emit channelState(channel, this->isChecked());
+ }
+
+/*!
+ \fn QChannelDial()
+ */
+QChannelDial::QChannelDial(QWidget* parent, int ch, int fxid)
+ : QDial(parent)
+ {
+ setTracking(true);
+ channel = ch;
+ sendfxid = fxid;
+ }
+
+/*!
+ \fn QChannelSlider::setValue(int val)
+ */
+void QChannelDial::setValue(int val)
+ {
+ QDial::setValue(val);
+ emit valueChanged(channel, sendfxid, val);
+ }
+
+/*!
+ \fn SimpleSynthGui::SimpleSynthGui()
+ */
+SimpleSynthGui::SimpleSynthGui()
+ {
+ SS_TRACE_IN
+ setupUi(this);
+ simplesynthgui_ptr = this;
+ pluginGui = new SS_PluginGui(this);
+ pluginGui->hide();
+
+ QVBoxLayout* mainLayout = new QVBoxLayout(this); //, 3);
+ QHBoxLayout* channelLayout = new QHBoxLayout;
+ mainLayout->addLayout(channelLayout);
+
+ //this->setFixedWidth(SS_GUI_WINDOW_WIDTH);
+ //this->setFixedHeight(SS_GUI_WINDOW_HEIGHT);
+ for (int i=0; i<SS_NR_OF_CHANNELS; i++) {
+ channelButtonGroups[i] = new QGroupBox(this);
+// channelButtonGroups[i]->setMinimumSize(SS_BTNGRP_WIDTH, SS_BTNGRP_HEIGHT);
+ channelButtonGroups[i]->setTitle(QString::number(i + 1));
+
+ QString name = QString("volumeSlider");
+ name.append(i + 1);
+
+ channelLayout->addWidget(channelButtonGroups[i]);
+
+ QVBoxLayout* inchnlLayout = new QVBoxLayout(channelButtonGroups[i]); //, 2, 0, "channelinternallayout");
+ inchnlLayout->setAlignment(Qt::AlignHCenter);
+
+ onOff[i] = new QChannelCheckbox(channelButtonGroups[i], i);
+// onOff[i]->setMinimumSize(SS_ONOFF_WIDTH, SS_ONOFF_HEIGHT);
+ onOff[i]->setToolTip("Channel " + QString::number(i + 1) + " on/off");
+ inchnlLayout->addWidget(onOff[i]);
+ connect(onOff[i], SIGNAL(channelState(int, bool)), SLOT(channelOnOff(int, bool)));
+
+ volumeSliders[i] = new QInvertedChannelSlider(Qt::Vertical, i, channelButtonGroups[i]);
+ volumeSliders[i]->setMinimum(SS_VOLUME_MIN_VALUE);
+ volumeSliders[i]->setMaximum(SS_VOLUME_MAX_VALUE);
+ volumeSliders[i]->setValue(SS_VOLUME_MAX_VALUE - SS_VOLUME_DEFAULT_VALUE);
+// volumeSliders[i]->setMinimumSize(SS_VOLSLDR_WIDTH, SS_VOLSLDR_LENGTH);
+ volumeSliders[i]->setToolTip("Volume, channel " + QString::number(i + 1));
+// setMinimumSize(SS_VOLSLDR_WIDTH, SS_VOLSLDR_LENGTH);
+ inchnlLayout->addWidget(volumeSliders[i]);
+ connect(volumeSliders[i], SIGNAL(valueChanged(int, int)), SLOT(volumeChanged(int, int)));
+
+ nOffLabel[i] = new QLabel(channelButtonGroups[i]);
+// nOffLabel[i]->setMinimumSize(SS_NONOFF_LABEL_WIDTH, SS_NONOFF_LABEL_HEIGHT);
+ nOffLabel[i]->setText("nOff");
+ inchnlLayout->addWidget(nOffLabel[i]);
+
+ nOffIgnore[i] = new QChannelCheckbox(channelButtonGroups[i], i);
+// nOffIgnore[i]->setMinimumSize(SS_NONOFF_WIDTH, SS_NONOFF_HEIGHT);
+ nOffIgnore[i]->setToolTip("Note off ignore, channel " + QString::number(i + 1));
+ inchnlLayout->addWidget(nOffIgnore[i]);
+ connect(nOffIgnore[i], SIGNAL(channelState(int, bool)),SLOT(channelNoteOffIgnore(int, bool)));
+
+ panSliders[i] = new QChannelSlider(Qt::Horizontal, i, channelButtonGroups[i]);
+ panSliders[i]->setRange(0, 127);
+ panSliders[i]->setValue(SS_PANSLDR_DEFAULT_VALUE);
+// panSliders[i]->setMinimumSize(SS_PANSLDR_WIDTH, SS_PANSLDR_LENGTH);
+ panSliders[i]->setToolTip("Pan, channel " + QString::number(i + 1));
+ inchnlLayout->addWidget(panSliders[i]);
+ connect(panSliders[i], SIGNAL(valueChanged(int, int)), SLOT(panChanged(int, int)));
+
+ QGridLayout* dialGrid = new QGridLayout;
+ inchnlLayout->addLayout(dialGrid);
+ sendFxDial[i][0] = new QChannelDial(channelButtonGroups[i], i, 0);
+ sendFxDial[i][0]->setRange(0, 127);
+ sendFxDial[i][0]->setMaximumSize(SS_SENDFX_WIDTH, SS_SENDFX_HEIGHT);
+ sendFxDial[i][0]->setToolTip("Fx 1 send amount");
+ //inchnlLayout->addWidget(sendFxDial[i][0]);
+ dialGrid->addWidget(sendFxDial[i][0], 0, 0, Qt::AlignCenter | Qt::AlignTop);
+
+ connect(sendFxDial[i][0], SIGNAL(valueChanged(int, int, int)), SLOT(sendFxChanged(int, int, int)));
+
+ sendFxDial[i][1] = new QChannelDial(channelButtonGroups[i], i, 1);
+ sendFxDial[i][1]->setRange(0, 127);
+ //inchnlLayout->add(sendFxDial[i][1]);
+ dialGrid->addWidget(sendFxDial[i][1], 0, 1, Qt::AlignCenter | Qt::AlignTop);
+ sendFxDial[i][1]->setMaximumSize(SS_SENDFX_WIDTH, SS_SENDFX_HEIGHT);
+ sendFxDial[i][1]->setToolTip("Fx 2 send amount");
+
+ connect(sendFxDial[i][1], SIGNAL(valueChanged(int, int, int)), SLOT(sendFxChanged(int, int, int)));
+
+ sendFxDial[i][2] = new QChannelDial(channelButtonGroups[i], i, 2);
+ sendFxDial[i][2]->setRange(0, 127);
+ sendFxDial[i][2]->setMaximumSize(SS_SENDFX_WIDTH, SS_SENDFX_HEIGHT);
+ //inchnlLayout->add(sendFxDial[i][2]);
+ dialGrid->addWidget(sendFxDial[i][2], 1, 0, Qt::AlignCenter | Qt::AlignTop);
+ sendFxDial[i][2]->setToolTip("Fx 3 send amount");
+ connect(sendFxDial[i][2], SIGNAL(valueChanged(int, int, int)), SLOT(sendFxChanged(int, int, int)));
+
+ sendFxDial[i][3] = new QChannelDial(channelButtonGroups[i], i, 3);
+ sendFxDial[i][3]->setRange(0, 127);
+ sendFxDial[i][3]->setMaximumSize(SS_SENDFX_WIDTH, SS_SENDFX_HEIGHT);
+ sendFxDial[i][3]->setToolTip("Fx 4 send amount");
+
+ dialGrid->addWidget(sendFxDial[i][3], 1, 1, Qt::AlignCenter | Qt::AlignTop);
+ connect(sendFxDial[i][3], SIGNAL(valueChanged(int, int, int)), SLOT(sendFxChanged(int, int, int)));
+ inchnlLayout->activate();
+ //channelLayout->activate();
+ }
+
+ //Master buttongroup:
+ masterButtonGroup = new QGroupBox(this);
+ channelLayout->addWidget(masterButtonGroup);
+ QVBoxLayout* mbgLayout = new QVBoxLayout(masterButtonGroup);
+ mbgLayout->setAlignment(Qt::AlignCenter);
+// masterButtonGroup->setMinimumSize(SS_BTNGRP_WIDTH, SS_BTNGRP_HEIGHT);
+ masterSlider = new QInvertedSlider(Qt::Vertical, masterButtonGroup);
+ masterSlider->setToolTip("Master volume");
+ mbgLayout->addWidget(masterSlider);
+ masterSlider->setRange(0, 127);
+ masterSlider->setValue(SS_VOLUME_MAX_VALUE - (int)(SS_MASTERVOL_DEFAULT_VALUE*SS_VOLUME_MAX_VALUE));
+// masterSlider->setMinimumSize(SS_MASTERSLDR_WIDTH, SS_MASTERSLDR_HEIGHT);
+ connect(masterSlider, SIGNAL(invertedValueChanged(int)), SLOT(masterVolChanged(int)));
+
+ //Main groupbox
+ mainGroupBox = new QGroupBox(this);
+ mainLayout->addWidget(mainGroupBox);
+
+ QGridLayout* mgbLayout = new QGridLayout(mainGroupBox); // , 8, 3, 1);
+
+ int i=0;
+
+ for (int c=0; c<2; c++) {
+ for (int r=0; r<SS_NR_OF_CHANNELS/2; r++) {
+ QHBoxLayout* strip = new QHBoxLayout;//(mgbLayout, 5);
+ mgbLayout->addLayout(strip, r, c);
+
+ QLabel* channelLabel = new QLabel(QString("Ch ") + QString::number(i + 1), mainGroupBox);
+ strip->addWidget(channelLabel);
+
+ sampleNameLineEdit[i] = new QLineEdit(mainGroupBox);
+ sampleNameLineEdit[i]->setReadOnly(true);
+ strip->addWidget(sampleNameLineEdit[i]);
+
+ loadSampleButton[i] = new QChannelButton(mainGroupBox, "L", i);
+// loadSampleButton[i]->setMinimumSize(SS_SAMPLE_LOAD_WIDTH, SS_SAMPLE_LOAD_HEIGHT);
+ loadSampleButton[i]->setToolTip("Load sample on channel " + QString::number(i + 1));
+ strip->addWidget(loadSampleButton[i]);
+ connect(loadSampleButton[i], SIGNAL(channelState(int, bool)), SLOT(loadSampleDialogue(int)));
+
+ clearSampleButton[i] = new QChannelButton(mainGroupBox, "C", i);
+// clearSampleButton[i]->setMinimumSize(SS_SAMPLE_CLEAR_WIDTH, SS_SAMPLE_CLEAR_HEIGHT);
+ clearSampleButton[i]->setToolTip("Clear sample on channel " + QString::number(i + 1));
+ strip->addWidget(clearSampleButton[i]);
+ connect(clearSampleButton[i], SIGNAL(channelState(int, bool)), SLOT(clearSample(int)));
+
+ i++;
+ }
+ }
+
+ // Right bottom panel:
+ QGroupBox* rbPanel= new QGroupBox(mainGroupBox);
+ mgbLayout->addWidget(rbPanel, 1, 3, 7, 1, Qt::AlignCenter);
+ QGridLayout* rbLayout = new QGridLayout(rbPanel); // 6, 1, 8, 5);
+
+ openPluginsButton = new QPushButton("&Send Effects");
+ openPluginsButton->setToolTip("Configure LADSPA send effects");
+ connect(openPluginsButton, SIGNAL(clicked()), SLOT(openPluginButtonClicked()));
+ rbLayout->addWidget(openPluginsButton, 2, 1, Qt::AlignCenter | Qt::AlignVCenter);
+ aboutButton = new QPushButton("About SimpleDrums");
+ connect(aboutButton, SIGNAL(clicked()), SLOT(aboutButtonClicked()));
+//TD rbLayout->addRowSpacing(3, 20);
+ rbLayout->addWidget(aboutButton, 4, 1, Qt::AlignLeft | Qt::AlignVCenter);
+
+
+ loadButton = new QPushButton(tr("&Load setup"), rbPanel);
+ connect(loadButton, SIGNAL(clicked()), SLOT(loadSetup()));
+ saveButton = new QPushButton(tr("&Save setup"), rbPanel);
+ connect(saveButton, SIGNAL(clicked()), SLOT(saveSetup()));
+ //rbLayout->addWidget(openPluginsButton, 1, 1, Qt::AlignCenter | Qt::AlignVCenter);
+// rbLayout->addRowSpacing(2, 20);
+ rbLayout->addWidget(loadButton, 3, 1, Qt::AlignCenter | Qt::AlignVCenter);
+ rbLayout->addWidget(saveButton, 4, 1, Qt::AlignCenter | Qt::AlignVCenter);
+// rbLayout->addRowSpacing(5, 20);
+ rbLayout->addWidget(aboutButton, 6, 1, Qt::AlignCenter | Qt::AlignVCenter);
+
+ lastDir = "";
+ //Connect socketnotifier to fifo
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SimpleSynthGui::~SimpleSynthGui()
+ */
+SimpleSynthGui::~SimpleSynthGui()
+ {
+ SS_TRACE_IN
+ simplesynthgui_ptr = 0;
+ delete pluginGui;
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SimpleSynthGui::readMessage(int)
+ */
+void SimpleSynthGui::readMessage(int)
+ {
+ MessGui::readMessage();
+ }
+
+/*!
+ \fn SimpleSynthGui::processEvent(const MidiEvent& ev)
+ */
+void SimpleSynthGui::processEvent(const MidiEvent& ev)
+ {
+ SS_TRACE_IN
+ if (SS_DEBUG_MIDI) {
+ printf("GUI received midi event\n");
+ }
+ if (ev.type() == ME_CONTROLLER) {
+ int id = ev.dataA();
+ int val = ev.dataB();
+
+ // Channel controllers:
+ if (id >= SS_FIRST_CHANNEL_CONTROLLER && id <= SS_LAST_CHANNEL_CONTROLLER ) {
+ // Find out which channel we're dealing with:
+ id-= SS_FIRST_CHANNEL_CONTROLLER;
+ int ch = (id / SS_NR_OF_CHANNEL_CONTROLLERS);
+ id = (id % SS_NR_OF_CHANNEL_CONTROLLERS);
+
+ int fxid = -1;
+
+ if (SS_DEBUG_MIDI) {
+ printf("GUI received midi controller - id: %d val %d channel %d\n", id, val, ch);
+ }
+
+ switch(id) {
+ case SS_CHANNEL_CTRL_VOLUME:
+ volumeSliders[ch]->blockSignals(true);
+ volumeSliders[ch]->setValue(SS_VOLUME_MAX_VALUE - val);
+ volumeSliders[ch]->blockSignals(false);
+ break;
+
+ case SS_CHANNEL_CTRL_PAN:
+ panSliders[ch]->blockSignals(true);
+ panSliders[ch]->setValue(val);
+ panSliders[ch]->blockSignals(false);
+ break;
+
+ case SS_CHANNEL_CTRL_NOFF:
+ nOffIgnore[ch]->blockSignals(true);
+ nOffIgnore[ch]->setChecked(val);
+ nOffIgnore[ch]->blockSignals(false);
+ break;
+
+ case SS_CHANNEL_CTRL_ONOFF:
+ onOff[ch]->blockSignals(true);
+ onOff[ch]->setChecked(val);
+ onOff[ch]->blockSignals(false);
+ break;
+
+ case SS_CHANNEL_SENDFX1:
+ case SS_CHANNEL_SENDFX2:
+ case SS_CHANNEL_SENDFX3:
+ case SS_CHANNEL_SENDFX4:
+ fxid = id - SS_CHANNEL_SENDFX1;
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui::processEvent - Channel sendfx, fxid: %d, val: %d\n", fxid, val);
+ }
+ sendFxDial[ch][fxid]->blockSignals(true);
+ sendFxDial[ch][fxid]->setValue(val);
+ sendFxDial[ch][fxid]->blockSignals(false);
+ break;
+
+ default:
+ if (SS_DEBUG_MIDI)
+ printf("SimpleSynthGui::processEvent - unknown controller received: %d\n", id);
+ }
+ }
+ // Master controllers:
+ else if (id >= SS_FIRST_MASTER_CONTROLLER && id <= SS_LAST_MASTER_CONTROLLER) {
+ if (id == SS_MASTER_CTRL_VOLUME) {
+ masterSlider->blockSignals(true);
+ masterSlider->setValue(SS_MASTERVOL_MAX_VALUE - val);
+ masterSlider->blockSignals(false);
+ }
+ }
+ else if (id>= SS_FIRST_PLUGIN_CONTROLLER && id <= SS_LAST_PLUGIN_CONTROLLER) {
+ int fxid = (id - SS_FIRST_PLUGIN_CONTROLLER) / SS_NR_OF_PLUGIN_CONTROLLERS;
+ int cmd = (id - SS_FIRST_PLUGIN_CONTROLLER) % SS_NR_OF_PLUGIN_CONTROLLERS;
+
+ // Plugin return-gain:
+ if (cmd == SS_PLUGIN_RETURN) {
+ if (SS_DEBUG_MIDI)
+ printf("SimpleSynthGui::processEvent - fx retgain received: fxid: %d val: %d\n", fxid, val);
+
+ SS_PluginFront* pf = pluginGui->getPluginFront((unsigned)fxid);
+ pf->setRetGain(val);
+ }
+ }
+ }
+ //
+ // Sysexes:
+ //
+ else if (ev.type() == ME_SYSEX) {
+ byte* data = ev.data();
+ int cmd = *data;
+ switch (cmd) {
+ case SS_SYSEX_LOAD_SAMPLE_OK: {
+ int ch = *(data+1);
+ QString filename = (const char*) (data+2);
+ sampleNameLineEdit[ch]->setText(filename.section('/',-1,-1));
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui - sample %s loaded OK on channel: %d\n", filename.toLatin1().data(), ch);
+ }
+ if (!onOff[ch]->isChecked()) {
+ onOff[ch]->blockSignals(true);
+ onOff[ch]->setChecked(true);
+ onOff[ch]->blockSignals(false);
+ channelOnOff(ch, true);
+ }
+ break;
+ }
+
+ case SS_SYSEX_LOAD_SAMPLE_ERROR: {
+ //int ch = *(data+1);
+ const char* filename = (const char*) (data+2);
+ /*QMessageBox* yn = new QMessageBox("Sample not found", "Failed to load sample: " + QString(filename) + "\n" +
+ "Do you want to open file browser and try to locate it elsewhere?",
+ QMessageBox::Warning,
+ QMessageBox::Yes,
+ QMessageBox::No,
+ QMessageBox::NoButton,
+ this);*/
+ /*int res = QMessageBox::warning(this,
+ "SimpleDrums","Failed to load sample: " + QString(filename) + "\n" +
+ "Do you want to open file browser and try to locate it elsewhere?",
+ "&Yes", "&No");
+ */
+ //int res = yn->exec();
+ printf("Error: Sample %s not found! TODO: Fix this\n", filename);
+ //if (res == 0) {
+ // loadSampleDialogue(ch);
+ // }
+ break;
+ }
+
+ case SS_SYSEX_LOAD_SENDEFFECT_OK: {
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui - sysex load sendeffect OK on fxid: %d\n", *(data+1));
+ }
+ int fxid = *(data+1);
+ SS_PluginFront* pf = pluginGui->getPluginFront((unsigned)fxid);
+ pf->updatePluginValue(*(data+2));
+ break;
+ }
+
+ case SS_SYSEX_CLEAR_SENDEFFECT_OK: {
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui - sysex clear sendeffect OK on fxid: %d\n", *(data+1));
+ }
+ SS_PluginFront* pf = pluginGui->getPluginFront((unsigned)*(data+1));
+ pf->clearPluginDisplay();
+ break;
+ }
+
+ case SS_SYSEX_CLEAR_SAMPLE_OK: {
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui - sysex clear samle OK on channel: %d\n", *(data+1));
+ }
+ byte ch = *(data+1);
+ sampleNameLineEdit[ch]->setText("");
+ break;
+ }
+
+ case SS_SYSEX_SET_PLUGIN_PARAMETER_OK: {
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui - plugin parameter OK on fxid: %d\n", *(data+1));
+ }
+ SS_PluginFront* pf = pluginGui->getPluginFront((unsigned)*(data+1));
+ int param = *(data+2);
+ int val = *(data+3);
+ pf->blockSignals(true);
+ pf->setParameterValue(param, val);
+ pf->blockSignals(false);
+ break;
+ }
+
+ case SS_SYSEX_SEND_INIT_DATA: {
+// FN: TODO
+#if 1
+ const unsigned initdata_len = ev.len() - 1;
+ byte* init_data = (data + 1);
+ QFileInfo fileInfo = QFileInfo(lastSavedProject);
+
+ lastProjectDir = fileInfo.path();
+ if (fileInfo.suffix() != "sds" && fileInfo.suffix() != "SDS") {
+ lastSavedProject += ".sds";
+ fileInfo = QFileInfo(lastSavedProject);
+ }
+ QFile theFile(fileInfo.filePath());
+
+ // Write data
+ if (theFile.open(QIODevice::WriteOnly)) {
+ theFile.write((const char*)&initdata_len, sizeof(initdata_len)); // First write length
+ if (theFile.write((const char*)init_data, initdata_len) == -1) {
+ // Fatal error writing
+ QMessageBox* msgBox = new QMessageBox(QMessageBox::Warning, "SimpleDrums error Dialog", "Fatal error when writing to file. Setup not saved.",
+ QMessageBox::Ok, this);
+ msgBox->exec();
+ delete msgBox;
+ }
+ theFile.close();
+ }
+ else {
+ // An error occured when opening
+ QMessageBox* msgBox = new QMessageBox(QMessageBox::Warning, "SimpleDrums error Dialog", "Error opening file. Setup was not saved.",
+ QMessageBox::Ok, this);
+ msgBox->exec();
+ delete msgBox;
+ }
+#endif
+
+ break;
+ }
+
+
+ default:
+ if (SS_DEBUG_MIDI) {
+ printf("SimpleSynthGui::processEvent - unknown sysex cmd received: %d\n", cmd);
+ }
+ break;
+ }
+ }
+ SS_TRACE_OUT
+ }
+
+
+/*!
+ \fn SimpleSynthGui::volumeChanged(int val)
+ */
+void SimpleSynthGui::volumeChanged(int channel, int val)
+ {
+ setChannelVolume(channel, val);
+ }
+
+/*!
+ \fn SimpleSynthGui::panChanged(int channel, int value)
+ */
+void SimpleSynthGui::panChanged(int channel, int value)
+ {
+ sendController(0, SS_CHANNEL_PAN_CONTROLLER(channel), value);
+ }
+
+/*!
+ \fn SimpleSynthGui::channelOnOff(int channel, bool state)
+ */
+void SimpleSynthGui::channelOnOff(int channel, bool state)
+ {
+ sendController(0, SS_CHANNEL_ONOFF_CONTROLLER(channel), state);
+ }
+
+/*!
+ \fn SimpleSynthGui::channelNoteOffIgnore(bool state)
+ */
+void SimpleSynthGui::channelNoteOffIgnore(int channel, bool state)
+ {
+ sendController(0, SS_CHANNEL_NOFF_CONTROLLER(channel), (int) state);
+ }
+
+/*!
+ \fn SimpleSynthGui::sendFxChanged(int ch, int fxid, int val)
+ */
+void SimpleSynthGui::sendFxChanged(int ch, int fxid, int val)
+ {
+ sendController(0, SS_CHANNEL_SENDFX_CONTROLLER(ch, fxid), (int) val);
+ }
+
+/*!
+ \fn SimpleSynthGui::masterVolChanged(int val)
+ */
+void SimpleSynthGui::masterVolChanged(int val)
+ {
+ sendController(0, SS_MASTER_CTRL_VOLUME, val);
+ }
+
+/*!
+ \fn SimpleSynthGui::setChannelVolume(int channel, byte volume)
+ */
+void SimpleSynthGui::setChannelVolume(int channel, int volume)
+ {
+ //volumeSliders[channel]->setValue(SS_VOLUME_MAX_VALUE - volume);
+ sendController(0, SS_CHANNEL_VOLUME_CONTROLLER(channel), (int)volume);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::loadSampleDialogue(int channel)
+ */
+void SimpleSynthGui::loadSampleDialogue(int channel)
+ {
+ QString filename =
+ QFileDialog::getOpenFileName(
+ this,
+ tr("Load sample dialog"),
+ lastDir,
+ QString("*.wav *.WAV"));
+
+ if (filename != QString::null) {
+ QFileInfo fi(filename);
+ lastDir = fi.path();
+
+ if (SS_DEBUG)
+ printf("lastDir = %s\n", lastDir.toLatin1().data());
+
+ int l = filename.length() + 4;
+ byte d[l];
+
+ d[0] = SS_SYSEX_LOAD_SAMPLE;
+ d[1] = (byte) channel;
+ d[2] = (byte) filename.length();
+ memcpy(d+3, filename.toLatin1().data(), filename.length()+1);
+ sendSysex(d, l);
+ }
+ }
+
+
+
+/*!
+ \fn SimpleSynthGui::clearSample(int ch)
+ */
+void SimpleSynthGui::clearSample(int ch)
+ {
+ if (sampleNameLineEdit[ch]->text().length() > 0) { //OK, we've got a live one here
+ byte d[2];
+ d[0] = SS_SYSEX_CLEAR_SAMPLE;
+ d[1] = (byte) ch;
+ sendSysex(d, 2);
+ sampleNameLineEdit[ch]->setText("");
+ }
+ }
+
+/*!
+ \fn SimpleSynthGui::displayPluginGui()
+ */
+void SimpleSynthGui::displayPluginGui()
+ {
+ pluginGui->show();
+ }
+
+/*!
+ \fn SimpleSynthGui::loadEffectInvoked(int fxid, QString lib, QString label)
+ */
+void SimpleSynthGui::loadEffectInvoked(int fxid, QString lib, QString label)
+ {
+ int l = 4 + lib.length() + label.length();
+ byte d[l];
+ d[0] = SS_SYSEX_LOAD_SENDEFFECT;
+ d[1] = (byte) fxid;
+ memcpy (d+2, lib.toLatin1().data(), lib.length()+1);
+ memcpy (d+3+lib.length(), label.toLatin1().data(), label.length()+1);
+ sendSysex(d, l);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::returnLevelChanged(int fxid, int val)
+ */
+void SimpleSynthGui::returnLevelChanged(int fxid, int val)
+ {
+ sendController(0, SS_PLUGIN_RETURNLEVEL_CONTROLLER(fxid), val);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::toggleEffectOnOff(int fxid, int state)
+ */
+void SimpleSynthGui::toggleEffectOnOff(int fxid, int state)
+ {
+ sendController(0, SS_PLUGIN_ONOFF_CONTROLLER(fxid), state);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::clearPlugin(int fxid)
+ */
+void SimpleSynthGui::clearPlugin(int fxid)
+ {
+ byte d[2];
+ d[0] = SS_SYSEX_CLEAR_SENDEFFECT;
+ d[1] = fxid;
+ sendSysex(d, 2);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::effectParameterChanged(int fxid, int parameter, int val)
+ */
+void SimpleSynthGui::effectParameterChanged(int fxid, int parameter, int val)
+ {
+ //printf("Gui: effectParameterChanged: %d %d %d\n", fxid, parameter, val);
+ int len = 4;
+ byte d[len];
+ d[0] = SS_SYSEX_SET_PLUGIN_PARAMETER;
+ d[1] = (byte) fxid;
+ d[2] = (byte) parameter;
+ d[3] = (byte) val;
+ sendSysex(d, len);
+ }
+
+
+/*!
+ \fn SimpleSynthGui::openPluginButtonClicked()
+ */
+void SimpleSynthGui::openPluginButtonClicked()
+ {
+ if (pluginGui->isVisible())
+ pluginGui->raise();
+ else
+ displayPluginGui();
+ }
+
+
+/*!
+ \fn SimpleSynthGui::aboutButtonClicked()
+ */
+void SimpleSynthGui::aboutButtonClicked()
+ {
+ QString caption = "SimpleDrums ver";
+ caption+= SS_VERSIONSTRING;
+ QString text = caption + "\n\n(C) Copyright 2000-2004 Mathias Lundgren (lunar_shuttle@users.sf.net), Werner Schweer\nPublished under the GNU Public License";
+ QMessageBox* msgBox = new QMessageBox(caption, text, QMessageBox::NoIcon,
+ QMessageBox::Ok, Qt::NoButton, Qt::NoButton, this);
+ msgBox->exec();
+ }
+
+
+/*!
+ \fn SimpleSynthGui::loadSetup()
+ \brief Load setup from file
+ */
+void SimpleSynthGui::loadSetup()
+ {
+ bool success = true;
+ QString filename =
+ QFileDialog::getOpenFileName(this, "Load setup dialog", lastProjectDir,
+ QString("*.sds *.SDS"));
+
+ if (filename != QString::null) {
+ QFile theFile(filename);
+ if (theFile.open(QIODevice::ReadOnly)) {
+ unsigned initdata_len = 0;
+ if (theFile.read((char*)&initdata_len, sizeof(initdata_len)) == -1)
+ success = false;
+
+ byte* init_data = new byte[initdata_len];
+ if (theFile.read((char*)(init_data), initdata_len) == -1)
+ success = false;
+
+ if (!success) {
+ QMessageBox* msgBox = new QMessageBox(QMessageBox::Warning, "SimpleDrums Error Dialog", "Error opening/reading from file. Setup not loaded.",
+ QMessageBox::Ok, this);
+ msgBox->exec();
+ delete msgBox;
+ }
+ else {
+ sendSysex(init_data, initdata_len);
+ }
+
+ delete[] init_data;
+ }
+ }
+ }
+
+
+/*!
+ \fn SimpleSynthGui::saveSetup()
+ \brief Save setup to file
+ */
+void SimpleSynthGui::saveSetup()
+ {
+ QString filename =
+ QFileDialog::getSaveFileName(this, "Save setup dialog", lastProjectDir,
+ QString("*.sds *.SDS"));
+
+ if (filename != QString::null) {
+ lastSavedProject = filename;
+ byte d[1];
+ d[0] = SS_SYSEX_GET_INIT_DATA;
+ sendSysex(d, 1); // Makes synth send gui initdata, where rest of the saving takes place
+ }
+ }
+
diff --git a/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.h b/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.h
new file mode 100644
index 00000000..b3436f5d
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/simpledrumsgui.h
@@ -0,0 +1,206 @@
+//
+// C++ Interface: testogui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef __MUSE_TESTOGUI_H__
+#define __MUSE_TESTOGUI_H__
+
+#include "libsynti/gui.h"
+#include "ui_simpledrumsguibase.h"
+#include "common.h"
+
+class QButtonGroup;
+class QLabel;
+class SS_PluginGui;
+
+//--------------------------------------
+// QChannelSlider
+//--------------------------------------
+class QChannelSlider: public QSlider
+ {
+ Q_OBJECT
+
+ public:
+ QChannelSlider(Qt::Orientation, int ch, QWidget* paren = 0);
+ int getChannel();
+ void setChannel(int ch);
+
+ public slots:
+ virtual void setValue(int val);
+
+ signals:
+ void valueChanged(int channel, int value);
+
+ protected:
+ int channel;
+ };
+
+//--------------------------------------
+// QInvertedSlider
+//--------------------------------------
+class QInvertedSlider : public QSlider
+ {
+ Q_OBJECT
+ public:
+ QInvertedSlider(Qt::Orientation o, QWidget* parent = 0)
+ : QSlider(o, parent) {}
+
+ public slots:
+ virtual void setValue(int val);
+
+ signals:
+ void invertedValueChanged(int value);
+ };
+
+//--------------------------------------
+// QInvertedChannelSlider
+//--------------------------------------
+class QInvertedChannelSlider : public QChannelSlider
+ {
+ Q_OBJECT
+ public:
+ QInvertedChannelSlider(Qt::Orientation o, int channel, QWidget* parent = 0)
+ : QChannelSlider(o, channel, parent) {};
+
+ public slots:
+ virtual void setValue(int val);
+ };
+
+
+//--------------------------------------
+// QChannelOnOff
+//--------------------------------------
+
+class QChannelCheckbox : public QCheckBox
+ {
+ Q_OBJECT
+ public:
+ QChannelCheckbox(QWidget* parent, int channel);
+
+ private:
+ int channel;
+
+ private slots:
+ void isClicked();
+
+ signals:
+ void channelState(int channel, bool state);
+ };
+
+//--------------------------------------
+// QChannelButton
+//--------------------------------------
+class QChannelButton : public QPushButton
+ {
+ Q_OBJECT
+
+ private:
+ int channel;
+
+ public:
+ QChannelButton(QWidget* parent, const char* text, int ch);
+
+ private slots:
+ void isClicked();
+
+ signals:
+ void channelState(int channel, bool state);
+
+ };
+
+//--------------------------------------
+// QChannelDial
+//--------------------------------------
+
+class QChannelDial : public QDial
+ {
+ Q_OBJECT
+
+ public:
+ QChannelDial(QWidget* parent, int ch, int fxid);
+
+ signals:
+ void valueChanged(int channel, int fxid, int val);
+
+ public slots:
+ virtual void setValue(int val);
+
+ protected:
+ int channel;
+ int sendfxid;
+ };
+
+//--------------------------------------
+// SimpleSynthGui - the Gui
+//--------------------------------------
+class SimpleSynthGui : public QDialog, public Ui::SimpleDrumsGuiBase, public MessGui
+ {
+ Q_OBJECT
+ private:
+ // MESS interface:
+ virtual void processEvent(const MidiEvent& ev);
+ void setChannelVolume(int channel, int volume);
+ void displayPluginGui();
+ QGroupBox* channelButtonGroups[SS_NR_OF_CHANNELS];
+ QGroupBox* masterButtonGroup;
+ QGroupBox* mainGroupBox;
+ QInvertedChannelSlider* volumeSliders[SS_NR_OF_CHANNELS];
+ QChannelSlider* panSliders[SS_NR_OF_CHANNELS];
+ QChannelCheckbox* onOff[SS_NR_OF_CHANNELS];
+ QChannelCheckbox* nOffIgnore[SS_NR_OF_CHANNELS];
+ QChannelButton* loadSampleButton[SS_NR_OF_CHANNELS];
+ QChannelButton* clearSampleButton[SS_NR_OF_CHANNELS];
+ QLabel* nOffLabel[SS_NR_OF_CHANNELS];
+ QLineEdit* sampleNameLineEdit[SS_NR_OF_CHANNELS];
+ QInvertedSlider* masterSlider;
+ QChannelDial* sendFxDial[SS_NR_OF_CHANNELS][SS_NR_OF_SENDEFFECTS];
+
+ QPushButton* openPluginsButton;
+ QPushButton* aboutButton;
+ QPushButton* loadButton;
+ QPushButton* saveButton;
+
+
+ QString lastDir;
+ QString lastSavedProject;
+ QString lastProjectDir;
+ SS_PluginGui* pluginGui;
+
+ public:
+ SimpleSynthGui();
+ virtual ~SimpleSynthGui();
+
+ public slots:
+ void loadEffectInvoked(int fxid, QString lib, QString label);
+ void returnLevelChanged(int fxid, int val);
+ void toggleEffectOnOff(int fxid, int state);
+ void clearPlugin(int fxid);
+ void effectParameterChanged(int fxid, int parameter, int val);
+
+ private slots:
+ void volumeChanged(int channel, int val);
+ void panChanged(int channel, int value);
+ void channelOnOff(int channel, bool state);
+ void channelNoteOffIgnore(int channel, bool state);
+ void masterVolChanged(int val);
+ void loadSampleDialogue(int channel);
+ void readMessage(int);
+ void clearSample(int ch);
+ void sendFxChanged(int ch, int fxid, int val);
+ void openPluginButtonClicked();
+ void aboutButtonClicked();
+ void loadSetup();
+ void saveSetup();
+
+ };
+
+extern SimpleSynthGui* simplesynthgui_ptr;
+
+#endif
diff --git a/muse_qt4_evolution/synti/simpledrums/simpledrumsguibase.ui b/muse_qt4_evolution/synti/simpledrums/simpledrumsguibase.ui
new file mode 100644
index 00000000..412bfdf6
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/simpledrumsguibase.ui
@@ -0,0 +1,23 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>SimpleDrumsGuiBase</class>
+ <widget class="QDialog" name="SimpleDrumsGuiBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>602</width>
+ <height>509</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>DrumSynth 0.1</string>
+ </property>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/simpledrums/ssplugin.cpp b/muse_qt4_evolution/synti/simpledrums/ssplugin.cpp
new file mode 100644
index 00000000..8d5c3d8f
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/ssplugin.cpp
@@ -0,0 +1,456 @@
+//
+// C++ Implementation: plugin
+//
+// Description:
+//
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+// Additions/modifications: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include <dlfcn.h>
+#include "ssplugin.h"
+#include "common.h"
+
+PluginList plugins;
+
+
+Plugin::Plugin(const QFileInfo* f)
+ : fi(*f)
+ {
+ }
+
+//---------------------------------------------------------
+// loadPluginLib
+//---------------------------------------------------------
+
+static void loadPluginLib(QFileInfo* fi)
+ {
+ SS_TRACE_IN
+ if (SS_DEBUG_LADSPA) {
+ printf("loadPluginLib: %s\n", fi->fileName().toLatin1().data());
+ }
+ void* handle = dlopen(fi->filePath().toAscii().data(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ fi->filePath().toAscii().data(), dlerror());
+ return;
+ }
+ LADSPA_Descriptor_Function ladspa = (LADSPA_Descriptor_Function)dlsym(handle, "ladspa_descriptor");
+
+ if (!ladspa) {
+ const char *txt = dlerror();
+ if (txt) {
+ fprintf(stderr,
+ "Unable to find ladspa_descriptor() function in plugin "
+ "library file \"%s\": %s.\n"
+ "Are you sure this is a LADSPA plugin file?\n",
+ fi->filePath().toAscii().data(),
+ txt);
+ return;//exit(1);
+ }
+ }
+ const LADSPA_Descriptor* descr;
+ for (int i = 0;; ++i) {
+ descr = ladspa(i);
+ if (descr == NULL)
+ break;
+ plugins.push_back(new LadspaPlugin(fi, ladspa, descr));
+ }
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// loadPluginDir
+//---------------------------------------------------------
+
+static void loadPluginDir(const QString& s)
+ {
+ SS_TRACE_IN
+ QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ int n = list.size();
+ for (int i = 0; i < n; ++i) {
+ QFileInfo fi = list.at(i);
+ loadPluginLib(&fi);
+ }
+ }
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// initPlugins
+// search for LADSPA plugins
+//---------------------------------------------------------
+
+void SS_initPlugins()
+ {
+ SS_TRACE_IN
+ //loadPluginDir(museGlobalLib + QString("/plugins"));
+
+ char* ladspaPath = getenv("LADSPA_PATH");
+ if (ladspaPath == 0)
+ ladspaPath = "/usr/lib/ladspa:/usr/local/lib/ladspa";
+
+ char* p = ladspaPath;
+ while (*p != '\0') {
+ char* pe = p;
+ while (*pe != ':' && *pe != '\0')
+ pe++;
+
+ int n = pe - p;
+ if (n) {
+ char* buffer = new char[n + 1];
+ strncpy(buffer, p, n);
+ buffer[n] = '\0';
+ loadPluginDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ SS_TRACE_OUT
+ }
+
+
+//---------------------------------------------------------
+// LadspaPlugin
+//---------------------------------------------------------
+
+LadspaPlugin::LadspaPlugin(const QFileInfo* f,
+ const LADSPA_Descriptor_Function ldf,
+ const LADSPA_Descriptor* d)
+ : Plugin(f), ladspa(ldf), plugin(d)
+ {
+ SS_TRACE_IN
+ _inports = 0;
+ _outports = 0;
+ _parameter = 0;
+ handle = 0;
+ active = false;
+ controls = 0;
+ inputs = 0;
+ outputs = 0;
+
+ for (unsigned k = 0; k < plugin->PortCount; ++k) {
+ LADSPA_PortDescriptor pd = d->PortDescriptors[k];
+ static const int CI = LADSPA_PORT_CONTROL | LADSPA_PORT_INPUT;
+ if ((pd & CI) == CI) {
+ ++_parameter;
+ pIdx.push_back(k);
+ }
+ else if (pd & LADSPA_PORT_INPUT) {
+ ++_inports;
+ iIdx.push_back(k);
+ }
+ else if (pd & LADSPA_PORT_OUTPUT) {
+ ++_outports;
+ oIdx.push_back(k);
+ }
+ }
+
+ /*if (SS_DEBUG_LADSPA) {
+ printf("Label: %s\tLib: %s\tPortCount: %d\n", this->label().toLatin1().data(), this->lib().toLatin1().data(), plugin->PortCount);
+ printf("LADSPA_PORT_CONTROL|LADSPA_PORT_INPUT: %d\t", pIdx.size());
+ printf("Input ports: %d\t", iIdx.size());
+ printf("Output ports: %d\n\n", oIdx.size());
+ }*/
+
+ LADSPA_Properties properties = plugin->Properties;
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(properties);
+ if (_inports != _outports)
+ _inPlaceCapable = false;
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// ~LadspaPlugin
+//---------------------------------------------------------
+LadspaPlugin::~LadspaPlugin()
+ {
+ SS_TRACE_IN
+ if (active) {
+ stop();
+ }
+ if (handle) {
+ SS_DBG_LADSPA2("Cleaning up ", this->label().toLatin1().data());
+ plugin->cleanup(handle);
+ }
+
+ //Free ports:
+ if (controls)
+ delete controls;
+ if (inputs)
+ delete inputs;
+ if (outputs)
+ delete outputs;
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+bool LadspaPlugin::instantiate()
+ {
+ bool success = false;
+ handle = plugin->instantiate(plugin, SS_samplerate);
+ success = (handle != NULL);
+ if (success)
+ SS_DBG_LADSPA2("Plugin instantiated", label().toLatin1().data());
+ return success;
+ }
+
+//---------------------------------------------------------
+// start
+// activate and connect control ports
+//---------------------------------------------------------
+
+bool LadspaPlugin::start()
+ {
+ SS_TRACE_IN
+ if (handle) {
+ if (plugin->activate) {
+ plugin->activate(handle);
+ SS_DBG_LADSPA("Plugin activated");
+ }
+ active = true;
+ }
+ else {
+ SS_DBG_LADSPA("Error trying to activate plugin - plugin not instantiated!");
+ SS_TRACE_OUT
+ return false;
+ }
+
+ //Connect ports:
+ controls = new Port[_parameter];
+
+ for (int k = 0; k < _parameter; ++k) {
+ double val = defaultValue(k);
+ controls[k].val = val;
+ plugin->connect_port(handle, pIdx[k], &controls[k].val);
+ }
+
+ outputs = new Port[_outports];
+ inputs = new Port[_inports];
+
+ SS_TRACE_OUT
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+// deactivate
+//---------------------------------------------------------
+void LadspaPlugin::stop()
+ {
+ SS_TRACE_IN
+ if (handle) {
+ SS_DBG_LADSPA2("Trying to stop plugin", label().toLatin1().data());
+ if (plugin->deactivate) {
+ SS_DBG_LADSPA2("Deactivating ", label().toLatin1().data());
+ plugin->deactivate(handle);
+ active = false;
+ }
+ }
+ else
+ SS_DBG_LADSPA("Warning - tried to stop plugin, but plugin was never started...\n");
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void LadspaPlugin::range(int i, float* min, float* max) const
+ {
+ SS_TRACE_IN
+ i = pIdx[i];
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[i];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+ if (desc & LADSPA_HINT_TOGGLED) {
+ *min = 0.0;
+ *max = 1.0;
+ return;
+ }
+ float m = 1.0;
+ if (desc & LADSPA_HINT_SAMPLE_RATE)
+ m = (float) SS_samplerate;
+
+ if (desc & LADSPA_HINT_BOUNDED_BELOW)
+ *min = range.LowerBound * m;
+ else
+ *min = 0.0;
+ if (desc & LADSPA_HINT_BOUNDED_ABOVE)
+ *max = range.UpperBound * m;
+ else
+ *max = 1.0;
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+float LadspaPlugin::defaultValue(int k) const
+ {
+ SS_TRACE_IN
+ k = pIdx[k];
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[k];
+ LADSPA_PortRangeHintDescriptor rh = range.HintDescriptor;
+ double val = 1.0;
+ if (LADSPA_IS_HINT_DEFAULT_MINIMUM(rh))
+ val = range.LowerBound;
+ else if (LADSPA_IS_HINT_DEFAULT_LOW(rh))
+ if (LADSPA_IS_HINT_LOGARITHMIC(range.HintDescriptor))
+ val = exp(fast_log10(range.LowerBound) * .75 +
+ log(range.UpperBound) * .25);
+ else
+ val = range.LowerBound*.75 + range.UpperBound*.25;
+ else if (LADSPA_IS_HINT_DEFAULT_MIDDLE(rh))
+ if (LADSPA_IS_HINT_LOGARITHMIC(range.HintDescriptor))
+ val = exp(log(range.LowerBound) * .5 +
+ log(range.UpperBound) * .5);
+ else
+ val = range.LowerBound*.5 + range.UpperBound*.5;
+ else if (LADSPA_IS_HINT_DEFAULT_HIGH(rh))
+ if (LADSPA_IS_HINT_LOGARITHMIC(range.HintDescriptor))
+ val = exp(log(range.LowerBound) * .25 +
+ log(range.UpperBound) * .75);
+ else
+ val = range.LowerBound*.25 + range.UpperBound*.75;
+ else if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(rh))
+ val = range.UpperBound;
+ else if (LADSPA_IS_HINT_DEFAULT_0(rh))
+ val = 0.0;
+ else if (LADSPA_IS_HINT_DEFAULT_1(rh))
+ val = 1.0;
+ else if (LADSPA_IS_HINT_DEFAULT_100(rh))
+ val = 100.0;
+ else if (LADSPA_IS_HINT_DEFAULT_440(rh))
+ val = 440.0;
+ SS_TRACE_OUT
+ return val;
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+Plugin* PluginList::find(const QString& file, const QString& name)
+ {
+ SS_TRACE_IN
+ for (iPlugin i = begin(); i != end(); ++i) {
+ if ((file == (*i)->lib()) && (name == (*i)->label())) {
+ SS_TRACE_OUT
+ return *i;
+ }
+ }
+ printf("Plugin <%s> not found\n", name.toLatin1().data());
+ SS_TRACE_OUT
+ return 0;
+ }
+
+//---------------------------------------------------------
+// connectInport
+//---------------------------------------------------------
+void LadspaPlugin::connectInport(int k, LADSPA_Data* datalocation)
+ {
+ SS_TRACE_IN
+ plugin->connect_port(handle, iIdx[k], datalocation);
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// connectOutport
+//---------------------------------------------------------
+void LadspaPlugin::connectOutport(int k, LADSPA_Data* datalocation)
+ {
+ SS_TRACE_IN
+ plugin->connect_port(handle, oIdx[k], datalocation);
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+void LadspaPlugin::process(unsigned long frames)
+ {
+ plugin->run(handle, frames);
+ }
+
+//---------------------------------------------------------
+// setParam
+//---------------------------------------------------------
+
+void LadspaPlugin::setParam(int k, float val)
+ {
+ SS_TRACE_IN
+ controls[k].val = val;
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// getGuiControlValue
+// scale control value to gui-slider/checkbox representation
+//---------------------------------------------------------
+
+int LadspaPlugin::getGuiControlValue(int param) const
+ {
+ SS_TRACE_IN
+ float val = getControlValue(param);
+ float min, max;
+ range(param, &min, &max);
+ int intval;
+ if (isLog(param)) {
+ intval = SS_map_logdomain2pluginparam(logf(val/(max - min) + min));
+ }
+ else if (isBool(param)) {
+ intval = (int) val;
+ }
+ else {
+ float scale = SS_PLUGIN_PARAM_MAX / (max - min);
+ intval = (int) ((val - min) * scale);
+ }
+ SS_TRACE_OUT
+ return intval;
+ }
+
+//---------------------------------------------------------
+// convertGuiControlValue
+// scale control value to gui-slider/checkbox representation
+//---------------------------------------------------------
+
+float LadspaPlugin::convertGuiControlValue(int parameter, int val) const
+ {
+ SS_TRACE_IN
+ float floatval = 0;
+ float min, max;
+ range(parameter, &min, &max);
+
+ if (isLog(parameter)) {
+ if (val > 0) {
+ float logged = SS_map_pluginparam2logdomain(val);
+ float e = expf(logged) * (max - min);
+ e+=min;
+ floatval = e;
+ }
+ }
+ else if (isBool(parameter)) {
+ floatval = (float) val;
+ }
+ else if (isInt(parameter)) {
+ float scale = (max - min) / SS_PLUGIN_PARAM_MAX;
+ floatval = (float) round((((float) val) * scale) + min);
+ }
+ else {
+ float scale = (max - min) / SS_PLUGIN_PARAM_MAX;
+ floatval = (((float) val) * scale) + min;
+ }
+ SS_TRACE_OUT
+ return floatval;
+ }
diff --git a/muse_qt4_evolution/synti/simpledrums/ssplugin.h b/muse_qt4_evolution/synti/simpledrums/ssplugin.h
new file mode 100644
index 00000000..b9a7fb49
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/ssplugin.h
@@ -0,0 +1,171 @@
+//
+// C++ Interface: plugin
+//
+// Description:
+//
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+// Additions/modifications: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef __PLUGIN_H__
+#define __PLUGIN_H__
+
+#include <ladspa.h>
+#include <math.h>
+
+//---------------------------------------------------------
+// Port
+//---------------------------------------------------------
+
+struct Port {
+ float val;
+ };
+
+//---------------------------------------------------------
+// Plugin
+//---------------------------------------------------------
+
+class Plugin
+ {
+ protected:
+ QFileInfo fi;
+
+ public:
+ Plugin(const QFileInfo* f);
+ virtual ~Plugin() {}
+ virtual QString label() const { return QString(); }
+ virtual QString name() const { return QString(); }
+ virtual unsigned long id() const { return 0; }
+ virtual QString maker() const { return QString(); }
+ virtual QString copyright() const { return QString(); }
+ virtual int parameter() const { return 0; }
+ virtual int inports() const { return 0; }
+ virtual int outports() const { return 0; }
+ virtual bool inPlaceCapable() const { return false; }
+
+ virtual bool isLog(int) const { return false; }
+ virtual bool isBool(int) const { return false; }
+ virtual bool isInt(int) const { return false; }
+ virtual float defaultValue(int) const { return 0.0f; }
+ virtual void range(int, float* min, float* max) const {
+ *min = 0.0f;
+ *max = 1.0f;
+ }
+ virtual const char* getParameterName(int /*param*/) const { return ""; }
+ QString lib() const { return fi.baseName(); }
+ QString path() const { return fi.absolutePath(); }
+ };
+
+//---------------------------------------------------------
+// LadspaPlugin
+//---------------------------------------------------------
+
+class LadspaPlugin : public Plugin
+ {
+ LADSPA_Descriptor_Function ladspa;
+ const LADSPA_Descriptor* plugin;
+ LADSPA_Handle handle;
+ bool active;
+
+ Port* controls;
+ Port* inputs;
+ Port* outputs;
+
+ protected:
+ int _parameter;
+ std::vector<int> pIdx; //control port numbers
+
+ int _inports;
+ std::vector<int> iIdx; //input port numbers
+
+ int _outports;
+ std::vector<int> oIdx; //output port numbers
+
+ bool _inPlaceCapable;
+
+ public:
+ LadspaPlugin(const QFileInfo* f, const LADSPA_Descriptor_Function, const LADSPA_Descriptor* d);
+ virtual ~LadspaPlugin();
+ virtual QString label() const { return QString(plugin->Label); }
+ virtual QString name() const { return QString(plugin->Name); }
+ virtual unsigned long id() const { return plugin->UniqueID; }
+ virtual QString maker() const { return QString(plugin->Maker); }
+ virtual QString copyright() const { return QString(plugin->Copyright); }
+ virtual int parameter() const { return _parameter; }
+ virtual int inports() const { return _inports; }
+ virtual int outports() const { return _outports; }
+ virtual bool inPlaceCapable() const { return _inPlaceCapable; }
+ const LADSPA_Descriptor* ladspaDescriptor() const { return plugin; }
+ virtual bool isLog(int k) const {
+ LADSPA_PortRangeHint r = plugin->PortRangeHints[pIdx[k]];
+ return LADSPA_IS_HINT_LOGARITHMIC(r.HintDescriptor);
+ }
+ virtual bool isBool(int k) const {
+ return LADSPA_IS_HINT_TOGGLED(plugin->PortRangeHints[pIdx[k]].HintDescriptor);
+ }
+ virtual bool isInt(int k) const {
+ LADSPA_PortRangeHint r = plugin->PortRangeHints[pIdx[k]];
+ return LADSPA_IS_HINT_INTEGER(r.HintDescriptor);
+ }
+ virtual void range(int i, float*, float*) const;
+ virtual const char* getParameterName(int i) const {
+ return plugin->PortNames[pIdx[i]];
+ }
+ virtual float defaultValue(int) const;
+ virtual float getControlValue(int k) const {
+ return controls[k].val;
+ }
+
+ int getGuiControlValue(int parameter) const;
+ float convertGuiControlValue(int parameter, int val) const;
+
+ bool instantiate();
+ bool start();
+ void stop();
+ void connectInport(int k, LADSPA_Data* datalocation);
+ void connectOutport(int k, LADSPA_Data* datalocation);
+ void process(unsigned long);
+ void setParam(int i, float val);
+
+ };
+
+
+static inline float fast_log2 (float val)
+ {
+ /* don't use reinterpret_cast<> because that prevents this
+ from being used by pure C code (for example, GnomeCanvasItems)
+ */
+ int* const exp_ptr = (int *)(&val);
+ int x = *exp_ptr;
+ const int log_2 = ((x >> 23) & 255) - 128;
+ x &= ~(255 << 23);
+ x += 127 << 23;
+ *exp_ptr = x;
+ val = ((-1.0f/3) * val + 2) * val - 2.0f/3; // (1)
+ return (val + log_2);
+ }
+
+static inline float fast_log10 (const float val)
+ {
+ return fast_log2(val) / 3.312500f;
+ }
+
+//---------------------------------------------------------
+// PluginList
+//---------------------------------------------------------
+
+typedef std::list<Plugin*>::iterator iPlugin;
+
+class PluginList : public std::list<Plugin*> {
+ public:
+ Plugin* find(const QString& file, const QString& name);
+ PluginList() {}
+ };
+
+extern void SS_initPlugins();
+extern PluginList plugins;
+
+#endif
diff --git a/muse_qt4_evolution/synti/simpledrums/sspluginchooserbase.ui b/muse_qt4_evolution/synti/simpledrums/sspluginchooserbase.ui
new file mode 100644
index 00000000..63d254df
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/sspluginchooserbase.ui
@@ -0,0 +1,106 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>SS_PluginChooserBase</class>
+ <widget class="QDialog" name="SS_PluginChooserBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>777</width>
+ <height>681</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>SimpleDrums - Ladspa Plugin Chooser</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>10</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTreeWidget" name="effectsListView" >
+ <column>
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Label</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Inports</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Outports</string>
+ </property>
+ </column>
+ <column>
+ <property name="text" >
+ <string>Creator</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>301</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton" >
+ <property name="text" >
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="text" >
+ <string>&amp;OK</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+O</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/simpledrums/ssplugingui.cpp b/muse_qt4_evolution/synti/simpledrums/ssplugingui.cpp
new file mode 100644
index 00000000..0428988b
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/ssplugingui.cpp
@@ -0,0 +1,530 @@
+//
+// C++ Implementation: ssplugingui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "ssplugingui.h"
+#include "ssplugin.h"
+#include "simpledrumsgui.h"
+
+#define SS_PLUGINGUI_XOFF 300
+#define SS_PLUGINGUI_YOFF 300
+#define SS_PLUGINGUI_WIDTH 450
+#define SS_PLUGINGUI_MAX_WIDTH 700
+
+#define SS_PLUGINFRONT_MINWIDTH SS_PLUGINGUI_WIDTH
+#define SS_PLUGINFRONT_MINHEIGHT 70
+#define SS_PLUGINFRONT_MARGIN 9
+#define SS_PLUGINFRONT_INC_PARAM 30
+#define SS_PLUGINFRONT_INC_PARAM_MIN 60
+#define SS_PLUGINGUI_HEIGHT (SS_NR_OF_SENDEFFECTS * SS_PLUGINFRONT_MINHEIGHT)
+
+#define SS_PLUGINCHOOSER_NAMECOL 0
+#define SS_PLUGINCHOOSER_LABELCOL 1
+#define SS_PLUGINCHOOSER_INPORTSCOL 2
+#define SS_PLUGINCHOOSER_OUTPORTSCOL 3
+#define SS_PLUGINCHOOSER_CREATORCOL 4
+
+
+/*!
+ \fn SS_PluginChooser::SS_PluginChooser(QWidget* parent, const char* name = 0)
+ */
+SS_PluginChooser::SS_PluginChooser(QWidget* parent)
+ :QDialog(parent)
+ {
+ SS_TRACE_IN
+ setupUi(this);
+ selectedPlugin = 0;
+
+ for (iPlugin i=plugins.begin(); i !=plugins.end(); i++) {
+ //Support for only 2 or 1 inport/outports
+ if ( ((*i)->outports() == 2 || (*i)->outports() == 1) && ((*i)->inports() == 2 || (*i)->inports() == 1) ) {
+ QTreeWidgetItem* tmpItem = new QTreeWidgetItem(effectsListView);
+ tmpItem->setText(SS_PLUGINCHOOSER_NAMECOL, (*i)->name());
+ tmpItem->setText(SS_PLUGINCHOOSER_LABELCOL, (*i)->label());
+ tmpItem->setText(SS_PLUGINCHOOSER_INPORTSCOL, QString::number((*i)->inports()));
+ tmpItem->setText(SS_PLUGINCHOOSER_OUTPORTSCOL, QString::number((*i)->outports()));
+ tmpItem->setText(SS_PLUGINCHOOSER_CREATORCOL, (*i)->maker());
+ effectsListView->addTopLevelItem(tmpItem);
+ }
+ }
+ connect(okButton, SIGNAL(pressed()), SLOT(okPressed()));
+ connect(cancelButton, SIGNAL(pressed()), SLOT(cancelPressed()));
+ connect(effectsListView, SIGNAL(selectionChanged(QTreeWidgetItem*)), SLOT(selectionChanged(QTreeWidgetItem*)));
+ connect(effectsListView, SIGNAL(doubleClicked(QTreeWidgetItem*)), SLOT(doubleClicked(QTreeWidgetItem*)));
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginChooser::selectionChanged(QListViewItem* item)
+ */
+void SS_PluginChooser::selectionChanged(QTreeWidgetItem* item)
+ {
+ SS_TRACE_IN
+ selectedItem = item;
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginChooser::okPressed()
+ */
+void SS_PluginChooser::okPressed()
+ {
+ SS_TRACE_IN
+ selectedPlugin = findSelectedPlugin();
+ done(QDialog::Accepted);
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginChooser::cancelPressed()
+ */
+void SS_PluginChooser::cancelPressed()
+ {
+ SS_TRACE_IN
+ SS_TRACE_OUT
+ done(QDialog::Rejected);
+ }
+
+/*!
+ \fn SS_PluginChooser::doubleClicked(QListViewItem* item)
+ */
+void SS_PluginChooser::doubleClicked(QTreeWidgetItem* /*item*/)
+ {
+ SS_TRACE_IN
+ selectedPlugin = findSelectedPlugin();
+ SS_TRACE_OUT
+ done(QDialog::Accepted);
+ }
+
+/*!
+ \fn SS_PluginChooser::getSelectedPlugin()
+ */
+LadspaPlugin* SS_PluginChooser::findSelectedPlugin()
+ {
+ SS_TRACE_IN
+ LadspaPlugin* selected = 0;
+ for (iPlugin i=plugins.begin(); i != plugins.end(); i++) {
+ if ((*i)->name() == selectedItem->text(SS_PLUGINCHOOSER_NAMECOL))
+ selected = (LadspaPlugin*) (*i);
+ }
+ SS_TRACE_OUT
+ return selected;
+ }
+
+/*!
+ \fn SS_PluginFront::SS_PluginFront(QWidget* parent, const char* name = 0)
+ */
+SS_PluginFront::SS_PluginFront(QWidget* parent, int in_fxid)
+ : QGroupBox(parent), fxid (in_fxid)
+ {
+ SS_TRACE_IN
+ expanded = false;
+ pluginChooser = 0;
+ plugin = 0;
+ expGroup = 0;
+
+//TD setLineWidth(3);
+ setFlat(false);
+//TD setFrameStyle( Q3Frame::Box | Q3Frame::Raised );
+//TD setFrameShape(QFrame::StyledPanel);
+// setFrameShadow(Qt::Sunken);
+ setFocusPolicy(Qt::NoFocus);
+ setMinimumSize(SS_PLUGINFRONT_MINWIDTH, SS_PLUGINFRONT_MINHEIGHT);
+ setMaximumSize(SS_PLUGINGUI_MAX_WIDTH, SS_PLUGINFRONT_MINHEIGHT);
+
+ QVBoxLayout* bigLayout = new QVBoxLayout(this);
+ bigLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+ bigLayout->setAlignment(Qt::AlignTop);
+//TODO bigLayout->setResizeMode(QLayout::SetNoConstraint);
+
+ layout = new QHBoxLayout;
+ bigLayout->addLayout(layout);
+ layout->setAlignment(Qt::AlignVCenter);
+//TODO layout->setResizeMode(QLayout::SetNoConstraint);
+
+
+ QVBoxLayout* onOffLayout = new QVBoxLayout;
+ layout->addLayout(onOffLayout);
+ onOffLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+ onOff = new QCheckBox(this);
+ onOffLayout->addWidget(new QLabel("On/Off", this));
+ onOffLayout->addWidget(onOff);
+ connect(onOff, SIGNAL(toggled(bool)), SLOT(onOffToggled(bool)));
+
+ pluginName = new QLineEdit(this);
+ pluginName->setReadOnly(true);
+ layout->addWidget(pluginName);
+
+ loadFxButton = new QPushButton("L", this);
+ QRect r = loadFxButton->geometry();
+ loadFxButton->setGeometry(r.x(), r.y(), 20, pluginName->geometry().height());
+ loadFxButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+ loadFxButton->setMinimumSize(20,pluginName->geometry().height());
+ loadFxButton->setMaximumSize(30,pluginName->geometry().height());
+ connect(loadFxButton, SIGNAL(clicked()), SLOT(loadButton()));
+ layout->addWidget(loadFxButton);
+
+ clearFxButton = new QPushButton("C", this);
+ r = clearFxButton->geometry();
+ clearFxButton->setGeometry(r.x(), r.y(), 20, pluginName->geometry().height());
+ clearFxButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+ clearFxButton->setMinimumSize(20,pluginName->geometry().height());
+ clearFxButton->setMaximumSize(30,pluginName->geometry().height());
+ connect(clearFxButton, SIGNAL(clicked()), SLOT(clearButtonPressed()));
+ layout->addWidget(clearFxButton);
+
+ layout->addSpacing(5);
+
+ expandButton = new QPushButton("->", this);
+ r = loadFxButton->geometry();
+ expandButton->setGeometry(r.x(), r.y(), 20, pluginName->geometry().height());
+ expandButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+ expandButton->setMinimumSize(20,pluginName->geometry().height());
+ expandButton->setMaximumSize(30,pluginName->geometry().height());
+ connect(expandButton, SIGNAL(clicked()), SLOT(expandButtonPressed()));
+ layout->addWidget(expandButton);
+
+ layout->addSpacing(5);
+
+ QVBoxLayout* gainSliderLayout = new QVBoxLayout;
+ layout->addLayout(gainSliderLayout);
+ gainSliderLayout->addWidget(new QLabel("Return level", this));
+ gainSliderLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+ outGainSlider = new QSlider(Qt::Horizontal, this);
+ outGainSlider->setMinimumSize(100, pluginName->geometry().height());
+ outGainSlider->setMaximumSize(500, pluginName->geometry().height());
+ loadFxButton->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
+ outGainSlider->setRange(0, 127);
+ outGainSlider->setValue(75);
+ connect(outGainSlider, SIGNAL(valueChanged(int)), SLOT(returnSliderMoved(int)));
+ gainSliderLayout->addWidget(outGainSlider);
+ clearPluginDisplay();
+
+ expLayout = new QVBoxLayout; // (bigLayout, 2);
+ bigLayout->addLayout(expLayout);
+
+ clearFxButton->setToolTip(tr("Clear and unload effect"));
+ loadFxButton->setToolTip(tr("Load effect"));
+ expandButton->setToolTip(tr("Toggle display of effect parameters"));
+ onOff->setToolTip(tr("Turn effect on/off"));
+ SS_TRACE_OUT
+ }
+
+SS_PluginFront::~SS_PluginFront()
+ {
+ if (pluginChooser)
+ delete pluginChooser;
+ }
+
+/*!
+ \fn SS_PluginFront::clearPluginDisplay()
+ */
+void SS_PluginFront::clearPluginDisplay()
+ {
+ SS_TRACE_IN
+ if (expanded)
+ expandButtonPressed();
+
+ pluginName->setText("No plugin loaded");
+ pluginName->setEnabled(false);
+ onOff->setEnabled(false);
+ onOff->blockSignals(true);
+ onOff->setChecked(false);
+ onOff->blockSignals(false);
+
+ clearFxButton->setEnabled(false);
+ expandButton->setEnabled(false);
+ outGainSlider->setEnabled(false);
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginFront::setPluginName(QString name)
+ */
+void SS_PluginFront::setPluginName(QString name)
+ {
+ pluginName->setText(name);
+ }
+
+
+/*!
+ \fn SS_PluginFront::loadButton()
+ */
+void SS_PluginFront::loadButton()
+ {
+ SS_TRACE_IN
+ if (!pluginChooser)
+ pluginChooser = new SS_PluginChooser(this);
+
+ pluginChooser->exec();
+ if ((pluginChooser->result() == QDialog::Accepted) && pluginChooser->getSelectedPlugin()) {
+ Plugin* p = pluginChooser->getSelectedPlugin();
+ //printf("Selected plugin: %s\n", pluginChooser->getSelectedPlugin()->name().toLatin1().data());
+ emit loadPlugin(fxid, p->lib(), p->label());
+ }
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginFront::returnSliderMoved(int val)
+ */
+void SS_PluginFront::returnSliderMoved(int val)
+ {
+ emit returnLevelChanged(fxid, val);
+ }
+
+
+/*!
+ \fn SS_PluginFront::updatePluginValue(unsigned i)
+ */
+void SS_PluginFront::updatePluginValue(unsigned k)
+ {
+ SS_TRACE_IN
+ // If parameters are shown - close them
+ if (expanded) {
+ expandButtonPressed();
+ }
+
+ unsigned j=0;
+ if (k > plugins.size()) {
+ fprintf(stderr, "Internal error, tried to update plugin w range outside of list\n");
+ return;
+ }
+
+ iPlugin i;
+ for (i = plugins.begin(); j != k; i++, j++);
+ plugin = (LadspaPlugin*) *(i);
+ setPluginName(plugin->label());
+ outGainSlider->setEnabled(true);
+ clearFxButton->setEnabled(true);
+ expandButton->setEnabled(true);
+ pluginName->setEnabled(true);
+ onOff->setEnabled(true);
+ onOff->setChecked(true);
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginFront::onOffToggled(bool state)
+ */
+void SS_PluginFront::onOffToggled(bool state)
+ {
+ emit fxToggled(fxid, state);
+ }
+
+/*!
+ \fn SS_PluginFront::sizeHint() const
+ */
+QSize SS_PluginFront::sizeHint() const
+ {
+ return QSize(SS_PLUGINFRONT_MINWIDTH, 50);
+ }
+
+/*!
+ \fn SS_PluginFront::sizePolicy() const
+ */
+QSizePolicy SS_PluginFront::sizePolicy() const
+ {
+ return QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ }
+
+
+/*!
+ \fn SS_PluginFront::clearButtonPressed()
+ */
+void SS_PluginFront::clearButtonPressed()
+ {
+ // If parameters are shown - close them
+ if (expanded) {
+ expandButtonPressed();
+ }
+ emit clearPlugin(fxid);
+ }
+
+/*!
+ \fn SS_PluginFront::setRetGain(int val)
+ */
+void SS_PluginFront::setRetGain(int val)
+ {
+ outGainSlider->blockSignals(true);
+ outGainSlider->setValue(val);
+ outGainSlider->blockSignals(false);
+ }
+
+/*!
+ \fn SS_PluginFront::expandButtonPressed()
+ */
+void SS_PluginFront::expandButtonPressed()
+ {
+ SS_TRACE_IN
+ int sizeIncrease = 0;
+ QRect pf = geometry();
+
+ if (!expanded) {
+ plugin->parameter() == 1 ? sizeIncrease = SS_PLUGINFRONT_INC_PARAM_MIN : sizeIncrease = plugin->parameter() * SS_PLUGINFRONT_INC_PARAM;
+ pf.setHeight(pf.height() + sizeIncrease);
+ setMinimumSize(QSize(pf.width(), pf.height()));
+ setMaximumSize(QSize(SS_PLUGINGUI_MAX_WIDTH, pf.height()));
+ setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ setGeometry(pf);
+ emit sizeChanged(fxid, sizeIncrease);
+
+ expanded = true;
+ expandButton->setText("<-");
+ createPluginParameters();
+ }
+ else {
+//TODO expLayout->remove(expGroup);
+ expGroup->hide();
+ expGroup->deleteLater();
+ paramWidgets.clear();
+ expGroup = 0;
+ plugin->parameter() == 1 ? sizeIncrease = (0-SS_PLUGINFRONT_INC_PARAM_MIN) : sizeIncrease = 0 - (plugin->parameter() * SS_PLUGINFRONT_INC_PARAM);
+ expandButton->setText("->");
+ expanded = false;
+ pf.setHeight(pf.height() + sizeIncrease);
+ pf.setTop(pf.top() + sizeIncrease);
+ pf.setBottom(pf.bottom() + sizeIncrease);
+ setGeometry(pf);
+ adjustSize();
+ layout->activate();
+ setMinimumSize(QSize(pf.width(), pf.height()));
+ setMaximumSize(QSize(SS_PLUGINGUI_MAX_WIDTH, pf.height()));
+ setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ emit sizeChanged(fxid, sizeIncrease);
+ }
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginFront::createPluginParameters()
+ */
+void SS_PluginFront::createPluginParameters()
+ {
+ SS_TRACE_IN
+ expGroup = new QGroupBox(this);
+
+ expGroup->setMinimumSize(QSize(50, 50));
+ expGroup->setMaximumSize(QSize(SS_PLUGINGUI_MAX_WIDTH, (plugin->parameter() * SS_PLUGINFRONT_INC_PARAM - SS_PLUGINFRONT_MARGIN)));
+ expGroup->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+ expLayout->addWidget(expGroup);
+ expGroup->show();
+ QVBoxLayout* expGroupLayout = new QVBoxLayout(expGroup); // , 1);
+ expGroupLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
+//TD expGroupLayout->setResizeMode(QLayout::FreeResize);
+ expGroupLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+
+ for (int i=0; i < plugin->parameter(); i++) {
+ QHBoxLayout* paramStrip = new QHBoxLayout; // (expGroupLayout, 3);
+ expGroupLayout->addLayout(paramStrip);
+ paramStrip->setAlignment(Qt::AlignLeft);
+ QLabel* paramName = new QLabel(plugin->getParameterName(i), expGroup);
+ paramName->show();
+ paramName->setMinimumSize(QSize(150, 10));
+ paramName->setMaximumSize(QSize(300, SS_PLUGINFRONT_INC_PARAM));
+ paramName->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding));
+
+ paramStrip->addWidget(paramName);
+
+ if (plugin->isBool(i)) {
+ SS_ParameterCheckBox* paramCheckBox = new SS_ParameterCheckBox(expGroup, plugin, fxid, i);
+ paramCheckBox->setEnabled(true);
+ paramCheckBox->setParamValue((int) plugin->getControlValue(i));
+ paramCheckBox->show();
+ paramStrip->addWidget(paramCheckBox);
+ connect(paramCheckBox, SIGNAL(valueChanged(int, int, int)), SLOT(parameterValueChanged(int, int, int)));
+ }
+ else {
+ SS_ParameterSlider* paramSlider = new SS_ParameterSlider(expGroup, plugin, fxid, i);
+ paramSlider->setEnabled(true);
+ paramSlider->show();
+ paramSlider->setRange(SS_PLUGIN_PARAM_MIN, SS_PLUGIN_PARAM_MAX);
+
+ float max, min;
+ plugin->range(i, &min, &max);
+ //int intval = 0;
+ paramSlider->setParamValue(plugin->getGuiControlValue(i));
+ connect(paramSlider, SIGNAL(valueChanged(int, int, int)), SLOT(parameterValueChanged(int, int, int)));
+ paramStrip->addWidget(paramSlider);
+ }
+ }
+ expLayout->activate();
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginFront::parameterValueChanged(int fxid, int parameter, int val)
+ */
+void SS_PluginFront::parameterValueChanged(int fxid, int parameter, int val)
+ {
+ emit effectParameterChanged(fxid, parameter, val);
+ }
+
+/*!
+ \fn SS_PluginFront::setParameterValue(int param, float val)
+ */
+void SS_PluginFront::setParameterValue(int param, int val)
+ {
+ SS_TRACE_IN
+ int j=0;
+ for (SS_iParameterWidgetList i=paramWidgets.begin(); i != paramWidgets.end(); i++, j++) {
+ if (j == param) {
+ (*i)->setParamValue(val);
+ }
+ }
+ SS_TRACE_OUT
+ }
+
+SS_PluginGui::SS_PluginGui(QWidget* parent)
+ : QDialog(parent, false)
+ {
+ setWindowTitle("SimpleDrums LADSPA sendeffects");
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ pluginFronts[i] = 0;
+ }
+ layout = new QVBoxLayout(this);
+
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ pluginFronts[i] = new SS_PluginFront(this, i);
+ pluginFronts[i]->update();
+ layout->addWidget(pluginFronts[i]);
+ connect(pluginFronts[i], SIGNAL(loadPlugin(int, QString, QString)), simplesynthgui_ptr, SLOT(loadEffectInvoked(int, QString, QString)));
+ connect(pluginFronts[i], SIGNAL(returnLevelChanged(int, int)), simplesynthgui_ptr, SLOT(returnLevelChanged(int, int)));
+ connect(pluginFronts[i], SIGNAL(fxToggled(int, int)), simplesynthgui_ptr, SLOT(toggleEffectOnOff(int, int)));
+ connect(pluginFronts[i], SIGNAL(clearPlugin(int)), simplesynthgui_ptr, SLOT(clearPlugin(int)));
+ connect(pluginFronts[i], SIGNAL(sizeChanged(int, int)), SLOT(pluginFrontSizeChanged(int, int)));
+ connect(pluginFronts[i], SIGNAL(effectParameterChanged(int, int, int)), simplesynthgui_ptr, SLOT(effectParameterChanged(int, int, int)));
+ }
+ setMinimumSize(QSize(SS_PLUGINGUI_WIDTH, geometry().height()));
+ setMaximumSize(QSize(SS_PLUGINGUI_MAX_WIDTH, geometry().height()));
+ }
+
+
+/*!
+ \fn SS_PluginGui::pluginFrontSizeChanged(int fxid, int val)
+ */
+void SS_PluginGui::pluginFrontSizeChanged(int /*fxid*/, int val)
+ {
+ QRect r = geometry();
+ r.setHeight(r.height() + val);
+ setMinimumSize(QSize(SS_PLUGINGUI_WIDTH, r.height()));
+ setMaximumSize(QSize(SS_PLUGINGUI_MAX_WIDTH, r.height()));
+ setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ setGeometry(r);
+ adjustSize();
+ }
+
+SS_PluginFront* SS_PluginGui::getPluginFront(unsigned i)
+ {
+ SS_TRACE_IN
+ if (i<SS_NR_OF_SENDEFFECTS)
+ SS_TRACE_OUT
+ return pluginFronts[i];
+ }
diff --git a/muse_qt4_evolution/synti/simpledrums/ssplugingui.h b/muse_qt4_evolution/synti/simpledrums/ssplugingui.h
new file mode 100644
index 00000000..d613fd46
--- /dev/null
+++ b/muse_qt4_evolution/synti/simpledrums/ssplugingui.h
@@ -0,0 +1,198 @@
+//
+// C++ Interface: ssplugingui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef __SS_PLUGINGUI_H__
+#define __SS_PLUGINGUI_H__
+
+#include "ui_sspluginchooserbase.h"
+#include "common.h"
+#include "ssplugin.h"
+
+class SS_ParameterWidget
+ {
+ protected:
+ int fxid;
+ int parameter;
+
+ LadspaPlugin* plugin;
+
+ public:
+ SS_ParameterWidget() { }
+ virtual ~SS_ParameterWidget() { }
+ int getFxId() { SS_TRACE_IN SS_TRACE_OUT return fxid; }
+ bool isBool() { SS_TRACE_IN SS_TRACE_OUT return plugin->isBool(parameter); }
+ bool isLog() { SS_TRACE_IN SS_TRACE_OUT return plugin->isLog(parameter); }
+ bool isInt() { SS_TRACE_IN SS_TRACE_OUT return plugin->isInt(parameter); }
+ virtual void setParamValue(int) { printf("Virtual function - should not be called!"); };
+ };
+
+class SS_ParameterCheckBox : public QCheckBox, public SS_ParameterWidget
+ {
+ Q_OBJECT
+
+ public:
+ SS_ParameterCheckBox(QWidget* parent, LadspaPlugin* in_plugin, int in_id, int in_parameter)
+ : QCheckBox(parent) , SS_ParameterWidget()
+ {
+ SS_TRACE_IN
+ plugin = in_plugin;
+ fxid = in_id;
+ parameter = in_parameter;
+ connect(this, SIGNAL(clicked()), SLOT(isClicked()));
+ SS_TRACE_OUT
+ }
+
+ virtual void setParamValue(int val) { SS_TRACE_IN setChecked(val); SS_TRACE_OUT}
+
+ private slots:
+ void isClicked() { SS_TRACE_IN emit valueChanged(fxid, parameter, (int)this->isChecked()); SS_TRACE_OUT}
+
+ signals:
+ void valueChanged(int id, int param, int val);
+ };
+
+class SS_ParameterSlider : public QSlider, public SS_ParameterWidget
+ {
+ Q_OBJECT
+
+ public:
+ SS_ParameterSlider(QWidget* parent, LadspaPlugin* in_plugin, int in_id, int in_parameter)
+ : QSlider(Qt::Horizontal, parent), SS_ParameterWidget()
+ {
+ SS_TRACE_IN
+ plugin = in_plugin;
+ fxid = in_id;
+ parameter = in_parameter;
+ SS_TRACE_OUT
+ }
+
+ virtual void setParamValue(int val) { SS_TRACE_IN setValue(val); SS_TRACE_OUT}
+
+ public slots:
+ virtual void setValue(int val) { SS_TRACE_IN QSlider::setValue(val); emit valueChanged(fxid, parameter, val); SS_TRACE_OUT }
+
+ signals:
+ void valueChanged(int id, int param, int val);
+ };
+
+typedef std::list<SS_ParameterWidget*> SS_ParameterWidgetList;
+typedef std::list<SS_ParameterWidget*>::iterator SS_iParameterWidgetList ;
+
+//-------------------------------
+// SS_PluginChooser
+//-------------------------------
+class SS_PluginChooser : public QDialog, Ui::SS_PluginChooserBase
+{
+ Q_OBJECT
+ private:
+ LadspaPlugin* selectedPlugin;
+ protected:
+
+ public:
+ SS_PluginChooser(QWidget* parent);
+ LadspaPlugin* getSelectedPlugin() { SS_TRACE_IN SS_TRACE_OUT return selectedPlugin; }
+
+ private slots:
+ void okPressed();
+ void cancelPressed();
+ void selectionChanged(QTreeWidgetItem* item);
+ void doubleClicked(QTreeWidgetItem* item);
+
+ private:
+ QTreeWidgetItem* selectedItem;
+ LadspaPlugin* findSelectedPlugin();
+
+};
+
+//-------------------------------
+// SS_PluginGuiFront
+//-------------------------------
+class SS_PluginFront : public QGroupBox
+ {
+ Q_OBJECT
+ private:
+ QHBoxLayout* layout;
+ QVBoxLayout* expLayout;
+ QLineEdit* pluginName;
+ QCheckBox* onOff;
+ QPushButton* loadFxButton;
+ QPushButton* clearFxButton;
+ QPushButton* expandButton;
+ QSlider* outGainSlider;
+ SS_PluginChooser* pluginChooser;
+ LadspaPlugin* plugin;
+ QGroupBox* expGroup;
+
+ int fxid;
+ bool expanded;
+
+ //For effect parameters:
+ SS_ParameterWidgetList paramWidgets;
+
+ protected:
+
+ public:
+ SS_PluginFront(QWidget* parent, int id);
+ void setPluginName(QString name);
+ ~SS_PluginFront();
+ void updatePluginValue(unsigned i);
+ void clearPluginDisplay();
+ void setParameterValue(int param, int val);
+ void setRetGain(int val);
+
+ protected:
+ virtual QSize sizeHint() const;
+ virtual QSizePolicy sizePolicy() const;
+
+ private slots:
+ void loadButton();
+ void returnSliderMoved(int val);
+ void onOffToggled(bool state);
+ void clearButtonPressed();
+ void expandButtonPressed();
+ void parameterValueChanged(int fxid, int parameter, int val);
+
+ signals:
+ void loadPlugin(int fxid, QString lib, QString name);
+ void returnLevelChanged(int fxid, int val);
+ void fxToggled(int fxid, int state);
+ void clearPlugin(int fxid);
+ void sizeChanged(int fxid, int val);
+ void effectParameterChanged(int fxid, int param, int val);
+
+ private:
+ void createPluginParameters();
+ };
+
+
+//-------------------------------
+// SS_PluginGui
+// Main plugin class, dialog
+//-------------------------------
+class SS_PluginGui : public QDialog
+ {
+ Q_OBJECT
+ private:
+ QVBoxLayout* layout;
+ SS_PluginFront* pluginFronts[4];
+
+ public:
+ SS_PluginGui(QWidget* parent);
+ SS_PluginFront* getPluginFront(unsigned i);
+ ~SS_PluginGui() {}
+private slots:
+ void pluginFrontSizeChanged(int fxid, int val);
+ };
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/vam/CMakeLists.txt b/muse_qt4_evolution/synti/vam/CMakeLists.txt
new file mode 100644
index 00000000..5311f3bf
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/CMakeLists.txt
@@ -0,0 +1,50 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+QT4_WRAP_CPP ( vam_mocs vamgui.h )
+QT4_WRAP_UI ( vam_uis vamgui.ui )
+
+add_library ( vam SHARED
+ vam.cpp
+ vamgui.cpp
+ vamgui.h
+ ${vam_mocs}
+ ${vam_uis}
+ )
+
+target_link_libraries( vam synti )
+
+# - tell cmake to name target vam.so instead of
+# libvam.so
+# - use precompiled header files
+#
+set_target_properties ( vam
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+target_link_libraries(vam
+ al
+ synti
+ ${QT_LIBRARIES}
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ vam )
+
diff --git a/muse_qt4_evolution/synti/vam/COPYING b/muse_qt4_evolution/synti/vam/COPYING
new file mode 100644
index 00000000..dc63aaca
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/COPYING
@@ -0,0 +1,340 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/muse_qt4_evolution/synti/vam/ChangeLog b/muse_qt4_evolution/synti/vam/ChangeLog
new file mode 100644
index 00000000..1a7e4258
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/ChangeLog
@@ -0,0 +1,16 @@
+
+VAM-1.0beta2b (4/02 - 2002)
+ * Fix to prevent clicks on new notes
+ * Gui improvements (Thanks Werner and Bob)
+
+VAM-1.0beta2 (24/01 - 2002)
+ * Fix to make presets save and load correctly
+ * DSP improvements
+ * PW & PWM
+ * Some basic presets
+ * Small fixes
+ * Filter keytracking
+ * Load only preset meant for vam
+
+VAM-1.0beta1 (21/01 - 2002):
+ First release. \ No newline at end of file
diff --git a/muse_qt4_evolution/synti/vam/README b/muse_qt4_evolution/synti/vam/README
new file mode 100644
index 00000000..1b1ee269
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/README
@@ -0,0 +1,42 @@
+VAM: Virtual Analog for MusE
+
+ by Josef Lindman Hörnlund
+
+
+*** WARNING! VAM has at the time some significant problems
+*** (esp. with the filter). Some parameters should not have
+*** high values ( like the filter resonance, the filter
+*** env mod or dco sustain )
+
+* What's VAM??
+
+ VAM is a soft synth for MusE (http://muse.seh.de) emulating
+ an old monophonic two oscillator analog synthesizer. It has
+ a simple interface and a quite fast synthesis engine.
+
+* Installation
+ MusE version >= 0.5.0 required (I think)
+ ( and everything that MusE requires, like Qt3 )
+
+ Unpack VAM in $MUSESOURCEDIR/synthi and run from vam/ make;
+ make install. VAM won't compile automaticly if you run make
+ from $MUSESOURCEDIR.
+ $MUSESOURCEDIR is the directory you have the MusE source.
+ For optimizing add -march=(your arch) to the compiler arguments
+ in Makefile.
+
+* Using VAM:
+
+ To have fun with VAM MusE really should be started with -R.
+ Otherwise VAM will produce mostly noise, like clicks.
+ If you're familiar with analog or virtual analog synthesizers
+ using VAM souldn't be a problem.
+
+ If you add some cool LADSPA plugins like delay or chorus to VAM's
+ output, you'll get _much_ better sounds, playing without effects
+ is like eating beef without sauce.
+
+* Contact:
+
+ Please mail me at jotsif@linux.nu if you're having any
+ problems, suggestions, bugs, ideas or other comments.
diff --git a/muse_qt4_evolution/synti/vam/TODO b/muse_qt4_evolution/synti/vam/TODO
new file mode 100644
index 00000000..370bb521
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/TODO
@@ -0,0 +1,3 @@
+
+1. Make bandlimited wavetables!!
+2. Split VAM into a polyphonic and a monophonic synth \ No newline at end of file
diff --git a/muse_qt4_evolution/synti/vam/vam.cpp b/muse_qt4_evolution/synti/vam/vam.cpp
new file mode 100644
index 00000000..bc5c035a
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/vam.cpp
@@ -0,0 +1,801 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// Parts of this file taken from:
+// The analogue oscillator from Steve Harris plugin collection.
+// Werner Schweer's organ softsynth for MusE.
+// The music-dsp source archive.
+//
+// (C) Copyright 2002 Jotsif Lindman Hölund (jotsif@linux.nu)
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//=========================================================
+
+#include "libsynti/mess.h"
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+
+#include "vam.h"
+#include "vamgui.h"
+#include "libsynti/mono.h"
+
+// Denormalise floats, only actually needed for PIII and very recent PowerPC
+#define DENORMALISE(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
+
+// A fast, truncating towards 0 modulo function. ANSI C doesn't define
+// which % will do, most truncate towards -inf
+#define MOD(v,m) (v<0?v+m:(v>m?v-m:v))
+
+// Limit values
+#define LIMIT(v,l,u) (v<l?l:(v>u?u:v))
+
+#define PI M_PI
+
+//---------------------------------------------------------
+// Oscillator
+//---------------------------------------------------------
+
+struct Oscillator {
+ float phase;
+ float pitchmod;
+ float detune;
+ float freq;
+ float pwm;
+ float pw;
+ float fm;
+ int waveform;
+ bool on;
+};
+
+struct LPFilter {
+ float out[4];
+ float in[4];
+};
+
+//---------------------------------------------------------
+// Envelope
+//---------------------------------------------------------
+
+struct EnvelopeGenerator {
+ static const int onStates = 2;
+ static const int offStates = 1;
+
+ struct Segment {
+ int ticks;
+ double incr;
+ };
+ Segment segment[onStates + offStates];
+
+ int state;
+ double env;
+ int tick;
+
+ int attack;
+ int decay;
+ float sustain;
+ int release;
+
+ EnvelopeGenerator() {
+ segment[0].ticks = 441;
+ segment[0].incr = 1.0/441.0;
+ segment[1].ticks = 0;
+ segment[1].incr = 0.0;
+ segment[2].ticks = 441;
+ segment[2].incr = -(1.0/441.0);
+ }
+
+ void setSegment(int seg, int ticks, double incr) {
+ segment[seg].ticks = ticks;
+ segment[seg].incr = incr;
+ }
+
+ void keyOn() {
+// env = 0.0;
+ state = 0;
+ if(env) segment[state].incr = (1.0 - env) / segment[state].ticks;
+ else env = 0.0;
+ tick = segment[state].ticks;
+ }
+ void keyOff() {
+ state = onStates;
+ tick = segment[state].ticks;
+ }
+ bool isOff() {
+ return state == (onStates+offStates);
+ }
+ bool step() {
+ if(state >= onStates+offStates)
+ return false;
+ if (tick == 0)
+ return true;
+ env +=segment[state].incr;
+ if(env < 0.0)
+ env = 0.0;
+ --tick;
+ while(tick == 0) {
+ ++state;
+ if(state >= onStates+offStates)
+ return false;
+ if(state == onStates)
+ return true;
+ tick = segment[state].ticks;
+ }
+ return true;
+ }
+};
+
+//---------------------------------------------------------
+// VAM
+//---------------------------------------------------------
+
+class VAM : public MessMono {
+ static int useCount;
+ static const int CB_AMP_SIZE = 961;
+ static const int LIN2EXP_SIZE = 256;
+
+ static double cb2amp_tab[CB_AMP_SIZE];
+ static double cb2amp(double cb);
+
+ static float lin2exp[LIN2EXP_SIZE];
+
+/* Synthvariables */
+ static float *sin_tbl, *tri_tbl, *saw_tbl, *squ_tbl;
+ bool isOn;
+ int pitch, channel;
+ float velocity;
+
+ int idata[NUM_CONTROLLER]; // buffer for init data
+
+ EnvelopeGenerator dco1_env;
+ EnvelopeGenerator dco2_env;
+ EnvelopeGenerator filt_env;
+
+ LPFilter dco1_filter;
+ LPFilter dco2_filter;
+
+ Oscillator dco1;
+ Oscillator dco2;
+ Oscillator lfo;
+
+ bool filt_invert, filt_keytrack;
+
+ double filt_env_mod, filt_res, filt_cutoff, keytrack_cutoff;
+
+ int controller[NUM_CONTROLLER];
+
+ void noteoff(int channel, int pitch);
+
+ virtual void process(float**, int, int);
+ virtual void note(int channel, int pitch, int velo);
+ virtual bool setController(int channel, int ctrl, int val);
+ virtual bool sysex(int, const unsigned char*);
+ void getInitData(int* n, const unsigned char**p);
+
+ void setController(int ctrl, int data);
+
+ float *wave_tbl(int wave);
+ double lowpass_filter(double cutoff, double resonance, double input, LPFilter *f);
+
+ virtual bool guiVisible() const;
+ virtual void showGui(bool);
+ virtual bool hasGui() const { return true; }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int x, int y, int w, int h);
+
+ VAMGui* gui;
+
+ public:
+ VAM(int sr);
+ ~VAM();
+ bool init(const char* name);
+ };
+
+float* VAM::sin_tbl;
+float* VAM::tri_tbl;
+float* VAM::saw_tbl;
+float* VAM::squ_tbl;
+int VAM::useCount = 0;
+double VAM::cb2amp_tab[VAM::CB_AMP_SIZE];
+float VAM::lin2exp[VAM::LIN2EXP_SIZE];
+
+
+//---------------------------------------------------------
+// VAM
+//---------------------------------------------------------
+
+VAM::VAM(int sr)
+ : MessMono()
+ {
+ setSampleRate(sr);
+ gui = 0;
+ }
+
+//---------------------------------------------------------
+// ~VAM
+//---------------------------------------------------------
+
+VAM::~VAM()
+ {
+ --useCount;
+ if (useCount == 0) {
+ delete[] sin_tbl;
+ delete[] tri_tbl;
+ delete[] saw_tbl;
+ delete[] squ_tbl;
+ }
+ }
+
+//---------------------------------------------------------
+// curTime
+//---------------------------------------------------------
+
+double VAM::cb2amp(double cb)
+{
+ if(cb < 0.0)
+ return 1.0;
+ if(cb > 960.0)
+ return 0.0;
+ return cb2amp_tab[int(cb)];
+}
+
+double VAM::lowpass_filter(double cutoff, double resonance, double input, LPFilter *f)
+{
+ double output;
+ cutoff *= 1.16;
+
+ input -= f->out[3] * (resonance * 4.0) * (1.0 - 0.15 * cutoff * cutoff);
+ input *= 0.35013 * cutoff * cutoff * cutoff * cutoff;
+
+ f->out[0] = input + 0.3 * f->in[0] + (1.0 - cutoff) * f->out[0]; // Pole 1
+ f->in[0] = input;
+ f->out[1] = f->out[0] + 0.3 * f->in[1] + (1.0 - cutoff) * f->out[1]; // Pole 2
+ f->in[1] = f->out[0];
+ f->out[2] = f->out[1] + 0.3 * f->in[2] + (1.0 - cutoff) * f->out[2]; // Pole 3
+ f->in[2] = f->out[1];
+ f->out[3] = f->out[2] + 0.3 * f->in[3] + (1.0 - cutoff) * f->out[3]; // Pole 4
+ f->in[3] = f->out[2];
+
+// if(f.out[3] > 1.0) f.out[3] = 1.0;
+
+ output = f->out[3];
+
+
+ return output;
+}
+
+float *VAM::wave_tbl(int wave)
+{
+ if (wave == 0) {
+ return sin_tbl;
+ }
+ else if (wave == 1) {
+ return squ_tbl;
+ }
+ else if (wave == 2) {
+ return saw_tbl;
+ }
+ else if (wave == 3) {
+ return tri_tbl;
+ }
+ return sin_tbl;
+}
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool VAM::init(const char* name)
+ {
+ gui = new VAMGui;
+ gui->hide(); // to avoid flicker during MusE startup
+ gui->setWindowTitle(QString(name));
+
+ if (useCount == 0) {
+ int i;
+ float tmp;
+ for(i = 0; i < CB_AMP_SIZE; i++) {
+ cb2amp_tab[i] = pow(10.0, double(i) / -300.0);
+// cb2amp_tab[i] = 1.0 - i/(float)CB_AMP_SIZE;
+ }
+ for(i = 0; i < LIN2EXP_SIZE; i++) {
+ tmp = i/255.0;
+ lin2exp[i] = 1.5 * tmp * tmp * tmp - 0.69 * tmp * tmp + 0.16 * tmp;
+ }
+ int sr = sampleRate();
+ /* Build up denormalised oscilator wavetables, these are sample_rate
+ long, costs more RAM to create them but makes freqency calcs much
+ cheaper, and means that interpolation isn't that neccesary, esp if
+ you use integer frequncies */
+
+ float *tmp_tbl = new float[sr];
+ const int lag = sr/50;
+ sin_tbl = new float[sr];
+ for (i = 0; i < sr; i++) {
+ tmp = sin(i * 2.0 * PI / sr);
+ sin_tbl[i] = DENORMALISE(tmp);
+ }
+ tri_tbl = new float[sr];
+ for (i = 0; i < sr; i++) {
+ tmp = acos(cos(i * 2.0 * PI / sr)) / PI * 2.0 - 1.0;
+ tri_tbl[i] = DENORMALISE(tmp);
+ }
+ squ_tbl = new float[sr];
+ for (i = 0; i < sr/2; i++) {
+ tmp_tbl[i] = -1.0f;
+ }
+ for (i = sr/2; i < sr; i++) {
+ tmp_tbl[i] = +1.0f;
+ }
+ tmp = -1.0f;
+ for (i = (sr/2)-lag; i < (sr/2)+lag; i++) {
+ tmp_tbl[i] = tmp;
+ tmp += 1.0/(lag * 2.0);
+ }
+ for (i = 0; i < sr; i++) {
+ squ_tbl[i] = (tmp_tbl[MOD(i-lag, sr)] +
+ tmp_tbl[MOD(i+lag, sr)]) * 0.5;
+ }
+ saw_tbl = new float[sr];
+ for (i = 0; i < sr; i++) {
+ tmp = ((2.0 * i) - (float)sr) / (float)sr;
+ tmp_tbl[i] = DENORMALISE(tmp);
+ }
+ for (i = 0; i < sr; i++) {
+ saw_tbl[i] = (tmp_tbl[MOD(i-lag, sr)] +
+ tmp_tbl[MOD(i+lag, sr)]) * 0.5;
+ }
+ delete[] tmp_tbl;
+ }
+
+ dco1_filter.out[0] = dco1_filter.out[1] = dco1_filter.out[2] = dco1_filter.out[3] = 0.0;
+ dco1_filter.in[0] = dco1_filter.in[1] = dco1_filter.in[2] = dco1_filter.in[3] = 0.0;
+ dco2_filter.out[0] = dco2_filter.out[1] = dco2_filter.out[2] = dco2_filter.out[3] = 0.0;
+ dco2_filter.in[0] = dco2_filter.in[1] = dco2_filter.in[2] = dco2_filter.in[3] = 0.0;
+
+ ++useCount;
+ dco1.phase = 0.0;
+ dco2.phase = 0.0;
+ lfo.phase = 0.0;
+
+ memset(controller, 0, sizeof(controller));
+
+ int maxval = 128*128-1;
+
+ setController(0, DCO1_PITCHMOD, 8191);
+ setController(0, DCO2_PITCHMOD, 8191);
+ setController(0, DCO1_WAVEFORM, 1);
+ setController(0, DCO2_WAVEFORM, 1);
+ setController(0, DCO1_FM, 0);
+ setController(0, DCO2_FM, 0);
+ setController(0, DCO1_PWM, 0);
+ setController(0, DCO2_PWM, 0);
+ setController(0, DCO1_ATTACK, 0);
+ setController(0, DCO2_ATTACK, 0);
+ setController(0, DCO1_DECAY, 0);
+ setController(0, DCO2_DECAY, 0);
+ setController(0, DCO1_SUSTAIN, maxval - 255);
+ setController(0, DCO2_SUSTAIN, maxval - 255);
+ setController(0, DCO1_RELEASE, 0);
+ setController(0, DCO2_RELEASE, 0);
+ setController(0, LFO_FREQ, 0);
+ setController(0, LFO_WAVEFORM, 0);
+ setController(0, FILT_ENV_MOD, 0);
+ setController(0, FILT_KEYTRACK, 0);
+ setController(0, FILT_RES, 0);
+ setController(0, FILT_ATTACK, 0);
+ setController(0, FILT_DECAY, 0);
+ setController(0, FILT_SUSTAIN, maxval);
+ setController(0, FILT_RELEASE, 3);
+ setController(0, DCO2ON, 0);
+ setController(0, FILT_INVERT, 0);
+ setController(0, FILT_CUTOFF, 15000);
+ setController(0, DCO1_DETUNE, 8191);
+ setController(0, DCO2_DETUNE, 8191);
+ setController(0, DCO1_PW, 0);
+ setController(0, DCO2_PW, 0);
+
+ isOn = false;
+ return false;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void VAM::process(float** ports, int offset, int sampleCount)
+{
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize()) {
+ MidiEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER) {
+ // process local?
+ setController(ev.dataA() & 0xfff, ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("Organ::process(): unknown event\n");
+ }
+ float* buffer = *ports + offset;
+ if (!isOn)
+ return;
+
+ float sample, osc, lfol, *dco1_tbl, *dco2_tbl, *lfo_tbl, pw;
+ float cutoff;
+ int sr = sampleRate();
+
+ dco1_tbl = wave_tbl(dco1.waveform);
+ dco2_tbl = wave_tbl(dco2.waveform);
+ lfo_tbl = wave_tbl(lfo.waveform);
+
+ cutoff = filt_keytrack ? (dco1.freq /500.0 + filt_cutoff)/2 : filt_cutoff;
+ cutoff = LIMIT(cutoff, 0.0, 1.0);
+
+ for (int i = 0; i < sampleCount; i++) {
+ if(!(dco1_env.step() + dco2_env.step())) {
+ isOn = false;
+ break;
+ }
+ filt_env.step();
+
+ /* DCO 1 */
+ lfol = lfo_tbl[(int)lfo.phase];
+ pw = dco1.pw + dco1.pwm * lfol * 0.5;
+ pw = LIMIT(pw, 0.0, 1.0);
+ if(dco1.phase < sr/2 * ( 1.0 - pw))
+ osc = dco1_tbl[int(dco1.phase / (1.0 - pw))];
+ else
+ osc = dco1_tbl[int(dco1.phase / (1.0 + pw))];
+ lfol = lfo_tbl[(int)lfo.phase];
+ dco1.phase += dco1.freq + dco1.fm * lfol * 1500.0;
+ lfo.phase += lfo.freq * 50.0;
+ if(!filt_invert)
+ sample = lowpass_filter((cb2amp(960.0 * (1.0 - filt_env_mod * filt_env.env))
+ + 1.0 - filt_env_mod) * cutoff,
+ filt_res, osc, &dco1_filter) * cb2amp(960.0 * (1.0 - dco1_env.env));
+ else sample = lowpass_filter((cb2amp(960.0 * (1.0 - filt_env_mod * (1.0 - filt_env.env)))
+ + 1.0 - filt_env_mod) * cutoff,
+ filt_res, osc, &dco1_filter) * cb2amp(960.0 * (1.0 - dco1_env.env));
+ while(dco1.phase > sr) dco1.phase -= sr;
+ while(dco1.phase < 0.0) dco1.phase += sr;
+
+ /* DCO 2 */
+ if(dco2.on) {
+ pw = dco2.pw + dco2.pwm * lfol * 0.5;
+ pw = LIMIT(pw, 0.0, 1.0);
+ if(dco2.phase < sr/2 * (1 - pw))
+ osc = dco2_tbl[int(dco2.phase / (1.0 - pw))];
+ else
+ osc = dco2_tbl[int(dco2.phase / (1.0 + pw))];
+ dco2.phase += dco2.freq + dco2.fm * lfol * 1500.0;
+ if(!filt_invert)
+ sample += lowpass_filter((cb2amp(960.0 * (1.0 - filt_env_mod * filt_env.env)) + 1.0 - filt_env_mod) * cutoff,
+ filt_res, osc, &dco2_filter) * cb2amp(960.0 * (1.0 - dco2_env.env));
+ else sample += lowpass_filter((cb2amp(960.0 * (1.0 - filt_env_mod * (1.0 - filt_env.env))) + 1.0 - filt_env_mod) * cutoff,
+ filt_res, osc, &dco2_filter) * cb2amp(960.0 * (1.0 - dco2_env.env));
+
+ while (dco2.phase > sr) dco2.phase -= sr;
+ while (dco2.phase < 0.0) dco2.phase += sr;
+ }
+ while(lfo.phase > sr) lfo.phase -= sr;
+ while(lfo.phase < 0.0) lfo.phase += sr;
+ sample *= velocity * 0.5;
+ sample = LIMIT(sample, -1.0, 1.0);
+
+// if(sample > 1.0) fprintf(stderr, "oooops %f\n", sample);
+ buffer[i] = sample;
+ }
+}
+
+//---------------------------------------------------------
+// note
+//---------------------------------------------------------
+
+void VAM::note(int chan, int newpitch, int velo)
+{
+ if (velo == 0) {
+ noteoff(chan, newpitch);
+ return;
+ }
+ isOn = true;
+ channel = chan;
+ pitch = newpitch;
+ velocity = velo / 127.0;
+ dco1.freq = 8.176 * exp(float(pitch + dco1.pitchmod + dco1.detune)*log(2.0)/12.0);
+ dco2.freq = 8.176 * exp(float(pitch + dco2.pitchmod + dco2.detune)*log(2.0)/12.0);
+ keytrack_cutoff = 16.0 * dco1.freq / sampleRate();
+ if(keytrack_cutoff > 1.0) keytrack_cutoff = 1.0;
+ dco1_env.setSegment(0, dco1_env.attack, 1.0/dco1_env.attack);
+ dco1_env.setSegment(1, dco1_env.decay, -((1.0-dco1_env.sustain)/dco1_env.decay));
+ dco2_env.setSegment(0, dco2_env.attack, 1.0/dco2_env.attack);
+ dco2_env.setSegment(1, dco2_env.decay, -((1.0-dco2_env.sustain)/dco2_env.decay));
+ filt_env.setSegment(0, filt_env.attack, 1.0/filt_env.attack);
+ filt_env.setSegment(1, filt_env.decay, -((1.0-filt_env.sustain)/filt_env.decay));
+ dco1_env.keyOn();
+ dco2_env.keyOn();
+ filt_env.env = 0.0;
+ filt_env.keyOn();
+// dco1.phase = 0.0;
+// dco2.phase = 0.0;
+// lfo.phase = 0.0;
+}
+
+//---------------------------------------------------------
+// noteoff
+//---------------------------------------------------------
+
+void VAM::noteoff(int chan, int offpitch)
+{
+ if(isOn && (pitch == offpitch) && (channel == chan)) {
+ dco1_env.keyOff();
+ dco2_env.keyOff();
+ filt_env.keyOff();
+ }
+}
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool VAM::setController(int /*channel*/, int ctrl, int data)
+{
+ setController(ctrl & 0xfff, data);
+ MidiEvent ev(0, channel, ME_CONTROLLER, ctrl, data);
+ gui->writeEvent(ev);
+ return false;
+ }
+
+void VAM::setController(int ctrl, int data)
+ {
+// fprintf(stderr, "ctrl: %d data: %d\n", ctrl, data);
+ int maxval = 128*128-1;
+ double normval = double(data) / double(maxval);
+ switch (ctrl) {
+ case DCO1_PITCHMOD:
+ dco1.pitchmod = (data - 8191) / 341.333;
+ break;
+ case DCO1_WAVEFORM:
+ dco1.waveform = data;
+ break;
+ case DCO1_FM:
+ dco1.fm = lin2exp[int(normval * 255.0)];
+ break;
+ case DCO1_PWM:
+ dco1.pwm = normval;
+ break;
+ case DCO1_ATTACK:
+ dco1_env.attack = int(lin2exp[int(normval * 255.0)] * 5.0 * sampleRate()) + 1;
+ break;
+ case DCO1_DECAY:
+ dco1_env.decay = (data * sampleRate() * 5) / maxval + 1;
+ break;
+ case DCO1_SUSTAIN:
+ dco1_env.sustain = normval;
+ break;
+ case DCO1_RELEASE:
+ dco1_env.release = int(lin2exp[int(normval * 255.0)] * 10.0 * sampleRate()) + 1;
+ dco1_env.setSegment(2, dco1_env.release, -(1.0/dco1_env.release));
+ break;
+
+ case DCO2_PITCHMOD:
+ dco2.pitchmod = (data - 8191) / 341.333;
+ break;
+ case DCO2_WAVEFORM:
+ dco2.waveform = data;
+ break;
+ case DCO2_FM:
+ dco2.fm = normval;
+ break;
+ case DCO2_PWM:
+ dco2.pwm = normval;
+ break;
+ case DCO2_ATTACK:
+ dco2_env.attack = int(lin2exp[int(normval * 255.0)] * 5.0 * sampleRate()) + 1;
+ break;
+ case DCO2_DECAY:
+ dco2_env.decay = (data * sampleRate() * 5) / maxval + 1;
+ break;
+ case DCO2_SUSTAIN:
+ dco2_env.sustain = normval;
+ break;
+ case DCO2_RELEASE:
+ dco2_env.release = int(lin2exp[int(normval * 255.0)] * 10.0 * sampleRate()) + 1;
+ dco2_env.setSegment(2, dco2_env.release, -(1.0/dco2_env.release));
+ break;
+ case LFO_FREQ:
+ lfo.freq = lin2exp[int(normval * 255.0)];
+// fprintf(stderr, "%f\n", lfo.freq);
+ break;
+ case LFO_WAVEFORM:
+ lfo.waveform = data;
+ break;
+ case FILT_ENV_MOD:
+ filt_env_mod = 1.0 - lin2exp[int(255.0 - normval * 255.0)];
+ break;
+ case FILT_KEYTRACK:
+ filt_keytrack = data;
+ break;
+ case FILT_RES:
+ filt_res = normval;
+ break;
+ case FILT_ATTACK:
+ filt_env.attack = int(lin2exp[int(normval * 255.0)] * 5.0 * sampleRate());
+ break;
+ case FILT_DECAY:
+ filt_env.decay = (data * sampleRate() * 5) / maxval + 1;
+ break;
+ case FILT_SUSTAIN:
+ filt_env.sustain = normval;
+ break;
+ case FILT_RELEASE:
+ filt_env.release = int(lin2exp[int(normval * 255.0)] * 10.0 * sampleRate()) + 1;
+ filt_env.setSegment(2, filt_env.release, -(1.0/filt_env.release));
+ break;
+ case DCO2ON:
+ dco2.on = data;
+ break;
+ case FILT_INVERT:
+ filt_invert = data;
+ break;
+ case FILT_CUTOFF:
+ filt_cutoff = normval;
+// fprintf(stderr, "%f\n", filt_cutoff);
+ break;
+ case DCO1_DETUNE:
+ dco1.detune = (data - 8191) / 16384.0;
+ break;
+ case DCO2_DETUNE:
+ dco2.detune = (data - 8191) / 16384.0;
+ break;
+ case DCO1_PW:
+ dco1.pw = normval;
+ if(dco1.pw == 1.0) dco1.pw = 0.99;
+
+ break;
+ case DCO2_PW:
+ dco2.pw = normval;
+ if(dco2.pw == 1.0) dco2.pw = 0.99;
+ break;
+ default:
+ printf("VAM: set unknown Ctrl 0x%x to 0x%x\n", ctrl, data);
+ break;
+ }
+ controller[ctrl] = data;
+}
+
+//---------------------------------------------------------
+// parameterRequest
+//---------------------------------------------------------
+
+#if 0
+void VAM::parameterRequest(int ctrl)
+{
+ if(ctrl >= NUM_CONTROLLER) {
+ fprintf(stderr, "VAM: illegal controller %d request\n", ctrl);
+ return;
+ }
+ unsigned char data[] = { 0x7c, 0x2, 0x2, 0x0, 0x0, 0x0 };
+ data[3] = ctrl;
+ data[4] = controller[ctrl] & 0x7f;
+ data[5] = (controller[ctrl] >> 7) & 0x7f;
+ sendSysex(data, sizeof(data));
+}
+#endif
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void VAM::getInitData(int* n, const unsigned char**p)
+ {
+ int* d = idata;
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ int val = controller[i];
+ *d++ = val;
+ }
+ *n = NUM_CONTROLLER * sizeof(int); // sizeof(idata);
+ *p = (unsigned char*)idata;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool VAM::sysex(int n, const unsigned char* data)
+ {
+ if (n != (NUM_CONTROLLER * sizeof(int))) {
+ printf("Organ: unknown sysex\n");
+ return false;
+ }
+ int* s = (int*) data;
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ int val = *s++;
+ setController(0, i, val);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool VAM::guiVisible() const
+ {
+ return gui->isVisible();
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void VAM::showGui(bool val)
+ {
+ gui->setShown(val);
+ }
+
+//---------------------------------------------------------
+// getGeometry
+//---------------------------------------------------------
+
+void VAM::getGeometry(int* x, int* y, int* w, int* h) const
+ {
+ QPoint pos(gui->pos());
+ QSize size(gui->size());
+ *x = pos.x();
+ *y = pos.y();
+ *w = size.width();
+ *h = size.height();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void VAM::setGeometry(int x, int y, int w, int h)
+ {
+ gui->resize(QSize(w, h));
+ gui->move(QPoint(x, y));
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+static Mess* instantiate(int sr, const char* name)
+ {
+ VAM* vam = new VAM(sr);
+ if (vam->init(name)) {
+ delete vam;
+ return 0;
+ }
+ return vam;
+ }
+
+extern "C" {
+ static MESS descriptor = {
+ "vam",
+ "vam soft synth",
+ "0.1", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+
diff --git a/muse_qt4_evolution/synti/vam/vam.h b/muse_qt4_evolution/synti/vam/vam.h
new file mode 100644
index 00000000..44bfc032
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/vam.h
@@ -0,0 +1,37 @@
+// vam.h
+//
+// (C) Copyright 2002 Jotsif Lindman Hörnlund (jotsif@linux.nu)
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+
+
+#ifndef __VAM_H
+#define __VAM_H
+
+enum {
+ DCO1_PITCHMOD, DCO1_WAVEFORM, DCO1_FM, DCO1_PWM,
+ DCO1_ATTACK, DCO1_DECAY, DCO1_SUSTAIN, DCO1_RELEASE,
+ DCO2_PITCHMOD, DCO2_WAVEFORM, DCO2_FM, DCO2_PWM,
+ DCO2_ATTACK, DCO2_DECAY, DCO2_SUSTAIN, DCO2_RELEASE,
+ LFO_FREQ, LFO_WAVEFORM, FILT_ENV_MOD, FILT_KEYTRACK,
+ FILT_RES, FILT_ATTACK, FILT_DECAY, FILT_SUSTAIN,
+ FILT_RELEASE, DCO2ON, FILT_INVERT, FILT_CUTOFF,
+ DCO1_DETUNE, DCO2_DETUNE, DCO1_PW, DCO2_PW
+};
+
+#define NUM_CONTROLLER 32
+
+#endif /* __VAM_H */
diff --git a/muse_qt4_evolution/synti/vam/vamgui.cpp b/muse_qt4_evolution/synti/vam/vamgui.cpp
new file mode 100644
index 00000000..c4d93672
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/vamgui.cpp
@@ -0,0 +1,618 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// vamgui.c
+// This is a simple GUI implemented with QT for
+// vam software synthesizer.
+// (Many) parts of this file was taken from Werner Schweer's GUI
+// for his organ soft synth.
+//
+// (C) Copyright 2002 Jotsif Lindman Hölund (jotsif@linux.nu)
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//=========================================================
+
+#include "vamgui.h"
+#include "vam.h"
+
+#include "al/xml.h"
+using AL::Xml;
+
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+
+//---------------------------------------------------------
+// Preset
+//---------------------------------------------------------
+
+struct Preset {
+ QString name;
+ int ctrl[NUM_CONTROLLER];
+ void readConfiguration(QDomNode);
+ void readControl(QDomNode);
+ void writeConfiguration(Xml& xml);
+ };
+
+std::list<Preset> presets;
+typedef std::list<Preset>::iterator iPreset;
+
+QString museProject;
+QString museGlobalShare;
+QString museUser;
+
+QString instanceName;
+//static const char* presetFileTypes[] = {
+// "Presets (*.pre)",
+// 0
+// };
+
+//---------------------------------------------------------
+// readControl
+//---------------------------------------------------------
+
+void Preset::readControl(QDomNode)
+{
+#if 0
+ int idx = 0;
+ int val = 0;
+ for (;;) {
+ Xml::Token token(xml.parse());
+ const QString& tag(xml.s1());
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ xml.unknown("control");
+ break;
+ case Xml::Attribut:
+ if (tag == "idx") {
+ idx = xml.s2().toInt();
+ if (idx >= NUM_CONTROLLER)
+ idx = 0;
+ }
+ else if (tag == "val")
+ val = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "control") {
+ ctrl[idx] = val;
+ return;
+ }
+ default:
+ break;
+ }
+ }
+#endif
+}
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void Preset::readConfiguration(QDomNode /*node*/)
+{
+#if 0
+ for (;;) {
+ Xml::Token token(xml.parse());
+ const QString& tag(xml.s1());
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (tag == "control")
+ readControl(xml);
+ else
+ xml.unknown("preset");
+ break;
+ case Xml::Attribut:
+ if (tag == "name")
+ name = xml.s2();
+ break;
+ case Xml::TagEnd:
+ if (tag == "preset")
+ return;
+ default:
+ break;
+ }
+ }
+#endif
+}
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void Preset::writeConfiguration(Xml& xml)
+{
+ xml.stag(QString("preset name=\"%1\"").arg(name));
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ xml.tagE(QString("control idx=\"%1\" val=\"%2\"").arg(i).arg(ctrl[i]));
+ }
+ xml.etag("preset");
+}
+
+//---------------------------------------------------------
+// VAMGui
+//---------------------------------------------------------
+
+VAMGui::VAMGui()
+// : QWidget(0, "vamgui", Qt::WType_TopLevel),
+ : QWidget(0),
+ MessGui()
+{
+ setupUi(this);
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+
+ dctrl[DCO1_PITCHMOD] = SynthGuiCtrl(PitchModS, LCDNumber1, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_WAVEFORM] = SynthGuiCtrl(Waveform, 0, SynthGuiCtrl::COMBOBOX);
+ dctrl[DCO1_FM] = SynthGuiCtrl(FMS, LCDNumber1_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_PWM] = SynthGuiCtrl(PWMS, LCDNumber1_3, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_ATTACK] = SynthGuiCtrl(AttackS, LCDNumber1_3_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_DECAY] = SynthGuiCtrl(DecayS, LCDNumber1_3_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_SUSTAIN] = SynthGuiCtrl(SustainS, LCDNumber1_3_2_3, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_RELEASE] = SynthGuiCtrl(ReleaseS, LCDNumber1_3_2_4, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_PITCHMOD] = SynthGuiCtrl(PitchModS2, LCDNumber1_4, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_WAVEFORM] = SynthGuiCtrl(Waveform2, 0, SynthGuiCtrl::COMBOBOX);
+ dctrl[DCO2_FM] = SynthGuiCtrl(FMS2, LCDNumber1_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_PWM] = SynthGuiCtrl(PWMS2, LCDNumber1_3_3, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_ATTACK] = SynthGuiCtrl(AttackS2, LCDNumber1_3_2_5, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_DECAY] = SynthGuiCtrl(DecayS2, LCDNumber1_3_2_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_SUSTAIN] = SynthGuiCtrl(SustainS2, LCDNumber1_3_2_3_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_RELEASE] = SynthGuiCtrl(ReleaseS2, LCDNumber1_3_2_4_2, SynthGuiCtrl::SLIDER);
+ dctrl[LFO_FREQ] = SynthGuiCtrl(FreqS, LCDNumber1_5, SynthGuiCtrl::SLIDER);
+ dctrl[LFO_WAVEFORM] = SynthGuiCtrl(Waveform2_2, 0, SynthGuiCtrl::COMBOBOX);
+ dctrl[FILT_ENV_MOD] = SynthGuiCtrl(EnvModS, LCDNumber1_5_3, SynthGuiCtrl::SLIDER);
+ dctrl[FILT_KEYTRACK] = SynthGuiCtrl(KeyTrack, 0, SynthGuiCtrl::SWITCH);
+ dctrl[FILT_RES] = SynthGuiCtrl(ResS, LCDNumber1_5_5, SynthGuiCtrl::SLIDER);
+ dctrl[FILT_ATTACK] = SynthGuiCtrl(AttackS3, LCDNumber1_3_2_5_2, SynthGuiCtrl::SLIDER);
+ dctrl[FILT_DECAY] = SynthGuiCtrl(DecayS3, LCDNumber1_3_2_2_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[FILT_SUSTAIN] = SynthGuiCtrl(SustainS3, LCDNumber1_3_2_3_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[FILT_RELEASE] = SynthGuiCtrl(ReleaseS3, LCDNumber1_3_2_4_2_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2ON] = SynthGuiCtrl(DCO2On, 0, SynthGuiCtrl::SWITCH);
+ dctrl[FILT_INVERT] = SynthGuiCtrl(FilterInvert, 0, SynthGuiCtrl::SWITCH);
+ dctrl[FILT_CUTOFF] = SynthGuiCtrl(CutoffS, LCDNumber1_5_5_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_DETUNE] = SynthGuiCtrl(DetuneS, LCDNumber1_6, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_DETUNE] = SynthGuiCtrl(DetuneS2, LCDNumber1_6_2, SynthGuiCtrl::SLIDER);
+ dctrl[DCO1_PW] = SynthGuiCtrl(PWS, LCDNumber1_2_3, SynthGuiCtrl::SLIDER);
+ dctrl[DCO2_PW] = SynthGuiCtrl(PWS2, LCDNumber1_2_4, SynthGuiCtrl::SLIDER);
+
+
+ map = new QSignalMapper(this);
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ map->setMapping(dctrl[i].editor, i);
+ if (dctrl[i].type == SynthGuiCtrl::SLIDER)
+ connect((QSlider*)(dctrl[i].editor), SIGNAL(valueChanged(int)), map, SLOT(map()));
+ else if (dctrl[i].type == SynthGuiCtrl::COMBOBOX)
+ connect((QComboBox*)(dctrl[i].editor), SIGNAL(activated(int)), map, SLOT(map()));
+ else if (dctrl[i].type == SynthGuiCtrl::SWITCH)
+ connect((QCheckBox*)(dctrl[i].editor), SIGNAL(toggled(bool)), map, SLOT(map()));
+ }
+ connect(map, SIGNAL(mapped(int)), this, SLOT(ctrlChanged(int)));
+
+ connect(presetList, SIGNAL(clicked(QListWidgetItem*)),
+ this, SLOT(presetClicked(QListWidgetItem*)));
+ // presetNameEdit
+ connect(presetSet, SIGNAL(clicked()), this, SLOT(setPreset()));
+ connect(savePresets, SIGNAL(clicked()), this, SLOT(savePresetsPressed()));
+ connect(loadPresets, SIGNAL(clicked()), this, SLOT(loadPresetsPressed()));
+ connect(deletePreset, SIGNAL(clicked()), this, SLOT(deletePresetPressed()));
+ connect(savePresetsToFile, SIGNAL(clicked()), this, SLOT(savePresetsToFilePressed()));
+
+ ctrlHi = 0;
+ ctrlLo = 0;
+ dataHi = 0;
+ dataLo = 0;
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void VAMGui::ctrlChanged(int idx)
+ {
+ SynthGuiCtrl* ctrl = &dctrl[idx];
+ int val = 0;
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ int max = slider->maximum();
+ val = (slider->value() * 16383 + max/2) / max;
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ val = ((QComboBox*)(ctrl->editor))->currentIndex();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isChecked();
+ }
+ sendController(0, idx + CTRL_RPN14_OFFSET, val);
+ }
+
+//---------------------------------------------------------
+// presetClicked
+//---------------------------------------------------------
+
+void VAMGui::presetClicked(QListWidgetItem* item)
+{
+ if (item == 0)
+ return;
+ presetNameEdit->setText(item->text());
+ Preset* preset = 0;
+ for (iPreset i = presets.begin(); i != presets.end(); ++i) {
+ if (i->name == item->text()) {
+ preset = &*i;
+ break;
+ }
+ }
+ activatePreset(preset);
+}
+
+//---------------------------------------------------------
+// setPreset
+//---------------------------------------------------------
+
+void VAMGui::activatePreset(Preset* preset)
+{
+ if (preset == 0) {
+ fprintf(stderr, "internal error 1\n");
+ exit(-1);
+ }
+ for (unsigned int i = 0; i < sizeof(dctrl)/sizeof(*dctrl); ++i) {
+ setParam(i, preset->ctrl[i]);
+ ctrlChanged(i);
+ }
+}
+
+//---------------------------------------------------------
+// setPreset
+//---------------------------------------------------------
+
+void VAMGui::setPreset()
+{
+ if (presetNameEdit->text().isEmpty())
+ return;
+ for (iPreset i = presets.begin(); i != presets.end(); ++i) {
+ if (i->name == presetNameEdit->text()) {
+ setPreset(&*i);
+ return;
+ }
+ }
+ addNewPreset(presetNameEdit->text());
+}
+
+//---------------------------------------------------------
+// addNewPreset
+//---------------------------------------------------------
+
+void VAMGui::addNewPreset(const QString& name)
+{
+ Preset p;
+ p.name = name;
+ setPreset(&p);
+ presets.push_back(p);
+ presetList->addItem(name);
+}
+
+//---------------------------------------------------------
+// deleteNamedPreset
+//---------------------------------------------------------
+void VAMGui::deleteNamedPreset(const QString& name)
+{
+ QListWidgetItem * item = presetList->findItems(name,Qt::MatchExactly).at(0);
+ if (!item) {
+ fprintf(stderr, "%s: Could not find preset!\n", __FUNCTION__);
+ return;
+ }
+ presetList->clearSelection();
+ delete item;
+// int index = presetList->row(item);
+// presetList->removeItem(index);
+ for (iPreset i = presets.begin(); i != presets.end(); ++i) {
+ if (i->name == name) {
+ presets.erase(i);
+ break;
+ }
+ }
+}
+
+
+//---------------------------------------------------------
+// setPreset
+//---------------------------------------------------------
+
+void VAMGui::setPreset(Preset* preset)
+{
+ for (unsigned int i = 0; i < NUM_CONTROLLER; ++i) {
+ int val = 0;
+ SynthGuiCtrl* ctrl = &dctrl[i];
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ int max = slider->maximum();
+ val = (slider->value() * 16383 + max/2) / max;
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ val = ((QComboBox*)(ctrl->editor))->currentIndex();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isChecked();
+ }
+
+ preset->ctrl[i] = val;
+ }
+ //
+ // send sysex to synti
+ //
+#if 0
+ putchar(0xf0);
+ putchar(0x7c); // mess
+ putchar(0x2); // vam
+ putchar(0x3); // setPreset
+ const char* name = preset->name.toLatin1().data();
+ while (*name)
+ putchar(*name++ & 0x7f);
+ putchar(0);
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ putchar(i);
+ putchar(preset->ctrl[i]);
+ }
+ putchar(0xf7);
+#endif
+}
+
+//---------------------------------------------------------
+// setParam
+// set param in gui
+// val -- midi value 0 - 16383
+//---------------------------------------------------------
+
+void VAMGui::setParam(int param, int val)
+ {
+ if (param >= int(sizeof(dctrl)/sizeof(*dctrl))) {
+ fprintf(stderr, "vam: set unknown parameter 0x%x to 0x%x\n", param, val);
+ return;
+ }
+ SynthGuiCtrl* ctrl = &dctrl[param];
+ ctrl->editor->blockSignals(true);
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ int max = slider->maximum();
+ if(val < 0) val = (val * max + 8191) / 16383 - 1;
+ else val = (val * max + 8191) / 16383;
+
+ slider->setValue(val);
+ if (ctrl->label)
+ ((QLCDNumber*)(ctrl->label))->display(val);
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ ((QComboBox*)(ctrl->editor))->setCurrentIndex(val);
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ ((QCheckBox*)(ctrl->editor))->setChecked(val);
+ }
+ ctrl->editor->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// sysexReceived
+//---------------------------------------------------------
+
+void VAMGui::sysexReceived(const unsigned char* data, int len)
+{
+ if (len >= 4) {
+ //---------------------------------------------
+ // MusE Soft Synth
+ //---------------------------------------------
+
+ if (data[0] == 0x7c) {
+ if (data[1] == 2) { // vam
+ if (data[2] == 2) { // parameter response
+ if (len != 6) {
+ fprintf(stderr, "vam gui: bad sysEx len\n");
+ return;
+ }
+ int val = data[4] + (data[5]<<7);
+ switch(data[3])
+ {
+ case DCO1_PITCHMOD:
+ case DCO2_PITCHMOD:
+ case DCO1_DETUNE:
+ case DCO2_DETUNE:
+ setParam(data[3], ((val + 1) * 2) - 16383);
+ break;
+ default:
+ setParam(data[3], val);
+ break;
+ }
+ return;
+ }
+ else if (data[2] == 1) { // param request
+ return;
+ }
+ }
+ }
+ }
+ fprintf(stderr, "vam gui: unknown sysex received, len %d:\n", len);
+ for (int i = 0; i < len; ++i)
+ fprintf(stderr, "%02x ", data[i]);
+ fprintf(stderr, "\n");
+}
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void VAMGui::processEvent(const MidiEvent& ev)
+ {
+ if (ev.type() == ME_CONTROLLER)
+ setParam(ev.dataA() & 0xfff, ev.dataB());
+ else if (ev.type() == ME_SYSEX)
+ sysexReceived(ev.data(), ev.len())
+ ;
+ else
+ printf("VAMGui::illegal event type received\n");
+ }
+
+//---------------------------------------------------------
+// loadPresetsPressed
+//---------------------------------------------------------
+
+void VAMGui::loadPresetsPressed()
+{
+#if 0 // TODO
+ QString iname;
+ QString s(getenv("HOME"));
+ QString fn = getOpenFileName(s, presetFileTypes, this,
+ tr("MusE: Load VAM Presets"), 0);
+ if (fn.isEmpty())
+ return;
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".pre"), "r", popenFlag, true);
+ if (f == 0)
+ return;
+ presets.clear();
+ presetList->clear();
+
+ Xml xml(f);
+ int mode = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (mode == 0 && tag == "muse")
+ mode = 1;
+// else if (mode == 1 && tag == "instrument")
+// mode = 2;
+
+ else if (mode == 2 && tag == "preset") {
+ Preset preset;
+ preset.readConfiguration(xml);
+ presets.push_back(preset);
+ presetList->insertItem(preset.name);
+ }
+ else if(mode != 1)
+ xml.unknown("SynthPreset");
+ break;
+ case Xml::Attribut:
+ if(mode == 1 && tag == "iname") {
+// fprintf(stderr, "%s\n", xml.s2().toLatin1().data());
+ if(xml.s2() != "vam-1.0")
+ return;
+ else mode = 2;
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "muse")
+ goto ende;
+ default:
+ break;
+ }
+ }
+ende:
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+
+ if (presetFileName) delete presetFileName;
+ presetFileName = new QString(fn);
+ QString dots ("...");
+ fileName->setText(fn.right(32).insert(0, dots));
+
+ if (presets.empty())
+ return;
+ Preset preset = presets.front();
+ activatePreset(&preset);
+#endif
+}
+
+//---------------------------------------------------------
+// doSavePresets
+//---------------------------------------------------------
+void VAMGui::doSavePresets(const QString& /*fn*/, bool /*showWarning*/)
+{
+#if 0
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".pre"), "w", popenFlag, false, showWarning);
+ if (f == 0)
+ return;
+ Xml xml(f);
+ xml.header();
+ xml.tag(0, "muse version=\"1.0\"");
+ xml.tag(0, "instrument iname=\"vam-1.0\" /");
+
+ for (iPreset i = presets.begin(); i != presets.end(); ++i)
+ i->writeConfiguration(xml, 1);
+
+ xml.tag(1, "/muse");
+
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+#endif
+}
+
+//---------------------------------------------------------
+// savePresetsPressed
+//---------------------------------------------------------
+
+void VAMGui::savePresetsPressed()
+{
+#if 0 // TODO
+ QString s(getenv("MUSE"));
+ QString fn = getSaveFileName(s, presetFileTypes, this,
+ tr("MusE: Save VAM Presets"));
+ if (fn.isEmpty())
+ return;
+ doSavePresets (fn, true);
+#endif
+}
+
+
+//---------------------------------------------------------
+// savePresetsToFilePressed
+//---------------------------------------------------------
+
+void VAMGui::savePresetsToFilePressed()
+{
+ if (!presetFileName) return;
+ doSavePresets (*presetFileName, false);
+}
+
+//---------------------------------------------------------
+// deletePresetPressed
+//---------------------------------------------------------
+
+void VAMGui::deletePresetPressed()
+{
+ deleteNamedPreset (presetList->currentItem()->text());
+}
+
+//---------------------------------------------------------
+// readMessage
+//---------------------------------------------------------
+
+void VAMGui::readMessage(int)
+ {
+ MessGui::readMessage();
+ }
+
diff --git a/muse_qt4_evolution/synti/vam/vamgui.h b/muse_qt4_evolution/synti/vam/vamgui.h
new file mode 100644
index 00000000..4ee02681
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/vamgui.h
@@ -0,0 +1,77 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// vamgui.h
+//
+// (C) Copyright 2002 Jotsif Lindman Hörnlund (jotsif@linux.nu)
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA or point your web browser to http://www.gnu.org.
+//=========================================================
+
+#ifndef __VAMGUI_H
+#define __VAMGUI_H
+
+#include "ui_vamgui.h"
+#include "vam.h"
+#include "libsynti/gui.h"
+
+class Preset;
+
+//---------------------------------------------------------
+// VAMGui
+//---------------------------------------------------------
+
+class VAMGui : public QWidget, public Ui::VAMGuiBase, public MessGui {
+ QSignalMapper* map;
+ int ctrlHi;
+ int ctrlLo;
+ int dataHi;
+ int dataLo;
+ SynthGuiCtrl dctrl[NUM_CONTROLLER];
+ QString * presetFileName;
+
+ Q_OBJECT
+ void sendControllerChange(int ctrl, int val);
+ void initParameter();
+ void setParam(int, int);
+ void setPreset(Preset* preset);
+ void addNewPreset(const QString&);
+ void deleteNamedPreset(const QString&);
+ void activatePreset(Preset* preset);
+ virtual void processEvent(const MidiEvent&);
+
+ private slots:
+ void ctrlChanged(int idx);
+
+ void presetClicked(QListWidgetItem*);
+ void setPreset();
+ void loadPresetsPressed();
+ void savePresetsPressed();
+ void deletePresetPressed();
+ void doSavePresets(const QString&, bool);
+ void savePresetsToFilePressed();
+ void readMessage(int);
+
+ protected:
+ virtual void sysexReceived(const unsigned char*, int);
+
+ public:
+ VAMGui();
+ };
+
+#endif /* __VAMGUI_H */
+
+
diff --git a/muse_qt4_evolution/synti/vam/vamgui.ui b/muse_qt4_evolution/synti/vam/vamgui.ui
new file mode 100644
index 00000000..7b849a58
--- /dev/null
+++ b/muse_qt4_evolution/synti/vam/vamgui.ui
@@ -0,0 +1,1535 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>VAMGuiBase</class>
+ <widget class="QWidget" name="VAMGuiBase" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>744</width>
+ <height>523</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>Virtual Analogue for MusE</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="1" column="0" colspan="2" >
+ <widget class="QGroupBox" name="GroupBox11" >
+ <property name="title" >
+ <string>LFO</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="TextLabel3_5" >
+ <property name="text" >
+ <string>Freq</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="FreqS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLCDNumber" name="LCDNumber1_5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel1_2_2" >
+ <property name="text" >
+ <string>Waveform</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="Waveform2_2" >
+ <item>
+ <property name="text" >
+ <string>Sine</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pulse</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Saw</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Triangle</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QGroupBox" name="GroupBox12" >
+ <property name="title" >
+ <string>Filter</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel3_5_3" >
+ <property name="text" >
+ <string>EnvMod</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QLabel" name="TextLabel3_3_2_5_2" >
+ <property name="text" >
+ <string>Attack</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="TextLabel3_3_2_2_2_2" >
+ <property name="text" >
+ <string>Decay</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="4" >
+ <widget class="QLabel" name="TextLabel3_3_2_3_2_2" >
+ <property name="text" >
+ <string>Sustain</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="4" >
+ <widget class="QLabel" name="TextLabel3_3_2_4_2_2" >
+ <property name="text" >
+ <string>Release</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_5_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_5_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="6" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_2_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="6" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_3_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="6" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_4_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_5_5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="TextLabel1_3" >
+ <property name="text" >
+ <string>Cutoff</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel3_5_5" >
+ <property name="text" >
+ <string>Resonance</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2" >
+ <widget class="QCheckBox" name="FilterInvert" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Invert</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" colspan="2" >
+ <widget class="QCheckBox" name="KeyTrack" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>KeyTrack</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_5_5_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QSlider" name="EnvModS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QSlider" name="ResS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <widget class="QSlider" name="CutoffS" >
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickInterval" >
+ <number>25</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QSlider" name="AttackS3" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="5" >
+ <widget class="QSlider" name="DecayS3" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="5" >
+ <widget class="QSlider" name="SustainS3" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="5" >
+ <widget class="QSlider" name="ReleaseS3" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QGroupBox" name="GroupBox5_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>200</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Presets</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QListWidget" name="presetList" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="fileName" >
+ <property name="text" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLineEdit" name="presetNameEdit" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="presetSet" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string/>
+ </property>
+ <property name="text" >
+ <string>Set</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="loadPresets" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>load preset list</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>image0</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="savePresetsToFile" >
+ <property name="toolTip" >
+ <string>save preset list</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>image1</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="savePresets" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>save preset list to a new file</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>image2</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="deletePreset" >
+ <property name="toolTip" >
+ <string>delete preset</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset>image3</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="GroupBox5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>DCO 1</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel3" >
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="TextLabel1_4" >
+ <property name="text" >
+ <string>Detune</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_6" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QSlider" name="DetuneS" >
+ <property name="minimum" >
+ <number>-50</number>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QSlider" name="PitchModS" >
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="minimum" >
+ <number>-24</number>
+ </property>
+ <property name="maximum" >
+ <number>24</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <widget class="QLabel" name="TextLabel3_3" >
+ <property name="text" >
+ <string>PWM</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_2" >
+ <property name="text" >
+ <string>Decay</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_3" >
+ <property name="text" >
+ <string>Sustain</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_4" >
+ <property name="text" >
+ <string>Release</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2" >
+ <property name="text" >
+ <string>Attack</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="TextLabel3_2" >
+ <property name="text" >
+ <string>FM</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="TextLabel3_2_3" >
+ <property name="text" >
+ <string>PW</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2" >
+ <widget class="QLCDNumber" name="LCDNumber1_2_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QSlider" name="FMS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" >
+ <widget class="QSlider" name="PWS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1" >
+ <widget class="QSlider" name="PWMS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1" >
+ <widget class="QSlider" name="AttackS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1" >
+ <widget class="QSlider" name="DecayS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="1" >
+ <widget class="QSlider" name="SustainS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="1" >
+ <widget class="QSlider" name="ReleaseS" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1" >
+ <property name="text" >
+ <string>Waveform</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="QComboBox" name="Waveform" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Sine</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pulse</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Saw</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Triangle</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="GroupBox5_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>DCO 2</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>6</number>
+ </property>
+ <property name="spacing" >
+ <number>2</number>
+ </property>
+ <item row="1" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QSlider" name="PitchModS2" >
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="minimum" >
+ <number>-24</number>
+ </property>
+ <property name="maximum" >
+ <number>24</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
+ <widget class="QLabel" name="TextLabel3_2_2" >
+ <property name="text" >
+ <string>FM</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="TextLabel1_4_2" >
+ <property name="text" >
+ <string>Detune</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_6_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="TextLabel3_4" >
+ <property name="text" >
+ <string>Pitch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <widget class="QSlider" name="DetuneS2" >
+ <property name="minimum" >
+ <number>-50</number>
+ </property>
+ <property name="maximum" >
+ <number>50</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="TextLabel1_2" >
+ <property name="text" >
+ <string>Waveform</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="Waveform2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Sine</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Pulse</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Saw</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Triangle</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="9" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_4_2" >
+ <property name="text" >
+ <string>Release</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_3" >
+ <property name="text" >
+ <string>PWM</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_5" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_5" >
+ <property name="text" >
+ <string>Attack</string>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_3_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_2_2" >
+ <property name="text" >
+ <string>Decay</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_2_4_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_3_3" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0" >
+ <widget class="QLabel" name="TextLabel3_3_2_3_2" >
+ <property name="text" >
+ <string>Sustain</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="3" >
+ <widget class="QLCDNumber" name="LCDNumber1_2_4" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="numDigits" >
+ <number>3</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="TextLabel3_2_4" >
+ <property name="text" >
+ <string>PW</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" colspan="2" >
+ <widget class="QCheckBox" name="DCO2On" >
+ <property name="text" >
+ <string>On</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2" >
+ <widget class="QSlider" name="FMS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2" >
+ <widget class="QSlider" name="PWS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1" colspan="2" >
+ <widget class="QSlider" name="PWMS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1" colspan="2" >
+ <widget class="QSlider" name="AttackS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1" colspan="2" >
+ <widget class="QSlider" name="DecayS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="1" colspan="2" >
+ <widget class="QSlider" name="SustainS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="1" colspan="2" >
+ <widget class="QSlider" name="ReleaseS2" >
+ <property name="minimum" >
+ <number>0</number>
+ </property>
+ <property name="maximum" >
+ <number>255</number>
+ </property>
+ <property name="pageStep" >
+ <number>1</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item rowspan="2" row="1" column="2" >
+ <widget class="QLabel" name="TextLabel1_5" >
+ <property name="text" >
+ <string>VAM 1.0beta2
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/CMakeLists.txt b/muse_qt4_evolution/synti/zynaddsubfx/CMakeLists.txt
new file mode 100644
index 00000000..629b771c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/CMakeLists.txt
@@ -0,0 +1,100 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+subdirs("UI")
+
+include_directories(
+ BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/UI
+ BEFORE ${CMAKE_CURRENT_BINARY_DIR}/UI
+ )
+
+add_library (
+ zynaddsubfx SHARED
+ DSP/AnalogFilter.C
+ DSP/FFTwrapper.C
+ DSP/Filter.C
+ DSP/FormantFilter.C
+ DSP/SVFilter.C
+ Effects/Alienwah.C
+ Effects/Chorus.C
+ Effects/Distorsion.C
+ Effects/DynamicFilter.C
+ Effects/EQ.C
+ Effects/Echo.C
+ Effects/Effect.C
+ Effects/EffectLFO.C
+ Effects/EffectMgr.C
+ Effects/Phaser.C
+ Effects/Reverb.C
+ Output/Recorder.C
+ Misc/Bank.C
+ Misc/Config.C
+ Misc/Dump.C
+ Misc/Master.C
+ Misc/Microtonal.C
+ Misc/Part.C
+ Misc/Util.C
+ Misc/XMLwrapper.C
+ Seq/MIDIEvents.C
+ Seq/MIDIFile.C
+ Seq/Sequencer.C
+ Params/ADnoteParameters.C
+ Params/Controller.C
+ Params/EnvelopeParams.C
+ Params/FilterParams.C
+ Params/LFOParams.C
+ Params/PADnoteParameters.C
+ Params/Presets.C
+ Params/PresetsStore.C
+ Params/SUBnoteParameters.C
+ Synth/ADnote.C
+ Synth/Envelope.C
+ Synth/LFO.C
+ Synth/OscilGen.C
+ Synth/PADnote.C
+ Synth/Resonance.C
+ Synth/SUBnote.C
+ main.cpp
+ )
+
+# - tell cmake to name target zynaddsubfx.so instead of
+# libzynaddsubfx.so
+#
+
+set_target_properties ( zynaddsubfx
+ PROPERTIES PREFIX ""
+ COMPILE_FLAGS "-O2 -fvisibility=hidden -DASM_F2I_YES -DOS_LINUX -DFFTW_VERSION_3"
+ )
+
+target_link_libraries( zynaddsubfx
+ zyngui
+ synti
+ fftw3
+ mxml
+ m z fltk
+ )
+
+INSTALL(
+ DIRECTORY banks
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${MusE_INSTALL_NAME}/presets/zynaddsubfx
+ )
+
+install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/synthi/ zynaddsubfx )
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/COPYING b/muse_qt4_evolution/synti/zynaddsubfx/COPYING
new file mode 100644
index 00000000..c8f74939
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/COPYING
@@ -0,0 +1,347 @@
+
+NOTE! The GPL below is copyrighted by the Free Software Foundation, but
+the instance of code that it refers to (the ZynAddSubFX application)
+is copyrighted by the author (Nasca Octavian Paul) who actually wrote it.
+---------------------------------------------------------------------------
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.C b/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.C
new file mode 100644
index 00000000..5e461a0b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.C
@@ -0,0 +1,358 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ AnalogFilter.C - Several analog filters (lowpass, highpass...)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+#include "AnalogFilter.h"
+
+AnalogFilter::AnalogFilter(unsigned char Ftype,REALTYPE Ffreq, REALTYPE Fq,unsigned char Fstages){
+ stages=Fstages;
+ for (int i=0;i<3;i++){
+ oldc[i]=0.0;oldd[i]=0.0;
+ c[i]=0.0;d[i]=0.0;
+ };
+ type=Ftype;
+ freq=Ffreq;
+ q=Fq;
+ gain=1.0;
+ if (stages>=MAX_FILTER_STAGES) stages=MAX_FILTER_STAGES;
+ cleanup();
+ firsttime=0;
+ abovenq=0;oldabovenq=0;
+ setfreq_and_q(Ffreq,Fq);
+ firsttime=1;
+ d[0]=0;//this is not used
+ outgain=1.0;
+};
+
+AnalogFilter::~AnalogFilter(){
+};
+
+void AnalogFilter::cleanup(){
+ for (int i=0;i<MAX_FILTER_STAGES+1;i++){
+ x[i].c1=0.0;x[i].c2=0.0;
+ y[i].c1=0.0;y[i].c2=0.0;
+ oldx[i]=x[i];
+ oldy[i]=y[i];
+ };
+ needsinterpolation=0;
+};
+
+void AnalogFilter::computefiltercoefs(){
+ REALTYPE tmp;
+ REALTYPE omega,sn,cs,alpha,beta;
+ int zerocoefs=0;//this is used if the freq is too high
+
+ //do not allow frequencies bigger than samplerate/2
+ REALTYPE freq=this->freq;
+ if (freq>(SAMPLE_RATE/2-500.0)) {
+ freq=SAMPLE_RATE/2-500.0;
+ zerocoefs=1;
+ };
+ if (freq<0.1) freq=0.1;
+ //do not allow bogus Q
+ if (q<0.0) q=0.0;
+ REALTYPE tmpq,tmpgain;
+ if (stages==0) {
+ tmpq=q;
+ tmpgain=gain;
+ } else {
+ tmpq=(q>1.0 ? pow(q,1.0/(stages+1)) : q);
+ tmpgain=pow(gain,1.0/(stages+1));
+ };
+
+ //most of theese are implementations of
+ //the "Cookbook formulae for audio EQ" by Robert Bristow-Johnson
+ //The original location of the Cookbook is:
+ //http://www.harmony-central.com/Computer/Programming/Audio-EQ-Cookbook.txt
+ switch(type){
+ case 0://LPF 1 pole
+ if (zerocoefs==0) tmp=exp(-2.0*PI*freq/SAMPLE_RATE);
+ else tmp=0.0;
+ c[0]=1.0-tmp;c[1]=0.0;c[2]=0.0;
+ d[1]=tmp;d[2]=0.0;
+ order=1;
+ break;
+ case 1://HPF 1 pole
+ if (zerocoefs==0) tmp=exp(-2.0*PI*freq/SAMPLE_RATE);
+ else tmp=0.0;
+ c[0]=(1.0+tmp)/2.0;c[1]=-(1.0+tmp)/2.0;c[2]=0.0;
+ d[1]=tmp;d[2]=0.0;
+ order=1;
+ break;
+ case 2://LPF 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ alpha=sn/(2*tmpq);
+ tmp=1+alpha;
+ c[0]=(1.0-cs)/2.0/tmp;
+ c[1]=(1.0-cs)/tmp;
+ c[2]=(1.0-cs)/2.0/tmp;
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha)/tmp*(-1);
+ } else {
+ c[0]=1.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 3://HPF 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ alpha=sn/(2*tmpq);
+ tmp=1+alpha;
+ c[0]=(1.0+cs)/2.0/tmp;
+ c[1]=-(1.0+cs)/tmp;
+ c[2]=(1.0+cs)/2.0/tmp;
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha)/tmp*(-1);
+ } else {
+ c[0]=0.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 4://BPF 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ alpha=sn/(2*tmpq);
+ tmp=1+alpha;
+ c[0]=alpha/tmp*sqrt(tmpq+1);
+ c[1]=0;
+ c[2]=-alpha/tmp*sqrt(tmpq+1);
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha)/tmp*(-1);
+ } else {
+ c[0]=0.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 5://NOTCH 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ alpha=sn/(2*sqrt(tmpq));
+ tmp=1+alpha;
+ c[0]=1/tmp;
+ c[1]=-2*cs/tmp;
+ c[2]=1/tmp;
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha)/tmp*(-1);
+ } else {
+ c[0]=1.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 6://PEAK (2 poles)
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ tmpq*=3.0;
+ alpha=sn/(2*tmpq);
+ tmp=1+alpha/tmpgain;
+ c[0]=(1.0+alpha*tmpgain)/tmp;
+ c[1]=(-2.0*cs)/tmp;
+ c[2]=(1.0-alpha*tmpgain)/tmp;
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha/tmpgain)/tmp*(-1);
+ } else {
+ c[0]=1.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 7://Low Shelf - 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ tmpq=sqrt(tmpq);
+ alpha=sn/(2*tmpq);
+ beta=sqrt(tmpgain)/tmpq;
+ tmp=(tmpgain+1.0)+(tmpgain-1.0)*cs+beta*sn;
+
+ c[0]=tmpgain*((tmpgain+1.0)-(tmpgain-1.0)*cs+beta*sn)/tmp;
+ c[1]=2.0*tmpgain*((tmpgain-1.0)-(tmpgain+1.0)*cs)/tmp;
+ c[2]=tmpgain*((tmpgain+1.0)-(tmpgain-1.0)*cs-beta*sn)/tmp;
+ d[1]=-2.0*((tmpgain-1.0)+(tmpgain+1.0)*cs)/tmp*(-1);
+ d[2]=((tmpgain+1.0)+(tmpgain-1.0)*cs-beta*sn)/tmp*(-1);
+ } else {
+ c[0]=tmpgain;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ case 8://High Shelf - 2 poles
+ if (zerocoefs==0){
+ omega=2*PI*freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ tmpq=sqrt(tmpq);
+ alpha=sn/(2*tmpq);
+ beta=sqrt(tmpgain)/tmpq;
+ tmp=(tmpgain+1.0)-(tmpgain-1.0)*cs+beta*sn;
+
+ c[0]=tmpgain*((tmpgain+1.0)+(tmpgain-1.0)*cs+beta*sn)/tmp;
+ c[1]=-2.0*tmpgain*((tmpgain-1.0)+(tmpgain+1.0)*cs)/tmp;
+ c[2]=tmpgain*((tmpgain+1.0)+(tmpgain-1.0)*cs-beta*sn)/tmp;
+ d[1]=2.0*((tmpgain-1.0)-(tmpgain+1.0)*cs)/tmp*(-1);
+ d[2]=((tmpgain+1.0)-(tmpgain-1.0)*cs-beta*sn)/tmp*(-1);
+ } else {
+ c[0]=1.0;c[1]=0.0;c[2]=0.0;
+ d[1]=0.0;d[2]=0.0;
+ };
+ order=2;
+ break;
+ default://wrong type
+ type=0;
+ computefiltercoefs();
+ break;
+ };
+};
+
+
+void AnalogFilter::setfreq(REALTYPE frequency){
+ if (frequency<0.1) frequency=0.1;
+ REALTYPE rap=freq/frequency;if (rap<1.0) rap=1.0/rap;
+
+ oldabovenq=abovenq;abovenq=frequency>(SAMPLE_RATE/2-500.0);
+
+ int nyquistthresh=(abovenq^oldabovenq);
+
+
+ if ((rap>3.0)||(nyquistthresh!=0)){//if the frequency is changed fast, it needs interpolation (now, filter and coeficients backup)
+ for (int i=0;i<3;i++){
+ oldc[i]=c[i];oldd[i]=d[i];
+ };
+ for (int i=0;i<MAX_FILTER_STAGES+1;i++){
+ oldx[i]=x[i];
+ oldy[i]=y[i];
+ };
+ if (firsttime==0) needsinterpolation=1;
+ };
+ freq=frequency;
+ computefiltercoefs();
+ firsttime=0;
+
+};
+
+void AnalogFilter::setfreq_and_q(REALTYPE frequency,REALTYPE q_){
+ q=q_;
+ setfreq(frequency);
+};
+
+void AnalogFilter::setq(REALTYPE q_){
+ q=q_;
+ computefiltercoefs();
+};
+
+void AnalogFilter::settype(int type_){
+ type=type_;
+ computefiltercoefs();
+};
+
+void AnalogFilter::setgain(REALTYPE dBgain){
+ gain=dB2rap(dBgain);
+ computefiltercoefs();
+};
+
+void AnalogFilter::setstages(int stages_){
+ if (stages_>=MAX_FILTER_STAGES) stages_=MAX_FILTER_STAGES-1;
+ stages=stages_;
+ cleanup();
+ computefiltercoefs();
+};
+
+void AnalogFilter::singlefilterout(REALTYPE *smp,fstage &x,fstage &y,REALTYPE *c,REALTYPE *d){
+ int i;
+ REALTYPE y0;
+ if (order==1) {//First order filter
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ y0=smp[i]*c[0]+x.c1*c[1]+y.c1*d[1];
+ y.c1=y0;
+ x.c1=smp[i];
+ //output
+ smp[i]=y0;
+ };
+ };
+ if (order==2) {//Second order filter
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ y0=smp[i]*c[0]+x.c1*c[1]+x.c2*c[2]+y.c1*d[1]+y.c2*d[2];
+ y.c2=y.c1;
+ y.c1=y0;
+ x.c2=x.c1;
+ x.c1=smp[i];
+ //output
+ smp[i]=y0;
+ };
+ };
+};
+void AnalogFilter::filterout(REALTYPE *smp){
+ REALTYPE *ismp=NULL;//used if it needs interpolation
+ int i;
+ if (needsinterpolation!=0){
+ ismp=new REALTYPE[SOUND_BUFFER_SIZE];
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) ismp[i]=smp[i];
+ for (i=0;i<stages+1;i++) singlefilterout(ismp,oldx[i],oldy[i],oldc,oldd);
+ };
+
+ for (i=0;i<stages+1;i++) singlefilterout(smp,x[i],y[i],c,d);
+
+ if (needsinterpolation!=0){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ REALTYPE x=i/(REALTYPE) SOUND_BUFFER_SIZE;
+ smp[i]=ismp[i]*(1.0-x)+smp[i]*x;
+ };
+ delete (ismp);
+ needsinterpolation=0;
+ };
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) smp[i]*=outgain;
+};
+
+REALTYPE AnalogFilter::H(REALTYPE freq){
+ REALTYPE fr=freq/SAMPLE_RATE*PI*2.0;
+ REALTYPE x=c[0],y=0.0;
+ for (int n=1;n<3;n++){
+ x+=cos(n*fr)*c[n];
+ y-=sin(n*fr)*c[n];
+ };
+ REALTYPE h=x*x+y*y;
+ x=1.0;y=0.0;
+ for (int n=1;n<3;n++){
+ x-=cos(n*fr)*d[n];
+ y+=sin(n*fr)*d[n];
+ };
+ h=h/(x*x+y*y);
+ return(pow(h,(stages+1.0)/2.0));
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.h
new file mode 100644
index 00000000..2e9fe68b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/AnalogFilter.h
@@ -0,0 +1,72 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Analog Filter.h - Several analog filters (lowpass, highpass...)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ANALOG_FILTER_H
+#define ANALOG_FILTER_H
+
+#include "../globals.h"
+#include "Filter_.h"
+class AnalogFilter:public Filter_{
+ public:
+ AnalogFilter(unsigned char Ftype,REALTYPE Ffreq, REALTYPE Fq,unsigned char Fstages);
+ ~AnalogFilter();
+ void filterout(REALTYPE *smp);
+ void setfreq(REALTYPE frequency);
+ void setfreq_and_q(REALTYPE frequency,REALTYPE q_);
+ void setq(REALTYPE q_);
+
+ void settype(int type_);
+ void setgain(REALTYPE dBgain);
+ void setstages(int stages_);
+ void cleanup();
+
+ REALTYPE H(REALTYPE freq);//Obtains the response for a given frequency
+
+ private:
+ struct fstage{
+ REALTYPE c1,c2;
+ } x[MAX_FILTER_STAGES+1],y[MAX_FILTER_STAGES+1],
+ oldx[MAX_FILTER_STAGES+1],oldy[MAX_FILTER_STAGES+1];
+
+ void singlefilterout(REALTYPE *smp,fstage &x,fstage &y,REALTYPE *c,REALTYPE *d);
+ void computefiltercoefs();
+ int type;//The type of the filter (LPF1,HPF1,LPF2,HPF2...)
+ int stages;//how many times the filter is applied (0->1,1->2,etc.)
+ REALTYPE freq;//Frequency given in Hz
+ REALTYPE q; //Q factor (resonance or Q factor)
+ REALTYPE gain;//the gain of the filter (if are shelf/peak) filters
+
+ int order;//the order of the filter (number of poles)
+
+ REALTYPE c[3],d[3];//coefficients
+
+ REALTYPE oldc[3],oldd[3];//old coefficients(used only if some filter paremeters changes very fast, and it needs interpolation)
+
+ REALTYPE xd[3],yd[3];//used if the filter is applied more times
+ int needsinterpolation,firsttime;
+ int abovenq;//this is 1 if the frequency is above the nyquist
+ int oldabovenq;//if the last time was above nyquist (used to see if it needs interpolation)
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.C b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.C
new file mode 100644
index 00000000..7c67e631
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.C
@@ -0,0 +1,99 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FFTwrapper.c - A wrapper for Fast Fourier Transforms
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include "FFTwrapper.h"
+
+FFTwrapper::FFTwrapper(int fftsize_){
+ fftsize=fftsize_;
+ tmpfftdata1=new fftw_real[fftsize];
+ tmpfftdata2=new fftw_real[fftsize];
+#ifdef FFTW_VERSION_2
+ planfftw=rfftw_create_plan(fftsize,FFTW_REAL_TO_COMPLEX,FFTW_ESTIMATE|FFTW_IN_PLACE);
+ planfftw_inv=rfftw_create_plan(fftsize,FFTW_COMPLEX_TO_REAL,FFTW_ESTIMATE|FFTW_IN_PLACE);
+#else
+ planfftw=fftw_plan_r2r_1d(fftsize,tmpfftdata1,tmpfftdata1,FFTW_R2HC,FFTW_ESTIMATE);
+ planfftw_inv=fftw_plan_r2r_1d(fftsize,tmpfftdata2,tmpfftdata2,FFTW_HC2R,FFTW_ESTIMATE);
+#endif
+};
+
+FFTwrapper::~FFTwrapper(){
+#ifdef FFTW_VERSION_2
+ rfftw_destroy_plan(planfftw);
+ rfftw_destroy_plan(planfftw_inv);
+#else
+ fftw_destroy_plan(planfftw);
+ fftw_destroy_plan(planfftw_inv);
+#endif
+
+ delete [] tmpfftdata1;
+ delete [] tmpfftdata2;
+};
+
+/*
+ * do the Fast Fourier Transform
+ */
+void FFTwrapper::smps2freqs(REALTYPE *smps,FFTFREQS freqs){
+#ifdef FFTW_VERSION_2
+ for (int i=0;i<fftsize;i++) tmpfftdata1[i]=smps[i];
+ rfftw_one(planfftw,tmpfftdata1,tmpfftdata2);
+ for (int i=0;i<fftsize/2;i++) {
+ freqs.c[i]=tmpfftdata2[i];
+ if (i!=0) freqs.s[i]=tmpfftdata2[fftsize-i];
+ };
+#else
+ for (int i=0;i<fftsize;i++) tmpfftdata1[i]=smps[i];
+ fftw_execute(planfftw);
+ for (int i=0;i<fftsize/2;i++) {
+ freqs.c[i]=tmpfftdata1[i];
+ if (i!=0) freqs.s[i]=tmpfftdata1[fftsize-i];
+ };
+#endif
+ tmpfftdata2[fftsize/2]=0.0;
+};
+
+/*
+ * do the Inverse Fast Fourier Transform
+ */
+void FFTwrapper::freqs2smps(FFTFREQS freqs,REALTYPE *smps){
+ tmpfftdata2[fftsize/2]=0.0;
+#ifdef FFTW_VERSION_2
+ for (int i=0;i<fftsize/2;i++) {
+ tmpfftdata1[i]=freqs.c[i];
+ if (i!=0) tmpfftdata1[fftsize-i]=freqs.s[i];
+ };
+ rfftw_one(planfftw_inv,tmpfftdata1,tmpfftdata2);
+ for (int i=0;i<fftsize;i++) smps[i]=tmpfftdata2[i];
+#else
+ for (int i=0;i<fftsize/2;i++) {
+ tmpfftdata2[i]=freqs.c[i];
+ if (i!=0) tmpfftdata2[fftsize-i]=freqs.s[i];
+ };
+ fftw_execute(planfftw_inv);
+ for (int i=0;i<fftsize;i++) smps[i]=tmpfftdata2[i];
+#endif
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.h
new file mode 100644
index 00000000..df8cad7a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FFTwrapper.h
@@ -0,0 +1,59 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FFTwrapper.h - A wrapper for Fast Fourier Transforms
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FFT_WRAPPER_H
+#define FFT_WRAPPER_H
+
+#include "../globals.h"
+
+#ifdef FFTW_VERSION_2
+
+#include <fftw.h>
+
+/* If you got error messages about rfftw.h, replace the next include line with "#include <srfftw.h>"
+or with "#include <drfftw.h> (if one doesn't work try the other). It may be necessary to replace
+the <fftw.h> with <dfftw.h> or <sfftw.h>. If the neither one doesn't work,
+please install latest version of fftw(recomanded from the sources) from www.fftw.org.
+If you'll install fftw3 you need to change the Makefile.inc
+Hope all goes right." */
+#include <rfftw.h>
+
+#else
+
+#include <fftw3.h>
+#define fftw_real double
+#define rfftw_plan fftw_plan
+#endif
+
+class FFTwrapper{
+ public:
+ FFTwrapper(int fftsize_);
+ ~FFTwrapper();
+ void smps2freqs(REALTYPE *smps,FFTFREQS freqs);
+ void freqs2smps(FFTFREQS freqs,REALTYPE *smps);
+ private:
+ int fftsize;
+ fftw_real *tmpfftdata1,*tmpfftdata2;
+ rfftw_plan planfftw,planfftw_inv;
+};
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.C b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.C
new file mode 100644
index 00000000..fccb0265
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.C
@@ -0,0 +1,72 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Filter.C - Filters, uses analog,formant,etc. filters
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+
+#include "Filter.h"
+
+Filter::Filter(FilterParams *pars){
+ unsigned char Ftype=pars->Ptype;
+ unsigned char Fstages=pars->Pstages;
+
+ category=pars->Pcategory;
+
+ switch (category) {
+ case 1:filter=new FormantFilter(pars);
+ break;
+ case 2:filter=new SVFilter(Ftype,1000.0,pars->getq(),Fstages);
+ filter->outgain=dB2rap(pars->getgain());
+ if (filter->outgain>1.0) filter->outgain=sqrt(filter->outgain);
+ break;
+ default:filter=new AnalogFilter(Ftype,1000.0,pars->getq(),Fstages);
+ if ((Ftype>=6)&&(Ftype<=8)) filter->setgain(pars->getgain());
+ else filter->outgain=dB2rap(pars->getgain());
+ break;
+ };
+};
+
+Filter::~Filter(){
+ delete (filter);
+};
+
+void Filter::filterout(REALTYPE *smp){
+ filter->filterout(smp);
+};
+
+void Filter::setfreq(REALTYPE frequency){
+ filter->setfreq(frequency);
+};
+
+void Filter::setfreq_and_q(REALTYPE frequency,REALTYPE q_){
+ filter->setfreq_and_q(frequency,q_);
+};
+
+void Filter::setq(REALTYPE q_){
+ filter->setq(q_);
+};
+
+REALTYPE Filter::getrealfreq(REALTYPE freqpitch){
+ if ((category==0)||(category==2)) return(pow(2.0,freqpitch+9.96578428));//log2(1000)=9.95748
+ else return(freqpitch);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.h
new file mode 100644
index 00000000..dab948c1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter.h
@@ -0,0 +1,51 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Filter.h - Filters, uses analog,formant,etc. filters
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FILTER_H
+#define FILTER_H
+
+#include "../globals.h"
+
+#include "Filter_.h"
+#include "AnalogFilter.h"
+#include "FormantFilter.h"
+#include "SVFilter.h"
+#include "../Params/FilterParams.h"
+
+class Filter{
+ public:
+ Filter(FilterParams *pars);
+ ~Filter();
+ void filterout(REALTYPE *smp);
+ void setfreq(REALTYPE frequency);
+ void setfreq_and_q(REALTYPE frequency,REALTYPE q_);
+ void setq(REALTYPE q_);
+
+ REALTYPE getrealfreq(REALTYPE freqpitch);
+ private:
+ Filter_ *filter;
+ unsigned char category;
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter_.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter_.h
new file mode 100644
index 00000000..66fff867
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/Filter_.h
@@ -0,0 +1,42 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Filter_.h - This class is inherited by filter classes
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FILTER__H
+#define FILTER__H
+
+#include "../globals.h"
+
+class Filter_{
+ public:
+ virtual ~Filter_(){};
+ virtual void filterout(REALTYPE */*smp*/){};
+ virtual void setfreq(REALTYPE /*frequency*/){};
+ virtual void setfreq_and_q(REALTYPE /*frequency*/,REALTYPE /*q_*/){};
+ virtual void setq(REALTYPE /*q_*/){};
+ virtual void setgain(REALTYPE /*dBgain*/){};
+ REALTYPE outgain;
+ private:
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.C b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.C
new file mode 100644
index 00000000..482cef91
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.C
@@ -0,0 +1,163 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FormantFilter.C - formant filters
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+#include "FormantFilter.h"
+
+FormantFilter::FormantFilter(FilterParams *pars){
+ numformants=pars->Pnumformants;
+ for (int i=0;i<numformants;i++) formant[i]=new AnalogFilter(4/*BPF*/,1000.0,10.0,pars->Pstages);
+ cleanup();
+ inbuffer=new REALTYPE [SOUND_BUFFER_SIZE];
+ tmpbuf=new REALTYPE [SOUND_BUFFER_SIZE];
+
+ for (int j=0;j<FF_MAX_VOWELS;j++)
+ for (int i=0;i<numformants;i++){
+ formantpar[j][i].freq=pars->getformantfreq(pars->Pvowels[j].formants[i].freq);
+ formantpar[j][i].amp=pars->getformantamp(pars->Pvowels[j].formants[i].amp);
+ formantpar[j][i].q=pars->getformantq(pars->Pvowels[j].formants[i].q);
+ };
+ for (int i=0;i<FF_MAX_FORMANTS;i++) oldformantamp[i]=1.0;
+ for (int i=0;i<numformants;i++){
+ currentformants[i].freq=1000.0;
+ currentformants[i].amp=1.0;
+ currentformants[i].q=2.0;
+ };
+
+ formantslowness=pow(1.0-(pars->Pformantslowness/128.0),3.0);
+
+ sequencesize=pars->Psequencesize;if (sequencesize==0) sequencesize=1;
+ for (int k=0;k<sequencesize;k++) sequence[k].nvowel=pars->Psequence[k].nvowel;
+
+ vowelclearness=pow(10.0,(pars->Pvowelclearness-32.0)/48.0);
+
+ sequencestretch=pow(0.1,(pars->Psequencestretch-32.0)/48.0);
+ if (pars->Psequencereversed) sequencestretch*= -1.0;
+
+ outgain=dB2rap(pars->getgain());
+
+ oldinput=-1.0;
+ Qfactor=1.0;oldQfactor=Qfactor;
+ firsttime=1;
+};
+
+FormantFilter::~FormantFilter(){
+ for (int i=0;i<numformants;i++) delete(formant[i]);
+ delete (inbuffer);
+ delete (tmpbuf);
+};
+
+
+
+
+void FormantFilter::cleanup(){
+ for (int i=0;i<numformants;i++) formant[i]->cleanup();
+};
+
+void FormantFilter::setpos(REALTYPE input){
+ int p1,p2;
+
+ if (firsttime!=0) slowinput=input;
+ else slowinput=slowinput*(1.0-formantslowness)+input*formantslowness;
+
+ if ((fabs(oldinput-input)<0.001)&&(fabs(slowinput-input)<0.001)&&
+ (fabs(Qfactor-oldQfactor)<0.001)) {
+// oldinput=input; daca setez asta, o sa faca probleme la schimbari foarte lente
+ firsttime=0;
+ return;
+ } else oldinput=input;
+
+
+ REALTYPE pos=fmod(input*sequencestretch,1.0);if (pos<0.0) pos+=1.0;
+
+ F2I(pos*sequencesize,p2);
+ p1=p2-1;if (p1<0) p1+=sequencesize;
+
+ pos=fmod(pos*sequencesize,1.0);
+ if (pos<0.0) pos=0.0; else if (pos>1.0) pos=1.0;
+ pos=(atan((pos*2.0-1.0)*vowelclearness)/atan(vowelclearness)+1.0)*0.5;
+
+ p1=sequence[p1].nvowel;
+ p2=sequence[p2].nvowel;
+
+ if (firsttime!=0) {
+ for (int i=0;i<numformants;i++){
+ currentformants[i].freq=formantpar[p1][i].freq*(1.0-pos)+formantpar[p2][i].freq*pos;
+ currentformants[i].amp=formantpar[p1][i].amp*(1.0-pos)+formantpar[p2][i].amp*pos;
+ currentformants[i].q=formantpar[p1][i].q*(1.0-pos)+formantpar[p2][i].q*pos;
+ formant[i]->setfreq_and_q(currentformants[i].freq,currentformants[i].q*Qfactor);
+ oldformantamp[i]=currentformants[i].amp;
+ };
+ firsttime=0;
+ } else {
+ for (int i=0;i<numformants;i++){
+ currentformants[i].freq=currentformants[i].freq*(1.0-formantslowness)
+ +(formantpar[p1][i].freq*(1.0-pos)+formantpar[p2][i].freq*pos)*formantslowness;
+
+ currentformants[i].amp=currentformants[i].amp*(1.0-formantslowness)
+ +(formantpar[p1][i].amp*(1.0-pos)+formantpar[p2][i].amp*pos)*formantslowness;
+
+ currentformants[i].q=currentformants[i].q*(1.0-formantslowness)
+ +(formantpar[p1][i].q*(1.0-pos)+formantpar[p2][i].q*pos)*formantslowness;
+
+ formant[i]->setfreq_and_q(currentformants[i].freq,currentformants[i].q*Qfactor);
+ };
+ };
+
+ oldQfactor=Qfactor;
+};
+
+void FormantFilter::setfreq(REALTYPE frequency){
+ setpos(frequency);
+};
+
+void FormantFilter::setq(REALTYPE q_){
+ Qfactor=q_;
+ for (int i=0;i<numformants;i++) formant[i]->setq(Qfactor*currentformants[i].q);
+};
+
+void FormantFilter::setfreq_and_q(REALTYPE frequency,REALTYPE q_){
+ Qfactor=q_;
+ setpos(frequency);
+};
+
+
+void FormantFilter::filterout(REALTYPE *smp){
+ int i,j;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ inbuffer[i]=smp[i];
+ smp[i]=0.0;
+ };
+
+ for (j=0;j<numformants;j++) {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpbuf[i]=inbuffer[i]*outgain;
+ formant[j]->filterout(tmpbuf);
+
+ if (ABOVE_AMPLITUDE_THRESHOLD(oldformantamp[j],currentformants[j].amp))
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) smp[i]+=tmpbuf[i]*
+ INTERPOLATE_AMPLITUDE(oldformantamp[j],currentformants[j].amp,i,SOUND_BUFFER_SIZE);
+ else for (i=0;i<SOUND_BUFFER_SIZE;i++) smp[i]+=tmpbuf[i]*currentformants[j].amp;
+ oldformantamp[j]=currentformants[j].amp;
+ };
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
new file mode 100644
index 00000000..7cb52499
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
@@ -0,0 +1,67 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FormantFilter.h - formant filter
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FORMANT_FILTER_H
+#define FORMANT_FILTER_H
+
+#include "../globals.h"
+#include "Filter_.h"
+#include "AnalogFilter.h"
+#include "../Params/FilterParams.h"
+
+
+class FormantFilter:public Filter_{
+ public:
+ FormantFilter(FilterParams *pars);
+ ~FormantFilter();
+ void filterout(REALTYPE *smp);
+ void setfreq(REALTYPE frequency);
+ void setfreq_and_q(REALTYPE frequency,REALTYPE q_);
+ void setq(REALTYPE q_);
+
+ void cleanup();
+ private:
+ AnalogFilter *formant[FF_MAX_FORMANTS];
+ REALTYPE *inbuffer,*tmpbuf;
+
+ struct {
+ REALTYPE freq,amp,q;//frequency,amplitude,Q
+ } formantpar[FF_MAX_VOWELS][FF_MAX_FORMANTS],currentformants[FF_MAX_FORMANTS];
+
+ struct {
+ unsigned char nvowel;
+ } sequence [FF_MAX_SEQUENCE];
+
+ REALTYPE oldformantamp[FF_MAX_FORMANTS];
+
+ int sequencesize,numformants,firsttime;
+ REALTYPE oldinput,slowinput;
+ REALTYPE Qfactor,formantslowness,oldQfactor;
+ REALTYPE vowelclearness,sequencestretch;
+
+ void setpos(REALTYPE input);
+
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.C b/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.C
new file mode 100644
index 00000000..8c0e16b2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.C
@@ -0,0 +1,152 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SVFilter.C - Several state-variable filters
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+#include "SVFilter.h"
+
+SVFilter::SVFilter(unsigned char Ftype,REALTYPE Ffreq, REALTYPE Fq,unsigned char Fstages){
+ stages=Fstages;
+ type=Ftype;
+ freq=Ffreq;
+ q=Fq;
+ gain=1.0;
+ outgain=1.0;
+ needsinterpolation=0;
+ firsttime=1;
+ if (stages>=MAX_FILTER_STAGES) stages=MAX_FILTER_STAGES;
+ cleanup();
+ setfreq_and_q(Ffreq,Fq);
+};
+
+SVFilter::~SVFilter(){
+};
+
+void SVFilter::cleanup(){
+ for (int i=0;i<MAX_FILTER_STAGES+1;i++){
+ st[i].low=0.0;st[i].high=0.0;
+ st[i].band=0.0;st[i].notch=0.0;
+ };
+ oldabovenq=0;
+ abovenq=0;
+};
+
+void SVFilter::computefiltercoefs(){
+ par.f=freq / SAMPLE_RATE*4.0;
+ if (par.f>0.99999) par.f=0.99999;
+ par.q=1.0-atan(sqrt(q))*2.0/PI;
+ par.q=pow(par.q,1.0/(stages+1));
+ par.q_sqrt=sqrt(par.q);
+};
+
+
+void SVFilter::setfreq(REALTYPE frequency){
+ if (frequency<0.1) frequency=0.1;
+ REALTYPE rap=freq/frequency;if (rap<1.0) rap=1.0/rap;
+
+ oldabovenq=abovenq;abovenq=frequency>(SAMPLE_RATE/2-500.0);
+
+ int nyquistthresh=(abovenq^oldabovenq);
+
+
+ if ((rap>3.0)||(nyquistthresh!=0)){//if the frequency is changed fast, it needs interpolation (now, filter and coeficients backup)
+ if (firsttime==0) needsinterpolation=1;
+ ipar=par;
+ };
+ freq=frequency;
+ computefiltercoefs();
+ firsttime=0;
+
+};
+
+void SVFilter::setfreq_and_q(REALTYPE frequency,REALTYPE q_){
+ q=q_;
+ setfreq(frequency);
+};
+
+void SVFilter::setq(REALTYPE q_){
+ q=q_;
+ computefiltercoefs();
+};
+
+void SVFilter::settype(int type_){
+ type=type_;
+ computefiltercoefs();
+};
+
+void SVFilter::setgain(REALTYPE dBgain){
+ gain=dB2rap(dBgain);
+ computefiltercoefs();
+};
+
+void SVFilter::setstages(int stages_){
+ if (stages_>=MAX_FILTER_STAGES) stages_=MAX_FILTER_STAGES-1;
+ stages=stages_;
+ cleanup();
+ computefiltercoefs();
+};
+
+void SVFilter::singlefilterout(REALTYPE *smp,fstage &x,parameters &par){
+ int i;
+ REALTYPE *out=NULL;
+ switch(type){
+ case 0: out=&x.low;break;
+ case 1: out=&x.high;break;
+ case 2: out=&x.band;break;
+ case 3: out=&x.notch;break;
+ };
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ x.low = x.low + par.f * x.band;
+ x.high = par.q_sqrt * smp[i] - x.low - par.q*x.band;
+ x.band = par.f * x.high + x.band;
+ x.notch = x.high + x.low;
+
+ smp[i]= *out;
+ };
+};
+
+void SVFilter::filterout(REALTYPE *smp){
+ int i;
+ REALTYPE *ismp=NULL;
+
+ if (needsinterpolation!=0){
+ ismp=new REALTYPE[SOUND_BUFFER_SIZE];
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) ismp[i]=smp[i];
+ for (i=0;i<stages+1;i++) singlefilterout(ismp,st[i],ipar);
+ };
+
+ for (i=0;i<stages+1;i++) singlefilterout(smp,st[i],par);
+
+ if (needsinterpolation!=0){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ REALTYPE x=i/(REALTYPE) SOUND_BUFFER_SIZE;
+ smp[i]=ismp[i]*(1.0-x)+smp[i]*x;
+ };
+ delete (ismp);
+ needsinterpolation=0;
+ };
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) smp[i]*=outgain;
+
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.h b/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.h
new file mode 100644
index 00000000..3117e2c9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/DSP/SVFilter.h
@@ -0,0 +1,67 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SV Filter.h - Several state-variable filters
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef SV_FILTER_H
+#define SV_FILTER_H
+
+#include "../globals.h"
+#include "Filter_.h"
+class SVFilter:public Filter_{
+ public:
+ SVFilter(unsigned char Ftype,REALTYPE Ffreq, REALTYPE Fq,unsigned char Fstages);
+ ~SVFilter();
+ void filterout(REALTYPE *smp);
+ void setfreq(REALTYPE frequency);
+ void setfreq_and_q(REALTYPE frequency,REALTYPE q_);
+ void setq(REALTYPE q_);
+
+ void settype(int type_);
+ void setgain(REALTYPE dBgain);
+ void setstages(int stages_);
+ void cleanup();
+
+ private:
+ struct fstage{
+ REALTYPE low,high,band,notch;
+ } st[MAX_FILTER_STAGES+1];
+
+ struct parameters{
+ REALTYPE f,q,q_sqrt;
+ }par,ipar;
+
+
+ void singlefilterout(REALTYPE *smp,fstage &x,parameters &par);
+ void computefiltercoefs();
+ int type;//The type of the filter (LPF1,HPF1,LPF2,HPF2...)
+ int stages;//how many times the filter is applied (0->1,1->2,etc.)
+ REALTYPE freq;//Frequency given in Hz
+ REALTYPE q; //Q factor (resonance or Q factor)
+ REALTYPE gain;//the gain of the filter (if are shelf/peak) filters
+
+ int abovenq;//this is 1 if the frequency is above the nyquist
+ int oldabovenq;
+ int needsinterpolation,firsttime;
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.C
new file mode 100644
index 00000000..8d2475d2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.C
@@ -0,0 +1,244 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Alienwah.C - "AlienWah" effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include "Alienwah.h"
+#include <stdio.h>
+
+Alienwah::Alienwah(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+
+ oldl=NULL;
+ oldr=NULL;
+ filterpars=NULL;
+ insertion=insertion_;
+
+ Ppreset=0;
+ setpreset(Ppreset);
+ cleanup();
+ oldclfol.a=fb;oldclfol.b=0.0;
+ oldclfor.a=fb;oldclfor.b=0.0;
+};
+
+Alienwah::~Alienwah(){
+ if (oldl!=NULL) delete [] oldl;
+ if (oldr!=NULL) delete [] oldr ;
+};
+
+
+/*
+ * Apply the effect
+ */
+void Alienwah::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ REALTYPE lfol,lfor;
+ COMPLEXTYPE clfol,clfor,out,tmp;
+
+ lfo.effectlfoout(&lfol,&lfor);
+ lfol*=depth*PI*2.0;lfor*=depth*PI*2.0;
+ clfol.a=cos(lfol+phase)*fb;clfol.b=sin(lfol+phase)*fb;
+ clfor.a=cos(lfor+phase)*fb;clfor.b=sin(lfor+phase)*fb;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE x=((REALTYPE) i)/SOUND_BUFFER_SIZE;
+ REALTYPE x1=1.0-x;
+ //left
+ tmp.a=clfol.a*x+oldclfol.a*x1;
+ tmp.b=clfol.b*x+oldclfol.b*x1;
+
+ out.a=tmp.a*oldl[oldk].a-tmp.b*oldl[oldk].b
+ +(1-fabs(fb))*smpsl[i]*panning;
+ out.b=tmp.a*oldl[oldk].b+tmp.b*oldl[oldk].a;
+ oldl[oldk].a=out.a;
+ oldl[oldk].b=out.b;
+ REALTYPE l=out.a*10.0*(fb+0.1);
+
+ //right
+ tmp.a=clfor.a*x+oldclfor.a*x1;
+ tmp.b=clfor.b*x+oldclfor.b*x1;
+
+ out.a=tmp.a*oldr[oldk].a-tmp.b*oldr[oldk].b
+ +(1-fabs(fb))*smpsr[i]*(1.0-panning);
+ out.b=tmp.a*oldr[oldk].b+tmp.b*oldr[oldk].a;
+ oldr[oldk].a=out.a;
+ oldr[oldk].b=out.b;
+ REALTYPE r=out.a*10.0*(fb+0.1);
+
+
+ if (++oldk>=Pdelay) oldk=0;
+ //LRcross
+ efxoutl[i]=l*(1.0-lrcross)+r*lrcross;
+ efxoutr[i]=r*(1.0-lrcross)+l*lrcross;
+ };
+
+ oldclfol.a=clfol.a;oldclfol.b=clfol.b;
+ oldclfor.a=clfor.a;oldclfor.b=clfor.b;
+
+};
+
+/*
+ * Cleanup the effect
+ */
+void Alienwah::cleanup(){
+ for (int i=0;i<Pdelay;i++) {
+ oldl[i].a=0.0;
+ oldl[i].b=0.0;
+ oldr[i].a=0.0;
+ oldr[i].b=0.0;
+ };
+ oldk=0;
+};
+
+
+/*
+ * Parameter control
+ */
+
+void Alienwah::setdepth(unsigned char Pdepth){
+ this->Pdepth=Pdepth;
+ depth=(Pdepth/127.0);
+};
+
+void Alienwah::setfb(unsigned char Pfb){
+ this->Pfb=Pfb;
+ fb=fabs((Pfb-64.0)/64.1);
+ fb=sqrt(fb);
+ if (fb<0.4) fb=0.4;
+ if (Pfb<64) fb=-fb;
+};
+
+void Alienwah::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+ outvolume=Pvolume/127.0;
+ if (insertion==0) volume=1.0;
+ else volume=outvolume;
+};
+
+void Alienwah::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=Ppanning/127.0;
+};
+
+void Alienwah::setlrcross(unsigned char Plrcross){
+ this->Plrcross=Plrcross;
+ lrcross=Plrcross/127.0;
+};
+
+void Alienwah::setphase(unsigned char Pphase){
+ this->Pphase=Pphase;
+ phase=(Pphase-64.0)/64.0*PI;
+};
+
+void Alienwah::setdelay(unsigned char Pdelay){
+ if (oldl!=NULL) delete [] oldl;
+ if (oldr!=NULL) delete [] oldr;
+ if (Pdelay>=MAX_ALIENWAH_DELAY) Pdelay=MAX_ALIENWAH_DELAY;
+ this->Pdelay=Pdelay;
+ oldl=new COMPLEXTYPE[Pdelay];
+ oldr=new COMPLEXTYPE[Pdelay];
+ cleanup();
+};
+
+void Alienwah::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=11;
+ const int NUM_PRESETS=4;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //AlienWah1
+ {127,64,70,0,0,62,60,105,25,0,64},
+ //AlienWah2
+ {127,64,73,106,0,101,60,105,17,0,64},
+ //AlienWah3
+ {127,64,63,0,1,100,112,105,31,0,42},
+ //AlienWah4
+ {93,64,25,0,1,66,101,11,47,0,86}};
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ if (insertion==0) changepar(0,presets[npreset][0]/2);//lower the volume if this is system effect
+ Ppreset=npreset;
+};
+
+
+void Alienwah::changepar(int npar,unsigned char value){
+ switch(npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: lfo.Pfreq=value;
+ lfo.updateparams();
+ break;
+ case 3: lfo.Prandomness=value;
+ lfo.updateparams();
+ break;
+ case 4: lfo.PLFOtype=value;
+ lfo.updateparams();
+ break;
+ case 5: lfo.Pstereo=value;
+ lfo.updateparams();
+ break;
+ case 6: setdepth(value);
+ break;
+ case 7: setfb(value);
+ break;
+ case 8: setdelay(value);
+ break;
+ case 9: setlrcross(value);
+ break;
+ case 10:setphase(value);
+ break;
+ };
+};
+
+unsigned char Alienwah::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(lfo.Pfreq);
+ break;
+ case 3: return(lfo.Prandomness);
+ break;
+ case 4: return(lfo.PLFOtype);
+ break;
+ case 5: return(lfo.Pstereo);
+ break;
+ case 6: return(Pdepth);
+ break;
+ case 7: return(Pfb);
+ break;
+ case 8: return(Pdelay);
+ break;
+ case 9: return(Plrcross);
+ break;
+ case 10:return(Pphase);
+ break;
+ default:return (0);
+ };
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.h
new file mode 100644
index 00000000..b1bfaedc
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Alienwah.h
@@ -0,0 +1,77 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Alienwah.h - "AlienWah" effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ALIENWAH_H
+#define ALIENWAH_H
+#include "../globals.h"
+#include "Effect.h"
+#include "EffectLFO.h"
+
+
+#define MAX_ALIENWAH_DELAY 100
+
+struct COMPLEXTYPE {
+ REALTYPE a,b;
+};
+
+class Alienwah:public Effect {
+ public:
+ Alienwah(int insetion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Alienwah();
+ void out(REALTYPE *smpsl,REALTYPE *smpsr);
+
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+
+ private:
+ //Parametrii Alienwah
+ EffectLFO lfo;//lfo-ul Alienwah
+ unsigned char Pvolume;
+ unsigned char Ppanning;
+ unsigned char Pdepth;//the depth of the Alienwah
+ unsigned char Pfb;//feedback
+ unsigned char Plrcross;//feedback
+ unsigned char Pdelay;
+ unsigned char Pphase;
+
+
+ //Control Parametrii
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setdepth(unsigned char Pdepth);
+ void setfb(unsigned char Pfb);
+ void setlrcross(unsigned char Plrcross);
+ void setdelay(unsigned char Pdelay);
+ void setphase(unsigned char Pphase);
+
+ //Valorile interne
+ int insertion;
+ REALTYPE panning,fb,depth,lrcross,phase;
+ COMPLEXTYPE *oldl,*oldr;
+ COMPLEXTYPE oldclfol,oldclfor;
+ int oldk;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.C
new file mode 100644
index 00000000..fb40c93b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.C
@@ -0,0 +1,277 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Chorus.C - Chorus and Flange effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include "Chorus.h"
+#include <stdio.h>
+
+Chorus::Chorus(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+ dlk=0;drk=0;
+ maxdelay=(int)(MAX_CHORUS_DELAY/1000.0*SAMPLE_RATE);
+ delayl=new REALTYPE[maxdelay];
+ delayr=new REALTYPE[maxdelay];
+ insertion=insertion_;
+
+ filterpars=NULL;
+ Ppreset=0;
+ setpreset(Ppreset);
+
+ lfo.effectlfoout(&lfol,&lfor);
+ dl2=getdelay(lfol);
+ dr2=getdelay(lfor);
+ cleanup();
+};
+
+Chorus::~Chorus(){
+ delete [] delayl;
+ delete [] delayr;
+};
+
+/*
+ * get the delay value in samples; xlfo is the current lfo value
+ */
+REALTYPE Chorus::getdelay(REALTYPE xlfo){
+ REALTYPE result;
+ if (Pflangemode==0){
+ result=(delay+xlfo*depth)*SAMPLE_RATE;
+ } else result=0;
+
+ //check if it is too big delay(caused bu errornous setdelay() and setdepth()
+ if ((result+0.5)>=maxdelay) {
+ fprintf(stderr,"%s","WARNING: Chorus.C::getdelay(..) too big delay (see setdelay and setdepth funcs.)\n");
+ result=maxdelay-1.0;
+ };
+ return(result);
+};
+
+/*
+ * Apply the effect
+ */
+void Chorus::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ dl1=dl2;dr1=dr2;
+ lfo.effectlfoout(&lfol,&lfor);
+
+ dl2=getdelay(lfol);
+ dr2=getdelay(lfor);
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE inl=smpsl[i];
+ REALTYPE inr=smpsr[i];
+ //LRcross
+ REALTYPE l=inl;
+ REALTYPE r=inr;
+ inl=l*(1.0-lrcross)+r*lrcross;
+ inr=r*(1.0-lrcross)+l*lrcross;
+
+ //Left channel
+
+ //compute the delay in samples using linear interpolation between the lfo delays
+ mdel=(dl1*(SOUND_BUFFER_SIZE-i)+dl2*i)/SOUND_BUFFER_SIZE;
+ if (++dlk>=maxdelay) dlk=0;
+ REALTYPE tmp=dlk-mdel+maxdelay*2.0;//where should I get the sample from
+
+ F2I(tmp,dlhi);
+ dlhi%=maxdelay;
+
+ dlhi2=(dlhi-1+maxdelay)%maxdelay;
+ dllo=1.0-fmod(tmp,1.0);
+ efxoutl[i]=delayl[dlhi2]*dllo+delayl[dlhi]*(1.0-dllo);
+ delayl[dlk]=inl+efxoutl[i]*fb;
+
+ //Right channel
+
+ //compute the delay in samples using linear interpolation between the lfo delays
+ mdel=(dr1*(SOUND_BUFFER_SIZE-i)+dr2*i)/SOUND_BUFFER_SIZE;
+ if (++drk>=maxdelay) drk=0;
+ tmp=drk-mdel+maxdelay*2.0;//where should I get the sample from
+
+ F2I(tmp,dlhi);
+ dlhi%=maxdelay;
+
+ dlhi2=(dlhi-1+maxdelay)%maxdelay;
+ dllo=1.0-fmod(tmp,1.0);
+ efxoutr[i]=delayr[dlhi2]*dllo+delayr[dlhi]*(1.0-dllo);
+ delayr[dlk]=inr+efxoutr[i]*fb;
+
+ };
+
+ if (Poutsub!=0)
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i] *= -1.0;
+ efxoutr[i] *= -1.0;
+ };
+
+
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]*=panning;
+ efxoutr[i]*=(1.0-panning);
+ };
+};
+
+/*
+ * Cleanup the effect
+ */
+void Chorus::cleanup(){
+ for (int i=0;i<maxdelay;i++){
+ delayl[i]=0.0;
+ delayr[i]=0.0;
+ };
+
+};
+
+/*
+ * Parameter control
+ */
+void Chorus::setdepth(unsigned char Pdepth){
+ this->Pdepth=Pdepth;
+ depth=(pow(8.0,(Pdepth/127.0)*2.0)-1.0)/1000.0;//seconds
+};
+
+void Chorus::setdelay(unsigned char Pdelay){
+ this->Pdelay=Pdelay;
+ delay=(pow(10.0,(Pdelay/127.0)*2.0)-1.0)/1000.0;//seconds
+};
+
+void Chorus::setfb(unsigned char Pfb){
+ this->Pfb=Pfb;
+ fb=(Pfb-64.0)/64.1;
+};
+void Chorus::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+ outvolume=Pvolume/127.0;
+ if (insertion==0) volume=1.0;
+ else volume=outvolume;
+};
+
+void Chorus::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=Ppanning/127.0;
+};
+
+void Chorus::setlrcross(unsigned char Plrcross){
+ this->Plrcross=Plrcross;
+ lrcross=Plrcross/127.0;
+};
+
+void Chorus::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=12;
+ const int NUM_PRESETS=10;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //Chorus1
+ {64,64,50,0,0,90,40,85,64,119,0,0},
+ //Chorus2
+ {64,64,45,0,0,98,56,90,64,19,0,0},
+ //Chorus3
+ {64,64,29,0,1,42,97,95,90,127,0,0},
+ //Celeste1
+ {64,64,26,0,0,42,115,18,90,127,0,0},
+ //Celeste2
+ {64,64,29,117,0,50,115,9,31,127,0,1},
+ //Flange1
+ {64,64,57,0,0,60,23,3,62,0,0,0},
+ //Flange2
+ {64,64,33,34,1,40,35,3,109,0,0,0},
+ //Flange3
+ {64,64,53,34,1,94,35,3,54,0,0,1},
+ //Flange4
+ {64,64,40,0,1,62,12,19,97,0,0,0},
+ //Flange5
+ {64,64,55,105,0,24,39,19,17,0,0,1}};
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ Ppreset=npreset;
+};
+
+
+void Chorus::changepar(int npar,unsigned char value){
+ switch(npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: lfo.Pfreq=value;
+ lfo.updateparams();
+ break;
+ case 3: lfo.Prandomness=value;
+ lfo.updateparams();
+ break;
+ case 4: lfo.PLFOtype=value;
+ lfo.updateparams();
+ break;
+ case 5: lfo.Pstereo=value;
+ lfo.updateparams();
+ break;
+ case 6: setdepth(value);
+ break;
+ case 7: setdelay(value);
+ break;
+ case 8: setfb(value);
+ break;
+ case 9: setlrcross(value);
+ break;
+ case 10:if (value>1) value=1;
+ Pflangemode=value;
+ break;
+ case 11:if (value>1) value=1;
+ Poutsub=value;
+ break;
+ };
+};
+
+unsigned char Chorus::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(lfo.Pfreq);
+ break;
+ case 3: return(lfo.Prandomness);
+ break;
+ case 4: return(lfo.PLFOtype);
+ break;
+ case 5: return(lfo.Pstereo);
+ break;
+ case 6: return(Pdepth);
+ break;
+ case 7: return(Pdelay);
+ break;
+ case 8: return(Pfb);
+ break;
+ case 9: return(Plrcross);
+ break;
+ case 10:return(Pflangemode);
+ break;
+ case 11:return(Poutsub);
+ break;
+ default:return (0);
+ };
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.h
new file mode 100644
index 00000000..25e2ec34
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Chorus.h
@@ -0,0 +1,73 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Chorus.h - Chorus and Flange effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef CHORUS_H
+#define CHORUS_H
+#include "../globals.h"
+#include "Effect.h"
+#include "EffectLFO.h"
+
+#define MAX_CHORUS_DELAY 250.0 //ms
+
+class Chorus:public Effect {
+ public:
+ Chorus(int insetion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Chorus();
+ void out(REALTYPE *smpsl,REALTYPE *smpsr);
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+
+ private:
+ //Parametrii Chorus
+ EffectLFO lfo;//lfo-ul chorus
+ unsigned char Pvolume;
+ unsigned char Ppanning;
+ unsigned char Pdepth;//the depth of the Chorus(ms)
+ unsigned char Pdelay;//the delay (ms)
+ unsigned char Pfb;//feedback
+ unsigned char Plrcross;//feedback
+ unsigned char Pflangemode;//how the LFO is scaled, to result chorus or flange
+ unsigned char Poutsub;//if I wish to substract the output instead of the adding it
+
+
+ //Control Parametrii
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setdepth(unsigned char Pdepth);
+ void setdelay(unsigned char Pdelay);
+ void setfb(unsigned char Pfb);
+ void setlrcross(unsigned char Plrcross);
+
+ //Valorile interne
+ REALTYPE depth,delay,fb,lrcross,panning;
+ REALTYPE dl1,dl2,dr1,dr2,lfol,lfor;
+ int insertion,maxdelay;
+ REALTYPE *delayl,*delayr;
+ int dlk,drk,dlhi,dlhi2;
+ REALTYPE getdelay(REALTYPE xlfo);
+ REALTYPE dllo,mdel;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.C
new file mode 100644
index 00000000..fa1b1163
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.C
@@ -0,0 +1,384 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Distorsion.C - Distorsion effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "Distorsion.h"
+
+
+/*
+ * Waveshape (this is called by OscilGen::waveshape and Distorsion::process)
+ */
+
+void waveshapesmps(int n,REALTYPE *smps,unsigned char type,unsigned char drive){
+ int i;
+ REALTYPE ws=drive/127.0;
+ REALTYPE tmpv;
+
+ switch(type){
+ case 1: ws=pow(10,ws*ws*3.0)-1.0+0.001;//Arctangent
+ for (i=0;i<n;i++)
+ smps[i]=atan(smps[i]*ws)/atan(ws);
+ break;
+ case 2: ws=ws*ws*32.0+0.0001;//Asymmetric
+ if (ws<1.0) tmpv=sin(ws)+0.1;
+ else tmpv=1.1;
+ for (i=0;i<n;i++) {
+ smps[i]=sin(smps[i]*(0.1+ws-ws*smps[i]))/tmpv;
+ };
+ break;
+ case 3: ws=ws*ws*ws*20.0+0.0001;//Pow
+ for (i=0;i<n;i++) {
+ smps[i]*=ws;
+ if (fabs(smps[i])<1.0) {
+ smps[i]=(smps[i]-pow(smps[i],3.0))*3.0;
+ if (ws<1.0) smps[i]/=ws;
+ } else smps[i]=0.0;
+ };
+ break;
+ case 4: ws=ws*ws*ws*32.0+0.0001;//Sine
+ if (ws<1.57) tmpv=sin(ws);
+ else tmpv=1.0;
+ for (i=0;i<n;i++) smps[i]=sin(smps[i]*ws)/tmpv;
+ break;
+ case 5: ws=ws*ws+0.000001;//Quantisize
+ for (i=0;i<n;i++)
+ smps[i]=floor(smps[i]/ws+0.5)*ws;
+ break;
+ case 6: ws=ws*ws*ws*32+0.0001;//Zigzag
+ if (ws<1.0) tmpv=sin(ws);
+ else tmpv=1.0;
+ for (i=0;i<n;i++)
+ smps[i]=asin(sin(smps[i]*ws))/tmpv;
+ break;
+ case 7: ws=pow(2.0,-ws*ws*8.0); //Limiter
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i];
+ if (fabs(tmp)>ws) {
+ if (tmp>=0.0) smps[i]=1.0;
+ else smps[i]=-1.0;
+ } else smps[i]/=ws;
+ };
+ break;
+ case 8: ws=pow(2.0,-ws*ws*8.0); //Upper Limiter
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i];
+ if (tmp>ws) smps[i]=ws;
+ smps[i]*=2.0;
+ };
+ break;
+ case 9: ws=pow(2.0,-ws*ws*8.0); //Lower Limiter
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i];
+ if (tmp<-ws) smps[i]=-ws;
+ smps[i]*=2.0;
+ };
+ break;
+ case 10:ws=(pow(2.0,ws*6.0)-1.0)/pow(2.0,6.0); //Inverse Limiter
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i];
+ if (fabs(tmp)>ws) {
+ if (tmp>=0.0) smps[i]=tmp-ws;
+ else smps[i]=tmp+ws;
+ } else smps[i]=0;
+ };
+ break;
+ case 11:ws=pow(5,ws*ws*1.0)-1.0;//Clip
+ for (i=0;i<n;i++)
+ smps[i]=smps[i]*(ws+0.5)*0.9999-floor(0.5+smps[i]*(ws+0.5)*0.9999);
+ break;
+ case 12:ws=ws*ws*ws*30+0.001;//Asym2
+ if (ws<0.3) tmpv=ws;
+ else tmpv=1.0;
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i]*ws;
+ if ((tmp>-2.0) && (tmp<1.0)) smps[i]=tmp*(1.0-tmp)*(tmp+2.0)/tmpv;
+ else smps[i]=0.0;
+ };
+ break;
+ case 13:ws=ws*ws*ws*32.0+0.0001;//Pow2
+ if (ws<1.0) tmpv=ws*(1+ws)/2.0;
+ else tmpv=1.0;
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i]*ws;
+ if ((tmp>-1.0)&&(tmp<1.618034)) smps[i]=tmp*(1.0-tmp)/tmpv;
+ else if (tmp>0.0) smps[i]=-1.0;
+ else smps[i]=-2.0;
+ };
+ break;
+ case 14:ws=pow(ws,5.0)*80.0+0.0001;//sigmoid
+ if (ws>10.0) tmpv=0.5;
+ else tmpv=0.5-1.0/(exp(ws)+1.0);
+ for (i=0;i<n;i++) {
+ REALTYPE tmp=smps[i]*ws;
+ if (tmp<-10.0) tmp=-10.0;
+ else if (tmp>10.0) tmp=10.0;
+ tmp=0.5-1.0/(exp(tmp)+1.0);
+ smps[i]=tmp/tmpv;
+ };
+ break;
+ //update to Distorsion::changepar (Ptype max) if there is added more waveshapings functions
+ };
+
+};
+
+
+Distorsion::Distorsion(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+
+ lpfl=new AnalogFilter(2,22000,1,0);
+ lpfr=new AnalogFilter(2,22000,1,0);
+ hpfl=new AnalogFilter(3,20,1,0);
+ hpfr=new AnalogFilter(3,20,1,0);
+
+ filterpars=NULL;
+
+ insertion=insertion_;
+ //default values
+ Ppreset=0;
+ Pvolume=50;
+ Plrcross=40;
+ Pdrive=90;
+ Plevel=64;
+ Ptype=0;
+ Pnegate=0;
+ Plpf=127;
+ Phpf=0;
+ Pstereo=0;
+ Pprefiltering=0;
+
+ setpreset(Ppreset);
+ cleanup();
+};
+
+Distorsion::~Distorsion(){
+ delete (lpfl);
+ delete (lpfr);
+ delete (hpfl);
+ delete (hpfr);
+
+};
+
+/*
+ * Cleanup the effect
+ */
+void Distorsion::cleanup(){
+ lpfl->cleanup();
+ hpfl->cleanup();
+ lpfr->cleanup();
+ hpfr->cleanup();
+};
+
+
+/*
+ * Apply the filters
+ */
+
+void Distorsion::applyfilters(REALTYPE *efxoutl,REALTYPE *efxoutr){
+ lpfl->filterout(efxoutl);
+ hpfl->filterout(efxoutl);
+ if (Pstereo!=0){//stereo
+ lpfr->filterout(efxoutr);
+ hpfr->filterout(efxoutr);
+ };
+
+};
+
+
+/*
+ * Effect output
+ */
+void Distorsion::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ REALTYPE l,r,lout,rout;
+
+ REALTYPE inputvol=pow(5.0,(Pdrive-32.0)/127.0);
+ if (Pnegate!=0) inputvol*=-1.0;
+
+ if (Pstereo!=0){//Stereo
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=smpsl[i]*inputvol*panning;
+ efxoutr[i]=smpsr[i]*inputvol*(1.0-panning);
+ };
+ } else {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=( smpsl[i]*panning + smpsr[i]*(1.0-panning) ) * inputvol;
+ };
+ };
+
+ if (Pprefiltering!=0) applyfilters(efxoutl,efxoutr);
+
+ //no optimised, yet (no look table)
+ waveshapesmps(SOUND_BUFFER_SIZE,efxoutl,Ptype+1,Pdrive);
+ if (Pstereo!=0) waveshapesmps(SOUND_BUFFER_SIZE,efxoutr,Ptype+1,Pdrive);
+
+ if (Pprefiltering==0) applyfilters(efxoutl,efxoutr);
+
+ if (Pstereo==0) for (i=0;i<SOUND_BUFFER_SIZE;i++) efxoutr[i]=efxoutl[i];
+
+ REALTYPE level=dB2rap(60.0*Plevel/127.0-40.0);
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ lout=efxoutl[i];
+ rout=efxoutr[i];
+ l=lout*(1.0-lrcross)+rout*lrcross;
+ r=rout*(1.0-lrcross)+lout*lrcross;
+ lout=l;rout=r;
+
+ efxoutl[i]=lout*2.0*level;
+ efxoutr[i]=rout*2.0*level;
+
+ };
+
+};
+
+
+/*
+ * Parameter control
+ */
+void Distorsion::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+
+ if (insertion==0) {
+ outvolume=pow(0.01,(1.0-Pvolume/127.0))*4.0;
+ volume=1.0;
+ } else {
+ volume=outvolume=Pvolume/127.0;
+ };
+ if (Pvolume==0) cleanup();
+
+};
+
+void Distorsion::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=(Ppanning+0.5)/127.0;
+};
+
+
+void Distorsion::setlrcross(unsigned char Plrcross){
+ this->Plrcross=Plrcross;
+ lrcross=Plrcross/127.0*1.0;
+};
+
+void Distorsion::setlpf(unsigned char Plpf){
+ this->Plpf=Plpf;
+ REALTYPE fr=exp(pow(Plpf/127.0,0.5)*log(25000.0))+40;
+ lpfl->setfreq(fr);
+ lpfr->setfreq(fr);
+};
+
+void Distorsion::sethpf(unsigned char Phpf){
+ this->Phpf=Phpf;
+ REALTYPE fr=exp(pow(Phpf/127.0,0.5)*log(25000.0))+20.0;
+ hpfl->setfreq(fr);
+ hpfr->setfreq(fr);
+};
+
+
+void Distorsion::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=11;
+ const int NUM_PRESETS=6;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //Overdrive 1
+ {127,64,35,56,70,0,0,96,0,0,0},
+ //Overdrive 2
+ {127,64,35,29,75,1,0,127,0,0,0},
+ //A. Exciter 1
+ {64,64,35,75,80,5,0,127,105,1,0},
+ //A. Exciter 2
+ {64,64,35,85,62,1,0,127,118,1,0},
+ //Guitar Amp
+ {127,64,35,63,75,2,0,55,0,0,0},
+ //Quantisize
+ {127,64,35,88,75,4,0,127,0,1,0}};
+
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ if (insertion==0) changepar(0,(int) (presets[npreset][0]/1.5));//lower the volume if this is system effect
+ Ppreset=npreset;
+ cleanup();
+};
+
+
+void Distorsion::changepar(int npar,unsigned char value){
+ switch (npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: setlrcross(value);
+ break;
+ case 3: Pdrive=value;
+ break;
+ case 4: Plevel=value;
+ break;
+ case 5: if (value>13) value=13;//this must be increased if more distorsion types are added
+ Ptype=value;
+ break;
+ case 6: if (value>1) value=1;
+ Pnegate=value;
+ break;
+ case 7: setlpf(value);
+ break;
+ case 8: sethpf(value);
+ break;
+ case 9: if (value>1) value=1;
+ Pstereo=value;
+ break;
+ case 10:Pprefiltering=value;
+ break;
+ };
+};
+
+unsigned char Distorsion::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(Plrcross);
+ break;
+ case 3: return(Pdrive);
+ break;
+ case 4: return(Plevel);
+ break;
+ case 5: return(Ptype);
+ break;
+ case 6: return(Pnegate);
+ break;
+ case 7: return(Plpf);
+ break;
+ case 8: return(Phpf);
+ break;
+ case 9: return(Pstereo);
+ break;
+ case 10:return(Pprefiltering);
+ break;
+ };
+ return(0);//in case of bogus parameter number
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.h
new file mode 100644
index 00000000..5e0aba93
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Distorsion.h
@@ -0,0 +1,73 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Distorsion.h - Distorsion Effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef DISTORSION_H
+#define DISTORSION_H
+
+#include "../globals.h"
+#include "../DSP/AnalogFilter.h"
+#include "Effect.h"
+
+//Waveshaping(called by Distorsion effect and waveshape from OscilGen)
+void waveshapesmps(int n,REALTYPE *smps,unsigned char type,unsigned char drive);
+
+class Distorsion:public Effect{
+ public:
+ Distorsion(int insertion,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Distorsion();
+ void out(REALTYPE *smpsl,REALTYPE *smpr);
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+ void applyfilters(REALTYPE *efxoutl,REALTYPE *efxoutr);
+
+ private:
+ //Parametrii
+ unsigned char Pvolume; //Volumul or E/R
+ unsigned char Ppanning;//Panning
+ unsigned char Plrcross;// L/R Mixing
+ unsigned char Pdrive; //the input amplification
+ unsigned char Plevel; //the ouput amplification
+ unsigned char Ptype; //Distorsion type
+ unsigned char Pnegate; //if the input is negated
+ unsigned char Plpf; //lowpass filter
+ unsigned char Phpf; //highpass filter
+ unsigned char Pstereo; //0=mono,1=stereo
+ unsigned char Pprefiltering;//if you want to do the filtering before the distorsion
+
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setlrcross(unsigned char Plrcross);
+ void setlpf(unsigned char Plpf);
+ void sethpf(unsigned char Phpf);
+
+ //Parametrii reali
+ REALTYPE panning,lrcross;
+ AnalogFilter *lpfl,*lpfr,*hpfl,*hpfr;
+
+};
+
+
+#endif
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.C
new file mode 100644
index 00000000..a86794f0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.C
@@ -0,0 +1,318 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ DynamicFilter.C - "WahWah" effect and others
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include "DynamicFilter.h"
+#include <stdio.h>
+
+DynamicFilter::DynamicFilter(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+
+ insertion=insertion_;
+
+ Ppreset=0;
+ filterl=NULL;
+ filterr=NULL;
+ filterpars=new FilterParams(0,64,64);
+ setpreset(Ppreset);
+ cleanup();
+};
+
+DynamicFilter::~DynamicFilter(){
+ delete(filterpars);
+ delete(filterl);
+ delete(filterr);
+};
+
+
+/*
+ * Apply the effect
+ */
+void DynamicFilter::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ if (filterpars->changed){
+ filterpars->changed=false;
+ cleanup();
+ };
+
+ REALTYPE lfol,lfor;
+ lfo.effectlfoout(&lfol,&lfor);
+ lfol*=depth*5.0;lfor*=depth*5.0;
+ REALTYPE freq=filterpars->getfreq();
+ REALTYPE q=filterpars->getq();
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=smpsl[i];
+ efxoutr[i]=smpsr[i];
+
+ REALTYPE x=(fabs(smpsl[i])+fabs(smpsr[i]))*0.5;
+ ms1=ms1*(1.0-ampsmooth)+x*ampsmooth+1e-10;
+ };
+
+
+ REALTYPE ampsmooth2=pow(ampsmooth,0.2)*0.3;
+ ms2=ms2*(1.0-ampsmooth2)+ms1*ampsmooth2;
+ ms3=ms3*(1.0-ampsmooth2)+ms2*ampsmooth2;
+ ms4=ms4*(1.0-ampsmooth2)+ms3*ampsmooth2;
+ REALTYPE rms=(sqrt(ms4))*ampsns;
+
+ REALTYPE frl=filterl->getrealfreq(freq+lfol+rms);
+ REALTYPE frr=filterr->getrealfreq(freq+lfor+rms);
+
+ filterl->setfreq_and_q(frl,q);
+ filterr->setfreq_and_q(frr,q);
+
+
+ filterl->filterout(efxoutl);
+ filterr->filterout(efxoutr);
+
+ //panning
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]*=panning;
+ efxoutr[i]*=(1.0-panning);
+ };
+
+};
+
+/*
+ * Cleanup the effect
+ */
+void DynamicFilter::cleanup(){
+ reinitfilter();
+ ms1=0.0;
+ ms2=0.0;
+ ms3=0.0;
+ ms4=0.0;
+};
+
+
+/*
+ * Parameter control
+ */
+
+void DynamicFilter::setdepth(unsigned char Pdepth){
+ this->Pdepth=Pdepth;
+ depth=pow((Pdepth/127.0),2.0);
+};
+
+
+void DynamicFilter::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+ outvolume=Pvolume/127.0;
+ if (insertion==0) volume=1.0;
+ else volume=outvolume;
+};
+
+void DynamicFilter::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=Ppanning/127.0;
+};
+
+
+void DynamicFilter::setampsns(unsigned char Pampsns){
+ ampsns=pow(Pampsns/127.0,2.5)*10.0;
+ if (Pampsnsinv!=0) ampsns=-ampsns;
+ ampsmooth=exp(-Pampsmooth/127.0*10.0)*0.99;
+ this->Pampsns=Pampsns;
+};
+
+void DynamicFilter::reinitfilter(){
+ if (filterl!=NULL) delete(filterl);
+ if (filterr!=NULL) delete(filterr);
+ filterl=new Filter(filterpars);
+ filterr=new Filter(filterpars);
+};
+
+void DynamicFilter::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=10;
+ const int NUM_PRESETS=5;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //WahWah
+ {110,64,80,0,0,64,0,90,0,60},
+ //AutoWah
+ {110,64,70,0,0,80,70,0,0,60},
+ //Sweep
+ {100,64,30,0,0,50,80,0,0,60},
+ //VocalMorph1
+ {110,64,80,0,0,64,0,64,0,60},
+ //VocalMorph1
+ {127,64,50,0,0,96,64,0,0,60}};
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+
+ filterpars->defaults();
+ switch(npreset){
+ case 0:
+ filterpars->Pcategory=0;
+ filterpars->Ptype=2;
+ filterpars->Pfreq=45;
+ filterpars->Pq=64;
+ filterpars->Pstages=1;
+ filterpars->Pgain=64;
+ break;
+ case 1:
+ filterpars->Pcategory=2;
+ filterpars->Ptype=0;
+ filterpars->Pfreq=72;
+ filterpars->Pq=64;
+ filterpars->Pstages=0;
+ filterpars->Pgain=64;
+ break;
+ case 2:
+ filterpars->Pcategory=0;
+ filterpars->Ptype=4;
+ filterpars->Pfreq=64;
+ filterpars->Pq=64;
+ filterpars->Pstages=2;
+ filterpars->Pgain=64;
+ break;
+ case 3:
+ filterpars->Pcategory=1;
+ filterpars->Ptype=0;
+ filterpars->Pfreq=50;
+ filterpars->Pq=70;
+ filterpars->Pstages=1;
+ filterpars->Pgain=64;
+
+ filterpars->Psequencesize=2;
+ // "I"
+ filterpars->Pvowels[0].formants[0].freq=34;
+ filterpars->Pvowels[0].formants[0].amp=127;
+ filterpars->Pvowels[0].formants[0].q=64;
+ filterpars->Pvowels[0].formants[1].freq=99;
+ filterpars->Pvowels[0].formants[1].amp=122;
+ filterpars->Pvowels[0].formants[1].q=64;
+ filterpars->Pvowels[0].formants[2].freq=108;
+ filterpars->Pvowels[0].formants[2].amp=112;
+ filterpars->Pvowels[0].formants[2].q=64;
+ // "A"
+ filterpars->Pvowels[1].formants[0].freq=61;
+ filterpars->Pvowels[1].formants[0].amp=127;
+ filterpars->Pvowels[1].formants[0].q=64;
+ filterpars->Pvowels[1].formants[1].freq=71;
+ filterpars->Pvowels[1].formants[1].amp=121;
+ filterpars->Pvowels[1].formants[1].q=64;
+ filterpars->Pvowels[1].formants[2].freq=99;
+ filterpars->Pvowels[1].formants[2].amp=117;
+ filterpars->Pvowels[1].formants[2].q=64;
+ break;
+ case 4:
+ filterpars->Pcategory=1;
+ filterpars->Ptype=0;
+ filterpars->Pfreq=64;
+ filterpars->Pq=70;
+ filterpars->Pstages=1;
+ filterpars->Pgain=64;
+
+ filterpars->Psequencesize=2;
+ filterpars->Pnumformants=2;
+ filterpars->Pvowelclearness=0;
+
+ filterpars->Pvowels[0].formants[0].freq=70;
+ filterpars->Pvowels[0].formants[0].amp=127;
+ filterpars->Pvowels[0].formants[0].q=64;
+ filterpars->Pvowels[0].formants[1].freq=80;
+ filterpars->Pvowels[0].formants[1].amp=122;
+ filterpars->Pvowels[0].formants[1].q=64;
+
+ filterpars->Pvowels[1].formants[0].freq=20;
+ filterpars->Pvowels[1].formants[0].amp=127;
+ filterpars->Pvowels[1].formants[0].q=64;
+ filterpars->Pvowels[1].formants[1].freq=100;
+ filterpars->Pvowels[1].formants[1].amp=121;
+ filterpars->Pvowels[1].formants[1].q=64;
+ break;
+ };
+
+// for (int i=0;i<5;i++){
+// printf("freq=%d amp=%d q=%d\n",filterpars->Pvowels[0].formants[i].freq,filterpars->Pvowels[0].formants[i].amp,filterpars->Pvowels[0].formants[i].q);
+// };
+ if (insertion==0) changepar(0,presets[npreset][0]/2);//lower the volume if this is system effect
+ Ppreset=npreset;
+
+ reinitfilter();
+};
+
+
+void DynamicFilter::changepar(int npar,unsigned char value){
+ switch(npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: lfo.Pfreq=value;
+ lfo.updateparams();
+ break;
+ case 3: lfo.Prandomness=value;
+ lfo.updateparams();
+ break;
+ case 4: lfo.PLFOtype=value;
+ lfo.updateparams();
+ break;
+ case 5: lfo.Pstereo=value;
+ lfo.updateparams();
+ break;
+ case 6: setdepth(value);
+ break;
+ case 7: setampsns(value);
+ break;
+ case 8: Pampsnsinv=value;
+ setampsns(Pampsns);
+ break;
+ case 9: Pampsmooth=value;
+ setampsns(Pampsns);
+ break;
+ };
+};
+
+unsigned char DynamicFilter::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(lfo.Pfreq);
+ break;
+ case 3: return(lfo.Prandomness);
+ break;
+ case 4: return(lfo.PLFOtype);
+ break;
+ case 5: return(lfo.Pstereo);
+ break;
+ case 6: return(Pdepth);
+ break;
+ case 7: return(Pampsns);
+ break;
+ case 8: return(Pampsnsinv);
+ break;
+ case 9: return(Pampsmooth);
+ break;
+ default:return (0);
+ };
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.h
new file mode 100644
index 00000000..42ab5981
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/DynamicFilter.h
@@ -0,0 +1,72 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ DynamicFilter.h - "WahWah" effect and others
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef DYNAMICFILTER_H
+#define DYNAMICFILTER_H
+#include "../globals.h"
+#include "Effect.h"
+#include "EffectLFO.h"
+
+#include "../DSP/Filter.h"
+
+class DynamicFilter:public Effect {
+ public:
+ DynamicFilter(int insetion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~DynamicFilter();
+ void out(REALTYPE *smpsl,REALTYPE *smpsr);
+
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+
+// void setdryonly();
+
+ private:
+ //Parametrii DynamicFilter
+ EffectLFO lfo;//lfo-ul DynamicFilter
+ unsigned char Pvolume;
+ unsigned char Ppanning;
+ unsigned char Pdepth;//the depth of the lfo of the DynamicFilter
+ unsigned char Pampsns;//how the filter varies according to the input amplitude
+ unsigned char Pampsnsinv;//if the filter freq is lowered if the input amplitude rises
+ unsigned char Pampsmooth;//how smooth the input amplitude changes the filter
+
+ //Control Parametrii
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setdepth(unsigned char Pdepth);
+ void setampsns(unsigned char Pampsns);
+
+ void reinitfilter();
+
+ //Valorile interne
+ int insertion;
+ REALTYPE panning,depth,ampsns,ampsmooth;
+
+ Filter *filterl,*filterr;
+
+ REALTYPE ms1,ms2,ms3,ms4;//mean squares
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.C
new file mode 100644
index 00000000..8180a655
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.C
@@ -0,0 +1,198 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EQ.C - EQ effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "EQ.h"
+
+EQ::EQ(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+ insertion=insertion_;
+ filterpars=NULL;
+
+ for (int i=0;i<MAX_EQ_BANDS;i++){
+ filter[i].Ptype=0;
+ filter[i].Pfreq=64;
+ filter[i].Pgain=64;
+ filter[i].Pq=64;
+ filter[i].Pstages=0;
+ filter[i].l=new AnalogFilter(6,1000.0,1.0,0);
+ filter[i].r=new AnalogFilter(6,1000.0,1.0,0);
+ };
+ //default values
+ Ppreset=0;
+ Pvolume=50;
+
+ setpreset(Ppreset);
+ cleanup();
+};
+
+EQ::~EQ(){
+};
+
+/*
+ * Cleanup the effect
+ */
+void EQ::cleanup(){
+ for (int i=0;i<MAX_EQ_BANDS;i++){
+ filter[i].l->cleanup();
+ filter[i].r->cleanup();
+ };
+};
+
+
+
+/*
+ * Effect output
+ */
+void EQ::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=smpsl[i]*volume;
+ efxoutr[i]=smpsr[i]*volume;
+ };
+
+ for (i=0;i<MAX_EQ_BANDS;i++){
+ if (filter[i].Ptype==0) continue;
+ filter[i].l->filterout(efxoutl);
+ filter[i].r->filterout(efxoutr);
+ };
+};
+
+
+/*
+ * Parameter control
+ */
+void EQ::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+
+ outvolume=pow(0.005,(1.0-Pvolume/127.0))*10.0;
+ if (insertion==0) {
+ volume=1.0;
+ } else {
+ volume=outvolume;
+ };
+
+};
+
+
+void EQ::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=1;
+ const int NUM_PRESETS=2;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //EQ 1
+ {67},
+ //EQ 2
+ {67}};
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ Ppreset=npreset;
+};
+
+
+void EQ::changepar(int npar,unsigned char value){
+ switch (npar){
+ case 0: setvolume(value);
+ break;
+ };
+ if (npar<10) return;
+
+ int nb=(npar-10)/5;//number of the band (filter)
+ if (nb>=MAX_EQ_BANDS) return;
+ int bp=npar%5;//band paramenter
+
+ REALTYPE tmp;
+ switch(bp){
+ case 0: if (value>9) value=0;//has to be changed if more filters will be added
+ filter[nb].Ptype=value;
+ if (value!=0){
+ filter[nb].l->settype(value-1);
+ filter[nb].r->settype(value-1);
+ };
+ break;
+ case 1: filter[nb].Pfreq=value;
+ tmp=600.0*pow(30.0,(value-64.0)/64.0);
+ filter[nb].l->setfreq(tmp);
+ filter[nb].r->setfreq(tmp);
+ break;
+ case 2: filter[nb].Pgain=value;
+ tmp=30.0*(value-64.0)/64.0;
+ filter[nb].l->setgain(tmp);
+ filter[nb].r->setgain(tmp);
+ break;
+ case 3: filter[nb].Pq=value;
+ tmp=pow(30.0,(value-64.0)/64.0);
+ filter[nb].l->setq(tmp);
+ filter[nb].r->setq(tmp);
+ break;
+ case 4: if (value>=MAX_FILTER_STAGES) value=MAX_FILTER_STAGES-1;
+ filter[nb].Pstages=value;
+ filter[nb].l->setstages(value);
+ filter[nb].r->setstages(value);
+ break;
+ };
+};
+
+unsigned char EQ::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ };
+
+ if (npar<10) return(0);
+
+ int nb=(npar-10)/5;//number of the band (filter)
+ if (nb>=MAX_EQ_BANDS) return(0);
+ int bp=npar%5;//band paramenter
+ switch(bp){
+ case 0: return(filter[nb].Ptype);
+ break;
+ case 1: return(filter[nb].Pfreq);
+ break;
+ case 2: return(filter[nb].Pgain);
+ break;
+ case 3: return(filter[nb].Pq);
+ break;
+ case 4: return(filter[nb].Pstages);
+ break;
+ };
+
+ return(0);//in case of bogus parameter number
+};
+
+
+
+
+REALTYPE EQ::getfreqresponse(REALTYPE freq){
+ REALTYPE resp=1.0;
+
+ for (int i=0;i<MAX_EQ_BANDS;i++){
+ if (filter[i].Ptype==0) continue;
+ resp*=filter[i].l->H(freq);
+ };
+ return(rap2dB(resp*outvolume));
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.h
new file mode 100644
index 00000000..843b957b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EQ.h
@@ -0,0 +1,58 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EQ.h - EQ Effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef EQ_H
+#define EQ_H
+
+#include "../globals.h"
+#include "../DSP/AnalogFilter.h"
+#include "Effect.h"
+
+class EQ:public Effect{
+ public:
+ EQ(int insertion,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~EQ();
+ void out(REALTYPE *smpsl,REALTYPE *smpr);
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+ REALTYPE getfreqresponse(REALTYPE freq);
+ private:
+ //Parametrii
+ unsigned char Pvolume;//Volumul
+
+ void setvolume(unsigned char Pvolume);
+
+ struct {
+ //parameters
+ unsigned char Ptype,Pfreq,Pgain,Pq,Pstages;
+ //internal values
+ AnalogFilter *l,*r;
+ }filter[MAX_EQ_BANDS];
+
+};
+
+
+#endif
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.C
new file mode 100644
index 00000000..a35ee1ba
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.C
@@ -0,0 +1,240 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Echo.C - Echo effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "Echo.h"
+
+Echo::Echo(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+ filterpars=NULL;
+
+ insertion=insertion_;
+ //default values
+ Ppreset=0;
+ Pvolume=50;
+ Ppanning=64;
+ Pdelay=60;
+ Plrdelay=100;
+ Plrcross=100;
+ Pfb=40;
+ Phidamp=60;
+
+ ldelay=NULL;
+ rdelay=NULL;
+ lrdelay=0;
+
+ setpreset(Ppreset);
+ cleanup();
+};
+
+Echo::~Echo(){
+ delete[] ldelay;
+ delete[] rdelay;
+};
+
+/*
+ * Cleanup the effect
+ */
+void Echo::cleanup(){
+ int i;
+ for (i=0;i<dl;i++) ldelay[i]=0.0;
+ for (i=0;i<dr;i++) rdelay[i]=0.0;
+ oldl=0.0;
+ oldr=0.0;
+};
+
+
+/*
+ * Initialize the delays
+ */
+void Echo::initdelays(){
+ kl=0;kr=0;
+ dl=delay-lrdelay;if (dl<1) dl=1;
+ dr=delay+lrdelay;if (dr<1) dr=1;
+
+ if (ldelay!=NULL) delete [] ldelay;
+ if (rdelay!=NULL) delete [] rdelay;
+ ldelay=new REALTYPE[dl];
+ rdelay=new REALTYPE[dr];
+
+ cleanup();
+};
+
+/*
+ * Effect output
+ */
+void Echo::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ REALTYPE l,r,ldl,rdl;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ ldl=ldelay[kl];
+ rdl=rdelay[kr];
+ l=ldl*(1.0-lrcross)+rdl*lrcross;
+ r=rdl*(1.0-lrcross)+ldl*lrcross;
+ ldl=l;rdl=r;
+
+ efxoutl[i]=ldl*2.0;
+ efxoutr[i]=rdl*2.0;
+ ldl=smpsl[i]*panning-ldl*fb;
+ rdl=smpsr[i]*(1.0-panning)-rdl*fb;
+
+ //LowPass Filter
+ ldelay[kl]=ldl=ldl*hidamp+oldl*(1.0-hidamp);
+ rdelay[kr]=rdl=rdl*hidamp+oldr*(1.0-hidamp);
+ oldl=ldl;
+ oldr=rdl;
+
+ if (++kl>=dl) kl=0;
+ if (++kr>=dr) kr=0;
+ };
+
+};
+
+
+/*
+ * Parameter control
+ */
+void Echo::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+
+ if (insertion==0) {
+ outvolume=pow(0.01,(1.0-Pvolume/127.0))*4.0;
+ volume=1.0;
+ } else {
+ volume=outvolume=Pvolume/127.0;
+ };
+ if (Pvolume==0) cleanup();
+
+};
+
+void Echo::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=(Ppanning+0.5)/127.0;
+};
+
+void Echo::setdelay(unsigned char Pdelay){
+ this->Pdelay=Pdelay;
+ delay=1+(int)(Pdelay/127.0*SAMPLE_RATE*1.5);//0 .. 1.5 sec
+ initdelays();
+};
+
+void Echo::setlrdelay(unsigned char Plrdelay){
+ REALTYPE tmp;
+ this->Plrdelay=Plrdelay;
+ tmp=(pow(2,fabs(Plrdelay-64.0)/64.0*9)-1.0)/1000.0*SAMPLE_RATE;
+ if (Plrdelay<64.0) tmp=-tmp;
+ lrdelay=(int) tmp;
+ initdelays();
+};
+
+void Echo::setlrcross(unsigned char Plrcross){
+ this->Plrcross=Plrcross;
+ lrcross=Plrcross/127.0*1.0;
+};
+
+void Echo::setfb(unsigned char Pfb){
+ this->Pfb=Pfb;
+ fb=Pfb/128.0;
+};
+
+void Echo::sethidamp(unsigned char Phidamp){
+ this->Phidamp=Phidamp;
+ hidamp=1.0-Phidamp/127.0;
+};
+
+void Echo::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=7;
+ const int NUM_PRESETS=9;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //Echo 1
+ {67,64,35,64,30,59,0},
+ //Echo 2
+ {67,64,21,64,30,59,0},
+ //Echo 3
+ {67,75,60,64,30,59,10},
+ //Simple Echo
+ {67,60,44,64,30,0,0},
+ //Canyon
+ {67,60,102,50,30,82,48},
+ //Panning Echo 1
+ {67,64,44,17,0,82,24},
+ //Panning Echo 2
+ {81,60,46,118,100,68,18},
+ //Panning Echo 3
+ {81,60,26,100,127,67,36},
+ //Feedback Echo
+ {62,64,28,64,100,90,55}};
+
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ if (insertion!=0) changepar(0,presets[npreset][0]/2);//lower the volume if this is insertion effect
+ Ppreset=npreset;
+};
+
+
+void Echo::changepar(int npar,unsigned char value){
+ switch (npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: setdelay(value);
+ break;
+ case 3: setlrdelay(value);
+ break;
+ case 4: setlrcross(value);
+ break;
+ case 5: setfb(value);
+ break;
+ case 6: sethidamp(value);
+ break;
+ };
+};
+
+unsigned char Echo::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(Pdelay);
+ break;
+ case 3: return(Plrdelay);
+ break;
+ case 4: return(Plrcross);
+ break;
+ case 5: return(Pfb);
+ break;
+ case 6: return(Phidamp);
+ break;
+ };
+ return(0);//in case of bogus parameter number
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.h
new file mode 100644
index 00000000..8d6e6288
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Echo.h
@@ -0,0 +1,71 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Echo.h - Echo Effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ECHO_H
+#define ECHO_H
+
+#include "../globals.h"
+#include "Effect.h"
+
+class Echo:public Effect{
+ public:
+ Echo(int insertion,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Echo();
+ void out(REALTYPE *smpsl,REALTYPE *smpr);
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+
+ void setdryonly();
+ private:
+ //Parametrii
+ unsigned char Pvolume;//Volumul or E/R
+ unsigned char Ppanning;//Panning
+ unsigned char Pdelay;
+ unsigned char Plrdelay;// L/R delay difference
+ unsigned char Plrcross;// L/R Mixing
+ unsigned char Pfb;//Feed-back-ul
+ unsigned char Phidamp;
+
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setdelay(unsigned char Pdelay);
+ void setlrdelay(unsigned char Plrdelay);
+ void setlrcross(unsigned char Plrcross);
+ void setfb(unsigned char Pfb);
+ void sethidamp(unsigned char Phidamp);
+
+ //Parametrii reali
+ REALTYPE panning,lrcross,fb,hidamp;
+ int dl,dr,delay,lrdelay;
+
+ void initdelays();
+ REALTYPE *ldelay,*rdelay;
+ REALTYPE oldl,oldr;//pt. lpf
+ int kl,kr;
+};
+
+
+#endif
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.C
new file mode 100644
index 00000000..d9ec124c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.C
@@ -0,0 +1,24 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Effect.C - this class is inherited by the all effects(Reverb, Echo, ..)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Effect.h"
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.h
new file mode 100644
index 00000000..14df43ba
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Effect.h
@@ -0,0 +1,61 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Effect.h - this class is inherited by the all effects(Reverb, Echo, ..)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef EFFECT_H
+#define EFFECT_H
+
+#include <pthread.h>
+#include "../Misc/Util.h"
+#include "../globals.h"
+#include "../Params/FilterParams.h"
+
+
+class Effect{
+ public:
+
+ virtual ~Effect(){};
+ virtual void setpreset(unsigned char /*npreset*/){};
+ virtual void changepar(int /*npar*/,unsigned char /*value*/){};
+ virtual unsigned char getpar(int /*npar*/){return(0);};
+ virtual void out(REALTYPE */*smpsl*/,REALTYPE */*smpsr*/){};
+ virtual void cleanup(){};
+ virtual REALTYPE getfreqresponse(REALTYPE /*freq*/){return (0);};//this is only used for EQ (for user interface)
+
+ unsigned char Ppreset;
+ REALTYPE *efxoutl;
+ REALTYPE *efxoutr;
+
+ REALTYPE outvolume;//this is the volume of effect and is public because need it in system effect. The out volume of such effects are always 1.0, so this setting tells me how is the volume to the Master Output only.
+
+ REALTYPE volume;
+
+ FilterParams *filterpars;
+ protected:
+
+ int insertion;//1 for insertion effect
+};
+
+#endif
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.C
new file mode 100644
index 00000000..1e800710
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.C
@@ -0,0 +1,110 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EffectLFO.C - Stereo LFO used by some effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "EffectLFO.h"
+
+
+EffectLFO::EffectLFO(){
+ xl=0.0;xr=0.0;
+ Pfreq=40;
+ Prandomness=0;
+ PLFOtype=0;
+ Pstereo=96;
+
+ updateparams();
+
+ ampl1=(1-lfornd)+lfornd*RND;
+ ampl2=(1-lfornd)+lfornd*RND;
+ ampr1=(1-lfornd)+lfornd*RND;
+ ampr2=(1-lfornd)+lfornd*RND;
+};
+
+EffectLFO::~EffectLFO(){
+};
+
+
+/*
+ * Update the changed parameters
+ */
+void EffectLFO::updateparams(){
+ REALTYPE lfofreq=(pow(2,Pfreq/127.0*10.0)-1.0)*0.03;
+ incx=fabs(lfofreq)*(REALTYPE)SOUND_BUFFER_SIZE/(REALTYPE)SAMPLE_RATE;
+ if (incx>0.49999999) incx=0.499999999; //Limit the Frequency
+
+ lfornd=Prandomness/127.0;
+ if (lfornd<0.0) lfornd=0.0; else if (lfornd>1.0) lfornd=1.0;
+
+ if (PLFOtype>1) PLFOtype=1;//this has to be updated if more lfo's are added
+ lfotype=PLFOtype;
+
+ xr=fmod(xl+(Pstereo-64.0)/127.0+1.0,1.0);
+};
+
+
+/*
+ * Compute the shape of the LFO
+ */
+REALTYPE EffectLFO::getlfoshape(REALTYPE x){
+ REALTYPE out;
+ switch (lfotype){
+ case 1: //EffectLFO_TRIANGLE
+ if ((x>0.0)&&(x<0.25)) out=4.0*x;
+ else if ((x>0.25)&&(x<0.75)) out=2-4*x;
+ else out=4.0*x-4.0;
+ break;
+ //more to be added here; also ::updateparams() need to be updated (to allow more lfotypes)
+ default:out=cos(x*2*PI);//EffectLFO_SINE
+ };
+ return(out);
+};
+
+/*
+ * LFO output
+ */
+void EffectLFO::effectlfoout(REALTYPE *outl,REALTYPE *outr){
+ REALTYPE out;
+
+ out=getlfoshape(xl);
+ if ((lfotype==0)||(lfotype==1)) out*=(ampl1+xl*(ampl2-ampl1));
+ xl+=incx;
+ if (xl>1.0) {
+ xl-=1.0;
+ ampl1=ampl2;
+ ampl2=(1.0-lfornd)+lfornd*RND;
+ };
+ *outl=(out+1.0)*0.5;
+
+ out=getlfoshape(xr);
+ if ((lfotype==0)||(lfotype==1)) out*=(ampr1+xr*(ampr2-ampr1));
+ xr+=incx;
+ if (xr>1.0) {
+ xr-=1.0;
+ ampr1=ampr2;
+ ampr2=(1.0-lfornd)+lfornd*RND;
+ };
+ *outr=(out+1.0)*0.5;
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.h
new file mode 100644
index 00000000..c1bb8cce
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectLFO.h
@@ -0,0 +1,50 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EffectLFO.h - Stereo LFO used by some effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef EFFECT_LFO_H
+#define EFFECT_LFO_H
+
+#include "../globals.h"
+
+class EffectLFO{
+ public:
+ EffectLFO();
+ ~EffectLFO();
+ void effectlfoout(REALTYPE *outl,REALTYPE *outr);
+ void updateparams();
+ unsigned char Pfreq;
+ unsigned char Prandomness;
+ unsigned char PLFOtype;
+ unsigned char Pstereo;//"64"=0
+ private:
+ REALTYPE getlfoshape(REALTYPE x);
+
+ REALTYPE xl,xr;
+ REALTYPE incx;
+ REALTYPE ampl1,ampl2,ampr1,ampr2;//necesar pentru "randomness"
+ REALTYPE lfointensity;
+ REALTYPE lfornd;
+ char lfotype;
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.C
new file mode 100644
index 00000000..efdb672a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.C
@@ -0,0 +1,292 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EffectMgr.C - Effect manager, an interface betwen the program and effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "EffectMgr.h"
+#include "../Misc/Master.h"
+
+EffectMgr::EffectMgr(int insertion_,Master* master_){
+ setpresettype("Peffect");
+ efx=NULL;
+ nefx=0;
+ insertion=insertion_;
+ master=master_;
+ efxoutl=new REALTYPE[SOUND_BUFFER_SIZE];
+ efxoutr=new REALTYPE[SOUND_BUFFER_SIZE];;
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=0.0;
+ efxoutr[i]=0.0;
+ };
+ filterpars=NULL;
+ dryonly=false;
+ defaults();
+};
+
+
+EffectMgr::~EffectMgr(){
+ if (efx!=NULL) delete (efx);
+ delete (efxoutl);
+ delete (efxoutr);
+};
+
+void EffectMgr::defaults(){
+ changeeffect(0);
+ setdryonly(false);
+};
+
+/*
+ * Change the effect
+ */
+void EffectMgr::changeeffect(int nefx_){
+ cleanup();
+ if (nefx==nefx_) return;
+ nefx=nefx_;
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]=0.0;
+ efxoutr[i]=0.0;
+ };
+
+ if (efx!=NULL) delete (efx);
+ switch (nefx){
+ case 1:efx=new Reverb(insertion,efxoutl,efxoutr);break;
+ case 2:efx=new Echo(insertion,efxoutl,efxoutr);break;
+ case 3:efx=new Chorus(insertion,efxoutl,efxoutr);break;
+ case 4:efx=new Phaser(insertion,efxoutl,efxoutr);break;
+ case 5:efx=new Alienwah(insertion,efxoutl,efxoutr);break;
+ case 6:efx=new Distorsion(insertion,efxoutl,efxoutr);break;
+ case 7:efx=new EQ(insertion,efxoutl,efxoutr);break;
+ case 8:efx=new DynamicFilter(insertion,efxoutl,efxoutr);break;
+ //put more effect here
+ default:efx=NULL;break;//no effect (thru)
+ };
+
+ if (efx!=NULL) filterpars=efx->filterpars;
+};
+
+/*
+ * Obtain the effect number
+ */
+int EffectMgr::geteffect(){
+ return (nefx);
+};
+
+/*
+ * Cleanup the current effect
+ */
+void EffectMgr::cleanup(){
+ if (efx!=NULL) efx->cleanup();
+};
+
+
+/*
+ * Get the preset of the current effect
+ */
+
+unsigned char EffectMgr::getpreset(){
+ if (efx!=NULL) return(efx->Ppreset);
+ else return(0);
+};
+
+/*
+ * Change the preset of the current effect
+ */
+void EffectMgr::changepreset_nolock(unsigned char npreset){
+ if (efx!=NULL) efx->setpreset(npreset);
+};
+
+/*
+ * Change the preset of the current effect(with thread locking)
+ */
+void EffectMgr::changepreset(unsigned char npreset){
+ master->lock();
+ changepreset_nolock(npreset);
+ master->unlock();
+};
+
+
+/*
+ * Change a parameter of the current effect
+ */
+void EffectMgr::seteffectpar_nolock(int npar,unsigned char value){
+ if (efx==NULL) return;
+ efx->changepar(npar,value);
+};
+
+/*
+ * Change a parameter of the current effect (with thread locking)
+ */
+void EffectMgr::seteffectpar(int npar,unsigned char value){
+ master->lock();
+ seteffectpar_nolock(npar,value);
+ master->unlock();
+};
+
+/*
+ * Get a parameter of the current effect
+ */
+unsigned char EffectMgr::geteffectpar(int npar){
+ if (efx==NULL) return(0);
+ return(efx->getpar(npar));
+};
+
+
+/*
+ * Apply the effect
+ */
+void EffectMgr::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i;
+ if (efx==NULL){
+ if (insertion==0)
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ smpsl[i]=0.0;smpsr[i]=0.0;
+ efxoutl[i]=0.0;efxoutr[i]=0.0;
+ };
+ return;
+ };
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ smpsl[i]+=denormalkillbuf[i];
+ smpsr[i]+=denormalkillbuf[i];
+ efxoutl[i]=0.0;
+ efxoutr[i]=0.0;
+ };
+ efx->out(smpsl,smpsr);
+
+ REALTYPE volume=efx->volume;
+
+ if (nefx==7){//this is need only for the EQ effect
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ smpsl[i]=efxoutl[i];
+ smpsr[i]=efxoutr[i];
+ };
+ return;
+ };
+
+ //Insertion effect
+ if (insertion!=0) {
+ REALTYPE v1,v2;
+ if (volume<0.5) {
+ v1=1.0;
+ v2=volume*2.0;
+ } else {
+ v1=(1.0-volume)*2.0;
+ v2=1.0;
+ };
+ if ((nefx==1)||(nefx==2)) v2*=v2;//for Reverb and Echo, the wet function is not liniar
+
+ if (dryonly){//this is used for instrument effect only
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ smpsl[i]*=v1;
+ smpsr[i]*=v1;
+ efxoutl[i]*=v2;
+ efxoutr[i]*=v2;
+ };
+ }else{//normal instrument/insertion effect
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ smpsl[i]=smpsl[i]*v1+efxoutl[i]*v2;
+ smpsr[i]=smpsr[i]*v1+efxoutr[i]*v2;
+ };
+ };
+ } else {//System effect
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]*=2.0*volume;
+ efxoutr[i]*=2.0*volume;
+ smpsl[i]=efxoutl[i];
+ smpsr[i]=efxoutr[i];
+ };
+ };
+
+};
+
+/*
+ * Get the effect volume for the system effect
+ */
+REALTYPE EffectMgr::sysefxgetvolume(){
+ if (efx==NULL) return (1.0);
+ else return(efx->outvolume);
+};
+
+
+/*
+ * Get the EQ response
+ */
+REALTYPE EffectMgr::getEQfreqresponse(REALTYPE freq){
+ if (nefx==7) return(efx->getfreqresponse(freq));
+ else return(0.0);
+};
+
+
+void EffectMgr::setdryonly(bool value){
+ dryonly=value;
+};
+
+void EffectMgr::add2XML(XMLwrapper *xml){
+ xml->addpar("type",geteffect());
+
+ if ((efx==NULL)||(geteffect()==0)) return;
+ xml->addpar("preset",efx->Ppreset);
+
+ xml->beginbranch("EFFECT_PARAMETERS");
+ for (int n=0;n<128;n++){
+ int par=geteffectpar(n);
+ if (par==0) continue;
+ xml->beginbranch("par_no",n);
+ xml->addpar("par",par);
+ xml->endbranch();
+ };
+ if (filterpars!=NULL){
+ xml->beginbranch("FILTER");
+ filterpars->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+};
+
+void EffectMgr::getfromXML(XMLwrapper *xml){
+ changeeffect(xml->getpar127("type",geteffect()));
+
+ if ((efx==NULL)||(geteffect()==0)) return;
+
+ efx->Ppreset=xml->getpar127("preset",efx->Ppreset);
+
+ if (xml->enterbranch("EFFECT_PARAMETERS")){
+ for (int n=0;n<128;n++){
+ seteffectpar_nolock(n,0);//erase effect parameter
+ if (xml->enterbranch("par_no",n)==0) continue;
+
+ int par=geteffectpar(n);
+ seteffectpar_nolock(n,xml->getpar127("par",par));
+ xml->exitbranch();
+ };
+ if (filterpars!=NULL){
+ if (xml->enterbranch("FILTER")){
+ filterpars->getfromXML(xml);
+ xml->exitbranch();
+ };
+ };
+ xml->exitbranch();
+ };
+ cleanup();
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.h
new file mode 100644
index 00000000..6216fa33
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/EffectMgr.h
@@ -0,0 +1,87 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EffectMgr.h - Effect manager, an interface betwen the program and effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef EFFECTMGR_H
+#define EFFECTMGR_H
+
+#include <pthread.h>
+
+#include "Effect.h"
+#include "Reverb.h"
+#include "Echo.h"
+#include "Chorus.h"
+#include "Phaser.h"
+#include "Alienwah.h"
+#include "Distorsion.h"
+#include "EQ.h"
+#include "DynamicFilter.h"
+#include "../Misc/XMLwrapper.h"
+#include "../Params/FilterParams.h"
+#include "../Params/Presets.h"
+
+class Master;
+
+class EffectMgr:public Presets{
+ public:
+ EffectMgr(int insertion_,Master*);
+ ~EffectMgr();
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ void out(REALTYPE *smpsl,REALTYPE *smpsr);
+
+ void setdryonly(bool value);
+
+ //get the output(to speakers) volume of the systemeffect
+ REALTYPE sysefxgetvolume();
+
+ void cleanup();//cleanup the effect
+
+ void changeeffect(int nefx_);
+ int geteffect();
+ void changepreset(unsigned char npreset);
+ void changepreset_nolock(unsigned char npreset);
+ unsigned char getpreset();
+ void seteffectpar(int npar,unsigned char value);
+ void seteffectpar_nolock(int npar,unsigned char value);//sets the effect par without thread lock
+ unsigned char geteffectpar(int npar);
+ int insertion;//1 if the effect is connected as insertion effect
+ REALTYPE *efxoutl,*efxoutr;
+
+ //used by UI
+ REALTYPE getEQfreqresponse(REALTYPE freq);
+
+ FilterParams *filterpars;
+
+ private:
+ int nefx;
+ Effect *efx;
+ Master* master;
+ bool dryonly;
+};
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.C
new file mode 100644
index 00000000..6f21f39e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.C
@@ -0,0 +1,260 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Phaser.C - Phaser effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include "Phaser.h"
+#include <stdio.h>
+#define PHASER_LFO_SHAPE 2
+
+Phaser::Phaser(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+ filterpars=NULL;
+
+ oldl=NULL;
+ oldr=NULL;
+ insertion=insertion_;
+
+ Ppreset=0;
+ setpreset(Ppreset);
+ cleanup();
+};
+
+Phaser::~Phaser(){
+ if (oldl!=NULL) delete [] oldl;
+ if (oldr!=NULL) delete [] oldr;
+};
+
+
+/*
+ * Effect output
+ */
+void Phaser::out(REALTYPE *smpsl,REALTYPE *smpsr){
+ int i,j;
+ REALTYPE lfol,lfor,lgain,rgain,tmp;
+
+ lfo.effectlfoout(&lfol,&lfor);
+ lgain=lfol;
+ rgain=lfor;
+ lgain=(exp(lgain*PHASER_LFO_SHAPE)-1)/(exp(PHASER_LFO_SHAPE)-1.0);
+ rgain=(exp(rgain*PHASER_LFO_SHAPE)-1)/(exp(PHASER_LFO_SHAPE)-1.0);
+
+
+ lgain=1.0-phase*(1.0-depth)-(1.0-phase)*lgain*depth;
+ rgain=1.0-phase*(1.0-depth)-(1.0-phase)*rgain*depth;
+
+ if (lgain>1.0) lgain=1.0;else if (lgain<0.0) lgain=0.0;
+ if (rgain>1.0) rgain=1.0;else if (rgain<0.0) rgain=0.0;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE x=(REALTYPE) i /SOUND_BUFFER_SIZE;
+ REALTYPE x1=1.0-x;
+ REALTYPE gl=lgain*x+oldlgain*x1;
+ REALTYPE gr=rgain*x+oldrgain*x1;
+ REALTYPE inl=smpsl[i]*panning+fbl;
+ REALTYPE inr=smpsr[i]*(1.0-panning)+fbr;
+
+ //Left channel
+ for (j=0;j<Pstages*2;j++){//Phasing routine
+ tmp=oldl[j];
+ oldl[j]=gl*tmp+inl;
+ inl=tmp-gl*oldl[j];
+ };
+ //Right channel
+ for (j=0;j<Pstages*2;j++){//Phasing routine
+ tmp=oldr[j];
+ oldr[j]=gr*tmp+inr;
+ inr=tmp-gr*oldr[j];
+ };
+ //Left/Right crossing
+ REALTYPE l=inl;
+ REALTYPE r=inr;
+ inl=l*(1.0-lrcross)+r*lrcross;
+ inr=r*(1.0-lrcross)+l*lrcross;
+
+ fbl=inl*fb;
+ fbr=inr*fb;
+ efxoutl[i]=inl;
+ efxoutr[i]=inr;
+
+ };
+
+ oldlgain=lgain; oldrgain=rgain;
+
+ if (Poutsub!=0)
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]*= -1.0;
+ efxoutr[i]*= -1.0;
+ };
+
+};
+
+/*
+ * Cleanup the effect
+ */
+void Phaser::cleanup(){
+ fbl=0.0;fbr=0.0;
+ oldlgain=0.0;
+ oldrgain=0.0;
+ for (int i=0;i<Pstages*2;i++) {
+ oldl[i]=0.0;
+ oldr[i]=0.0;
+ };
+};
+
+/*
+ * Parameter control
+ */
+void Phaser::setdepth(unsigned char Pdepth){
+ this->Pdepth=Pdepth;
+ depth=(Pdepth/127.0);
+};
+
+
+void Phaser::setfb(unsigned char Pfb){
+ this->Pfb=Pfb;
+ fb=(Pfb-64.0)/64.1;
+};
+
+void Phaser::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+ outvolume=Pvolume/127.0;
+ if (insertion==0) volume=1.0;
+ else volume=outvolume;
+};
+
+void Phaser::setpanning(unsigned char Ppanning){
+ this->Ppanning=Ppanning;
+ panning=Ppanning/127.0;
+};
+
+void Phaser::setlrcross(unsigned char Plrcross){
+ this->Plrcross=Plrcross;
+ lrcross=Plrcross/127.0;
+};
+
+void Phaser::setstages(unsigned char Pstages){
+ if (oldl!=NULL) delete [] oldl;
+ if (oldr!=NULL) delete [] oldr;
+ if (Pstages>=MAX_PHASER_STAGES) Pstages=MAX_PHASER_STAGES-1;
+ this->Pstages=Pstages;
+ oldl=new REALTYPE[Pstages*2];
+ oldr=new REALTYPE[Pstages*2];
+ cleanup();
+};
+
+void Phaser::setphase(unsigned char Pphase){
+ this->Pphase=Pphase;
+ phase=(Pphase/127.0);
+};
+
+
+void Phaser::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=12;
+ const int NUM_PRESETS=6;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //Phaser1
+ {64,64,36,0,0,64,110,64,1,0,0,20},
+ //Phaser2
+ {64,64,35,0,0,88,40,64,3,0,0,20},
+ //Phaser3
+ {64,64,31,0,0,66,68,107,2,0,0,20},
+ //Phaser4
+ {39,64,22,0,0,66,67,10,5,0,1,20},
+ //Phaser5
+ {64,64,20,0,1,110,67,78,10,0,0,20},
+ //Phaser6
+ {64,64,53,100,0,58,37,78,3,0,0,20}};
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ Ppreset=npreset;
+};
+
+
+void Phaser::changepar(int npar,unsigned char value){
+ switch(npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpanning(value);
+ break;
+ case 2: lfo.Pfreq=value;
+ lfo.updateparams();
+ break;
+ case 3: lfo.Prandomness=value;
+ lfo.updateparams();
+ break;
+ case 4: lfo.PLFOtype=value;
+ lfo.updateparams();
+ break;
+ case 5: lfo.Pstereo=value;
+ lfo.updateparams();
+ break;
+ case 6: setdepth(value);
+ break;
+ case 7: setfb(value);
+ break;
+ case 8: setstages(value);
+ break;
+ case 9: setlrcross(value);
+ break;
+ case 10:if (value>1) value=1;
+ Poutsub=value;
+ break;
+ case 11:setphase(value);
+ break;
+ };
+};
+
+unsigned char Phaser::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppanning);
+ break;
+ case 2: return(lfo.Pfreq);
+ break;
+ case 3: return(lfo.Prandomness);
+ break;
+ case 4: return(lfo.PLFOtype);
+ break;
+ case 5: return(lfo.Pstereo);
+ break;
+ case 6: return(Pdepth);
+ break;
+ case 7: return(Pfb);
+ break;
+ case 8: return(Pstages);
+ break;
+ case 9: return(Plrcross);
+ break;
+ case 10:return(Poutsub);
+ break;
+ case 11:return(Pphase);
+ break;
+ default:return (0);
+ };
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.h
new file mode 100644
index 00000000..b4382668
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Phaser.h
@@ -0,0 +1,70 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Phaser.h - Phaser effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef PHASER_H
+#define PHASER_H
+#include "../globals.h"
+#include "Effect.h"
+#include "EffectLFO.h"
+
+#define MAX_PHASER_STAGES 12
+class Phaser:public Effect {
+ public:
+ Phaser(int insetion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Phaser();
+ void out(REALTYPE *smpsl,REALTYPE *smpsr);
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+ void cleanup();
+ void setdryonly();
+
+ private:
+ //Parametrii Phaser
+ EffectLFO lfo;//lfo-ul Phaser
+ unsigned char Pvolume;
+ unsigned char Ppanning;
+ unsigned char Pdepth;//the depth of the Phaser
+ unsigned char Pfb;//feedback
+ unsigned char Plrcross;//feedback
+ unsigned char Pstages;
+ unsigned char Poutsub;//if I wish to substract the output instead of the adding it
+ unsigned char Pphase;
+
+ //Control Parametrii
+ void setvolume(unsigned char Pvolume);
+ void setpanning(unsigned char Ppanning);
+ void setdepth(unsigned char Pdepth);
+ void setfb(unsigned char Pfb);
+ void setlrcross(unsigned char Plrcross);
+ void setstages(unsigned char Pstages);
+ void setphase(unsigned char Pphase);
+
+ //Valorile interne
+ int insertion;
+ REALTYPE panning,fb,depth,lrcross,fbl,fbr,phase;
+ REALTYPE *oldl,*oldr;
+ REALTYPE oldlgain,oldrgain;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.C b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.C
new file mode 100644
index 00000000..b39e41c9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.C
@@ -0,0 +1,438 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Reverb.C - Reverberation effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+
+#include <math.h>
+#include <stdlib.h>
+#include "Reverb.h"
+
+/*TODO: EarlyReflections,Prdelay,Perbalance */
+
+Reverb::Reverb(int insertion_,REALTYPE *efxoutl_,REALTYPE *efxoutr_){
+ efxoutl=efxoutl_;
+ efxoutr=efxoutr_;
+ inputbuf=new REALTYPE[SOUND_BUFFER_SIZE];
+ filterpars=NULL;
+
+ insertion=insertion_;
+ //defaults
+ Ppreset=0;
+ Pvolume=48;
+ Ppan=64;
+ Ptime=64;
+ Pidelay=40;
+ Pidelayfb=0;
+ Prdelay=0;
+ Plpf=127;
+ Phpf=0;
+ Perbalance=64;
+ Plohidamp=80;
+ Ptype=1;
+ Proomsize=64;roomsize=1.0;rs=1.0;
+
+ for (int i=0;i<REV_COMBS*2;i++) {
+ comblen[i]=800+(int)(RND*1400);
+ combk[i]=0;
+ lpcomb[i]=0;
+ combfb[i]=-0.97;
+ comb[i]=NULL;
+ };
+
+ for (int i=0;i<REV_APS*2;i++) {
+ aplen[i]=500+(int)(RND*500);
+ apk[i]=0;
+ ap[i]=NULL;
+ };
+
+ lpf=NULL;hpf=NULL;//no filter
+ idelay=NULL;
+
+ setpreset(Ppreset);
+ cleanup();//do not call this before the comb initialisation
+};
+
+
+Reverb::~Reverb(){
+ int i;
+ if (idelay!=NULL) delete idelay;
+ if (hpf!=NULL) delete hpf;
+ if (lpf!=NULL) delete lpf;
+
+ for (i=0;i<REV_APS*2;i++) delete ap[i];
+ for (i=0;i<REV_COMBS*2;i++) delete comb[i];
+
+ delete [] inputbuf;
+};
+
+/*
+ * Cleanup the effect
+ */
+void Reverb::cleanup(){
+ int i,j;
+ for (i=0;i<REV_COMBS*2;i++){
+ lpcomb[i]=0.0;
+ for (j=0;j<comblen[i];j++) comb[i][j]=0.0;
+ };
+
+ for (i=0;i<REV_APS*2;i++)
+ for (j=0;j<aplen[i];j++) ap[i][j]=0.0;
+
+ if (idelay!=NULL) for (i=0;i<idelaylen;i++) idelay[i]=0.0;
+
+ if (hpf!=NULL) hpf->cleanup();
+ if (lpf!=NULL) lpf->cleanup();
+
+};
+
+/*
+ * Process one channel; 0=left,1=right
+ */
+void Reverb::processmono(int ch,REALTYPE *output){
+ int i,j;
+ REALTYPE fbout,tmp;
+ //TODO: implement the high part from lohidamp
+
+ for (j=REV_COMBS*ch;j<REV_COMBS*(ch+1);j++){
+
+ int ck=combk[j];
+ int comblength=comblen[j];
+ REALTYPE lpcombj=lpcomb[j];
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ fbout=comb[j][ck]*combfb[j];
+ fbout=fbout*(1.0-lohifb)+lpcombj*lohifb;
+ lpcombj=fbout;
+
+ comb[j][ck]=inputbuf[i]+fbout;
+ output[i]+=fbout;
+
+ if ((++ck)>=comblength) ck=0;
+ };
+
+ combk[j]=ck;
+ lpcomb[j]=lpcombj;
+ };
+
+ for (j=REV_APS*ch;j<REV_APS*(1+ch);j++){
+ int ak=apk[j];
+ int aplength=aplen[j];
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ tmp=ap[j][ak];
+ ap[j][ak]=0.7*tmp+output[i];
+ output[i]=tmp-0.7*ap[j][ak];
+ if ((++ak)>=aplength) ak=0;
+ };
+ apk[j]=ak;
+ };
+};
+
+/*
+ * Effect output
+ */
+void Reverb::out(REALTYPE *smps_l, REALTYPE *smps_r){
+ int i;
+ if ((Pvolume==0)&&(insertion!=0)) return;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ inputbuf[i]=(smps_l[i]+smps_r[i])/2.0;
+ //Initial delay r
+ if (idelay!=NULL){
+ REALTYPE tmp=inputbuf[i]+idelay[idelayk]*idelayfb;
+ inputbuf[i]=idelay[idelayk];
+ idelay[idelayk]=tmp;
+ idelayk++;if (idelayk>=idelaylen) idelayk=0;
+ };
+ };
+
+ if (lpf!=NULL) lpf->filterout(inputbuf);
+ if (hpf!=NULL) hpf->filterout(inputbuf);
+
+ processmono(0,efxoutl);//left
+ processmono(1,efxoutr);//right
+
+ REALTYPE lvol=rs/REV_COMBS*pan;
+ REALTYPE rvol=rs/REV_COMBS*(1.0-pan);
+ if (insertion!=0){
+ lvol*=2;rvol*=2;
+ };
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ efxoutl[i]*=lvol;
+ efxoutr[i]*=rvol;
+ };
+};
+
+
+/*
+ * Parameter control
+ */
+void Reverb::setvolume(unsigned char Pvolume){
+ this->Pvolume=Pvolume;
+ if (insertion==0) {
+ outvolume=pow(0.01,(1.0-Pvolume/127.0))*4.0;
+ volume=1.0;
+ } else {
+ volume=outvolume=Pvolume/127.0;
+ if (Pvolume==0) cleanup();
+ };
+};
+
+void Reverb::setpan(unsigned char Ppan){
+ this->Ppan=Ppan;
+ pan=(REALTYPE)Ppan/127.0;
+};
+
+void Reverb::settime(unsigned char Ptime){
+ int i;
+ REALTYPE t;
+ this->Ptime=Ptime;
+ t=pow(60.0,(REALTYPE)Ptime/127.0)-0.97;
+
+ for (i=0;i<REV_COMBS*2;i++){
+ combfb[i]=-exp((REALTYPE)comblen[i]/(REALTYPE)SAMPLE_RATE*log(0.001)/t);
+ //the feedback is negative because it removes the DC
+ };
+};
+
+void Reverb::setlohidamp(unsigned char Plohidamp){
+ REALTYPE x;
+
+ if (Plohidamp<64) Plohidamp=64;//remove this when the high part from lohidamp will be added
+
+ this->Plohidamp=Plohidamp;
+ if (Plohidamp==64) {
+ lohidamptype=0;
+ lohifb=0.0;
+ } else {
+ if (Plohidamp<64) lohidamptype=1;
+ if (Plohidamp>64) lohidamptype=2;
+ x=fabs((REALTYPE)(Plohidamp-64)/64.1);
+ lohifb=x*x;
+ };
+};
+
+void Reverb::setidelay(unsigned char Pidelay){
+ REALTYPE delay;
+ this->Pidelay=Pidelay;
+ delay=pow(50*Pidelay/127.0,2)-1.0;
+
+ if (idelay!=NULL) delete (idelay);
+ idelay=NULL;
+
+ idelaylen=(int) (SAMPLE_RATE*delay/1000);
+ if (idelaylen>1) {
+ idelayk=0;
+ idelay=new REALTYPE[idelaylen];
+ for (int i=0;i<idelaylen;i++) idelay[i]=0.0;
+ };
+};
+
+void Reverb::setidelayfb(unsigned char Pidelayfb){
+ this->Pidelayfb=Pidelayfb;
+ idelayfb=Pidelayfb/128.0;
+};
+
+void Reverb::sethpf(unsigned char Phpf){
+ this->Phpf=Phpf;
+ if (Phpf==0) {//No HighPass
+ if (hpf!=NULL) delete(hpf);
+ hpf=NULL;
+ }
+ else{
+ REALTYPE fr=exp(pow(Phpf/127.0,0.5)*log(10000.0))+20.0;
+ if (hpf==NULL) hpf=new AnalogFilter(3,fr,1,0);
+ else hpf->setfreq(fr);
+ };
+};
+
+void Reverb::setlpf(unsigned char Plpf){
+ this->Plpf=Plpf;
+ if (Plpf==127) {//No LowPass
+ if (lpf!=NULL) delete(lpf);
+ lpf=NULL;
+ }
+ else{
+ REALTYPE fr=exp(pow(Plpf/127.0,0.5)*log(25000.0))+40;
+ if (lpf==NULL) lpf=new AnalogFilter(2,fr,1,0);
+ else lpf->setfreq(fr);
+ };
+};
+
+void Reverb::settype(unsigned char Ptype){
+ const int NUM_TYPES=2;
+ int combtunings[NUM_TYPES][REV_COMBS]={
+ //this is unused (for random)
+ {0,0,0,0,0,0,0,0},
+ //Freeverb by Jezar at Dreampoint
+ {1116,1188,1277,1356,1422,1491,1557,1617}
+ };
+ int aptunings[NUM_TYPES][REV_APS]={
+ //this is unused (for random)
+ {0,0,0,0},
+ //Freeverb by Jezar at Dreampoint
+ {225,341,441,556}
+ };
+
+ if (Ptype>=NUM_TYPES) Ptype=NUM_TYPES-1;
+ this->Ptype=Ptype;
+
+ REALTYPE tmp;
+ for (int i=0;i<REV_COMBS*2;i++) {
+ if (Ptype==0) tmp=800.0+(int)(RND*1400.0);
+ else tmp=combtunings[Ptype][i%REV_COMBS];
+ tmp*=roomsize;
+ if (i>REV_COMBS) tmp+=23.0;
+ tmp*=SAMPLE_RATE/44100.0;//adjust the combs according to the samplerate
+ if (tmp<10) tmp=10;
+
+ comblen[i]=(int) tmp;
+ combk[i]=0;
+ lpcomb[i]=0;
+ if (comb[i]!=NULL) delete comb[i];
+ comb[i]=new REALTYPE[comblen[i]];
+ };
+
+ for (int i=0;i<REV_APS*2;i++) {
+ if (Ptype==0) tmp=500+(int)(RND*500);
+ else tmp=aptunings[Ptype][i%REV_APS];
+ tmp*=roomsize;
+ if (i>REV_APS) tmp+=23.0;
+ tmp*=SAMPLE_RATE/44100.0;//adjust the combs according to the samplerate
+ if (tmp<10) tmp=10;
+ aplen[i]=(int) tmp;
+ apk[i]=0;
+ if (ap[i]!=NULL) delete ap[i];
+ ap[i]=new REALTYPE[aplen[i]];
+ };
+ settime(Ptime);
+ cleanup();
+};
+
+void Reverb::setroomsize(unsigned char Proomsize){
+ if (Proomsize==0) Proomsize=64;//this is because the older versions consider roomsize=0
+ this->Proomsize=Proomsize;
+ roomsize=(Proomsize-64.0)/64.0;
+ if (roomsize>0.0) roomsize*=2.0;
+ roomsize=pow(10.0,roomsize);
+ rs=sqrt(roomsize);
+ settype(Ptype);
+};
+
+void Reverb::setpreset(unsigned char npreset){
+ const int PRESET_SIZE=12;
+ const int NUM_PRESETS=13;
+ unsigned char presets[NUM_PRESETS][PRESET_SIZE]={
+ //Cathedral1
+ {80,64,63,24,0,0,0,85,5,83,1,64},
+ //Cathedral2
+ {80,64,69,35,0,0,0,127,0,71,0,64},
+ //Cathedral3
+ {80,64,69,24,0,0,0,127,75,78,1,85},
+ //Hall1
+ {90,64,51,10,0,0,0,127,21,78,1,64},
+ //Hall2
+ {90,64,53,20,0,0,0,127,75,71,1,64},
+ //Room1
+ {100,64,33,0,0,0,0,127,0,106,0,30},
+ //Room2
+ {100,64,21,26,0,0,0,62,0,77,1,45},
+ //Basement
+ {110,64,14,0,0,0,0,127,5,71,0,25},
+ //Tunnel
+ {85,80,84,20,42,0,0,51,0,78,1,105},
+ //Echoed1
+ {95,64,26,60,71,0,0,114,0,64,1,64},
+ //Echoed2
+ {90,64,40,88,71,0,0,114,0,88,1,64},
+ //VeryLong1
+ {90,64,93,15,0,0,0,114,0,77,0,95},
+ //VeryLong2
+ {90,64,111,30,0,0,0,114,90,74,1,80}};
+
+ if (npreset>=NUM_PRESETS) npreset=NUM_PRESETS-1;
+ for (int n=0;n<PRESET_SIZE;n++) changepar(n,presets[npreset][n]);
+ if (insertion!=0) changepar(0,presets[npreset][0]/2);//lower the volume if reverb is insertion effect
+ Ppreset=npreset;
+};
+
+
+void Reverb::changepar(int npar,unsigned char value){
+ switch (npar){
+ case 0: setvolume(value);
+ break;
+ case 1: setpan(value);
+ break;
+ case 2: settime(value);
+ break;
+ case 3: setidelay(value);
+ break;
+ case 4: setidelayfb(value);
+ break;
+// case 5: setrdelay(value);
+// break;
+// case 6: seterbalance(value);
+// break;
+ case 7: setlpf(value);
+ break;
+ case 8: sethpf(value);
+ break;
+ case 9: setlohidamp(value);
+ break;
+ case 10:settype(value);
+ break;
+ case 11:setroomsize(value);
+ break;
+ };
+};
+
+unsigned char Reverb::getpar(int npar){
+ switch (npar){
+ case 0: return(Pvolume);
+ break;
+ case 1: return(Ppan);
+ break;
+ case 2: return(Ptime);
+ break;
+ case 3: return(Pidelay);
+ break;
+ case 4: return(Pidelayfb);
+ break;
+// case 5: return(Prdelay);
+// break;
+// case 6: return(Perbalance);
+// break;
+ case 7: return(Plpf);
+ break;
+ case 8: return(Phpf);
+ break;
+ case 9: return(Plohidamp);
+ break;
+ case 10:return(Ptype);
+ break;
+ case 11:return(Proomsize);
+ break;
+ };
+ return(0);//in case of bogus "parameter"
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.h b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.h
new file mode 100644
index 00000000..99c9890c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Effects/Reverb.h
@@ -0,0 +1,127 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Reverb.h - Reverberation effect
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef REVERB_H
+#define REVERB_H
+
+
+#include "../globals.h"
+#include "../DSP/AnalogFilter.h"
+#include "Effect.h"
+
+#define REV_COMBS 8
+#define REV_APS 4
+
+class Reverb:public Effect {
+ public:
+ Reverb(int insertion,REALTYPE *efxoutl_,REALTYPE *efxoutr_);
+ ~Reverb();
+ void out(REALTYPE *smps_l,REALTYPE *smps_r);
+ void cleanup();
+
+ void setpreset(unsigned char npreset);
+ void changepar(int npar,unsigned char value);
+ unsigned char getpar(int npar);
+
+ private:
+ //Parametrii
+ //Amount of the reverb,
+ unsigned char Pvolume;
+
+ //LefT/Right Panning
+ unsigned char Ppan;
+
+ //duration of reverb
+ unsigned char Ptime;
+
+ //Initial delay
+ unsigned char Pidelay;
+
+ //Initial delay feedback
+ unsigned char Pidelayfb;
+
+ //delay between ER/Reverbs
+ unsigned char Prdelay;
+
+ //EarlyReflections/Reverb Balance
+ unsigned char Perbalance;
+
+ //HighPassFilter
+ unsigned char Plpf;
+
+ //LowPassFilter
+ unsigned char Phpf;
+
+ //Low/HighFrequency Damping
+ unsigned char Plohidamp;// 0..63 lpf,64=off,65..127=hpf(TODO)
+
+ //Reverb type
+ unsigned char Ptype;
+
+ //Room Size
+ unsigned char Proomsize;
+
+ //parameter control
+ void setvolume(unsigned char Pvolume);
+ void setpan(unsigned char Ppan);
+ void settime(unsigned char Ptime);
+ void setlohidamp(unsigned char Plohidamp);
+ void setidelay(unsigned char Pidelay);
+ void setidelayfb(unsigned char Pidelayfb);
+ void sethpf(unsigned char Phpf);
+ void setlpf(unsigned char Plpf);
+ void settype(unsigned char Ptype);
+ void setroomsize(unsigned char Proomsize);
+
+ REALTYPE pan,erbalance;
+ //Parametrii 2
+ int lohidamptype;//0=disable,1=highdamp(lowpass),2=lowdamp(highpass)
+ int idelaylen,rdelaylen;
+ int idelayk;
+ REALTYPE lohifb,idelayfb,roomsize,rs;//rs is used to "normalise" the volume according to the roomsize
+ int comblen[REV_COMBS*2];
+ int aplen[REV_APS*2];
+
+ //Valorile interne
+
+ REALTYPE *comb[REV_COMBS*2];
+
+ int combk[REV_COMBS*2];
+ REALTYPE combfb[REV_COMBS*2];//feedback-ul fiecarui filtru "comb"
+ REALTYPE lpcomb[REV_COMBS*2];//pentru Filtrul LowPass
+
+ REALTYPE *ap[REV_APS*2];
+
+ int apk[REV_APS*2];
+
+ REALTYPE *idelay;
+ AnalogFilter *lpf,*hpf;//filters
+ REALTYPE *inputbuf;
+
+ void processmono(int ch,REALTYPE *output);
+};
+
+
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.C b/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.C
new file mode 100644
index 00000000..13aa14d1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.C
@@ -0,0 +1,96 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ALSAMidiIn.C - Midi input for ALSA (this creates an ALSA virtual port)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "ALSAMidiIn.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+
+ALSAMidiIn::ALSAMidiIn(){
+ int alsaport;
+ inputok=0;
+ char portname[50];
+ sprintf(portname,"ZynAddSubFX");
+
+ midi_handle=NULL;
+
+ if (snd_seq_open(&midi_handle,"default",SND_SEQ_OPEN_INPUT,0)!=0) return;
+
+ snd_seq_set_client_name(midi_handle,"ZynAddSubFX");//thanks to Frank Neumann
+
+ alsaport = snd_seq_create_simple_port(midi_handle,portname
+ ,SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE
+ ,SND_SEQ_PORT_TYPE_SYNTH);
+ if (alsaport<0) return;
+
+ inputok=1;
+};
+
+ALSAMidiIn::~ALSAMidiIn(){
+ snd_seq_close(midi_handle);
+};
+
+
+/*
+ * Get the midi command,channel and parameters
+ */
+void ALSAMidiIn::getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,int *cmdparams){
+ snd_seq_event_t *midievent=NULL;
+ cmdtype=MidiNull;
+
+ if (inputok==0){
+ return;
+ };
+
+ snd_seq_event_input(midi_handle,&midievent);
+
+ if (midievent==NULL) return;
+ switch (midievent->type){
+ case SND_SEQ_EVENT_NOTEON:
+ cmdtype=MidiNoteON;
+ cmdchan=midievent->data.note.channel;
+ cmdparams[0]=midievent->data.note.note;
+ cmdparams[1]=midievent->data.note.velocity;
+ break;
+ case SND_SEQ_EVENT_NOTEOFF:
+ cmdtype=MidiNoteOFF;
+ cmdchan=midievent->data.note.channel;
+ cmdparams[0]=midievent->data.note.note;
+ break;
+ case SND_SEQ_EVENT_PITCHBEND:
+ cmdtype=MidiController;
+ cmdchan=midievent->data.control.channel;
+ cmdparams[0]=C_pitchwheel;//Pitch Bend
+ cmdparams[1]=midievent->data.control.value;
+ break;
+ case SND_SEQ_EVENT_CONTROLLER:
+ cmdtype=MidiController;
+ cmdchan=midievent->data.control.channel;
+ cmdparams[0]=getcontroller(midievent->data.control.param);
+ cmdparams[1]=midievent->data.control.value;
+ //fprintf(stderr,"t=%d val=%d\n",midievent->data.control.param,midievent->data.control.value);
+ break;
+
+ };
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.h b/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.h
new file mode 100644
index 00000000..dc4a0b0c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/ALSAMidiIn.h
@@ -0,0 +1,42 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ALSAMidiIn.h - Midi input for ALSA (this creates an ALSA virtual port)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ALSA_MIDI_IN_H
+#define ALSA_MIDI_IN_H
+
+#include <alsa/asoundlib.h>
+#include "MidiIn.h"
+
+
+class ALSAMidiIn:public MidiIn{
+ public:
+ ALSAMidiIn();
+ ~ALSAMidiIn();
+ void getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,int *cmdparams);
+
+ private:
+ snd_seq_t *midi_handle;
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.C b/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.C
new file mode 100644
index 00000000..3063b793
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.C
@@ -0,0 +1,73 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MidiIn.C - This class is inherited by all the Midi input classes
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "../globals.h"
+#include "MidiIn.h"
+
+int MidiIn::getcontroller(unsigned char b){
+ int ctl=C_NULL;
+ switch (b){
+ case 1:ctl=C_modwheel;//Modulation Wheel
+ break;
+ case 7:ctl=C_volume;//Volume
+ break;
+ case 10:ctl=C_panning;//Panning
+ break;
+ case 11:ctl=C_expression;//Expression
+ break;
+ case 64:ctl=C_sustain;//Sustain pedal
+ break;
+ case 65:ctl=C_portamento;//Portamento
+ break;
+ case 71:ctl=C_filterq;//Filter Q (Sound Timbre)
+ break;
+ case 74:ctl=C_filtercutoff;//Filter Cutoff (Brightness)
+ break;
+ case 75:ctl=C_bandwidth;//BandWidth
+ break;
+ case 76:ctl=C_fmamp;//FM amplitude
+ break;
+ case 77:ctl=C_resonance_center;//Resonance Center Frequency
+ break;
+ case 78:ctl=C_resonance_bandwidth;//Resonance Bandwith
+ break;
+ case 120:ctl=C_allsoundsoff;//All Sounds OFF
+ break;
+ case 121:ctl=C_resetallcontrollers;//Reset All Controllers
+ break;
+ case 123:ctl=C_allnotesoff;//All Notes OFF
+ break;
+ //RPN and NRPN
+ case 0x06:ctl=C_dataentryhi;//Data Entry (Coarse)
+ break;
+ case 0x26:ctl=C_dataentrylo;//Data Entry (Fine)
+ break;
+ case 99:ctl=C_nrpnhi;//NRPN (Coarse)
+ break;
+ case 98:ctl=C_nrpnlo;//NRPN (Fine)
+ break;
+ default:ctl=C_NULL;//unknown controller
+ //fprintf(stderr,"Controller=%d , par=%d\n",midievent->data.control.param,cmdparams[1]);
+ break;
+ };
+ return(ctl);
+};
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.h b/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.h
new file mode 100644
index 00000000..8a8277d0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/MidiIn.h
@@ -0,0 +1,42 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MidiIn.h - This class is inherited by all the Midi input classes
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef MIDI_IN_H
+#define MIDI_IN_H
+
+#include "../globals.h"
+
+enum MidiCmdType{MidiNull,MidiNoteOFF,MidiNoteON,MidiController};
+#define MP_MAX_BYTES 4000 //in case of loooong SYS_EXes
+
+class MidiIn{
+ public:
+ virtual void getmidicmd(MidiCmdType &/*cmdtype*/,unsigned char &/*cmdchan*/,int */*cmdparams*/){};
+ virtual ~MidiIn(){};
+ int getcontroller(unsigned char b);
+ protected:
+ int inputok;//1 if I can read midi bytes from input ports
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.C b/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.C
new file mode 100644
index 00000000..5c2b56d2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.C
@@ -0,0 +1,43 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ NULLMidiIn.C - a dummy Midi port
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "NULLMidiIn.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+
+NULLMidiIn::NULLMidiIn(){
+};
+
+NULLMidiIn::~NULLMidiIn(){
+};
+
+
+/*
+ * Get the midi command,channel and parameters
+ * It returns MidiNull because it is a dummy driver
+ */
+void NULLMidiIn::getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,unsigned char *cmdparams){
+ cmdtype=MidiNull;
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.h b/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.h
new file mode 100644
index 00000000..6f7b845e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/NULLMidiIn.h
@@ -0,0 +1,40 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ NULLMidiIn.h - a dummy Midi port
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef NULL_MIDI_IN_H
+#define NULL_MIDI_IN_H
+
+#include "MidiIn.h"
+
+
+class NULLMidiIn:public MidiIn{
+ public:
+ NULLMidiIn();
+ ~NULLMidiIn();
+ void getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,unsigned char *cmdparams);
+
+ private:
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.C b/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.C
new file mode 100644
index 00000000..5a6ae509
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.C
@@ -0,0 +1,115 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ OSSMidiIn.C - Midi input for Open Sound System
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/soundcard.h>
+
+#include "OSSMidiIn.h"
+#include "../Misc/Util.h"
+
+OSSMidiIn::OSSMidiIn(){
+ inputok=0;
+ midi_handle=open(config.cfg.LinuxOSSSeqInDev,O_RDONLY,0);
+ if (midi_handle!=-1) inputok=1;
+
+ lastmidicmd=0;
+ cmdtype=0;
+ cmdchan=0;
+
+};
+
+OSSMidiIn::~OSSMidiIn(){
+ close(midi_handle);
+};
+
+unsigned char OSSMidiIn::readbyte(){
+ unsigned char tmp[4];
+ read(midi_handle,&tmp[0],1);
+ while (tmp[0]!=SEQ_MIDIPUTC){
+ read(midi_handle,&tmp[0],4);
+ };
+ return(tmp[1]);
+};
+
+unsigned char OSSMidiIn::getmidibyte(){
+ unsigned char b;
+ do {
+ b=readbyte();
+ } while (b==0xfe);//drops the Active Sense Messages
+ return(b);
+};
+
+/*
+ * Get the midi command,channel and parameters
+ */
+void OSSMidiIn::getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,int *cmdparams){
+ unsigned char tmp,i;
+ if (inputok==0) {
+ cmdtype=MidiNull;
+ return;
+ };
+ i=0;
+ if (lastmidicmd==0){//asteapta prima data pana cand vine prima comanda midi
+ while (tmp<0x80) tmp=getmidibyte();
+ lastmidicmd=tmp;
+ };
+
+ tmp=getmidibyte();
+
+ if (tmp>=0x80) {
+ lastmidicmd=tmp;
+ tmp=getmidibyte();
+ };
+
+ if ((lastmidicmd>=0x80)&&(lastmidicmd<=0x8f)){//Note OFF
+ cmdtype=MidiNoteOFF;
+ cmdchan=lastmidicmd%16;
+ cmdparams[0]=tmp;//note number
+ };
+
+ if ((lastmidicmd>=0x90)&&(lastmidicmd<=0x9f)){//Note ON
+ cmdtype=MidiNoteON;
+ cmdchan=lastmidicmd%16;
+ cmdparams[0]=tmp;//note number
+ cmdparams[1]=getmidibyte();//velocity
+ if (cmdparams[1]==0) cmdtype=MidiNoteOFF;//if velocity==0 then is note off
+ };
+ if ((lastmidicmd>=0xB0)&&(lastmidicmd<=0xBF)){//Controllers
+ cmdtype=MidiController;
+ cmdchan=lastmidicmd%16;
+ cmdparams[0]=getcontroller(tmp);
+ cmdparams[1]=getmidibyte();
+ };
+ if ((lastmidicmd>=0xE0)&&(lastmidicmd<=0xEF)){//Pitch Wheel
+ cmdtype=MidiController;
+ cmdchan=lastmidicmd%16;
+ cmdparams[0]=C_pitchwheel;
+ cmdparams[1]=(tmp+getmidibyte()*(int) 128)-8192;//hope this is correct
+ };
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.h b/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.h
new file mode 100644
index 00000000..302a812e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/OSSMidiIn.h
@@ -0,0 +1,48 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ OSSMidiIn.h - Midi input for Open Sound System
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef OSS_MIDI_IN_H
+#define OSS_MIDI_IN_H
+
+#include "MidiIn.h"
+
+class OSSMidiIn:public MidiIn{
+ public:
+ OSSMidiIn();
+ ~OSSMidiIn();
+ unsigned char getmidibyte();
+ unsigned char readbyte();
+
+ //Midi parser
+ void getmidicmd(MidiCmdType &cmdtype,unsigned char &cmdchan,int *cmdparams);
+ unsigned char cmdtype;//the Message Type (noteon,noteof,sysex..)
+ unsigned char cmdchan;//the channel number
+
+ private:
+ int midi_handle;
+ unsigned char lastmidicmd;//last byte (>=80) received from the Midi
+
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.C b/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.C
new file mode 100644
index 00000000..c20841bb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.C
@@ -0,0 +1,83 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ WINMidiIn.C - Midi input for Windows
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <windows.h>
+#include <mmsystem.h>
+#include <pthread.h>
+
+#include "WINMidiIn.h"
+#include "MidiIn.h"
+#include "../Misc/Util.h"
+
+Master *winmaster;
+HMIDIIN winmidiinhandle;
+MidiIn midictl;//used to convert the controllers to ZynAddSubFX controllers
+
+void CALLBACK WinMidiInProc(HMIDIIN hMidiIn,UINT wMsg,DWORD dwInstance,
+ DWORD dwParam1,DWORD dwParam2){
+ int midicommand=MidiNull;
+ if (wMsg==MIM_DATA){
+ int cmd,par1,par2;
+ cmd=dwParam1&0xff;
+ if (cmd==0xfe) return;
+ par1=(dwParam1>>8)&0xff;
+ par2=dwParam1>>16;
+ //printf("%x %x %x\n",cmd,par1,par2);fflush(stdout);
+ int cmdchan=cmd&0x0f;
+ int cmdtype=(cmd>>4)&0x0f;
+
+ int tmp=0;
+ pthread_mutex_lock(&winmaster->mutex);
+ switch(cmdtype){
+ case(0x8)://noteon
+ winmaster->NoteOff(cmdchan,par1);
+ break;
+ case(0x9)://noteoff
+ winmaster->NoteOn(cmdchan,par1,par2&0xff);
+ break;
+ case(0xb)://controller
+ winmaster->SetController(cmdchan,midictl.getcontroller(par1),par2&0xff);
+ break;
+ case(0xe)://pitch wheel
+ tmp=(par1+par2*(long int) 128)-8192;
+ winmaster->SetController(cmdchan,C_pitchwheel,tmp);
+ break;
+ default:break;
+ };
+ pthread_mutex_unlock(&winmaster->mutex);
+
+ };
+};
+
+void InitWinMidi(Master *master_){
+ winmaster=master_;
+
+ long int result=midiInOpen(&winmidiinhandle,config.cfg.WindowsMidiInId,(DWORD)WinMidiInProc,0,CALLBACK_FUNCTION);
+ result=midiInStart(winmidiinhandle);
+};
+
+void StopWinMidi(){
+ midiInStop(winmidiinhandle);
+ midiInClose(winmidiinhandle);
+};
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.h b/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.h
new file mode 100644
index 00000000..95c3791d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Input/WINMidiIn.h
@@ -0,0 +1,34 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ WINMidiIn.h - Midi input for Windows
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef WIN_MIDI_IN_H
+#define WIN_MIDI_IN_H
+
+
+#include "../Misc/Master.h"
+
+void InitWinMidi(Master *master_);
+void StopWinMidi();
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.C
new file mode 100644
index 00000000..9b2e8f75
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.C
@@ -0,0 +1,565 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Bank.h - Instrument Bank
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Bank.h"
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <dirent.h>
+#include <sys/stat.h>
+
+#include <sys/types.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "Config.h"
+
+#define INSTRUMENT_EXTENSION ".xiz"
+
+//if this file exists into a directory, this make the directory to be considered as a bank, even if it not contains a instrument file
+#define FORCE_BANK_DIR_FILE ".bankdir"
+
+Bank::Bank(){
+
+
+ ZERO(defaultinsname,PART_MAX_NAME_LEN);
+ snprintf(defaultinsname,PART_MAX_NAME_LEN,"%s"," ");
+
+ for (int i=0;i<BANK_SIZE;i++){
+ ins[i].used=false;
+ ins[i].filename=NULL;
+ ins[i].info.PADsynth_used=false;
+ };
+ dirname=NULL;
+ clearbank();
+
+
+
+ for (int i=0;i<MAX_NUM_BANKS;i++){
+ banks[i].dir=NULL;
+ banks[i].name=NULL;
+ };
+
+ bankfiletitle=dirname;
+
+ loadbank(config.cfg.currentBankDir);
+
+};
+
+Bank::~Bank(){
+ for (int i=0;i<MAX_NUM_BANKS;i++){
+ if (banks[i].dir!=NULL) delete (banks[i].dir);
+ if (banks[i].name!=NULL) delete (banks[i].name);
+ };
+
+ clearbank();
+};
+
+/*
+ * Get the name of an instrument from the bank
+ */
+char *Bank::getname (unsigned int ninstrument){
+ if (emptyslot(ninstrument)) return (defaultinsname);
+ return (ins[ninstrument].name);
+};
+
+/*
+ * Get the numbered name of an instrument from the bank
+ */
+char *Bank::getnamenumbered (unsigned int ninstrument){
+ if (emptyslot(ninstrument)) return (defaultinsname);
+ snprintf(tmpinsname[ninstrument],PART_MAX_NAME_LEN+15,"%d. %s",ninstrument+1,getname(ninstrument));
+ return(tmpinsname[ninstrument]);
+};
+
+/*
+ * Changes the name of an instrument (and the filename)
+ */
+void Bank::setname(unsigned int ninstrument,const char *newname,int newslot){
+ if (emptyslot(ninstrument)) return;
+
+ char newfilename[1000+1],tmpfilename[100+1];
+
+ ZERO(newfilename,1001);
+ ZERO(tmpfilename,101);
+ if (newslot>=0) snprintf(tmpfilename,100,"%4d-%s",newslot+1,newname);
+ else snprintf(tmpfilename,100,"%4d-%s",ninstrument+1,newname);
+
+ //add the zeroes at the start of filename
+ for (int i=0;i<4;i++) if (tmpfilename[i]==' ') tmpfilename[i]='0';
+
+ //make the filenames legal
+ for (int i=0;i<(int) strlen(tmpfilename);i++) {
+ char c=tmpfilename[i];
+ if ((c>='0')&&(c<='9')) continue;
+ if ((c>='A')&&(c<='Z')) continue;
+ if ((c>='a')&&(c<='z')) continue;
+ if ((c=='-')||(c==' ')) continue;
+
+ tmpfilename[i]='_';
+ };
+
+ snprintf(newfilename,1000,"%s/%s.xiz",dirname,tmpfilename);
+
+// printf("rename %s -> %s\n",ins[ninstrument].filename,newfilename);//////////////
+
+ rename(ins[ninstrument].filename,newfilename);
+ if (ins[ninstrument].filename) delete(ins[ninstrument].filename);
+ ins[ninstrument].filename=new char[strlen(newfilename)+5];
+ snprintf(ins[ninstrument].filename,strlen(newfilename)+1,"%s",newfilename);
+ snprintf(ins[ninstrument].name,PART_MAX_NAME_LEN,"%s",&tmpfilename[5]);
+
+};
+
+/*
+ * Check if there is no instrument on a slot from the bank
+ */
+int Bank::emptyslot(unsigned int ninstrument){
+ if (ninstrument>=BANK_SIZE) return (1);
+ if (ins[ninstrument].filename==NULL) return(1);
+
+ if (ins[ninstrument].used) return (0);
+ else return(1);
+};
+
+/*
+ * Removes the instrument from the bank
+ */
+void Bank::clearslot(unsigned int ninstrument){
+ if (emptyslot(ninstrument)) return;
+
+// printf("remove %s \n",ins[ninstrument].filename);////////////////////////
+
+
+ remove(ins[ninstrument].filename);
+ deletefrombank(ninstrument);
+};
+
+/*
+ * Save the instrument to a slot
+ */
+void Bank::savetoslot(unsigned int ninstrument,Part *part){
+ clearslot(ninstrument);
+
+ const int maxfilename=200;
+ char tmpfilename[maxfilename+20];
+ ZERO(tmpfilename,maxfilename+20);
+
+ snprintf(tmpfilename,maxfilename,"%4d-%s",ninstrument+1,(char *)part->Pname);
+
+ //add the zeroes at the start of filename
+ for (int i=0;i<4;i++) if (tmpfilename[i]==' ') tmpfilename[i]='0';
+
+ //make the filenames legal
+ for (int i=0;i<(int)strlen(tmpfilename);i++) {
+ char c=tmpfilename[i];
+ if ((c>='0')&&(c<='9')) continue;
+ if ((c>='A')&&(c<='Z')) continue;
+ if ((c>='a')&&(c<='z')) continue;
+ if ((c=='-')||(c==' ')) continue;
+
+ tmpfilename[i]='_';
+ };
+
+ strncat(tmpfilename,".xiz",maxfilename+10);
+
+ int fnsize=strlen(dirname)+strlen(tmpfilename)+10;
+ char *filename=new char[fnsize+4];
+ ZERO(filename,fnsize+2);
+
+ snprintf(filename,fnsize,"%s/%s",dirname,tmpfilename);
+
+ remove(filename);
+ part->saveXML(filename);
+ addtobank(ninstrument,tmpfilename,(char *) part->Pname);
+
+ delete(filename);
+};
+
+/*
+ * Loads the instrument from the bank
+ */
+void Bank::loadfromslot(unsigned int ninstrument,Part *part){
+ if (emptyslot(ninstrument)) return;
+
+ part->defaultsinstrument();
+
+// printf("load: %s\n",ins[ninstrument].filename);
+
+ part->loadXMLinstrument(ins[ninstrument].filename);
+
+};
+
+
+/*
+ * Makes current a bank directory
+ */
+int Bank::loadbank(const char *bankdirname)
+ {
+ DIR *dir = opendir(bankdirname);
+ clearbank();
+
+ if (dir==NULL)
+ return -1;
+
+ if (dirname!=NULL)
+ delete(dirname);
+ dirname = new char[strlen(bankdirname)+1];
+ snprintf(dirname, strlen(bankdirname)+1, "%s",bankdirname);
+
+ bankfiletitle=dirname;
+
+ // printf("loadbank %s/\n",bankdirname);
+ struct dirent *fn;
+
+ while ((fn=readdir(dir))){
+ const char *filename= fn->d_name;
+
+ //sa verific daca e si extensia dorita
+ if (strstr(filename,INSTRUMENT_EXTENSION)==NULL) continue;
+
+ //verify if the name is like this NNNN-name (where N is a digit)
+ int no=0;
+ unsigned int startname=0;
+
+ for (unsigned int i=0;i<4;i++) {
+ if (strlen(filename)<=i) break;
+
+ if ((filename[i]>='0')&&(filename[i]<='9')) {
+ no=no*10+(filename[i]-'0');
+ startname++;
+ };
+ };
+
+
+ if ((startname+1)<strlen(filename)) startname++;//to take out the "-"
+
+ char name[PART_MAX_NAME_LEN+1];
+ ZERO(name,PART_MAX_NAME_LEN+1);
+ snprintf(name,PART_MAX_NAME_LEN,"%s",filename);
+
+ //remove the file extension
+ for (int i=strlen(name)-1;i>=2;i--){
+ if (name[i]=='.') {
+ name[i]='\0';
+ break;
+ };
+ };
+
+ if (no!=0){//the instrument position in the bank is found
+ addtobank(no-1,filename,&name[startname]);
+ } else {
+ addtobank(-1,filename,name);
+ };
+
+ };
+
+
+ closedir(dir);
+
+ if (dirname!=NULL) {
+ sprintf(config.cfg.currentBankDir,"%s",dirname);
+ };
+
+ return(0);
+};
+
+/*
+ * Makes a new bank, put it on a file and makes it current bank
+ */
+int Bank::newbank(const char *newbankdirname){
+ int result;
+ char tmpfilename[MAX_STRING_SIZE];
+ char bankdir[MAX_STRING_SIZE];
+ snprintf(bankdir,MAX_STRING_SIZE,"%s",config.cfg.bankRootDirList[0]);
+
+ if (((bankdir[strlen(bankdir)-1])!='/')&&((bankdir[strlen(bankdir)-1])!='\\')){
+ strncat(bankdir,"/",MAX_STRING_SIZE);
+ };
+ strncat(bankdir,newbankdirname,MAX_STRING_SIZE);
+#ifdef OS_WINDOWS
+ result=mkdir(bankdir);
+#else
+ result=mkdir(bankdir,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+#endif
+ if (result<0) return(-1);
+
+ snprintf(tmpfilename,MAX_STRING_SIZE,"%s/%s",bankdir,FORCE_BANK_DIR_FILE);
+// printf("%s\n",tmpfilename);
+ FILE *tmpfile=fopen(tmpfilename,"w+");
+ fclose(tmpfile);
+
+ return(loadbank(bankdir));
+};
+
+/*
+ * Check if the bank is locked (i.e. the file opened was readonly)
+ */
+int Bank::locked(){
+ return(dirname==NULL);
+};
+
+/*
+ * Swaps a slot with another
+ */
+void Bank::swapslot(unsigned int n1, unsigned int n2){
+ if ((n1==n2)||(locked())) return;
+ if (emptyslot(n1)&&(emptyslot(n2))) return;
+ if (emptyslot(n1)){//change n1 to n2 in order to make
+ int tmp=n2;n2=n1;n1=tmp;
+ };
+
+ if (emptyslot(n2)){//this is just a movement from slot1 to slot2
+ setname(n1,getname(n1),n2);
+ ins[n2]=ins[n1];
+ ins[n1].used=false;
+ ins[n1].name[0]='\0';
+ ins[n1].filename=NULL;
+ ins[n1].info.PADsynth_used=0;
+ } else {//if both slots are used
+ if (strcmp(ins[n1].name,ins[n2].name)==0){//change the name of the second instrument if the name are equal
+ strncat(ins[n2].name,"2",PART_MAX_NAME_LEN);
+ };
+ setname(n1,getname(n1),n2);
+ setname(n2,getname(n2),n1);
+ ins_t tmp;
+ tmp.used=true;
+ strcpy(tmp.name,ins[n2].name);
+ char *tmpfilename=ins[n2].filename;
+ bool padsynth_used=ins[n2].info.PADsynth_used;
+
+ ins[n2]=ins[n1];
+ strcpy(ins[n1].name,tmp.name);
+ ins[n1].filename=tmpfilename;
+ ins[n1].info.PADsynth_used=padsynth_used;
+ };
+
+};
+
+
+//a helper function that compares 2 banks[] arrays
+int Bank_compar(const void *a,const void *b){
+ struct Bank::bankstruct *bank1= (Bank::bankstruct *)a;
+ struct Bank::bankstruct *bank2= (Bank::bankstruct *)b;
+ if (((bank1->name)==NULL)||((bank2->name)==NULL)) return(0);
+
+ int result=strcasecmp(bank1->name,bank2->name);
+ return(result<0);
+};
+
+
+/*
+ * Re-scan for directories containing instrument banks
+ */
+
+void Bank::rescanforbanks(){
+ for (int i=0;i<MAX_NUM_BANKS;i++){
+ if (banks[i].dir!=NULL) delete (banks[i].dir);
+ if (banks[i].name!=NULL) delete (banks[i].name);
+ banks[i].dir=NULL;
+ banks[i].name=NULL;
+ };
+
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) if (config.cfg.bankRootDirList[i]!=NULL) scanrootdir(config.cfg.bankRootDirList[i]);
+
+ //sort the banks
+ for (int j=0;j<MAX_NUM_BANKS-1;j++){
+ for (int i=j+1;i<MAX_NUM_BANKS;i++){
+ if (Bank_compar(&banks[i],&banks[j])) {
+ char *tmpname=banks[i].name;
+ char *tmpdir=banks[i].dir;
+
+ banks[i].name=banks[j].name;
+ banks[i].dir=banks[j].dir;
+
+ banks[j].name=tmpname;
+ banks[j].dir=tmpdir;
+
+ };
+ };
+ };
+
+ //remove duplicate bank names
+ int dupl=0;
+ for (int j=0;j<MAX_NUM_BANKS-1;j++){
+ for (int i=j+1;i<MAX_NUM_BANKS;i++){
+ if ((banks[i].name==NULL)||(banks[j].name==NULL)) continue;
+ if (strcmp(banks[i].name,banks[j].name)==0) {//add a [1] to the first bankname and [n] to others
+ char *tmpname=banks[i].name;
+ banks[i].name=new char[strlen(tmpname)+100];
+ sprintf(banks[i].name,"%s[%d]",tmpname,dupl+2);
+ delete(tmpname);
+
+ if (dupl==0){
+ char *tmpname=banks[j].name;
+ banks[j].name=new char[strlen(tmpname)+100];
+ sprintf(banks[j].name,"%s[1]",tmpname);
+ delete(tmpname);
+ };
+
+ dupl++;
+ } else dupl=0;
+ };
+ };
+
+};
+
+
+
+// private stuff
+
+void Bank::scanrootdir(char *rootdir){
+// printf("Scanning root dir:%s\n",rootdir);
+ DIR *dir=opendir(rootdir);
+ if (dir==NULL) return;
+
+ const int maxdirsize=1000;
+ struct {
+ char dir[maxdirsize];
+ char name[maxdirsize];
+ }bank;
+
+ char *separator="/";
+ if (strlen(rootdir)) {
+ char tmp=rootdir[strlen(rootdir)-1];
+ if ((tmp=='/') || (tmp=='\\')) separator="";
+ };
+
+ struct dirent *fn;
+ while ((fn=readdir(dir))){
+ const char *dirname=fn->d_name;
+ if (dirname[0]=='.') continue;
+
+ snprintf(bank.dir,maxdirsize,"%s%s%s/",rootdir,separator,dirname);
+ snprintf(bank.name,maxdirsize,"%s",dirname);
+ //find out if the directory contains at least 1 instrument
+ bool isbank=false;
+
+ DIR *d=opendir(bank.dir);
+ if (d==NULL) continue;
+
+ struct dirent *fname;
+
+ while((fname=readdir(d))){
+ if ((strstr(fname->d_name,INSTRUMENT_EXTENSION)!=NULL)||
+ (strstr(fname->d_name,FORCE_BANK_DIR_FILE)!=NULL)){
+ isbank=true;
+ break;//aici as putea pune in loc de break un update la un counter care imi arata nr. de instrumente din bank
+ };
+ };
+
+ closedir(d);
+
+ if (isbank) {
+ int pos=-1;
+ for (int i=1;i<MAX_NUM_BANKS;i++){ //banks[0] e liber intotdeauna
+ if (banks[i].name==NULL) {
+ pos=i;
+ break;
+ };
+ };
+
+ if (pos>=0) {
+ banks[pos].name=new char[maxdirsize];
+ banks[pos].dir=new char[maxdirsize];
+ snprintf(banks[pos].name,maxdirsize,"%s",bank.name);
+ snprintf(banks[pos].dir,maxdirsize,"%s",bank.dir);
+ };
+
+ };
+
+ };
+
+ closedir(dir);
+
+};
+
+void Bank::clearbank(){
+ for (int i=0;i<BANK_SIZE;i++) deletefrombank(i);
+ if (dirname!=NULL) delete(dirname);
+ bankfiletitle=NULL;
+ dirname=NULL;
+};
+
+int Bank::addtobank(int pos, const char *filename, const char* name){
+ if ((pos>=0)&&(pos<BANK_SIZE)){
+ if (ins[pos].used) pos=-1;//force it to find a new free position
+ } else if (pos>=BANK_SIZE) pos=-1;
+
+
+ if (pos<0) {//find a free position
+ for (int i=BANK_SIZE-1;i>=0;i--)
+ if (!ins[i].used) {
+ pos=i;
+ break;
+ };
+
+ };
+
+ if (pos<0) return (-1);//the bank is full
+
+ // printf("%s %d\n",filename,pos);
+
+ deletefrombank(pos);
+
+ ins[pos].used=true;
+ snprintf(ins[pos].name,PART_MAX_NAME_LEN,"%s",name);
+
+ snprintf(tmpinsname[pos],PART_MAX_NAME_LEN+10," ");
+
+ int len=strlen(filename)+1+strlen(dirname);
+ ins[pos].filename=new char[len+2];
+ ins[pos].filename[len+1]=0;
+ snprintf(ins[pos].filename,len+1,"%s/%s",dirname,filename);
+
+ //see if PADsynth is used
+ if (config.cfg.CheckPADsynth){
+ XMLwrapper *xml=new XMLwrapper();
+ xml->checkfileinformation(ins[pos].filename);
+
+ ins[pos].info.PADsynth_used=xml->information.PADsynth_used;
+ delete(xml);
+ } else ins[pos].info.PADsynth_used=false;
+
+ return(0);
+};
+
+bool Bank::isPADsynth_used(unsigned int ninstrument){
+ if (config.cfg.CheckPADsynth==0) return(0);
+ else return(ins[ninstrument].info.PADsynth_used);
+};
+
+
+void Bank::deletefrombank(int pos){
+ if ((pos<0)||(pos>=BANK_SIZE)) return;
+ ins[pos].used=false;
+ ZERO(ins[pos].name,PART_MAX_NAME_LEN+1);
+ if (ins[pos].filename!=NULL) {
+ delete (ins[pos].filename);
+ ins[pos].filename=NULL;
+ };
+
+ ZERO(tmpinsname[pos],PART_MAX_NAME_LEN+20);
+
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.h
new file mode 100644
index 00000000..1a2f4382
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Bank.h
@@ -0,0 +1,100 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Bank.C - Instrument Bank
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef BANK_H
+#define BANK_H
+
+#include "../globals.h"
+#include "XMLwrapper.h"
+#include "Part.h"
+
+#define BANK_SIZE 160
+
+/*
+ * The max. number of banks that are used
+ */
+#define MAX_NUM_BANKS 400
+
+
+class Bank{
+ public:
+ Bank();
+ ~Bank();
+ char *getname(unsigned int ninstrument);
+ char *getnamenumbered(unsigned int ninstrument);
+ void setname(unsigned int ninstrument,const char *newname,int newslot);//if newslot==-1 then this is ignored, else it will be put on that slot
+ bool isPADsynth_used(unsigned int ninstrument);
+
+ //returns 0 if the slot is not empty or 1 if the slot is empty
+ int emptyslot(unsigned int ninstrument);
+
+ void clearslot(unsigned int ninstrument);
+ void savetoslot(unsigned int ninstrument,Part *part);
+ void loadfromslot(unsigned int ninstrument,Part *part);
+
+ void swapslot(unsigned int n1,unsigned int n2);
+
+ int loadbank(const char *bankdirname);
+ int newbank(const char *newbankdirname);
+
+ char *bankfiletitle; //this is shown on the UI of the bank (the title of the window)
+ int locked();
+
+ void rescanforbanks();
+
+ struct bankstruct{
+ char *dir;
+ char *name;
+ };
+
+ bankstruct banks[MAX_NUM_BANKS];
+
+ private:
+
+ //it adds a filename to the bank
+ //if pos is -1 it try to find a position
+ //returns -1 if the bank is full, or 0 if the instrument was added
+ int addtobank(int pos,const char* filename,const char* name);
+
+ void deletefrombank(int pos);
+
+ void clearbank();
+
+ char defaultinsname[PART_MAX_NAME_LEN];
+ char tmpinsname[BANK_SIZE][PART_MAX_NAME_LEN+20];//this keeps the numbered names
+
+ struct ins_t{
+ bool used;
+ char name[PART_MAX_NAME_LEN+1];
+ char *filename;
+ struct{
+ bool PADsynth_used;
+ } info;
+ }ins[BANK_SIZE];
+
+ char *dirname;
+
+ void scanrootdir(char *rootdir);//scans a root dir for banks
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.C
new file mode 100644
index 00000000..f04a32ac
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.C
@@ -0,0 +1,303 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Config.C - Configuration file functions
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef OS_WINDOWS
+#include <windows.h>
+#include <mmsystem.h>
+#endif
+
+#include "Config.h"
+#include "XMLwrapper.h"
+#include "config.h"
+
+Config::Config(){
+};
+void Config::init(){
+ maxstringsize=MAX_STRING_SIZE;//for ui
+ //defaults
+ cfg.SampleRate=44100;
+ cfg.SoundBufferSize=256;
+ cfg.OscilSize=512;
+ cfg.SwapStereo=0;
+
+ cfg.LinuxOSSWaveOutDev=new char[MAX_STRING_SIZE];
+ snprintf(cfg.LinuxOSSWaveOutDev,MAX_STRING_SIZE,"/dev/dsp");
+ cfg.LinuxOSSSeqInDev=new char[MAX_STRING_SIZE];
+ snprintf(cfg.LinuxOSSSeqInDev,MAX_STRING_SIZE,"/dev/sequencer");
+
+ cfg.DumpFile=new char[MAX_STRING_SIZE];
+ snprintf(cfg.DumpFile,MAX_STRING_SIZE,"zynaddsubfx_dump.txt");
+
+ cfg.WindowsWaveOutId=0;
+ cfg.WindowsMidiInId=0;
+
+ cfg.BankUIAutoClose=0;
+ cfg.DumpNotesToFile=0;
+ cfg.DumpAppend=1;
+
+ cfg.GzipCompression=3;
+
+ cfg.Interpolation=0;
+ cfg.CheckPADsynth=1;
+
+ cfg.UserInterfaceMode=1;
+ cfg.VirKeybLayout=1;
+ winwavemax=1;winmidimax=1;
+//try to find out how many input midi devices are there
+ winmididevices=new winmidionedevice[winmidimax];
+ for (int i=0;i<winmidimax;i++) {
+ winmididevices[i].name=new char[MAX_STRING_SIZE];
+ for (int j=0;j<MAX_STRING_SIZE;j++) winmididevices[i].name[j]='\0';
+ };
+
+
+//get the midi input devices name
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) cfg.bankRootDirList[i]=NULL;
+ cfg.currentBankDir=new char[MAX_STRING_SIZE];
+ sprintf(cfg.currentBankDir,"./testbnk");
+
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) cfg.presetsDirList[i]=NULL;
+
+// char filename[MAX_STRING_SIZE];
+// getConfigFileName(filename,MAX_STRING_SIZE);
+// readConfig(filename);
+
+ if (cfg.bankRootDirList[0]==NULL){
+ //banks
+ cfg.bankRootDirList[0]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[0],"~/banks");
+
+ cfg.bankRootDirList[1]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[1], INSTPREFIX "/share/" INSTALL_NAME "/presets/zynaddsubfx/banks");
+
+ cfg.bankRootDirList[2]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[2],"/usr/share/zynaddsubfx/banks");
+
+ cfg.bankRootDirList[3]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[3],"/usr/local/share/zynaddsubfx/banks");
+
+ cfg.bankRootDirList[4]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[4],"../banks");
+
+ cfg.bankRootDirList[5]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.bankRootDirList[5],"banks");
+ };
+
+ if (cfg.presetsDirList[0]==NULL){
+#if defined(OS_LINUX)
+ //presets
+ cfg.presetsDirList[0]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[0],"./");
+
+ cfg.presetsDirList[1]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[1],"../presets");
+
+ cfg.presetsDirList[2]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[2],"presets");
+
+ cfg.presetsDirList[3]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[3],"/usr/share/zynaddsubfx/presets");
+
+ cfg.presetsDirList[4]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[4],"/usr/local/share/zynaddsubfx/presets");
+
+#else
+ //presets
+ cfg.presetsDirList[0]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[0],"./");
+
+#ifdef VSTAUDIOOUT
+ cfg.presetsDirList[1]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[1],"c:/Program Files/ZynAddSubFX/presets");
+#else
+ cfg.presetsDirList[1]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[1],"../presets");
+#endif
+
+ cfg.presetsDirList[2]=new char[MAX_STRING_SIZE];
+ sprintf(cfg.presetsDirList[2],"presets");
+#endif
+ };
+
+};
+
+Config::~Config(){
+
+ delete(cfg.LinuxOSSWaveOutDev);
+ delete(cfg.LinuxOSSSeqInDev);
+ delete(cfg.DumpFile);
+
+ for (int i=0;i<winmidimax;i++) delete (winmididevices[i].name);
+ delete(winmididevices);
+};
+
+
+void Config::save(){
+ char filename[MAX_STRING_SIZE];
+ getConfigFileName(filename,MAX_STRING_SIZE);
+ saveConfig(filename);
+};
+
+void Config::clearbankrootdirlist(){
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) {
+ if (cfg.bankRootDirList[i]==NULL) delete(cfg.bankRootDirList[i]);
+ cfg.bankRootDirList[i]=NULL;
+ };
+};
+
+void Config::clearpresetsdirlist(){
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) {
+ if (cfg.presetsDirList[i]==NULL) delete(cfg.presetsDirList[i]);
+ cfg.presetsDirList[i]=NULL;
+ };
+};
+
+void Config::readConfig(char *filename){
+ XMLwrapper *xmlcfg=new XMLwrapper();
+ if (xmlcfg->loadXMLfile(filename)<0) return;
+ if (xmlcfg->enterbranch("CONFIGURATION")){
+ cfg.SampleRate=xmlcfg->getpar("sample_rate",cfg.SampleRate,4000,1024000);
+ cfg.SoundBufferSize=xmlcfg->getpar("sound_buffer_size",cfg.SoundBufferSize,16,8192);
+ cfg.OscilSize=xmlcfg->getpar("oscil_size",cfg.OscilSize,MAX_AD_HARMONICS*2,131072);
+ cfg.SwapStereo=xmlcfg->getpar("swap_stereo",cfg.SwapStereo,0,1);
+ cfg.BankUIAutoClose=xmlcfg->getpar("bank_window_auto_close",cfg.BankUIAutoClose,0,1);
+
+ cfg.DumpNotesToFile=xmlcfg->getpar("dump_notes_to_file",cfg.DumpNotesToFile,0,1);
+ cfg.DumpAppend=xmlcfg->getpar("dump_append",cfg.DumpAppend,0,1);
+ xmlcfg->getparstr("dump_file",cfg.DumpFile,MAX_STRING_SIZE);
+
+ cfg.GzipCompression=xmlcfg->getpar("gzip_compression",cfg.GzipCompression,0,9);
+
+ xmlcfg->getparstr("bank_current",cfg.currentBankDir,MAX_STRING_SIZE);
+ cfg.Interpolation=xmlcfg->getpar("interpolation",cfg.Interpolation,0,1);
+
+ cfg.CheckPADsynth=xmlcfg->getpar("check_pad_synth",cfg.CheckPADsynth,0,1);
+
+
+ cfg.UserInterfaceMode=xmlcfg->getpar("user_interface_mode",cfg.UserInterfaceMode,0,2);
+ cfg.VirKeybLayout=xmlcfg->getpar("virtual_keyboard_layout",cfg.VirKeybLayout,0,10);
+
+ //get bankroot dirs
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
+ if (xmlcfg->enterbranch("BANKROOT",i)){
+ cfg.bankRootDirList[i]=new char[MAX_STRING_SIZE];
+ xmlcfg->getparstr("bank_root",cfg.bankRootDirList[i],MAX_STRING_SIZE);
+ xmlcfg->exitbranch();
+ };
+ };
+
+ //get preset root dirs
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
+ if (xmlcfg->enterbranch("PRESETSROOT",i)){
+ cfg.presetsDirList[i]=new char[MAX_STRING_SIZE];
+ xmlcfg->getparstr("presets_root",cfg.presetsDirList[i],MAX_STRING_SIZE);
+ xmlcfg->exitbranch();
+ };
+ };
+
+ //linux stuff
+ xmlcfg->getparstr("linux_oss_wave_out_dev",cfg.LinuxOSSWaveOutDev,MAX_STRING_SIZE);
+ xmlcfg->getparstr("linux_oss_seq_in_dev",cfg.LinuxOSSSeqInDev,MAX_STRING_SIZE);
+
+ //windows stuff
+ cfg.WindowsWaveOutId=xmlcfg->getpar("windows_wave_out_id",cfg.WindowsWaveOutId,0,winwavemax);
+ cfg.WindowsMidiInId=xmlcfg->getpar("windows_midi_in_id",cfg.WindowsMidiInId,0,winmidimax);
+
+ xmlcfg->exitbranch();
+ };
+ delete(xmlcfg);
+
+ cfg.OscilSize=(int) pow(2,ceil(log (cfg.OscilSize-1.0)/log(2.0)));
+
+};
+
+void Config::saveConfig(char *filename){
+ XMLwrapper *xmlcfg=new XMLwrapper();
+
+ xmlcfg->beginbranch("CONFIGURATION");
+
+ xmlcfg->addpar("sample_rate",cfg.SampleRate);
+ xmlcfg->addpar("sound_buffer_size",cfg.SoundBufferSize);
+ xmlcfg->addpar("oscil_size",cfg.OscilSize);
+ xmlcfg->addpar("swap_stereo",cfg.SwapStereo);
+ xmlcfg->addpar("bank_window_auto_close",cfg.BankUIAutoClose);
+
+ xmlcfg->addpar("dump_notes_to_file",cfg.DumpNotesToFile);
+ xmlcfg->addpar("dump_append",cfg.DumpAppend);
+ xmlcfg->addparstr("dump_file",cfg.DumpFile);
+
+ xmlcfg->addpar("gzip_compression",cfg.GzipCompression);
+
+ xmlcfg->addpar("check_pad_synth",cfg.CheckPADsynth);
+
+ xmlcfg->addparstr("bank_current",cfg.currentBankDir);
+
+ xmlcfg->addpar("user_interface_mode",cfg.UserInterfaceMode);
+ xmlcfg->addpar("virtual_keyboard_layout",cfg.VirKeybLayout);
+
+
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) if (cfg.bankRootDirList[i]!=NULL) {
+ xmlcfg->beginbranch("BANKROOT",i);
+ xmlcfg->addparstr("bank_root",cfg.bankRootDirList[i]);
+ xmlcfg->endbranch();
+ };
+
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++) if (cfg.presetsDirList[i]!=NULL) {
+ xmlcfg->beginbranch("PRESETSROOT",i);
+ xmlcfg->addparstr("presets_root",cfg.presetsDirList[i]);
+ xmlcfg->endbranch();
+ };
+
+ xmlcfg->addpar("interpolation",cfg.Interpolation);
+
+ //linux stuff
+ xmlcfg->addparstr("linux_oss_wave_out_dev",cfg.LinuxOSSWaveOutDev);
+ xmlcfg->addparstr("linux_oss_seq_in_dev",cfg.LinuxOSSSeqInDev);
+
+ //windows stuff
+ xmlcfg->addpar("windows_wave_out_id",cfg.WindowsWaveOutId);
+ xmlcfg->addpar("windows_midi_in_id",cfg.WindowsMidiInId);
+
+ xmlcfg->endbranch();
+
+ int tmp=cfg.GzipCompression;
+ cfg.GzipCompression=0;
+ xmlcfg->saveXMLfile(filename);
+ cfg.GzipCompression=tmp;
+
+ delete(xmlcfg);
+};
+
+void Config::getConfigFileName(char *name, int namesize){
+ name[0]=0;
+#ifdef OS_LINUX
+ snprintf(name,namesize,"%s%s",getenv("HOME"),"/.zynaddsubfxXML.cfg");
+#else
+ snprintf(name,namesize,"%s","zynaddsubfxXML.cfg");
+#endif
+
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.h
new file mode 100644
index 00000000..800a1823
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Config.h
@@ -0,0 +1,67 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Config.h - Configuration file functions
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+#include "../globals.h"
+#define MAX_STRING_SIZE 4000
+#define MAX_BANK_ROOT_DIRS 100
+
+class Config{
+ public:
+ Config();
+ ~Config();
+ struct {
+ char *LinuxOSSWaveOutDev,*LinuxOSSSeqInDev;
+ int SampleRate,SoundBufferSize,OscilSize,SwapStereo;
+ int WindowsWaveOutId,WindowsMidiInId;
+ int BankUIAutoClose;
+ int DumpNotesToFile,DumpAppend;
+ int GzipCompression;
+ int Interpolation;
+ char *DumpFile;
+ char *bankRootDirList[MAX_BANK_ROOT_DIRS],*currentBankDir;
+ char *presetsDirList[MAX_BANK_ROOT_DIRS];
+ int CheckPADsynth;
+ int UserInterfaceMode;
+ int VirKeybLayout;
+ } cfg;
+ int winwavemax,winmidimax;//number of wave/midi devices on Windows
+ int maxstringsize;
+
+ struct winmidionedevice{
+ char *name;
+ };
+ winmidionedevice *winmididevices;
+
+ void clearbankrootdirlist();
+ void clearpresetsdirlist();
+ void init();
+ void save();
+
+ private:
+ void readConfig(char *filename);
+ void saveConfig(char *filename);
+ void getConfigFileName(char *name,int namesize);
+};
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.C
new file mode 100644
index 00000000..2b5bd810
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.C
@@ -0,0 +1,99 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Dump.C - It dumps the notes to a text file
+
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+#include <stdlib.h>
+#include <time.h>
+#include "Util.h"
+#include "Dump.h"
+
+Dump dump;
+
+Dump::Dump(){
+ file=NULL;
+ tick=0;
+ k=0;
+ keyspressed=0;
+};
+
+Dump::~Dump(){
+ if (file!=NULL) {
+ double duration=(double)tick*(double) SOUND_BUFFER_SIZE/(double) SAMPLE_RATE;
+ fprintf(file,"\n# statistics: duration = %d seconds; keyspressed = %d\n\n\n\n",(int) duration,keyspressed);
+ fclose(file);
+ };
+};
+
+void Dump::startnow(){
+ if (file!=NULL) return;//the file is already open
+
+ if (config.cfg.DumpNotesToFile!=0){
+ if (config.cfg.DumpAppend!=0) file=fopen(config.cfg.DumpFile,"a");
+ else file=fopen(config.cfg.DumpFile,"w");
+ if (file==NULL) return;
+ if (config.cfg.DumpAppend!=0) fprintf(file,"%s","#************************************\n");
+
+ time_t tm=time(NULL);
+
+ fprintf(file,"#date/time = %s\n",ctime(&tm));
+ fprintf(file,"#1 tick = %g milliseconds\n",SOUND_BUFFER_SIZE*1000.0/SAMPLE_RATE);
+ fprintf(file,"SAMPLERATE = %d\n",SAMPLE_RATE);
+ fprintf(file,"TICKSIZE = %d #samples\n",SOUND_BUFFER_SIZE);
+ fprintf(file,"\n\nSTART\n");
+ };
+};
+
+void Dump::inctick(){
+ tick++;
+};
+
+
+void Dump::dumpnote(char chan,char note, char vel){
+ if (file==NULL) return;
+ if (note==0) return;
+ if (vel==0) fprintf(file,"n %d -> %d %d \n",tick,chan,note);//note off
+ else fprintf(file,"N %d -> %d %d %d \n",tick,chan,note,vel);//note on
+
+ if (vel!=0) keyspressed++;
+#ifndef JACKAUDIOOUT
+ if (k++>25) {
+ fflush(file);
+ k=0;
+ };
+#endif
+};
+
+void Dump::dumpcontroller(char chan,unsigned int type,int par){
+ if (file==NULL) return;
+ switch(type){
+ case C_pitchwheel:fprintf(file,"P %d -> %d %d\n",tick,chan,par);
+ break;
+ default:fprintf(file,"C %d -> %d %d %d\n",tick,chan,type,par);
+ break;
+ };
+#ifndef JACKAUDIOOUT
+ if (k++>25) {
+ fflush(file);
+ k=0;
+ };
+#endif
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.h
new file mode 100644
index 00000000..e5a49570
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Dump.h
@@ -0,0 +1,43 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Dump.h - It dumps the notes to a text file
+
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+#ifndef DUMP_H
+#define DUMP_H
+
+#include <stdio.h>
+
+class Dump{
+ public:
+ Dump();
+ ~Dump();
+ void startnow();
+ void inctick();
+
+ void dumpnote(char chan,char note, char vel);
+ void dumpcontroller(char chan,unsigned int type,int par);
+
+ private:
+ FILE *file;
+ int tick;
+ int k;
+ int keyspressed;
+};
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.C
new file mode 100644
index 00000000..99a1ac28
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.C
@@ -0,0 +1,680 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Master.C - It sends Midi Messages to Parts, receives samples from parts,
+ process them with system/insertion effects and mix them
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Master.h"
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <unistd.h>
+
+Master::Master(){
+ swaplr=0;
+
+ busy = false;
+ fft=new FFTwrapper(OSCIL_SIZE);
+
+ tmpmixl=new REALTYPE[SOUND_BUFFER_SIZE];
+ tmpmixr=new REALTYPE[SOUND_BUFFER_SIZE];
+ audiooutl=new REALTYPE[SOUND_BUFFER_SIZE];
+ audiooutr=new REALTYPE[SOUND_BUFFER_SIZE];
+
+ ksoundbuffersamples=0;
+ ksoundbuffersamplelow=0.0;
+ oldsamplel=0.0;oldsampler=0.0;
+ shutup=0;
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++) {
+ vuoutpeakpart[npart]=1e-9;
+ fakepeakpart[npart]=0;
+ };
+
+ memset(audiooutl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(audiooutr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++)
+ part[npart]=new Part(&microtonal,fft,this);
+
+
+ //Insertion Effects init
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++)
+ insefx[nefx]=new EffectMgr(1,this);
+
+ //System Effects init
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++) {
+ sysefx[nefx]=new EffectMgr(0,this);
+ };
+
+
+ defaults();
+};
+
+void Master::defaults(){
+ volume=1.0;
+ setPvolume(80);
+ setPkeyshift(64);
+
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ part[npart]->defaults();
+ part[npart]->Prcvchn=npart%NUM_MIDI_CHANNELS;
+ };
+
+ partonoff(0,1);//enable the first part
+
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++) {
+ insefx[nefx]->defaults();
+ Pinsparts[nefx]=-1;
+ };
+
+ //System Effects init
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++) {
+ sysefx[nefx]->defaults();
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ if (nefx==0) setPsysefxvol(npart,nefx,64);
+ else setPsysefxvol(npart,nefx,0);
+ };
+ for (int nefxto=0;nefxto<NUM_SYS_EFX;nefxto++)
+ setPsysefxsend(nefx,nefxto,0);
+ };
+
+ sysefx[0]->changeeffect(1);
+ microtonal.defaults();
+ ShutUp();
+};
+
+/*
+ * Note On Messages (velocity=0 for NoteOff)
+ */
+void Master::NoteOn(unsigned char chan,unsigned char note,unsigned char velocity){
+ dump.dumpnote(chan,note,velocity);
+
+ noteon(chan,note,velocity);
+};
+
+/*
+ * Internal Note On (velocity=0 for NoteOff)
+ */
+void Master::noteon(unsigned char chan,unsigned char note,unsigned char velocity){
+ int npart;
+ if (velocity!=0){
+ for (npart=0;npart<NUM_MIDI_PARTS;npart++){
+ if (chan==part[npart]->Prcvchn){
+ fakepeakpart[npart]=velocity*2;
+ if (part[npart]->Penabled!=0) part[npart]->NoteOn(note,velocity,keyshift);
+ };
+ };
+ }else{
+ this->NoteOff(chan,note);
+ };
+ HDDRecorder.triggernow();
+};
+
+/*
+ * Note Off Messages
+ */
+void Master::NoteOff(unsigned char chan,unsigned char note){
+ dump.dumpnote(chan,note,0);
+
+ noteoff(chan,note);
+};
+
+/*
+ * Internal Note Off
+ */
+void Master::noteoff(unsigned char chan,unsigned char note){
+ int npart;
+ for (npart=0;npart<NUM_MIDI_PARTS;npart++){
+ if ((chan==part[npart]->Prcvchn) && (part[npart]->Penabled!=0))
+ part[npart]->NoteOff(note);
+ };
+};
+
+/*
+ * Controllers
+ */
+void Master::SetController(unsigned char chan,unsigned int type,int par){
+ dump.dumpcontroller(chan,type,par);
+
+ setcontroller(chan,type,par);
+};
+
+/*
+ * Internal Controllers
+ */
+void Master::setcontroller(unsigned char chan,unsigned int type,int par){
+ if ((type==C_dataentryhi)||(type==C_dataentrylo)||
+ (type==C_nrpnhi)||(type==C_nrpnlo)){//Process RPN and NRPN by the Master (ignore the chan)
+ ctl.setparameternumber(type,par);
+
+ int parhi=-1,parlo=-1,valhi=-1,vallo=-1;
+ if (ctl.getnrpn(&parhi,&parlo,&valhi,&vallo)==0){//this is NRPN
+ //fprintf(stderr,"rcv. NRPN: %d %d %d %d\n",parhi,parlo,valhi,vallo);
+ switch (parhi){
+ case 0x04://System Effects
+ if (parlo<NUM_SYS_EFX) {
+ sysefx[parlo]->seteffectpar_nolock(valhi,vallo);
+ };
+ break;
+ case 0x08://Insertion Effects
+ if (parlo<NUM_INS_EFX) {
+ insefx[parlo]->seteffectpar_nolock(valhi,vallo);
+ };
+ break;
+
+ };
+ };
+ } else {//other controllers
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){//Send the controller to all part assigned to the channel
+ if ((chan==part[npart]->Prcvchn) && (part[npart]->Penabled!=0))
+ part[npart]->SetController(type,par);
+ };
+ };
+};
+
+
+/*
+ * Enable/Disable a part
+ */
+void Master::partonoff(int npart,int what){
+ if (npart>=NUM_MIDI_PARTS) return;
+ if (what==0){//disable part
+ fakepeakpart[npart]=0;
+ part[npart]->Penabled=0;
+ part[npart]->cleanup();
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++){
+ if (Pinsparts[nefx]==npart) {
+ insefx[nefx]->cleanup();
+ };
+ };
+ } else {//enabled
+ part[npart]->Penabled=1;
+ fakepeakpart[npart]=0;
+ };
+};
+
+/*
+ * Master audio out (the final sound)
+ */
+
+void Master::AudioOut(REALTYPE* outl, REALTYPE* outr)
+ {
+ int i,npart,nefx;
+
+ //Swaps the Left channel with Right Channel (if it is asked for)
+ if (swaplr != 0) {
+ REALTYPE *tmp=outl;
+ outl = outr;
+ outr = tmp;
+ }
+
+ //clean up the output samples
+ memset(outl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(outr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+
+ //Compute part samples and store them part[npart]->partoutl,partoutr
+ for (npart=0; npart<NUM_MIDI_PARTS; npart++)
+ if (part[npart]->Penabled != 0)
+ part[npart]->ComputePartSmps();
+
+ //Insertion effects
+ for (nefx=0;nefx<NUM_INS_EFX;nefx++){
+ if (Pinsparts[nefx]>=0) {
+ int efxpart=Pinsparts[nefx];
+ if (part[efxpart]->Penabled!=0)
+ insefx[nefx]->out(part[efxpart]->partoutl,part[efxpart]->partoutr);
+ }
+ }
+
+
+ //Apply the part volumes and pannings (after insertion effects)
+ for (npart = 0; npart < NUM_MIDI_PARTS; npart++) {
+ if (part[npart]->Penabled==0)
+ continue;
+
+ REALTYPE newvol_l=part[npart]->volume;
+ REALTYPE newvol_r=part[npart]->volume;
+ REALTYPE oldvol_l=part[npart]->oldvolumel;
+ REALTYPE oldvol_r=part[npart]->oldvolumer;
+ REALTYPE pan=part[npart]->panning;
+ if (pan < 0.5)
+ newvol_l *= pan*2.0;
+ else
+ newvol_r *= (1.0-pan)*2.0;
+
+ if (ABOVE_AMPLITUDE_THRESHOLD(oldvol_l,newvol_l)||
+ ABOVE_AMPLITUDE_THRESHOLD(oldvol_r,newvol_r)){//the volume or the panning has changed and needs interpolation
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ REALTYPE vol_l = INTERPOLATE_AMPLITUDE(oldvol_l,newvol_l,i,SOUND_BUFFER_SIZE);
+ REALTYPE vol_r = INTERPOLATE_AMPLITUDE(oldvol_r,newvol_r,i,SOUND_BUFFER_SIZE);
+ part[npart]->partoutl[i]*=vol_l;
+ part[npart]->partoutr[i]*=vol_r;
+ }
+ part[npart]->oldvolumel=newvol_l;
+ part[npart]->oldvolumer=newvol_r;
+
+ }
+ else {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {//the volume did not changed
+ part[npart]->partoutl[i] *= newvol_l;
+ part[npart]->partoutr[i] *= newvol_r;
+ }
+ }
+ }
+
+
+ //System effects
+ for (nefx=0;nefx<NUM_SYS_EFX;nefx++){
+ if (sysefx[nefx]->geteffect()==0) continue;//the effect is disabled
+
+ //Clean up the samples used by the system effects
+ memset(tmpmixl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpmixr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+
+ //Mix the channels according to the part settings about System Effect
+ for (npart=0;npart<NUM_MIDI_PARTS;npart++){
+ //skip if the part has no output to effect
+ if (Psysefxvol[nefx][npart]==0) continue;
+
+ //skip if the part is disabled
+ if (part[npart]->Penabled==0) continue;
+
+ //the output volume of each part to system effect
+ REALTYPE vol=sysefxvol[nefx][npart];
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ tmpmixl[i]+=part[npart]->partoutl[i]*vol;
+ tmpmixr[i]+=part[npart]->partoutr[i]*vol;
+ };
+ };
+
+ // system effect send to next ones
+ for (int nefxfrom=0;nefxfrom<nefx;nefxfrom++){
+ if (Psysefxsend[nefxfrom][nefx]!=0){
+ REALTYPE v=sysefxsend[nefxfrom][nefx];
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ tmpmixl[i]+=sysefx[nefxfrom]->efxoutl[i]*v;
+ tmpmixr[i]+=sysefx[nefxfrom]->efxoutr[i]*v;
+ };
+ };
+ };
+
+ sysefx[nefx]->out(tmpmixl,tmpmixr);
+
+ //Add the System Effect to sound output
+ REALTYPE outvol=sysefx[nefx]->sysefxgetvolume();
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]+=tmpmixl[i]*outvol;
+ outr[i]+=tmpmixr[i]*outvol;
+ };
+
+ };
+
+ //Mix all parts
+ for (npart=0;npart<NUM_MIDI_PARTS;npart++){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) { //the volume did not changed
+ outl[i] += part[npart]->partoutl[i];
+ outr[i] += part[npart]->partoutr[i];
+ }
+ }
+
+ //Insertion effects for Master Out
+ for (nefx=0;nefx<NUM_INS_EFX;nefx++) {
+ if (Pinsparts[nefx] == -2)
+ insefx[nefx]->out(outl, outr);
+ }
+
+ //Master Volume
+ for (i = 0; i < SOUND_BUFFER_SIZE; i++) {
+ outl[i] *= volume;
+ outr[i] *= volume;
+ }
+
+ //Peak computation (for vumeters)
+ vuoutpeakl=1e-12;vuoutpeakr=1e-12;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ if (fabs(outl[i])>vuoutpeakl) vuoutpeakl=fabs(outl[i]);
+ if (fabs(outr[i])>vuoutpeakr) vuoutpeakr=fabs(outr[i]);
+ };
+ if ((vuoutpeakl>1.0)||(vuoutpeakr>1.0)) vuclipped=1;
+ if (vumaxoutpeakl<vuoutpeakl) vumaxoutpeakl=vuoutpeakl;
+ if (vumaxoutpeakr<vuoutpeakr) vumaxoutpeakr=vuoutpeakr;
+
+ //RMS Peak computation (for vumeters)
+ vurmspeakl=1e-12;vurmspeakr=1e-12;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ vurmspeakl+=outl[i]*outl[i];
+ vurmspeakr+=outr[i]*outr[i];
+ };
+ vurmspeakl=sqrt(vurmspeakl/SOUND_BUFFER_SIZE);
+ vurmspeakr=sqrt(vurmspeakr/SOUND_BUFFER_SIZE);
+
+ //Part Peak computation (for Part vumeters or fake part vumeters)
+ for (npart=0;npart<NUM_MIDI_PARTS;npart++){
+ vuoutpeakpart[npart]=1.0e-12;
+ if (part[npart]->Penabled!=0) {
+ REALTYPE *outl=part[npart]->partoutl,
+ *outr=part[npart]->partoutr;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ REALTYPE tmp=fabs(outl[i]+outr[i]);
+ if (tmp>vuoutpeakpart[npart]) vuoutpeakpart[npart]=tmp;
+ };
+ vuoutpeakpart[npart]*=volume;
+ } else {
+ if (fakepeakpart[npart]>1) fakepeakpart[npart]--;
+ };
+ };
+
+
+ //Shutup if it is asked (with fade-out)
+ if (shutup != 0) {
+ for (i = 0; i < SOUND_BUFFER_SIZE; i++) {
+ REALTYPE tmp=(SOUND_BUFFER_SIZE-i)/(REALTYPE) SOUND_BUFFER_SIZE;
+ outl[i] *= tmp;
+ outr[i] *= tmp;
+ }
+ ShutUp();
+ }
+
+ //update the LFO's time
+ LFOParams::time++;
+
+ if (HDDRecorder.recording())
+ HDDRecorder.recordbuffer(outl,outr);
+ dump.inctick();
+ };
+
+//---------------------------------------------------------
+// GetAudioOutSamples
+//---------------------------------------------------------
+
+void Master::GetAudioOutSamples(int nsamples, REALTYPE* outl, REALTYPE* outr)
+ {
+ int dstOffset = 0;
+ while (nsamples) {
+ if (ksoundbuffersamples <= 0) {
+ AudioOut(audiooutl, audiooutr);
+ ksoundbuffersamples = SOUND_BUFFER_SIZE;
+ }
+ int n = nsamples > ksoundbuffersamples ? ksoundbuffersamples : nsamples;
+ int srcOffset = SOUND_BUFFER_SIZE - ksoundbuffersamples;
+ memcpy(outl + dstOffset, audiooutl + srcOffset, n * sizeof(REALTYPE));
+ memcpy(outr + dstOffset, audiooutr + srcOffset, n * sizeof(REALTYPE));
+ nsamples -= n;
+ dstOffset += n;
+ ksoundbuffersamples -= n;
+ }
+ }
+
+Master::~Master(){
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++) delete (part[npart]);
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++) delete (insefx[nefx]);
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++) delete (sysefx[nefx]);
+
+ delete [] audiooutl;
+ delete [] audiooutr;
+ delete [] tmpmixl;
+ delete [] tmpmixr;
+ delete (fft);
+
+};
+
+
+/*
+ * Parameter control
+ */
+void Master::setPvolume(char Pvolume_){
+ Pvolume=Pvolume_;
+ volume=dB2rap((Pvolume-96.0)/96.0*40.0);
+};
+
+void Master::setPkeyshift(char Pkeyshift_){
+ Pkeyshift=Pkeyshift_;
+ keyshift=(int)Pkeyshift-64;
+};
+
+
+void Master::setPsysefxvol(int Ppart,int Pefx,char Pvol){
+ Psysefxvol[Pefx][Ppart]=Pvol;
+ sysefxvol[Pefx][Ppart]=pow(0.1,(1.0-Pvol/96.0)*2.0);
+};
+
+void Master::setPsysefxsend(int Pefxfrom,int Pefxto,char Pvol){
+ Psysefxsend[Pefxfrom][Pefxto]=Pvol;
+ sysefxsend[Pefxfrom][Pefxto]=pow(0.1,(1.0-Pvol/96.0)*2.0);
+};
+
+
+/*
+ * Panic! (Clean up all parts and effects)
+ */
+void Master::ShutUp(){
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++) {
+ part[npart]->cleanup();
+ fakepeakpart[npart]=0;
+ };
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++) insefx[nefx]->cleanup();
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++) sysefx[nefx]->cleanup();
+ vuresetpeaks();
+ shutup=0;
+};
+
+
+/*
+ * Reset peaks and clear the "cliped" flag (for VU-meter)
+ */
+void Master::vuresetpeaks(){
+ vuoutpeakl=1e-9;vuoutpeakr=1e-9;vumaxoutpeakl=1e-9;vumaxoutpeakr=1e-9;
+ vuclipped=0;
+};
+
+
+
+void Master::applyparameters(){
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ part[npart]->applyparameters();
+ };
+};
+
+void Master::add2XML(XMLwrapper *xml){
+ xml->addpar("volume",Pvolume);
+ xml->addpar("key_shift",Pkeyshift);
+ xml->addparbool("nrpn_receive",ctl.NRPN.receive);
+
+ xml->beginbranch("MICROTONAL");
+ microtonal.add2XML(xml);
+ xml->endbranch();
+
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ xml->beginbranch("PART",npart);
+ part[npart]->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->beginbranch("SYSTEM_EFFECTS");
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++){
+ xml->beginbranch("SYSTEM_EFFECT",nefx);
+ xml->beginbranch("EFFECT");
+ sysefx[nefx]->add2XML(xml);
+ xml->endbranch();
+
+ for (int pefx=0;pefx<NUM_MIDI_PARTS;pefx++){
+ xml->beginbranch("VOLUME",pefx);
+ xml->addpar("vol",Psysefxvol[nefx][pefx]);
+ xml->endbranch();
+ };
+
+ for (int tonefx=nefx+1;tonefx<NUM_SYS_EFX;tonefx++){
+ xml->beginbranch("SENDTO",tonefx);
+ xml->addpar("send_vol",Psysefxsend[nefx][tonefx]);
+ xml->endbranch();
+ };
+
+
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("INSERTION_EFFECTS");
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++){
+ xml->beginbranch("INSERTION_EFFECT",nefx);
+ xml->addpar("part",Pinsparts[nefx]);
+
+ xml->beginbranch("EFFECT");
+ insefx[nefx]->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+ };
+
+ xml->endbranch();
+
+};
+
+
+int Master::getalldata(char **data){
+ XMLwrapper *xml=new XMLwrapper();
+
+ xml->beginbranch("MASTER");
+
+ busy = true;
+ add2XML(xml);
+ busy = false;
+
+ xml->endbranch();
+
+ *data=xml->getXMLdata();
+ delete (xml);
+ return(strlen(*data)+1);
+};
+
+void Master::putalldata(char *data,int size){
+ XMLwrapper *xml=new XMLwrapper();
+ if (!xml->putXMLdata(data)) {
+ delete(xml);
+ return;
+ };
+
+ if (xml->enterbranch("MASTER")==0) return;
+
+ busy = true;
+ getfromXML(xml);
+ busy = false;
+
+ xml->exitbranch();
+
+ delete(xml);
+};
+
+int Master::saveXML(char *filename){
+ XMLwrapper *xml=new XMLwrapper();
+
+ xml->beginbranch("MASTER");
+ add2XML(xml);
+ xml->endbranch();
+
+ int result=xml->saveXMLfile(filename);
+ delete (xml);
+ return(result);
+};
+
+
+
+int Master::loadXML(char *filename){
+ XMLwrapper *xml=new XMLwrapper();
+ if (xml->loadXMLfile(filename)<0) {
+ delete(xml);
+ return(-1);
+ };
+
+ if (xml->enterbranch("MASTER")==0) return(-10);
+ getfromXML(xml);
+ xml->exitbranch();
+
+ delete(xml);
+ return(0);
+};
+
+void Master::getfromXML(XMLwrapper *xml){
+ setPvolume(xml->getpar127("volume",Pvolume));
+ setPkeyshift(xml->getpar127("key_shift",Pkeyshift));
+ ctl.NRPN.receive=xml->getparbool("nrpn_receive",ctl.NRPN.receive);
+
+
+ part[0]->Penabled=0;
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ if (xml->enterbranch("PART",npart)==0) continue;
+ part[npart]->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("MICROTONAL")){
+ microtonal.getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ sysefx[0]->changeeffect(0);
+ if (xml->enterbranch("SYSTEM_EFFECTS")){
+ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++){
+ if (xml->enterbranch("SYSTEM_EFFECT",nefx)==0) continue;
+ if (xml->enterbranch("EFFECT")){
+ sysefx[nefx]->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ for (int partefx=0;partefx<NUM_MIDI_PARTS;partefx++){
+ if (xml->enterbranch("VOLUME",partefx)==0) continue;
+ setPsysefxvol(partefx,nefx,xml->getpar127("vol",Psysefxvol[partefx][nefx]));
+ xml->exitbranch();
+ };
+
+ for (int tonefx=nefx+1;tonefx<NUM_SYS_EFX;tonefx++){
+ if (xml->enterbranch("SENDTO",tonefx)==0) continue;
+ setPsysefxsend(nefx,tonefx,xml->getpar127("send_vol",Psysefxsend[nefx][tonefx]));
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+
+ if (xml->enterbranch("INSERTION_EFFECTS")){
+ for (int nefx=0;nefx<NUM_INS_EFX;nefx++){
+
+ if (xml->enterbranch("INSERTION_EFFECT",nefx)==0) continue;
+ Pinsparts[nefx]=xml->getpar("part",Pinsparts[nefx],-2,NUM_MIDI_PARTS);
+ if (xml->enterbranch("EFFECT")){
+ insefx[nefx]->getfromXML(xml);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+
+ };
+
+ xml->exitbranch();
+ };
+
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.h
new file mode 100644
index 00000000..51feabdd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Master.h
@@ -0,0 +1,167 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Master.h - It sends Midi Messages to Parts, receives samples from parts,
+ process them with system/insertion effects and mix them
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef MASTER_H
+#define MASTER_H
+
+#include "../globals.h"
+#include "../Effects/EffectMgr.h"
+#include "Part.h"
+#include "../Output/Recorder.h"
+#include "Microtonal.h"
+
+#include "Bank.h"
+#include "Dump.h"
+#include "../Seq/Sequencer.h"
+#include "XMLwrapper.h"
+
+extern Dump dump;
+class Master{
+ public:
+ Master();
+ ~Master();
+
+ //saves all settings to a XML file
+ //returns 0 for ok or <0 if there is an error
+ int saveXML(char *filename);
+
+ //this adds the parameters to the XML data
+ void add2XML(XMLwrapper *xml);
+
+ void defaults();
+
+
+ //loads all settings from a XML file
+ //returns 0 for ok or -1 if there is an error
+ int loadXML(char *filename);
+ void applyparameters();
+
+ void getfromXML(XMLwrapper *xml);
+
+ //get all data to a newly allocated array (used for VST)
+ //returns the datasize
+ int getalldata(char **data);
+ //put all data from the *data array to zynaddsubfx parameters (used for VST)
+ void putalldata(char *data,int size);
+
+
+
+ //Midi IN
+ void NoteOn(unsigned char chan,unsigned char note,unsigned char velocity);
+ void NoteOff(unsigned char chan,unsigned char note);
+ void SetController(unsigned char chan,unsigned int type,int par);
+ //void NRPN...
+
+
+ void ShutUp();
+ int shutup;
+
+ //Audio Output
+ void AudioOut(REALTYPE *outl,REALTYPE *outr);
+ //Audio Output (for callback mode). This allows the program to be controled by an external program
+ void GetAudioOutSamples(int nsamples, REALTYPE *outl,REALTYPE *outr);
+
+
+ void partonoff(int npart,int what);
+
+ //parts
+ Part *part[NUM_MIDI_PARTS];
+
+ //parameters
+ unsigned char Pvolume;
+ unsigned char Pkeyshift;
+ unsigned char Psysefxvol[NUM_SYS_EFX][NUM_MIDI_PARTS];
+ unsigned char Psysefxsend[NUM_SYS_EFX][NUM_SYS_EFX];
+
+ //parameters control
+ void setPvolume(char Pvolume_);
+ void setPkeyshift(char Pkeyshift_);
+ void setPsysefxvol(int Ppart,int Pefx,char Pvol);
+ void setPsysefxsend(int Pefxfrom,int Pefxto,char Pvol);
+
+ //effects
+ EffectMgr *sysefx[NUM_SYS_EFX];//system
+ EffectMgr *insefx[NUM_INS_EFX];//insertion
+// void swapcopyeffects(int what,int type,int neff1,int neff2);
+
+ //HDD recorder
+ Recorder HDDRecorder;
+
+ //part that's apply the insertion effect; -1 to disable
+ short int Pinsparts[NUM_INS_EFX];
+
+ //peaks for VU-meter
+ void vuresetpeaks();
+ REALTYPE vuoutpeakl,vuoutpeakr,vumaxoutpeakl,vumaxoutpeakr,vurmspeakl,vurmspeakr;
+ int vuclipped;
+
+ //peaks for part VU-meters
+ REALTYPE vuoutpeakpart[NUM_MIDI_PARTS];
+ unsigned char fakepeakpart[NUM_MIDI_PARTS];//this is used to compute the "peak" when the part is disabled
+
+ Controller ctl;
+ int swaplr;//1 if L and R are swapped
+
+ //Sequencer
+ Sequencer seq;
+
+ //other objects
+ Microtonal microtonal;
+ Bank bank;
+
+ FFTwrapper *fft;
+ volatile bool busy; // if true, is busy and cannot accept
+ // events or deliver data
+ void lock() { busy = true; }
+ void unlock() { busy = false; }
+
+ private:
+ REALTYPE volume;
+ REALTYPE sysefxvol[NUM_SYS_EFX][NUM_MIDI_PARTS];
+ REALTYPE sysefxsend[NUM_SYS_EFX][NUM_SYS_EFX];
+
+ //Temporary mixing samples for part samples which is sent to system effect
+ REALTYPE *tmpmixl;
+ REALTYPE *tmpmixr;
+
+
+ int keyshift;
+
+ //Audio Output samples (if it used GetAudioOutSamples - eg. for Jack output; elsewhere is unused)
+ REALTYPE *audiooutl;
+ REALTYPE *audiooutr;
+
+ int ksoundbuffersamples; // number of valid samples in audiooutr/l
+ REALTYPE ksoundbuffersamplelow;//this is used for resampling (eg. if Jack samplerate!= SAMPLE_RATE)
+ REALTYPE oldsamplel,oldsampler;//this is used for resampling
+
+ //Theese are called by the NoteOn, NoteOff,SetController (which are from external sources like MIDI, Virtual Keyboard)
+ //and are called by internal parts of the program (like sequencer)
+ void noteon(unsigned char chan,unsigned char note,unsigned char velocity);
+ void noteoff(unsigned char chan,unsigned char note);
+ void setcontroller(unsigned char chan,unsigned int type,int par);
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.C
new file mode 100644
index 00000000..30a3a71e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.C
@@ -0,0 +1,514 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Microtonal.C - Tuning settings and microtonal capabilities
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <string.h>
+#include "Microtonal.h"
+
+#define MAX_LINE_SIZE 80
+
+Microtonal::Microtonal(){
+ Pname=new unsigned char[MICROTONAL_MAX_NAME_LEN];
+ Pcomment=new unsigned char[MICROTONAL_MAX_NAME_LEN];
+ defaults();
+};
+
+void Microtonal::defaults(){
+ Pinvertupdown=0;
+ Pinvertupdowncenter=60;
+ octavesize=12;
+ Penabled=0;
+ PAnote=69;
+ PAfreq=440.0;
+ Pscaleshift=64;
+
+ Pfirstkey=0;Plastkey=127;
+ Pmiddlenote=60;Pmapsize=12;
+ Pmappingenabled=0;
+
+ for (int i=0;i<128;i++) Pmapping[i]=i;
+
+ for (int i=0;i<MAX_OCTAVE_SIZE;i++){
+ octave[i].tuning=tmpoctave[i].tuning=pow(2,(i%octavesize+1)/12.0);
+ octave[i].type=tmpoctave[i].type=1;
+ octave[i].x1=tmpoctave[i].x1=(i%octavesize+1)*100;
+ octave[i].x2=tmpoctave[i].x2=0;
+ };
+ octave[11].type=2;octave[11].x1=2;octave[11].x2=1;
+ for (int i=0;i<MICROTONAL_MAX_NAME_LEN;i++){
+ Pname[i]='\0';
+ Pcomment[i]='\0';
+ };
+ snprintf((char *) Pname,MICROTONAL_MAX_NAME_LEN,"12tET");
+ snprintf((char *) Pcomment,MICROTONAL_MAX_NAME_LEN,"Equal Temperament 12 notes per octave");
+ Pglobalfinedetune=64;
+};
+
+Microtonal::~Microtonal(){
+ delete (Pname);
+ delete (Pcomment);
+};
+
+/*
+ * Get the size of the octave
+ */
+unsigned char Microtonal::getoctavesize(){
+ if (Penabled!=0) return(octavesize);
+ else return(12);
+};
+
+/*
+ * Get the frequency according the note number
+ */
+REALTYPE Microtonal::getnotefreq(int note,int keyshift){
+ // in this function will appears many times things like this:
+ // var=(a+b*100)%b
+ // I had written this way because if I use var=a%b gives unwanted results when a<0
+ // This is the same with divisions.
+
+ if ((Pinvertupdown!=0)&&((Pmappingenabled==0)||(Penabled==0))) note=(int) Pinvertupdowncenter*2-note;
+
+ //compute global fine detune
+ REALTYPE globalfinedetunerap=pow(2.0,(Pglobalfinedetune-64.0)/1200.0);//-64.0 .. 63.0 cents
+
+ if (Penabled==0) return(pow(2.0,(note-PAnote+keyshift)/12.0)*PAfreq*globalfinedetunerap);//12tET
+
+ int scaleshift=((int)Pscaleshift-64+(int) octavesize*100)%octavesize;
+
+ //compute the keyshift
+ REALTYPE rap_keyshift=1.0;
+ if (keyshift!=0){
+ int kskey=(keyshift+(int)octavesize*100)%octavesize;
+ int ksoct=(keyshift+(int)octavesize*100)/octavesize-100;
+ rap_keyshift=(kskey==0) ? (1.0):(octave[kskey-1].tuning);
+ rap_keyshift*=pow(octave[octavesize-1].tuning,ksoct);
+ };
+
+ //if the mapping is enabled
+ if (Pmappingenabled!=0){
+ if ((note<Pfirstkey)||(note>Plastkey)) return (-1.0);
+ //Compute how many mapped keys are from middle note to reference note
+ //and find out the proportion between the freq. of middle note and "A" note
+ int tmp=PAnote-Pmiddlenote,minus=0;
+ if (tmp<0) { tmp=-tmp; minus=1; };
+ int deltanote=0;
+ for (int i=0;i<tmp;i++) if (Pmapping[i%Pmapsize]>=0) deltanote++;
+ REALTYPE rap_anote_middlenote=(deltanote==0) ? (1.0) : (octave[(deltanote-1)%octavesize].tuning);
+ if (deltanote!=0) rap_anote_middlenote*=pow(octave[octavesize-1].tuning,(deltanote-1)/octavesize);
+ if (minus!=0) rap_anote_middlenote=1.0/rap_anote_middlenote;
+
+ //Convert from note (midi) to degree (note from the tunning)
+ int degoct=(note-(int)Pmiddlenote+(int) Pmapsize*200)/(int)Pmapsize-200;
+ int degkey=(note-Pmiddlenote+(int)Pmapsize*100)%Pmapsize;
+ degkey=Pmapping[degkey];
+ if (degkey<0) return(-1.0);//this key is not mapped
+
+ //invert the keyboard upside-down if it is asked for
+ //TODO: do the right way by using Pinvertupdowncenter
+ if (Pinvertupdown!=0){
+ degkey=octavesize-degkey-1;
+ degoct=-degoct;
+ };
+ //compute the frequency of the note
+ degkey=degkey+scaleshift;
+ degoct+=degkey/octavesize;
+ degkey%=octavesize;
+
+ REALTYPE freq=(degkey==0) ? (1.0):octave[degkey-1].tuning;
+ freq*=pow(octave[octavesize-1].tuning,degoct);
+ freq*=PAfreq/rap_anote_middlenote;
+ freq*=globalfinedetunerap;
+ if (scaleshift!=0) freq/=octave[scaleshift-1].tuning;
+ return(freq*rap_keyshift);
+ } else {//if the mapping is disabled
+ int nt=note-PAnote+scaleshift;
+ int ntkey=(nt+(int)octavesize*100)%octavesize;
+ int ntoct=(nt-ntkey)/octavesize;
+
+ REALTYPE oct=octave[octavesize-1].tuning;
+ REALTYPE freq=octave[(ntkey+octavesize-1)%octavesize].tuning*pow(oct,ntoct)*PAfreq;
+ if (ntkey==0) freq/=oct;
+ if (scaleshift!=0) freq/=octave[scaleshift-1].tuning;
+// fprintf(stderr,"note=%d freq=%.3f cents=%d\n",note,freq,(int)floor(log(freq/PAfreq)/log(2.0)*1200.0+0.5));
+ freq*=globalfinedetunerap;
+ return(freq*rap_keyshift);
+ };
+};
+
+
+/*
+ * Convert a line to tunings; returns -1 if it ok
+ */
+int Microtonal::linetotunings(unsigned int nline,const char *line){
+ int x1=-1,x2=-1,type=-1;
+ REALTYPE x=-1.0,tmp,tuning=1.0;
+ if (strstr(line,"/")==NULL){
+ if (strstr(line,".")==NULL){// M case (M=M/1)
+ sscanf(line,"%d",&x1);
+ x2=1;
+ type=2;//division
+ } else {// float number case
+ sscanf(line,"%f",&x);
+ if (x<0.000001) return(1);
+ type=1;//float type(cents)
+ };
+ } else {// M/N case
+ sscanf(line,"%d/%d",&x1,&x2);
+ if ((x1<0)||(x2<0)) return(1);
+ if (x2==0) x2=1;
+ type=2;//division
+ };
+
+ if (x1<=0) x1=1;//not allow zero frequency sounds (consider 0 as 1)
+
+ //convert to float if the number are too big
+ if ((type==2)&&((x1>(128*128*128-1))||(x2>(128*128*128-1)))){
+ type=1;
+ x=((REALTYPE) x1)/x2;
+ };
+ switch (type){
+ case 1: x1=(int) floor(x);
+ tmp=fmod(x,1.0);
+ x2=(int) (floor (tmp*1e6));
+ tuning=pow(2.0,x/1200.0);
+ break;
+ case 2: x=((REALTYPE)x1)/x2;
+ tuning=x;
+ break;
+ };
+
+ tmpoctave[nline].tuning=tuning;
+ tmpoctave[nline].type=type;
+ tmpoctave[nline].x1=x1;
+ tmpoctave[nline].x2=x2;
+
+ return(-1);//ok
+};
+
+/*
+ * Convert the text to tunnings
+ */
+int Microtonal::texttotunings(const char *text){
+ unsigned int i,k=0,nl=0;
+ char *lin;
+ lin=new char[MAX_LINE_SIZE+1];
+ while (k<strlen(text)){
+ for (i=0;i<MAX_LINE_SIZE;i++){
+ lin[i]=text[k++];
+ if (lin[i]<0x20) break;
+ };
+ lin[i]='\0';
+ if (strlen(lin)==0) continue;
+ int err=linetotunings(nl,lin);
+ if (err!=-1) {
+ delete [] lin;
+ return(nl);//Parse error
+ };
+ nl++;
+ };
+ delete [] lin;
+ if (nl>MAX_OCTAVE_SIZE) nl=MAX_OCTAVE_SIZE;
+ if (nl==0) return(-2);//the input is empty
+ octavesize=nl;
+ for (i=0;i<octavesize;i++){
+ octave[i].tuning=tmpoctave[i].tuning;
+ octave[i].type=tmpoctave[i].type;
+ octave[i].x1=tmpoctave[i].x1;
+ octave[i].x2=tmpoctave[i].x2;
+ };
+ return(-1);//ok
+};
+
+/*
+ * Convert the text to mapping
+ */
+void Microtonal::texttomapping(const char *text){
+ unsigned int i,k=0;
+ char *lin;
+ lin=new char[MAX_LINE_SIZE+1];
+ for (i=0;i<128;i++) Pmapping[i]=-1;
+ int tx=0;
+ while (k<strlen(text)){
+ for (i=0;i<MAX_LINE_SIZE;i++){
+ lin[i]=text[k++];
+ if (lin[i]<0x20) break;
+ };
+ lin[i]='\0';
+ if (strlen(lin)==0) continue;
+
+ int tmp=0;
+ if (sscanf(lin,"%d",&tmp)==0) tmp=-1;
+ if (tmp<-1) tmp=-1;
+ Pmapping[tx]=tmp;
+
+ if ((tx++)>127) break;
+ };
+ delete [] lin;
+
+ if (tx==0) tx=1;
+ Pmapsize=tx;
+};
+
+/*
+ * Convert tunning to text line
+ */
+void Microtonal::tuningtoline(int n,char *line,int maxn){
+ if ((n>octavesize) || (n>MAX_OCTAVE_SIZE)) {
+ line[0]='\0';
+ return;
+ };
+ if (octave[n].type==1) snprintf(line,maxn,"%d.%d",octave[n].x1,octave[n].x2);
+ if (octave[n].type==2) snprintf(line,maxn,"%d/%d",octave[n].x1,octave[n].x2);
+};
+
+
+int Microtonal::loadline(FILE *file,char *line){
+ do {
+ if (fgets(line,500,file)==0) return(1);
+ } while (line[0]=='!');
+ return(0);
+};
+/*
+ * Loads the tunnings from a scl file
+ */
+int Microtonal::loadscl(const char *filename){
+ FILE *file=fopen(filename, "r");
+ char tmp[500];
+ fseek(file,0,SEEK_SET);
+ //loads the short description
+ if (loadline(file,&tmp[0])!=0) return(2);
+ for (int i=0;i<500;i++) if (tmp[i]<32) tmp[i]=0;
+ snprintf((char *) Pname,MICROTONAL_MAX_NAME_LEN,"%s",tmp);
+ snprintf((char *) Pcomment,MICROTONAL_MAX_NAME_LEN,"%s",tmp);
+ //loads the number of the notes
+ if (loadline(file,&tmp[0])!=0) return(2);
+ int nnotes=MAX_OCTAVE_SIZE;
+ sscanf(&tmp[0],"%d",&nnotes);
+ if (nnotes>MAX_OCTAVE_SIZE) return (2);
+ //load the tunnings
+ for (int nline=0;nline<nnotes;nline++){
+ if (loadline(file,&tmp[0])!=0) return(2);
+ linetotunings(nline,&tmp[0]);
+ };
+ fclose(file);
+
+ octavesize=nnotes;
+ for (int i=0;i<octavesize;i++){
+ octave[i].tuning=tmpoctave[i].tuning;
+ octave[i].type=tmpoctave[i].type;
+ octave[i].x1=tmpoctave[i].x1;
+ octave[i].x2=tmpoctave[i].x2;
+ };
+
+ return(0);
+};
+
+/*
+ * Loads the mapping from a kbm file
+ */
+int Microtonal::loadkbm(const char *filename){
+ FILE *file=fopen(filename, "r");
+ int x;
+ char tmp[500];
+
+ fseek(file,0,SEEK_SET);
+ //loads the mapsize
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) return(2);
+ if (x<1) x=0;if (x>127) x=127;//just in case...
+ Pmapsize=x;
+ //loads first MIDI note to retune
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) return(2);
+ if (x<1) x=0;if (x>127) x=127;//just in case...
+ Pfirstkey=x;
+ //loads last MIDI note to retune
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) return(2);
+ if (x<1) x=0;if (x>127) x=127;//just in case...
+ Plastkey=x;
+ //loads last the middle note where scale fro scale degree=0
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) return(2);
+ if (x<1) x=0;if (x>127) x=127;//just in case...
+ Pmiddlenote=x;
+ //loads the reference note
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) return(2);
+ if (x<1) x=0;if (x>127) x=127;//just in case...
+ PAnote=x;
+ //loads the reference freq.
+ if (loadline(file,&tmp[0])!=0) return(2);
+ REALTYPE tmpPAfreq=440.0;
+ if (sscanf(&tmp[0],"%f",&tmpPAfreq)==0) return(2);
+ PAfreq=tmpPAfreq;
+
+ //the scale degree(which is the octave) is not loaded, it is obtained by the tunnings with getoctavesize() method
+ if (loadline(file,&tmp[0])!=0) return(2);
+
+ //load the mappings
+ if (Pmapsize!=0){
+ for (int nline=0;nline<Pmapsize;nline++){
+ if (loadline(file,&tmp[0])!=0) return(2);
+ if (sscanf(&tmp[0],"%d",&x)==0) x=-1;
+ Pmapping[nline]=x;
+ };
+ Pmappingenabled=1;
+ } else {
+ Pmappingenabled=0;
+ Pmapping[0]=0;
+ Pmapsize=1;
+ };
+ fclose(file);
+
+ return(0);
+};
+
+
+
+void Microtonal::add2XML(XMLwrapper *xml){
+ xml->addparstr("name",(char *) Pname);
+ xml->addparstr("comment",(char *) Pcomment);
+
+ xml->addparbool("invert_up_down",Pinvertupdown);
+ xml->addparbool("invert_up_down_center",Pinvertupdowncenter);
+
+ xml->addparbool("enabled",Penabled);
+ xml->addpar("global_fine_detune",Pglobalfinedetune);
+
+ xml->addpar("a_note",PAnote);
+ xml->addparreal("a_freq",PAfreq);
+
+ if ((Penabled==0)&&(xml->minimal)) return;
+
+ xml->beginbranch("SCALE");
+ xml->addpar("scale_shift",Pscaleshift);
+ xml->addpar("first_key",Pfirstkey);
+ xml->addpar("last_key",Plastkey);
+ xml->addpar("middle_note",Pmiddlenote);
+
+ xml->beginbranch("OCTAVE");
+ xml->addpar("octave_size",octavesize);
+ for (int i=0;i<octavesize;i++){
+ xml->beginbranch("DEGREE",i);
+ if (octave[i].type==1){
+ xml->addparreal("cents",octave[i].tuning);
+ };
+ if (octave[i].type==2){
+ xml->addpar("numerator",octave[i].x1);
+ xml->addpar("denominator",octave[i].x2);
+ };
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("KEYBOARD_MAPPING");
+ xml->addpar("map_size",Pmapsize);
+ xml->addpar("mapping_enabled",Pmappingenabled);
+ for (int i=0;i<Pmapsize;i++){
+ xml->beginbranch("KEYMAP",i);
+ xml->addpar("degree",Pmapping[i]);
+ xml->endbranch();
+ };
+ xml->endbranch();
+ xml->endbranch();
+};
+
+void Microtonal::getfromXML(XMLwrapper *xml){
+ xml->getparstr("name",(char *) Pname,MICROTONAL_MAX_NAME_LEN);
+ xml->getparstr("comment",(char *) Pcomment,MICROTONAL_MAX_NAME_LEN);
+
+ Pinvertupdown=xml->getparbool("invert_up_down",Pinvertupdown);
+ Pinvertupdowncenter=xml->getparbool("invert_up_down_center",Pinvertupdowncenter);
+
+ Penabled=xml->getparbool("enabled",Penabled);
+ Pglobalfinedetune=xml->getpar127("global_fine_detune",Pglobalfinedetune);
+
+ PAnote=xml->getpar127("a_note",PAnote);
+ PAfreq=xml->getparreal("a_freq",PAfreq,1.0,10000.0);
+
+ if (xml->enterbranch("SCALE")){
+ Pscaleshift=xml->getpar127("scale_shift",Pscaleshift);
+ Pfirstkey=xml->getpar127("first_key",Pfirstkey);
+ Plastkey=xml->getpar127("last_key",Plastkey);
+ Pmiddlenote=xml->getpar127("middle_note",Pmiddlenote);
+
+ if (xml->enterbranch("OCTAVE")){
+ octavesize=xml->getpar127("octave_size",octavesize);
+ for (int i=0;i<octavesize;i++){
+ if (xml->enterbranch("DEGREE",i)==0) continue;
+ octave[i].x2=0;
+ octave[i].tuning=xml->getparreal("cents",octave[i].tuning);
+ octave[i].x1=xml->getpar127("numerator",octave[i].x1);
+ octave[i].x2=xml->getpar127("denominator",octave[i].x2);
+
+ if (octave[i].x2!=0) octave[i].type=2;
+ else octave[i].type=1;
+
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("KEYBOARD_MAPPING")){
+ Pmapsize=xml->getpar127("map_size",Pmapsize);
+ Pmappingenabled=xml->getpar127("mapping_enabled",Pmappingenabled);
+ for (int i=0;i<Pmapsize;i++){
+ if (xml->enterbranch("KEYMAP",i)==0) continue;
+ Pmapping[i]=xml->getpar127("degree",Pmapping[i]);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+};
+
+
+int Microtonal::saveXML(char *filename){
+ XMLwrapper *xml=new XMLwrapper();
+
+ xml->beginbranch("MICROTONAL");
+ add2XML(xml);
+ xml->endbranch();
+
+ int result=xml->saveXMLfile(filename);
+ delete (xml);
+ return(result);
+};
+
+int Microtonal::loadXML(char *filename){
+ XMLwrapper *xml=new XMLwrapper();
+ if (xml->loadXMLfile(filename)<0) {
+ delete(xml);
+ return(-1);
+ };
+
+ if (xml->enterbranch("MICROTONAL")==0) return(-10);
+ getfromXML(xml);
+ xml->exitbranch();
+
+ delete(xml);
+ return(0);
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.h
new file mode 100644
index 00000000..60ffc4cf
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Microtonal.h
@@ -0,0 +1,111 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Microtonal.h - Tuning settings and microtonal capabilities
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef MICROTONAL_H
+#define MICROTONAL_H
+
+#include "../globals.h"
+#include "XMLwrapper.h"
+
+#define MAX_OCTAVE_SIZE 128
+#define MICROTONAL_MAX_NAME_LEN 120
+
+#include <stdio.h>
+
+class Microtonal{
+ public:
+ Microtonal();
+ ~Microtonal();
+ void defaults();
+ REALTYPE getnotefreq(int note,int keyshift);
+
+
+ //Parameters
+ //if the keys are inversed (the pitch is lower to keys from the right direction)
+ unsigned char Pinvertupdown;
+
+ //the central key of the inversion
+ unsigned char Pinvertupdowncenter;
+
+ //0 for 12 key temperate scale, 1 for microtonal
+ unsigned char Penabled;
+
+ //the note of "A" key
+ unsigned char PAnote;
+
+ //the frequency of the "A" note
+ REALTYPE PAfreq;
+
+ //if the scale is "tuned" to a note, you can tune to other note
+ unsigned char Pscaleshift;
+
+ //first and last key (to retune)
+ unsigned char Pfirstkey;
+ unsigned char Plastkey;
+
+ //The middle note where scale degree 0 is mapped to
+ unsigned char Pmiddlenote;
+
+ //Map size
+ unsigned char Pmapsize;
+
+ //Mapping ON/OFF
+ unsigned char Pmappingenabled;
+ //Mapping (keys)
+ short int Pmapping[128];
+
+ unsigned char Pglobalfinedetune;
+
+ // Functions
+ unsigned char getoctavesize();
+ void tuningtoline(int n,char *line,int maxn);
+ int loadscl(const char *filename);//load the tunnings from a .scl file
+ int loadkbm(const char *filename);//load the mapping from .kbm file
+ int texttotunings(const char *text);
+ void texttomapping(const char *text);
+ unsigned char *Pname;
+ unsigned char *Pcomment;
+
+ void add2XML(XMLwrapper *xml);
+ void getfromXML(XMLwrapper *xml);
+ int saveXML(char *filename);
+ int loadXML(char *filename);
+
+ private:
+ int linetotunings(unsigned int nline,const char *line);
+ int loadline(FILE *file,char *line);//loads a line from the text file, while ignoring the lines beggining with "!"
+ unsigned char octavesize;
+ struct {
+ unsigned char type;//1 for cents or 2 for division
+
+ // the real tuning (eg. +1.05946 for one halftone)
+ // or 2.0 for one octave
+ REALTYPE tuning;
+
+ //the real tunning is x1/x2
+ unsigned int x1,x2;
+
+ } octave[MAX_OCTAVE_SIZE],tmpoctave[MAX_OCTAVE_SIZE];
+
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.C
new file mode 100644
index 00000000..ceeeb7b6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.C
@@ -0,0 +1,881 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Part.C - Part implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Master.h"
+#include "Part.h"
+#include "Microtonal.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+Part::Part(Microtonal *microtonal_,FFTwrapper *fft_, Master* master_){
+ microtonal=microtonal_;
+ fft=fft_;
+ master=master_;
+ partoutl=new REALTYPE [SOUND_BUFFER_SIZE];
+ partoutr=new REALTYPE [SOUND_BUFFER_SIZE];
+ tmpoutl=new REALTYPE [SOUND_BUFFER_SIZE];
+ tmpoutr=new REALTYPE [SOUND_BUFFER_SIZE];
+
+ for (int n=0;n<NUM_KIT_ITEMS;n++){
+ kit[n].Pname=new unsigned char [PART_MAX_NAME_LEN];
+ kit[n].adpars=NULL;kit[n].subpars=NULL;kit[n].padpars=NULL;
+ };
+
+ kit[0].adpars=new ADnoteParameters(fft);
+ kit[0].subpars=new SUBnoteParameters();
+ kit[0].padpars=new PADnoteParameters(fft,master);
+// ADPartParameters=kit[0].adpars;
+// SUBPartParameters=kit[0].subpars;
+
+ //Part's Insertion Effects init
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++)
+ partefx[nefx]=new EffectMgr(1,master);
+
+ for (int n=0;n<NUM_PART_EFX+1;n++) {
+ partfxinputl[n]=new REALTYPE [SOUND_BUFFER_SIZE];
+ partfxinputr[n]=new REALTYPE [SOUND_BUFFER_SIZE];
+ Pefxbypass[n]=false;
+ };
+
+ killallnotes=0;
+ oldfreq=-1.0;
+
+ int i,j;
+ for (i=0;i<POLIPHONY;i++){
+ partnote[i].status=KEY_OFF;
+ partnote[i].note=-1;
+ partnote[i].itemsplaying=0;
+ for (j=0;j<NUM_KIT_ITEMS;j++){
+ partnote[i].kititem[j].adnote=NULL;
+ partnote[i].kititem[j].subnote=NULL;
+ partnote[i].kititem[j].padnote=NULL;
+ };
+ partnote[i].time=0;
+ };
+ cleanup();
+
+ Pname=new unsigned char [PART_MAX_NAME_LEN];
+
+ oldvolumel=oldvolumer=0.5;
+ lastnote=-1;
+
+
+ defaults();
+};
+
+void Part::defaults(){
+ Penabled=0;
+ Pminkey=0;
+ Pmaxkey=127;
+ Pnoteon=1;
+ Ppolymode=1;
+ setPvolume(96);
+ Pkeyshift=64;
+ Prcvchn=0;
+ setPpanning(64);
+ Pvelsns=64;
+ Pveloffs=64;
+ Pkeylimit=15;
+ defaultsinstrument();
+ ctl.defaults();
+};
+
+void Part::defaultsinstrument(){
+ ZERO(Pname,PART_MAX_NAME_LEN);
+
+ info.Ptype=0;
+ ZERO(info.Pauthor,MAX_INFO_TEXT_SIZE+1);
+ ZERO(info.Pcomments,MAX_INFO_TEXT_SIZE+1);
+
+ Pkitmode=0;
+ Pdrummode=0;
+
+ for (int n=0;n<NUM_KIT_ITEMS;n++){
+ kit[n].Penabled=0;kit[n].Pmuted=0;
+ kit[n].Pminkey=0;kit[n].Pmaxkey=127;
+ kit[n].Padenabled=0;kit[n].Psubenabled=0;kit[n].Ppadenabled=0;
+ ZERO(kit[n].Pname,PART_MAX_NAME_LEN);
+ kit[n].Psendtoparteffect=0;
+ if (n!=0) setkititemstatus(n,0);
+ };
+ kit[0].Penabled=1;
+ kit[0].Padenabled=1;
+ kit[0].adpars->defaults();
+ kit[0].subpars->defaults();
+ kit[0].padpars->defaults();
+
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++) {
+ partefx[nefx]->defaults();
+ Pefxroute[nefx]=0;//route to next effect
+ };
+
+};
+
+
+
+/*
+ * Cleanup the part
+ */
+void Part::cleanup(){
+ for (int k=0;k<POLIPHONY;k++) KillNotePos(k);
+
+ memcpy(partoutl, denormalkillbuf, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memcpy(partoutr, denormalkillbuf, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpoutl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpoutr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+
+ ctl.resetall();
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++) partefx[nefx]->cleanup();
+ for (int n=0;n<NUM_PART_EFX+1;n++) {
+ memcpy(partfxinputl[n], denormalkillbuf, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memcpy(partfxinputr[n], denormalkillbuf, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ };
+};
+
+Part::~Part(){
+ cleanup();
+ for (int n=0;n<NUM_KIT_ITEMS;n++){
+ if (kit[n].adpars!=NULL) delete (kit[n].adpars);
+ if (kit[n].subpars!=NULL) delete (kit[n].subpars);
+ if (kit[n].padpars!=NULL) delete (kit[n].padpars);
+ kit[n].adpars=NULL;kit[n].subpars=NULL;kit[n].padpars=NULL;
+ delete(kit[n].Pname);
+ };
+
+ delete (Pname);
+ delete (partoutl);
+ delete (partoutr);
+ delete (tmpoutl);
+ delete (tmpoutr);
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++)
+ delete (partefx[nefx]);
+ for (int n=0;n<NUM_PART_EFX+1;n++) {
+ delete (partfxinputl[n]);
+ delete (partfxinputr[n]);
+ };
+};
+
+/*
+ * Note On Messages
+ */
+void Part::NoteOn(unsigned char note,unsigned char velocity,int masterkeyshift){
+ int i,pos;
+
+ lastnote=note;
+ if ((note<Pminkey)||(note>Pmaxkey)) return;
+
+ pos=-1;
+ for (i=0;i<POLIPHONY;i++){
+ if (partnote[i].status==KEY_OFF){
+ pos=i;
+ break;
+ };
+ };
+
+ if (Ppolymode==0){//if the mode is 'mono' turn off all other notes
+ for (i=0;i<POLIPHONY;i++)
+ if (partnote[i].status==KEY_PLAYING) NoteOff(partnote[i].note);
+ RelaseSustainedKeys();
+ };
+
+ if (pos==-1){
+ //test
+ fprintf(stderr,"%s","NOTES TOO MANY (> POLIPHONY) - (Part.C::NoteOn(..))\n");
+ } else {
+ if (Pnoteon!=0){
+ //start the note
+ partnote[pos].status=KEY_PLAYING;
+ partnote[pos].note=note;
+
+ //this computes the velocity sensing of the part
+ REALTYPE vel=VelF(velocity/127.0,Pvelsns);
+
+ //compute the velocity offset
+ vel+=(Pveloffs-64.0)/64.0;
+ if (vel<0.0) vel=0.0; else if (vel>1.0) vel=1.0;
+
+ //compute the keyshift
+ int partkeyshift=(int)Pkeyshift-64;
+ int keyshift=masterkeyshift+partkeyshift;
+
+ //initialise note frequency
+ REALTYPE notebasefreq;
+ if (Pdrummode==0){
+ notebasefreq=microtonal->getnotefreq(note,keyshift);
+ if (notebasefreq<0.0) return;//the key is no mapped
+ } else {
+ notebasefreq=440.0*pow(2.0,(note-69.0)/12.0);
+ };
+
+ //Portamento
+ if (oldfreq<1.0) oldfreq=notebasefreq;//this is only the first note is played
+
+ int portamento=ctl.initportamento(oldfreq,notebasefreq);
+
+ if (portamento!=0) ctl.portamento.noteusing=pos;
+ oldfreq=notebasefreq;
+
+ partnote[pos].itemsplaying=0;
+ if (Pkitmode==0){//init the notes for the "normal mode"
+ partnote[pos].kititem[0].sendtoparteffect=0;
+ if (kit[0].Padenabled!=0) partnote[pos].kititem[0].adnote=new ADnote(kit[0].adpars,&ctl,notebasefreq,vel,portamento,note);
+ if (kit[0].Psubenabled!=0) partnote[pos].kititem[0].subnote=new SUBnote(kit[0].subpars,&ctl,notebasefreq,vel,portamento,note);
+ if (kit[0].Ppadenabled!=0) partnote[pos].kititem[0].padnote=new PADnote(kit[0].padpars,&ctl,notebasefreq,vel,portamento,note);
+ if ((kit[0].Padenabled!=0)||(kit[0].Psubenabled!=0)||(kit[0].Ppadenabled!=0)) partnote[pos].itemsplaying++;
+
+ } else {//init the notes for the "kit mode"
+ for (int item=0;item<NUM_KIT_ITEMS;item++){
+ if (kit[item].Pmuted!=0) continue;
+ if ((note<kit[item].Pminkey)||(note>kit[item].Pmaxkey)) continue;
+
+ int ci=partnote[pos].itemsplaying;//ci=current item
+
+ partnote[pos].kititem[ci].sendtoparteffect=( kit[item].Psendtoparteffect<NUM_PART_EFX ?
+ kit[item].Psendtoparteffect: NUM_PART_EFX);//if this parameter is 127 for "unprocessed"
+
+ if ((kit[item].adpars!=NULL)&&(kit[item].Padenabled)!=0)
+ partnote[pos].kititem[ci].adnote=new ADnote(kit[item].adpars,&ctl,notebasefreq,vel,portamento,note);
+
+ if ((kit[item].subpars!=NULL)&&(kit[item].Psubenabled)!=0)
+ partnote[pos].kititem[ci].subnote=new SUBnote(kit[item].subpars,&ctl,notebasefreq,vel,portamento,note);
+
+ if ((kit[item].padpars!=NULL)&&(kit[item].Ppadenabled)!=0)
+ partnote[pos].kititem[ci].padnote=new PADnote(kit[item].padpars,&ctl,notebasefreq,vel,portamento,note);
+
+ if ((kit[item].adpars!=NULL)|| (kit[item].subpars!=NULL)) {
+ partnote[pos].itemsplaying++;
+ if ( ((kit[item].Padenabled!=0)||(kit[item].Psubenabled!=0)||(kit[item].Ppadenabled!=0))
+ && (Pkitmode==2) ) break;
+ };
+ };
+ };
+ };
+ };
+
+ //this only relase the keys if there is maximum number of keys allowed
+ setkeylimit(Pkeylimit);
+};
+
+/*
+ * Note Off Messages
+ */
+void Part::NoteOff(unsigned char note){//relase the key
+ int i;
+ for (i=POLIPHONY-1;i>=0;i--){ //first note in, is first out if there are same note multiple times
+ if ((partnote[i].status==KEY_PLAYING)&&(partnote[i].note==note)) {
+ if (ctl.sustain.sustain==0){ //the sustain pedal is not pushed
+ RelaseNotePos(i);
+ break;
+ } else {//the sustain pedal is pushed
+ partnote[i].status=KEY_RELASED_AND_SUSTAINED;
+ };
+ };
+ };
+};
+
+/*
+ * Controllers
+ */
+void Part::SetController(unsigned int type,int par){
+ switch (type){
+ case C_pitchwheel:ctl.setpitchwheel(par);
+ break;
+ case C_expression:ctl.setexpression(par);
+ setPvolume(Pvolume);//update the volume
+ break;
+ case C_portamento:ctl.setportamento(par);
+ break;
+ case C_panning:ctl.setpanning(par);
+ setPpanning(Ppanning);//update the panning
+ break;
+ case C_filtercutoff:ctl.setfiltercutoff(par);
+ break;
+ case C_filterq:ctl.setfilterq(par);
+ break;
+ case C_bandwidth:ctl.setbandwidth(par);
+ break;
+ case C_modwheel:ctl.setmodwheel(par);
+ break;
+ case C_fmamp:ctl.setfmamp(par);
+ break;
+ case C_volume:ctl.setvolume(par);
+ if (ctl.volume.receive!=0) volume=ctl.volume.volume;
+ else setPvolume(Pvolume);
+ break;
+ case C_sustain:ctl.setsustain(par);
+ if (ctl.sustain.sustain==0) RelaseSustainedKeys();
+ break;
+ case C_allsoundsoff:AllNotesOff();//Panic
+ break;
+ case C_resetallcontrollers:
+ ctl.resetall();
+ RelaseSustainedKeys();
+ if (ctl.volume.receive!=0) volume=ctl.volume.volume;
+ else setPvolume(Pvolume);
+ setPvolume(Pvolume);//update the volume
+ setPpanning(Ppanning);//update the panning
+
+ for (int item=0;item<NUM_KIT_ITEMS;item++){
+ if (kit[item].adpars==NULL) continue;
+ kit[item].adpars->GlobalPar.Reson->
+ sendcontroller(C_resonance_center,1.0);
+
+ kit[item].adpars->GlobalPar.Reson->
+ sendcontroller(C_resonance_bandwidth,1.0);
+ };
+ //more update to add here if I add controllers
+ break;
+ case C_allnotesoff:RelaseAllKeys();
+ break;
+ case C_resonance_center:
+ ctl.setresonancecenter(par);
+ for (int item=0;item<NUM_KIT_ITEMS;item++){
+ if (kit[item].adpars==NULL) continue;
+ kit[item].adpars->GlobalPar.Reson->
+ sendcontroller(C_resonance_center,ctl.resonancecenter.relcenter);
+ };
+ break;
+ case C_resonance_bandwidth:
+ ctl.setresonancebw(par);
+ kit[0].adpars->GlobalPar.Reson->
+ sendcontroller(C_resonance_bandwidth,ctl.resonancebandwidth.relbw);
+ break;
+ };
+};
+/*
+ * Relase the sustained keys
+ */
+
+void Part::RelaseSustainedKeys(){
+ for (int i=0;i<POLIPHONY;i++)
+ if (partnote[i].status==KEY_RELASED_AND_SUSTAINED) RelaseNotePos(i);
+};
+
+/*
+ * Relase all keys
+ */
+
+void Part::RelaseAllKeys(){
+ for (int i=0;i<POLIPHONY;i++){
+ if ((partnote[i].status!=KEY_RELASED)&&
+ (partnote[i].status!=KEY_OFF)) //thanks to Frank Neumann
+ RelaseNotePos(i);
+ };
+};
+
+/*
+ * Release note at position
+ */
+void Part::RelaseNotePos(int pos){
+
+ for (int j=0;j<NUM_KIT_ITEMS;j++){
+
+ if (partnote[pos].kititem[j].adnote!=NULL)
+ if (partnote[pos].kititem[j].adnote)
+ partnote[pos].kititem[j].adnote->relasekey();
+
+ if (partnote[pos].kititem[j].subnote!=NULL)
+ if (partnote[pos].kititem[j].subnote!=NULL)
+ partnote[pos].kititem[j].subnote->relasekey();
+
+ if (partnote[pos].kititem[j].padnote!=NULL)
+ if (partnote[pos].kititem[j].padnote)
+ partnote[pos].kititem[j].padnote->relasekey();
+ };
+ partnote[pos].status=KEY_RELASED;
+};
+
+
+/*
+ * Kill note at position
+ */
+void Part::KillNotePos(int pos){
+ partnote[pos].status=KEY_OFF;
+ partnote[pos].note=-1;
+ partnote[pos].time=0;
+ partnote[pos].itemsplaying=0;
+
+ for (int j=0;j<NUM_KIT_ITEMS;j++){
+ if (partnote[pos].kititem[j].adnote!=NULL) {
+ delete(partnote[pos].kititem[j].adnote);
+ partnote[pos].kititem[j].adnote=NULL;
+ };
+ if (partnote[pos].kititem[j].subnote!=NULL) {
+ delete(partnote[pos].kititem[j].subnote);
+ partnote[pos].kititem[j].subnote=NULL;
+ };
+ if (partnote[pos].kititem[j].padnote!=NULL) {
+ delete(partnote[pos].kititem[j].padnote);
+ partnote[pos].kititem[j].padnote=NULL;
+ };
+ };
+ if (pos==ctl.portamento.noteusing) {
+ ctl.portamento.noteusing=-1;
+ ctl.portamento.used=0;
+ };
+};
+
+
+/*
+ * Set Part's key limit
+ */
+void Part::setkeylimit(unsigned char Pkeylimit){
+ this->Pkeylimit=Pkeylimit;
+ int keylimit=Pkeylimit;
+ if (keylimit==0) keylimit=POLIPHONY-5;
+
+ //release old keys if the number of notes>keylimit
+ if (Ppolymode!=0){
+ int notecount=0;
+ for (int i=0;i<POLIPHONY;i++){
+ if ((partnote[i].status==KEY_PLAYING)||(partnote[i].status==KEY_RELASED_AND_SUSTAINED))
+ notecount++;
+ };
+ int oldestnotepos=-1,maxtime=0;
+ if (notecount>keylimit){//find out the oldest note
+ for (int i=0;i<POLIPHONY;i++){
+ if ( ((partnote[i].status==KEY_PLAYING)||(partnote[i].status==KEY_RELASED_AND_SUSTAINED))
+ && (partnote[i].time>maxtime)){
+ maxtime=partnote[i].time;
+ oldestnotepos=i;
+ };
+ };
+ };
+ if (oldestnotepos!=-1) RelaseNotePos(oldestnotepos);
+ };
+};
+
+
+/*
+ * Prepare all notes to be turned off
+ */
+void Part::AllNotesOff(){
+ killallnotes=1;
+};
+
+
+/*
+ * Compute Part samples and store them in the partoutl[] and partoutr[]
+ */
+void Part::ComputePartSmps(){
+ int i, k;
+ int noteplay;//0 if there is nothing activated
+ for (int nefx=0;nefx<NUM_PART_EFX+1;nefx++){
+ memset(partfxinputl[nefx], 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(partfxinputr[nefx], 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ };
+
+ for (k=0;k<POLIPHONY;k++){
+ if (partnote[k].status==KEY_OFF) continue;
+ noteplay=0;
+ partnote[k].time++;
+ //get the sampledata of the note and kill it if it's finished
+
+ for (int item=0;item<partnote[k].itemsplaying;item++){
+
+ int sendcurrenttofx=partnote[k].kititem[item].sendtoparteffect;
+
+ ADnote *adnote=partnote[k].kititem[item].adnote;
+ SUBnote *subnote=partnote[k].kititem[item].subnote;
+ PADnote *padnote=partnote[k].kititem[item].padnote;
+ //get from the ADnote
+ if (adnote!=NULL) {
+ noteplay++;
+ if (adnote->ready!=0) adnote->noteout(&tmpoutl[0],&tmpoutr[0]);
+ else {
+ memset(tmpoutl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpoutr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ }
+ if (adnote->finished()!=0){
+ delete (adnote);
+ partnote[k].kititem[item].adnote=NULL;
+ };
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){//add the ADnote to part(mix)
+ partfxinputl[sendcurrenttofx][i]+=tmpoutl[i];
+ partfxinputr[sendcurrenttofx][i]+=tmpoutr[i];
+ };
+ };
+ //get from the SUBnote
+ if (subnote!=NULL) {
+ noteplay++;
+ if (subnote->ready!=0) subnote->noteout(&tmpoutl[0],&tmpoutr[0]);
+ else {
+ memset(tmpoutl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpoutr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ }
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){//add the SUBnote to part(mix)
+ partfxinputl[sendcurrenttofx][i]+=tmpoutl[i];
+ partfxinputr[sendcurrenttofx][i]+=tmpoutr[i];
+ };
+ if (subnote->finished()!=0){
+ delete (subnote);
+ partnote[k].kititem[item].subnote=NULL;
+ };
+ };
+ //get from the PADnote
+ if (padnote!=NULL) {
+ noteplay++;
+ if (padnote->ready!=0) padnote->noteout(&tmpoutl[0],&tmpoutr[0]);
+ else {
+ memset(tmpoutl, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ memset(tmpoutr, 0, sizeof(REALTYPE) * SOUND_BUFFER_SIZE);
+ }
+ if (padnote->finished()!=0){
+ delete (padnote);
+ partnote[k].kititem[item].padnote=NULL;
+ };
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){//add the PADnote to part(mix)
+ partfxinputl[sendcurrenttofx][i]+=tmpoutl[i];
+ partfxinputr[sendcurrenttofx][i]+=tmpoutr[i];
+ };
+ };
+
+ };
+ //Kill note if there is no synth on that note
+ if (noteplay==0) KillNotePos(k);
+ };
+
+
+ //Apply part's effects and mix them
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++) {
+ if (!Pefxbypass[nefx]) {
+ partefx[nefx]->out(partfxinputl[nefx],partfxinputr[nefx]);
+ if (Pefxroute[nefx]==2){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ partfxinputl[nefx+1][i]+=partefx[nefx]->efxoutl[i];
+ partfxinputr[nefx+1][i]+=partefx[nefx]->efxoutr[i];
+ };
+ };
+ };
+ int routeto=((Pefxroute[nefx]==0) ? nefx+1 : NUM_PART_EFX);
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ partfxinputl[routeto][i]+=partfxinputl[nefx][i];
+ partfxinputr[routeto][i]+=partfxinputr[nefx][i];
+ };
+
+ };
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ partoutl[i]=partfxinputl[NUM_PART_EFX][i];
+ partoutr[i]=partfxinputr[NUM_PART_EFX][i];
+ };
+
+ //Kill All Notes if killallnotes!=0
+ if (killallnotes!=0) {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ REALTYPE tmp=(SOUND_BUFFER_SIZE-i)/(REALTYPE) SOUND_BUFFER_SIZE;
+ partoutl[i]*=tmp;
+ partoutr[i]*=tmp;
+ tmpoutl[i]=0.0;
+ tmpoutr[i]=0.0;
+ };
+ for (int k=0;k<POLIPHONY;k++) KillNotePos(k);
+ killallnotes=0;
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++) {
+ partefx[nefx]->cleanup();
+ };
+ };
+ ctl.updateportamento();
+};
+
+/*
+ * Parameter control
+ */
+void Part::setPvolume(char Pvolume_){
+ Pvolume=Pvolume_;
+ volume=dB2rap((Pvolume-96.0)/96.0*40.0)*ctl.expression.relvolume;
+};
+
+void Part::setPpanning(char Ppanning_){
+ Ppanning=Ppanning_;
+ panning=Ppanning/127.0+ctl.panning.pan;
+ if (panning<0.0) panning=0.0;else if (panning>1.0) panning=1.0;
+
+};
+
+/*
+ * Enable or disable a kit item
+ */
+void Part::setkititemstatus(int kititem,int Penabled_){
+ if ((kititem==0)&&(kititem>=NUM_KIT_ITEMS)) return;//nonexistent kit item and the first kit item is always enabled
+ kit[kititem].Penabled=Penabled_;
+
+ bool resetallnotes=false;
+ if (Penabled_==0){
+ if (kit[kititem].adpars!=NULL) delete (kit[kititem].adpars);
+ if (kit[kititem].subpars!=NULL) delete (kit[kititem].subpars);
+ if (kit[kititem].padpars!=NULL) {
+ delete (kit[kititem].padpars);
+ resetallnotes=true;
+ };
+ kit[kititem].adpars=NULL;kit[kititem].subpars=NULL;kit[kititem].padpars=NULL;
+ kit[kititem].Pname[0]='\0';
+ } else {
+ if (kit[kititem].adpars==NULL) kit[kititem].adpars=new ADnoteParameters(fft);
+ if (kit[kititem].subpars==NULL) kit[kititem].subpars=new SUBnoteParameters();
+ if (kit[kititem].padpars==NULL) kit[kititem].padpars=new PADnoteParameters(fft,master);
+ };
+
+ if (resetallnotes) for (int k=0;k<POLIPHONY;k++) KillNotePos(k);
+};
+
+
+
+void Part::add2XMLinstrument(XMLwrapper *xml){
+ xml->beginbranch("INFO");
+ xml->addparstr("name",(char *)Pname);
+ xml->addparstr("author",(char *)info.Pauthor);
+ xml->addparstr("comments",(char *)info.Pcomments);
+ xml->addpar("type",info.Ptype);
+ xml->endbranch();
+
+
+ xml->beginbranch("INSTRUMENT_KIT");
+ xml->addpar("kit_mode",Pkitmode);
+ xml->addparbool("drum_mode",Pdrummode);
+
+ for (int i=0;i<NUM_KIT_ITEMS;i++){
+ xml->beginbranch("INSTRUMENT_KIT_ITEM",i);
+ xml->addparbool("enabled",kit[i].Penabled);
+ if (kit[i].Penabled!=0) {
+ xml->addparstr("name",(char *)kit[i].Pname);
+
+ xml->addparbool("muted",kit[i].Pmuted);
+ xml->addpar("min_key",kit[i].Pminkey);
+ xml->addpar("max_key",kit[i].Pmaxkey);
+
+ xml->addpar("send_to_instrument_effect",kit[i].Psendtoparteffect);
+
+ xml->addparbool("add_enabled",kit[i].Padenabled);
+ if ((kit[i].Padenabled!=0)&&(kit[i].adpars!=NULL)){
+ xml->beginbranch("ADD_SYNTH_PARAMETERS");
+ kit[i].adpars->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->addparbool("sub_enabled",kit[i].Psubenabled);
+ if ((kit[i].Psubenabled!=0)&&(kit[i].subpars!=NULL)){
+ xml->beginbranch("SUB_SYNTH_PARAMETERS");
+ kit[i].subpars->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->addparbool("pad_enabled",kit[i].Ppadenabled);
+ if ((kit[i].Ppadenabled!=0)&&(kit[i].padpars!=NULL)){
+ xml->beginbranch("PAD_SYNTH_PARAMETERS");
+ kit[i].padpars->add2XML(xml);
+ xml->endbranch();
+ };
+
+ };
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("INSTRUMENT_EFFECTS");
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++){
+ xml->beginbranch("INSTRUMENT_EFFECT",nefx);
+ xml->beginbranch("EFFECT");
+ partefx[nefx]->add2XML(xml);
+ xml->endbranch();
+
+ xml->addpar("route",Pefxroute[nefx]);
+ partefx[nefx]->setdryonly(Pefxroute[nefx]==2);
+ xml->addparbool("bypass",Pefxbypass[nefx]);
+ xml->endbranch();
+ };
+ xml->endbranch();
+};
+
+
+void Part::add2XML(XMLwrapper *xml){
+ //parameters
+ xml->addparbool("enabled",Penabled);
+ if ((Penabled==0)&&(xml->minimal)) return;
+
+ xml->addpar("volume",Pvolume);
+ xml->addpar("panning",Ppanning);
+
+ xml->addpar("min_key",Pminkey);
+ xml->addpar("max_key",Pmaxkey);
+ xml->addpar("key_shift",Pkeyshift);
+ xml->addpar("rcv_chn",Prcvchn);
+
+ xml->addpar("velocity_sensing",Pvelsns);
+ xml->addpar("velocity_offset",Pveloffs);
+
+ xml->addparbool("note_on",Pnoteon);
+ xml->addparbool("poly_mode",Ppolymode);
+ xml->addpar("key_limit",Pkeylimit);
+
+ xml->beginbranch("INSTRUMENT");
+ add2XMLinstrument(xml);
+ xml->endbranch();
+
+ xml->beginbranch("CONTROLLER");
+ ctl.add2XML(xml);
+ xml->endbranch();
+};
+
+int Part::saveXML(char *filename){
+ XMLwrapper *xml;
+ xml=new XMLwrapper();
+
+ xml->beginbranch("INSTRUMENT");
+ add2XMLinstrument(xml);
+ xml->endbranch();
+
+ int result=xml->saveXMLfile(filename);
+ delete (xml);
+ return(result);
+};
+
+int Part::loadXMLinstrument(const char *filename){
+ XMLwrapper *xml=new XMLwrapper();
+ if (xml->loadXMLfile(filename)<0) {
+ delete(xml);
+ return(-1);
+ };
+
+ if (xml->enterbranch("INSTRUMENT")==0) return(-10);
+ getfromXMLinstrument(xml);
+ xml->exitbranch();
+
+ delete(xml);
+ return(0);
+};
+
+
+void Part::applyparameters(){
+ for (int n=0;n<NUM_KIT_ITEMS;n++){
+ if ((kit[n].padpars!=NULL)&&(kit[n].Ppadenabled!=0)) kit[n].padpars->applyparameters(true);
+ };
+};
+
+void Part::getfromXMLinstrument(XMLwrapper *xml){
+ if (xml->enterbranch("INFO")){
+ xml->getparstr("name",(char *)Pname,PART_MAX_NAME_LEN);
+ xml->getparstr("author",(char *)info.Pauthor,MAX_INFO_TEXT_SIZE);
+ xml->getparstr("comments",(char *)info.Pcomments,MAX_INFO_TEXT_SIZE);
+ info.Ptype=xml->getpar("type",info.Ptype,0,16);
+
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("INSTRUMENT_KIT")){
+ Pkitmode=xml->getpar127("kit_mode",Pkitmode);
+ Pdrummode=xml->getparbool("drum_mode",Pdrummode);
+
+ setkititemstatus(0,0);
+ for (int i=0;i<NUM_KIT_ITEMS;i++){
+ if (xml->enterbranch("INSTRUMENT_KIT_ITEM",i)==0) continue;
+ setkititemstatus(i,xml->getparbool("enabled",kit[i].Penabled));
+ if (kit[i].Penabled==0) {
+ xml->exitbranch();
+ continue;
+ };
+
+ xml->getparstr("name",(char *)kit[i].Pname,PART_MAX_NAME_LEN);
+
+ kit[i].Pmuted=xml->getparbool("muted",kit[i].Pmuted);
+ kit[i].Pminkey=xml->getpar127("min_key",kit[i].Pminkey);
+ kit[i].Pmaxkey=xml->getpar127("max_key",kit[i].Pmaxkey);
+
+ kit[i].Psendtoparteffect=xml->getpar127("send_to_instrument_effect",kit[i].Psendtoparteffect);
+
+ kit[i].Padenabled=xml->getparbool("add_enabled",kit[i].Padenabled);
+ if (xml->enterbranch("ADD_SYNTH_PARAMETERS")){
+ kit[i].adpars->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ kit[i].Psubenabled=xml->getparbool("sub_enabled",kit[i].Psubenabled);
+ if (xml->enterbranch("SUB_SYNTH_PARAMETERS")){
+ kit[i].subpars->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ kit[i].Ppadenabled=xml->getparbool("pad_enabled",kit[i].Ppadenabled);
+ if (xml->enterbranch("PAD_SYNTH_PARAMETERS")){
+ kit[i].padpars->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+
+
+ if (xml->enterbranch("INSTRUMENT_EFFECTS")){
+ for (int nefx=0;nefx<NUM_PART_EFX;nefx++){
+ if (xml->enterbranch("INSTRUMENT_EFFECT",nefx)==0) continue;
+ if (xml->enterbranch("EFFECT")){
+ partefx[nefx]->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ Pefxroute[nefx]=xml->getpar("route",Pefxroute[nefx],0,NUM_PART_EFX);
+ partefx[nefx]->setdryonly(Pefxroute[nefx]==2);
+ Pefxbypass[nefx]=xml->getparbool("bypass",Pefxbypass[nefx]);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+};
+
+void Part::getfromXML(XMLwrapper *xml){
+ Penabled=xml->getparbool("enabled",Penabled);
+
+ setPvolume(xml->getpar127("volume",Pvolume));
+ setPpanning(xml->getpar127("panning",Ppanning));
+
+ Pminkey=xml->getpar127("min_key",Pminkey);
+ Pmaxkey=xml->getpar127("max_key",Pmaxkey);
+ Pkeyshift=xml->getpar127("key_shift",Pkeyshift);
+ Prcvchn=xml->getpar127("rcv_chn",Prcvchn);
+
+ Pvelsns=xml->getpar127("velocity_sensing",Pvelsns);
+ Pveloffs=xml->getpar127("velocity_offset",Pveloffs);
+
+ Pnoteon=xml->getparbool("note_on",Pnoteon);
+ Ppolymode=xml->getparbool("poly_mode",Ppolymode);
+ Pkeylimit=xml->getpar127("key_limit",Pkeylimit);
+
+
+ if (xml->enterbranch("INSTRUMENT")){
+ getfromXMLinstrument(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("CONTROLLER")){
+ ctl.getfromXML(xml);
+ xml->exitbranch();
+ };
+
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.h
new file mode 100644
index 00000000..28ea9816
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Part.h
@@ -0,0 +1,176 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Part.h - Part implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef PART_H
+#define PART_H
+
+#define MAX_INFO_TEXT_SIZE 1000
+
+#include "../globals.h"
+#include "../Params/ADnoteParameters.h"
+#include "../Params/SUBnoteParameters.h"
+#include "../Params/PADnoteParameters.h"
+#include "../Synth/ADnote.h"
+#include "../Synth/SUBnote.h"
+#include "../Synth/PADnote.h"
+#include "../Params/Controller.h"
+#include "../Misc/Microtonal.h"
+#include "../DSP/FFTwrapper.h"
+#include "../Effects/EffectMgr.h"
+#include "XMLwrapper.h"
+
+class Master;
+
+class Part{
+
+ public:
+ Part(Microtonal *microtonal_,FFTwrapper *fft_, Master* master);
+ ~Part();
+
+ /* Midi commands implemented */
+ void NoteOn(unsigned char note,unsigned char velocity,int masterkeyshift);
+ void NoteOff(unsigned char note);
+ void AllNotesOff();//panic
+ void SetController(unsigned int type,int par);
+ void RelaseSustainedKeys();//this is called when the sustain pedal is relased
+ void RelaseAllKeys();//this is called on AllNotesOff controller
+
+ /* The synthesizer part output */
+ void ComputePartSmps();//Part output
+
+ //instrumentonly: 0 - save all, 1 - save only instrumnet, 2 - save only instrument without the name(used in bank)
+
+
+ //saves the instrument settings to a XML file
+ //returns 0 for ok or <0 if there is an error
+ int saveXML(char *filename);
+ int loadXMLinstrument(const char *filename);
+
+ void add2XML(XMLwrapper *xml);
+ void add2XMLinstrument(XMLwrapper *xml);
+
+ void defaults();
+ void defaultsinstrument();
+
+ void applyparameters();
+
+ void getfromXML(XMLwrapper *xml);
+ void getfromXMLinstrument(XMLwrapper *xml);
+
+ void cleanup();
+
+// ADnoteParameters *ADPartParameters;
+// SUBnoteParameters *SUBPartParameters;
+
+ //the part's kit
+ struct {
+ unsigned char Penabled,Pmuted,Pminkey,Pmaxkey;
+ unsigned char *Pname;
+ unsigned char Padenabled,Psubenabled,Ppadenabled;
+ unsigned char Psendtoparteffect;
+ ADnoteParameters *adpars;
+ SUBnoteParameters *subpars;
+ PADnoteParameters *padpars;
+ } kit[NUM_KIT_ITEMS];
+
+
+ //Part parameters
+ void setkeylimit(unsigned char Pkeylimit);
+ void setkititemstatus(int kititem,int Penabled_);
+
+ unsigned char Penabled;//if the part is enabled
+ unsigned char Pvolume;//part volume
+ unsigned char Pminkey;//the minimum key that the part receives noteon messages
+ unsigned char Pmaxkey;//the maximum key that the part receives noteon messages
+ void setPvolume(char Pvolume);
+ unsigned char Pkeyshift;//Part keyshift
+ unsigned char Prcvchn;//from what midi channel it receive commnads
+ unsigned char Ppanning;//part panning
+ void setPpanning(char Ppanning);
+ unsigned char Pvelsns;//velocity sensing (amplitude velocity scale)
+ unsigned char Pveloffs;//velocity offset
+ unsigned char Pnoteon;//if the part receives NoteOn messages
+ unsigned char Pkitmode;//if the kitmode is enabled
+ unsigned char Pdrummode;//if all keys are mapped and the system is 12tET (used for drums)
+
+ unsigned char Ppolymode;//Part mode - 0=monophonic , 1=polyphonic
+ unsigned char Pkeylimit;//how many keys are alowed to be played same time (0=off), the older will be relased
+
+ unsigned char *Pname; //name of the instrument
+ struct{//instrument additional information
+ unsigned char Ptype;
+ unsigned char Pauthor[MAX_INFO_TEXT_SIZE+1];
+ unsigned char Pcomments[MAX_INFO_TEXT_SIZE+1];
+ } info;
+
+
+ REALTYPE *partoutl;//Left channel output of the part
+ REALTYPE *partoutr;//Right channel output of the part
+
+ REALTYPE *partfxinputl[NUM_PART_EFX+1],*partfxinputr[NUM_PART_EFX+1];//Left and right signal that pass thru part effects; partfxinput l/r [NUM_PART_EFX] is for "no effect" buffer
+
+ enum NoteStatus{KEY_OFF,KEY_PLAYING,KEY_RELASED_AND_SUSTAINED,KEY_RELASED};
+
+ REALTYPE volume,oldvolumel,oldvolumer;//this is applied by Master
+ REALTYPE panning;//this is applied by Master, too
+
+ Controller ctl;//Part controllers
+
+ EffectMgr *partefx[NUM_PART_EFX];//insertion part effects (they are part of the instrument)
+ unsigned char Pefxroute[NUM_PART_EFX];//how the effect's output is routed(to next effect/to out)
+ bool Pefxbypass[NUM_PART_EFX];//if the effects are bypassed
+
+
+ Master* master;
+
+ int lastnote;
+
+ private:
+ void KillNotePos(int pos);
+ void RelaseNotePos(int pos);
+ int killallnotes;//is set to 1 if I want to kill all notes
+
+ struct PartNotes{
+ NoteStatus status;
+ int note;//if there is no note playing, the "note"=-1
+ int itemsplaying;
+ struct {
+ ADnote *adnote;
+ SUBnote *subnote;
+ PADnote *padnote;
+ int sendtoparteffect;
+ } kititem[NUM_KIT_ITEMS];
+ int time;
+ };
+
+ PartNotes partnote[POLIPHONY];
+
+ REALTYPE *tmpoutl;//used to get the note
+ REALTYPE *tmpoutr;
+
+ REALTYPE oldfreq;//this is used for portamento
+ Microtonal *microtonal;
+ FFTwrapper *fft;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.C
new file mode 100644
index 00000000..74619731
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.C
@@ -0,0 +1,112 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Util.C - Miscellaneous functions
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Util.h"
+#include <math.h>
+#include <stdio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+
+int SAMPLE_RATE=44100;
+int SOUND_BUFFER_SIZE=256;
+int OSCIL_SIZE=512;
+
+Config config;
+REALTYPE *denormalkillbuf;
+
+
+/*
+ * Transform the velocity according the scaling parameter (velocity sensing)
+ */
+REALTYPE VelF(REALTYPE velocity,unsigned char scaling){
+ REALTYPE x;
+ x=pow(VELOCITY_MAX_SCALE,(64.0-scaling)/64.0);
+ if ((scaling==127)||(velocity>0.99)) return(1.0);
+ else return(pow(velocity,x));
+};
+
+/*
+ * Get the detune in cents
+ */
+REALTYPE getdetune(unsigned char type,unsigned short int coarsedetune,unsigned short int finedetune){
+ REALTYPE det=0.0,octdet=0.0,cdet=0.0,findet=0.0;
+ //Get Octave
+ int octave=coarsedetune/1024;
+ if (octave>=8) octave-=16;
+ octdet=octave*1200.0;
+
+ //Coarse and fine detune
+ int cdetune=coarsedetune%1024;
+ if (cdetune>512) cdetune-=1024;
+
+ int fdetune=finedetune-8192;
+
+ switch (type){
+// case 1: is used for the default (see below)
+ case 2: cdet=fabs(cdetune*10.0);
+ findet=fabs(fdetune/8192.0)*10.0;
+ break;
+ case 3: cdet=fabs(cdetune*100);
+ findet=pow(10,fabs(fdetune/8192.0)*3.0)/10.0-0.1;
+ break;
+ case 4: cdet=fabs(cdetune*701.95500087);//perfect fifth
+ findet=(pow(2,fabs(fdetune/8192.0)*12.0)-1.0)/4095*1200;
+ break;
+ //case ...: need to update N_DETUNE_TYPES, if you'll add more
+ default:cdet=fabs(cdetune*50.0);
+ findet=fabs(fdetune/8192.0)*35.0;//almost like "Paul's Sound Designer 2"
+ break;
+ };
+ if (finedetune<8192) findet=-findet;
+ if (cdetune<0) cdet=-cdet;
+
+ det=octdet+cdet+findet;
+ return(det);
+};
+
+
+bool fileexists(char *filename){
+ struct stat tmp;
+ int result=stat(filename,&tmp);
+ if (result>=0) return(true);
+
+ return(false);
+};
+
+void newFFTFREQS(FFTFREQS *f,int size){
+ f->c=new REALTYPE[size];
+ f->s=new REALTYPE[size];
+ for (int i=0;i<size;i++){
+ f->c[i]=0.0;f->s[i]=0.0;
+ };
+};
+void deleteFFTFREQS(FFTFREQS *f){
+ delete[] f->c;
+ delete[] f->s;
+ f->c=f->s=NULL;
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.h
new file mode 100644
index 00000000..c5b39476
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/Util.h
@@ -0,0 +1,45 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Util.h - Miscellaneous functions
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef UTIL_H
+#define UTIL_H
+
+#include <pthread.h>
+#include "../globals.h"
+#include "Microtonal.h"
+#include "../DSP/FFTwrapper.h"
+#include "Config.h"
+
+//Velocity Sensing function
+extern REALTYPE VelF(REALTYPE velocity,unsigned char scaling);
+
+bool fileexists(char *filename);
+
+#define N_DETUNE_TYPES 4 //the number of detune types
+extern REALTYPE getdetune(unsigned char type,unsigned short int coarsedetune,unsigned short int finedetune);
+
+extern REALTYPE *denormalkillbuf;//the buffer to add noise in order to avoid denormalisation
+
+extern Config config;
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.C b/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.C
new file mode 100644
index 00000000..0f35faf2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.C
@@ -0,0 +1,533 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ XMLwrapper.C - XML wrapper
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "XMLwrapper.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <zlib.h>
+
+#include "../globals.h"
+#include "Util.h"
+
+int xml_k=0;
+char tabs[STACKSIZE+2];
+
+const char *XMLwrapper_whitespace_callback(mxml_node_t *node,int where){
+ const char *name=node->value.element.name;
+
+ if ((where==MXML_WS_BEFORE_OPEN)&&(!strcmp(name,"?xml"))) return(NULL);
+ if ((where==MXML_WS_BEFORE_CLOSE)&&(!strcmp(name,"string"))) return(NULL);
+
+ if ((where==MXML_WS_BEFORE_OPEN)||(where==MXML_WS_BEFORE_CLOSE)) {
+/* const char *tmp=node->value.element.name;
+ if (tmp!=NULL) {
+ if ((strstr(tmp,"par")!=tmp)&&(strstr(tmp,"string")!=tmp)) {
+ printf("%s ",tmp);
+ if (where==MXML_WS_BEFORE_OPEN) xml_k++;
+ if (where==MXML_WS_BEFORE_CLOSE) xml_k--;
+ if (xml_k>=STACKSIZE) xml_k=STACKSIZE-1;
+ if (xml_k<0) xml_k=0;
+ printf("%d\n",xml_k);
+ printf("\n");
+ };
+
+ };
+ int i=0;
+ for (i=1;i<xml_k;i++) tabs[i]='\t';
+ tabs[0]='\n';tabs[i+1]='\0';
+ if (where==MXML_WS_BEFORE_OPEN) return(tabs);
+ else return("\n");
+*/
+ return("\n");
+ };
+
+ return(0);
+};
+
+
+XMLwrapper::XMLwrapper(){
+ ZERO(&parentstack,(int)sizeof(parentstack));
+ ZERO(&values,(int)sizeof(values));
+
+ minimal=true;
+ stackpos=0;
+
+ information.PADsynth_used=false;
+
+ tree=mxmlNewElement(MXML_NO_PARENT,"?xml version=\"1.0\" encoding=\"UTF-8\"?");
+/* for mxml 2.1 (and older)
+ tree=mxmlNewElement(MXML_NO_PARENT,"?xml");
+ mxmlElementSetAttr(tree,"version","1.0");
+ mxmlElementSetAttr(tree,"encoding","UTF-8");
+*/
+
+ mxml_node_t *doctype=mxmlNewElement(tree,"!DOCTYPE");
+ mxmlElementSetAttr(doctype,"ZynAddSubFX-data",NULL);
+
+ node=root=mxmlNewElement(tree,"ZynAddSubFX-data");
+
+ mxmlElementSetAttr(root,"version-major","1");
+ mxmlElementSetAttr(root,"version-minor","1");
+ mxmlElementSetAttr(root,"ZynAddSubFX-author","Nasca Octavian Paul");
+
+ //make the empty branch that will contain the information parameters
+ info=addparams0("INFORMATION");
+
+ //save zynaddsubfx specifications
+ beginbranch("BASE_PARAMETERS");
+ addpar("max_midi_parts",NUM_MIDI_PARTS);
+ addpar("max_kit_items_per_instrument",NUM_KIT_ITEMS);
+
+ addpar("max_system_effects",NUM_SYS_EFX);
+ addpar("max_insertion_effects",NUM_INS_EFX);
+ addpar("max_instrument_effects",NUM_PART_EFX);
+
+ addpar("max_addsynth_voices",NUM_VOICES);
+ endbranch();
+
+};
+
+XMLwrapper::~XMLwrapper(){
+ if (tree!=NULL) mxmlDelete(tree);
+};
+
+bool XMLwrapper::checkfileinformation(char *filename){
+ stackpos=0;
+ ZERO(&parentstack,(int)sizeof(parentstack));
+ information.PADsynth_used=false;
+
+ if (tree!=NULL) mxmlDelete(tree);tree=NULL;
+ char *xmldata=doloadfile(filename);
+ if (xmldata==NULL) return(-1);//the file could not be loaded or uncompressed
+
+
+ char *start=strstr(xmldata,"<INFORMATION>");
+ char *end=strstr(xmldata,"</INFORMATION>");
+
+ if ((start==NULL)||(end==NULL)||(start>end)) {
+ delete(xmldata);
+ return(false);
+ };
+ end+=strlen("</INFORMATION>");
+ end[0]='\0';
+
+ tree=mxmlNewElement(MXML_NO_PARENT,"?xml");
+ node=root=mxmlLoadString(tree,xmldata,MXML_OPAQUE_CALLBACK);
+ if (root==NULL) {
+ delete(xmldata);
+ mxmlDelete(tree);
+ node=root=tree=NULL;
+ return(false);
+ };
+
+ root=mxmlFindElement(tree,tree,"INFORMATION",NULL,NULL,MXML_DESCEND);
+ push(root);
+
+ if (root==NULL){
+ delete(xmldata);
+ mxmlDelete(tree);
+ node=root=tree=NULL;
+ return(false);
+ };
+
+ information.PADsynth_used=getparbool("PADsynth_used",false);
+
+ exitbranch();
+ if (tree!=NULL) mxmlDelete(tree);
+ delete(xmldata);
+ node=root=tree=NULL;
+
+ return(true);
+};
+
+
+/* SAVE XML members */
+
+int XMLwrapper::saveXMLfile(char *filename){
+ char *xmldata=getXMLdata();
+ if (xmldata==NULL) return(-2);
+
+ int compression=config.cfg.GzipCompression;
+
+ int fnsize=strlen(filename)+100;
+ char *filenamenew=new char [fnsize];
+ snprintf(filenamenew,fnsize,"%s",filename);
+
+ int result=dosavefile(filenamenew,compression,xmldata);
+
+ delete(filenamenew);
+ delete(xmldata);
+ return(result);
+};
+
+char *XMLwrapper::getXMLdata(){
+ xml_k=0;
+ ZERO(tabs,STACKSIZE+2);
+
+ mxml_node_t *oldnode=node;
+
+ node=info;
+ //Info storing
+ addparbool("PADsynth_used",information.PADsynth_used);
+
+ node=oldnode;
+ char *xmldata=mxmlSaveAllocString(tree,XMLwrapper_whitespace_callback);
+
+ return(xmldata);
+};
+
+
+int XMLwrapper::dosavefile(char *filename,int compression,char *xmldata){
+ if (compression==0){
+ FILE *file;
+ file=fopen(filename,"w");
+ if (file==NULL) return(-1);
+ fputs(xmldata,file);
+ fclose(file);
+ } else {
+ if (compression>9) compression=9;
+ if (compression<1) compression=1;
+ char options[10];
+ snprintf(options,10,"wb%d",compression);
+
+ gzFile gzfile;
+ gzfile=gzopen(filename,options);
+ if (gzfile==NULL) return(-1);
+ gzputs(gzfile,xmldata);
+ gzclose(gzfile);
+ };
+
+ return(0);
+};
+
+
+
+void XMLwrapper::addpar(char *name,int val){
+ addparams2("par","name",name,"value",int2str(val));
+};
+
+void XMLwrapper::addparreal(char *name,REALTYPE val){
+ addparams2("par_real","name",name,"value",real2str(val));
+};
+
+void XMLwrapper::addparbool(char *name,int val){
+ if (val!=0) addparams2("par_bool","name",name,"value","yes");
+ else addparams2("par_bool","name",name,"value","no");
+};
+
+void XMLwrapper::addparstr(char *name,char *val){
+ mxml_node_t *element=mxmlNewElement(node,"string");
+ mxmlElementSetAttr(element,"name",name);
+ mxmlNewText(element,0,val);
+};
+
+
+void XMLwrapper::beginbranch(char *name){
+ push(node);
+ node=addparams0(name);
+};
+
+void XMLwrapper::beginbranch(char *name,int id){
+ push(node);
+ node=addparams1(name,"id",int2str(id));
+};
+
+void XMLwrapper::endbranch(){
+ node=pop();
+};
+
+
+
+/* LOAD XML members */
+
+int XMLwrapper::loadXMLfile(const char *filename){
+ if (tree!=NULL) mxmlDelete(tree);
+ tree=NULL;
+
+ ZERO(&parentstack,(int)sizeof(parentstack));
+ ZERO(&values,(int)sizeof(values));
+
+ stackpos=0;
+
+ char *xmldata=doloadfile(filename);
+ if (xmldata==NULL) return(-1);//the file could not be loaded or uncompressed
+
+ root=tree=mxmlLoadString(NULL,xmldata,MXML_OPAQUE_CALLBACK);
+
+ delete(xmldata);
+
+ if (tree==NULL) return(-2);//this is not XML
+
+
+ node=root=mxmlFindElement(tree,tree,"ZynAddSubFX-data",NULL,NULL,MXML_DESCEND);
+ if (root==NULL) return(-3);//the XML doesnt embbed zynaddsubfx data
+ push(root);
+
+ values.xml_version.major=str2int(mxmlElementGetAttr(root,"version-major"));
+ values.xml_version.minor=str2int(mxmlElementGetAttr(root,"version-minor"));
+
+ return(0);
+};
+
+
+char *XMLwrapper::doloadfile(const char *filename){
+ char *xmldata=NULL;
+ int filesize=-1;
+
+ //try get filesize as gzip data (first)
+ gzFile gzfile=gzopen(filename,"rb");
+ if (gzfile!=NULL){//this is a gzip file
+ // first check it's size
+ while(!gzeof(gzfile)) {
+ gzseek (gzfile,1024*1024,SEEK_CUR);
+ if (gztell(gzfile)>10000000) {
+ gzclose(gzfile);
+ goto notgzip;//the file is too big
+ };
+ };
+ filesize=gztell(gzfile);
+
+ //rewind the file and load the data
+ xmldata=new char[filesize+1];
+ ZERO(xmldata,filesize+1);
+
+ gzrewind(gzfile);
+ gzread(gzfile,xmldata,filesize);
+
+ gzclose(gzfile);
+ return (xmldata);
+ } else {//this is not a gzip file
+ notgzip:
+ FILE *file=fopen(filename,"rb");
+ if (file==NULL) return(NULL);
+ fseek(file,0,SEEK_END);
+ filesize=ftell(file);
+
+ xmldata=new char [filesize+1];
+ ZERO(xmldata,filesize+1);
+
+ rewind(file);
+ fread(xmldata,filesize,1,file);
+
+ fclose(file);
+ return(xmldata);
+ };
+};
+
+bool XMLwrapper::putXMLdata(char *xmldata){
+ if (tree!=NULL) mxmlDelete(tree);
+ tree=NULL;
+
+ ZERO(&parentstack,(int)sizeof(parentstack));
+ ZERO(&values,(int)sizeof(values));
+
+ stackpos=0;
+
+ if (xmldata==NULL) return (false);
+
+ root=tree=mxmlLoadString(NULL,xmldata,MXML_OPAQUE_CALLBACK);
+
+ if (tree==NULL) return(false);
+
+ node=root=mxmlFindElement(tree,tree,"ZynAddSubFX-data",NULL,NULL,MXML_DESCEND);
+ if (root==NULL) return (false);;
+ push(root);
+
+ return(true);
+};
+
+
+
+int XMLwrapper::enterbranch(char *name){
+ node=mxmlFindElement(peek(),peek(),name,NULL,NULL,MXML_DESCEND_FIRST);
+ if (node==NULL) return(0);
+
+ push(node);
+ return(1);
+};
+
+int XMLwrapper::enterbranch(char *name,int id){
+ snprintf(tmpstr,TMPSTR_SIZE,"%d",id);
+ node=mxmlFindElement(peek(),peek(),name,"id",tmpstr,MXML_DESCEND_FIRST);
+ if (node==NULL) return(0);
+
+ push(node);
+ return(1);
+};
+
+
+void XMLwrapper::exitbranch(){
+ pop();
+};
+
+
+int XMLwrapper::getbranchid(int min, int max){
+ int id=str2int(mxmlElementGetAttr(node,"id"));
+ if ((min==0)&&(max==0)) return(id);
+
+ if (id<min) id=min;
+ else if (id>max) id=max;
+
+ return(id);
+};
+
+int XMLwrapper::getpar(char *name,int defaultpar,int min,int max){
+ node=mxmlFindElement(peek(),peek(),"par","name",name,MXML_DESCEND_FIRST);
+ if (node==NULL) return(defaultpar);
+
+ const char *strval=mxmlElementGetAttr(node,"value");
+ if (strval==NULL) return(defaultpar);
+
+ int val=str2int(strval);
+ if (val<min) val=min;
+ else if (val>max) val=max;
+
+ return(val);
+};
+
+int XMLwrapper::getpar127(char *name,int defaultpar){
+ return(getpar(name,defaultpar,0,127));
+};
+
+int XMLwrapper::getparbool(char *name,int defaultpar){
+ node=mxmlFindElement(peek(),peek(),"par_bool","name",name,MXML_DESCEND_FIRST);
+ if (node==NULL) return(defaultpar);
+
+ const char *strval=mxmlElementGetAttr(node,"value");
+ if (strval==NULL) return(defaultpar);
+
+ if ((strval[0]=='Y')||(strval[0]=='y')) return(1);
+ else return(0);
+};
+
+void XMLwrapper::getparstr(char *name,char *par,int maxstrlen){
+ ZERO(par,maxstrlen);
+ node=mxmlFindElement(peek(),peek(),"string","name",name,MXML_DESCEND_FIRST);
+
+ if (node==NULL) return;
+ if (node->child==NULL) return;
+ if (node->child->type!=MXML_OPAQUE) return;
+
+ snprintf(par,maxstrlen,"%s",node->child->value.element.name);
+
+};
+
+REALTYPE XMLwrapper::getparreal(char *name,REALTYPE defaultpar){
+ node=mxmlFindElement(peek(),peek(),"par_real","name",name,MXML_DESCEND_FIRST);
+ if (node==NULL) return(defaultpar);
+
+ const char *strval=mxmlElementGetAttr(node,"value");
+ if (strval==NULL) return(defaultpar);
+
+ return(str2real(strval));
+};
+
+REALTYPE XMLwrapper::getparreal(char *name,REALTYPE defaultpar,REALTYPE min,REALTYPE max){
+ REALTYPE result=getparreal(name,defaultpar);
+
+ if (result<min) result=min;
+ else if (result>max) result=max;
+ return(result);
+};
+
+
+/** Private members **/
+
+char *XMLwrapper::int2str(int x){
+ snprintf(tmpstr,TMPSTR_SIZE,"%d",x);
+ return(tmpstr);
+};
+
+char *XMLwrapper::real2str(REALTYPE x){
+ snprintf(tmpstr,TMPSTR_SIZE,"%g",x);
+ return(tmpstr);
+};
+
+int XMLwrapper::str2int(const char *str){
+ if (str==NULL) return(0);
+ int result=strtol(str,NULL,10);
+ return(result);
+};
+
+REALTYPE XMLwrapper::str2real(const char *str){
+ if (str==NULL) return(0.0);
+ REALTYPE result=strtod(str,NULL);
+ return(result);
+};
+
+
+mxml_node_t *XMLwrapper::addparams0(char *name){
+ mxml_node_t *element=mxmlNewElement(node,name);
+ return(element);
+};
+
+mxml_node_t *XMLwrapper::addparams1(char *name,char *par1,char *val1){
+ mxml_node_t *element=mxmlNewElement(node,name);
+ mxmlElementSetAttr(element,par1,val1);
+ return(element);
+};
+
+mxml_node_t *XMLwrapper::addparams2(char *name,char *par1,char *val1,char *par2, char *val2){
+ mxml_node_t *element=mxmlNewElement(node,name);
+ mxmlElementSetAttr(element,par1,val1);
+ mxmlElementSetAttr(element,par2,val2);
+ return(element);
+};
+
+
+
+
+void XMLwrapper::push(mxml_node_t *node){
+ if (stackpos>=STACKSIZE-1) {
+ printf("BUG!: XMLwrapper::push() - full parentstack\n");
+ return;
+ };
+ stackpos++;
+ parentstack[stackpos]=node;
+
+// printf("push %d - %s\n",stackpos,node->value.element.name);
+
+};
+mxml_node_t *XMLwrapper::pop(){
+ if (stackpos<=0) {
+ printf("BUG!: XMLwrapper::pop() - empty parentstack\n");
+ return (root);
+ };
+ mxml_node_t *node=parentstack[stackpos];
+ parentstack[stackpos]=NULL;
+
+// printf("pop %d - %s\n",stackpos,node->value.element.name);
+
+ stackpos--;
+ return(node);
+};
+
+mxml_node_t *XMLwrapper::peek(){
+ if (stackpos<=0) {
+ printf("BUG!: XMLwrapper::peek() - empty parentstack\n");
+ return (root);
+ };
+ return(parentstack[stackpos]);
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.h b/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.h
new file mode 100644
index 00000000..765622a2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Misc/XMLwrapper.h
@@ -0,0 +1,175 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ XML.h - XML wrapper
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <mxml.h>
+#ifndef REALTYPE
+#define REALTYPE float
+#endif
+
+#ifndef XML_WRAPPER_H
+#define XML_WRAPPER_H
+
+#define TMPSTR_SIZE 50
+
+//the maxim tree depth
+#define STACKSIZE 100
+
+class XMLwrapper{
+ public:
+ XMLwrapper();
+ ~XMLwrapper();
+
+ /********************************/
+ /* SAVE to XML */
+ /********************************/
+
+ //returns 0 if ok or -1 if the file cannot be saved
+ int saveXMLfile(char *filename);
+
+ //returns the new allocated string that contains the XML data (used for clipboard)
+ //the string is NULL terminated
+ char *getXMLdata();
+
+ //add simple parameter (name and value)
+ void addpar(char *name,int val);
+ void addparreal(char *name,REALTYPE val);
+
+ //add boolean parameter (name and boolean value)
+ //if the value is 0 => "yes", else "no"
+ void addparbool(char *name,int val);
+
+ //add string parameter (name and string)
+ void addparstr(char *name,char *val);
+
+ //add a branch
+ void beginbranch(char *name);
+ void beginbranch(char *name, int id);
+
+ //this must be called after each branch (nodes that contains child nodes)
+ void endbranch();
+
+ /********************************/
+ /* LOAD from XML */
+ /********************************/
+
+ //returns 0 if ok or -1 if the file cannot be loaded
+ int loadXMLfile(const char *filename);
+
+ //used by the clipboard
+ bool putXMLdata(char *xmldata);
+
+ //enter into the branch
+ //returns 1 if is ok, or 0 otherwise
+ int enterbranch(char *name);
+
+
+ //enter into the branch with id
+ //returns 1 if is ok, or 0 otherwise
+ int enterbranch(char *name, int id);
+
+ //exits from a branch
+ void exitbranch();
+
+ //get the the branch_id and limits it between the min and max
+ //if min==max==0, it will not limit it
+ //if there isn't any id, will return min
+ //this must be called only imediately after enterbranch()
+ int getbranchid(int min, int max);
+
+ //it returns the parameter and limits it between min and max
+ //if min==max==0, it will not limit it
+ //if no parameter will be here, the defaultpar will be returned
+ int getpar(char *name,int defaultpar,int min,int max);
+
+ //the same as getpar, but the limits are 0 and 127
+ int getpar127(char *name,int defaultpar);
+
+ int getparbool(char *name,int defaultpar);
+
+ void getparstr(char *name,char *par,int maxstrlen);
+ REALTYPE getparreal(char *name,REALTYPE defaultpar);
+ REALTYPE getparreal(char *name,REALTYPE defaultpar,REALTYPE min,REALTYPE max);
+
+ bool minimal;//false if all parameters will be stored (used only for clipboard)
+
+ struct {
+ bool PADsynth_used;
+ }information;
+
+ //opens a file and parse only the "information" data on it
+ //returns "true" if all went ok or "false" on errors
+ bool checkfileinformation(char *filename);
+
+ private:
+
+ int dosavefile(char *filename,int compression,char *xmldata);
+ char *doloadfile(const char *filename);
+
+
+ mxml_node_t *tree;//all xml data
+ mxml_node_t *root;//xml data used by zynaddsubfx
+ mxml_node_t *node;//current node
+ mxml_node_t *info;//this node is used to store the information about the data
+
+ //adds params like this:
+ // <name>
+ //returns the node
+ mxml_node_t *addparams0(char *name);
+
+ //adds params like this:
+ // <name par1="val1">
+ //returns the node
+ mxml_node_t *addparams1(char *name,char *par1,char *val1);
+
+ //adds params like this:
+ // <name par1="val1" par2="val2">
+ //returns the node
+ mxml_node_t *addparams2(char *name,char *par1,char *val1,char *par2, char *val2);
+
+ char *int2str(int x);
+ char *real2str(REALTYPE x);
+
+ int str2int(const char *str);
+ REALTYPE str2real(const char *str);
+
+ char tmpstr[TMPSTR_SIZE];
+
+
+ //this is used to store the parents
+ mxml_node_t *parentstack[STACKSIZE];
+ int stackpos;
+
+
+ void push(mxml_node_t *node);
+ mxml_node_t *pop();
+ mxml_node_t *peek();
+
+ //theese are used to store the values
+ struct{
+ struct {
+ int major,minor;
+ }xml_version;
+ }values;
+
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.C b/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.C
new file mode 100644
index 00000000..525bedc5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.C
@@ -0,0 +1,138 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Recorder.C - Records sound to a file
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "Recorder.h"
+
+Recorder::Recorder(){
+ recordbuf_16bit=new short int [SOUND_BUFFER_SIZE*2];
+ status=0;file=-1;
+ sampleswritten=0;
+ notetrigger=0;
+ for (int i=0;i<SOUND_BUFFER_SIZE*2;i++){
+ recordbuf_16bit[i]=0;
+ };
+};
+
+Recorder::~Recorder(){
+ if (recording()==1) stop();
+ delete [] recordbuf_16bit;
+};
+
+int Recorder::preparefile(char *filename_,int overwrite){
+ if (overwrite==0) file=open(filename_,O_CREAT|O_EXCL|O_WRONLY|O_BINARY,00444+00222);
+ else file=open(filename_,O_CREAT|O_WRONLY|O_TRUNC|O_BINARY,00444+00222);//overwrite if the file exists
+ if (file==-1) {
+ if (errno==EEXIST) return(1);//file exists already
+ else return(2);//Access Denied or any other problem
+ };
+ status=1;//ready
+
+ //prepare the space fot the wav header
+ //the header itself, will be written when the file is closed
+ unsigned char zerobuf[44]; for (int i=0;i<44;i++) zerobuf[i]=0;
+ write(file,zerobuf,44);
+
+ return(0);
+};
+
+void Recorder::start(){
+ notetrigger=0;
+ status=2;//recording
+};
+
+void Recorder::stop(){
+ unsigned int chunksize;
+ lseek(file,0,SEEK_SET);
+
+ write(file,"RIFF",4);
+ chunksize=sampleswritten*4+36;
+ write(file,&chunksize,4);
+
+ write(file,"WAVEfmt ",8);
+ chunksize=16;
+ write(file,&chunksize,4);
+ unsigned short int formattag=1;//uncompresed wave
+ write(file,&formattag,2);
+ unsigned short int nchannels=2;//stereo
+ write(file,&nchannels,2);
+ unsigned int samplerate=SAMPLE_RATE;//samplerate
+ write(file,&samplerate,4);
+ unsigned int bytespersec=SAMPLE_RATE*4;//bytes/sec
+ write(file,&bytespersec,4);
+ unsigned short int blockalign=4;//2 channels * 16 bits/8
+ write(file,&blockalign,2);
+ unsigned short int bitspersample=16;
+ write(file,&bitspersample,2);
+
+ write(file,"data",4);
+ chunksize=sampleswritten*blockalign;
+ write(file,&chunksize,4);
+
+ close(file);
+ file=-1;
+ status=0;
+ sampleswritten=0;
+};
+
+void Recorder::pause(){
+ status=0;
+};
+
+int Recorder::recording(){
+ if ((status==2)&&(notetrigger!=0)) return(1);
+ else return(0);
+};
+
+void Recorder::recordbuffer(REALTYPE *outl,REALTYPE *outr){
+ int tmp;
+ if (status!=2) return;
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ tmp=(int)(outl[i]*32767.0);
+ if (tmp<-32768) tmp=-32768;
+ if (tmp>32767) tmp=32767;
+ recordbuf_16bit[i*2]=tmp;
+
+ tmp=(int)(outr[i]*32767.0);
+ if (tmp<-32768) tmp=-32768;
+ if (tmp>32767) tmp=32767;
+ recordbuf_16bit[i*2+1]=tmp;
+ };
+ if (write(file,recordbuf_16bit,SOUND_BUFFER_SIZE*4)<SOUND_BUFFER_SIZE*4) {
+ fprintf(stderr,"Error while recording !\n");
+ stop();
+ };
+ sampleswritten+=SOUND_BUFFER_SIZE;
+};
+
+void Recorder::triggernow(){
+ if (status==2) notetrigger=1;
+};
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.h b/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.h
new file mode 100644
index 00000000..fea6e409
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Output/Recorder.h
@@ -0,0 +1,52 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Recorder.h - Records sound to a file
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef RECORDER_H
+#define RECORDER_H
+
+#include "../globals.h"
+
+class Recorder{
+ public:
+ Recorder();
+ ~Recorder();
+ int preparefile(char *filename_,int overwrite);//returns 1 if the file exists
+ void start();
+ void stop();
+ void pause();
+ int recording();
+ void triggernow();
+ void recordbuffer(REALTYPE *outl,REALTYPE *outr);
+
+ /* Status:
+ 0 - not ready(no file selected),
+ 1 - ready
+ 2 - recording */
+ int status;
+
+ private:
+ int file;
+ short int *recordbuf_16bit;
+ int sampleswritten,notetrigger;
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.C
new file mode 100644
index 00000000..fdbbbe83
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.C
@@ -0,0 +1,637 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ADnoteParameters.C - Parameters for ADnote (ADsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "ADnoteParameters.h"
+
+ADnoteParameters::ADnoteParameters(FFTwrapper *fft_):Presets(){
+ setpresettype("Padsyth");
+ fft=fft_;
+
+ GlobalPar.FreqEnvelope=new EnvelopeParams(0,0);
+ GlobalPar.FreqEnvelope->ASRinit(64,50,64,60);
+ GlobalPar.FreqLfo=new LFOParams(70,0,64,0,0,0,0,0);
+
+ GlobalPar.AmpEnvelope=new EnvelopeParams(64,1);
+ GlobalPar.AmpEnvelope->ADSRinit_dB(0,40,127,25);
+ GlobalPar.AmpLfo=new LFOParams(80,0,64,0,0,0,0,1);
+
+ GlobalPar.GlobalFilter=new FilterParams(2,94,40);
+ GlobalPar.FilterEnvelope=new EnvelopeParams(0,1);
+ GlobalPar.FilterEnvelope->ADSRinit_filter(64,40,64,70,60,64);
+ GlobalPar.FilterLfo=new LFOParams(80,0,64,0,0,0,0,2);
+ GlobalPar.Reson=new Resonance();
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++) EnableVoice(nvoice);
+
+ defaults();
+};
+
+void ADnoteParameters::defaults(){
+ //Default Parameters
+ /* Frequency Global Parameters */
+ GlobalPar.PStereo=1;//stereo
+ GlobalPar.PDetune=8192;//zero
+ GlobalPar.PCoarseDetune=0;
+ GlobalPar.PDetuneType=1;
+ GlobalPar.FreqEnvelope->defaults();
+ GlobalPar.FreqLfo->defaults();
+ GlobalPar.PBandwidth=64;
+
+ /* Amplitude Global Parameters */
+ GlobalPar.PVolume=90;
+ GlobalPar.PPanning=64;//center
+ GlobalPar.PAmpVelocityScaleFunction=64;
+ GlobalPar.AmpEnvelope->defaults();
+ GlobalPar.AmpLfo->defaults();
+ GlobalPar.PPunchStrength=0;
+ GlobalPar.PPunchTime=60;
+ GlobalPar.PPunchStretch=64;
+ GlobalPar.PPunchVelocitySensing=72;
+ GlobalPar.Hrandgrouping=0;
+
+ /* Filter Global Parameters*/
+ GlobalPar.PFilterVelocityScale=64;
+ GlobalPar.PFilterVelocityScaleFunction=64;
+ GlobalPar.GlobalFilter->defaults();
+ GlobalPar.FilterEnvelope->defaults();
+ GlobalPar.FilterLfo->defaults();
+ GlobalPar.Reson->defaults();
+
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ defaults(nvoice);
+ };
+ VoicePar[0].Enabled=1;
+};
+
+/*
+ * Defaults a voice
+ */
+void ADnoteParameters::defaults(int n){
+ int nvoice=n;
+ VoicePar[nvoice].Enabled=0;
+ VoicePar[nvoice].Type=0;
+ VoicePar[nvoice].Pfixedfreq=0;
+ VoicePar[nvoice].PfixedfreqET=0;
+ VoicePar[nvoice].Presonance=1;
+ VoicePar[nvoice].Pfilterbypass=0;
+ VoicePar[nvoice].Pextoscil=-1;
+ VoicePar[nvoice].PextFMoscil=-1;
+ VoicePar[nvoice].Poscilphase=64;
+ VoicePar[nvoice].PFMoscilphase=64;
+ VoicePar[nvoice].PDelay=0;
+ VoicePar[nvoice].PVolume=100;
+ VoicePar[nvoice].PVolumeminus=0;
+ VoicePar[nvoice].PPanning=64;//center
+ VoicePar[nvoice].PDetune=8192;//8192=0
+ VoicePar[nvoice].PCoarseDetune=0;
+ VoicePar[nvoice].PDetuneType=0;
+ VoicePar[nvoice].PFreqLfoEnabled=0;
+ VoicePar[nvoice].PFreqEnvelopeEnabled=0;
+ VoicePar[nvoice].PAmpEnvelopeEnabled=0;
+ VoicePar[nvoice].PAmpLfoEnabled=0;
+ VoicePar[nvoice].PAmpVelocityScaleFunction=127;
+ VoicePar[nvoice].PFilterEnabled=0;
+ VoicePar[nvoice].PFilterEnvelopeEnabled=0;
+ VoicePar[nvoice].PFilterLfoEnabled=0;
+ VoicePar[nvoice].PFMEnabled=0;
+
+ //I use the internal oscillator (-1)
+ VoicePar[nvoice].PFMVoice=-1;
+
+ VoicePar[nvoice].PFMVolume=90;
+ VoicePar[nvoice].PFMVolumeDamp=64;
+ VoicePar[nvoice].PFMDetune=8192;
+ VoicePar[nvoice].PFMCoarseDetune=0;
+ VoicePar[nvoice].PFMDetuneType=0;
+ VoicePar[nvoice].PFMFreqEnvelopeEnabled=0;
+ VoicePar[nvoice].PFMAmpEnvelopeEnabled=0;
+ VoicePar[nvoice].PFMVelocityScaleFunction=64;
+
+ VoicePar[nvoice].OscilSmp->defaults();
+ VoicePar[nvoice].FMSmp->defaults();
+
+ VoicePar[nvoice].AmpEnvelope->defaults();
+ VoicePar[nvoice].AmpLfo->defaults();
+
+ VoicePar[nvoice].FreqEnvelope->defaults();
+ VoicePar[nvoice].FreqLfo->defaults();
+
+ VoicePar[nvoice].VoiceFilter->defaults();
+ VoicePar[nvoice].FilterEnvelope->defaults();
+ VoicePar[nvoice].FilterLfo->defaults();
+
+ VoicePar[nvoice].FMFreqEnvelope->defaults();
+ VoicePar[nvoice].FMAmpEnvelope->defaults();
+};
+
+
+
+/*
+ * Init the voice parameters
+ */
+void ADnoteParameters::EnableVoice(int nvoice){
+ VoicePar[nvoice].OscilSmp=new OscilGen(fft,GlobalPar.Reson);
+ VoicePar[nvoice].FMSmp=new OscilGen(fft,NULL);
+
+ VoicePar[nvoice].AmpEnvelope=new EnvelopeParams(64,1);
+ VoicePar[nvoice].AmpEnvelope->ADSRinit_dB(0,100,127,100);
+ VoicePar[nvoice].AmpLfo=new LFOParams(90,32,64,0,0,30,0,1);
+
+ VoicePar[nvoice].FreqEnvelope=new EnvelopeParams(0,0);
+ VoicePar[nvoice].FreqEnvelope->ASRinit(30,40,64,60);
+ VoicePar[nvoice].FreqLfo=new LFOParams(50,40,0,0,0,0,0,0);
+
+ VoicePar[nvoice].VoiceFilter=new FilterParams(2,50,60);
+ VoicePar[nvoice].FilterEnvelope=new EnvelopeParams(0,0);
+ VoicePar[nvoice].FilterEnvelope->ADSRinit_filter(90,70,40,70,10,40);
+ VoicePar[nvoice].FilterLfo=new LFOParams(50,20,64,0,0,0,0,2);
+
+ VoicePar[nvoice].FMFreqEnvelope=new EnvelopeParams(0,0);
+ VoicePar[nvoice].FMFreqEnvelope->ASRinit(20,90,40,80);
+ VoicePar[nvoice].FMAmpEnvelope=new EnvelopeParams(64,1);
+ VoicePar[nvoice].FMAmpEnvelope->ADSRinit(80,90,127,100);
+};
+
+/*
+ * Get the Multiplier of the fine detunes of the voices
+ */
+REALTYPE ADnoteParameters::getBandwidthDetuneMultiplier(){
+ REALTYPE bw=(GlobalPar.PBandwidth-64.0)/64.0;
+ bw=pow(2.0,bw*pow(fabs(bw),0.2)*5.0);
+
+ return(bw);
+};
+
+
+/*
+ * Kill the voice
+ */
+void ADnoteParameters::KillVoice(int nvoice){
+ delete (VoicePar[nvoice].OscilSmp);
+ delete (VoicePar[nvoice].FMSmp);
+
+ delete (VoicePar[nvoice].AmpEnvelope);
+ delete (VoicePar[nvoice].AmpLfo);
+
+ delete (VoicePar[nvoice].FreqEnvelope);
+ delete (VoicePar[nvoice].FreqLfo);
+
+ delete (VoicePar[nvoice].VoiceFilter);
+ delete (VoicePar[nvoice].FilterEnvelope);
+ delete (VoicePar[nvoice].FilterLfo);
+
+ delete (VoicePar[nvoice].FMFreqEnvelope);
+ delete (VoicePar[nvoice].FMAmpEnvelope);
+};
+
+ADnoteParameters::~ADnoteParameters(){
+ delete(GlobalPar.FreqEnvelope);
+ delete(GlobalPar.FreqLfo);
+ delete(GlobalPar.AmpEnvelope);
+ delete(GlobalPar.AmpLfo);
+ delete(GlobalPar.GlobalFilter);
+ delete(GlobalPar.FilterEnvelope);
+ delete(GlobalPar.FilterLfo);
+ delete(GlobalPar.Reson);
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ KillVoice(nvoice);
+ };
+};
+
+
+
+
+void ADnoteParameters::add2XMLsection(XMLwrapper *xml,int n){
+ int nvoice=n;
+ if (nvoice>=NUM_VOICES) return;
+
+ int oscilused=0,fmoscilused=0;//if the oscil or fmoscil are used by another voice
+
+ for (int i=0;i<NUM_VOICES;i++){
+ if (VoicePar[i].Pextoscil==nvoice) oscilused=1;
+ if (VoicePar[i].PextFMoscil==nvoice) fmoscilused=1;
+ };
+
+ xml->addparbool("enabled",VoicePar[nvoice].Enabled);
+ if (((VoicePar[nvoice].Enabled==0)&&(oscilused==0)&&(fmoscilused==0))&&(xml->minimal)) return;
+
+ xml->addpar("type",VoicePar[nvoice].Type);
+ xml->addpar("delay",VoicePar[nvoice].PDelay);
+ xml->addparbool("resonance",VoicePar[nvoice].Presonance);
+
+ xml->addpar("ext_oscil",VoicePar[nvoice].Pextoscil);
+ xml->addpar("ext_fm_oscil",VoicePar[nvoice].PextFMoscil);
+
+ xml->addpar("oscil_phase",VoicePar[nvoice].Poscilphase);
+ xml->addpar("oscil_fm_phase",VoicePar[nvoice].PFMoscilphase);
+
+ xml->addparbool("filter_enabled",VoicePar[nvoice].PFilterEnabled);
+ xml->addparbool("filter_bypass",VoicePar[nvoice].Pfilterbypass);
+
+ xml->addpar("fm_enabled",VoicePar[nvoice].PFMEnabled);
+
+ xml->beginbranch("OSCIL");
+ VoicePar[nvoice].OscilSmp->add2XML(xml);
+ xml->endbranch();
+
+
+ xml->beginbranch("AMPLITUDE_PARAMETERS");
+ xml->addpar("panning",VoicePar[nvoice].PPanning);
+ xml->addpar("volume",VoicePar[nvoice].PVolume);
+ xml->addparbool("volume_minus",VoicePar[nvoice].PVolumeminus);
+ xml->addpar("velocity_sensing",VoicePar[nvoice].PAmpVelocityScaleFunction);
+
+ xml->addparbool("amp_envelope_enabled",VoicePar[nvoice].PAmpEnvelopeEnabled);
+ if ((VoicePar[nvoice].PAmpEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("AMPLITUDE_ENVELOPE");
+ VoicePar[nvoice].AmpEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->addparbool("amp_lfo_enabled",VoicePar[nvoice].PAmpLfoEnabled);
+ if ((VoicePar[nvoice].PAmpLfoEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("AMPLITUDE_LFO");
+ VoicePar[nvoice].AmpLfo->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_PARAMETERS");
+ xml->addparbool("fixed_freq",VoicePar[nvoice].Pfixedfreq);
+ xml->addpar("fixed_freq_et",VoicePar[nvoice].PfixedfreqET);
+ xml->addpar("detune",VoicePar[nvoice].PDetune);
+ xml->addpar("coarse_detune",VoicePar[nvoice].PCoarseDetune);
+ xml->addpar("detune_type",VoicePar[nvoice].PDetuneType);
+
+ xml->addparbool("freq_envelope_enabled",VoicePar[nvoice].PFreqEnvelopeEnabled);
+ if ((VoicePar[nvoice].PFreqEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FREQUENCY_ENVELOPE");
+ VoicePar[nvoice].FreqEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->addparbool("freq_lfo_enabled",VoicePar[nvoice].PFreqLfoEnabled);
+ if ((VoicePar[nvoice].PFreqLfoEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FREQUENCY_LFO");
+ VoicePar[nvoice].FreqLfo->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+
+ if ((VoicePar[nvoice].PFilterEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FILTER_PARAMETERS");
+ xml->beginbranch("FILTER");
+ VoicePar[nvoice].VoiceFilter->add2XML(xml);
+ xml->endbranch();
+
+ xml->addparbool("filter_envelope_enabled",VoicePar[nvoice].PFilterEnvelopeEnabled);
+ if ((VoicePar[nvoice].PFilterEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FILTER_ENVELOPE");
+ VoicePar[nvoice].FilterEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->addparbool("filter_lfo_enabled",VoicePar[nvoice].PFilterLfoEnabled);
+ if ((VoicePar[nvoice].PFilterLfoEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FILTER_LFO");
+ VoicePar[nvoice].FilterLfo->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+ };
+
+ if ((VoicePar[nvoice].PFMEnabled!=0)||(fmoscilused!=0)||(!xml->minimal)){
+ xml->beginbranch("FM_PARAMETERS");
+ xml->addpar("input_voice",VoicePar[nvoice].PFMVoice);
+
+ xml->addpar("volume",VoicePar[nvoice].PFMVolume);
+ xml->addpar("volume_damp",VoicePar[nvoice].PFMVolumeDamp);
+ xml->addpar("velocity_sensing",VoicePar[nvoice].PFMVelocityScaleFunction);
+
+ xml->addparbool("amp_envelope_enabled",VoicePar[nvoice].PFMAmpEnvelopeEnabled);
+ if ((VoicePar[nvoice].PFMAmpEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("AMPLITUDE_ENVELOPE");
+ VoicePar[nvoice].FMAmpEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->beginbranch("MODULATOR");
+ xml->addpar("detune",VoicePar[nvoice].PFMDetune);
+ xml->addpar("coarse_detune",VoicePar[nvoice].PFMCoarseDetune);
+ xml->addpar("detune_type",VoicePar[nvoice].PFMDetuneType);
+
+ xml->addparbool("freq_envelope_enabled",VoicePar[nvoice].PFMFreqEnvelopeEnabled);
+ if ((VoicePar[nvoice].PFMFreqEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FREQUENCY_ENVELOPE");
+ VoicePar[nvoice].FMFreqEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->beginbranch("OSCIL");
+ VoicePar[nvoice].FMSmp->add2XML(xml);
+ xml->endbranch();
+
+ xml->endbranch();
+ xml->endbranch();
+ };
+};
+
+
+void ADnoteParameters::add2XML(XMLwrapper *xml){
+ xml->addparbool("stereo",GlobalPar.PStereo);
+
+ xml->beginbranch("AMPLITUDE_PARAMETERS");
+ xml->addpar("volume",GlobalPar.PVolume);
+ xml->addpar("panning",GlobalPar.PPanning);
+ xml->addpar("velocity_sensing",GlobalPar.PAmpVelocityScaleFunction);
+ xml->addpar("punch_strength",GlobalPar.PPunchStrength);
+ xml->addpar("punch_time",GlobalPar.PPunchTime);
+ xml->addpar("punch_stretch",GlobalPar.PPunchStretch);
+ xml->addpar("punch_velocity_sensing",GlobalPar.PPunchVelocitySensing);
+ xml->addpar("harmonic_randomness_grouping",GlobalPar.Hrandgrouping);
+
+ xml->beginbranch("AMPLITUDE_ENVELOPE");
+ GlobalPar.AmpEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("AMPLITUDE_LFO");
+ GlobalPar.AmpLfo->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_PARAMETERS");
+ xml->addpar("detune",GlobalPar.PDetune);
+
+ xml->addpar("coarse_detune",GlobalPar.PCoarseDetune);
+ xml->addpar("detune_type",GlobalPar.PDetuneType);
+
+ xml->addpar("bandwidth",GlobalPar.PBandwidth);
+
+ xml->beginbranch("FREQUENCY_ENVELOPE");
+ GlobalPar.FreqEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_LFO");
+ GlobalPar.FreqLfo->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+
+
+ xml->beginbranch("FILTER_PARAMETERS");
+ xml->addpar("velocity_sensing_amplitude",GlobalPar.PFilterVelocityScale);
+ xml->addpar("velocity_sensing",GlobalPar.PFilterVelocityScaleFunction);
+
+ xml->beginbranch("FILTER");
+ GlobalPar.GlobalFilter->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_ENVELOPE");
+ GlobalPar.FilterEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_LFO");
+ GlobalPar.FilterLfo->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+
+ xml->beginbranch("RESONANCE");
+ GlobalPar.Reson->add2XML(xml);
+ xml->endbranch();
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ xml->beginbranch("VOICE",nvoice);
+ add2XMLsection(xml,nvoice);
+ xml->endbranch();
+ };
+};
+
+
+void ADnoteParameters::getfromXML(XMLwrapper *xml){
+ GlobalPar.PStereo=xml->getparbool("stereo",GlobalPar.PStereo);
+
+ if (xml->enterbranch("AMPLITUDE_PARAMETERS")){
+ GlobalPar.PVolume=xml->getpar127("volume",GlobalPar.PVolume);
+ GlobalPar.PPanning=xml->getpar127("panning",GlobalPar.PPanning);
+ GlobalPar.PAmpVelocityScaleFunction=xml->getpar127("velocity_sensing",GlobalPar.PAmpVelocityScaleFunction);
+
+ GlobalPar.PPunchStrength=xml->getpar127("punch_strength",GlobalPar.PPunchStrength);
+ GlobalPar.PPunchTime=xml->getpar127("punch_time",GlobalPar.PPunchTime);
+ GlobalPar.PPunchStretch=xml->getpar127("punch_stretch",GlobalPar.PPunchStretch);
+ GlobalPar.PPunchVelocitySensing=xml->getpar127("punch_velocity_sensing",GlobalPar.PPunchVelocitySensing);
+ GlobalPar.Hrandgrouping=xml->getpar127("harmonic_randomness_grouping",GlobalPar.Hrandgrouping);
+
+ if (xml->enterbranch("AMPLITUDE_ENVELOPE")){
+ GlobalPar.AmpEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("AMPLITUDE_LFO")){
+ GlobalPar.AmpLfo->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FREQUENCY_PARAMETERS")){
+ GlobalPar.PDetune=xml->getpar("detune",GlobalPar.PDetune,0,16383);
+ GlobalPar.PCoarseDetune=xml->getpar("coarse_detune",GlobalPar.PCoarseDetune,0,16383);
+ GlobalPar.PDetuneType=xml->getpar127("detune_type",GlobalPar.PDetuneType);
+
+ GlobalPar.PBandwidth=xml->getpar127("bandwidth",GlobalPar.PBandwidth);
+
+ xml->enterbranch("FREQUENCY_ENVELOPE");
+ GlobalPar.FreqEnvelope->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FREQUENCY_LFO");
+ GlobalPar.FreqLfo->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->exitbranch();
+ };
+
+
+ if (xml->enterbranch("FILTER_PARAMETERS")){
+ GlobalPar.PFilterVelocityScale=xml->getpar127("velocity_sensing_amplitude",GlobalPar.PFilterVelocityScale);
+ GlobalPar.PFilterVelocityScaleFunction=xml->getpar127("velocity_sensing",GlobalPar.PFilterVelocityScaleFunction);
+
+ xml->enterbranch("FILTER");
+ GlobalPar.GlobalFilter->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FILTER_ENVELOPE");
+ GlobalPar.FilterEnvelope->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FILTER_LFO");
+ GlobalPar.FilterLfo->getfromXML(xml);
+ xml->exitbranch();
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("RESONANCE")){
+ GlobalPar.Reson->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ VoicePar[nvoice].Enabled=0;
+ if (xml->enterbranch("VOICE",nvoice)==0) continue;
+ getfromXMLsection(xml,nvoice);
+ xml->exitbranch();
+ };
+
+
+};
+
+void ADnoteParameters::getfromXMLsection(XMLwrapper *xml,int n){
+ int nvoice=n;
+ if (nvoice>=NUM_VOICES) return;
+
+ VoicePar[nvoice].Enabled=xml->getparbool("enabled",0);
+
+ VoicePar[nvoice].Type=xml->getpar127("type",VoicePar[nvoice].Type);
+ VoicePar[nvoice].PDelay=xml->getpar127("delay",VoicePar[nvoice].PDelay);
+ VoicePar[nvoice].Presonance=xml->getparbool("resonance",VoicePar[nvoice].Presonance);
+
+ VoicePar[nvoice].Pextoscil=xml->getpar("ext_oscil",-1,-1,nvoice-1);
+ VoicePar[nvoice].PextFMoscil=xml->getpar("ext_fm_oscil",-1,-1,nvoice-1);
+
+ VoicePar[nvoice].Poscilphase=xml->getpar127("oscil_phase",VoicePar[nvoice].Poscilphase);
+ VoicePar[nvoice].PFMoscilphase=xml->getpar127("oscil_fm_phase",VoicePar[nvoice].PFMoscilphase);
+
+ VoicePar[nvoice].PFilterEnabled=xml->getparbool("filter_enabled",VoicePar[nvoice].PFilterEnabled);
+ VoicePar[nvoice].Pfilterbypass=xml->getparbool("filter_bypass",VoicePar[nvoice].Pfilterbypass);
+
+ VoicePar[nvoice].PFMEnabled=xml->getpar127("fm_enabled",VoicePar[nvoice].PFMEnabled);
+
+ if (xml->enterbranch("OSCIL")){
+ VoicePar[nvoice].OscilSmp->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+
+ if (xml->enterbranch("AMPLITUDE_PARAMETERS")){
+ VoicePar[nvoice].PPanning=xml->getpar127("panning",VoicePar[nvoice].PPanning);
+ VoicePar[nvoice].PVolume=xml->getpar127("volume",VoicePar[nvoice].PVolume);
+ VoicePar[nvoice].PVolumeminus=xml->getparbool("volume_minus",VoicePar[nvoice].PVolumeminus);
+ VoicePar[nvoice].PAmpVelocityScaleFunction=xml->getpar127("velocity_sensing",VoicePar[nvoice].PAmpVelocityScaleFunction);
+
+ VoicePar[nvoice].PAmpEnvelopeEnabled=xml->getparbool("amp_envelope_enabled",VoicePar[nvoice].PAmpEnvelopeEnabled);
+ if (xml->enterbranch("AMPLITUDE_ENVELOPE")){
+ VoicePar[nvoice].AmpEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ VoicePar[nvoice].PAmpLfoEnabled=xml->getparbool("amp_lfo_enabled",VoicePar[nvoice].PAmpLfoEnabled);
+ if (xml->enterbranch("AMPLITUDE_LFO")){
+ VoicePar[nvoice].AmpLfo->getfromXML(xml);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FREQUENCY_PARAMETERS")){
+ VoicePar[nvoice].Pfixedfreq=xml->getparbool("fixed_freq",VoicePar[nvoice].Pfixedfreq);
+ VoicePar[nvoice].PfixedfreqET=xml->getpar127("fixed_freq_et",VoicePar[nvoice].PfixedfreqET);
+
+
+ VoicePar[nvoice].PDetune=xml->getpar("detune",VoicePar[nvoice].PDetune,0,16383);
+
+ VoicePar[nvoice].PCoarseDetune=xml->getpar("coarse_detune",VoicePar[nvoice].PCoarseDetune,0,16383);
+ VoicePar[nvoice].PDetuneType=xml->getpar127("detune_type",VoicePar[nvoice].PDetuneType);
+
+ VoicePar[nvoice].PFreqEnvelopeEnabled=xml->getparbool("freq_envelope_enabled",VoicePar[nvoice].PFreqEnvelopeEnabled);
+ if (xml->enterbranch("FREQUENCY_ENVELOPE")){
+ VoicePar[nvoice].FreqEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ VoicePar[nvoice].PFreqLfoEnabled=xml->getparbool("freq_lfo_enabled",VoicePar[nvoice].PFreqLfoEnabled);
+ if (xml->enterbranch("FREQUENCY_LFO")){
+ VoicePar[nvoice].FreqLfo->getfromXML(xml);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FILTER_PARAMETERS")){
+ if (xml->enterbranch("FILTER")){
+ VoicePar[nvoice].VoiceFilter->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ VoicePar[nvoice].PFilterEnvelopeEnabled=xml->getparbool("filter_envelope_enabled",VoicePar[nvoice].PFilterEnvelopeEnabled);
+ if (xml->enterbranch("FILTER_ENVELOPE")){
+ VoicePar[nvoice].FilterEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ VoicePar[nvoice].PFilterLfoEnabled=xml->getparbool("filter_lfo_enabled",VoicePar[nvoice].PFilterLfoEnabled);
+ if (xml->enterbranch("FILTER_LFO")){
+ VoicePar[nvoice].FilterLfo->getfromXML(xml);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FM_PARAMETERS")){
+ VoicePar[nvoice].PFMVoice=xml->getpar("input_voice",VoicePar[nvoice].PFMVoice,-1,nvoice-1);
+
+ VoicePar[nvoice].PFMVolume=xml->getpar127("volume",VoicePar[nvoice].PFMVolume);
+ VoicePar[nvoice].PFMVolumeDamp=xml->getpar127("volume_damp",VoicePar[nvoice].PFMVolumeDamp);
+ VoicePar[nvoice].PFMVelocityScaleFunction=xml->getpar127("velocity_sensing",VoicePar[nvoice].PFMVelocityScaleFunction);
+
+ VoicePar[nvoice].PFMAmpEnvelopeEnabled=xml->getparbool("amp_envelope_enabled",VoicePar[nvoice].PFMAmpEnvelopeEnabled);
+ if (xml->enterbranch("AMPLITUDE_ENVELOPE")){
+ VoicePar[nvoice].FMAmpEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("MODULATOR")){
+ VoicePar[nvoice].PFMDetune=xml->getpar("detune",VoicePar[nvoice].PFMDetune,0,16383);
+ VoicePar[nvoice].PFMCoarseDetune=xml->getpar("coarse_detune",VoicePar[nvoice].PFMCoarseDetune,0,16383);
+ VoicePar[nvoice].PFMDetuneType=xml->getpar127("detune_type",VoicePar[nvoice].PFMDetuneType);
+
+ VoicePar[nvoice].PFMFreqEnvelopeEnabled=xml->getparbool("freq_envelope_enabled",VoicePar[nvoice].PFMFreqEnvelopeEnabled);
+ if (xml->enterbranch("FREQUENCY_ENVELOPE")){
+ VoicePar[nvoice].FMFreqEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("OSCIL")){
+ VoicePar[nvoice].FMSmp->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.h
new file mode 100644
index 00000000..1773f2cd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/ADnoteParameters.h
@@ -0,0 +1,282 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ADnoteParameters.h - Parameters for ADnote (ADsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef AD_NOTE_PARAMETERS_H
+#define AD_NOTE_PARAMETERS_H
+
+
+#include "../globals.h"
+#include "EnvelopeParams.h"
+#include "LFOParams.h"
+#include "FilterParams.h"
+#include "../Synth/OscilGen.h"
+#include "../Synth/Resonance.h"
+#include "../Misc/Util.h"
+#include "../Misc/XMLwrapper.h"
+#include "../DSP/FFTwrapper.h"
+#include "Presets.h"
+
+ enum FMTYPE{NONE,MORPH,RING_MOD,PHASE_MOD,FREQ_MOD,PITCH_MOD};
+
+ /*****************************************************************/
+ /* GLOBAL PARAMETERS */
+ /*****************************************************************/
+
+ struct ADnoteGlobalParam{
+
+ /* The instrument type - MONO/STEREO
+ If the mode is MONO, the panning of voices are not used
+ Stereo=1, Mono=0. */
+
+ unsigned char PStereo;
+
+
+ /******************************************
+ * FREQUENCY GLOBAL PARAMETERS *
+ ******************************************/
+ unsigned short int PDetune;//fine detune
+ unsigned short int PCoarseDetune;//coarse detune+octave
+ unsigned char PDetuneType;//detune type
+
+ unsigned char PBandwidth;//how much the relative fine detunes of the voices are changed
+
+ EnvelopeParams *FreqEnvelope; //Frequency Envelope
+
+ LFOParams *FreqLfo;//Frequency LFO
+
+ /********************************************
+ * AMPLITUDE GLOBAL PARAMETERS *
+ ********************************************/
+
+ /* Panning - 0 - random
+ 1 - left
+ 64 - center
+ 127 - right */
+ unsigned char PPanning;
+
+ unsigned char PVolume;
+
+ unsigned char PAmpVelocityScaleFunction;
+
+ EnvelopeParams *AmpEnvelope;
+
+ LFOParams *AmpLfo;
+
+ unsigned char PPunchStrength,PPunchTime,PPunchStretch,PPunchVelocitySensing;
+
+ /******************************************
+ * FILTER GLOBAL PARAMETERS *
+ ******************************************/
+ FilterParams *GlobalFilter;
+
+ // filter velocity sensing
+ unsigned char PFilterVelocityScale;
+
+ // filter velocity sensing
+ unsigned char PFilterVelocityScaleFunction;
+
+ EnvelopeParams *FilterEnvelope;
+
+ LFOParams *FilterLfo;
+
+ // RESONANCE
+ Resonance *Reson;
+
+ //how the randomness is applied to the harmonics on more voices using the same oscillator
+ unsigned char Hrandgrouping;
+ };
+
+
+
+ /***********************************************************/
+ /* VOICE PARAMETERS */
+ /***********************************************************/
+ struct ADnoteVoiceParam{
+
+ /* If the voice is enabled */
+ unsigned char Enabled;
+
+ /* Type of the voice (0=Sound,1=Noise)*/
+ unsigned char Type;
+
+ /* Voice Delay */
+ unsigned char PDelay;
+
+ /* If the resonance is enabled for this voice */
+ unsigned char Presonance;
+
+ // What external oscil should I use, -1 for internal OscilSmp&FMSmp
+ short int Pextoscil,PextFMoscil;
+ // it is not allowed that the externoscil,externFMoscil => current voice
+
+ // oscillator phases
+ unsigned char Poscilphase,PFMoscilphase;
+
+ // filter bypass
+ unsigned char Pfilterbypass;
+
+ /* Voice oscillator */
+ OscilGen *OscilSmp;
+
+ /**********************************
+ * FREQUENCY PARAMETERS *
+ **********************************/
+
+ /* If the base frequency is fixed to 440 Hz*/
+ unsigned char Pfixedfreq;
+
+ /* Equal temperate (this is used only if the Pfixedfreq is enabled)
+ If this parameter is 0, the frequency is fixed (to 440 Hz);
+ if this parameter is 64, 1 MIDI halftone -> 1 frequency halftone */
+ unsigned char PfixedfreqET;
+
+ /* Fine detune */
+ unsigned short int PDetune;
+
+ /* Coarse detune + octave */
+ unsigned short int PCoarseDetune;
+
+ /* Detune type */
+ unsigned char PDetuneType;
+
+ /* Frequency Envelope */
+ unsigned char PFreqEnvelopeEnabled;
+ EnvelopeParams *FreqEnvelope;
+
+ /* Frequency LFO */
+ unsigned char PFreqLfoEnabled;
+ LFOParams *FreqLfo;
+
+
+ /***************************
+ * AMPLITUDE PARAMETERS *
+ ***************************/
+
+ /* Panning 0 - random
+ 1 - left
+ 64 - center
+ 127 - right
+ The Panning is ignored if the instrument is mono */
+ unsigned char PPanning;
+
+ /* Voice Volume */
+ unsigned char PVolume;
+
+ /* If the Volume negative */
+ unsigned char PVolumeminus;
+
+ /* Velocity sensing */
+ unsigned char PAmpVelocityScaleFunction;
+
+ /* Amplitude Envelope */
+ unsigned char PAmpEnvelopeEnabled;
+ EnvelopeParams *AmpEnvelope;
+
+ /* Amplitude LFO */
+ unsigned char PAmpLfoEnabled;
+ LFOParams *AmpLfo;
+
+
+
+ /*************************
+ * FILTER PARAMETERS *
+ *************************/
+
+ /* Voice Filter */
+ unsigned char PFilterEnabled;
+ FilterParams *VoiceFilter;
+
+ /* Filter Envelope */
+ unsigned char PFilterEnvelopeEnabled;
+ EnvelopeParams *FilterEnvelope;
+
+ /* LFO Envelope */
+ unsigned char PFilterLfoEnabled;
+ LFOParams *FilterLfo;
+
+ /****************************
+ * MODULLATOR PARAMETERS *
+ ****************************/
+
+ /* Modullator Parameters (0=off,1=Morph,2=RM,3=PM,4=FM.. */
+ unsigned char PFMEnabled;
+
+ /* Voice that I use as modullator instead of FMSmp.
+ It is -1 if I use FMSmp(default).
+ It maynot be equal or bigger than current voice */
+ short int PFMVoice;
+
+ /* Modullator oscillator */
+ OscilGen *FMSmp;
+
+ /* Modullator Volume */
+ unsigned char PFMVolume;
+
+ /* Modullator damping at higher frequencies */
+ unsigned char PFMVolumeDamp;
+
+ /* Modullator Velocity Sensing */
+ unsigned char PFMVelocityScaleFunction;
+
+ /* Fine Detune of the Modullator*/
+ unsigned short int PFMDetune;
+
+ /* Coarse Detune of the Modullator */
+ unsigned short int PFMCoarseDetune;
+
+ /* The detune type */
+ unsigned char PFMDetuneType;
+
+ /* Frequency Envelope of the Modullator */
+ unsigned char PFMFreqEnvelopeEnabled;
+ EnvelopeParams *FMFreqEnvelope;
+
+ /* Frequency Envelope of the Modullator */
+ unsigned char PFMAmpEnvelopeEnabled;
+ EnvelopeParams *FMAmpEnvelope;
+ };
+
+class ADnoteParameters:public Presets{
+ public:
+ ADnoteParameters(FFTwrapper *fft_);
+ ~ADnoteParameters();
+
+ ADnoteGlobalParam GlobalPar;
+ ADnoteVoiceParam VoicePar[NUM_VOICES];
+
+ void defaults();
+ void add2XML(XMLwrapper *xml);
+ void getfromXML(XMLwrapper *xml);
+
+ REALTYPE getBandwidthDetuneMultiplier();
+ private:
+ void defaults(int n);//n is the nvoice
+
+ void EnableVoice(int nvoice);
+ void KillVoice(int nvoice);
+ FFTwrapper *fft;
+
+ void add2XMLsection(XMLwrapper *xml,int n);
+ void getfromXMLsection(XMLwrapper *xml,int n);
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.C
new file mode 100644
index 00000000..30f59161
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.C
@@ -0,0 +1,300 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Controller.C - (Midi) Controllers implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Controller.h"
+#include <math.h>
+#include <stdio.h>
+
+Controller::Controller(){
+ defaults();
+ resetall();
+};
+
+Controller::~Controller(){
+};
+
+void Controller::defaults(){
+ setpitchwheelbendrange(200);//2 halftones
+ expression.receive=1;
+ panning.depth=64;
+ filtercutoff.depth=64;
+ filterq.depth=64;
+ bandwidth.depth=64;
+ bandwidth.exponential=0;
+ modwheel.depth=80;
+ modwheel.exponential=0;
+ fmamp.receive=1;
+ volume.receive=0;
+ sustain.receive=1;
+ NRPN.receive=1;
+
+ portamento.portamento=0;
+ portamento.used=0;
+ portamento.receive=1;
+ portamento.time=64;
+ portamento.updowntimestretch=64;
+ portamento.pitchthresh=3;
+ portamento.pitchthreshtype=1;
+ portamento.noteusing=-1;
+ resonancecenter.depth=64;
+ resonancebandwidth.depth=64;
+
+ initportamento(440.0,440.0);
+ setportamento(0);
+
+};
+
+void Controller::resetall(){
+ setpitchwheel(0);//center
+ setexpression(127);
+ setpanning(64);
+ setfiltercutoff(64);
+ setfilterq(64);
+ setbandwidth(64);
+ setmodwheel(64);
+ setfmamp(127);
+ setvolume(127);
+ setsustain(0);
+ setresonancecenter(64);
+ setresonancebw(64);
+
+ //reset the NRPN
+ NRPN.parhi=-1;
+ NRPN.parlo=-1;
+ NRPN.valhi=-1;
+ NRPN.vallo=-1;
+};
+
+void Controller::setpitchwheel(int value){
+ pitchwheel.data=value;
+ REALTYPE cents=value/8192.0;
+ cents*=pitchwheel.bendrange;
+ pitchwheel.relfreq=pow(2,cents/1200.0);
+ //fprintf(stderr,"%ld %ld -> %.3f\n",pitchwheel.bendrange,pitchwheel.data,pitchwheel.relfreq);fflush(stderr);
+};
+
+void Controller::setpitchwheelbendrange(unsigned short int value){
+ pitchwheel.bendrange=value;
+};
+
+void Controller::setexpression(int value){
+ expression.data=value;
+ if (expression.receive!=0) expression.relvolume=value/127.0;
+ else expression.relvolume=1.0;
+};
+
+void Controller::setpanning(int value){
+ panning.data=value;
+ panning.pan=(value/128.0-0.5)*(panning.depth/64.0);
+};
+
+void Controller::setfiltercutoff(int value){
+ filtercutoff.data=value;
+ filtercutoff.relfreq=(value-64.0)*filtercutoff.depth/4096.0*3.321928;//3.3219..=ln2(10)
+};
+
+void Controller::setfilterq(int value){
+ filterq.data=value;
+ filterq.relq=pow(30.0,(value-64.0)/64.0*(filterq.depth/64.0));
+};
+
+void Controller::setbandwidth(int value){
+ bandwidth.data=value;
+ if (bandwidth.exponential==0) {
+ REALTYPE tmp=pow(25.0,pow(bandwidth.depth/127.0,1.5))-1.0;
+ if ((value<64)&&(bandwidth.depth>=64)) tmp=1.0;
+ bandwidth.relbw=(value/64.0-1.0)*tmp+1.0;
+ if (bandwidth.relbw<0.01) bandwidth.relbw=0.01;
+ } else {
+ bandwidth.relbw=pow(25.0,(value-64.0)/64.0*(bandwidth.depth/64.0));
+ };
+};
+
+void Controller::setmodwheel(int value){
+ modwheel.data=value;
+ if (modwheel.exponential==0) {
+ REALTYPE tmp=pow(25.0,pow(modwheel.depth/127.0,1.5)*2.0)/25.0;
+ if ((value<64)&&(modwheel.depth>=64)) tmp=1.0;
+ modwheel.relmod=(value/64.0-1.0)*tmp+1.0;
+ if (modwheel.relmod<0.0) modwheel.relmod=0.0;
+ } else modwheel.relmod=pow(25.0,(value-64.0)/64.0*(modwheel.depth/80.0));
+};
+
+void Controller::setfmamp(int value){
+ fmamp.data=value;
+ fmamp.relamp=value/127.0;
+ if (fmamp.receive!=0) fmamp.relamp=value/127.0;
+ else fmamp.relamp=1.0;
+};
+
+void Controller::setvolume(int value){
+ volume.data=value;
+ if (volume.receive!=0) volume.volume=pow(0.1,(127-value)/127.0*2.0);
+ else volume.volume=1.0;
+};
+
+void Controller::setsustain(int value){
+ sustain.data=value;
+ if (sustain.receive!=0) sustain.sustain=((value<64) ? 0 : 1 );
+ else sustain.sustain=0;
+};
+
+void Controller::setportamento(int value){
+ portamento.data=value;
+ if (portamento.receive!=0) portamento.portamento=((value<64) ? 0 : 1 );
+};
+
+int Controller::initportamento(REALTYPE oldfreq,REALTYPE newfreq){
+ portamento.x=0.0;
+ if ((portamento.used!=0) || (portamento.portamento==0)) return(0);
+ REALTYPE portamentotime=pow(100.0,portamento.time/127.0)/50.0;//portamento time in seconds
+
+ if ((portamento.updowntimestretch>=64)&&(newfreq<oldfreq)){
+ if (portamento.updowntimestretch==127) return(0);
+ portamentotime*=pow(0.1,(portamento.updowntimestretch-64)/63.0);
+ }
+ if ((portamento.updowntimestretch<64)&&(newfreq>oldfreq)){
+ if (portamento.updowntimestretch==0) return(0);
+ portamentotime*=pow(0.1,(64.0-portamento.updowntimestretch)/64.0);
+ };
+
+ portamento.dx=SOUND_BUFFER_SIZE/(portamentotime*SAMPLE_RATE);
+ portamento.origfreqrap=oldfreq/newfreq;
+
+ REALTYPE tmprap=( (portamento.origfreqrap>1.0) ?
+ (portamento.origfreqrap) :
+ (1.0/portamento.origfreqrap) );
+
+ REALTYPE thresholdrap=pow(2.0,portamento.pitchthresh/12.0);
+ if ((portamento.pitchthreshtype==0) && (tmprap-0.00001>thresholdrap) ) return(0);
+ if ((portamento.pitchthreshtype==1) && (tmprap+0.00001<thresholdrap) ) return(0);
+
+ portamento.used=1;
+ portamento.freqrap=portamento.origfreqrap;
+ return (1);
+};
+
+void Controller::updateportamento(){
+ if (portamento.used==0) return;
+
+ portamento.x+=portamento.dx;
+ if (portamento.x>1.0) {
+ portamento.x=1.0;
+ portamento.used=0;
+ };
+ portamento.freqrap=(1.0-portamento.x)*portamento.origfreqrap+portamento.x;
+};
+
+
+void Controller::setresonancecenter(int value){
+ resonancecenter.data=value;
+ resonancecenter.relcenter=pow(3.0,(value-64.0)/64.0*(resonancecenter.depth/64.0));
+};
+void Controller::setresonancebw(int value){
+ resonancebandwidth.data=value;
+ resonancebandwidth.relbw=pow(1.5,(value-64.0)/64.0*(resonancebandwidth.depth/127.0));
+};
+
+
+//Returns 0 if there is NRPN or 1 if there is not
+int Controller::getnrpn(int *parhi, int *parlo, int *valhi, int *vallo){
+ if (NRPN.receive==0) return(1);
+ if ((NRPN.parhi<0)||(NRPN.parlo<0)||(NRPN.valhi<0)||(NRPN.vallo<0))
+ return(1);
+
+ *parhi=NRPN.parhi;
+ *parlo=NRPN.parlo;
+ *valhi=NRPN.valhi;
+ *vallo=NRPN.vallo;
+ return(0);
+};
+
+
+void Controller::setparameternumber(unsigned int type,int value){
+ switch(type){
+ case C_nrpnhi:NRPN.parhi=value;
+ NRPN.valhi=-1;NRPN.vallo=-1;//clear the values
+ break;
+ case C_nrpnlo:NRPN.parlo=value;
+ NRPN.valhi=-1;NRPN.vallo=-1;//clear the values
+ break;
+ case C_dataentryhi:if ((NRPN.parhi>=0)&&(NRPN.parlo>=0)) NRPN.valhi=value;
+ break;
+ case C_dataentrylo:if ((NRPN.parhi>=0)&&(NRPN.parlo>=0)) NRPN.vallo=value;
+ break;
+ };
+};
+
+
+
+void Controller::add2XML(XMLwrapper *xml){
+ xml->addpar("pitchwheel_bendrange",pitchwheel.bendrange);
+
+ xml->addparbool("expression_receive",expression.receive);
+ xml->addpar("panning_depth",panning.depth);
+ xml->addpar("filter_cutoff_depth",filtercutoff.depth);
+ xml->addpar("filter_q_depth",filterq.depth);
+ xml->addpar("bandwidth_depth",bandwidth.depth);
+ xml->addpar("mod_wheel_depth",modwheel.depth);
+ xml->addparbool("mod_wheel_exponential",modwheel.exponential);
+ xml->addparbool("fm_amp_receive",fmamp.receive);
+ xml->addparbool("volume_receive",volume.receive);
+ xml->addparbool("sustain_receive",sustain.receive);
+
+ xml->addparbool("portamento_receive",portamento.receive);
+ xml->addpar("portamento_time",portamento.time);
+ xml->addpar("portamento_pitchthresh",portamento.pitchthresh);
+ xml->addpar("portamento_pitchthreshtype",portamento.pitchthreshtype);
+ xml->addpar("portamento_portamento",portamento.portamento);
+ xml->addpar("portamento_updowntimestretch",portamento.updowntimestretch);
+
+ xml->addpar("resonance_center_depth",resonancecenter.depth);
+ xml->addpar("resonance_bandwidth_depth",resonancebandwidth.depth);
+};
+
+void Controller::getfromXML(XMLwrapper *xml){
+ pitchwheel.bendrange=xml->getpar("pitchwheel_bendrange",pitchwheel.bendrange,-6400,6400);
+
+ expression.receive=xml->getparbool("expression_receive",expression.receive);
+ panning.depth=xml->getpar127("panning_depth",panning.depth);
+ filtercutoff.depth=xml->getpar127("filter_cutoff_depth",filtercutoff.depth);
+ filterq.depth=xml->getpar127("filter_q_depth",filterq.depth);
+ bandwidth.depth=xml->getpar127("bandwidth_depth",bandwidth.depth);
+ modwheel.depth=xml->getpar127("mod_wheel_depth",modwheel.depth);
+ modwheel.exponential=xml->getparbool("mod_wheel_exponential",modwheel.exponential);
+ fmamp.receive=xml->getparbool("fm_amp_receive",fmamp.receive);
+ volume.receive=xml->getparbool("volume_receive",volume.receive);
+ sustain.receive=xml->getparbool("sustain_receive",sustain.receive);
+
+ portamento.receive=xml->getparbool("portamento_receive",portamento.receive);
+ portamento.time=xml->getpar127("portamento_time",portamento.time);
+ portamento.pitchthresh=xml->getpar127("portamento_pitchthresh",portamento.pitchthresh);
+ portamento.pitchthreshtype=xml->getpar127("portamento_pitchthreshtype",portamento.pitchthreshtype);
+ portamento.portamento=xml->getpar127("portamento_portamento",portamento.portamento);
+ portamento.updowntimestretch=xml->getpar127("portamento_updowntimestretch",portamento.updowntimestretch);
+
+ resonancecenter.depth=xml->getpar127("resonance_center_depth",resonancecenter.depth);
+ resonancebandwidth.depth=xml->getpar127("resonance_bandwidth_depth",resonancebandwidth.depth);
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.h
new file mode 100644
index 00000000..12257b59
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/Controller.h
@@ -0,0 +1,179 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Controller.h - (Midi) Controllers implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+
+#ifndef CONTROLLER_H
+#define CONTROLLER_H
+
+#include "../globals.h"
+#include "../Misc/XMLwrapper.h"
+
+class Controller{
+ public:
+ Controller();
+ ~Controller();
+ void resetall();
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ //Controllers functions
+ void setpitchwheel(int value);
+ void setpitchwheelbendrange(unsigned short int value);
+ void setexpression(int value);
+ void setpanning(int value);
+ void setfiltercutoff(int value);
+ void setfilterq(int value);
+ void setbandwidth(int value);
+ void setmodwheel(int value);
+ void setfmamp(int value);
+ void setvolume(int value);
+ void setsustain(int value);
+ void setportamento(int value);
+ void setresonancecenter(int value);
+ void setresonancebw(int value);
+
+
+ void setparameternumber(unsigned int type,int value);//used for RPN and NRPN's
+ int getnrpn(int *parhi, int *parlo, int *valhi, int *vallo);
+
+ int initportamento(REALTYPE oldfreq,REALTYPE newfreq);//returns 1 if the portamento's conditions are true, else return 0
+ void updateportamento(); //update portamento values
+
+ // Controllers values
+ struct {//Pitch Wheel
+ int data;
+ short int bendrange;//bendrange is in cents
+ REALTYPE relfreq;//the relative frequency (default is 1.0)
+ } pitchwheel;
+
+ struct{//Expression
+ int data;
+ REALTYPE relvolume;
+ unsigned char receive;
+ } expression;
+
+ struct{//Panning
+ int data;
+ REALTYPE pan;
+ unsigned char depth;
+ } panning;
+
+
+ struct{//Filter cutoff
+ int data;
+ REALTYPE relfreq;
+ unsigned char depth;
+ } filtercutoff;
+
+ struct{//Filter Q
+ int data;
+ REALTYPE relq;
+ unsigned char depth;
+ } filterq;
+
+ struct{//Bandwidth
+ int data;
+ REALTYPE relbw;
+ unsigned char depth;
+ unsigned char exponential;
+ } bandwidth;
+
+ struct {//Modulation Wheel
+ int data;
+ REALTYPE relmod;
+ unsigned char depth;
+ unsigned char exponential;
+ } modwheel;
+
+ struct{//FM amplitude
+ int data;
+ REALTYPE relamp;
+ unsigned char receive;
+ } fmamp;
+
+ struct{//Volume
+ int data;
+ REALTYPE volume;
+ unsigned char receive;
+ } volume;
+
+ struct{//Sustain
+ int data,sustain;
+ unsigned char receive;
+ } sustain;
+
+ struct{//Portamento
+ //parameters
+ int data;
+ unsigned char portamento;
+
+ //pitchthresh is the threshold of enabling protamento
+ //pitchthreshtype -> enable the portamento only below(0)/above(1) the threshold
+ unsigned char receive,time,pitchthresh,pitchthreshtype;
+
+ //'up portanemto' means when the frequency is rising (eg: the portamento is from 200Hz to 300 Hz)
+ //'down portanemto' means when the frequency is lowering (eg: the portamento is from 300Hz to 200 Hz)
+ unsigned char updowntimestretch;//this value represent how the portamento time is reduced
+ //0 - for down portamento, 1..63 - the up portamento's time is smaller than the down portamento
+ //64 - the portamento time is always the same
+ //64-126 - the down portamento's time is smaller than the up portamento
+ //127 - for upper portamento
+
+ REALTYPE freqrap;//this value is used to compute the actual portamento
+ int noteusing;//this is used by the Part:: for knowing which note uses the portamento
+ int used;//if a the portamento is used by a note
+ //internal data
+ REALTYPE x,dx;//x is from 0.0 (start portamento) to 1.0 (finished portamento), dx is x increment
+ REALTYPE origfreqrap;// this is used for computing oldfreq value from x
+ } portamento;
+
+ struct{//Resonance Center Frequency
+ int data;
+ REALTYPE relcenter;
+ unsigned char depth;
+ } resonancecenter;
+
+ struct{//Resonance Bandwidth
+ int data;
+ REALTYPE relbw;
+ unsigned char depth;
+ } resonancebandwidth;
+
+
+ /* RPN and NPRPN */
+ struct{//nrpn
+ int parhi,parlo;
+ int valhi,vallo;
+ unsigned char receive;//this is saved to disk by Master
+ } NRPN;
+
+ private:
+};
+
+
+
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.C
new file mode 100644
index 00000000..074d6aee
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.C
@@ -0,0 +1,227 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EnvelopeParams.C - Parameters for Envelope
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+
+#include <math.h>
+#include <stdlib.h>
+#include "EnvelopeParams.h"
+
+EnvelopeParams::EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_):Presets(){
+ int i;
+
+ PA_dt=10;PD_dt=10;PR_dt=10;PA_val=64;PD_val=64;PS_val=64;PR_val=64;
+
+ for (i=0;i<MAX_ENVELOPE_POINTS;i++){
+ Penvdt[i]=32;
+ Penvval[i]=64;
+ };
+ Penvdt[0]=0;//no used
+ Penvsustain=1;
+ Penvpoints=1;
+ Envmode=1;
+ Penvstretch=Penvstretch_;
+ Pforcedrelease=Pforcedrelease_;
+ Pfreemode=1;
+ Plinearenvelope=0;
+
+ store2defaults();
+};
+
+EnvelopeParams::~EnvelopeParams(){
+};
+
+REALTYPE EnvelopeParams::getdt(char i){
+ REALTYPE result=(pow(2.0,Penvdt[i]/127.0*12.0)-1.0)*10.0;//miliseconds
+ return(result);
+};
+
+
+/*
+ * ADSR/ASR... initialisations
+ */
+void EnvelopeParams::ADSRinit(char A_dt,char D_dt,char S_val,char R_dt){
+ setpresettype("Penvamplitude");
+ Envmode=1;
+ PA_dt=A_dt;PD_dt=D_dt;PS_val=S_val;PR_dt=R_dt;
+ Pfreemode=0;
+ converttofree();
+
+ store2defaults();
+};
+
+void EnvelopeParams::ADSRinit_dB(char A_dt,char D_dt,char S_val,char R_dt){
+ setpresettype("Penvamplitude");
+ Envmode=2;
+ PA_dt=A_dt;PD_dt=D_dt;PS_val=S_val;PR_dt=R_dt;
+ Pfreemode=0;
+ converttofree();
+
+ store2defaults();
+};
+
+void EnvelopeParams::ASRinit(char A_val,char A_dt,char R_val,char R_dt){
+ setpresettype("Penvfrequency");
+ Envmode=3;
+ PA_val=A_val;PA_dt=A_dt;PR_val=R_val;PR_dt=R_dt;
+ Pfreemode=0;
+ converttofree();
+
+ store2defaults();
+};
+
+void EnvelopeParams::ADSRinit_filter(char A_val,char A_dt,char D_val,char D_dt,char R_dt,char R_val){
+ setpresettype("Penvfilter");
+ Envmode=4;
+ PA_val=A_val;PA_dt=A_dt;PD_val=D_val;PD_dt=D_dt;PR_dt=R_dt;PR_val=R_val;
+ Pfreemode=0;
+ converttofree();
+ store2defaults();
+};
+
+void EnvelopeParams::ASRinit_bw(char A_val,char A_dt,char R_val,char R_dt){
+ setpresettype("Penvbandwidth");
+ Envmode=5;
+ PA_val=A_val;PA_dt=A_dt;PR_val=R_val;PR_dt=R_dt;
+ Pfreemode=0;
+ converttofree();
+ store2defaults();
+};
+
+/*
+ * Convert the Envelope to freemode
+ */
+void EnvelopeParams::converttofree(){
+ switch (Envmode){
+ case 1: Penvpoints=4;Penvsustain=2;
+ Penvval[0]=0;Penvdt[1]=PA_dt;Penvval[1]=127;
+ Penvdt[2]=PD_dt;Penvval[2]=PS_val;
+ Penvdt[3]=PR_dt;Penvval[3]=0;
+ break;
+ case 2: Penvpoints=4;Penvsustain=2;
+ Penvval[0]=0;Penvdt[1]=PA_dt;
+ Penvval[1]=127;Penvdt[2]=PD_dt;
+ Penvval[2]=PS_val;Penvdt[3]=PR_dt;Penvval[3]=0;
+ break;
+ case 3: Penvpoints=3;Penvsustain=1;
+ Penvval[0]=PA_val;Penvdt[1]=PA_dt;
+ Penvval[1]=64;Penvdt[2]=PR_dt;Penvval[2]=PR_val;
+ break;
+ case 4: Penvpoints=4;Penvsustain=2;
+ Penvval[0]=PA_val;Penvdt[1]=PA_dt;
+ Penvval[1]=PD_val;Penvdt[2]=PD_dt;Penvval[2]=64;
+ Penvdt[3]=PR_dt;Penvval[3]=PR_val;
+ break;
+ case 5: Penvpoints=3;Penvsustain=1;
+ Penvval[0]=PA_val;Penvdt[1]=PA_dt;
+ Penvval[1]=64;Penvdt[2]=PR_dt;Penvval[2]=PR_val;
+ break;
+ };
+};
+
+
+
+
+void EnvelopeParams::add2XML(XMLwrapper *xml){
+ xml->addparbool("free_mode",Pfreemode);
+ xml->addpar("env_points",Penvpoints);
+ xml->addpar("env_sustain",Penvsustain);
+ xml->addpar("env_stretch",Penvstretch);
+ xml->addparbool("forced_release",Pforcedrelease);
+ xml->addparbool("linear_envelope",Plinearenvelope);
+ xml->addpar("A_dt",PA_dt);
+ xml->addpar("D_dt",PD_dt);
+ xml->addpar("R_dt",PR_dt);
+ xml->addpar("A_val",PA_val);
+ xml->addpar("D_val",PD_val);
+ xml->addpar("S_val",PS_val);
+ xml->addpar("R_val",PR_val);
+
+ if ((Pfreemode!=0)||(!xml->minimal)){
+ for (int i=0;i<Penvpoints;i++){
+ xml->beginbranch("POINT",i);
+ if (i!=0) xml->addpar("dt",Penvdt[i]);
+ xml->addpar("val",Penvval[i]);
+ xml->endbranch();
+ };
+ };
+};
+
+
+
+void EnvelopeParams::getfromXML(XMLwrapper *xml){
+ Pfreemode=xml->getparbool("free_mode",Pfreemode);
+ Penvpoints=xml->getpar127("env_points",Penvpoints);
+ Penvsustain=xml->getpar127("env_sustain",Penvsustain);
+ Penvstretch=xml->getpar127("env_stretch",Penvstretch);
+ Pforcedrelease=xml->getparbool("forced_release",Pforcedrelease);
+ Plinearenvelope=xml->getparbool("linear_envelope",Plinearenvelope);
+
+ PA_dt=xml->getpar127("A_dt",PA_dt);
+ PD_dt=xml->getpar127("D_dt",PD_dt);
+ PR_dt=xml->getpar127("R_dt",PR_dt);
+ PA_val=xml->getpar127("A_val",PA_val);
+ PD_val=xml->getpar127("D_val",PD_val);
+ PS_val=xml->getpar127("S_val",PS_val);
+ PR_val=xml->getpar127("R_val",PR_val);
+
+ for (int i=0;i<Penvpoints;i++){
+ if (xml->enterbranch("POINT",i)==0) continue;
+ if (i!=0) Penvdt[i]=xml->getpar127("dt",Penvdt[i]);
+ Penvval[i]=xml->getpar127("val",Penvval[i]);
+ xml->exitbranch();
+ };
+
+ if (!Pfreemode) converttofree();
+};
+
+
+void EnvelopeParams::defaults(){
+ Penvstretch=Denvstretch;
+ Pforcedrelease=Dforcedrelease;
+ Plinearenvelope=Dlinearenvelope;
+ PA_dt=DA_dt;
+ PD_dt=DD_dt;
+ PR_dt=DR_dt;
+ PA_val=DA_val;
+ PD_val=DD_val;
+ PS_val=DS_val;
+ PR_val=DR_val;
+ Pfreemode=0;
+ converttofree();
+};
+
+void EnvelopeParams::store2defaults(){
+ Denvstretch=Penvstretch;
+ Dforcedrelease=Pforcedrelease;
+ Dlinearenvelope=Plinearenvelope;
+ DA_dt=PA_dt;
+ DD_dt=PD_dt;
+ DR_dt=PR_dt;
+ DA_val=PA_val;
+ DD_val=PD_val;
+ DS_val=PS_val;
+ DR_val=PR_val;
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.h
new file mode 100644
index 00000000..793291c6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/EnvelopeParams.h
@@ -0,0 +1,86 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ EnvelopeParams.h - Parameters for Envelope
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ENVELOPE_PARAMS_H
+#define ENVELOPE_PARAMS_H
+
+#include "../globals.h"
+#include "../Misc/XMLwrapper.h"
+#include "Presets.h"
+
+#define MAX_ENVELOPE_POINTS 40
+#define MIN_ENVELOPE_DB -40
+
+class EnvelopeParams:public Presets{
+ public:
+ EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_);
+ ~EnvelopeParams();
+ void ADSRinit(char A_dt,char D_dt,char S_val,char R_dt);
+ void ADSRinit_dB(char A_dt,char D_dt,char S_val,char R_dt);
+ void ASRinit(char A_val,char A_dt,char R_val,char R_dt);
+ void ADSRinit_filter(char A_val,char A_dt,char D_val,char D_dt,char R_dt,char R_val);
+ void ASRinit_bw(char A_val,char A_dt,char R_val,char R_dt);
+ void converttofree();
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ REALTYPE getdt(char i);
+
+ /* Parametrii MIDI */
+ unsigned char Pfreemode;//1 daca este in modul free sau 0 daca este in mod ADSR,ASR,...
+ unsigned char Penvpoints;
+ unsigned char Penvsustain;//127 pentru dezactivat
+ unsigned char Penvdt[MAX_ENVELOPE_POINTS];
+ unsigned char Penvval[MAX_ENVELOPE_POINTS];
+ unsigned char Penvstretch;//64=normal stretch (piano-like), 0=no stretch
+ unsigned char Pforcedrelease;//0 - OFF, 1 - ON
+ unsigned char Plinearenvelope;//if the amplitude envelope is linear
+
+ unsigned char PA_dt,PD_dt,PR_dt,
+ PA_val,PD_val,PS_val,PR_val;
+
+
+
+ int Envmode;// 1 for ADSR parameters (linear amplitude)
+ // 2 for ADSR_dB parameters (dB amplitude)
+ // 3 for ASR parameters (frequency LFO)
+ // 4 for ADSR_filter parameters (filter parameters)
+ // 5 for ASR_bw parameters (bandwidth parameters)
+
+ private:
+ void store2defaults();
+
+ /* Default parameters */
+ unsigned char Denvstretch;
+ unsigned char Dforcedrelease;
+ unsigned char Dlinearenvelope;
+ unsigned char DA_dt,DD_dt,DR_dt,
+ DA_val,DD_val,DS_val,DR_val;
+
+
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.C
new file mode 100644
index 00000000..073f6711
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.C
@@ -0,0 +1,344 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FilterParams.C - Parameters for filter
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "FilterParams.h"
+
+FilterParams::FilterParams(unsigned char Ptype_,unsigned char Pfreq_,unsigned char Pq_):Presets(){
+ setpresettype("Pfilter");
+ Dtype=Ptype_;
+ Dfreq=Pfreq_;
+ Dq=Pq_;
+
+ changed=false;
+ defaults();
+};
+
+FilterParams::~FilterParams(){
+};
+
+
+void FilterParams::defaults(){
+ Ptype=Dtype;
+ Pfreq=Dfreq;
+ Pq=Dq;
+
+ Pstages=0;
+ Pfreqtrack=64;
+ Pgain=64;
+ Pcategory=0;
+
+ Pnumformants=3;
+ Pformantslowness=64;
+ for (int j=0;j<FF_MAX_VOWELS;j++){
+ defaults(j);
+ };
+
+ Psequencesize=3;
+ for (int i=0;i<FF_MAX_SEQUENCE;i++) Psequence[i].nvowel=i%FF_MAX_VOWELS;
+
+ Psequencestretch=40;
+ Psequencereversed=0;
+ Pcenterfreq=64;//1 kHz
+ Poctavesfreq=64;
+ Pvowelclearness=64;
+};
+
+void FilterParams::defaults(int n){
+ int j=n;
+ for (int i=0;i<FF_MAX_FORMANTS;i++){
+ Pvowels[j].formants[i].freq=(int)(RND*127.0);//some random freqs
+ Pvowels[j].formants[i].q=64;
+ Pvowels[j].formants[i].amp=127;
+ };
+};
+
+
+/*
+ * Get the parameters from other FilterParams
+ */
+
+void FilterParams::getfromFilterParams(FilterParams *pars){
+ defaults();
+
+ if (pars==NULL) return;
+
+ Ptype=pars->Ptype;
+ Pfreq=pars->Pfreq;
+ Pq=pars->Pq;
+
+ Pstages=pars->Pstages;
+ Pfreqtrack=pars->Pfreqtrack;
+ Pgain=pars->Pgain;
+ Pcategory=pars->Pcategory;
+
+ Pnumformants=pars->Pnumformants;
+ Pformantslowness=pars->Pformantslowness;
+ for (int j=0;j<FF_MAX_VOWELS;j++){
+ for (int i=0;i<FF_MAX_FORMANTS;i++){
+ Pvowels[j].formants[i].freq=pars->Pvowels[j].formants[i].freq;
+ Pvowels[j].formants[i].q=pars->Pvowels[j].formants[i].q;
+ Pvowels[j].formants[i].amp=pars->Pvowels[j].formants[i].amp;
+ };
+ };
+
+ Psequencesize=pars->Psequencesize;
+ for (int i=0;i<FF_MAX_SEQUENCE;i++) Psequence[i].nvowel=pars->Psequence[i].nvowel;
+
+ Psequencestretch=pars->Psequencestretch;
+ Psequencereversed=pars->Psequencereversed;
+ Pcenterfreq=pars->Pcenterfreq;
+ Poctavesfreq=pars->Poctavesfreq;
+ Pvowelclearness=pars->Pvowelclearness;
+};
+
+
+/*
+ * Parameter control
+ */
+REALTYPE FilterParams::getfreq(){
+ return((Pfreq/64.0-1.0)*5.0);
+};
+
+REALTYPE FilterParams::getq(){
+ return(exp(pow((REALTYPE) Pq/127.0,2)*log(1000.0))-0.9);
+};
+REALTYPE FilterParams::getfreqtracking(REALTYPE notefreq){
+ return(log(notefreq/440.0)*(Pfreqtrack-64.0)/(64.0*LOG_2));
+};
+
+REALTYPE FilterParams::getgain(){
+ return((Pgain/64.0-1.0)*30.0);//-30..30dB
+};
+
+/*
+ * Get the center frequency of the formant's graph
+ */
+REALTYPE FilterParams::getcenterfreq(){
+ return(10000.0*pow(10,-(1.0-Pcenterfreq/127.0)*2.0));
+};
+
+/*
+ * Get the number of octave that the formant functions applies to
+ */
+REALTYPE FilterParams::getoctavesfreq(){
+ return(0.25+10.0*Poctavesfreq/127.0);
+};
+
+/*
+ * Get the frequency from x, where x is [0..1]
+ */
+REALTYPE FilterParams::getfreqx(REALTYPE x){
+ if (x>1.0) x=1.0;
+ REALTYPE octf=pow(2.0,getoctavesfreq());
+ return(getcenterfreq()/sqrt(octf)*pow(octf,x));
+};
+
+/*
+ * Get the x coordinate from frequency (used by the UI)
+ */
+REALTYPE FilterParams::getfreqpos(REALTYPE freq){
+ return((log(freq)-log(getfreqx(0.0)))/log(2.0)/getoctavesfreq());
+};
+
+
+/*
+ * Get the freq. response of the formant filter
+ */
+void FilterParams::formantfilterH(int nvowel,int nfreqs,REALTYPE *freqs){
+ REALTYPE c[3],d[3];
+ REALTYPE filter_freq,filter_q,filter_amp;
+ REALTYPE omega,sn,cs,alpha;
+
+ for (int i=0;i<nfreqs;i++) freqs[i]=0.0;
+
+ //for each formant...
+ for (int nformant=0;nformant<Pnumformants;nformant++){
+ //compute formant parameters(frequency,amplitude,etc.)
+ filter_freq=getformantfreq(Pvowels[nvowel].formants[nformant].freq);
+ filter_q=getformantq(Pvowels[nvowel].formants[nformant].q)*getq();
+ if (Pstages>0) filter_q=(filter_q>1.0 ? pow(filter_q,1.0/(Pstages+1)) : filter_q);
+
+ filter_amp=getformantamp(Pvowels[nvowel].formants[nformant].amp);
+
+
+ if (filter_freq<=(SAMPLE_RATE/2-100.0)){
+ omega=2*PI*filter_freq/SAMPLE_RATE;
+ sn=sin(omega);
+ cs=cos(omega);
+ alpha=sn/(2*filter_q);
+ REALTYPE tmp=1+alpha;
+ c[0]=alpha/tmp*sqrt(filter_q+1);
+ c[1]=0;
+ c[2]=-alpha/tmp*sqrt(filter_q+1);
+ d[1]=-2*cs/tmp*(-1);
+ d[2]=(1-alpha)/tmp*(-1);
+ } else continue;
+
+
+ for (int i=0;i<nfreqs;i++) {
+ REALTYPE freq=getfreqx(i/(REALTYPE) nfreqs);
+ if (freq>SAMPLE_RATE/2) {
+ for (int tmp=i;tmp<nfreqs;tmp++) freqs[tmp]=0.0;
+ break;
+ };
+ REALTYPE fr=freq/SAMPLE_RATE*PI*2.0;
+ REALTYPE x=c[0],y=0.0;
+ for (int n=1;n<3;n++){
+ x+=cos(n*fr)*c[n];
+ y-=sin(n*fr)*c[n];
+ };
+ REALTYPE h=x*x+y*y;
+ x=1.0;y=0.0;
+ for (int n=1;n<3;n++){
+ x-=cos(n*fr)*d[n];
+ y+=sin(n*fr)*d[n];
+ };
+ h=h/(x*x+y*y);
+
+ freqs[i]+=pow(h,(Pstages+1.0)/2.0)*filter_amp;
+ };
+ };
+ for (int i=0;i<nfreqs;i++) {
+ if (freqs[i]>0.000000001) freqs[i]=rap2dB(freqs[i])+getgain();
+ else freqs[i]=-90.0;
+ };
+
+};
+
+/*
+ * Transforms a parameter to the real value
+ */
+REALTYPE FilterParams::getformantfreq(unsigned char freq){
+ REALTYPE result=getfreqx(freq/127.0);
+ return(result);
+};
+
+REALTYPE FilterParams::getformantamp(unsigned char amp){
+ REALTYPE result=pow(0.1,(1.0-amp/127.0)*4.0);
+ return(result);
+};
+
+REALTYPE FilterParams::getformantq(unsigned char q){
+ //temp
+ REALTYPE result=pow(25.0,(q-32.0)/64.0);
+ return(result);
+};
+
+
+
+void FilterParams::add2XMLsection(XMLwrapper *xml,int n){
+ int nvowel=n;
+ for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){
+ xml->beginbranch("FORMANT",nformant);
+ xml->addpar("freq",Pvowels[nvowel].formants[nformant].freq);
+ xml->addpar("amp",Pvowels[nvowel].formants[nformant].amp);
+ xml->addpar("q",Pvowels[nvowel].formants[nformant].q);
+ xml->endbranch();
+ };
+};
+
+void FilterParams::add2XML(XMLwrapper *xml){
+ //filter parameters
+ xml->addpar("category",Pcategory);
+ xml->addpar("type",Ptype);
+ xml->addpar("freq",Pfreq);
+ xml->addpar("q",Pq);
+ xml->addpar("stages",Pstages);
+ xml->addpar("freq_track",Pfreqtrack);
+ xml->addpar("gain",Pgain);
+
+ //formant filter parameters
+ if ((Pcategory==1)||(!xml->minimal)){
+ xml->beginbranch("FORMANT_FILTER");
+ xml->addpar("num_formants",Pnumformants);
+ xml->addpar("formant_slowness",Pformantslowness);
+ xml->addpar("vowel_clearness",Pvowelclearness);
+ xml->addpar("center_freq",Pcenterfreq);
+ xml->addpar("octaves_freq",Poctavesfreq);
+ for (int nvowel=0;nvowel<FF_MAX_VOWELS;nvowel++){
+ xml->beginbranch("VOWEL",nvowel);
+ add2XMLsection(xml,nvowel);
+ xml->endbranch();
+ };
+ xml->addpar("sequence_size",Psequencesize);
+ xml->addpar("sequence_stretch",Psequencestretch);
+ xml->addparbool("sequence_reversed",Psequencereversed);
+ for (int nseq=0;nseq<FF_MAX_SEQUENCE;nseq++){
+ xml->beginbranch("SEQUENCE_POS",nseq);
+ xml->addpar("vowel_id",Psequence[nseq].nvowel);
+ xml->endbranch();
+ };
+ xml->endbranch();
+ };
+};
+
+
+void FilterParams::getfromXMLsection(XMLwrapper *xml,int n){
+ int nvowel=n;
+ for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){
+ if (xml->enterbranch("FORMANT",nformant)==0) continue;
+ Pvowels[nvowel].formants[nformant].freq=xml->getpar127("freq",Pvowels[nvowel].formants[nformant].freq);
+ Pvowels[nvowel].formants[nformant].amp=xml->getpar127("amp",Pvowels[nvowel].formants[nformant].amp);
+ Pvowels[nvowel].formants[nformant].q=xml->getpar127("q",Pvowels[nvowel].formants[nformant].q);
+ xml->exitbranch();
+ };
+};
+
+void FilterParams::getfromXML(XMLwrapper *xml){
+ //filter parameters
+ Pcategory=xml->getpar127("category",Pcategory);
+ Ptype=xml->getpar127("type",Ptype);
+ Pfreq=xml->getpar127("freq",Pfreq);
+ Pq=xml->getpar127("q",Pq);
+ Pstages=xml->getpar127("stages",Pstages);
+ Pfreqtrack=xml->getpar127("freq_track",Pfreqtrack);
+ Pgain=xml->getpar127("gain",Pgain);
+
+ //formant filter parameters
+ if(xml->enterbranch("FORMANT_FILTER")){
+ Pnumformants=xml->getpar127("num_formants",Pnumformants);
+ Pformantslowness=xml->getpar127("formant_slowness",Pformantslowness);
+ Pvowelclearness=xml->getpar127("vowel_clearness",Pvowelclearness);
+ Pcenterfreq=xml->getpar127("center_freq",Pcenterfreq);
+ Poctavesfreq=xml->getpar127("octaves_freq",Poctavesfreq);
+
+ for (int nvowel=0;nvowel<FF_MAX_VOWELS;nvowel++){
+ if (xml->enterbranch("VOWEL",nvowel)==0) continue;
+ getfromXMLsection(xml,nvowel);
+ xml->exitbranch();
+ };
+ Psequencesize=xml->getpar127("sequence_size",Psequencesize);
+ Psequencestretch=xml->getpar127("sequence_stretch",Psequencestretch);
+ Psequencereversed=xml->getparbool("sequence_reversed",Psequencereversed);
+ for (int nseq=0;nseq<FF_MAX_SEQUENCE;nseq++){
+ if (xml->enterbranch("SEQUENCE_POS",nseq)==0) continue;
+ Psequence[nseq].nvowel=xml->getpar("vowel_id",Psequence[nseq].nvowel,0,FF_MAX_VOWELS-1);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.h
new file mode 100644
index 00000000..58ebd589
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/FilterParams.h
@@ -0,0 +1,100 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FilterParams.h - Parameters for filter
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FILTER_PARAMS_H
+#define FILTER_PARAMS_H
+
+#include "../globals.h"
+#include "../Misc/XMLwrapper.h"
+#include "Presets.h"
+
+class FilterParams:public Presets{
+ public:
+ FilterParams(unsigned char Ptype_,unsigned char Pfreq,unsigned char Pq_);
+ ~FilterParams();
+
+ void add2XML(XMLwrapper *xml);
+ void add2XMLsection(XMLwrapper *xml,int n);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+ void getfromXMLsection(XMLwrapper *xml,int n);
+
+
+ void getfromFilterParams(FilterParams *pars);
+
+ REALTYPE getfreq();
+ REALTYPE getq();
+ REALTYPE getfreqtracking(REALTYPE notefreq);
+ REALTYPE getgain();
+
+ unsigned char Pcategory;//Filter category (Analog/Formant/StVar)
+ unsigned char Ptype;// Filter type (for analog lpf,hpf,bpf..)
+ unsigned char Pfreq;// Frequency (64-central frequency)
+ unsigned char Pq; // Q parameters (resonance or bandwidth)
+ unsigned char Pstages; //filter stages+1
+ unsigned char Pfreqtrack;//how the filter frequency is changing according the note frequency
+ unsigned char Pgain;//filter's output gain
+
+ //Formant filter parameters
+ unsigned char Pnumformants;//how many formants are used
+ unsigned char Pformantslowness;//how slow varies the formants
+ unsigned char Pvowelclearness;//how vowels are kept clean (how much try to avoid "mixed" vowels)
+ unsigned char Pcenterfreq,Poctavesfreq;//the center frequency of the res. func., and the number of octaves
+
+ struct {
+ struct {
+ unsigned char freq,amp,q;//frequency,amplitude,Q
+ }formants[FF_MAX_FORMANTS];
+ }Pvowels[FF_MAX_VOWELS];
+
+
+ unsigned char Psequencesize;//how many vowels are in the sequence
+ unsigned char Psequencestretch;//how the sequence is stretched (how the input from filter envelopes/LFOs/etc. is "stretched")
+ unsigned char Psequencereversed;//if the input from filter envelopes/LFOs/etc. is reversed(negated)
+ struct {
+ unsigned char nvowel;//the vowel from the position
+ } Psequence[FF_MAX_SEQUENCE];
+
+ REALTYPE getcenterfreq();
+ REALTYPE getoctavesfreq();
+ REALTYPE getfreqpos(REALTYPE freq);
+ REALTYPE getfreqx(REALTYPE x);
+
+ void formantfilterH(int nvowel,int nfreqs,REALTYPE *freqs);//used by UI
+
+ REALTYPE getformantfreq(unsigned char freq);
+ REALTYPE getformantamp(unsigned char amp);
+ REALTYPE getformantq(unsigned char q);
+
+ bool changed;
+
+ private:
+ void defaults(int n);
+
+ //stored default parameters
+ unsigned char Dtype;
+ unsigned char Dfreq;
+ unsigned char Dq;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.C
new file mode 100644
index 00000000..0f9c816d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.C
@@ -0,0 +1,91 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ LFOParams.C - Parameters for LFO
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdio.h>
+#include "../globals.h"
+#include "LFOParams.h"
+
+int LFOParams::time;
+
+LFOParams::LFOParams(char Pfreq_,char Pintensity_,char Pstartphase_, char PLFOtype_,char Prandomness_, char Pdelay_,char Pcontinous_,char fel_):Presets(){
+ switch(fel_) {
+ case 0:setpresettype("Plfofrequency");
+ break;
+ case 1:setpresettype("Plfoamplitude");
+ break;
+ case 2:setpresettype("Plfofilter");
+ break;
+ };
+ Dfreq=Pfreq_;
+ Dintensity=Pintensity_;
+ Dstartphase=Pstartphase_;
+ DLFOtype=PLFOtype_;
+ Drandomness=Prandomness_;
+ Ddelay=Pdelay_;
+ Dcontinous=Pcontinous_;
+ fel=fel_;
+ time=0;
+
+ defaults();
+};
+
+LFOParams::~LFOParams(){
+};
+
+void LFOParams::defaults(){
+ Pfreq=Dfreq/127.0;
+ Pintensity=Dintensity;
+ Pstartphase=Dstartphase;
+ PLFOtype=DLFOtype;
+ Prandomness=Drandomness;
+ Pdelay=Ddelay;
+ Pcontinous=Dcontinous;
+ Pfreqrand=0;
+ Pstretch=64;
+};
+
+
+void LFOParams::add2XML(XMLwrapper *xml){
+ xml->addparreal("freq",Pfreq);
+ xml->addpar("intensity",Pintensity);
+ xml->addpar("start_phase",Pstartphase);
+ xml->addpar("lfo_type",PLFOtype);
+ xml->addpar("randomness_amplitude",Prandomness);
+ xml->addpar("randomness_frequency",Pfreqrand);
+ xml->addpar("delay",Pdelay);
+ xml->addpar("stretch",Pstretch);
+ xml->addparbool("continous",Pcontinous);
+};
+
+void LFOParams::getfromXML(XMLwrapper *xml){
+ Pfreq=xml->getparreal("freq",Pfreq,0.0,1.0);
+ Pintensity=xml->getpar127("intensity",Pintensity);
+ Pstartphase=xml->getpar127("start_phase",Pstartphase);
+ PLFOtype=xml->getpar127("lfo_type",PLFOtype);
+ Prandomness=xml->getpar127("randomness_amplitude",Prandomness);
+ Pfreqrand=xml->getpar127("randomness_frequency",Pfreqrand);
+ Pdelay=xml->getpar127("delay",Pdelay);
+ Pstretch=xml->getpar127("stretch",Pstretch);
+ Pcontinous=xml->getparbool("continous",Pcontinous);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.h
new file mode 100644
index 00000000..48a0d5d2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/LFOParams.h
@@ -0,0 +1,64 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ LFOParams.h - Parameters for LFO
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef LFO_PARAMS_H
+#define LFO_PARAMS_H
+
+#include "../Misc/XMLwrapper.h"
+#include "Presets.h"
+
+class LFOParams:public Presets{
+ public:
+ LFOParams(char Pfreq_,char Pintensity_,char Pstartphase_, char PLFOtype_,char Prandomness_, char Pdelay_,char Pcontinous,char fel_);
+ ~LFOParams();
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ /* Parametrii MIDI */
+ REALTYPE Pfreq; // frequency
+ unsigned char Pintensity; // intensity
+ unsigned char Pstartphase;// start phase (0=random)
+ unsigned char PLFOtype; // LFO type (sin,triangle,square,ramp,...)
+ unsigned char Prandomness;// randomness (0=off)
+ unsigned char Pfreqrand; // frequency randomness (0=off)
+ unsigned char Pdelay; // delay (0=off)
+ unsigned char Pcontinous; // 1 if LFO is continous
+ unsigned char Pstretch; // how the LFO is "stretched" according the note frequency (64=no stretch)
+
+ int fel;//what kind is the LFO (0 - frequency, 1 - amplitude, 2 - filter)
+ static int time;//is used by Pcontinous parameter
+ private:
+ /* Default parameters */
+ unsigned char Dfreq;
+ unsigned char Dintensity;
+ unsigned char Dstartphase;
+ unsigned char DLFOtype;
+ unsigned char Drandomness;
+ unsigned char Ddelay;
+ unsigned char Dcontinous;
+
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.C
new file mode 100644
index 00000000..0c62e53b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.C
@@ -0,0 +1,742 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PADnoteParameters.C - Parameters for PADnote (PADsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+#include <math.h>
+#include "PADnoteParameters.h"
+#include "../Misc/Master.h"
+
+PADnoteParameters::PADnoteParameters(FFTwrapper *fft_,Master* master_):Presets(){
+ setpresettype("Ppadsyth");
+
+ fft=fft_;
+ master=master_;
+
+ resonance=new Resonance();
+ oscilgen=new OscilGen(fft_,resonance);
+ oscilgen->ADvsPAD=true;
+
+ FreqEnvelope=new EnvelopeParams(0,0);
+ FreqEnvelope->ASRinit(64,50,64,60);
+ FreqLfo=new LFOParams(70,0,64,0,0,0,0,0);
+
+ AmpEnvelope=new EnvelopeParams(64,1);
+ AmpEnvelope->ADSRinit_dB(0,40,127,25);
+ AmpLfo=new LFOParams(80,0,64,0,0,0,0,1);
+
+ GlobalFilter=new FilterParams(2,94,40);
+ FilterEnvelope=new EnvelopeParams(0,1);
+ FilterEnvelope->ADSRinit_filter(64,40,64,70,60,64);
+ FilterLfo=new LFOParams(80,0,64,0,0,0,0,2);
+
+ for (int i=0;i<PAD_MAX_SAMPLES;i++) sample[i].smp=NULL;
+ newsample.smp=NULL;
+
+ defaults();
+};
+
+PADnoteParameters::~PADnoteParameters(){
+ deletesamples();
+ delete(oscilgen);
+ delete(resonance);
+
+ delete(FreqEnvelope);
+ delete(FreqLfo);
+ delete(AmpEnvelope);
+ delete(AmpLfo);
+ delete(GlobalFilter);
+ delete(FilterEnvelope);
+ delete(FilterLfo);
+
+};
+
+void PADnoteParameters::defaults(){
+ Pmode=0;
+ Php.base.type=0;
+ Php.base.par1=80;
+ Php.freqmult=0;
+ Php.modulator.par1=0;
+ Php.modulator.freq=30;
+ Php.width=127;
+ Php.amp.type=0;
+ Php.amp.mode=0;
+ Php.amp.par1=80;
+ Php.amp.par2=64;
+ Php.autoscale=true;
+ Php.onehalf=0;
+
+ setPbandwidth(500);
+ Pbwscale=0;
+
+ resonance->defaults();
+ oscilgen->defaults();
+
+ Phrpos.type=0;
+ Phrpos.par1=64;
+ Phrpos.par2=64;
+ Phrpos.par3=0;
+
+ Pquality.samplesize=3;
+ Pquality.basenote=4;
+ Pquality.oct=3;
+ Pquality.smpoct=2;
+
+ PStereo=1;//stereo
+ /* Frequency Global Parameters */
+ Pfixedfreq=0;
+ PfixedfreqET=0;
+ PDetune=8192;//zero
+ PCoarseDetune=0;
+ PDetuneType=1;
+ FreqEnvelope->defaults();
+ FreqLfo->defaults();
+
+ /* Amplitude Global Parameters */
+ PVolume=90;
+ PPanning=64;//center
+ PAmpVelocityScaleFunction=64;
+ AmpEnvelope->defaults();
+ AmpLfo->defaults();
+ PPunchStrength=0;
+ PPunchTime=60;
+ PPunchStretch=64;
+ PPunchVelocitySensing=72;
+
+ /* Filter Global Parameters*/
+ PFilterVelocityScale=64;
+ PFilterVelocityScaleFunction=64;
+ GlobalFilter->defaults();
+ FilterEnvelope->defaults();
+ FilterLfo->defaults();
+
+ deletesamples();
+};
+
+void PADnoteParameters::deletesample(int n){
+ if ((n<0)||(n>=PAD_MAX_SAMPLES)) return;
+ if (sample[n].smp!=NULL){
+ delete(sample[n].smp);
+ sample[n].smp=NULL;
+ };
+ sample[n].size=0;
+ sample[n].basefreq=440.0;
+};
+
+void PADnoteParameters::deletesamples(){
+ for (int i=0;i<PAD_MAX_SAMPLES;i++) deletesample(i);
+};
+
+/*
+ * Get the harmonic profile (i.e. the frequency distributio of a single harmonic)
+ */
+REALTYPE PADnoteParameters::getprofile(REALTYPE *smp,int size){
+ for (int i=0;i<size;i++) smp[i]=0.0;
+ const int supersample=16;
+ REALTYPE basepar=pow(2.0,(1.0-Php.base.par1/127.0)*12.0);
+ REALTYPE freqmult=floor(pow(2.0,Php.freqmult/127.0*5.0)+0.000001);
+
+ REALTYPE modfreq=floor(pow(2.0,Php.modulator.freq/127.0*5.0)+0.000001);
+ REALTYPE modpar1=pow(Php.modulator.par1/127.0,4.0)*5.0/sqrt(modfreq);
+ REALTYPE amppar1=pow(2.0,pow(Php.amp.par1/127.0,2.0)*10.0)-0.999;
+ REALTYPE amppar2=(1.0-Php.amp.par2/127.0)*0.998+0.001;
+ REALTYPE width=pow(150.0/(Php.width+22.0),2.0);
+
+ for (int i=0;i<size*supersample;i++){
+ bool makezero=false;
+ REALTYPE x=i*1.0/(size*(REALTYPE) supersample);
+
+ REALTYPE origx=x;
+
+ //do the sizing (width)
+ x=(x-0.5)*width+0.5;
+ if (x<0.0) {
+ x=0.0;
+ makezero=true;
+ } else {
+ if (x>1.0) {
+ x=1.0;
+ makezero=true;
+ };
+ };
+
+ //compute the full profile or one half
+ switch(Php.onehalf){
+ case 1:x=x*0.5+0.5;
+ break;
+ case 2:x=x*0.5;
+ break;
+ };
+
+ REALTYPE x_before_freq_mult=x;
+
+ //do the frequency multiplier
+ x*=freqmult;
+
+ //do the modulation of the profile
+ x+=sin(x_before_freq_mult*3.1415926*modfreq)*modpar1;
+ x=fmod(x+1000.0,1.0)*2.0-1.0;
+
+
+ //this is the base function of the profile
+ REALTYPE f;
+ switch (Php.base.type){
+ case 1:f=exp(-(x*x)*basepar);if (f<0.4) f=0.0; else f=1.0;
+ break;
+ case 2:f=exp(-(fabs(x))*sqrt(basepar));
+ break;
+ default:f=exp(-(x*x)*basepar);
+ break;
+ };
+ if (makezero) f=0.0;
+
+ REALTYPE amp=1.0;
+ origx=origx*2.0-1.0;
+
+ //compute the amplitude multiplier
+ switch(Php.amp.type){
+ case 1:amp=exp(-(origx*origx)*10.0*amppar1);
+ break;
+ case 2:amp=0.5*(1.0+cos(3.1415926*origx*sqrt(amppar1*4.0+1.0)));
+ break;
+ case 3:amp=1.0/(pow(origx*(amppar1*2.0+0.8),14.0)+1.0);
+ break;
+ };
+
+ //apply the amplitude multiplier
+ REALTYPE finalsmp=f;
+ if (Php.amp.type!=0){
+ switch(Php.amp.mode){
+ case 0:finalsmp=amp*(1.0-amppar2)+finalsmp*amppar2;
+ break;
+ case 1:finalsmp*=amp*(1.0-amppar2)+amppar2;
+ break;
+ case 2:finalsmp=finalsmp/(amp+pow(amppar2,4.0)*20.0+0.0001);
+ break;
+ case 3:finalsmp=amp/(finalsmp+pow(amppar2,4.0)*20.0+0.0001);
+ break;
+ };
+ };
+
+ smp[i/supersample]+=finalsmp/supersample;
+ };
+
+ //normalize the profile (make the max. to be equal to 1.0)
+ REALTYPE max=0.0;
+ for (int i=0;i<size;i++) {
+ if (smp[i]<0.0) smp[i]=0.0;
+ if (smp[i]>max) max=smp[i];
+ };
+ if (max<0.00001) max=1.0;
+ for (int i=0;i<size;i++) smp[i]/=max;
+
+ if (!Php.autoscale) return(0.5);
+
+ //compute the estimated perceived bandwidth
+ REALTYPE sum=0.0;
+ int i;
+ for (i=0;i<size/2-2;i++) {
+ sum+=smp[i]*smp[i]+smp[size-i-1]*smp[size-i-1];
+ if (sum>=4.0) break;
+ };
+
+ REALTYPE result=1.0-2.0*i/(REALTYPE) size;
+ return(result);
+};
+
+/*
+ * Compute the real bandwidth in cents and returns it
+ * Also, sets the bandwidth parameter
+ */
+REALTYPE PADnoteParameters::setPbandwidth(int Pbandwidth){
+ this->Pbandwidth=Pbandwidth;
+ REALTYPE result=pow(Pbandwidth/1000.0,1.1);
+ result=pow(10.0,result*4.0)*0.25;
+ return(result);
+};
+
+/*
+ * Get the harmonic(overtone) position
+ */
+REALTYPE PADnoteParameters::getNhr(int n){
+ REALTYPE result=1.0;
+ REALTYPE par1=pow(10.0,-(1.0-Phrpos.par1/255.0)*3.0);
+ REALTYPE par2=Phrpos.par2/255.0;
+
+ REALTYPE n0=n-1.0;
+ REALTYPE tmp=0.0;
+ int thresh=0;
+ switch(Phrpos.type){
+ case 1:
+ thresh=(int)(par2*par2*100.0)+1;
+ if (n<thresh) result=n;
+ else result=1.0+n0+(n0-thresh+1.0)*par1*8.0;
+ break;
+ case 2:
+ thresh=(int)(par2*par2*100.0)+1;
+ if (n<thresh) result=n;
+ else result=1.0+n0-(n0-thresh+1.0)*par1*0.90;
+ break;
+ case 3:
+ tmp=par1*100.0+1.0;
+ result=pow(n0/tmp,1.0-par2*0.8)*tmp+1.0;
+ break;
+ case 4:
+ result=n0*(1.0-par1)+pow(n0*0.1,par2*3.0+1.0)*par1*10.0+1.0;
+ break;
+ case 5:
+ result=n0+sin(n0*par2*par2*PI*0.999)*sqrt(par1)*2.0+1.0;
+ break;
+ case 6:
+ tmp=pow(par2*2.0,2.0)+0.1;
+ result=n0*pow(1.0+par1*pow(n0*0.8,tmp),tmp)+1.0;
+ break;
+ default:
+ result=n;
+ break;
+ };
+
+ REALTYPE par3=Phrpos.par3/255.0;
+
+ REALTYPE iresult=floor(result+0.5);
+ REALTYPE dresult=result-iresult;
+
+ result=iresult+(1.0-par3)*dresult;
+
+ return(result);
+};
+
+/*
+ * Generates the long spectrum for Bandwidth mode (only amplitudes are generated; phases will be random)
+ */
+void PADnoteParameters::generatespectrum_bandwidthMode(REALTYPE *spectrum, int size,REALTYPE basefreq,REALTYPE *profile,int profilesize,REALTYPE bwadjust){
+ for (int i=0;i<size;i++) spectrum[i]=0.0;
+
+ REALTYPE harmonics[OSCIL_SIZE/2];
+ for (int i=0;i<OSCIL_SIZE/2;i++) harmonics[i]=0.0;
+ //get the harmonic structure from the oscillator (I am using the frequency amplitudes, only)
+ oscilgen->get(harmonics,basefreq,false);
+
+ //normalize
+ REALTYPE max=0.0;
+ for (int i=0;i<OSCIL_SIZE/2;i++) if (harmonics[i]>max) max=harmonics[i];
+ if (max<0.000001) max=1;
+ for (int i=0;i<OSCIL_SIZE/2;i++) harmonics[i]/=max;
+
+ for (int nh=1;nh<OSCIL_SIZE/2;nh++){//for each harmonic
+ REALTYPE realfreq=getNhr(nh)*basefreq;
+ if (realfreq>SAMPLE_RATE*0.49999) break;
+ if (realfreq<20.0) break;
+ if (harmonics[nh-1]<1e-4) continue;
+
+ //compute the bandwidth of each harmonic
+ REALTYPE bandwidthcents=setPbandwidth(Pbandwidth);
+ REALTYPE bw=(pow(2.0,bandwidthcents/1200.0)-1.0)*basefreq/bwadjust;
+ REALTYPE power=1.0;
+ switch (Pbwscale){
+ case 0: power=1.0;break;
+ case 1: power=0.0;break;
+ case 2: power=0.25;break;
+ case 3: power=0.5;break;
+ case 4: power=0.75;break;
+ case 5: power=1.5;break;
+ case 6: power=2.0;break;
+ case 7: power=-0.5;break;
+ };
+ bw=bw*pow(realfreq/basefreq,power);
+ int ibw=(int)((bw/(SAMPLE_RATE*0.5)*size))+1;
+
+ REALTYPE amp=harmonics[nh-1];
+ if (resonance->Penabled) amp*=resonance->getfreqresponse(realfreq);
+
+ if (ibw>profilesize){//if the bandwidth is larger than the profilesize
+ REALTYPE rap=sqrt((REALTYPE)profilesize/(REALTYPE)ibw);
+ int cfreq=(int) (realfreq/(SAMPLE_RATE*0.5)*size)-ibw/2;
+ for (int i=0;i<ibw;i++){
+ int src=(int)(i*rap*rap);
+ int spfreq=i+cfreq;
+ if (spfreq<0) continue;
+ if (spfreq>=size) break;
+ spectrum[spfreq]+=amp*profile[src]*rap;
+ };
+ }else{//if the bandwidth is smaller than the profilesize
+ REALTYPE rap=sqrt((REALTYPE)ibw/(REALTYPE)profilesize);
+ REALTYPE ibasefreq=realfreq/(SAMPLE_RATE*0.5)*size;
+ for (int i=0;i<profilesize;i++){
+ REALTYPE idfreq=i/(REALTYPE)profilesize-0.5;
+ idfreq*=ibw;
+ int spfreq=(int) (idfreq+ibasefreq);
+ REALTYPE fspfreq=fmod(idfreq+ibasefreq,1.0);
+ if (spfreq<=0) continue;
+ if (spfreq>=size-1) break;
+ spectrum[spfreq]+=amp*profile[i]*rap*(1.0-fspfreq);
+ spectrum[spfreq+1]+=amp*profile[i]*rap*fspfreq;
+ };
+ };
+ };
+};
+
+/*
+ * Generates the long spectrum for non-Bandwidth modes (only amplitudes are generated; phases will be random)
+ */
+void PADnoteParameters::generatespectrum_otherModes(REALTYPE *spectrum, int size,REALTYPE basefreq,REALTYPE *profile,int profilesize,REALTYPE bwadjust){
+ for (int i=0;i<size;i++) spectrum[i]=0.0;
+
+ REALTYPE harmonics[OSCIL_SIZE/2];
+ for (int i=0;i<OSCIL_SIZE/2;i++) harmonics[i]=0.0;
+ //get the harmonic structure from the oscillator (I am using the frequency amplitudes, only)
+ oscilgen->get(harmonics,basefreq,false);
+
+ //normalize
+ REALTYPE max=0.0;
+ for (int i=0;i<OSCIL_SIZE/2;i++) if (harmonics[i]>max) max=harmonics[i];
+ if (max<0.000001) max=1;
+ for (int i=0;i<OSCIL_SIZE/2;i++) harmonics[i]/=max;
+
+ for (int nh=1;nh<OSCIL_SIZE/2;nh++){//for each harmonic
+ REALTYPE realfreq=getNhr(nh)*basefreq;
+
+ ///sa fac aici interpolarea si sa am grija daca frecv descresc
+
+ if (realfreq>SAMPLE_RATE*0.49999) break;
+ if (realfreq<20.0) break;
+// if (harmonics[nh-1]<1e-4) continue;
+
+
+ REALTYPE amp=harmonics[nh-1];
+ if (resonance->Penabled) amp*=resonance->getfreqresponse(realfreq);
+ int cfreq=(int) (realfreq/(SAMPLE_RATE*0.5)*size);
+
+ spectrum[cfreq]=amp+1e-9;
+ };
+
+ if (Pmode!=1){
+ int old=0;
+ for (int k=1;k<size;k++){
+ if ( (spectrum[k]>1e-10) || (k==(size-1)) ){
+ int delta=k-old;
+ REALTYPE val1=spectrum[old];
+ REALTYPE val2=spectrum[k];
+ REALTYPE idelta=1.0/delta;
+ for (int i=0;i<delta;i++){
+ REALTYPE x=idelta*i;
+ spectrum[old+i]=val1*(1.0-x)+val2*x;
+ };
+ old=k;
+ };
+ };
+ };
+
+};
+
+/*
+ * Applies the parameters (i.e. computes all the samples, based on parameters);
+ */
+void PADnoteParameters::applyparameters(bool lockmutex){
+ const int samplesize=(((int) 1)<<(Pquality.samplesize+14));
+ int spectrumsize=samplesize/2;
+ REALTYPE spectrum[spectrumsize];
+ int profilesize=512;
+ REALTYPE profile[profilesize];
+
+printf("applyparameters %d\n", lockmutex);
+
+ REALTYPE bwadjust=getprofile(profile,profilesize);
+// for (int i=0;i<profilesize;i++) profile[i]*=profile[i];
+ REALTYPE basefreq=65.406*pow(2.0,Pquality.basenote/2);
+ if (Pquality.basenote%2==1) basefreq*=1.5;
+
+ int samplemax=Pquality.oct+1;
+ int smpoct=Pquality.smpoct;
+ if (Pquality.smpoct==5) smpoct=6;
+ if (Pquality.smpoct==6) smpoct=12;
+ if (smpoct!=0) samplemax*=smpoct;
+ else samplemax=samplemax/2+1;
+ if (samplemax==0) samplemax=1;
+
+ //prepare a BIG FFT stuff
+ FFTwrapper *fft=new FFTwrapper(samplesize);
+ FFTFREQS fftfreqs;
+ newFFTFREQS(&fftfreqs,samplesize/2);
+
+ REALTYPE adj[samplemax];//this is used to compute frequency relation to the base frequency
+ for (int nsample=0;nsample<samplemax;nsample++) adj[nsample]=(Pquality.oct+1.0)*(REALTYPE)nsample/samplemax;
+ for (int nsample=0;nsample<samplemax;nsample++){
+ REALTYPE tmp=adj[nsample]-adj[samplemax-1]*0.5;
+ REALTYPE basefreqadjust=pow(2.0,tmp);
+
+ if (Pmode==0) generatespectrum_bandwidthMode(spectrum,spectrumsize,basefreq*basefreqadjust,profile,profilesize,bwadjust);
+ else generatespectrum_otherModes(spectrum,spectrumsize,basefreq*basefreqadjust,profile,profilesize,bwadjust);
+
+ const int extra_samples=5;//the last samples contains the first samples (used for linear/cubic interpolation)
+ newsample.smp=new REALTYPE[samplesize+extra_samples];
+
+ newsample.smp[0]=0.0;
+ for (int i=1;i<spectrumsize;i++){//randomize the phases
+ REALTYPE phase=RND*6.29;
+ fftfreqs.c[i]=spectrum[i]*cos(phase);
+ fftfreqs.s[i]=spectrum[i]*sin(phase);
+ };
+ fft->freqs2smps(fftfreqs,newsample.smp);//that's all; here is the only ifft for the whole sample; no windows are used ;-)
+
+
+ //normalize(rms)
+ REALTYPE rms=0.0;
+ for (int i=0;i<samplesize;i++) rms+=newsample.smp[i]*newsample.smp[i];
+ rms=sqrt(rms);
+ if (rms<0.000001) rms=1.0;
+ rms*=sqrt(262144.0/samplesize);
+ for (int i=0;i<samplesize;i++) newsample.smp[i]*=1.0/rms*50.0;
+
+ //prepare extra samples used by the linear or cubic interpolation
+ for (int i=0;i<extra_samples;i++) newsample.smp[i+samplesize]=newsample.smp[i];
+
+ //replace the current sample with the new computed sample
+ if (lockmutex){
+ master->lock();
+ deletesample(nsample);
+ sample[nsample].smp=newsample.smp;
+ sample[nsample].size=samplesize;
+ sample[nsample].basefreq=basefreq*basefreqadjust;
+ master->unlock();
+ } else {
+ deletesample(nsample);
+ sample[nsample].smp=newsample.smp;
+ sample[nsample].size=samplesize;
+ sample[nsample].basefreq=basefreq*basefreqadjust;
+ };
+ newsample.smp=NULL;
+ };
+ delete(fft);
+ deleteFFTFREQS(&fftfreqs);
+
+ //delete the additional samples that might exists and are not useful
+ if (lockmutex){
+ master->lock();
+ for (int i=samplemax;i<PAD_MAX_SAMPLES;i++) deletesample(i);
+ master->unlock();
+ } else {
+ for (int i=samplemax;i<PAD_MAX_SAMPLES;i++) deletesample(i);
+ };
+};
+
+
+void PADnoteParameters::add2XML(XMLwrapper *xml){
+ xml->information.PADsynth_used=true;
+
+ xml->addparbool("stereo",PStereo);
+ xml->addpar("mode",Pmode);
+ xml->addpar("bandwidth",Pbandwidth);
+ xml->addpar("bandwidth_scale",Pbwscale);
+
+ xml->beginbranch("HARMONIC_PROFILE");
+ xml->addpar("base_type",Php.base.type);
+ xml->addpar("base_par1",Php.base.par1);
+ xml->addpar("frequency_multiplier",Php.freqmult);
+ xml->addpar("modulator_par1",Php.modulator.par1);
+ xml->addpar("modulator_frequency",Php.modulator.freq);
+ xml->addpar("width",Php.width);
+ xml->addpar("amplitude_multiplier_type",Php.amp.type);
+ xml->addpar("amplitude_multiplier_mode",Php.amp.mode);
+ xml->addpar("amplitude_multiplier_par1",Php.amp.par1);
+ xml->addpar("amplitude_multiplier_par2",Php.amp.par2);
+ xml->addparbool("autoscale",Php.autoscale);
+ xml->addpar("one_half",Php.onehalf);
+ xml->endbranch();
+
+ xml->beginbranch("OSCIL");
+ oscilgen->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("RESONANCE");
+ resonance->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("HARMONIC_POSITION");
+ xml->addpar("type",Phrpos.type);
+ xml->addpar("parameter1",Phrpos.par1);
+ xml->addpar("parameter2",Phrpos.par2);
+ xml->addpar("parameter3",Phrpos.par3);
+ xml->endbranch();
+
+ xml->beginbranch("SAMPLE_QUALITY");
+ xml->addpar("samplesize",Pquality.samplesize);
+ xml->addpar("basenote",Pquality.basenote);
+ xml->addpar("octaves",Pquality.oct);
+ xml->addpar("samples_per_octave",Pquality.smpoct);
+ xml->endbranch();
+
+ xml->beginbranch("AMPLITUDE_PARAMETERS");
+ xml->addpar("volume",PVolume);
+ xml->addpar("panning",PPanning);
+ xml->addpar("velocity_sensing",PAmpVelocityScaleFunction);
+ xml->addpar("punch_strength",PPunchStrength);
+ xml->addpar("punch_time",PPunchTime);
+ xml->addpar("punch_stretch",PPunchStretch);
+ xml->addpar("punch_velocity_sensing",PPunchVelocitySensing);
+
+ xml->beginbranch("AMPLITUDE_ENVELOPE");
+ AmpEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("AMPLITUDE_LFO");
+ AmpLfo->add2XML(xml);
+ xml->endbranch();
+
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_PARAMETERS");
+ xml->addpar("fixed_freq",Pfixedfreq);
+ xml->addpar("fixed_freq_et",PfixedfreqET);
+ xml->addpar("detune",PDetune);
+ xml->addpar("coarse_detune",PCoarseDetune);
+ xml->addpar("detune_type",PDetuneType);
+
+ xml->beginbranch("FREQUENCY_ENVELOPE");
+ FreqEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_LFO");
+ FreqLfo->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_PARAMETERS");
+ xml->addpar("velocity_sensing_amplitude",PFilterVelocityScale);
+ xml->addpar("velocity_sensing",PFilterVelocityScaleFunction);
+
+ xml->beginbranch("FILTER");
+ GlobalFilter->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_ENVELOPE");
+ FilterEnvelope->add2XML(xml);
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_LFO");
+ FilterLfo->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+};
+
+void PADnoteParameters::getfromXML(XMLwrapper *xml){
+ PStereo=xml->getparbool("stereo",PStereo);
+ Pmode=xml->getpar127("mode",0);
+ Pbandwidth=xml->getpar("bandwidth",Pbandwidth,0,1000);
+ Pbwscale=xml->getpar127("bandwidth_scale",Pbwscale);
+
+ if (xml->enterbranch("HARMONIC_PROFILE")){
+ Php.base.type=xml->getpar127("base_type",Php.base.type);
+ Php.base.par1=xml->getpar127("base_par1",Php.base.par1);
+ Php.freqmult=xml->getpar127("frequency_multiplier",Php.freqmult);
+ Php.modulator.par1=xml->getpar127("modulator_par1",Php.modulator.par1);
+ Php.modulator.freq=xml->getpar127("modulator_frequency",Php.modulator.freq);
+ Php.width=xml->getpar127("width",Php.width);
+ Php.amp.type=xml->getpar127("amplitude_multiplier_type",Php.amp.type);
+ Php.amp.mode=xml->getpar127("amplitude_multiplier_mode",Php.amp.mode);
+ Php.amp.par1=xml->getpar127("amplitude_multiplier_par1",Php.amp.par1);
+ Php.amp.par2=xml->getpar127("amplitude_multiplier_par2",Php.amp.par2);
+ Php.autoscale=xml->getparbool("autoscale",Php.autoscale);
+ Php.onehalf=xml->getpar127("one_half",Php.onehalf);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("OSCIL")){
+ oscilgen->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("RESONANCE")){
+ resonance->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("HARMONIC_POSITION")){
+ Phrpos.type=xml->getpar127("type",Phrpos.type);
+ Phrpos.par1=xml->getpar("parameter1",Phrpos.par1,0,255);
+ Phrpos.par2=xml->getpar("parameter2",Phrpos.par2,0,255);
+ Phrpos.par3=xml->getpar("parameter3",Phrpos.par3,0,255);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("SAMPLE_QUALITY")){
+ Pquality.samplesize=xml->getpar127("samplesize",Pquality.samplesize);
+ Pquality.basenote=xml->getpar127("basenote",Pquality.basenote);
+ Pquality.oct=xml->getpar127("octaves",Pquality.oct);
+ Pquality.smpoct=xml->getpar127("samples_per_octave",Pquality.smpoct);
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("AMPLITUDE_PARAMETERS")){
+ PVolume=xml->getpar127("volume",PVolume);
+ PPanning=xml->getpar127("panning",PPanning);
+ PAmpVelocityScaleFunction=xml->getpar127("velocity_sensing",PAmpVelocityScaleFunction);
+ PPunchStrength=xml->getpar127("punch_strength",PPunchStrength);
+ PPunchTime=xml->getpar127("punch_time",PPunchTime);
+ PPunchStretch=xml->getpar127("punch_stretch",PPunchStretch);
+ PPunchVelocitySensing=xml->getpar127("punch_velocity_sensing",PPunchVelocitySensing);
+
+ xml->enterbranch("AMPLITUDE_ENVELOPE");
+ AmpEnvelope->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("AMPLITUDE_LFO");
+ AmpLfo->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FREQUENCY_PARAMETERS")){
+ Pfixedfreq=xml->getpar127("fixed_freq",Pfixedfreq);
+ PfixedfreqET=xml->getpar127("fixed_freq_et",PfixedfreqET);
+ PDetune=xml->getpar("detune",PDetune,0,16383);
+ PCoarseDetune=xml->getpar("coarse_detune",PCoarseDetune,0,16383);
+ PDetuneType=xml->getpar127("detune_type",PDetuneType);
+
+ xml->enterbranch("FREQUENCY_ENVELOPE");
+ FreqEnvelope->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FREQUENCY_LFO");
+ FreqLfo->getfromXML(xml);
+ xml->exitbranch();
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FILTER_PARAMETERS")){
+ PFilterVelocityScale=xml->getpar127("velocity_sensing_amplitude",PFilterVelocityScale);
+ PFilterVelocityScaleFunction=xml->getpar127("velocity_sensing",PFilterVelocityScaleFunction);
+
+ xml->enterbranch("FILTER");
+ GlobalFilter->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FILTER_ENVELOPE");
+ FilterEnvelope->getfromXML(xml);
+ xml->exitbranch();
+
+ xml->enterbranch("FILTER_LFO");
+ FilterLfo->getfromXML(xml);
+ xml->exitbranch();
+ xml->exitbranch();
+ };
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.h
new file mode 100644
index 00000000..a2328e86
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/PADnoteParameters.h
@@ -0,0 +1,169 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PADnoteParameters.h - Parameters for PADnote (PADsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef PAD_NOTE_PARAMETERS_H
+#define PAD_NOTE_PARAMETERS_H
+
+#include "../Misc/XMLwrapper.h"
+#include "../DSP/FFTwrapper.h"
+#include "../globals.h"
+#include "../Synth/OscilGen.h"
+#include "../Synth/Resonance.h"
+#include "../Misc/Util.h"
+
+#include "EnvelopeParams.h"
+#include "LFOParams.h"
+#include "FilterParams.h"
+#include "Presets.h"
+
+class Master;
+
+class PADnoteParameters:public Presets{
+ public:
+ PADnoteParameters(FFTwrapper *fft_,Master* master);
+ ~PADnoteParameters();
+
+ void defaults();
+ void add2XML(XMLwrapper *xml);
+ void getfromXML(XMLwrapper *xml);
+
+ //returns a value between 0.0-1.0 that represents the estimation perceived bandwidth
+ REALTYPE getprofile(REALTYPE *smp,int size);
+
+ //parameters
+
+ //the mode: 0 - bandwidth, 1 - discrete (bandwidth=0), 2 - continous
+ //the harmonic profile is used only on mode 0
+ unsigned char Pmode;
+
+ //Harmonic profile (the frequency distribution of a single harmonic)
+ struct {
+ struct{//base function
+ unsigned char type;
+ unsigned char par1;
+ }base;
+ unsigned char freqmult;//frequency multiplier of the distribution
+ struct{//the modulator of the distribution
+ unsigned char par1;
+ unsigned char freq;
+ }modulator;
+
+ unsigned char width;//the width of the resulting function after the modulation
+ struct{//the amplitude multiplier of the harmonic profile
+ unsigned char mode;
+ unsigned char type;
+ unsigned char par1;
+ unsigned char par2;
+ }amp;
+ bool autoscale;//if the scale of the harmonic profile is computed automaticaly
+ unsigned char onehalf;//what part of the base function is used to make the distribution
+ }Php;
+
+
+ unsigned int Pbandwidth;//the values are from 0 to 1000
+ unsigned char Pbwscale;//how the bandwidth is increased according to the harmonic's frequency
+
+ struct{//where are positioned the harmonics (on integer multimplier or different places)
+ unsigned char type;
+ unsigned char par1,par2,par3;//0..255
+ }Phrpos;
+
+ struct {//quality of the samples (how many samples, the length of them,etc.)
+ unsigned char samplesize;
+ unsigned char basenote,oct,smpoct;
+ } Pquality;
+
+ //frequency parameters
+ //If the base frequency is fixed to 440 Hz
+ unsigned char Pfixedfreq;
+
+ /* Equal temperate (this is used only if the Pfixedfreq is enabled)
+ If this parameter is 0, the frequency is fixed (to 440 Hz);
+ if this parameter is 64, 1 MIDI halftone -> 1 frequency halftone */
+ unsigned char PfixedfreqET;
+ unsigned short int PDetune;//fine detune
+ unsigned short int PCoarseDetune;//coarse detune+octave
+ unsigned char PDetuneType;//detune type
+
+ EnvelopeParams *FreqEnvelope; //Frequency Envelope
+ LFOParams *FreqLfo;//Frequency LFO
+
+ //Amplitude parameters
+ unsigned char PStereo;
+ /* Panning - 0 - random
+ 1 - left
+ 64 - center
+ 127 - right */
+ unsigned char PPanning;
+
+ unsigned char PVolume;
+
+ unsigned char PAmpVelocityScaleFunction;
+
+ EnvelopeParams *AmpEnvelope;
+
+ LFOParams *AmpLfo;
+
+ unsigned char PPunchStrength,PPunchTime,PPunchStretch,PPunchVelocitySensing;
+
+ //Filter Parameters
+ FilterParams *GlobalFilter;
+
+ // filter velocity sensing
+ unsigned char PFilterVelocityScale;
+
+ // filter velocity sensing
+ unsigned char PFilterVelocityScaleFunction;
+
+ EnvelopeParams *FilterEnvelope;
+ LFOParams *FilterLfo;
+
+
+
+
+ REALTYPE setPbandwidth(int Pbandwidth);//returns the BandWidth in cents
+ REALTYPE getNhr(int n);//gets the n-th overtone position relatively to N harmonic
+
+ void applyparameters(bool lockmutex);
+
+ OscilGen *oscilgen;
+ Resonance *resonance;
+
+ struct{
+ int size;
+ REALTYPE basefreq;
+ REALTYPE *smp;
+ }sample[PAD_MAX_SAMPLES],newsample;
+
+ private:
+ void generatespectrum_bandwidthMode(REALTYPE *spectrum, int size,REALTYPE basefreq,REALTYPE *profile,int profilesize,REALTYPE bwadjust);
+ void generatespectrum_otherModes(REALTYPE *spectrum, int size,REALTYPE basefreq,REALTYPE *profile,int profilesize,REALTYPE bwadjust);
+ void deletesamples();
+ void deletesample(int n);
+
+ FFTwrapper *fft;
+ Master* master;
+};
+
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.C
new file mode 100644
index 00000000..e5f6e10c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.C
@@ -0,0 +1,129 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Presets.C - Presets and Clipboard management
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "Presets.h"
+#include <string.h>
+
+
+Presets::Presets(){
+ type[0]=0;
+ nelement=-1;
+};
+
+Presets::~Presets(){
+};
+
+void Presets::setpresettype(char *type){
+ strcpy(this->type,type);
+};
+
+void Presets::copy(const char *name){
+ XMLwrapper *xml=new XMLwrapper();
+
+ //used only for the clipboard
+ if (name==NULL) xml->minimal=false;
+
+ char type[MAX_PRESETTYPE_SIZE];
+ strcpy(type,this->type);
+ if (nelement!=-1) strcat(type,"n");
+ if (name==NULL) {
+ if (strstr(type,"Plfo")!=NULL) strcpy(type,"Plfo");
+ };
+
+ xml->beginbranch(type);
+ if (nelement==-1) add2XML(xml);
+ else add2XMLsection(xml,nelement);
+ xml->endbranch();
+
+ if (name==NULL) presetsstore.copyclipboard(xml,type);
+ else presetsstore.copypreset(xml,type,name);
+
+ delete(xml);
+ nelement=-1;
+};
+
+void Presets::paste(int npreset){
+ char type[MAX_PRESETTYPE_SIZE];
+ strcpy(type,this->type);
+ if (nelement!=-1) strcat(type,"n");
+ if (npreset==0){
+ if (strstr(type,"Plfo")!=NULL) strcpy(type,"Plfo");
+ };
+
+ XMLwrapper *xml=new XMLwrapper();
+ if (npreset==0){
+ if (!checkclipboardtype()) {
+ nelement=-1;
+ delete(xml);
+ return;
+ };
+ if (!presetsstore.pasteclipboard(xml)) {
+ delete(xml);
+ nelement=-1;
+ return;
+ };
+ } else {
+ if (!presetsstore.pastepreset(xml,npreset)) {
+ delete(xml);
+ nelement=-1;
+ return;
+ };
+ };
+
+ if (xml->enterbranch(type)==0) {
+ nelement=-1;
+ return;
+ };
+ if (nelement==-1) {
+ defaults();
+ getfromXML(xml);
+ } else {
+ defaults(nelement);
+ getfromXMLsection(xml,nelement);
+ };
+ xml->exitbranch();
+
+ delete(xml);
+ nelement=-1;
+};
+
+bool Presets::checkclipboardtype(){
+ char type[MAX_PRESETTYPE_SIZE];
+ strcpy(type,this->type);
+ if (nelement!=-1) strcat(type,"n");
+
+ return(presetsstore.checkclipboardtype(type));
+};
+
+void Presets::setelement(int n){
+ nelement=n;
+};
+
+void Presets::rescanforpresets(){
+ presetsstore.rescanforpresets(type);
+};
+
+
+void Presets::deletepreset(int npreset){
+ presetsstore.deletepreset(npreset);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.h
new file mode 100644
index 00000000..d7d938d1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/Presets.h
@@ -0,0 +1,58 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Presets.h - Presets and Clipboard management
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef PRESETS_H
+#define PRESETS_H
+
+#include "../Misc/XMLwrapper.h"
+
+#include "PresetsStore.h"
+
+class Presets{
+ public:
+ Presets();
+ virtual ~Presets();
+
+ void copy(const char *name);//if name==NULL, the clipboard is used
+ void paste(int npreset);//npreset==0 for clipboard
+ bool checkclipboardtype();
+ void deletepreset(int npreset);
+
+ char type[MAX_PRESETTYPE_SIZE];
+ void setelement(int n);
+
+ void rescanforpresets();
+
+ protected:
+ void setpresettype(char *type);
+ private:
+ virtual void add2XML(XMLwrapper *xml)=0;
+ virtual void getfromXML(XMLwrapper *xml)=0;
+ virtual void defaults()=0;
+ virtual void add2XMLsection(XMLwrapper */*xml*/,int /*n*/){};
+ virtual void getfromXMLsection(XMLwrapper */*xml*/,int /*n*/){};
+ virtual void defaults(int /*n*/){};
+ int nelement;
+};
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C
new file mode 100644
index 00000000..8bbb2bec
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C
@@ -0,0 +1,181 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PresetsStore.C - Presets and Clipboard store
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+#include <stdlib.h>
+#include <string.h>
+#include <dirent.h>
+#include <sys/stat.h>
+
+#include "PresetsStore.h"
+#include "../Misc/Util.h"
+
+PresetsStore presetsstore;
+
+PresetsStore::PresetsStore(){
+ clipboard.data=NULL;
+ clipboard.type[0]=0;
+
+ for (int i=0;i<MAX_PRESETS;i++){
+ presets[i].file=NULL;
+ presets[i].name=NULL;
+ };
+
+};
+
+PresetsStore::~PresetsStore(){
+ if (clipboard.data!=NULL) delete (clipboard.data);
+ clearpresets();
+};
+
+//Clipboard management
+
+void PresetsStore::copyclipboard(XMLwrapper *xml,char *type){
+ strcpy(clipboard.type,type);
+ if (clipboard.data!=NULL) delete (clipboard.data);
+ clipboard.data=xml->getXMLdata();
+};
+
+bool PresetsStore::pasteclipboard(XMLwrapper *xml){
+ if (clipboard.data!=NULL) xml->putXMLdata(clipboard.data);
+ else return(false);
+ return(true);
+};
+
+bool PresetsStore::checkclipboardtype(char *type){
+ //makes LFO's compatible
+ if ((strstr(type,"Plfo")!=NULL)&&(strstr(clipboard.type,"Plfo")!=NULL)) return(true);
+ return(strcmp(type,clipboard.type)==0);
+};
+
+//Presets management
+void PresetsStore::clearpresets(){
+ for (int i=0;i<MAX_PRESETS;i++){
+ if (presets[i].file!=NULL) {
+ delete(presets[i].file);
+ presets[i].file=NULL;
+ };
+ if (presets[i].name!=NULL) {
+ delete(presets[i].name);
+ presets[i].name=NULL;
+ };
+ };
+
+};
+
+//a helper function that compares 2 presets[]
+int Presets_compar(const void *a,const void *b){
+ struct PresetsStore::presetstruct *p1= (PresetsStore::presetstruct *)a;
+ struct PresetsStore::presetstruct *p2= (PresetsStore::presetstruct *)b;
+ if (((p1->name)==NULL)||((p2->name)==NULL)) return(0);
+
+ return(strcasecmp(p1->name,p2->name)<0);
+};
+
+
+void PresetsStore::rescanforpresets(char *type){
+ clearpresets();
+ int presetk=0;
+ char ftype[MAX_STRING_SIZE];
+ snprintf(ftype,MAX_STRING_SIZE,".%s.xpz",type);
+
+ for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
+ if (config.cfg.presetsDirList[i]==NULL) continue;
+ char *dirname=config.cfg.presetsDirList[i];
+ DIR *dir=opendir(dirname);
+ if (dir==NULL) continue;
+ struct dirent *fn;
+ while((fn=readdir(dir))){
+ const char *filename=fn->d_name;
+ if (strstr(filename,ftype)==NULL) continue;
+
+
+ presets[presetk].file=new char [MAX_STRING_SIZE];
+ presets[presetk].name=new char [MAX_STRING_SIZE];
+ char tmpc=dirname[strlen(dirname)-1];
+ char *tmps="/";
+ if ((tmpc=='/')||(tmpc=='\\')) tmps="";
+ snprintf(presets[presetk].file,MAX_STRING_SIZE,"%s%s%s",dirname,tmps,filename);
+ snprintf(presets[presetk].name,MAX_STRING_SIZE,"%s",filename);
+
+ char *tmp=strstr(presets[presetk].name,ftype);
+ if (tmp!=NULL) tmp[0]='\0';
+ presetk++; if (presetk>=MAX_PRESETS) return;
+ };
+
+ closedir(dir);
+ };
+
+ //sort the presets
+ for (int j=0;j<MAX_PRESETS-1;j++){
+ for (int i=j+1;i<MAX_PRESETS;i++){
+ if (Presets_compar(&presets[i],&presets[j])) {
+ presetstruct tmp=presets[i];
+ presets[i]=presets[j];
+ presets[j]=tmp;
+ };
+ };
+ };
+};
+
+void PresetsStore::copypreset(XMLwrapper *xml,char *type, const char *name){
+ char filename[MAX_STRING_SIZE],tmpfilename[MAX_STRING_SIZE];
+
+ if (config.cfg.presetsDirList[0]==NULL) return;
+
+ snprintf(tmpfilename,MAX_STRING_SIZE,"%s",name);
+
+ //make the filenames legal
+ for (int i=0;i<(int) strlen(tmpfilename);i++) {
+ char c=tmpfilename[i];
+ if ((c>='0')&&(c<='9')) continue;
+ if ((c>='A')&&(c<='Z')) continue;
+ if ((c>='a')&&(c<='z')) continue;
+ if ((c=='-')||(c==' ')) continue;
+ tmpfilename[i]='_';
+ };
+
+ char *dirname=config.cfg.presetsDirList[0];
+ char tmpc=dirname[strlen(dirname)-1];
+ char *tmps="/";
+ if ((tmpc=='/')||(tmpc=='\\')) tmps="";
+
+ snprintf(filename,MAX_STRING_SIZE,"%s%s%s.%s.xpz",dirname,tmps,name,type);
+
+ xml->saveXMLfile(filename);
+};
+
+bool PresetsStore::pastepreset(XMLwrapper *xml, int npreset){
+ npreset--;
+ if (npreset>=MAX_PRESETS) return(false);
+ char *filename=presets[npreset].file;
+ if (filename==NULL) return(false);
+ bool result=(xml->loadXMLfile(filename)>=0);
+ return(result);
+};
+
+void PresetsStore::deletepreset(int npreset){
+ npreset--;
+ if (npreset>=MAX_PRESETS) return;
+ char *filename=presets[npreset].file;
+ if (filename==NULL) return;
+ remove(filename);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.h
new file mode 100644
index 00000000..555e20cb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.h
@@ -0,0 +1,63 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PresetsStore.C - Presets and Clipboard store
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "../Misc/XMLwrapper.h"
+#include "../Misc/Config.h"
+
+#define MAX_PRESETTYPE_SIZE 30
+#define MAX_PRESETS 1000
+
+class PresetsStore{
+ public:
+ PresetsStore();
+ ~PresetsStore();
+
+ //Clipboard stuff
+ void copyclipboard(XMLwrapper *xml,char *type);
+ bool pasteclipboard(XMLwrapper *xml);
+ bool checkclipboardtype(char *type);
+
+ //presets stuff
+ void copypreset(XMLwrapper *xml,char *type, const char *name);
+ bool pastepreset(XMLwrapper *xml, int npreset);
+ void deletepreset(int npreset);
+
+ struct presetstruct{
+ char *file;
+ char *name;
+ };
+ presetstruct presets[MAX_PRESETS];
+
+ void rescanforpresets(char *type);
+
+ private:
+ struct {
+ char *data;
+ char type[MAX_PRESETTYPE_SIZE];
+ } clipboard;
+
+ void clearpresets();
+
+};
+
+extern PresetsStore presetsstore;
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.C
new file mode 100644
index 00000000..b04b2a9f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.C
@@ -0,0 +1,238 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SUBnoteParameters.C - Parameters for SUBnote (SUBsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "../globals.h"
+#include "SUBnoteParameters.h"
+#include <stdio.h>
+
+SUBnoteParameters::SUBnoteParameters():Presets(){
+ setpresettype("Psubsyth");
+ AmpEnvelope=new EnvelopeParams(64,1);
+ AmpEnvelope->ADSRinit_dB(0,40,127,25);
+ FreqEnvelope=new EnvelopeParams(64,0);
+ FreqEnvelope->ASRinit(30,50,64,60);
+ BandWidthEnvelope=new EnvelopeParams(64,0);
+ BandWidthEnvelope->ASRinit_bw(100,70,64,60);
+
+ GlobalFilter=new FilterParams(2,80,40);
+ GlobalFilterEnvelope=new EnvelopeParams(0,1);
+ GlobalFilterEnvelope->ADSRinit_filter(64,40,64,70,60,64);
+
+ defaults();
+};
+
+
+void SUBnoteParameters::defaults(){
+ PVolume=96;
+ PPanning=64;
+ PAmpVelocityScaleFunction=90;
+
+ Pfixedfreq=0;
+ PfixedfreqET=0;
+ Pnumstages=2;
+ Pbandwidth=40;
+ Phmagtype=0;
+ Pbwscale=64;
+ Pstereo=1;
+ Pstart=1;
+
+ PDetune=8192;
+ PCoarseDetune=0;
+ PDetuneType=1;
+ PFreqEnvelopeEnabled=0;
+ PBandWidthEnvelopeEnabled=0;
+
+ for (int n=0;n<MAX_SUB_HARMONICS;n++){
+ Phmag[n]=0;
+ Phrelbw[n]=64;
+ };
+ Phmag[0]=127;
+
+ PGlobalFilterEnabled=0;
+ PGlobalFilterVelocityScale=64;
+ PGlobalFilterVelocityScaleFunction=64;
+
+ AmpEnvelope->defaults();
+ FreqEnvelope->defaults();
+ BandWidthEnvelope->defaults();
+ GlobalFilter->defaults();
+ GlobalFilterEnvelope->defaults();
+
+};
+
+
+
+SUBnoteParameters::~SUBnoteParameters(){
+ delete (AmpEnvelope);
+ delete (FreqEnvelope);
+ delete (BandWidthEnvelope);
+ delete (GlobalFilter);
+ delete (GlobalFilterEnvelope);
+};
+
+
+
+
+void SUBnoteParameters::add2XML(XMLwrapper *xml){
+ xml->addpar("num_stages",Pnumstages);
+ xml->addpar("harmonic_mag_type",Phmagtype);
+ xml->addpar("start",Pstart);
+
+ xml->beginbranch("HARMONICS");
+ for (int i=0;i<MAX_SUB_HARMONICS;i++){
+ if ((Phmag[i]==0)&&(xml->minimal)) continue;
+ xml->beginbranch("HARMONIC",i);
+ xml->addpar("mag",Phmag[i]);
+ xml->addpar("relbw",Phrelbw[i]);
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("AMPLITUDE_PARAMETERS");
+ xml->addparbool("stereo",Pstereo);
+ xml->addpar("volume",PVolume);
+ xml->addpar("panning",PPanning);
+ xml->addpar("velocity_sensing",PAmpVelocityScaleFunction);
+ xml->beginbranch("AMPLITUDE_ENVELOPE");
+ AmpEnvelope->add2XML(xml);
+ xml->endbranch();
+ xml->endbranch();
+
+ xml->beginbranch("FREQUENCY_PARAMETERS");
+ xml->addparbool("fixed_freq",Pfixedfreq);
+ xml->addpar("fixed_freq_et",PfixedfreqET);
+
+ xml->addpar("detune",PDetune);
+ xml->addpar("coarse_detune",PCoarseDetune);
+ xml->addpar("detune_type",PDetuneType);
+
+ xml->addpar("bandwidth",Pbandwidth);
+ xml->addpar("bandwidth_scale",Pbwscale);
+
+ xml->addparbool("freq_envelope_enabled",PFreqEnvelopeEnabled);
+ if ((PFreqEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FREQUENCY_ENVELOPE");
+ FreqEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+
+ xml->addparbool("band_width_envelope_enabled",PBandWidthEnvelopeEnabled);
+ if ((PBandWidthEnvelopeEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("BANDWIDTH_ENVELOPE");
+ BandWidthEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ xml->beginbranch("FILTER_PARAMETERS");
+ xml->addparbool("enabled",PGlobalFilterEnabled);
+ if ((PGlobalFilterEnabled!=0)||(!xml->minimal)){
+ xml->beginbranch("FILTER");
+ GlobalFilter->add2XML(xml);
+ xml->endbranch();
+
+ xml->addpar("filter_velocity_sensing",PGlobalFilterVelocityScaleFunction);
+ xml->addpar("filter_velocity_sensing_amplitude",PGlobalFilterVelocityScale);
+
+ xml->beginbranch("FILTER_ENVELOPE");
+ GlobalFilterEnvelope->add2XML(xml);
+ xml->endbranch();
+ };
+ xml->endbranch();
+};
+
+void SUBnoteParameters::getfromXML(XMLwrapper *xml){
+ Pnumstages=xml->getpar127("num_stages",Pnumstages);
+ Phmagtype=xml->getpar127("harmonic_mag_type",Phmagtype);
+ Pstart=xml->getpar127("start",Pstart);
+
+ if (xml->enterbranch("HARMONICS")){
+ Phmag[0]=0;
+ for (int i=0;i<MAX_SUB_HARMONICS;i++){
+ if (xml->enterbranch("HARMONIC",i)==0) continue;
+ Phmag[i]=xml->getpar127("mag",Phmag[i]);
+ Phrelbw[i]=xml->getpar127("relbw",Phrelbw[i]);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("AMPLITUDE_PARAMETERS")){
+ Pstereo=xml->getparbool("stereo",Pstereo);
+ PVolume=xml->getpar127("volume",PVolume);
+ PPanning=xml->getpar127("panning",PPanning);
+ PAmpVelocityScaleFunction=xml->getpar127("velocity_sensing",PAmpVelocityScaleFunction);
+ if (xml->enterbranch("AMPLITUDE_ENVELOPE")){
+ AmpEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FREQUENCY_PARAMETERS")){
+ Pfixedfreq=xml->getparbool("fixed_freq",Pfixedfreq);
+ PfixedfreqET=xml->getpar127("fixed_freq_et",PfixedfreqET);
+
+ PDetune=xml->getpar("detune",PDetune,0,16383);
+ PCoarseDetune=xml->getpar("coarse_detune",PCoarseDetune,0,16383);
+ PDetuneType=xml->getpar127("detune_type",PDetuneType);
+
+ Pbandwidth=xml->getpar127("bandwidth",Pbandwidth);
+ Pbwscale=xml->getpar127("bandwidth_scale",Pbwscale);
+
+ PFreqEnvelopeEnabled=xml->getparbool("freq_envelope_enabled",PFreqEnvelopeEnabled);
+ if (xml->enterbranch("FREQUENCY_ENVELOPE")){
+ FreqEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ PBandWidthEnvelopeEnabled=xml->getparbool("band_width_envelope_enabled",PBandWidthEnvelopeEnabled);
+ if (xml->enterbranch("BANDWIDTH_ENVELOPE")){
+ BandWidthEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+
+ if (xml->enterbranch("FILTER_PARAMETERS")){
+ PGlobalFilterEnabled=xml->getparbool("enabled",PGlobalFilterEnabled);
+ if (xml->enterbranch("FILTER")){
+ GlobalFilter->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ PGlobalFilterVelocityScaleFunction=xml->getpar127("filter_velocity_sensing",PGlobalFilterVelocityScaleFunction);
+ PGlobalFilterVelocityScale=xml->getpar127("filter_velocity_sensing_amplitude",PGlobalFilterVelocityScale);
+
+ if (xml->enterbranch("FILTER_ENVELOPE")){
+ GlobalFilterEnvelope->getfromXML(xml);
+ xml->exitbranch();
+ };
+
+ xml->exitbranch();
+ };
+};
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.h b/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.h
new file mode 100644
index 00000000..a506a260
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Params/SUBnoteParameters.h
@@ -0,0 +1,105 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SUBnoteParameters.h - Parameters for SUBnote (SUBsynth)
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef SUB_NOTE_PARAMETERS_H
+#define SUB_NOTE_PARAMETERS_H
+
+#include "../globals.h"
+#include "../Misc/XMLwrapper.h"
+#include "EnvelopeParams.h"
+#include "FilterParams.h"
+#include "Presets.h"
+
+class SUBnoteParameters:public Presets{
+ public:
+ SUBnoteParameters();
+ ~SUBnoteParameters();
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ //Parameters
+ //AMPLITUDE PARAMETRERS
+ unsigned char Pstereo;//0 for mono,1 for stereo
+ unsigned char PVolume;
+ unsigned char PPanning;
+ unsigned char PAmpVelocityScaleFunction;
+ EnvelopeParams *AmpEnvelope;
+
+ //Frequency Parameters
+ unsigned short int PDetune;
+ unsigned short int PCoarseDetune;
+ unsigned char PDetuneType;
+ unsigned char PFreqEnvelopeEnabled;
+ EnvelopeParams *FreqEnvelope;
+ unsigned char PBandWidthEnvelopeEnabled;
+ EnvelopeParams *BandWidthEnvelope;
+
+ //Filter Parameters (Global)
+ unsigned char PGlobalFilterEnabled;
+ FilterParams *GlobalFilter;
+ unsigned char PGlobalFilterVelocityScale;
+ unsigned char PGlobalFilterVelocityScaleFunction;
+ EnvelopeParams *GlobalFilterEnvelope;
+
+
+ //Other Parameters
+
+ //If the base frequency is fixed to 440 Hz
+ unsigned char Pfixedfreq;
+
+ /* Equal temperate (this is used only if the Pfixedfreq is enabled)
+ If this parameter is 0, the frequency is fixed (to 440 Hz);
+ if this parameter is 64, 1 MIDI halftone -> 1 frequency halftone */
+ unsigned char PfixedfreqET;
+
+
+ //how many times the filters are applied
+ unsigned char Pnumstages;
+
+ //bandwidth
+ unsigned char Pbandwidth;
+
+ //How the magnitudes are computed (0=linear,1=-60dB,2=-60dB)
+ unsigned char Phmagtype;
+
+ //Magnitudes
+ unsigned char Phmag[MAX_SUB_HARMONICS];
+
+ //Relative BandWidth ("64"=1.0)
+ unsigned char Phrelbw[MAX_SUB_HARMONICS];
+
+ //how much the bandwidth is increased according to lower/higher frequency; 64-default
+ unsigned char Pbwscale;
+
+ //how the harmonics start("0"=0,"1"=random,"2"=1)
+ unsigned char Pstart;
+
+
+ private:
+};
+
+#endif
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.C b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.C
new file mode 100644
index 00000000..729089c6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.C
@@ -0,0 +1,85 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MIDIEvents.C - It stores the midi events from midi file or sequencer
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include "MIDIEvents.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+MIDIEvents::MIDIEvents(){
+};
+
+MIDIEvents::~MIDIEvents(){
+};
+
+
+/************** Track stuff ***************/
+void MIDIEvents::writeevent(list *l,event *ev){
+ listpos *tmp=new listpos;
+ tmp->next=NULL;
+ tmp->ev=*ev;
+ if (l->current!=NULL) l->current->next=tmp;
+ else l->first=tmp;
+ l->current=tmp;
+// printf("Wx%x ",(int) l->current);
+// printf("-> %d \n",l->current->ev.deltatime);
+ l->size++;
+};
+
+void MIDIEvents::readevent(list *l,event *ev){
+ if (l->current==NULL) {
+ ev->type=-1;
+ return;
+ };
+ *ev=l->current->ev;
+ l->current=l->current->next;
+
+ //test
+ if (l->current!=NULL) {
+// ev->deltatime=10000;
+// printf("Rx%d\n",l->current->ev.deltatime);
+// printf("Rx%x ",(int) l->current);
+// printf("-> %d (next=%x) \n",(int)l->current->ev.deltatime,(int)l->current->next);
+ };
+
+};
+
+
+void MIDIEvents::rewindlist(list *l){
+ l->current=l->first;
+};
+
+void MIDIEvents::deletelist(list *l){
+ l->current=l->first;
+ if (l->current==NULL) return;
+ while (l->current->next!=NULL){
+ listpos *tmp=l->current;
+ l->current=l->current->next;
+ delete(tmp);
+ };
+ deletelistreference(l);
+};
+
+void MIDIEvents::deletelistreference(list *l){
+ l->current=l->first=NULL;
+ l->size=0;
+ l->length=0.0;
+};
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.h b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.h
new file mode 100644
index 00000000..1bf9befc
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIEvents.h
@@ -0,0 +1,66 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MIDIEvents.h - It stores the midi events from midi file or sequencer
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+#ifndef MIDI_EVENTS_H
+#define MIDI_EVENTS_H
+
+#include "../globals.h"
+#define NUM_MIDI_TRACKS NUM_MIDI_CHANNELS
+
+class MIDIEvents{
+ friend class MIDIFile;
+ public:
+ MIDIEvents();
+ ~MIDIEvents();
+
+ protected:
+
+ /* Events */
+ struct event{
+ int deltatime;
+ int channel;//on what midi channel is
+ int type,par1,par2;//type=1 for note, type=2 for controller, type=255 for time messages
+ } tmpevent;
+ struct listpos{
+ event ev;
+ struct listpos *next;
+ };
+ struct list{
+ listpos *first,*current;
+ int size;//how many events are
+ double length;//in seconds
+ };
+ struct {
+ list track;//the stored track
+ list record;//the track being "recorded" from midi
+ } miditrack[NUM_MIDI_TRACKS];
+
+ void writeevent(list *l,event *ev);
+ void readevent(list *l,event *ev);
+
+ void rewindlist(list *l);
+ void deletelist(list *l);
+ void deletelistreference(list *l);
+
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.C b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.C
new file mode 100644
index 00000000..a5fdaa1c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.C
@@ -0,0 +1,389 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MIDIFile.C - MIDI file loader
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include "MIDIFile.h"
+
+
+MIDIFile::MIDIFile(){
+ midifile=NULL;
+ midifilesize=0;
+ midifilek=0;
+ midieof=false;
+ me=NULL;
+};
+
+MIDIFile::~MIDIFile(){
+ clearmidifile();
+};
+
+int MIDIFile::loadfile(char *filename){
+ clearmidifile();
+
+ FILE *file=fopen(filename,"r");
+ if (file==NULL) return(-1);
+
+ char header[4];
+ ZERO(header,4);
+ fread(header,4,1,file);
+
+ //test to see if this a midi file
+ if ((header[0]!='M')||(header[1]!='T')||(header[2]!='h')||(header[3]!='d')){
+ fclose(file);
+ return(-1);
+ };
+
+ //get the filesize
+ fseek(file,0,SEEK_END);
+ midifilesize=ftell(file);
+ rewind(file);
+
+ midifile=new unsigned char[midifilesize];
+ ZERO(midifile,midifilesize);
+ fread(midifile,midifilesize,1,file);
+ fclose(file);
+
+// for (int i=0;i<midifilesize;i++) printf("%2x ",midifile[i]);
+// printf("\n");
+
+
+ return(0);
+};
+
+int MIDIFile::parsemidifile(MIDIEvents *me_){
+ this->me=me_;
+
+ //read the header
+ int chunk=getint32();//MThd
+ if (chunk!=0x4d546864) return(-1);
+ int size=getint32();
+ if (size!=6) return(-1);//header is always 6 bytes long
+
+
+ int format=getint16();
+ printf("format %d\n",format);
+
+ int ntracks=getint16();//this is always 1 if the format is "0"
+ printf("ntracks %d\n",ntracks);
+
+ int division=getint16();
+ printf("division %d\n",division);
+ if (division>=0){//delta time units in each a quater note
+// tick=???;
+ } else {//SMPTE (frames/second and ticks/frame)
+ printf("ERROR:in MIDIFile.C::parsemidifile() - SMPTE not implemented yet.");
+ };
+
+ if (ntracks>=NUM_MIDI_TRACKS) ntracks=NUM_MIDI_TRACKS-1;
+
+ for (int n=0;n<ntracks;n++){
+ if (parsetrack(n)<0) {
+ clearmidifile();
+ return(-1);
+ };
+ };
+
+ printf("\n\nCURRENT File position is = 0x%x\n",midifilek);
+ printf("\nMIDI file succesfully parsed.\n");
+// printf("\n0x%x\n",getbyte());
+
+ this->me=NULL;
+ return(0);
+};
+
+//private members
+
+
+int MIDIFile::parsetrack(int ntrack){
+ printf("\n--==*Reading track %d **==--\n",ntrack);
+
+ int chunk=getint32();//MTrk
+ if (chunk!=0x4d54726b) return(-1);
+
+ int size=getint32();
+ printf("size = %d\n",size);
+
+ int oldmidifilek=midifilek;
+
+ unsigned char lastmsg=0;
+ unsigned int dt=0;
+
+ while(!midieof){
+ unsigned int msgdeltatime=getvarint32();
+
+/// printf("MSGDELTATIME = %d\n",msgdeltatime);
+
+// dt+=msgdeltatime;
+
+ int msg=peekbyte();
+/// printf("raw msg=0x%x ",msg);
+ if (msg<0x80) {
+ msg=lastmsg;
+ } else {
+ lastmsg=msg;
+ getbyte();
+ };
+/// printf("msg=0x%x\n",msg);
+
+// dt+=msgdeltatime;
+ add_dt(ntrack, msgdeltatime);
+
+ unsigned int mtype,mlength;
+
+ switch(msg){
+ case 0x80 ... 0x8f://note on off
+ parsenoteoff(ntrack,msg & 0x0f,dt);
+ dt=0;
+ break;
+ case 0x90 ... 0x9f://note on (or note off)
+ parsenoteon(ntrack,msg & 0x0f,dt);
+ dt=0;
+ break;
+ case 0xa0 ... 0xaf://aftertouch - ignored
+ skipnbytes(2);
+ break;
+ case 0xb0 ... 0xbf://control change
+ parsecontrolchange(ntrack,msg & 0x0f,dt);
+ dt=0;
+ break;
+ case 0xc0 ... 0xcf://program change - ignored
+ skipnbytes(1);
+ break;
+ case 0xd0 ... 0xdf://channel pressure - ignored
+ skipnbytes(1);
+ break;
+ case 0xe0 ... 0xef://channel mode messages
+ skipnbytes(2);
+ break;
+ case 0xf0://sysex - ignored
+ while (getbyte()!=0xf7){
+ if (midieof) break;
+ };
+ break;
+ case 0xf7://sysex (another type) - ignored
+ skipnbytes(getvarint32());
+ break;
+
+ case 0xff://meta-event
+ mtype=getbyte();
+ mlength=getbyte();
+ parsemetaevent(mtype,mlength);
+ break;
+
+ default:
+ getbyte();
+ printf("UNKNOWN message! 0x%x\n",msg);
+ return(-1);
+ break;
+ };
+
+
+
+ if (midieof) return(-1);
+
+ if ((midifilek-oldmidifilek)==size) break;
+ else if((midifilek-oldmidifilek)>size) return(-1);
+// if (size!=6) return(-1);//header is always 6 bytes long
+ };
+
+ printf("End Track\n\n");
+
+ return(0);
+};
+
+
+void MIDIFile::parsenoteoff(char ntrack,char chan,unsigned int dt){
+ unsigned char note;
+ note=getbyte();
+
+ unsigned char noteoff_velocity=getbyte();//unused by zynaddsubfx
+ noteoff_velocity=0;
+ if (chan>=NUM_MIDI_CHANNELS) return;
+
+ me->tmpevent.deltatime=convertdt(dt);
+ me->tmpevent.type=1;
+ me->tmpevent.par1=note;
+ me->tmpevent.par2=0;
+ me->tmpevent.channel=chan;
+
+ printf("Note off:%d \n",note);
+
+ ///test
+// ntrack=0;
+
+ me->writeevent(&me->miditrack[(int)ntrack].record,&me->tmpevent);
+
+};
+
+
+void MIDIFile::parsenoteon(char ntrack,char chan,unsigned int dt){
+ unsigned char note,vel;
+ note=getbyte();
+ vel=getbyte();
+
+// printf("ntrack=%d\n",ntrack);
+ printf("[dt %d ] Note on:%d %d\n",dt,note,vel);
+
+ if (chan>=NUM_MIDI_CHANNELS) return;
+
+ me->tmpevent.deltatime=convertdt(dt);
+ me->tmpevent.type=1;
+ me->tmpevent.par1=note;
+ me->tmpevent.par2=vel;
+ me->tmpevent.channel=chan;
+ me->writeevent(&me->miditrack[(int)ntrack].record,&me->tmpevent);
+
+
+
+};
+
+void MIDIFile::parsecontrolchange(char ntrack,char chan,unsigned int dt){
+ unsigned char control,value;
+ control=getbyte();
+ value=getbyte();
+
+ if (chan>=NUM_MIDI_CHANNELS) return;
+
+ printf("[dt %d] Control change:%d %d\n",dt,control,value);
+
+ me->tmpevent.deltatime=convertdt(dt);
+ me->tmpevent.type=2;
+ me->tmpevent.par1=control;//???????????? ma uit la Sequencer::recordnote() din varianele vechi de zyn
+ me->tmpevent.par2=value;
+ me->tmpevent.channel=chan;
+ me->writeevent(&me->miditrack[(int)ntrack].record,&me->tmpevent);
+
+};
+
+void MIDIFile::parsepitchwheel(char ntrack,char chan, unsigned int dt){
+ unsigned char valhi,vallo;
+ vallo=getbyte();
+ valhi=getbyte();
+
+ if (chan>=NUM_MIDI_CHANNELS) return;
+
+ int value=(int)valhi*128+vallo;
+
+ printf("[dt %d] Pitch wheel:%d\n",dt,value);
+
+};
+
+void MIDIFile::parsemetaevent(unsigned char mtype,unsigned char mlength){
+ int oldmidifilek=midifilek;
+ printf("meta-event type=0x%x length=%d\n",mtype,mlength);
+
+
+
+ midifilek=oldmidifilek+mlength;
+
+};
+
+void MIDIFile::add_dt(char ntrack, unsigned int dt){
+ me->tmpevent.deltatime=convertdt(dt);
+ me->tmpevent.type=255;
+ me->tmpevent.par1=0;
+ me->tmpevent.par2=0;
+ me->tmpevent.channel=0;
+ me->writeevent(&me->miditrack[(int)ntrack].record,&me->tmpevent);
+};
+
+
+unsigned int MIDIFile::convertdt(unsigned int dt){
+ double result=dt;
+ printf("DT=%d\n",dt);
+
+ return((int) (result*15.0));
+};
+
+
+void MIDIFile::clearmidifile(){
+ if (midifile!=NULL) delete(midifile);
+ midifile=NULL;
+ midifilesize=0;
+ midifilek=0;
+ midieof=false;
+ data.tick=0.05;
+};
+
+unsigned char MIDIFile::getbyte(){
+ if (midifilek>=midifilesize) {
+ midieof=true;
+ return(0);
+ };
+
+/// printf("(%d) ",midifile[midifilek]);
+ return(midifile[midifilek++]);
+};
+
+unsigned char MIDIFile::peekbyte(){
+ if (midifilek>=midifilesize) {
+ midieof=true;
+ return(0);
+ };
+ return(midifile[midifilek]);
+};
+
+unsigned int MIDIFile::getint32(){
+ unsigned int result=0;
+ for (int i=0;i<4;i++) {
+ result=result*256+getbyte();
+ };
+ if (midieof) result=0;
+ return(result);
+};
+
+unsigned short int MIDIFile::getint16(){
+ unsigned short int result=0;
+ for (int i=0;i<2;i++) {
+ result=result*256+getbyte();
+ };
+ if (midieof) result=0;
+ return(result);
+};
+
+unsigned int MIDIFile::getvarint32(){
+ unsigned long result=0;
+ unsigned char b;
+
+/// printf("\n[start]");
+
+ if ((result = getbyte()) & 0x80) {
+ result &= 0x7f;
+ do {
+ b=getbyte();
+ result = (result << 7) + (b & 0x7f);
+ }while (b & 0x80);
+ }
+/// printf("[end - result= %d]\n",result);
+ return result;
+};
+
+
+void MIDIFile::skipnbytes(int n){
+ midifilek+=n;
+ if (midifilek>=midifilesize){
+ midifilek=midifilesize-1;
+ midieof=true;
+ };
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.h b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.h
new file mode 100644
index 00000000..c88f679c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/MIDIFile.h
@@ -0,0 +1,90 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ MIDIFile.h - MIDI file loader
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef MIDIFILE_H
+#define MIDIFILE_H
+
+#include "../globals.h"
+#include "MIDIEvents.h"
+
+class MIDIFile{
+ public:
+ MIDIFile();
+ ~MIDIFile();
+
+ //returns -1 if there is an error, otherwise 0
+ int loadfile(char *filename);
+
+ //returns -1 if there is an error, otherwise 0
+ int parsemidifile(MIDIEvents *me_);
+
+ private:
+ MIDIEvents *me;
+
+ unsigned char *midifile;
+ int midifilesize,midifilek;
+ bool midieof;
+
+ //returns -1 if there is an error, otherwise 0
+ int parsetrack(int ntrack);
+
+ void parsenoteoff(char ntrack,char chan,unsigned int dt);
+ void parsenoteon(char ntrack,char chan,unsigned int dt);
+ void parsecontrolchange(char ntrack,char chan,unsigned int dt);
+ void parsepitchwheel(char ntrack,char chan, unsigned int dt);
+ void parsemetaevent(unsigned char mtype,unsigned char mlength);
+
+ void add_dt(char ntrack, unsigned int dt);
+
+ void clearmidifile();
+
+ //convert the delta-time to internal format
+ unsigned int convertdt(unsigned int dt);
+
+ /* Low Level MIDIfile functions */
+
+ //get a byte from the midifile
+ unsigned char getbyte();
+
+ //peek the current byte from the midifile
+ unsigned char peekbyte();
+
+ //get a set of 4 bytes from the midifile
+ unsigned int getint32();
+
+ //get a word of 2 bytes from the midifile
+ unsigned short int getint16();
+
+ //read a variable length quantity
+ unsigned int getvarint32();
+
+ //skip some bytes
+ void skipnbytes(int n);
+
+ struct {
+ double tick;//how many seconds one tick has
+
+ }data;
+
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.C b/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.C
new file mode 100644
index 00000000..d81ee611
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.C
@@ -0,0 +1,165 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Sequencer.C - The Sequencer
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <sys/time.h>
+#include <time.h>
+
+#include "Sequencer.h"
+
+
+
+Sequencer::Sequencer(){
+ play=0;
+ for (int i=0;i<NUM_MIDI_TRACKS;i++){
+ miditrack[i].track.first=NULL;
+ miditrack[i].track.current=NULL;
+ miditrack[i].track.size=0;
+ miditrack[i].track.length=0.0;
+ miditrack[i].record.first=NULL;
+ miditrack[i].record.current=NULL;
+ miditrack[i].record.size=0;
+ miditrack[i].record.length=0.0;
+
+ nextevent[i].time=0.0;
+ resettime(&playtime[i]);
+ };
+
+ setplayspeed(0);
+};
+
+Sequencer::~Sequencer(){
+ for (int i=0;i<NUM_MIDI_TRACKS;i++){
+ deletelist(&miditrack[i].track);
+ deletelist(&miditrack[i].record);
+ };
+};
+
+
+int Sequencer::importmidifile(char *filename){
+ if (midifile.loadfile(filename)<0) return(-1);
+
+ for (int i=0;i<NUM_MIDI_TRACKS;i++){
+ deletelist(&miditrack[i].record);
+ };
+ if (midifile.parsemidifile(this)<0) return(-1);
+
+ //copy the "record" track to the main track
+ for (int i=0;i<NUM_MIDI_TRACKS;i++){
+ deletelist(&miditrack[i].track);
+ miditrack[i].track=miditrack[i].record;
+ deletelistreference(&miditrack[i].record);
+ };
+ return(0);
+};
+
+
+
+void Sequencer::startplay(){
+ if (play!=0) return;
+ for (int i=0;i<NUM_MIDI_TRACKS;i++) resettime(&playtime[i]);
+
+ for (int i=0;i<NUM_MIDI_TRACKS;i++){
+ rewindlist(&miditrack[i].track);
+ };
+ play=1;
+
+};
+void Sequencer::stopplay(){
+ if (play==0) return;
+ play=0;
+};
+
+// ************ Player stuff ***************
+
+int Sequencer::getevent(char ntrack,int *midich, int *type,int *par1, int *par2){
+ *type=0;
+ if (play==0) return(-1);
+
+ //test
+// if (ntrack!=0) return(-1);
+
+ updatecounter(&playtime[(int)ntrack]);
+
+// printf("%g %g\n",nextevent[ntrack].time,playtime[ntrack].abs);
+
+ if (nextevent[(int)ntrack].time<playtime[(int)ntrack].abs) readevent(&miditrack[(int)ntrack].track,&nextevent[(int)ntrack].ev);
+ else return(-1);
+ if (nextevent[(int)ntrack].ev.type==-1) return(-1);
+// printf("********************************\n");
+
+ //sa pun aici o protectie. a.i. daca distanta dintre timpul curent si eveliment e prea mare (>1sec) sa elimin nota
+
+ if (ntrack==1) printf("_ %f %.2f (%d)\n",nextevent[(int)ntrack].time,playtime[(int)ntrack].abs,nextevent[(int)ntrack].ev.par2);
+
+ *type=nextevent[(int)ntrack].ev.type;
+ *par1=nextevent[(int)ntrack].ev.par1;
+ *par2=nextevent[(int)ntrack].ev.par2;
+ *midich=nextevent[(int)ntrack].ev.channel;
+
+
+ double dt=nextevent[(int)ntrack].ev.deltatime*0.0001*realplayspeed;
+ printf("zzzzzzzzzzzzzz[%d] %d\n",ntrack,nextevent[(int)ntrack].ev.deltatime);
+ nextevent[(int)ntrack].time+=dt;
+
+// printf("%f - %d %d \n",nextevent[ntrack].time,par1,par2);
+ return(0);//?? sau 1
+};
+
+/************** Timer stuff ***************/
+
+void Sequencer::resettime(timestruct *t){
+ t->abs=0.0;
+ t->rel=0.0;
+
+ timeval tval;
+
+ t->last=0.0;
+ #ifndef OS_WINDOWS
+ if (gettimeofday(&tval,NULL)==0)
+ t->last=tval.tv_sec+tval.tv_usec*0.000001;
+ #endif
+
+};
+
+void Sequencer::updatecounter(timestruct *t){
+ timeval tval;
+ double current=0.0;
+ #ifndef OS_WINDOWS
+ if (gettimeofday(&tval,NULL)==0)
+ current=tval.tv_sec+tval.tv_usec*0.000001;
+ #endif
+
+ t->rel=current - t->last;
+ t->abs+=t->rel;
+ t->last=current;
+
+// printf("%f %f %f\n",t->last,t->abs,t->rel);
+};
+
+void Sequencer::setplayspeed(int speed){
+ playspeed=speed;
+ realplayspeed=pow(10.0,speed/128.0);
+};
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.h b/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.h
new file mode 100644
index 00000000..82ebe495
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Seq/Sequencer.h
@@ -0,0 +1,84 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Sequencer.h - The Sequencer
+ Copyright (C) 2003-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef SEQUENCER_H
+#define SEQUENCER_H
+
+#include "../globals.h"
+#include "MIDIEvents.h"
+#include "MIDIFile.h"
+
+class Sequencer:public MIDIEvents{
+ public:
+ Sequencer();
+ ~Sequencer();
+
+ //theese functions are called by the master and are ignored if the recorder/player are stopped
+ void recordnote(char chan, char note, char vel);
+ void recordcontroller(char chan,unsigned int type,int par);
+
+ //this is only for player
+ //it returns 1 if this must be called at least once more
+ //it returns 0 if there are no more notes for the current time
+ //or -1 if there is no note
+ int getevent(char ntrack, int *midich,int *type,int *par1, int *par2);
+
+ //returns 0 if ok or -1 if there is a error loading file
+ int importmidifile(char *filename);
+
+ void startplay();
+ void stopplay();
+
+
+ int play;
+ int playspeed;//viteza de rulare (0.1x-10x), 0=1.0x, 128=10x
+ void setplayspeed(int speed);
+
+ private:
+
+ MIDIFile midifile;
+
+ /* Timer */
+ struct timestruct{
+ double abs;//the time from the begining of the track
+ double rel;//the time difference between the last and the current event
+ double last;//the time of the last event (absolute, since 1 Jan 1970)
+ //theese must be double, because the float's precision is too low
+ //and all theese represents the time in seconds
+ } playtime[NUM_MIDI_TRACKS];
+
+ void resettime(timestruct *t);
+ void updatecounter(timestruct *t);//this updates the timer values
+
+ /* Player only*/
+
+ struct {
+ event ev;
+ double time;
+ } nextevent[NUM_MIDI_TRACKS];
+
+ double realplayspeed;
+
+};
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.C
new file mode 100644
index 00000000..574e2bea
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.C
@@ -0,0 +1,984 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ADnote.C - The "additive" synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+
+#include "../globals.h"
+#include "../Misc/Util.h"
+#include "ADnote.h"
+
+
+ADnote::ADnote(ADnoteParameters *pars,Controller *ctl_,REALTYPE freq,REALTYPE velocity,int portamento_,int midinote_){
+ ready=0;
+
+ tmpwave=new REALTYPE [SOUND_BUFFER_SIZE];
+ bypassl=new REALTYPE [SOUND_BUFFER_SIZE];
+ bypassr=new REALTYPE [SOUND_BUFFER_SIZE];
+
+ partparams=pars;
+ ctl=ctl_;
+ portamento=portamento_;
+ midinote=midinote_;
+ NoteEnabled=ON;
+ basefreq=freq;
+ if (velocity>1.0) velocity=1.0;
+ this->velocity=velocity;
+ time=0.0;
+ stereo=pars->GlobalPar.PStereo;
+
+ NoteGlobalPar.Detune=getdetune(pars->GlobalPar.PDetuneType
+ ,pars->GlobalPar.PCoarseDetune,pars->GlobalPar.PDetune);
+ bandwidthDetuneMultiplier=pars->getBandwidthDetuneMultiplier();
+
+ if (pars->GlobalPar.PPanning==0) NoteGlobalPar.Panning=RND;
+ else NoteGlobalPar.Panning=pars->GlobalPar.PPanning/128.0;
+
+
+ NoteGlobalPar.FilterCenterPitch=pars->GlobalPar.GlobalFilter->getfreq()+//center freq
+ pars->GlobalPar.PFilterVelocityScale/127.0*6.0* //velocity sensing
+ (VelF(velocity,pars->GlobalPar.PFilterVelocityScaleFunction)-1);
+
+ if (pars->GlobalPar.PPunchStrength!=0) {
+ NoteGlobalPar.Punch.Enabled=1;
+ NoteGlobalPar.Punch.t=1.0;//start from 1.0 and to 0.0
+ NoteGlobalPar.Punch.initialvalue=( (pow(10,1.5*pars->GlobalPar.PPunchStrength/127.0)-1.0)
+ *VelF(velocity,pars->GlobalPar.PPunchVelocitySensing) );
+ REALTYPE time=pow(10,3.0*pars->GlobalPar.PPunchTime/127.0)/10000.0;//0.1 .. 100 ms
+ REALTYPE stretch=pow(440.0/freq,pars->GlobalPar.PPunchStretch/64.0);
+ NoteGlobalPar.Punch.dt=1.0/(time*SAMPLE_RATE*stretch);
+ } else NoteGlobalPar.Punch.Enabled=0;
+
+ for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ pars->VoicePar[nvoice].OscilSmp->newrandseed(rand());
+ NoteVoicePar[nvoice].OscilSmp=NULL;
+ NoteVoicePar[nvoice].FMSmp=NULL;
+ NoteVoicePar[nvoice].VoiceOut=NULL;
+
+ NoteVoicePar[nvoice].FMVoice=-1;
+
+ if (pars->VoicePar[nvoice].Enabled==0) {
+ NoteVoicePar[nvoice].Enabled=OFF;
+ continue; //the voice is disabled
+ };
+
+ NoteVoicePar[nvoice].Enabled=ON;
+ NoteVoicePar[nvoice].fixedfreq=pars->VoicePar[nvoice].Pfixedfreq;
+ NoteVoicePar[nvoice].fixedfreqET=pars->VoicePar[nvoice].PfixedfreqET;
+
+ //use the Globalpars.detunetype if the detunetype is 0
+ if (pars->VoicePar[nvoice].PDetuneType!=0){
+ NoteVoicePar[nvoice].Detune=getdetune(pars->VoicePar[nvoice].PDetuneType
+ ,pars->VoicePar[nvoice].PCoarseDetune,8192);//coarse detune
+ NoteVoicePar[nvoice].FineDetune=getdetune(pars->VoicePar[nvoice].PDetuneType
+ ,0,pars->VoicePar[nvoice].PDetune);//fine detune
+ } else {
+ NoteVoicePar[nvoice].Detune=getdetune(pars->GlobalPar.PDetuneType
+ ,pars->VoicePar[nvoice].PCoarseDetune,8192);//coarse detune
+ NoteVoicePar[nvoice].FineDetune=getdetune(pars->GlobalPar.PDetuneType
+ ,0,pars->VoicePar[nvoice].PDetune);//fine detune
+ };
+ if (pars->VoicePar[nvoice].PFMDetuneType!=0){
+ NoteVoicePar[nvoice].FMDetune=getdetune(pars->VoicePar[nvoice].PFMDetuneType
+ ,pars->VoicePar[nvoice].PFMCoarseDetune,pars->VoicePar[nvoice].PFMDetune);
+ } else {
+ NoteVoicePar[nvoice].FMDetune=getdetune(pars->GlobalPar.PDetuneType
+ ,pars->VoicePar[nvoice].PFMCoarseDetune,pars->VoicePar[nvoice].PFMDetune);
+ };
+
+ oscposhi[nvoice]=0;oscposlo[nvoice]=0.0;
+ oscposhiFM[nvoice]=0;oscposloFM[nvoice]=0.0;
+
+ NoteVoicePar[nvoice].OscilSmp=new REALTYPE[OSCIL_SIZE+OSCIL_SMP_EXTRA_SAMPLES];//the extra points contains the first point
+
+ //Get the voice's oscil or external's voice oscil
+ int vc=nvoice;
+ if (pars->VoicePar[nvoice].Pextoscil!=-1) vc=pars->VoicePar[nvoice].Pextoscil;
+ if (!pars->GlobalPar.Hrandgrouping) pars->VoicePar[vc].OscilSmp->newrandseed(rand());
+ oscposhi[nvoice]=pars->VoicePar[vc].OscilSmp->get(NoteVoicePar[nvoice].OscilSmp,getvoicebasefreq(nvoice),
+ pars->VoicePar[nvoice].Presonance);
+
+ //I store the first elments to the last position for speedups
+ for (int i=0;i<OSCIL_SMP_EXTRA_SAMPLES;i++) NoteVoicePar[nvoice].OscilSmp[OSCIL_SIZE+i]=NoteVoicePar[nvoice].OscilSmp[i];
+
+ oscposhi[nvoice]+=(int)((pars->VoicePar[nvoice].Poscilphase-64.0)/128.0*OSCIL_SIZE+OSCIL_SIZE*4);
+ oscposhi[nvoice]%=OSCIL_SIZE;
+
+
+ NoteVoicePar[nvoice].FreqLfo=NULL;
+ NoteVoicePar[nvoice].FreqEnvelope=NULL;
+
+ NoteVoicePar[nvoice].AmpLfo=NULL;
+ NoteVoicePar[nvoice].AmpEnvelope=NULL;
+
+ NoteVoicePar[nvoice].VoiceFilter=NULL;
+ NoteVoicePar[nvoice].FilterEnvelope=NULL;
+ NoteVoicePar[nvoice].FilterLfo=NULL;
+
+ NoteVoicePar[nvoice].FilterCenterPitch=pars->VoicePar[nvoice].VoiceFilter->getfreq();
+ NoteVoicePar[nvoice].filterbypass=pars->VoicePar[nvoice].Pfilterbypass;
+
+ switch(pars->VoicePar[nvoice].PFMEnabled){
+ case 1:NoteVoicePar[nvoice].FMEnabled=MORPH;break;
+ case 2:NoteVoicePar[nvoice].FMEnabled=RING_MOD;break;
+ case 3:NoteVoicePar[nvoice].FMEnabled=PHASE_MOD;break;
+ case 4:NoteVoicePar[nvoice].FMEnabled=FREQ_MOD;break;
+ case 5:NoteVoicePar[nvoice].FMEnabled=PITCH_MOD;break;
+ default:NoteVoicePar[nvoice].FMEnabled=NONE;
+ };
+
+ NoteVoicePar[nvoice].FMVoice=pars->VoicePar[nvoice].PFMVoice;
+ NoteVoicePar[nvoice].FMFreqEnvelope=NULL;
+ NoteVoicePar[nvoice].FMAmpEnvelope=NULL;
+
+ //Compute the Voice's modulator volume (incl. damping)
+ REALTYPE fmvoldamp=pow(440.0/getvoicebasefreq(nvoice),pars->VoicePar[nvoice].PFMVolumeDamp/64.0-1.0);
+ switch (NoteVoicePar[nvoice].FMEnabled){
+ case PHASE_MOD:fmvoldamp=pow(440.0/getvoicebasefreq(nvoice),pars->VoicePar[nvoice].PFMVolumeDamp/64.0);
+ NoteVoicePar[nvoice].FMVolume=(exp(pars->VoicePar[nvoice].PFMVolume/127.0*FM_AMP_MULTIPLIER)-1.0)*fmvoldamp*4.0;
+ break;
+ case FREQ_MOD:NoteVoicePar[nvoice].FMVolume=(exp(pars->VoicePar[nvoice].PFMVolume/127.0*FM_AMP_MULTIPLIER)-1.0)*fmvoldamp*4.0;
+ break;
+ // case PITCH_MOD:NoteVoicePar[nvoice].FMVolume=(pars->VoicePar[nvoice].PFMVolume/127.0*8.0)*fmvoldamp;//???????????
+ // break;
+ default:if (fmvoldamp>1.0) fmvoldamp=1.0;
+ NoteVoicePar[nvoice].FMVolume=pars->VoicePar[nvoice].PFMVolume/127.0*fmvoldamp;
+ };
+
+ //Voice's modulator velocity sensing
+ NoteVoicePar[nvoice].FMVolume*=VelF(velocity,partparams->VoicePar[nvoice].PFMVelocityScaleFunction);
+
+ FMoldsmp[nvoice]=0.0;//this is for FM (integration)
+
+ firsttick[nvoice]=1;
+ NoteVoicePar[nvoice].DelayTicks=(int)((exp(pars->VoicePar[nvoice].PDelay/127.0*log(50.0))-1.0)/SOUND_BUFFER_SIZE/10.0*SAMPLE_RATE);
+ };
+
+ initparameters();
+ ready=1;
+};
+
+
+/*
+ * Kill a voice of ADnote
+ */
+void ADnote::KillVoice(int nvoice){
+
+ delete (NoteVoicePar[nvoice].OscilSmp);
+
+ if (NoteVoicePar[nvoice].FreqEnvelope!=NULL) delete(NoteVoicePar[nvoice].FreqEnvelope);
+ NoteVoicePar[nvoice].FreqEnvelope=NULL;
+
+ if (NoteVoicePar[nvoice].FreqLfo!=NULL) delete(NoteVoicePar[nvoice].FreqLfo);
+ NoteVoicePar[nvoice].FreqLfo=NULL;
+
+ if (NoteVoicePar[nvoice].AmpEnvelope!=NULL) delete (NoteVoicePar[nvoice].AmpEnvelope);
+ NoteVoicePar[nvoice].AmpEnvelope=NULL;
+
+ if (NoteVoicePar[nvoice].AmpLfo!=NULL) delete (NoteVoicePar[nvoice].AmpLfo);
+ NoteVoicePar[nvoice].AmpLfo=NULL;
+
+ if (NoteVoicePar[nvoice].VoiceFilter!=NULL) delete (NoteVoicePar[nvoice].VoiceFilter);
+ NoteVoicePar[nvoice].VoiceFilter=NULL;
+
+ if (NoteVoicePar[nvoice].FilterEnvelope!=NULL) delete (NoteVoicePar[nvoice].FilterEnvelope);
+ NoteVoicePar[nvoice].FilterEnvelope=NULL;
+
+ if (NoteVoicePar[nvoice].FilterLfo!=NULL) delete (NoteVoicePar[nvoice].FilterLfo);
+ NoteVoicePar[nvoice].FilterLfo=NULL;
+
+ if (NoteVoicePar[nvoice].FMFreqEnvelope!=NULL) delete (NoteVoicePar[nvoice].FMFreqEnvelope);
+ NoteVoicePar[nvoice].FMFreqEnvelope=NULL;
+
+ if (NoteVoicePar[nvoice].FMAmpEnvelope!=NULL) delete (NoteVoicePar[nvoice].FMAmpEnvelope);
+ NoteVoicePar[nvoice].FMAmpEnvelope=NULL;
+
+ if ((NoteVoicePar[nvoice].FMEnabled!=NONE)&&(NoteVoicePar[nvoice].FMVoice<0)) delete NoteVoicePar[nvoice].FMSmp;
+
+ if (NoteVoicePar[nvoice].VoiceOut!=NULL)
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++) NoteVoicePar[nvoice].VoiceOut[i]=0.0;//do not delete, yet: perhaps is used by another voice
+
+ NoteVoicePar[nvoice].Enabled=OFF;
+};
+
+/*
+ * Kill the note
+ */
+void ADnote::KillNote(){
+ int nvoice;
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ if (NoteVoicePar[nvoice].Enabled==ON) KillVoice(nvoice);
+
+ //delete VoiceOut
+ if (NoteVoicePar[nvoice].VoiceOut!=NULL) delete(NoteVoicePar[nvoice].VoiceOut);
+ NoteVoicePar[nvoice].VoiceOut=NULL;
+ };
+
+ delete (NoteGlobalPar.FreqEnvelope);
+ delete (NoteGlobalPar.FreqLfo);
+ delete (NoteGlobalPar.AmpEnvelope);
+ delete (NoteGlobalPar.AmpLfo);
+ delete (NoteGlobalPar.GlobalFilterL);
+ if (stereo!=0) delete (NoteGlobalPar.GlobalFilterR);
+ delete (NoteGlobalPar.FilterEnvelope);
+ delete (NoteGlobalPar.FilterLfo);
+
+ NoteEnabled=OFF;
+};
+
+ADnote::~ADnote(){
+ if (NoteEnabled==ON) KillNote();
+ delete [] tmpwave;
+ delete [] bypassl;
+ delete [] bypassr;
+};
+
+
+/*
+ * Init the parameters
+ */
+void ADnote::initparameters(){
+ int nvoice,i,tmp[NUM_VOICES];
+
+ // Global Parameters
+ NoteGlobalPar.FreqEnvelope=new Envelope(partparams->GlobalPar.FreqEnvelope,basefreq);
+ NoteGlobalPar.FreqLfo=new LFO(partparams->GlobalPar.FreqLfo,basefreq);
+
+ NoteGlobalPar.AmpEnvelope=new Envelope(partparams->GlobalPar.AmpEnvelope,basefreq);
+ NoteGlobalPar.AmpLfo=new LFO(partparams->GlobalPar.AmpLfo,basefreq);
+
+ NoteGlobalPar.Volume=4.0*pow(0.1,3.0*(1.0-partparams->GlobalPar.PVolume/96.0))//-60 dB .. 0 dB
+ *VelF(velocity,partparams->GlobalPar.PAmpVelocityScaleFunction);//velocity sensing
+
+ NoteGlobalPar.AmpEnvelope->envout_dB();//discard the first envelope output
+ globalnewamplitude=NoteGlobalPar.Volume*NoteGlobalPar.AmpEnvelope->envout_dB()*NoteGlobalPar.AmpLfo->amplfoout();
+
+ NoteGlobalPar.GlobalFilterL=new Filter(partparams->GlobalPar.GlobalFilter);
+ if (stereo!=0) NoteGlobalPar.GlobalFilterR=new Filter(partparams->GlobalPar.GlobalFilter);
+
+ NoteGlobalPar.FilterEnvelope=new Envelope(partparams->GlobalPar.FilterEnvelope,basefreq);
+ NoteGlobalPar.FilterLfo=new LFO(partparams->GlobalPar.FilterLfo,basefreq);
+ NoteGlobalPar.FilterQ=partparams->GlobalPar.GlobalFilter->getq();
+ NoteGlobalPar.FilterFreqTracking=partparams->GlobalPar.GlobalFilter->getfreqtracking(basefreq);
+
+ // Forbids the Modulation Voice to be greater or equal than voice
+ for (i=0;i<NUM_VOICES;i++) if (NoteVoicePar[i].FMVoice>=i) NoteVoicePar[i].FMVoice=-1;
+
+ // Voice Parameter init
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ if (NoteVoicePar[nvoice].Enabled==0) continue;
+
+ NoteVoicePar[nvoice].noisetype=partparams->VoicePar[nvoice].Type;
+ /* Voice Amplitude Parameters Init */
+ NoteVoicePar[nvoice].Volume=pow(0.1,3.0*(1.0-partparams->VoicePar[nvoice].PVolume/127.0)) // -60 dB .. 0 dB
+ *VelF(velocity,partparams->VoicePar[nvoice].PAmpVelocityScaleFunction);//velocity
+
+ if (partparams->VoicePar[nvoice].PVolumeminus!=0) NoteVoicePar[nvoice].Volume=-NoteVoicePar[nvoice].Volume;
+
+ if (partparams->VoicePar[nvoice].PPanning==0)
+ NoteVoicePar[nvoice].Panning=RND;// random panning
+ else NoteVoicePar[nvoice].Panning=partparams->VoicePar[nvoice].PPanning/128.0;
+
+ newamplitude[nvoice]=1.0;
+ if (partparams->VoicePar[nvoice].PAmpEnvelopeEnabled!=0) {
+ NoteVoicePar[nvoice].AmpEnvelope=new Envelope(partparams->VoicePar[nvoice].AmpEnvelope,basefreq);
+ NoteVoicePar[nvoice].AmpEnvelope->envout_dB();//discard the first envelope sample
+ newamplitude[nvoice]*=NoteVoicePar[nvoice].AmpEnvelope->envout_dB();
+ };
+
+ if (partparams->VoicePar[nvoice].PAmpLfoEnabled!=0){
+ NoteVoicePar[nvoice].AmpLfo=new LFO(partparams->VoicePar[nvoice].AmpLfo,basefreq);
+ newamplitude[nvoice]*=NoteVoicePar[nvoice].AmpLfo->amplfoout();
+ };
+
+ /* Voice Frequency Parameters Init */
+ if (partparams->VoicePar[nvoice].PFreqEnvelopeEnabled!=0)
+ NoteVoicePar[nvoice].FreqEnvelope=new Envelope(partparams->VoicePar[nvoice].FreqEnvelope,basefreq);
+
+ if (partparams->VoicePar[nvoice].PFreqLfoEnabled!=0) NoteVoicePar[nvoice].FreqLfo=new LFO(partparams->VoicePar[nvoice].FreqLfo,basefreq);
+
+ /* Voice Filter Parameters Init */
+ if (partparams->VoicePar[nvoice].PFilterEnabled!=0){
+ NoteVoicePar[nvoice].VoiceFilter=new Filter(partparams->VoicePar[nvoice].VoiceFilter);
+ };
+
+ if (partparams->VoicePar[nvoice].PFilterEnvelopeEnabled!=0)
+ NoteVoicePar[nvoice].FilterEnvelope=new Envelope(partparams->VoicePar[nvoice].FilterEnvelope,basefreq);
+
+ if (partparams->VoicePar[nvoice].PFilterLfoEnabled!=0)
+ NoteVoicePar[nvoice].FilterLfo=new LFO(partparams->VoicePar[nvoice].FilterLfo,basefreq);
+
+ NoteVoicePar[nvoice].FilterFreqTracking=partparams->VoicePar[nvoice].VoiceFilter->getfreqtracking(basefreq);
+
+ /* Voice Modulation Parameters Init */
+ if ((NoteVoicePar[nvoice].FMEnabled!=NONE)&&(NoteVoicePar[nvoice].FMVoice<0)){
+ partparams->VoicePar[nvoice].FMSmp->newrandseed(rand());
+ NoteVoicePar[nvoice].FMSmp=new REALTYPE[OSCIL_SIZE+OSCIL_SMP_EXTRA_SAMPLES];
+
+ //Perform Anti-aliasing only on MORPH or RING MODULATION
+
+ int vc=nvoice;
+ if (partparams->VoicePar[nvoice].PextFMoscil!=-1) vc=partparams->VoicePar[nvoice].PextFMoscil;
+
+ REALTYPE tmp=1.0;
+ if ((partparams->VoicePar[vc].FMSmp->Padaptiveharmonics!=0)||
+ (NoteVoicePar[nvoice].FMEnabled==MORPH)||
+ (NoteVoicePar[nvoice].FMEnabled==RING_MOD)){
+ tmp=getFMvoicebasefreq(nvoice);
+ };
+ if (!partparams->GlobalPar.Hrandgrouping) partparams->VoicePar[vc].FMSmp->newrandseed(rand());
+
+ oscposhiFM[nvoice]=(oscposhi[nvoice]+partparams->VoicePar[vc].FMSmp->get(NoteVoicePar[nvoice].FMSmp,tmp)) % OSCIL_SIZE;
+ for (int i=0;i<OSCIL_SMP_EXTRA_SAMPLES;i++) NoteVoicePar[nvoice].FMSmp[OSCIL_SIZE+i]=NoteVoicePar[nvoice].FMSmp[i];
+ oscposhiFM[nvoice]+=(int)((partparams->VoicePar[nvoice].PFMoscilphase-64.0)/128.0*OSCIL_SIZE+OSCIL_SIZE*4);
+ oscposhiFM[nvoice]%=OSCIL_SIZE;
+ };
+
+ if (partparams->VoicePar[nvoice].PFMFreqEnvelopeEnabled!=0)
+ NoteVoicePar[nvoice].FMFreqEnvelope=new Envelope(partparams->VoicePar[nvoice].FMFreqEnvelope,basefreq);
+
+ FMnewamplitude[nvoice]=NoteVoicePar[nvoice].FMVolume*ctl->fmamp.relamp;
+
+ if (partparams->VoicePar[nvoice].PFMAmpEnvelopeEnabled!=0){
+ NoteVoicePar[nvoice].FMAmpEnvelope=new Envelope(partparams->VoicePar[nvoice].FMAmpEnvelope,basefreq);
+ FMnewamplitude[nvoice]*=NoteVoicePar[nvoice].FMAmpEnvelope->envout_dB();
+ };
+ };
+
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ for (i=nvoice+1;i<NUM_VOICES;i++) tmp[i]=0;
+ for (i=nvoice+1;i<NUM_VOICES;i++)
+ if ((NoteVoicePar[i].FMVoice==nvoice)&&(tmp[i]==0)){
+ NoteVoicePar[nvoice].VoiceOut=new REALTYPE[SOUND_BUFFER_SIZE];
+ tmp[i]=1;
+ };
+ if (NoteVoicePar[nvoice].VoiceOut!=NULL) for (i=0;i<SOUND_BUFFER_SIZE;i++) NoteVoicePar[nvoice].VoiceOut[i]=0.0;
+ };
+};
+
+
+
+/*
+ * Computes the frequency of an oscillator
+ */
+void ADnote::setfreq(int nvoice,REALTYPE freq){
+ REALTYPE speed;
+ freq=fabs(freq);
+ speed=freq*REALTYPE(OSCIL_SIZE)/(REALTYPE) SAMPLE_RATE;
+ if (speed>OSCIL_SIZE) speed=OSCIL_SIZE;
+
+ F2I(speed,oscfreqhi[nvoice]);
+ oscfreqlo[nvoice]=speed-floor(speed);
+};
+
+/*
+ * Computes the frequency of an modullator oscillator
+ */
+void ADnote::setfreqFM(int nvoice,REALTYPE freq){
+ REALTYPE speed;
+ freq=fabs(freq);
+ speed=freq*REALTYPE(OSCIL_SIZE)/(REALTYPE) SAMPLE_RATE;
+ if (speed>OSCIL_SIZE) speed=OSCIL_SIZE;
+
+ F2I(speed,oscfreqhiFM[nvoice]);
+ oscfreqloFM[nvoice]=speed-floor(speed);
+};
+
+/*
+ * Get Voice base frequency
+ */
+REALTYPE ADnote::getvoicebasefreq(int nvoice){
+ REALTYPE detune=NoteVoicePar[nvoice].Detune/100.0+
+ NoteVoicePar[nvoice].FineDetune/100.0*ctl->bandwidth.relbw*bandwidthDetuneMultiplier+
+ NoteGlobalPar.Detune/100.0;
+
+ if (NoteVoicePar[nvoice].fixedfreq==0) return(this->basefreq*pow(2,detune/12.0));
+ else {//the fixed freq is enabled
+ REALTYPE fixedfreq=440.0;
+ int fixedfreqET=NoteVoicePar[nvoice].fixedfreqET;
+ if (fixedfreqET!=0) {//if the frequency varies according the keyboard note
+ REALTYPE tmp=(midinote-69.0)/12.0*(pow(2.0,(fixedfreqET-1)/63.0)-1.0);
+ if (fixedfreqET<=64) fixedfreq*=pow(2.0,tmp);
+ else fixedfreq*=pow(3.0,tmp);
+ };
+ return(fixedfreq*pow(2.0,detune/12.0));
+ };
+};
+
+/*
+ * Get Voice's Modullator base frequency
+ */
+REALTYPE ADnote::getFMvoicebasefreq(int nvoice){
+ REALTYPE detune=NoteVoicePar[nvoice].FMDetune/100.0;
+ return(getvoicebasefreq(nvoice)*pow(2,detune/12.0));
+};
+
+/*
+ * Computes all the parameters for each tick
+ */
+void ADnote::computecurrentparameters(){
+ int nvoice;
+ REALTYPE voicefreq,voicepitch,filterpitch,filterfreq,FMfreq,FMrelativepitch,globalpitch,globalfilterpitch;
+ globalpitch=0.01*(NoteGlobalPar.FreqEnvelope->envout()+
+ NoteGlobalPar.FreqLfo->lfoout()*ctl->modwheel.relmod);
+ globaloldamplitude=globalnewamplitude;
+ globalnewamplitude=NoteGlobalPar.Volume*NoteGlobalPar.AmpEnvelope->envout_dB()*NoteGlobalPar.AmpLfo->amplfoout();
+
+ globalfilterpitch=NoteGlobalPar.FilterEnvelope->envout()+NoteGlobalPar.FilterLfo->lfoout()
+ +NoteGlobalPar.FilterCenterPitch;
+
+ REALTYPE tmpfilterfreq=globalfilterpitch+ctl->filtercutoff.relfreq
+ +NoteGlobalPar.FilterFreqTracking;
+
+ tmpfilterfreq=NoteGlobalPar.GlobalFilterL->getrealfreq(tmpfilterfreq);
+
+ REALTYPE globalfilterq=NoteGlobalPar.FilterQ*ctl->filterq.relq;
+ NoteGlobalPar.GlobalFilterL->setfreq_and_q(tmpfilterfreq,globalfilterq);
+ if (stereo!=0) NoteGlobalPar.GlobalFilterR->setfreq_and_q(tmpfilterfreq,globalfilterq);
+
+ //compute the portamento, if it is used by this note
+ REALTYPE portamentofreqrap=1.0;
+ if (portamento!=0){//this voice use portamento
+ portamentofreqrap=ctl->portamento.freqrap;
+ if (ctl->portamento.used==0){//the portamento has finished
+ portamento=0;//this note is no longer "portamented"
+ };
+ };
+
+ //compute parameters for all voices
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ if (NoteVoicePar[nvoice].Enabled!=ON) continue;
+ NoteVoicePar[nvoice].DelayTicks-=1;
+ if (NoteVoicePar[nvoice].DelayTicks>0) continue;
+
+ /*******************/
+ /* Voice Amplitude */
+ /*******************/
+ oldamplitude[nvoice]=newamplitude[nvoice];
+ newamplitude[nvoice]=1.0;
+
+ if (NoteVoicePar[nvoice].AmpEnvelope!=NULL)
+ newamplitude[nvoice]*=NoteVoicePar[nvoice].AmpEnvelope->envout_dB();
+
+ if (NoteVoicePar[nvoice].AmpLfo!=NULL)
+ newamplitude[nvoice]*=NoteVoicePar[nvoice].AmpLfo->amplfoout();
+
+ /****************/
+ /* Voice Filter */
+ /****************/
+ if (NoteVoicePar[nvoice].VoiceFilter!=NULL){
+ filterpitch=NoteVoicePar[nvoice].FilterCenterPitch;
+
+ if (NoteVoicePar[nvoice].FilterEnvelope!=NULL)
+ filterpitch+=NoteVoicePar[nvoice].FilterEnvelope->envout();
+
+ if (NoteVoicePar[nvoice].FilterLfo!=NULL)
+ filterpitch+=NoteVoicePar[nvoice].FilterLfo->lfoout();
+
+ filterfreq=filterpitch+NoteVoicePar[nvoice].FilterFreqTracking;
+ filterfreq=NoteVoicePar[nvoice].VoiceFilter->getrealfreq(filterfreq);
+
+ NoteVoicePar[nvoice].VoiceFilter->setfreq(filterfreq);
+ };
+
+ if (NoteVoicePar[nvoice].noisetype==0){//compute only if the voice isn't noise
+
+ /*******************/
+ /* Voice Frequency */
+ /*******************/
+ voicepitch=0.0;
+ if (NoteVoicePar[nvoice].FreqLfo!=NULL)
+ voicepitch+=NoteVoicePar[nvoice].FreqLfo->lfoout()/100.0
+ *ctl->bandwidth.relbw;
+
+ if (NoteVoicePar[nvoice].FreqEnvelope!=NULL) voicepitch+=NoteVoicePar[nvoice].FreqEnvelope->envout()/100.0;
+ voicefreq=getvoicebasefreq(nvoice)*pow(2,(voicepitch+globalpitch)/12.0);//Hz frequency
+ voicefreq*=ctl->pitchwheel.relfreq;//change the frequency by the controller
+ setfreq(nvoice,voicefreq*portamentofreqrap);
+
+ /***************/
+ /* Modulator */
+ /***************/
+ if (NoteVoicePar[nvoice].FMEnabled!=NONE){
+ FMrelativepitch=NoteVoicePar[nvoice].FMDetune/100.0;
+ if (NoteVoicePar[nvoice].FMFreqEnvelope!=NULL) FMrelativepitch+=NoteVoicePar[nvoice].FMFreqEnvelope->envout()/100;
+ FMfreq=pow(2.0,FMrelativepitch/12.0)*voicefreq*portamentofreqrap;
+ setfreqFM(nvoice,FMfreq);
+
+ FMoldamplitude[nvoice]=FMnewamplitude[nvoice];
+ FMnewamplitude[nvoice]=NoteVoicePar[nvoice].FMVolume*ctl->fmamp.relamp;
+ if (NoteVoicePar[nvoice].FMAmpEnvelope!=NULL)
+ FMnewamplitude[nvoice]*=NoteVoicePar[nvoice].FMAmpEnvelope->envout_dB();
+ };
+ };
+
+ };
+ time+=(REALTYPE)SOUND_BUFFER_SIZE/(REALTYPE)SAMPLE_RATE;
+};
+
+
+/*
+ * Fadein in a way that removes clicks but keep sound "punchy"
+ */
+inline void ADnote::fadein(REALTYPE *smps){
+ int zerocrossings=0;
+ for (int i=1;i<SOUND_BUFFER_SIZE;i++)
+ if ((smps[i-1]<0.0) && (smps[i]>0.0)) zerocrossings++;//this is only the possitive crossings
+
+ REALTYPE tmp=(SOUND_BUFFER_SIZE-1.0)/(zerocrossings+1)/3.0;
+ if (tmp<8.0) tmp=8.0;
+
+ int n;
+ F2I(tmp,n);//how many samples is the fade-in
+ if (n>SOUND_BUFFER_SIZE) n=SOUND_BUFFER_SIZE;
+ for (int i=0;i<n;i++) {//fade-in
+ REALTYPE tmp=0.5-cos((REALTYPE)i/(REALTYPE) n*PI)*0.5;
+ smps[i]*=tmp;
+ };
+};
+
+/*
+ * Computes the Oscillator (Without Modulation) - LinearInterpolation
+ */
+inline void ADnote::ComputeVoiceOscillator_LinearInterpolation(int nvoice){
+ int i,poshi;
+ REALTYPE poslo;
+
+ poshi=oscposhi[nvoice];
+ poslo=oscposlo[nvoice];
+ REALTYPE *smps=NoteVoicePar[nvoice].OscilSmp;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ tmpwave[i]=smps[poshi]*(1.0-poslo)+smps[poshi+1]*poslo;
+ poslo+=oscfreqlo[nvoice];
+ if (poslo>=1.0) {
+ poslo-=1.0;
+ poshi++;
+ };
+ poshi+=oscfreqhi[nvoice];
+ poshi&=OSCIL_SIZE-1;
+ };
+ oscposhi[nvoice]=poshi;
+ oscposlo[nvoice]=poslo;
+};
+
+
+
+/*
+ * Computes the Oscillator (Without Modulation) - CubicInterpolation
+ *
+ The differences from the Linear are to little to deserve to be used. This is because I am using a large OSCIL_SIZE (>512)
+inline void ADnote::ComputeVoiceOscillator_CubicInterpolation(int nvoice){
+ int i,poshi;
+ REALTYPE poslo;
+
+ poshi=oscposhi[nvoice];
+ poslo=oscposlo[nvoice];
+ REALTYPE *smps=NoteVoicePar[nvoice].OscilSmp;
+ REALTYPE xm1,x0,x1,x2,a,b,c;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ xm1=smps[poshi];
+ x0=smps[poshi+1];
+ x1=smps[poshi+2];
+ x2=smps[poshi+3];
+ a=(3.0 * (x0-x1) - xm1 + x2) / 2.0;
+ b = 2.0*x1 + xm1 - (5.0*x0 + x2) / 2.0;
+ c = (x1 - xm1) / 2.0;
+ tmpwave[i]=(((a * poslo) + b) * poslo + c) * poslo + x0;
+ printf("a\n");
+ //tmpwave[i]=smps[poshi]*(1.0-poslo)+smps[poshi+1]*poslo;
+ poslo+=oscfreqlo[nvoice];
+ if (poslo>=1.0) {
+ poslo-=1.0;
+ poshi++;
+ };
+ poshi+=oscfreqhi[nvoice];
+ poshi&=OSCIL_SIZE-1;
+ };
+ oscposhi[nvoice]=poshi;
+ oscposlo[nvoice]=poslo;
+};
+*/
+/*
+ * Computes the Oscillator (Morphing)
+ */
+inline void ADnote::ComputeVoiceOscillatorMorph(int nvoice){
+ int i;
+ REALTYPE amp;
+ ComputeVoiceOscillator_LinearInterpolation(nvoice);
+ if (FMnewamplitude[nvoice]>1.0) FMnewamplitude[nvoice]=1.0;
+ if (FMoldamplitude[nvoice]>1.0) FMoldamplitude[nvoice]=1.0;
+
+ if (NoteVoicePar[nvoice].FMVoice>=0){
+ //if I use VoiceOut[] as modullator
+ int FMVoice=NoteVoicePar[nvoice].FMVoice;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ amp=INTERPOLATE_AMPLITUDE(FMoldamplitude[nvoice]
+ ,FMnewamplitude[nvoice],i,SOUND_BUFFER_SIZE);
+ tmpwave[i]=tmpwave[i]*(1.0-amp)+amp*NoteVoicePar[FMVoice].VoiceOut[i];
+ };
+ } else {
+ int poshiFM=oscposhiFM[nvoice];
+ REALTYPE posloFM=oscposloFM[nvoice];
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ amp=INTERPOLATE_AMPLITUDE(FMoldamplitude[nvoice]
+ ,FMnewamplitude[nvoice],i,SOUND_BUFFER_SIZE);
+ tmpwave[i]=tmpwave[i]*(1.0-amp)+amp
+ *(NoteVoicePar[nvoice].FMSmp[poshiFM]*(1-posloFM)
+ +NoteVoicePar[nvoice].FMSmp[poshiFM+1]*posloFM);
+ posloFM+=oscfreqloFM[nvoice];
+ if (posloFM>=1.0) {
+ posloFM-=1.0;
+ poshiFM++;
+ };
+ poshiFM+=oscfreqhiFM[nvoice];
+ poshiFM&=OSCIL_SIZE-1;
+ };
+ oscposhiFM[nvoice]=poshiFM;
+ oscposloFM[nvoice]=posloFM;
+ };
+};
+
+/*
+ * Computes the Oscillator (Ring Modulation)
+ */
+inline void ADnote::ComputeVoiceOscillatorRingModulation(int nvoice){
+ int i;
+ REALTYPE amp;
+ ComputeVoiceOscillator_LinearInterpolation(nvoice);
+ if (FMnewamplitude[nvoice]>1.0) FMnewamplitude[nvoice]=1.0;
+ if (FMoldamplitude[nvoice]>1.0) FMoldamplitude[nvoice]=1.0;
+ if (NoteVoicePar[nvoice].FMVoice>=0){
+ // if I use VoiceOut[] as modullator
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ amp=INTERPOLATE_AMPLITUDE(FMoldamplitude[nvoice]
+ ,FMnewamplitude[nvoice],i,SOUND_BUFFER_SIZE);
+ int FMVoice=NoteVoicePar[nvoice].FMVoice;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++)
+ tmpwave[i]*=(1.0-amp)+amp*NoteVoicePar[FMVoice].VoiceOut[i];
+ };
+ } else {
+ int poshiFM=oscposhiFM[nvoice];
+ REALTYPE posloFM=oscposloFM[nvoice];
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ amp=INTERPOLATE_AMPLITUDE(FMoldamplitude[nvoice]
+ ,FMnewamplitude[nvoice],i,SOUND_BUFFER_SIZE);
+ tmpwave[i]*=( NoteVoicePar[nvoice].FMSmp[poshiFM]*(1.0-posloFM)
+ +NoteVoicePar[nvoice].FMSmp[poshiFM+1]*posloFM)*amp
+ +(1.0-amp);
+ posloFM+=oscfreqloFM[nvoice];
+ if (posloFM>=1.0) {
+ posloFM-=1.0;
+ poshiFM++;
+ };
+ poshiFM+=oscfreqhiFM[nvoice];
+ poshiFM&=OSCIL_SIZE-1;
+ };
+ oscposhiFM[nvoice]=poshiFM;
+ oscposloFM[nvoice]=posloFM;
+ };
+};
+
+
+
+/*
+ * Computes the Oscillator (Phase Modulation or Frequency Modulation)
+ */
+inline void ADnote::ComputeVoiceOscillatorFrequencyModulation(int nvoice,int FMmode){
+ int carposhi;
+ int i,FMmodfreqhi;
+ REALTYPE FMmodfreqlo,carposlo;
+
+ if (NoteVoicePar[nvoice].FMVoice>=0){
+ //if I use VoiceOut[] as modulator
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpwave[i]=NoteVoicePar[NoteVoicePar[nvoice].FMVoice].VoiceOut[i];
+ } else {
+ //Compute the modulator and store it in tmpwave[]
+ int poshiFM=oscposhiFM[nvoice];
+ REALTYPE posloFM=oscposloFM[nvoice];
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ tmpwave[i]=(NoteVoicePar[nvoice].FMSmp[poshiFM]*(1.0-posloFM)
+ +NoteVoicePar[nvoice].FMSmp[poshiFM+1]*posloFM);
+ posloFM+=oscfreqloFM[nvoice];
+ if (posloFM>=1.0) {
+ posloFM=fmod(posloFM,1.0);
+ poshiFM++;
+ };
+ poshiFM+=oscfreqhiFM[nvoice];
+ poshiFM&=OSCIL_SIZE-1;
+ };
+ oscposhiFM[nvoice]=poshiFM;
+ oscposloFM[nvoice]=posloFM;
+ };
+ // Amplitude interpolation
+ if (ABOVE_AMPLITUDE_THRESHOLD(FMoldamplitude[nvoice],FMnewamplitude[nvoice])){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ tmpwave[i]*=INTERPOLATE_AMPLITUDE(FMoldamplitude[nvoice]
+ ,FMnewamplitude[nvoice],i,SOUND_BUFFER_SIZE);
+ };
+ } else for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpwave[i]*=FMnewamplitude[nvoice];
+
+
+ //normalize makes all sample-rates, oscil_sizes toproduce same sound
+ if (FMmode!=0){//Frequency modulation
+ REALTYPE normalize=OSCIL_SIZE/262144.0*44100.0/(REALTYPE)SAMPLE_RATE;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ FMoldsmp[nvoice]=fmod(FMoldsmp[nvoice]+tmpwave[i]*normalize,OSCIL_SIZE);
+ tmpwave[i]=FMoldsmp[nvoice];
+ };
+ } else {//Phase modulation
+ REALTYPE normalize=OSCIL_SIZE/262144.0;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpwave[i]*=normalize;
+ };
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ F2I(tmpwave[i],FMmodfreqhi);
+ FMmodfreqlo=fmod(tmpwave[i]+0.0000000001,1.0);
+ if (FMmodfreqhi<0) FMmodfreqlo++;
+
+ //carrier
+ carposhi=oscposhi[nvoice]+FMmodfreqhi;
+ carposlo=oscposlo[nvoice]+FMmodfreqlo;
+
+ if (carposlo>=1.0) {
+ carposhi++;
+ carposlo=fmod(carposlo,1.0);
+ };
+ carposhi&=(OSCIL_SIZE-1);
+
+ tmpwave[i]=NoteVoicePar[nvoice].OscilSmp[carposhi]*(1.0-carposlo)
+ +NoteVoicePar[nvoice].OscilSmp[carposhi+1]*carposlo;
+
+ oscposlo[nvoice]+=oscfreqlo[nvoice];
+ if (oscposlo[nvoice]>=1.0) {
+ oscposlo[nvoice]=fmod(oscposlo[nvoice],1.0);
+ oscposhi[nvoice]++;
+ };
+
+ oscposhi[nvoice]+=oscfreqhi[nvoice];
+ oscposhi[nvoice]&=OSCIL_SIZE-1;
+ };
+};
+
+
+/*Calculeaza Oscilatorul cu PITCH MODULATION*/
+inline void ADnote::ComputeVoiceOscillatorPitchModulation(int nvoice){
+//TODO
+};
+
+/*
+ * Computes the Noise
+ */
+inline void ADnote::ComputeVoiceNoise(int nvoice){
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++) tmpwave[i]=RND*2.0-1.0;
+};
+
+
+
+/*
+ * Compute the ADnote samples
+ * Returns 0 if the note is finished
+ */
+int ADnote::noteout(REALTYPE *outl,REALTYPE *outr){
+ int i,nvoice;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]=denormalkillbuf[i];
+ outr[i]=denormalkillbuf[i];
+ };
+
+ if (NoteEnabled==OFF) return(0);
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ bypassl[i]=0.0;
+ bypassr[i]=0.0;
+ };
+
+ computecurrentparameters();
+
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ if ((NoteVoicePar[nvoice].Enabled!=ON) || (NoteVoicePar[nvoice].DelayTicks>0)) continue;
+ if (NoteVoicePar[nvoice].noisetype==0){//voice mode=sound
+ switch (NoteVoicePar[nvoice].FMEnabled){
+ case MORPH:ComputeVoiceOscillatorMorph(nvoice);break;
+ case RING_MOD:ComputeVoiceOscillatorRingModulation(nvoice);break;
+ case PHASE_MOD:ComputeVoiceOscillatorFrequencyModulation(nvoice,0);break;
+ case FREQ_MOD:ComputeVoiceOscillatorFrequencyModulation(nvoice,1);break;
+ //case PITCH_MOD:ComputeVoiceOscillatorPitchModulation(nvoice);break;
+ default:ComputeVoiceOscillator_LinearInterpolation(nvoice);
+ //if (config.cfg.Interpolation) ComputeVoiceOscillator_CubicInterpolation(nvoice);
+
+ };
+ } else ComputeVoiceNoise(nvoice);
+ // Voice Processing
+
+ // Amplitude
+ if (ABOVE_AMPLITUDE_THRESHOLD(oldamplitude[nvoice],newamplitude[nvoice])){
+ int rest=SOUND_BUFFER_SIZE;
+ //test if the amplitude if raising and the difference is high
+ if ((newamplitude[nvoice]>oldamplitude[nvoice])&&((newamplitude[nvoice]-oldamplitude[nvoice])>0.25)){
+ rest=10;
+ if (rest>SOUND_BUFFER_SIZE) rest=SOUND_BUFFER_SIZE;
+ for (int i=0;i<SOUND_BUFFER_SIZE-rest;i++) tmpwave[i]*=oldamplitude[nvoice];
+ };
+ // Amplitude interpolation
+ for (i=0;i<rest;i++){
+ tmpwave[i+(SOUND_BUFFER_SIZE-rest)]*=INTERPOLATE_AMPLITUDE(oldamplitude[nvoice]
+ ,newamplitude[nvoice],i,rest);
+ };
+ } else for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpwave[i]*=newamplitude[nvoice];
+
+ // Fade in
+ if (firsttick[nvoice]!=0){
+ fadein(&tmpwave[0]);
+ firsttick[nvoice]=0;
+ };
+
+
+ // Filter
+ if (NoteVoicePar[nvoice].VoiceFilter!=NULL) NoteVoicePar[nvoice].VoiceFilter->filterout(&tmpwave[0]);
+
+ //check if the amplitude envelope is finished, if yes, the voice will be fadeout
+ if (NoteVoicePar[nvoice].AmpEnvelope!=NULL) {
+ if (NoteVoicePar[nvoice].AmpEnvelope->finished()!=0)
+ for (i=0;i<SOUND_BUFFER_SIZE;i++)
+ tmpwave[i]*=1.0-(REALTYPE)i/(REALTYPE)SOUND_BUFFER_SIZE;
+ //the voice is killed later
+ };
+
+
+ // Put the ADnote samples in VoiceOut (without appling Global volume, because I wish to use this voice as a modullator)
+ if (NoteVoicePar[nvoice].VoiceOut!=NULL)
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) NoteVoicePar[nvoice].VoiceOut[i]=tmpwave[i];
+
+
+ // Add the voice that do not bypass the filter to out
+ if (NoteVoicePar[nvoice].filterbypass==0){//no bypass
+ if (stereo==0) for (i=0;i<SOUND_BUFFER_SIZE;i++) outl[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume;//mono
+ else for (i=0;i<SOUND_BUFFER_SIZE;i++) {//stereo
+ outl[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume*NoteVoicePar[nvoice].Panning*2.0;
+ outr[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume*(1.0-NoteVoicePar[nvoice].Panning)*2.0;
+ };
+ } else {//bypass the filter
+ if (stereo==0) for (i=0;i<SOUND_BUFFER_SIZE;i++) bypassl[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume;//mono
+ else for (i=0;i<SOUND_BUFFER_SIZE;i++) {//stereo
+ bypassl[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume*NoteVoicePar[nvoice].Panning*2.0;
+ bypassr[i]+=tmpwave[i]*NoteVoicePar[nvoice].Volume*(1.0-NoteVoicePar[nvoice].Panning)*2.0;
+ };
+ };
+ // chech if there is necesary to proces the voice longer (if the Amplitude envelope isn't finished)
+ if (NoteVoicePar[nvoice].AmpEnvelope!=NULL) {
+ if (NoteVoicePar[nvoice].AmpEnvelope->finished()!=0) KillVoice(nvoice);
+ };
+ };
+
+
+ //Processing Global parameters
+ NoteGlobalPar.GlobalFilterL->filterout(&outl[0]);
+
+ if (stereo==0) {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {//set the right channel=left channel
+ outr[i]=outl[i];
+ bypassr[i]=bypassl[i];
+ }
+ } else NoteGlobalPar.GlobalFilterR->filterout(&outr[0]);
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]+=bypassl[i];
+ outr[i]+=bypassr[i];
+ };
+
+ if (ABOVE_AMPLITUDE_THRESHOLD(globaloldamplitude,globalnewamplitude)){
+ // Amplitude Interpolation
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE tmpvol=INTERPOLATE_AMPLITUDE(globaloldamplitude
+ ,globalnewamplitude,i,SOUND_BUFFER_SIZE);
+ outl[i]*=tmpvol*NoteGlobalPar.Panning;
+ outr[i]*=tmpvol*(1.0-NoteGlobalPar.Panning);
+ };
+ } else {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]*=globalnewamplitude*NoteGlobalPar.Panning;
+ outr[i]*=globalnewamplitude*(1.0-NoteGlobalPar.Panning);
+ };
+ };
+
+ //Apply the punch
+ if (NoteGlobalPar.Punch.Enabled!=0){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE punchamp=NoteGlobalPar.Punch.initialvalue*NoteGlobalPar.Punch.t+1.0;
+ outl[i]*=punchamp;
+ outr[i]*=punchamp;
+ NoteGlobalPar.Punch.t-=NoteGlobalPar.Punch.dt;
+ if (NoteGlobalPar.Punch.t<0.0) {
+ NoteGlobalPar.Punch.Enabled=0;
+ break;
+ };
+ };
+ };
+
+ // Check if the global amplitude is finished.
+ // If it does, disable the note
+ if (NoteGlobalPar.AmpEnvelope->finished()!=0) {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {//fade-out
+ REALTYPE tmp=1.0-(REALTYPE)i/(REALTYPE)SOUND_BUFFER_SIZE;
+ outl[i]*=tmp;
+ outr[i]*=tmp;
+ };
+ KillNote();
+ };
+ return(1);
+};
+
+
+/*
+ * Relase the key (NoteOff)
+ */
+void ADnote::relasekey(){
+int nvoice;
+ for (nvoice=0;nvoice<NUM_VOICES;nvoice++){
+ if (NoteVoicePar[nvoice].Enabled==0) continue;
+ if (NoteVoicePar[nvoice].AmpEnvelope!=NULL) NoteVoicePar[nvoice].AmpEnvelope->relasekey();
+ if (NoteVoicePar[nvoice].FreqEnvelope!=NULL) NoteVoicePar[nvoice].FreqEnvelope->relasekey();
+ if (NoteVoicePar[nvoice].FilterEnvelope!=NULL) NoteVoicePar[nvoice].FilterEnvelope->relasekey();
+ if (NoteVoicePar[nvoice].FMFreqEnvelope!=NULL) NoteVoicePar[nvoice].FMFreqEnvelope->relasekey();
+ if (NoteVoicePar[nvoice].FMAmpEnvelope!=NULL) NoteVoicePar[nvoice].FMAmpEnvelope->relasekey();
+ };
+ NoteGlobalPar.FreqEnvelope->relasekey();
+ NoteGlobalPar.FilterEnvelope->relasekey();
+ NoteGlobalPar.AmpEnvelope->relasekey();
+
+};
+
+/*
+ * Check if the note is finished
+ */
+int ADnote::finished(){
+ if (NoteEnabled==ON) return(0);
+ else return(1);
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.h
new file mode 100644
index 00000000..28c18975
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/ADnote.h
@@ -0,0 +1,258 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ ADnote.h - The "additive" synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef AD_NOTE_H
+#define AD_NOTE_H
+
+#include "../globals.h"
+#include "Envelope.h"
+#include "LFO.h"
+#include "../DSP/Filter.h"
+#include "../Params/ADnoteParameters.h"
+#include "../Params/Controller.h"
+
+//Globals
+
+//FM amplitude tune
+#define FM_AMP_MULTIPLIER 14.71280603
+
+#define OSCIL_SMP_EXTRA_SAMPLES 5
+
+class ADnote{ //ADDitive note
+ public:
+ ADnote(ADnoteParameters *pars,Controller *ctl_,REALTYPE freq,REALTYPE velocity,int portamento_,int midinote_);
+ ~ADnote();
+ int noteout(REALTYPE *outl,REALTYPE *outr);
+ void relasekey();
+ int finished();
+
+
+ /*ready - this is 0 if it is not ready (the parameters has to be computed)
+ or other value if the parameters has been computed and if it is ready to output*/
+ char ready;
+
+ private:
+
+ void setfreq(int nvoice,REALTYPE freq);
+ void setfreqFM(int nvoice,REALTYPE freq);
+ void computecurrentparameters();
+ void initparameters();
+ void KillVoice(int nvoice);
+ void KillNote();
+ inline REALTYPE getvoicebasefreq(int nvoice);
+ inline REALTYPE getFMvoicebasefreq(int nvoice);
+ inline void ComputeVoiceOscillator_LinearInterpolation(int nvoice);
+ inline void ComputeVoiceOscillator_CubicInterpolation(int nvoice);
+ inline void ComputeVoiceOscillatorMorph(int nvoice);
+ inline void ComputeVoiceOscillatorRingModulation(int nvoice);
+ inline void ComputeVoiceOscillatorFrequencyModulation(int nvoice,int FMmode);//FMmode=0 for phase modulation, 1 for Frequency modulation
+// inline void ComputeVoiceOscillatorFrequencyModulation(int nvoice);
+ inline void ComputeVoiceOscillatorPitchModulation(int nvoice);
+
+ inline void ComputeVoiceNoise(int nvoice);
+
+ inline void fadein(REALTYPE *smps);
+
+
+ //GLOBALS
+ ADnoteParameters *partparams;
+ unsigned char stereo;//if the note is stereo (allows note Panning)
+ int midinote;
+ REALTYPE velocity,basefreq;
+
+ ONOFFTYPE NoteEnabled;
+ Controller *ctl;
+
+ /*****************************************************************/
+ /* GLOBAL PARAMETERS */
+ /*****************************************************************/
+
+ struct ADnoteGlobal{
+ /******************************************
+ * FREQUENCY GLOBAL PARAMETERS *
+ ******************************************/
+ REALTYPE Detune;//cents
+
+ Envelope *FreqEnvelope;
+ LFO *FreqLfo;
+
+ /********************************************
+ * AMPLITUDE GLOBAL PARAMETERS *
+ ********************************************/
+ REALTYPE Volume;// [ 0 .. 1 ]
+
+ REALTYPE Panning;// [ 0 .. 1 ]
+
+ Envelope *AmpEnvelope;
+ LFO *AmpLfo;
+
+ struct {
+ int Enabled;
+ REALTYPE initialvalue,dt,t;
+ } Punch;
+
+ /******************************************
+ * FILTER GLOBAL PARAMETERS *
+ ******************************************/
+ Filter *GlobalFilterL,*GlobalFilterR;
+
+ REALTYPE FilterCenterPitch;//octaves
+ REALTYPE FilterQ;
+ REALTYPE FilterFreqTracking;
+
+ Envelope *FilterEnvelope;
+
+ LFO *FilterLfo;
+ } NoteGlobalPar;
+
+
+
+ /***********************************************************/
+ /* VOICE PARAMETERS */
+ /***********************************************************/
+ struct ADnoteVoice{
+ /* If the voice is enabled */
+ ONOFFTYPE Enabled;
+
+ /* Voice Type (sound/noise)*/
+ int noisetype;
+
+ /* Filter Bypass */
+ int filterbypass;
+
+ /* Delay (ticks) */
+ int DelayTicks;
+
+ /* Waveform of the Voice */
+ REALTYPE *OscilSmp;
+
+ /************************************
+ * FREQUENCY PARAMETERS *
+ ************************************/
+ int fixedfreq;//if the frequency is fixed to 440 Hz
+ int fixedfreqET;//if the "fixed" frequency varies according to the note (ET)
+
+ // cents = basefreq*VoiceDetune
+ REALTYPE Detune,FineDetune;
+
+ Envelope *FreqEnvelope;
+ LFO *FreqLfo;
+
+
+ /***************************
+ * AMPLITUDE PARAMETERS *
+ ***************************/
+
+ /* Panning 0.0=left, 0.5 - center, 1.0 = right */
+ REALTYPE Panning;
+ REALTYPE Volume;// [-1.0 .. 1.0]
+
+ Envelope *AmpEnvelope;
+ LFO *AmpLfo;
+
+ /*************************
+ * FILTER PARAMETERS *
+ *************************/
+
+ Filter *VoiceFilter;
+
+ REALTYPE FilterCenterPitch;/* Filter center Pitch*/
+ REALTYPE FilterFreqTracking;
+
+ Envelope *FilterEnvelope;
+ LFO *FilterLfo;
+
+
+ /****************************
+ * MODULLATOR PARAMETERS *
+ ****************************/
+
+ FMTYPE FMEnabled;
+
+ int FMVoice;
+
+ // Voice Output used by other voices if use this as modullator
+ REALTYPE *VoiceOut;
+
+ /* Wave of the Voice */
+ REALTYPE *FMSmp;
+
+ REALTYPE FMVolume;
+ REALTYPE FMDetune; //in cents
+
+ Envelope *FMFreqEnvelope;
+ Envelope *FMAmpEnvelope;
+ } NoteVoicePar[NUM_VOICES];
+
+
+ /********************************************************/
+ /* INTERNAL VALUES OF THE NOTE AND OF THE VOICES */
+ /********************************************************/
+
+ //time from the start of the note
+ REALTYPE time;
+
+ //fractional part (skip)
+ REALTYPE oscposlo[NUM_VOICES],oscfreqlo[NUM_VOICES];
+
+ //integer part (skip)
+ int oscposhi[NUM_VOICES],oscfreqhi[NUM_VOICES];
+
+ //fractional part (skip) of the Modullator
+ REALTYPE oscposloFM[NUM_VOICES],oscfreqloFM[NUM_VOICES];
+
+ //integer part (skip) of the Modullator
+ unsigned short int oscposhiFM[NUM_VOICES],oscfreqhiFM[NUM_VOICES];
+
+ //used to compute and interpolate the amplitudes of voices and modullators
+ REALTYPE oldamplitude[NUM_VOICES],
+ newamplitude[NUM_VOICES],
+ FMoldamplitude[NUM_VOICES],
+ FMnewamplitude[NUM_VOICES];
+
+ //used by Frequency Modulation (for integration)
+ REALTYPE FMoldsmp[NUM_VOICES];
+
+ //temporary buffer
+ REALTYPE *tmpwave;
+
+ //Filter bypass samples
+ REALTYPE *bypassl,*bypassr;
+
+ //interpolate the amplitudes
+ REALTYPE globaloldamplitude,globalnewamplitude;
+
+ //1 - if it is the fitst tick (used to fade in the sound)
+ char firsttick[NUM_VOICES];
+
+ //1 if the note has portamento
+ int portamento;
+
+ //how the fine detunes are made bigger or smaller
+ REALTYPE bandwidthDetuneMultiplier;
+};
+
+#endif
+
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.C
new file mode 100644
index 00000000..a0194022
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.C
@@ -0,0 +1,165 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Envelope.C - Envelope implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdio.h>
+#include "Envelope.h"
+
+Envelope::Envelope(EnvelopeParams *envpars,REALTYPE basefreq){
+ int i;
+ envpoints=envpars->Penvpoints;
+ if (envpoints>MAX_ENVELOPE_POINTS) envpoints=MAX_ENVELOPE_POINTS;
+ envsustain=(envpars->Penvsustain==0)?-1:envpars->Penvsustain;
+ forcedrelase=envpars->Pforcedrelease;
+ envstretch=pow(440.0/basefreq,envpars->Penvstretch/64.0);
+ linearenvelope=envpars->Plinearenvelope;
+
+ if (envpars->Pfreemode==0) envpars->converttofree();
+
+ REALTYPE bufferdt=SOUND_BUFFER_SIZE/(REALTYPE)SAMPLE_RATE;
+
+ int mode=envpars->Envmode;
+
+ //for amplitude envelopes
+ if ((mode==1)&&(linearenvelope==0)) mode=2;//change to log envelope
+ if ((mode==2)&&(linearenvelope!=0)) mode=1;//change to linear
+
+ for (i=0;i<MAX_ENVELOPE_POINTS;i++) {
+ REALTYPE tmp=envpars->getdt(i)/1000.0*envstretch;
+ if (tmp>bufferdt) envdt[i]=bufferdt/tmp;
+ else envdt[i]=2.0;//any value larger than 1
+
+ switch (mode){
+ case 2:envval[i]=(1.0-envpars->Penvval[i]/127.0)*MIN_ENVELOPE_DB;
+ break;
+ case 3:envval[i]=(pow(2,6.0*fabs(envpars->Penvval[i]-64.0)/64.0)-1.0)*100.0;
+ if (envpars->Penvval[i]<64) envval[i]=-envval[i];
+ break;
+ case 4:envval[i]=(envpars->Penvval[i]-64.0)/64.0*6.0;//6 octaves (filtru)
+ break;
+ case 5:envval[i]=(envpars->Penvval[i]-64.0)/64.0*10;
+ break;
+ default:envval[i]=envpars->Penvval[i]/127.0;
+ };
+
+ };
+
+ envdt[0]=1.0;
+
+ currentpoint=1;//the envelope starts from 1
+ keyreleased=0;
+ t=0.0;
+ envfinish=0;
+ inct=envdt[1];
+ envoutval=0.0;
+};
+
+Envelope::~Envelope(){
+};
+
+
+/*
+ * Relase the key (note envelope)
+ */
+void Envelope::relasekey(){
+ if (keyreleased==1) return;
+ keyreleased=1;
+ if (forcedrelase!=0) t=0.0;
+};
+
+/*
+ * Envelope Output
+ */
+REALTYPE Envelope::envout(){
+ REALTYPE out;
+
+ if (envfinish!=0) {//if the envelope is finished
+ envoutval=envval[envpoints-1];
+ return(envoutval);
+ };
+ if ((currentpoint==envsustain+1)&&(keyreleased==0)) {//if it is sustaining now
+ envoutval=envval[envsustain];
+ return(envoutval);
+ };
+
+ if ((keyreleased!=0) && (forcedrelase!=0)){//do the forced release
+
+ int tmp=(envsustain<0) ? (envpoints-1):(envsustain+1);//if there is no sustain point, use the last point for release
+
+ if (envdt[tmp]<0.00000001) out=envval[tmp];
+ else out=envoutval+(envval[tmp]-envoutval)*t;
+ t+=envdt[tmp]*envstretch;
+
+ if (t>=1.0) {
+ currentpoint=envsustain+2;
+ forcedrelase=0;
+ t=0.0;
+ inct=envdt[currentpoint];
+ if ((currentpoint>=envpoints)||(envsustain<0)) envfinish=1;
+ };
+ return(out);
+ };
+ if (inct>=1.0) out=envval[currentpoint];
+ else out=envval[currentpoint-1]+(envval[currentpoint]-envval[currentpoint-1])*t;
+
+ t+=inct;
+ if (t>=1.0){
+ if (currentpoint>=envpoints-1) envfinish=1;
+ else currentpoint++;
+ t=0.0;
+ inct=envdt[currentpoint];
+ };
+
+ envoutval=out;
+ return (out);
+};
+
+/*
+ * Envelope Output (dB)
+ */
+REALTYPE Envelope::envout_dB(){
+ REALTYPE out;
+ if (linearenvelope!=0) return (envout());
+
+ if ((currentpoint==1)&&((keyreleased==0)||(forcedrelase==0))) {//first point is always lineary interpolated
+ REALTYPE v1=dB2rap(envval[0]);
+ REALTYPE v2=dB2rap(envval[1]);
+ out=v1+(v2-v1)*t;
+
+ t+=inct;
+ if (t>=1.0) {
+ t=0.0;
+ inct=envdt[2];
+ currentpoint++;
+ out=v2;
+ };
+
+ if (out>0.001) envoutval=rap2dB(out);
+ else envoutval=-40.0;
+ } else out=dB2rap(envout());
+
+ return(out);
+};
+
+int Envelope::finished(){
+ return(envfinish);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.h
new file mode 100644
index 00000000..d78eb16d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Envelope.h
@@ -0,0 +1,58 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Envelope.h - Envelope implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef ENVELOPE_H
+#define ENVELOPE_H
+
+#include <math.h>
+#include "../globals.h"
+#include "../Params/EnvelopeParams.h"
+
+class Envelope{
+public:
+ Envelope(EnvelopeParams *envpars,REALTYPE basefreq);
+ ~Envelope();
+ void relasekey();
+ REALTYPE envout();
+ REALTYPE envout_dB();
+ int finished();//returns 1 if the envelope is finished
+private:
+ int envpoints;
+ int envsustain;//"-1" means disabled
+ REALTYPE envdt[MAX_ENVELOPE_POINTS];//millisecons
+ REALTYPE envval[MAX_ENVELOPE_POINTS];// [0.0 .. 1.0]
+ REALTYPE envstretch;
+ int linearenvelope;
+
+ int currentpoint; //current envelope point (starts from 1)
+ int forcedrelase;
+ char keyreleased; //if the key was released
+ char envfinish;
+ REALTYPE t; // the time from the last point
+ REALTYPE inct;// the time increment
+ REALTYPE envoutval;//used to do the forced release
+};
+
+
+#endif
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.C
new file mode 100644
index 00000000..4ae548c1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.C
@@ -0,0 +1,145 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ LFO.C - LFO implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "LFO.h"
+
+
+LFO::LFO(LFOParams *lfopars,REALTYPE basefreq){
+ if (lfopars->Pstretch==0) lfopars->Pstretch=1;
+ REALTYPE lfostretch=pow(basefreq/440.0,(lfopars->Pstretch-64.0)/63.0);//max 2x/octave
+
+ REALTYPE lfofreq=(pow(2,lfopars->Pfreq*10.0)-1.0)/12.0*lfostretch;
+ incx=fabs(lfofreq)*(REALTYPE)SOUND_BUFFER_SIZE/(REALTYPE)SAMPLE_RATE;
+
+ if (lfopars->Pcontinous==0){
+ if (lfopars->Pstartphase==0) x=RND;
+ else x=fmod((lfopars->Pstartphase-64.0)/127.0+1.0,1.0);
+ } else {
+ REALTYPE tmp=fmod(lfopars->time*incx,1.0);
+ x=fmod((lfopars->Pstartphase-64.0)/127.0+1.0+tmp,1.0);
+ };
+
+ //Limit the Frequency(or else...)
+ if (incx>0.49999999) incx=0.499999999;
+
+
+ lfornd=lfopars->Prandomness/127.0;
+ if (lfornd<0.0) lfornd=0.0; else if (lfornd>1.0) lfornd=1.0;
+
+// lfofreqrnd=pow(lfopars->Pfreqrand/127.0,2.0)*2.0*4.0;
+ lfofreqrnd=pow(lfopars->Pfreqrand/127.0,2.0)*4.0;
+
+ switch (lfopars->fel){
+ case 1:lfointensity=lfopars->Pintensity/127.0;break;
+ case 2:lfointensity=lfopars->Pintensity/127.0*4.0;break;//in octave
+ default:lfointensity=pow(2,lfopars->Pintensity/127.0*11.0)-1.0;//in centi
+ x-=0.25;//chance the starting phase
+ break;
+ };
+
+ amp1=(1-lfornd)+lfornd*RND;
+ amp2=(1-lfornd)+lfornd*RND;
+ lfotype=lfopars->PLFOtype;
+ lfodelay=lfopars->Pdelay/127.0*4.0;//0..4 sec
+ incrnd=nextincrnd=1.0;
+ freqrndenabled=(lfopars->Pfreqrand!=0);
+ computenextincrnd();
+ computenextincrnd();//twice because I want incrnd & nextincrnd to be random
+};
+
+LFO::~LFO(){
+};
+
+/*
+ * LFO out
+ */
+REALTYPE LFO::lfoout(){
+ REALTYPE out;
+ switch (lfotype){
+ case 1: //LFO_TRIANGLE
+ if ((x>=0.0)&&(x<0.25)) out=4.0*x;
+ else if ((x>0.25)&&(x<0.75)) out=2-4*x;
+ else out=4.0*x-4.0;
+ break;
+ case 2: //LFO_SQUARE
+ if (x<0.5) out=-1;
+ else out=1;
+ break;
+ case 3: //LFO_RAMPUP
+ out=(x-0.5)*2.0;
+ break;
+ case 4: //LFO_RAMPDOWN
+ out=(0.5-x)*2.0;
+ break;
+ case 5: //LFO_EXP_DOWN 1
+ out=pow(0.05,x)*2.0-1.0;
+ break;
+ case 6: //LFO_EXP_DOWN 2
+ out=pow(0.001,x)*2.0-1.0;
+ break;
+ default:out=cos(x*2.0*PI);//LFO_SINE
+ };
+
+
+ if ((lfotype==0)||(lfotype==1)) out*=lfointensity*(amp1+x*(amp2-amp1));
+ else out*=lfointensity*amp2;
+ if (lfodelay<0.00001) {
+ if (freqrndenabled==0) x+=incx;
+ else {
+ float tmp=(incrnd*(1.0-x)+nextincrnd*x);
+ if (tmp>1.0) tmp=1.0;
+ else if (tmp<0.0) tmp=0.0;
+ x+=incx*tmp;
+ };
+ if (x>=1) {
+ x=fmod(x,1.0);
+ amp1=amp2;
+ amp2=(1-lfornd)+lfornd*RND;
+
+ computenextincrnd();
+ };
+ } else lfodelay-=(REALTYPE)SOUND_BUFFER_SIZE/(REALTYPE)SAMPLE_RATE;
+ return(out);
+};
+
+/*
+ * LFO out (for amplitude)
+ */
+REALTYPE LFO::amplfoout(){
+ REALTYPE out;
+ out=1.0-lfointensity+lfoout();
+ if (out<-1.0) out=-1.0;
+ else if (out>1.0) out=1.0;
+ return(out);
+};
+
+
+void LFO::computenextincrnd(){
+ if (freqrndenabled==0) return;
+ incrnd=nextincrnd;
+ nextincrnd=pow(0.5,lfofreqrnd)+RND*(pow(2.0,lfofreqrnd)-1.0);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.h
new file mode 100644
index 00000000..30d04f10
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/LFO.h
@@ -0,0 +1,52 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ LFO.h - LFO implementation
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef LFO_H
+#define LFO_H
+
+#include "../globals.h"
+#include "../Params/LFOParams.h"
+
+
+class LFO{
+ public:
+ LFO(LFOParams *lfopars, REALTYPE basefreq);
+ ~LFO();
+ REALTYPE lfoout();
+ REALTYPE amplfoout();
+ private:
+ REALTYPE x;
+ REALTYPE incx,incrnd,nextincrnd;
+ REALTYPE amp1,amp2;// used for randomness
+ REALTYPE lfointensity;
+ REALTYPE lfornd,lfofreqrnd;
+ REALTYPE lfodelay;
+ char lfotype;
+ int freqrndenabled;
+
+
+ void computenextincrnd();
+
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.C
new file mode 100644
index 00000000..4e6a4dd3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.C
@@ -0,0 +1,1182 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ OscilGen.C - Waveform generator for ADnote
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <stdlib.h>
+#include <math.h>
+#include <stdio.h>
+
+#include "OscilGen.h"
+#include "../Effects/Distorsion.h"
+
+REALTYPE *OscilGen::tmpsmps;//this array stores some termporary data and it has SOUND_BUFFER_SIZE elements
+FFTFREQS OscilGen::outoscilFFTfreqs;
+
+
+OscilGen::OscilGen(FFTwrapper *fft_,Resonance *res_):Presets(){
+ setpresettype("Poscilgen");
+ fft=fft_;
+ res=res_;
+ newFFTFREQS(&oscilFFTfreqs,OSCIL_SIZE/2);
+ newFFTFREQS(&basefuncFFTfreqs,OSCIL_SIZE/2);
+
+ randseed=1;
+ ADvsPAD=false;
+
+ defaults();
+};
+
+OscilGen::~OscilGen(){
+ deleteFFTFREQS(&basefuncFFTfreqs);
+ deleteFFTFREQS(&oscilFFTfreqs);
+};
+
+
+void OscilGen::defaults(){
+
+ oldbasefunc=0;oldbasepar=64;oldhmagtype=0;oldwaveshapingfunction=0;oldwaveshaping=64;
+ oldbasefuncmodulation=0;oldharmonicshift=0;oldbasefuncmodulationpar1=0;oldbasefuncmodulationpar2=0;oldbasefuncmodulationpar3=0;
+ oldmodulation=0;oldmodulationpar1=0;oldmodulationpar2=0;oldmodulationpar3=0;
+
+ for (int i=0;i<MAX_AD_HARMONICS;i++){
+ hmag[i]=0.0;
+ hphase[i]=0.0;
+ Phmag[i]=64;
+ Phphase[i]=64;
+ };
+ Phmag[0]=127;
+ Phmagtype=0;
+ if (ADvsPAD) Prand=127;//max phase randomness (usefull if the oscil will be imported to a ADsynth from a PADsynth
+ else Prand=64;//no randomness
+
+ Pcurrentbasefunc=0;
+ Pbasefuncpar=64;
+
+ Pbasefuncmodulation=0;
+ Pbasefuncmodulationpar1=64;
+ Pbasefuncmodulationpar2=64;
+ Pbasefuncmodulationpar3=32;
+
+ Pmodulation=0;
+ Pmodulationpar1=64;
+ Pmodulationpar2=64;
+ Pmodulationpar3=32;
+
+ Pwaveshapingfunction=0;
+ Pwaveshaping=64;
+ Pfiltertype=0;
+ Pfilterpar1=64;
+ Pfilterpar2=64;
+ Pfilterbeforews=0;
+ Psatype=0;
+ Psapar=64;
+
+ Pamprandpower=64;
+ Pamprandtype=0;
+
+ Pharmonicshift=0;
+ Pharmonicshiftfirst=0;
+
+ Padaptiveharmonics=0;
+ Padaptiveharmonicspower=100;
+ Padaptiveharmonicsbasefreq=128;
+ Padaptiveharmonicspar=50;
+
+ for (int i=0;i<OSCIL_SIZE/2;i++) {
+ oscilFFTfreqs.s[i]=0.0;
+ oscilFFTfreqs.c[i]=0.0;
+ basefuncFFTfreqs.s[i]=0.0;
+ basefuncFFTfreqs.c[i]=0.0;
+ };
+ oscilprepared=0;
+ oldfilterpars=0;oldsapars=0;
+ prepare();
+};
+
+void OscilGen::convert2sine(int magtype){
+ REALTYPE mag[MAX_AD_HARMONICS],phase[MAX_AD_HARMONICS];
+ REALTYPE oscil[OSCIL_SIZE];
+ FFTFREQS freqs;
+ newFFTFREQS(&freqs,OSCIL_SIZE/2);
+
+ get(oscil,-1.0);
+ FFTwrapper *fft=new FFTwrapper(OSCIL_SIZE);
+ fft->smps2freqs(oscil,freqs);
+ delete(fft);
+
+ REALTYPE max=0.0;
+
+ mag[0]=0;
+ phase[0]=0;
+ for (int i=0;i<MAX_AD_HARMONICS;i++){
+ mag[i]=sqrt(pow(freqs.s[i+1],2)+pow(freqs.c[i+1],2.0));
+ phase[i]=atan2(freqs.c[i+1],freqs.s[i+1]);
+ if (max<mag[i]) max=mag[i];
+ };
+ if (max<0.00001) max=1.0;
+
+ defaults();
+
+ for (int i=0;i<MAX_AD_HARMONICS-1;i++){
+ REALTYPE newmag=mag[i]/max;
+ REALTYPE newphase=phase[i];
+
+ Phmag[i]=(int) ((newmag)*64.0)+64;
+
+ Phphase[i]=64-(int) (64.0*newphase/PI);
+ if (Phphase[i]>127) Phphase[i]=127;
+
+ if (Phmag[i]==64) Phphase[i]=64;
+ };
+ deleteFFTFREQS(&freqs);
+ prepare();
+};
+
+/*
+ * Base Functions - START
+ */
+REALTYPE OscilGen::basefunc_pulse(REALTYPE x,REALTYPE a){
+ return((fmod(x,1.0)<a)?-1.0:1.0);
+};
+
+REALTYPE OscilGen::basefunc_saw(REALTYPE x,REALTYPE a){
+ if (a<0.00001) a=0.00001;
+ else if (a>0.99999) a=0.99999;
+ x=fmod(x,1);
+ if (x<a) return(x/a*2.0-1.0);
+ else return((1.0-x)/(1.0-a)*2.0-1.0);
+};
+
+REALTYPE OscilGen::basefunc_triangle(REALTYPE x,REALTYPE a){
+ x=fmod(x+0.25,1);
+ a=1-a;
+ if (a<0.00001) a=0.00001;
+ if (x<0.5) x=x*4-1.0;
+ else x=(1.0-x)*4-1.0;
+ x/=-a;
+ if (x<-1.0) x=-1.0;
+ if (x>1.0) x=1.0;
+ return(x);
+};
+
+REALTYPE OscilGen::basefunc_power(REALTYPE x,REALTYPE a){
+ x=fmod(x,1);
+ if (a<0.00001) a=0.00001;
+ else if (a>0.99999) a=0.99999;
+ return(pow(x,exp((a-0.5)*10.0))*2.0-1.0);
+};
+
+REALTYPE OscilGen::basefunc_gauss(REALTYPE x,REALTYPE a){
+ x=fmod(x,1)*2.0-1.0;
+ if (a<0.00001) a=0.00001;
+ return(exp(-x*x*(exp(a*8)+5.0))*2.0-1.0);
+};
+
+REALTYPE OscilGen::basefunc_diode(REALTYPE x,REALTYPE a){
+ if (a<0.00001) a=0.00001;
+ else if (a>0.99999) a=0.99999;
+ a=a*2.0-1.0;
+ x=cos((x+0.5)*2.0*PI)-a;
+ if (x<0.0) x=0.0;
+ return(x/(1.0-a)*2-1.0);
+};
+
+REALTYPE OscilGen::basefunc_abssine(REALTYPE x,REALTYPE a){
+ x=fmod(x,1);
+ if (a<0.00001) a=0.00001;
+ else if (a>0.99999) a=0.99999;
+ return(sin(pow(x,exp((a-0.5)*5.0))*PI)*2.0-1.0);
+};
+
+REALTYPE OscilGen::basefunc_pulsesine(REALTYPE x,REALTYPE a){
+ if (a<0.00001) a=0.00001;
+ x=(fmod(x,1)-0.5)*exp((a-0.5)*log(128));
+ if (x<-0.5) x=-0.5;
+ else if (x>0.5) x=0.5;
+ x=sin(x*PI*2.0);
+ return(x);
+};
+
+REALTYPE OscilGen::basefunc_stretchsine(REALTYPE x,REALTYPE a){
+ x=fmod(x+0.5,1)*2.0-1.0;
+ a=(a-0.5)*4;if (a>0.0) a*=2;
+ a=pow(3.0,a);
+ REALTYPE b=pow(fabs(x),a);
+ if (x<0) b=-b;
+ return(-sin(b*PI));
+};
+
+REALTYPE OscilGen::basefunc_chirp(REALTYPE x,REALTYPE a){
+ x=fmod(x,1.0)*2.0*PI;
+ a=(a-0.5)*4;if (a<0.0) a*=2.0;
+ a=pow(3.0,a);
+ return(sin(x/2.0)*sin(a*x*x));
+};
+
+REALTYPE OscilGen::basefunc_absstretchsine(REALTYPE x,REALTYPE a){
+ x=fmod(x+0.5,1)*2.0-1.0;
+ a=(a-0.5)*9;
+ a=pow(3.0,a);
+ REALTYPE b=pow(fabs(x),a);
+ if (x<0) b=-b;
+ return(-pow(sin(b*PI),2));
+};
+
+REALTYPE OscilGen::basefunc_chebyshev(REALTYPE x,REALTYPE a){
+ a=a*a*a*30.0+1.0;
+ return(cos(acos(x*2.0-1.0)*a));
+};
+
+REALTYPE OscilGen::basefunc_sqr(REALTYPE x,REALTYPE a){
+ a=a*a*a*a*160.0+0.001;
+ return(-atan(sin(x*2.0*PI)*a));
+};
+/*
+ * Base Functions - END
+ */
+
+
+/*
+ * Get the base function
+ */
+void OscilGen::getbasefunction(REALTYPE *smps){
+ int i;
+ REALTYPE par=(Pbasefuncpar+0.5)/128.0;
+ if (Pbasefuncpar==64) par=0.5;
+
+ REALTYPE basefuncmodulationpar1=Pbasefuncmodulationpar1/127.0,
+ basefuncmodulationpar2=Pbasefuncmodulationpar2/127.0,
+ basefuncmodulationpar3=Pbasefuncmodulationpar3/127.0;
+
+ switch(Pbasefuncmodulation){
+ case 1:basefuncmodulationpar1=(pow(2,basefuncmodulationpar1*5.0)-1.0)/10.0;
+ basefuncmodulationpar3=floor((pow(2,basefuncmodulationpar3*5.0)-1.0));
+ if (basefuncmodulationpar3<0.9999) basefuncmodulationpar3=-1.0;
+ break;
+ case 2:basefuncmodulationpar1=(pow(2,basefuncmodulationpar1*5.0)-1.0)/10.0;
+ basefuncmodulationpar3=1.0+floor((pow(2,basefuncmodulationpar3*5.0)-1.0));
+ break;
+ case 3:basefuncmodulationpar1=(pow(2,basefuncmodulationpar1*7.0)-1.0)/10.0;
+ basefuncmodulationpar3=0.01+(pow(2,basefuncmodulationpar3*16.0)-1.0)/10.0;
+ break;
+ };
+
+// printf("%.5f %.5f\n",basefuncmodulationpar1,basefuncmodulationpar3);
+
+ for (i=0;i<OSCIL_SIZE;i++) {
+ REALTYPE t=i*1.0/OSCIL_SIZE;
+
+ switch(Pbasefuncmodulation){
+ case 1:t=t*basefuncmodulationpar3+sin((t+basefuncmodulationpar2)*2.0*PI)*basefuncmodulationpar1;//rev
+ break;
+ case 2:t=t+sin((t*basefuncmodulationpar3+basefuncmodulationpar2)*2.0*PI)*basefuncmodulationpar1;//sine
+ break;
+ case 3:t=t+pow((1.0-cos((t+basefuncmodulationpar2)*2.0*PI))*0.5,basefuncmodulationpar3)*basefuncmodulationpar1;//power
+ break;
+ };
+
+ t=t-floor(t);
+
+ switch (Pcurrentbasefunc){
+ case 1:smps[i]=basefunc_triangle(t,par);
+ break;
+ case 2:smps[i]=basefunc_pulse(t,par);
+ break;
+ case 3:smps[i]=basefunc_saw(t,par);
+ break;
+ case 4:smps[i]=basefunc_power(t,par);
+ break;
+ case 5:smps[i]=basefunc_gauss(t,par);
+ break;
+ case 6:smps[i]=basefunc_diode(t,par);
+ break;
+ case 7:smps[i]=basefunc_abssine(t,par);
+ break;
+ case 8:smps[i]=basefunc_pulsesine(t,par);
+ break;
+ case 9:smps[i]=basefunc_stretchsine(t,par);
+ break;
+ case 10:smps[i]=basefunc_chirp(t,par);
+ break;
+ case 11:smps[i]=basefunc_absstretchsine(t,par);
+ break;
+ case 12:smps[i]=basefunc_chebyshev(t,par);
+ break;
+ case 13:smps[i]=basefunc_sqr(t,par);
+ break;
+ default:smps[i]=-sin(2.0*PI*i/OSCIL_SIZE);
+ };
+ };
+};
+
+/*
+ * Filter the oscillator
+ */
+void OscilGen::oscilfilter(){
+ if (Pfiltertype==0) return;
+ REALTYPE par=1.0-Pfilterpar1/128.0;
+ REALTYPE par2=Pfilterpar2/127.0;
+ REALTYPE max=0.0,tmp=0.0,p2,x;
+ for (int i=1;i<OSCIL_SIZE/2;i++){
+ REALTYPE gain=1.0;
+ switch(Pfiltertype){
+ case 1: gain=pow(1.0-par*par*par*0.99,i);//lp
+ tmp=par2*par2*par2*par2*0.5+0.0001;
+ if (gain<tmp) gain=pow(gain,10.0)/pow(tmp,9.0);
+ break;
+ case 2: gain=1.0-pow(1.0-par*par,i+1);//hp1
+ gain=pow(gain,par2*2.0+0.1);
+ break;
+ case 3: if (par<0.2) par=par*0.25+0.15;
+ gain=1.0-pow(1.0-par*par*0.999+0.001,i*0.05*i+1.0);//hp1b
+ tmp=pow(5.0,par2*2.0);
+ gain=pow(gain,tmp);
+ break;
+ case 4: gain=i+1-pow(2,(1.0-par)*7.5);//bp1
+ gain=1.0/(1.0+gain*gain/(i+1.0));
+ tmp=pow(5.0,par2*2.0);
+ gain=pow(gain,tmp);
+ if (gain<1e-5) gain=1e-5;
+ break;
+ case 5: gain=i+1-pow(2,(1.0-par)*7.5);//bs1
+ gain=pow(atan(gain/(i/10.0+1))/1.57,6);
+ gain=pow(gain,par2*par2*3.9+0.1);
+ break;
+ case 6: tmp=pow(par2,0.33);
+ gain=(i+1>pow(2,(1.0-par)*10)?0.0:1.0)*par2+(1.0-par2);//lp2
+ break;
+ case 7: tmp=pow(par2,0.33);
+ //tmp=1.0-(1.0-par2)*(1.0-par2);
+ gain=(i+1>pow(2,(1.0-par)*7)?1.0:0.0)*par2+(1.0-par2);//hp2
+ if (Pfilterpar1==0) gain=1.0;
+ break;
+ case 8: tmp=pow(par2,0.33);
+ //tmp=1.0-(1.0-par2)*(1.0-par2);
+ gain=(fabs(pow(2,(1.0-par)*7)-i)>i/2+1?0.0:1.0)*par2+(1.0-par2);//bp2
+ break;
+ case 9: tmp=pow(par2,0.33);
+ gain=(fabs(pow(2,(1.0-par)*7)-i)<i/2+1?0.0:1.0)*par2+(1.0-par2);//bs2
+ break;
+ case 10:tmp=pow(5.0,par2*2.0-1.0);
+ tmp=pow(i/32.0,tmp)*32.0;
+ if (Pfilterpar2==64) tmp=i;
+ gain=cos(par*par*PI/2.0*tmp);//cos
+ gain*=gain;
+ break;
+ case 11:tmp=pow(5.0,par2*2.0-1.0);
+ tmp=pow(i/32.0,tmp)*32.0;
+ if (Pfilterpar2==64) tmp=i;
+ gain=sin(par*par*PI/2.0*tmp);//sin
+ gain*=gain;
+ break;
+ case 12:p2=1.0-par+0.2;
+ x=i/(64.0*p2*p2);
+ if (x<0.0) x=0.0;
+ else if (x>1.0) x=1.0;
+ tmp=pow(1.0-par2,2.0);
+ gain=cos(x*PI)*(1.0-tmp)+1.01+tmp;//low shelf
+ break;
+ case 13:tmp=(int) (pow(2.0,(1.0-par)*7.2));
+ gain=1.0;
+ if (i==(int) (tmp)) gain=pow(2.0,par2*par2*8.0);
+ break;
+ };
+
+
+ oscilFFTfreqs.s[i]*=gain;
+ oscilFFTfreqs.c[i]*=gain;
+ REALTYPE tmp=oscilFFTfreqs.s[i]*oscilFFTfreqs.s[i]+
+ oscilFFTfreqs.c[i]*oscilFFTfreqs.c[i];
+ if (max<tmp) max=tmp;
+ };
+
+ max=sqrt(max);
+ if (max<1e-10) max=1.0;
+ REALTYPE imax=1.0/max;
+ for (int i=1;i<OSCIL_SIZE/2;i++) {
+ oscilFFTfreqs.s[i]*=imax;
+ oscilFFTfreqs.c[i]*=imax;
+ };
+};
+
+/*
+ * Change the base function
+ */
+void OscilGen::changebasefunction(){
+ if (Pcurrentbasefunc!=0) {
+ getbasefunction(tmpsmps);
+ fft->smps2freqs(tmpsmps,basefuncFFTfreqs);
+ basefuncFFTfreqs.c[0]=0.0;
+ } else {
+ for (int i=0;i<OSCIL_SIZE/2;i++){
+ basefuncFFTfreqs.s[i]=0.0;
+ basefuncFFTfreqs.c[i]=0.0;
+ };
+ //in this case basefuncFFTfreqs_ are not used
+ }
+ oscilprepared=0;
+ oldbasefunc=Pcurrentbasefunc;
+ oldbasepar=Pbasefuncpar;
+ oldbasefuncmodulation=Pbasefuncmodulation;
+ oldbasefuncmodulationpar1=Pbasefuncmodulationpar1;
+ oldbasefuncmodulationpar2=Pbasefuncmodulationpar2;
+ oldbasefuncmodulationpar3=Pbasefuncmodulationpar3;
+};
+
+/*
+ * Waveshape
+ */
+void OscilGen::waveshape(){
+ int i;
+
+ oldwaveshapingfunction=Pwaveshapingfunction;
+ oldwaveshaping=Pwaveshaping;
+ if (Pwaveshapingfunction==0) return;
+
+ oscilFFTfreqs.c[0]=0.0;//remove the DC
+ //reduce the amplitude of the freqs near the nyquist
+ for (i=1;i<OSCIL_SIZE/8;i++) {
+ REALTYPE tmp=i/(OSCIL_SIZE/8.0);
+ oscilFFTfreqs.s[OSCIL_SIZE/2-i]*=tmp;
+ oscilFFTfreqs.c[OSCIL_SIZE/2-i]*=tmp;
+ };
+ fft->freqs2smps(oscilFFTfreqs,tmpsmps);
+
+ //Normalize
+ REALTYPE max=0.0;
+ for (i=0;i<OSCIL_SIZE;i++)
+ if (max<fabs(tmpsmps[i])) max=fabs(tmpsmps[i]);
+ if (max<0.00001) max=1.0;
+ max=1.0/max;for (i=0;i<OSCIL_SIZE;i++) tmpsmps[i]*=max;
+
+ //Do the waveshaping
+ waveshapesmps(OSCIL_SIZE,tmpsmps,Pwaveshapingfunction,Pwaveshaping);
+
+ fft->smps2freqs(tmpsmps,oscilFFTfreqs);//perform FFT
+};
+
+
+/*
+ * Do the Frequency Modulation of the Oscil
+ */
+void OscilGen::modulation(){
+ int i;
+
+ oldmodulation=Pmodulation;
+ oldmodulationpar1=Pmodulationpar1;
+ oldmodulationpar2=Pmodulationpar2;
+ oldmodulationpar3=Pmodulationpar3;
+ if (Pmodulation==0) return;
+
+
+ REALTYPE modulationpar1=Pmodulationpar1/127.0,
+ modulationpar2=0.5-Pmodulationpar2/127.0,
+ modulationpar3=Pmodulationpar3/127.0;
+
+ switch(Pmodulation){
+ case 1:modulationpar1=(pow(2,modulationpar1*7.0)-1.0)/100.0;
+ modulationpar3=floor((pow(2,modulationpar3*5.0)-1.0));
+ if (modulationpar3<0.9999) modulationpar3=-1.0;
+ break;
+ case 2:modulationpar1=(pow(2,modulationpar1*7.0)-1.0)/100.0;
+ modulationpar3=1.0+floor((pow(2,modulationpar3*5.0)-1.0));
+ break;
+ case 3:modulationpar1=(pow(2,modulationpar1*9.0)-1.0)/100.0;
+ modulationpar3=0.01+(pow(2,modulationpar3*16.0)-1.0)/10.0;
+ break;
+ };
+
+ oscilFFTfreqs.c[0]=0.0;//remove the DC
+ //reduce the amplitude of the freqs near the nyquist
+ for (i=1;i<OSCIL_SIZE/8;i++) {
+ REALTYPE tmp=i/(OSCIL_SIZE/8.0);
+ oscilFFTfreqs.s[OSCIL_SIZE/2-i]*=tmp;
+ oscilFFTfreqs.c[OSCIL_SIZE/2-i]*=tmp;
+ };
+ fft->freqs2smps(oscilFFTfreqs,tmpsmps);
+ int extra_points=2;
+ REALTYPE *in=new REALTYPE[OSCIL_SIZE+extra_points];
+
+ //Normalize
+ REALTYPE max=0.0;
+ for (i=0;i<OSCIL_SIZE;i++) if (max<fabs(tmpsmps[i])) max=fabs(tmpsmps[i]);
+ if (max<0.00001) max=1.0;
+ max=1.0/max;for (i=0;i<OSCIL_SIZE;i++) in[i]=tmpsmps[i]*max;
+ for (i=0;i<extra_points;i++) in[i+OSCIL_SIZE]=tmpsmps[i]*max;
+
+ //Do the modulation
+ for (i=0;i<OSCIL_SIZE;i++) {
+ REALTYPE t=i*1.0/OSCIL_SIZE;
+
+ switch(Pmodulation){
+ case 1:t=t*modulationpar3+sin((t+modulationpar2)*2.0*PI)*modulationpar1;//rev
+ break;
+ case 2:t=t+sin((t*modulationpar3+modulationpar2)*2.0*PI)*modulationpar1;//sine
+ break;
+ case 3:t=t+pow((1.0-cos((t+modulationpar2)*2.0*PI))*0.5,modulationpar3)*modulationpar1;//power
+ break;
+ };
+
+ t=(t-floor(t))*OSCIL_SIZE;
+
+ int poshi=(int) t;
+ REALTYPE poslo=t-floor(t);
+
+ tmpsmps[i]=in[poshi]*(1.0-poslo)+in[poshi+1]*poslo;
+ };
+
+ delete(in);
+ fft->smps2freqs(tmpsmps,oscilFFTfreqs);//perform FFT
+};
+
+
+
+/*
+ * Adjust the spectrum
+ */
+void OscilGen::spectrumadjust(){
+ if (Psatype==0) return;
+ REALTYPE par=Psapar/127.0;
+ switch(Psatype){
+ case 1: par=1.0-par*2.0;
+ if (par>=0.0) par=pow(5.0,par);
+ else par=pow(8.0,par);
+ break;
+ case 2: par=pow(10.0,(1.0-par)*3.0)*0.25;
+ break;
+ case 3: par=pow(10.0,(1.0-par)*3.0)*0.25;
+ break;
+ };
+
+
+ REALTYPE max=0.0;
+ for (int i=0;i<OSCIL_SIZE/2;i++){
+ REALTYPE tmp=pow(oscilFFTfreqs.c[i],2)+pow(oscilFFTfreqs.s[i],2.0);
+ if (max<tmp) max=tmp;
+ };
+ max=sqrt(max)/OSCIL_SIZE*2.0;
+ if (max<1e-8) max=1.0;
+
+
+ for (int i=0;i<OSCIL_SIZE/2;i++){
+ REALTYPE mag=sqrt(pow(oscilFFTfreqs.s[i],2)+pow(oscilFFTfreqs.c[i],2.0))/max;
+ REALTYPE phase=atan2(oscilFFTfreqs.s[i],oscilFFTfreqs.c[i]);
+
+ switch (Psatype){
+ case 1: mag=pow(mag,par);
+ break;
+ case 2: if (mag<par) mag=0.0;
+ break;
+ case 3: mag/=par;
+ if (mag>1.0) mag=1.0;
+ break;
+ };
+ oscilFFTfreqs.c[i]=mag*cos(phase);
+ oscilFFTfreqs.s[i]=mag*sin(phase);
+ };
+
+};
+
+void OscilGen::shiftharmonics(){
+ if (Pharmonicshift==0) return;
+
+ REALTYPE hc,hs;
+ int harmonicshift=-Pharmonicshift;
+
+ if (harmonicshift>0){
+ for (int i=OSCIL_SIZE/2-2;i>=0;i--){
+ int oldh=i-harmonicshift;
+ if (oldh<0){
+ hc=0.0;
+ hs=0.0;
+ } else {
+ hc=oscilFFTfreqs.c[oldh+1];
+ hs=oscilFFTfreqs.s[oldh+1];
+ };
+ oscilFFTfreqs.c[i+1]=hc;
+ oscilFFTfreqs.s[i+1]=hs;
+ };
+ } else {
+ for (int i=0;i<OSCIL_SIZE/2-1;i++){
+ int oldh=i+abs(harmonicshift);
+ if (oldh>=(OSCIL_SIZE/2-1)){
+ hc=0.0;
+ hs=0.0;
+ } else {
+ hc=oscilFFTfreqs.c[oldh+1];
+ hs=oscilFFTfreqs.s[oldh+1];
+ if (fabs(hc)<0.000001) hc=0.0;
+ if (fabs(hs)<0.000001) hs=0.0;
+ };
+
+ oscilFFTfreqs.c[i+1]=hc;
+ oscilFFTfreqs.s[i+1]=hs;
+ };
+ };
+
+ oscilFFTfreqs.c[0]=0.0;
+};
+
+/*
+ * Prepare the Oscillator
+ */
+void OscilGen::prepare(){
+ int i,j,k;
+ REALTYPE a,b,c,d,hmagnew;
+
+ if ((oldbasepar!=Pbasefuncpar)||(oldbasefunc!=Pcurrentbasefunc)||
+ (oldbasefuncmodulation!=Pbasefuncmodulation)||
+ (oldbasefuncmodulationpar1!=Pbasefuncmodulationpar1)||
+ (oldbasefuncmodulationpar2!=Pbasefuncmodulationpar2)||
+ (oldbasefuncmodulationpar3!=Pbasefuncmodulationpar3))
+ changebasefunction();
+
+ for (i=0;i<MAX_AD_HARMONICS;i++) hphase[i]=(Phphase[i]-64.0)/64.0*PI/(i+1);
+
+ for (i=0;i<MAX_AD_HARMONICS;i++){
+ hmagnew=1.0-fabs(Phmag[i]/64.0-1.0);
+ switch(Phmagtype){
+ case 1:hmag[i]=exp(hmagnew*log(0.01)); break;
+ case 2:hmag[i]=exp(hmagnew*log(0.001));break;
+ case 3:hmag[i]=exp(hmagnew*log(0.0001));break;
+ case 4:hmag[i]=exp(hmagnew*log(0.00001));break;
+ default:hmag[i]=1.0-hmagnew;
+ break;
+ };
+
+ if (Phmag[i]<64) hmag[i]=-hmag[i];
+ };
+
+ //remove the harmonics where Phmag[i]==64
+ for (i=0;i<MAX_AD_HARMONICS;i++) if (Phmag[i]==64) hmag[i]=0.0;
+
+
+ for (i=0;i<OSCIL_SIZE/2;i++) {
+ oscilFFTfreqs.c[i]=0.0;
+ oscilFFTfreqs.s[i]=0.0;
+ };
+ if (Pcurrentbasefunc==0) {//the sine case
+ for (i=0;i<MAX_AD_HARMONICS;i++){
+ oscilFFTfreqs.c[i+1]=-hmag[i]*sin(hphase[i]*(i+1))/2.0;
+ oscilFFTfreqs.s[i+1]=hmag[i]*cos(hphase[i]*(i+1))/2.0;
+ };
+ } else {
+ for (j=0;j<MAX_AD_HARMONICS;j++){
+ if (Phmag[j]==64) continue;
+ for (i=1;i<OSCIL_SIZE/2;i++){
+ k=i*(j+1);if (k>=OSCIL_SIZE/2) break;
+ a=basefuncFFTfreqs.c[i];
+ b=basefuncFFTfreqs.s[i];
+ c=hmag[j]*cos(hphase[j]*k);
+ d=hmag[j]*sin(hphase[j]*k);
+ oscilFFTfreqs.c[k]+=a*c-b*d;
+ oscilFFTfreqs.s[k]+=a*d+b*c;
+ };
+ };
+
+ };
+
+ if (Pharmonicshiftfirst!=0) shiftharmonics();
+
+
+
+ if (Pfilterbeforews==0){
+ waveshape();
+ oscilfilter();
+ } else {
+ oscilfilter();
+ waveshape();
+ };
+
+ modulation();
+ spectrumadjust();
+ if (Pharmonicshiftfirst==0) shiftharmonics();
+
+ oscilFFTfreqs.c[0]=0.0;
+
+ oldhmagtype=Phmagtype;
+ oldharmonicshift=Pharmonicshift+Pharmonicshiftfirst*256;
+
+ oscilprepared=1;
+};
+
+void OscilGen::adaptiveharmonic(FFTFREQS f,REALTYPE freq){
+ if ((Padaptiveharmonics==0)/*||(freq<1.0)*/) return;
+ if (freq<1.0) freq=440.0;
+
+ FFTFREQS inf;
+ newFFTFREQS(&inf,OSCIL_SIZE/2);
+ for (int i=0;i<OSCIL_SIZE/2;i++) {
+ inf.s[i]=f.s[i];
+ inf.c[i]=f.c[i];
+ f.s[i]=0.0;
+ f.c[i]=0.0;
+ };
+ inf.c[0]=0.0;inf.s[0]=0.0;
+
+ REALTYPE hc=0.0,hs=0.0;
+ REALTYPE basefreq=30.0*pow(10.0,Padaptiveharmonicsbasefreq/128.0);
+ REALTYPE power=(Padaptiveharmonicspower+1.0)/101.0;
+
+ REALTYPE rap=freq/basefreq;
+
+ rap=pow(rap,power);
+
+ bool down=false;
+ if (rap>1.0) {
+ rap=1.0/rap;
+ down=true;
+ };
+
+ for (int i=0;i<OSCIL_SIZE/2-2;i++){
+ REALTYPE h=i*rap;
+ int high=(int)(i*rap);
+ REALTYPE low=fmod(h,1.0);
+
+ if (high>=(OSCIL_SIZE/2-2)){
+ break;
+ } else {
+ if (down){
+ f.c[high]+=inf.c[i]*(1.0-low);
+ f.s[high]+=inf.s[i]*(1.0-low);
+ f.c[high+1]+=inf.c[i]*low;
+ f.s[high+1]+=inf.s[i]*low;
+ } else {
+ hc=inf.c[high]*(1.0-low)+inf.c[high+1]*low;
+ hs=inf.s[high]*(1.0-low)+inf.s[high+1]*low;
+ };
+ if (fabs(hc)<0.000001) hc=0.0;
+ if (fabs(hs)<0.000001) hs=0.0;
+ };
+
+ if (!down){
+ if (i==0) {//corect the aplitude of the first harmonic
+ hc*=rap;
+ hs*=rap;
+ };
+ f.c[i]=hc;
+ f.s[i]=hs;
+ };
+ };
+
+ f.c[1]+=f.c[0];f.s[1]+=f.s[0];
+ f.c[0]=0.0;f.s[0]=0.0;
+ deleteFFTFREQS(&inf);
+};
+
+void OscilGen::adaptiveharmonicpostprocess(REALTYPE *f,int size){
+ if (Padaptiveharmonics<=1) return;
+ REALTYPE *inf=new REALTYPE[size];
+ REALTYPE par=Padaptiveharmonicspar*0.01;
+ par=1.0-pow((1.0-par),1.5);
+
+ for (int i=0;i<size;i++) {
+ inf[i]=f[i]*par;
+ f[i]=f[i]*(1.0-par);
+ };
+
+
+ if (Padaptiveharmonics==2){//2n+1
+ for (int i=0;i<size;i++) if ((i%2)==0) f[i]+=inf[i];//i=0 pt prima armonica,etc.
+ } else{//celelalte moduri
+ int nh=(Padaptiveharmonics-3)/2+2;
+ int sub_vs_add=(Padaptiveharmonics-3)%2;
+ if (sub_vs_add==0){
+ for (int i=0;i<size;i++) {
+ if (((i+1)%nh)==0){
+ f[i]+=inf[i];
+ };
+ };
+ } else {
+ for (int i=0;i<size/nh-1;i++) {
+ f[(i+1)*nh-1]+=inf[i];
+ };
+ };
+ };
+
+ delete(inf);
+};
+
+
+
+/*
+ * Get the oscillator function
+ */
+short int OscilGen::get(REALTYPE *smps,REALTYPE freqHz){
+ return(this->get(smps,freqHz,0));
+};
+
+void OscilGen::newrandseed(unsigned int randseed){
+ this->randseed=randseed;
+};
+
+/*
+ * Get the oscillator function
+ */
+short int OscilGen::get(REALTYPE *smps,REALTYPE freqHz,int resonance){
+ int i;
+ int nyquist,outpos;
+
+ if ((oldbasepar!=Pbasefuncpar)||(oldbasefunc!=Pcurrentbasefunc)||(oldhmagtype!=Phmagtype)
+ ||(oldwaveshaping!=Pwaveshaping)||(oldwaveshapingfunction!=Pwaveshapingfunction)) oscilprepared=0;
+ if (oldfilterpars!=Pfiltertype*256+Pfilterpar1+Pfilterpar2*65536+Pfilterbeforews*16777216){
+ oscilprepared=0;
+ oldfilterpars=Pfiltertype*256+Pfilterpar1+Pfilterpar2*65536+Pfilterbeforews*16777216;
+ };
+ if (oldsapars!=Psatype*256+Psapar){
+ oscilprepared=0;
+ oldsapars=Psatype*256+Psapar;
+ };
+
+ if ((oldbasefuncmodulation!=Pbasefuncmodulation)||
+ (oldbasefuncmodulationpar1!=Pbasefuncmodulationpar1)||
+ (oldbasefuncmodulationpar2!=Pbasefuncmodulationpar2)||
+ (oldbasefuncmodulationpar3!=Pbasefuncmodulationpar3))
+ oscilprepared=0;
+
+ if ((oldmodulation!=Pmodulation)||
+ (oldmodulationpar1!=Pmodulationpar1)||
+ (oldmodulationpar2!=Pmodulationpar2)||
+ (oldmodulationpar3!=Pmodulationpar3))
+ oscilprepared=0;
+
+ if (oldharmonicshift!=Pharmonicshift+Pharmonicshiftfirst*256) oscilprepared=0;
+
+ if (oscilprepared!=1) prepare();
+
+ outpos=(int)((RND*2.0-1.0)*(REALTYPE) OSCIL_SIZE*(Prand-64.0)/64.0);
+ outpos=(outpos+2*OSCIL_SIZE) % OSCIL_SIZE;
+
+
+ for (i=0;i<OSCIL_SIZE/2;i++){
+ outoscilFFTfreqs.c[i]=0.0;
+ outoscilFFTfreqs.s[i]=0.0;
+ };
+
+ nyquist=(int)(0.5*SAMPLE_RATE/fabs(freqHz))+2;
+ if (ADvsPAD) nyquist=(int)(OSCIL_SIZE/2);
+ if (nyquist>OSCIL_SIZE/2) nyquist=OSCIL_SIZE/2;
+
+
+ int realnyquist=nyquist;
+
+ if (Padaptiveharmonics!=0) nyquist=OSCIL_SIZE/2;
+ for (i=1;i<nyquist-1;i++) {
+ outoscilFFTfreqs.c[i]=oscilFFTfreqs.c[i];
+ outoscilFFTfreqs.s[i]=oscilFFTfreqs.s[i];
+ };
+
+ adaptiveharmonic(outoscilFFTfreqs,freqHz);
+ adaptiveharmonicpostprocess(&outoscilFFTfreqs.c[1],OSCIL_SIZE/2-1);
+ adaptiveharmonicpostprocess(&outoscilFFTfreqs.s[1],OSCIL_SIZE/2-1);
+
+ nyquist=realnyquist;
+ if (Padaptiveharmonics){//do the antialiasing in the case of adaptive harmonics
+ for (i=nyquist;i<OSCIL_SIZE/2;i++) {
+ outoscilFFTfreqs.s[i]=0;
+ outoscilFFTfreqs.c[i]=0;
+ };
+ };
+
+ // Randomness (each harmonic), the block type is computed
+ // in ADnote by setting start position according to this setting
+ if ((Prand>64)&&(freqHz>=0.0)&&(!ADvsPAD)){
+ REALTYPE rnd,angle,a,b,c,d;
+ rnd=PI*pow((Prand-64.0)/64.0,2.0);
+ for (i=1;i<nyquist-1;i++){//to Nyquist only for AntiAliasing
+ angle=rnd*i*RND;
+ a=outoscilFFTfreqs.c[i];
+ b=outoscilFFTfreqs.s[i];
+ c=cos(angle);
+ d=sin(angle);
+ outoscilFFTfreqs.c[i]=a*c-b*d;
+ outoscilFFTfreqs.s[i]=a*d+b*c;
+ };
+ };
+
+ //Harmonic Amplitude Randomness
+ if ((freqHz>0.1)&&(!ADvsPAD)) {
+ unsigned int realrnd=rand();
+ srand(randseed);
+ REALTYPE power=Pamprandpower/127.0;
+ REALTYPE normalize=1.0/(1.2-power);
+ switch (Pamprandtype){
+ case 1: power=power*2.0-0.5;
+ power=pow(15.0,power);
+ for (i=1;i<nyquist-1;i++){
+ REALTYPE amp=pow(RND,power)*normalize;
+ outoscilFFTfreqs.c[i]*=amp;
+ outoscilFFTfreqs.s[i]*=amp;
+ };
+ break;
+ case 2: power=power*2.0-0.5;
+ power=pow(15.0,power)*2.0;
+ REALTYPE rndfreq=2*PI*RND;
+ for (i=1;i<nyquist-1;i++){
+ REALTYPE amp=pow(fabs(sin(i*rndfreq)),power)*normalize;
+ outoscilFFTfreqs.c[i]*=amp;
+ outoscilFFTfreqs.s[i]*=amp;
+ };
+ break;
+ };
+ srand(realrnd+1);
+ };
+
+ if ((freqHz>0.1)&&(resonance!=0)) res->applyres(nyquist-1,outoscilFFTfreqs,freqHz);
+
+ //Full RMS normalize
+ REALTYPE sum=0;
+ for (int j=1;j<OSCIL_SIZE/2;j++) {
+ REALTYPE term=outoscilFFTfreqs.c[j]*outoscilFFTfreqs.c[j]
+ +outoscilFFTfreqs.s[j]*outoscilFFTfreqs.s[j];
+ sum+=term;
+ };
+ if (sum<0.000001) sum=1.0;
+ sum=1.0/sqrt(sum);
+ for (int j=1;j<OSCIL_SIZE/2;j++) {
+ outoscilFFTfreqs.c[j]*=sum;
+ outoscilFFTfreqs.s[j]*=sum;
+ };
+
+
+ if ((ADvsPAD)&&(freqHz>0.1)){//in this case the smps will contain the freqs
+ for (i=1;i<OSCIL_SIZE/2;i++) smps[i-1]=sqrt(outoscilFFTfreqs.c[i]*outoscilFFTfreqs.c[i]
+ +outoscilFFTfreqs.s[i]*outoscilFFTfreqs.s[i]);
+ } else {
+ fft->freqs2smps(outoscilFFTfreqs,smps);
+ for (i=0;i<OSCIL_SIZE;i++) smps[i]*=0.25;//correct the amplitude
+ };
+
+ if (Prand<64) return(outpos);
+ else return(0);
+};
+
+
+/*
+ * Get the spectrum of the oscillator for the UI
+ */
+void OscilGen::getspectrum(int n, REALTYPE *spc,int what){
+ if (n>OSCIL_SIZE/2) n=OSCIL_SIZE/2;
+
+ for (int i=1;i<n;i++){
+ if (what==0){
+ spc[i-1]=sqrt(oscilFFTfreqs.c[i]*oscilFFTfreqs.c[i]
+ +oscilFFTfreqs.s[i]*oscilFFTfreqs.s[i]);
+ } else {
+ if (Pcurrentbasefunc==0) spc[i-1]=((i==1)?(1.0):(0.0));
+ else spc[i-1]=sqrt(basefuncFFTfreqs.c[i]*basefuncFFTfreqs.c[i]+
+ basefuncFFTfreqs.s[i]*basefuncFFTfreqs.s[i]);
+ };
+ };
+
+ if (what==0) {
+ for (int i=0;i<n;i++) outoscilFFTfreqs.s[i]=outoscilFFTfreqs.c[i]=spc[i+1];
+ for (int i=n;i<OSCIL_SIZE/2;i++) outoscilFFTfreqs.s[i]=outoscilFFTfreqs.c[i]=0.0;
+ adaptiveharmonic(outoscilFFTfreqs,0.0);
+ for (int i=1;i<n;i++) spc[i-1]=outoscilFFTfreqs.s[i];
+ adaptiveharmonicpostprocess(spc,n-1);
+ };
+};
+
+
+/*
+ * Convert the oscillator as base function
+ */
+void OscilGen::useasbase(){
+ int i;
+
+ for (i=0;i<OSCIL_SIZE/2;i++) {
+ basefuncFFTfreqs.c[i]=oscilFFTfreqs.c[i];
+ basefuncFFTfreqs.s[i]=oscilFFTfreqs.s[i];
+ };
+
+ oldbasefunc=Pcurrentbasefunc=127;
+
+ prepare();
+};
+
+
+/*
+ * Get the base function for UI
+ */
+void OscilGen::getcurrentbasefunction(REALTYPE *smps){
+ if (Pcurrentbasefunc!=0) {
+ fft->freqs2smps(basefuncFFTfreqs,smps);
+ } else getbasefunction(smps);//the sine case
+};
+
+
+void OscilGen::add2XML(XMLwrapper *xml){
+ xml->addpar("harmonic_mag_type",Phmagtype);
+
+ xml->addpar("base_function",Pcurrentbasefunc);
+ xml->addpar("base_function_par",Pbasefuncpar);
+ xml->addpar("base_function_modulation",Pbasefuncmodulation);
+ xml->addpar("base_function_modulation_par1",Pbasefuncmodulationpar1);
+ xml->addpar("base_function_modulation_par2",Pbasefuncmodulationpar2);
+ xml->addpar("base_function_modulation_par3",Pbasefuncmodulationpar3);
+
+ xml->addpar("modulation",Pmodulation);
+ xml->addpar("modulation_par1",Pmodulationpar1);
+ xml->addpar("modulation_par2",Pmodulationpar2);
+ xml->addpar("modulation_par3",Pmodulationpar3);
+
+ xml->addpar("wave_shaping",Pwaveshaping);
+ xml->addpar("wave_shaping_function",Pwaveshapingfunction);
+
+ xml->addpar("filter_type",Pfiltertype);
+ xml->addpar("filter_par1",Pfilterpar1);
+ xml->addpar("filter_par2",Pfilterpar2);
+ xml->addpar("filter_before_wave_shaping",Pfilterbeforews);
+
+ xml->addpar("spectrum_adjust_type",Psatype);
+ xml->addpar("spectrum_adjust_par",Psapar);
+
+ xml->addpar("rand",Prand);
+ xml->addpar("amp_rand_type",Pamprandtype);
+ xml->addpar("amp_rand_power",Pamprandpower);
+
+ xml->addpar("harmonic_shift",Pharmonicshift);
+ xml->addparbool("harmonic_shift_first",Pharmonicshiftfirst);
+
+ xml->addpar("adaptive_harmonics",Padaptiveharmonics);
+ xml->addpar("adaptive_harmonics_base_frequency",Padaptiveharmonicsbasefreq);
+ xml->addpar("adaptive_harmonics_power",Padaptiveharmonicspower);
+
+ xml->beginbranch("HARMONICS");
+ for (int n=0;n<MAX_AD_HARMONICS;n++){
+ if ((Phmag[n]==64)&&(Phphase[n]==64)) continue;
+ xml->beginbranch("HARMONIC",n+1);
+ xml->addpar("mag",Phmag[n]);
+ xml->addpar("phase",Phphase[n]);
+ xml->endbranch();
+ };
+ xml->endbranch();
+
+ if (Pcurrentbasefunc==127){
+ REALTYPE max=0.0;
+
+ for (int i=0;i<OSCIL_SIZE/2;i++){
+ if (max<fabs(basefuncFFTfreqs.c[i])) max=fabs(basefuncFFTfreqs.c[i]);
+ if (max<fabs(basefuncFFTfreqs.s[i])) max=fabs(basefuncFFTfreqs.s[i]);
+ };
+ if (max<0.00000001) max=1.0;
+
+ xml->beginbranch("BASE_FUNCTION");
+ for (int i=1;i<OSCIL_SIZE/2;i++){
+ REALTYPE xc=basefuncFFTfreqs.c[i]/max;
+ REALTYPE xs=basefuncFFTfreqs.s[i]/max;
+ if ((fabs(xs)>0.00001)&&(fabs(xs)>0.00001)){
+ xml->beginbranch("BF_HARMONIC",i);
+ xml->addparreal("cos",xc);
+ xml->addparreal("sin",xs);
+ xml->endbranch();
+ };
+ };
+ xml->endbranch();
+ };
+};
+
+
+void OscilGen::getfromXML(XMLwrapper *xml){
+
+ Phmagtype=xml->getpar127("harmonic_mag_type",Phmagtype);
+
+ Pcurrentbasefunc=xml->getpar127("base_function",Pcurrentbasefunc);
+ Pbasefuncpar=xml->getpar127("base_function_par",Pbasefuncpar);
+
+ Pbasefuncmodulation=xml->getpar127("base_function_modulation",Pbasefuncmodulation);
+ Pbasefuncmodulationpar1=xml->getpar127("base_function_modulation_par1",Pbasefuncmodulationpar1);
+ Pbasefuncmodulationpar2=xml->getpar127("base_function_modulation_par2",Pbasefuncmodulationpar2);
+ Pbasefuncmodulationpar3=xml->getpar127("base_function_modulation_par3",Pbasefuncmodulationpar3);
+
+ Pmodulation=xml->getpar127("modulation",Pmodulation);
+ Pmodulationpar1=xml->getpar127("modulation_par1",Pmodulationpar1);
+ Pmodulationpar2=xml->getpar127("modulation_par2",Pmodulationpar2);
+ Pmodulationpar3=xml->getpar127("modulation_par3",Pmodulationpar3);
+
+ Pwaveshaping=xml->getpar127("wave_shaping",Pwaveshaping);
+ Pwaveshapingfunction=xml->getpar127("wave_shaping_function",Pwaveshapingfunction);
+
+ Pfiltertype=xml->getpar127("filter_type",Pfiltertype);
+ Pfilterpar1=xml->getpar127("filter_par1",Pfilterpar1);
+ Pfilterpar2=xml->getpar127("filter_par2",Pfilterpar2);
+ Pfilterbeforews=xml->getpar127("filter_before_wave_shaping",Pfilterbeforews);
+
+ Psatype=xml->getpar127("spectrum_adjust_type",Psatype);
+ Psapar=xml->getpar127("spectrum_adjust_par",Psapar);
+
+ Prand=xml->getpar127("rand",Prand);
+ Pamprandtype=xml->getpar127("amp_rand_type",Pamprandtype);
+ Pamprandpower=xml->getpar127("amp_rand_power",Pamprandpower);
+
+ Pharmonicshift=xml->getpar("harmonic_shift",Pharmonicshift,-64,64);
+ Pharmonicshiftfirst=xml->getparbool("harmonic_shift_first",Pharmonicshiftfirst);
+
+ Padaptiveharmonics=xml->getpar("adaptive_harmonics",Padaptiveharmonics,0,127);
+ Padaptiveharmonicsbasefreq=xml->getpar("adaptive_harmonics_base_frequency",Padaptiveharmonicsbasefreq,0,255);
+ Padaptiveharmonicspower=xml->getpar("adaptive_harmonics_power",Padaptiveharmonicspower,0,200);
+
+
+ if (xml->enterbranch("HARMONICS")){
+ Phmag[0]=64;Phphase[0]=64;
+ for (int n=0;n<MAX_AD_HARMONICS;n++){
+ if (xml->enterbranch("HARMONIC",n+1)==0) continue;
+ Phmag[n]=xml->getpar127("mag",64);
+ Phphase[n]=xml->getpar127("phase",64);
+ xml->exitbranch();
+ };
+ xml->exitbranch();
+ };
+
+ if (Pcurrentbasefunc!=0) changebasefunction();
+
+
+ if (xml->enterbranch("BASE_FUNCTION")){
+ for (int i=1;i<OSCIL_SIZE/2;i++){
+ if (xml->enterbranch("BF_HARMONIC",i)){
+ basefuncFFTfreqs.c[i]=xml->getparreal("cos",0.0);
+ basefuncFFTfreqs.s[i]=xml->getparreal("sin",0.0);
+ xml->exitbranch();
+ };
+
+
+ };
+ xml->exitbranch();
+
+ REALTYPE max=0.0;
+
+ basefuncFFTfreqs.c[0]=0.0;
+ for (int i=0;i<OSCIL_SIZE/2;i++) {
+ if (max<fabs(basefuncFFTfreqs.c[i])) max=fabs(basefuncFFTfreqs.c[i]);
+ if (max<fabs(basefuncFFTfreqs.s[i])) max=fabs(basefuncFFTfreqs.s[i]);
+ };
+ if (max<0.00000001) max=1.0;
+
+ for (int i=0;i<OSCIL_SIZE/2;i++) {
+ if (basefuncFFTfreqs.c[i]) basefuncFFTfreqs.c[i]/=max;
+ if (basefuncFFTfreqs.s[i]) basefuncFFTfreqs.s[i]/=max;
+ };
+ };
+};
+
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.h
new file mode 100644
index 00000000..1d9980a9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/OscilGen.h
@@ -0,0 +1,176 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ OscilGen.h - Waveform generator for ADnote
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef OSCIL_GEN_H
+#define OSCIL_GEN_H
+
+#include "../globals.h"
+#include "../Misc/XMLwrapper.h"
+#include "Resonance.h"
+#include "../DSP/FFTwrapper.h"
+#include "../Params/Presets.h"
+
+class OscilGen:public Presets{
+ public:
+ OscilGen(FFTwrapper *fft_,Resonance *res_);
+ ~OscilGen();
+
+ //computes the full spectrum of oscil from harmonics,phases and basefunc
+ void prepare();
+
+ //do the antialiasing(cut off higher freqs.),apply randomness and do a IFFT
+ short get(REALTYPE *smps,REALTYPE freqHz);//returns where should I start getting samples, used in block type randomness
+ short get(REALTYPE *smps,REALTYPE freqHz,int resonance);
+ //if freqHz is smaller than 0, return the "un-randomized" sample for UI
+
+ void getbasefunction(REALTYPE *smps);
+
+ //called by UI
+ void getspectrum(int n,REALTYPE *spc,int what);//what=0 pt. oscil,1 pt. basefunc
+ void getcurrentbasefunction(REALTYPE *smps);
+ void useasbase();//convert oscil to base function
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+ void convert2sine(int magtype);
+
+ //Parameters
+
+ /*
+ The hmag and hphase starts counting from 0, so the first harmonic(1) has the index 0,
+ 2-nd harmonic has index 1, ..the 128 harminic has index 127
+ */
+ unsigned char Phmag[MAX_AD_HARMONICS],Phphase[MAX_AD_HARMONICS];//the MIDI parameters for mag. and phases
+
+
+ /*The Type of magnitude:
+ 0 - Linear
+ 1 - dB scale (-40)
+ 2 - dB scale (-60)
+ 3 - dB scale (-80)
+ 4 - dB scale (-100)*/
+ unsigned char Phmagtype;
+
+ unsigned char Pcurrentbasefunc;//The base function used - 0=sin, 1=...
+ unsigned char Pbasefuncpar;//the parameter of the base function
+
+ unsigned char Pbasefuncmodulation;//what modulation is applied to the basefunc
+ unsigned char Pbasefuncmodulationpar1,Pbasefuncmodulationpar2,Pbasefuncmodulationpar3;//the parameter of the base function modulation
+
+ /*the Randomness:
+ 64=no randomness
+ 63..0 - block type randomness - 0 is maximum
+ 65..127 - each harmonic randomness - 127 is maximum*/
+ unsigned char Prand;
+ unsigned char Pwaveshaping,Pwaveshapingfunction;
+ unsigned char Pfiltertype,Pfilterpar1,Pfilterpar2;
+ unsigned char Pfilterbeforews;
+ unsigned char Psatype,Psapar;//spectrum adjust
+
+ unsigned char Pamprandpower, Pamprandtype;//amplitude randomness
+ int Pharmonicshift;//how the harmonics are shifted
+ int Pharmonicshiftfirst;//if the harmonic shift is done before waveshaping and filter
+
+ unsigned char Padaptiveharmonics;//the adaptive harmonics status (off=0,on=1,etc..)
+ unsigned char Padaptiveharmonicsbasefreq;//the base frequency of the adaptive harmonic (30..3000Hz)
+ unsigned char Padaptiveharmonicspower;//the strength of the effect (0=off,100=full)
+ unsigned char Padaptiveharmonicspar;//the parameters in 2,3,4.. modes of adaptive harmonics
+
+ unsigned char Pmodulation;//what modulation is applied to the oscil
+ unsigned char Pmodulationpar1,Pmodulationpar2,Pmodulationpar3;//the parameter of the parameters
+
+
+ //makes a new random seed for Amplitude Randomness
+ //this should be called every note on event
+ void newrandseed(unsigned int randseed);
+
+ bool ADvsPAD;//if it is used by ADsynth or by PADsynth
+
+ static REALTYPE *tmpsmps;//this array stores some termporary data and it has SOUND_BUFFER_SIZE elements
+ static FFTFREQS outoscilFFTfreqs;
+
+ private:
+
+ REALTYPE hmag[MAX_AD_HARMONICS],hphase[MAX_AD_HARMONICS];//the magnituides and the phases of the sine/nonsine harmonics
+// private:
+ FFTwrapper *fft;
+ //computes the basefunction and make the FFT; newbasefunc<0 = same basefunc
+ void changebasefunction();
+ //Waveshaping
+ void waveshape();
+
+ //Filter the oscillator accotding to Pfiltertype and Pfilterpar
+ void oscilfilter();
+
+ //Adjust the spectrum
+ void spectrumadjust();
+
+ //Shift the harmonics
+ void shiftharmonics();
+
+ //Do the oscil modulation stuff
+ void modulation();
+
+ //Do the adaptive harmonic stuff
+ void adaptiveharmonic(FFTFREQS f,REALTYPE freq);
+
+ //Do the adaptive harmonic postprocessing (2n+1,2xS,2xA,etc..)
+ //this function is called even for the user interface
+ //this can be called for the sine and components, and for the spectrum
+ //(that's why the sine and cosine components should be processed with a separate call)
+ void adaptiveharmonicpostprocess(REALTYPE *f, int size);
+
+ //Basic/base functions (Functiile De Baza)
+ REALTYPE basefunc_pulse(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_saw(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_triangle(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_power(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_gauss(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_diode(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_abssine(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_pulsesine(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_stretchsine(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_chirp(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_absstretchsine(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_chebyshev(REALTYPE x,REALTYPE a);
+ REALTYPE basefunc_sqr(REALTYPE x,REALTYPE a);
+
+ //Internal Data
+ unsigned char oldbasefunc,oldbasepar,oldhmagtype,oldwaveshapingfunction,oldwaveshaping;
+ int oldfilterpars,oldsapars,oldbasefuncmodulation,oldbasefuncmodulationpar1,oldbasefuncmodulationpar2,oldbasefuncmodulationpar3,oldharmonicshift;
+ int oldmodulation,oldmodulationpar1,oldmodulationpar2,oldmodulationpar3;
+
+
+ FFTFREQS basefuncFFTfreqs;//Base Function Frequencies
+ FFTFREQS oscilFFTfreqs;//Oscillator Frequencies - this is different than the hamonics set-up by the user, it may contains time-domain data if the antialiasing is turned off
+ int oscilprepared;//1 if the oscil is prepared, 0 if it is not prepared and is need to call ::prepare() before ::get()
+
+ Resonance *res;
+
+ unsigned int randseed;
+
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.C
new file mode 100644
index 00000000..9ecc8877
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.C
@@ -0,0 +1,342 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PADnote.C - The "pad" synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+#include <math.h>
+#include "PADnote.h"
+#include "../Misc/Config.h"
+
+PADnote::PADnote(PADnoteParameters *parameters, Controller *ctl_,REALTYPE freq, REALTYPE velocity, int portamento_, int midinote){
+ ready=0;
+ pars=parameters;
+ portamento=portamento_;
+ ctl=ctl_;
+ this->velocity=velocity;
+ finished_=false;
+
+
+ if (pars->Pfixedfreq==0) basefreq=freq;
+ else {
+ basefreq=440.0;
+ int fixedfreqET=pars->PfixedfreqET;
+ if (fixedfreqET!=0) {//if the frequency varies according the keyboard note
+ REALTYPE tmp=(midinote-69.0)/12.0*(pow(2.0,(fixedfreqET-1)/63.0)-1.0);
+ if (fixedfreqET<=64) basefreq*=pow(2.0,tmp);
+ else basefreq*=pow(3.0,tmp);
+ };
+
+ };
+
+ firsttime=true;
+ released=false;
+ realfreq=basefreq;
+ NoteGlobalPar.Detune=getdetune(pars->PDetuneType
+ ,pars->PCoarseDetune,pars->PDetune);
+
+
+ //find out the closest note
+ REALTYPE logfreq=log(basefreq*pow(2.0,NoteGlobalPar.Detune/1200.0));
+ REALTYPE mindist=fabs(logfreq-log(pars->sample[0].basefreq+0.0001));
+ nsample=0;
+ for (int i=1;i<PAD_MAX_SAMPLES;i++){
+ if (pars->sample[i].smp==NULL) break;
+ REALTYPE dist=fabs(logfreq-log(pars->sample[i].basefreq+0.0001));
+// printf("(mindist=%g) %i %g %g\n",mindist,i,dist,pars->sample[i].basefreq);
+
+ if (dist<mindist){
+ nsample=i;
+ mindist=dist;
+ };
+ };
+
+ int size=pars->sample[nsample].size;
+ if (size==0) size=1;
+
+
+ poshi_l=(int)(RND*(size-1));
+ if (pars->PStereo!=0) poshi_r=(poshi_l+size/2)%size;
+ else poshi_r=poshi_l;
+ poslo=0.0;
+
+ tmpwave=new REALTYPE [SOUND_BUFFER_SIZE];
+
+
+
+ if (pars->PPanning==0) NoteGlobalPar.Panning=RND;
+ else NoteGlobalPar.Panning=pars->PPanning/128.0;
+
+ NoteGlobalPar.FilterCenterPitch=pars->GlobalFilter->getfreq()+//center freq
+ pars->PFilterVelocityScale/127.0*6.0* //velocity sensing
+ (VelF(velocity,pars->PFilterVelocityScaleFunction)-1);
+
+ if (pars->PPunchStrength!=0) {
+ NoteGlobalPar.Punch.Enabled=1;
+ NoteGlobalPar.Punch.t=1.0;//start from 1.0 and to 0.0
+ NoteGlobalPar.Punch.initialvalue=( (pow(10,1.5*pars->PPunchStrength/127.0)-1.0)
+ *VelF(velocity,pars->PPunchVelocitySensing) );
+ REALTYPE time=pow(10,3.0*pars->PPunchTime/127.0)/10000.0;//0.1 .. 100 ms
+ REALTYPE stretch=pow(440.0/freq,pars->PPunchStretch/64.0);
+ NoteGlobalPar.Punch.dt=1.0/(time*SAMPLE_RATE*stretch);
+ } else NoteGlobalPar.Punch.Enabled=0;
+
+
+
+ NoteGlobalPar.FreqEnvelope=new Envelope(pars->FreqEnvelope,basefreq);
+ NoteGlobalPar.FreqLfo=new LFO(pars->FreqLfo,basefreq);
+
+ NoteGlobalPar.AmpEnvelope=new Envelope(pars->AmpEnvelope,basefreq);
+ NoteGlobalPar.AmpLfo=new LFO(pars->AmpLfo,basefreq);
+
+ NoteGlobalPar.Volume=4.0*pow(0.1,3.0*(1.0-pars->PVolume/96.0))//-60 dB .. 0 dB
+ *VelF(velocity,pars->PAmpVelocityScaleFunction);//velocity sensing
+
+ NoteGlobalPar.AmpEnvelope->envout_dB();//discard the first envelope output
+ globaloldamplitude=globalnewamplitude=NoteGlobalPar.Volume*NoteGlobalPar.AmpEnvelope->envout_dB()*NoteGlobalPar.AmpLfo->amplfoout();
+
+ NoteGlobalPar.GlobalFilterL=new Filter(pars->GlobalFilter);
+ NoteGlobalPar.GlobalFilterR=new Filter(pars->GlobalFilter);
+
+ NoteGlobalPar.FilterEnvelope=new Envelope(pars->FilterEnvelope,basefreq);
+ NoteGlobalPar.FilterLfo=new LFO(pars->FilterLfo,basefreq);
+ NoteGlobalPar.FilterQ=pars->GlobalFilter->getq();
+ NoteGlobalPar.FilterFreqTracking=pars->GlobalFilter->getfreqtracking(basefreq);
+
+ ready=1;///sa il pun pe asta doar cand e chiar gata
+
+ if (parameters->sample[nsample].smp==NULL){
+ finished_=true;
+ return;
+ };
+};
+
+PADnote::~PADnote(){
+ delete (NoteGlobalPar.FreqEnvelope);
+ delete (NoteGlobalPar.FreqLfo);
+ delete (NoteGlobalPar.AmpEnvelope);
+ delete (NoteGlobalPar.AmpLfo);
+ delete (NoteGlobalPar.GlobalFilterL);
+ delete (NoteGlobalPar.GlobalFilterR);
+ delete (NoteGlobalPar.FilterEnvelope);
+ delete (NoteGlobalPar.FilterLfo);
+ delete (tmpwave);
+};
+
+
+inline void PADnote::fadein(REALTYPE *smps){
+ int zerocrossings=0;
+ for (int i=1;i<SOUND_BUFFER_SIZE;i++)
+ if ((smps[i-1]<0.0) && (smps[i]>0.0)) zerocrossings++;//this is only the possitive crossings
+
+ REALTYPE tmp=(SOUND_BUFFER_SIZE-1.0)/(zerocrossings+1)/3.0;
+ if (tmp<8.0) tmp=8.0;
+
+ int n;
+ F2I(tmp,n);//how many samples is the fade-in
+ if (n>SOUND_BUFFER_SIZE) n=SOUND_BUFFER_SIZE;
+ for (int i=0;i<n;i++) {//fade-in
+ REALTYPE tmp=0.5-cos((REALTYPE)i/(REALTYPE) n*PI)*0.5;
+ smps[i]*=tmp;
+ };
+};
+
+
+void PADnote::computecurrentparameters(){
+ REALTYPE globalpitch,globalfilterpitch;
+ globalpitch=0.01*(NoteGlobalPar.FreqEnvelope->envout()+
+ NoteGlobalPar.FreqLfo->lfoout()*ctl->modwheel.relmod+NoteGlobalPar.Detune);
+ globaloldamplitude=globalnewamplitude;
+ globalnewamplitude=NoteGlobalPar.Volume*NoteGlobalPar.AmpEnvelope->envout_dB()*NoteGlobalPar.AmpLfo->amplfoout();
+
+ globalfilterpitch=NoteGlobalPar.FilterEnvelope->envout()+NoteGlobalPar.FilterLfo->lfoout()
+ +NoteGlobalPar.FilterCenterPitch;
+
+ REALTYPE tmpfilterfreq=globalfilterpitch+ctl->filtercutoff.relfreq
+ +NoteGlobalPar.FilterFreqTracking;
+
+ tmpfilterfreq=NoteGlobalPar.GlobalFilterL->getrealfreq(tmpfilterfreq);
+
+ REALTYPE globalfilterq=NoteGlobalPar.FilterQ*ctl->filterq.relq;
+ NoteGlobalPar.GlobalFilterL->setfreq_and_q(tmpfilterfreq,globalfilterq);
+ NoteGlobalPar.GlobalFilterR->setfreq_and_q(tmpfilterfreq,globalfilterq);
+
+ //compute the portamento, if it is used by this note
+ REALTYPE portamentofreqrap=1.0;
+ if (portamento!=0){//this voice use portamento
+ portamentofreqrap=ctl->portamento.freqrap;
+ if (ctl->portamento.used==0){//the portamento has finished
+ portamento=0;//this note is no longer "portamented"
+ };
+ };
+
+ realfreq=basefreq*portamentofreqrap*pow(2.0,globalpitch/12.0)*ctl->pitchwheel.relfreq;
+};
+
+
+int PADnote::Compute_Linear(REALTYPE *outl,REALTYPE *outr,int freqhi,REALTYPE freqlo){
+ REALTYPE *smps=pars->sample[nsample].smp;
+ if (smps==NULL){
+ finished_=true;
+ return(1);
+ };
+ int size=pars->sample[nsample].size;
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ poshi_l+=freqhi;
+ poshi_r+=freqhi;
+ poslo+=freqlo;
+ if (poslo>=1.0){
+ poshi_l+=1;
+ poshi_r+=1;
+ poslo-=1.0;
+ };
+ if (poshi_l>=size) poshi_l%=size;
+ if (poshi_r>=size) poshi_r%=size;
+
+ outl[i]=smps[poshi_l]*(1.0-poslo)+smps[poshi_l+1]*poslo;
+ outr[i]=smps[poshi_r]*(1.0-poslo)+smps[poshi_r+1]*poslo;
+ };
+ return(1);
+};
+int PADnote::Compute_Cubic(REALTYPE *outl,REALTYPE *outr,int freqhi,REALTYPE freqlo){
+ REALTYPE *smps=pars->sample[nsample].smp;
+ if (smps==NULL){
+ finished_=true;
+ return(1);
+ };
+ int size=pars->sample[nsample].size;
+ REALTYPE xm1,x0,x1,x2,a,b,c;
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ poshi_l+=freqhi;
+ poshi_r+=freqhi;
+ poslo+=freqlo;
+ if (poslo>=1.0){
+ poshi_l+=1;
+ poshi_r+=1;
+ poslo-=1.0;
+ };
+ if (poshi_l>=size) poshi_l%=size;
+ if (poshi_r>=size) poshi_r%=size;
+
+
+ //left
+ xm1=smps[poshi_l];
+ x0=smps[poshi_l + 1];
+ x1=smps[poshi_l + 2];
+ x2=smps[poshi_l + 3];
+ a = (3.0 * (x0-x1) - xm1 + x2)*0.5;
+ b = 2.0*x1 + xm1 - (5.0*x0 + x2)*0.5;
+ c = (x1 - xm1)*0.5;
+ outl[i] = (((a * poslo) + b) * poslo + c) * poslo + x0;
+ //right
+ xm1=smps[poshi_r];
+ x0=smps[poshi_r + 1];
+ x1=smps[poshi_r + 2];
+ x2=smps[poshi_r + 3];
+ a = (3.0 * (x0-x1) - xm1 + x2)*0.5;
+ b = 2.0*x1 + xm1 - (5.0*x0 + x2)*0.5;
+ c = (x1 - xm1)*0.5;
+ outr[i] = (((a * poslo) + b) * poslo + c) * poslo + x0;
+ };
+ return(1);
+};
+
+
+int PADnote::noteout(REALTYPE *outl,REALTYPE *outr){
+ computecurrentparameters();
+ REALTYPE *smps=pars->sample[nsample].smp;
+ if (smps==NULL){
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ outl[i]=0.0;
+ outr[i]=0.0;
+ };
+ return(1);
+ };
+ REALTYPE smpfreq=pars->sample[nsample].basefreq;
+
+
+ REALTYPE freqrap=realfreq/smpfreq;
+ int freqhi=(int) (floor(freqrap));
+ REALTYPE freqlo=freqrap-floor(freqrap);
+
+
+ if (config.cfg.Interpolation) Compute_Cubic(outl,outr,freqhi,freqlo);
+ else Compute_Linear(outl,outr,freqhi,freqlo);
+
+
+ if (firsttime){
+ fadein(outl);
+ fadein(outr);
+ firsttime=false;
+ };
+
+ NoteGlobalPar.GlobalFilterL->filterout(outl);
+ NoteGlobalPar.GlobalFilterR->filterout(outr);
+
+ //Apply the punch
+ if (NoteGlobalPar.Punch.Enabled!=0){
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE punchamp=NoteGlobalPar.Punch.initialvalue*NoteGlobalPar.Punch.t+1.0;
+ outl[i]*=punchamp;
+ outr[i]*=punchamp;
+ NoteGlobalPar.Punch.t-=NoteGlobalPar.Punch.dt;
+ if (NoteGlobalPar.Punch.t<0.0) {
+ NoteGlobalPar.Punch.Enabled=0;
+ break;
+ };
+ };
+ };
+
+ if (ABOVE_AMPLITUDE_THRESHOLD(globaloldamplitude,globalnewamplitude)){
+ // Amplitude Interpolation
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE tmpvol=INTERPOLATE_AMPLITUDE(globaloldamplitude,globalnewamplitude,i,SOUND_BUFFER_SIZE);
+ outl[i]*=tmpvol*NoteGlobalPar.Panning;
+ outr[i]*=tmpvol*(1.0-NoteGlobalPar.Panning);
+ };
+ } else {
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]*=globalnewamplitude*NoteGlobalPar.Panning;
+ outr[i]*=globalnewamplitude*(1.0-NoteGlobalPar.Panning);
+ };
+ };
+
+
+ // Check if the global amplitude is finished.
+ // If it does, disable the note
+ if (NoteGlobalPar.AmpEnvelope->finished()!=0) {
+ for (int i=0;i<SOUND_BUFFER_SIZE;i++) {//fade-out
+ REALTYPE tmp=1.0-(REALTYPE)i/(REALTYPE)SOUND_BUFFER_SIZE;
+ outl[i]*=tmp;
+ outr[i]*=tmp;
+ };
+ finished_=1;
+ };
+
+ return(1);
+};
+
+int PADnote::finished(){
+ return(finished_);
+};
+
+void PADnote::relasekey(){
+ NoteGlobalPar.FreqEnvelope->relasekey();
+ NoteGlobalPar.FilterEnvelope->relasekey();
+ NoteGlobalPar.AmpEnvelope->relasekey();
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.h
new file mode 100644
index 00000000..2a99577f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/PADnote.h
@@ -0,0 +1,106 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ PADnote.h - The "pad" synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+#ifndef PAD_NOTE_H
+#define PAD_NOTE_H
+
+#include "../globals.h"
+#include "../Params/PADnoteParameters.h"
+#include "../Params/Controller.h"
+#include "Envelope.h"
+#include "LFO.h"
+#include "../DSP/Filter.h"
+#include "../Params/Controller.h"
+
+class PADnote{
+ public:
+ PADnote(PADnoteParameters *parameters, Controller *ctl_,REALTYPE freq, REALTYPE velocity, int portamento_, int midinote);
+ ~PADnote();
+
+ int noteout(REALTYPE *outl,REALTYPE *outr);
+ int finished();
+ void relasekey();
+
+ int ready;
+
+ private:
+ void fadein(REALTYPE *smps);
+ void computecurrentparameters();
+ bool finished_;
+ PADnoteParameters *pars;
+
+ int poshi_l,poshi_r;
+ REALTYPE poslo;
+
+ REALTYPE basefreq;
+ bool firsttime,released;
+
+ int nsample,portamento;
+
+ int Compute_Linear(REALTYPE *outl,REALTYPE *outr,int freqhi,REALTYPE freqlo);
+ int Compute_Cubic(REALTYPE *outl,REALTYPE *outr,int freqhi,REALTYPE freqlo);
+
+
+ struct{
+ /******************************************
+ * FREQUENCY GLOBAL PARAMETERS *
+ ******************************************/
+ REALTYPE Detune;//cents
+
+ Envelope *FreqEnvelope;
+ LFO *FreqLfo;
+
+ /********************************************
+ * AMPLITUDE GLOBAL PARAMETERS *
+ ********************************************/
+ REALTYPE Volume;// [ 0 .. 1 ]
+
+ REALTYPE Panning;// [ 0 .. 1 ]
+
+ Envelope *AmpEnvelope;
+ LFO *AmpLfo;
+
+ struct {
+ int Enabled;
+ REALTYPE initialvalue,dt,t;
+ } Punch;
+
+ /******************************************
+ * FILTER GLOBAL PARAMETERS *
+ ******************************************/
+ Filter *GlobalFilterL,*GlobalFilterR;
+
+ REALTYPE FilterCenterPitch;//octaves
+ REALTYPE FilterQ;
+ REALTYPE FilterFreqTracking;
+
+ Envelope *FilterEnvelope;
+
+ LFO *FilterLfo;
+ } NoteGlobalPar;
+
+
+ REALTYPE globaloldamplitude,globalnewamplitude,velocity,realfreq;
+ REALTYPE *tmpwave;
+ Controller *ctl;
+};
+
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.C
new file mode 100644
index 00000000..fb741055
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.C
@@ -0,0 +1,231 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Resonance.C - Resonance
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include "Resonance.h"
+
+
+#include <stdio.h>
+
+Resonance::Resonance():Presets(){
+ setpresettype("Presonance");
+ defaults();
+};
+
+Resonance::~Resonance(){
+};
+
+
+void Resonance::defaults(){
+ Penabled=0;
+ PmaxdB=20;
+ Pcenterfreq=64;//1 kHz
+ Poctavesfreq=64;
+ Pprotectthefundamental=0;
+ ctlcenter=1.0;
+ ctlbw=1.0;
+ for (int i=0;i<N_RES_POINTS;i++) Prespoints[i]=64;
+};
+
+/*
+ * Set a point of resonance function with a value
+ */
+void Resonance::setpoint(int n,unsigned char p){
+ if ((n<0)||(n>=N_RES_POINTS)) return;
+ Prespoints[n]=p;
+};
+
+/*
+ * Apply the resonance to FFT data
+ */
+void Resonance::applyres(int n,FFTFREQS fftdata,REALTYPE freq){
+ if (Penabled==0) return;//if the resonance is disabled
+ REALTYPE sum=0.0,
+ l1=log(getfreqx(0.0)*ctlcenter),
+ l2=log(2.0)*getoctavesfreq()*ctlbw;
+
+ for (int i=0;i<N_RES_POINTS;i++) if (sum<Prespoints[i]) sum=Prespoints[i];
+ if (sum<1.0) sum=1.0;
+
+ for (int i=1;i<n;i++){
+ REALTYPE x=(log(freq*i)-l1)/l2;//compute where the n-th hamonics fits to the graph
+ if (x<0.0) x=0.0;
+
+ x*=N_RES_POINTS;
+ REALTYPE dx=x-floor(x);x=floor(x);
+ int kx1=(int)x; if (kx1>=N_RES_POINTS) kx1=N_RES_POINTS-1;
+ int kx2=kx1+1;if (kx2>=N_RES_POINTS) kx2=N_RES_POINTS-1;
+ REALTYPE y=(Prespoints[kx1]*(1.0-dx)+Prespoints[kx2]*dx)/127.0-sum/127.0;
+
+ y=pow(10.0,y*PmaxdB/20.0);
+
+ if ((Pprotectthefundamental!=0)&&(i==1)) y=1.0;
+
+ fftdata.c[i]*=y;
+ fftdata.s[i]*=y;
+ };
+};
+
+/*
+ * Gets the response at the frequency "freq"
+ */
+
+REALTYPE Resonance::getfreqresponse(REALTYPE freq){
+ REALTYPE l1=log(getfreqx(0.0)*ctlcenter),
+ l2=log(2.0)*getoctavesfreq()*ctlbw,sum=0.0;
+
+ for (int i=0;i<N_RES_POINTS;i++) if (sum<Prespoints[i]) sum=Prespoints[i];
+ if (sum<1.0) sum=1.0;
+
+ REALTYPE x=(log(freq)-l1)/l2;//compute where the n-th hamonics fits to the graph
+ if (x<0.0) x=0.0;
+ x*=N_RES_POINTS;
+ REALTYPE dx=x-floor(x);x=floor(x);
+ int kx1=(int)x; if (kx1>=N_RES_POINTS) kx1=N_RES_POINTS-1;
+ int kx2=kx1+1;if (kx2>=N_RES_POINTS) kx2=N_RES_POINTS-1;
+ REALTYPE result=(Prespoints[kx1]*(1.0-dx)+Prespoints[kx2]*dx)/127.0-sum/127.0;
+ result=pow(10.0,result*PmaxdB/20.0);
+ return(result);
+};
+
+
+/*
+ * Smooth the resonance function
+ */
+void Resonance::smooth(){
+ REALTYPE old=Prespoints[0];
+ for (int i=0;i<N_RES_POINTS;i++){
+ old=old*0.4+Prespoints[i]*0.6;
+ Prespoints[i]=(int) old;
+ };
+ old=Prespoints[N_RES_POINTS-1];
+ for (int i=N_RES_POINTS-1;i>0;i--){
+ old=old*0.4+Prespoints[i]*0.6;
+ Prespoints[i]=(int) old+1;
+ if (Prespoints[i]>127) Prespoints[i]=127;
+ };
+};
+
+/*
+ * Randomize the resonance function
+ */
+void Resonance::randomize(int type){
+ int r=(int)(RND*127.0);
+ for (int i=0;i<N_RES_POINTS;i++){
+ Prespoints[i]=r;
+ if ((RND<0.1)&&(type==0)) r=(int)(RND*127.0);
+ if ((RND<0.3)&&(type==1)) r=(int)(RND*127.0);
+ if (type==2) r=(int)(RND*127.0);
+ };
+ smooth();
+};
+
+/*
+ * Interpolate the peaks
+ */
+void Resonance::interpolatepeaks(int type){
+ int x1=0,y1=Prespoints[0];
+ for (int i=1;i<N_RES_POINTS;i++){
+ if ((Prespoints[i]!=64)||(i+1==N_RES_POINTS)){
+ int y2=Prespoints[i];
+ for (int k=0;k<i-x1;k++){
+ float x=(float) k/(i-x1);
+ if (type==0) x=(1-cos(x*PI))*0.5;
+ Prespoints[x1+k]=(int)(y1*(1.0-x)+y2*x);
+ };
+ x1=i;
+ y1=y2;
+ };
+ };
+};
+
+/*
+ * Get the frequency from x, where x is [0..1]; x is the x coordinate
+ */
+REALTYPE Resonance::getfreqx(REALTYPE x){
+ if (x>1.0) x=1.0;
+ REALTYPE octf=pow(2.0,getoctavesfreq());
+ return(getcenterfreq()/sqrt(octf)*pow(octf,x));
+};
+
+/*
+ * Get the x coordinate from frequency (used by the UI)
+ */
+REALTYPE Resonance::getfreqpos(REALTYPE freq){
+ return((log(freq)-log(getfreqx(0.0)))/log(2.0)/getoctavesfreq());
+};
+
+/*
+ * Get the center frequency of the resonance graph
+ */
+REALTYPE Resonance::getcenterfreq(){
+ return(10000.0*pow(10,-(1.0-Pcenterfreq/127.0)*2.0));
+};
+
+/*
+ * Get the number of octave that the resonance functions applies to
+ */
+REALTYPE Resonance::getoctavesfreq(){
+ return(0.25+10.0*Poctavesfreq/127.0);
+};
+
+void Resonance::sendcontroller(MidiControllers ctl,REALTYPE par){
+ if (ctl==C_resonance_center) ctlcenter=par;
+ else ctlbw=par;
+};
+
+
+
+
+void Resonance::add2XML(XMLwrapper *xml){
+ xml->addparbool("enabled",Penabled);
+
+ if ((Penabled==0)&&(xml->minimal)) return;
+
+ xml->addpar("max_db",PmaxdB);
+ xml->addpar("center_freq",Pcenterfreq);
+ xml->addpar("octaves_freq",Poctavesfreq);
+ xml->addparbool("protect_fundamental_frequency",Pprotectthefundamental);
+ xml->addpar("resonance_points",N_RES_POINTS);
+ for (int i=0;i<N_RES_POINTS;i++){
+ xml->beginbranch("RESPOINT",i);
+ xml->addpar("val",Prespoints[i]);
+ xml->endbranch();
+ };
+};
+
+
+void Resonance::getfromXML(XMLwrapper *xml){
+ Penabled=xml->getparbool("enabled",Penabled);
+
+ PmaxdB=xml->getpar127("max_db",PmaxdB);
+ Pcenterfreq=xml->getpar127("center_freq",Pcenterfreq);
+ Poctavesfreq=xml->getpar127("octaves_freq",Poctavesfreq);
+ Pprotectthefundamental=xml->getparbool("protect_fundamental_frequency",Pprotectthefundamental);
+ for (int i=0;i<N_RES_POINTS;i++){
+ if (xml->enterbranch("RESPOINT",i)==0) continue;
+ Prespoints[i]=xml->getpar127("val",Prespoints[i]);
+ xml->exitbranch();
+ };
+};
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.h
new file mode 100644
index 00000000..7b09e295
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/Resonance.h
@@ -0,0 +1,68 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ Resonance.h - Resonance
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+#ifndef RESONANCE_H
+#define RESONANCE_H
+
+#include "../globals.h"
+#include "../Misc/Util.h"
+#include "../Misc/XMLwrapper.h"
+#include "../Params/Presets.h"
+
+#define N_RES_POINTS 256
+
+class Resonance:public Presets{
+ public:
+ Resonance();
+ ~Resonance();
+ void setpoint(int n,unsigned char p);
+ void applyres(int n,FFTFREQS fftdata,REALTYPE freq);
+ void smooth();
+ void interpolatepeaks(int type);
+ void randomize(int type);
+
+ void add2XML(XMLwrapper *xml);
+ void defaults();
+ void getfromXML(XMLwrapper *xml);
+
+
+ REALTYPE getfreqpos(REALTYPE freq);
+ REALTYPE getfreqx(REALTYPE x);
+ REALTYPE getfreqresponse(REALTYPE freq);
+ REALTYPE getcenterfreq();
+ REALTYPE getoctavesfreq();
+ void sendcontroller(MidiControllers ctl,REALTYPE par);
+
+ //parameters
+ unsigned char Penabled; //if the ressonance is enabled
+ unsigned char Prespoints[N_RES_POINTS]; //how many points define the resonance function
+ unsigned char PmaxdB; //how many dB the signal may be amplified
+ unsigned char Pcenterfreq,Poctavesfreq; //the center frequency of the res. func., and the number of octaves
+ unsigned char Pprotectthefundamental; //the fundamental (1-st harmonic) is not damped, even it resonance function is low
+
+ //controllers
+ REALTYPE ctlcenter;//center frequency(relative)
+ REALTYPE ctlbw;//bandwidth(relative)
+
+ private:
+};
+
+#endif
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.C b/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.C
new file mode 100644
index 00000000..f198ba04
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.C
@@ -0,0 +1,419 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SUBnote.C - The "subtractive" synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "../globals.h"
+#include "SUBnote.h"
+#include "../Misc/Util.h"
+
+SUBnote::SUBnote(SUBnoteParameters *parameters,Controller *ctl_,REALTYPE freq,REALTYPE velocity,int portamento_,int midinote){
+ ready=0;
+
+ tmpsmp=new REALTYPE[SOUND_BUFFER_SIZE];
+ tmprnd=new REALTYPE[SOUND_BUFFER_SIZE];
+
+ pars=parameters;
+ ctl=ctl_;
+ portamento=portamento_;
+ NoteEnabled=ON;
+ volume=pow(0.1,3.0*(1.0-pars->PVolume/96.0));//-60 dB .. 0 dB
+ volume*=VelF(velocity,pars->PAmpVelocityScaleFunction);
+ if (pars->PPanning!=0) panning=pars->PPanning/127.0;
+ else panning=RND;
+ numstages=pars->Pnumstages;
+ stereo=pars->Pstereo;
+ start=pars->Pstart;
+ firsttick=1;
+ int pos[MAX_SUB_HARMONICS];
+
+ if (pars->Pfixedfreq==0) basefreq=freq;
+ else {
+ basefreq=440.0;
+ int fixedfreqET=pars->PfixedfreqET;
+ if (fixedfreqET!=0) {//if the frequency varies according the keyboard note
+ REALTYPE tmp=(midinote-69.0)/12.0*(pow(2.0,(fixedfreqET-1)/63.0)-1.0);
+ if (fixedfreqET<=64) basefreq*=pow(2.0,tmp);
+ else basefreq*=pow(3.0,tmp);
+ };
+
+ };
+ REALTYPE detune=getdetune(pars->PDetuneType,pars->PCoarseDetune,pars->PDetune);
+ basefreq*=pow(2.0,detune/1200.0);//detune
+// basefreq*=ctl->pitchwheel.relfreq;//pitch wheel
+
+ //global filter
+ GlobalFilterCenterPitch=pars->GlobalFilter->getfreq()+//center freq
+ (pars->PGlobalFilterVelocityScale/127.0*6.0)* //velocity sensing
+ (VelF(velocity,pars->PGlobalFilterVelocityScaleFunction)-1);
+
+ GlobalFilterL=NULL;GlobalFilterR=NULL;
+ GlobalFilterEnvelope=NULL;
+
+ //select only harmonics that desire to compute
+ numharmonics=0;
+ for (int n=0;n<MAX_SUB_HARMONICS;n++){
+ if (pars->Phmag[n]==0)continue;
+ if (n*basefreq>SAMPLE_RATE/2.0) break;//remove the freqs above the Nyquist freq
+ pos[numharmonics++]=n;
+ };
+
+ if (numharmonics==0) {
+ NoteEnabled=OFF;
+ return;
+ };
+
+
+ lfilter=new bpfilter[numstages*numharmonics];
+ if (stereo!=0) rfilter=new bpfilter[numstages*numharmonics];
+
+ //how much the amplitude is normalised (because the harmonics)
+ REALTYPE reduceamp=0.0;
+
+ for (int n=0;n<numharmonics;n++){
+
+ REALTYPE freq=basefreq*(pos[n]+1);
+
+ //the bandwidth is not absolute(Hz); it is relative to frequency
+ REALTYPE bw=pow(10,(pars->Pbandwidth-127.0)/127.0*4)*numstages;
+
+ //Bandwidth Scale
+ bw*=pow(1000/freq,(pars->Pbwscale-64.0)/64.0*3.0);
+
+ //Relative BandWidth
+ bw*=pow(100,(pars->Phrelbw[pos[n]]-64.0)/64.0);
+
+ if (bw>25.0) bw=25.0;
+
+ //try to keep same amplitude on all freqs and bw. (empirically)
+ REALTYPE gain=sqrt(1500.0/(bw*freq));
+
+ REALTYPE hmagnew=1.0-pars->Phmag[pos[n]]/127.0;
+ REALTYPE hgain;
+
+ switch(pars->Phmagtype){
+ case 1:hgain=exp(hmagnew*log(0.01)); break;
+ case 2:hgain=exp(hmagnew*log(0.001));break;
+ case 3:hgain=exp(hmagnew*log(0.0001));break;
+ case 4:hgain=exp(hmagnew*log(0.00001));break;
+ default:hgain=1.0-hmagnew;
+ };
+ gain*=hgain;
+ reduceamp+=hgain;
+
+ for (int nph=0;nph<numstages;nph++){
+ REALTYPE amp=1.0;
+ if (nph==0) amp=gain;
+ initfilter(lfilter[nph+n*numstages],freq,bw,amp,hgain);
+ if (stereo!=0) initfilter(rfilter[nph+n*numstages],freq,bw,amp,hgain);
+ };
+ };
+
+ if (reduceamp<0.001) reduceamp=1.0;
+ volume/=reduceamp;
+
+ oldpitchwheel=0;
+ oldbandwidth=64;
+ if (pars->Pfixedfreq==0) initparameters(basefreq);
+ else initparameters(basefreq/440.0*freq);
+
+ oldamplitude=newamplitude;
+ ready=1;
+};
+
+SUBnote::~SUBnote(){
+ if (NoteEnabled!=OFF) KillNote();
+ delete [] tmpsmp;
+ delete [] tmprnd;
+};
+
+/*
+ * Kill the note
+ */
+void SUBnote::KillNote(){
+ if (NoteEnabled!=OFF){
+ delete [] lfilter;
+ lfilter=NULL;
+ if (stereo!=0) delete [] rfilter;
+ rfilter=NULL;
+ delete(AmpEnvelope);
+ if (FreqEnvelope!=NULL) delete(FreqEnvelope);
+ if (BandWidthEnvelope!=NULL) delete(BandWidthEnvelope);
+ NoteEnabled=OFF;
+ };
+
+};
+
+
+/*
+ * Compute the filters coefficients
+ */
+void SUBnote::computefiltercoefs(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE gain){
+ if (freq>SAMPLE_RATE/2.0-200.0) {
+ freq=SAMPLE_RATE/2.0-200.0;
+ };
+
+ REALTYPE omega=2.0*PI*freq/SAMPLE_RATE;
+ REALTYPE sn=sin(omega);REALTYPE cs=cos(omega);
+ REALTYPE alpha=sn*sinh(LOG_2/2.0*bw*omega/sn);
+
+ if (alpha>1) alpha=1;
+ if (alpha>bw) alpha=bw;
+
+ filter.b0=alpha/(1.0+alpha)*filter.amp*gain;
+ filter.b2=-alpha/(1.0+alpha)*filter.amp*gain;
+ filter.a1=-2.0*cs/(1.0+alpha);
+ filter.a2=(1.0-alpha)/(1.0+alpha);
+
+};
+
+
+/*
+ * Initialise the filters
+ */
+void SUBnote::initfilter(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE amp,REALTYPE mag){
+ filter.xn1=0.0;filter.xn2=0.0;
+
+ if (start==0) {
+ filter.yn1=0.0;
+ filter.yn2=0.0;
+ } else {
+ REALTYPE a=0.1*mag;//empirically
+ REALTYPE p=RND*2.0*PI;
+ if (start==1) a*=RND;
+ filter.yn1=a*cos(p);
+ filter.yn2=a*cos(p+freq*2.0*PI/SAMPLE_RATE);
+
+ //correct the error of computation the start amplitude
+ //at very high frequencies
+ if (freq>SAMPLE_RATE*0.96) {
+ filter.yn1=0.0;
+ filter.yn2=0.0;
+
+ };
+ };
+
+ filter.amp=amp;
+ filter.freq=freq;
+ filter.bw=bw;
+ computefiltercoefs(filter,freq,bw,1.0);
+};
+
+/*
+ * Do the filtering
+ */
+void SUBnote::filter(bpfilter &filter,REALTYPE *smps){
+ int i;
+ REALTYPE out;
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ out=smps[i] * filter.b0 + filter.b2 * filter.xn2
+ -filter.a1 * filter.yn1 - filter.a2 * filter.yn2;
+ filter.xn2=filter.xn1;
+ filter.xn1=smps[i];
+ filter.yn2=filter.yn1;
+ filter.yn1=out;
+ smps[i]=out;
+
+ };
+};
+
+/*
+ * Init Parameters
+ */
+void SUBnote::initparameters(REALTYPE freq){
+ AmpEnvelope=new Envelope(pars->AmpEnvelope,freq);
+ if (pars->PFreqEnvelopeEnabled!=0) FreqEnvelope=new Envelope(pars->FreqEnvelope,freq);
+ else FreqEnvelope=NULL;
+ if (pars->PBandWidthEnvelopeEnabled!=0) BandWidthEnvelope=new Envelope(pars->BandWidthEnvelope,freq);
+ else BandWidthEnvelope=NULL;
+ if (pars->PGlobalFilterEnabled!=0){
+ globalfiltercenterq=pars->GlobalFilter->getq();
+ GlobalFilterL=new Filter(pars->GlobalFilter);
+ if (stereo!=0) GlobalFilterR=new Filter(pars->GlobalFilter);
+ GlobalFilterEnvelope=new Envelope(pars->GlobalFilterEnvelope,freq);
+ GlobalFilterFreqTracking=pars->GlobalFilter->getfreqtracking(basefreq);
+ };
+ computecurrentparameters();
+};
+
+
+/*
+ * Compute Parameters of SUBnote for each tick
+ */
+void SUBnote::computecurrentparameters(){
+ if ((FreqEnvelope!=NULL)||(BandWidthEnvelope!=NULL)||
+ (oldpitchwheel!=ctl->pitchwheel.data)||
+ (oldbandwidth!=ctl->bandwidth.data)||
+ (portamento!=0)){
+ REALTYPE envfreq=1.0;
+ REALTYPE envbw=1.0;
+ REALTYPE gain=1.0;
+
+ if (FreqEnvelope!=NULL) {
+ envfreq=FreqEnvelope->envout()/1200;
+ envfreq=pow(2.0,envfreq);
+ };
+ envfreq*=ctl->pitchwheel.relfreq;//pitch wheel
+ if (portamento!=0) {//portamento is used
+ envfreq*=ctl->portamento.freqrap;
+ if (ctl->portamento.used==0){//the portamento has finished
+ portamento=0;//this note is no longer "portamented"
+ };
+ };
+
+ if (BandWidthEnvelope!=NULL) {
+ envbw=BandWidthEnvelope->envout();
+ envbw=pow(2,envbw);
+ };
+ envbw*=ctl->bandwidth.relbw;//bandwidth controller
+
+ REALTYPE tmpgain=1.0/sqrt(envbw*envfreq);
+
+ for (int n=0;n<numharmonics;n++){
+ for (int nph=0;nph<numstages;nph++) {
+ if (nph==0) gain=tmpgain;else gain=1.0;
+ computefiltercoefs( lfilter[nph+n*numstages],
+ lfilter[nph+n*numstages].freq*envfreq,
+ lfilter[nph+n*numstages].bw*envbw,gain);
+ };
+ };
+ if (stereo!=0)
+ for (int n=0;n<numharmonics;n++){
+ for (int nph=0;nph<numstages;nph++) {
+ if (nph==0) gain=tmpgain;else gain=1.0;
+ computefiltercoefs( rfilter[nph+n*numstages],
+ rfilter[nph+n*numstages].freq*envfreq,
+ rfilter[nph+n*numstages].bw*envbw,gain);
+ };
+ };
+ oldbandwidth=ctl->bandwidth.data;
+ oldpitchwheel=ctl->pitchwheel.data;
+ };
+ newamplitude=volume*AmpEnvelope->envout_dB()*2.0;
+
+ //Filter
+ if (GlobalFilterL!=NULL){
+ REALTYPE globalfilterpitch=GlobalFilterCenterPitch+GlobalFilterEnvelope->envout();
+ REALTYPE filterfreq=globalfilterpitch+ctl->filtercutoff.relfreq+GlobalFilterFreqTracking;
+ filterfreq=GlobalFilterL->getrealfreq(filterfreq);
+
+ GlobalFilterL->setfreq_and_q(filterfreq,globalfiltercenterq*ctl->filterq.relq);
+ if (GlobalFilterR!=NULL) GlobalFilterR->setfreq_and_q(filterfreq,globalfiltercenterq*ctl->filterq.relq);
+ };
+
+};
+
+/*
+ * Note Output
+ */
+int SUBnote::noteout(REALTYPE *outl,REALTYPE *outr){
+ int i;
+
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ outl[i]=denormalkillbuf[i];
+ outr[i]=denormalkillbuf[i];
+ };
+
+ if (NoteEnabled==OFF) return(0);
+
+ //left channel
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmprnd[i]=RND*2.0-1.0;
+ for (int n=0;n<numharmonics;n++){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpsmp[i]=tmprnd[i];
+ for (int nph=0;nph<numstages;nph++)
+ filter(lfilter[nph+n*numstages],tmpsmp);
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) outl[i]+=tmpsmp[i];
+ };
+
+ if (GlobalFilterL!=NULL) GlobalFilterL->filterout(&outl[0]);
+
+ //right channel
+ if (stereo!=0){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmprnd[i]=RND*2.0-1.0;
+ for (int n=0;n<numharmonics;n++){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) tmpsmp[i]=tmprnd[i];
+ for (int nph=0;nph<numstages;nph++)
+ filter(rfilter[nph+n*numstages],tmpsmp);
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) outr[i]+=tmpsmp[i];
+ };
+ if (GlobalFilterR!=NULL) GlobalFilterR->filterout(&outr[0]);
+ } else for (i=0;i<SOUND_BUFFER_SIZE;i++) outr[i]=outl[i];
+
+ if (firsttick!=0){
+ int n=10;if (n>SOUND_BUFFER_SIZE) n=SOUND_BUFFER_SIZE;
+ for (i=0;i<n;i++) {
+ REALTYPE ampfadein=0.5-0.5*cos((REALTYPE) i/(REALTYPE) n*PI);
+ outl[i]*=ampfadein;
+ outr[i]*=ampfadein;
+ };
+ firsttick=0;
+ };
+
+ if (ABOVE_AMPLITUDE_THRESHOLD(oldamplitude,newamplitude)){
+ // Amplitude interpolation
+ for (i=0;i<SOUND_BUFFER_SIZE;i++){
+ REALTYPE tmpvol=INTERPOLATE_AMPLITUDE(oldamplitude
+ ,newamplitude,i,SOUND_BUFFER_SIZE);
+ outl[i]*=tmpvol*panning;
+ outr[i]*=tmpvol*(1.0-panning);
+ };
+ } else {
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {
+ outl[i]*=newamplitude*panning;
+ outr[i]*=newamplitude*(1.0-panning);
+ };
+ };
+
+ oldamplitude=newamplitude;
+ computecurrentparameters();
+
+ // Check if the note needs to be computed more
+ if (AmpEnvelope->finished()!=0){
+ for (i=0;i<SOUND_BUFFER_SIZE;i++) {//fade-out
+ REALTYPE tmp=1.0-(REALTYPE)i/(REALTYPE)SOUND_BUFFER_SIZE;
+ outl[i]*=tmp;
+ outr[i]*=tmp;
+ };
+ KillNote();
+ };
+ return(1);
+};
+
+/*
+ * Relase Key (Note Off)
+ */
+void SUBnote::relasekey(){
+ AmpEnvelope->relasekey();
+ if (FreqEnvelope!=NULL) FreqEnvelope->relasekey();
+ if (BandWidthEnvelope!=NULL) BandWidthEnvelope->relasekey();
+ if (GlobalFilterEnvelope!=NULL) GlobalFilterEnvelope->relasekey();
+};
+
+/*
+ * Check if the note is finished
+ */
+int SUBnote::finished(){
+ if (NoteEnabled==OFF) return(1);
+ else return(0);
+};
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.h b/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.h
new file mode 100644
index 00000000..6e4e2991
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/Synth/SUBnote.h
@@ -0,0 +1,98 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ SUBnote.h - The subtractive synthesizer
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef SUB_NOTE_H
+#define SUB_NOTE_H
+
+#include "../globals.h"
+#include "../Params/SUBnoteParameters.h"
+#include "../Params/Controller.h"
+#include "Envelope.h"
+#include "../DSP/Filter.h"
+
+class SUBnote{
+ public:
+ SUBnote(SUBnoteParameters *parameters,Controller *ctl_,REALTYPE freq,REALTYPE velocity,int portamento_,int midinote);
+ ~SUBnote();
+ int noteout(REALTYPE *outl,REALTYPE *outr);//note output,return 0 if the note is finished
+ void relasekey();
+ int finished();
+
+ int ready; //if I can get the sampledata
+
+ private:
+
+ void computecurrentparameters();
+ void initparameters(REALTYPE freq);
+ void KillNote();
+
+ SUBnoteParameters *pars;
+
+ //parameters
+ int stereo;
+ int numstages;//number of stages of filters
+ int numharmonics;//number of harmonics (after the too higher hamonics are removed)
+ int start;//how the harmonics start
+ REALTYPE basefreq;
+ REALTYPE panning;
+ Envelope *AmpEnvelope;
+ Envelope *FreqEnvelope;
+ Envelope *BandWidthEnvelope;
+
+ Filter *GlobalFilterL,*GlobalFilterR;
+
+ Envelope *GlobalFilterEnvelope;
+
+ //internal values
+ ONOFFTYPE NoteEnabled;
+ int firsttick,portamento;
+ REALTYPE volume,oldamplitude,newamplitude;
+
+ REALTYPE GlobalFilterCenterPitch;//octaves
+ REALTYPE GlobalFilterFreqTracking;
+
+ struct bpfilter{
+ REALTYPE freq,bw,amp; //filter parameters
+ REALTYPE a1,a2,b0,b2;//filter coefs. b1=0
+ REALTYPE xn1,xn2,yn1,yn2; //filter internal values
+ };
+
+ void initfilter(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE amp,REALTYPE mag);
+ void computefiltercoefs(bpfilter &filter,REALTYPE freq,REALTYPE bw,REALTYPE gain);
+ void filter(bpfilter &filter,REALTYPE *smps);
+
+ bpfilter *lfilter,*rfilter;
+
+ REALTYPE *tmpsmp;
+ REALTYPE *tmprnd;//this is filled with random numbers
+
+ Controller *ctl;
+ int oldpitchwheel,oldbandwidth;
+ REALTYPE globalfiltercenterq;
+
+};
+
+
+
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/ADnoteUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/ADnoteUI.fl
new file mode 100644
index 00000000..33e25dff
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/ADnoteUI.fl
@@ -0,0 +1,1107 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "../Params/ADnoteParameters.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "ResonanceUI.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include <math.h>} {}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include <string.h>} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EnvelopeUI.h"} {public
+}
+
+decl {\#include "LFOUI.h"} {public
+}
+
+decl {\#include "FilterUI.h"} {public
+}
+
+decl {\#include "OscilGenUI.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class ADvoicelistitem {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window ADnoteVoiceListItem {
+ private xywh {247 599 615 30} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group voicelistitemgroup {
+ private xywh {50 0 570 25} box FLAT_BOX
+ code0 {if (pars->VoicePar[nvoice].Enabled==0) o->deactivate();}
+ } {
+ Fl_Value_Slider voicevolume {
+ callback {pars->VoicePar[nvoice].PVolume=(int)o->value();}
+ tooltip Volume xywh {90 5 115 20} type {Horz Knob} box FLAT_BOX labelsize 8 align 5 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PVolume);}
+ }
+ Fl_Check_Button voiceresonanceenabled {
+ callback {pars->VoicePar[nvoice].Presonance=(int)o->value();}
+ tooltip {Resonance On/Off} xywh {245 7 15 17} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 12 align 4
+ code0 {o->value(pars->VoicePar[nvoice].Presonance);}
+ }
+ Fl_Value_Slider voicelfofreq {
+ callback {pars->VoicePar[nvoice].FreqLfo->Pintensity=(int)o->value();}
+ tooltip {Frequency LFO amount} xywh {500 5 115 20} type {Horz Knob} box FLAT_BOX labelsize 8 align 5 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].FreqLfo->Pintensity);}
+ }
+ Fl_Dial voicepanning {
+ callback {pars->VoicePar[nvoice].PPanning=(int) o->value();}
+ tooltip {Panning (leftmost is Random)} xywh {215 5 20 20} box ROUND_UP_BOX labelsize 11 align 4 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PPanning);}
+ class WidgetPDial
+ }
+ Fl_Group voiceoscil {open
+ xywh {60 5 30 20} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179
+ code0 {osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {osc->init(pars->VoicePar[nvoice].OscilSmp,0,pars->VoicePar[nvoice].Poscilphase,master);}
+ code2 {if (pars->VoicePar[nvoice].Pextoscil != -1) {osc->init(pars->VoicePar[pars->VoicePar[nvoice].Pextoscil].OscilSmp,master);}}
+ } {}
+ Fl_Value_Output detunevalueoutput {
+ callback {o->value(getdetune((pars->VoicePar[nvoice].PDetuneType==0)?(pars->GlobalPar.PDetuneType) : (pars->VoicePar[nvoice].PDetuneType),0,pars->VoicePar[nvoice].PDetune)*pars->getBandwidthDetuneMultiplier());}
+ xywh {265 5 45 20} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
+ code0 {o->value(getdetune(pars->VoicePar[nvoice].PDetuneType,0,pars->VoicePar[nvoice].PDetune)*pars->getBandwidthDetuneMultiplier());}
+ }
+ Fl_Slider voicedetune {
+ callback {pars->VoicePar[nvoice].PDetune=(int)o->value()+8192;
+detunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {315 5 185 20} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PDetune-8192);}
+ }
+ Fl_Box noiselabel {
+ label N
+ callback {if (pars->VoicePar[nvoice].Type==0) {
+ o->hide();
+ voiceresonanceenabled->activate();
+ detunevalueoutput->activate();
+ voicedetune->activate();
+ voicelfofreq->activate();
+ voiceoscil->activate();
+} else {
+ o->show();
+ voiceresonanceenabled->deactivate();
+ detunevalueoutput->deactivate();
+ voicedetune->deactivate();
+ voicelfofreq->deactivate();
+ voiceoscil->deactivate();
+};}
+ xywh {65 5 20 20} labelfont 1 labelsize 16 labelcolor 7
+ code0 {if (pars->VoicePar[nvoice].Type==0) o->hide();}
+ }
+ }
+ Fl_Check_Button voiceenabled {
+ label 01
+ callback {pars->VoicePar[nvoice].Enabled=(int)o->value();
+if (o->value()==0) voicelistitemgroup->deactivate();
+else voicelistitemgroup->activate();
+o->redraw();}
+ private xywh {30 5 20 20} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 4
+ code0 {char tmp[10];snprintf(tmp,10,"%d",nvoice+1);o->label(strdup(tmp));}
+ code1 {o->value(pars->VoicePar[nvoice].Enabled);}
+ }
+ }
+ }
+ Function {ADvoicelistitem(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {nvoice=0;
+pars=NULL;} {}
+ }
+ Function {init(ADnoteParameters *parameters,int nvoice_,Master *master_)} {} {
+ code {pars=parameters;
+nvoice=nvoice_;
+master=master_;
+make_window();
+ADnoteVoiceListItem->show();
+end();} {}
+ }
+ Function {refreshlist()} {} {
+ code {voiceenabled->value(pars->VoicePar[nvoice].Enabled);
+voiceresonanceenabled->value(pars->VoicePar[nvoice].Presonance);
+voicevolume->value(pars->VoicePar[nvoice].PVolume);
+voicedetune->value(pars->VoicePar[nvoice].PDetune-8192);
+voicepanning->value(pars->VoicePar[nvoice].PPanning);
+voicelfofreq->value(pars->VoicePar[nvoice].FreqLfo->Pintensity);
+if (pars->VoicePar[nvoice].Pextoscil != -1) {
+ osc->init(pars->VoicePar[pars->VoicePar[nvoice].Pextoscil].OscilSmp,0,pars->VoicePar[nvoice].Poscilphase,master);
+} else
+ osc->init(pars->VoicePar[nvoice].OscilSmp,0,pars->VoicePar[nvoice].Poscilphase,master);
+if (pars->VoicePar[nvoice].Enabled==0) voicelistitemgroup->deactivate();
+ else voicelistitemgroup->activate();
+detunevalueoutput->do_callback();
+noiselabel->do_callback();
+ADnoteVoiceListItem->redraw();} {}
+ }
+ Function {~ADvoicelistitem()} {} {
+ code {ADnoteVoiceListItem->hide();
+//delete(ADnoteVoiceListItem);} {}
+ }
+ decl {ADnoteParameters *pars;} {}
+ decl {int nvoice;} {}
+ decl {Oscilloscope *osc;} {}
+ decl {Master *master;} {}
+}
+
+class ADvoiceUI {: {public Fl_Group}
+} {
+ Function {make_window()} {} {
+ Fl_Window ADnoteVoiceParameters {
+ label Voice
+ xywh {231 132 765 525} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group voiceparametersgroup {
+ xywh {0 0 765 525} box THIN_UP_BOX color 48
+ code0 {if (pars->VoicePar[nvoice].Enabled==0) o->deactivate();}
+ } {
+ Fl_Group voicemodegroup {
+ xywh {0 5 760 515}
+ } {
+ Fl_Group voiceFMparametersgroup {
+ label MODULATOR
+ xywh {530 5 230 515} box THIN_UP_FRAME color 48 labeltype EMBOSSED_LABEL labelfont 1 labelsize 18 align 17
+ code0 {if (pars->VoicePar[nvoice].PFMEnabled==0) o->deactivate();}
+ } {
+ Fl_Group modfrequency {
+ label {Mod.FREQUENCY}
+ xywh {535 220 220 145} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group voiceFMfreqenvgroup {
+ label {ADSynth Modulator - Frequency Envelope}
+ xywh {540 290 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FMFreqEnvelope);}
+ code1 {if (pars->VoicePar[nvoice].PFMFreqEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFMFreqEnvelopeEnabled=(int)o->value();
+if (o->value()==0) voiceFMfreqenvgroup->deactivate();
+else voiceFMfreqenvgroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {545 295 50 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PFMFreqEnvelopeEnabled);}
+ }
+ Fl_Counter {} {
+ label {Coarse Det.}
+ callback {int k=(int) o->value();
+if (k<0) k+=1024;
+pars->VoicePar[nvoice].PFMCoarseDetune = k+
+ (pars->VoicePar[nvoice].PFMCoarseDetune/1024)*1024;}
+ tooltip {Coarse Detune} xywh {685 270 60 15} labelsize 11 align 1 minimum -64 maximum 63 step 1 textfont 1 textsize 12
+ code0 {int k=pars->VoicePar[nvoice].PFMCoarseDetune%1024;}
+ code1 {if (k>=512) k-=1024;}
+ code2 {o->value(k);}
+ code3 {o->lstep(10);}
+ }
+ Fl_Counter {} {
+ label Octave
+ callback {int k=(int) o->value();
+if (k<0) k+=16;
+pars->VoicePar[nvoice].PFMCoarseDetune = k*1024+
+ pars->VoicePar[nvoice].PFMCoarseDetune%1024;}
+ tooltip Octave xywh {625 270 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 12
+ code0 {int k=pars->VoicePar[nvoice].PFMCoarseDetune/1024;}
+ code1 {if (k>=8) k-=16;}
+ code2 {o->value(k);}
+ }
+ Fl_Slider {} {
+ callback {pars->VoicePar[nvoice].PFMDetune=(int)o->value()+8192;
+fmdetunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {590 245 160 10} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PFMDetune-8192);}
+ }
+ Fl_Value_Output fmdetunevalueoutput {
+ label Detune
+ callback {o->value(getdetune((pars->VoicePar[nvoice].PFMDetuneType==0)?(pars->GlobalPar.PDetuneType) : (pars->VoicePar[nvoice].PFMDetuneType),0,pars->VoicePar[nvoice].PFMDetune));}
+ xywh {540 245 45 13} labelsize 8 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 8
+ code0 {o->value(getdetune((pars->VoicePar[nvoice].PFMDetuneType==0)?(pars->GlobalPar.PDetuneType) : (pars->VoicePar[nvoice].PFMDetuneType),0,pars->VoicePar[nvoice].PFMDetune));}
+ code1 {//o->value(getdetune(pars->VoicePar[nvoice].PFMDetuneType,0,pars->VoicePar[nvoice].PFMDetune));}
+ }
+ Fl_Choice {} {
+ label {Detune Type}
+ callback {pars->VoicePar[nvoice].PFMDetuneType=(int) o->value();
+fmdetunevalueoutput->do_callback();} open
+ xywh {540 270 75 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("Default");o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
+ code1 {o->value(pars->VoicePar[nvoice].PFMDetuneType);}
+ } {}
+ }
+ Fl_Group {} {
+ label {Mod.AMPLITUDE}
+ xywh {535 60 220 160} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Value_Slider {} {
+ label Vol
+ callback {pars->VoicePar[nvoice].PFMVolume=(int)o->value();}
+ tooltip Volume xywh {540 80 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PFMVolume);}
+ }
+ Fl_Value_Slider {} {
+ label {V.Sns}
+ callback {pars->VoicePar[nvoice].PFMVelocityScaleFunction=(int) o->value();}
+ tooltip {Velocity Sensing Function (rightmost to disable)} xywh {540 100 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PFMVelocityScaleFunction);}
+ }
+ Fl_Group voiceFMampenvgroup {
+ label {ADSynth Modulator - Amplitude Envelope} open
+ xywh {540 145 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FMAmpEnvelope);}
+ code1 {if (pars->VoicePar[nvoice].PFMAmpEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFMAmpEnvelopeEnabled=(int)o->value();
+if (o->value()==0) voiceFMampenvgroup->deactivate();
+else voiceFMampenvgroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {545 150 50 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PFMAmpEnvelopeEnabled);}
+ }
+ Fl_Value_Slider {} {
+ label {F.Damp}
+ callback {pars->VoicePar[nvoice].PFMVolumeDamp=(int) o->value()+64;}
+ tooltip {Modulator Damp at Higher frequency} xywh {540 120 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 minimum -64 maximum 63 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PFMVolumeDamp-64);}
+ }
+ }
+ Fl_Group modoscil {
+ xywh {535 365 220 150}
+ } {
+ Fl_Group fmoscil {open
+ xywh {535 405 220 110} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179
+ code0 {oscFM=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {int nv=nvoice; if (pars->VoicePar[nvoice].PextFMoscil>=0) nv=pars->VoicePar[nvoice].PextFMoscil;}
+ code2 {oscFM->init(pars->VoicePar[nv].FMSmp,0,pars->VoicePar[nvoice].PFMoscilphase,master);}
+ } {}
+ Fl_Box {} {
+ label {Mod.Oscillator}
+ xywh {535 365 155 20} labelfont 1 align 20
+ }
+ Fl_Button changeFMoscilbutton {
+ label Change
+ callback {if (oscedit!=NULL) delete(oscedit);
+
+int nv=nvoice;
+if (pars->VoicePar[nvoice].PextFMoscil>=0) nv=pars->VoicePar[nvoice].PextFMoscil;
+
+oscedit=new OscilEditor(pars->VoicePar[nv].FMSmp,fmoscil,NULL,NULL,master);} selected
+ xywh {700 370 55 15} box THIN_UP_BOX labelfont 1 labelsize 12
+ code0 {if (pars->VoicePar[nvoice].PextFMoscil>=0) o->labelcolor(FL_BLUE);}
+ }
+ Fl_Slider {} {
+ label Phase
+ callback {pars->VoicePar[nvoice].PFMoscilphase=64-(int)o->value();
+oscFM->phase=64-(int) o->value();
+fmoscil->redraw();}
+ xywh {665 395 65 10} type {Horz Knob} box FLAT_BOX labelsize 10 align 5 minimum -64 maximum 63 step 1
+ code0 {o->value(64-pars->VoicePar[nvoice].PFMoscilphase);}
+ }
+ Fl_Choice {} {
+ label Use
+ callback {pars->VoicePar[nvoice].PextFMoscil=(int)o->value()-1;
+if ((int) o->value() != 0) {
+ oscFM->init(pars->VoicePar[(int) o->value()-1].FMSmp,master);
+ changeFMoscilbutton->labelcolor(FL_BLUE);
+} else {
+ oscFM->init(pars->VoicePar[nvoice].FMSmp,master);
+ changeFMoscilbutton->labelcolor(FL_BLACK);
+};
+voiceFMparametersgroup->redraw();} open
+ xywh {560 390 75 15} down_box BORDER_BOX labelsize 10 textfont 1 textsize 10
+ code0 {o->add("Internal");}
+ code1 {char tmp[50]; for (int i=0;i<nvoice;i++) {sprintf(tmp,"ExtM.%2d",i+1);o->add(tmp);};}
+ code3 {o->value(pars->VoicePar[nvoice].PextFMoscil+1);}
+ } {}
+ }
+ Fl_Choice {} {
+ label {External Mod.}
+ callback {pars->VoicePar[nvoice].PFMVoice=(int)o->value()-1;
+if ((int) o->value() != 0) {
+ modoscil->deactivate();
+ modfrequency->deactivate();
+} else {
+ modoscil->activate();
+ modfrequency->activate();
+};
+voiceFMparametersgroup->redraw();} open
+ xywh {635 40 85 20} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("OFF");}
+ code1 {char tmp[50]; for (int i=0;i<nvoice;i++) {sprintf(tmp,"ExtMod.%2d",i+1);o->add(tmp);};}
+ code2 {o->value(pars->VoicePar[nvoice].PFMVoice+1);}
+ code3 {if ((int) o->value() != 0) {modoscil->deactivate();modfrequency->deactivate();}}
+ } {}
+ }
+ Fl_Choice {} {
+ label {Type:}
+ callback {pars->VoicePar[nvoice].PFMEnabled=(int)o->value();
+if (o->value()==0) voiceFMparametersgroup->deactivate();
+else voiceFMparametersgroup->activate();
+o->redraw();}
+ xywh {535 40 80 20} down_box BORDER_BOX align 5
+ code0 {o->value(pars->VoicePar[nvoice].PFMEnabled);}
+ } {
+ menuitem {} {
+ label OFF
+ xywh {40 40 100 20} labelfont 1
+ }
+ menuitem {} {
+ label MORPH
+ xywh {50 50 100 20} labelfont 1
+ }
+ menuitem {} {
+ label RING
+ xywh {60 60 100 20} labelfont 1
+ }
+ menuitem {} {
+ label PM
+ xywh {70 70 100 20} labelfont 1
+ }
+ menuitem {} {
+ label FM
+ xywh {80 80 100 20} labelfont 1
+ }
+ menuitem {} {
+ label PITCH
+ xywh {90 90 100 20} labelfont 1 deactivate
+ }
+ }
+ Fl_Group {} {
+ label FREQUENCY
+ xywh {5 250 525 120} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group voicefreqenvgroup {
+ label {ADSynth Voice - Frequency Envelope} open
+ xywh {10 290 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FreqEnvelope);}
+ code1 {if (pars->VoicePar[nvoice].PFreqEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFreqEnvelopeEnabled=(int)o->value();
+if (o->value()==0) voicefreqenvgroup->deactivate();
+else voicefreqenvgroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {15 295 50 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PFreqEnvelopeEnabled);}
+ }
+ Fl_Group voicefreqlfogroup {
+ label {Frequency LFO } open
+ xywh {215 290 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FreqLfo);}
+ code1 {if (pars->VoicePar[nvoice].PFreqLfoEnabled==0) o->deactivate();}
+ class LFOUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFreqLfoEnabled=(int)o->value();
+if (o->value()==0) voicefreqlfogroup->deactivate();
+else voicefreqlfogroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {220 295 55 10} down_box DOWN_BOX labelfont 1 labelsize 12 align 24
+ code0 {o->value(pars->VoicePar[nvoice].PFreqLfoEnabled);}
+ }
+ Fl_Counter {} {
+ label Octave
+ callback {int k=(int) o->value();
+if (k<0) k+=16;
+pars->VoicePar[nvoice].PCoarseDetune = k*1024+
+ pars->VoicePar[nvoice].PCoarseDetune%1024;}
+ tooltip Octave xywh {470 270 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 12
+ code0 {int k=pars->VoicePar[nvoice].PCoarseDetune/1024;}
+ code1 {if (k>=8) k-=16;}
+ code2 {o->value(k);}
+ }
+ Fl_Counter {} {
+ label {Coarse Det.}
+ callback {int k=(int) o->value();
+if (k<0) k+=1024;
+pars->VoicePar[nvoice].PCoarseDetune = k+
+ (pars->VoicePar[nvoice].PCoarseDetune/1024)*1024;}
+ tooltip {Coarse Detune} xywh {455 340 60 20} labelsize 11 align 1 minimum -64 maximum 63 step 1 textfont 1 textsize 12
+ code0 {int k=pars->VoicePar[nvoice].PCoarseDetune%1024;}
+ code1 {if (k>=512) k-=1024;}
+ code2 {o->value(k);}
+ code3 {o->lstep(10);}
+ }
+ Fl_Slider {} {
+ callback {pars->VoicePar[nvoice].PDetune=(int)o->value()+8192;
+detunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {58 272 392 13} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PDetune-8192);}
+ }
+ Fl_Value_Output detunevalueoutput {
+ label Detune
+ callback {o->value(getdetune((pars->VoicePar[nvoice].PDetuneType==0)?(pars->GlobalPar.PDetuneType) : (pars->VoicePar[nvoice].PDetuneType),0,pars->VoicePar[nvoice].PDetune)*pars->getBandwidthDetuneMultiplier());}
+ xywh {10 272 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
+ code0 {o->value(getdetune((pars->VoicePar[nvoice].PDetuneType==0)?(pars->GlobalPar.PDetuneType) : (pars->VoicePar[nvoice].PDetuneType),0,pars->VoicePar[nvoice].PDetune)*pars->getBandwidthDetuneMultiplier());}
+ }
+ Fl_Check_Button {} {
+ label 440Hz
+ callback {int x=(int) o->value();
+pars->VoicePar[nvoice].Pfixedfreq=x;
+if (x==0) fixedfreqetdial->deactivate();
+ else fixedfreqetdial->activate();}
+ tooltip {Set the voice base frequency to 440Hz} xywh {345 253 55 15} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(pars->VoicePar[nvoice].Pfixedfreq);}
+ }
+ Fl_Dial fixedfreqetdial {
+ label {Eq.T.}
+ callback {pars->VoicePar[nvoice].PfixedfreqET=(int) o->value();}
+ tooltip {How the frequency varies acording to the keyboard (leftmost for fixed frequency)} xywh {405 255 15 15} box ROUND_UP_BOX labelsize 10 align 8 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PfixedfreqET);}
+ code1 {if (pars->VoicePar[nvoice].Pfixedfreq==0) o->deactivate();}
+ class WidgetPDial
+ }
+ Fl_Choice {} {
+ label {Detune Type}
+ callback {pars->VoicePar[nvoice].PDetuneType=(int) o->value();
+detunevalueoutput->do_callback();} open
+ xywh {450 305 75 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("Default");o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
+ code1 {o->value(pars->VoicePar[nvoice].PDetuneType);}
+ } {}
+ }
+ Fl_Group voiceoscil {
+ xywh {80 375 445 145} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179
+ code0 {osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {int nv=nvoice; if (pars->VoicePar[nvoice].Pextoscil>=0) nv=pars->VoicePar[nvoice].Pextoscil;}
+ code2 {osc->init(pars->VoicePar[nv].OscilSmp,0,pars->VoicePar[nvoice].Poscilphase,master);}
+ } {}
+ Fl_Button changevoiceoscilbutton {
+ label Change
+ callback {if (oscedit!=NULL) delete(oscedit);
+
+int nv=nvoice;
+if (pars->VoicePar[nvoice].Pextoscil>=0) nv=pars->VoicePar[nvoice].Pextoscil;
+
+oscedit=new OscilEditor(pars->VoicePar[nv].OscilSmp,voiceoscil,NULL,NULL,master);}
+ xywh {5 475 65 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ code0 {if (pars->VoicePar[nvoice].Pextoscil>=0) o->labelcolor(FL_BLUE);}
+ }
+ Fl_Box {} {
+ label {Voice Oscillator}
+ xywh {5 375 75 35} labelfont 1 align 128
+ }
+ Fl_Slider {} {
+ label Phase
+ callback {pars->VoicePar[nvoice].Poscilphase=64-(int)o->value();
+osc->phase=64-(int) o->value();
+voiceoscil->redraw();}
+ xywh {10 420 65 10} type {Horz Knob} box FLAT_BOX labelsize 10 align 5 minimum -64 maximum 63 step 1
+ code0 {o->value(64-pars->VoicePar[nvoice].Poscilphase);}
+ }
+ Fl_Check_Button {} {
+ label {R.}
+ callback {pars->VoicePar[nvoice].Presonance=(int) o->value();}
+ tooltip {Resonance On/Off} xywh {210 5 35 35} box THIN_UP_BOX down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(pars->VoicePar[nvoice].Presonance);}
+ }
+ Fl_Choice {} {
+ label {Use Oscil.}
+ callback {pars->VoicePar[nvoice].Pextoscil=(int)o->value()-1;
+if ((int) o->value() != 0) {
+ osc->init(pars->VoicePar[(int) o->value()-1].OscilSmp,master);
+ changevoiceoscilbutton->labelcolor(FL_BLUE);
+} else {
+ osc->init(pars->VoicePar[nvoice].OscilSmp,master);
+ changevoiceoscilbutton->labelcolor(FL_BLACK);
+};
+
+voiceparametersgroup->redraw();
+voiceonbutton->redraw();} open
+ xywh {5 455 65 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("Internal");}
+ code1 {char tmp[50]; for (int i=0;i<nvoice;i++) {sprintf(tmp,"Ext.%2d",i+1);o->add(tmp);};}
+ code3 {o->value(pars->VoicePar[nvoice].Pextoscil+1);}
+ } {}
+ }
+ Fl_Group {} {
+ label AMPLITUDE
+ xywh {5 40 240 210} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Value_Slider {} {
+ label Vol
+ callback {pars->VoicePar[nvoice].PVolume=(int)o->value();}
+ tooltip Volume xywh {10 60 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PVolume);}
+ }
+ Fl_Value_Slider {} {
+ label {V.Sns}
+ callback {pars->VoicePar[nvoice].PAmpVelocityScaleFunction=(int) o->value();}
+ tooltip {Velocity Sensing Function (rightmost to disable)} xywh {10 80 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PAmpVelocityScaleFunction);}
+ }
+ Fl_Group voiceampenvgroup {
+ label {ADSynth Voice - Amplitude Envelope} open
+ xywh {10 105 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->VoicePar[nvoice].AmpEnvelope);}
+ code1 {if (pars->VoicePar[nvoice].PAmpEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Dial {} {
+ label Pan
+ callback {pars->VoicePar[nvoice].PPanning=(int) o->value();}
+ tooltip {Panning (leftmost is Random)} xywh {210 60 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PPanning);}
+ class WidgetPDial
+ }
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PAmpEnvelopeEnabled=(int)o->value();
+if (o->value()==0) voiceampenvgroup->deactivate();
+else voiceampenvgroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {15 110 50 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PAmpEnvelopeEnabled);}
+ }
+ Fl_Group voiceamplfogroup {
+ label {Amplitude LFO } open
+ xywh {10 175 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->VoicePar[nvoice].AmpLfo);}
+ code1 {if (pars->VoicePar[nvoice].PAmpLfoEnabled==0) o->deactivate();}
+ class LFOUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PAmpLfoEnabled=(int)o->value();
+if (o->value()==0) voiceamplfogroup->deactivate();
+else voiceamplfogroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {15 180 55 10} down_box DOWN_BOX labelfont 1 labelsize 12 align 24
+ code0 {o->value(pars->VoicePar[nvoice].PAmpLfoEnabled);}
+ }
+ Fl_Check_Button {} {
+ label Minus
+ callback {pars->VoicePar[nvoice].PVolumeminus=(int)o->value();}
+ xywh {10 45 50 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PVolumeminus);}
+ }
+ }
+ Fl_Group voicefiltergroup {
+ label FILTER
+ xywh {245 5 285 245} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ code0 {if (pars->VoicePar[nvoice].PFilterEnabled==0) o->deactivate();}
+ } {
+ Fl_Group {} {
+ label {ADsynth Voice - Filter} open
+ xywh {250 30 275 75} box FLAT_BOX color 50 align 144
+ code0 {o->init(pars->VoicePar[nvoice].VoiceFilter,NULL,NULL);}
+ class FilterUI
+ } {}
+ Fl_Group voicefilterenvgroup {
+ label {ADSynth Voice - Filter Envelope} open
+ xywh {250 105 275 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FilterEnvelope);}
+ code1 {if (pars->VoicePar[nvoice].PFilterEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFilterEnvelopeEnabled=(int)o->value();
+if (o->value()==0) voicefilterenvgroup->deactivate();
+else voicefilterenvgroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {255 110 55 10} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->VoicePar[nvoice].PFilterEnvelopeEnabled);}
+ }
+ Fl_Group voicefilterlfogroup {
+ label {Filter LFO } open
+ xywh {250 175 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->VoicePar[nvoice].FilterLfo);}
+ code1 {if (pars->VoicePar[nvoice].PFilterLfoEnabled==0) o->deactivate();}
+ class LFOUI
+ } {}
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFilterLfoEnabled=(int)o->value();
+if (o->value()==0) voicefilterlfogroup->deactivate();
+else voicefilterlfogroup->activate();
+o->redraw();}
+ tooltip {Forced Relase} xywh {255 180 55 10} down_box DOWN_BOX labelfont 1 labelsize 12 align 24
+ code0 {o->value(pars->VoicePar[nvoice].PFilterLfoEnabled);}
+ }
+ }
+ Fl_Group {} {
+ label 01
+ xywh {5 5 55 35} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 30 align 16
+ code0 {char tmp[10];snprintf(tmp,10,"%d",nvoice+1);o->label(strdup(tmp));}
+ } {}
+ Fl_Choice {} {
+ callback {int x=(int) o->value();
+pars->VoicePar[nvoice].Type=x;
+if (x==0) voicemodegroup->activate();
+ else voicemodegroup->deactivate();
+noiselabel->do_callback();}
+ tooltip {Oscillator Type (sound/noise)} xywh {5 500 65 20} down_box BORDER_BOX labelsize 11 textfont 1 textsize 11
+ code0 {o->value(pars->VoicePar[nvoice].Type);}
+ code1 {if (pars->VoicePar[nvoice].Type!=0) voicemodegroup->deactivate();}
+ } {
+ menuitem {} {
+ label Sound
+ xywh {5 5 100 20} labelfont 1 labelsize 13
+ }
+ menuitem {} {
+ label NOISE
+ xywh {15 15 100 20} labelfont 1 labelsize 13 labelcolor 1
+ }
+ }
+ Fl_Check_Button bypassfiltercheckbutton {
+ label {Bypass Global F.}
+ callback {pars->VoicePar[nvoice].Pfilterbypass=(int)o->value();}
+ xywh {425 10 100 20} down_box DOWN_BOX labelfont 1 labelsize 10 align 148
+ code0 {o->value(pars->VoicePar[nvoice].Pfilterbypass);}
+ }
+ Fl_Group {} {
+ xywh {115 5 95 35} box THIN_UP_BOX
+ } {
+ Fl_Value_Slider {} {
+ label Delay
+ callback {pars->VoicePar[nvoice].PDelay=(int)o->value();}
+ tooltip Volume xywh {120 21 84 12} type {Horz Knob} box FLAT_BOX labelsize 12 align 5 maximum 127 step 1
+ code0 {o->value(pars->VoicePar[nvoice].PDelay);}
+ }
+ }
+ Fl_Check_Button {} {
+ label Enable
+ callback {pars->VoicePar[nvoice].PFilterEnabled=(int)o->value();
+if (o->value()==0) voicefiltergroup->deactivate();
+else voicefiltergroup->activate();
+o->redraw();
+bypassfiltercheckbutton->redraw();}
+ tooltip {Enable Filter} xywh {250 15 60 15} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(pars->VoicePar[nvoice].PFilterEnabled);}
+ }
+ Fl_Box noiselabel {
+ label {White Noise}
+ callback {if (pars->VoicePar[nvoice].Type==0) o->hide(); else o->show();}
+ xywh {150 415 300 65} labelfont 1 labelsize 50 labelcolor 7
+ code0 {if (pars->VoicePar[nvoice].Type==0) o->hide(); else o->show();}
+ }
+ }
+ Fl_Check_Button voiceonbutton {
+ label On
+ callback {pars->VoicePar[nvoice].Enabled=(int)o->value();
+if (o->value()==0) voiceparametersgroup->deactivate();
+else voiceparametersgroup->activate();
+o->redraw();}
+ xywh {60 5 55 35} box THIN_UP_BOX down_box DOWN_BOX labelfont 1 labelsize 16
+ code0 {o->value(pars->VoicePar[nvoice].Enabled);}
+ }
+ }
+ }
+ Function {ADvoiceUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {nvoice=0;
+pars=NULL;
+oscedit=NULL;} {}
+ }
+ Function {init(ADnoteParameters *parameters,int nvoice_,Master *master_)} {} {
+ code {pars=parameters;
+nvoice=nvoice_;
+master=master_;
+make_window();
+end();
+ADnoteVoiceParameters->show();} {}
+ }
+ Function {~ADvoiceUI()} {} {
+ code {ADnoteVoiceParameters->hide();
+hide();
+if (oscedit!=NULL) {
+ delete(oscedit);
+};
+//delete (ADnoteVoiceParameters);} {}
+ }
+ decl {int nvoice;} {}
+ decl {ADnoteParameters *pars;} {}
+ decl {OscilEditor *oscedit;} {}
+ decl {Oscilloscope *osc;} {}
+ decl {Oscilloscope *oscFM;} {}
+ decl {Master *master;} {}
+}
+
+class ADnoteUI {: {public PresetsUI_}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window ADnoteGlobalParameters {
+ label {ADsynth Global Parameters of the Instrument}
+ xywh {66 187 535 405} type Double hide
+ } {
+ Fl_Group {} {
+ label FREQUENCY
+ xywh {5 255 525 115} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group freqenv {
+ label {ADSynth Global - Frequency Envelope} open
+ xywh {10 295 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->GlobalPar.FreqEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Counter octave {
+ label Octave
+ callback {int k=(int) o->value();
+if (k<0) k+=16;
+pars->GlobalPar.PCoarseDetune = k*1024+
+ pars->GlobalPar.PCoarseDetune%1024;}
+ tooltip Octave xywh {450 275 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 12
+ code0 {int k=pars->GlobalPar.PCoarseDetune/1024;if (k>=8) k-=16;}
+ code2 {o->value(k);}
+ }
+ Fl_Counter coarsedet {
+ label {Coarse det.}
+ callback {int k=(int) o->value();
+if (k<0) k+=1024;
+pars->GlobalPar.PCoarseDetune = k+
+ (pars->GlobalPar.PCoarseDetune/1024)*1024;}
+ tooltip {Coarse Detune} xywh {455 345 60 20} labelsize 10 align 5 minimum -64 maximum 63 step 1 textfont 1 textsize 12
+ code0 {int k=pars->GlobalPar.PCoarseDetune%1024;if (k>=512) k-=1024;}
+ code2 {o->value(k);}
+ code3 {o->lstep(10);}
+ }
+ Fl_Group freqlfo {
+ label {Frequency LFO } open
+ xywh {215 295 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->GlobalPar.FreqLfo);}
+ class LFOUI
+ } {}
+ Fl_Slider freq {
+ callback {pars->GlobalPar.PDetune=(int)o->value()+8192;
+detunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {60 275 385 15} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->GlobalPar.PDetune-8192);}
+ }
+ Fl_Value_Output detunevalueoutput {
+ label Detune
+ callback {o->value(getdetune(pars->GlobalPar.PDetuneType,0,pars->GlobalPar.PDetune));}
+ xywh {12 275 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
+ code0 {o->value(getdetune(pars->GlobalPar.PDetuneType,0,pars->GlobalPar.PDetune));}
+ }
+ Fl_Choice detunetype {
+ label {Detune Type}
+ callback {pars->GlobalPar.PDetuneType=(int) o->value()+1;
+detunevalueoutput->do_callback();} open
+ xywh {450 315 75 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
+ code1 {o->value(pars->GlobalPar.PDetuneType-1);}
+ } {}
+ Fl_Dial {} {
+ label relBW
+ callback {pars->GlobalPar.PBandwidth=(int) o->value();
+
+pars->getBandwidthDetuneMultiplier();
+
+for (int i=0;i<NUM_VOICES;i++){
+ voicelistitem[i]->refreshlist();
+};}
+ tooltip {Bandwidth - how the relative fine detune of the voice are changed} xywh {500 270 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PBandwidth);}
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ label AMPLITUDE
+ xywh {5 5 240 250} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Value_Slider volume {
+ label Vol
+ callback {pars->GlobalPar.PVolume=(int)o->value();}
+ tooltip Volume xywh {10 30 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PVolume);}
+ }
+ Fl_Value_Slider vsns {
+ label {V.Sns}
+ callback {pars->GlobalPar.PAmpVelocityScaleFunction=(int) o->value();}
+ tooltip {Velocity Sensing Function (rightmost to disable)} xywh {10 50 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PAmpVelocityScaleFunction);}
+ }
+ Fl_Dial pan {
+ label Pan
+ callback {pars->GlobalPar.PPanning=(int) o->value();}
+ tooltip {Panning (leftmost is Random)} xywh {210 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PPanning);}
+ class WidgetPDial
+ }
+ Fl_Dial pstr {
+ label {P.Str.}
+ callback {pars->GlobalPar.PPunchStrength=(int) o->value();}
+ tooltip {Punch Strength} xywh {125 227 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PPunchStrength);}
+ class WidgetPDial
+ }
+ Fl_Dial pt {
+ label {P.t.}
+ callback {pars->GlobalPar.PPunchTime=(int) o->value();}
+ tooltip {Punch Time (duration)} xywh {155 227 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PPunchTime);}
+ class WidgetPDial
+ }
+ Fl_Dial pstc {
+ label {P.Stc.}
+ callback {pars->GlobalPar.PPunchStretch=(int) o->value();}
+ tooltip {Punch Stretch} xywh {185 227 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PPunchStretch);}
+ class WidgetPDial
+ }
+ Fl_Dial pvel {
+ label {P.Vel.}
+ callback {pars->GlobalPar.PPunchVelocitySensing=(int) o->value();}
+ tooltip {Punch Velocity Sensing} xywh {215 227 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->GlobalPar.PPunchVelocitySensing);}
+ class WidgetPDial
+ }
+ Fl_Group ampenv {
+ label {ADSynth Global - Amplitude Envelope} open
+ xywh {10 75 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->GlobalPar.AmpEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Group amplfo {
+ label {Amplitude LFO } open
+ xywh {10 145 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->GlobalPar.AmpLfo);}
+ class LFOUI
+ } {}
+ Fl_Check_Button rndgrp {
+ label {Rnd Grp}
+ callback {pars->GlobalPar.Hrandgrouping=(int) o->value();}
+ tooltip {How the Harmonic Amplitude is applied to voices that use the same oscillator} xywh {70 225 40 25} down_box DOWN_BOX labelsize 10 align 148
+ code0 {o->value(pars->GlobalPar.Hrandgrouping);}
+ }
+ }
+ Fl_Group {} {
+ label FILTER
+ xywh {245 5 285 250} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group filterenv {
+ label {ADSynth Global - Filter Envelope} open
+ xywh {250 110 275 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->GlobalPar.FilterEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Group filterlfo {
+ label {Filter LFO} open
+ xywh {250 180 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->GlobalPar.FilterLfo);}
+ class LFOUI
+ } {}
+ Fl_Group filterui {
+ label {ADsynth Global - Filter} open
+ xywh {250 35 275 75} box FLAT_BOX color 50 align 144
+ code0 {o->init(pars->GlobalPar.GlobalFilter,&pars->GlobalPar.PFilterVelocityScale,&pars->GlobalPar.PFilterVelocityScaleFunction);}
+ class FilterUI
+ } {}
+ }
+ Fl_Check_Button stereo {
+ label Stereo
+ callback {pars->GlobalPar.PStereo=(int) o->value();}
+ xywh {5 220 65 35} box ENGRAVED_BOX down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(pars->GlobalPar.PStereo);}
+ }
+ Fl_Button {} {
+ label {Show Voice List}
+ callback {for (int i=0;i<NUM_VOICES;i++){
+ voicelistitem[i]->refreshlist();
+}
+ADnoteVoiceList->show();}
+ xywh {180 375 125 25}
+ }
+ Fl_Button {} {
+ label {Show Voice Parameters}
+ callback {ADnoteVoice->show();}
+ xywh {5 375 170 25} labelfont 1
+ }
+ Fl_Button {} {
+ label Close
+ callback {ADnoteGlobalParameters->hide();}
+ xywh {470 375 60 25} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label Resonance
+ callback {resui->resonancewindow->redraw();
+resui->resonancewindow->show();}
+ tooltip Resonance xywh {309 375 86 25} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars);}
+ xywh {405 380 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this);}
+ xywh {435 380 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ Fl_Window ADnoteVoice {
+ label {ADsynth Voice Parameters}
+ xywh {53 58 765 560} type Double hide
+ } {
+ Fl_Group advoice {
+ xywh {0 0 760 525} box BORDER_BOX
+ code0 {o->init(pars,nvoice,master);}
+ code1 {o->show();}
+ class ADvoiceUI
+ } {}
+ Fl_Button {} {
+ label {Close Window}
+ callback {ADnoteVoice->hide();}
+ xywh {300 530 195 25} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Counter currentvoicecounter {
+ label {Current Voice}
+ callback {nvoice=(int)o->value()-1;
+advoice->hide();
+ADnoteVoice->remove(advoice);
+delete advoice;
+advoice=new ADvoiceUI(0,0,765,525);
+ADnoteVoice->add(advoice);
+advoice->init(pars,nvoice,master);
+advoice->show();
+ADnoteVoice->redraw();}
+ xywh {5 530 130 25} type Simple labelfont 1 align 8 minimum 0 maximum 2 step 1 value 1 textfont 1 textsize 18
+ code0 {o->bounds(1,NUM_VOICES);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars,nvoice);}
+ xywh {700 535 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this,nvoice);}
+ xywh {730 535 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ Fl_Window ADnoteVoiceList {
+ label {ADsynth Voices list}
+ xywh {32 266 650 260} type Double hide
+ } {
+ Fl_Text_Display {} {
+ label {No.}
+ xywh {10 15 30 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Text_Display {} {
+ label Vol
+ xywh {145 15 30 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Text_Display {} {
+ label Detune
+ xywh {384 15 25 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Text_Display {} {
+ label Pan
+ xywh {210 15 30 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Text_Display {} {
+ label {Vib. Depth}
+ xywh {560 15 30 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Text_Display {} {
+ label {R.}
+ xywh {245 15 25 10} box NO_BOX labelfont 1 labelsize 13
+ }
+ Fl_Button {} {
+ label {Hide Voice List}
+ callback {ADnoteVoiceList->hide();}
+ xywh {255 237 125 20}
+ }
+ Fl_Scroll {} {open
+ xywh {0 15 640 220} type VERTICAL box THIN_UP_BOX
+ } {
+ Fl_Pack {} {open
+ xywh {0 20 620 210}
+ code0 {for (int i=0;i<NUM_VOICES;i++){voicelistitem[i]=new ADvoicelistitem(0,0,620,25,"");voicelistitem[i]->init(pars,i,master);}}
+ } {}
+ }
+ }
+ }
+ Function {ADnoteUI(ADnoteParameters *parameters,Master *master_)} {} {
+ code {pars=parameters;
+master=master_;
+nvoice=0;
+resui=new ResonanceUI(pars->GlobalPar.Reson);
+make_window();} {}
+ }
+ Function {~ADnoteUI()} {} {
+ code {ADnoteVoiceList->hide();
+ADnoteGlobalParameters->hide();
+ADnoteVoice->hide();
+delete(ADnoteVoiceList);
+delete(ADnoteGlobalParameters);
+delete(ADnoteVoice);
+delete(resui);} {}
+ }
+ Function {refresh()} {} {
+ code {volume->value(pars->GlobalPar.PVolume);
+vsns->value(pars->GlobalPar.PAmpVelocityScaleFunction);
+pan->value(pars->GlobalPar.PPanning);
+
+stereo->value(pars->GlobalPar.PStereo);
+rndgrp->value(pars->GlobalPar.Hrandgrouping);
+
+pstr->value(pars->GlobalPar.PPunchStrength);
+pt->value(pars->GlobalPar.PPunchTime);
+pstc->value(pars->GlobalPar.PPunchStretch);
+pvel->value(pars->GlobalPar.PPunchVelocitySensing);
+
+detunevalueoutput->value(getdetune(pars->GlobalPar.PDetuneType,0,pars->GlobalPar.PDetune));
+freq->value(pars->GlobalPar.PDetune-8192);
+
+int k=pars->GlobalPar.PCoarseDetune/1024;if (k>=8) k-=16;
+octave->value(k);
+
+detunetype->value(pars->GlobalPar.PDetuneType-1);
+k=pars->GlobalPar.PCoarseDetune%1024;if (k>=512) k-=1024;
+coarsedet->value(k);
+amplfo->refresh();
+freqlfo->refresh();
+filterlfo->refresh();
+
+ampenv->refresh();
+freqenv->refresh();
+filterenv->refresh();
+filterui->refresh();
+
+for (int i=0;i<NUM_VOICES;i++) voicelistitem[i]->refreshlist();
+
+resui->refresh();
+currentvoicecounter->do_callback();} {}
+ }
+ decl {ADnoteParameters *pars;} {}
+ decl {ResonanceUI *resui;} {}
+ decl {Master *master;} {}
+ decl {int nvoice;} {}
+ decl {ADvoicelistitem *voicelistitem[NUM_VOICES];} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/BankUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/BankUI.fl
new file mode 100644
index 00000000..cf1cfe9e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/BankUI.fl
@@ -0,0 +1,352 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0104
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include <FL/Fl_Button.H>} {public
+}
+
+decl {\#include <FL/Fl_File_Chooser.H>} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "../Misc/Bank.h"} {public
+}
+
+decl {\#include "../Misc/Config.h"} {public
+}
+
+class BankProcess_ {} {
+ Function {process()} {open return_type {virtual void}
+ } {}
+ decl {Bank *bank;} {public
+ }
+}
+
+class BankSlot {: {public Fl_Button,BankProcess_}
+} {
+ Function {BankSlot(int x,int y, int w, int h, const char *label=0):Fl_Button(x,y,w,h,label)} {} {
+ code {what=NULL;
+whatslot=NULL;
+nslot=0;
+nselected=NULL;} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {if (what==NULL) return(0);
+if (Fl::event_inside(this)){
+ *what=0;*whatslot=nslot;
+ if ((event==FL_RELEASE)&&(Fl::event_button()==1))*what=1;
+ if ((event==FL_RELEASE)&&(Fl::event_button()==3))*what=2;
+ if (event==FL_PUSH) highlight=1;
+}else highlight=0;
+
+int tmp=Fl_Button::handle(event);
+if ((*what!=0) && Fl::event_inside(this)) (bp->*fnc)();
+return(tmp);} {}
+ }
+ Function {init(int nslot_, int *what_, int *whatslot_,void (BankProcess_:: *fnc_)(void),BankProcess_ *bp_,Bank *bank_,int *nselected_)} {} {
+ code {nslot=nslot_;
+what=what_;
+whatslot=whatslot_;
+fnc=fnc_;
+bp=bp_;
+bank=bank_;
+nselected=nselected_;
+box(FL_THIN_UP_BOX);
+align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP);
+
+highlight=0;
+refresh();} {}
+ }
+ Function {refresh()} {} {
+ code {if (bank->emptyslot(nslot)) {
+ color(46);
+} else {
+ if (bank->isPADsynth_used(nslot)) color(26);
+ else color(51);
+};
+
+if (*nselected==nslot) color(6);
+
+
+label(bank->getnamenumbered(nslot));} {}
+ }
+ decl {int *what,*whatslot,nslot,highlight, *nselected;} {}
+ decl {void (BankProcess_:: *fnc)(void);} {}
+ decl {BankProcess_ *bp;} {}
+}
+
+class BankUI {: {public BankProcess_}
+} {
+ Function {make_window()} {} {
+ Fl_Window bankuiwindow {
+ label Bank
+ xywh {4 64 785 575} type Double hide
+ code0 {o->label(bank->bankfiletitle);}
+ code1 {if (bank->bankfiletitle==NULL) o->label ("Choose a bank from the bank list on the left (or go to settings if to configure the bank location) or choose 'New Bank...' to make a new bank.");}
+ } {
+ Fl_Button {} {
+ label Close
+ callback {bankuiwindow->hide();}
+ xywh {705 546 70 24} box THIN_UP_BOX
+ }
+ Fl_Group {} {
+ xywh {5 34 772 491} box ENGRAVED_FRAME
+ } {
+ Fl_Pack {} {
+ xywh {10 39 150 481} box BORDER_BOX
+ code0 {o->box(FL_NO_BOX);}
+ code1 {for (int i=0;i<32;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
+ } {}
+ Fl_Pack {} {
+ xywh {163 39 150 481} box BORDER_BOX
+ code0 {o->box(FL_NO_BOX);}
+ code1 {for (int i=32;i<64;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
+ } {}
+ Fl_Pack {} {
+ xywh {316 39 150 481} box BORDER_BOX
+ code0 {o->box(FL_NO_BOX);}
+ code1 {for (int i=64;i<96;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
+ } {}
+ Fl_Pack {} {
+ xywh {469 39 150 481} box BORDER_BOX
+ code0 {o->box(FL_NO_BOX);}
+ code1 {for (int i=96;i<128;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
+ } {}
+ Fl_Pack {} {
+ xywh {622 39 150 481} box BORDER_BOX
+ code0 {o->box(FL_NO_BOX);}
+ code1 {for (int i=128;i<160;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
+ } {}
+ }
+ Fl_Group modeselect {
+ xywh {5 528 425 42} box ENGRAVED_BOX
+ } {
+ Fl_Light_Button writebutton {
+ label WRITE
+ callback {if (o->value()>0.5) mode=2;
+removeselection();}
+ xywh {116 534 99 30} type Radio box PLASTIC_UP_BOX down_box THIN_DOWN_BOX selection_color 1 labeltype ENGRAVED_LABEL labelfont 1 labelsize 18
+ code0 {if (bank->locked()) o->deactivate();}
+ }
+ Fl_Light_Button readbutton {
+ label READ
+ callback {if (o->value()>0.5) mode=1;
+removeselection();}
+ xywh {11 534 99 30} type Radio box PLASTIC_UP_BOX down_box THIN_DOWN_BOX selection_color 101 labeltype ENGRAVED_LABEL labelfont 1 labelsize 18
+ code0 {o->value(1);}
+ }
+ Fl_Light_Button clearbutton {
+ label CLEAR
+ callback {if (o->value()>0.5) mode=3;
+removeselection();}
+ xywh {221 534 99 30} type Radio box PLASTIC_UP_BOX down_box THIN_DOWN_BOX selection_color 0 labeltype ENGRAVED_LABEL labelfont 1 labelsize 18
+ code0 {if (bank->locked()) o->deactivate();}
+ }
+ Fl_Light_Button swapbutton {
+ label SWAP
+ callback {if (o->value()>0.5) mode=4;
+removeselection();}
+ xywh {325 534 99 30} type Radio box PLASTIC_UP_BOX down_box THIN_DOWN_BOX selection_color 227 labeltype ENGRAVED_LABEL labelfont 1 labelsize 18
+ code0 {if (bank->locked()) o->deactivate();}
+ }
+ }
+ Fl_Button {} {
+ label {New Bank...}
+ callback {const char *dirname;
+
+dirname=fl_input("New empty Bank:");
+if (dirname==NULL) return;
+
+
+int result=bank->newbank(dirname);
+
+if (result!=0) fl_alert("Error: Could not make a new bank (directory)..");
+
+refreshmainwindow();}
+ xywh {685 5 93 25} box PLASTIC_UP_BOX labelfont 1 labelsize 12 align 128
+ }
+ Fl_Check_Button {} {
+ label {auto close}
+ callback {config.cfg.BankUIAutoClose=(int) o->value();}
+ tooltip {automatically close the bank window if the instrument is loaded} xywh {705 529 60 15} down_box DOWN_BOX labelsize 10
+ code0 {o->value(config.cfg.BankUIAutoClose);}
+ }
+ Fl_Choice banklist {
+ callback {int n=o->value();
+char *dirname=bank->banks[n].dir;
+if (dirname==NULL) return;
+
+if (bank->loadbank(dirname)==2)
+ fl_alert("Error: Could not load the bank from the directory\\n%s.",dirname);
+for (int i=0;i<BANK_SIZE;i++) bs[i]->refresh();
+refreshmainwindow();} open
+ xywh {5 8 220 20} down_box BORDER_BOX labelfont 1 align 0 textfont 1 textsize 12
+ } {}
+ Fl_Button {} {
+ label {Refresh bank list}
+ callback {rescan_for_banks();
+banklist->value(0);}
+ tooltip {Refresh the bank list (rescan)} xywh {230 8 105 20} box THIN_UP_BOX color 50 labelsize 12
+ }
+ Fl_Check_Button {} {
+ label {Show PADsynth status}
+ callback {config.cfg.CheckPADsynth=(int) o->value();
+refreshmainwindow();}
+ xywh {435 530 150 15} down_box DOWN_BOX labelsize 12
+ code0 {o->value(config.cfg.CheckPADsynth);}
+ }
+ }
+ }
+ Function {BankUI(Master *master_,int *npart_)} {} {
+ code {fnc=&BankProcess_::process;
+master=master_;
+npart=npart_;
+bank=&master_->bank;
+what=0;
+nselected=-1;
+make_window();
+mode=1;} {}
+ }
+ Function {~BankUI()} {return_type virtual
+ } {
+ code {bankuiwindow->hide();
+delete(bankuiwindow);} {}
+ }
+ Function {show()} {} {
+ code {bankuiwindow->show();
+simplesetmode(config.cfg.UserInterfaceMode==2);} {}
+ }
+ Function {hide()} {} {
+ code {bankuiwindow->hide();} {}
+ }
+ Function {init(Fl_Valuator *cbwig_)} {} {
+ code {cbwig=cbwig_;
+rescan_for_banks();} {}
+ }
+ Function {process()} {return_type void
+ } {
+ code {int slot=this->slot;
+
+if ((what==2)&&(bank->emptyslot(slot)==0)&&(mode!=4)) {//Rename slot
+ const char *tmp=fl_input("Slot (instrument) name:",(const char *)bank->getname(slot));
+ if (tmp!=NULL) bank->setname(slot,tmp,-1);
+ bs[slot]->refresh();
+};
+
+if ((what==1)&&(mode==1)&&(!bank->emptyslot(slot))){//Reads from slot
+ master->busy=true;
+ bank->loadfromslot(slot,master->part[*npart]);
+ master->busy=false;
+ master->part[*npart]->applyparameters();
+ snprintf((char *)master->part[*npart]->Pname,PART_MAX_NAME_LEN,"%s",bank->getname(slot));
+ cbwig->do_callback();
+
+ if (config.cfg.BankUIAutoClose!=0)
+ bankuiwindow->hide();
+
+};
+
+if ((what==1)&&(mode==2)){//save(write) to slot
+ if (!bank->emptyslot(slot)){
+ if (!fl_ask("Overwrite the slot no. %d ?",slot+1)) goto nooverwriteslot;
+ };
+ master->busy=true;
+ bank->savetoslot(slot,master->part[*npart]);
+ master->busy=false;
+
+ bs[slot]->refresh();
+ mode=1;readbutton->value(1);writebutton->value(0);
+ nooverwriteslot:;
+};
+
+
+
+if ((what==1)&&(mode==3)&&(!bank->emptyslot(slot))){//Clears the slot
+ if (fl_ask("Clear the slot no. %d ?",slot+1)){
+ bank->clearslot(slot);
+ bs[slot]->refresh();
+ };
+};
+
+if (mode==4){//swap
+ bool done=false;
+ if ((what==1)&&(nselected>=0)){
+ bank->swapslot(nselected,slot);
+ int ns=nselected;
+ nselected=-1;
+ bs[slot]->refresh();
+ bs[ns]->refresh();
+ done=true;
+ };
+ if (((nselected<0)||(what==2))&&(!done)){
+ int ns=nselected;
+ nselected=slot;
+ if (ns>0) bs[ns]->refresh();
+ bs[slot]->refresh();
+ };
+};
+if (mode!=4) refreshmainwindow();} {selected
+ }
+ }
+ Function {refreshmainwindow()} {} {
+ code {bankuiwindow->label(bank->bankfiletitle);
+mode=1;readbutton->value(1);writebutton->value(0);clearbutton->value(0);swapbutton->value(0);
+nselected=-1;
+if (bank->locked()){
+ writebutton->deactivate();
+ clearbutton->deactivate();
+ swapbutton->deactivate();
+} else {
+ writebutton->activate();
+ clearbutton->activate();
+ swapbutton->activate();
+};
+for (int i=0;i<BANK_SIZE;i++) bs[i]->refresh();} {}
+ }
+ Function {removeselection()} {} {
+ code {if (nselected>=0) {
+ int ns=nselected;
+ nselected=-1;
+ bs[ns]->refresh();
+};} {}
+ }
+ Function {rescan_for_banks()} {} {
+ code {banklist->clear();
+banklist->add(" ");
+bank->rescanforbanks();
+
+for (int i=1;i<MAX_NUM_BANKS;i++) {
+ if (bank->banks[i].name!=NULL) banklist->add(bank->banks[i].name);
+};} {}
+ }
+ Function {simplesetmode(bool beginnerui)} {} {
+ code {readbutton->value(1);
+mode=1;
+removeselection();
+if (beginnerui) modeselect->hide();
+ else modeselect->show();} {}
+ }
+ decl {BankSlot *bs[BANK_SIZE];} {}
+ decl {int slot,what;//"what"=what button is pressed} {}
+ decl {int mode,*npart,nselected;} {}
+ decl {Master *master;} {}
+ decl {void (BankProcess_::* fnc)(void);} {}
+ decl {Fl_Valuator *cbwig;} {public
+ }
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/CMakeLists.txt b/muse_qt4_evolution/synti/zynaddsubfx/UI/CMakeLists.txt
new file mode 100644
index 00000000..9b385ff9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/CMakeLists.txt
@@ -0,0 +1,54 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id:$
+#
+# Copyright (C) 2006-2008 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=============================================================================
+
+
+FLTK_WRAP_UI (
+ FLTKUI
+ ADnoteUI.fl
+ BankUI.fl
+ ConfigUI.fl
+ EffUI.fl
+ EnvelopeUI.fl
+ FilterUI.fl
+ LFOUI.fl
+ MasterUI.fl
+ MicrotonalUI.fl
+ OscilGenUI.fl
+ PADnoteUI.fl
+ PartUI.fl
+ PresetsUI.fl
+ ResonanceUI.fl
+ SUBnoteUI.fl
+ SeqUI.fl
+ VirKeyboard.fl
+ WidgetPDial.fl
+ )
+
+add_library (
+ zyngui STATIC
+ ${FLTKUI_FLTK_UI_SRCS}
+ )
+
+set_target_properties ( zyngui
+ PROPERTIES
+ COMPILE_FLAGS "-O3 -fPIC -fvisibility=hidden -DASM_F2I_YES -DOS_LINUX -DFFTW_VERSION_3"
+ )
+
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/ConfigUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/ConfigUI.fl
new file mode 100644
index 00000000..c130259e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/ConfigUI.fl
@@ -0,0 +1,443 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <math.h>} {public
+}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <FL/Fl_File_Chooser.H>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Misc/Dump.h"} {public
+}
+
+decl {extern Dump dump;} {public
+}
+
+class ConfigUI {} {
+ Function {make_window()} {} {
+ Fl_Window configwindow {
+ label {ZynAddSubFX Settings}
+ callback {writebankcfg();
+o->hide();}
+ xywh {88 313 510 340} type Double hide
+ } {
+ Fl_Tabs {} {
+ xywh {5 5 500 305}
+ } {
+ Fl_Group {} {
+ label {Main settings}
+ xywh {5 25 500 285}
+ } {
+ Fl_Group {} {
+ label {Sample Rate}
+ xywh {15 45 165 30} box ENGRAVED_FRAME
+ } {
+ Fl_Choice {} {
+ callback {if ((int)o->value()==0) samplerateinput->activate();
+ else samplerateinput->deactivate();
+
+int samplerates[8]={44100,16000,22050,32000,44100,48000,88200,96000};
+config.cfg.SampleRate=samplerates[(int)o->value()];
+
+setsamplerateinput();}
+ xywh {20 50 85 20} down_box BORDER_BOX textsize 10
+ code0 {o->value(getsamplerateorder());}
+ } {
+ menuitem {} {
+ label Custom
+ xywh {10 10 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 16000Hz
+ xywh {30 30 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 22050Hz
+ xywh {20 20 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 32000Hz
+ xywh {30 30 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 44100Hz
+ xywh {40 40 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 48000Hz
+ xywh {50 50 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 88200Hz
+ xywh {60 60 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 96000Hz
+ xywh {70 70 100 20} labelfont 1
+ }
+ }
+ Fl_Input samplerateinput {
+ callback {char *tmp;
+config.cfg.SampleRate=strtoul(o->value(),&tmp,10);}
+ xywh {115 50 60 20} type Int textfont 1
+ code0 {setsamplerateinput();}
+ code1 {if (getsamplerateorder()!=0) o->deactivate();}
+ }
+ }
+ Fl_Input {} {
+ label {Buffer Size}
+ callback {char *tmp;
+config.cfg.SoundBufferSize=strtoul(o->value(),&tmp,10);}
+ tooltip {Internal Sound Buffer Size (samples)} xywh {190 45 60 20} type Int labelsize 12 align 129 textfont 1
+ code0 {char *tmpbuf=new char[100];o->cut(0,o->maximum_size());}
+ code1 {snprintf(tmpbuf,100,"%d",config.cfg.SoundBufferSize);o->insert(tmpbuf);}
+ code2 {delete(tmpbuf);}
+ }
+ Fl_Light_Button {} {
+ label {Swap Stereo }
+ callback {config.cfg.SwapStereo=(int) o->value();}
+ xywh {20 80 85 20} box THIN_UP_BOX labelsize 11
+ code0 {o->value(config.cfg.SwapStereo);}
+ }
+ Fl_Choice {} {
+ label OscilSize
+ callback {config.cfg.OscilSize=128<<o->value();}
+ tooltip {ADSynth Oscillator Size (samples)} xywh {175 80 75 20} down_box BORDER_BOX labelfont 1 labelsize 12 textsize 10
+ code0 {o->value( (int) (log(config.cfg.OscilSize/128.0-1.0)/log(2)) +1);}
+ } {
+ menuitem {} {
+ label 128
+ xywh {25 25 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 256
+ xywh {35 35 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 512
+ xywh {45 45 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 1024
+ xywh {45 45 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 2048
+ xywh {55 55 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 4096
+ xywh {55 55 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 8192
+ xywh {65 65 100 20} labelfont 1
+ }
+ menuitem {} {
+ label 16384
+ xywh {75 75 100 20} labelfont 1
+ }
+ }
+ Fl_Box {} {
+ label {Most settings has effect only after ZynAddSubFX is restarted.}
+ xywh {15 275 235 30} labelfont 1 labelsize 12 align 128
+ }
+ Fl_Box {} {
+ label {Read the Readme.txt for other settings}
+ xywh {10 255 240 20} labelfont 1 labelsize 12 align 128
+ }
+ Fl_Group {} {
+ xywh {15 125 230 85} box ENGRAVED_BOX
+ } {
+ Fl_File_Input {} {
+ label {Dump File}
+ callback {snprintf(config.cfg.DumpFile,config.maxstringsize,"%s",o->value());}
+ xywh {20 170 220 35} align 5
+ code0 {o->insert(config.cfg.DumpFile);}
+ }
+ Fl_Check_Button {} {
+ label {Dump notes}
+ callback {config.cfg.DumpNotesToFile=(int) o->value();
+dump.startnow();//this has effect only if this option was disabled}
+ xywh {20 130 100 20} down_box DOWN_BOX
+ code0 {o->value(config.cfg.DumpNotesToFile);}
+ }
+ Fl_Check_Button {} {
+ label Append
+ callback {config.cfg.DumpAppend=(int) o->value();}
+ xywh {160 130 80 20} down_box DOWN_BOX
+ code0 {o->value(config.cfg.DumpAppend);}
+ }
+ }
+ Fl_Group {} {
+ xywh {255 45 245 260} box ENGRAVED_FRAME
+ } {
+ Fl_Box {} {
+ label {Note: Not all the following settings are used (this depends on the operating system, etc..)}
+ xywh {260 50 235 45} labelfont 1 labelsize 12 align 128
+ }
+ Fl_Group {} {
+ label Linux
+ xywh {260 110 235 115} box ENGRAVED_BOX labelfont 1 labelsize 16 align 5
+ } {
+ Fl_File_Input {} {
+ label {OSS Sequencer Device (/dev/...)}
+ callback {snprintf(config.cfg.LinuxOSSSeqInDev,config.maxstringsize,"%s",o->value());}
+ xywh {265 180 225 35} align 5
+ code0 {o->insert(config.cfg.LinuxOSSSeqInDev);}
+ }
+ Fl_File_Input {} {
+ label {OSS Wave Out Device (/dev/...)}
+ callback {snprintf(config.cfg.LinuxOSSWaveOutDev,config.maxstringsize,"%s",o->value());}
+ xywh {265 130 225 35} align 5
+ code0 {o->insert(config.cfg.LinuxOSSWaveOutDev);}
+ }
+ }
+ Fl_Group {} {
+ label Windows
+ xywh {260 250 235 50} box ENGRAVED_BOX labelfont 1 labelsize 16 align 5
+ } {
+ Fl_Counter {} {
+ label {Midi In Dev}
+ callback {config.cfg.WindowsMidiInId=(int) o->value();
+midiinputnamebox->label(config.winmididevices[config.cfg.WindowsMidiInId].name);}
+ xywh {270 270 65 20} type Simple labelsize 12 align 1 minimum 0 maximum 100 step 1
+ code0 {o->maximum(config.winmidimax-1);}
+ code1 {o->value(config.cfg.WindowsMidiInId);}
+ }
+ Fl_Box midiinputnamebox {
+ label {Midi input device name}
+ xywh {340 260 150 35} labelfont 1 labelsize 12 align 212
+ code0 {o->label(config.winmididevices[config.cfg.WindowsMidiInId].name);}
+ }
+ }
+ }
+ Fl_Counter {} {
+ label {XML compression level}
+ callback {config.cfg.GzipCompression=(int) o->value();}
+ tooltip {gzip compression level (0 - uncompressed)} xywh {20 215 65 15} type Simple labelsize 12 align 8 minimum 0 maximum 9 step 1
+ code0 {o->value(config.cfg.GzipCompression);}
+ }
+ Fl_Choice {} {
+ label {PADsynth Interpolation}
+ callback {config.cfg.Interpolation=(int) o->value();}
+ xywh {175 105 75 15} down_box BORDER_BOX labelsize 11 textsize 12
+ code0 {o->value(config.cfg.Interpolation);}
+ } {
+ menuitem {} {
+ label {Linear(fast)}
+ xywh {0 0 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {Cubic(slow)}
+ xywh {10 10 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Choice {} {
+ label {Virtual Keyboard Layout}
+ callback {config.cfg.VirKeybLayout=(int) o->value();;} open selected
+ xywh {155 235 85 20} down_box BORDER_BOX labelsize 13 textfont 1 textsize 12
+ code0 {o->value(config.cfg.VirKeybLayout);}
+ } {
+ menuitem {} {
+ label { }
+ xywh {5 5 100 20} labelfont 1 labelsize 13 deactivate
+ }
+ menuitem {} {
+ label QWERTY
+ xywh {15 15 100 20} labelfont 1 labelsize 13
+ }
+ menuitem {} {
+ label Dvorak
+ xywh {25 25 100 20} labelfont 1 labelsize 13
+ }
+ }
+ }
+ Fl_Group {} {
+ label {Bank root dirs}
+ xywh {5 25 500 285} hide
+ } {
+ Fl_Browser rootsbrowse {
+ callback {activatebutton_rootdir(o->value()!=0);}
+ xywh {15 35 485 220} type Hold
+ }
+ Fl_Button {} {
+ label {Add root directory...}
+ callback {const char *dirname;
+dirname=fl_dir_chooser("Add a root directory for banks:",NULL,0);
+if (dirname==NULL) return;
+
+rootsbrowse->add(dirname);}
+ xywh {15 265 80 35} box THIN_UP_BOX align 128
+ }
+ Fl_Button removerootdirbutton {
+ label {Remove root dir...}
+ callback {if (rootsbrowse->value()!=0) {
+ rootsbrowse->remove(rootsbrowse->value());
+};
+activatebutton_rootdir(false);}
+ xywh {105 265 80 35} box THIN_UP_BOX align 128
+ code0 {o->deactivate();}
+ }
+ Fl_Button makedefaultrootdirbutton {
+ label {Make default}
+ callback {int n=rootsbrowse->value();
+
+if (n!=0) {
+ rootsbrowse->move(1,n);
+ rootsbrowse->value(1);
+ rootsbrowse->redraw();
+};
+activatebutton_rootdir(true);}
+ xywh {190 265 80 35} box THIN_UP_BOX align 128
+ code0 {o->deactivate();}
+ }
+ }
+ Fl_Group {} {
+ label {Presets dirs}
+ xywh {5 25 500 285} hide
+ } {
+ Fl_Browser presetbrowse {
+ callback {activatebutton_presetdir(o->value()!=0);}
+ xywh {15 35 485 220} type Hold
+ }
+ Fl_Button {} {
+ label {Add preset directory...}
+ callback {const char *dirname;
+dirname=fl_dir_chooser("Add a preset directory :",NULL,0);
+if (dirname==NULL) return;
+
+presetbrowse->add(dirname);}
+ xywh {15 265 80 35} box THIN_UP_BOX align 128
+ }
+ Fl_Button removepresetbutton {
+ label {Remove preset dir...}
+ callback {if (presetbrowse->value()!=0) {
+ presetbrowse->remove(presetbrowse->value());
+};
+activatebutton_presetdir(false);}
+ xywh {105 265 80 35} box THIN_UP_BOX align 128
+ code0 {o->deactivate();}
+ }
+ Fl_Button makedefaultpresetbutton {
+ label {Make default}
+ callback {int n=presetbrowse->value();
+
+if (n!=0) {
+ presetbrowse->move(1,n);
+ presetbrowse->value(1);
+ presetbrowse->redraw();
+};
+activatebutton_presetdir(true);}
+ xywh {190 265 80 35} box THIN_UP_BOX align 128
+ code0 {o->deactivate();}
+ }
+ }
+ }
+ Fl_Button {} {
+ label Close
+ callback {configwindow->hide();
+writebankcfg();
+writepresetcfg();}
+ xywh {200 315 105 20} box THIN_UP_BOX
+ }
+ }
+ }
+ Function {ConfigUI()} {} {
+ code {make_window();
+readbankcfg();
+readpresetcfg();} {}
+ }
+ Function {activatebutton_rootdir(bool active)} {} {
+ code {if (active) {
+ removerootdirbutton->activate();
+ makedefaultrootdirbutton->activate();
+}else{
+ removerootdirbutton->deactivate();
+ makedefaultrootdirbutton->deactivate();
+};} {}
+ }
+ Function {activatebutton_presetdir(bool active)} {} {
+ code {if (active) {
+ removepresetbutton->activate();
+ makedefaultpresetbutton->activate();
+}else{
+ removepresetbutton->deactivate();
+ makedefaultpresetbutton->deactivate();
+};} {}
+ }
+ Function {readbankcfg()} {} {
+ code {rootsbrowse->clear();
+
+for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
+ if (config.cfg.bankRootDirList[i]!=NULL) rootsbrowse->add(config.cfg.bankRootDirList[i]);
+};} {}
+ }
+ Function {writebankcfg()} {} {
+ code {config.clearbankrootdirlist();
+
+for (int n=0;n<rootsbrowse->size();n++){
+ config.cfg.bankRootDirList[n]=new char [MAX_STRING_SIZE];
+ strncpy(config.cfg.bankRootDirList[n],rootsbrowse->text(n+1),MAX_STRING_SIZE);
+};} {}
+ }
+ Function {readpresetcfg()} {} {
+ code {presetbrowse->clear();
+
+for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
+ if (config.cfg.presetsDirList[i]!=NULL) presetbrowse->add(config.cfg.presetsDirList[i]);
+};} {}
+ }
+ Function {writepresetcfg()} {} {
+ code {config.clearpresetsdirlist();
+
+for (int n=0;n<presetbrowse->size();n++){
+ config.cfg.presetsDirList[n]=new char [MAX_STRING_SIZE];
+ strncpy(config.cfg.presetsDirList[n],presetbrowse->text(n+1),MAX_STRING_SIZE);
+};} {}
+ }
+ Function {getsamplerateorder()} {return_type int
+ } {
+ code {int smpr=config.cfg.SampleRate;
+int order=0;
+switch(smpr){
+ case 16000:order=1;break;
+ case 22050:order=2;break;
+ case 32000:order=3;break;
+ case 44100:order=4;break;
+ case 48000:order=5;break;
+ case 88200:order=6;break;
+ case 96000:order=7;break;
+ default:order=0;break;
+};
+return(order);} {}
+ }
+ Function {setsamplerateinput()} {return_type void
+ } {
+ code {char *tmpbuf=new char[100];
+samplerateinput->cut(0,samplerateinput->maximum_size());
+snprintf(tmpbuf,100,"%d",config.cfg.SampleRate);
+samplerateinput->insert(tmpbuf);
+delete (tmpbuf);} {}
+ }
+ Function {show()} {} {
+ code {configwindow->show();} {}
+ }
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/EffUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/EffUI.fl
new file mode 100644
index 00000000..e3ad8fc9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/EffUI.fl
@@ -0,0 +1,2310 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0104
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EnvelopeUI.h"} {public
+}
+
+decl {\#include "FilterUI.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Effects/EffectMgr.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class EQGraph {: {public Fl_Box}
+} {
+ Function {EQGraph(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {eff=NULL;
+maxdB=30;} {}
+ }
+ Function {init(EffectMgr *eff_)} {} {
+ code {eff=eff_;
+oldx=-1;
+khzval=-1;} {}
+ }
+ Function {draw_freq_line(REALTYPE freq,int type)} {} {
+ code {fl_color(FL_GRAY);
+REALTYPE freqx=getfreqpos(freq);
+switch(type){
+ case 0:if (active_r()) fl_color(FL_WHITE);
+ else fl_color(205,205,205);
+ fl_line_style(FL_SOLID);
+ break;
+ case 1:fl_line_style(FL_DOT);break;
+ case 2:fl_line_style(FL_DASH);break;
+};
+
+
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(x()+(int) (freqx*w()),y(),
+ x()+(int) (freqx*w()),y()+h());} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h(),i,iy,oiy;
+REALTYPE freqx;
+
+if (active_r()) fl_color(0,70,150);
+ else fl_color(80,120,160);
+fl_rectf(ox,oy,lx,ly);
+
+
+//draw the lines
+fl_color(FL_GRAY);
+
+fl_line_style(FL_SOLID);
+fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+
+freqx=getfreqpos(1000.0);
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(ox+(int) (freqx*lx),oy,
+ ox+(int) (freqx*lx),oy+ly);
+
+for (i=1;i<10;i++){
+ if(i==1){
+ draw_freq_line(i*100.0,0);
+ draw_freq_line(i*1000.0,0);
+ }else
+ if (i==5){
+ draw_freq_line(i*10.0,2);
+ draw_freq_line(i*100.0,2);
+ draw_freq_line(i*1000.0,2);
+ }else{
+ draw_freq_line(i*10.0,1);
+ draw_freq_line(i*100.0,1);
+ draw_freq_line(i*1000.0,1);
+ };
+};
+
+draw_freq_line(10000.0,0);
+draw_freq_line(20000.0,1);
+
+
+fl_line_style(FL_DOT);
+int GY=6;if (ly<GY*3) GY=-1;
+for (i=1;i<GY;i++){
+ int tmp=(int)(ly/(REALTYPE)GY*i);
+ fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
+};
+
+
+//draw the frequency response
+if (active_r()) fl_color(FL_YELLOW);
+ else fl_color(200,200,80);
+fl_line_style(FL_SOLID);
+oiy=getresponse(ly,getfreqx(0.0));
+for (i=1;i<lx;i++){
+ REALTYPE frq=getfreqx(i/(REALTYPE) lx);
+ if (frq>SAMPLE_RATE/2) break;
+ iy=getresponse(ly,frq);
+ if ((oiy>=0) && (oiy<ly) &&
+ (iy>=0) && (iy<ly) )
+ fl_line(ox+i-1,oy+ly-oiy,ox+i,oy+ly-iy);
+ oiy=iy;
+};} {}
+ }
+ Function {getresponse(int maxy,REALTYPE freq)} {return_type int
+ } {
+ code {REALTYPE dbresp=eff->getEQfreqresponse(freq);
+int idbresp=(int) ((dbresp/maxdB+1.0)*maxy/2.0);
+
+
+//fprintf(stderr,"%.5f\\n",(dbresp/maxdB+1.0)*maxy/2.0);
+
+
+return(idbresp);} {}
+ }
+ Function {getfreqx(REALTYPE x)} {return_type REALTYPE
+ } {
+ code {if (x>1.0) x=1.0;
+return(20.0*pow(1000.0,x));} {}
+ }
+ Function {getfreqpos(REALTYPE freq)} {return_type REALTYPE
+ } {
+ code {if (freq<0.00001) freq=0.00001;
+return(log(freq/20.0)/log(1000.0));} {}
+ }
+ decl {int oldx,oldy;} {}
+ decl {REALTYPE khzval;} {public
+ }
+ decl {EffectMgr *eff;} {}
+ decl {int maxdB;} {}
+}
+
+class EffUI {: {public Fl_Group,public PresetsUI_}
+} {
+ Function {EffUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {eff=NULL;
+filterwindow=NULL;} {}
+ }
+ Function {~EffUI()} {} {
+ code {effnullwindow->hide();//delete (effnullwindow);
+effreverbwindow->hide();//delete (effreverbwindow);
+effechowindow->hide();//delete (effechowindow);
+effchoruswindow->hide();//delete (effchoruswindow);
+effphaserwindow->hide();//delete (effphaserwindow);
+effalienwahwindow->hide();//delete (effalienwahwindow);
+effdistorsionwindow->hide();//delete (effdistorsionwindow);
+effeqwindow->hide();//delete (effeqwindow);
+effdynamicfilterwindow->hide();//delete (effdynamicfilterwindow);
+
+if (filterwindow!=NULL){
+ filterwindow->hide();
+ delete(filterwindow);
+};} {}
+ }
+ Function {make_null_window()} {} {
+ Fl_Window effnullwindow {
+ xywh {287 379 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label {No Effect}
+ xywh {120 35 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 labelcolor 43 align 8
+ }
+ }
+ }
+ Function {make_reverb_window()} {} {
+ Fl_Window effreverbwindow {
+ xywh {262 421 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label {Reverb }
+ xywh {275 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Choice revp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Cathedral 1}
+ xywh {10 10 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Cathedral 2}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Cathedral 3}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Hall 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Hall 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Room 1}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Room 2}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Basement
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Tunnel
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echoed 1}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echoed 2}
+ xywh {110 110 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Very Long 1}
+ xywh {120 120 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Very Long 2}
+ xywh {130 130 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Choice revp10 {
+ label Type
+ callback {eff->seteffectpar(10,(int) o->value());}
+ xywh {110 15 75 15} down_box BORDER_BOX color 14 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label Random
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Freeverb
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Dial revp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp2 {
+ label Time
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp3 {
+ label {I.del}
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp4 {
+ label {I.delfb}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp5 {
+ label {R.delay}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127 deactivate
+ class WidgetPDial
+ }
+ Fl_Dial revp6 {
+ label {E/R}
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127 deactivate
+ class WidgetPDial
+ }
+ Fl_Dial revp7 {
+ label LPF
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp8 {
+ label HPF
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {305 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp9 {
+ label Damp
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {340 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 minimum 64 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial revp11 {
+ label {R.S.}
+ callback {int x=64;
+if (Fl::event_button1()) x=(int)o->value();
+ else o->value(x);
+eff->seteffectpar(11,x);}
+ tooltip RoomSize xywh {190 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 8 align 8 minimum 1 maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ }
+ Function {make_echo_window()} {} {
+ Fl_Window effechowindow {
+ xywh {178 394 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice echop {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {11 15 95 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Echo 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echo 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echo 3}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Simple Echo}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Canyon
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 1}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 2}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 3}
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Feedback Echo}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Echo
+ xywh {295 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial echop0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop2 {
+ label Delay
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop3 {
+ label {LRdl.}
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop4 {
+ label {LRc.}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop5 {
+ label {Fb.}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {195 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop6 {
+ label Damp
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ }
+ }
+ Function {make_chorus_window()} {} {
+ Fl_Window effchoruswindow {
+ xywh {210 263 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice chorusp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Chorus 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Chorus 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Chorus 3}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Celeste 1}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Celeste 2}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 1}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 2}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 3}
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 4}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 5}
+ xywh {110 110 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Chorus
+ xywh {265 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial chorusp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp3 {
+ label Rnd
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp5 {
+ label {St.df}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp7 {
+ label Delay
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp8 {
+ label Fb
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {305 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp9 {
+ label {L/R}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {340 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Check_Button {} {
+ label Flange
+ callback {eff->seteffectpar(10,(int) o->value());}
+ xywh {120 10 55 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10 hide deactivate
+ code0 {o->value(eff->geteffectpar(10));}
+ }
+ Fl_Check_Button chorusp11 {
+ label Substract
+ callback {eff->seteffectpar(11,(int) o->value());}
+ xywh {185 10 70 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10
+ }
+ Fl_Choice chorusp4 {
+ label {LFO type}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
+ } {
+ menuitem {} {
+ label SINE
+ xywh {15 15 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label TRI
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ }
+ }
+ }
+ Function {make_phaser_window()} {} {
+ Fl_Window effphaserwindow {
+ xywh {197 313 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice phaserp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Phaser 1}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 2}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 3}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 4}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 5}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 6}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Phaser
+ xywh {275 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial phaserp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp3 {
+ label Rnd
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp5 {
+ label {St.df}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp7 {
+ label Fb
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp9 {
+ label {L/R}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {345 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Check_Button phaserp10 {
+ label Substract
+ callback {eff->seteffectpar(10,(int) o->value());}
+ xywh {185 10 70 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10
+ }
+ Fl_Choice phaserp4 {
+ label {LFO type}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
+ } {
+ menuitem {} {
+ label SINE
+ xywh {15 15 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label TRI
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Counter phaserp8 {
+ label Stages
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {305 55 35 15} type Simple labelfont 1 labelsize 12 minimum 0 maximum 127 step 1
+ code0 {o->range(1,MAX_PHASER_STAGES);}
+ }
+ Fl_Dial phaserp11 {
+ label Phase
+ callback {eff->seteffectpar(11,(int) o->value());}
+ xywh {155 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 maximum 127
+ class WidgetPDial
+ }
+ }
+ }
+ Function {make_alienwah_window()} {} {
+ Fl_Window effalienwahwindow {
+ xywh {230 283 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice awp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Alienwah 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 3}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 4}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label AlienWah
+ xywh {245 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial awp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp3 {
+ label Rnd
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp5 {
+ label {St.df}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp7 {
+ label Fb
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp9 {
+ label {L/R}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {345 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Choice awp4 {
+ label {LFO type}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
+ } {
+ menuitem {} {
+ label SINE
+ xywh {15 15 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label TRI
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial awp10 {
+ label Phase
+ callback {eff->seteffectpar(10,(int) o->value());}
+ xywh {160 5 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter awp8 {
+ label Delay
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {305 55 35 15} type Simple labelfont 1 labelsize 12 minimum 0 maximum 127 step 1
+ code0 {o->range(1,MAX_ALIENWAH_DELAY);}
+ }
+ }
+ }
+ Function {make_distorsion_window()} {} {
+ Fl_Window effdistorsionwindow {
+ xywh {259 186 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice distp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {11 15 95 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Overdrive 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Overdrive 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {A. Exciter 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {A. Exciter 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Guitar Amp}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Quantisize
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Distortion
+ xywh {230 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial distp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp2 {
+ label {LRc.}
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp3 {
+ label Drive
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp4 {
+ label Level
+ callback {eff->seteffectpar(4,(int) o->value());}
+ xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp7 {
+ label LPF
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {285 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp8 {
+ label HPF
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {320 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Choice distp5 {
+ label Type
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {190 50 60 20} box UP_BOX down_box BORDER_BOX labelfont 1 labelsize 12 align 2 textsize 10
+ } {
+ menuitem {} {
+ label Atan
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym1
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Qnts
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Zigzg
+ xywh {105 105 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lmt
+ xywh {115 115 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtU
+ xywh {125 125 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtL
+ xywh {135 135 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ILmt
+ xywh {147 147 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Clip
+ xywh {157 157 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym2
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow2
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sgm
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Check_Button distp6 {
+ label {Neg.}
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {260 55 15 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 2
+ }
+ Fl_Check_Button distp9 {
+ label {St.}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ tooltip Stereo xywh {355 60 15 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 2
+ }
+ Fl_Check_Button distp10 {
+ label PF
+ callback {eff->seteffectpar(10,(int) o->value());}
+ tooltip {Applies the filters(before or after) the distorsion} xywh {355 44 15 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 1
+ }
+ }
+ }
+ Function {make_eq_window()} {} {
+ Fl_Window effeqwindow {
+ xywh {258 307 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label EQ
+ xywh {320 10 15 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial eqp0 {
+ label Gain
+ callback {eff->seteffectpar(0,(int) o->value());
+eqgraph->redraw();}
+ xywh {10 35 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter bandcounter {
+ label {B.}
+ callback {eqband=(int) o->value();
+int npb=eqband*5+10;
+
+int type=eff->geteffectpar(npb);
+typechoice->value(type);
+
+if (type>6) gaindial->activate();
+ else gaindial->deactivate();
+
+if (type==0) bandgroup->deactivate();
+else bandgroup->activate();
+
+int freq=eff->geteffectpar(npb+1);
+freqdial->value(freq);
+
+int gain=eff->geteffectpar(npb+2);
+gaindial->value(gain);
+
+int q=eff->geteffectpar(npb+3);
+qdial->value(q);
+
+int dbl=eff->geteffectpar(npb+4);
+stagescounter->value(dbl);}
+ tooltip {Band no.} xywh {240 20 45 15} type Simple labelfont 1 labelsize 12 align 1 minimum 0 maximum 1 step 1 textfont 1 textsize 12
+ code0 {o->bounds(0,MAX_EQ_BANDS-1);}
+ }
+ Fl_Group bandgroup {
+ xywh {245 40 130 50} box ENGRAVED_FRAME
+ code0 {if (eff->geteffectpar(10)==0) o->deactivate();}
+ } {
+ Fl_Dial freqdial {
+ label Freq
+ callback {int np=eqband*5+11;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {250 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial gaindial {
+ label Gain
+ callback {int np=eqband*5+12;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {280 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial qdial {
+ label Q
+ callback {int np=eqband*5+13;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {310 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter stagescounter {
+ label {St.}
+ callback {int np=eqband*5+14;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ tooltip {Additional filter stages} xywh {340 60 30 15} type Simple labelfont 1 labelsize 10 minimum 1 maximum 127 step 1 textfont 1 textsize 12
+ code0 {o->bounds(0,MAX_FILTER_STAGES-1);}
+ }
+ }
+ Fl_Choice typechoice {
+ label {T.}
+ callback {int np=eqband*5+10;
+eff->seteffectpar(np,(int) o->value());
+bandcounter->do_callback();
+eqgraph->redraw();}
+ tooltip Type xywh {290 20 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 when 6 textsize 10
+ } {
+ menuitem {} {
+ label OFF
+ xywh {0 0 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lp1
+ xywh {10 10 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Hp1
+ xywh {20 20 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lp2
+ xywh {30 30 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Hp2
+ xywh {40 40 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Bp2
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label N2
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pk
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LSh
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HSh
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Box eqgraph {
+ xywh {45 10 190 75} box BORDER_BOX color 178
+ code0 {o->init(eff);}
+ class EQGraph
+ }
+ }
+ }
+ Function {make_dynamicfilter_window()} {} {
+ Fl_Window effdynamicfilterwindow {
+ xywh {104 461 380 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice dfp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label WahWah
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label AutoWah
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Sweep
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label VocalMorph1
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label VocalMorph2
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label DynFilter
+ xywh {245 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial dfp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp1 {
+ label Pan
+ callback {eff->seteffectpar(1,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp3 {
+ label Rnd
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp5 {
+ label {St.df}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp6 {
+ label LfoD
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Choice dfp4 {
+ label {LFO type}
+ callback {eff->seteffectpar(4,(int) o->value());}
+ tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
+ } {
+ menuitem {} {
+ label SINE
+ xywh {15 15 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label TRI
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Button {} {
+ label Filter
+ callback {filterwindow->show();}
+ xywh {115 10 55 25} box PLASTIC_THIN_UP_BOX
+ }
+ Fl_Group {} {open
+ xywh {270 40 105 45} box BORDER_BOX color 181
+ } {
+ Fl_Dial dfp7 {
+ label {A.S.}
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {275 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp9 {
+ label {A.M}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {305 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Check_Button dfp8 {
+ label {A.Inv.}
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {345 55 15 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 2
+ }
+ }
+ }
+ }
+ Function {make_filter_window()} {} {
+ Fl_Window filterwindow {
+ label {Filter Parameters for DynFilter Eff.}
+ xywh {212 170 290 110} type Double hide
+ } {
+ Fl_Group {} {
+ label {DynFilter effect - Filter} open
+ xywh {5 5 275 75} box FLAT_BOX color 50 align 144
+ code0 {o->init(eff->filterpars,NULL,NULL);}
+ code1 {o->use_for_dynamic_filter();}
+ class FilterUI
+ } {}
+ Fl_Button {} {
+ label Close
+ callback {filterwindow->hide();}
+ xywh {105 85 70 20} box THIN_UP_BOX
+ }
+ }
+ }
+ Function {init(EffectMgr *eff_)} {} {
+ code {eff=eff_;
+
+make_null_window();
+make_reverb_window();
+make_echo_window();
+make_chorus_window();
+make_phaser_window();
+make_alienwah_window();
+make_distorsion_window();
+make_eq_window();
+make_dynamicfilter_window();
+
+int px=this->parent()->x();
+int py=this->parent()->y();
+
+effnullwindow->position(px,py);
+effreverbwindow->position(px,py);
+effechowindow->position(px,py);
+effchoruswindow->position(px,py);
+effphaserwindow->position(px,py);
+effalienwahwindow->position(px,py);
+effdistorsionwindow->position(px,py);
+effeqwindow->position(px,py);
+effdynamicfilterwindow->position(px,py);
+
+refresh(eff);} {}
+ }
+ Function {refresh(EffectMgr *eff_)} {} {
+ code {eff=eff_;
+this->hide();
+
+effnullwindow->hide();
+effreverbwindow->hide();
+effechowindow->hide();
+effchoruswindow->hide();
+effphaserwindow->hide();
+effalienwahwindow->hide();
+effdistorsionwindow->hide();
+effeqwindow->hide();
+effdynamicfilterwindow->hide();
+
+eqband=0;
+
+if (filterwindow!=NULL){
+ filterwindow->hide();
+ delete(filterwindow);
+ filterwindow=NULL;
+};
+
+switch(eff->geteffect()){
+ case 1:
+ revp->value(eff->getpreset());
+ revp0->value(eff->geteffectpar(0));if (eff->insertion!=0) revp0->label("D/W");
+ revp1->value(eff->geteffectpar(1));
+ revp2->value(eff->geteffectpar(2));
+ revp3->value(eff->geteffectpar(3));
+ revp4->value(eff->geteffectpar(4));
+ revp5->value(eff->geteffectpar(5));
+ revp6->value(eff->geteffectpar(6));
+ revp7->value(eff->geteffectpar(7));
+ revp8->value(eff->geteffectpar(8));
+ revp9->value(eff->geteffectpar(9));
+ revp10->value(eff->geteffectpar(10));
+ revp11->value(eff->geteffectpar(11));
+
+ effreverbwindow->show();
+ break;
+ case 2:
+ echop->value(eff->getpreset());
+ echop0->value(eff->geteffectpar(0));if (eff->insertion!=0) echop0->label("D/W");
+ echop1->value(eff->geteffectpar(1));
+ echop2->value(eff->geteffectpar(2));
+ echop3->value(eff->geteffectpar(3));
+ echop4->value(eff->geteffectpar(4));
+ echop5->value(eff->geteffectpar(5));
+ echop6->value(eff->geteffectpar(6));
+ effechowindow->show();
+ break;
+ case 3:
+ chorusp->value(eff->getpreset());
+ chorusp0->value(eff->geteffectpar(0));if (eff->insertion!=0) chorusp0->label("D/W");
+ chorusp1->value(eff->geteffectpar(1));
+ chorusp2->value(eff->geteffectpar(2));
+ chorusp3->value(eff->geteffectpar(3));
+ chorusp4->value(eff->geteffectpar(4));
+ chorusp5->value(eff->geteffectpar(5));
+ chorusp6->value(eff->geteffectpar(6));
+ chorusp7->value(eff->geteffectpar(7));
+ chorusp8->value(eff->geteffectpar(8));
+ chorusp9->value(eff->geteffectpar(9));
+ chorusp11->value(eff->geteffectpar(11));
+ effchoruswindow->show();
+ break;
+ case 4:
+ phaserp->value(eff->getpreset());
+ phaserp0->value(eff->geteffectpar(0));if (eff->insertion!=0) phaserp0->label("D/W");
+ phaserp1->value(eff->geteffectpar(1));
+ phaserp2->value(eff->geteffectpar(2));
+ phaserp3->value(eff->geteffectpar(3));
+ phaserp4->value(eff->geteffectpar(4));
+ phaserp5->value(eff->geteffectpar(5));
+ phaserp6->value(eff->geteffectpar(6));
+ phaserp7->value(eff->geteffectpar(7));
+ phaserp8->value(eff->geteffectpar(8));
+ phaserp9->value(eff->geteffectpar(9));
+ phaserp10->value(eff->geteffectpar(10));
+ phaserp11->value(eff->geteffectpar(11));
+ effphaserwindow->show();
+ break;
+ case 5:
+ awp->value(eff->getpreset());
+ awp0->value(eff->geteffectpar(0));if (eff->insertion!=0) awp0->label("D/W");
+ awp1->value(eff->geteffectpar(1));
+ awp2->value(eff->geteffectpar(2));
+ awp3->value(eff->geteffectpar(3));
+ awp4->value(eff->geteffectpar(4));
+ awp5->value(eff->geteffectpar(5));
+ awp6->value(eff->geteffectpar(6));
+ awp7->value(eff->geteffectpar(7));
+ awp8->value(eff->geteffectpar(8));
+ awp9->value(eff->geteffectpar(9));
+ awp10->value(eff->geteffectpar(10));
+
+ effalienwahwindow->show();
+ break;
+ case 6:
+ distp->value(eff->getpreset());
+ distp0->value(eff->geteffectpar(0));if (eff->insertion!=0) distp0->label("D/W");
+ distp1->value(eff->geteffectpar(1));
+ distp2->value(eff->geteffectpar(2));
+ distp3->value(eff->geteffectpar(3));
+ distp4->value(eff->geteffectpar(4));
+ distp5->value(eff->geteffectpar(5));
+ distp6->value(eff->geteffectpar(6));
+ distp7->value(eff->geteffectpar(7));
+ distp8->value(eff->geteffectpar(8));
+ distp9->value(eff->geteffectpar(9));
+ distp10->value(eff->geteffectpar(10));
+ effdistorsionwindow->show();
+ break;
+ case 7:eqband=0;
+ eqp0->value(eff->geteffectpar(0));
+ bandcounter->value(eqband);
+ bandcounter->do_callback();
+ typechoice->value(eff->geteffectpar(10));
+ eqgraph->redraw();
+ freqdial->value(eff->geteffectpar(11));
+ gaindial->value(eff->geteffectpar(12));
+ if (eff->geteffectpar(10)<6) gaindial->deactivate();
+ qdial->value(eff->geteffectpar(13));
+ stagescounter->value(eff->geteffectpar(14));
+ eqgraph->init(eff);
+ effeqwindow->show();
+ break;
+ case 8:make_filter_window();
+ dfp->value(eff->getpreset());
+ dfp0->value(eff->geteffectpar(0));if (eff->insertion!=0) dfp0->label("D/W");
+ dfp1->value(eff->geteffectpar(1));
+ dfp2->value(eff->geteffectpar(2));
+ dfp3->value(eff->geteffectpar(3));
+ dfp4->value(eff->geteffectpar(4));
+ dfp5->value(eff->geteffectpar(5));
+ dfp6->value(eff->geteffectpar(6));
+ dfp7->value(eff->geteffectpar(7));
+ dfp8->value(eff->geteffectpar(8));
+ dfp9->value(eff->geteffectpar(9));
+
+
+ effdynamicfilterwindow->show();
+ break;
+ default:effnullwindow->show();
+ break;
+};
+
+this->show();} {}
+ }
+ Function {refresh()} {} {
+ code {refresh(eff);} {}
+ }
+ decl {EffectMgr *eff;} {}
+ decl {int eqband;} {}
+}
+
+class SimpleEffUI {: {public Fl_Group,public PresetsUI_}
+} {
+ Function {SimpleEffUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {eff=NULL;} {}
+ }
+ Function {~SimpleEffUI()} {} {
+ code {effnullwindow->hide();//delete (effnullwindow);
+effreverbwindow->hide();//delete (effreverbwindow);
+effechowindow->hide();//delete (effechowindow);
+effchoruswindow->hide();//delete (effchoruswindow);
+effphaserwindow->hide();//delete (effphaserwindow);
+effalienwahwindow->hide();//delete (effalienwahwindow);
+effdistorsionwindow->hide();//delete (effdistorsionwindow);
+effeqwindow->hide();//delete (effeqwindow);
+effdynamicfilterwindow->hide();//delete (effdynamicfilterwindow);} {}
+ }
+ Function {make_null_window()} {} {
+ Fl_Window effnullwindow {
+ xywh {539 150 233 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label {No Effect}
+ xywh {25 35 35 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 labelcolor 43 align 8
+ }
+ }
+ }
+ Function {make_reverb_window()} {} {
+ Fl_Window effreverbwindow {
+ xywh {151 285 233 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label {Reverb }
+ xywh {115 10 20 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Choice revp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Cathedral 1}
+ xywh {10 10 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Cathedral 2}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Cathedral 3}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Hall 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Hall 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Room 1}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Room 2}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Basement
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Tunnel
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echoed 1}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echoed 2}
+ xywh {110 110 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Very Long 1}
+ xywh {120 120 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Very Long 2}
+ xywh {130 130 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Dial revp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp2 {
+ label Time
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp3 {
+ label {I.del}
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial revp9 {
+ label Damp
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 minimum 64 maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ }
+ Function {make_echo_window()} {} {
+ Fl_Window effechowindow {
+ xywh {243 350 231 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice echop {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {11 15 95 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Echo 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echo 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Echo 3}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Simple Echo}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Canyon
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 1}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 2}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Panning Echo 3}
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Feedback Echo}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Echo
+ xywh {145 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial echop0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop2 {
+ label Delay
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial echop5 {
+ label {Fb.}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ }
+ }
+ Function {make_chorus_window()} {} {
+ Fl_Window effchoruswindow {
+ xywh {234 353 233 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice chorusp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Chorus 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Chorus 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Chorus 3}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Celeste 1}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Celeste 2}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 1}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 2}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 3}
+ xywh {90 90 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 4}
+ xywh {100 100 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Flange 5}
+ xywh {110 110 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Chorus
+ xywh {120 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial chorusp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp7 {
+ label Delay
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {115 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial chorusp8 {
+ label Fb
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {150 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Check_Button {} {
+ label Flange
+ callback {eff->seteffectpar(10,(int) o->value());}
+ xywh {120 10 55 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10 hide deactivate
+ code0 {o->value(eff->geteffectpar(10));}
+ }
+ }
+ }
+ Function {make_phaser_window()} {} {
+ Fl_Window effphaserwindow {
+ xywh {171 303 232 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice phaserp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Phaser 1}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 2}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 3}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 4}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 5}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Phaser 6}
+ xywh {80 80 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Phaser
+ xywh {125 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial phaserp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp5 {
+ label {St.df}
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {115 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial phaserp7 {
+ label Fb
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {150 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter phaserp8 {
+ label Stages
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {185 55 35 15} type Simple labelfont 1 labelsize 12 minimum 0 maximum 127 step 1
+ code0 {o->range(1,MAX_PHASER_STAGES);}
+ }
+ }
+ }
+ Function {make_alienwah_window()} {} {
+ Fl_Window effalienwahwindow {
+ xywh {183 344 234 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice awp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Alienwah 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 3}
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Alienwah 4}
+ xywh {70 70 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label AlienWah
+ xywh {100 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial awp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial awp6 {
+ label Dpth
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter awp8 {
+ label Delay
+ callback {eff->seteffectpar(8,(int) o->value());}
+ xywh {125 55 35 15} type Simple labelfont 1 labelsize 12 minimum 0 maximum 127 step 1
+ code0 {o->range(1,MAX_ALIENWAH_DELAY);}
+ }
+ }
+ }
+ Function {make_distorsion_window()} {} {
+ Fl_Window effdistorsionwindow {
+ xywh {257 432 230 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice distp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {11 15 95 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label {Overdrive 1}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Overdrive 2}
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {A. Exciter 1}
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {A. Exciter 2}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label {Guitar Amp}
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Quantisize
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label Distortion
+ xywh {110 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 20 align 8
+ }
+ Fl_Dial distp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp3 {
+ label Drive
+ callback {eff->seteffectpar(3,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 when 4 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp4 {
+ label Level
+ callback {eff->seteffectpar(4,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial distp7 {
+ label LPF
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {190 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Choice distp5 {
+ label Type
+ callback {eff->seteffectpar(5,(int) o->value());}
+ xywh {120 50 60 20} box UP_BOX down_box BORDER_BOX labelfont 1 labelsize 12 align 2 textsize 10
+ } {
+ menuitem {} {
+ label Atan
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym1
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Qnts
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Zigzg
+ xywh {105 105 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lmt
+ xywh {115 115 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtU
+ xywh {125 125 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtL
+ xywh {135 135 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ILmt
+ xywh {147 147 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Clip
+ xywh {157 157 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym2
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow2
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sgm
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ }
+ }
+ }
+ Function {make_eq_window()} {} {
+ Fl_Window effeqwindow {
+ xywh {258 307 230 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Text_Display {} {
+ label EQ
+ xywh {170 5 15 25} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Counter bandcounter {
+ label Band
+ callback {eqband=(int) o->value();
+int npb=eqband*5+10;
+
+int type=eff->geteffectpar(npb);
+typechoice->value(type);
+
+if (type>6) gaindial->activate();
+ else gaindial->deactivate();
+
+if (type==0) bandgroup->deactivate();
+else bandgroup->activate();
+
+int freq=eff->geteffectpar(npb+1);
+freqdial->value(freq);
+
+int gain=eff->geteffectpar(npb+2);
+gaindial->value(gain);
+
+int q=eff->geteffectpar(npb+3);
+qdial->value(q);
+
+int dbl=eff->geteffectpar(npb+4);
+stagescounter->value(dbl);}
+ tooltip {Band no.} xywh {85 15 45 15} type Simple labelfont 1 labelsize 12 align 1 minimum 0 maximum 1 step 1 textfont 1 textsize 12
+ code0 {o->bounds(0,MAX_EQ_BANDS-1);}
+ }
+ Fl_Group bandgroup {
+ xywh {5 5 75 85} box ENGRAVED_FRAME
+ code0 {if (eff->geteffectpar(10)==0) o->deactivate();}
+ } {
+ Fl_Dial freqdial {
+ label Freq
+ callback {int np=eqband*5+11;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {10 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial gaindial {
+ label Gain
+ callback {int np=eqband*5+12;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {45 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial qdial {
+ label Q
+ callback {int np=eqband*5+13;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ xywh {10 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
+ class WidgetPDial
+ }
+ Fl_Counter stagescounter {
+ label Stages
+ callback {int np=eqband*5+14;
+eff->seteffectpar(np,(int) o->value());
+eqgraph->redraw();}
+ tooltip {Additional filter stages} xywh {40 55 30 15} type Simple labelfont 1 labelsize 10 minimum 1 maximum 127 step 1 textfont 1 textsize 12
+ code0 {o->bounds(0,MAX_FILTER_STAGES-1);}
+ }
+ }
+ Fl_Choice typechoice {
+ label Type
+ callback {int np=eqband*5+10;
+eff->seteffectpar(np,(int) o->value());
+bandcounter->do_callback();
+eqgraph->redraw();}
+ tooltip Type xywh {135 15 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 when 6 textsize 10
+ } {
+ menuitem {} {
+ label OFF
+ xywh {10 10 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lp1
+ xywh {20 20 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Hp1
+ xywh {30 30 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lp2
+ xywh {40 40 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Hp2
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Bp2
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label N2
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pk
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LSh
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HSh
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Box eqgraph {
+ xywh {85 35 140 55} box BORDER_BOX color 178
+ code0 {o->init(eff);}
+ class EQGraph
+ }
+ }
+ }
+ Function {make_dynamicfilter_window()} {} {
+ Fl_Window effdynamicfilterwindow {
+ xywh {271 375 232 95} type Double box PLASTIC_UP_BOX color 221 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Choice dfp {
+ label Preset
+ callback {eff->changepreset((int)o->value());
+refresh(eff);}
+ xywh {10 15 90 15} down_box BORDER_BOX color 14 selection_color 0 labelfont 1 labelsize 10 labelcolor 0 align 5 textfont 1 textsize 10 textcolor 7
+ } {
+ menuitem {} {
+ label WahWah
+ xywh {30 30 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label AutoWah
+ xywh {40 40 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label Sweep
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label VocalMorph1
+ xywh {50 50 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ menuitem {} {
+ label VocalMorph2
+ xywh {60 60 100 20} labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Text_Display {} {
+ label DynFilter
+ xywh {100 10 10 20} box NO_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 26 align 8
+ }
+ Fl_Dial dfp0 {
+ label Vol
+ callback {eff->seteffectpar(0,(int) o->value());}
+ xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp2 {
+ label Freq
+ callback {eff->seteffectpar(2,(int) o->value());}
+ xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp6 {
+ label LfoD
+ callback {eff->seteffectpar(6,(int) o->value());}
+ xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Group {} {open
+ xywh {115 40 65 45} box BORDER_BOX color 181
+ } {
+ Fl_Dial dfp7 {
+ label {A.S.}
+ callback {eff->seteffectpar(7,(int) o->value());}
+ xywh {120 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ Fl_Dial dfp9 {
+ label {A.M}
+ callback {eff->seteffectpar(9,(int) o->value());}
+ xywh {150 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 12 maximum 127
+ class WidgetPDial
+ }
+ }
+ }
+ }
+ Function {init(EffectMgr *eff_)} {} {
+ code {eff=eff_;
+
+make_null_window();
+make_reverb_window();
+make_echo_window();
+make_chorus_window();
+make_phaser_window();
+make_alienwah_window();
+make_distorsion_window();
+make_eq_window();
+make_dynamicfilter_window();
+
+int px=this->parent()->x();
+int py=this->parent()->y();
+
+effnullwindow->position(px,py);
+effreverbwindow->position(px,py);
+effechowindow->position(px,py);
+effchoruswindow->position(px,py);
+effphaserwindow->position(px,py);
+effalienwahwindow->position(px,py);
+effdistorsionwindow->position(px,py);
+effeqwindow->position(px,py);
+effdynamicfilterwindow->position(px,py);
+
+refresh(eff);} {}
+ }
+ Function {refresh(EffectMgr *eff_)} {open
+ } {
+ code {eff=eff_;
+this->hide();
+
+effnullwindow->hide();
+effreverbwindow->hide();
+effechowindow->hide();
+effchoruswindow->hide();
+effphaserwindow->hide();
+effalienwahwindow->hide();
+effdistorsionwindow->hide();
+effeqwindow->hide();
+effdynamicfilterwindow->hide();
+
+eqband=0;
+
+
+switch(eff->geteffect()){
+ case 1:
+ revp->value(eff->getpreset());
+ revp0->value(eff->geteffectpar(0));if (eff->insertion!=0) revp0->label("D/W");
+ revp2->value(eff->geteffectpar(2));
+ revp3->value(eff->geteffectpar(3));
+ revp9->value(eff->geteffectpar(9));
+ effreverbwindow->show();
+ break;
+ case 2:
+ echop->value(eff->getpreset());
+ echop0->value(eff->geteffectpar(0));if (eff->insertion!=0) echop0->label("D/W");
+ echop2->value(eff->geteffectpar(2));
+ echop5->value(eff->geteffectpar(5));
+ effechowindow->show();
+ break;
+ case 3:
+ chorusp->value(eff->getpreset());
+ chorusp0->value(eff->geteffectpar(0));if (eff->insertion!=0) chorusp0->label("D/W");
+ chorusp2->value(eff->geteffectpar(2));
+ chorusp6->value(eff->geteffectpar(6));
+ chorusp7->value(eff->geteffectpar(7));
+ chorusp8->value(eff->geteffectpar(8));
+ effchoruswindow->show();
+ break;
+ case 4:
+ phaserp->value(eff->getpreset());
+ phaserp0->value(eff->geteffectpar(0));if (eff->insertion!=0) phaserp0->label("D/W");
+ phaserp2->value(eff->geteffectpar(2));
+ phaserp5->value(eff->geteffectpar(5));
+ phaserp6->value(eff->geteffectpar(6));
+ phaserp7->value(eff->geteffectpar(7));
+ phaserp8->value(eff->geteffectpar(8));
+ effphaserwindow->show();
+ break;
+ case 5:
+ awp->value(eff->getpreset());
+ awp0->value(eff->geteffectpar(0));if (eff->insertion!=0) awp0->label("D/W");
+ awp2->value(eff->geteffectpar(2));
+ awp6->value(eff->geteffectpar(6));
+ awp8->value(eff->geteffectpar(8));
+ effalienwahwindow->show();
+ break;
+ case 6:
+ distp->value(eff->getpreset());
+ distp0->value(eff->geteffectpar(0));if (eff->insertion!=0) distp0->label("D/W");
+ distp3->value(eff->geteffectpar(3));
+ distp4->value(eff->geteffectpar(4));
+ distp5->value(eff->geteffectpar(5));
+ distp7->value(eff->geteffectpar(7));
+ effdistorsionwindow->show();
+ break;
+ case 7:
+ bandcounter->value(eqband);
+ bandcounter->do_callback();
+ typechoice->value(eff->geteffectpar(10));
+ eqgraph->redraw();
+ freqdial->value(eff->geteffectpar(11));
+ gaindial->value(eff->geteffectpar(12));
+ if (eff->geteffectpar(10)<6) gaindial->deactivate();
+ qdial->value(eff->geteffectpar(13));
+ stagescounter->value(eff->geteffectpar(14));
+ eqgraph->init(eff);
+ effeqwindow->show();
+ break;
+ case 8:
+ dfp->value(eff->getpreset());
+ dfp0->value(eff->geteffectpar(0));if (eff->insertion!=0) dfp0->label("D/W");
+ dfp2->value(eff->geteffectpar(2));
+ dfp6->value(eff->geteffectpar(6));
+ dfp7->value(eff->geteffectpar(7));
+ dfp9->value(eff->geteffectpar(9));
+
+
+ effdynamicfilterwindow->show();
+ break;
+ default:effnullwindow->show();
+ break;
+};
+
+this->show();} {selected
+ }
+ }
+ Function {refresh()} {} {
+ code {refresh(eff);} {}
+ }
+ decl {EffectMgr *eff;} {}
+ decl {int eqband;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl
new file mode 100644
index 00000000..090a77fc
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl
@@ -0,0 +1,851 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include "../Params/EnvelopeParams.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/fl_ask.H>} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class EnvelopeFreeEdit {: {public Fl_Box}
+} {
+ Function {EnvelopeFreeEdit(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {env=NULL;
+pair=NULL;} {}
+ }
+ Function {init(EnvelopeParams *env_)} {} {
+ code {env=env_;
+oldx=-1;
+currentpoint=-1;
+cpx=0;
+lastpoint=-1;} {}
+ }
+ Function {setpair(Fl_Box *pair_)} {} {
+ code {pair=pair_;} {}
+ }
+ Function {getpointx(int n)} {return_type int
+ } {
+ code {int lx=w()-10;
+int npoints=env->Penvpoints;
+
+float sum=0;
+for (int i=1;i<npoints;i++) sum+=env->getdt(i)+1;
+
+float sumbefore=0;//the sum of all points before the computed point
+for (int i=1;i<=n;i++) sumbefore+=env->getdt(i)+1;
+
+return((int) (sumbefore/(REALTYPE) sum*lx));} {}
+ }
+ Function {getpointy(int n)} {return_type int
+ } {
+ code {int ly=h()-10;
+
+return((int) ((1.0-env->Penvval[n]/127.0)*ly));} {}
+ }
+ Function {getnearest(int x,int y)} {return_type int
+ } {
+ code {x-=5;y-=5;
+
+int nearestpoint=0;
+int nearestval=1000000;//a big value
+for (int i=0;i<env->Penvpoints;i++){
+ int distance=abs(x-getpointx(i))+abs(y-getpointy(i));
+ if (distance<nearestval) {
+ nearestpoint=i;
+ nearestval=distance;
+ };
+};
+return(nearestpoint);} {}
+ }
+ Function {draw()} {private
+ } {
+ code {int ox=x(),oy=y(),lx=w(),ly=h();
+if (env->Pfreemode==0) env->converttofree();
+int npoints=env->Penvpoints;
+
+if (active_r()) fl_color(FL_BLACK);
+ else fl_color(90,90,90);
+if (!active_r()) currentpoint=-1;
+
+fl_rectf(ox,oy,lx,ly);
+
+ox+=5;oy+=5;lx-=10;ly-=10;
+
+//draw the lines
+fl_color(FL_GRAY);
+
+fl_line_style(FL_SOLID);
+fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+
+//draws the evelope points and lines
+Fl_Color alb=FL_WHITE;
+if (!active_r()) alb=fl_rgb_color(180,180,180);
+fl_color(alb);
+int oldxx=0,xx=0,oldyy=0,yy=getpointy(0);
+fl_rectf(ox-3,oy+yy-3,6,6);
+for (int i=1;i<npoints;i++){
+ oldxx=xx;oldyy=yy;
+ xx=getpointx(i);yy=getpointy(i);
+ if (i==currentpoint) fl_color(FL_RED);
+ else fl_color(alb);
+ fl_line(ox+oldxx,oy+oldyy,ox+xx,oy+yy);
+ fl_rectf(ox+xx-3,oy+yy-3,6,6);
+};
+
+//draw the last moved point point (if exists)
+if (lastpoint>=0){
+ fl_color(FL_CYAN);
+ fl_rectf(ox+getpointx(lastpoint)-5,oy+getpointy(lastpoint)-5,10,10);
+};
+
+//draw the sustain position
+if (env->Penvsustain>0){
+ fl_color(FL_YELLOW);
+ xx=getpointx(env->Penvsustain);
+ fl_line(ox+xx,oy+0,ox+xx,oy+ly);
+};
+
+//Show the envelope duration and the current line duration
+fl_font(FL_HELVETICA|FL_BOLD,10);
+float time=0.0;
+if (currentpoint<=0){
+ fl_color(alb);
+ for (int i=1;i<npoints;i++) time+=env->getdt(i);
+} else {
+ fl_color(255,0,0);
+ time=env->getdt(currentpoint);
+};
+char tmpstr[20];
+if (time<1000.0) snprintf((char *)&tmpstr,20,"%.1fms",time);
+ else snprintf((char *)&tmpstr,20,"%.2fs",time/1000.0);
+fl_draw(tmpstr,ox+lx-20,oy+ly-10,20,10,FL_ALIGN_RIGHT,NULL,0);} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {int x_=Fl::event_x()-x();
+int y_=Fl::event_y()-y();
+
+if (event==FL_PUSH) {
+ currentpoint=getnearest(x_,y_);
+ cpx=x_;
+ cpdt=env->Penvdt[currentpoint];
+ lastpoint=currentpoint;
+ redraw();
+ if (pair!=NULL) pair->redraw();
+};
+
+if (event==FL_RELEASE){
+ currentpoint=-1;
+ redraw();
+ if (pair!=NULL) pair->redraw();
+};
+
+if ((event==FL_DRAG)&&(currentpoint>=0)){
+ int ny=127-(int) (y_*127.0/h());
+ if (ny<0) ny=0;if (ny>127) ny=127;
+ env->Penvval[currentpoint]=ny;
+
+ int dx=(int)((x_-cpx)*0.1);
+ int newdt=cpdt+dx;
+ if (newdt<0) newdt=0;if (newdt>127) newdt=127;
+ if (currentpoint!=0) env->Penvdt[currentpoint]=newdt;
+ else env->Penvdt[currentpoint]=0;
+
+ redraw();
+ if (pair!=NULL) pair->redraw();
+};
+
+
+return(1);} {}
+ }
+ decl {Fl_Box *pair;} {}
+ decl {EnvelopeParams *env;} {}
+ decl {int oldx,oldy;} {}
+ decl {int currentpoint,cpx,cpdt;} {}
+ decl {int lastpoint;} {public
+ }
+}
+
+class EnvelopeUI {: {public Fl_Group,PresetsUI_}
+} {
+ Function {EnvelopeUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {env=NULL;
+freemodeeditwindow=NULL;
+envADSR=NULL;
+envASR=NULL;
+envADSRfilter=NULL;
+envASRbw=NULL;
+envfree=NULL;} {}
+ }
+ Function {~EnvelopeUI()} {} {
+ code {envwindow->hide();
+hide();
+freemodeeditwindow->hide();
+delete (freemodeeditwindow);} {}
+ }
+ Function {make_freemode_edit_window()} {} {
+ Fl_Window freemodeeditwindow {
+ label Envelope
+ xywh {60 308 575 180} type Double hide
+ } {
+ Fl_Box freeedit {
+ label Envelope
+ xywh {5 5 565 145} box FLAT_BOX color 0
+ code0 {o->init(env);}
+ class EnvelopeFreeEdit
+ }
+ Fl_Button addpoint {
+ label {Add point}
+ callback {int curpoint=freeedit->lastpoint;
+if (curpoint<0) return;
+//if (curpoint>=env->Penvpoints-1) return;
+if (env->Penvpoints>=MAX_ENVELOPE_POINTS) return;
+
+for (int i=env->Penvpoints;i>=curpoint+1;i--){
+ env->Penvdt[i]=env->Penvdt[i-1];
+ env->Penvval[i]=env->Penvval[i-1];
+};
+
+if (curpoint==0) {
+ env->Penvdt[1]=64;
+};
+
+env->Penvpoints++;
+if (curpoint<=env->Penvsustain) env->Penvsustain++;
+
+freeedit->lastpoint+=1;
+freeedit->redraw();
+envfree->redraw();
+
+sustaincounter->value(env->Penvsustain);
+sustaincounter->maximum(env->Penvpoints-2);}
+ xywh {115 155 80 20} box THIN_UP_BOX
+ code0 {if (env->Pfreemode==0) o->hide();}
+ }
+ Fl_Button deletepoint {
+ label {Delete point}
+ callback {int curpoint=freeedit->lastpoint;
+if (curpoint<1) return;
+if (curpoint>=env->Penvpoints-1) return;
+if (env->Penvpoints<=3) return;
+
+for (int i=curpoint+1;i<env->Penvpoints;i++){
+ env->Penvdt[i-1]=env->Penvdt[i];
+ env->Penvval[i-1]=env->Penvval[i];
+};
+
+env->Penvpoints--;
+
+if (curpoint<=env->Penvsustain) env->Penvsustain--;
+
+
+freeedit->lastpoint-=1;
+freeedit->redraw();
+envfree->redraw();
+
+sustaincounter->value(env->Penvsustain);
+sustaincounter->maximum(env->Penvpoints-2);}
+ xywh {200 155 80 20} box THIN_UP_BOX
+ code0 {if (env->Pfreemode==0) o->hide();}
+ }
+ Fl_Light_Button freemodebutton {
+ label FreeMode
+ callback {reinit();
+
+freeedit->lastpoint=-1;
+freeedit->redraw();}
+ tooltip {Enable or disable the freemode} xywh {10 155 95 25} box PLASTIC_UP_BOX
+ }
+ Fl_Check_Button forcedreleasecheck {
+ label frcR
+ callback {env->Pforcedrelease=(int)o->value();}
+ tooltip {Forced Relase} xywh {410 165 40 15} down_box DOWN_BOX labelsize 11
+ code0 {o->value(env->Pforcedrelease);}
+ code1 {if (env->Pfreemode==0) o->hide();}
+ }
+ Fl_Dial envstretchdial {
+ label {Str.}
+ callback {env->Penvstretch=(int)o->value();}
+ tooltip {Envelope stretch (on lower notes make the envelope longer)} xywh {380 155 25 25} box ROUND_UP_BOX labelsize 11 align 4 maximum 127 step 1
+ code0 {o->value(env->Penvstretch);}
+ code1 {if (env->Pfreemode==0) o->hide();}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label Close
+ callback {freemodeeditwindow->hide();}
+ xywh {510 155 60 25} box THIN_UP_BOX
+ }
+ Fl_Check_Button linearenvelopecheck {
+ label L
+ callback {env->Plinearenvelope=(int)o->value();}
+ tooltip {Linear Envelope} xywh {410 151 30 15} down_box DOWN_BOX labelsize 11
+ code0 {o->value(env->Plinearenvelope);}
+ code1 {if ((env->Pfreemode==0)||(env->Envmode>2)) o->hide();}
+ }
+ Fl_Counter sustaincounter {
+ label Sust
+ callback {env->Penvsustain=(int) o->value();
+freeedit->redraw();
+envfree->redraw();}
+ tooltip {Sustain (0 is disabled)} xywh {315 155 40 15} type Simple labelsize 12 align 4 minimum 0 maximum 127 step 1
+ code0 {o->value(env->Penvsustain);}
+ code1 {if (env->Pfreemode==0) o->hide();}
+ code2 {o->maximum(env->Penvpoints-2);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {465 160 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {482 160 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ Function {make_ADSR_window()} {} {
+ Fl_Window envADSR {
+ xywh {108 336 205 70} type Double color 50 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Group {} {
+ label {Amplitude Envelope}
+ xywh {0 0 205 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Dial e1adt {
+ label {A.dt}
+ callback {env->PA_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Attack time} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e1ddt {
+ label {D.dt}
+ callback {env->PD_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Decay time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PD_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e1rdt {
+ label {R.dt}
+ callback {env->PR_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release time} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e1sval {
+ label {S.val}
+ callback {env->PS_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Sustain value} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PS_val);}
+ class WidgetPDial
+ }
+ Fl_Check_Button e1forcedrelease {
+ label frcR
+ callback {env->Pforcedrelease=(int)o->value();}
+ tooltip {Forced Relase} xywh {180 35 20 15} down_box DOWN_BOX labelsize 11 align 6
+ code0 {o->value(env->Pforcedrelease);}
+ }
+ Fl_Dial e1envstretch {
+ label Stretch
+ callback {env->Penvstretch=(int)o->value();}
+ tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->Penvstretch);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label E
+ callback {freemodeeditwindow->show();}
+ tooltip {Envelope window} xywh {185 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Check_Button e1linearenvelope {
+ label L
+ callback {env->Plinearenvelope=(int)o->value();}
+ tooltip {The evelope is linear} xywh {180 20 15 15} down_box DOWN_BOX labelsize 11 align 4
+ code0 {o->value(env->Plinearenvelope);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {150 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {167 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ }
+ Function {make_ASR_window()} {} {
+ Fl_Window envASR {
+ xywh {71 320 210 70} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group {} {
+ label {Frequency Envelope}
+ xywh {0 0 210 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Dial e2aval {
+ label {A.val}
+ callback {env->PA_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e2adt {
+ label {A.dt}
+ callback {env->PA_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e2rval {
+ label {R.val}
+ callback {env->PR_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release value} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e2rdt {
+ label {R.dt}
+ callback {env->PR_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release time} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e2envstretch {
+ label Stretch
+ callback {env->Penvstretch=(int)o->value();}
+ tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->Penvstretch);}
+ class WidgetPDial
+ }
+ Fl_Check_Button e2forcedrelease {
+ label frcR
+ callback {env->Pforcedrelease=(int)o->value();}
+ tooltip {Forced release} xywh {180 25 15 25} down_box DOWN_BOX labelsize 11 align 6
+ code0 {o->value(env->Pforcedrelease);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {155 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {172 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Button {} {
+ label E
+ callback {freemodeeditwindow->show();}
+ tooltip {Envelope window} xywh {190 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10
+ }
+ }
+ }
+ Function {make_ADSRfilter_window()} {} {
+ Fl_Window envADSRfilter {
+ xywh {87 143 275 70} type Double color 50 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Group {} {
+ label {Filter Envelope}
+ xywh {0 0 275 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Dial e3aval {
+ label {A.val}
+ callback {env->PA_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e3adt {
+ label {A.dt}
+ callback {env->PA_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e3dval {
+ label {D.val}
+ callback {env->PD_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {decay value} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PD_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e3ddt {
+ label {D.dt}
+ callback {env->PD_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {decay time} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PD_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e3rdt {
+ label {R.dt}
+ callback {env->PR_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release time} xywh {145 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e3rval {
+ label {R.val}
+ callback {env->PR_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release value} xywh {180 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e3envstretch {
+ label Stretch
+ callback {env->Penvstretch=(int)o->value();}
+ tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {215 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->Penvstretch);}
+ class WidgetPDial
+ }
+ Fl_Check_Button e3forcedrelease {
+ label frcR
+ callback {env->Pforcedrelease=(int)o->value();}
+ tooltip {Forced Relase} xywh {250 30 15 20} down_box DOWN_BOX labelsize 11 align 6
+ code0 {o->value(env->Pforcedrelease);}
+ }
+ Fl_Button {} {
+ label E
+ callback {freemodeeditwindow->show();}
+ xywh {255 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {220 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {237 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ }
+ Function {make_ASRbw_window()} {} {
+ Fl_Window envASRbw {
+ xywh {224 539 210 70} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group {} {
+ label {BandWidth Envelope}
+ xywh {0 0 210 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Dial e4aval {
+ label {A.val}
+ callback {env->PA_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e4adt {
+ label {A.dt}
+ callback {env->PA_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PA_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e4rval {
+ label {R.val}
+ callback {env->PR_val=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release value} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_val);}
+ class WidgetPDial
+ }
+ Fl_Dial e4rdt {
+ label {R.dt}
+ callback {env->PR_dt=(int)o->value();
+freeedit->redraw();}
+ tooltip {Release time} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->PR_dt);}
+ class WidgetPDial
+ }
+ Fl_Dial e4envstretch {
+ label Stretch
+ callback {env->Penvstretch=(int)o->value();}
+ tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(env->Penvstretch);}
+ class WidgetPDial
+ }
+ Fl_Check_Button e4forcedrelease {
+ label frcR
+ callback {env->Pforcedrelease=(int)o->value();}
+ tooltip {Forced release} xywh {180 25 15 25} down_box DOWN_BOX labelsize 11 align 6
+ code0 {o->value(env->Pforcedrelease);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {155 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {172 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ Fl_Button {} {
+ label E
+ callback {freemodeeditwindow->show();}
+ xywh {190 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10
+ }
+ }
+ }
+ Function {make_free_window()} {} {
+ Fl_Window envfree {
+ xywh {373 413 205 70} type Double color 50 labelfont 1 hide resizable
+ class Fl_Group
+ } {
+ Fl_Group envfreegroup {
+ label {Amplitude Envelope}
+ xywh {0 0 205 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 resizable
+ } {
+ Fl_Box freeeditsmall {
+ label Envelope
+ callback {envfree->redraw();}
+ xywh {5 20 195 45} box FLAT_BOX color 0 resizable
+ code0 {o->init(env);}
+ class EnvelopeFreeEdit
+ }
+ Fl_Button {} {
+ label E
+ callback {freemodeeditwindow->show();}
+ xywh {185 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(env);}
+ xywh {150 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(env,this);}
+ xywh {167 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ }
+ Function {init(EnvelopeParams *env_)} {} {
+ code {env=env_;
+make_ADSR_window();
+make_ASR_window();
+make_ADSRfilter_window();
+make_ASRbw_window();
+make_free_window();
+
+make_freemode_edit_window();
+
+envwindow=NULL;
+if (env->Envmode==3) envfreegroup->label("Frequency Envelope");
+if (env->Envmode==4) envfreegroup->label("Filter Envelope");
+if (env->Envmode==5) envfreegroup->label("Bandwidth Envelope");
+
+freemodeeditwindow->label(this->label());
+
+
+freeeditsmall->setpair(freeedit);
+freeedit->setpair(freeeditsmall);
+
+
+refresh();} {}
+ }
+ Function {reinit()} {} {
+ code {if (env->Pfreemode!=0){
+ int answer=fl_ask("Disable the free mode of the Envelope?");
+ if (env->Pfreemode!=0) freemodebutton->value(1);
+ else freemodebutton->value(0);
+ if (answer==0) return;
+};
+
+if (env->Pfreemode==0) env->Pfreemode=1;
+ else env->Pfreemode=0;
+
+hide();
+int winx=freemodeeditwindow->x();
+int winy=freemodeeditwindow->y();
+
+freemodeeditwindow->hide();
+
+envwindow->hide();
+Fl_Group *par=envwindow->parent();
+par->hide();
+
+
+refresh();
+envwindow->show();
+par->redraw();
+
+par->show();
+show();
+freemodeeditwindow->position(winx,winy);
+freemodeeditwindow->show();
+
+if (env->Pfreemode!=0) {
+ freemodebutton->value(1);
+ addpoint->show();
+ deletepoint->show();
+ forcedreleasecheck->show();
+}else{
+ freemodebutton->value(0);
+ addpoint->hide();
+ deletepoint->hide();
+ forcedreleasecheck->hide();
+};} {selected
+ }
+ }
+ Function {refresh()} {} {
+ code {freemodebutton->value(env->Pfreemode);
+
+sustaincounter->value(env->Penvsustain);
+if (env->Pfreemode==0) sustaincounter->hide();
+ else sustaincounter->show();
+sustaincounter->maximum(env->Penvpoints-2);
+
+envstretchdial->value(env->Penvstretch);
+if (env->Pfreemode==0) envstretchdial->hide();
+ else envstretchdial->show();
+
+linearenvelopecheck->value(env->Plinearenvelope);
+if ((env->Pfreemode==0)||(env->Envmode>2)) linearenvelopecheck->hide();
+ else linearenvelopecheck->show();
+
+forcedreleasecheck->value(env->Pforcedrelease);
+if (env->Pfreemode==0) forcedreleasecheck->hide();
+
+freeedit->redraw();
+
+
+if (env->Pfreemode==0){
+ switch(env->Envmode){
+ case(1):
+ case(2):
+ e1adt->value(env->PA_dt);
+ e1ddt->value(env->PD_dt);
+ e1sval->value(env->PS_val);
+ e1rdt->value(env->PR_dt);
+ e1envstretch->value(env->Penvstretch);
+ e1linearenvelope->value(env->Plinearenvelope);
+ e1forcedrelease->value(env->Pforcedrelease);
+ break;
+ case(3):
+ e2aval->value(env->PA_val);
+ e2adt->value(env->PA_dt);
+ e2rdt->value(env->PR_dt);
+ e2rval->value(env->PR_val);
+ e2envstretch->value(env->Penvstretch);
+ e2forcedrelease->value(env->Pforcedrelease);
+ break;
+ case(4):
+ e3aval->value(env->PA_val);
+ e3adt->value(env->PA_dt);
+ e3dval->value(env->PD_val);
+ e3ddt->value(env->PD_dt);
+ e3rdt->value(env->PR_dt);
+ e3rval->value(env->PR_val);
+ e3envstretch->value(env->Penvstretch);
+ e3forcedrelease->value(env->Pforcedrelease);
+ break;
+ case(5):
+ e4aval->value(env->PA_val);
+ e4adt->value(env->PA_dt);
+ e4rdt->value(env->PR_dt);
+ e4rval->value(env->PR_val);
+ e4envstretch->value(env->Penvstretch);
+ e4forcedrelease->value(env->Pforcedrelease);
+ break;
+ default:
+ break;
+ };
+}else{
+ envfree->redraw();
+};
+
+
+envADSR->hide();
+envASR->hide();
+envADSRfilter->hide();
+envASRbw->hide();
+envfree->hide();
+
+if (env->Pfreemode==0){
+ switch(env->Envmode){
+ case(1):
+ case(2):
+ envwindow=envADSR;
+ break;
+ case(3):
+ envwindow=envASR;
+ break;
+ case(4):
+ envwindow=envADSRfilter;
+ break;
+ case(5):
+ envwindow=envASRbw;
+ break;
+ default:
+ break;
+ };
+}else{
+ envwindow=envfree;
+};
+
+envwindow->resize(this->x(),this->y(),this->w(),this->h());
+
+envwindow->show();} {}
+ }
+ decl {EnvelopeParams *env;} {}
+ decl {Fl_Group *envwindow;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/FilterUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/FilterUI.fl
new file mode 100644
index 00000000..44b50b94
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/FilterUI.fl
@@ -0,0 +1,624 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include "../Params/FilterParams.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/fl_ask.H>} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class FormantFilterGraph {: {public Fl_Box}
+} {
+ Function {FormantFilterGraph(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {pars=NULL;
+nvowel=NULL;
+nformant=NULL;
+graphpoints=NULL;} {}
+ }
+ Function {init(FilterParams *pars_,int *nvowel_,int *nformant_)} {} {
+ code {pars=pars_;
+nvowel=nvowel_;
+nformant=nformant_;
+oldx=-1;
+graphpoints=new REALTYPE [w()];} {}
+ }
+ Function {draw_freq_line(REALTYPE freq,int type)} {} {
+ code {REALTYPE freqx=pars->getfreqpos(freq);
+switch(type){
+ case 0:fl_line_style(FL_SOLID);break;
+ case 1:fl_line_style(FL_DOT);break;
+ case 2:fl_line_style(FL_DASH);break;
+};
+
+
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(x()+(int) (freqx*w()),y(),
+ x()+(int) (freqx*w()),y()+h());} {}
+ }
+ Function {draw()} {open
+ } {
+ code {int maxdB=30;
+int ox=x(),oy=y(),lx=w(),ly=h(),i,oiy;
+REALTYPE freqx;
+
+fl_color(FL_BLACK);
+fl_rectf(ox,oy,lx,ly);
+
+
+//draw the lines
+fl_color(FL_GRAY);
+
+fl_line_style(FL_SOLID);
+//fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+
+freqx=pars->getfreqpos(1000.0);
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(ox+(int) (freqx*lx),oy,
+ ox+(int) (freqx*lx),oy+ly);
+
+for (i=1;i<10;i++){
+ if(i==1){
+ draw_freq_line(i*100.0,0);
+ draw_freq_line(i*1000.0,0);
+ }else
+ if (i==5){
+ draw_freq_line(i*100.0,2);
+ draw_freq_line(i*1000.0,2);
+ }else{
+ draw_freq_line(i*100.0,1);
+ draw_freq_line(i*1000.0,1);
+ };
+};
+
+draw_freq_line(10000.0,0);
+draw_freq_line(20000.0,1);
+
+fl_line_style(FL_DOT);
+int GY=10;if (ly<GY*3) GY=-1;
+for (i=1;i<GY;i++){
+ int tmp=(int)(ly/(REALTYPE)GY*i);
+ fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
+};
+
+fl_color(FL_YELLOW);
+fl_font(FL_HELVETICA,10);
+if (*nformant<pars->Pnumformants){
+ draw_freq_line(pars->getformantfreq(pars->Pvowels[*nvowel].formants[*nformant].freq),2);
+
+//show some information (like current formant frequency,amplitude)
+ char tmpstr[20];
+
+ snprintf(tmpstr,20,"%.2f kHz",pars->getformantfreq(pars->Pvowels[*nvowel].formants[*nformant].freq)*0.001);
+ fl_draw(tmpstr,ox+1,oy+1,40,12,FL_ALIGN_LEFT,NULL,0);
+
+ snprintf(tmpstr,20,"%d dB",(int)( rap2dB(1e-9 + pars->getformantamp(pars->Pvowels[*nvowel].formants[*nformant].amp)) + pars->getgain() ));
+ fl_draw(tmpstr,ox+1,oy+15,40,12,FL_ALIGN_LEFT,NULL,0);
+
+};
+
+//draw the data
+
+fl_color(FL_RED);
+fl_line_style(FL_SOLID);
+
+pars->formantfilterH(*nvowel,lx,graphpoints);
+
+oiy=(int) ((graphpoints[0]/maxdB+1.0)*ly/2.0);
+for (i=1;i<lx;i++){
+ int iy=(int) ((graphpoints[i]/maxdB+1.0)*ly/2.0);
+ if ((iy>=0)&&(oiy>=0)&&(iy<ly)&&(oiy<lx))
+ fl_line(ox+i-1,oy+ly-oiy,ox+i,oy+ly-iy);
+ oiy=iy;
+};} {}
+ }
+ Function {~FormantFilterGraph()} {} {
+ code {delete(graphpoints);} {}
+ }
+ decl {FilterParams *pars;} {}
+ decl {int oldx,oldy;} {}
+ decl {int *nvowel,*nformant;} {}
+ decl {REALTYPE *graphpoints;} {}
+}
+
+class FilterUI {: {public Fl_Group,PresetsUI_}
+} {
+ Function {FilterUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {pars=NULL;
+velsnsamp=NULL;
+velsns=NULL;
+nvowel=0;nformant=0;nseqpos=0;} {}
+ }
+ Function {~FilterUI()} {} {
+ code {filterui->hide();
+formantparswindow->hide();
+hide();
+//delete (filterui);
+delete (formantparswindow);} {}
+ }
+ Function {make_window()} {} {
+ Fl_Window filterui {
+ xywh {211 312 275 75} type Double color 50 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Group filterparamswindow {
+ label {Filter Parameters}
+ xywh {0 0 275 75} box PLASTIC_UP_BOX color 183 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Choice analogfiltertypechoice {
+ label FilterType
+ callback {pars->Ptype=(int)o->value();
+pars->changed=true;}
+ tooltip {The Filter type} xywh {10 50 50 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code1 {o->value(pars->Ptype);}
+ } {
+ menuitem {} {
+ label LPF1
+ xywh {40 40 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HPF1
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LPF2
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HPF2
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label BPF2
+ xywh {82 82 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label NF2
+ xywh {94 94 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label PkF2
+ xywh {104 104 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LSh2
+ xywh {114 114 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HSh2
+ xywh {124 124 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Choice svfiltertypechoice {
+ label FilterType
+ callback {pars->Ptype=(int)o->value();
+pars->changed=true;}
+ tooltip {The Filter type} xywh {10 50 50 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code1 {o->value(pars->Ptype);}
+ } {
+ menuitem {} {
+ label 1LPF
+ xywh {134 134 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 1HPF
+ xywh {144 144 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 1BPF
+ xywh {154 154 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 1NF
+ xywh {164 164 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Choice filtertype {
+ label Category
+ callback {switchcategory((int)o->value());
+pars->changed=true;}
+ tooltip {The Category of the Filter (Analog/Formantic/etc.)} xywh {10 20 60 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code0 {o->value(pars->Pcategory);}
+ } {
+ menuitem {} {
+ label Analog
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Formant
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label StVarF
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial cfreqdial {
+ label {C.Freq}
+ callback {pars->Pfreq=(int)o->value();}
+ tooltip {Center Frequency of the Filter or the base position in the vowel's sequence} xywh {75 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->Pfreq);}
+ class WidgetPDial
+ }
+ Fl_Dial qdial {
+ label Q
+ callback {pars->Pq=(int)o->value();
+formantfiltergraph->redraw();}
+ tooltip {Filter resonance or bandwidth} xywh {110 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->Pq);}
+ class WidgetPDial
+ }
+ Fl_Dial freqtrdial {
+ label {freq.tr.}
+ callback {pars->Pfreqtrack=(int) o->value();}
+ tooltip {Filter frequency tracking (left is negative, middle is 0, and right is positive)} xywh {215 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->Pfreqtrack);}
+ class WidgetPDial
+ }
+ Fl_Dial vsnsadial {
+ label {V.SnsA.}
+ callback {if (velsnsamp!=NULL) *velsnsamp=(int)o->value();}
+ tooltip {Velocity sensing amount of the Filter} xywh {145 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial vsnsdial {
+ label {V.Sns.}
+ callback {if (velsns!=NULL) *velsns=(int)o->value();}
+ tooltip {Velocity Sensing Function of the Filter} xywh {180 25 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial gaindial {
+ label gain
+ callback {pars->Pgain=(int)o->value();
+formantfiltergraph->redraw();
+pars->changed=true;}
+ tooltip {Filter output gain/damp} xywh {250 35 20 20} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->Pgain);}
+ class WidgetPDial
+ }
+ Fl_Choice stcounter {
+ label St
+ callback {pars->Pstages=(int)o->value();
+formantfiltergraph->redraw();
+pars->changed=true;} open
+ tooltip {Filter stages (in order to increase dB/oct. value and the order of the filter)} xywh {235 5 35 15} down_box BORDER_BOX labelsize 10 textfont 1 textsize 10
+ code1 {for (int i=0;i<MAX_FILTER_STAGES;i++) {char tmp[10];snprintf(tmp,10,"%dx",i+1);o->add(tmp);};}
+ code2 {o->value(pars->Pstages);}
+ } {}
+ }
+ Fl_Button editbutton {
+ label Edit
+ callback {formantparswindow->show();}
+ xywh {15 40 50 25} box PLASTIC_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars);}
+ xywh {186 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this);}
+ xywh {203 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ Function {make_formant_window()} {} {
+ Fl_Window formantparswindow {
+ label {Formant Filter Parameters}
+ xywh {47 301 700 205} type Double hide
+ } {
+ Fl_Group {} {
+ xywh {485 47 105 113} box THIN_UP_BOX
+ } {
+ Fl_Counter {} {
+ label {Formant }
+ callback {nformant=(int) o->value();
+update_formant_window();
+formantfiltergraph->redraw();}
+ xywh {545 80 40 15} type Simple labelfont 1 labelsize 10 align 4 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->bounds(0,FF_MAX_FORMANTS-1);}
+ code1 {o->value(nformant);}
+ }
+ Fl_Counter {} {
+ label {Vowel no.}
+ callback {nvowel=(int) o->value();
+update_formant_window();
+formantfiltergraph->redraw();}
+ xywh {545 55 40 20} type Simple labelfont 1 labelsize 10 align 4 minimum 0 maximum 127 step 1 textfont 1 textsize 12
+ code0 {o->bounds(0,FF_MAX_VOWELS-1);}
+ code1 {o->value(nvowel);}
+ }
+ Fl_Group formantparsgroup {
+ xywh {490 105 95 50} box ENGRAVED_FRAME
+ } {
+ Fl_Dial formant_freq_dial {
+ label freq
+ callback {pars->Pvowels[nvowel].formants[nformant].freq=(int) o->value();
+formantfiltergraph->redraw();
+pars->changed=true;}
+ tooltip {Formant frequency} xywh {495 115 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial formant_q_dial {
+ label Q
+ callback {pars->Pvowels[nvowel].formants[nformant].q=(int) o->value();
+formantfiltergraph->redraw();
+pars->changed=true;}
+ tooltip {Formant's Q} xywh {525 115 24 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial formant_amp_dial {
+ label amp
+ callback {pars->Pvowels[nvowel].formants[nformant].amp=(int) o->value();
+formantfiltergraph->redraw();
+pars->changed=true;}
+ tooltip {Formant amplitude} xywh {555 115 24 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ }
+ Fl_Group {} {
+ xywh {590 47 100 113} box THIN_UP_BOX
+ } {
+ Fl_Counter {} {
+ label {Seq.Size}
+ callback {pars->Psequencesize=(int) o->value();
+update_formant_window();
+pars->changed=true;}
+ xywh {595 62 55 20} type Simple labelfont 1 labelsize 10 align 5 minimum 0 maximum 127 step 1 textfont 1 textsize 12
+ code0 {o->bounds(1,FF_MAX_SEQUENCE-1);}
+ code1 {o->value(pars->Psequencesize);}
+ }
+ Fl_Counter {} {
+ label {S.Pos.}
+ callback {nseqpos=(int) o->value();
+update_formant_window();
+pars->changed=true;}
+ tooltip {Current position from the sequence} xywh {595 97 40 15} type Simple labelfont 1 labelsize 10 align 9 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->bounds(0,FF_MAX_SEQUENCE-2);}
+ code1 {o->value(nseqpos);}
+ }
+ Fl_Counter vowel_counter {
+ label Vowel
+ callback {pars->Psequence[nseqpos].nvowel=(int) o->value();
+pars->changed=true;}
+ xywh {640 97 40 15} type Simple labelsize 10 align 1 minimum 0 maximum 127 step 1 textsize 11
+ code0 {o->bounds(0,FF_MAX_VOWELS-1);}
+ }
+ Fl_Check_Button {} {
+ label {Neg.Input}
+ callback {pars->Psequencereversed=(int) o->value();
+pars->changed=true;}
+ tooltip {Negate the input from LFO/envelopes/etc.} xywh {625 132 60 20} down_box DOWN_BOX labelsize 10
+ code0 {o->value(pars->Psequencereversed);}
+ }
+ Fl_Dial strchdial {
+ label Strch
+ callback {pars->Psequencestretch=(int) o->value();
+pars->changed=true;}
+ tooltip {Sequence Stretch} xywh {595 130 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Psequencestretch);}
+ class WidgetPDial
+ }
+ }
+ Fl_Counter {} {
+ label {Num.Formants}
+ callback {pars->Pnumformants=(int) o->value();
+update_formant_window();
+pars->changed=true;
+formantfiltergraph->redraw();}
+ xywh {485 15 65 20} type Simple labelfont 1 labelsize 11 align 5 minimum 0 maximum 127 step 1
+ code0 {o->bounds(1,FF_MAX_FORMANTS);}
+ code1 {o->value(pars->Pnumformants);}
+ }
+ Fl_Dial frsldial {
+ label {Fr.Sl.}
+ callback {pars->Pformantslowness=(int) o->value();
+pars->changed=true;}
+ tooltip {Formant's Slowness (Morphing)} xywh {565 15 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Pformantslowness);}
+ class WidgetPDial
+ }
+ Fl_Value_Output centerfreqvo {
+ label {C.f.}
+ callback {o->value(pars->getcenterfreq()/1000.0);}
+ tooltip {Center Frequency (kHz)} xywh {515 164 33 18} when 3 minimum 1 maximum 10 step 0.01 value 1 textfont 1
+ code0 {o->value(pars->getcenterfreq()/1000.0);}
+ }
+ Fl_Value_Output octavesfreqvo {
+ label {Oct.}
+ callback {o->value(pars->getoctavesfreq());}
+ tooltip {No. of octaves} xywh {515 182 33 18} when 3 minimum 1 maximum 127 step 1 value 5 textfont 1
+ code0 {o->value(pars->getoctavesfreq());}
+ }
+ Fl_Slider cfknob {
+ callback {pars->Pcenterfreq=(int)o->value();
+centerfreqvo->do_callback();
+formantfiltergraph->redraw();
+pars->changed=true;}
+ xywh {551 167 84 15} type {Horz Knob} box FLAT_BOX maximum 127
+ code0 {o->value(pars->Pcenterfreq);}
+ }
+ Fl_Slider octknob {
+ callback {pars->Poctavesfreq=(int)o->value();
+octavesfreqvo->do_callback();
+formantfiltergraph->redraw();}
+ xywh {551 185 84 15} type {Horz Knob} box FLAT_BOX maximum 127
+ code0 {o->value(pars->Poctavesfreq);}
+ }
+ Fl_Box formantfiltergraph {
+ xywh {5 5 475 195} box BORDER_BOX
+ code0 {o->init(pars,&nvowel,&nformant);}
+ class FormantFilterGraph
+ }
+ Fl_Dial wvknob {
+ label {Vw.Cl.}
+ callback {pars->Pvowelclearness=(int) o->value();
+pars->changed=true;}
+ tooltip {Vowel "clearness" (how the mixed vowels are avoided)} xywh {600 15 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Pvowelclearness);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label Close
+ callback {formantparswindow->hide();}
+ xywh {645 180 50 25} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars,nvowel);}
+ xywh {635 25 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this,nvowel);}
+ xywh {665 25 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Box {} {
+ label Vowel
+ xywh {635 10 55 15}
+ }
+ }
+ }
+ Function {update_formant_window()} {} {
+ code {formant_freq_dial->value(pars->Pvowels[nvowel].formants[nformant].freq);
+formant_q_dial->value(pars->Pvowels[nvowel].formants[nformant].q);
+formant_amp_dial->value(pars->Pvowels[nvowel].formants[nformant].amp);
+if (nformant<pars->Pnumformants) formantparsgroup->activate();
+ else formantparsgroup->deactivate();
+
+if (nseqpos<pars->Psequencesize) vowel_counter->activate();
+ else vowel_counter->deactivate();
+
+
+vowel_counter->value(pars->Psequence[nseqpos].nvowel);} {}
+ }
+ Function {refresh()} {} {
+ code {update_formant_window();
+formantfiltergraph->redraw();
+
+if (pars->Pcategory==0) svfiltertypechoice->value(pars->Ptype);
+if (pars->Pcategory==2) analogfiltertypechoice->value(pars->Ptype);
+
+filtertype->value(pars->Pcategory);
+
+cfreqdial->value(pars->Pfreq);
+qdial->value(pars->Pq);
+
+freqtrdial->value(pars->Pfreqtrack);
+gaindial->value(pars->Pgain);
+
+stcounter->value(pars->Pstages);
+
+int categ=pars->Pcategory;
+if ((categ==0)||(categ==2)) {
+ if (categ==0) {
+ analogfiltertypechoice->show();
+ svfiltertypechoice->hide();
+ } else {
+ svfiltertypechoice->show();
+ analogfiltertypechoice->hide();
+ };
+ editbutton->hide();
+ formantparswindow->hide();
+ cfreqdial->label("C.freq");
+} else {
+ analogfiltertypechoice->hide();
+ svfiltertypechoice->hide();
+ editbutton->show();
+ cfreqdial->label("BS.pos");
+};
+
+filterparamswindow->redraw();} {selected
+ }
+ }
+ Function {init(FilterParams *filterpars_,unsigned char *velsnsamp_,unsigned char *velsns_)} {} {
+ code {pars=filterpars_;
+velsnsamp=velsnsamp_;
+velsns=velsns_;
+
+make_window();
+end();
+make_formant_window();
+
+
+filterui->resize(this->x(),this->y(),this->w(),this->h());
+
+
+if (velsnsamp==NULL){
+ vsnsadial->deactivate();
+ vsnsadial->value(127);
+ } else vsnsadial->value(*velsnsamp);
+
+if (velsns==NULL){
+ vsnsdial->deactivate();
+ vsnsdial->value(127);
+ } else vsnsdial->value(*velsns);
+
+switchcategory(pars->Pcategory);
+
+
+formantparswindow->label(this->label());
+
+update_formant_window();} {}
+ }
+ Function {switchcategory(int newcat)} {} {
+ code {if (pars->Pcategory!=newcat){
+ pars->Pgain=64;
+ gaindial->value(64);
+ analogfiltertypechoice->value(0);
+ analogfiltertypechoice->do_callback();
+ svfiltertypechoice->value(0);
+ svfiltertypechoice->do_callback();
+};
+pars->Pcategory=newcat;
+
+refresh();} {}
+ }
+ Function {use_for_dynamic_filter()} {} {
+ code {freqtrdial->deactivate();
+gaindial->when(0);
+
+cfknob->when(FL_WHEN_RELEASE);
+octknob->when(FL_WHEN_RELEASE);
+
+frsldial->when(0);
+wvknob->when(0);
+formant_freq_dial->when(0);
+formant_q_dial->when(0);
+formant_amp_dial->when(0);
+strchdial->when(0);} {}
+ }
+ decl {FilterParams *pars;} {}
+ decl {unsigned char *velsnsamp,*velsns;} {}
+ decl {int nvowel,nformant,nseqpos;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/LFOUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/LFOUI.fl
new file mode 100644
index 00000000..373afc44
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/LFOUI.fl
@@ -0,0 +1,176 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0105
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include "../Params/LFOParams.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/fl_ask.H>} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class LFOUI {: {public Fl_Group, PresetsUI_}
+} {
+ Function {LFOUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {pars=NULL;} {}
+ }
+ Function {~LFOUI()} {} {
+ code {lfoui->hide();
+hide();
+//delete (lfoui);} {}
+ }
+ Function {make_window()} {} {
+ Fl_Window lfoui {
+ xywh {66 328 230 70} type Double color 50 labelfont 1 hide
+ class Fl_Group
+ } {
+ Fl_Group lfoparamswindow {
+ label LFO
+ xywh {0 0 230 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17
+ } {
+ Fl_Dial freq {
+ label {Freq.}
+ callback {pars->Pfreq=o->value();}
+ tooltip {LFO Frequency} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 step 1e-05
+ class WidgetPDial
+ }
+ Fl_Dial intensity {
+ label Depth
+ callback {pars->Pintensity=(int)o->value();}
+ tooltip {LFO Amount} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial delay {
+ label Delay
+ callback {pars->Pdelay=(int)o->value();}
+ tooltip {LFO delay} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial startphase {
+ label Start
+ callback {pars->Pstartphase=(int)o->value();}
+ tooltip {LFO Startphase (leftmost is Random)} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial randomness {
+ label {A.R.}
+ callback {pars->Prandomness=(int)o->value();}
+ tooltip {LFO Amplitude Randomness} xywh {180 7 20 20} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Choice LFOtype {
+ label Type
+ callback {pars->PLFOtype=(int)o->value();}
+ tooltip {LFO function} xywh {180 40 45 15} down_box BORDER_BOX labelsize 10 align 2 textsize 8
+ } {
+ menuitem {} {
+ label SINE
+ xywh {20 20 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label TRI
+ xywh {30 30 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label SQR
+ xywh {30 30 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {R.up}
+ xywh {40 40 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {R.dn}
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label E1dn
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label E2dn
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Check_Button continous {
+ label {C.}
+ callback {pars->Pcontinous=(int)o->value();}
+ tooltip {Continous LFO} xywh {165 35 15 15} down_box DOWN_BOX labelsize 11 align 2
+ }
+ Fl_Dial freqrand {
+ label {F.R.}
+ callback {pars->Pfreqrand=(int)o->value();}
+ tooltip {LFO Frequency Randomness} xywh {205 7 20 20} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial stretch {
+ label {Str.}
+ callback {pars->Pstretch=(int)o->value();}
+ tooltip {LFO stretch} xywh {144 30 20 20} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars);} selected
+ xywh {145 10 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this);} selected
+ xywh {162 10 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7
+ }
+ }
+ }
+ }
+ Function {refresh()} {} {
+ code {freq->value(pars->Pfreq);
+intensity->value(pars->Pintensity);
+startphase->value(pars->Pstartphase);
+delay->value(pars->Pdelay);
+continous->value(pars->Pcontinous);
+stretch->value(pars->Pstretch);
+randomness->value(pars->Prandomness);
+freqrand->value(pars->Pfreqrand);
+LFOtype->value(pars->PLFOtype);} {}
+ }
+ Function {init(LFOParams *lfopars_)} {} {
+ code {pars=lfopars_;
+
+make_window();
+end();
+
+refresh();
+
+lfoui->resize(this->x(),this->y(),this->w(),this->h());
+
+lfoparamswindow->label(this->label());} {}
+ }
+ decl {LFOParams *pars;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/MasterUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/MasterUI.fl
new file mode 100644
index 00000000..15a6fcc1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/MasterUI.fl
@@ -0,0 +1,1798 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "ADnoteUI.h"} {public
+}
+
+decl {\#include "SUBnoteUI.h"} {public
+}
+
+decl {\#include "EffUI.h"} {public
+}
+
+decl {\#include "VirKeyboard.h"} {public
+}
+
+decl {\#include "ConfigUI.h"} {public
+}
+
+decl {\#include "BankUI.h"} {public
+}
+
+decl {\#include "PartUI.h"} {public
+}
+
+decl {\#include "MicrotonalUI.h"} {public
+}
+
+decl {\#include "SeqUI.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "../Misc/Part.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+class VUMeter {: {public Fl_Box}
+} {
+ Function {VUMeter(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {master=NULL;
+npart=-1;} {}
+ }
+ Function {init(Master *master_,int part_)} {} {
+ code {//the "part_" parameters sets the part (if it is >=0), else it sets the master
+master=master_;
+label(NULL);
+npart=part_;
+olddbl=0.0;
+olddbr=0.0;
+oldrmsdbl=0.0;
+oldrmsdbr=0.0;} {}
+ }
+ Function {draw_master()} {} {
+ code {\#define MIN_DB (-48)
+
+int ox=x(); int oy=y(); int lx=w(); int ly=h();
+
+master->lock();
+REALTYPE dbl=rap2dB(master->vuoutpeakl);
+REALTYPE dbr=rap2dB(master->vuoutpeakr);
+REALTYPE rmsdbl=rap2dB(master->vurmspeakl);
+REALTYPE rmsdbr=rap2dB(master->vurmspeakr);
+REALTYPE maxdbl=rap2dB(master->vumaxoutpeakl);
+REALTYPE maxdbr=rap2dB(master->vumaxoutpeakr);
+int clipped=master->vuclipped;
+master->unlock();
+
+dbl=(MIN_DB-dbl)/MIN_DB;
+if (dbl<0.0) dbl=0.0;
+ else if (dbl>1.0)dbl=1.0;
+
+dbr=(MIN_DB-dbr)/MIN_DB;
+if (dbr<0.0) dbr=0.0;
+ else if (dbr>1.0) dbr=1.0;
+
+dbl=dbl*0.4+olddbl*0.6;
+dbr=dbr*0.4+olddbr*0.6;
+
+olddbl=dbl;
+olddbr=dbr;
+
+\#define VULENX (lx-35)
+\#define VULENY (ly/2-3)
+
+dbl*=VULENX;dbr*=VULENX;
+
+int idbl=(int) dbl;
+int idbr=(int) dbr;
+
+//compute RMS - start
+rmsdbl=(MIN_DB-rmsdbl)/MIN_DB;
+if (rmsdbl<0.0) rmsdbl=0.0;
+ else if (rmsdbl>1.0) rmsdbl=1.0;
+
+rmsdbr=(MIN_DB-rmsdbr)/MIN_DB;
+if (rmsdbr<0.0) rmsdbr=0.0;
+ else if (rmsdbr>1.0) rmsdbr=1.0;
+
+rmsdbl=rmsdbl*0.4+oldrmsdbl*0.6;
+rmsdbr=rmsdbr*0.4+oldrmsdbr*0.6;
+
+oldrmsdbl=rmsdbl;
+oldrmsdbr=rmsdbr;
+
+
+rmsdbl*=VULENX;rmsdbr*=VULENX;
+
+int irmsdbl=(int) rmsdbl;
+int irmsdbr=(int) rmsdbr;
+//compute RMS - end
+
+
+
+//draw the vu-meter lines
+//db
+fl_rectf(ox,oy,idbr,VULENY,0,200,255);
+fl_rectf(ox,oy+ly/2,idbl,VULENY,0,200,255);
+//black
+fl_rectf(ox+idbr,oy,VULENX-idbr,VULENY,0,0,0);
+fl_rectf(ox+idbl,oy+ly/2,VULENX-idbl,VULENY,0,0,0);
+
+//draw the scales
+REALTYPE tmp=VULENX*1.0/MIN_DB;
+for (int i=1;i<1-MIN_DB;i++){
+ int tx=VULENX+(int) (tmp*i);
+ fl_rectf(ox+tx,oy,1,VULENY+ly/2,0,160,200);
+ if (i%5==0) fl_rectf(ox+tx,oy,1,VULENY+ly/2,0,230,240);
+ if (i%10==0) fl_rectf(ox+tx-1,oy,2,VULENY+ly/2,0,225,255);
+};
+
+//rms
+if (irmsdbr>2) fl_rectf(ox+irmsdbr-1,oy,3,VULENY,255,255,0);
+if (irmsdbl>2) fl_rectf(ox+irmsdbl-1,oy+ly/2,3,VULENY,255,255,0);
+
+
+//draw the red box if clipping has occured
+if (clipped==0) fl_rectf(ox+VULENX+2,oy+1,lx-VULENX-3,ly-4,0,0,10);
+ else fl_rectf(ox+VULENX+2,oy+1,lx-VULENX-3,ly-4,250,10,10);
+
+//draw the maxdB
+fl_font(FL_HELVETICA|FL_BOLD,10);
+fl_color(255,255,255);
+char tmpstr[10];
+if ((maxdbl>MIN_DB-20)){
+ snprintf((char *)&tmpstr,10,"%ddB",(int)maxdbr);
+ fl_draw(tmpstr,ox+VULENX+1,oy+1,lx-VULENX-1,VULENY,FL_ALIGN_RIGHT,NULL,0);
+};
+if ((maxdbr>MIN_DB-20)){
+ snprintf((char *)&tmpstr,10,"%ddB",(int)maxdbl);
+ fl_draw(tmpstr,ox+VULENX+1,oy+ly/2+1,lx-VULENX-1,VULENY,FL_ALIGN_RIGHT,NULL,0);
+};} {}
+ }
+ Function {draw_part()} {} {
+ code {\#define MIN_DB (-48)
+int ox=x(); int oy=y(); int lx=w(); int ly=h();
+
+if (!active_r()){
+ master->lock();
+ int fakedb=master->fakepeakpart[npart];
+ master->unlock();
+ fl_rectf(ox,oy,lx,ly,140,140,140);
+ if (fakedb>0){
+ fakedb=(int)(fakedb/255.0*ly)+4;
+ fl_rectf(ox+2,oy+ly-fakedb,lx-4,fakedb,0,0,0);
+ };
+
+ return;
+};
+
+//draw the vu lines
+master->lock();
+ REALTYPE db=rap2dB(master->vuoutpeakpart[npart]);
+master->unlock();
+
+db=(MIN_DB-db)/MIN_DB;
+if (db<0.0) db=0.0;
+ else if (db>1.0) db=1.0;
+
+db*=ly-2;
+
+int idb=(int) db;
+
+fl_rectf(ox,oy+ly-idb,lx,idb,0,200,255);
+fl_rectf(ox,oy,lx,ly-idb,0,0,0);
+
+
+//draw the scales
+REALTYPE tmp=ly*1.0/MIN_DB;
+ for (int i=1;i<1-MIN_DB;i++){
+ int ty=ly+(int) (tmp*i);
+ if (i%5==0) fl_rectf(ox,oy+ly-ty,lx,1,0,160,200);
+ if (i%10==0) fl_rectf(ox,oy+ly-ty,lx,1,0,230,240);
+};} {}
+ }
+ Function {draw()} {} {
+ code {if (npart>=0) draw_part();
+ else draw_master();} {}
+ }
+ Function {tickdraw(VUMeter *o)} {return_type {static void}
+ } {
+ code {o->redraw();} {}
+ }
+ Function {tick(void *v)} {return_type {static void}
+ } {
+ code {tickdraw((VUMeter *) v);
+Fl::add_timeout(1.0/25.0,tick,v);//25 fps} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {switch(event){
+ case FL_SHOW:
+ tick(this);
+ break;
+ case FL_HIDE:
+ Fl::remove_timeout(tick,this);
+ break;
+ case FL_PUSH:
+ if (npart>=0) break;
+ master->lock();
+ master->vuresetpeaks();
+ master->unlock();
+ break;
+};
+return(1);} {}
+ }
+ decl {Master *master;} {}
+ decl {int npart;} {}
+ decl {float olddbl,olddbr;} {}
+ decl {float oldrmsdbl,oldrmsdbr;} {}
+}
+
+class SysEffSend {: {public WidgetPDial}
+} {
+ Function {SysEffSend(int x,int y, int w, int h, const char *label=0):WidgetPDial(x,y,w,h,label)} {} {
+ code {master=NULL;
+neff1=0;
+neff2=0;} {}
+ }
+ Function {init(Master *master_,int neff1_,int neff2_)} {} {
+ code {neff1=neff1_;
+neff2=neff2_;
+master=master_;
+minimum(0);
+maximum(127);
+step(1);
+labelfont(1);
+labelsize(10);
+align(FL_ALIGN_TOP);
+
+value(master->Psysefxsend[neff1][neff2]);
+char tmp[20];snprintf(tmp,20,"%d->%d",neff1+1,neff2+1);this->label(strdup(tmp));} {}
+ }
+ Function {~SysEffSend()} {} {
+ code {hide();} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {if ((event==FL_PUSH) || (event==FL_DRAG)){
+ master->setPsysefxsend(neff1,neff2,(int) value());
+};
+
+return(WidgetPDial::handle(event));} {}
+ }
+ decl {Master *master;} {}
+ decl {int neff1;} {}
+ decl {int neff2;} {}
+}
+
+class Panellistitem {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window panellistitem {
+ private xywh {315 213 70 260} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group panellistitemgroup {
+ private xywh {0 20 70 240} box PLASTIC_THIN_UP_BOX
+ code0 {if (master->part[npart]->Penabled==0) o->deactivate();}
+ } {
+ Fl_Group {} {
+ xywh {45 65 15 110} box ENGRAVED_FRAME
+ } {
+ Fl_Box {} {
+ label {V U}
+ xywh {45 65 15 110} box FLAT_BOX color 0 selection_color 75 labelcolor 55 align 128
+ code0 {o->init(master,npart);}
+ class VUMeter
+ }
+ }
+ Fl_Button partname {
+ label { }
+ callback {if ((int)bankui->cbwig->value()!=(npart+1)){
+ bankui->cbwig->value(npart+1);
+ bankui->cbwig->do_callback();
+};
+bankui->show();}
+ xywh {5 27 60 30} box THIN_DOWN_BOX down_box FLAT_BOX labelfont 1 labelsize 10 align 208
+ }
+ Fl_Slider partvolume {
+ callback {master->part[npart]->setPvolume((int) o->value());}
+ xywh {10 65 30 110} type {Vert Knob} box FLAT_BOX minimum 127 maximum 0 step 1 value 127
+ code0 {o->value(master->part[npart]->Pvolume);}
+ }
+ Fl_Dial partpanning {
+ callback {master->part[npart]->setPpanning((int) o->value());}
+ xywh {20 180 30 30} maximum 127 step 1
+ code0 {o->value(master->part[npart]->Ppanning);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label edit
+ callback {if ((int)bankui->cbwig->value()!=(npart+1)){
+ bankui->cbwig->value(npart+1);
+ bankui->cbwig->do_callback();
+};}
+ xywh {15 235 40 20} box PLASTIC_UP_BOX labelsize 10
+ }
+ Fl_Choice partrcv {
+ callback {master->part[npart]->Prcvchn=(int) o->value();} open
+ tooltip {receive from Midi channel} xywh {10 213 50 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Ch%d",i+1);if (i!=9) o->add(nrstr); else o->add("Dr10");};}
+ code1 {o->value(master->part[npart]->Prcvchn);}
+ } {}
+ }
+ Fl_Check_Button partenabled {
+ label 01
+ callback {master->lock();
+ master->partonoff(npart,(int) o->value());
+master->unlock();
+
+if ((int) o->value()==0) panellistitemgroup->deactivate();
+ else {
+ panellistitemgroup->activate();
+ if ((int)bankui->cbwig->value()!=(npart+1)){
+ bankui->cbwig->value(npart+1);
+ bankui->cbwig->do_callback();
+ };
+};
+
+o->redraw();}
+ private xywh {5 0 45 20} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 24
+ code0 {char tmp[10];snprintf(tmp,10,"%d",npart+1);o->label(strdup(tmp));}
+ code1 {o->value(master->part[npart]->Penabled);}
+ }
+ }
+ }
+ Function {Panellistitem(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {npart=0;
+master=NULL;
+bankui=NULL;} {}
+ }
+ Function {init(Master *master_, int npart_,BankUI *bankui_)} {} {
+ code {npart=npart_;
+master=master_;
+bankui=bankui_;
+
+make_window();
+panellistitem->show();
+end();} {}
+ }
+ Function {refresh()} {open
+ } {
+ code {partenabled->value(master->part[npart]->Penabled);
+if (master->part[npart]->Penabled!=0) panellistitemgroup->activate();
+ else panellistitemgroup->deactivate();
+
+partvolume->value(master->part[npart]->Pvolume);
+partpanning->value(master->part[npart]->Ppanning);
+partrcv->value(master->part[npart]->Prcvchn);
+
+partname->label((char *)master->part[npart]->Pname);
+
+if ((int)bankui->cbwig->value()!=(npart+1))
+ panellistitemgroup->color(fl_rgb_color(160,160,160));
+else
+ panellistitemgroup->color(fl_rgb_color(50,190,240));
+
+panellistitemgroup->redraw();} {}
+ }
+ Function {~Panellistitem()} {} {
+ code {panellistitem->hide();
+//delete(panellistitem);} {}
+ }
+ decl {int npart;} {}
+ decl {Master *master;} {}
+ decl {BankUI *bankui;} {}
+}
+
+class MasterUI {} {
+ Function {make_window()} {} {
+ Fl_Window masterwindow {
+ label zynaddsubfx
+ callback {\#ifdef VSTAUDIOOUT
+fl_alert("ZynAddSubFX could not be closed this way, because it's a VST plugin. Please use the host aplication to close it.");
+\#else
+if (fl_ask("Exit and leave the unsaved data?")) {
+ config.save();
+ *exitprogram=1;
+};
+\#endif} selected
+ xywh {353 127 390 465} type Double hide
+ } {
+ Fl_Menu_Bar mastermenu {
+ xywh {-5 0 690 25}
+ } {
+ submenu {} {
+ label {&File}
+ xywh {0 0 100 20}
+ } {
+ menuitem {} {
+ label {&New (erase all)...}
+ callback {do_new_master();}
+ xywh {20 20 100 20}
+ }
+ menuitem {} {
+ label {&Open Parameters...}
+ callback {do_load_master();}
+ xywh {20 20 100 20}
+ }
+ menuitem {} {
+ label {&Save All Parameters...}
+ callback {do_save_master();}
+ xywh {10 10 100 20} divider
+ }
+ menuitem {} {
+ label {&Load Scale Settings...}
+ callback {char *filename;
+filename=fl_file_chooser("Open:","({*.xsz})",NULL,0);
+if (filename==NULL) return;
+
+master->lock();
+ //clear all parameters
+ master->microtonal.defaults();
+
+ //load the data
+ int result=master->microtonal.loadXML(filename);
+master->unlock();
+
+
+ delete microtonalui;
+ microtonalui=new MicrotonalUI(&master->microtonal);
+
+if (result==-10) fl_alert("Error: Could not load the file\\nbecause it is not a scale file.");
+ else if (result<0) fl_alert("Error: Could not load the file.");}
+ xywh {35 35 100 20}
+ }
+ menuitem {} {
+ label {Save Sc&ale Settings ..}
+ callback {char *filename;
+int result=0;
+
+filename=fl_file_chooser("Save:","({*.xsz})",NULL,0);
+if (filename==NULL) return;
+filename=fl_filename_setext(filename,".xsz");
+
+result=fileexists(filename);
+if (result) {
+ result=0;
+ if (!fl_ask("The file exists. \\nOverwrite it?")) return;
+
+};
+
+
+master->lock();
+result=master->microtonal.saveXML(filename);
+master->unlock();
+
+if (result<0) fl_alert("Error: Could not save the file.");
+
+
+updatepanel();}
+ xywh {25 25 100 20}
+ }
+ menuitem {} {
+ label {Show Scale Settings...}
+ callback {microtonalui->show();}
+ xywh {0 0 100 20} divider
+ }
+ menuitem {} {
+ label {&Settings...}
+ callback {configui->show();}
+ xywh {25 25 100 20} divider
+ }
+ menuitem {} {
+ label {&Copyright...}
+ callback {aboutwindow->show();}
+ xywh {15 15 100 20} divider
+ }
+ menuitem {} {
+ label {E&xit}
+ callback {masterwindow->do_callback();}
+ xywh {10 10 100 20}
+ }
+ }
+ submenu {} {
+ label {&Instrument}
+ xywh {10 10 100 20}
+ } {
+ menuitem {} {
+ label {&Clear Instrument...}
+ callback {if (fl_ask("Clear instrument's parameters ?")){
+// int npart=(int)npartcounter->value()-1;
+ master->lock();
+ master->part[npart]->defaultsinstrument();
+ master->unlock();
+
+ npartcounter->do_callback();
+};
+
+updatepanel();}
+ xywh {35 35 100 20}
+ }
+ menuitem {} {
+ label {&Open Instrument...}
+ callback {const char *filename;
+filename=fl_file_chooser("Load:","({*.xiz})",NULL,0);
+if (filename==NULL) return;
+
+
+master->lock();
+// int npart=(int)npartcounter->value()-1;
+
+ //clear all instrument parameters, first
+ master->part[npart]->defaultsinstrument();
+
+ //load the instr. parameters
+ int result=master->part[npart]->loadXMLinstrument(filename);
+
+master->unlock();
+master->part[npart]->applyparameters();
+
+npartcounter->do_callback();
+updatepanel();
+
+if (result==-10) fl_alert("Error: Could not load the file\\nbecause it is not an instrument file.");
+ else if (result<0) fl_alert("Error: Could not load the file.");}
+ xywh {30 30 100 20}
+ }
+ menuitem {} {
+ label {&Save Instrument ...}
+ callback {char *filename;
+
+filename=fl_file_chooser("Save:","({*.xiz})",NULL,0);
+if (filename==NULL) return;
+filename=fl_filename_setext(filename,".xiz");
+
+int result=fileexists(filename);
+if (result) {
+ result=0;
+ if (!fl_ask("The file exists. \\nOverwrite it?")) return;
+
+};
+
+
+master->lock();
+result=master->part[npart]->saveXML(filename);
+master->unlock();
+
+if (result<0) fl_alert("Error: Could not save the file.");
+
+updatepanel();}
+ xywh {20 20 100 20} divider
+ }
+ menuitem {} {
+ label {Show Instrument &Bank...}
+ callback {bankui->show();}
+ xywh {0 0 100 20} divider
+ }
+ menuitem {} {
+ label {&Virtual Keyboard...}
+ callback {virkeyboard->show();}
+ xywh {10 10 100 20}
+ }
+ }
+ submenu recordmenu {
+ label {&Record}
+ xywh {0 0 100 20}
+ } {
+ menuitem {} {
+ label {&Choose WAV file...}
+ callback {char *filename;
+recordbutton->deactivate();
+pausebutton->deactivate();
+pauselabel->deactivate();
+stopbutton->deactivate();
+filename=fl_file_chooser("Record to audio file:","(*.wav)",NULL,0);
+if (filename==NULL) return;
+fl_filename_setext(filename,".wav");
+
+int result=master->HDDRecorder.preparefile(filename,0);
+if (result==1) {
+ result=0;
+ if (fl_ask("The file exists. \\nOverwrite it?"))
+ master->HDDRecorder.preparefile(filename,1);
+};
+if (result==0) recordbutton->activate();
+
+if (result!=0) fl_alert("Error: Could not save the file.");}
+ xywh {0 0 100 20}
+ }
+ }
+ submenu {} {
+ label {&Sequencer}
+ xywh {0 0 100 20} hide
+ } {
+ menuitem {} {
+ label {Show &Sequencer...}
+ callback {sequi->show();}
+ xywh {0 0 100 20}
+ }
+ }
+ submenu {} {
+ label Misc
+ xywh {10 10 100 20}
+ } {
+ menuitem {} {
+ label {Switch User Interface Mode}
+ callback {if (fl_ask("Switch the User Interface to Beginner mode ?")){
+ masterwindow->hide();
+ refresh_master_ui();
+ simplemasterwindow->show();
+ config.cfg.UserInterfaceMode=2;
+};}
+ xywh {10 10 100 20}
+ }
+ }
+ }
+ Fl_Dial mastervolumedial {
+ label {M.Vol}
+ callback {master->setPvolume((int) o->value());}
+ tooltip {Master Volume} xywh {5 30 30 30} box ROUND_UP_BOX labelfont 1 labelsize 12 align 130 maximum 127 step 1
+ code0 {o->value(master->Pvolume);}
+ class WidgetPDial
+ }
+ Fl_Counter masterkeyshiftcounter {
+ label {Master KeyShift}
+ callback {master->setPkeyshift((int) o->value()+64);}
+ xywh {45 31 90 20} labelsize 12 minimum -64 maximum 64 step 1
+ code0 {o->lstep(12);}
+ code1 {o->value(master->Pkeyshift-64);}
+ }
+ Fl_Button {} {
+ label {Panic!}
+ callback {virkeyboard->relaseallkeys();
+master->lock();
+master->shutup=1;
+master->unlock();}
+ xywh {293 29 92 31} box PLASTIC_UP_BOX color 231 labelfont 1
+ }
+ Fl_Group partuigroup {
+ xywh {0 242 390 183} box ENGRAVED_FRAME
+ } {
+ Fl_Group partui {
+ xywh {4 245 383 175} box FLAT_BOX
+ code0 {o->init(master->part[0],master,0,bankui);}
+ code1 {o->show();}
+ class PartUI
+ } {}
+ }
+ Fl_Tabs {} {
+ xywh {0 80 390 160}
+ } {
+ Fl_Group {} {
+ label {System Effects} open
+ xywh {0 100 390 140} box ENGRAVED_FRAME labeltype EMBOSSED_LABEL labelsize 18 align 25
+ } {
+ Fl_Counter syseffnocounter {
+ label {Sys.Effect No.}
+ callback {nsyseff=(int) o->value()-1;
+sysefftype->value(master->sysefx[nsyseff]->geteffect());
+syseffectui->refresh(master->sysefx[nsyseff]);}
+ xywh {5 120 80 20} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_SYS_EFX);}
+ code1 {o->value(nsyseff+1);}
+ }
+ Fl_Choice sysefftype {
+ label EffType
+ callback {master->lock();
+master->sysefx[nsyseff]->changeeffect((int) o->value());
+master->unlock();
+syseffectui->refresh(master->sysefx[nsyseff]);}
+ xywh {315 125 70 15} down_box BORDER_BOX labelsize 11
+ code0 {o->value(master->sysefx[nsyseff]->geteffect());}
+ } {
+ menuitem {} {
+ label {No Effect}
+ xywh {10 10 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Reverb
+ xywh {20 20 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Echo
+ xywh {30 30 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Chorus
+ xywh {40 40 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Phaser
+ xywh {50 50 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label AlienWah
+ xywh {60 60 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Distortion
+ xywh {70 70 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label EQ
+ xywh {80 80 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label DynFilter
+ xywh {90 90 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Group syseffectuigroup {
+ xywh {5 140 380 95} box FLAT_BOX color 48
+ } {
+ Fl_Group syseffectui {
+ xywh {5 140 380 95}
+ code0 {o->init(master->sysefx[nsyseff]);}
+ class EffUI
+ } {}
+ }
+ Fl_Button {} {
+ label {Send to...}
+ callback {syseffsendwindow->show();}
+ xywh {95 120 75 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(master->sysefx[nsyseff]);}
+ xywh {215 124 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {master->lock();
+presetsui->paste(master->sysefx[nsyseff],syseffectui);
+master->unlock();}
+ xywh {245 124 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ Fl_Group {} {
+ label {Insertion Effects}
+ xywh {0 100 390 140} box ENGRAVED_FRAME labeltype EMBOSSED_LABEL labelsize 18 align 25 hide
+ } {
+ Fl_Counter inseffnocounter {
+ label {Ins.Effect No.}
+ callback {ninseff=(int) o->value()-1;
+insefftype->value(master->insefx[ninseff]->geteffect());
+inseffpart->value(master->Pinsparts[ninseff]+2);
+inseffectui->refresh(master->insefx[ninseff]);
+
+if (master->Pinsparts[ninseff]!=-1) {
+ insefftype->activate();
+ inseffectui->activate();
+ inseffectuigroup->activate();
+} else {
+ insefftype->deactivate();
+ inseffectui->deactivate();
+ inseffectuigroup->deactivate();
+};}
+ xywh {5 120 80 20} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_INS_EFX);}
+ code1 {o->value(ninseff+1);}
+ }
+ Fl_Choice insefftype {
+ label EffType
+ callback {master->lock();
+master->insefx[ninseff]->changeeffect((int) o->value());
+master->unlock();
+inseffectui->refresh(master->insefx[ninseff]);
+inseffectui->show();}
+ xywh {315 125 70 15} down_box BORDER_BOX labelsize 11
+ code0 {o->value(master->insefx[ninseff]->geteffect());}
+ code1 {if (master->Pinsparts[ninseff]== -1) o->deactivate();}
+ } {
+ menuitem {} {
+ label {No Effect}
+ xywh {25 25 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Reverb
+ xywh {35 35 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Echo
+ xywh {45 45 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Chorus
+ xywh {55 55 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Phaser
+ xywh {60 60 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label AlienWah
+ xywh {70 70 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Distortion
+ xywh {80 80 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label EQ
+ xywh {90 90 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label DynFilter
+ xywh {100 100 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Group inseffectuigroup {
+ xywh {5 140 380 95} box FLAT_BOX color 48
+ } {
+ Fl_Group inseffectui {
+ xywh {5 140 380 95}
+ code0 {o->init(master->insefx[ninseff]);}
+ code1 {if (master->Pinsparts[ninseff]== -1) o->deactivate();}
+ class EffUI
+ } {}
+ }
+ Fl_Choice inseffpart {
+ label {Insert To.}
+ callback {master->Pinsparts[ninseff]=(int) o->value()-2;
+if ((int) o->value()==1){
+ inseffectuigroup->deactivate();
+ insefftype->deactivate();
+ inseffectui->deactivate();
+} else {
+ inseffectuigroup->activate();
+ insefftype->activate();
+ inseffectui->activate();
+};
+master->insefx[ninseff]->cleanup();} open
+ xywh {95 120 80 20} down_box BORDER_BOX labelfont 1 labelsize 10 align 5 textsize 10
+ code0 {o->add("Master Out");o->add("Off");}
+ code1 {char tmp[50]; for (int i=0;i<NUM_MIDI_PARTS;i++) {sprintf(tmp,"Part %2d",i+1);o->add(tmp);};}
+ code3 {o->value(master->Pinsparts[ninseff]+2);}
+ } {}
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(master->insefx[ninseff]);}
+ xywh {215 124 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {master->lock();
+presetsui->paste(master->insefx[ninseff],inseffectui);
+master->unlock();}
+ xywh {245 124 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ }
+ Fl_Button {} {
+ label Scales
+ callback {microtonalui->show();}
+ xywh {330 80 56 19} box PLASTIC_UP_BOX color 231 labeltype ENGRAVED_LABEL labelfont 1
+ }
+ Fl_Group {} {
+ xywh {172 30 117 45} box ENGRAVED_BOX
+ } {
+ Fl_Button recordbutton {
+ label {Rec.}
+ callback {o->deactivate();
+recordmenu->deactivate();
+recordmenu->label("&Record(*)");
+stopbutton->activate();
+pausebutton->activate();
+pauselabel->activate();
+master->HDDRecorder.start();
+master->vuresetpeaks();
+mastermenu->redraw();}
+ tooltip {Start Recording} xywh {181 36 21 21} box ROUND_UP_BOX color 88 labelfont 1 labelsize 10 align 2 deactivate
+ }
+ Fl_Button stopbutton {
+ label Stop
+ callback {o->deactivate();
+master->HDDRecorder.stop();
+recordbutton->deactivate();
+pausebutton->deactivate();
+pauselabel->deactivate();
+recordmenu->activate();
+recordmenu->label("&Record");
+mastermenu->redraw();}
+ tooltip {Stop Recording and close the audio file} xywh {259 36 21 21} box THIN_UP_BOX color 4 labelfont 1 labelsize 10 align 2 deactivate
+ }
+ Fl_Button pausebutton {
+ label {@||}
+ callback {o->deactivate();
+master->HDDRecorder.pause();
+recordbutton->activate();
+mastermenu->redraw();}
+ tooltip {Pause Recording} xywh {220 36 21 21} box THIN_UP_BOX color 4 selection_color 4 labelfont 1 labelcolor 3 align 16 deactivate
+ }
+ Fl_Box pauselabel {
+ label Pause
+ xywh {214 56 30 15} labelfont 1 labelsize 10 deactivate
+ }
+ }
+ Fl_Group {} {
+ xywh {1 427 389 33} box ENGRAVED_FRAME
+ } {
+ Fl_Box {} {
+ label {VU-Meter}
+ xywh {4 430 384 30} box FLAT_BOX color 48 selection_color 75
+ code0 {o->init(master,-1);}
+ class VUMeter
+ }
+ }
+ Fl_Check_Button nrpnbutton {
+ label NRPN
+ callback {master->ctl.NRPN.receive=(int) o->value();}
+ tooltip {Receive NRPNs} xywh {45 65 47 10} down_box DOWN_BOX labelsize 10
+ code0 {o->value(master->ctl.NRPN.receive);}
+ }
+ Fl_Counter npartcounter {
+ callback {int nval=(int) o->value()-1;
+partuigroup->remove(partui);
+delete partui;
+partui=new PartUI(0,0,765,525);
+partuigroup->add(partui);
+partui->init(master->part[nval],master,nval,bankui);
+partui->redraw();
+o->redraw();
+npart=nval;
+
+updatepanel();
+simplenpartcounter->value(nval+1);
+simplenpartcounter->do_callback();}
+ tooltip {The part number} xywh {5 247 70 23} type Simple labelfont 1 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_MIDI_PARTS);}
+ code1 {bankui->init(o);}
+ }
+ Fl_Button {} {
+ label vK
+ callback {virkeyboard->show();}
+ tooltip {Virtual Keyboard} xywh {292 80 35 19} box PLASTIC_UP_BOX color 231 labeltype ENGRAVED_LABEL labelfont 1
+ }
+ Fl_Button {} {
+ label {R.D.}
+ callback {globalfinedetuneslider->value(64.0);
+globalfinedetuneslider->do_callback();}
+ tooltip {Master fine detune reset} xywh {140 65 30 10} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Dial globalfinedetuneslider {
+ label {F.Det.}
+ callback {master->microtonal.Pglobalfinedetune=(int) o->value();}
+ tooltip {global fine detune} xywh {143 30 20 20} box ROUND_UP_BOX labelsize 10 align 130 maximum 127 step 1 value 64
+ code0 {o->value(master->microtonal.Pglobalfinedetune);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label {Panel Window}
+ callback {updatepanel();
+panelwindow->show();}
+ tooltip {Panel Window} xywh {293 62 92 16} box PLASTIC_UP_BOX color 183 labelfont 1 labelsize 10
+ }
+ }
+ Fl_Window aboutwindow {
+ label {Copyright...}
+ xywh {629 278 330 210} type Double hide
+ } {
+ Fl_Box {} {
+ label {Copyright (c) 2002-2005 Nasca O. Paul}
+ xywh {5 35 320 25} labeltype EMBOSSED_LABEL labelsize 18 align 16
+ }
+ Fl_Box {} {
+ label {This is free software; you may redistribute it and/or modify it under the terms of the
+version 2 of the GNU General Public License as published by the Free Software Fundation.
+ This program comes with
+ ABSOLUTELY NO WARRANTY.
+ See the version 2 of the
+GNU General Public License for details.}
+ xywh {0 60 325 115} labelfont 1 labelsize 12 align 144
+ }
+ Fl_Button {} {
+ label {Close this window}
+ callback {aboutwindow->hide();}
+ xywh {80 180 180 25} box THIN_UP_BOX labelsize 12
+ }
+ Fl_Box {} {
+ label ZynAddSubFX
+ xywh {5 5 325 30} labeltype EMBOSSED_LABEL labelfont 1 labelsize 24 labelcolor 0 align 16
+ }
+ }
+ Fl_Window syseffsendwindow {
+ label {System Effects Send}
+ xywh {171 234 120 250} type Double hide resizable
+ } {
+ Fl_Scroll {} {open
+ xywh {0 45 120 170} box FLAT_BOX resizable
+ code0 {for (int neff1=0;neff1<NUM_SYS_EFX;neff1++) for (int neff2=neff1+1;neff2<NUM_SYS_EFX;neff2++)}
+ code1 {{syseffsend[neff1][neff2]=new SysEffSend(o->x()+(neff2-1)*35,o->y()+15+neff1*50,30,30);syseffsend[neff1][neff2]->label("aaa");syseffsend[neff1][neff2]->init(master,neff1,neff2);};}
+ } {}
+ Fl_Button {} {
+ label Close
+ callback {syseffsendwindow->hide();}
+ xywh {25 220 80 25} box THIN_UP_BOX
+ }
+ Fl_Box {} {
+ label {Send system effect's output to other system effects}
+ xywh {5 5 110 35} labelsize 10 align 192
+ }
+ }
+ Fl_Window panelwindow {
+ label {ZynAddSubFX Panel}
+ xywh {72 60 630 635} type Double hide
+ } {
+ Fl_Scroll {} {open
+ xywh {0 5 570 310} type HORIZONTAL box THIN_UP_BOX
+ } {
+ Fl_Pack {} {open
+ xywh {5 10 560 285} type HORIZONTAL
+ code0 {for (int i=0;i<NUM_MIDI_PARTS/2;i++){panellistitem[i]=new Panellistitem(0,0,70,260,"");panellistitem[i]->init(master,i,bankui);}}
+ } {}
+ }
+ Fl_Scroll {} {open
+ xywh {0 320 570 310} type HORIZONTAL box THIN_UP_BOX
+ } {
+ Fl_Pack {} {open
+ xywh {5 325 560 285} type HORIZONTAL
+ code0 {for (int i=NUM_MIDI_PARTS/2;i<NUM_MIDI_PARTS;i++){panellistitem[i]=new Panellistitem(0,0,70,260,"");panellistitem[i]->init(master,i,bankui);}}
+ } {}
+ }
+ Fl_Button {} {
+ label Close
+ callback {panelwindow->hide();
+updatepanel();}
+ xywh {575 605 50 25} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label Refresh
+ callback {updatepanel();}
+ xywh {575 570 55 25} box THIN_UP_BOX
+ }
+ }
+ Fl_Window simplemasterwindow {
+ label ZynAddSubFX
+ callback {\#ifdef VSTAUDIOOUT
+fl_alert("ZynAddSubFX could not be closed this way, because it's a VST plugin. Please use the host aplication to close it.");
+\#else
+if (fl_ask("Exit and leave the unsaved data?")) {
+ config.save();
+ *exitprogram=1;
+};
+\#endif}
+ xywh {135 383 600 335} type Double hide
+ } {
+ Fl_Menu_Bar {} {
+ xywh {0 0 690 25}
+ } {
+ submenu {} {
+ label {&File}
+ xywh {10 10 100 20}
+ } {
+ menuitem {} {
+ label {&New (erase all)...}
+ callback {do_new_master();}
+ xywh {30 30 100 20}
+ }
+ menuitem {} {
+ label {&Open Parameters...}
+ callback {do_load_master();}
+ xywh {30 30 100 20}
+ }
+ menuitem {} {
+ label {&Save All Parameters...}
+ callback {do_save_master();}
+ xywh {20 20 100 20} divider
+ }
+ menuitem {} {
+ label {&Settings...}
+ callback {configui->show();}
+ xywh {35 35 100 20} divider
+ }
+ menuitem {} {
+ label {&Copyright...}
+ callback {aboutwindow->show();}
+ xywh {25 25 100 20} divider
+ }
+ menuitem {} {
+ label {E&xit}
+ callback {masterwindow->do_callback();}
+ xywh {20 20 100 20}
+ }
+ }
+ submenu {} {
+ label {&Instrument}
+ xywh {20 20 100 20}
+ } {
+ menuitem {} {
+ label {&Open Instrument...}
+ callback {const char *filename;
+filename=fl_file_chooser("Load:","({*.xiz})",NULL,0);
+if (filename==NULL) return;
+
+
+master->lock();
+// int npart=(int)npartcounter->value()-1;
+
+ //clear all instrument parameters, first
+ master->part[npart]->defaultsinstrument();
+
+ //load the instr. parameters
+ int result=master->part[npart]->loadXMLinstrument(filename);
+
+master->unlock();
+master->part[npart]->applyparameters();
+
+simplenpartcounter->do_callback();
+
+if (result==-10) fl_alert("Error: Could not load the file\\nbecause it is not an instrument file.");
+ else if (result<0) fl_alert("Error: Could not load the file.");}
+ xywh {40 40 100 20}
+ }
+ menuitem {} {
+ label {Show Instrument &Bank...}
+ callback {bankui->show();}
+ xywh {10 10 100 20} divider
+ }
+ }
+ submenu {} {
+ label Misc
+ xywh {0 0 100 20}
+ } {
+ menuitem {} {
+ label {Switch User Interface Mode}
+ callback {if (fl_ask("Switch the User Interface to Advanced mode ?")){
+ simplemasterwindow->hide();
+ refresh_master_ui();
+ masterwindow->show();
+ config.cfg.UserInterfaceMode=1;
+};}
+ xywh {0 0 100 20}
+ }
+ }
+ }
+ Fl_Group simplelistitemgroup {
+ private xywh {125 65 215 150} box ENGRAVED_BOX
+ code0 {if (master->part[npart]->Penabled==0) o->deactivate();}
+ } {
+ Fl_Button partname {
+ callback {if ((int)bankui->cbwig->value()!=(npart+1)){
+ bankui->cbwig->value(npart+1);
+ bankui->cbwig->do_callback();
+};
+bankui->show();}
+ xywh {130 72 205 18} box PLASTIC_THIN_DOWN_BOX down_box FLAT_BOX color 247 labelfont 1 labelsize 12 align 208
+ }
+ Fl_Slider partpanning {
+ label Pan
+ callback {master->part[npart]->setPpanning((int) o->value());}
+ xywh {185 95 70 15} type {Horz Knob} box FLAT_BOX maximum 127 step 1 value 64
+ code0 {o->value(master->part[npart]->Ppanning);}
+ }
+ Fl_Choice partrcv {
+ label {Midi Channel Receive}
+ callback {virkeys->relaseallkeys(0);
+master->part[npart]->Prcvchn=(int) o->value();
+virkeys->midich=(int) o->value();} open
+ tooltip {receive from Midi channel} xywh {140 157 65 18} down_box BORDER_BOX labelsize 11 align 130 textfont 1
+ code0 {char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Ch%d",i+1);if (i!=9) o->add(nrstr); else o->add("Dr10");};}
+ code1 {o->value(master->part[npart]->Prcvchn);}
+ } {}
+ Fl_Dial partvolume {
+ callback {master->part[npart]->setPvolume((int) o->value());}
+ xywh {145 95 30 30} maximum 127 step 1
+ code0 {o->value(master->part[npart]->Pvolume);}
+ class WidgetPDial
+ }
+ Fl_Box {} {
+ label Volume
+ xywh {130 125 60 15}
+ }
+ Fl_Check_Button simplepartportamento {
+ label Portamento
+ callback {master->part[npart]->ctl.portamento.portamento=(int) o->value();}
+ tooltip {Enable/Disable the portamento} xywh {260 95 75 20} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(master->part[npart]->ctl.portamento.portamento);}
+ }
+ Fl_Counter simpleminkcounter {
+ label {Min.key}
+ callback {master->part[npart]->Pminkey=(int) o->value();
+if (master->part[npart]->Pminkey>master->part[npart]->Pmaxkey) o->textcolor(FL_RED);
+ else o->textcolor(FL_BLACK);}
+ tooltip {Minimum key (that the part receives NoteOn messages)} xywh {210 158 40 15} type Simple labelfont 1 labelsize 10 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->value(master->part[npart]->Pminkey);}
+ }
+ Fl_Counter simplemaxkcounter {
+ label {Max.key}
+ callback {master->part[npart]->Pmaxkey=(int) o->value();
+
+if (master->part[npart]->Pminkey>master->part[npart]->Pmaxkey) o->textcolor(FL_RED);
+ else o->textcolor(FL_BLACK);}
+ tooltip {Maximum key (that the part receives NoteOn messages)} xywh {255 158 40 15} type Simple labelfont 1 labelsize 10 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->value(master->part[npart]->Pmaxkey);}
+ }
+ Fl_Button {} {
+ label m
+ callback {if (master->part[npart]->lastnote>=0) simpleminkcounter->value(master->part[npart]->lastnote);
+simpleminkcounter->do_callback();
+simplemaxkcounter->do_callback();}
+ tooltip {set the minimum key to the last pressed key} xywh {230 188 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label M
+ callback {if (master->part[npart]->lastnote>=0) simplemaxkcounter->value(master->part[npart]->lastnote);
+simplemaxkcounter->do_callback();
+simpleminkcounter->do_callback();}
+ tooltip {set the maximum key to the last pressed key} xywh {260 188 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label R
+ callback {simpleminkcounter->value(0);
+simpleminkcounter->do_callback();
+simplemaxkcounter->value(127);
+simplemaxkcounter->do_callback();}
+ tooltip {reset the minimum key to 0 and maximum key to 127} xywh {245 188 15 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Counter simplepartkeyshiftcounter {
+ label KeyShift
+ callback {master->part[npart]->Pkeyshift=(int) o->value()+64;}
+ xywh {240 120 90 20} labelsize 12 minimum -64 maximum 64 step 1
+ code0 {o->lstep(12);}
+ code1 {o->value(master->part[npart]->Pkeyshift-64);}
+ }
+ Fl_Dial simplesyseffsend {
+ callback {master->setPsysefxvol(npart,nsyseff,(int) o->value());}
+ xywh {300 160 30 30} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Box {} {
+ label Effect
+ xywh {295 190 40 15}
+ }
+ }
+ Fl_Check_Button partenabled {
+ label Enabled
+ callback {master->lock();
+ master->partonoff(npart,(int) o->value());
+master->unlock();
+
+if ((int) o->value()==0) simplelistitemgroup->deactivate();
+ else {
+ simplelistitemgroup->activate();
+ if ((int)bankui->cbwig->value()!=(npart+1)){
+ bankui->cbwig->value(npart+1);
+ bankui->cbwig->do_callback();
+ };
+};
+
+o->redraw();}
+ private xywh {250 40 85 20} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 24
+ code0 {//char tmp[10];snprintf(tmp,10,"%d",npart+1);o->label(strdup(tmp));}
+ code1 {o->value(master->part[npart]->Penabled);}
+ }
+ Fl_Box virkeys {
+ label Keyboard
+ xywh {5 215 590 80} box BORDER_BOX color 17
+ code0 {o->init(master);}
+ class VirKeys
+ }
+ Fl_Group {} {
+ xywh {340 30 255 185} box ENGRAVED_BOX
+ } {
+ Fl_Tabs {} {
+ xywh {345 35 245 175} align 18
+ } {
+ Fl_Group {} {
+ label {System Effects}
+ xywh {345 55 245 155} box ENGRAVED_FRAME labelfont 1 align 18
+ } {
+ Fl_Counter simplesyseffnocounter {
+ label {Sys.Effect No.}
+ callback {nsyseff=(int) o->value()-1;
+simplesysefftype->value(master->sysefx[nsyseff]->geteffect());
+simplesyseffectui->refresh(master->sysefx[nsyseff]);
+simplerefresh();}
+ xywh {350 75 80 20} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_SYS_EFX);}
+ code1 {o->value(nsyseff+1);}
+ }
+ Fl_Choice simplesysefftype {
+ label EffType
+ callback {master->lock();
+master->sysefx[nsyseff]->changeeffect((int) o->value());
+master->unlock();
+simplesyseffectui->refresh(master->sysefx[nsyseff]);}
+ xywh {515 80 70 15} down_box BORDER_BOX labelsize 11 align 5
+ code0 {o->value(master->sysefx[nsyseff]->geteffect());}
+ } {
+ menuitem {} {
+ label {No Effect}
+ xywh {20 20 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Reverb
+ xywh {30 30 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Echo
+ xywh {40 40 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Chorus
+ xywh {50 50 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Phaser
+ xywh {60 60 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label AlienWah
+ xywh {70 70 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Distortion
+ xywh {80 80 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label EQ
+ xywh {90 90 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label DynFilter
+ xywh {100 100 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Group simplesyseffectuigroup {
+ xywh {350 95 235 95} box FLAT_BOX color 48
+ } {
+ Fl_Group simplesyseffectui {
+ xywh {350 95 234 95}
+ code0 {o->init(master->sysefx[nsyseff]);}
+ class SimpleEffUI
+ } {}
+ }
+ Fl_Button {} {
+ label {Send to...}
+ callback {syseffsendwindow->show();}
+ xywh {435 75 75 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label P
+ callback {master->lock();
+presetsui->paste(master->sysefx[nsyseff],simplesyseffectui);
+master->unlock();}
+ xywh {560 65 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ Fl_Group {} {
+ label {Insertion Effects}
+ xywh {345 55 245 155} box ENGRAVED_FRAME labelfont 1 align 18 hide
+ } {
+ Fl_Counter simpleinseffnocounter {
+ label {Ins.Effect No.}
+ callback {ninseff=(int) o->value()-1;
+simpleinsefftype->value(master->insefx[ninseff]->geteffect());
+simpleinseffpart->value(master->Pinsparts[ninseff]+2);
+simpleinseffectui->refresh(master->insefx[ninseff]);
+
+if (master->Pinsparts[ninseff]!=-1) {
+ simpleinsefftype->activate();
+ simpleinseffectui->activate();
+ simpleinseffectuigroup->activate();
+} else {
+ simpleinsefftype->deactivate();
+ simpleinseffectui->deactivate();
+ simpleinseffectuigroup->deactivate();
+};}
+ xywh {350 75 80 20} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_INS_EFX);}
+ code1 {o->value(ninseff+1);}
+ }
+ Fl_Choice simpleinsefftype {
+ label EffType
+ callback {master->lock();
+master->insefx[ninseff]->changeeffect((int) o->value());
+master->unlock();
+simpleinseffectui->refresh(master->insefx[ninseff]);
+simpleinseffectui->show();}
+ xywh {515 80 70 15} down_box BORDER_BOX labelsize 11 align 5
+ code0 {o->value(master->insefx[ninseff]->geteffect());}
+ code1 {if (master->Pinsparts[ninseff]== -1) o->deactivate();}
+ } {
+ menuitem {} {
+ label {No Effect}
+ xywh {35 35 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Reverb
+ xywh {45 45 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Echo
+ xywh {55 55 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Chorus
+ xywh {65 65 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Phaser
+ xywh {70 70 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label AlienWah
+ xywh {80 80 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Distortion
+ xywh {90 90 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label EQ
+ xywh {100 100 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label DynFilter
+ xywh {110 110 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Group simpleinseffectuigroup {
+ xywh {350 95 234 95} box FLAT_BOX color 48
+ } {
+ Fl_Group simpleinseffectui {
+ xywh {350 95 234 95}
+ code0 {o->init(master->insefx[ninseff]);}
+ code1 {if (master->Pinsparts[ninseff]== -1) o->deactivate();}
+ class SimpleEffUI
+ } {}
+ }
+ Fl_Choice simpleinseffpart {
+ label {Insert To.}
+ callback {master->Pinsparts[ninseff]=(int) o->value()-2;
+if ((int) o->value()==1){
+ simpleinseffectuigroup->deactivate();
+ simpleinsefftype->deactivate();
+ simpleinseffectui->deactivate();
+} else {
+ simpleinseffectuigroup->activate();
+ simpleinsefftype->activate();
+ simpleinseffectui->activate();
+};
+master->insefx[ninseff]->cleanup();} open
+ xywh {435 75 80 20} down_box BORDER_BOX labelfont 1 labelsize 10 align 5 textsize 10
+ code0 {o->add("Master Out");o->add("Off");}
+ code1 {char tmp[50]; for (int i=0;i<NUM_MIDI_PARTS;i++) {sprintf(tmp,"Part %2d",i+1);o->add(tmp);};}
+ code3 {o->value(master->Pinsparts[ninseff]+2);}
+ } {}
+ Fl_Button {} {
+ label P
+ callback {master->lock();
+presetsui->paste(master->insefx[ninseff],simpleinseffectui);
+master->unlock();}
+ xywh {560 65 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ }
+ }
+ Fl_Group {} {
+ xywh {5 300 590 30} box ENGRAVED_FRAME
+ } {
+ Fl_Box {} {
+ label {VU-Meter}
+ xywh {5 300 590 30} box FLAT_BOX color 41 selection_color 75
+ code0 {o->init(master,-1);}
+ class VUMeter
+ }
+ }
+ Fl_Dial simplemastervolumedial {
+ label {Master Volume}
+ callback {master->setPvolume((int) o->value());}
+ tooltip {Master Volume} xywh {10 35 40 40} box ROUND_UP_BOX labelfont 1 labelsize 12 align 130 maximum 127 step 1
+ code0 {o->value(master->Pvolume);}
+ class WidgetPDial
+ }
+ Fl_Counter simplemasterkeyshiftcounter {
+ label {Master KeyShift}
+ callback {master->setPkeyshift((int) o->value()+64);}
+ xywh {25 110 90 20} labelsize 12 minimum -64 maximum 64 step 1
+ code0 {o->lstep(12);}
+ code1 {o->value(master->Pkeyshift-64);}
+ }
+ Fl_Button {} {
+ label {Stop ALL sounds!}
+ callback {virkeyboard->relaseallkeys();
+master->lock();
+master->shutup=1;
+master->unlock();}
+ xywh {5 149 115 31} box PLASTIC_UP_BOX color 231 labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label Reset
+ callback {simpleglobalfinedetuneslider->value(64.0);
+simpleglobalfinedetuneslider->do_callback();}
+ tooltip {Master fine detune reset} xywh {70 32 50 10} box THIN_UP_BOX labelfont 1 labelsize 12 align 128
+ }
+ Fl_Dial simpleglobalfinedetuneslider {
+ label {Fine Detune}
+ callback {master->microtonal.Pglobalfinedetune=(int) o->value();}
+ tooltip {global fine detune} xywh {80 45 30 30} box ROUND_UP_BOX labelsize 12 align 130 maximum 127 step 1 value 64
+ code0 {o->value(master->microtonal.Pglobalfinedetune);}
+ class WidgetPDial
+ }
+ Fl_Counter simplenpartcounter {
+ label Part
+ callback {virkeys->relaseallkeys(0);
+npartcounter->value(o->value());
+npart=(int) o->value()-1;
+
+simplerefresh();
+virkeys->midich=master->part[npart]->Prcvchn;}
+ tooltip {The part number} xywh {170 40 70 20} type Simple labelfont 1 align 4 minimum 0 maximum 127 step 1 value 1 textfont 1
+ code0 {o->bounds(1,NUM_MIDI_PARTS);}
+ }
+ Fl_Counter {} {
+ label {Keyb.Oct.}
+ callback {virkeys->relaseallkeys(0);
+virkeys->midioct=(int) o->value();
+virkeys->take_focus();}
+ tooltip {Midi Octave} xywh {5 195 55 20} type Simple labelsize 12 align 8 when 6 minimum 0 maximum 5 step 1 textfont 1 textsize 12
+ code0 {o->value(virkeys->midioct);}
+ }
+ }
+ Fl_Window selectuiwindow {
+ label {User Interface mode}
+ callback {*exitprogram=1;}
+ xywh {342 246 430 250} type Double hide non_modal
+ } {
+ Fl_Box {} {
+ label {Welcome to ZynAddSubFX}
+ xywh {5 5 425 40} labeltype SHADOW_LABEL labelfont 1 labelsize 33
+ }
+ Fl_Box {} {
+ label {Please choose the interface mode:}
+ xywh {10 50 265 25} labelfont 1 labelsize 16
+ }
+ Fl_Button {} {
+ label Advanced
+ callback {config.cfg.UserInterfaceMode=1;
+masterwindow->show();
+selectuiwindow->hide();}
+ xywh {10 165 100 35} box PLASTIC_UP_BOX color 229 labelfont 1 labelsize 20
+ }
+ Fl_Box {} {
+ label {.. if you have used ZynAddSubFX before, or you like to have full controll to all parameters.}
+ xywh {110 165 310 35} labelfont 1 labelsize 13 align 144
+ }
+ Fl_Button {} {
+ label Beginner
+ callback {simplemasterwindow->show();
+selectuiwindow->hide();
+config.cfg.UserInterfaceMode=2;}
+ xywh {10 80 100 65} box PLASTIC_UP_BOX color 238 labelfont 1 labelsize 20
+ }
+ Fl_Box {} {
+ label {..if you are a beginner, you prefer using presets or you prefer to use simpler user interfaces. Most functionality of ZynAddSubFX will be hidden in this mode to make simple the learning/using it.}
+ xywh {110 75 320 75} labelfont 1 labelsize 13 align 144
+ }
+ Fl_Box {} {
+ label {You can switch the interface modes anytime you want.}
+ xywh {30 215 360 25} box BORDER_BOX color 51 labelfont 1 labelsize 13 align 144
+ }
+ }
+ }
+ Function {updatesendwindow()} {} {
+ code {for (int neff1=0;neff1<NUM_SYS_EFX;neff1++)
+ for (int neff2=neff1+1;neff2<NUM_SYS_EFX;neff2++)
+ syseffsend[neff1][neff2]->value(master->Psysefxsend[neff1][neff2]);} {}
+ }
+ Function {updatepanel()} {} {
+ code {for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ panellistitem[npart]->refresh();
+};} {}
+ }
+ Function {setfilelabel(const char *filename)} {} {
+ code {if (filename!=NULL) snprintf(&masterwindowlabel[0],100,"%s - ZynAddSubFX",fl_filename_name(filename));
+ else snprintf(&masterwindowlabel[0],100,"%s","ZynAddSubFX (c)2002-2005 Nasca O. Paul");
+masterwindowlabel[99]='\\0';
+masterwindow->label(&masterwindowlabel[0]);
+simplemasterwindow->label(&masterwindowlabel[0]);} {}
+ }
+ Function {MasterUI(Master *master_,int *exitprogram_)} {} {
+ code {master=master_;
+exitprogram=exitprogram_;
+ninseff=0;
+nsyseff=0;
+npart=0;
+
+for (int i=0;i<NUM_SYS_EFX;i++)
+ for (int j=0;j<NUM_SYS_EFX;j++)
+ syseffsend[i][j]=NULL;
+
+microtonalui=new MicrotonalUI(&master->microtonal);
+virkeyboard=new VirKeyboard(master);
+bankui=new BankUI(master,&npart);
+configui=new ConfigUI();
+sequi=new SeqUI(master);
+
+make_window();
+presetsui=new PresetsUI();
+setfilelabel(NULL);
+swapefftype=0;
+simplerefresh();} {}
+ }
+ Function {~MasterUI()} {} {
+ code {masterwindow->hide();
+delete (masterwindow);
+aboutwindow->hide();
+delete (aboutwindow);
+syseffsendwindow->hide();
+delete(syseffsendwindow);
+
+delete (virkeyboard);
+delete (microtonalui);
+delete (bankui);
+delete (configui);
+delete (sequi);
+
+delete(presetsui);} {}
+ }
+ Function {showUI()} {} {
+ code {switch (config.cfg.UserInterfaceMode){
+ case 0:selectuiwindow->show();
+ break;
+ case 1:masterwindow->show();
+ break;
+ case 2:simplemasterwindow->show();
+ break;
+};} {}
+ }
+ Function {simplerefresh()} {} {
+ code {partenabled->value(master->part[npart]->Penabled);
+if (master->part[npart]->Penabled!=0) simplelistitemgroup->activate();
+ else simplelistitemgroup->deactivate();
+
+partvolume->value(master->part[npart]->Pvolume);
+partpanning->value(master->part[npart]->Ppanning);
+partrcv->value(master->part[npart]->Prcvchn);
+
+if (master->part[npart]->Pname[0]!=0) partname->label((char *)master->part[npart]->Pname);
+ else partname->label("Click here to load a instrument");
+
+simplelistitemgroup->redraw();
+simplepartportamento->value(master->part[npart]->ctl.portamento.portamento);
+simpleminkcounter->value(master->part[npart]->Pminkey);
+simplemaxkcounter->value(master->part[npart]->Pmaxkey);
+
+simplepartkeyshiftcounter->value(master->part[npart]->Pkeyshift-64);
+simplesyseffsend->value(master->Psysefxvol[nsyseff][npart]);} {}
+ }
+ Function {do_new_master()} {} {
+ code {if (fl_ask("Clear *ALL* the parameters ?")){
+ delete microtonalui;
+
+ master->lock();
+ master->defaults();
+ master->unlock();
+
+ npartcounter->value(1);
+ refresh_master_ui();
+
+};
+
+updatepanel();} {}
+ }
+ Function {do_load_master()} {} {
+ code {char *filename;
+filename=fl_file_chooser("Open:","({*.xmz})",NULL,0);
+if (filename==NULL) return;
+
+
+master->lock();
+ //clear all parameters
+ master->defaults();
+
+ //load the data
+ int result=master->loadXML(filename);
+master->unlock();
+master->applyparameters();
+
+npartcounter->value(1);
+refresh_master_ui();
+updatepanel();
+if (result>=0) setfilelabel(filename);
+
+
+if (result==-10) fl_alert("Error: Could not load the file\\nbecause it is not a zynaddsubfx parameters file.");
+ else if (result<0) fl_alert("Error: Could not load the file.");} {}
+ }
+ Function {do_save_master()} {} {
+ code {char *filename;
+int result=0;
+
+filename=fl_file_chooser("Save:","({*.xmz})",NULL,0);
+if (filename==NULL) return;
+filename=fl_filename_setext(filename,".xmz");
+
+result=fileexists(filename);
+if (result) {
+ result=0;
+ if (!fl_ask("The file exists. \\nOverwrite it?")) return;
+
+};
+
+
+master->lock();
+result=master->saveXML(filename);
+master->unlock();
+
+if (result<0) fl_alert("Error: Could not save the file.");
+ else setfilelabel(filename);
+
+updatepanel();} {}
+ }
+ Function {refresh_master_ui()} {} {
+ code {ninseff=0;
+nsyseff=0;
+npart=0;
+
+//the Master UI
+npartcounter->do_callback();
+syseffnocounter->do_callback();
+inseffnocounter->do_callback();
+masterkeyshiftcounter->value(master->Pkeyshift-64);
+mastervolumedial->value(master->Pvolume);
+globalfinedetuneslider->value(master->microtonal.Pglobalfinedetune);
+microtonalui=new MicrotonalUI(&master->microtonal);
+nrpnbutton->value(master->ctl.NRPN.receive);
+updatesendwindow();
+updatepanel();
+
+//the simle MasterUI
+simplenpartcounter->value(1);
+simplesyseffnocounter->value(1);
+simpleinseffnocounter->value(1);
+simplenpartcounter->do_callback();
+simplesyseffnocounter->do_callback();
+simpleinseffnocounter->do_callback();
+simplemasterkeyshiftcounter->value(master->Pkeyshift-64);
+simplemastervolumedial->value(master->Pvolume);
+simpleglobalfinedetuneslider->value(master->microtonal.Pglobalfinedetune);
+virkeys->midich=master->part[npart]->Prcvchn;
+
+simplerefresh();
+bankui->hide();} {}
+ }
+ decl {Master *master;} {}
+ decl {MicrotonalUI *microtonalui;} {}
+ decl {SeqUI *sequi;} {}
+ decl {BankUI *bankui;} {}
+ decl {int ninseff,npart;} {}
+ decl {int nsyseff;} {}
+ decl {int *exitprogram;} {}
+ decl {SysEffSend *syseffsend[NUM_SYS_EFX][NUM_SYS_EFX];} {}
+ decl {VirKeyboard *virkeyboard;} {}
+ decl {ConfigUI *configui;} {}
+ decl {int swapefftype;} {}
+ decl {char masterwindowlabel[100];} {}
+ decl {Panellistitem *panellistitem[NUM_MIDI_PARTS];} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/MicrotonalUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/MicrotonalUI.fl
new file mode 100644
index 00000000..750e7b51
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/MicrotonalUI.fl
@@ -0,0 +1,270 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include <FL/Fl_File_Chooser.H>} {public
+}
+
+decl {\#include <FL/fl_ask.H>} {public
+}
+
+decl {\#include "../Misc/Microtonal.h"} {public
+}
+
+class MicrotonalUI {} {
+ Function {make_window()} {} {
+ Fl_Window microtonaluiwindow {
+ label Scales
+ xywh {99 164 405 450} type Double hide
+ } {
+ Fl_Group {} {
+ tooltip {Center where the note's freqs. are turned upside-down} xywh {249 2 155 45} box ENGRAVED_FRAME
+ } {
+ Fl_Check_Button {} {
+ label {Invert keys}
+ callback {microtonal->Pinvertupdown=(int) o->value();
+if (microtonal->Pinvertupdown==0) centerinvertcounter->deactivate();
+ else centerinvertcounter->activate();}
+ tooltip {Turn upside-down the note frequencies} xywh {254 13 55 30} down_box DOWN_BOX labelfont 1 labelsize 12 align 148
+ code0 {o->value(microtonal->Pinvertupdown);}
+ }
+ Fl_Counter centerinvertcounter {
+ label Center
+ callback {microtonal->Pinvertupdowncenter=(int) o->value();}
+ xywh {319 13 80 20} labelfont 1 labelsize 12 align 130 minimum 0 maximum 127 step 1 textfont 1
+ code0 {o->lstep(microtonal->getoctavesize());}
+ code1 {o->value(microtonal->Pinvertupdowncenter);}
+ code2 {if (microtonal->Pinvertupdown==0) o->deactivate();}
+ }
+ }
+ Fl_Group microtonalgroup {selected
+ xywh {3 49 402 398} box ENGRAVED_FRAME
+ code0 {if (microtonal->Penabled==0) o->deactivate();}
+ } {
+ Fl_Button applybutton {
+ label Retune
+ callback {apply();}
+ tooltip {Retune the synth accorging to the inputs from "Tunnings" and "Keyboard Mappings"} xywh {8 413 107 28} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 18
+ }
+ Fl_Value_Output octavesizeoutput {
+ label {nts./oct.}
+ callback {o->value(microtonal->getoctavesize());}
+ tooltip {Notes/Octave} xywh {150 423 35 17} labelsize 10 align 5 maximum 500 step 1 value 12 textfont 1
+ code0 {o->value(microtonal->getoctavesize());}
+ }
+ Fl_Input nameinput {
+ label {Name:}
+ callback {snprintf((char *)microtonal->Pname,MICROTONAL_MAX_NAME_LEN,"%s",o->value());}
+ xywh {8 64 285 25} labelfont 1 labelsize 12 align 5
+ code0 {o->insert((char *)microtonal->Pname);}
+ }
+ Fl_Input tuningsinput {
+ label {Tunings:}
+ xywh {8 144 182 264} type Multiline labelfont 1 labelsize 12 align 5 when 2
+ code0 {updateTuningsInput();}
+ }
+ Fl_Input commentinput {
+ label {Comment:}
+ callback {snprintf((char *)microtonal->Pcomment,MICROTONAL_MAX_NAME_LEN,"%s",o->value());}
+ xywh {8 104 391 25} labelfont 1 labelsize 12 align 5
+ code0 {o->insert((char *)microtonal->Pcomment);}
+ }
+ Fl_Counter {} {
+ label Shift
+ callback {microtonal->Pscaleshift=(int) o->value()+64;}
+ xywh {313 69 70 20} type Simple labelsize 12 align 1 minimum -63 maximum 64 step 1 textfont 1
+ code0 {o->value(microtonal->Pscaleshift-64);}
+ }
+ Fl_Button {} {
+ label {Import .SCL file}
+ callback {const char *filename;
+filename=fl_file_chooser("Open:","(*.scl)",NULL,0);
+if (filename==NULL) return;
+int result=microtonal->loadscl(filename);
+if (result==0) {
+ updateTuningsInput();
+ nameinput->cut(0,nameinput->maximum_size());
+ nameinput->insert((char *)microtonal->Pname);
+ nameinput->position(0);
+ commentinput->cut(0,commentinput->maximum_size());
+ commentinput->insert((char *)microtonal->Pname);
+ commentinput->position(0);
+ tuningsinput->position(0);
+ octavesizeoutput->do_callback();
+ } else {
+ fl_alert("Error: Could not load the file.");
+ };}
+ tooltip {Inport Scala .scl file (tunnings)} xywh {243 411 84 15} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Group keymappinggroup {
+ label {Keyboard Mapping} open
+ xywh {193 144 206 264} box ENGRAVED_BOX labelfont 1 labelsize 12
+ } {
+ Fl_Input mappinginput {
+ xywh {250 147 146 258} type Multiline labelfont 1 labelsize 12 align 5 when 2
+ code0 {updateMappingInput();}
+ }
+ Fl_Counter firstnotecounter {
+ label {First note}
+ callback {microtonal->Pfirstkey=(int) o->value();}
+ tooltip {First MIDI note number} xywh {199 195 42 18} type Simple labelsize 10 align 5 minimum 0 maximum 127 step 1 textfont 1 textsize 12
+ code0 {o->value(microtonal->Pfirstkey);}
+ }
+ Fl_Counter lastnotecounter {
+ label {Last note}
+ callback {microtonal->Plastkey=(int) o->value();}
+ tooltip {Last MIDI note number} xywh {199 225 42 18} type Simple labelsize 10 align 5 minimum 0 maximum 127 step 1 value 127 textfont 1 textsize 12
+ code0 {o->value(microtonal->Plastkey);}
+ }
+ Fl_Counter middlenotecounter {
+ label {Midle note}
+ callback {microtonal->Pmiddlenote=(int) o->value();}
+ tooltip {Midle note (where scale degree 0 is mapped to)} xywh {199 267 42 18} type Simple labelsize 10 align 5 minimum 0 maximum 127 step 1 value 60 textfont 1 textsize 12
+ code0 {o->value(microtonal->Pmiddlenote);}
+ }
+ Fl_Value_Output mapsizeoutput {
+ label {Map Size}
+ callback {o->value(microtonal->Pmapsize);}
+ xywh {201 382 44 20} labelsize 10 align 5 maximum 500 step 1 value 12 textfont 1
+ code0 {o->value(microtonal->Pmapsize);}
+ }
+ }
+ Fl_Check_Button mappingenabledbutton {
+ label ON
+ callback {int x=(int) o->value();
+microtonal->Pmappingenabled=x;
+if (x==0) keymappinggroup->deactivate();
+ else keymappinggroup->activate();
+o->show();}
+ tooltip {Enable the Mapping (otherwise the mapping is linear)} xywh {198 150 48 21} box FLAT_BOX down_box DOWN_BOX labelfont 1
+ code0 {o->value(microtonal->Pmappingenabled);}
+ code1 {if (microtonal->Pmappingenabled==0) keymappinggroup->deactivate();}
+ }
+ Fl_Button {} {
+ label {Import .kbm file}
+ callback {const char *filename;
+filename=fl_file_chooser("Open:","(*.kbm)",NULL,0);
+if (filename==NULL) return;
+int result=microtonal->loadkbm(filename);
+if (result==0) {
+ updateMappingInput();
+ mappinginput->position(0);
+ mapsizeoutput->do_callback();
+ firstnotecounter->value(microtonal->Pfirstkey);
+ lastnotecounter->value(microtonal->Plastkey);
+ middlenotecounter->value(microtonal->Pmiddlenote);
+ mapsizeoutput->do_callback();
+ mappingenabledbutton->value(microtonal->Pmappingenabled);
+ mappingenabledbutton->do_callback();
+ afreqinput->value(microtonal->PAfreq);
+ anotecounter->value(microtonal->PAnote);
+ anotecounter->do_callback();
+ } else {
+ fl_alert("Error: Could not load the file.");
+ };}
+ tooltip {Inport Scala .kbm file (keyboard mapping)} xywh {243 428 84 16} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ }
+ Fl_Group {} {
+ xywh {108 2 140 45} box ENGRAVED_FRAME
+ } {
+ Fl_Counter anotecounter {
+ label {"A" Note}
+ callback {microtonal->PAnote=(int) o->value();
+if (microtonal->getnotefreq(microtonal->PAnote,0)<0.0) o->textcolor(FL_RED);
+ else o->textcolor(FL_BLACK);
+
+o->redraw();}
+ tooltip {The "A" note (the reference note for which freq. ("A" freq) is given)} xywh {173 17 65 20} labelfont 1 labelsize 10 align 129 minimum 0 maximum 127 step 1 value 69 textfont 1 textsize 11
+ code0 {o->lstep(12);}
+ code1 {o->value(microtonal->PAnote);}
+ }
+ Fl_Value_Input afreqinput {
+ label {"A" Freq.}
+ callback {microtonal->PAfreq=o->value();}
+ tooltip {The freq. of "A" note (default=440.0)} xywh {118 17 45 20} labelfont 1 labelsize 10 align 1 minimum 1 maximum 20000 step 0.001 value 440 textfont 1 textsize 11
+ code0 {o->value(microtonal->PAfreq);}
+ }
+ }
+ Fl_Button {} {
+ label Close
+ callback {microtonaluiwindow->hide();}
+ xywh {333 413 67 28} box THIN_UP_BOX
+ }
+ Fl_Check_Button {} {
+ label {Enable Microtonal}
+ callback {microtonal->Penabled=(int) o->value();
+if (microtonal->Penabled==0) microtonalgroup->deactivate();
+ else microtonalgroup->activate();}
+ xywh {3 3 102 45} box PLASTIC_UP_BOX down_box DOWN_BOX labelfont 1 labelsize 12 align 148
+ code0 {o->value(microtonal->Penabled);}
+ }
+ }
+ }
+ Function {updateTuningsInput()} {} {
+ code {char *tmpbuf=new char[100];
+
+tuningsinput->cut(0,tuningsinput->maximum_size());
+
+for (int i=0;i<microtonal->getoctavesize();i++){
+ if (i!=0) tuningsinput->insert("\\n");
+ microtonal->tuningtoline(i,tmpbuf,100);
+ tuningsinput->insert(tmpbuf);
+};
+
+delete(tmpbuf);} {}
+ }
+ Function {updateMappingInput()} {} {
+ code {char *tmpbuf=new char[100];
+
+mappinginput->cut(0,tuningsinput->maximum_size());
+
+for (int i=0;i<microtonal->Pmapsize;i++){
+ if (i!=0) mappinginput->insert("\\n");
+ if ((microtonal->Pmapping[i])==-1)
+ snprintf(tmpbuf,100,"x");
+ else snprintf(tmpbuf,100,"%d",microtonal->Pmapping[i]);
+ mappinginput->insert(tmpbuf);
+};
+
+delete(tmpbuf);} {}
+ }
+ Function {MicrotonalUI(Microtonal *microtonal_)} {} {
+ code {microtonal=microtonal_;
+
+make_window();} {}
+ }
+ Function {~MicrotonalUI()} {} {
+ code {microtonaluiwindow->hide();
+delete(microtonaluiwindow);} {}
+ }
+ Function {show()} {} {
+ code {microtonaluiwindow->show();} {}
+ }
+ Function {apply()} {} {
+ code {int err=microtonal->texttotunings(tuningsinput->value());
+if (err>=0) fl_alert("Parse Error: The input may contain only numbers (like 232.59)\\n or divisions (like 121/64).");
+if (err==-2) fl_alert("Parse Error: The input is empty.");
+octavesizeoutput->do_callback();
+
+microtonal->texttomapping(mappinginput->value());
+mapsizeoutput->do_callback();
+anotecounter->do_callback();
+
+//applybutton->color(FL_GRAY);} {}
+ }
+ decl {Microtonal *microtonal;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/OscilGenUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/OscilGenUI.fl
new file mode 100644
index 00000000..0bd394ec
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/OscilGenUI.fl
@@ -0,0 +1,1131 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "../Synth/OscilGen.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "ResonanceUI.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include <FL/Fl_Slider.H>} {public
+}
+
+decl {\#include <math.h>} {}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include <string.h>} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EnvelopeUI.h"} {public
+}
+
+decl {\#include "LFOUI.h"} {public
+}
+
+decl {\#include "FilterUI.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class OscilSpectrum {: {public Fl_Box}
+} {
+ Function {OscilSpectrum(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {oscil=NULL;} {}
+ }
+ Function {init(OscilGen *oscil_,int oscbase_,Master *master_)} {} {
+ code {oscil=oscil_;
+oscbase=oscbase_;
+master=master_;} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h(),i;
+const int maxdb=60;//must be multiple of 10
+int GX=2;
+int n=lx/GX-1;
+if (n>OSCIL_SIZE/2) n=OSCIL_SIZE/2;
+
+REALTYPE x;
+REALTYPE spc[n];
+for (i=0;i<n;i++) spc[i]=0.0;
+
+master->lock();
+if (oscbase==0) oscil->getspectrum(n,spc,0);
+ else oscil->getspectrum(n,spc,1);
+master->unlock();
+
+//normalize
+REALTYPE max=0;
+for (i=0;i<n;i++){
+ x=fabs(spc[i]);
+ if (max<x) max=x;
+}
+if (max<0.000001) max=1.0;
+max=max*1.05;
+
+//draw
+
+if (this->active_r()) fl_color(this->parent()->selection_color());
+ else fl_color(this->parent()->color());
+fl_line_style(FL_DOT);
+
+for (i=1;i<maxdb/10;i++){
+ int ky=(int)((REALTYPE)i*ly*10.0/maxdb)/2;
+ ky*=2;
+ fl_line(ox,oy+ky-1,ox+lx-2,oy+ky-1);
+};
+
+for (i=2;i<n;i++){
+ int tmp=i*GX-2;
+ if (i%10==1) fl_line_style(0);
+ else fl_line_style(FL_DOT);
+ fl_line(ox+tmp,oy+2,ox+tmp,oy+ly-2);
+}
+
+if (this->active_r()) fl_color(this->parent()->labelcolor());
+ else fl_color(this->parent()->color());
+fl_line_style(0);
+
+//draws the spectrum
+for (i=0;i<n;i++){
+ int tmp=i*GX+2;
+ x=spc[i]/max;
+
+ if (x>dB2rap(-maxdb)) x=rap2dB(x)/maxdb+1;
+ else x=0;
+
+ int val=(int) ((ly-2)*x);
+ if (val>0) fl_line(ox+tmp,oy+ly-2-val,ox+tmp,oy+ly-2);
+};} {}
+ }
+ decl {OscilGen *oscil;} {}
+ decl {int oscbase;} {}
+ decl {Master *master;} {}
+}
+
+class PSlider {: {public Fl_Slider}
+} {
+ Function {PSlider(int x,int y, int w, int h, const char *label=0):Fl_Slider(x,y,w,h,label)} {} {}
+ Function {handle(int event)} {return_type int
+ } {
+ code {int X=x(),Y=y(),W=w(),H=h();
+
+if ((!Fl::event_buttons())|| (event==0)||(Fl::event_shift()==0)) return(Fl_Slider::handle(event));
+
+if (!Fl::event_inside(X,Y,W,H)) {
+ if (event==FL_DRAG){
+ Fl_Slider::handle(FL_RELEASE);
+ Fl_Slider::handle(FL_LEAVE);
+ deactivate();
+ activate();
+ return(1);
+ }else{
+ return(Fl_Slider::handle(event));
+ };
+} else {
+ //Fl_Slider::handle(FL_FOCUS);
+ Fl_Slider::handle(FL_PUSH);
+};
+
+return(1);} {}
+ }
+}
+
+class Oscilloscope {: {public Fl_Box}
+} {
+ Function {Oscilloscope(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {oscil=NULL;
+phase=64;
+oscbase=0;} {}
+ }
+ Function {init(OscilGen *oscil_,Master *master_)} {} {
+ code {oscil=oscil_;
+master=master_;} {}
+ }
+ Function {init(OscilGen *oscil_,int oscbase_,Master *master_)} {} {
+ code {oscil=oscil_;
+oscbase=oscbase_;
+master=master_;} {}
+ }
+ Function {init(OscilGen *oscil_,int oscbase_,int phase_,Master *master_)} {} {
+ code {oscil=oscil_;
+oscbase=oscbase_;
+phase=phase_;
+master=master_;} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h()-1,i;
+REALTYPE smps[OSCIL_SIZE];
+master->lock();
+if (oscbase==0) oscil->get(smps,-1.0);
+ else oscil->getcurrentbasefunction(smps);
+master->unlock();
+
+if (damage()!=1){
+ fl_color(0,0,0);
+ fl_rectf(ox,oy,lx,ly);
+};
+
+//normalize
+REALTYPE max=0;
+for (i=0;i<OSCIL_SIZE;i++)
+ if (max<fabs(smps[i])) max=fabs(smps[i]);
+//fprintf(stderr,"%.4f\\n",max);
+if (max<0.00001) max=1.0;
+max=-max*1.05;
+
+//draw
+fl_line_style(FL_DASH);
+if (this->active_r()) fl_color(this->parent()->labelcolor());
+ else fl_color(this->parent()->color());
+int GX=16;if (lx<GX*3) GX=-1;
+for (i=1;i<GX;i++){
+ int tmp=(int)(lx/(REALTYPE)GX*i);
+ fl_line(ox+tmp,oy+2,ox+tmp,oy+ly-2);
+};
+int GY=8;if (ly<GY*3) GY=-1;
+for (i=1;i<GY;i++){
+ int tmp=(int)(ly/(REALTYPE)GY*i);
+ fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
+};
+
+//draw the function
+fl_line_style(0,1);
+fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+if (this->active_r()) fl_color(this->parent()->selection_color());
+ else fl_color(this->parent()->labelcolor());
+int lw=1;
+//if ((lx<135)||(ly<135)) lw=1;
+fl_line_style(0,lw);
+int ph=(int)((phase-64.0)/128.0*OSCIL_SIZE+OSCIL_SIZE);
+for (i=1;i<lx;i++){
+ int k1=(int)((REALTYPE)OSCIL_SIZE*(i-1)/lx)+ph;
+ int k2=(int)((REALTYPE)OSCIL_SIZE*i/lx)+ph;
+ REALTYPE y1=smps[k1%OSCIL_SIZE]/max;
+ REALTYPE y2=smps[k2%OSCIL_SIZE]/max;
+ fl_line(i-1+ox,(int)(y1*ly/2.0)+oy+ly/2,i+ox,(int)(y2*ly/2.0)+oy+ly/2);
+};} {}
+ }
+ decl {OscilGen *oscil;} {}
+ decl {int oscbase;} {}
+ decl {int phase;} {public
+ }
+ decl {Master *master;} {}
+}
+
+class Oscilharmonic {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window harmonic {
+ private xywh {328 166 90 225} type Double hide
+ class Fl_Group
+ } {
+ Fl_Slider mag {
+ callback {int x=64;
+if (Fl::event_button3()) o->value(x);
+ else x=127-(int)o->value();
+if (x==64) o->selection_color(0);
+ else o->selection_color(222);
+
+master->lock();
+ oscil->Phmag[n]=x;
+ if (x==64) {
+ oscil->Phphase[n]=64;
+ phase->value(64);
+ };
+ oscil->prepare();
+master->unlock();
+
+display->redraw();
+oldosc->redraw();
+if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+};}
+ xywh {0 15 15 115} type {Vert Knob} box FLAT_BOX selection_color 222 labelcolor 0 maximum 127 step 1 value 64
+ code0 {o->value(127-oscil->Phmag[n]);}
+ code1 {if (oscil->Phmag[n]==64) o->selection_color(0);}
+ class PSlider
+ }
+ Fl_Slider phase {
+ callback {int x=64;
+if (Fl::event_button3()) o->value(x);
+ else x=(int)o->value();
+
+master->lock();
+ oscil->Phphase[n]=x;
+ oscil->prepare();
+master->unlock();
+
+display->redraw();
+oldosc->redraw();
+if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+};}
+ xywh {0 135 15 75} type {Vert Knob} box FLAT_BOX selection_color 222 maximum 127 step 1 value 64
+ code0 {o->value(oscil->Phphase[n]);}
+ class PSlider
+ }
+ Fl_Box {} {
+ xywh {15 70 5 5} box FLAT_BOX color 45
+ }
+ Fl_Box {} {
+ xywh {15 170 5 5} box FLAT_BOX color 45
+ }
+ Fl_Box {} {
+ label 01
+ xywh {0 210 20 15} labelfont 1 labelsize 9 align 20
+ code0 {char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));}
+ }
+ Fl_Box {} {
+ label 01
+ xywh {0 0 20 15} labelfont 1 labelsize 9 align 20
+ code0 {char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));}
+ }
+ }
+ }
+ Function {Oscilharmonic(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {n=0;
+oscil=NULL;
+display=NULL;
+applybutton=NULL;
+cbwidget=NULL;} {}
+ }
+ Function {init(OscilGen *oscil_,int n_,Fl_Group *display_,Fl_Widget *oldosc_,Fl_Widget *cbwidget_,Fl_Widget *applybutton_, Master *master_)} {} {
+ code {oscil=oscil_;
+n=n_;
+display=display_;
+master=master_;
+oldosc=oldosc_;
+cbwidget=cbwidget_;
+applybutton=applybutton_;
+make_window();
+end();
+harmonic->show();} {}
+ }
+ Function {refresh()} {} {
+ code {mag->value(127-oscil->Phmag[n]);
+phase->value(oscil->Phphase[n]);
+
+if (oscil->Phmag[n]==64) mag->selection_color(0);
+ else mag->selection_color(222);} {}
+ }
+ Function {~Oscilharmonic()} {} {
+ code {harmonic->hide();
+//delete(harmonic);} {}
+ }
+ decl {OscilGen *oscil;} {}
+ decl {Fl_Group *display;} {}
+ decl {int n;} {}
+ decl {Fl_Widget *oldosc,*cbwidget,*applybutton;} {}
+ decl {Master *master;} {}
+}
+
+class OscilEditor {: {public PresetsUI_}
+} {
+ Function {make_window()} {} {
+ Fl_Window osceditUI {
+ label {ADsynth Oscillator Editor}
+ xywh {131 90 735 595} type Double hide
+ code0 {if (oscil->ADvsPAD) o->label("PADsynth Harmonic Content Editor");}
+ } {
+ Fl_Button applybutton {
+ label Apply
+ callback {applybutton->color(FL_GRAY);
+applybutton->redraw();
+if (cbapplywidget!=NULL) {
+ cbapplywidget->do_callback();
+ cbapplywidget->color(FL_GRAY);
+ cbapplywidget->redraw();
+};} selected
+ xywh {300 280 60 20} box THIN_UP_BOX labelfont 1
+ code0 {if (!oscil->ADvsPAD) o->hide();}
+ }
+ Fl_Group oscildisplaygroup {
+ xywh {5 5 360 300} box ENGRAVED_FRAME
+ } {
+ Fl_Group {} {open
+ xywh {10 85 350 190} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179
+ code0 {Oscilloscope *osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {osc->init(oscil,master);}
+ } {}
+ Fl_Box {} {
+ label Oscillator
+ xywh {120 10 110 20} box FLAT_BOX labelfont 1
+ }
+ Fl_Value_Slider rndslider {
+ label rnd
+ callback {oscil->Prand=(int)o->value()+64;
+oscildisplaygroup->redraw();
+oldosc->redraw();}
+ tooltip {Oscilator Phase Randomness: smaller than 0 is "group", larger than 0 is for each harmonic} xywh {140 285 100 10} type {Horz Knob} box FLAT_BOX labelsize 10 align 5 minimum -64 maximum 63 step 1
+ code0 {if (oscil->ADvsPAD) o->hide();}
+ }
+ Fl_Group {} {open
+ xywh {10 30 350 50} box THIN_DOWN_BOX color 32 selection_color 218 labelcolor 63
+ code0 {OscilSpectrum *spc=new OscilSpectrum(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {spc->init(oscil,0,master);}
+ } {}
+ Fl_Group {} {
+ xywh {246 277 115 25} box ENGRAVED_BOX
+ code0 {if (oscil->ADvsPAD) o->hide();}
+ } {
+ Fl_Choice hrndtype {
+ label {H.rnd}
+ callback {oscil->Pamprandtype=(int) o->value();}
+ tooltip {Harmonic Amplitude Randomness} xywh {281 282 50 15} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sin
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial hrnddial {
+ callback {oscil->Pamprandpower=(int) o->value();}
+ tooltip {Oscillator's spectrum adjust parameter} xywh {338 280 18 18} maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ }
+ Fl_Box {} {
+ label {Base Func.}
+ xywh {495 15 110 20} box FLAT_BOX labelfont 1
+ }
+ Fl_Group basefuncdisplaygroup {
+ xywh {365 5 360 300} box ENGRAVED_FRAME
+ } {
+ Fl_Group {} {
+ xywh {370 85 350 190} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179
+ code0 {Oscilloscope *osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {osc->init(oscil,1,master);}
+ } {}
+ Fl_Dial bfslider {
+ callback {oscil->Pbasefuncpar=(int)o->value()+64;
+basefuncdisplaygroup->redraw();
+bfparval->value(oscil->Pbasefuncpar-64);
+
+redrawoscil();}
+ tooltip {Base Function Parameter} xywh {520 280 20 20} minimum -64 maximum 63 step 1
+ class WidgetPDial
+ }
+ Fl_Choice bftype {
+ label {Base.F..}
+ callback {oscil->Pcurrentbasefunc=(int) o->value();
+
+basefuncdisplaygroup->redraw();
+redrawoscil();
+
+if ((oscil->Pcurrentbasefunc==0)||(oscil->Pcurrentbasefunc==127)) basefuncmodulation->deactivate();
+ else basefuncmodulation->activate();}
+ xywh {370 285 90 15} down_box BORDER_BOX labelsize 10 align 5 textsize 12
+ } {
+ menuitem {} {
+ label Sine
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Triangle
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Pulse
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Saw
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Power
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Gauss
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Diode
+ xywh {60 60 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label AbsSine
+ xywh {70 70 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label PulseSine
+ xywh {80 80 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label StrchSine
+ xywh {90 90 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Chirp
+ xywh {100 100 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label AbsStrSine
+ xywh {102 102 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Chebyshev
+ xywh {112 112 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Sqr
+ xywh {122 122 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Box {} {
+ label {Base Func.}
+ xywh {480 10 110 20} box FLAT_BOX labelfont 1
+ }
+ Fl_Group {} {open
+ xywh {370 30 350 50} box THIN_DOWN_BOX color 32 selection_color 218 labelcolor 63
+ code0 {OscilSpectrum *spc=new OscilSpectrum (o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {spc->init(oscil,1,master);}
+ } {}
+ Fl_Value_Output bfparval {
+ label {Par.}
+ xywh {490 285 25 15} labelsize 13 minimum -63 maximum 63 step 1
+ }
+ Fl_Group basefuncmodulation {
+ xywh {550 276 169 25} box ENGRAVED_BOX
+ code0 {if ((oscil->Pcurrentbasefunc==0)||(oscil->Pcurrentbasefunc==127)) basefuncmodulation->deactivate();}
+ } {
+ Fl_Choice bfmodtype {
+ label {B.F.Mod.}
+ callback {oscil->Pbasefuncmodulation=(int) o->value();
+basefuncdisplaygroup->redraw();
+redrawoscil();}
+ tooltip {Base function modulation} xywh {599 281 50 15} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Rev
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial bfmodpar1 {
+ callback {oscil->Pbasefuncmodulationpar1=(int)o->value();
+basefuncdisplaygroup->redraw();
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 1} xywh {659 281 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial bfmodpar2 {
+ callback {oscil->Pbasefuncmodulationpar2=(int)o->value();
+basefuncdisplaygroup->redraw();
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 2} xywh {679 281 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial bfmodpar3 {
+ callback {oscil->Pbasefuncmodulationpar3=(int)o->value();
+basefuncdisplaygroup->redraw();
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 3} xywh {699 281 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ }
+ Fl_Choice magtype {
+ label {Mag.Type}
+ callback {oscil->Phmagtype=(int) o->value();
+basefuncdisplaygroup->redraw();
+
+redrawoscil();}
+ xywh {70 280 65 20} down_box BORDER_BOX labelsize 12 textsize 12
+ } {
+ menuitem {} {
+ label Linear
+ xywh {0 0 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-40dB}
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-60dB}
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-80dB}
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-100dB}
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Button {} {
+ label {Use as base}
+ callback {oscil->useasbase();
+if (autoclearbutton->value()){
+ for (int i=0;i<MAX_AD_HARMONICS;i++){
+ h[i]->mag->value(64);
+ oscil->Phmag[i]=64;
+ h[i]->phase->value(64);
+ oscil->Phphase[i]=64;
+ };
+ oscil->Phmag[0]=127;
+
+ oscil->Pharmonicshift=0;
+ harmonicshiftcounter->value(0);
+
+ h[0]->mag->value(0);
+ wshbutton->value(0);
+ wshbutton->do_callback();
+ fltbutton->value(0);
+ fltbutton->do_callback();
+ sabutton->value(0);
+ sabutton->do_callback();
+};
+
+master->lock();
+ for (int i=0;i<MAX_AD_HARMONICS;i++){
+ if (oscil->Phmag[i]==64) h[i]->mag->selection_color(0);
+ else h[i]->mag->selection_color(222);
+ };
+ oscil->prepare();
+master->unlock();
+
+basefuncdisplaygroup->redraw();
+redrawoscil();}
+ tooltip {Use this Oscillator as base function} xywh {5 313 85 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label Close
+ callback {osceditUI->hide();}
+ xywh {668 565 62 25} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label Clear
+ callback {if (!fl_ask("Clear the harmonics settings?")) return;
+
+for (int i=0;i<MAX_AD_HARMONICS;i++){
+ h[i]->mag->value(64);
+ oscil->Phmag[i]=64;
+ h[i]->phase->value(64);
+ oscil->Phphase[i]=64;
+};
+oscil->Phmag[0]=127;
+h[0]->mag->value(0);
+
+for (int i=0;i<MAX_AD_HARMONICS;i++){
+ if (oscil->Phmag[i]==64) h[i]->mag->selection_color(0);
+ else h[i]->mag->selection_color(222);
+};
+
+//harmonics->redraw();
+
+master->lock();
+ oscil->prepare();
+master->unlock();
+
+redrawoscil();}
+ xywh {670 505 55 15} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Group {} {
+ xywh {135 308 150 30} box ENGRAVED_BOX
+ } {
+ Fl_Choice wshbutton {
+ label {Wsh.}
+ callback {oscil->Pwaveshapingfunction=(int) o->value();
+basefuncdisplaygroup->redraw();
+redrawoscil();} open
+ tooltip {Waveshaping function} xywh {165 313 55 20} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Atan
+ xywh {35 35 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym1
+ xywh {45 45 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Qnts
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Zigzg
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Lmt
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtU
+ xywh {105 105 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LmtL
+ xywh {115 115 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ILmt
+ xywh {127 127 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Clip
+ xywh {137 137 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Asym2
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow2
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sgm
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial wshpar {
+ callback {oscil->Pwaveshaping=(int)o->value()+64;
+wsparval->value(oscil->Pwaveshaping-64);
+redrawoscil();}
+ tooltip {Waveshaping Parameter} xywh {260 313 20 20} minimum -64 maximum 63 step 1
+ class WidgetPDial
+ }
+ Fl_Value_Output wsparval {
+ xywh {228 316 25 15} labelsize 13 minimum -63 maximum 63 step 1
+ }
+ }
+ Fl_Light_Button autoclearbutton {
+ label {Clr.}
+ tooltip {Auto clear when using the oscillator as base function} xywh {95 313 35 20} box THIN_UP_BOX value 1 labelfont 1 labelsize 10
+ }
+ Fl_Group {} {
+ xywh {285 308 155 30} box ENGRAVED_BOX
+ } {
+ Fl_Choice fltbutton {
+ label Filter
+ callback {oscil->Pfiltertype=(int) o->value();
+
+redrawoscil();}
+ tooltip {Oscillator's filter type} xywh {315 313 50 20} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {35 35 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LP1
+ xywh {45 45 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HP1a
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HP1b
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label BP1
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label BS1
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LP2
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label HP2
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label BP2
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label BS2
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Cos
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sin
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label LSh
+ xywh {95 95 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label S
+ xywh {105 105 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial filtervalue1 {
+ callback {oscil->Pfilterpar1=(int)o->value();
+
+redrawoscil();}
+ tooltip {Oscillator's filter parameter1} xywh {367 313 20 20} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Check_Button filterpref {
+ label p
+ callback {oscil->Pfilterbeforews=(int)o->value();
+
+redrawoscil();}
+ tooltip {Apply the filter before the waveshaping} xywh {415 313 20 20} down_box DOWN_BOX labelsize 10 align 24
+ }
+ Fl_Dial filtervalue2 {
+ callback {oscil->Pfilterpar2=(int)o->value();
+
+redrawoscil();}
+ tooltip {Oscillator's filter parameter2} xywh {392 313 20 20} maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ xywh {590 308 135 30} box ENGRAVED_BOX
+ } {
+ Fl_Choice sabutton {
+ label {Sp.adj.}
+ callback {oscil->Psatype=(int) o->value();
+redrawoscil();}
+ tooltip {Oscillator's spectrum adjust} xywh {630 313 60 20} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ThrsD
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ThrsU
+ xywh {85 85 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial sadjpar {
+ callback {oscil->Psapar=(int)o->value();
+redrawoscil();}
+ tooltip {Oscillator's spectrum adjust parameter} xywh {695 313 20 20} maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ xywh {665 340 65 65} box ENGRAVED_BOX
+ } {
+ Fl_Counter harmonicshiftcounter {
+ label {Harmonic Shift}
+ callback {oscil->Pharmonicshift=(int)o->value();
+redrawoscil();}
+ xywh {670 365 55 15} type Simple labelsize 10 align 129 minimum -64 maximum 64 step 1 textfont 1 textsize 10
+ }
+ Fl_Check_Button harmonicshiftpre {
+ label preH
+ callback {oscil->Pharmonicshiftfirst=(int)o->value();
+redrawoscil();}
+ tooltip {Apply the harmonic shift before the waveshaping and filtering} xywh {690 385 34 15} down_box DOWN_BOX labelsize 10 align 24
+ }
+ Fl_Button {} {
+ label R
+ callback {oscil->Pharmonicshift=0;
+harmonicshiftcounter->value(0);
+redrawoscil();}
+ xywh {670 385 20 15} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ }
+ Fl_Group {} {
+ xywh {665 410 65 90} box ENGRAVED_FRAME
+ } {
+ Fl_Choice adhrtype {
+ label {Adpt.Harm.}
+ callback {oscil->Padaptiveharmonics=(int) o->value();
+redrawoscil();}
+ tooltip {The type of the addaptive harmonics} xywh {670 425 55 15} down_box BORDER_BOX labelsize 10 align 129 when 6 textsize 10
+ } {
+ menuitem {} {
+ label OFF
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label ON
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Square
+ xywh {100 100 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 2xSub
+ xywh {110 110 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 2xAdd
+ xywh {120 120 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 3xSub
+ xywh {120 120 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 3xAdd
+ xywh {130 130 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 4xSub
+ xywh {130 130 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label 4xAdd
+ xywh {140 140 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial adhrpow {
+ label pow
+ callback {oscil->Padaptiveharmonicspower=(int)o->value();
+redrawoscil();}
+ tooltip {Adaptive harmonics power} xywh {700 460 25 25} labelsize 10 maximum 200 step 1
+ class WidgetPDial
+ }
+ Fl_Dial adhrbf {
+ label baseF
+ callback {oscil->Padaptiveharmonicsbasefreq=(int)o->value();
+redrawoscil();}
+ tooltip {Adaptive harmonics base frequency} xywh {670 460 25 25} labelsize 10 maximum 255 step 1
+ class WidgetPDial
+ }
+ Fl_Slider adhrpar {
+ callback {oscil->Padaptiveharmonicspar=(int)o->value();
+redrawoscil();}
+ xywh {670 445 55 10} type {Horz Knob} box FLAT_BOX maximum 100 step 1 value 50
+ }
+ }
+ Fl_Group {} {
+ xywh {440 308 150 30} box ENGRAVED_BOX
+ } {
+ Fl_Choice modtype {
+ label {Mod.}
+ callback {oscil->Pmodulation=(int) o->value();
+
+redrawoscil();}
+ tooltip modulation xywh {470 315 50 15} down_box BORDER_BOX labelsize 10 textsize 10
+ } {
+ menuitem {} {
+ label None
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Rev
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Pow
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial modpar1 {
+ callback {oscil->Pmodulationpar1=(int)o->value();
+
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 1} xywh {530 315 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial modpar2 {
+ callback {oscil->Pmodulationpar2=(int)o->value();
+
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 2} xywh {550 315 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ Fl_Dial modpar3 {
+ callback {oscil->Pmodulationpar3=(int)o->value();
+redrawoscil();}
+ tooltip {Oscillator's modulation parameter 3} xywh {570 315 15 15} maximum 127 step 1
+ class WidgetPDial
+ }
+ }
+ Fl_Button {} {
+ label Sine
+ callback {if (!fl_ask("Convert to SINE?")) return;
+
+master->lock();
+ oscil->convert2sine(0);
+master->unlock();
+
+redrawoscil();
+refresh();}
+ xywh {670 525 55 15} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(oscil);}
+ xywh {670 545 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(oscil,this);}
+ xywh {700 545 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Scroll _this_has_to_be_the_last {
+ xywh {5 340 660 250} type HORIZONTAL box ENGRAVED_BOX
+ } {
+ Fl_Pack harmonics {open
+ xywh {10 345 650 225} type HORIZONTAL
+ code0 {for (int i=0;i<MAX_AD_HARMONICS;i++){h[i]=new Oscilharmonic(0,0,20,o->h(),"");h[i]->init(oscil,i,oscildisplaygroup,oldosc,cbwidget,applybutton,master);}}
+ } {}
+ }
+ }
+ }
+ Function {OscilEditor(OscilGen *oscil_,Fl_Widget *oldosc_,Fl_Widget *cbwidget_,Fl_Widget *cbapplywidget_,Master *master_)} {} {
+ code {oscil=oscil_;
+oldosc=oldosc_;
+cbwidget=cbwidget_;
+cbapplywidget=cbapplywidget_;
+master=master_;
+
+make_window();
+
+refresh();
+osceditUI->show();} {}
+ }
+ Function {~OscilEditor()} {} {
+ code {osceditUI->hide();
+//for (int i=0;i<MAX_AD_HARMONICS;i++) delete (h[i]);
+delete (osceditUI);} {}
+ }
+ Function {refresh()} {} {
+ code {magtype->value(oscil->Phmagtype);
+rndslider->value(oscil->Prand-64);
+
+hrndtype->value(oscil->Pamprandtype);
+hrnddial->value(oscil->Pamprandpower);
+
+bftype->value(oscil->Pcurrentbasefunc);
+bfparval->value(oscil->Pbasefuncpar-64);
+bfslider->value(oscil->Pbasefuncpar-64);
+
+bfmodtype->value(oscil->Pbasefuncmodulation);
+bfmodpar1->value(oscil->Pbasefuncmodulationpar1);
+bfmodpar2->value(oscil->Pbasefuncmodulationpar2);
+bfmodpar3->value(oscil->Pbasefuncmodulationpar3);
+
+wshbutton->value(oscil->Pwaveshapingfunction);
+wsparval->value(oscil->Pwaveshaping-64);
+wshpar->value(oscil->Pwaveshaping-64);
+
+fltbutton->value(oscil->Pfiltertype);
+filtervalue1->value(oscil->Pfilterpar1);
+filtervalue2->value(oscil->Pfilterpar2);
+filterpref->value(oscil->Pfilterbeforews);
+
+modtype->value(oscil->Pmodulation);
+modpar1->value(oscil->Pmodulationpar1);
+modpar2->value(oscil->Pmodulationpar2);
+modpar3->value(oscil->Pmodulationpar3);
+
+sabutton->value(oscil->Psatype);
+sadjpar->value(oscil->Psapar);
+
+harmonicshiftcounter->value(oscil->Pharmonicshift);
+harmonicshiftpre->value(oscil->Pharmonicshiftfirst);
+
+adhrtype->value(oscil->Padaptiveharmonics);
+adhrbf->value(oscil->Padaptiveharmonicsbasefreq);
+adhrpow->value(oscil->Padaptiveharmonicspower);
+adhrtype->value(oscil->Padaptiveharmonicspar);
+
+for (int i=0;i<MAX_AD_HARMONICS;i++) h[i]->refresh();
+
+master->lock();
+ oscil->prepare();
+master->unlock();
+
+basefuncdisplaygroup->redraw();
+redrawoscil();} {}
+ }
+ Function {redrawoscil()} {} {
+ code {oscildisplaygroup->redraw();
+oldosc->redraw();
+if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+};} {}
+ }
+ decl {OscilGen *oscil;} {}
+ decl {Fl_Widget *oldosc,*cbwidget,*cbapplywidget;} {}
+ decl {Oscilharmonic *h[MAX_AD_HARMONICS];} {}
+ decl {Master *master;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/PADnoteUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/PADnoteUI.fl
new file mode 100644
index 00000000..45c1f9a8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/PADnoteUI.fl
@@ -0,0 +1,1086 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {\#include "../Params/PADnoteParameters.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "ResonanceUI.h"} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/Fl_Group.H>} {public
+}
+
+decl {\#include <math.h>} {}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include <string.h>} {}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EnvelopeUI.h"} {public
+}
+
+decl {\#include "LFOUI.h"} {public
+}
+
+decl {\#include "FilterUI.h"} {public
+}
+
+decl {\#include "OscilGenUI.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class PADnoteHarmonicProfile {: {public Fl_Box}
+} {
+ Function {PADnoteHarmonicProfile(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {pars=NULL;} {}
+ }
+ Function {init(PADnoteParameters *pars,Master *master_)} {} {
+ code {master=master_;
+this->pars=pars;} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h();
+if (!visible()) return;
+REALTYPE smps[lx];
+
+REALTYPE realbw=pars->getprofile(smps,lx);
+bool active=active_r();
+
+//draw the equivalent bandwidth
+if (active) fl_color(220,220,220);
+ else fl_color(160,165,165);
+fl_line_style(0);
+int rbw=(int)(realbw*(lx-1.0)/2.0);
+for (int i=lx/2-rbw;i<(lx/2+rbw);i++) fl_line(ox+i,oy,ox+i,oy+ly-1);
+
+fl_line_style(0);
+if (active) fl_color(200,200,200);
+ else fl_color(160,160,160);
+for (int i=1;i<10;i++){
+ int kx=(int)(lx/10.0*i);
+ fl_line(ox+kx,oy,ox+kx,oy+ly-1);
+};
+for (int i=1;i<5;i++){
+ int ky=(int)(ly/5.0*i);
+ fl_line(ox,oy+ly-ky,ox+lx,oy+ly-ky-1);
+};
+
+
+fl_color(120,120,120);
+fl_line_style(FL_DOT);
+fl_line(ox+lx/2,oy,ox+lx/2,oy+ly);
+
+//draw the graph
+fl_line_style(0);
+int old=0;
+for (int i=0;i<lx;i++){
+ int val=(int) ((ly-2)*smps[i]);
+ if (active) fl_color(180,210,240);
+ else fl_color(150,150,155);
+ fl_line(ox+i,oy+ly-1,ox+i,oy+ly-1-val);
+ if (active) fl_color(0,0,100);
+ else fl_color(150,150,150);
+ if (i>0) fl_line(ox+i-1,oy+ly-2-old,ox+i,oy+ly-2-val);
+ old=val;
+};
+
+
+fl_line_style(FL_DASH);
+if (active) fl_color(0,100,220);
+ else fl_color(150,160,170);
+fl_line(ox+lx/2-rbw,oy,ox+lx/2-rbw,oy+ly-1);
+fl_line(ox+lx/2+rbw,oy,ox+lx/2+rbw,oy+ly-1);
+
+fl_line_style(0);} {}
+ }
+ decl {Master *master;} {}
+ decl {PADnoteParameters *pars;} {public
+ }
+}
+
+class PADnoteOvertonePosition {: {public Fl_Box}
+} {
+ Function {PADnoteOvertonePosition(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {pars=NULL;} {}
+ }
+ Function {init(PADnoteParameters *pars,Master *master_)} {} {
+ code {master=master_;
+this->pars=pars;} {}
+ }
+ Function {draw()} {} {
+ code {if (!visible()) return;
+const int maxdb=60;
+
+int ox=x(),oy=y(),lx=w(),ly=h();
+const int maxharmonic=64;
+
+
+for (int i=1;i<maxharmonic;i++){
+ fl_color(200,200,200);
+ fl_line_style(FL_DOT);
+ if (i%5==0) fl_line_style(0);
+ if (i%10==0) fl_color(160,160,160);
+ int kx=(int)(lx/(REALTYPE)maxharmonic*i);
+ fl_line(ox+kx,oy,ox+kx,oy+ly);
+};
+
+
+
+int n=OSCIL_SIZE/2;
+REALTYPE spc[n];
+for (int i=0;i<n;i++) spc[i]=0.0;
+
+master->busy=true;
+pars->oscilgen->getspectrum(n,spc,0);
+master->busy=false;
+
+
+//normalize
+REALTYPE max=0;
+for (int i=0;i<n;i++){
+ REALTYPE x=fabs(spc[i]);
+ if (max<x) max=x;
+}
+if (max<0.000001) max=1.0;
+max=max*1.05;
+
+REALTYPE spectrum[lx];
+for (int i=0;i<lx;i++) spectrum[i]=0;
+
+
+for (int i=1;i<n;i++){
+ REALTYPE nhr=pars->getNhr(i);
+ int kx=(int)(lx/(REALTYPE)maxharmonic*nhr);
+ if ((kx<0)||(kx>lx)) continue;
+
+ spectrum[kx]=spc[i-1]/max+1e-9;
+
+};
+
+fl_color(180,0,0);
+fl_line_style(0);
+
+if (pars->Pmode==2){
+ int old=0;
+ for (int i=1;i<lx;i++){
+ if ((spectrum[i]>1e-10)||(i==(lx-1))){
+ int delta=i-old;
+ REALTYPE val1=spectrum[old];
+ REALTYPE val2=spectrum[i];
+
+ REALTYPE idelta=1.0/delta;
+ for (int j=0;j<delta;j++){
+ REALTYPE x=idelta*j;
+ spectrum[old+j]=val1*(1.0-x)+val2*x;
+ };
+ old=i;
+ };
+
+ };
+};
+
+for (int i=0;i<lx;i++){
+ REALTYPE x=spectrum[i];
+ if (x>dB2rap(-maxdb)) x=rap2dB(x)/maxdb+1;
+ else continue;
+ int yy=(int)(x*ly);
+ fl_line(ox+i,oy+ly-1-yy,ox+i,oy+ly-1);
+
+};} {}
+ }
+ decl {Master *master;} {}
+ decl {PADnoteParameters *pars;} {public
+ }
+}
+
+class PADnoteUI {open : {public PresetsUI_}
+} {
+ Function {PADnoteUI(PADnoteParameters *parameters,Master *master_)} {open
+ } {
+ code {pars=parameters;
+master=master_;
+oscui=NULL;
+resui=new ResonanceUI(pars->resonance);
+make_window();} {}
+ }
+ Function {make_window()} {open
+ } {
+ Fl_Window padnotewindow {
+ label {PAD synth Parameters} selected
+ xywh {76 165 535 450} type Double hide
+ } {
+ Fl_Tabs {} {
+ callback {if (o->value()!=harmonicstructuregroup) applybutton->hide();
+ else applybutton->show();}
+ xywh {0 0 535 395}
+ } {
+ Fl_Group harmonicstructuregroup {
+ label {Harmonic Structure}
+ xywh {0 20 535 375} box ENGRAVED_BOX
+ } {
+ Fl_Group bwprofilegroup {
+ xywh {5 30 90 260} box ENGRAVED_BOX
+ code0 {if (pars->Pmode!=0) o->deactivate();}
+ } {
+ Fl_Dial hpbasepar1 {
+ label Width
+ callback {pars->Php.base.par1=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {20 75 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.base.par1);}
+ class WidgetPDial
+ }
+ Fl_Choice hpbasetype {
+ label {Base Type}
+ callback {pars->Php.base.type=o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {15 45 75 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code0 {o->value(pars->Php.base.type);}
+ } {
+ menuitem {} {
+ label Gauss
+ xywh {15 15 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Square
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label DoubleExp
+ xywh {35 35 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial hpfreqmult {
+ label FreqMlt
+ callback {pars->Php.freqmult=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {55 75 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.freqmult);}
+ class WidgetPDial
+ }
+ Fl_Dial hpmpar1 {
+ label Str
+ callback {pars->Php.modulator.par1=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {15 115 20 20} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.modulator.par1);}
+ class WidgetPDial
+ }
+ Fl_Dial hpmfreq {
+ label SFreq
+ callback {pars->Php.modulator.freq=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {40 115 20 20} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.modulator.freq);}
+ class WidgetPDial
+ }
+ Fl_Group {} {
+ xywh {10 160 80 105} box BORDER_BOX
+ } {
+ Fl_Choice hpamptype {
+ label AmpMultiplier
+ callback {pars->Php.amp.type=o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {15 175 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code0 {o->value(pars->Php.amp.type);}
+ } {
+ menuitem {} {
+ label OFF
+ xywh {45 45 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Gauss
+ xywh {55 55 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Sine
+ xywh {65 65 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Flat
+ xywh {75 75 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Choice hpampmode {
+ label AmpMode
+ callback {pars->Php.amp.mode=o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {15 205 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code0 {o->value(pars->Php.amp.mode);}
+ } {
+ menuitem {} {
+ label Sum
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Mult
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Div1
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label Div2
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial hpamppar1 {
+ label Par1
+ callback {pars->Php.amp.par1=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {15 235 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.amp.par1);}
+ class WidgetPDial
+ }
+ Fl_Dial hpamppar2 {
+ label Par2
+ callback {pars->Php.amp.par2=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {55 235 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.amp.par2);}
+ class WidgetPDial
+ }
+ }
+ Fl_Check_Button hpautoscale {
+ label autoscale
+ callback {pars->Php.autoscale=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {10 270 60 15} down_box DOWN_BOX labelsize 10
+ code0 {o->value(pars->Php.autoscale);}
+ }
+ Fl_Choice hponehalf {
+ callback {pars->Php.onehalf=o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {10 143 80 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
+ code0 {o->value(pars->Php.onehalf);}
+ } {
+ menuitem {} {
+ label Full
+ xywh {25 25 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {Upper Half}
+ xywh {45 45 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {Lower Half}
+ xywh {35 35 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Dial hpwidth {
+ label Size
+ callback {pars->Php.width=(int) o->value();
+hprofile->redraw();
+cbwidget->do_callback();}
+ xywh {65 115 20 20} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->Php.width);}
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ xywh {100 155 270 135} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179 align 6
+ code0 {osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {osc->init(pars->oscilgen,master);}
+ } {}
+ Fl_Button {} {
+ label Change
+ callback {if (oscui!=NULL) delete (oscui);
+oscui=new OscilEditor(pars->oscilgen,osc,cbwidget,applybutton,master);}
+ xywh {375 270 60 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Box cbwidget {
+ label {Harmonic Content}
+ callback {overtonepos->redraw();
+applybutton->color(FL_RED);
+applybutton->redraw();}
+ xywh {125 135 205 20} align 16
+ }
+ Fl_Button {} {
+ label Resonance
+ callback {resui->resonancewindow->redraw();
+resui->resonancewindow->show();
+resui->setcbwidget(cbwidget,applybutton);}
+ xywh {375 225 80 20} box THIN_UP_BOX
+ }
+ Fl_Dial bwdial {
+ label BandWidth
+ callback {bwcents->value(pars->setPbandwidth((int) o->value()));
+cbwidget->do_callback();}
+ xywh {15 295 35 35} box ROUND_UP_BOX labelsize 11 maximum 1000 step 1
+ code0 {o->value(pars->Pbandwidth);}
+ code1 {if (pars->Pmode!=0) o->deactivate();}
+ class WidgetPDial
+ }
+ Fl_Value_Output bwcents {
+ label cents
+ xywh {55 305 55 15} labelsize 10 align 6 maximum 10000 step 0.1
+ code0 {o->value(pars->setPbandwidth(pars->Pbandwidth));}
+ code1 {if (pars->Pmode!=0) o->deactivate();}
+ }
+ Fl_Group {} {
+ xywh {315 295 215 45} box ENGRAVED_BOX
+ } {
+ Fl_Choice hrpostype {
+ label OvertonesPosition
+ callback {pars->Phrpos.type=o->value();
+overtonepos->redraw();
+cbwidget->do_callback();}
+ xywh {325 310 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 12
+ code0 {o->value(pars->Phrpos.type);}
+ } {
+ menuitem {} {
+ label Harmonic
+ xywh {70 70 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label ShiftU
+ xywh {80 80 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label ShiftL
+ xywh {90 90 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label PowerU
+ xywh {90 90 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label PowerL
+ xywh {100 100 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Sine
+ xywh {110 110 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Power
+ xywh {120 120 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Dial hrpospar1 {
+ label Par1
+ callback {pars->Phrpos.par1=(int) o->value();
+overtonepos->redraw();
+cbwidget->do_callback();}
+ xywh {425 310 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 255 step 1
+ code0 {o->value(pars->Phrpos.par1);}
+ class WidgetPDial
+ }
+ Fl_Dial hrpospar2 {
+ label Par2
+ callback {pars->Phrpos.par2=(int) o->value();
+overtonepos->redraw();
+cbwidget->do_callback();}
+ xywh {460 310 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 255 step 1
+ code0 {o->value(pars->Phrpos.par2);}
+ class WidgetPDial
+ }
+ Fl_Dial hrpospar3 {
+ label ForceH
+ callback {pars->Phrpos.par3=(int) o->value();
+overtonepos->redraw();
+cbwidget->do_callback();}
+ xywh {495 310 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 255 step 1
+ code0 {o->value(pars->Phrpos.par3);}
+ class WidgetPDial
+ }
+ }
+ Fl_Choice bwscale {
+ label {Bandwidth Scale}
+ callback {pars->Pbwscale=(int) o->value();
+cbwidget->do_callback();}
+ xywh {120 305 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 12
+ code0 {o->value(pars->Pbwscale);}
+ code1 {if (pars->Pmode!=0) o->deactivate();}
+ } {
+ menuitem {} {
+ label Normal
+ xywh {95 95 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label EqualHz
+ xywh {105 105 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Quater
+ xywh {115 115 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Half
+ xywh {125 125 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {75%}
+ xywh {135 135 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {150%}
+ xywh {145 145 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Double
+ xywh {145 145 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Inv.Half}
+ xywh {155 155 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Group overtonepos {
+ xywh {5 345 525 45} box FLAT_BOX color 54 selection_color 218 labelcolor 63
+ code0 {PADnoteOvertonePosition *opui=new PADnoteOvertonePosition(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {opui->init(pars,master);}
+ } {}
+ Fl_Choice qsamplesize {
+ label {Sample Size}
+ callback {pars->Pquality.samplesize=(int) o->value();
+cbwidget->do_callback();}
+ xywh {375 190 115 20} down_box BORDER_BOX labelsize 10 align 5 textsize 12
+ code0 {o->value(pars->Pquality.samplesize);}
+ } {
+ menuitem {} {
+ label {16k (Tiny)}
+ xywh {155 155 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 32k
+ xywh {165 165 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {64k (Small)}
+ xywh {175 175 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 128k
+ xywh {185 185 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {256k (Normal)}
+ xywh {205 205 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 512k
+ xywh {200 200 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {1M (Big)}
+ xywh {205 205 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Choice qsmpoct {
+ label {smp/oct}
+ callback {pars->Pquality.smpoct=(int) o->value();
+cbwidget->do_callback();}
+ xywh {430 155 45 20} down_box BORDER_BOX labelsize 12 align 5 textsize 12
+ code0 {o->value(pars->Pquality.smpoct);}
+ } {
+ menuitem {} {
+ label {0.5}
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 1
+ xywh {0 0 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 2
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 3
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 4
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 6
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 12
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Choice qoct {
+ label {no.oct}
+ callback {pars->Pquality.oct=(int) o->value();
+cbwidget->do_callback();}
+ xywh {480 155 45 20} down_box BORDER_BOX labelsize 12 align 5 textsize 12
+ code0 {o->value(pars->Pquality.oct);}
+ } {
+ menuitem {} {
+ label 1
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 2
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 3
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 4
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 5
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 6
+ xywh {60 60 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 7
+ xywh {70 70 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label 8
+ xywh {80 80 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Choice qbasenote {
+ label base
+ callback {pars->Pquality.basenote=(int) o->value();
+cbwidget->do_callback();}
+ xywh {375 155 50 20} down_box BORDER_BOX labelsize 12 align 5 textsize 12
+ code0 {o->value(pars->Pquality.basenote);}
+ } {
+ menuitem {} {
+ label {C-2}
+ xywh {10 10 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {G-2}
+ xywh {20 20 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {C-3}
+ xywh {20 20 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {G-3}
+ xywh {30 30 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {C-4}
+ xywh {30 30 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {G-4}
+ xywh {40 40 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {C-5}
+ xywh {40 40 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {G-5}
+ xywh {50 50 100 20} labelfont 1
+ }
+ menuitem {} {
+ label {G-6}
+ xywh {60 60 100 20} labelfont 1
+ }
+ }
+ Fl_Group hprofile {
+ xywh {100 45 430 90} box FLAT_BOX color 54 selection_color 218 labelcolor 63
+ code0 {PADnoteHarmonicProfile *hpui=new PADnoteHarmonicProfile(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {hpui->init(pars,master);}
+ code2 {if (pars->Pmode!=0) { o->deactivate(); o->color(48);};}
+ } {}
+ Fl_Box {} {
+ label {Profile of One Harmonic (Frequency Distribution)}
+ xywh {160 25 315 20}
+ }
+ Fl_Choice spectrummode {
+ label {Spectrum Mode}
+ callback {pars->Pmode=(int) o->value();
+
+if (pars->Pmode==0){
+ bwprofilegroup->activate();
+ bwdial->activate();
+ bwcents->activate();
+ hprofile->activate();
+ hprofile->color(54);
+ bwscale->activate();
+} else {
+ bwprofilegroup->deactivate();
+ bwdial->deactivate();
+ bwcents->deactivate();
+ hprofile->deactivate();
+ hprofile->color(48);
+ bwscale->deactivate();
+};
+
+cbwidget->do_callback();}
+ xywh {220 305 90 20} down_box BORDER_BOX labelfont 1 labelsize 10 labelcolor 0 align 5 textsize 12
+ code0 {o->value(pars->Pmode);}
+ } {
+ menuitem {} {
+ label Bandwidth
+ xywh {105 105 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Discrete
+ xywh {125 125 100 20} labelfont 1 labelsize 12 labelcolor 0
+ }
+ menuitem {} {
+ label Continous
+ xywh {115 115 100 20} labelfont 1 labelsize 12 labelcolor 0
+ }
+ }
+ }
+ Fl_Group {} {
+ label {Envelopes&LFOs}
+ xywh {0 20 535 375} box ENGRAVED_BOX hide
+ } {
+ Fl_Group {} {
+ label FREQUENCY
+ xywh {5 275 525 115} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group freqenv {
+ label {PADSynth - Frequency Envelope} open
+ xywh {10 315 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->FreqEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Counter octave {
+ label Octave
+ callback {int k=(int) o->value();
+if (k<0) k+=16;
+pars->PCoarseDetune = k*1024+
+ pars->PCoarseDetune%1024;}
+ tooltip Octave xywh {470 295 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 12
+ code0 {int k=pars->PCoarseDetune/1024;}
+ code1 {if (k>=8) k-=16;}
+ code2 {o->value(k);}
+ }
+ Fl_Counter coarsedet {
+ label {Coarse det.}
+ callback {int k=(int) o->value();
+if (k<0) k+=1024;
+pars->PCoarseDetune = k+
+ (pars->PCoarseDetune/1024)*1024;}
+ tooltip {Coarse Detune} xywh {455 365 60 20} labelsize 10 align 5 minimum -64 maximum 63 step 1 textfont 1 textsize 12
+ code0 {int k=pars->PCoarseDetune%1024;}
+ code1 {if (k>=512) k-=1024;}
+ code2 {o->value(k);}
+ code3 {o->lstep(10);}
+ }
+ Fl_Group freqlfo {
+ label {Frequency LFO } open
+ xywh {215 315 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->FreqLfo);}
+ class LFOUI
+ } {}
+ Fl_Slider detune {
+ callback {pars->PDetune=(int)o->value()+8192;
+detunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {60 295 295 15} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->PDetune-8192);}
+ }
+ Fl_Value_Output detunevalueoutput {
+ label Detune
+ callback {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
+ xywh {12 295 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
+ code0 {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
+ }
+ Fl_Choice detunetype {
+ label {Detune Type}
+ callback {pars->PDetuneType=(int) o->value()+1;
+detunevalueoutput->do_callback();} open
+ xywh {450 335 75 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
+ code1 {o->value(pars->PDetuneType-1);}
+ } {}
+ Fl_Check_Button hz440 {
+ label 440Hz
+ callback {int x=(int) o->value();
+pars->Pfixedfreq=x;
+if (x==0) fixedfreqetdial->deactivate();
+ else fixedfreqetdial->activate();}
+ tooltip {set the base frequency to 440Hz} xywh {365 295 50 15} down_box DOWN_BOX labelfont 1 labelsize 11
+ code0 {o->value(pars->Pfixedfreq);}
+ }
+ Fl_Dial fixedfreqetdial {
+ label {Eq.T.}
+ callback {pars->PfixedfreqET=(int) o->value();}
+ tooltip {How the frequency varies acording to the keyboard (leftmost for fixed frequency)} xywh {420 295 15 15} box ROUND_UP_BOX labelsize 10 align 8 maximum 127 step 1
+ code0 {o->value(pars->PfixedfreqET);}
+ code1 {if (pars->Pfixedfreq==0) o->deactivate();}
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ label AMPLITUDE
+ xywh {5 25 240 250} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Value_Slider volume {
+ label Vol
+ callback {pars->PVolume=(int)o->value();}
+ tooltip Volume xywh {10 50 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->PVolume);}
+ }
+ Fl_Value_Slider vsns {
+ label {V.Sns}
+ callback {pars->PAmpVelocityScaleFunction=(int) o->value();}
+ tooltip {Velocity Sensing Function (rightmost to disable)} xywh {10 70 160 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->PAmpVelocityScaleFunction);}
+ }
+ Fl_Dial pan {
+ label Pan
+ callback {pars->PPanning=(int) o->value();}
+ tooltip {Panning (leftmost is Random)} xywh {210 45 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->PPanning);}
+ class WidgetPDial
+ }
+ Fl_Dial pstr {
+ label {P.Str.}
+ callback {pars->PPunchStrength=(int) o->value();}
+ tooltip {Punch Strength} xywh {125 247 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->PPunchStrength);}
+ class WidgetPDial
+ }
+ Fl_Dial pt {
+ label {P.t.}
+ callback {pars->PPunchTime=(int) o->value();}
+ tooltip {Punch Time (duration)} xywh {155 247 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->PPunchTime);}
+ class WidgetPDial
+ }
+ Fl_Dial pstc {
+ label {P.Stc.}
+ callback {pars->PPunchStretch=(int) o->value();}
+ tooltip {Punch Stretch} xywh {185 247 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->PPunchStretch);}
+ class WidgetPDial
+ }
+ Fl_Dial pvel {
+ label {P.Vel.}
+ callback {pars->PPunchVelocitySensing=(int) o->value();}
+ tooltip {Punch Velocity Sensing} xywh {215 247 25 25} box ROUND_UP_BOX labelsize 11 align 1 maximum 127 step 1
+ code0 {o->value(pars->PPunchVelocitySensing);}
+ class WidgetPDial
+ }
+ Fl_Group ampenv {
+ label {PADSynth - Amplitude Envelope} open
+ xywh {10 95 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->AmpEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Group amplfo {
+ label {Amplitude LFO } open
+ xywh {10 165 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->AmpLfo);}
+ class LFOUI
+ } {}
+ Fl_Check_Button stereo {
+ label Stereo
+ callback {pars->PStereo=(int) o->value();
+hprofile->redraw();}
+ xywh {15 245 70 25} down_box DOWN_BOX
+ code0 {o->value(pars->PStereo);}
+ }
+ }
+ Fl_Group {} {
+ label FILTER
+ xywh {245 25 285 250} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ } {
+ Fl_Group filterenv {
+ label {PADSynth - Filter Envelope} open
+ xywh {250 130 275 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->FilterEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Group filterlfo {
+ label {Filter LFO } open
+ xywh {250 200 230 70} box FLAT_BOX color 47 align 144
+ code0 {o->init(pars->FilterLfo);}
+ class LFOUI
+ } {}
+ Fl_Group filterui {
+ label {PADsynth - Filter} open
+ xywh {250 55 275 75} box FLAT_BOX color 50 align 144
+ code0 {o->init(pars->GlobalFilter,&pars->PFilterVelocityScale,&pars->PFilterVelocityScaleFunction);}
+ class FilterUI
+ } {}
+ }
+ }
+ }
+ Fl_Button applybutton {
+ label {Apply Changes}
+ callback {pars->applyparameters(true);
+o->color(FL_GRAY);
+if (oscui!=NULL) {
+ oscui->applybutton->color(FL_GRAY);
+ oscui->applybutton->redraw();
+};
+if (resui!=NULL) {
+ resui->applybutton->color(FL_GRAY);
+ resui->applybutton->redraw();
+};}
+ xywh {45 405 185 40} box THIN_UP_BOX labelfont 1 labelsize 23
+ code0 {o->color(FL_RED);}
+ }
+ Fl_Button {} {
+ label Close
+ callback {padnotewindow->hide();}
+ xywh {320 405 175 40} box THIN_UP_BOX labelsize 20
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars);}
+ xywh {240 430 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this);}
+ xywh {270 430 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ }
+ Function {refresh()} {} {
+ code {volume->value(pars->PVolume);
+vsns->value(pars->PAmpVelocityScaleFunction);
+pan->value(pars->PPanning);
+
+stereo->value(pars->PStereo);
+
+
+pstr->value(pars->PPunchStrength);
+pt->value(pars->PPunchTime);
+pstc->value(pars->PPunchStretch);
+pvel->value(pars->PPunchVelocitySensing);
+
+detunevalueoutput->value(getdetune(pars->PDetuneType,0,pars->PDetune));
+detune->value(pars->PDetune-8192);
+
+int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;
+octave->value(k);
+
+detunetype->value(pars->PDetuneType-1);
+k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;
+coarsedet->value(k);
+
+hz440->value(pars->Pfixedfreq);
+fixedfreqetdial->value(pars->PfixedfreqET);
+
+amplfo->refresh();
+freqlfo->refresh();
+filterlfo->refresh();
+
+ampenv->refresh();
+freqenv->refresh();
+filterenv->refresh();
+filterui->refresh();
+
+
+/* harmonic structure parametrs */
+
+resui->refresh();
+if (oscui!=NULL) oscui->refresh();
+
+hpbasetype->value(pars->Php.base.type);
+hpbasepar1->value(pars->Php.base.par1);
+hpfreqmult->value(pars->Php.freqmult);
+
+hpmpar1->value(pars->Php.modulator.par1);
+hpmfreq->value(pars->Php.modulator.freq);
+hpwidth->value(pars->Php.width);
+
+hponehalf->value(pars->Php.onehalf);
+hpamptype->value(pars->Php.amp.type);
+hpampmode->value(pars->Php.amp.mode);
+hpamppar1->value(pars->Php.amp.par1);
+hpamppar2->value(pars->Php.amp.par2);
+hpautoscale->value(pars->Php.autoscale);
+
+bwdial->value(pars->Pbandwidth);
+if (pars->Pmode==0){
+ bwprofilegroup->activate();
+ bwdial->activate();
+ bwcents->activate();
+ hprofile->activate();
+ hprofile->color(54);
+ bwscale->activate();
+} else {
+ bwprofilegroup->deactivate();
+ bwdial->deactivate();
+ bwcents->deactivate();
+ hprofile->deactivate();
+ hprofile->color(48);
+ bwscale->activate();
+};
+
+spectrummode->value(pars->Pmode);
+
+qbasenote->value(pars->Pquality.basenote);
+qsmpoct->value(pars->Pquality.smpoct);
+qoct->value(pars->Pquality.oct);
+qsamplesize->value(pars->Pquality.samplesize);
+
+hrpostype->value(pars->Phrpos.type);
+hrpospar1->value(pars->Phrpos.par1);
+hrpospar2->value(pars->Phrpos.par2);
+hrpospar3->value(pars->Phrpos.par3);
+
+hprofile->redraw();
+overtonepos->redraw();
+
+osc->redraw();
+pars->applyparameters(true);
+applybutton->color(FL_GRAY);
+applybutton->parent()->redraw();} {}
+ }
+ Function {~PADnoteUI()} {} {
+ code {delete(oscui);
+delete(resui);
+
+padnotewindow->hide();
+delete(padnotewindow);} {}
+ }
+ decl {PADnoteParameters *pars;} {public
+ }
+ decl {Master *master;} {public
+ }
+ decl {OscilEditor *oscui;} {public
+ }
+ decl {Oscilloscope *osc;} {public
+ }
+ decl {ResonanceUI *resui;} {public
+ }
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/PartUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/PartUI.fl
new file mode 100644
index 00000000..a3a91782
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/PartUI.fl
@@ -0,0 +1,1086 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0104
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EffUI.h"} {public
+}
+
+decl {\#include "BankUI.h"} {public
+}
+
+decl {\#include "ADnoteUI.h"} {public
+}
+
+decl {\#include "SUBnoteUI.h"} {public
+}
+
+decl {\#include "PADnoteUI.h"} {public
+}
+
+decl {\#include "../Misc/Config.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "../Misc/Part.h"} {public
+}
+
+class PartSysEffSend {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window syseffsend {
+ private xywh {584 83 90 35} type Double hide
+ class Fl_Group
+ } {
+ Fl_Dial {} {
+ label 01
+ callback {master->setPsysefxvol(npart,neff,(int) o->value());}
+ xywh {0 0 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 align 130 maximum 127 step 1
+ code0 {o->size(25,25);}
+ code1 {o->value(master->Psysefxvol[neff][npart]);}
+ code2 {char tmp[10];snprintf(tmp,10,"%d",neff);o->label(strdup(tmp));}
+ class WidgetPDial
+ }
+ }
+ }
+ Function {PartSysEffSend(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {master=NULL;
+neff=0;
+npart=0;} {}
+ }
+ Function {init(Master *master_,int npart_,int neff_)} {} {
+ code {npart=npart_;
+neff=neff_;
+master=master_;
+make_window();
+syseffsend->show();
+end();} {}
+ }
+ Function {~PartSysEffSend()} {} {
+ code {syseffsend->hide();
+//delete(syseffsend);} {}
+ }
+ decl {Master *master;} {}
+ decl {int neff;} {}
+ decl {int npart;} {}
+}
+
+class PartUI_ {} {
+ Function {showparameters(int kititem,int engine)} {return_type virtual
+ } {}
+}
+
+class PartKitItem {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window partkititem {
+ private xywh {113 271 670 30} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group partkititemgroup {
+ private xywh {55 0 605 20} box FLAT_BOX
+ code0 {if (part->kit[n].Penabled==0) o->deactivate();}
+ } {
+ Fl_Counter minkcounter {
+ callback {part->kit[n].Pminkey=(int)o->value();}
+ xywh {225 0 55 15} type Simple minimum 0 maximum 128 step 1
+ code0 {o->value(part->kit[n].Pminkey);}
+ }
+ Fl_Button {} {
+ label m
+ callback {if (part->lastnote>=0) minkcounter->value(part->lastnote);
+minkcounter->do_callback();
+maxkcounter->do_callback();}
+ tooltip {set the minimum key to the last pressed key} xywh {285 3 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label M
+ callback {if (part->lastnote>=0) maxkcounter->value(part->lastnote);
+maxkcounter->do_callback();
+minkcounter->do_callback();}
+ tooltip {set the maximum key to the last pressed key} xywh {315 3 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label R
+ callback {minkcounter->value(0);
+minkcounter->do_callback();
+maxkcounter->value(127);
+maxkcounter->do_callback();}
+ tooltip {reset the minimum key to 0 and maximum key to 127} xywh {300 3 15 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button adeditbutton {
+ label edit
+ callback {partui->showparameters(n,0);}
+ xywh {420 0 40 15} box THIN_UP_BOX labelsize 12
+ code0 {if (part->kit[n].Padenabled==0) o->deactivate();}
+ code1 {if (n==0) o->hide();}
+ }
+ Fl_Button subeditbutton {
+ label edit
+ callback {partui->showparameters(n,1);}
+ xywh {490 0 40 15} box THIN_UP_BOX labelsize 12
+ code0 {if (part->kit[n].Psubenabled==0) o->deactivate();}
+ code1 {if (n==0) o->hide();}
+ }
+ Fl_Check_Button mutedcheck {
+ callback {part->kit[n].Pmuted=(int)o->value();}
+ private xywh {60 0 20 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 4
+ code0 {o->value(part->kit[n].Pmuted);}
+ }
+ Fl_Counter maxkcounter {
+ callback {part->kit[n].Pmaxkey=(int)o->value();}
+ xywh {335 0 55 15} type Simple minimum 0 maximum 128 step 1
+ code0 {o->value(part->kit[n].Pmaxkey);}
+ }
+ Fl_Button labelbutton {
+ label {Bass Drum}
+ callback {const char *tmp=fl_input("Kit item name:",(const char *)part->kit[n].Pname);
+if (tmp!=NULL) snprintf((char *)part->kit[n].Pname,PART_MAX_NAME_LEN,"%s",tmp);}
+ xywh {90 0 130 15} box THIN_DOWN_BOX down_box FLAT_BOX labelfont 1 labelsize 11 align 20
+ code0 {o->label((char *)part->kit[n].Pname);}
+ }
+ Fl_Check_Button adcheck {
+ callback {part->kit[n].Padenabled=(int)o->value();
+if (part->kit[n].Padenabled!=0) adeditbutton->activate();
+ else adeditbutton->deactivate();}
+ private xywh {400 0 20 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 4
+ code0 {o->value(part->kit[n].Padenabled);}
+ code1 {if (n==0) o->hide();}
+ }
+ Fl_Check_Button subcheck {
+ callback {part->kit[n].Psubenabled=(int)o->value();
+if (part->kit[n].Psubenabled!=0) subeditbutton->activate();
+ else subeditbutton->deactivate();}
+ private xywh {470 0 20 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 4
+ code0 {o->value(part->kit[n].Psubenabled);}
+ code1 {if (n==0) o->hide();}
+ }
+ Fl_Choice sendtoeffect {
+ callback {if (o->value()!=0) part->kit[n].Psendtoparteffect=(int)o->value()-1;
+ else part->kit[n].Psendtoparteffect=127;} open
+ xywh {615 0 45 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("OFF");char nrstr[10]; for(int i=0;i<NUM_PART_EFX;i++){sprintf(nrstr,"FX%d",i+1);o->add(nrstr);};}
+ code1 {o->value(part->kit[n].Psendtoparteffect+1);if (part->kit[n].Psendtoparteffect==127) o->value(0);}
+ } {}
+ Fl_Button padeditbutton {
+ label edit
+ callback {partui->showparameters(n,2);}
+ xywh {560 0 40 15} box THIN_UP_BOX labelsize 12
+ code0 {if (part->kit[n].Ppadenabled==0) o->deactivate();}
+ code1 {if (n==0) o->hide();}
+ }
+ Fl_Check_Button padcheck {
+ callback {part->kit[n].Ppadenabled=(int)o->value();
+if (part->kit[n].Ppadenabled!=0) padeditbutton->activate();
+ else padeditbutton->deactivate();}
+ private xywh {540 0 20 15} down_box DOWN_BOX labelfont 1 labelsize 12 align 4
+ code0 {o->value(part->kit[n].Ppadenabled);}
+ code1 {if (n==0) o->hide();}
+ }
+ }
+ Fl_Check_Button enabledcheck {
+ label 01
+ callback {int answer=1;
+if (o->value()==0) answer=fl_ask("Delete the item?");
+if (answer!=0){
+master->busy=true;
+ part->setkititemstatus(n,(int) o->value());
+master->busy=false;
+
+if (o->value()==0) partkititemgroup->deactivate();
+else partkititemgroup->activate();
+o->redraw();
+partui->showparameters(n,-1);//use to delete the ui, if it is not to item 0
+} else o->value(1);}
+ private xywh {30 0 20 15} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 4
+ code0 {snprintf(label,10,"%d",n+1);o->label(strdup(label));}
+ code1 {o->value(part->kit[n].Penabled);}
+ code2 {if (n==0) o->deactivate();}
+ }
+ }
+ }
+ Function {PartKitItem(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {n=0;
+part=NULL;} {}
+ }
+ Function {refresh()} {} {
+ code {enabledcheck->value(part->kit[n].Penabled);
+if (part->kit[n].Penabled==0) partkititemgroup->deactivate();
+else partkititemgroup->activate();
+
+mutedcheck->value(part->kit[n].Pmuted);
+labelbutton->label((char *)part->kit[n].Pname);
+minkcounter->value(part->kit[n].Pminkey);
+maxkcounter->value(part->kit[n].Pmaxkey);
+adcheck->value(part->kit[n].Padenabled);
+adcheck->do_callback();
+subcheck->value(part->kit[n].Psubenabled);
+subcheck->do_callback();
+
+sendtoeffect->value(part->kit[n].Psendtoparteffect+1);
+if (part->kit[n].Psendtoparteffect==127) sendtoeffect->value(0);
+
+this->redraw();} {
+ callback {int answer=1;
+if (o->value()==0) answer=fl_ask("Delete the item?");
+if (answer!=0){
+master->busy=true;
+ part->setkititemstatus(n,(int) o->value());
+master->busy=false;
+
+if (o->value()==0) partkititemgroup->deactivate();
+else partkititemgroup->activate();
+o->redraw();
+partui->showparameters(n,-1);//use to delete the ui, if it is not to item 0
+} else o->value(1);}
+ }
+ }
+ Function {init(Part *part_,int n_,Master *master_,PartUI_ *partui_)} {} {
+ code {part=part_;
+n=n_;
+partui=partui_;
+master=master_;
+make_window();
+//partkititem->show();
+end();} {}
+ }
+ Function {~PartKitItem()} {} {
+ code {partkititem->hide();
+//delete(partkititem);} {}
+ }
+ decl {Part *part;} {}
+ decl {int n;} {}
+ decl {Master *master;} {}
+ decl {char label[10];} {}
+ decl {PartUI_ *partui;} {}
+}
+
+class PartUI {: {public Fl_Group,PartUI_}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window partgroup {
+ private xywh {107 533 385 180} type Double hide
+ class Fl_Group
+ } {
+ Fl_Group partgroupui {
+ xywh {0 0 385 180}
+ code0 {if (part->Penabled==0) o->deactivate();}
+ } {
+ Fl_Dial {} {
+ label Pan
+ callback {part->setPpanning((int) o->value());}
+ xywh {50 40 25 25} box ROUND_UP_BOX labelsize 12 maximum 127 step 1
+ code0 {o->value(part->Ppanning);}
+ class WidgetPDial
+ }
+ Fl_Counter {} {
+ label KeyShift
+ callback {part->Pkeyshift=(int) o->value()+64;}
+ xywh {195 45 90 20} labelsize 12 align 1 minimum -64 maximum 64 step 1
+ code0 {o->lstep(12);}
+ code1 {o->value(part->Pkeyshift-64);}
+ }
+ Fl_Scroll {} {open
+ xywh {166 91 125 60} box ENGRAVED_FRAME labelfont 1 labelsize 10 align 21
+ } {
+ Fl_Pack {} {open
+ xywh {171 96 115 35} type HORIZONTAL
+ code0 {o->spacing(5);}
+ code1 {for (int i=0;i<NUM_SYS_EFX;i++){psyef[i]=new PartSysEffSend(0,0,25,35,"");psyef[i]->init(master,npart,i);}}
+ } {}
+ }
+ Fl_Button {} {
+ label {Grand Piano}
+ callback {int event=Fl::event_button();
+if (event==FL_RIGHT_MOUSE){
+ const char *tmp=fl_input("Instrument name:",(const char *)part->Pname);
+ if (tmp!=NULL) snprintf((char *)part->Pname,PART_MAX_NAME_LEN,"%s",tmp);
+} else {
+ if (event==FL_LEFT_MOUSE) bankui->show();
+ else instrumenteditwindow->show();
+};} selected
+ tooltip {left mousebutton - to choose/save/.. from/to bank or right mousebutton to change the name or middle button to change the instrument information} xywh {195 5 185 20} box THIN_DOWN_BOX down_box FLAT_BOX labelfont 1 labelsize 12 align 84
+ code0 {o->label((char *)part->Pname);}
+ }
+ Fl_Box {} {
+ label {To Sys.Efx.}
+ xywh {166 81 95 10} labelfont 1 labelsize 10
+ }
+ Fl_Check_Button {} {
+ label NoteOn
+ callback {part->Pnoteon=(int) o->value();}
+ tooltip {set if the part receives NoteOn messages} xywh {0 155 65 20} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(part->Pnoteon);}
+ }
+ Fl_Counter minkcounter {
+ label {Min.k}
+ callback {part->Pminkey=(int) o->value();
+if (part->Pminkey>part->Pmaxkey) o->textcolor(FL_RED);
+ else o->textcolor(FL_BLACK);}
+ tooltip {Minimum key (that the part receives NoteOn messages)} xywh {295 125 40 15} type Simple labelfont 1 labelsize 10 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->value(part->Pminkey);}
+ }
+ Fl_Counter maxkcounter {
+ label {Max.k}
+ callback {part->Pmaxkey=(int) o->value();
+
+if (part->Pminkey>part->Pmaxkey) o->textcolor(FL_RED);
+ else o->textcolor(FL_BLACK);}
+ tooltip {Maximum key (that the part receives NoteOn messages)} xywh {340 125 40 15} type Simple labelfont 1 labelsize 10 minimum 0 maximum 127 step 1 textsize 10
+ code0 {o->value(part->Pmaxkey);}
+ }
+ Fl_Dial {} {
+ label Volume
+ callback {part->setPvolume((int) o->value());}
+ tooltip {Part Volume} xywh {10 35 30 30} box ROUND_UP_BOX labelsize 12 maximum 127 step 1
+ code0 {o->value(part->Pvolume);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label {Vel.Ofs.}
+ callback {part->Pveloffs=(int) o->value();}
+ tooltip {Velocity Offset} xywh {135 40 25 25} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ code0 {o->value(part->Pveloffs);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label {Vel.Sns.}
+ callback {part->Pvelsns=(int) o->value();}
+ tooltip {Velocity Sensing Function} xywh {95 40 25 25} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ code0 {o->value(part->Pvelsns);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label Controllers
+ callback {ctlwindow->show();}
+ xywh {295 90 85 30} box PLASTIC_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Check_Button {} {
+ label Poly
+ callback {part->Ppolymode=(int) o->value();}
+ tooltip {Part mode (mono/poly)} xywh {65 155 45 20} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(part->Ppolymode);}
+ }
+ Fl_Check_Button {} {
+ label Portamento
+ callback {part->ctl.portamento.portamento=(int) o->value();}
+ tooltip {Enable/Disable the portamento} xywh {115 155 85 20} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(part->ctl.portamento.portamento);}
+ }
+ Fl_Button {} {
+ label {Edit instrument}
+ callback {instrumenteditwindow->show();}
+ xywh {15 105 130 30} box PLASTIC_UP_BOX color 230 labelfont 1 labelsize 17
+ }
+ Fl_Button {} {
+ label m
+ callback {if (part->lastnote>=0) minkcounter->value(part->lastnote);
+minkcounter->do_callback();
+maxkcounter->do_callback();}
+ tooltip {set the minimum key to the last pressed key} xywh {315 155 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label M
+ callback {if (part->lastnote>=0) maxkcounter->value(part->lastnote);
+maxkcounter->do_callback();
+minkcounter->do_callback();}
+ tooltip {set the maximum key to the last pressed key} xywh {345 155 15 12} box THIN_UP_BOX labelsize 10
+ }
+ Fl_Button {} {
+ label R
+ callback {minkcounter->value(0);
+minkcounter->do_callback();
+maxkcounter->value(127);
+maxkcounter->do_callback();}
+ tooltip {reset the minimum key to 0 and maximum key to 127} xywh {330 155 15 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Choice {} {
+ label {MIDI Chn.Rcv.}
+ callback {part->Prcvchn=(int) o->value();} open
+ tooltip {receive from Midi channel} xywh {310 45 70 20} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Chn%d",i+1);if (i!=9) o->add(nrstr); else o->add("Drms10");};}
+ code1 {o->value(part->Prcvchn);}
+ } {}
+ Fl_Choice keylimitlist {
+ label KLmt
+ callback {int val=0;
+val=atoi(o->text());
+part->setkeylimit(val);} open
+ tooltip {Key Limit} xywh {210 155 50 20} down_box BORDER_BOX labelsize 10 align 8 textfont 1 textsize 10
+ } {}
+ }
+ Fl_Check_Button {} {
+ label Enabled
+ callback {master->busy=true;
+master->partonoff(npart,(int) o->value());
+master->busy=false;
+if (part->Penabled==0) partgroupui->deactivate();
+ else partgroupui->activate();}
+ xywh {90 5 75 20} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(part->Penabled);}
+ }
+ }
+ Fl_Window ctlwindow {
+ label Controllers
+ private xywh {198 472 460 130} type Double hide
+ } {
+ Fl_Check_Button {} {
+ label Expr
+ callback {part->ctl.expression.receive=(int) o->value();}
+ tooltip {Expression enable} xywh {155 55 45 20} box THIN_UP_BOX down_box DOWN_BOX labelsize 10
+ code0 {o->value(part->ctl.expression.receive);}
+ }
+ Fl_Dial {} {
+ label PanDpth
+ callback {part->ctl.panning.depth=(int) o->value();}
+ tooltip {Panning Depth} xywh {10 55 30 30} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.panning.depth);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label FltCut
+ callback {part->ctl.filtercutoff.depth=(int) o->value();}
+ tooltip {Filter Cutoff depth} xywh {90 55 30 30} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.filtercutoff.depth);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label FltQ
+ callback {part->ctl.filterq.depth=(int) o->value();}
+ tooltip {Filter Q depth} xywh {50 55 30 30} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.filterq.depth);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label BwDpth
+ callback {part->ctl.bandwidth.depth=(int) o->value();}
+ tooltip {BandWidth depth} xywh {125 10 30 30} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.bandwidth.depth);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label ModWh
+ callback {part->ctl.modwheel.depth=(int) o->value();}
+ tooltip {Modulation Wheel depth} xywh {50 10 30 30} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.modwheel.depth);}
+ class WidgetPDial
+ }
+ Fl_Counter {} {
+ label {PWheelB.Rng (cents)}
+ callback {part->ctl.pitchwheel.bendrange=(int) o->value();}
+ tooltip {Pitch Wheel Bend Range (cents)} xywh {165 15 110 20} labelsize 10 align 1 minimum -6400 maximum 6400 step 1
+ code0 {o->value(part->ctl.pitchwheel.bendrange);}
+ code1 {o->lstep(100);}
+ }
+ Fl_Check_Button {} {
+ label FMamp
+ callback {part->ctl.fmamp.receive=(int) o->value();}
+ tooltip {FM amplitude enable} xywh {205 55 60 20} box THIN_UP_BOX down_box DOWN_BOX labelsize 10
+ code0 {o->value(part->ctl.fmamp.receive);}
+ }
+ Fl_Check_Button {} {
+ label Vol
+ callback {part->ctl.volume.receive=(int) o->value();}
+ tooltip {Volume enable} xywh {155 80 45 20} box THIN_UP_BOX down_box DOWN_BOX labelsize 10
+ code0 {o->value(part->ctl.volume.receive);}
+ }
+ Fl_Check_Button {} {
+ label Sustain
+ callback {part->ctl.sustain.receive=(int) o->value();
+if (part->ctl.sustain.receive==0) {
+ part->RelaseSustainedKeys();
+ part->ctl.setsustain(0);
+};}
+ tooltip {Sustain pedal enable} xywh {205 80 60 20} box THIN_UP_BOX down_box DOWN_BOX labelsize 10
+ code0 {o->value(part->ctl.sustain.receive);}
+ }
+ Fl_Button {} {
+ label Close
+ callback {ctlwindow->hide();}
+ xywh {330 105 95 20} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label {Reset all controllers}
+ callback {part->SetController(C_resetallcontrollers,0);}
+ xywh {5 105 210 20} box THIN_UP_BOX
+ }
+ Fl_Group {} {
+ label Portamento open
+ xywh {280 15 120 85} box ENGRAVED_FRAME labelfont 1 labelsize 10
+ } {
+ Fl_Check_Button {} {
+ label Rcv
+ callback {part->ctl.portamento.receive=(int) o->value();}
+ tooltip {Receive Portamento Controllers} xywh {285 20 40 20} box THIN_UP_BOX down_box DOWN_BOX labelsize 10
+ code0 {o->value(part->ctl.portamento.receive);}
+ }
+ Fl_Dial {} {
+ label time
+ callback {part->ctl.portamento.time=(int) o->value();}
+ tooltip {Portamento time} xywh {285 60 25 25} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.portamento.time);}
+ class WidgetPDial
+ }
+ Fl_Counter {} {
+ label thresh
+ callback {part->ctl.portamento.pitchthresh=(int) o->value();}
+ tooltip {Minimum or max. difference of the notes in order to do the portamento (x 100 cents)} xywh {340 20 50 20} type Simple labelsize 10 minimum 0 maximum 127 step 1
+ code0 {o->value(part->ctl.portamento.pitchthresh);}
+ }
+ Fl_Check_Button {} {
+ label {th.type}
+ callback {part->ctl.portamento.pitchthreshtype=(int) o->value();}
+ tooltip {Threshold type (min/max)} xywh {370 70 15 15} down_box DOWN_BOX labelsize 10 align 2
+ code0 {o->value(part->ctl.portamento.pitchthreshtype);}
+ }
+ Fl_Box {} {
+ label {x100 cnt.}
+ xywh {340 50 55 15} labelsize 10 align 16
+ }
+ Fl_Dial {} {
+ label {t.dn/up}
+ callback {int x=(int) o->value();
+
+part->ctl.portamento.updowntimestretch=x;}
+ tooltip {Portamento time stretch (up/down)} xywh {315 60 25 25} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.portamento.updowntimestretch);}
+ class WidgetPDial
+ }
+ }
+ Fl_Group {} {
+ label Resonance open
+ xywh {400 15 45 85} box ENGRAVED_BOX labelfont 1 labelsize 10
+ } {
+ Fl_Dial {} {
+ label BWdpth
+ callback {part->ctl.resonancebandwidth.depth=(int) o->value();}
+ tooltip {BandWidth controller depth} xywh {410 60 25 25} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.resonancebandwidth.depth);}
+ class WidgetPDial
+ }
+ Fl_Dial {} {
+ label CFdpth
+ callback {part->ctl.resonancecenter.depth=(int) o->value();}
+ tooltip {Center Frequency controller Depth} xywh {410 20 25 25} labelsize 10 maximum 127 step 1
+ code0 {o->value(part->ctl.resonancecenter.depth);}
+ class WidgetPDial
+ }
+ }
+ Fl_Check_Button {} {
+ label {Exp MWh}
+ callback {part->ctl.modwheel.exponential=(int) o->value();}
+ tooltip {Exponential modulation wheel} xywh {10 15 40 25} down_box DOWN_BOX labelsize 10 align 148
+ code0 {o->value(part->ctl.modwheel.exponential);}
+ }
+ Fl_Check_Button {} {
+ label {Exp BW}
+ callback {part->ctl.bandwidth.exponential=(int) o->value();}
+ tooltip {Exponential BandWidth Controller} xywh {85 15 35 25} down_box DOWN_BOX labelsize 10 align 148
+ code0 {o->value(part->ctl.bandwidth.exponential);}
+ }
+ }
+ Fl_Window partfx {
+ label {Part's Insert Effects}
+ private xywh {121 424 390 145} type Double hide
+ } {
+ Fl_Counter inseffnocounter {
+ label {FX No.}
+ callback {ninseff=(int) o->value()-1;
+insefftype->value(part->partefx[ninseff]->geteffect());
+//insefftype->do_callback();
+inseffectui->refresh(part->partefx[ninseff]);
+int x=part->Pefxroute[ninseff];
+if (x==127) x=1;
+bypasseff->value(part->Pefxbypass[ninseff]);
+
+sendtochoice->value(x);}
+ xywh {5 110 80 20} type Simple labelfont 1 align 6 minimum 1 maximum 127 step 1 textfont 1
+ code0 {o->bounds(1,NUM_PART_EFX);}
+ code1 {o->value(ninseff+1);}
+ }
+ Fl_Choice insefftype {
+ label EffType
+ callback {master->busy=true;
+part->partefx[ninseff]->changeeffect((int) o->value());
+master->busy=false;
+inseffectui->refresh(part->partefx[ninseff]);}
+ xywh {155 110 70 15} down_box BORDER_BOX labelsize 11 align 6
+ code0 {o->value(part->partefx[ninseff]->geteffect());}
+ } {
+ menuitem {} {
+ label {No Effect}
+ xywh {35 35 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Reverb
+ xywh {45 45 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Echo
+ xywh {55 55 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Chorus
+ xywh {65 65 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Phaser
+ xywh {70 70 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label AlienWah
+ xywh {80 80 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label Distortion
+ xywh {90 90 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label EQ
+ xywh {100 100 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label DynFilter
+ xywh {110 110 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Group inseffectuigroup {
+ xywh {5 5 380 100} box FLAT_BOX color 48
+ } {
+ Fl_Group inseffectui {
+ xywh {5 5 380 95}
+ code0 {o->init(part->partefx[ninseff]);}
+ class EffUI
+ } {}
+ }
+ Fl_Button {} {
+ label Close
+ callback {partfx->hide();}
+ xywh {325 115 60 20} box THIN_UP_BOX
+ }
+ Fl_Choice sendtochoice {
+ label {Send To.}
+ callback {int x=(int) o->value();
+part->Pefxroute[ninseff]=x;
+if (x==2) part->partefx[ninseff]->setdryonly(true);
+ else part->partefx[ninseff]->setdryonly(false);}
+ xywh {235 110 80 15} down_box BORDER_BOX labelsize 11 align 6
+ code0 {int x=part->Pefxroute[ninseff]; if (x==127) x=1;}
+ code1 {o->value(x);}
+ } {
+ menuitem {} {
+ label {Next Effect}
+ xywh {45 45 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label {Part Out}
+ xywh {55 55 100 20} labelfont 1 labelsize 11
+ }
+ menuitem {} {
+ label {Dry Out}
+ xywh {65 65 100 20} labelfont 1 labelsize 11
+ }
+ }
+ Fl_Check_Button bypasseff {
+ label bypass
+ callback {part->Pefxbypass[ninseff]=(((int)o->value())!=0);}
+ tooltip {if the effect is not used (is bypassed)} xywh {90 110 60 15} down_box DOWN_BOX labelsize 12
+ code0 {int x=part->Pefxbypass[ninseff];o->value(x);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(part->partefx[ninseff]);}
+ xywh {90 127 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {master->busy=true;
+presetsui->paste(part->partefx[ninseff],inseffectui);
+master->busy=false;}
+ xywh {120 127 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ Fl_Window instrumentkitlist {
+ label {Instrument Kit}
+ xywh {113 324 670 370} type Double hide
+ } {
+ Fl_Button {} {
+ label {Close Window}
+ callback {instrumentkitlist->hide();}
+ xywh {375 350 160 20} box THIN_UP_BOX
+ }
+ Fl_Scroll kitlist {
+ xywh {0 15 670 330} type VERTICAL box THIN_UP_BOX
+ code0 {if (part->Pkitmode==0) o->deactivate();}
+ } {
+ Fl_Pack {} {
+ xywh {0 20 670 320}
+ code0 {for (int i=0;i<NUM_KIT_ITEMS;i++){partkititem[i]=new PartKitItem(0,0,670,20,"");partkititem[i]->init(part,i,master,this);}}
+ } {}
+ }
+ Fl_Box {} {
+ label {No.}
+ xywh {5 0 25 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label {M.}
+ xywh {55 0 25 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label {Min.k}
+ xywh {235 0 40 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label {Max.k}
+ xywh {345 0 40 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label ADsynth
+ xywh {405 0 50 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label SUBsynth
+ xywh {470 0 60 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Choice {} {
+ label Mode
+ callback {part->Pkitmode=(int) o->value();
+if (part->Pkitmode==0) {
+ kitlist->deactivate();
+ } else {
+ kitlist->activate();
+};}
+ xywh {35 350 70 15} down_box BORDER_BOX labelsize 12 textfont 1 textsize 12
+ code0 {o->value(part->Pkitmode);}
+ } {
+ menuitem {} {
+ label OFF
+ xywh {0 0 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label MULTI
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label SINGLE
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Check_Button {} {
+ label {Drum mode}
+ callback {part->Pdrummode=(int) o->value();}
+ xywh {285 350 70 15} down_box DOWN_BOX labelsize 11
+ code0 {o->value(part->Pdrummode);}
+ }
+ Fl_Box {} {
+ label {FX.r.}
+ xywh {620 0 30 15} labelfont 1 labelsize 12 align 18
+ }
+ Fl_Box {} {
+ label PADsynth
+ xywh {540 0 60 15} labelfont 1 labelsize 12 align 18
+ }
+ }
+ Fl_Window instrumenteditwindow {
+ label {Instrument Edit}
+ xywh {182 214 395 360} type Double hide
+ } {
+ Fl_Group {} {
+ xywh {0 220 395 110} box ENGRAVED_FRAME
+ } {
+ Fl_Group {} {
+ label PADsynth
+ xywh {205 245 100 80} box ENGRAVED_FRAME labelfont 1
+ } {
+ Fl_Button padeditbutton {
+ label Edit
+ callback {showparameters(0,2);}
+ xywh {215 280 80 35} box PLASTIC_UP_BOX color 222 selection_color 220 labelfont 1 labelsize 18 align 128
+ code0 {if (part->kit[0].Ppadenabled==0) o->deactivate();}
+ }
+ Fl_Check_Button padsynenabledcheck {
+ label Enabled
+ callback {int x=(int) o->value();
+part->kit[0].Ppadenabled=x;
+if (x==0) padeditbutton->deactivate();
+ else padeditbutton->activate();}
+ tooltip {enable/disable PADsynth} xywh {215 255 80 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12
+ code1 {o->value(part->kit[0].Ppadenabled);}
+ }
+ }
+ Fl_Group {} {
+ label ADDsynth
+ xywh {5 245 100 80} box ENGRAVED_FRAME labelfont 1
+ } {
+ Fl_Check_Button adsynenabledcheck {
+ label Enabled
+ callback {int x=(int) o->value();
+part->kit[0].Padenabled=x;
+if (x==0) adeditbutton->deactivate();
+ else adeditbutton->activate();}
+ tooltip {enable/disable ADsynth} xywh {15 255 80 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12
+ code1 {o->value(part->kit[0].Padenabled);}
+ }
+ Fl_Button adeditbutton {
+ label Edit
+ callback {showparameters(0,0);}
+ xywh {15 281 80 34} box PLASTIC_UP_BOX color 222 selection_color 220 labelfont 1 labelsize 18 align 128
+ code0 {if (part->kit[0].Padenabled==0) o->deactivate();}
+ }
+ }
+ Fl_Group {} {
+ label SUBsynth
+ xywh {105 245 100 80} box ENGRAVED_FRAME labelfont 1
+ } {
+ Fl_Check_Button subsynenabledcheck {
+ label Enabled
+ callback {int x=(int) o->value();
+part->kit[0].Psubenabled=x;
+if (x==0) subeditbutton->deactivate();
+ else subeditbutton->activate();}
+ tooltip {enable/disable SUBsynth} xywh {115 255 80 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12
+ code1 {o->value(part->kit[0].Psubenabled);}
+ }
+ Fl_Button subeditbutton {
+ label Edit
+ callback {showparameters(0,1);}
+ xywh {115 280 80 35} box PLASTIC_UP_BOX color 222 selection_color 220 labelfont 1 labelsize 18 align 128
+ code0 {if (part->kit[0].Psubenabled==0) o->deactivate();}
+ }
+ }
+ Fl_Button {} {
+ label {Kit Edit}
+ callback {instrumentkitlist->show();}
+ xywh {310 245 80 35} box PLASTIC_UP_BOX color 238 selection_color 220 labelfont 1 align 128
+ }
+ Fl_Button {} {
+ label Effects
+ callback {partfx->show();}
+ xywh {310 290 80 35} box PLASTIC_UP_BOX color 230 labelfont 1 labelsize 16
+ }
+ }
+ Fl_Group {} {
+ xywh {0 5 395 215} box ENGRAVED_FRAME
+ } {
+ Fl_Input {} {
+ label {Author and Copyright}
+ callback {snprintf((char *)part->info.Pauthor,MAX_INFO_TEXT_SIZE,"%s",o->value());}
+ xywh {5 60 385 50} type Multiline color 26 labelsize 10 align 5
+ code0 {o->maximum_size(MAX_INFO_TEXT_SIZE);}
+ code1 {o->value((char *) &part->info.Pauthor);}
+ }
+ Fl_Input {} {
+ label Comments
+ callback {snprintf((char *)part->info.Pcomments,MAX_INFO_TEXT_SIZE,"%s",o->value());}
+ xywh {5 125 385 90} type Multiline color 26 labelsize 12 align 5
+ code0 {o->maximum_size(MAX_INFO_TEXT_SIZE);}
+ code1 {o->value((char *) &part->info.Pcomments);}
+ }
+ Fl_Choice {} {
+ label {Type:}
+ callback {part->info.Ptype=o->value();}
+ xywh {5 25 155 20} down_box BORDER_BOX labelfont 1 labelsize 12 align 5 textsize 11
+ code0 {o->value(part->info.Ptype);}
+ } {
+ menuitem {} {
+ label {--------------------------}
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Piano
+ xywh {10 10 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Chromatic Percussion}
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Organ
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Guitar
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Bass
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Solo Strings}
+ xywh {60 60 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Ensemble
+ xywh {70 70 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Brass
+ xywh {80 80 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Reed
+ xywh {90 90 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Pipe
+ xywh {100 100 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Synth Lead}
+ xywh {110 110 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Synth Pad}
+ xywh {120 120 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Synth Effects}
+ xywh {130 130 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Ethnic
+ xywh {140 140 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label Percussive
+ xywh {150 150 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Sound Effects}
+ xywh {160 160 100 20} labelfont 1 labelsize 12
+ }
+ }
+ }
+ Fl_Button {} {
+ label Close
+ callback {instrumenteditwindow->hide();}
+ xywh {150 335 95 25} box THIN_UP_BOX
+ }
+ }
+ }
+ Function {PartUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {part=NULL;
+adnoteui=NULL;
+subnoteui=NULL;
+padnoteui=NULL;
+lastkititem=-1;} {}
+ }
+ Function {init(Part *part_,Master *master_,int npart_,BankUI *bankui_)} {} {
+ code {bankui=bankui_;
+part=part_;
+npart=npart_;
+master=master_;
+ninseff=0;
+
+make_window();
+partgroup->position(this->parent()->x()+2,this->parent()->y()+2);
+partgroup->show();
+end();
+
+
+//if (config.ui.showinstrumentinfo!=0) instrumenteditwindow->show();
+
+int klimits[]={1,2,3,4,5,6,7,8,9,10,15,20,30,50,100,0};
+
+keylimitlist->add("OFF");
+int k=0;
+int val=-1;
+char tmp[10];
+while (klimits[k]!=0){
+ sprintf(tmp,"%d",klimits[k]);
+ keylimitlist->add(tmp);
+ if ((val==-1)){
+ if (klimits[k]>part->Pkeylimit) val=k;
+ };
+ k++;
+};
+
+if (val==-1) val=k;
+keylimitlist->value(val);} {}
+ }
+ Function {showparameters(int kititem,int engine)} {} {
+ code {if (engine==-1){//this is used if I want to clear the engine from the part
+ if (kititem==lastkititem) kititem=-1;
+ else kititem=lastkititem;
+};
+
+if (kititem!=lastkititem){
+ if (adnoteui!=NULL) delete (adnoteui);
+ if (subnoteui!=NULL) delete (subnoteui);
+ if (padnoteui!=NULL) delete (padnoteui);
+ adnoteui=NULL;subnoteui=NULL;padnoteui=NULL;
+ lastkititem=kititem;
+
+ if (kititem>=NUM_KIT_ITEMS) return;//bad kit item
+ if (kititem<0) return;
+
+ if (part->kit[kititem].adpars!=NULL)
+ adnoteui=new ADnoteUI(part->kit[kititem].adpars,master);
+
+ if (part->kit[kititem].subpars!=NULL)
+ subnoteui=new SUBnoteUI(part->kit[kititem].subpars);
+
+ if (part->kit[kititem].padpars!=NULL)
+ padnoteui=new PADnoteUI(part->kit[kititem].padpars,master);
+
+};
+
+
+
+if ((engine==0)&&(adnoteui!=NULL)) adnoteui->ADnoteGlobalParameters->show();
+if ((engine==1)&&(subnoteui!=NULL)) subnoteui->SUBparameters->show();
+if ((engine==2)&&(adnoteui!=NULL)) padnoteui->padnotewindow->show();} {}
+ }
+ Function {~PartUI()} {} {
+ code {if (adnoteui!=NULL) delete (adnoteui);
+if (subnoteui!=NULL) delete (subnoteui);
+if (padnoteui!=NULL) delete (padnoteui);
+
+partgroup->hide();
+//delete(partgroup);
+
+ctlwindow->hide();
+delete(ctlwindow);
+
+partfx->hide();
+delete(partfx);
+
+instrumentkitlist->hide();
+delete(instrumentkitlist);
+
+instrumenteditwindow->hide();
+delete(instrumenteditwindow);} {}
+ }
+ decl {Part *part;} {}
+ decl {Master *master;} {}
+ decl {BankUI *bankui;} {}
+ decl {ADnoteUI *adnoteui;} {}
+ decl {SUBnoteUI *subnoteui;} {}
+ decl {PADnoteUI *padnoteui;} {}
+ decl {PartSysEffSend *psyef[NUM_SYS_EFX];} {}
+ decl {int npart;} {}
+ decl {int ninseff;} {}
+ decl {int lastkititem;} {}
+ decl {PartKitItem *partkititem[NUM_KIT_ITEMS];} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/PresetsUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/PresetsUI.fl
new file mode 100644
index 00000000..b527b9c4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/PresetsUI.fl
@@ -0,0 +1,200 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0105
+header_name {.h}
+code_name {.cc}
+decl {\#include <FL/fl_ask.H>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include "../Params/Presets.h"} {public
+}
+
+class PresetsUI_ {} {
+ Function {refresh()} {open return_type {virtual void}
+ } {}
+ Function {~PresetsUI_()} {open return_type virtual
+ } {}
+}
+
+class PresetsUI {} {
+ Function {PresetsUI()} {} {
+ code {p=NULL;
+make_window();} {}
+ }
+ Function {~PresetsUI()} {} {
+ code {copywin->hide();delete(copywin);
+pastewin->hide();delete(pastewin);} {}
+ }
+ Function {make_window()} {} {
+ Fl_Window copywin {
+ label {Copy to Clipboard/Preset}
+ xywh {190 173 265 430} type Double box PLASTIC_THIN_UP_BOX color 238 hide modal
+ } {
+ Fl_Browser copybrowse {
+ callback {int val=o->value();
+if (val!=0){
+ presetname->cut(0,presetname->maximum_size());
+ presetname->insert(o->text(val));
+};}
+ xywh {10 25 245 320} type Select
+ }
+ Fl_Button copypbutton {
+ label {Copy to Preset}
+ callback {const char *tmp=presetname->value();
+if (tmp!=NULL) {
+ if (strlen(tmp)>0){
+ p->copy(tmp);
+ copywin->hide();
+ };
+};}
+ xywh {145 355 110 20} box THIN_UP_BOX
+ }
+ Fl_Button copybutton {
+ label {Copy to Clipboard}
+ callback {p->copy(NULL);
+copywin->hide();}
+ xywh {25 385 90 35} box THIN_UP_BOX align 192
+ }
+ Fl_Button {} {
+ label Cancel
+ callback {copywin->hide();}
+ xywh {160 385 80 35} box THIN_UP_BOX align 192
+ }
+ Fl_Box {} {
+ label {Type:}
+ xywh {10 5 40 15} labelsize 12 align 20
+ }
+ Fl_Box copytypetext {
+ xywh {50 5 205 15} box FLAT_BOX color 238 labelfont 1 labelsize 12 align 20
+ }
+ Fl_Input presetname {
+ callback {const char *tmp=o->value();
+if (tmp==NULL) tmp="";
+if (strlen(tmp)>0) {
+ copybutton->deactivate();
+ copypbutton->activate();
+} else {
+ copybutton->activate();
+ copypbutton->deactivate();
+};}
+ xywh {10 355 130 20} when 1
+ }
+ }
+ Fl_Window pastewin {
+ label {Paste from Clipboard/Preset}
+ xywh {463 173 265 430} type Double box PLASTIC_THIN_UP_BOX color 238 hide modal
+ } {
+ Fl_Browser pastebrowse {
+ callback {if (o->value()==0) {
+ pastepbutton->deactivate();
+ deletepbutton->deactivate();
+}else{
+ pastepbutton->activate();
+ deletepbutton->activate();
+};} selected
+ xywh {10 25 245 320} type Hold
+ }
+ Fl_Button pastepbutton {
+ label {Paste from Preset}
+ callback {int n=pastebrowse->value();
+if (n!=0) p->paste(n);
+pastewin->hide();
+pui->refresh();}
+ xywh {10 355 160 20} box THIN_UP_BOX
+ }
+ Fl_Button pastebutton {
+ label {Paste from Clipboard}
+ callback {p->paste(0);
+pastewin->hide();
+pui->refresh();}
+ xywh {25 385 90 35} box THIN_UP_BOX align 192
+ }
+ Fl_Button {} {
+ label Cancel
+ callback {pastewin->hide();}
+ xywh {160 385 80 35} box THIN_UP_BOX align 192
+ }
+ Fl_Box pastetypetext {
+ xywh {55 5 200 15} box FLAT_BOX color 238 labelfont 1 labelsize 12 align 20
+ }
+ Fl_Box {} {
+ label {Type:}
+ xywh {15 5 40 15} labelsize 12 align 20
+ }
+ Fl_Button deletepbutton {
+ label Delete
+ callback {int n=pastebrowse->value();
+if (n!=0) p->deletepreset(n);
+rescan();}
+ xywh {180 355 75 20} box THIN_UP_BOX
+ }
+ }
+ }
+ Function {copy(Presets *p)} {} {
+ code {copybutton->activate();
+copypbutton->deactivate();
+
+
+this->p=p;
+this->pui=NULL;
+bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
+presetname->cut(0,presetname->maximum_size());
+
+if (but) p->copy(NULL);
+ else {
+ rescan();
+ copytypetext->label(&p->type[1]);
+ copywin->show();
+ };} {}
+ }
+ Function {paste(Presets *p,PresetsUI_ *pui)} {} {
+ code {this->p=p;
+this->pui=pui;
+bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
+pastepbutton->deactivate();
+deletepbutton->deactivate();
+
+if (but) {
+ p->paste(0);
+ pui->refresh();
+} else {
+ rescan();
+ pastetypetext->label(&p->type[1]);
+ if (p->checkclipboardtype()) pastebutton->activate();
+ else pastebutton->deactivate();
+ pastewin->show();
+ };} {}
+ }
+ Function {copy(Presets *p,int n)} {} {
+ code {p->setelement(n);
+copy(p);} {}
+ }
+ Function {paste(Presets *p,PresetsUI_ *pui,int n)} {} {
+ code {p->setelement(n);
+paste(p,pui);} {}
+ }
+ Function {rescan()} {} {
+ code {copybrowse->clear();
+pastebrowse->clear();
+p->rescanforpresets();
+
+for (int i=0;i<MAX_PRESETS;i++){
+ char *name=presetsstore.presets[i].name;
+ if (name==NULL) break;
+ copybrowse->add(name);
+ pastebrowse->add(name);
+};} {}
+ }
+ decl {Presets *p;} {public
+ }
+ decl {PresetsUI_ *pui;} {public
+ }
+}
+
+decl {PresetsUI *presetsui;} {public
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl
new file mode 100644
index 00000000..b9171a49
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl
@@ -0,0 +1,392 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/Fl_Value_Output.H>} {public
+}
+
+decl {\#include <math.h>} {}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include <string.h>} {}
+
+decl {\#include "../Synth/Resonance.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class ResonanceGraph {: {public Fl_Box}
+} {
+ Function {ResonanceGraph(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {respar=NULL;
+cbwidget=NULL;
+applybutton=NULL;} {}
+ }
+ Function {init(Resonance *respar_,Fl_Value_Output *khzvalue_,Fl_Value_Output *dbvalue_)} {} {
+ code {respar=respar_;
+khzvalue=khzvalue_;
+dbvalue=dbvalue_;
+oldx=-1;
+khzval=-1;} {}
+ }
+ Function {draw_freq_line(REALTYPE freq,int type)} {} {
+ code {REALTYPE freqx=respar->getfreqpos(freq);
+switch(type){
+ case 0:fl_line_style(FL_SOLID);break;
+ case 1:fl_line_style(FL_DOT);break;
+ case 2:fl_line_style(FL_DASH);break;
+};
+
+
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(x()+(int) (freqx*w()),y(),
+ x()+(int) (freqx*w()),y()+h());} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h(),i,ix,iy,oiy;
+REALTYPE freqx;
+
+fl_color(FL_BLACK);
+fl_rectf(ox,oy,lx,ly);
+
+
+//draw the lines
+fl_color(FL_GRAY);
+
+fl_line_style(FL_SOLID);
+fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+
+freqx=respar->getfreqpos(1000.0);
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(ox+(int) (freqx*lx),oy,
+ ox+(int) (freqx*lx),oy+ly);
+
+for (i=1;i<10;i++){
+ if(i==1){
+ draw_freq_line(i*100.0,0);
+ draw_freq_line(i*1000.0,0);
+ }else
+ if (i==5){
+ draw_freq_line(i*100.0,2);
+ draw_freq_line(i*1000.0,2);
+ }else{
+ draw_freq_line(i*100.0,1);
+ draw_freq_line(i*1000.0,1);
+ };
+};
+
+draw_freq_line(10000.0,0);
+draw_freq_line(20000.0,1);
+
+fl_line_style(FL_DOT);
+int GY=10;if (ly<GY*3) GY=-1;
+for (i=1;i<GY;i++){
+ int tmp=(int)(ly/(REALTYPE)GY*i);
+ fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
+};
+
+
+
+//draw the data
+fl_color(FL_RED);
+fl_line_style(FL_SOLID);
+oiy=(int)(respar->Prespoints[0]/128.0*ly);
+for (i=1;i<N_RES_POINTS;i++){
+ ix=(int)(i*1.0/N_RES_POINTS*lx);
+ iy=(int)(respar->Prespoints[i]/128.0*ly);
+ fl_line(ox+ix-1,oy+ly-oiy,ox+ix,oy+ly-iy);
+ oiy=iy;
+};} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {int x_=Fl::event_x()-x();
+int y_=Fl::event_y()-y();
+if ( (x_>=0)&&(x_<w()) && (y_>=0)&&(y_<h())){
+ khzvalue->value(respar->getfreqx(x_*1.0/w())/1000.0);
+ dbvalue->value((1.0-y_*2.0/h())*respar->PmaxdB);
+};
+
+if ((event==FL_PUSH)||(event==FL_DRAG)){
+ int leftbutton=1;
+ if (Fl::event_button()==FL_RIGHT_MOUSE) leftbutton=0;
+ if (x_<0) x_=0;if (y_<0) y_=0;
+ if (x_>=w()) x_=w();if (y_>=h()-1) y_=h()-1;
+
+ if ((oldx<0)||(oldx==x_)){
+ int sn=(int)(x_*1.0/w()*N_RES_POINTS);
+ int sp=127-(int)(y_*1.0/h()*127);
+ if (leftbutton!=0) respar->setpoint(sn,sp);
+ else respar->setpoint(sn,64);
+ } else {
+ int x1=oldx;
+ int x2=x_;
+ int y1=oldy;
+ int y2=y_;
+ if (oldx>x_){
+ x1=x_;y1=y_;
+ x2=oldx;y2=oldy;
+ };
+ for (int i=0;i<x2-x1;i++){
+ int sn=(int)((i+x1)*1.0/w()*N_RES_POINTS);
+ REALTYPE yy=(y2-y1)*1.0/(x2-x1)*i;
+ int sp=127-(int)((y1+yy)/h()*127);
+ if (leftbutton!=0) respar->setpoint(sn,sp);
+ else respar->setpoint(sn,64);
+ };
+ };
+
+ oldx=x_;oldy=y_;
+ redraw();
+};
+
+if (event==FL_RELEASE) {
+ oldx=-1;
+ if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ if (applybutton!=NULL) {
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+
+ };
+ };
+};
+
+return(1);} {selected
+ }
+ }
+ Function {setcbwidget(Fl_Widget *cbwidget,Fl_Widget *applybutton)} {} {
+ code {this->cbwidget=cbwidget;
+this->applybutton=applybutton;} {}
+ }
+ decl {Fl_Value_Output *khzvalue;} {}
+ decl {Fl_Value_Output *dbvalue;} {}
+ decl {Resonance *respar;} {}
+ decl {int oldx,oldy;} {}
+ decl {REALTYPE khzval;} {public
+ }
+ decl {Fl_Widget *cbwidget,*applybutton;} {}
+}
+
+class ResonanceUI {: PresetsUI_
+} {
+ Function {make_window()} {} {
+ Fl_Window resonancewindow {
+ label Resonance
+ xywh {45 259 780 305} type Double visible
+ } {
+ Fl_Value_Output khzvalue {
+ label kHz
+ xywh {415 264 45 18} align 8 minimum 0.001 maximum 48 step 0.01 textfont 1
+ code0 {//this widget must be before the calling widgets}
+ }
+ Fl_Value_Output dbvalue {
+ label dB
+ xywh {415 282 45 18} align 8 minimum -150 maximum 150 step 0.1 textfont 1
+ code0 {//this widget must be before the calling widgets}
+ }
+ Fl_Group {} {
+ xywh {6 5 768 256} box BORDER_BOX
+ code0 {rg=new ResonanceGraph(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {rg->init(respar,khzvalue,dbvalue);}
+ code2 {rg->show();}
+ } {}
+ Fl_Button {} {
+ label Close
+ callback {resonancewindow->hide();}
+ xywh {690 283 84 17} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label Zero
+ callback {for (int i=0;i<N_RES_POINTS;i++)
+ respar->setpoint(i,64);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Clear the resonance function} xywh {491 264 66 15} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Button {} {
+ label Smooth
+ callback {respar->smooth();
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Smooth the resonance function} xywh {491 282 66 18} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Check_Button enabled {
+ label Enable
+ callback {respar->Penabled=(int) o->value();
+redrawPADnoteApply();}
+ xywh {6 270 78 27} box THIN_UP_BOX down_box DOWN_BOX
+ code0 {o->value(respar->Penabled);}
+ }
+ Fl_Roller maxdb {
+ callback {maxdbvo->value(o->value());
+respar->PmaxdB=(int) o->value();
+redrawPADnoteApply();}
+ xywh {90 282 84 15} type Horizontal minimum 1 maximum 90 step 1 value 30
+ }
+ Fl_Value_Output maxdbvo {
+ label {Max.}
+ callback {o->value(respar->PmaxdB);}
+ tooltip {The Maximum amplitude (dB)} xywh {126 264 24 18} minimum 1 maximum 127 step 1 value 30 textfont 1
+ code0 {o->value(respar->PmaxdB);}
+ }
+ Fl_Box {} {
+ label dB
+ xywh {150 264 24 18}
+ }
+ Fl_Value_Output centerfreqvo {
+ label {C.f.}
+ callback {o->value(respar->getcenterfreq()/1000.0);}
+ tooltip {Center Frequency (kHz)} xywh {210 264 33 18} when 3 minimum 1 maximum 10 step 0.01 value 1 textfont 1
+ code0 {o->value(respar->getcenterfreq()/1000.0);}
+ }
+ Fl_Value_Output octavesfreqvo {
+ label {Oct.}
+ callback {o->value(respar->getoctavesfreq());}
+ tooltip {No. of octaves} xywh {210 282 33 18} when 3 minimum 1 maximum 127 step 1 value 30 textfont 1
+ code0 {o->value(respar->getoctavesfreq());}
+ }
+ Fl_Button {} {
+ label RND2
+ callback {respar->randomize(1);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 276 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label RND1
+ callback {respar->randomize(0);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 264 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label RND3
+ callback {respar->randomize(2);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 288 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Check_Button p1st {
+ label {P.1st}
+ callback {respar->Pprotectthefundamental=(int) o->value();
+redrawPADnoteApply();}
+ tooltip {Protect the fundamental frequency (do not damp the first harmonic)} xywh {365 285 45 15} down_box DOWN_BOX labelsize 10
+ code0 {o->value(respar->Pprotectthefundamental);}
+ }
+ Fl_Button {} {
+ label InterpP
+ callback {int type;
+if (Fl::event_button()==FL_LEFT_MOUSE) type=0;
+ else type=1;
+respar->interpolatepeaks(type);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Interpolate the peaks} xywh {365 265 46 15} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Dial centerfreq {
+ label {C.f.}
+ callback {respar->Pcenterfreq=(int)o->value();
+centerfreqvo->do_callback();
+rg->redraw();
+redrawPADnoteApply();}
+ xywh {245 265 30 30} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ code0 {o->value(respar->Pcenterfreq);}
+ class WidgetPDial
+ }
+ Fl_Dial octavesfreq {
+ label {Oct.}
+ callback {respar->Poctavesfreq=(int)o->value();
+octavesfreqvo->do_callback();
+rg->redraw();
+redrawPADnoteApply();}
+ xywh {280 265 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(respar->Poctavesfreq);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(respar);}
+ xywh {625 275 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(respar,this);}
+ xywh {655 275 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button applybutton {
+ label Apply
+ callback {applybutton->color(FL_GRAY);
+applybutton->redraw();
+if (cbapplywidget!=NULL) {
+ cbapplywidget->do_callback();
+ cbapplywidget->color(FL_GRAY);
+ cbapplywidget->redraw();
+};}
+ xywh {690 265 85 15} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ }
+ }
+ Function {ResonanceUI(Resonance *respar_)} {} {
+ code {respar=respar_;
+cbwidget=NULL;
+cbapplywidget=NULL;
+make_window();
+applybutton->hide();} {}
+ }
+ Function {~ResonanceUI()} {} {
+ code {resonancewindow->hide();} {}
+ }
+ Function {redrawPADnoteApply()} {} {
+ code {if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+};} {}
+ }
+ Function {setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget)} {} {
+ code {this->cbwidget=cbwidget;
+this->cbapplywidget=cbapplywidget;
+rg->setcbwidget(cbwidget,applybutton);
+applybutton->show();} {}
+ }
+ Function {refresh()} {} {
+ code {redrawPADnoteApply();
+
+enabled->value(respar->Penabled);
+
+maxdb->value(respar->PmaxdB);
+maxdbvo->value(respar->PmaxdB);
+
+centerfreqvo->value(respar->getcenterfreq()/1000.0);
+octavesfreqvo->value(respar->getoctavesfreq());
+
+centerfreq->value(respar->Pcenterfreq);
+octavesfreq->value(respar->Poctavesfreq);
+
+p1st->value(respar->Pprotectthefundamental);
+
+rg->redraw();} {}
+ }
+ decl {Resonance *respar;} {public
+ }
+ decl {ResonanceGraph *rg;} {}
+ decl {Fl_Widget *cbwidget,*cbapplywidget;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/SUBnoteUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/SUBnoteUI.fl
new file mode 100644
index 00000000..fc915ae3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/SUBnoteUI.fl
@@ -0,0 +1,449 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0105
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <string.h>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "EnvelopeUI.h"} {public
+}
+
+decl {\#include "FilterUI.h"} {public
+}
+
+decl {\#include "../Misc/Util.h"} {public
+}
+
+decl {\#include "../Params/SUBnoteParameters.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class SUBnoteharmonic {: {public Fl_Group}
+} {
+ Function {make_window()} {private
+ } {
+ Fl_Window harmonic {
+ xywh {329 403 90 225} type Double hide
+ class Fl_Group
+ } {
+ Fl_Slider mag {
+ callback {int x=0;
+if (Fl::event_button1()) x=127-(int)o->value();
+ else o->value(127-x);
+pars->Phmag[n]=x;
+if (pars->Phmag[n]==0) o->selection_color(0);
+ else o->selection_color(222);}
+ tooltip {harmonic's magnitude} xywh {0 15 10 115} type {Vert Knob} box FLAT_BOX selection_color 222 labelcolor 0 maximum 127 step 1 value 127
+ code0 {o->value(127-pars->Phmag[n]);}
+ code1 {if (pars->Phmag[n]==0) o->selection_color(0);}
+ }
+ Fl_Slider bw {
+ callback {int x=64;
+if (Fl::event_button1()) x=127-(int)o->value();
+ else o->value(x);
+pars->Phrelbw[n]=x;}
+ tooltip {harmonic's bandwidth} xywh {0 135 10 75} type {Vert Knob} box FLAT_BOX selection_color 222 maximum 127 step 1 value 64
+ code0 {o->value(127-pars->Phrelbw[n]);}
+ }
+ Fl_Box {} {
+ xywh {10 170 5 5} box FLAT_BOX color 45
+ code0 {if (n+1==MAX_SUB_HARMONICS) o->hide();}
+ }
+ Fl_Box {} {
+ label 01
+ xywh {0 210 10 15} labelfont 1 labelsize 9 align 20
+ code0 {char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));}
+ }
+ Fl_Box {} {
+ label 01
+ xywh {0 0 10 15} labelfont 1 labelsize 9 align 20
+ code0 {char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));}
+ }
+ }
+ }
+ Function {SUBnoteharmonic(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} {
+ code {n=0;} {}
+ }
+ Function {init(SUBnoteParameters *pars_,int n_)} {} {
+ code {pars=pars_;
+n=n_;
+make_window();
+harmonic->show();
+end();} {}
+ }
+ Function {refresh()} {} {
+ code {mag->value(127-pars->Phmag[n]);
+if (pars->Phmag[n]==0) mag->selection_color(0);
+bw->value(127-pars->Phrelbw[n]);} {selected
+ }
+ }
+ Function {~SUBnoteharmonic()} {} {
+ code {harmonic->hide();
+hide();
+//delete(harmonic);} {}
+ }
+ decl {SUBnoteParameters *pars;} {}
+ decl {int n;} {}
+}
+
+class SUBnoteUI {: {public PresetsUI_}
+} {
+ Function {make_window()} {} {
+ Fl_Window SUBparameters {
+ label {SUBsynth Parameters}
+ xywh {26 214 735 390} type Double hide
+ } {
+ Fl_Scroll {} {
+ xywh {5 140 435 245} type HORIZONTAL box THIN_UP_BOX
+ } {
+ Fl_Pack harmonics {open
+ xywh {10 145 425 235} type HORIZONTAL
+ code0 {for (int i=0;i<MAX_SUB_HARMONICS;i++){h[i]=new SUBnoteharmonic(0,0,15,o->h(),"");h[i]->init(pars,i);}}
+ } {}
+ }
+ Fl_Button {} {
+ label Close
+ callback {SUBparameters->hide();}
+ xywh {625 365 105 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Group {} {
+ label AMPLITUDE
+ xywh {5 5 215 135} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 align 17
+ } {
+ Fl_Value_Slider vol {
+ label Vol
+ callback {pars->PVolume=(int)o->value();}
+ tooltip Volume xywh {10 25 140 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->PVolume);}
+ }
+ Fl_Value_Slider vsns {
+ label {V.Sns}
+ callback {pars->PAmpVelocityScaleFunction=(int) o->value();}
+ tooltip {Velocity Sensing Function (rightmost to disable)} xywh {10 45 140 15} type {Horz Knob} box FLAT_BOX labelsize 12 align 8 maximum 127 step 1
+ code0 {o->value(pars->PAmpVelocityScaleFunction);}
+ }
+ Fl_Dial pan {
+ label Pan
+ callback {pars->PPanning=(int) o->value();}
+ tooltip {Panning (leftmost is Random)} xywh {185 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(pars->PPanning);}
+ class WidgetPDial
+ }
+ Fl_Group ampenv {
+ label {SUBsynth - Amplitude Envelope} open
+ xywh {10 65 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->AmpEnvelope);}
+ class EnvelopeUI
+ } {}
+ }
+ Fl_Group {} {
+ xywh {495 325 235 35} box THIN_UP_FRAME
+ } {
+ Fl_Counter filterstages {
+ label {Filter Stages}
+ callback {pars->Pnumstages=(int) o->value();}
+ tooltip {How many times the noise is filtered} xywh {515 340 45 15} type Simple labelfont 1 labelsize 10 align 1 minimum 1 maximum 5 step 1 textsize 10
+ code0 {o->value(pars->Pnumstages);}
+ }
+ Fl_Choice magtype {
+ label {Mag.Type}
+ callback {pars->Phmagtype=(int) o->value();}
+ xywh {585 340 65 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 textsize 12
+ code0 {o->value(pars->Phmagtype);}
+ } {
+ menuitem {} {
+ label Linear
+ xywh {20 20 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-40dB}
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-60dB}
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-80dB}
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {-100dB}
+ xywh {60 60 100 20} labelfont 1 labelsize 12
+ }
+ }
+ Fl_Choice start {
+ label Start
+ callback {pars->Pstart=(int) o->value();} open
+ xywh {670 340 50 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 textsize 12
+ code0 {o->value(pars->Pstart);}
+ } {
+ menuitem {} {
+ label Zero
+ xywh {30 30 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label RND
+ xywh {40 40 100 20} labelfont 1 labelsize 12
+ }
+ menuitem {} {
+ label {Max.}
+ xywh {50 50 100 20} labelfont 1 labelsize 12
+ }
+ }
+ }
+ Fl_Group freqsettingsui {
+ label FREQUENCY
+ xywh {440 5 290 135} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 align 17
+ } {
+ Fl_Group freqenvelopegroup {
+ label {SUBsynth - Frequency Envelope} open
+ xywh {445 65 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->FreqEnvelope);}
+ code1 {if (pars->PFreqEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button freqee {
+ label Enabled
+ callback {pars->PFreqEnvelopeEnabled=o->value();
+if (o->value()==0) freqenvelopegroup->deactivate();
+ else freqenvelopegroup->activate();
+o->show();
+freqsettingsui->redraw();}
+ xywh {445 68 55 15} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->PFreqEnvelopeEnabled);}
+ }
+ Fl_Counter octave {
+ label Octave
+ callback {int k=(int) o->value();
+if (k<0) k+=16;
+pars->PCoarseDetune = k*1024+
+ pars->PCoarseDetune%1024;}
+ tooltip Octave xywh {670 50 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 12
+ code0 {int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;}
+ code2 {o->value(k);}
+ }
+ Fl_Counter coarsedet {
+ label {Coarse Det.}
+ callback {int k=(int) o->value();
+if (k<0) k+=1024;
+pars->PCoarseDetune = k+
+ (pars->PCoarseDetune/1024)*1024;}
+ tooltip {Coarse Detune} xywh {655 115 60 20} labelsize 11 align 1 minimum -64 maximum 63 step 1 textfont 1 textsize 12
+ code0 {int k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;}
+ code2 {o->value(k);}
+ code3 {o->lstep(10);}
+ }
+ Fl_Slider detune {
+ callback {pars->PDetune=(int)o->value()+8192;
+detunevalueoutput->do_callback();}
+ tooltip {Fine Detune (cents)} xywh {495 25 230 15} type {Horz Knob} box FLAT_BOX minimum -8192 maximum 8191 step 1
+ code0 {o->value(pars->PDetune-8192);}
+ }
+ Fl_Value_Output detunevalueoutput {
+ label Detune
+ callback {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
+ xywh {448 25 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
+ code0 {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
+ }
+ Fl_Check_Button hz440 {
+ label 440Hz
+ callback {int x=(int) o->value();
+pars->Pfixedfreq=x;
+if (x==0) fixedfreqetdial->deactivate();
+ else fixedfreqetdial->activate();}
+ tooltip {set the base frequency to 440Hz} xywh {555 45 50 15} down_box DOWN_BOX labelfont 1 labelsize 11
+ code0 {o->value(pars->Pfixedfreq);}
+ }
+ Fl_Dial fixedfreqetdial {
+ label {Eq.T.}
+ callback {pars->PfixedfreqET=(int) o->value();}
+ tooltip {How the frequency varies acording to the keyboard (leftmost for fixed frequency)} xywh {610 45 15 15} box ROUND_UP_BOX labelsize 10 align 8 maximum 127 step 1
+ code0 {o->value(pars->PfixedfreqET);}
+ code1 {if (pars->Pfixedfreq==0) o->deactivate();}
+ class WidgetPDial
+ }
+ Fl_Choice detunetype {
+ label {Detune Type}
+ callback {pars->PDetuneType=(int) o->value()+1;
+detunevalueoutput->do_callback();} open
+ xywh {655 85 70 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
+ code1 {o->value(pars->PDetuneType-1);}
+ } {}
+ }
+ Fl_Check_Button stereo {
+ label Stereo
+ callback {pars->Pstereo=(int) o->value();}
+ xywh {440 325 55 35} box THIN_UP_BOX down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->Pstereo);}
+ }
+ Fl_Button {} {
+ label Clear
+ callback {for (int i=0;i<MAX_SUB_HARMONICS;i++){
+ h[i]->mag->value(127);
+ pars->Phmag[i]=0;
+ h[i]->bw->value(64);
+ pars->Phrelbw[i]=64;
+};
+pars->Phmag[0]=127;
+h[0]->mag->value(0);
+SUBparameters->redraw();}
+ tooltip {Clear the harmonics} xywh {445 365 70 20} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ Fl_Group bandwidthsettingsui {
+ label BANDWIDTH
+ xywh {220 5 220 135} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 align 17
+ } {
+ Fl_Group bandwidthenvelopegroup {
+ label {SUBsynth - BandWidth Envelope} open
+ xywh {225 65 205 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->BandWidthEnvelope);}
+ code1 {if (pars->PBandWidthEnvelopeEnabled==0) o->deactivate();}
+ class EnvelopeUI
+ } {}
+ Fl_Check_Button bwee {
+ label Enabled
+ callback {pars->PBandWidthEnvelopeEnabled=o->value();
+if (o->value()==0) bandwidthenvelopegroup->deactivate();
+ else bandwidthenvelopegroup->activate();
+o->show();
+bandwidthsettingsui->redraw();}
+ xywh {225 67 55 15} down_box DOWN_BOX labelfont 1 labelsize 10
+ code0 {o->value(pars->PBandWidthEnvelopeEnabled);}
+ }
+ Fl_Value_Slider bandwidth {
+ label {Band Width}
+ callback {pars->Pbandwidth=(int) o->value();}
+ xywh {225 40 115 15} type {Horz Knob} box FLAT_BOX labelsize 10 align 1 maximum 127 step 1
+ code0 {o->value(pars->Pbandwidth);}
+ }
+ Fl_Value_Slider bwidthscale {
+ label {B.Width Scale}
+ callback {pars->Pbwscale=(int) o->value()+64;}
+ tooltip {How much I increase the BandWidth according to lower/higher harmonics} xywh {345 40 90 15} type {Horz Knob} box FLAT_BOX labelsize 10 align 1 minimum -64 maximum 63 step 1
+ code0 {o->value(pars->Pbwscale-64);}
+ }
+ }
+ Fl_Group globalfiltergroup {
+ label FILTER
+ xywh {440 140 290 185} box THIN_UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 16 align 17
+ code0 {if (pars->PGlobalFilterEnabled==0) o->deactivate();}
+ } {
+ Fl_Group filterenv {
+ label {SUBsynth - Filter Envelope} open
+ xywh {445 250 275 70} box FLAT_BOX color 51 align 144
+ code0 {o->init(pars->GlobalFilterEnvelope);}
+ class EnvelopeUI
+ } {}
+ Fl_Group filterui {
+ label {SUBsynthl - Filter} open
+ xywh {445 170 275 75} box FLAT_BOX color 50 align 144
+ code0 {o->init(pars->GlobalFilter,&pars->PGlobalFilterVelocityScale,&pars->PGlobalFilterVelocityScaleFunction);}
+ class FilterUI
+ } {}
+ }
+ Fl_Check_Button filtere {
+ label Enabled
+ callback {pars->PGlobalFilterEnabled=o->value();
+if (o->value()==0) globalfiltergroup->deactivate();
+ else globalfiltergroup->activate();
+o->show();
+globalfiltergroup->redraw();}
+ xywh {445 145 85 20} down_box DOWN_BOX labelfont 1 labelsize 12
+ code0 {o->value(pars->PGlobalFilterEnabled);}
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(pars);}
+ xywh {540 370 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(pars,this);}
+ xywh {570 370 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ }
+ }
+ Function {refresh()} {} {
+ code {for (int i=0;i<MAX_SUB_HARMONICS;i++) h[i]->refresh();
+vol->value(pars->PVolume);
+vsns->value(pars->PAmpVelocityScaleFunction);
+pan->value(pars->PPanning);
+
+
+bandwidth->value(pars->Pbandwidth);
+bwidthscale->value(pars->Pbwscale-64);
+bwee->value(pars->PBandWidthEnvelopeEnabled);
+if (pars->PBandWidthEnvelopeEnabled==0) bandwidthenvelopegroup->deactivate();
+ else bandwidthenvelopegroup->activate();
+bwee->show();
+bandwidthsettingsui->redraw();
+
+detunevalueoutput->value(getdetune(pars->PDetuneType,0,pars->PDetune));
+freqee->value(pars->PFreqEnvelopeEnabled);
+if (pars->PFreqEnvelopeEnabled==0) freqenvelopegroup->deactivate();
+ else freqenvelopegroup->activate();
+freqee->show();
+freqsettingsui->redraw();
+
+detune->value(pars->PDetune-8192);
+hz440->value(pars->Pfixedfreq);
+
+fixedfreqetdial->value(pars->PfixedfreqET);
+
+int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;
+octave->value(k);
+
+detunetype->value(pars->PDetuneType-1);
+
+k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;
+coarsedet->value(k);
+
+filtere->value(pars->PGlobalFilterEnabled);
+if (pars->PGlobalFilterEnabled==0) globalfiltergroup->deactivate();
+ else globalfiltergroup->activate();
+filtere->show();
+globalfiltergroup->redraw();
+
+stereo->value(pars->Pstereo);
+filterstages->value(pars->Pnumstages);
+magtype->value(pars->Phmagtype);
+start->value(pars->Pstart);
+
+ampenv->refresh();
+bandwidthenvelopegroup->refresh();
+freqenvelopegroup->refresh();
+filterui->refresh();
+filterenv->refresh();} {}
+ }
+ Function {SUBnoteUI(SUBnoteParameters *parameters)} {} {
+ code {pars=parameters;
+make_window();} {}
+ }
+ Function {~SUBnoteUI()} {} {
+ code {//for (int i=0;i<MAX_SUB_HARMONICS;i++) delete (h[i]);
+SUBparameters->hide();
+delete(SUBparameters);} {}
+ }
+ decl {SUBnoteParameters *pars;} {}
+ decl {SUBnoteharmonic *h[MAX_SUB_HARMONICS];} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/SeqUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/SeqUI.fl
new file mode 100644
index 00000000..d30c6433
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/SeqUI.fl
@@ -0,0 +1,73 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0105
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+class SeqUI {} {
+ Function {make_window()} {} {
+ Fl_Window seqwin {
+ label {Sequencer - ZynAddSubFX}
+ xywh {104 235 280 265} type Double hide
+ } {
+ Fl_Group {} {
+ label Player
+ xywh {120 20 100 65} box ENGRAVED_BOX labelfont 1
+ } {
+ Fl_Button playbutton {
+ label Play
+ callback {o->deactivate();
+stopbutton_play->activate();
+
+master->seq.startplay();}
+ tooltip {Start Playing} xywh {130 30 30 30} box DIAMOND_UP_BOX color 79 labelfont 1 labelsize 16 align 2
+ }
+ Fl_Button stopbutton_play {
+ label Stop
+ callback {o->deactivate();
+playbutton->activate();
+
+master->seq.stopplay();}
+ tooltip {Stop Playing} xywh {175 29 30 31} box THIN_UP_BOX color 4 labelfont 1 labelsize 16 align 2 deactivate
+ }
+ }
+ Fl_Button {} {
+ label {Open test.mid}
+ callback {master->seq.importmidifile("test.mid");}
+ xywh {20 25 75 55} align 128
+ }
+ Fl_Value_Slider {} {
+ label {Play speed}
+ callback {master->seq.setplayspeed((int) o->value());}
+ xywh {15 105 190 20} type {Horz Knob} minimum -128 maximum 128 step 1
+ code0 {o->value(master->seq.playspeed);}
+ }
+ Fl_Box {} {
+ label {This is not finished} selected
+ xywh {25 155 225 90} labelfont 1 labelsize 30 align 128
+ }
+ }
+ }
+ Function {SeqUI(Master *master_)} {open
+ } {
+ code {master=master_;
+
+make_window();} {}
+ }
+ decl {Master *master} {}
+ Function {show()} {open
+ } {
+ code {seqwin->show();} {}
+ }
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/VirKeyboard.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/VirKeyboard.fl
new file mode 100644
index 00000000..aed2c930
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/VirKeyboard.fl
@@ -0,0 +1,400 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <stdlib.h>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include "../globals.h"} {public
+}
+
+decl {\#include "../Misc/Master.h"} {public
+}
+
+decl {\#include "../Input/MidiIn.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {const int keyspos[12]={0,-1,1,-2,2,3,-4,4,-5,5,-6,6};} {}
+
+decl {const int keysoct1qw[]={'q','2','w','3','e','r','5','t','6','y','7','u','i','9','o','0','p','[','=',']','\\\\',FL_Enter,0};} {}
+
+decl {const int keysoct2qw[]={'z','s','x','d','c','v','g','b','h','n','j','m',',','l','.',';','/',0};} {}
+
+decl {const int keysoct1dw[]={'\\'','2',',','3','.','p','5','y','6','f','7','g','c','9','r','0','l','/',']','=','\\\\',FL_Enter,0};} {}
+
+decl {const int keysoct2dw[]={';','o','q','e','j','k','i','x','d','b','h','m','w','n','v','s','z',0};} {}
+
+class VirKeys {: {public Fl_Box}
+} {
+ decl {static const int N_OCT=6;} {}
+ decl {static const int SIZE_WHITE=14;} {}
+ decl {static const int SIZE_BLACK=8;} {}
+ Function {VirKeys(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {master=NULL;} {}
+ }
+ Function {init(Master *master_)} {} {
+ code {master=master_;
+for (int i=0;i<N_OCT*12+1;i++) pressed[i]=0;
+midich=0;
+midivel=100;
+midioct=2;
+
+keyoct1=3;
+keyoct2=2;
+rndvelocity=0;} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h()-1,i;
+
+if (damage()!=1){
+ fl_color(250,240,230);
+ fl_rectf(ox,oy,lx,ly);
+
+ fl_color(FL_BLACK);
+ fl_line(ox,oy,ox+lx,oy);
+ fl_line(ox,oy+ly,ox+lx,oy+ly);
+ for (i=0;i<N_OCT*7+1;i++){
+ fl_line(ox+i*SIZE_WHITE,oy,ox+i*SIZE_WHITE,oy+ly);
+ int ik=i%7;
+ if ((ik==1)||(ik==2)||(ik==4)||(ik==5)||(ik==6))
+ fl_rectf(ox+i*SIZE_WHITE-SIZE_BLACK/2,oy,
+ SIZE_BLACK+1,ly*3/5);
+ };
+};
+
+
+for (i=0;i<N_OCT*12;i++){
+ // if (pressed[i]==0) continue;
+
+ int noct=i/12;
+ int kv=keyspos[i%12];
+
+ if (kv>=0){//white keys
+ if (pressed[i]==0) fl_color(250,240,230);
+ else fl_color(FL_BLUE);
+ fl_rectf(ox+(kv+7*noct)*SIZE_WHITE+3,oy+ly*3/5+2,
+ SIZE_WHITE-4,ly*2/5-3);
+ } else {//black keys
+ kv=keyspos[(i+1)%12];
+ if (pressed[i]==0) fl_color(FL_BLACK);
+ else fl_color(FL_BLUE);
+ fl_rectf(ox+(kv+7*noct)*SIZE_WHITE-SIZE_BLACK/2+2,oy+2,
+ SIZE_BLACK-3,ly*3/5-5);
+ };
+};} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {int i;
+int ly=h();
+int x_=Fl::event_x()-x();
+int y_=Fl::event_y()-y();
+if ( (x_<0)&&(x_>w()) && (y_<0)&&(y_>h())){
+ return(0);
+};
+
+
+if ((event==FL_PUSH)||(event==FL_DRAG)||(event==FL_RELEASE)){
+ int kpos=-1;
+
+ if (y_>ly*3/5){//white keys
+ int pos=x_/SIZE_WHITE;
+ if (pos<0) return(1);
+ for (i=0;i<12;i++) {
+ if (pos%7==keyspos[i]) {
+ kpos=pos/7*12+i;
+ break;
+ };
+ };
+ } else {//black keys
+ int pos=(x_+SIZE_WHITE/2)/SIZE_WHITE;
+ if (pos<0) return(1);
+ for (i=1;i<12;i++) {
+ if (pos%7==-keyspos[i]) {
+ kpos=pos/7*12+i;
+ break;
+ };
+ };
+ };
+
+ if (((event==FL_PUSH)||(event==FL_DRAG))&&
+ (Fl::event_shift()==0)) {
+ presskey(kpos,1,1);
+ };
+
+ if ((event==FL_PUSH)&&(Fl::event_shift()!=0)) {
+ if (pressed[kpos]==0) presskey(kpos,0,1);
+ else relasekey(kpos,1);
+ };
+ if ((event==FL_RELEASE)&&(Fl::event_shift()==0))
+ relaseallkeys(1);
+ take_focus();
+};
+
+
+const int *keysoct1=keysoct1qw;
+const int *keysoct2=keysoct2qw;
+
+if (config.cfg.VirKeybLayout==2) {
+ keysoct1=keysoct1dw;
+ keysoct2=keysoct2dw;
+};
+
+if ((event==FL_KEYDOWN)||(event==FL_KEYUP)){
+ int key=Fl::event_key();
+ int kpos=-1;
+ for (i=0;keysoct1[i]!=0;i++) if (key==keysoct1[i]) kpos=i+12*keyoct1;
+ for (i=0;keysoct2[i]!=0;i++) if (key==keysoct2[i]) kpos=i+12*keyoct2;
+
+ if (kpos==-1) return(0);
+ if (event==FL_KEYDOWN) presskey(kpos,0,2);
+ else relasekey(kpos,2);
+};
+
+return(1);} {}
+ }
+ Function {presskey(int nk,int exclusive,int type)} {} {
+ code {if (nk>=N_OCT*12) return;
+if ((nk<0)&&(exclusive==0)) {
+ relaseallkeys(type);
+ return;
+};
+if (pressed[nk]!=0) return;//the key is already pressed
+
+if (exclusive!=0) relaseallkeys(type);
+pressed[nk]=type;
+
+damage(1);
+float vel=midivel;
+if (rndvelocity!=0){
+ vel=midivel*(127.0-rndvelocity)/127.0+RND*rndvelocity;
+};
+
+master->busy=true;
+ master->NoteOn(midich,nk+midioct*12,(int)vel);
+master->busy=false;} {}
+ }
+ Function {relasekey(int nk,int type)} {} {
+ code {if ((nk<0)||(nk>=N_OCT*12)) return;
+if (pressed[nk]==0) return;//the key is not pressed
+if ((type!=0)&&(pressed[nk]!=type)) return;
+
+pressed[nk]=0;
+
+
+damage(1);
+
+master->busy=true;
+ master->NoteOff(midich,nk+12*midioct);
+master->busy=false;} {}
+ }
+ Function {relaseallkeys(int type)} {} {
+ code {for (int i=0;i<N_OCT*12;i++) relasekey(i,type);} {}
+ }
+ decl {Master *master;} {}
+ decl {int pressed[N_OCT*12+1];} {}
+ decl {unsigned char midich;} {public
+ }
+ decl {unsigned char midivel;} {public
+ }
+ decl {char midioct,keyoct1,keyoct2;} {public
+ }
+ decl {unsigned char rndvelocity;} {public
+ }
+}
+
+class VirKeyboard {selected
+} {
+ Function {make_window()} {} {
+ Fl_Window virkeyboardwindow {
+ label {Virtual Keyboard - ZynAddSubFX}
+ callback {relaseallkeys();
+virkeyboardwindow->hide();}
+ xywh {95 563 650 130} type Double hide
+ } {
+ Fl_Box virkeys {
+ label Keyboard
+ xywh {10 10 590 80} box FLAT_BOX color 17
+ code0 {o->init(master);}
+ class VirKeys
+ }
+ Fl_Counter {} {
+ label {"qwer.." Oct}
+ callback {relaseallkeys();
+virkeys->keyoct1=(int) o->value();
+virkeys->take_focus();}
+ tooltip {keys "q2w3er5t6y..." octave} xywh {380 95 45 15} type Simple labelsize 10 align 4 when 6 minimum 0 maximum 5 step 1 textfont 1 textsize 10
+ code0 {o->value(virkeys->keyoct1);}
+ }
+ Fl_Counter {} {
+ label {"zxcv.." Oct}
+ callback {relaseallkeys();
+virkeys->keyoct2=(int) o->value();
+virkeys->take_focus();}
+ tooltip {keys "zsxdcvgbh..." octave} xywh {380 110 45 15} type Simple labelsize 10 align 4 when 6 minimum 0 maximum 5 step 1 textfont 1 textsize 10
+ code0 {o->value(virkeys->keyoct2);}
+ }
+ Fl_Value_Slider {} {
+ label Vel
+ callback {virkeys->midivel=(int) o->value();
+virkeys->take_focus();}
+ tooltip Velocity xywh {95 105 100 15} type {Horz Knob} box FLAT_BOX labelsize 10 align 5 minimum 1 maximum 127 step 1
+ code0 {o->value(virkeys->midivel);}
+ }
+ Fl_Counter {} {
+ label {Oct.}
+ callback {relaseallkeys();
+virkeys->midioct=(int) o->value();
+virkeys->take_focus();}
+ tooltip {Midi Octave} xywh {255 100 55 20} type Simple labelsize 12 align 4 when 6 minimum 0 maximum 5 step 1 textfont 1 textsize 12
+ code0 {o->value(virkeys->midioct);}
+ }
+ Fl_Button {} {
+ label Close
+ callback {relaseallkeys();
+virkeyboardwindow->hide();}
+ xywh {545 105 55 20} box THIN_UP_BOX
+ }
+ Fl_Value_Slider {} {
+ label Cval
+ callback {int ctl=midictl;
+
+master->busy=true;
+ master->SetController(virkeys->midich,ctl,(int) o->value());
+master->busy=false;
+virkeys->take_focus();}
+ tooltip {Controller value} xywh {605 10 15 115} type {Vert Fill} box ENGRAVED_BOX selection_color 229 labelsize 8 align 5 minimum 127 maximum 0 step 1 value 64 textsize 7
+ }
+ Fl_Choice {} {
+ label Controller
+ callback {switch((int) o->value()+1){
+ case 1: midictl=C_modwheel; break;
+ case 2: midictl=C_volume; break;
+ case 3: midictl=C_panning; break;
+ case 4: midictl=C_expression; break;
+ case 5: midictl=C_sustain; break;
+ case 6: midictl=C_portamento; break;
+ case 7: midictl=C_filterq; break;
+ case 8: midictl=C_filtercutoff; break;
+ case 9: midictl=C_bandwidth; break;
+ case 10: midictl=C_fmamp; break;
+ case 11: midictl=C_resonance_center; break;
+ case 12: midictl=C_resonance_bandwidth; break;
+ default: midictl=C_NULL; break;
+
+};
+
+
+
+virkeys->take_focus();}
+ xywh {435 105 100 15} down_box BORDER_BOX labelsize 10 align 5 when 6 textfont 1 textsize 10
+ code0 {midictl=C_filtercutoff;o->value(7);}
+ } {
+ menuitem {} {
+ label {01: Mod.Wheel}
+ xywh {0 0 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {07: Volume}
+ xywh {10 10 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {10: Panning}
+ xywh {20 20 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {11: Expression}
+ xywh {30 30 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {64: Sustain}
+ xywh {40 40 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {65: Portamento}
+ xywh {50 50 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {71: Filter Q}
+ xywh {60 60 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {74: Filter Freq.}
+ xywh {70 70 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {75: Bandwidth}
+ xywh {80 80 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {76: FM Gain}
+ xywh {90 90 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {77: Res. c. freq}
+ xywh {100 100 100 20} labelfont 1 labelsize 10
+ }
+ menuitem {} {
+ label {78: Res. bw.}
+ xywh {110 110 100 20} labelfont 1 labelsize 10
+ }
+ }
+ Fl_Roller pitchwheelroller {
+ label Pwh
+ callback {master->lock();
+ master->SetController(virkeys->midich,C_pitchwheel,-(int) o->value());
+master->unlock();
+virkeys->take_focus();}
+ tooltip {Pitch Wheel} xywh {625 10 20 95} box PLASTIC_UP_BOX labelsize 8 align 1 when 3 minimum -8192 maximum 8192 step 64
+ }
+ Fl_Button {} {
+ label R
+ callback {pitchwheelroller->value(0);
+pitchwheelroller->do_callback();}
+ tooltip {Reset Pitch Bend} xywh {625 110 20 15} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Dial {} {
+ label Vrnd
+ callback {virkeys->rndvelocity=(int) o->value();}
+ tooltip {Velocity Randomness} xywh {205 105 20 20} box ROUND_UP_BOX labelsize 10 align 129 maximum 127 step 1
+ code0 {o->value(virkeys->rndvelocity);}
+ class WidgetPDial
+ }
+ Fl_Choice partrcv {
+ label {MIDI Ch.}
+ callback {relaseallkeys();
+virkeys->midich=(int) o->value();
+virkeys->take_focus();} open
+ tooltip {Send to Midi Channel} xywh {20 105 65 20} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
+ code0 {char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Chn%d",i+1);if (i!=9) o->add(nrstr); else o->add("Drum10");};}
+ code1 {o->value(virkeys->midich);}
+ } {}
+ }
+ }
+ Function {VirKeyboard(Master *master_)} {} {
+ code {master=master_;
+midictl=75;
+make_window();} {}
+ }
+ Function {show()} {} {
+ code {virkeyboardwindow->show();} {}
+ }
+ Function {relaseallkeys()} {} {
+ code {virkeys->relaseallkeys(0);} {}
+ }
+ decl {Master *master;} {}
+ decl {int midictl;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/WidgetPDial.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/WidgetPDial.fl
new file mode 100644
index 00000000..8d8073bd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/WidgetPDial.fl
@@ -0,0 +1,131 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0105
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2003-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <FL/Fl_Dial.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <stdio.h>} {public
+}
+
+decl {\#include <math.h>} {public
+}
+
+class WidgetPDial {: {public Fl_Dial}
+} {
+ Function {WidgetPDial(int x,int y, int w, int h, const char *label=0):Fl_Dial(x,y,w,h,label)} {} {
+ code {oldvalue=0.0;} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {double dragsize,v,min=minimum(),max=maximum();
+int my;
+
+switch (event){
+case FL_PUSH:oldvalue=value();
+case FL_DRAG:
+ my=-(Fl::event_y()-y()-h()/2);
+
+ dragsize=200.0;
+ if (Fl::event_state(FL_BUTTON1)==0) dragsize*=10;
+ v=oldvalue+my/dragsize*(max-min);
+ if (v<min) v=min;
+ else if (v>max) v=max;
+
+ //printf("%d %g %g\\n",my,v,oldvalue);
+ value(v);
+ value_damage();
+ if (this->when()!=0) do_callback();
+ return(1);
+ break;
+case FL_RELEASE:
+ if (this->when()==0) do_callback();
+ return(1);
+ break;
+};
+return(0);} {selected
+ }
+ }
+ Function {drawgradient(int cx,int cy,int sx,double m1,double m2)} {return_type void
+ } {
+ code {for (int i=(int)(m1*sx);i<(int)(m2*sx);i++){
+ double tmp=1.0-pow(i*1.0/sx,2.0);
+ pdialcolor(140+(int) (tmp*90),140+(int)(tmp*90),140+(int) (tmp*100));
+ fl_arc(cx+sx/2-i/2,cy+sx/2-i/2,i,i,0,360);
+};} {}
+ }
+ Function {draw()} {} {
+ code {int cx=x(),cy=y(),sx=w(),sy=h();
+
+
+//clears the button face
+pdialcolor(190,190,200);
+fl_pie(cx-1,cy-1,sx+2,sy+2,0,360);
+
+//Draws the button face (gradinet)
+drawgradient(cx,cy,sx,0.5,1.0);
+
+double val=(value()-minimum())/(maximum()-minimum());
+
+//draws the scale
+pdialcolor(220,220,250);
+double a1=angle1(),a2=angle2();
+for (int i=0;i<12;i++){
+ double a=-i/12.0*360.0-val*(a2-a1)-a1;
+ fl_pie(cx,cy,sx,sy,a+270-3,a+3+270);
+};
+
+drawgradient(cx,cy,sx,0.0,0.75);
+
+//draws the value
+double a=-(a2-a1)*val-a1;
+
+
+
+
+
+//draws the max and min points
+pdialcolor(0,100,200);
+int xp=(int)(cx+sx/2.0+sx/2.0*sin(angle1()/180.0*3.141592));
+int yp=(int)(cy+sy/2.0+sy/2.0*cos(angle1()/180.0*3.141592));
+fl_pie(xp-2,yp-2,4,4,0,360);
+
+xp=(int)(cx+sx/2.0+sx/2.0*sin(angle2()/180.0*3.141592));
+yp=(int)(cy+sy/2.0+sy/2.0*cos(angle2()/180.0*3.141592));
+fl_pie(xp-2,yp-2,4,4,0,360);
+
+
+
+
+
+fl_push_matrix();
+
+ fl_translate(cx+sx/2,cy+sy/2);
+ fl_rotate(a-90.0);
+
+ fl_translate(sx/2,0);
+
+
+ fl_begin_polygon();
+ pdialcolor(0,0,0);
+ fl_vertex(-10,-4);
+ fl_vertex(-10,4);
+ fl_vertex(0,0);
+ fl_end_polygon();
+
+
+fl_pop_matrix();} {}
+ }
+ Function {pdialcolor(int r,int g,int b)} {} {
+ code {if (active_r()) fl_color(r,g,b);
+ else fl_color(160-(160-r)/3,160-(160-b)/3,160-(160-b)/3);} {}
+ }
+ decl {double oldvalue;} {}
+}
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0001-Arpeggio1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0001-Arpeggio1.xiz
new file mode 100644
index 00000000..396d9622
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0001-Arpeggio1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0002-Arpeggio2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0002-Arpeggio2.xiz
new file mode 100644
index 00000000..09ff7019
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0002-Arpeggio2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0003-Arpeggio3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0003-Arpeggio3.xiz
new file mode 100644
index 00000000..d163b436
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0003-Arpeggio3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0004-Arpeggio4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0004-Arpeggio4.xiz
new file mode 100644
index 00000000..c30f998c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0004-Arpeggio4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0005-Arpeggio5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0005-Arpeggio5.xiz
new file mode 100644
index 00000000..cf8d7646
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0005-Arpeggio5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0006-Aporggio6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0006-Aporggio6.xiz
new file mode 100644
index 00000000..2d1c9e7b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0006-Aporggio6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0007-Arpeggio7.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0007-Arpeggio7.xiz
new file mode 100644
index 00000000..0261a188
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0007-Arpeggio7.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0008-Arpeggio8.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0008-Arpeggio8.xiz
new file mode 100644
index 00000000..63a3a62d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0008-Arpeggio8.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0009-Arpeggio9.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0009-Arpeggio9.xiz
new file mode 100644
index 00000000..a3677035
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0009-Arpeggio9.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0010-Arpeggio10.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0010-Arpeggio10.xiz
new file mode 100644
index 00000000..0ebd284a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0010-Arpeggio10.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0011-Arpeggio11.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0011-Arpeggio11.xiz
new file mode 100644
index 00000000..226b3057
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0011-Arpeggio11.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0033-Sequence1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0033-Sequence1.xiz
new file mode 100644
index 00000000..2f04b62e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0033-Sequence1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0034-Sequence2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0034-Sequence2.xiz
new file mode 100644
index 00000000..732091a9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0034-Sequence2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0036-Echoed Synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0036-Echoed Synth.xiz
new file mode 100644
index 00000000..2d9dd54d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0036-Echoed Synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0037-Echo FX.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0037-Echo FX.xiz
new file mode 100644
index 00000000..c41564c6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0037-Echo FX.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0039-Soft Arpeggio1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0039-Soft Arpeggio1.xiz
new file mode 100644
index 00000000..3ae201fe
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0039-Soft Arpeggio1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0040-Soft Arpeggio2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0040-Soft Arpeggio2.xiz
new file mode 100644
index 00000000..54d9a7d7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0040-Soft Arpeggio2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0041-Soft Arpeggio3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0041-Soft Arpeggio3.xiz
new file mode 100644
index 00000000..b6f854fe
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0041-Soft Arpeggio3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0042-Soft Arpeggio4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0042-Soft Arpeggio4.xiz
new file mode 100644
index 00000000..b6244048
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0042-Soft Arpeggio4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0043-Soft Arpeggio5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0043-Soft Arpeggio5.xiz
new file mode 100644
index 00000000..f88e9682
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0043-Soft Arpeggio5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0065-Hyper Organ1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0065-Hyper Organ1.xiz
new file mode 100644
index 00000000..c2b83f94
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0065-Hyper Organ1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0066-Hyper Arpeggio.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0066-Hyper Arpeggio.xiz
new file mode 100644
index 00000000..be3eeae8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0066-Hyper Arpeggio.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0068-Glass Arpeggio.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0068-Glass Arpeggio.xiz
new file mode 100644
index 00000000..6e3bd476
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Arpeggios/0068-Glass Arpeggio.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0001-Bass 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0001-Bass 1.xiz
new file mode 100644
index 00000000..8d507e00
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0001-Bass 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0002-Bass 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0002-Bass 2.xiz
new file mode 100644
index 00000000..2181ed59
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0002-Bass 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0003-Bass 3 _analog_.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0003-Bass 3 _analog_.xiz
new file mode 100644
index 00000000..9d9fa4f2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0003-Bass 3 _analog_.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0004-Bass 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0004-Bass 4.xiz
new file mode 100644
index 00000000..3326da6d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0004-Bass 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0005-Bass 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0005-Bass 5.xiz
new file mode 100644
index 00000000..6df414ee
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0005-Bass 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0006-Analogue Bass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0006-Analogue Bass.xiz
new file mode 100644
index 00000000..167fabfb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0006-Analogue Bass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0033-Wah Bass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0033-Wah Bass.xiz
new file mode 100644
index 00000000..e34c3c1c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0033-Wah Bass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0035-FM Bass 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0035-FM Bass 1.xiz
new file mode 100644
index 00000000..ce5bc146
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0035-FM Bass 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0036-FM Bass 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0036-FM Bass 2.xiz
new file mode 100644
index 00000000..00efafc2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Bass/0036-FM Bass 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0001-FM Thrumpet.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0001-FM Thrumpet.xiz
new file mode 100644
index 00000000..e8bd54e9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0001-FM Thrumpet.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0003-Synth Brazz 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0003-Synth Brazz 1.xiz
new file mode 100644
index 00000000..ee363732
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0003-Synth Brazz 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0004-Synth Brazz 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0004-Synth Brazz 2.xiz
new file mode 100644
index 00000000..c60c0678
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0004-Synth Brazz 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0005-Synth Brass 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0005-Synth Brass 3.xiz
new file mode 100644
index 00000000..99d16cc9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0005-Synth Brass 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0006-Synth Brass 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0006-Synth Brass 4.xiz
new file mode 100644
index 00000000..d476134a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0006-Synth Brass 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0007-Synth Brass 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0007-Synth Brass 5.xiz
new file mode 100644
index 00000000..4db26a9a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0007-Synth Brass 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0008-Brass Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0008-Brass Pad.xiz
new file mode 100644
index 00000000..d6d51a08
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0008-Brass Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0009-Wah Brass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0009-Wah Brass.xiz
new file mode 100644
index 00000000..a13532e3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0009-Wah Brass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0010-Solo Synth1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0010-Solo Synth1.xiz
new file mode 100644
index 00000000..96f1b144
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0010-Solo Synth1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0011-Brazz 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0011-Brazz 1.xiz
new file mode 100644
index 00000000..f3d097d4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0011-Brazz 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0012-Brazz 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0012-Brazz 2.xiz
new file mode 100644
index 00000000..fc1b4f08
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0012-Brazz 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0033-Analog Brass 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0033-Analog Brass 1.xiz
new file mode 100644
index 00000000..a67142ae
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0033-Analog Brass 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0034-Analog Brass 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0034-Analog Brass 2.xiz
new file mode 100644
index 00000000..5aabda40
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0034-Analog Brass 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0035-Analog Brass 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0035-Analog Brass 3.xiz
new file mode 100644
index 00000000..aa2cfe2a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0035-Analog Brass 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0036-Analog Brass 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0036-Analog Brass 4.xiz
new file mode 100644
index 00000000..2b965c23
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0036-Analog Brass 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0065-Simple Brass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0065-Simple Brass.xiz
new file mode 100644
index 00000000..40cd58df
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0065-Simple Brass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0066-Fat Brass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0066-Fat Brass.xiz
new file mode 100644
index 00000000..cc516075
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Brass/0066-Fat Brass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0001-AHH Choir 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0001-AHH Choir 1.xiz
new file mode 100644
index 00000000..6184fdcd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0001-AHH Choir 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0002-AHH Choir 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0002-AHH Choir 2.xiz
new file mode 100644
index 00000000..ff177acd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0002-AHH Choir 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0003-EHH Choir 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0003-EHH Choir 1.xiz
new file mode 100644
index 00000000..6eda8d22
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0003-EHH Choir 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0004-Voice OOH.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0004-Voice OOH.xiz
new file mode 100644
index 00000000..d89e5b46
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0004-Voice OOH.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0005-Choir Pad1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0005-Choir Pad1.xiz
new file mode 100644
index 00000000..0f6b6e4f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0005-Choir Pad1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0006-Choir Pad2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0006-Choir Pad2.xiz
new file mode 100644
index 00000000..67d30c5a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0006-Choir Pad2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0007-Choir Pad3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0007-Choir Pad3.xiz
new file mode 100644
index 00000000..53129903
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0007-Choir Pad3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0008-Choir Pad4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0008-Choir Pad4.xiz
new file mode 100644
index 00000000..a390e621
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0008-Choir Pad4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0009-Choir Pad5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0009-Choir Pad5.xiz
new file mode 100644
index 00000000..8b9e2631
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0009-Choir Pad5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0010-Choir Pad6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0010-Choir Pad6.xiz
new file mode 100644
index 00000000..475474aa
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0010-Choir Pad6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0033-Choir.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0033-Choir.xiz
new file mode 100644
index 00000000..9511e424
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0033-Choir.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0034-Slow Morph_Choir.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0034-Slow Morph_Choir.xiz
new file mode 100644
index 00000000..fad34e28
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0034-Slow Morph_Choir.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0035-Wah Choir.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0035-Wah Choir.xiz
new file mode 100644
index 00000000..4bcffcf9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0035-Wah Choir.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0036-Eooooo.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0036-Eooooo.xiz
new file mode 100644
index 00000000..018c4452
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0036-Eooooo.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0037-Voiced Synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0037-Voiced Synth.xiz
new file mode 100644
index 00000000..e7518d15
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0037-Voiced Synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0039-Ohh Choir.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0039-Ohh Choir.xiz
new file mode 100644
index 00000000..eb21ea52
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0039-Ohh Choir.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0065-Vocal Morph 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0065-Vocal Morph 1.xiz
new file mode 100644
index 00000000..a96975ad
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0065-Vocal Morph 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0066-Vocal Morph 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0066-Vocal Morph 2.xiz
new file mode 100644
index 00000000..f46bef70
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0066-Vocal Morph 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0067-Vocal Morph 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0067-Vocal Morph 3.xiz
new file mode 100644
index 00000000..61c17b47
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0067-Vocal Morph 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0068-Vocal Morph 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0068-Vocal Morph 4.xiz
new file mode 100644
index 00000000..f33f21c3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0068-Vocal Morph 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0069-Vocal Morph 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0069-Vocal Morph 5.xiz
new file mode 100644
index 00000000..aa5ed565
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0069-Vocal Morph 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0070-Vocal Morph 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0070-Vocal Morph 6.xiz
new file mode 100644
index 00000000..a9db003c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0070-Vocal Morph 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0071-Vocal Morph 7.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0071-Vocal Morph 7.xiz
new file mode 100644
index 00000000..c48fa19b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Choir and Voice/0071-Vocal Morph 7.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Drums/0001-Drums Kit1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Drums/0001-Drums Kit1.xiz
new file mode 100644
index 00000000..eac3faa4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Drums/0001-Drums Kit1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/.qped b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/.qped
new file mode 100644
index 00000000..34736e3f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/.qped
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Ped version="1.0">
+ <Status>
+ <geometry x="0" y="0" w="800" h="1000" />
+ <Editor1>
+ <KontextList>
+ <Kontext>
+ <path>/home/ws/zyn/banks/Dual/mopss</path>
+ <column>0</column>
+ <line>1474</line>
+ <xoff>0</xoff>
+ <yoff>19</yoff>
+ </Kontext>
+ <cur>1</cur>
+ </KontextList>
+ </Editor1>
+ <search></search>
+ <colorify>0</colorify>
+ <brackets>1</brackets>
+ </Status>
+ </Ped>
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0001-Layered1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0001-Layered1.xiz
new file mode 100644
index 00000000..b87c7a3d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0001-Layered1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0002-Layered2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0002-Layered2.xiz
new file mode 100644
index 00000000..ae06071a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0002-Layered2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0005-Organ and Saw.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0005-Organ and Saw.xiz
new file mode 100644
index 00000000..d9f419ab
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0005-Organ and Saw.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0007-Organ Choir Pad1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0007-Organ Choir Pad1.xiz
new file mode 100644
index 00000000..38c44fca
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0007-Organ Choir Pad1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0008-Organ Choir Pad2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0008-Organ Choir Pad2.xiz
new file mode 100644
index 00000000..88e99146
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0008-Organ Choir Pad2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0033-Rhodes Strings1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0033-Rhodes Strings1.xiz
new file mode 100644
index 00000000..9c1f7804
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0033-Rhodes Strings1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0034-Rhodes Strings2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0034-Rhodes Strings2.xiz
new file mode 100644
index 00000000..b932a312
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0034-Rhodes Strings2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0035-Rhodes Strings3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0035-Rhodes Strings3.xiz
new file mode 100644
index 00000000..3e2d6ebe
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0035-Rhodes Strings3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0036-Rhodes Strings4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0036-Rhodes Strings4.xiz
new file mode 100644
index 00000000..0a7725fc
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0036-Rhodes Strings4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0065-Dream of the Saw.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0065-Dream of the Saw.xiz
new file mode 100644
index 00000000..ef7efae3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Dual/0065-Dream of the Saw.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0001-Emptyness1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0001-Emptyness1.xiz
new file mode 100644
index 00000000..ce78b60e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0001-Emptyness1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0002-Emptyness2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0002-Emptyness2.xiz
new file mode 100644
index 00000000..fa071c45
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0002-Emptyness2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0003-Space Synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0003-Space Synth.xiz
new file mode 100644
index 00000000..b5dcfefd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0003-Space Synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0004-Weird Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0004-Weird Pad.xiz
new file mode 100644
index 00000000..f66db7c4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0004-Weird Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0006-Space SynthBrass.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0006-Space SynthBrass.xiz
new file mode 100644
index 00000000..f235cc96
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0006-Space SynthBrass.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0008-Space Voice1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0008-Space Voice1.xiz
new file mode 100644
index 00000000..09b13e67
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0008-Space Voice1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0009-Space Voice2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0009-Space Voice2.xiz
new file mode 100644
index 00000000..7c83d8fd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0009-Space Voice2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0010-Space Voice3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0010-Space Voice3.xiz
new file mode 100644
index 00000000..60e79340
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0010-Space Voice3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0011-Space Choir1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0011-Space Choir1.xiz
new file mode 100644
index 00000000..1d5bb6b4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0011-Space Choir1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0012-Space Choir2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0012-Space Choir2.xiz
new file mode 100644
index 00000000..06cea940
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0012-Space Choir2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0014-Glass Voices.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0014-Glass Voices.xiz
new file mode 100644
index 00000000..cd2f2834
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0014-Glass Voices.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0015-Strange Voice.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0015-Strange Voice.xiz
new file mode 100644
index 00000000..8863577c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0015-Strange Voice.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0033-ImpossibleDream1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0033-ImpossibleDream1.xiz
new file mode 100644
index 00000000..90a4c838
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0033-ImpossibleDream1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0034-ImpossibleDream2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0034-ImpossibleDream2.xiz
new file mode 100644
index 00000000..60d320f2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0034-ImpossibleDream2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0035-ImpossibleDream3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0035-ImpossibleDream3.xiz
new file mode 100644
index 00000000..91d2e4fa
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0035-ImpossibleDream3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0036-ImpossibleDream4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0036-ImpossibleDream4.xiz
new file mode 100644
index 00000000..5ceff926
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0036-ImpossibleDream4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0037-ImpossibleDream5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0037-ImpossibleDream5.xiz
new file mode 100644
index 00000000..85baaa75
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0037-ImpossibleDream5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0040-Delayed Echo.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0040-Delayed Echo.xiz
new file mode 100644
index 00000000..89120de0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0040-Delayed Echo.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0041-Fade Down Echo.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0041-Fade Down Echo.xiz
new file mode 100644
index 00000000..8e8141a7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0041-Fade Down Echo.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0042-Rhodes Space1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0042-Rhodes Space1.xiz
new file mode 100644
index 00000000..fd407319
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0042-Rhodes Space1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0043-Rhodes Space2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0043-Rhodes Space2.xiz
new file mode 100644
index 00000000..33bdd7d4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0043-Rhodes Space2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0065-Long SpaceChoir1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0065-Long SpaceChoir1.xiz
new file mode 100644
index 00000000..c476227e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0065-Long SpaceChoir1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0066-Long SpaceChoir2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0066-Long SpaceChoir2.xiz
new file mode 100644
index 00000000..ac2e0fa4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Fantasy/0066-Long SpaceChoir2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0001-Dist Guitar 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0001-Dist Guitar 1.xiz
new file mode 100644
index 00000000..6525b52b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0001-Dist Guitar 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0002-Dist Guitar 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0002-Dist Guitar 2.xiz
new file mode 100644
index 00000000..0df346e1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0002-Dist Guitar 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0003-Dist Guitar 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0003-Dist Guitar 3.xiz
new file mode 100644
index 00000000..8c81e442
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0003-Dist Guitar 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0004-Dist Guitar 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0004-Dist Guitar 4.xiz
new file mode 100644
index 00000000..80f126db
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0004-Dist Guitar 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0005-Dist Guitar 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0005-Dist Guitar 5.xiz
new file mode 100644
index 00000000..d33123f8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0005-Dist Guitar 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0033-Trash Guitar 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0033-Trash Guitar 1.xiz
new file mode 100644
index 00000000..f63dc3e5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0033-Trash Guitar 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0034-Trash Guitar 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0034-Trash Guitar 2.xiz
new file mode 100644
index 00000000..5237e066
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0034-Trash Guitar 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0035-Short.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0035-Short.xiz
new file mode 100644
index 00000000..48570caa
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0035-Short.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0065-Clean Guitar1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0065-Clean Guitar1.xiz
new file mode 100644
index 00000000..98f1c2b3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Guitar/0065-Clean Guitar1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0001-Memories.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0001-Memories.xiz
new file mode 100644
index 00000000..d35109df
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0001-Memories.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0002-Bells 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0002-Bells 1.xiz
new file mode 100644
index 00000000..49a25c0a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0002-Bells 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0003-Bells 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0003-Bells 2.xiz
new file mode 100644
index 00000000..448f74fa
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0003-Bells 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0004-Bells 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0004-Bells 3.xiz
new file mode 100644
index 00000000..ca788f31
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0004-Bells 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0006-SuperSaw 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0006-SuperSaw 1.xiz
new file mode 100644
index 00000000..c90f6156
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0006-SuperSaw 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0007-SuperSaw 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0007-SuperSaw 2.xiz
new file mode 100644
index 00000000..d4a8cc7e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0007-SuperSaw 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0008-SuperSaw 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0008-SuperSaw 3.xiz
new file mode 100644
index 00000000..871e711c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0008-SuperSaw 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0009-SuperSaw 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0009-SuperSaw 4.xiz
new file mode 100644
index 00000000..117d41d6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0009-SuperSaw 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0010-SuperSaw 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0010-SuperSaw 5.xiz
new file mode 100644
index 00000000..ba3202d9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0010-SuperSaw 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0033-Trash Synth 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0033-Trash Synth 1.xiz
new file mode 100644
index 00000000..ba3d01b7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0033-Trash Synth 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0034-Trash Synth 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0034-Trash Synth 2.xiz
new file mode 100644
index 00000000..b78456bd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0034-Trash Synth 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0035-Trash Synth 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0035-Trash Synth 3.xiz
new file mode 100644
index 00000000..a9f373ea
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Misc/0035-Trash Synth 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0001-Synth Effect.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0001-Synth Effect.xiz
new file mode 100644
index 00000000..ac7a2fc0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0001-Synth Effect.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0002-Ioioioioioi.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0002-Ioioioioioi.xiz
new file mode 100644
index 00000000..0bd7eaeb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0002-Ioioioioioi.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0003-Noise1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0003-Noise1.xiz
new file mode 100644
index 00000000..b092dbe2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0003-Noise1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0004-Noise2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0004-Noise2.xiz
new file mode 100644
index 00000000..f0c21967
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0004-Noise2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0006-Wind.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0006-Wind.xiz
new file mode 100644
index 00000000..bb8b0387
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0006-Wind.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0033-Metal Sound 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0033-Metal Sound 1.xiz
new file mode 100644
index 00000000..63db7b9c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0033-Metal Sound 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0034-Metal Sound 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0034-Metal Sound 2.xiz
new file mode 100644
index 00000000..a092c662
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0034-Metal Sound 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0035-Metal Sound 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0035-Metal Sound 3.xiz
new file mode 100644
index 00000000..abdbc3ed
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0035-Metal Sound 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0037-Metal Sound 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0037-Metal Sound 4.xiz
new file mode 100644
index 00000000..ff184baf
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0037-Metal Sound 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0038-Metal Sound 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0038-Metal Sound 5.xiz
new file mode 100644
index 00000000..8c3dd488
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0038-Metal Sound 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0065-Short noise.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0065-Short noise.xiz
new file mode 100644
index 00000000..b3631800
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Noises/0065-Short noise.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0001-Organ 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0001-Organ 1.xiz
new file mode 100644
index 00000000..a049d330
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0001-Organ 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0002-Organ 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0002-Organ 2.xiz
new file mode 100644
index 00000000..1fc08695
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0002-Organ 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0003-Organ 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0003-Organ 3.xiz
new file mode 100644
index 00000000..38e2ff4e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0003-Organ 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0004-Organ 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0004-Organ 4.xiz
new file mode 100644
index 00000000..66372af9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0004-Organ 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0005-Organ 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0005-Organ 5.xiz
new file mode 100644
index 00000000..ee4191d8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0005-Organ 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0006-Organ 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0006-Organ 6.xiz
new file mode 100644
index 00000000..4613ec44
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0006-Organ 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0007-Organ 7.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0007-Organ 7.xiz
new file mode 100644
index 00000000..42e62dc2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0007-Organ 7.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0008-Organ 8.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0008-Organ 8.xiz
new file mode 100644
index 00000000..77121146
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0008-Organ 8.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0009-Organ 9.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0009-Organ 9.xiz
new file mode 100644
index 00000000..bd980f6a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0009-Organ 9.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0010-Organ 10.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0010-Organ 10.xiz
new file mode 100644
index 00000000..eb86fde9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0010-Organ 10.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0011-Organ 11.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0011-Organ 11.xiz
new file mode 100644
index 00000000..c07450e7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0011-Organ 11.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0033-Cathedral Organ1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0033-Cathedral Organ1.xiz
new file mode 100644
index 00000000..0b784726
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0033-Cathedral Organ1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0034-Cathedral Organ2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0034-Cathedral Organ2.xiz
new file mode 100644
index 00000000..0de7b5a2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0034-Cathedral Organ2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0035-Cathedral Organ3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0035-Cathedral Organ3.xiz
new file mode 100644
index 00000000..1a61ce26
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0035-Cathedral Organ3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0037-Church Organ 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0037-Church Organ 1.xiz
new file mode 100644
index 00000000..855f6a1e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0037-Church Organ 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0038-Church Organ 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0038-Church Organ 2.xiz
new file mode 100644
index 00000000..0fa0cda5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0038-Church Organ 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0039-Church Organ 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0039-Church Organ 3.xiz
new file mode 100644
index 00000000..3f067dd3
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0039-Church Organ 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0041-Church Organ Soft.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0041-Church Organ Soft.xiz
new file mode 100644
index 00000000..9c5eeb2b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0041-Church Organ Soft.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0065-Nice Organ 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0065-Nice Organ 1.xiz
new file mode 100644
index 00000000..4715e04b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0065-Nice Organ 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0066-Nice Organ 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0066-Nice Organ 2.xiz
new file mode 100644
index 00000000..f69926d5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0066-Nice Organ 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0067-Sub_Organ.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0067-Sub_Organ.xiz
new file mode 100644
index 00000000..c108ca05
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0067-Sub_Organ.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0068-Square Organ.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0068-Square Organ.xiz
new file mode 100644
index 00000000..68b75e66
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0068-Square Organ.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0069-Soft Organ 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0069-Soft Organ 1.xiz
new file mode 100644
index 00000000..6008ac74
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0069-Soft Organ 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0070-Soft Organ 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0070-Soft Organ 2.xiz
new file mode 100644
index 00000000..9ce98004
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0070-Soft Organ 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0071-Synth Organ.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0071-Synth Organ.xiz
new file mode 100644
index 00000000..c70ae4b9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0071-Synth Organ.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0072-Fantasy Organ.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0072-Fantasy Organ.xiz
new file mode 100644
index 00000000..0a71c909
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0072-Fantasy Organ.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0097-Accordion Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0097-Accordion Pad 1.xiz
new file mode 100644
index 00000000..8fed1336
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0097-Accordion Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0098-Accordion Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0098-Accordion Pad 2.xiz
new file mode 100644
index 00000000..5b09f7b1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0098-Accordion Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0099-Synth Accordion1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0099-Synth Accordion1.xiz
new file mode 100644
index 00000000..6cc19289
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0099-Synth Accordion1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0100-Synth Accordion2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0100-Synth Accordion2.xiz
new file mode 100644
index 00000000..7b9dafad
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0100-Synth Accordion2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0101-Accordion 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0101-Accordion 1.xiz
new file mode 100644
index 00000000..c963a2eb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Organ/0101-Accordion 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0001-Sine Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0001-Sine Pad.xiz
new file mode 100644
index 00000000..18344318
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0001-Sine Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0002-sin2x pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0002-sin2x pad.xiz
new file mode 100644
index 00000000..efa197d7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0002-sin2x pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0003-Analog Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0003-Analog Pad 1.xiz
new file mode 100644
index 00000000..fae1c73b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0003-Analog Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0004-Analog Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0004-Analog Pad 2.xiz
new file mode 100644
index 00000000..b01fa97f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0004-Analog Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0005-Square Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0005-Square Pad 1.xiz
new file mode 100644
index 00000000..9f3210f7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0005-Square Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0006-Square Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0006-Square Pad 2.xiz
new file mode 100644
index 00000000..ac933550
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0006-Square Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0008-Resonance Pad1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0008-Resonance Pad1.xiz
new file mode 100644
index 00000000..9e8760d1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0008-Resonance Pad1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0009-Resonance Pad2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0009-Resonance Pad2.xiz
new file mode 100644
index 00000000..6e4f696a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0009-Resonance Pad2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0033-Synth Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0033-Synth Pad 1.xiz
new file mode 100644
index 00000000..0731979c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0033-Synth Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0034-Synth Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0034-Synth Pad 2.xiz
new file mode 100644
index 00000000..60258b46
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0034-Synth Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0035-Synth Pad 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0035-Synth Pad 3.xiz
new file mode 100644
index 00000000..3db3b68c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0035-Synth Pad 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0036-Synth Pad 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0036-Synth Pad 4.xiz
new file mode 100644
index 00000000..ab1450c0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0036-Synth Pad 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0065-Soft Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0065-Soft Pad.xiz
new file mode 100644
index 00000000..2b36fbe1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0065-Soft Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0066-Flanged Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0066-Flanged Pad 1.xiz
new file mode 100644
index 00000000..e20e317e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Pads/0066-Flanged Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0001-Plucked 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0001-Plucked 1.xiz
new file mode 100644
index 00000000..437ff874
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0001-Plucked 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0002-Plucked 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0002-Plucked 2.xiz
new file mode 100644
index 00000000..d0c468b7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0002-Plucked 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0003-Plucked 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0003-Plucked 3.xiz
new file mode 100644
index 00000000..fe6367c9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0003-Plucked 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0004-Plucked 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0004-Plucked 4.xiz
new file mode 100644
index 00000000..efe4abe4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0004-Plucked 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0005-Plucked 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0005-Plucked 5.xiz
new file mode 100644
index 00000000..6d57a4c8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0005-Plucked 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0006-Plucked 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0006-Plucked 6.xiz
new file mode 100644
index 00000000..bd3cf9b8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0006-Plucked 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0033-Plucked String1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0033-Plucked String1.xiz
new file mode 100644
index 00000000..1b996fea
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0033-Plucked String1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0034-Plucked String2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0034-Plucked String2.xiz
new file mode 100644
index 00000000..271e688b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0034-Plucked String2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0036-Plucked Wah.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0036-Plucked Wah.xiz
new file mode 100644
index 00000000..3a651d17
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Plucked/0036-Plucked Wah.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0001-Flute 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0001-Flute 1.xiz
new file mode 100644
index 00000000..6e9569b0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0001-Flute 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0002-Flute 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0002-Flute 2.xiz
new file mode 100644
index 00000000..793c4166
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0002-Flute 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0003-Flute 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0003-Flute 3.xiz
new file mode 100644
index 00000000..c5003021
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0003-Flute 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0005-FM Reed.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0005-FM Reed.xiz
new file mode 100644
index 00000000..e538f35e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0005-FM Reed.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0006-Clarinet.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0006-Clarinet.xiz
new file mode 100644
index 00000000..f321a1c8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0006-Clarinet.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0007-Breathy1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0007-Breathy1.xiz
new file mode 100644
index 00000000..ea3c33f2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0007-Breathy1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0033-Reed 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0033-Reed 1.xiz
new file mode 100644
index 00000000..e6165c46
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0033-Reed 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0034-Reed 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0034-Reed 2.xiz
new file mode 100644
index 00000000..d2c1c3e5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0034-Reed 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0035-Reed 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0035-Reed 3.xiz
new file mode 100644
index 00000000..40ef3ddb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0035-Reed 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0036-Reed 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0036-Reed 4.xiz
new file mode 100644
index 00000000..34ff460d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0036-Reed 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0037-Reed 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0037-Reed 5.xiz
new file mode 100644
index 00000000..258c570f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0037-Reed 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0038-Reed 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0038-Reed 6.xiz
new file mode 100644
index 00000000..e0e0cbb5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0038-Reed 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0039-Reed 7.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0039-Reed 7.xiz
new file mode 100644
index 00000000..9c8fa448
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0039-Reed 7.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0065-Fat Reed1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0065-Fat Reed1.xiz
new file mode 100644
index 00000000..ef1647d8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0065-Fat Reed1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0066-Fat Reed2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0066-Fat Reed2.xiz
new file mode 100644
index 00000000..f850b751
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0066-Fat Reed2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0067-Fat Reed3 square.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0067-Fat Reed3 square.xiz
new file mode 100644
index 00000000..1ed39b0c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Reed and Wind/0067-Fat Reed3 square.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0001-DX Rhodes 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0001-DX Rhodes 1.xiz
new file mode 100644
index 00000000..6cc5a7c7
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0001-DX Rhodes 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0002-DX Rhodes 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0002-DX Rhodes 2.xiz
new file mode 100644
index 00000000..c7581259
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0002-DX Rhodes 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0003-DX Rhodes 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0003-DX Rhodes 3.xiz
new file mode 100644
index 00000000..0a6f38f0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0003-DX Rhodes 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0004-DX Rhodes 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0004-DX Rhodes 4.xiz
new file mode 100644
index 00000000..c8478096
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0004-DX Rhodes 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0005-DX Rhodes 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0005-DX Rhodes 5.xiz
new file mode 100644
index 00000000..ef7d15f0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0005-DX Rhodes 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0007-Dig Rhodes.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0007-Dig Rhodes.xiz
new file mode 100644
index 00000000..90b70caa
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0007-Dig Rhodes.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0008-Synth Rhodes1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0008-Synth Rhodes1.xiz
new file mode 100644
index 00000000..721a6eac
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0008-Synth Rhodes1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0009-Synth Rhodes2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0009-Synth Rhodes2.xiz
new file mode 100644
index 00000000..478d91e6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0009-Synth Rhodes2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0010-Synth Rhodes3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0010-Synth Rhodes3.xiz
new file mode 100644
index 00000000..d29f90c0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0010-Synth Rhodes3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0012-Ice Rhodes1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0012-Ice Rhodes1.xiz
new file mode 100644
index 00000000..71c4eab9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0012-Ice Rhodes1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0013-Ice Rhodes2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0013-Ice Rhodes2.xiz
new file mode 100644
index 00000000..96025799
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0013-Ice Rhodes2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0014-Ice Rhodes3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0014-Ice Rhodes3.xiz
new file mode 100644
index 00000000..c4576d22
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0014-Ice Rhodes3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0033-FM Rhodes 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0033-FM Rhodes 1.xiz
new file mode 100644
index 00000000..cb1b1345
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0033-FM Rhodes 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0034-FM Rhodes 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0034-FM Rhodes 2.xiz
new file mode 100644
index 00000000..37d914ef
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0034-FM Rhodes 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0035-FM Rhodes 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0035-FM Rhodes 3.xiz
new file mode 100644
index 00000000..49f557b8
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0035-FM Rhodes 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0036-FM Rhodes 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0036-FM Rhodes 4.xiz
new file mode 100644
index 00000000..6b65b53f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0036-FM Rhodes 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0037-FM Rhodes 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0037-FM Rhodes 5.xiz
new file mode 100644
index 00000000..5a53a290
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0037-FM Rhodes 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0038-FM Rhodes 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0038-FM Rhodes 6.xiz
new file mode 100644
index 00000000..a4603fe6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0038-FM Rhodes 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0041-Soft Rhodes.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0041-Soft Rhodes.xiz
new file mode 100644
index 00000000..4e01a343
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0041-Soft Rhodes.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0042-Hard Rhodes1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0042-Hard Rhodes1.xiz
new file mode 100644
index 00000000..eac61cd6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0042-Hard Rhodes1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0043-Hard Rhodes2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0043-Hard Rhodes2.xiz
new file mode 100644
index 00000000..b63449ac
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0043-Hard Rhodes2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0044-Echo Rhodes.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0044-Echo Rhodes.xiz
new file mode 100644
index 00000000..45280de5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0044-Echo Rhodes.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0045-A long time ago.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0045-A long time ago.xiz
new file mode 100644
index 00000000..633ac686
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0045-A long time ago.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0065-Steel Rhodes.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0065-Steel Rhodes.xiz
new file mode 100644
index 00000000..56c119f1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Rhodes/0065-Steel Rhodes.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0001-Strings and Reed1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0001-Strings and Reed1.xiz
new file mode 100644
index 00000000..82f7d2ea
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0001-Strings and Reed1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0002-Strings and Reed2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0002-Strings and Reed2.xiz
new file mode 100644
index 00000000..24dcd3be
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0002-Strings and Reed2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0003-Strings and Flute.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0003-Strings and Flute.xiz
new file mode 100644
index 00000000..82d2b545
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0003-Strings and Flute.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0033-Choir and Reed.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0033-Choir and Reed.xiz
new file mode 100644
index 00000000..acd226fb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Splited/0033-Choir and Reed.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0001-Saw Strings 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0001-Saw Strings 1.xiz
new file mode 100644
index 00000000..97766327
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0001-Saw Strings 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0002-Saw Strings 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0002-Saw Strings 2.xiz
new file mode 100644
index 00000000..62d3ddb5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0002-Saw Strings 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0003-Saw Strings 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0003-Saw Strings 3.xiz
new file mode 100644
index 00000000..81ed541d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0003-Saw Strings 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0004-Saw Strings 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0004-Saw Strings 4.xiz
new file mode 100644
index 00000000..a2dc7f37
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0004-Saw Strings 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0005-Saw Strings 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0005-Saw Strings 5.xiz
new file mode 100644
index 00000000..2a8b94ee
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0005-Saw Strings 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0006-Saw Strings 6.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0006-Saw Strings 6.xiz
new file mode 100644
index 00000000..dcef5c21
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0006-Saw Strings 6.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0007-Saw Strings 7.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0007-Saw Strings 7.xiz
new file mode 100644
index 00000000..dfcc8d89
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0007-Saw Strings 7.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0008-Saw Strings 8.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0008-Saw Strings 8.xiz
new file mode 100644
index 00000000..56d3e2a0
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0008-Saw Strings 8.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0011-Strings Pad1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0011-Strings Pad1.xiz
new file mode 100644
index 00000000..37b5aa54
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0011-Strings Pad1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0012-Strings Pad2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0012-Strings Pad2.xiz
new file mode 100644
index 00000000..fef8a751
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0012-Strings Pad2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0013-Strings Pad3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0013-Strings Pad3.xiz
new file mode 100644
index 00000000..1a2d9d09
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0013-Strings Pad3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0016-Sweep Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0016-Sweep Pad 1.xiz
new file mode 100644
index 00000000..1a6eaa64
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0016-Sweep Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0017-Sweep Pad 1 Fat.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0017-Sweep Pad 1 Fat.xiz
new file mode 100644
index 00000000..f760886c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0017-Sweep Pad 1 Fat.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0018-Sweep Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0018-Sweep Pad 2.xiz
new file mode 100644
index 00000000..805e69ff
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0018-Sweep Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0019-Sweep Pad 3Wah.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0019-Sweep Pad 3Wah.xiz
new file mode 100644
index 00000000..c08b6a74
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0019-Sweep Pad 3Wah.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0020-Sweep Pad 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0020-Sweep Pad 4.xiz
new file mode 100644
index 00000000..ec4bd7cf
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0020-Sweep Pad 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0033-Strings1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0033-Strings1.xiz
new file mode 100644
index 00000000..15e4551c
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0033-Strings1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0034-Dark Strings.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0034-Dark Strings.xiz
new file mode 100644
index 00000000..b079450a
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0034-Dark Strings.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0035-Octave Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0035-Octave Pad.xiz
new file mode 100644
index 00000000..9ccf0f98
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0035-Octave Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0036-Fast Attack.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0036-Fast Attack.xiz
new file mode 100644
index 00000000..5fb63dcb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0036-Fast Attack.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0038-Fat Saw.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0038-Fat Saw.xiz
new file mode 100644
index 00000000..562f5bd2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0038-Fat Saw.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0041-Saw 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0041-Saw 1.xiz
new file mode 100644
index 00000000..d45a3c20
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0041-Saw 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0042-Saw 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0042-Saw 2.xiz
new file mode 100644
index 00000000..0ab80ea2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0042-Saw 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0043-Saw 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0043-Saw 3.xiz
new file mode 100644
index 00000000..b0e06b27
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0043-Saw 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0044-Saw Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0044-Saw Pad.xiz
new file mode 100644
index 00000000..6974b651
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0044-Saw Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0045-Soft Saw Pad.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0045-Soft Saw Pad.xiz
new file mode 100644
index 00000000..45e85d26
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0045-Soft Saw Pad.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0046-Echoed Saw.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0046-Echoed Saw.xiz
new file mode 100644
index 00000000..991d6ca6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0046-Echoed Saw.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0047-Vibratto Saw1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0047-Vibratto Saw1.xiz
new file mode 100644
index 00000000..cf62f6d9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0047-Vibratto Saw1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0048-Wah1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0048-Wah1.xiz
new file mode 100644
index 00000000..c26c7702
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0048-Wah1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0050-Synth Violin 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0050-Synth Violin 1.xiz
new file mode 100644
index 00000000..b9c79b6f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0050-Synth Violin 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0051-Synth Violin 2 Fat.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0051-Synth Violin 2 Fat.xiz
new file mode 100644
index 00000000..154182c2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0051-Synth Violin 2 Fat.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0065-Simple Strings.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0065-Simple Strings.xiz
new file mode 100644
index 00000000..32381895
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0065-Simple Strings.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0066-Dual Strings.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0066-Dual Strings.xiz
new file mode 100644
index 00000000..4e236ba9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0066-Dual Strings.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0067-Dual StringsOct.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0067-Dual StringsOct.xiz
new file mode 100644
index 00000000..e36b5577
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Strings/0067-Dual StringsOct.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0001-Soft Synth 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0001-Soft Synth 1.xiz
new file mode 100644
index 00000000..7aa87d1f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0001-Soft Synth 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0002-Soft Synth 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0002-Soft Synth 2.xiz
new file mode 100644
index 00000000..8f88ad5e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0002-Soft Synth 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0004-Pulse Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0004-Pulse Pad 1.xiz
new file mode 100644
index 00000000..cdc504d5
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0004-Pulse Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0005-Pulse Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0005-Pulse Pad 2.xiz
new file mode 100644
index 00000000..ebb8206e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0005-Pulse Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0007-Analog Filter 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0007-Analog Filter 1.xiz
new file mode 100644
index 00000000..aefd1ecc
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0007-Analog Filter 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0008-Analog Filter 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0008-Analog Filter 2.xiz
new file mode 100644
index 00000000..8d749f9b
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0008-Analog Filter 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0033-Phased Pad 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0033-Phased Pad 1.xiz
new file mode 100644
index 00000000..fa856b64
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0033-Phased Pad 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0034-Phased Pad 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0034-Phased Pad 2.xiz
new file mode 100644
index 00000000..fa9b2275
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0034-Phased Pad 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0035-Phased Pad 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0035-Phased Pad 3.xiz
new file mode 100644
index 00000000..6efd18e1
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0035-Phased Pad 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0037-Resonance Synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0037-Resonance Synth.xiz
new file mode 100644
index 00000000..61958820
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0037-Resonance Synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0039-Multi-phase synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0039-Multi-phase synth.xiz
new file mode 100644
index 00000000..5943e843
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0039-Multi-phase synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0065-Computer Lead.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0065-Computer Lead.xiz
new file mode 100644
index 00000000..d11e7bf4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0065-Computer Lead.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0067-Detuned Harmonic.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0067-Detuned Harmonic.xiz
new file mode 100644
index 00000000..5cf9725d
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0067-Detuned Harmonic.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0097-FM Synth.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0097-FM Synth.xiz
new file mode 100644
index 00000000..7219c5e6
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/Synth/0097-FM Synth.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0001-Soft Piano 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0001-Soft Piano 1.xiz
new file mode 100644
index 00000000..f44c7434
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0001-Soft Piano 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0002-Soft Piano 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0002-Soft Piano 2.xiz
new file mode 100644
index 00000000..9ffd7ffb
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0002-Soft Piano 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0004-Fantasy Bell.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0004-Fantasy Bell.xiz
new file mode 100644
index 00000000..0f7e5074
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0004-Fantasy Bell.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0005-Synth Piano1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0005-Synth Piano1.xiz
new file mode 100644
index 00000000..9452b7ce
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0005-Synth Piano1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0006-Synth Piano2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0006-Synth Piano2.xiz
new file mode 100644
index 00000000..b1f6c5b2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0006-Synth Piano2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0007-Termollo1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0007-Termollo1.xiz
new file mode 100644
index 00000000..52e94905
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0007-Termollo1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0008-Termollo2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0008-Termollo2.xiz
new file mode 100644
index 00000000..aac661bd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0008-Termollo2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0009-Termollo3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0009-Termollo3.xiz
new file mode 100644
index 00000000..324f3a59
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0009-Termollo3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0011-Drop1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0011-Drop1.xiz
new file mode 100644
index 00000000..162cd982
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0011-Drop1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0012-Drop2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0012-Drop2.xiz
new file mode 100644
index 00000000..cb6e49ed
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0012-Drop2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0033-Analog Piano 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0033-Analog Piano 1.xiz
new file mode 100644
index 00000000..0c405d97
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0033-Analog Piano 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0034-Analog Piano 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0034-Analog Piano 2.xiz
new file mode 100644
index 00000000..a950a983
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0034-Analog Piano 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0035-Analog Piano 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0035-Analog Piano 3.xiz
new file mode 100644
index 00000000..71e86b49
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0035-Analog Piano 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0037-FM Synth1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0037-FM Synth1.xiz
new file mode 100644
index 00000000..07f65890
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0037-FM Synth1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0039-BinaryPiano1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0039-BinaryPiano1.xiz
new file mode 100644
index 00000000..2430d6a4
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0039-BinaryPiano1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xiz
new file mode 100644
index 00000000..82d24d02
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0065-Synth Piano 1.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0065-Synth Piano 1.xiz
new file mode 100644
index 00000000..9d03fecd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0065-Synth Piano 1.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0066-Synth Piano 2.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0066-Synth Piano 2.xiz
new file mode 100644
index 00000000..e85a5ea2
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0066-Synth Piano 2.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0067-Synth Piano 3.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0067-Synth Piano 3.xiz
new file mode 100644
index 00000000..0ddad8b9
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0067-Synth Piano 3.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0068-Synth Piano 3 fat.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0068-Synth Piano 3 fat.xiz
new file mode 100644
index 00000000..b72e4f63
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0068-Synth Piano 3 fat.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0069-Synth Piano 3 det.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0069-Synth Piano 3 det.xiz
new file mode 100644
index 00000000..7f7d321f
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0069-Synth Piano 3 det.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0070-Synth Piano 4.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0070-Synth Piano 4.xiz
new file mode 100644
index 00000000..4c8f7717
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0070-Synth Piano 4.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0071-Synth Piano 5.xiz b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0071-Synth Piano 5.xiz
new file mode 100644
index 00000000..ec60fb93
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/banks/SynthPiano/0071-Synth Piano 5.xiz
Binary files differ
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/globals.h b/muse_qt4_evolution/synti/zynaddsubfx/globals.h
new file mode 100644
index 00000000..58b1669e
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/globals.h
@@ -0,0 +1,212 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ globals.h - it contains program settings and the program capabilities
+ like number of parts, of effects
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+
+#ifndef GLOBALS_H
+#define GLOBALS_H
+
+//What float type I use for internal sampledata
+#define REALTYPE float
+
+struct FFTFREQS{
+ REALTYPE *s,*c;//sine and cosine components
+};
+
+extern void newFFTFREQS(FFTFREQS *f,int size);
+extern void deleteFFTFREQS(FFTFREQS *f);
+
+// Sampling rate
+extern int SAMPLE_RATE;
+
+/*
+ * The size of a sound buffer (or the granularity)
+ * All internal transfer of sound data use buffer of this size
+ * All parameters are constant during this period of time, exception
+ * some parameters(like amplitudes) which are linear interpolated.
+ * If you increase this you'll ecounter big latencies, but if you
+ * decrease this the CPU requirements gets high.
+ */
+extern int SOUND_BUFFER_SIZE;
+
+
+/*
+ * The size of ADnote Oscillator
+ * Decrease this => poor quality
+ * Increase this => CPU requirements gets high (only at start of the note)
+ */
+extern int OSCIL_SIZE;
+
+/*
+ * The number of harmonics of additive synth
+ * This must be smaller than OSCIL_SIZE/2
+ */
+#define MAX_AD_HARMONICS 128
+
+
+/*
+ * The number of harmonics of substractive
+ */
+#define MAX_SUB_HARMONICS 64
+
+
+/*
+ * The maximum number of samples that are used for 1 PADsynth instrument(or item)
+ */
+#define PAD_MAX_SAMPLES 64
+
+
+/*
+ * Number of parts
+ */
+#define NUM_MIDI_PARTS 16
+
+/*
+ * Number of Midi channes
+ */
+#define NUM_MIDI_CHANNELS 16
+
+/*
+ * The number of voices of additive synth for a single note
+ */
+#define NUM_VOICES 8
+
+/*
+ * The poliphony (notes)
+ */
+#define POLIPHONY 60
+
+/*
+ * Number of system effects
+ */
+#define NUM_SYS_EFX 4
+
+
+/*
+ * Number of insertion effects
+ */
+#define NUM_INS_EFX 8
+
+/*
+ * Number of part's insertion effects
+ */
+#define NUM_PART_EFX 3
+
+/*
+ * Maximum number of the instrument on a part
+ */
+#define NUM_KIT_ITEMS 16
+
+
+/*
+ * How is applied the velocity sensing
+ */
+#define VELOCITY_MAX_SCALE 8.0
+
+/*
+ * The maximum length of instrument's name
+ */
+#define PART_MAX_NAME_LEN 30
+
+/*
+ * The maximum number of bands of the equaliser
+ */
+#define MAX_EQ_BANDS 8
+#if (MAX_EQ_BANDS>=20)
+#error "Too many EQ bands in globals.h"
+#endif
+
+
+/*
+ * Maximum filter stages
+ */
+#define MAX_FILTER_STAGES 5
+
+/*
+ * Formant filter (FF) limits
+ */
+#define FF_MAX_VOWELS 6
+#define FF_MAX_FORMANTS 12
+#define FF_MAX_SEQUENCE 8
+
+#define LOG_2 0.693147181
+#define PI 3.1415926536
+#define LOG_10 2.302585093
+
+/*
+ * The threshold for the amplitude interpolation used if the amplitude
+ * is changed (by LFO's or Envelope's). If the change of the amplitude
+ * is below this, the amplitude is not interpolated
+ */
+#define AMPLITUDE_INTERPOLATION_THRESHOLD 0.0001
+
+/*
+ * How the amplitude threshold is computed
+ */
+#define ABOVE_AMPLITUDE_THRESHOLD(a,b) ( ( 2.0*fabs( (b) - (a) ) / \
+ ( fabs( (b) + (a) + 0.0000000001) ) ) > AMPLITUDE_INTERPOLATION_THRESHOLD )
+
+/*
+ * Interpolate Amplitude
+ */
+#define INTERPOLATE_AMPLITUDE(a,b,x,size) ( (a) + \
+ ( (b) - (a) ) * (REALTYPE)(x) / (REALTYPE) (size) )
+
+
+/*
+ * dB
+ */
+#define dB2rap(dB) ((exp((dB)*LOG_10/20.0)))
+#define rap2dB(rap) ((20*log(rap)/LOG_10))
+
+/*
+ * The random generator (0.0..1.0)
+ */
+#define RND (rand()/(RAND_MAX+1.0))
+
+#define ZERO(data,size) {char *data_=(char *) data;for (int i=0;i<size;i++) data_[i]=0;};
+
+enum ONOFFTYPE{OFF=0,ON=1};
+
+enum MidiControllers{C_NULL=0,C_pitchwheel=1000,C_expression=11,C_panning=10,
+ C_filtercutoff=74,C_filterq=71,C_bandwidth=75,C_modwheel=1,C_fmamp=76,
+ C_volume=7,C_sustain=64,C_allnotesoff=123,C_allsoundsoff=120,C_resetallcontrollers=121,
+ C_portamento=65,C_resonance_center=77,C_resonance_bandwidth=78,
+
+ C_dataentryhi=0x06,C_dataentrylo=0x26,C_nrpnhi=99,C_nrpnlo=98};
+
+
+//is like i=(int)(floor(f))
+#ifdef ASM_F2I_YES
+#define F2I(f,i) __asm__ __volatile__ ("fistpl %0" : "=m" (i) : "t" (f-0.49999999) : "st") ;
+#else
+#define F2I(f,i) (i)=((f>0) ? ( (int)(f) ) :( (int)(f-1.0) ));
+#endif
+
+
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#endif
+
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/main.cpp b/muse_qt4_evolution/synti/zynaddsubfx/main.cpp
new file mode 100644
index 00000000..10f968bd
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/main.cpp
@@ -0,0 +1,462 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// ZynAddSubFX - a software synthesizer
+// Copyright (C) 2002-2005 Nasca Octavian Paul
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <pthread.h>
+
+#include "Misc/Master.h"
+#include "Misc/Util.h"
+#include "MasterUI.h"
+
+//=========================================================
+// MESS interface
+//=========================================================
+
+#include "synti/libsynti/mess.h"
+int instances = -1;
+
+//---------------------------------------------------------
+// Zynadd
+//---------------------------------------------------------
+
+class Zynadd : public Mess, public Master
+ {
+ virtual void process(float** buffer, int offset, int n);
+ virtual bool processEvent(const MidiEvent&);
+ virtual void getInitData(int*, const unsigned char**);
+ virtual int getControllerInfo(int, const char**, int*, int*, int*);
+ virtual const char* getPatchName(int, int, int) const;
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch*) const;
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return _guiVisible; }
+ virtual void showGui(bool val);
+
+ mutable MidiPatch patch;
+ mutable int currentBank;
+
+ bool _guiVisible;
+ bool loadBank(int);
+ char* messPatch[MAX_NUM_BANKS][128];
+
+ public:
+ int Pexitprogram;
+ MasterUI* ui;
+ pthread_t thr;
+
+ Zynadd();
+ ~Zynadd();
+
+ enum {
+ GUI_NO_CMD, GUI_REFRESH, GUI_HIDE, GUI_SHOW
+ };
+ int guiCmd;
+ };
+
+//---------------------------------------------------------
+// guiThread
+//---------------------------------------------------------
+
+void* guiThread(void *arg)
+ {
+ Zynadd* z = (Zynadd *) arg;
+ z->ui = new MasterUI(z, &z->Pexitprogram);
+ z->ui->showUI();
+ while (z->Pexitprogram == 0) {
+ switch(z->guiCmd) {
+ case Zynadd::GUI_REFRESH:
+ z->ui->refresh_master_ui();
+ break;
+ case Zynadd::GUI_HIDE:
+ switch (config.cfg.UserInterfaceMode) {
+ case 0:
+ z->ui->selectuiwindow->hide();
+ break;
+ case 1:
+ z->ui->masterwindow->hide();
+ break;
+ case 2:
+ z->ui->simplemasterwindow->hide();
+ break;
+ }
+ break;
+ case Zynadd::GUI_SHOW:
+ z->ui->showUI();
+ break;
+ }
+ z->guiCmd = Zynadd::GUI_NO_CMD;
+ Fl::wait(0.01);
+ }
+ delete(z->ui);
+ Fl::wait(0.01);
+ pthread_exit(0);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// Zynadd
+//---------------------------------------------------------
+
+Zynadd::Zynadd() : Mess(2), Master()
+ {
+ instances++;
+ swaplr = config.cfg.SwapStereo;
+ Pexitprogram = 0;
+ currentBank = -1;
+ guiCmd = 0;
+
+ swaplr = 0; //1 for left-right swapping
+ memset(messPatch, 0, sizeof(messPatch));
+ bank.rescanforbanks();
+ defaults();
+
+ for (int i = 1; i < MAX_NUM_BANKS; ++i) {
+ if (bank.banks[i].dir == 0)
+ break;
+ loadBank(i);
+ for (unsigned int k = 0; k < 128; ++k) {
+ if (!bank.emptyslot(k)) {
+ messPatch[i][k] = strdup(bank.getname(k));
+ }
+ }
+ }
+
+ pthread_create(&thr, NULL, guiThread, this);
+ _guiVisible = true;
+ }
+
+//---------------------------------------------------------
+// ~Zynadd
+//---------------------------------------------------------
+
+Zynadd::~Zynadd()
+ {
+ Pexitprogram = 1;
+ sleep(2); //wait the thread to finish
+ instances--;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void Zynadd::showGui(bool val)
+ {
+ if (val != _guiVisible)
+ guiCmd = val ? GUI_SHOW : GUI_HIDE;
+ _guiVisible = val;
+ }
+
+//---------------------------------------------------------
+// loadBank
+//---------------------------------------------------------
+
+bool Zynadd::loadBank(int n)
+ {
+ if (n != currentBank) {
+ if (bank.banks[n].dir == 0) {
+ printf("Zynaddsubfx: empty bank %d\n", n);
+ return false;
+ }
+ bank.loadbank(bank.banks[n].dir);
+ currentBank = n;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+
+struct ZynCtrl {
+ const char* name;
+ int num;
+ int min;
+ int max;
+ };
+
+//
+// NRPN
+// 0x04 0 // System Effects
+// 0x04 1
+// 0x04 2
+// 0x04 3
+//
+// 0x08 0 // Insertion Effects
+// 0x08 1
+// 0x08 2
+// 0x08 3
+// 0x08 4
+// 0x08 5
+// 0x08 6
+// 0x08 7
+// 0x08 8
+
+int Zynadd::getControllerInfo(int i, const char** name, int* num, int* min, int* max)
+ {
+ static const ZynCtrl ctrl[] = {
+ { "Pitch", 0x40000, -8191, 8190 },
+ { "ProgramChange", 0x40001, 0, 0xffffff },
+ { "Modulation", 1, 0, 127 },
+ { "MainVolume", 7, 0, 127 },
+ { "Pan", 10, 0, 127 },
+ { "Expression", 11, 0, 127 },
+ { "Sustain", 64, 0, 127 },
+ { "Portamento", 65, 0, 127 },
+ { "FilterQ", 71, 0, 127 },
+ { "FilterCutoff", 74, 0, 127 },
+ { "Bandwidth", 75, 0, 127 },
+ { "ModulationAmp", 76, 0, 127 },
+ { "ResonanceCenter", 77, 0, 127 },
+ { "ResonanceBandwidth", 78, 0, 127 },
+ { "AllSoundsOff", 120, 0, 127 },
+ { "ResetAllController", 121, 0, 127 },
+ { "AllNotesOff", 123, 0, 127 },
+ };
+ if ((unsigned)i >= sizeof(ctrl)/sizeof(*ctrl))
+ return 0;
+ *name = ctrl[i].name;
+ *num = ctrl[i].num;
+ *min = ctrl[i].min;
+ *max = ctrl[i].max;
+ return i+1;;
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* Zynadd::getPatchName(int, int val, int) const
+ {
+ int bankNo = (val >> 8) + 1;
+ int program = val & 0x7f;
+ return messPatch[bankNo][program];
+ }
+
+//---------------------------------------------------------
+// getPatchInfo
+//---------------------------------------------------------
+
+const MidiPatch* Zynadd::getPatchInfo(int, const MidiPatch* p) const {
+ if(p) {
+ patch.hbank = p->hbank;
+ patch.lbank = p->lbank;
+ patch.prog = p->prog;
+ int bn = ((patch.hbank << 7) + patch.lbank); //7 because lbank is signed
+ switch(p->typ) {
+ case MP_TYPE_LBANK :
+ patch.typ = 0;
+ patch.name = messPatch[bn + 1][patch.prog];
+ if(patch.name) return &patch;
+ else return getPatchInfo(0, &patch);
+ break;
+ default :
+ if(patch.prog + 1 < 128) {
+ patch.prog++;
+ patch.name = messPatch[bn + 1][patch.prog];
+ if(patch.name) return &patch;
+ else return getPatchInfo(0, &patch);
+ }
+ else {
+ patch.prog = 0;
+ if(bn + 1 < MAX_NUM_BANKS - 1) {
+ bn++;
+ patch.name = bank.banks[bn + 1].name;
+ patch.hbank = bn / 128;
+ patch.lbank = bn % 128;
+ patch.typ = MP_TYPE_LBANK;
+ if(patch.name) return &patch;
+ else return getPatchInfo(0, &patch);
+ }
+ else return NULL;
+ }
+ break;
+ }
+ }
+ else {
+ patch.typ = MP_TYPE_LBANK;
+ patch.hbank = 0;
+ patch.lbank = 0;
+ patch.prog = 0;
+ patch.name = bank.banks[(patch.hbank << 7) + patch.lbank + 1].name;
+ if(patch.name) return &patch;
+ else {
+ patch.typ = 0;
+ patch.prog = 127; //hack to go faster
+ return getPatchInfo(0, &patch);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void Zynadd::getInitData(int* n, const unsigned char** data)
+ {
+ *n = getalldata((char **)data);
+ }
+
+//---------------------------------------------------------
+// process
+// synthesize n samples into buffer+offset
+//---------------------------------------------------------
+
+void Zynadd::process(float** outputs, int offset, int n)
+ {
+ float* outl = outputs[0] + offset;
+ float* outr = outputs[1] + offset;
+ if (busy) {
+ memset(outl, 0, sizeof(float) * n);
+ memset(outr, 0, sizeof(float) * n);
+ return;
+ }
+ GetAudioOutSamples(n, outl, outr);
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+bool Zynadd::processEvent(const MidiEvent& e)
+ {
+ if (busy)
+ return true;
+ int ch = e.channel();
+ switch(e.type()) {
+ case 0x80: // note off
+ NoteOff(ch, e.dataA());
+ break;
+ case 0x90: // note on
+ NoteOn(ch, e.dataA(), e.dataB());
+ break;
+ case 0xb0: // controller
+ switch(e.dataA()) {
+ case 0x40000: // pitch
+ SetController(ch, C_pitchwheel, e.dataB());
+ break;
+ case 0x40001: // program change
+ {
+ int bankNo = (e.dataB() >> 8) + 1;
+ if (!loadBank(bankNo))
+ return false;
+ int program = e.dataB() & 0x7f;
+ if (bank.emptyslot(program)) {
+ printf("Zynaddsubfx: programslot %d is empty!\n", program);
+ break;
+ }
+ for (int npart = 0; npart < NUM_MIDI_PARTS; npart++) {
+ Part* p = part[npart];
+ if ((ch == p->Prcvchn) && (p->Penabled != 0))
+ bank.loadfromslot(program, p);
+ }
+ guiCmd = GUI_REFRESH;
+ }
+ break;
+ default:
+ {
+ int ctl;
+ switch (e.dataA()) {
+ case 1: ctl = C_modwheel; break;
+ case 7: ctl = C_volume; break;
+ case 10: ctl = C_panning; break;
+ case 11: ctl = C_expression; break;
+ case 64: ctl = C_sustain; break;
+ case 65: ctl = C_portamento; break;
+ case 71: ctl = C_filterq; break;
+ case 74: ctl = C_filtercutoff; break;
+ case 75: ctl = C_bandwidth; break;
+ case 76: ctl = C_fmamp; break;
+ case 77: ctl = C_resonance_center; break;
+ case 78: ctl = C_resonance_bandwidth; break;
+ case 120: ctl = C_allsoundsoff; break;
+ case 121: ctl = C_resetallcontrollers; break;
+ case 123: ctl = C_allnotesoff; break;
+ case 0x06: ctl = C_dataentryhi; break;
+ case 0x26: ctl = C_dataentrylo; break;
+ case 99: ctl = C_nrpnhi; break;
+ case 98: ctl = C_nrpnlo; break;
+ default: ctl = C_NULL; break;
+ }
+ SetController(ch, ctl, e.dataB());
+ guiCmd = GUI_REFRESH; // does not work
+ }
+ break;
+ }
+ break;
+
+ case 0xf0:
+ putalldata((char*)e.data(), e.len());
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+static Mess* instantiate(int sr, const char*)
+ {
+ if (instances == -1) {
+ config.init();
+ instances = 0;
+ srand(time(0));
+ // SOUND_BUFFER_SIZE restricts midi resolution
+ SOUND_BUFFER_SIZE = 64;
+ OSCIL_SIZE = 256; // config.cfg.OscilSize;
+ SAMPLE_RATE = sr;
+ denormalkillbuf = new REALTYPE [SOUND_BUFFER_SIZE];
+ for (int i = 0; i < SOUND_BUFFER_SIZE; i++)
+ denormalkillbuf[i] = (RND - 0.5) * 1e-16;
+
+ OscilGen::tmpsmps = new REALTYPE[OSCIL_SIZE];
+ newFFTFREQS(&OscilGen::outoscilFFTfreqs,OSCIL_SIZE/2);
+ }
+ if (instances != 0)
+ return 0; //don't allow multiple instances
+
+ Zynadd* sintetizator = new Zynadd();
+ sintetizator->setSampleRate(sr);
+ return sintetizator;
+ }
+
+extern "C" {
+ static MESS descriptor = {
+ "Zynaddsubfx",
+ "Zynaddsubfx Software Synthesizer",
+ "0.1", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate
+ };
+
+ // We must compile with -fvisibility=hidden to avoid namespace
+ // conflicts with global variables.
+ // Only visible symbol is "mess_descriptor".
+ // (TODO: all plugins should be compiled this way)
+
+ __attribute__ ((visibility("default")))
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+